@richhardry/codor 0.10.0
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 +21 -0
- package/README.md +293 -0
- package/bin/codor.mjs +7 -0
- package/node_modules/@codor/adapter-antigravity/dist/adapter.d.ts +41 -0
- package/node_modules/@codor/adapter-antigravity/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-antigravity/dist/adapter.js +275 -0
- package/node_modules/@codor/adapter-antigravity/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-antigravity/dist/index.d.ts +2 -0
- package/node_modules/@codor/adapter-antigravity/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-antigravity/dist/index.js +2 -0
- package/node_modules/@codor/adapter-antigravity/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-antigravity/package.json +18 -0
- package/node_modules/@codor/adapter-claude-code/dist/adapter.d.ts +94 -0
- package/node_modules/@codor/adapter-claude-code/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/adapter.js +785 -0
- package/node_modules/@codor/adapter-claude-code/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/index.d.ts +8 -0
- package/node_modules/@codor/adapter-claude-code/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/index.js +5 -0
- package/node_modules/@codor/adapter-claude-code/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/limits-probe.d.ts +18 -0
- package/node_modules/@codor/adapter-claude-code/dist/limits-probe.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/limits-probe.js +67 -0
- package/node_modules/@codor/adapter-claude-code/dist/limits-probe.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/peek.d.ts +3 -0
- package/node_modules/@codor/adapter-claude-code/dist/peek.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/peek.js +128 -0
- package/node_modules/@codor/adapter-claude-code/dist/peek.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/query.d.ts +9 -0
- package/node_modules/@codor/adapter-claude-code/dist/query.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/query.js +7 -0
- package/node_modules/@codor/adapter-claude-code/dist/query.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/translate.d.ts +40 -0
- package/node_modules/@codor/adapter-claude-code/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-claude-code/dist/translate.js +505 -0
- package/node_modules/@codor/adapter-claude-code/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-claude-code/package.json +18 -0
- package/node_modules/@codor/adapter-codex/dist/adapter.d.ts +105 -0
- package/node_modules/@codor/adapter-codex/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/adapter.js +625 -0
- package/node_modules/@codor/adapter-codex/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/app-server-transport.d.ts +39 -0
- package/node_modules/@codor/adapter-codex/dist/app-server-transport.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/app-server-transport.js +186 -0
- package/node_modules/@codor/adapter-codex/dist/app-server-transport.js.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/index.d.ts +8 -0
- package/node_modules/@codor/adapter-codex/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/index.js +5 -0
- package/node_modules/@codor/adapter-codex/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/limits-probe.d.ts +18 -0
- package/node_modules/@codor/adapter-codex/dist/limits-probe.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/limits-probe.js +87 -0
- package/node_modules/@codor/adapter-codex/dist/limits-probe.js.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/peek.d.ts +3 -0
- package/node_modules/@codor/adapter-codex/dist/peek.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/peek.js +98 -0
- package/node_modules/@codor/adapter-codex/dist/peek.js.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/translate.d.ts +17 -0
- package/node_modules/@codor/adapter-codex/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-codex/dist/translate.js +286 -0
- package/node_modules/@codor/adapter-codex/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-codex/package.json +17 -0
- package/node_modules/@codor/adapter-copilot/dist/adapter.d.ts +40 -0
- package/node_modules/@codor/adapter-copilot/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-copilot/dist/adapter.js +190 -0
- package/node_modules/@codor/adapter-copilot/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-copilot/dist/index.d.ts +4 -0
- package/node_modules/@codor/adapter-copilot/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-copilot/dist/index.js +3 -0
- package/node_modules/@codor/adapter-copilot/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-copilot/dist/translate.d.ts +11 -0
- package/node_modules/@codor/adapter-copilot/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-copilot/dist/translate.js +184 -0
- package/node_modules/@codor/adapter-copilot/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-copilot/package.json +18 -0
- package/node_modules/@codor/adapter-cursor/dist/adapter.d.ts +32 -0
- package/node_modules/@codor/adapter-cursor/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-cursor/dist/adapter.js +179 -0
- package/node_modules/@codor/adapter-cursor/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-cursor/dist/index.d.ts +9 -0
- package/node_modules/@codor/adapter-cursor/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-cursor/dist/index.js +8 -0
- package/node_modules/@codor/adapter-cursor/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-cursor/dist/translate.d.ts +15 -0
- package/node_modules/@codor/adapter-cursor/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-cursor/dist/translate.js +164 -0
- package/node_modules/@codor/adapter-cursor/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-cursor/package.json +17 -0
- package/node_modules/@codor/adapter-gemini/dist/adapter.d.ts +36 -0
- package/node_modules/@codor/adapter-gemini/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-gemini/dist/adapter.js +245 -0
- package/node_modules/@codor/adapter-gemini/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-gemini/dist/index.d.ts +4 -0
- package/node_modules/@codor/adapter-gemini/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-gemini/dist/index.js +3 -0
- package/node_modules/@codor/adapter-gemini/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-gemini/dist/translate.d.ts +12 -0
- package/node_modules/@codor/adapter-gemini/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-gemini/dist/translate.js +123 -0
- package/node_modules/@codor/adapter-gemini/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-gemini/package.json +18 -0
- package/node_modules/@codor/adapter-opencode/dist/adapter.d.ts +42 -0
- package/node_modules/@codor/adapter-opencode/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/adapter-opencode/dist/adapter.js +240 -0
- package/node_modules/@codor/adapter-opencode/dist/adapter.js.map +1 -0
- package/node_modules/@codor/adapter-opencode/dist/index.d.ts +4 -0
- package/node_modules/@codor/adapter-opencode/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/adapter-opencode/dist/index.js +3 -0
- package/node_modules/@codor/adapter-opencode/dist/index.js.map +1 -0
- package/node_modules/@codor/adapter-opencode/dist/translate.d.ts +12 -0
- package/node_modules/@codor/adapter-opencode/dist/translate.d.ts.map +1 -0
- package/node_modules/@codor/adapter-opencode/dist/translate.js +144 -0
- package/node_modules/@codor/adapter-opencode/dist/translate.js.map +1 -0
- package/node_modules/@codor/adapter-opencode/package.json +18 -0
- package/node_modules/@codor/cli/dist/artifact.d.ts +33 -0
- package/node_modules/@codor/cli/dist/artifact.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/artifact.js +183 -0
- package/node_modules/@codor/cli/dist/artifact.js.map +1 -0
- package/node_modules/@codor/cli/dist/attach.d.ts +25 -0
- package/node_modules/@codor/cli/dist/attach.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/attach.js +133 -0
- package/node_modules/@codor/cli/dist/attach.js.map +1 -0
- package/node_modules/@codor/cli/dist/connection.d.ts +21 -0
- package/node_modules/@codor/cli/dist/connection.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/connection.js +130 -0
- package/node_modules/@codor/cli/dist/connection.js.map +1 -0
- package/node_modules/@codor/cli/dist/detect.d.ts +14 -0
- package/node_modules/@codor/cli/dist/detect.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/detect.js +99 -0
- package/node_modules/@codor/cli/dist/detect.js.map +1 -0
- package/node_modules/@codor/cli/dist/index.d.ts +17 -0
- package/node_modules/@codor/cli/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/index.js +24 -0
- package/node_modules/@codor/cli/dist/index.js.map +1 -0
- package/node_modules/@codor/cli/dist/mirror.d.ts +4 -0
- package/node_modules/@codor/cli/dist/mirror.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/mirror.js +93 -0
- package/node_modules/@codor/cli/dist/mirror.js.map +1 -0
- package/node_modules/@codor/cli/dist/program.d.ts +17 -0
- package/node_modules/@codor/cli/dist/program.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/program.js +1068 -0
- package/node_modules/@codor/cli/dist/program.js.map +1 -0
- package/node_modules/@codor/cli/dist/runtime-install.d.ts +61 -0
- package/node_modules/@codor/cli/dist/runtime-install.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/runtime-install.js +122 -0
- package/node_modules/@codor/cli/dist/runtime-install.js.map +1 -0
- package/node_modules/@codor/cli/dist/runtime-paths.d.ts +24 -0
- package/node_modules/@codor/cli/dist/runtime-paths.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/runtime-paths.js +69 -0
- package/node_modules/@codor/cli/dist/runtime-paths.js.map +1 -0
- package/node_modules/@codor/cli/dist/setup-flow.d.ts +69 -0
- package/node_modules/@codor/cli/dist/setup-flow.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/setup-flow.js +110 -0
- package/node_modules/@codor/cli/dist/setup-flow.js.map +1 -0
- package/node_modules/@codor/cli/dist/setup-session.d.ts +105 -0
- package/node_modules/@codor/cli/dist/setup-session.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/setup-session.js +346 -0
- package/node_modules/@codor/cli/dist/setup-session.js.map +1 -0
- package/node_modules/@codor/cli/dist/setup-ui.d.ts +93 -0
- package/node_modules/@codor/cli/dist/setup-ui.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/setup-ui.js +249 -0
- package/node_modules/@codor/cli/dist/setup-ui.js.map +1 -0
- package/node_modules/@codor/cli/dist/setup.d.ts +108 -0
- package/node_modules/@codor/cli/dist/setup.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/setup.js +878 -0
- package/node_modules/@codor/cli/dist/setup.js.map +1 -0
- package/node_modules/@codor/cli/dist/terminal-keys.d.ts +26 -0
- package/node_modules/@codor/cli/dist/terminal-keys.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/terminal-keys.js +70 -0
- package/node_modules/@codor/cli/dist/terminal-keys.js.map +1 -0
- package/node_modules/@codor/cli/dist/terminal-qr.d.ts +2 -0
- package/node_modules/@codor/cli/dist/terminal-qr.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/terminal-qr.js +30 -0
- package/node_modules/@codor/cli/dist/terminal-qr.js.map +1 -0
- package/node_modules/@codor/cli/dist/up.d.ts +52 -0
- package/node_modules/@codor/cli/dist/up.d.ts.map +1 -0
- package/node_modules/@codor/cli/dist/up.js +178 -0
- package/node_modules/@codor/cli/dist/up.js.map +1 -0
- package/node_modules/@codor/cli/package.json +24 -0
- package/node_modules/@codor/cli/packaging/systemd/codor.service +21 -0
- package/node_modules/@codor/cli/runtime/web/assets/LandingPage-BOmG5kSw.js +31 -0
- package/node_modules/@codor/cli/runtime/web/assets/LedgerPage-CecuTS8-.js +1 -0
- package/node_modules/@codor/cli/runtime/web/assets/NoChannels-CYiBXGQd.js +11 -0
- package/node_modules/@codor/cli/runtime/web/assets/PairingCodeInput-Cr6XDWx-.js +1 -0
- package/node_modules/@codor/cli/runtime/web/assets/PairingPage-CQBWNA2L.js +6 -0
- package/node_modules/@codor/cli/runtime/web/assets/SettingsPage-DGLbSXE7.js +16 -0
- package/node_modules/@codor/cli/runtime/web/assets/StartupUnavailable-DdQBHip_.js +1 -0
- package/node_modules/@codor/cli/runtime/web/assets/arrow-left-BOpjMuRi.js +6 -0
- package/node_modules/@codor/cli/runtime/web/assets/browser-BWQYNOsD.js +6 -0
- package/node_modules/@codor/cli/runtime/web/assets/graph-toBZHlC0.js +1 -0
- package/node_modules/@codor/cli/runtime/web/assets/index-Cxi54Xim.js +408 -0
- package/node_modules/@codor/cli/runtime/web/assets/index-DjwJakJC.css +1 -0
- package/node_modules/@codor/cli/runtime/web/assets/qr-DpynCwP9.js +8 -0
- package/node_modules/@codor/cli/runtime/web/assets/react-C8w-UNLI.js +32 -0
- package/node_modules/@codor/cli/runtime/web/assets/sodium-DtsvMzX9.js +1 -0
- package/node_modules/@codor/cli/runtime/web/codor-192.png +0 -0
- package/node_modules/@codor/cli/runtime/web/codor-512.png +0 -0
- package/node_modules/@codor/cli/runtime/web/codor-apple-touch-180.png +0 -0
- package/node_modules/@codor/cli/runtime/web/codor-favicon.svg +86 -0
- package/node_modules/@codor/cli/runtime/web/codor-mark.svg +86 -0
- package/node_modules/@codor/cli/runtime/web/codor-maskable-512.png +0 -0
- package/node_modules/@codor/cli/runtime/web/codor-og.png +0 -0
- package/node_modules/@codor/cli/runtime/web/fonts/BitcountPropSingle-latin.woff2 +0 -0
- package/node_modules/@codor/cli/runtime/web/fonts/Geist-Variable.woff2 +0 -0
- package/node_modules/@codor/cli/runtime/web/fonts/GeistMono-Variable.woff2 +0 -0
- package/node_modules/@codor/cli/runtime/web/fonts/OFL.txt +93 -0
- package/node_modules/@codor/cli/runtime/web/index.html +53 -0
- package/node_modules/@codor/cli/runtime/web/manifest.webmanifest +1 -0
- package/node_modules/@codor/cli/runtime/web/sw.js +2 -0
- package/node_modules/@codor/protocol/dist/adapter.d.ts +118 -0
- package/node_modules/@codor/protocol/dist/adapter.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/adapter.js +15 -0
- package/node_modules/@codor/protocol/dist/adapter.js.map +1 -0
- package/node_modules/@codor/protocol/dist/body.d.ts +14 -0
- package/node_modules/@codor/protocol/dist/body.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/body.js +50 -0
- package/node_modules/@codor/protocol/dist/body.js.map +1 -0
- package/node_modules/@codor/protocol/dist/changelog.d.ts +30 -0
- package/node_modules/@codor/protocol/dist/changelog.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/changelog.js +19 -0
- package/node_modules/@codor/protocol/dist/changelog.js.map +1 -0
- package/node_modules/@codor/protocol/dist/default-recipient.d.ts +8 -0
- package/node_modules/@codor/protocol/dist/default-recipient.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/default-recipient.js +19 -0
- package/node_modules/@codor/protocol/dist/default-recipient.js.map +1 -0
- package/node_modules/@codor/protocol/dist/delivery.d.ts +42 -0
- package/node_modules/@codor/protocol/dist/delivery.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/delivery.js +44 -0
- package/node_modules/@codor/protocol/dist/delivery.js.map +1 -0
- package/node_modules/@codor/protocol/dist/events.d.ts +284 -0
- package/node_modules/@codor/protocol/dist/events.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/events.js +150 -0
- package/node_modules/@codor/protocol/dist/events.js.map +1 -0
- package/node_modules/@codor/protocol/dist/ids.d.ts +19 -0
- package/node_modules/@codor/protocol/dist/ids.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/ids.js +27 -0
- package/node_modules/@codor/protocol/dist/ids.js.map +1 -0
- package/node_modules/@codor/protocol/dist/index.d.ts +14 -0
- package/node_modules/@codor/protocol/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/index.js +14 -0
- package/node_modules/@codor/protocol/dist/index.js.map +1 -0
- package/node_modules/@codor/protocol/dist/interaction.d.ts +45 -0
- package/node_modules/@codor/protocol/dist/interaction.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/interaction.js +33 -0
- package/node_modules/@codor/protocol/dist/interaction.js.map +1 -0
- package/node_modules/@codor/protocol/dist/member.d.ts +146 -0
- package/node_modules/@codor/protocol/dist/member.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/member.js +169 -0
- package/node_modules/@codor/protocol/dist/member.js.map +1 -0
- package/node_modules/@codor/protocol/dist/message.d.ts +166 -0
- package/node_modules/@codor/protocol/dist/message.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/message.js +95 -0
- package/node_modules/@codor/protocol/dist/message.js.map +1 -0
- package/node_modules/@codor/protocol/dist/observability.d.ts +80 -0
- package/node_modules/@codor/protocol/dist/observability.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/observability.js +41 -0
- package/node_modules/@codor/protocol/dist/observability.js.map +1 -0
- package/node_modules/@codor/protocol/dist/room.d.ts +430 -0
- package/node_modules/@codor/protocol/dist/room.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/room.js +142 -0
- package/node_modules/@codor/protocol/dist/room.js.map +1 -0
- package/node_modules/@codor/protocol/dist/ws.d.ts +1348 -0
- package/node_modules/@codor/protocol/dist/ws.d.ts.map +1 -0
- package/node_modules/@codor/protocol/dist/ws.js +282 -0
- package/node_modules/@codor/protocol/dist/ws.js.map +1 -0
- package/node_modules/@codor/protocol/package.json +17 -0
- package/node_modules/@codor/switchboard/dist/adapter-registry.d.ts +14 -0
- package/node_modules/@codor/switchboard/dist/adapter-registry.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/adapter-registry.js +175 -0
- package/node_modules/@codor/switchboard/dist/adapter-registry.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/authorization.d.ts +13 -0
- package/node_modules/@codor/switchboard/dist/authorization.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/authorization.js +96 -0
- package/node_modules/@codor/switchboard/dist/authorization.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/blobs.d.ts +17 -0
- package/node_modules/@codor/switchboard/dist/blobs.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/blobs.js +54 -0
- package/node_modules/@codor/switchboard/dist/blobs.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/collaboration.d.ts +115 -0
- package/node_modules/@codor/switchboard/dist/collaboration.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/collaboration.js +123 -0
- package/node_modules/@codor/switchboard/dist/collaboration.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/continuation.d.ts +33 -0
- package/node_modules/@codor/switchboard/dist/continuation.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/continuation.js +177 -0
- package/node_modules/@codor/switchboard/dist/continuation.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.d.ts +22 -0
- package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.js +92 -0
- package/node_modules/@codor/switchboard/dist/crypto/browser-sessions.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/challenge.d.ts +37 -0
- package/node_modules/@codor/switchboard/dist/crypto/challenge.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/challenge.js +132 -0
- package/node_modules/@codor/switchboard/dist/crypto/challenge.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/keys.d.ts +41 -0
- package/node_modules/@codor/switchboard/dist/crypto/keys.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/keys.js +145 -0
- package/node_modules/@codor/switchboard/dist/crypto/keys.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/pairing.d.ts +53 -0
- package/node_modules/@codor/switchboard/dist/crypto/pairing.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/pairing.js +182 -0
- package/node_modules/@codor/switchboard/dist/crypto/pairing.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/roomkeys.d.ts +30 -0
- package/node_modules/@codor/switchboard/dist/crypto/roomkeys.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/crypto/roomkeys.js +101 -0
- package/node_modules/@codor/switchboard/dist/crypto/roomkeys.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/daemon.d.ts +545 -0
- package/node_modules/@codor/switchboard/dist/daemon.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/daemon.js +3907 -0
- package/node_modules/@codor/switchboard/dist/daemon.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/fake-adapter.d.ts +103 -0
- package/node_modules/@codor/switchboard/dist/fake-adapter.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/fake-adapter.js +228 -0
- package/node_modules/@codor/switchboard/dist/fake-adapter.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/index.d.ts +44 -0
- package/node_modules/@codor/switchboard/dist/index.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/index.js +24 -0
- package/node_modules/@codor/switchboard/dist/index.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/resolve.d.ts +12 -0
- package/node_modules/@codor/switchboard/dist/ledger/resolve.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/resolve.js +17 -0
- package/node_modules/@codor/switchboard/dist/ledger/resolve.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/vault.d.ts +47 -0
- package/node_modules/@codor/switchboard/dist/ledger/vault.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/vault.js +175 -0
- package/node_modules/@codor/switchboard/dist/ledger/vault.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/watch.d.ts +73 -0
- package/node_modules/@codor/switchboard/dist/ledger/watch.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/ledger/watch.js +232 -0
- package/node_modules/@codor/switchboard/dist/ledger/watch.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/local-dirs.d.ts +14 -0
- package/node_modules/@codor/switchboard/dist/local-dirs.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/local-dirs.js +40 -0
- package/node_modules/@codor/switchboard/dist/local-dirs.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/local-socket.d.ts +3 -0
- package/node_modules/@codor/switchboard/dist/local-socket.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/local-socket.js +16 -0
- package/node_modules/@codor/switchboard/dist/local-socket.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/pricing.d.ts +32 -0
- package/node_modules/@codor/switchboard/dist/pricing.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/pricing.js +64 -0
- package/node_modules/@codor/switchboard/dist/pricing.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/process-liveness.d.ts +2 -0
- package/node_modules/@codor/switchboard/dist/process-liveness.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/process-liveness.js +9 -0
- package/node_modules/@codor/switchboard/dist/process-liveness.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/push/producer.d.ts +54 -0
- package/node_modules/@codor/switchboard/dist/push/producer.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/push/producer.js +168 -0
- package/node_modules/@codor/switchboard/dist/push/producer.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/push/subscriptions.d.ts +29 -0
- package/node_modules/@codor/switchboard/dist/push/subscriptions.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/push/subscriptions.js +83 -0
- package/node_modules/@codor/switchboard/dist/push/subscriptions.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/redact.d.ts +11 -0
- package/node_modules/@codor/switchboard/dist/redact.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/redact.js +65 -0
- package/node_modules/@codor/switchboard/dist/redact.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/residency.d.ts +110 -0
- package/node_modules/@codor/switchboard/dist/residency.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/residency.js +587 -0
- package/node_modules/@codor/switchboard/dist/residency.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/router.d.ts +120 -0
- package/node_modules/@codor/switchboard/dist/router.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/router.js +198 -0
- package/node_modules/@codor/switchboard/dist/router.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/server.d.ts +50 -0
- package/node_modules/@codor/switchboard/dist/server.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/server.js +1425 -0
- package/node_modules/@codor/switchboard/dist/server.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/store.d.ts +534 -0
- package/node_modules/@codor/switchboard/dist/store.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/store.js +2625 -0
- package/node_modules/@codor/switchboard/dist/store.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/transport/hyperswarm.d.ts +59 -0
- package/node_modules/@codor/switchboard/dist/transport/hyperswarm.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/transport/hyperswarm.js +183 -0
- package/node_modules/@codor/switchboard/dist/transport/hyperswarm.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/transport/peer.d.ts +87 -0
- package/node_modules/@codor/switchboard/dist/transport/peer.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/transport/peer.js +316 -0
- package/node_modules/@codor/switchboard/dist/transport/peer.js.map +1 -0
- package/node_modules/@codor/switchboard/dist/working-directory.d.ts +2 -0
- package/node_modules/@codor/switchboard/dist/working-directory.d.ts.map +1 -0
- package/node_modules/@codor/switchboard/dist/working-directory.js +26 -0
- package/node_modules/@codor/switchboard/dist/working-directory.js.map +1 -0
- package/node_modules/@codor/switchboard/package.json +33 -0
- package/package.json +58 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { type Member, type Message, type ParsedBody, type RoomConfig } from '@codor/protocol';
|
|
2
|
+
export { isAddressable, parseBody } from '@codor/protocol';
|
|
3
|
+
export type { ParsedBody } from '@codor/protocol';
|
|
4
|
+
/**
|
|
5
|
+
* The pure router — PROTOCOL §3 as functions over (message, room state).
|
|
6
|
+
* No IO, no store: the daemon feeds it context and materializes its output.
|
|
7
|
+
*/
|
|
8
|
+
export interface EligibilityContext {
|
|
9
|
+
/** The room member row for the message author. */
|
|
10
|
+
author: Member | undefined;
|
|
11
|
+
/** The message this one replies to, when reply_to is set. */
|
|
12
|
+
repliedTo?: Message;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Routing eligibility comes FIRST. Routed: `chat` authored by a human,
|
|
16
|
+
* agent, or bridge member, and FINALIZED `run` messages. Never routed:
|
|
17
|
+
* `system` messages, `ask`/`approval` cards, anything authored by the
|
|
18
|
+
* system member, and chat replies to a card (audit replies) — none of
|
|
19
|
+
* these may ever trigger an agent turn. A finalized run with an EMPTY body
|
|
20
|
+
* (interrupted turn, or a model deliberately replying with nothing) is not
|
|
21
|
+
* routable either: an empty body can mention nobody, so routing it could
|
|
22
|
+
* only fire the untagged default — which live-looped two agents through
|
|
23
|
+
* endless empty acknowledgment turns (found in M0 acceptance).
|
|
24
|
+
*/
|
|
25
|
+
export declare function isRoutable(message: Message, ctx: EligibilityContext): boolean;
|
|
26
|
+
export interface RoutingContext extends EligibilityContext {
|
|
27
|
+
/** Full room roster. */
|
|
28
|
+
members: Member[];
|
|
29
|
+
/** Current channel metadata used by the fresh-channel default chain. */
|
|
30
|
+
roomConfig: RoomConfig;
|
|
31
|
+
/** Author id of the latest FINALIZED agent message, if any ever finished. */
|
|
32
|
+
latestFinalizedAgentAuthor?: string;
|
|
33
|
+
/**
|
|
34
|
+
* For agent-authored messages: author of the delivery that triggered the
|
|
35
|
+
* run (for a batched turn, the author of the LAST delivery in the batch).
|
|
36
|
+
*/
|
|
37
|
+
triggerAuthor?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface RouteResult {
|
|
40
|
+
routable: boolean;
|
|
41
|
+
parsed: ParsedBody;
|
|
42
|
+
/** Agent recipients — each becomes a queued delivery feeding a turn. */
|
|
43
|
+
agents: Member[];
|
|
44
|
+
/** Human recipients — inbox records only, never turns. */
|
|
45
|
+
humans: Member[];
|
|
46
|
+
/** True when nothing resolves: room commentary, delivered to nobody. */
|
|
47
|
+
commentary: boolean;
|
|
48
|
+
/** Finalized agent message contained unresolvable handle-shaped tokens. */
|
|
49
|
+
misaddressed: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Mentions select recipients; content is never split. The recipient set is
|
|
53
|
+
* the union of valid mentions (duplicates collapse, self-mentions ignored);
|
|
54
|
+
* a mentionless message falls back to the default recipient rule.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveRecipients(message: Message, ctx: RoutingContext): RouteResult;
|
|
57
|
+
export interface ResolvedRef {
|
|
58
|
+
id: number;
|
|
59
|
+
author_handle: string;
|
|
60
|
+
ts: string;
|
|
61
|
+
body: string;
|
|
62
|
+
}
|
|
63
|
+
export interface DeliveryBriefingContext {
|
|
64
|
+
/** Omitted for grouped rounds, where unmentioned final results close the group. */
|
|
65
|
+
conventions?: {
|
|
66
|
+
untaggedGoesTo?: string;
|
|
67
|
+
ledger?: boolean;
|
|
68
|
+
liveInbox?: boolean;
|
|
69
|
+
};
|
|
70
|
+
roster?: {
|
|
71
|
+
handle: string;
|
|
72
|
+
kind: Member['kind'];
|
|
73
|
+
purpose?: string;
|
|
74
|
+
}[];
|
|
75
|
+
}
|
|
76
|
+
export interface PayloadContext extends DeliveryBriefingContext {
|
|
77
|
+
room: string;
|
|
78
|
+
message: Message;
|
|
79
|
+
authorHandle: string;
|
|
80
|
+
authorKind: Member['kind'];
|
|
81
|
+
/** All recipient handles, mention order — identical on every delivery. */
|
|
82
|
+
toHandles: string[];
|
|
83
|
+
refs: ResolvedRef[];
|
|
84
|
+
ledgerRefs?: {
|
|
85
|
+
name: string;
|
|
86
|
+
body: string;
|
|
87
|
+
}[];
|
|
88
|
+
awaitingReply?: boolean;
|
|
89
|
+
}
|
|
90
|
+
export declare function composeDeliveryBriefing(ctx: DeliveryBriefingContext): string;
|
|
91
|
+
/**
|
|
92
|
+
* The exact bytes a recipient session receives — pinned by goldens in
|
|
93
|
+
* router.spec.ts. Keep payloads lean: sessions pay tokens for every byte.
|
|
94
|
+
*/
|
|
95
|
+
export declare function composePayload(ctx: PayloadContext, you: string): string;
|
|
96
|
+
/**
|
|
97
|
+
* Fan-out: one payload per recipient, byte-identical except the `you=`
|
|
98
|
+
* field — the whole body plus all resolved refs, never per-mention slices.
|
|
99
|
+
*/
|
|
100
|
+
export declare function composeDeliveryPayloads(ctx: PayloadContext, recipients: Member[]): Map<string, string>;
|
|
101
|
+
export interface BrakeStats {
|
|
102
|
+
/** Consecutive agent→agent deliveries since the last human message. */
|
|
103
|
+
consecutiveAgentDeliveries: number;
|
|
104
|
+
/** Cost accumulated today from cost-reporting members. */
|
|
105
|
+
spendTodayUsd: number;
|
|
106
|
+
}
|
|
107
|
+
export type BrakeVerdict = {
|
|
108
|
+
hold: false;
|
|
109
|
+
} | {
|
|
110
|
+
hold: true;
|
|
111
|
+
reason: 'turn_brake' | 'spend_brake';
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Opt-in brakes (PROTOCOL §3): with the default null config NOTHING holds —
|
|
115
|
+
* chains run until the work is done. A configured turn brake holds the next
|
|
116
|
+
* delivery once the agent→agent chain reaches the limit; a spend brake
|
|
117
|
+
* holds once today's cost reaches the threshold.
|
|
118
|
+
*/
|
|
119
|
+
export declare function evaluateBrakes(config: RoomConfig, stats: BrakeStats): BrakeVerdict;
|
|
120
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { effectiveDefaultAgent, isAddressable, parseBody, } from '@codor/protocol';
|
|
2
|
+
export { isAddressable, parseBody } from '@codor/protocol';
|
|
3
|
+
// harn:assume substantive-routing-excludes-acknowledgements ref=substantive-run-eligibility
|
|
4
|
+
/**
|
|
5
|
+
* Routing eligibility comes FIRST. Routed: `chat` authored by a human,
|
|
6
|
+
* agent, or bridge member, and FINALIZED `run` messages. Never routed:
|
|
7
|
+
* `system` messages, `ask`/`approval` cards, anything authored by the
|
|
8
|
+
* system member, and chat replies to a card (audit replies) — none of
|
|
9
|
+
* these may ever trigger an agent turn. A finalized run with an EMPTY body
|
|
10
|
+
* (interrupted turn, or a model deliberately replying with nothing) is not
|
|
11
|
+
* routable either: an empty body can mention nobody, so routing it could
|
|
12
|
+
* only fire the untagged default — which live-looped two agents through
|
|
13
|
+
* endless empty acknowledgment turns (found in M0 acceptance).
|
|
14
|
+
*/
|
|
15
|
+
export function isRoutable(message, ctx) {
|
|
16
|
+
if (!ctx.author)
|
|
17
|
+
return false;
|
|
18
|
+
if (ctx.author.kind === 'system' || ctx.author.kind === 'extension')
|
|
19
|
+
return false;
|
|
20
|
+
if (message.kind === 'system' || message.kind === 'ask' || message.kind === 'approval') {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (message.kind === 'run') {
|
|
24
|
+
return (message.ack !== true &&
|
|
25
|
+
message.run !== undefined &&
|
|
26
|
+
message.run.status !== 'running' &&
|
|
27
|
+
message.body.trim() !== '');
|
|
28
|
+
}
|
|
29
|
+
// chat: audit replies on cards never route
|
|
30
|
+
if (message.reply_to !== undefined &&
|
|
31
|
+
ctx.repliedTo !== undefined &&
|
|
32
|
+
(ctx.repliedTo.kind === 'ask' || ctx.repliedTo.kind === 'approval')) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
const NO_ROUTE = {
|
|
38
|
+
routable: false,
|
|
39
|
+
agents: [],
|
|
40
|
+
humans: [],
|
|
41
|
+
commentary: false,
|
|
42
|
+
misaddressed: false,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Mentions select recipients; content is never split. The recipient set is
|
|
46
|
+
* the union of valid mentions (duplicates collapse, self-mentions ignored);
|
|
47
|
+
* a mentionless message falls back to the default recipient rule.
|
|
48
|
+
*/
|
|
49
|
+
export function resolveRecipients(message, ctx) {
|
|
50
|
+
const parsed = message.ack === true
|
|
51
|
+
? { mentions: [], refs: [], ledger_refs: [], unresolved: [] }
|
|
52
|
+
: parseBody(message.body, ctx.members);
|
|
53
|
+
if (!isRoutable(message, ctx))
|
|
54
|
+
return { ...NO_ROUTE, parsed };
|
|
55
|
+
const byId = new Map(ctx.members.map((m) => [m.id, m]));
|
|
56
|
+
const recipients = [];
|
|
57
|
+
for (const span of parsed.mentions) {
|
|
58
|
+
if (span.member_id === message.author)
|
|
59
|
+
continue; // self-mentions ignored
|
|
60
|
+
const member = byId.get(span.member_id);
|
|
61
|
+
if (member && !recipients.some((r) => r.id === member.id))
|
|
62
|
+
recipients.push(member);
|
|
63
|
+
}
|
|
64
|
+
// harn:assume default-recipient-fallback-chain ref=substantive-default-recipient
|
|
65
|
+
// Zero valid mentions → human/bridge messages default to the author of the
|
|
66
|
+
// latest FINALIZED agent message, then the live configured starting agent,
|
|
67
|
+
// then a sole live agent (running placeholders never become "latest");
|
|
68
|
+
// agent messages default to whoever triggered the run (last delivery of a
|
|
69
|
+
// batch). No candidate → room commentary, delivered to nobody.
|
|
70
|
+
if (recipients.length === 0) {
|
|
71
|
+
const authorKind = ctx.author.kind;
|
|
72
|
+
const fallback = authorKind === 'agent'
|
|
73
|
+
? (ctx.triggerAuthor === undefined ? undefined : byId.get(ctx.triggerAuthor))
|
|
74
|
+
: effectiveDefaultAgent({
|
|
75
|
+
members: ctx.members,
|
|
76
|
+
latestFinalizedAgentId: ctx.latestFinalizedAgentAuthor,
|
|
77
|
+
startingAgentHandle: ctx.roomConfig.starting_agent_handle,
|
|
78
|
+
});
|
|
79
|
+
if (fallback && fallback.id !== message.author && isAddressable(fallback)) {
|
|
80
|
+
recipients.push(fallback);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// harn:end default-recipient-fallback-chain
|
|
84
|
+
// harn:assume human-deliveries-are-inbox-records ref=recipient-split
|
|
85
|
+
// Humans never get turns: the daemon materializes the humans list as inbox
|
|
86
|
+
// records (read_ts lifecycle, WS inbox frames); only agents produce
|
|
87
|
+
// queued deliveries that feed adapter turns.
|
|
88
|
+
const agents = recipients.filter((r) => r.kind === 'agent');
|
|
89
|
+
const humans = recipients.filter((r) => r.kind === 'human');
|
|
90
|
+
// harn:end human-deliveries-are-inbox-records
|
|
91
|
+
const misaddressed = ctx.author.kind === 'agent' &&
|
|
92
|
+
(message.kind !== 'run' || message.run?.status !== 'running') &&
|
|
93
|
+
parsed.unresolved.length > 0;
|
|
94
|
+
return {
|
|
95
|
+
routable: true,
|
|
96
|
+
parsed,
|
|
97
|
+
agents,
|
|
98
|
+
humans,
|
|
99
|
+
commentary: recipients.length === 0,
|
|
100
|
+
misaddressed,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const minuteUtc = (ts) => `${ts.slice(0, 16)}Z`;
|
|
104
|
+
// harn:assume roster-briefing-refreshes-on-membership ref=roster-payload-block
|
|
105
|
+
export function composeDeliveryBriefing(ctx) {
|
|
106
|
+
let payload = '';
|
|
107
|
+
if (ctx.roster) {
|
|
108
|
+
payload += '\n[roster:\n';
|
|
109
|
+
for (const member of ctx.roster) {
|
|
110
|
+
payload += `@${member.handle} (${member.kind}${member.purpose ? `, ${member.purpose}` : ''})\n`;
|
|
111
|
+
}
|
|
112
|
+
payload += ']\n';
|
|
113
|
+
}
|
|
114
|
+
if (ctx.conventions) {
|
|
115
|
+
// harn:assume collaboration-briefing-is-capability-aware ref=collaboration-conventions
|
|
116
|
+
// harn:assume agent-briefings-distinguish-invocation-from-discussion ref=explicit-invocation-conventions
|
|
117
|
+
const untagged = ctx.conventions.untaggedGoesTo === undefined
|
|
118
|
+
? ''
|
|
119
|
+
: ` An untagged reply goes to @${ctx.conventions.untaggedGoesTo}.`;
|
|
120
|
+
payload +=
|
|
121
|
+
`\n[conventions: your normal final reply posts to the channel automatically. ` +
|
|
122
|
+
`An @mention invokes that member and auto-sends your message; write the member's ` +
|
|
123
|
+
`plain name without @ when merely discussing them.${untagged} ` +
|
|
124
|
+
`Reference messages as #N.${ctx.conventions.ledger ? ' Cite ledger notes as [[name]].' : ''} ` +
|
|
125
|
+
`Use codor post only for interim updates and --wait when a direct reply is required; ` +
|
|
126
|
+
`on timeout, check codor status and renew while the peer is active. ` +
|
|
127
|
+
`${ctx.conventions.liveInbox ? '' : 'During long tasks, check codor inbox --new. '}` +
|
|
128
|
+
`Use codor search --runs before asking about unseen referenced context. ` +
|
|
129
|
+
`Use <ACK_OK> as your entire reply only when a message needs no action and no answer; ` +
|
|
130
|
+
`never append it after doing work or as a sign-off.]\n`;
|
|
131
|
+
// harn:end agent-briefings-distinguish-invocation-from-discussion
|
|
132
|
+
// harn:end collaboration-briefing-is-capability-aware
|
|
133
|
+
}
|
|
134
|
+
return payload;
|
|
135
|
+
}
|
|
136
|
+
// harn:end roster-briefing-refreshes-on-membership
|
|
137
|
+
// harn:assume ledger-home-only-refs-travel ref=ledger-aware-payload
|
|
138
|
+
/**
|
|
139
|
+
* The exact bytes a recipient session receives — pinned by goldens in
|
|
140
|
+
* router.spec.ts. Keep payloads lean: sessions pay tokens for every byte.
|
|
141
|
+
*/
|
|
142
|
+
export function composePayload(ctx, you) {
|
|
143
|
+
const to = ctx.toHandles.map((h) => `@${h}`).join(' ');
|
|
144
|
+
// harn:assume codor-delivery-header-identifies-channel ref=delivery-header-template
|
|
145
|
+
// harn:assume awaiting-reply-marker-is-delivery-context ref=awaiting-reply-header
|
|
146
|
+
const headerKind = ctx.awaitingReply ? 'chat, awaiting reply' : ctx.authorKind;
|
|
147
|
+
let payload = `[codor channel=${ctx.room} msg=#${ctx.message.id} from=@${ctx.authorHandle} (${headerKind})\n` +
|
|
148
|
+
` to=${to} · you=@${you}]\n` +
|
|
149
|
+
`\n` +
|
|
150
|
+
`${ctx.message.body}\n`;
|
|
151
|
+
// harn:end awaiting-reply-marker-is-delivery-context
|
|
152
|
+
// harn:end codor-delivery-header-identifies-channel
|
|
153
|
+
for (const ref of ctx.refs) {
|
|
154
|
+
payload +=
|
|
155
|
+
`\n--- referenced #${ref.id} · @${ref.author_handle} · ${minuteUtc(ref.ts)} ---\n` +
|
|
156
|
+
`${ref.body}\n` +
|
|
157
|
+
`--- end reference ---\n`;
|
|
158
|
+
}
|
|
159
|
+
for (const ref of ctx.ledgerRefs ?? []) {
|
|
160
|
+
payload +=
|
|
161
|
+
`\n--- ledger [[${ref.name}]] ---\n` +
|
|
162
|
+
`${ref.body}\n` +
|
|
163
|
+
`--- end ledger note ---\n`;
|
|
164
|
+
}
|
|
165
|
+
payload += composeDeliveryBriefing(ctx);
|
|
166
|
+
return payload;
|
|
167
|
+
}
|
|
168
|
+
// harn:end ledger-home-only-refs-travel
|
|
169
|
+
// harn:assume whole-message-delivery ref=payload-fanout
|
|
170
|
+
/**
|
|
171
|
+
* Fan-out: one payload per recipient, byte-identical except the `you=`
|
|
172
|
+
* field — the whole body plus all resolved refs, never per-mention slices.
|
|
173
|
+
*/
|
|
174
|
+
export function composeDeliveryPayloads(ctx, recipients) {
|
|
175
|
+
const payloads = new Map();
|
|
176
|
+
for (const recipient of recipients) {
|
|
177
|
+
payloads.set(recipient.id, composePayload(ctx, recipient.handle));
|
|
178
|
+
}
|
|
179
|
+
return payloads;
|
|
180
|
+
}
|
|
181
|
+
// harn:assume brakes-opt-in-hold ref=brake-evaluation
|
|
182
|
+
/**
|
|
183
|
+
* Opt-in brakes (PROTOCOL §3): with the default null config NOTHING holds —
|
|
184
|
+
* chains run until the work is done. A configured turn brake holds the next
|
|
185
|
+
* delivery once the agent→agent chain reaches the limit; a spend brake
|
|
186
|
+
* holds once today's cost reaches the threshold.
|
|
187
|
+
*/
|
|
188
|
+
export function evaluateBrakes(config, stats) {
|
|
189
|
+
if (config.turn_brake !== null && stats.consecutiveAgentDeliveries >= config.turn_brake) {
|
|
190
|
+
return { hold: true, reason: 'turn_brake' };
|
|
191
|
+
}
|
|
192
|
+
if (config.spend_brake_usd !== null && stats.spendTodayUsd >= config.spend_brake_usd) {
|
|
193
|
+
return { hold: true, reason: 'spend_brake' };
|
|
194
|
+
}
|
|
195
|
+
return { hold: false };
|
|
196
|
+
}
|
|
197
|
+
// harn:end brakes-opt-in-hold
|
|
198
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type FastifyInstance } from 'fastify';
|
|
2
|
+
import type { CryptoVault } from './crypto/pairing.js';
|
|
3
|
+
import { type Daemon } from './daemon.js';
|
|
4
|
+
import type { PushSubscriptionStore } from './push/subscriptions.js';
|
|
5
|
+
export interface ServerOptions {
|
|
6
|
+
daemon: Daemon;
|
|
7
|
+
/** Single pairing token — the authenticated principal IS the room owner. */
|
|
8
|
+
token: string;
|
|
9
|
+
/** Optional pre-enrolled local principals; enrollment/directory service is out of scope. */
|
|
10
|
+
principals?: readonly {
|
|
11
|
+
token: string;
|
|
12
|
+
member_id: string;
|
|
13
|
+
}[];
|
|
14
|
+
host?: string;
|
|
15
|
+
port?: number;
|
|
16
|
+
/** Serve the built web SPA from this directory (the switchboard IS the web host). */
|
|
17
|
+
staticRoot?: string;
|
|
18
|
+
/** Local CLI transport; filesystem mode is 0600 and no bearer token crosses it. */
|
|
19
|
+
socketPath?: string;
|
|
20
|
+
/** Device enrollment and room-key authority for this switchboard. */
|
|
21
|
+
crypto?: CryptoVault;
|
|
22
|
+
/** Paired browser Web Push destinations; content remains on the switchboard. */
|
|
23
|
+
pushSubscriptions?: PushSubscriptionStore;
|
|
24
|
+
/** Public VAPID application-server key used by browser PushManager.subscribe. */
|
|
25
|
+
pushVapidPublicKey?: string;
|
|
26
|
+
/** True only when the producer has a validated relay destination. */
|
|
27
|
+
pushRelayEnabled?: boolean;
|
|
28
|
+
/** Trust Tailscale Serve's injected identity header for browser enrollment. */
|
|
29
|
+
trustTailscaleServe?: boolean;
|
|
30
|
+
/** Testable operator-home boundary; defaults to the process home. */
|
|
31
|
+
homeDir?: string;
|
|
32
|
+
/** Observe-only when omitted/zero; a positive value gates browser UI hydration. */
|
|
33
|
+
minimumBrowserProtocol?: number;
|
|
34
|
+
/** Test/operations hook fired when a browser reports a positive protocol epoch. */
|
|
35
|
+
onBrowserProtocolObserved?: (protocol: number) => void;
|
|
36
|
+
}
|
|
37
|
+
export interface RunningServer {
|
|
38
|
+
app: FastifyInstance;
|
|
39
|
+
port: number;
|
|
40
|
+
socketPath?: string;
|
|
41
|
+
observedBrowserProtocols(): number[];
|
|
42
|
+
close(): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The API surface: one WebSocket (subscribe/post/act) + small REST (sync,
|
|
46
|
+
* blob fetch, room + member management). Everything served here has already
|
|
47
|
+
* passed the daemon's redaction projection.
|
|
48
|
+
*/
|
|
49
|
+
export declare function startServer(options: ServerOptions): Promise<RunningServer>;
|
|
50
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAQA,OAAgB,EAAE,KAAK,eAAe,EAA0C,MAAM,SAAS,CAAC;AAqBhG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAAwB,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,UAAU,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mFAAmF;IACnF,yBAAyB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,eAAe,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB,IAAI,MAAM,EAAE,CAAC;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA0ED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAmzChF"}
|