@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Richard Xiong
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="website/public/codor-mark-dark.svg">
|
|
4
|
+
<img src="website/public/codor-mark-light.svg" width="112" alt="Codor logo">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">Codor</h1>
|
|
9
|
+
<p align="center"><strong>One channel. Every agent on the wire.</strong></p>
|
|
10
|
+
<p align="center">
|
|
11
|
+
<img alt="Node.js 22.12+" src="https://img.shields.io/badge/Node.js-22.12%2B-3c873a">
|
|
12
|
+
<img alt="pnpm 10.9" src="https://img.shields.io/badge/pnpm-10.9-f69220">
|
|
13
|
+
<img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-222222">
|
|
14
|
+
<a href="https://discord.gg/PtUfM6BhBy"><img alt="Join the Codor Discord" src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white"></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
> [!WARNING]
|
|
18
|
+
> **Codor is currently in alpha and still under active development.** Expect some features to be
|
|
19
|
+
> broken or unfinished, along with frequent updates.
|
|
20
|
+
|
|
21
|
+
<!-- harn:assume operator-launches-serve-web-next ref=readme-current-web-client -->
|
|
22
|
+
<!-- harn:assume public-npx-setup-is-primary-install ref=readme-primary-install -->
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
Install and configure Codor in one command (Node.js 22.12.0 or newer):
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npx @richhardry/codor setup
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The interactive setup checks this computer, prepares private files, asks how the browser should
|
|
32
|
+
connect, starts Codor, verifies the daemon, and prints a QR, URL, eight-character pairing code, and
|
|
33
|
+
expiry. It never sends channel data through a Codor-hosted service.
|
|
34
|
+
|
|
35
|
+
Preview without changing the host:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npx @richhardry/codor setup --dry-run
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For unattended setup, approve mutation and choose exposure explicitly:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
npx @richhardry/codor setup --yes --access localhost
|
|
45
|
+
# or: --access tailscale
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- **Linux:** systemd user service.
|
|
49
|
+
- **macOS:** LaunchAgent after login—no Terminal window needs to stay open.
|
|
50
|
+
|
|
51
|
+
<!-- harn:assume windows-setup-installs-private-task-service ref=readme-native-windows-service -->
|
|
52
|
+
- **Windows (native):** hidden per-user Task Scheduler service—no WSL or open terminal required.
|
|
53
|
+
<!-- harn:end windows-setup-installs-private-task-service -->
|
|
54
|
+
|
|
55
|
+
<!-- harn:assume wsl-setup-keeps-private-windows-loopback ref=readme-wsl-access -->
|
|
56
|
+
**Windows with WSL2:** run setup inside WSL, then open the same `http://127.0.0.1:8137`
|
|
57
|
+
address in your Windows browser.
|
|
58
|
+
<!-- harn:end wsl-setup-keeps-private-windows-loopback -->
|
|
59
|
+
|
|
60
|
+
Open the pairing link. Codor is then available locally at <http://127.0.0.1:8137>.
|
|
61
|
+
<!-- harn:end public-npx-setup-is-primary-install -->
|
|
62
|
+
|
|
63
|
+
<details>
|
|
64
|
+
<summary><strong>First time? Install prerequisites</strong></summary>
|
|
65
|
+
|
|
66
|
+
You need Node.js 22.12.0 or newer and one authenticated agent CLI. Git and pnpm are needed only
|
|
67
|
+
for source development.
|
|
68
|
+
|
|
69
|
+
**macOS**
|
|
70
|
+
|
|
71
|
+
```sh
|
|
72
|
+
xcode-select --install
|
|
73
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
74
|
+
brew install git node pnpm
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Ubuntu / Debian**
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
sudo apt update
|
|
81
|
+
sudo apt install -y git curl
|
|
82
|
+
curl https://get.volta.sh | bash
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Open a new terminal, then run:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
volta install node@22.12.0
|
|
89
|
+
npm install -g pnpm@10.9.0
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Windows** (PowerShell)
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
winget install Git.Git OpenJS.NodeJS.LTS
|
|
96
|
+
npm install -g pnpm@10.9.0
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Install and sign in to at least one supported agent:
|
|
100
|
+
[Claude Code](https://docs.anthropic.com/en/docs/claude-code/getting-started),
|
|
101
|
+
[Codex](https://github.com/openai/codex),
|
|
102
|
+
[Cursor](https://cursor.com/cli),
|
|
103
|
+
[Antigravity](https://antigravity.google/docs/cli/getting-started) (`agy`),
|
|
104
|
+
[Gemini](https://github.com/google-gemini/gemini-cli),
|
|
105
|
+
[Copilot](https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started), or
|
|
106
|
+
[OpenCode](https://opencode.ai/docs/).
|
|
107
|
+
|
|
108
|
+
</details>
|
|
109
|
+
|
|
110
|
+
## Access remotely with Tailscale
|
|
111
|
+
|
|
112
|
+
Tailscale lets you open Codor privately from your phone, tablet, or another computer—without
|
|
113
|
+
putting it on the public internet. [Install Tailscale](https://tailscale.com/download) and sign in
|
|
114
|
+
on both devices with the same account.
|
|
115
|
+
|
|
116
|
+
`codor setup` can publish Codor privately over Tailscale automatically. If you skipped that step,
|
|
117
|
+
run:
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
tailscale serve --bg http://127.0.0.1:8137
|
|
121
|
+
tailscale serve status
|
|
122
|
+
codor --data-dir "$HOME/.codor" pair --endpoint https://<machine>.<tailnet>.ts.net
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Open the generated pairing link on your other device. Use private Tailscale Serve—not public
|
|
126
|
+
Funnel—so Codor remains available only inside your tailnet.
|
|
127
|
+
|
|
128
|
+
<!-- harn:assume readme-explains-existing-session-custody ref=readme-existing-session-workflow -->
|
|
129
|
+
## Attach existing sessions
|
|
130
|
+
|
|
131
|
+
Already working in Claude Code or Codex? Add that live session to a channel without starting over.
|
|
132
|
+
From the same project—or by asking the agent to run it:
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
codor join <channel-name> --as planner
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Codor detects the current or most recent Claude Code/Codex session. If detection is ambiguous, be
|
|
139
|
+
explicit:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
codor join <channel-name> --as planner --harness claude-code --session <session-id> --cwd "$PWD"
|
|
143
|
+
codor join <channel-name> --as reviewer --harness codex --session <thread-id> --cwd "$PWD"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The existing terminal remains in control while joined. Configure the
|
|
147
|
+
[Claude Code hooks](docs/JOIN.md#claude-code-hooks) or
|
|
148
|
+
[Codex notify](docs/JOIN.md#codex-notify) once so completed turns appear in the channel. When you
|
|
149
|
+
finish using that terminal, hand the session to Codor:
|
|
150
|
+
|
|
151
|
+
```sh
|
|
152
|
+
codor adopt -r <channel-name> planner
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
For the opposite direction—temporarily opening a session Codor already manages—run:
|
|
156
|
+
|
|
157
|
+
```sh
|
|
158
|
+
codor attach -r <channel-name> planner
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
This opens the native resumable session and returns it to Codor when you exit. It supports
|
|
162
|
+
resumable Claude Code, Codex, Gemini, OpenCode, and Copilot members. See the complete
|
|
163
|
+
[existing-session guide](docs/JOIN.md).
|
|
164
|
+
<!-- harn:end readme-explains-existing-session-custody -->
|
|
165
|
+
|
|
166
|
+
<details>
|
|
167
|
+
<summary><strong>Service checks, upgrades, and development mode</strong></summary>
|
|
168
|
+
|
|
169
|
+
Preview changes with `codor setup --dry-run`.
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
# Linux service
|
|
173
|
+
systemctl --user status codor.service
|
|
174
|
+
journalctl --user -u codor.service -f
|
|
175
|
+
|
|
176
|
+
# macOS service
|
|
177
|
+
launchctl print "gui/$(id -u)/app.codor.switchboard"
|
|
178
|
+
tail -f "$HOME/.codor/logs/codor.err.log"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
For package upgrades, rerun `npx @richhardry/codor setup`; it refreshes the user service against
|
|
182
|
+
the invoking installed runtime. Restart `codor.service` on Linux or
|
|
183
|
+
`app.codor.switchboard` with `launchctl kickstart -k` on macOS if the service manager has not
|
|
184
|
+
already restarted it.
|
|
185
|
+
|
|
186
|
+
<!-- harn:assume source-cli-installers-remain-idempotent-fallback ref=readme-native-windows-installer -->
|
|
187
|
+
For source development, clone the repository, run `pnpm install --frozen-lockfile && pnpm -r build`,
|
|
188
|
+
then use `scripts/install-cli.sh` on POSIX or
|
|
189
|
+
`powershell -ExecutionPolicy Bypass -File scripts/install-cli.ps1` on Windows. These idempotent
|
|
190
|
+
checkout installers are contributor fallbacks, not the normal product installation.
|
|
191
|
+
<!-- harn:end source-cli-installers-remain-idempotent-fallback -->
|
|
192
|
+
|
|
193
|
+
The supported browser build is `packages/web-next/dist`; it contains the complete browser runtime
|
|
194
|
+
and service worker. Foreground development, backup, restore, and detailed operations are in
|
|
195
|
+
[docs/SELF-HOST.md](docs/SELF-HOST.md).
|
|
196
|
+
|
|
197
|
+
</details>
|
|
198
|
+
<!-- harn:end operator-launches-serve-web-next -->
|
|
199
|
+
|
|
200
|
+
<!-- harn:assume human-facing-surfaces-call-rooms-channels ref=public-docs-channel-terminology -->
|
|
201
|
+
## What Codor does
|
|
202
|
+
|
|
203
|
+
Codor gives persistent coding agents one shared channel while each keeps its native session and
|
|
204
|
+
context. Messages, mentions, tool evidence, files, unread state, and run history stay on your
|
|
205
|
+
machine.
|
|
206
|
+
|
|
207
|
+

|
|
208
|
+
|
|
209
|
+
- Mention agents to give them work and let them collaborate.
|
|
210
|
+
- Watch every human and agent message in permanent chronological order.
|
|
211
|
+
- Resume after sleep, disconnects, and restarts without losing streamed work.
|
|
212
|
+
- Add remote machines, a ledger, Slack, or Telegram only when you need them.
|
|
213
|
+
<!-- harn:end human-facing-surfaces-call-rooms-channels -->
|
|
214
|
+
|
|
215
|
+
## Everyday CLI
|
|
216
|
+
|
|
217
|
+
<!-- harn:assume source-cli-installers-remain-idempotent-fallback ref=cli-install-docs -->
|
|
218
|
+
The source-checkout installers remain idempotent development fallbacks. Normal installation uses
|
|
219
|
+
`npx @richhardry/codor setup`. Most use happens in the PWA, but these commands are useful from a
|
|
220
|
+
terminal:
|
|
221
|
+
|
|
222
|
+
```sh
|
|
223
|
+
codor channels
|
|
224
|
+
codor post -r desk '@reviewer check #12'
|
|
225
|
+
codor tail -r desk --once
|
|
226
|
+
codor revive -r desk reviewer
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Run `codor --help` for the complete CLI. Adapter authors can start with
|
|
230
|
+
[docs/ADAPTERS.md](docs/ADAPTERS.md).
|
|
231
|
+
<!-- harn:end source-cli-installers-remain-idempotent-fallback -->
|
|
232
|
+
|
|
233
|
+
<!-- harn:assume agent-member-credentials-are-defense-in-depth ref=readme-agent-trust-boundary -->
|
|
234
|
+
> [!IMPORTANT]
|
|
235
|
+
> Agent credentials narrow Codor permissions; they are not a process sandbox. Agents still run as
|
|
236
|
+
> your OS user. Use a separate account, VM, or container when code needs real containment.
|
|
237
|
+
<!-- harn:end agent-member-credentials-are-defense-in-depth -->
|
|
238
|
+
|
|
239
|
+
<details>
|
|
240
|
+
<summary><strong>Advanced collaboration and privacy</strong></summary>
|
|
241
|
+
|
|
242
|
+
<!-- harn:assume live-collaboration-contract-is-public-v5 ref=readme-live-collaboration -->
|
|
243
|
+
Agents can post interim updates, wait for named peers, inspect status, and search bounded redacted
|
|
244
|
+
run evidence without ending their native turn:
|
|
245
|
+
|
|
246
|
+
```sh
|
|
247
|
+
codor post --wait --timeout 300 '@reviewer check the fixture'
|
|
248
|
+
codor status reviewer
|
|
249
|
+
codor tail --follow --until-mention coder --timeout 300
|
|
250
|
+
codor search -r desk --runs --limit 50 'fixture'
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Agent subprocesses receive their channel identity, member credential, and collaboration
|
|
254
|
+
conventions, so interim posts are attributed correctly. `post --wait` accepts only a direct reply
|
|
255
|
+
from an addressed member; timeout is normal control flow and matching deliveries are consumed once.
|
|
256
|
+
Claude Code's inbox hook checks after tool calls without injecting empty messages. The PWA shows
|
|
257
|
+
who is working or waiting, on whom, and for how long.
|
|
258
|
+
<!-- harn:end live-collaboration-contract-is-public-v5 -->
|
|
259
|
+
|
|
260
|
+
Remote relays can see sealed payloads plus delivery
|
|
261
|
+
metadata, but cannot decrypt channel content.
|
|
262
|
+
|
|
263
|
+
Keep port 8137 on localhost and use a private authenticated tunnel such as Tailscale Serve. Read
|
|
264
|
+
[docs/PRIVACY.md](docs/PRIVACY.md) before enabling remote access, push, DHT lines, or bridges.
|
|
265
|
+
|
|
266
|
+
</details>
|
|
267
|
+
|
|
268
|
+
## Documentation
|
|
269
|
+
|
|
270
|
+
[Self-host](docs/SELF-HOST.md) · [Architecture](docs/ARCHITECTURE.md) ·
|
|
271
|
+
[Protocol](docs/PROTOCOL.md) · [Privacy](docs/PRIVACY.md) · [Roadmap](docs/ROADMAP.md)
|
|
272
|
+
|
|
273
|
+
<details>
|
|
274
|
+
<summary><strong>Development</strong></summary>
|
|
275
|
+
|
|
276
|
+
```sh
|
|
277
|
+
pnpm install --frozen-lockfile
|
|
278
|
+
pnpm test:all
|
|
279
|
+
pnpm audit:license
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Physical-device and credential-gated checks are in [MANUAL-VERIFY.md](MANUAL-VERIFY.md).
|
|
283
|
+
|
|
284
|
+
</details>
|
|
285
|
+
|
|
286
|
+
## Join the Discord
|
|
287
|
+
|
|
288
|
+
Codor is being built in public. [Join the Codor Discord](https://discord.gg/PtUfM6BhBy) to ask
|
|
289
|
+
questions, report bugs, share feedback, and follow new releases.
|
|
290
|
+
|
|
291
|
+
## License
|
|
292
|
+
|
|
293
|
+
[MIT](LICENSE), copyright 2026 Richard Xiong.
|
package/bin/codor.mjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type AdapterTurnHooks, type HarnessAdapter, type ModelCatalog, type Session, type SessionRef, type SpawnOpts, type WireEvent } from '@codor/protocol';
|
|
2
|
+
export declare function parseConversationId(log: string): string | undefined;
|
|
3
|
+
export declare function antigravitySlug(display: string): string;
|
|
4
|
+
export interface AntigravityInvocation {
|
|
5
|
+
mode: 'plan' | 'accept-edits';
|
|
6
|
+
skipPermissions: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function antigravityMode(policy: string | undefined): AntigravityInvocation;
|
|
9
|
+
export declare function antigravityArgs(session: Session, payload: string, logFile: string, model?: string | undefined): string[];
|
|
10
|
+
export declare class AntigravityAdapter implements HarnessAdapter {
|
|
11
|
+
private readonly command;
|
|
12
|
+
readonly id = "antigravity";
|
|
13
|
+
readonly capabilities: {
|
|
14
|
+
readonly resume: true;
|
|
15
|
+
readonly discover: false;
|
|
16
|
+
readonly interactiveAttach: false;
|
|
17
|
+
readonly ask: false;
|
|
18
|
+
readonly approvals: "spawn-time";
|
|
19
|
+
readonly extensions: false;
|
|
20
|
+
readonly thinking: false;
|
|
21
|
+
readonly live_inbox: false;
|
|
22
|
+
readonly policies: {
|
|
23
|
+
readonly 'read-only': "--mode plan";
|
|
24
|
+
readonly 'workspace-write': "--mode accept-edits";
|
|
25
|
+
readonly 'full-access': "--mode accept-edits --dangerously-skip-permissions";
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
private readonly children;
|
|
29
|
+
private readonly displayNames;
|
|
30
|
+
constructor(command?: string);
|
|
31
|
+
spawn(opts: SpawnOpts): Session;
|
|
32
|
+
listModels(): Promise<ModelCatalog>;
|
|
33
|
+
attach(sessionRef: SessionRef): Session;
|
|
34
|
+
deliver(session: Session, payload: string, hooks?: AdapterTurnHooks): AsyncIterable<WireEvent>;
|
|
35
|
+
private recoverSessionRef;
|
|
36
|
+
interrupt(session: Session): void;
|
|
37
|
+
private signal;
|
|
38
|
+
respondInteraction(): Promise<void>;
|
|
39
|
+
discoverSessions(): SessionRef[];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAOzB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAsBD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,CAQjF;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,qBAAgB,GACpB,MAAM,EAAE,CAgBV;AAGD,qBAAa,kBAAmB,YAAW,cAAc;IA0B3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzBpC,QAAQ,CAAC,EAAE,iBAAiB;IAG5B,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;MAgBV;IAGX,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE7B,OAAO,SAAQ;IAE5C,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAc/B,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAgCnC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAKhC,OAAO,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,gBAAqB,GAC3B,aAAa,CAAC,SAAS,CAAC;IAkG3B,OAAO,CAAC,iBAAiB;IAQzB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKjC,OAAO,CAAC,MAAM;IAUd,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,gBAAgB,IAAI,UAAU,EAAE;CAGjC"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { readFileSync, rmSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { PolicySchema, } from '@codor/protocol';
|
|
6
|
+
import spawn from 'cross-spawn';
|
|
7
|
+
const CONVERSATION_RE = /\bfor ([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\b/gi;
|
|
8
|
+
const MAX_OUTPUT_BYTES = 256 * 1024;
|
|
9
|
+
const TRUNCATED = '\n[output truncated]';
|
|
10
|
+
export function parseConversationId(log) {
|
|
11
|
+
return [...log.matchAll(CONVERSATION_RE)].at(-1)?.[1]?.toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
export function antigravitySlug(display) {
|
|
14
|
+
return display.toLowerCase().replace(/[^a-z0-9.]+/g, '-').replace(/^-+|-+$/g, '');
|
|
15
|
+
}
|
|
16
|
+
function utf8Prefix(value, maxBytes) {
|
|
17
|
+
if (maxBytes <= 0)
|
|
18
|
+
return '';
|
|
19
|
+
if (Buffer.byteLength(value, 'utf8') <= maxBytes)
|
|
20
|
+
return value;
|
|
21
|
+
let bytes = 0;
|
|
22
|
+
let prefix = '';
|
|
23
|
+
for (const point of value) {
|
|
24
|
+
const pointBytes = Buffer.byteLength(point, 'utf8');
|
|
25
|
+
if (bytes + pointBytes > maxBytes)
|
|
26
|
+
break;
|
|
27
|
+
prefix += point;
|
|
28
|
+
bytes += pointBytes;
|
|
29
|
+
}
|
|
30
|
+
return prefix;
|
|
31
|
+
}
|
|
32
|
+
function finalOutput(output, truncated) {
|
|
33
|
+
if (!truncated)
|
|
34
|
+
return output;
|
|
35
|
+
const markerBytes = Buffer.byteLength(TRUNCATED, 'utf8');
|
|
36
|
+
return `${utf8Prefix(output, MAX_OUTPUT_BYTES - markerBytes)}${TRUNCATED}`;
|
|
37
|
+
}
|
|
38
|
+
// harn:assume canonical-spawn-controls-enforced ref=antigravity-spawn-control-mapping
|
|
39
|
+
export function antigravityMode(policy) {
|
|
40
|
+
if (policy === undefined)
|
|
41
|
+
return { mode: 'accept-edits', skipPermissions: false };
|
|
42
|
+
if (!PolicySchema.safeParse(policy).success) {
|
|
43
|
+
throw new Error(`unknown policy '${policy}'; valid policies: ${PolicySchema.options.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
if (policy === 'read-only')
|
|
46
|
+
return { mode: 'plan', skipPermissions: false };
|
|
47
|
+
if (policy === 'workspace-write')
|
|
48
|
+
return { mode: 'accept-edits', skipPermissions: false };
|
|
49
|
+
return { mode: 'accept-edits', skipPermissions: true };
|
|
50
|
+
}
|
|
51
|
+
export function antigravityArgs(session, payload, logFile, model = session.model) {
|
|
52
|
+
if (session.thinking !== undefined) {
|
|
53
|
+
throw new Error("adapter 'antigravity' does not support thinking levels");
|
|
54
|
+
}
|
|
55
|
+
const { mode, skipPermissions } = antigravityMode(session.policy);
|
|
56
|
+
const args = [
|
|
57
|
+
'--mode', mode,
|
|
58
|
+
'--add-dir', session.cwd,
|
|
59
|
+
'--log-file', logFile,
|
|
60
|
+
'--print-timeout', '30m',
|
|
61
|
+
];
|
|
62
|
+
if (model !== undefined)
|
|
63
|
+
args.push('--model', model);
|
|
64
|
+
if (skipPermissions)
|
|
65
|
+
args.push('--dangerously-skip-permissions');
|
|
66
|
+
if (session.session_ref !== undefined)
|
|
67
|
+
args.push('--conversation', session.session_ref);
|
|
68
|
+
args.push('--print', payload);
|
|
69
|
+
return args;
|
|
70
|
+
}
|
|
71
|
+
// harn:end canonical-spawn-controls-enforced
|
|
72
|
+
export class AntigravityAdapter {
|
|
73
|
+
command;
|
|
74
|
+
id = 'antigravity';
|
|
75
|
+
// harn:assume canonical-spawn-controls-enforced ref=antigravity-capability-map
|
|
76
|
+
capabilities = {
|
|
77
|
+
resume: true,
|
|
78
|
+
discover: false,
|
|
79
|
+
interactiveAttach: false,
|
|
80
|
+
ask: false,
|
|
81
|
+
approvals: 'spawn-time',
|
|
82
|
+
extensions: false,
|
|
83
|
+
thinking: false,
|
|
84
|
+
live_inbox: false,
|
|
85
|
+
// harn:assume harness-declares-what-a-policy-becomes ref=antigravity-policy-declarations
|
|
86
|
+
policies: {
|
|
87
|
+
'read-only': '--mode plan',
|
|
88
|
+
'workspace-write': '--mode accept-edits',
|
|
89
|
+
'full-access': '--mode accept-edits --dangerously-skip-permissions',
|
|
90
|
+
},
|
|
91
|
+
// harn:end harness-declares-what-a-policy-becomes
|
|
92
|
+
};
|
|
93
|
+
// harn:end canonical-spawn-controls-enforced
|
|
94
|
+
children = new WeakMap();
|
|
95
|
+
displayNames = new Map();
|
|
96
|
+
constructor(command = 'agy') {
|
|
97
|
+
this.command = command;
|
|
98
|
+
}
|
|
99
|
+
spawn(opts) {
|
|
100
|
+
antigravityMode(opts.policy);
|
|
101
|
+
if (opts.thinking !== undefined) {
|
|
102
|
+
throw new Error("adapter 'antigravity' does not support thinking levels");
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
harness: this.id,
|
|
106
|
+
cwd: opts.cwd,
|
|
107
|
+
model: opts.model,
|
|
108
|
+
policy: opts.policy,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// harn:assume adapters-own-their-model-catalog ref=antigravity-model-catalog
|
|
112
|
+
listModels() {
|
|
113
|
+
const result = spawn.sync(this.command, ['models'], {
|
|
114
|
+
timeout: 5_000,
|
|
115
|
+
maxBuffer: 1_000_000,
|
|
116
|
+
encoding: 'utf8',
|
|
117
|
+
});
|
|
118
|
+
if (result.error)
|
|
119
|
+
return Promise.reject(result.error);
|
|
120
|
+
if (result.status !== 0) {
|
|
121
|
+
return Promise.reject(new Error(`Command failed: ${this.command} models`));
|
|
122
|
+
}
|
|
123
|
+
const displays = String(result.stdout ?? '')
|
|
124
|
+
.split(/\r?\n/)
|
|
125
|
+
.map((line) => line.trim())
|
|
126
|
+
.filter(Boolean);
|
|
127
|
+
if (displays.length === 0)
|
|
128
|
+
return Promise.reject(new Error('agy listed no models'));
|
|
129
|
+
const next = new Map();
|
|
130
|
+
for (const display of displays) {
|
|
131
|
+
const slug = antigravitySlug(display);
|
|
132
|
+
if (slug === '')
|
|
133
|
+
return Promise.reject(new Error(`agy model '${display}' has no safe slug`));
|
|
134
|
+
const existing = next.get(slug);
|
|
135
|
+
if (existing !== undefined && existing !== display) {
|
|
136
|
+
return Promise.reject(new Error(`agy model names collide at slug '${slug}'`));
|
|
137
|
+
}
|
|
138
|
+
next.set(slug, display);
|
|
139
|
+
}
|
|
140
|
+
this.displayNames.clear();
|
|
141
|
+
for (const [slug, display] of next)
|
|
142
|
+
this.displayNames.set(slug, display);
|
|
143
|
+
return Promise.resolve({ models: [...next.keys()], source: 'discovered' });
|
|
144
|
+
}
|
|
145
|
+
// harn:end adapters-own-their-model-catalog
|
|
146
|
+
attach(sessionRef) {
|
|
147
|
+
return { harness: this.id, session_ref: sessionRef, cwd: process.cwd() };
|
|
148
|
+
}
|
|
149
|
+
// harn:assume adapter-process-lifecycle-supervised ref=antigravity-cli-process-supervision
|
|
150
|
+
async *deliver(session, payload, hooks = {}) {
|
|
151
|
+
const logFile = join(tmpdir(), `codor-antigravity-${randomUUID()}.log`);
|
|
152
|
+
const model = session.model === undefined
|
|
153
|
+
? undefined
|
|
154
|
+
: this.displayNames.get(session.model) ?? session.model;
|
|
155
|
+
const child = spawn(this.command, antigravityArgs(session, payload, logFile, model), {
|
|
156
|
+
cwd: session.cwd,
|
|
157
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
158
|
+
detached: true,
|
|
159
|
+
// harn:assume adapter-children-inherit-session-env ref=antigravity-child-environment
|
|
160
|
+
env: { ...process.env, ...session.env },
|
|
161
|
+
// harn:end adapter-children-inherit-session-env
|
|
162
|
+
});
|
|
163
|
+
this.children.set(session, child);
|
|
164
|
+
let output = '';
|
|
165
|
+
let truncated = false;
|
|
166
|
+
let stderr = '';
|
|
167
|
+
let terminal = false;
|
|
168
|
+
let childError;
|
|
169
|
+
child.stdout.setEncoding('utf8');
|
|
170
|
+
child.stderr.setEncoding('utf8');
|
|
171
|
+
child.stderr.on('data', (chunk) => {
|
|
172
|
+
stderr = `${stderr}${chunk}`.slice(-8192);
|
|
173
|
+
});
|
|
174
|
+
const spawned = new Promise((resolve, reject) => {
|
|
175
|
+
child.once('spawn', resolve);
|
|
176
|
+
child.once('error', (error) => {
|
|
177
|
+
childError = error;
|
|
178
|
+
reject(error);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
const closed = new Promise((resolve) => child.once('close', (code, signal) => resolve({ code, signal })));
|
|
182
|
+
try {
|
|
183
|
+
try {
|
|
184
|
+
await spawned;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
terminal = true;
|
|
188
|
+
yield {
|
|
189
|
+
type: 'run.completed',
|
|
190
|
+
status: 'failed',
|
|
191
|
+
final_text: error instanceof Error ? error.message : String(error),
|
|
192
|
+
};
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
hooks.onStarted?.({ pid: child.pid, process_group_id: child.pid });
|
|
196
|
+
// harn:assume antigravity-plain-output-is-bounded ref=antigravity-output-bound
|
|
197
|
+
for await (const chunk of child.stdout) {
|
|
198
|
+
const text = chunk;
|
|
199
|
+
const accepted = utf8Prefix(text, MAX_OUTPUT_BYTES - Buffer.byteLength(output, 'utf8'));
|
|
200
|
+
if (accepted !== text)
|
|
201
|
+
truncated = true;
|
|
202
|
+
if (accepted !== '') {
|
|
203
|
+
output += accepted;
|
|
204
|
+
yield { type: 'run.item', item_type: 'text_delta', payload: { text: accepted } };
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// harn:end antigravity-plain-output-is-bounded
|
|
208
|
+
const exit = await closed;
|
|
209
|
+
// harn:assume antigravity-session-resume-is-log-derived ref=antigravity-log-resume
|
|
210
|
+
const sessionRef = this.recoverSessionRef(logFile);
|
|
211
|
+
if (sessionRef !== undefined && sessionRef !== session.session_ref) {
|
|
212
|
+
session.session_ref = sessionRef;
|
|
213
|
+
hooks.onSessionRef?.(sessionRef);
|
|
214
|
+
}
|
|
215
|
+
// harn:end antigravity-session-resume-is-log-derived
|
|
216
|
+
const detail = stderr.trim() || childError?.message;
|
|
217
|
+
const status = childError !== undefined || (exit.code !== null && exit.code !== 0)
|
|
218
|
+
? 'failed'
|
|
219
|
+
: exit.signal !== null ? 'interrupted' : 'completed';
|
|
220
|
+
const evidence = status === 'completed' ? output.trim() : output.trim() || detail || '';
|
|
221
|
+
const finalText = finalOutput(evidence, truncated);
|
|
222
|
+
terminal = true;
|
|
223
|
+
yield {
|
|
224
|
+
type: 'run.completed',
|
|
225
|
+
status,
|
|
226
|
+
...(finalText !== '' && { final_text: finalText }),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
if (!terminal) {
|
|
231
|
+
const finalText = finalOutput(output.trim(), truncated);
|
|
232
|
+
yield {
|
|
233
|
+
type: 'run.completed',
|
|
234
|
+
status: 'interrupted',
|
|
235
|
+
...(finalText !== '' && { final_text: finalText }),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
this.children.delete(session);
|
|
239
|
+
rmSync(logFile, { force: true });
|
|
240
|
+
if (child.exitCode === null && child.signalCode === null)
|
|
241
|
+
this.signal(child, 'SIGKILL');
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
recoverSessionRef(logFile) {
|
|
245
|
+
try {
|
|
246
|
+
return parseConversationId(readFileSync(logFile, 'utf8'));
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
return undefined;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
interrupt(session) {
|
|
253
|
+
const child = this.children.get(session);
|
|
254
|
+
if (child)
|
|
255
|
+
this.signal(child, 'SIGINT');
|
|
256
|
+
}
|
|
257
|
+
signal(child, signal) {
|
|
258
|
+
if (child.pid === undefined)
|
|
259
|
+
return;
|
|
260
|
+
try {
|
|
261
|
+
process.kill(process.platform === 'win32' ? child.pid : -child.pid, signal);
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
child.kill(signal);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// harn:end adapter-process-lifecycle-supervised
|
|
268
|
+
respondInteraction() {
|
|
269
|
+
return Promise.reject(new Error('agy print mode has no interaction response channel'));
|
|
270
|
+
}
|
|
271
|
+
discoverSessions() {
|
|
272
|
+
return [];
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
|