airaknit 1.1.2-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +84 -0
- package/README.md +202 -0
- package/bin/airaknit +9 -0
- package/bin/airaknit-project +14 -0
- package/bin/kanna +9 -0
- package/dist/client/assets/CompactSummaryMessage-Yw0BDWEJ.js +1 -0
- package/dist/client/assets/ExitPlanModeMessage-DIdkQ4uF.js +1 -0
- package/dist/client/assets/LocalFilePreviewDialog-DQx2eiCc.js +3 -0
- package/dist/client/assets/LocalProjectsSection-C4xlWkgS.js +1 -0
- package/dist/client/assets/TextMessage-B5G39DEJ.js +1 -0
- package/dist/client/assets/UserMessage-CIkWk-0L.js +1 -0
- package/dist/client/assets/_basePickBy-CVrAFfnZ.js +1 -0
- package/dist/client/assets/_baseUniq-JL-aaF4P.js +1 -0
- package/dist/client/assets/arc-B07zg7ol.js +1 -0
- package/dist/client/assets/architecture-YZFGNWBL-PSLVJL3p.js +1 -0
- package/dist/client/assets/architectureDiagram-Q4EWVU46-DfWIF1G_.js +36 -0
- package/dist/client/assets/array-BGFCBI0e.js +1 -0
- package/dist/client/assets/blockDiagram-DXYQGD6D-CzwIeo_B.js +132 -0
- package/dist/client/assets/bundle-mjs-BDE2gWbQ.js +1 -0
- package/dist/client/assets/button-DO50qOGv.js +1 -0
- package/dist/client/assets/c4Diagram-AHTNJAMY-CR8DCQRE.js +10 -0
- package/dist/client/assets/channel-Dj-UUfaF.js +1 -0
- package/dist/client/assets/chunk-2KRD3SAO-dznP-cn8.js +1 -0
- package/dist/client/assets/chunk-336JU56O-Dqss5Vu6.js +2 -0
- package/dist/client/assets/chunk-426QAEUC-CEKis_0_.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-BYOv0Gm1.js +1 -0
- package/dist/client/assets/chunk-4TB4RGXK-BxzubH5S.js +206 -0
- package/dist/client/assets/chunk-55IACEB6-BSlTj03a.js +1 -0
- package/dist/client/assets/chunk-5FUZZQ4R-9Au93Bi1.js +62 -0
- package/dist/client/assets/chunk-5PVQY5BW-BhksHFEZ.js +2 -0
- package/dist/client/assets/chunk-67CJDMHE-BFwhz-8t.js +1 -0
- package/dist/client/assets/chunk-7N4EOEYR-BDUPds87.js +1 -0
- package/dist/client/assets/chunk-AA7GKIK3-CEWTdyXO.js +1 -0
- package/dist/client/assets/chunk-BO2N2NFS-D0LvxnhU.js +103 -0
- package/dist/client/assets/chunk-BSJP7CBP-BNJnK6sq.js +1 -0
- package/dist/client/assets/chunk-Bj-mKKzh.js +1 -0
- package/dist/client/assets/chunk-CIAEETIT-CYhfoCeN.js +1 -0
- package/dist/client/assets/chunk-EDXVE4YY-C5ovJLc0.js +1 -0
- package/dist/client/assets/chunk-ENJZ2VHE-HOhYaeGr.js +10 -0
- package/dist/client/assets/chunk-FMBD7UC4-BLCiKcAQ.js +15 -0
- package/dist/client/assets/chunk-FOC6F5B3-B6GtY2ek.js +1 -0
- package/dist/client/assets/chunk-ICPOFSXX-DPoIZoC5.js +122 -0
- package/dist/client/assets/chunk-K5T4RW27-BsKN63rv.js +94 -0
- package/dist/client/assets/chunk-KGLVRYIC-BUGn9uuY.js +1 -0
- package/dist/client/assets/chunk-LIHQZDEY-DhaZyo03.js +1 -0
- package/dist/client/assets/chunk-ORNJ4GCN-DlpeeJyi.js +1 -0
- package/dist/client/assets/chunk-OYMX7WX6-Dc9q7aYA.js +231 -0
- package/dist/client/assets/chunk-QZHKN3VN-BEdrPoSb.js +1 -0
- package/dist/client/assets/chunk-U2HBQHQK-CIB3Bjjd.js +70 -0
- package/dist/client/assets/chunk-X2U36JSP-CtB-o8Yp.js +1 -0
- package/dist/client/assets/chunk-XPW4576I-C6iHhX_8.js +32 -0
- package/dist/client/assets/chunk-YZCP3GAM-CTmKr6ZH.js +1 -0
- package/dist/client/assets/chunk-ZZ45TVLE-BgU8A2RF.js +1 -0
- package/dist/client/assets/classDiagram-6PBFFD2Q-Bqk5e679.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-6pSaZOkC.js +1 -0
- package/dist/client/assets/client-BrKWI4CM.js +1 -0
- package/dist/client/assets/client-CGgNRU9w.js +1 -0
- package/dist/client/assets/client-DMSLRzg9.js +6 -0
- package/dist/client/assets/clone-DWcL7whJ.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-CrV5wsV_.js +1 -0
- package/dist/client/assets/cytoscape.esm--aLzKuep.js +321 -0
- package/dist/client/assets/dagre-CuRxWcrj.js +1 -0
- package/dist/client/assets/dagre-KV5264BT-BIDiVnkA.js +4 -0
- package/dist/client/assets/defaultLocale-CRZydyG6.js +1 -0
- package/dist/client/assets/diagram-5BDNPKRD-i1kjKRCB.js +10 -0
- package/dist/client/assets/diagram-G4DWMVQ6-9ZSLuhbl.js +24 -0
- package/dist/client/assets/diagram-MMDJMWI5-B4_CUjgv.js +43 -0
- package/dist/client/assets/diagram-TYMM5635-Ct5eTGS8.js +24 -0
- package/dist/client/assets/dist-CuB4kiSK.js +1 -0
- package/dist/client/assets/erDiagram-SMLLAGMA-Cy38ercc.js +85 -0
- package/dist/client/assets/flowDiagram-DWJPFMVM-CZKuYl0V.js +162 -0
- package/dist/client/assets/ganttDiagram-T4ZO3ILL-DLPjCh7a.js +292 -0
- package/dist/client/assets/gitGraph-7Q5UKJZL-DqbrtEp9.js +1 -0
- package/dist/client/assets/gitGraphDiagram-UUTBAWPF-BoRBkDhQ.js +106 -0
- package/dist/client/assets/graphlib-BcQ6qlQh.js +1 -0
- package/dist/client/assets/highlighted-body-OFNGDK62-BEpBVDTX.js +1 -0
- package/dist/client/assets/index-CetCiuqP.js +105 -0
- package/dist/client/assets/index-N29Mip7A.css +1 -0
- package/dist/client/assets/info-OMHHGYJF-D98DRBJX.js +1 -0
- package/dist/client/assets/infoDiagram-42DDH7IO-BAcdTWbt.js +2 -0
- package/dist/client/assets/init-B8gtcn7T.js +1 -0
- package/dist/client/assets/isArrayLikeObject-D8SJFmkN.js +1 -0
- package/dist/client/assets/isEmpty-BF3YX5Jk.js +1 -0
- package/dist/client/assets/ishikawaDiagram-UXIWVN3A-Ynu2VKdC.js +70 -0
- package/dist/client/assets/journeyDiagram-VCZTEJTY-BjfhQaN3.js +139 -0
- package/dist/client/assets/jsx-runtime-CyI9ICYU.js +1 -0
- package/dist/client/assets/kanban-definition-6JOO6SKY-JLXH9zUJ.js +89 -0
- package/dist/client/assets/katex-B94qP8b6.js +265 -0
- package/dist/client/assets/lib--QVjyxmL.js +29 -0
- package/dist/client/assets/lib-B6rgJiZ9.js +1 -0
- package/dist/client/assets/line-DCrYfLBn.js +1 -0
- package/dist/client/assets/linear-_4upLmeo.js +1 -0
- package/dist/client/assets/mermaid-GHXKKRXX-rwJHYUmW.js +1 -0
- package/dist/client/assets/mermaid-parser.core-KZinfW8o.js +4 -0
- package/dist/client/assets/mermaid.core-QqY9gSNe.js +11 -0
- package/dist/client/assets/mindmap-definition-QFDTVHPH-TWgHDAzp.js +96 -0
- package/dist/client/assets/ordinal-CCj7PWgZ.js +1 -0
- package/dist/client/assets/packet-4T2RLAQJ-DEvfkn3F.js +1 -0
- package/dist/client/assets/path-DZF-JdEe.js +1 -0
- package/dist/client/assets/pie-ZZUOXDRM-72e6WVjb.js +1 -0
- package/dist/client/assets/pieDiagram-DEJITSTG-Cl8PCsoj.js +30 -0
- package/dist/client/assets/preload-helper-rov5CBGT.js +1 -0
- package/dist/client/assets/pty-client-DZ27IS00.js +1 -0
- package/dist/client/assets/ptyInstancesStore-D9ag7SYd.js +1 -0
- package/dist/client/assets/quadrantDiagram-34T5L4WZ-CHyVGp9E.js +7 -0
- package/dist/client/assets/radar-PYXPWWZC-Cp7xd_EY.js +1 -0
- package/dist/client/assets/react-CClhXMB2.js +1 -0
- package/dist/client/assets/react-Dd6D81m0.js +1 -0
- package/dist/client/assets/react-dom--G6_6fQ_.js +1 -0
- package/dist/client/assets/requirementDiagram-MS252O5E-DaanG2iM.js +84 -0
- package/dist/client/assets/rough.esm-BsmKo2S5.js +1 -0
- package/dist/client/assets/sankeyDiagram-XADWPNL6-B_fhLY36.js +10 -0
- package/dist/client/assets/sequenceDiagram-FGHM5R23-C5FNrveI.js +157 -0
- package/dist/client/assets/src-DeTlMJAU.js +1 -0
- package/dist/client/assets/stateDiagram-FHFEXIEX-nTTcdjjQ.js +1 -0
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-Dw0632j_.js +1 -0
- package/dist/client/assets/timeline-definition-GMOUNBTQ-DkQV1yP8.js +120 -0
- package/dist/client/assets/treeView-SZITEDCU-ZLIgC7_K.js +1 -0
- package/dist/client/assets/treemap-W4RFUUIX-BqaMbB6N.js +1 -0
- package/dist/client/assets/uiIdentityOverlay-Ba7GNj7m.js +1 -0
- package/dist/client/assets/vennDiagram-DHZGUBPP-DbZ2xgs6.js +34 -0
- package/dist/client/assets/wardley-RL74JXVD-DXQS8zf4.js +1 -0
- package/dist/client/assets/wardleyDiagram-NUSXRM2D-BzCJ6MAu.js +20 -0
- package/dist/client/assets/xychartDiagram-5P7HB3ND-BSlFecop.js +7 -0
- package/dist/client/favicon.png +0 -0
- package/dist/client/favicon.svg +15 -0
- package/dist/client/fonts/body-medium.woff2 +0 -0
- package/dist/client/fonts/body-regular-italic.woff2 +0 -0
- package/dist/client/fonts/body-regular.woff2 +0 -0
- package/dist/client/fonts/body-semibold.woff2 +0 -0
- package/dist/client/index.html +31 -0
- package/dist/client/manifest.webmanifest +12 -0
- package/dist/client/sw.js +32 -0
- package/package.json +122 -0
- package/src/nats/auth-callout/callout-config.test.ts +93 -0
- package/src/nats/auth-callout/callout-config.ts +109 -0
- package/src/nats/auth-callout/callout.integration.test.ts +332 -0
- package/src/nats/auth-callout/keys.ts +103 -0
- package/src/nats/auth-callout/responder.ts +241 -0
- package/src/nats/auth-callout/scope-policy.test.ts +159 -0
- package/src/nats/auth-callout/scope-policy.ts +210 -0
- package/src/nats/auth-callout/token.test.ts +163 -0
- package/src/nats/auth-callout/token.ts +157 -0
- package/src/nats/nats-daemon-callout.ts +194 -0
- package/src/nats/nats-daemon.test.ts +77 -0
- package/src/nats/nats-daemon.ts +50 -0
- package/src/nats/nats-token.test.ts +61 -0
- package/src/nats/nats-token.ts +59 -0
- package/src/runner/coordination-mcp-integration.test.ts +134 -0
- package/src/runner/nats-coordination-client.test.ts +49 -0
- package/src/runner/nats-coordination-client.ts +94 -0
- package/src/runner/runner-agent.test.ts +469 -0
- package/src/runner/runner-agent.ts +453 -0
- package/src/runner/runner-credential.test.ts +93 -0
- package/src/runner/runner-credential.ts +82 -0
- package/src/runner/runner-nats.test.ts +495 -0
- package/src/runner/runner-nats.ts +323 -0
- package/src/runner/runner-pair.test.ts +107 -0
- package/src/runner/runner-pair.ts +81 -0
- package/src/runner/runner.test.ts +135 -0
- package/src/runner/runner.ts +212 -0
- package/src/runner/turn-factories.test.ts +97 -0
- package/src/runner/turn-factories.ts +475 -0
- package/src/server/agent-config-journey.test.ts +106 -0
- package/src/server/agent.ts +8 -0
- package/src/server/auto-continue/auth-error-detector.ts +66 -0
- package/src/server/auto-continue/limit-detector.ts +194 -0
- package/src/server/bm25.test.ts +92 -0
- package/src/server/bm25.ts +101 -0
- package/src/server/chat-events-jetstream.test.ts +135 -0
- package/src/server/claude-harness.ts +360 -0
- package/src/server/claude-pty/agent-normalizers.ts +309 -0
- package/src/server/claude-pty/auth.test.ts +38 -0
- package/src/server/claude-pty/auth.ts +32 -0
- package/src/server/claude-pty/claude-session-registry.adapter.ts +81 -0
- package/src/server/claude-pty/claude-session-registry.test.ts +149 -0
- package/src/server/claude-pty/driver.test.ts +902 -0
- package/src/server/claude-pty/driver.ts +807 -0
- package/src/server/claude-pty/jsonl-path.adapter.ts +57 -0
- package/src/server/claude-pty/jsonl-path.test.ts +114 -0
- package/src/server/claude-pty/jsonl-to-event.test.ts +241 -0
- package/src/server/claude-pty/jsonl-to-event.ts +174 -0
- package/src/server/claude-pty/output-ring.test.ts +35 -0
- package/src/server/claude-pty/output-ring.ts +25 -0
- package/src/server/claude-pty/parity-matrix.test.ts +227 -0
- package/src/server/claude-pty/pid-registry.adapter.ts +135 -0
- package/src/server/claude-pty/pid-registry.test.ts +122 -0
- package/src/server/claude-pty/preflight/binary-fingerprint.adapter.ts +20 -0
- package/src/server/claude-pty/preflight/binary-fingerprint.test.ts +32 -0
- package/src/server/claude-pty/pty-instance-registry.test.ts +177 -0
- package/src/server/claude-pty/pty-instance-registry.ts +166 -0
- package/src/server/claude-pty/pty-memory-sampler.adapter.test.ts +103 -0
- package/src/server/claude-pty/pty-memory-sampler.adapter.ts +85 -0
- package/src/server/claude-pty/pty-process.adapter.ts +66 -0
- package/src/server/claude-pty/pty-process.test.ts +49 -0
- package/src/server/claude-pty/resolve-binary.adapter.ts +106 -0
- package/src/server/claude-pty/resolve-binary.test.ts +118 -0
- package/src/server/claude-pty/runtime-dir.adapter.ts +19 -0
- package/src/server/claude-pty/settings-writer.adapter.ts +27 -0
- package/src/server/claude-pty/settings-writer.test.ts +22 -0
- package/src/server/claude-pty/smoke-test-io.adapter.ts +28 -0
- package/src/server/claude-pty/smoke-test.test.ts +191 -0
- package/src/server/claude-pty/smoke-test.ts +185 -0
- package/src/server/claude-pty/subagent-orchestrator.ts +887 -0
- package/src/server/claude-pty/tool-callback.ts +274 -0
- package/src/server/claude-pty/tui-control.test.ts +272 -0
- package/src/server/claude-pty/tui-control.ts +182 -0
- package/src/server/claude-pty/tui-source.adapter.test.ts +360 -0
- package/src/server/claude-pty/tui-source.adapter.ts +343 -0
- package/src/server/claude-pty/tunnel-gateway.ts +12 -0
- package/src/server/claude-pty-mcp/canonical-args.ts +15 -0
- package/src/server/claude-pty-mcp/fs-stat.adapter.ts +8 -0
- package/src/server/claude-pty-mcp/history-primer.ts +90 -0
- package/src/server/claude-pty-mcp/http-server.adapter.ts +33 -0
- package/src/server/claude-pty-mcp/mcp-http.ts +177 -0
- package/src/server/claude-pty-mcp/mcp.ts +412 -0
- package/src/server/claude-pty-mcp/mention-parser.ts +25 -0
- package/src/server/claude-pty-mcp/paths.ts +24 -0
- package/src/server/claude-pty-mcp/permission-gate.ts +243 -0
- package/src/server/claude-pty-mcp/terminal-pid-registry.adapter.ts +107 -0
- package/src/server/claude-pty-mcp/tools/ask-user-question.test.ts +119 -0
- package/src/server/claude-pty-mcp/tools/ask-user-question.ts +61 -0
- package/src/server/claude-pty-mcp/tools/bash.adapter.ts +76 -0
- package/src/server/claude-pty-mcp/tools/bash.test.ts +56 -0
- package/src/server/claude-pty-mcp/tools/delegate-subagent.test.ts +155 -0
- package/src/server/claude-pty-mcp/tools/delegate-subagent.ts +111 -0
- package/src/server/claude-pty-mcp/tools/edit.adapter.ts +95 -0
- package/src/server/claude-pty-mcp/tools/edit.test.ts +93 -0
- package/src/server/claude-pty-mcp/tools/exit-plan-mode.test.ts +61 -0
- package/src/server/claude-pty-mcp/tools/exit-plan-mode.ts +50 -0
- package/src/server/claude-pty-mcp/tools/glob.adapter.ts +86 -0
- package/src/server/claude-pty-mcp/tools/glob.test.ts +61 -0
- package/src/server/claude-pty-mcp/tools/grep.adapter.ts +126 -0
- package/src/server/claude-pty-mcp/tools/grep.test.ts +62 -0
- package/src/server/claude-pty-mcp/tools/read.adapter.ts +58 -0
- package/src/server/claude-pty-mcp/tools/read.test.ts +62 -0
- package/src/server/claude-pty-mcp/tools/tool-callback-shim.ts +42 -0
- package/src/server/claude-pty-mcp/tools/webfetch.test.ts +81 -0
- package/src/server/claude-pty-mcp/tools/webfetch.ts +82 -0
- package/src/server/claude-pty-mcp/tools/websearch.test.ts +40 -0
- package/src/server/claude-pty-mcp/tools/websearch.ts +42 -0
- package/src/server/claude-pty-mcp/tools/write.adapter.ts +60 -0
- package/src/server/claude-pty-mcp/tools/write.test.ts +52 -0
- package/src/server/claude-pty-mcp/uploads.adapter.ts +98 -0
- package/src/server/claude-pty-mcp/uploads.ts +38 -0
- package/src/server/claude-turn.test.ts +176 -0
- package/src/server/cli-runtime.test.ts +456 -0
- package/src/server/cli-runtime.ts +374 -0
- package/src/server/cli-supervisor.ts +81 -0
- package/src/server/cli.ts +78 -0
- package/src/server/client-log-forwarder.test.ts +74 -0
- package/src/server/client-log-forwarder.ts +75 -0
- package/src/server/codex-app-server-protocol.ts +449 -0
- package/src/server/codex-app-server.test.ts +2990 -0
- package/src/server/codex-app-server.ts +1713 -0
- package/src/server/coordination-integration.test.ts +63 -0
- package/src/server/coordination-mcp.test.ts +149 -0
- package/src/server/coordination-mcp.ts +197 -0
- package/src/server/delegation-coordinator.test.ts +675 -0
- package/src/server/delegation-coordinator.ts +454 -0
- package/src/server/discovery.test.ts +211 -0
- package/src/server/discovery.ts +301 -0
- package/src/server/event-store-agent-config.test.ts +124 -0
- package/src/server/event-store-coordination.test.ts +149 -0
- package/src/server/event-store-profile.test.ts +132 -0
- package/src/server/event-store-repo.test.ts +154 -0
- package/src/server/event-store-runner-team.test.ts +104 -0
- package/src/server/event-store.test.ts +342 -0
- package/src/server/event-store.ts +2208 -0
- package/src/server/events.ts +379 -0
- package/src/server/extension-router.test.ts +183 -0
- package/src/server/extension-router.ts +114 -0
- package/src/server/extensions/agents/server.test.ts +191 -0
- package/src/server/extensions/agents/server.ts +108 -0
- package/src/server/extensions/c3/server.test.ts +284 -0
- package/src/server/extensions/c3/server.ts +212 -0
- package/src/server/extensions/code/server.test.ts +200 -0
- package/src/server/extensions/code/server.ts +150 -0
- package/src/server/extensions.config.ts +10 -0
- package/src/server/external-open.ts +69 -0
- package/src/server/generate-fork-context.ts +58 -0
- package/src/server/generate-merge-context.test.ts +290 -0
- package/src/server/generate-merge-context.ts +141 -0
- package/src/server/generate-title.ts +36 -0
- package/src/server/git-clone-policy.test.ts +138 -0
- package/src/server/git-clone-policy.ts +27 -0
- package/src/server/harness-types.ts +1 -0
- package/src/server/journey-verification.test.ts +640 -0
- package/src/server/journey-verification.ts +195 -0
- package/src/server/machine-name.ts +22 -0
- package/src/server/nats-auth.test.ts +92 -0
- package/src/server/nats-auth.ts +6 -0
- package/src/server/nats-bind-guard.test.ts +71 -0
- package/src/server/nats-bind-guard.ts +42 -0
- package/src/server/nats-bridge.test.ts +141 -0
- package/src/server/nats-bridge.ts +111 -0
- package/src/server/nats-connector.test.ts +56 -0
- package/src/server/nats-connector.ts +71 -0
- package/src/server/nats-daemon-manager.test.ts +76 -0
- package/src/server/nats-daemon-manager.ts +174 -0
- package/src/server/nats-publisher.test.ts +356 -0
- package/src/server/nats-publisher.ts +271 -0
- package/src/server/nats-responders.test.ts +1018 -0
- package/src/server/nats-responders.ts +925 -0
- package/src/server/nats-streams.test.ts +112 -0
- package/src/server/nats-streams.ts +129 -0
- package/src/server/oauth-pool/oauth-responders.ts +185 -0
- package/src/server/oauth-pool/oauth-settings-store.ts +173 -0
- package/src/server/oauth-pool/oauth-token-pool.ts +303 -0
- package/src/server/orchestration.test.ts +1063 -0
- package/src/server/orchestration.ts +716 -0
- package/src/server/pairing-endpoints.test.ts +171 -0
- package/src/server/pairing-store.test.ts +154 -0
- package/src/server/pairing-store.ts +124 -0
- package/src/server/paths.ts +27 -0
- package/src/server/pr3-liveness.test.ts +252 -0
- package/src/server/process-utils.ts +10 -0
- package/src/server/project-cli.ts +180 -0
- package/src/server/provider-catalog.test.ts +177 -0
- package/src/server/provider-catalog.ts +146 -0
- package/src/server/pty-responders.ts +345 -0
- package/src/server/push-notifications.test.ts +234 -0
- package/src/server/push-notifications.ts +188 -0
- package/src/server/quick-response.test.ts +196 -0
- package/src/server/quick-response.ts +154 -0
- package/src/server/read-models-agent-config.test.ts +59 -0
- package/src/server/read-models-coordination.test.ts +69 -0
- package/src/server/read-models.test.ts +332 -0
- package/src/server/read-models.ts +258 -0
- package/src/server/repo-journey.test.ts +96 -0
- package/src/server/repo-manager.test.ts +118 -0
- package/src/server/repo-manager.ts +97 -0
- package/src/server/repo-status.test.ts +54 -0
- package/src/server/repo-status.ts +82 -0
- package/src/server/restart.test.ts +27 -0
- package/src/server/restart.ts +30 -0
- package/src/server/runner-incompatible-gate.test.ts +383 -0
- package/src/server/runner-manager.test.ts +72 -0
- package/src/server/runner-manager.ts +312 -0
- package/src/server/runner-pairing-urls.test.ts +59 -0
- package/src/server/runner-pairing-urls.ts +67 -0
- package/src/server/runner-proxy.test.ts +456 -0
- package/src/server/runner-proxy.ts +494 -0
- package/src/server/runner-router.test.ts +429 -0
- package/src/server/runner-router.ts +212 -0
- package/src/server/runner-routing.test.ts +584 -0
- package/src/server/runtime-registry.test.ts +436 -0
- package/src/server/runtime-registry.ts +307 -0
- package/src/server/sandbox-health.test.ts +127 -0
- package/src/server/sandbox-health.ts +94 -0
- package/src/server/sandbox-journey.test.ts +232 -0
- package/src/server/sandbox-manager.test.ts +146 -0
- package/src/server/sandbox-manager.ts +159 -0
- package/src/server/server.test.ts +287 -0
- package/src/server/server.ts +1108 -0
- package/src/server/session-discovery.test.ts +129 -0
- package/src/server/session-discovery.ts +475 -0
- package/src/server/session-index.test.ts +362 -0
- package/src/server/session-index.ts +119 -0
- package/src/server/session-seed.ts +288 -0
- package/src/server/share.test.ts +108 -0
- package/src/server/share.ts +113 -0
- package/src/server/skill-discovery.test.ts +201 -0
- package/src/server/skill-discovery.ts +77 -0
- package/src/server/storage/test-helpers.ts +67 -0
- package/src/server/terminal-manager.test.ts +309 -0
- package/src/server/terminal-manager.ts +354 -0
- package/src/server/transcript-consumer.test.ts +339 -0
- package/src/server/transcript-consumer.ts +162 -0
- package/src/server/transcript-search.test.ts +193 -0
- package/src/server/transcript-search.ts +83 -0
- package/src/server/transcript-utils.ts +52 -0
- package/src/server/update-manager.test.ts +107 -0
- package/src/server/update-manager.ts +230 -0
- package/src/server/workflow-engine.test.ts +251 -0
- package/src/server/workflow-engine.ts +169 -0
- package/src/server/workflow-mcp.ts +49 -0
- package/src/server/workflow-store.test.ts +155 -0
- package/src/server/workflow-store.ts +139 -0
- package/src/server/workspace-agent-integration.test.ts +167 -0
- package/src/server/workspace-agent-routes.test.ts +127 -0
- package/src/server/workspace-agent-routes.ts +89 -0
- package/src/server/workspace-agent.test.ts +103 -0
- package/src/server/workspace-agent.ts +102 -0
- package/src/server/workspace-cli.test.ts +79 -0
- package/src/server/workspace-config-manager.test.ts +109 -0
- package/src/server/workspace-config-manager.ts +83 -0
- package/src/server/workspace-directory-policy.test.ts +109 -0
- package/src/server/workspace-directory-policy.ts +56 -0
- package/src/shared/agent-config-types.ts +25 -0
- package/src/shared/branding.test.ts +42 -0
- package/src/shared/branding.ts +54 -0
- package/src/shared/compression.test.ts +85 -0
- package/src/shared/compression.ts +42 -0
- package/src/shared/coordination-store.test.ts +24 -0
- package/src/shared/coordination-store.ts +26 -0
- package/src/shared/dev-ports.test.ts +84 -0
- package/src/shared/dev-ports.ts +100 -0
- package/src/shared/extension-types.ts +45 -0
- package/src/shared/fork-presets.ts +54 -0
- package/src/shared/harness-types.test.ts +15 -0
- package/src/shared/harness-types.ts +21 -0
- package/src/shared/log-sink.test.ts +112 -0
- package/src/shared/log-sink.ts +185 -0
- package/src/shared/mention-pattern.ts +7 -0
- package/src/shared/merge-presets.ts +41 -0
- package/src/shared/nats-subjects.test.ts +61 -0
- package/src/shared/nats-subjects.ts +131 -0
- package/src/shared/permission-policy.ts +136 -0
- package/src/shared/ports.ts +3 -0
- package/src/shared/preset-types.ts +15 -0
- package/src/shared/profile-types.ts +49 -0
- package/src/shared/projectFileUrl.ts +36 -0
- package/src/shared/protocol.ts +153 -0
- package/src/shared/pty-instance.ts +43 -0
- package/src/shared/puggy/diagnostics/result.ts +18 -0
- package/src/shared/puggy/expressions/evaluate.ts +292 -0
- package/src/shared/puggy/index.test.ts +101 -0
- package/src/shared/puggy/index.ts +69 -0
- package/src/shared/puggy/parser/ast.ts +110 -0
- package/src/shared/puggy/parser/parser.ts +624 -0
- package/src/shared/puggy/renderer/html.ts +447 -0
- package/src/shared/runner-protocol.test.ts +277 -0
- package/src/shared/runner-protocol.ts +210 -0
- package/src/shared/runner-team-types.ts +73 -0
- package/src/shared/runtime-types.ts +48 -0
- package/src/shared/sandbox-types.ts +53 -0
- package/src/shared/tailwind-build.test.ts +12 -0
- package/src/shared/tinkaria-system-prompt.ts +101 -0
- package/src/shared/tools.test.ts +335 -0
- package/src/shared/tools.ts +397 -0
- package/src/shared/transcript-entries.ts +27 -0
- package/src/shared/transcript-render.test.ts +225 -0
- package/src/shared/transcript-render.ts +467 -0
- package/src/shared/types.ts +1031 -0
- package/src/shared/vite-config.test.ts +47 -0
- package/src/shared/web-context.test.ts +110 -0
- package/src/shared/web-context.ts +76 -0
- package/src/shared/workflow-types.ts +51 -0
- package/src/shared/workspace-types.ts +100 -0
|
@@ -0,0 +1,1031 @@
|
|
|
1
|
+
export const STORE_VERSION = 3 as const
|
|
2
|
+
export const PROTOCOL_VERSION = 1 as const
|
|
3
|
+
|
|
4
|
+
export type AgentProvider = "claude" | "codex" | "claude-pty"
|
|
5
|
+
|
|
6
|
+
// === OAuth token pool (claude-pty auth) ===
|
|
7
|
+
|
|
8
|
+
export type OAuthTokenStatus = "active" | "limited" | "error" | "disabled"
|
|
9
|
+
|
|
10
|
+
export interface OAuthTokenEntry {
|
|
11
|
+
id: string
|
|
12
|
+
label: string
|
|
13
|
+
token: string
|
|
14
|
+
status: OAuthTokenStatus
|
|
15
|
+
limitedUntil: number | null
|
|
16
|
+
lastUsedAt: number | null
|
|
17
|
+
lastErrorAt: number | null
|
|
18
|
+
lastErrorMessage: string | null
|
|
19
|
+
addedAt: number
|
|
20
|
+
/** Per-token concurrent-chat cap. Falls back to ClaudeAuthSettings.concurrencyDefault. */
|
|
21
|
+
maxConcurrent?: number
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ClaudeAuthSettings {
|
|
25
|
+
tokens: OAuthTokenEntry[]
|
|
26
|
+
concurrencyDefault: number
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const OAUTH_TOKEN_MAX_CONCURRENT_MIN = 1
|
|
30
|
+
export const OAUTH_TOKEN_MAX_CONCURRENT_MAX = 5
|
|
31
|
+
export const OAUTH_TOKEN_CONCURRENCY_DEFAULT = 1
|
|
32
|
+
export const OAUTH_TOKEN_LABEL_MAX = 64
|
|
33
|
+
export const OAUTH_TOKEN_VALUE_MAX = 1024
|
|
34
|
+
|
|
35
|
+
export const CLAUDE_AUTH_DEFAULTS: ClaudeAuthSettings = {
|
|
36
|
+
tokens: [],
|
|
37
|
+
concurrencyDefault: OAUTH_TOKEN_CONCURRENCY_DEFAULT,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface ProviderModelOption {
|
|
41
|
+
id: string
|
|
42
|
+
label: string
|
|
43
|
+
supportsEffort: boolean
|
|
44
|
+
contextWindowOptions?: readonly ProviderContextWindowOption[]
|
|
45
|
+
description?: string
|
|
46
|
+
supportedEffortLevels?: string[]
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface ProviderEffortOption {
|
|
50
|
+
id: string
|
|
51
|
+
label: string
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface ProviderContextWindowOption {
|
|
55
|
+
id: ClaudeContextWindow
|
|
56
|
+
label: string
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export const CLAUDE_REASONING_OPTIONS = [
|
|
60
|
+
{ id: "low", label: "Low" },
|
|
61
|
+
{ id: "medium", label: "Medium" },
|
|
62
|
+
{ id: "high", label: "High" },
|
|
63
|
+
{ id: "max", label: "Max" },
|
|
64
|
+
] as const satisfies readonly ProviderEffortOption[]
|
|
65
|
+
|
|
66
|
+
export const CODEX_REASONING_OPTIONS = [
|
|
67
|
+
{ id: "minimal", label: "Minimal" },
|
|
68
|
+
{ id: "low", label: "Low" },
|
|
69
|
+
{ id: "medium", label: "Medium" },
|
|
70
|
+
{ id: "high", label: "High" },
|
|
71
|
+
{ id: "xhigh", label: "XHigh" },
|
|
72
|
+
] as const satisfies readonly ProviderEffortOption[]
|
|
73
|
+
|
|
74
|
+
export type ClaudeReasoningEffort = (typeof CLAUDE_REASONING_OPTIONS)[number]["id"]
|
|
75
|
+
export type CodexReasoningEffort = (typeof CODEX_REASONING_OPTIONS)[number]["id"]
|
|
76
|
+
export type ClaudeContextWindow = "200k" | "1m"
|
|
77
|
+
export type ServiceTier = "fast"
|
|
78
|
+
|
|
79
|
+
export interface ClaudeModelOptions {
|
|
80
|
+
reasoningEffort: ClaudeReasoningEffort
|
|
81
|
+
contextWindow: ClaudeContextWindow
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface CodexModelOptions {
|
|
85
|
+
reasoningEffort: CodexReasoningEffort
|
|
86
|
+
fastMode: boolean
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface ClaudePtyModelOptions {
|
|
90
|
+
reasoningEffort: ClaudeReasoningEffort
|
|
91
|
+
contextWindow: ClaudeContextWindow
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface ProviderModelOptionsByProvider {
|
|
95
|
+
claude: ClaudeModelOptions
|
|
96
|
+
codex: CodexModelOptions
|
|
97
|
+
"claude-pty": ClaudePtyModelOptions
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export type ModelOptions = Partial<{
|
|
101
|
+
[K in AgentProvider]: Partial<ProviderModelOptionsByProvider[K]>
|
|
102
|
+
}>
|
|
103
|
+
|
|
104
|
+
export const DEFAULT_CLAUDE_MODEL_OPTIONS = {
|
|
105
|
+
reasoningEffort: "high",
|
|
106
|
+
contextWindow: "200k",
|
|
107
|
+
} as const satisfies ClaudeModelOptions
|
|
108
|
+
|
|
109
|
+
export const DEFAULT_CODEX_MODEL_OPTIONS = {
|
|
110
|
+
reasoningEffort: "high",
|
|
111
|
+
fastMode: false,
|
|
112
|
+
} as const satisfies CodexModelOptions
|
|
113
|
+
|
|
114
|
+
export const DEFAULT_CLAUDE_PTY_MODEL_OPTIONS = {
|
|
115
|
+
reasoningEffort: "high",
|
|
116
|
+
contextWindow: "200k",
|
|
117
|
+
} as const satisfies ClaudePtyModelOptions
|
|
118
|
+
|
|
119
|
+
export function isClaudeReasoningEffort(value: unknown): value is ClaudeReasoningEffort {
|
|
120
|
+
return CLAUDE_REASONING_OPTIONS.some((option) => option.id === value)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function isCodexReasoningEffort(value: unknown): value is CodexReasoningEffort {
|
|
124
|
+
return CODEX_REASONING_OPTIONS.some((option) => option.id === value)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export const CLAUDE_CONTEXT_WINDOW_OPTIONS = [
|
|
128
|
+
{ id: "200k", label: "200k" },
|
|
129
|
+
{ id: "1m", label: "1M" },
|
|
130
|
+
] as const satisfies readonly ProviderContextWindowOption[]
|
|
131
|
+
|
|
132
|
+
export function isClaudeContextWindow(value: unknown): value is ClaudeContextWindow {
|
|
133
|
+
return CLAUDE_CONTEXT_WINDOW_OPTIONS.some((option) => option.id === value)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface ProviderCatalogEntry {
|
|
137
|
+
id: AgentProvider
|
|
138
|
+
label: string
|
|
139
|
+
defaultModel: string
|
|
140
|
+
defaultEffort?: string
|
|
141
|
+
supportsPlanMode: boolean
|
|
142
|
+
models: ProviderModelOption[]
|
|
143
|
+
efforts: ProviderEffortOption[]
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export const PROVIDERS: ProviderCatalogEntry[] = [
|
|
147
|
+
{
|
|
148
|
+
id: "claude",
|
|
149
|
+
label: "Claude",
|
|
150
|
+
defaultModel: "opus",
|
|
151
|
+
defaultEffort: "high",
|
|
152
|
+
supportsPlanMode: true,
|
|
153
|
+
models: [
|
|
154
|
+
{ id: "opus", label: "Opus", supportsEffort: true, contextWindowOptions: [...CLAUDE_CONTEXT_WINDOW_OPTIONS] },
|
|
155
|
+
{ id: "sonnet", label: "Sonnet", supportsEffort: true, contextWindowOptions: [...CLAUDE_CONTEXT_WINDOW_OPTIONS] },
|
|
156
|
+
{ id: "haiku", label: "Haiku", supportsEffort: true },
|
|
157
|
+
],
|
|
158
|
+
efforts: [...CLAUDE_REASONING_OPTIONS],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
id: "codex",
|
|
162
|
+
label: "Codex",
|
|
163
|
+
defaultModel: "gpt-5.4",
|
|
164
|
+
supportsPlanMode: true,
|
|
165
|
+
models: [
|
|
166
|
+
{ id: "gpt-5.4", label: "GPT-5.4", supportsEffort: false },
|
|
167
|
+
{ id: "gpt-5.3-codex", label: "GPT-5.3 Codex", supportsEffort: false },
|
|
168
|
+
{ id: "gpt-5.3-codex-spark", label: "GPT-5.3 Codex Spark", supportsEffort: false },
|
|
169
|
+
],
|
|
170
|
+
efforts: [],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: "claude-pty",
|
|
174
|
+
label: "Claude (PTY)",
|
|
175
|
+
defaultModel: "opus",
|
|
176
|
+
defaultEffort: "high",
|
|
177
|
+
supportsPlanMode: true,
|
|
178
|
+
models: [
|
|
179
|
+
{ id: "opus", label: "Opus", supportsEffort: true, contextWindowOptions: [...CLAUDE_CONTEXT_WINDOW_OPTIONS] },
|
|
180
|
+
{ id: "sonnet", label: "Sonnet", supportsEffort: true, contextWindowOptions: [...CLAUDE_CONTEXT_WINDOW_OPTIONS] },
|
|
181
|
+
{ id: "haiku", label: "Haiku", supportsEffort: true },
|
|
182
|
+
],
|
|
183
|
+
efforts: [...CLAUDE_REASONING_OPTIONS],
|
|
184
|
+
},
|
|
185
|
+
]
|
|
186
|
+
|
|
187
|
+
export function getProviderCatalog(provider: AgentProvider): ProviderCatalogEntry {
|
|
188
|
+
const entry = PROVIDERS.find((candidate) => candidate.id === provider)
|
|
189
|
+
if (!entry) {
|
|
190
|
+
throw new Error(`Unknown provider: ${provider}`)
|
|
191
|
+
}
|
|
192
|
+
return entry
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export function getClaudeModelOption(modelId: string): ProviderModelOption | undefined {
|
|
196
|
+
return getProviderCatalog("claude").models.find((candidate) => candidate.id === modelId)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function getClaudeContextWindowOptions(modelId: string): readonly ProviderContextWindowOption[] {
|
|
200
|
+
return getClaudeModelOption(modelId)?.contextWindowOptions ?? []
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export function normalizeClaudeContextWindow(modelId: string, contextWindow?: unknown): ClaudeContextWindow {
|
|
204
|
+
const options = getClaudeContextWindowOptions(modelId)
|
|
205
|
+
if (options.length === 0) return DEFAULT_CLAUDE_MODEL_OPTIONS.contextWindow
|
|
206
|
+
return options.some((option) => option.id === contextWindow)
|
|
207
|
+
? contextWindow as ClaudeContextWindow
|
|
208
|
+
: DEFAULT_CLAUDE_MODEL_OPTIONS.contextWindow
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export function resolveClaudeApiModelId(modelId: string, contextWindow?: ClaudeContextWindow): string {
|
|
212
|
+
return contextWindow === "1m" ? `${modelId}[1m]` : modelId
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export type SessionStatus =
|
|
216
|
+
| "idle"
|
|
217
|
+
| "starting"
|
|
218
|
+
| "running"
|
|
219
|
+
| "waiting_for_user"
|
|
220
|
+
| "failed"
|
|
221
|
+
| "awaiting_agents"
|
|
222
|
+
|
|
223
|
+
export interface RepoSummary {
|
|
224
|
+
id: string
|
|
225
|
+
workspaceId: string
|
|
226
|
+
label: string | null
|
|
227
|
+
origin: string | null
|
|
228
|
+
localPath: string
|
|
229
|
+
status: "cloned" | "pending" | "error"
|
|
230
|
+
branch: string | null
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface WorkspaceSummary {
|
|
234
|
+
id: string
|
|
235
|
+
localPath: string
|
|
236
|
+
title: string
|
|
237
|
+
createdAt: number
|
|
238
|
+
updatedAt: number
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export interface SidebarChatRow {
|
|
242
|
+
_id: string
|
|
243
|
+
_creationTime: number
|
|
244
|
+
chatId: string
|
|
245
|
+
title: string
|
|
246
|
+
status: SessionStatus
|
|
247
|
+
unread: boolean
|
|
248
|
+
localPath: string
|
|
249
|
+
provider: AgentProvider | null
|
|
250
|
+
model?: string | null
|
|
251
|
+
lastMessageAt?: number
|
|
252
|
+
hasAutomation: boolean
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export interface SidebarWorkspaceGroup {
|
|
256
|
+
groupKey: string
|
|
257
|
+
localPath: string
|
|
258
|
+
chats: SidebarChatRow[]
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export interface SidebarData {
|
|
262
|
+
workspaceGroups: SidebarWorkspaceGroup[]
|
|
263
|
+
independentWorkspaces: IndependentWorkspace[]
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export interface IndependentWorkspace {
|
|
267
|
+
id: string
|
|
268
|
+
name: string
|
|
269
|
+
createdAt: number
|
|
270
|
+
updatedAt: number
|
|
271
|
+
/** Pinned workspaces sort to the top. Absent = unpinned. */
|
|
272
|
+
pinned?: boolean
|
|
273
|
+
/** Explicit ordering within the pinned/unpinned group; lower renders higher. Absent sorts last. */
|
|
274
|
+
sortOrder?: number
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Canonical ordering for independent workspaces, shared by the persisted
|
|
279
|
+
* snapshot and the client-facing sidebar read-model so both surfaces agree:
|
|
280
|
+
* pinned first, then explicit `sortOrder`, then creation time.
|
|
281
|
+
*/
|
|
282
|
+
export function compareIndependentWorkspaces(a: IndependentWorkspace, b: IndependentWorkspace): number {
|
|
283
|
+
const aPinned = a.pinned ? 0 : 1
|
|
284
|
+
const bPinned = b.pinned ? 0 : 1
|
|
285
|
+
if (aPinned !== bPinned) return aPinned - bPinned
|
|
286
|
+
const aOrder = a.sortOrder ?? Number.MAX_SAFE_INTEGER
|
|
287
|
+
const bOrder = b.sortOrder ?? Number.MAX_SAFE_INTEGER
|
|
288
|
+
if (aOrder !== bOrder) return aOrder - bOrder
|
|
289
|
+
return a.createdAt - b.createdAt
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export interface DiscoveredSessionRuntime {
|
|
293
|
+
model?: string
|
|
294
|
+
tokenUsage?: DiscoveredSessionTokenUsage
|
|
295
|
+
usageBuckets?: DiscoveredSessionUsageBucket[]
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface DiscoveredSessionTokenUsage {
|
|
299
|
+
totalTokens: number
|
|
300
|
+
contextWindow?: number
|
|
301
|
+
contextLeft?: number
|
|
302
|
+
estimatedContextPercent?: number
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export interface DiscoveredSessionUsageBucket {
|
|
306
|
+
label: string
|
|
307
|
+
usedPercent: number
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export interface LocalWorkspaceSummary {
|
|
311
|
+
localPath: string
|
|
312
|
+
title: string
|
|
313
|
+
source: "saved" | "discovered"
|
|
314
|
+
lastOpenedAt?: number
|
|
315
|
+
chatCount: number
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export interface LocalWorkspacesSnapshot {
|
|
319
|
+
machine: {
|
|
320
|
+
id: "local"
|
|
321
|
+
displayName: string
|
|
322
|
+
}
|
|
323
|
+
workspaces: LocalWorkspaceSummary[]
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export type UpdateStatus =
|
|
327
|
+
| "idle"
|
|
328
|
+
| "checking"
|
|
329
|
+
| "available"
|
|
330
|
+
| "up_to_date"
|
|
331
|
+
| "updating"
|
|
332
|
+
| "restart_pending"
|
|
333
|
+
| "error"
|
|
334
|
+
|
|
335
|
+
export interface UpdateSnapshot {
|
|
336
|
+
currentVersion: string
|
|
337
|
+
latestVersion: string | null
|
|
338
|
+
status: UpdateStatus
|
|
339
|
+
updateAvailable: boolean
|
|
340
|
+
lastCheckedAt: number | null
|
|
341
|
+
error: string | null
|
|
342
|
+
installAction: "restart" | "reload"
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export type UpdateInstallErrorCode =
|
|
346
|
+
| "version_not_live_yet"
|
|
347
|
+
| "install_failed"
|
|
348
|
+
| "command_missing"
|
|
349
|
+
|
|
350
|
+
export interface UpdateInstallResult {
|
|
351
|
+
ok: boolean
|
|
352
|
+
action: "restart" | "reload"
|
|
353
|
+
errorCode: UpdateInstallErrorCode | null
|
|
354
|
+
userTitle: string | null
|
|
355
|
+
userMessage: string | null
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
export interface McpServerInfo {
|
|
359
|
+
name: string
|
|
360
|
+
status: string
|
|
361
|
+
error?: string
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
export interface AccountInfo {
|
|
365
|
+
email?: string
|
|
366
|
+
organization?: string
|
|
367
|
+
subscriptionType?: string
|
|
368
|
+
tokenSource?: string
|
|
369
|
+
apiKeySource?: string
|
|
370
|
+
oauthKeyMasked?: string | null
|
|
371
|
+
accountLabel?: string | null
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// === claude-pty additions ===
|
|
375
|
+
|
|
376
|
+
export interface SlashCommand {
|
|
377
|
+
name: string
|
|
378
|
+
description: string
|
|
379
|
+
argumentHint: string
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
export interface ContextWindowUsageSnapshot {
|
|
383
|
+
usedTokens: number
|
|
384
|
+
totalProcessedTokens?: number
|
|
385
|
+
maxTokens?: number
|
|
386
|
+
inputTokens?: number
|
|
387
|
+
cachedInputTokens?: number
|
|
388
|
+
outputTokens?: number
|
|
389
|
+
reasoningOutputTokens?: number
|
|
390
|
+
lastUsedTokens?: number
|
|
391
|
+
lastInputTokens?: number
|
|
392
|
+
lastCachedInputTokens?: number
|
|
393
|
+
lastOutputTokens?: number
|
|
394
|
+
lastReasoningOutputTokens?: number
|
|
395
|
+
toolUses?: number
|
|
396
|
+
durationMs?: number
|
|
397
|
+
compactsAutomatically: boolean
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export type McpServerTransport = "stdio" | "http" | "sse" | "ws"
|
|
401
|
+
|
|
402
|
+
export type McpServerTestResult =
|
|
403
|
+
| { status: "untested" }
|
|
404
|
+
| { status: "pending"; startedAt: string }
|
|
405
|
+
| { status: "ok"; testedAt: string; toolCount: number }
|
|
406
|
+
| { status: "error"; testedAt: string; message: string }
|
|
407
|
+
|
|
408
|
+
export interface McpServerBaseFields {
|
|
409
|
+
id: string
|
|
410
|
+
name: string
|
|
411
|
+
enabled: boolean
|
|
412
|
+
createdAt: string
|
|
413
|
+
updatedAt: string
|
|
414
|
+
lastTest: McpServerTestResult
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
export interface McpServerStdioFields {
|
|
418
|
+
transport: "stdio"
|
|
419
|
+
command: string
|
|
420
|
+
args: string[]
|
|
421
|
+
env: Record<string, string>
|
|
422
|
+
cwd?: string
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export interface McpServerNetworkFields {
|
|
426
|
+
transport: "http" | "sse" | "ws"
|
|
427
|
+
url: string
|
|
428
|
+
headers: Record<string, string>
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export type McpServerConfig =
|
|
432
|
+
| (McpServerBaseFields & McpServerStdioFields)
|
|
433
|
+
| (McpServerBaseFields & McpServerNetworkFields)
|
|
434
|
+
|
|
435
|
+
export type AttachmentKind = "image" | "file"
|
|
436
|
+
|
|
437
|
+
export interface ChatAttachment {
|
|
438
|
+
id: string
|
|
439
|
+
kind: AttachmentKind
|
|
440
|
+
displayName: string
|
|
441
|
+
absolutePath: string
|
|
442
|
+
relativePath: string
|
|
443
|
+
contentUrl: string
|
|
444
|
+
mimeType: string
|
|
445
|
+
size: number
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
export type SubagentContextScope = "previous-assistant-reply" | "full-transcript"
|
|
449
|
+
|
|
450
|
+
export interface Subagent {
|
|
451
|
+
id: string
|
|
452
|
+
name: string
|
|
453
|
+
description?: string
|
|
454
|
+
provider: AgentProvider
|
|
455
|
+
model: string
|
|
456
|
+
modelOptions: ClaudeModelOptions | CodexModelOptions
|
|
457
|
+
systemPrompt: string
|
|
458
|
+
contextScope: SubagentContextScope
|
|
459
|
+
createdAt: number
|
|
460
|
+
updatedAt: number
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
export type KannaStatus =
|
|
464
|
+
| "idle"
|
|
465
|
+
| "starting"
|
|
466
|
+
| "running"
|
|
467
|
+
| "waiting_for_user"
|
|
468
|
+
| "failed"
|
|
469
|
+
|
|
470
|
+
export interface PendingToolSnapshot {
|
|
471
|
+
toolUseId: string
|
|
472
|
+
toolKind: "ask_user_question" | "exit_plan_mode"
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
export interface QueuedChatMessage {
|
|
476
|
+
id: string
|
|
477
|
+
content: string
|
|
478
|
+
attachments: ChatAttachment[]
|
|
479
|
+
createdAt: number
|
|
480
|
+
provider?: AgentProvider
|
|
481
|
+
model?: string
|
|
482
|
+
modelOptions?: ModelOptions
|
|
483
|
+
planMode?: boolean
|
|
484
|
+
autoContinue?: { scheduleId: string }
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// === end claude-pty additions ===
|
|
488
|
+
|
|
489
|
+
export interface AskUserQuestionOption {
|
|
490
|
+
label: string
|
|
491
|
+
description?: string
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export interface AskUserQuestionItem {
|
|
495
|
+
id?: string
|
|
496
|
+
question: string
|
|
497
|
+
header?: string
|
|
498
|
+
options?: AskUserQuestionOption[]
|
|
499
|
+
multiSelect?: boolean
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export type AskUserQuestionAnswerMap = Record<string, string[]>
|
|
503
|
+
|
|
504
|
+
export interface TodoItem {
|
|
505
|
+
content: string
|
|
506
|
+
status: "pending" | "in_progress" | "completed"
|
|
507
|
+
activeForm: string
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
interface TranscriptEntryBase {
|
|
511
|
+
_id: string
|
|
512
|
+
messageId?: string
|
|
513
|
+
createdAt: number
|
|
514
|
+
hidden?: boolean
|
|
515
|
+
debugRaw?: string
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
interface ToolCallBase<TKind extends string, TInput> {
|
|
519
|
+
kind: "tool"
|
|
520
|
+
toolKind: TKind
|
|
521
|
+
toolName: string
|
|
522
|
+
toolId: string
|
|
523
|
+
input: TInput
|
|
524
|
+
rawInput?: Record<string, unknown>
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
export interface AskUserQuestionToolCall
|
|
528
|
+
extends ToolCallBase<"ask_user_question", { questions: AskUserQuestionItem[] }> { }
|
|
529
|
+
|
|
530
|
+
export interface PresentContentInput {
|
|
531
|
+
title: string
|
|
532
|
+
kind: "markdown" | "code" | "diagram"
|
|
533
|
+
format: string
|
|
534
|
+
source: string
|
|
535
|
+
summary?: string
|
|
536
|
+
collapsed?: boolean
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export interface PresentContentToolCall
|
|
540
|
+
extends ToolCallBase<"present_content", PresentContentInput> { }
|
|
541
|
+
|
|
542
|
+
export interface ExitPlanModeToolCall
|
|
543
|
+
extends ToolCallBase<"exit_plan_mode", { plan?: string; summary?: string }> { }
|
|
544
|
+
|
|
545
|
+
export interface TodoWriteToolCall
|
|
546
|
+
extends ToolCallBase<"todo_write", { todos: TodoItem[] }> { }
|
|
547
|
+
|
|
548
|
+
export interface SkillToolCall
|
|
549
|
+
extends ToolCallBase<"skill", { skill: string }> { }
|
|
550
|
+
|
|
551
|
+
export interface GlobToolCall
|
|
552
|
+
extends ToolCallBase<"glob", { pattern: string }> { }
|
|
553
|
+
|
|
554
|
+
export interface GrepToolCall
|
|
555
|
+
extends ToolCallBase<"grep", { pattern: string; outputMode?: string }> { }
|
|
556
|
+
|
|
557
|
+
export interface BashToolCall
|
|
558
|
+
extends ToolCallBase<"bash", { command: string; description?: string; timeoutMs?: number; runInBackground?: boolean }> { }
|
|
559
|
+
|
|
560
|
+
export interface WebSearchToolCall
|
|
561
|
+
extends ToolCallBase<"web_search", { query: string }> { }
|
|
562
|
+
|
|
563
|
+
export interface ReadFileToolCall
|
|
564
|
+
extends ToolCallBase<"read_file", { filePath: string }> { }
|
|
565
|
+
|
|
566
|
+
export interface WriteFileToolCall
|
|
567
|
+
extends ToolCallBase<"write_file", { filePath: string; content: string }> { }
|
|
568
|
+
|
|
569
|
+
export interface EditFileToolCall
|
|
570
|
+
extends ToolCallBase<"edit_file", { filePath: string; oldString: string; newString: string }> { }
|
|
571
|
+
|
|
572
|
+
export interface SubagentTaskToolCall
|
|
573
|
+
extends ToolCallBase<"subagent_task", { subagentType?: string }> { }
|
|
574
|
+
|
|
575
|
+
export interface McpGenericToolCall
|
|
576
|
+
extends ToolCallBase<"mcp_generic", { server: string; tool: string; payload: Record<string, unknown> }> { }
|
|
577
|
+
|
|
578
|
+
export interface UnknownToolCall
|
|
579
|
+
extends ToolCallBase<"unknown_tool", { payload: Record<string, unknown> }> { }
|
|
580
|
+
|
|
581
|
+
export type NormalizedToolCall =
|
|
582
|
+
| AskUserQuestionToolCall
|
|
583
|
+
| PresentContentToolCall
|
|
584
|
+
| ExitPlanModeToolCall
|
|
585
|
+
| TodoWriteToolCall
|
|
586
|
+
| SkillToolCall
|
|
587
|
+
| GlobToolCall
|
|
588
|
+
| GrepToolCall
|
|
589
|
+
| BashToolCall
|
|
590
|
+
| WebSearchToolCall
|
|
591
|
+
| ReadFileToolCall
|
|
592
|
+
| WriteFileToolCall
|
|
593
|
+
| EditFileToolCall
|
|
594
|
+
| SubagentTaskToolCall
|
|
595
|
+
| McpGenericToolCall
|
|
596
|
+
| UnknownToolCall
|
|
597
|
+
|
|
598
|
+
export interface ToolResultEntry extends TranscriptEntryBase {
|
|
599
|
+
kind: "tool_result"
|
|
600
|
+
toolId: string
|
|
601
|
+
content: unknown
|
|
602
|
+
isError?: boolean
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
export interface UserPromptEntry extends TranscriptEntryBase {
|
|
606
|
+
kind: "user_prompt"
|
|
607
|
+
content: string
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
export interface SystemInitEntry extends TranscriptEntryBase {
|
|
611
|
+
kind: "system_init"
|
|
612
|
+
provider: AgentProvider
|
|
613
|
+
model: string
|
|
614
|
+
tools: string[]
|
|
615
|
+
agents: string[]
|
|
616
|
+
slashCommands: string[]
|
|
617
|
+
mcpServers: McpServerInfo[]
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
export interface AccountInfoEntry extends TranscriptEntryBase {
|
|
621
|
+
kind: "account_info"
|
|
622
|
+
accountInfo: AccountInfo
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
export interface AssistantTextEntry extends TranscriptEntryBase {
|
|
626
|
+
kind: "assistant_text"
|
|
627
|
+
text: string
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
export interface ToolCallEntry extends TranscriptEntryBase {
|
|
631
|
+
kind: "tool_call"
|
|
632
|
+
tool: NormalizedToolCall
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
export interface ResultEntry extends TranscriptEntryBase {
|
|
636
|
+
kind: "result"
|
|
637
|
+
subtype: "success" | "error" | "cancelled"
|
|
638
|
+
isError: boolean
|
|
639
|
+
durationMs: number
|
|
640
|
+
result: string
|
|
641
|
+
costUsd?: number
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
export interface StatusEntry extends TranscriptEntryBase {
|
|
645
|
+
kind: "status"
|
|
646
|
+
status: string
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
export interface CompactBoundaryEntry extends TranscriptEntryBase {
|
|
650
|
+
kind: "compact_boundary"
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
export interface CompactSummaryEntry extends TranscriptEntryBase {
|
|
654
|
+
kind: "compact_summary"
|
|
655
|
+
summary: string
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
export interface ContextClearedEntry extends TranscriptEntryBase {
|
|
659
|
+
kind: "context_cleared"
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
export interface InterruptedEntry extends TranscriptEntryBase {
|
|
663
|
+
kind: "interrupted"
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
export interface ContextUsageEntry extends TranscriptEntryBase {
|
|
667
|
+
kind: "context_usage"
|
|
668
|
+
contextUsage: {
|
|
669
|
+
percentage: number
|
|
670
|
+
totalTokens: number
|
|
671
|
+
maxTokens: number
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
export type DelegationMode = "blocking" | "background"
|
|
676
|
+
export type DelegationResumeMode = "immediate" | "gate"
|
|
677
|
+
export type DelegationStatus =
|
|
678
|
+
| "active"
|
|
679
|
+
| "completing"
|
|
680
|
+
| "completed"
|
|
681
|
+
| "failed"
|
|
682
|
+
| "orphaned"
|
|
683
|
+
| "stale"
|
|
684
|
+
|
|
685
|
+
export interface ContextWindowUpdatedEntry extends TranscriptEntryBase {
|
|
686
|
+
kind: "context_window_updated"
|
|
687
|
+
usage: ContextWindowUsageSnapshot
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
export interface RateLimitEntry extends TranscriptEntryBase {
|
|
691
|
+
kind: "rate_limit"
|
|
692
|
+
rateLimit: { resetAt: number; tz: string }
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
export interface AgentResultEntry extends TranscriptEntryBase {
|
|
696
|
+
kind: "agent_result"
|
|
697
|
+
delegationId: string
|
|
698
|
+
childChatId: string
|
|
699
|
+
childProvider: AgentProvider
|
|
700
|
+
mode: DelegationMode
|
|
701
|
+
instructionPreview: string
|
|
702
|
+
resumeHint?: string
|
|
703
|
+
resultSummary: string
|
|
704
|
+
resultRef?: string
|
|
705
|
+
isError: boolean
|
|
706
|
+
completedAt: number
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
export type TranscriptEntry =
|
|
710
|
+
| UserPromptEntry
|
|
711
|
+
| SystemInitEntry
|
|
712
|
+
| AccountInfoEntry
|
|
713
|
+
| AssistantTextEntry
|
|
714
|
+
| ToolCallEntry
|
|
715
|
+
| ToolResultEntry
|
|
716
|
+
| ResultEntry
|
|
717
|
+
| StatusEntry
|
|
718
|
+
| CompactBoundaryEntry
|
|
719
|
+
| CompactSummaryEntry
|
|
720
|
+
| ContextClearedEntry
|
|
721
|
+
| InterruptedEntry
|
|
722
|
+
| ContextUsageEntry
|
|
723
|
+
| ContextWindowUpdatedEntry
|
|
724
|
+
| RateLimitEntry
|
|
725
|
+
| AgentResultEntry
|
|
726
|
+
|
|
727
|
+
export interface HydratedToolCallBase<TKind extends string, TInput, TResult> {
|
|
728
|
+
id: string
|
|
729
|
+
messageId?: string
|
|
730
|
+
hidden?: boolean
|
|
731
|
+
kind: "tool"
|
|
732
|
+
toolKind: TKind
|
|
733
|
+
toolName: string
|
|
734
|
+
toolId: string
|
|
735
|
+
input: TInput
|
|
736
|
+
result?: TResult
|
|
737
|
+
rawResult?: unknown
|
|
738
|
+
isError?: boolean
|
|
739
|
+
timestamp: string
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
export interface AskUserQuestionToolResult {
|
|
743
|
+
answers: AskUserQuestionAnswerMap
|
|
744
|
+
discarded?: boolean
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
export interface PresentContentSuccessToolResult {
|
|
748
|
+
accepted: true
|
|
749
|
+
title: string
|
|
750
|
+
kind: "markdown" | "code" | "diagram"
|
|
751
|
+
format: string
|
|
752
|
+
source: string
|
|
753
|
+
summary?: string
|
|
754
|
+
collapsed?: boolean
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
export interface PresentContentValidationIssue {
|
|
758
|
+
path: string[]
|
|
759
|
+
code: string
|
|
760
|
+
message: string
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
export interface PresentContentSchemaValidationError {
|
|
764
|
+
source: "schema_validation"
|
|
765
|
+
schema: "present_content"
|
|
766
|
+
issues: PresentContentValidationIssue[]
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
export interface PresentContentErrorToolResult {
|
|
770
|
+
error: PresentContentSchemaValidationError
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
export type PresentContentToolResult =
|
|
774
|
+
| PresentContentSuccessToolResult
|
|
775
|
+
| PresentContentErrorToolResult
|
|
776
|
+
|
|
777
|
+
export interface ExitPlanModeToolResult {
|
|
778
|
+
confirmed?: boolean
|
|
779
|
+
clearContext?: boolean
|
|
780
|
+
message?: string
|
|
781
|
+
discarded?: boolean
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
export type HydratedAskUserQuestionToolCall =
|
|
785
|
+
HydratedToolCallBase<"ask_user_question", AskUserQuestionToolCall["input"], AskUserQuestionToolResult>
|
|
786
|
+
|
|
787
|
+
export type HydratedPresentContentToolCall =
|
|
788
|
+
HydratedToolCallBase<"present_content", PresentContentToolCall["input"], PresentContentToolResult>
|
|
789
|
+
|
|
790
|
+
export type HydratedExitPlanModeToolCall =
|
|
791
|
+
HydratedToolCallBase<"exit_plan_mode", ExitPlanModeToolCall["input"], ExitPlanModeToolResult>
|
|
792
|
+
|
|
793
|
+
export type HydratedTodoWriteToolCall =
|
|
794
|
+
HydratedToolCallBase<"todo_write", TodoWriteToolCall["input"], unknown>
|
|
795
|
+
|
|
796
|
+
export type HydratedSkillToolCall =
|
|
797
|
+
HydratedToolCallBase<"skill", SkillToolCall["input"], unknown>
|
|
798
|
+
|
|
799
|
+
export type HydratedGlobToolCall =
|
|
800
|
+
HydratedToolCallBase<"glob", GlobToolCall["input"], unknown>
|
|
801
|
+
|
|
802
|
+
export type HydratedGrepToolCall =
|
|
803
|
+
HydratedToolCallBase<"grep", GrepToolCall["input"], unknown>
|
|
804
|
+
|
|
805
|
+
export type HydratedBashToolCall =
|
|
806
|
+
HydratedToolCallBase<"bash", BashToolCall["input"], unknown>
|
|
807
|
+
|
|
808
|
+
export type HydratedWebSearchToolCall =
|
|
809
|
+
HydratedToolCallBase<"web_search", WebSearchToolCall["input"], unknown>
|
|
810
|
+
|
|
811
|
+
export interface ReadFileToolResult {
|
|
812
|
+
content: string
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
export interface ImageContentBlock {
|
|
816
|
+
mediaType: string
|
|
817
|
+
data: string
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
export interface ReadFileImageResult {
|
|
821
|
+
images: ImageContentBlock[]
|
|
822
|
+
text?: string
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
export function isReadFileImageResult(result: unknown): result is ReadFileImageResult {
|
|
826
|
+
return (
|
|
827
|
+
result !== null
|
|
828
|
+
&& typeof result === "object"
|
|
829
|
+
&& "images" in result
|
|
830
|
+
&& Array.isArray(result.images)
|
|
831
|
+
)
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
export type HydratedReadFileToolCall =
|
|
835
|
+
HydratedToolCallBase<"read_file", ReadFileToolCall["input"], ReadFileToolResult | ReadFileImageResult | string>
|
|
836
|
+
|
|
837
|
+
export type HydratedWriteFileToolCall =
|
|
838
|
+
HydratedToolCallBase<"write_file", WriteFileToolCall["input"], unknown>
|
|
839
|
+
|
|
840
|
+
export type HydratedEditFileToolCall =
|
|
841
|
+
HydratedToolCallBase<"edit_file", EditFileToolCall["input"], unknown>
|
|
842
|
+
|
|
843
|
+
export type HydratedSubagentTaskToolCall =
|
|
844
|
+
HydratedToolCallBase<"subagent_task", SubagentTaskToolCall["input"], unknown>
|
|
845
|
+
|
|
846
|
+
export type HydratedMcpGenericToolCall =
|
|
847
|
+
HydratedToolCallBase<"mcp_generic", McpGenericToolCall["input"], unknown>
|
|
848
|
+
|
|
849
|
+
export type HydratedUnknownToolCall =
|
|
850
|
+
HydratedToolCallBase<"unknown_tool", UnknownToolCall["input"], unknown>
|
|
851
|
+
|
|
852
|
+
export type HydratedToolCall =
|
|
853
|
+
| HydratedAskUserQuestionToolCall
|
|
854
|
+
| HydratedPresentContentToolCall
|
|
855
|
+
| HydratedExitPlanModeToolCall
|
|
856
|
+
| HydratedTodoWriteToolCall
|
|
857
|
+
| HydratedSkillToolCall
|
|
858
|
+
| HydratedGlobToolCall
|
|
859
|
+
| HydratedGrepToolCall
|
|
860
|
+
| HydratedBashToolCall
|
|
861
|
+
| HydratedWebSearchToolCall
|
|
862
|
+
| HydratedReadFileToolCall
|
|
863
|
+
| HydratedWriteFileToolCall
|
|
864
|
+
| HydratedEditFileToolCall
|
|
865
|
+
| HydratedSubagentTaskToolCall
|
|
866
|
+
| HydratedMcpGenericToolCall
|
|
867
|
+
| HydratedUnknownToolCall
|
|
868
|
+
|
|
869
|
+
export type HydratedTranscriptMessage =
|
|
870
|
+
| ({ kind: "user_prompt"; content: string; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
871
|
+
| ({ kind: "system_init"; model: string; tools: string[]; agents: string[]; slashCommands: string[]; mcpServers: McpServerInfo[]; provider: AgentProvider; id: string; messageId?: string; timestamp: string; hidden?: boolean; debugRaw?: string })
|
|
872
|
+
| ({ kind: "account_info"; accountInfo: AccountInfo; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
873
|
+
| ({ kind: "assistant_text"; text: string; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
874
|
+
| ({ kind: "result"; success: boolean; cancelled?: boolean; result: string; durationMs: number; costUsd?: number; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
875
|
+
| ({ kind: "status"; status: string; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
876
|
+
| ({ kind: "compact_boundary"; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
877
|
+
| ({ kind: "compact_summary"; summary: string; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
878
|
+
| ({ kind: "context_cleared"; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
879
|
+
| ({ kind: "interrupted"; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
880
|
+
| ({ kind: "unknown"; json: string; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
881
|
+
| ({ kind: "rate_limit"; rateLimit: { resetAt: number; tz: string }; id: string; messageId?: string; timestamp: string; hidden?: boolean })
|
|
882
|
+
| ({ id: string; messageId?: string; hidden?: boolean } & HydratedToolCall)
|
|
883
|
+
|
|
884
|
+
export type TranscriptRenderUnitKind =
|
|
885
|
+
| "user_prompt"
|
|
886
|
+
| "system_init"
|
|
887
|
+
| "account_info"
|
|
888
|
+
| "assistant_response"
|
|
889
|
+
| "wip_block"
|
|
890
|
+
| "tool_group"
|
|
891
|
+
| "standalone_tool"
|
|
892
|
+
| "artifact"
|
|
893
|
+
| "status"
|
|
894
|
+
| "result"
|
|
895
|
+
| "compact_boundary"
|
|
896
|
+
| "compact_summary"
|
|
897
|
+
| "context_cleared"
|
|
898
|
+
| "interrupted"
|
|
899
|
+
| "unknown"
|
|
900
|
+
| "rate_limit"
|
|
901
|
+
|
|
902
|
+
export interface TranscriptRenderUnitBase<TKind extends TranscriptRenderUnitKind> {
|
|
903
|
+
kind: TKind
|
|
904
|
+
id: string
|
|
905
|
+
sourceEntryIds: string[]
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
export type TranscriptSingleRenderUnit =
|
|
909
|
+
| (TranscriptRenderUnitBase<"user_prompt"> & { message: Extract<HydratedTranscriptMessage, { kind: "user_prompt" }> })
|
|
910
|
+
| (TranscriptRenderUnitBase<"system_init"> & { message: Extract<HydratedTranscriptMessage, { kind: "system_init" }> })
|
|
911
|
+
| (TranscriptRenderUnitBase<"account_info"> & { message: Extract<HydratedTranscriptMessage, { kind: "account_info" }> })
|
|
912
|
+
| (TranscriptRenderUnitBase<"assistant_response"> & { message: Extract<HydratedTranscriptMessage, { kind: "assistant_text" }> })
|
|
913
|
+
| (TranscriptRenderUnitBase<"standalone_tool"> & { tool: HydratedToolCall })
|
|
914
|
+
| (TranscriptRenderUnitBase<"artifact"> & { artifact: HydratedPresentContentToolCall })
|
|
915
|
+
| (TranscriptRenderUnitBase<"status"> & { message: Extract<HydratedTranscriptMessage, { kind: "status" }> })
|
|
916
|
+
| (TranscriptRenderUnitBase<"result"> & { message: Extract<HydratedTranscriptMessage, { kind: "result" }> })
|
|
917
|
+
| (TranscriptRenderUnitBase<"compact_boundary"> & { message: Extract<HydratedTranscriptMessage, { kind: "compact_boundary" }> })
|
|
918
|
+
| (TranscriptRenderUnitBase<"compact_summary"> & { message: Extract<HydratedTranscriptMessage, { kind: "compact_summary" }> })
|
|
919
|
+
| (TranscriptRenderUnitBase<"context_cleared"> & { message: Extract<HydratedTranscriptMessage, { kind: "context_cleared" }> })
|
|
920
|
+
| (TranscriptRenderUnitBase<"interrupted"> & { message: Extract<HydratedTranscriptMessage, { kind: "interrupted" }> })
|
|
921
|
+
| (TranscriptRenderUnitBase<"unknown"> & { message: Extract<HydratedTranscriptMessage, { kind: "unknown" }> })
|
|
922
|
+
| (TranscriptRenderUnitBase<"rate_limit"> & { message: Extract<HydratedTranscriptMessage, { kind: "rate_limit" }> })
|
|
923
|
+
|
|
924
|
+
export type TranscriptRenderUnit =
|
|
925
|
+
| TranscriptSingleRenderUnit
|
|
926
|
+
| (TranscriptRenderUnitBase<"wip_block"> & { steps: HydratedTranscriptMessage[] })
|
|
927
|
+
| (TranscriptRenderUnitBase<"tool_group"> & { tools: HydratedToolCall[] })
|
|
928
|
+
|
|
929
|
+
export interface ChatRuntime {
|
|
930
|
+
chatId: string
|
|
931
|
+
workspaceId: string
|
|
932
|
+
localPath: string
|
|
933
|
+
title: string
|
|
934
|
+
status: SessionStatus
|
|
935
|
+
provider: AgentProvider | null
|
|
936
|
+
model: string | null
|
|
937
|
+
planMode: boolean
|
|
938
|
+
sessionToken: string | null
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
export interface QueuedChatTurnSnapshot {
|
|
942
|
+
chatId: string
|
|
943
|
+
provider?: AgentProvider
|
|
944
|
+
content: string
|
|
945
|
+
model?: string
|
|
946
|
+
modelOptions?: ModelOptions
|
|
947
|
+
effort?: string
|
|
948
|
+
planMode?: boolean
|
|
949
|
+
updatedAt: number
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
export interface ChatSnapshot {
|
|
953
|
+
runtime: ChatRuntime
|
|
954
|
+
messageCount: number
|
|
955
|
+
renderUnits: TranscriptRenderUnit[]
|
|
956
|
+
availableProviders: ProviderCatalogEntry[]
|
|
957
|
+
availableSkills: string[]
|
|
958
|
+
queuedTurn: QueuedChatTurnSnapshot | null
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
export interface CurrentSessionSnapshot {
|
|
962
|
+
runtime: DiscoveredSessionRuntime | null
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
export interface CurrentRepoStatusSnapshot {
|
|
966
|
+
localPath: string
|
|
967
|
+
branch: string | null
|
|
968
|
+
stagedCount: number
|
|
969
|
+
unstagedCount: number
|
|
970
|
+
untrackedCount: number
|
|
971
|
+
ahead: number
|
|
972
|
+
behind: number
|
|
973
|
+
isRepo: boolean
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
export interface ChatMessageEvent {
|
|
977
|
+
chatId: string
|
|
978
|
+
entry: TranscriptEntry
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
export interface AppSnapshot {
|
|
982
|
+
sidebar: SidebarData
|
|
983
|
+
chat?: ChatSnapshot | null
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
export interface PendingToolSnapshot {
|
|
987
|
+
toolUseId: string
|
|
988
|
+
toolKind: "ask_user_question" | "exit_plan_mode"
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
export type OrchestrationChildStatus =
|
|
992
|
+
| "spawning"
|
|
993
|
+
| "running"
|
|
994
|
+
| "waiting"
|
|
995
|
+
| "completed"
|
|
996
|
+
| "failed"
|
|
997
|
+
| "closed"
|
|
998
|
+
|
|
999
|
+
export interface OrchestrationChildNode {
|
|
1000
|
+
chatId: string
|
|
1001
|
+
externalSessionId?: string
|
|
1002
|
+
status: OrchestrationChildStatus
|
|
1003
|
+
spawnedAt: number
|
|
1004
|
+
lastStatusAt: number
|
|
1005
|
+
instruction: string
|
|
1006
|
+
children: OrchestrationChildNode[]
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
export interface OrchestrationHierarchySnapshot {
|
|
1010
|
+
children: OrchestrationChildNode[]
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
export interface DurableDelegation {
|
|
1014
|
+
delegationId: string
|
|
1015
|
+
workspaceId: string
|
|
1016
|
+
parentChatId: string
|
|
1017
|
+
childChatId: string
|
|
1018
|
+
childProvider: AgentProvider
|
|
1019
|
+
instructionPreview: string
|
|
1020
|
+
mode: DelegationMode
|
|
1021
|
+
resume: DelegationResumeMode
|
|
1022
|
+
status: DelegationStatus
|
|
1023
|
+
depth: number
|
|
1024
|
+
resumeHint?: string
|
|
1025
|
+
resultSummary?: string
|
|
1026
|
+
resultRef?: string
|
|
1027
|
+
isError?: boolean
|
|
1028
|
+
agentResultEntryId?: string
|
|
1029
|
+
createdAt: number
|
|
1030
|
+
updatedAt: number
|
|
1031
|
+
}
|