Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/facett

facett-claude/.nornir/assets/claude-pane.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" font-family="sans-serif" font-size="13">
  <rect width="760" height="300" fill="#0f1720"/>
  <text x="20" y="30" fill="#e6edf3" font-size="16" font-weight="bold">facett-claude — conversation pane (Elm) + injected transport</text>

  <!-- pane box -->
  <rect x="20" y="60" width="300" height="210" rx="8" fill="#15202b" stroke="#2d3f50"/>
  <text x="36" y="84" fill="#9fd3f5" font-weight="bold">ClaudePane (facett Elm → Facet → Panel)</text>
  <rect x="36" y="98" width="268" height="26" rx="4" fill="#1b2b3a" stroke="#33506b"/>
  <text x="46" y="115" fill="#c6d3df">turns[] · prompt · model · sending · error</text>
  <rect x="36" y="132" width="268" height="24" rx="4" fill="#1b2b3a" stroke="#33506b"/>
  <text x="46" y="148" fill="#c6d3df">update_json(msg)  ·  state_json() out</text>
  <text x="36" y="182" fill="#7fd08c">▶ view: turns + prompt input + Send</text>
  <text x="36" y="206" fill="#9aa7b3" font-size="11">prompt_changed → send → (host) → received_ok</text>
  <text x="36" y="226" fill="#9aa7b3" font-size="11">robot drives this IN CODE — no pixels, no AI</text>

  <!-- effect arrow -->
  <line x1="320" y1="150" x2="430" y2="150" stroke="#6fd3f5" stroke-width="2" marker-end="url(#a)"/>
  <text x="330" y="142" fill="#6fd3f5" font-size="11">Effect::Send{model,messages}</text>

  <!-- host transport -->
  <rect x="430" y="90" width="300" height="120" rx="8" fill="#15202b" stroke="#2d3f50"/>
  <text x="446" y="114" fill="#f0c674" font-weight="bold">host: ClaudeTransport (injected)</text>
  <text x="446" y="138" fill="#c6d3df">nornir viz::claude::HttpTransport</text>
  <text x="446" y="158" fill="#9aa7b3" font-size="11">POST api.anthropic.com/v1/messages</text>
  <text x="446" y="176" fill="#9aa7b3" font-size="11">model claude-opus-4-8 · $ANTHROPIC_API_KEY</text>
  <text x="446" y="196" fill="#7fd08c" font-size="11">default: EchoBackend — offline, no secrets</text>

  <!-- return arrow -->
  <line x1="430" y1="185" x2="320" y2="185" stroke="#7fd08c" stroke-width="2" marker-end="url(#a)"/>
  <text x="330" y="200" fill="#7fd08c" font-size="11">Msg::ReceivedOk / ReceivedErr</text>

  <text x="20" y="292" fill="#586570" font-size="11">no nornir/reqwest dep — pure leaf; the pane emits data, the host runs the HTTP. One pane, mounted by nornir · dwarves · holger.</text>
  <defs><marker id="a" markerWidth="9" markerHeight="9" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 Z" fill="#8fb0c8"/></marker></defs>
</svg>