borgmcp 1.1.14 → 2.0.1
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/CONTRIBUTING.md +15 -0
- package/LICENSE +201 -33
- package/NOTICE +2 -0
- package/README.md +86 -37
- package/SECURITY.md +7 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +63 -1
- package/dist/agent-runtime.js.map +1 -0
- package/dist/assimilate-cmd.d.ts +96 -17
- package/dist/assimilate-cmd.d.ts.map +1 -0
- package/dist/assimilate-cmd.js +1396 -48
- package/dist/assimilate-cmd.js.map +1 -0
- package/dist/assimilate-deps.d.ts.map +1 -0
- package/dist/assimilate-deps.js +384 -3
- package/dist/assimilate-deps.js.map +1 -0
- package/dist/assimilate-guard.d.ts +5 -7
- package/dist/assimilate-guard.d.ts.map +1 -0
- package/dist/assimilate-guard.js +60 -2
- package/dist/assimilate-guard.js.map +1 -0
- package/dist/assimilate-welcome.d.ts +1 -1
- package/dist/assimilate-welcome.d.ts.map +1 -0
- package/dist/assimilate-welcome.js +32 -2
- package/dist/assimilate-welcome.js.map +1 -0
- package/dist/auth-env.d.ts +7 -50
- package/dist/auth-env.d.ts.map +1 -0
- package/dist/auth-env.js +22 -1
- package/dist/auth-env.js.map +1 -0
- package/dist/backends/launch-all-pastelist.d.ts.map +1 -0
- package/dist/backends/launch-all-pastelist.js +11 -4
- package/dist/backends/launch-all-pastelist.js.map +1 -0
- package/dist/backends/launch-all-tmux.d.ts.map +1 -0
- package/dist/backends/launch-all-tmux.js +49 -1
- package/dist/backends/launch-all-tmux.js.map +1 -0
- package/dist/backends/launch-all-windows.d.ts.map +1 -0
- package/dist/backends/launch-all-windows.js +86 -12
- package/dist/backends/launch-all-windows.js.map +1 -0
- package/dist/bare-launch-menu.d.ts.map +1 -0
- package/dist/bare-launch-menu.js +83 -6
- package/dist/bare-launch-menu.js.map +1 -0
- package/dist/claude-launch-args.d.ts.map +1 -0
- package/dist/claude-launch-args.js +34 -1
- package/dist/claude-launch-args.js.map +1 -0
- package/dist/claude.d.ts.map +1 -0
- package/dist/claude.js +486 -14
- package/dist/claude.js.map +1 -0
- package/dist/cleanup-cmd.d.ts +5 -5
- package/dist/cleanup-cmd.d.ts.map +1 -0
- package/dist/cleanup-cmd.js +453 -14
- package/dist/cleanup-cmd.js.map +1 -0
- package/dist/clear-rewake-core.d.ts.map +1 -0
- package/dist/clear-rewake-core.js +23 -2
- package/dist/clear-rewake-core.js.map +1 -0
- package/dist/clear-rewake.d.ts.map +1 -0
- package/dist/clear-rewake.js +19 -1
- package/dist/clear-rewake.js.map +1 -0
- package/dist/cli-help.d.ts +5 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +104 -56
- package/dist/cli-help.js.map +1 -0
- package/dist/cli-platform.d.ts.map +1 -0
- package/dist/cli-platform.js +106 -4
- package/dist/cli-platform.js.map +1 -0
- package/dist/cli-tool-approval.d.ts +84 -0
- package/dist/cli-tool-approval.d.ts.map +1 -0
- package/dist/cli-tool-approval.js +583 -0
- package/dist/cli-tool-approval.js.map +1 -0
- package/dist/codex-app-server.d.ts.map +1 -0
- package/dist/codex-app-server.js +228 -4
- package/dist/codex-app-server.js.map +1 -0
- package/dist/codex-app-wake.d.ts.map +1 -0
- package/dist/codex-app-wake.js +432 -2
- package/dist/codex-app-wake.js.map +1 -0
- package/dist/codex-launch.d.ts.map +1 -0
- package/dist/codex-launch.js +102 -2
- package/dist/codex-launch.js.map +1 -0
- package/dist/codex-remote.d.ts +6 -1
- package/dist/codex-remote.d.ts.map +1 -0
- package/dist/codex-remote.js +394 -1
- package/dist/codex-remote.js.map +1 -0
- package/dist/codex-wake-resolve.d.ts.map +1 -0
- package/dist/codex-wake-resolve.js +127 -1
- package/dist/codex-wake-resolve.js.map +1 -0
- package/dist/config-utils.d.ts +2 -2
- package/dist/config-utils.d.ts.map +1 -0
- package/dist/config-utils.js +766 -3
- package/dist/config-utils.js.map +1 -0
- package/dist/config.d.ts +98 -61
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +426 -1
- package/dist/config.js.map +1 -0
- package/dist/console-prefix.d.ts.map +1 -0
- package/dist/console-prefix.js +96 -1
- package/dist/console-prefix.js.map +1 -0
- package/dist/cube-name.d.ts.map +1 -0
- package/dist/cube-name.js +67 -1
- package/dist/cube-name.js.map +1 -0
- package/dist/cubes.d.ts +126 -18
- package/dist/cubes.d.ts.map +1 -0
- package/dist/cubes.js +412 -4
- package/dist/cubes.js.map +1 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +71 -1
- package/dist/debug.js.map +1 -0
- package/dist/direct-log.d.ts.map +1 -0
- package/dist/direct-log.js +11 -1
- package/dist/direct-log.js.map +1 -0
- package/dist/docs-sections.d.ts +11 -10
- package/dist/docs-sections.d.ts.map +1 -0
- package/dist/docs-sections.js +113 -3
- package/dist/docs-sections.js.map +1 -0
- package/dist/drone-lifecycle.d.ts +5 -21
- package/dist/drone-lifecycle.d.ts.map +1 -0
- package/dist/drone-lifecycle.js +57 -8
- package/dist/drone-lifecycle.js.map +1 -0
- package/dist/drone-management.d.ts +29 -0
- package/dist/drone-management.d.ts.map +1 -0
- package/dist/drone-management.js +109 -0
- package/dist/drone-management.js.map +1 -0
- package/dist/ensure-mcp-config.d.ts.map +1 -0
- package/dist/ensure-mcp-config.js +36 -1
- package/dist/ensure-mcp-config.js.map +1 -0
- package/dist/evict-drone.d.ts +10 -2
- package/dist/evict-drone.d.ts.map +1 -0
- package/dist/evict-drone.js +60 -1
- package/dist/evict-drone.js.map +1 -0
- package/dist/gc-orphan-inboxes.d.ts.map +1 -0
- package/dist/gc-orphan-inboxes.js +177 -1
- package/dist/gc-orphan-inboxes.js.map +1 -0
- package/dist/inbox-monitor.d.ts +1 -1
- package/dist/inbox-monitor.d.ts.map +1 -0
- package/dist/inbox-monitor.js +856 -3
- package/dist/inbox-monitor.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1034 -37
- package/dist/index.js.map +1 -0
- package/dist/launch-all-cmd.d.ts.map +1 -0
- package/dist/launch-all-cmd.js +377 -37
- package/dist/launch-all-cmd.js.map +1 -0
- package/dist/launch-all-command.d.ts.map +1 -0
- package/dist/launch-all-command.js +24 -1
- package/dist/launch-all-command.js.map +1 -0
- package/dist/launch-all-deps.d.ts +3 -8
- package/dist/launch-all-deps.d.ts.map +1 -0
- package/dist/launch-all-deps.js +99 -1
- package/dist/launch-all-deps.js.map +1 -0
- package/dist/launch-all-discovery.d.ts +1 -0
- package/dist/launch-all-discovery.d.ts.map +1 -0
- package/dist/launch-all-discovery.js +90 -4
- package/dist/launch-all-discovery.js.map +1 -0
- package/dist/launch-all-locks.d.ts.map +1 -0
- package/dist/launch-all-locks.js +54 -1
- package/dist/launch-all-locks.js.map +1 -0
- package/dist/launch-gate.d.ts +2 -2
- package/dist/launch-gate.d.ts.map +1 -0
- package/dist/launch-gate.js +73 -1
- package/dist/launch-gate.js.map +1 -0
- package/dist/lifecycle-log-guard.d.ts.map +1 -0
- package/dist/lifecycle-log-guard.js +93 -2
- package/dist/lifecycle-log-guard.js.map +1 -0
- package/dist/list-roles-render.d.ts.map +1 -0
- package/dist/list-roles-render.js +40 -6
- package/dist/list-roles-render.js.map +1 -0
- package/dist/local-log-routing.d.ts +19 -0
- package/dist/local-log-routing.d.ts.map +1 -0
- package/dist/local-log-routing.js +67 -0
- package/dist/local-log-routing.js.map +1 -0
- package/dist/local-manage-tool-result.d.ts +8 -0
- package/dist/local-manage-tool-result.d.ts.map +1 -0
- package/dist/local-manage-tool-result.js +10 -0
- package/dist/local-manage-tool-result.js.map +1 -0
- package/dist/local-server-cursor.d.ts +34 -0
- package/dist/local-server-cursor.d.ts.map +1 -0
- package/dist/local-server-cursor.js +151 -0
- package/dist/local-server-cursor.js.map +1 -0
- package/dist/log-audit.d.ts.map +1 -0
- package/dist/log-audit.js +194 -3
- package/dist/log-audit.js.map +1 -0
- package/dist/log-stream.d.ts +31 -18
- package/dist/log-stream.d.ts.map +1 -0
- package/dist/log-stream.js +1214 -12
- package/dist/log-stream.js.map +1 -0
- package/dist/model-presets.d.ts.map +1 -0
- package/dist/model-presets.js +19 -1
- package/dist/model-presets.js.map +1 -0
- package/dist/name-validator.d.ts.map +1 -0
- package/dist/name-validator.js +22 -1
- package/dist/name-validator.js.map +1 -0
- package/dist/opencode-drone.d.ts.map +1 -0
- package/dist/opencode-drone.js +438 -4
- package/dist/opencode-drone.js.map +1 -0
- package/dist/opencode-plugin.d.ts +1 -1
- package/dist/opencode-plugin.d.ts.map +1 -0
- package/dist/opencode-plugin.js +29 -4
- package/dist/opencode-plugin.js.map +1 -0
- package/dist/parse-assimilate-args.d.ts +1 -1
- package/dist/parse-assimilate-args.d.ts.map +1 -0
- package/dist/parse-assimilate-args.js +125 -1
- package/dist/parse-assimilate-args.js.map +1 -0
- package/dist/parse-launch-all-args.d.ts.map +1 -0
- package/dist/parse-launch-all-args.js +70 -1
- package/dist/parse-launch-all-args.js.map +1 -0
- package/dist/postinstall-banner.d.ts.map +1 -0
- package/dist/postinstall-banner.js +27 -2
- package/dist/postinstall-banner.js.map +1 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +32 -5
- package/dist/postinstall.js.map +1 -0
- package/dist/readiness-probe.d.ts.map +1 -0
- package/dist/readiness-probe.js +9 -1
- package/dist/readiness-probe.js.map +1 -0
- package/dist/regen-format.d.ts.map +1 -0
- package/dist/regen-format.js +545 -13
- package/dist/regen-format.js.map +1 -0
- package/dist/regen.d.ts.map +1 -0
- package/dist/regen.js +141 -5
- package/dist/regen.js.map +1 -0
- package/dist/remote-client.d.ts +65 -175
- package/dist/remote-client.d.ts.map +1 -0
- package/dist/remote-client.js +942 -1
- package/dist/remote-client.js.map +1 -0
- package/dist/reset-local-seat-cmd.d.ts +50 -0
- package/dist/reset-local-seat-cmd.d.ts.map +1 -0
- package/dist/reset-local-seat-cmd.js +169 -0
- package/dist/reset-local-seat-cmd.js.map +1 -0
- package/dist/role-match.d.ts.map +1 -0
- package/dist/role-match.js +23 -1
- package/dist/role-match.js.map +1 -0
- package/dist/role-resolver.d.ts.map +1 -0
- package/dist/role-resolver.js +60 -1
- package/dist/role-resolver.js.map +1 -0
- package/dist/roster-render.d.ts.map +1 -0
- package/dist/roster-render.js +121 -3
- package/dist/roster-render.js.map +1 -0
- package/dist/seat-probe.d.ts +32 -13
- package/dist/seat-probe.d.ts.map +1 -0
- package/dist/seat-probe.js +78 -1
- package/dist/seat-probe.js.map +1 -0
- package/dist/seat-store.d.ts +76 -0
- package/dist/seat-store.d.ts.map +1 -0
- package/dist/seat-store.js +309 -0
- package/dist/seat-store.js.map +1 -0
- package/dist/seats.d.ts +303 -0
- package/dist/seats.d.ts.map +1 -0
- package/dist/seats.js +551 -0
- package/dist/seats.js.map +1 -0
- package/dist/self-path.d.ts +27 -0
- package/dist/self-path.d.ts.map +1 -0
- package/dist/self-path.js +43 -0
- package/dist/self-path.js.map +1 -0
- package/dist/server-endpoint.d.ts +9 -0
- package/dist/server-endpoint.d.ts.map +1 -0
- package/dist/server-endpoint.js +38 -0
- package/dist/server-endpoint.js.map +1 -0
- package/dist/server-errors.d.ts +50 -0
- package/dist/server-errors.d.ts.map +1 -0
- package/dist/server-errors.js +79 -0
- package/dist/server-errors.js.map +1 -0
- package/dist/server-handshake.d.ts +197 -0
- package/dist/server-handshake.d.ts.map +1 -0
- package/dist/server-handshake.js +505 -0
- package/dist/server-handshake.js.map +1 -0
- package/dist/server-response.d.ts +3 -0
- package/dist/server-response.d.ts.map +1 -0
- package/dist/server-response.js +67 -0
- package/dist/server-response.js.map +1 -0
- package/dist/server-trust.d.ts +14 -0
- package/dist/server-trust.d.ts.map +1 -0
- package/dist/server-trust.js +225 -0
- package/dist/server-trust.js.map +1 -0
- package/dist/setup-confirm.d.ts +3 -3
- package/dist/setup-confirm.d.ts.map +1 -0
- package/dist/setup-confirm.js +126 -2
- package/dist/setup-confirm.js.map +1 -0
- package/dist/setup.d.ts +5 -3
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +169 -46
- package/dist/setup.js.map +1 -0
- package/dist/shell-escape.d.ts.map +1 -0
- package/dist/shell-escape.js +22 -1
- package/dist/shell-escape.js.map +1 -0
- package/dist/spawn.d.ts +2 -2
- package/dist/spawn.d.ts.map +1 -0
- package/dist/spawn.js +29 -10
- package/dist/spawn.js.map +1 -0
- package/dist/startup-services.d.ts +0 -1
- package/dist/startup-services.d.ts.map +1 -0
- package/dist/startup-services.js +26 -1
- package/dist/startup-services.js.map +1 -0
- package/dist/stream-owner.d.ts +6 -2
- package/dist/stream-owner.d.ts.map +1 -0
- package/dist/stream-owner.js +547 -2
- package/dist/stream-owner.js.map +1 -0
- package/dist/stream-status.d.ts +1 -1
- package/dist/stream-status.d.ts.map +1 -0
- package/dist/stream-status.js +268 -3
- package/dist/stream-status.js.map +1 -0
- package/dist/sync-roles-render.d.ts.map +1 -0
- package/dist/sync-roles-render.js +118 -3
- package/dist/sync-roles-render.js.map +1 -0
- package/dist/sync.d.ts +1 -1
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +286 -22
- package/dist/sync.js.map +1 -0
- package/dist/terminal-title.d.ts.map +1 -0
- package/dist/terminal-title.js +68 -1
- package/dist/terminal-title.js.map +1 -0
- package/dist/token-store.d.ts +17 -111
- package/dist/token-store.d.ts.map +1 -0
- package/dist/token-store.js +81 -1
- package/dist/token-store.js.map +1 -0
- package/dist/tool-manifest.d.ts +4 -8
- package/dist/tool-manifest.d.ts.map +1 -0
- package/dist/tool-manifest.js +554 -1
- package/dist/tool-manifest.js.map +1 -0
- package/dist/tool-scope.d.ts +8 -12
- package/dist/tool-scope.d.ts.map +1 -0
- package/dist/tool-scope.js +97 -1
- package/dist/tool-scope.js.map +1 -0
- package/dist/types.d.ts +1 -5
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/unknown-subcommand.d.ts +1 -1
- package/dist/unknown-subcommand.d.ts.map +1 -0
- package/dist/unknown-subcommand.js +37 -1
- package/dist/unknown-subcommand.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +78 -2
- package/dist/version.js.map +1 -0
- package/dist/working-repo.d.ts.map +1 -0
- package/dist/working-repo.js +81 -1
- package/dist/working-repo.js.map +1 -0
- package/dist/worktree-lifecycle.d.ts.map +1 -0
- package/dist/worktree-lifecycle.js +205 -2
- package/dist/worktree-lifecycle.js.map +1 -0
- package/docs/EXTRACTION_PROVENANCE.md +40 -0
- package/docs/LOCAL_SERVER.md +103 -0
- package/docs/RELEASING.md +120 -0
- package/package.json +52 -34
- package/src/agent-runtime.ts +69 -0
- package/src/assimilate-cmd.ts +1864 -0
- package/src/assimilate-deps.ts +444 -0
- package/src/assimilate-guard.ts +84 -0
- package/src/assimilate-welcome.ts +39 -0
- package/src/auth-env.ts +21 -0
- package/src/backends/launch-all-pastelist.ts +18 -0
- package/src/backends/launch-all-tmux.ts +75 -0
- package/src/backends/launch-all-windows.ts +110 -0
- package/src/bare-launch-menu.ts +148 -0
- package/src/claude-launch-args.ts +35 -0
- package/src/claude.ts +561 -0
- package/src/cleanup-cmd.ts +581 -0
- package/src/clear-rewake-core.ts +34 -0
- package/src/clear-rewake.ts +18 -0
- package/src/cli-help.ts +116 -0
- package/src/cli-platform.ts +127 -0
- package/src/cli-tool-approval.ts +716 -0
- package/src/codex-app-server.ts +238 -0
- package/src/codex-app-wake.ts +512 -0
- package/src/codex-launch.ts +140 -0
- package/src/codex-remote.ts +500 -0
- package/src/codex-wake-resolve.ts +155 -0
- package/src/config-utils.ts +811 -0
- package/src/config.ts +595 -0
- package/src/console-prefix.ts +99 -0
- package/src/cube-name.ts +69 -0
- package/src/cubes.ts +583 -0
- package/src/debug.ts +73 -0
- package/src/direct-log.ts +9 -0
- package/src/docs-sections.ts +129 -0
- package/src/drone-lifecycle.ts +62 -0
- package/src/drone-management.ts +162 -0
- package/src/ensure-mcp-config.ts +54 -0
- package/src/evict-drone.ts +82 -0
- package/src/gc-orphan-inboxes.ts +229 -0
- package/src/inbox-monitor.ts +1005 -0
- package/src/index.ts +1201 -0
- package/src/launch-all-cmd.ts +450 -0
- package/src/launch-all-command.ts +30 -0
- package/src/launch-all-deps.ts +188 -0
- package/src/launch-all-discovery.ts +118 -0
- package/src/launch-all-locks.ts +74 -0
- package/src/launch-gate.ts +80 -0
- package/src/lifecycle-log-guard.ts +144 -0
- package/src/list-roles-render.ts +52 -0
- package/src/local-log-routing.ts +106 -0
- package/src/local-manage-tool-result.ts +10 -0
- package/src/local-server-cursor.ts +188 -0
- package/src/log-audit.ts +207 -0
- package/src/log-stream.ts +1505 -0
- package/src/model-presets.ts +22 -0
- package/src/name-validator.ts +23 -0
- package/src/opencode-drone.ts +528 -0
- package/src/opencode-plugin.ts +38 -0
- package/src/parse-assimilate-args.ts +125 -0
- package/src/parse-launch-all-args.ts +100 -0
- package/src/postinstall-banner.ts +37 -0
- package/src/postinstall.ts +36 -0
- package/src/readiness-probe.ts +12 -0
- package/src/regen-format.ts +651 -0
- package/src/regen.ts +150 -0
- package/src/remote-client.ts +1379 -0
- package/src/reset-local-seat-cmd.ts +227 -0
- package/src/role-match.ts +29 -0
- package/src/role-resolver.ts +93 -0
- package/src/roster-render.ts +196 -0
- package/src/seat-probe.ts +115 -0
- package/src/seat-store.ts +333 -0
- package/src/seats.ts +741 -0
- package/src/self-path.ts +51 -0
- package/src/server-endpoint.ts +38 -0
- package/src/server-errors.ts +93 -0
- package/src/server-handshake.ts +783 -0
- package/src/server-response.ts +76 -0
- package/src/server-trust.ts +245 -0
- package/src/setup-confirm.ts +171 -0
- package/src/setup.ts +186 -0
- package/src/shell-escape.ts +22 -0
- package/src/spawn.ts +31 -0
- package/src/startup-services.ts +36 -0
- package/src/stream-owner.ts +686 -0
- package/src/stream-status.ts +337 -0
- package/src/sync-roles-render.ts +163 -0
- package/src/sync.ts +363 -0
- package/src/terminal-title.ts +76 -0
- package/src/token-store.ts +102 -0
- package/src/tool-manifest.ts +610 -0
- package/src/tool-scope.ts +110 -0
- package/src/types.ts +5 -0
- package/src/unknown-subcommand.ts +35 -0
- package/src/version.ts +82 -0
- package/src/working-repo.ts +99 -0
- package/src/worktree-lifecycle.ts +254 -0
- package/dist/auth-recovery.d.ts +0 -33
- package/dist/auth-recovery.js +0 -1
- package/dist/auth.d.ts +0 -103
- package/dist/auth.js +0 -39
- package/dist/device-auth.d.ts +0 -75
- package/dist/device-auth.js +0 -1
- package/dist/drone-address.d.ts +0 -26
- package/dist/drone-address.js +0 -1
- package/dist/get-started.d.ts +0 -20
- package/dist/get-started.js +0 -2
- package/dist/health-beat.d.ts +0 -134
- package/dist/health-beat.js +0 -1
- package/dist/role-section.d.ts +0 -110
- package/dist/role-section.js +0 -8
- package/dist/setup-action.d.ts +0 -20
- package/dist/setup-action.js +0 -1
- package/dist/stale-version-check.d.ts +0 -40
- package/dist/stale-version-check.js +0 -1
- package/dist/subscription-retry.d.ts +0 -40
- package/dist/subscription-retry.js +0 -1
- package/dist/templates.d.ts +0 -107
- package/dist/templates.js +0 -359
- package/dist/token-crypto.d.ts +0 -50
- package/dist/token-crypto.js +0 -1
package/dist/seats.d.ts
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The unified 0600 seat store (Queen rescope, scope A) — `seats.json`.
|
|
3
|
+
*
|
|
4
|
+
* Collapses the per-seat drone-session CREDENTIAL and its worktree BINDING into
|
|
5
|
+
* ONE atomically-written record, keyed by the deterministic seat ref
|
|
6
|
+
* (origin+trust+cube+role+operation). Because a record's `state` and its
|
|
7
|
+
* `worktree` binding are written together in a single `withStore` commit, the
|
|
8
|
+
* invariant "an ACTIVE credential without a binding" is UNREACHABLE BY
|
|
9
|
+
* CONSTRUCTION: PREPARE mints `{credential, state:'pending'}` with NO worktree;
|
|
10
|
+
* FINALIZE sets `state:'active' + server metadata + worktree + display` in one
|
|
11
|
+
* commit; a reset deletes the whole record so credential+binding vanish together
|
|
12
|
+
* (there is no cross-store 'partial').
|
|
13
|
+
*
|
|
14
|
+
* The single store flock (seat-store.withStore) serializes every read-compare-
|
|
15
|
+
* write; there is no second lock and no composite. The raw bearer rests ONLY in
|
|
16
|
+
* the 0600 file and is never returned past this module except by the sole
|
|
17
|
+
* hydration reader; every other observation is digest-only.
|
|
18
|
+
*/
|
|
19
|
+
export declare const SEATS_FILE: string;
|
|
20
|
+
export interface SeatOperation {
|
|
21
|
+
projectRoot: string;
|
|
22
|
+
kind: 'seat' | 'sibling';
|
|
23
|
+
operationKey: string;
|
|
24
|
+
}
|
|
25
|
+
/** One seat = its credential + binding + display, written as one atomic unit. */
|
|
26
|
+
export interface SeatRecord {
|
|
27
|
+
origin: string;
|
|
28
|
+
trustIdentity: string;
|
|
29
|
+
cubeId: string;
|
|
30
|
+
roleId: string;
|
|
31
|
+
operation: SeatOperation;
|
|
32
|
+
credential: string;
|
|
33
|
+
state: 'pending' | 'active';
|
|
34
|
+
droneId?: string;
|
|
35
|
+
sessionId?: string;
|
|
36
|
+
expiresAt?: string;
|
|
37
|
+
worktree?: string;
|
|
38
|
+
name?: string;
|
|
39
|
+
droneLabel?: string;
|
|
40
|
+
roleName?: string;
|
|
41
|
+
roleClass?: 'queen' | 'worker';
|
|
42
|
+
isHumanSeat?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** The deterministic per-seat ref (identical algorithm to the retired keychain account). */
|
|
45
|
+
export declare function seatRef(input: {
|
|
46
|
+
origin: string;
|
|
47
|
+
trustIdentity: string;
|
|
48
|
+
cubeId: string;
|
|
49
|
+
roleId: string;
|
|
50
|
+
operation: SeatOperation;
|
|
51
|
+
}): string;
|
|
52
|
+
export type SeatObservation = {
|
|
53
|
+
state: 'active';
|
|
54
|
+
digest: string;
|
|
55
|
+
droneId: string;
|
|
56
|
+
} | {
|
|
57
|
+
state: 'pending';
|
|
58
|
+
digest: string;
|
|
59
|
+
} | {
|
|
60
|
+
state: 'absent';
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* TYPED, token-safe observation of the record at `ref` (CR#3). Lock-free read
|
|
64
|
+
* (atomic rename → complete file); the authoritative delete/activate re-reads
|
|
65
|
+
* under the flock. Returns only a digest + drone id, never the raw bearer.
|
|
66
|
+
*/
|
|
67
|
+
export declare function observeSeat(ref: string, binding: {
|
|
68
|
+
origin: string;
|
|
69
|
+
trustIdentity: string;
|
|
70
|
+
cubeId: string;
|
|
71
|
+
}): Promise<SeatObservation>;
|
|
72
|
+
/**
|
|
73
|
+
* The SOLE raw-bearer reader (SR-seven #5). Returns the ACTIVE bearer for `ref`
|
|
74
|
+
* iff the record is active AND the binding matches — used only to hydrate the
|
|
75
|
+
* live seat for authenticated requests. Every other caller observes digest-only.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getActiveSeatCredential(ref: string, binding: {
|
|
78
|
+
origin: string;
|
|
79
|
+
trustIdentity: string;
|
|
80
|
+
cubeId: string;
|
|
81
|
+
}): Promise<string | null>;
|
|
82
|
+
/**
|
|
83
|
+
* Mint the client bearer for one seat, or return the existing record (pending or
|
|
84
|
+
* active) so a lost-response retry re-sends the identical bearer. The minted
|
|
85
|
+
* record has NO worktree binding — FINALIZE adds it atomically with activation,
|
|
86
|
+
* so a pending record is never a live binding.
|
|
87
|
+
*/
|
|
88
|
+
export declare function mintPendingSeat(input: {
|
|
89
|
+
origin: string;
|
|
90
|
+
trustIdentity: string;
|
|
91
|
+
cubeId: string;
|
|
92
|
+
roleId: string;
|
|
93
|
+
operation: SeatOperation;
|
|
94
|
+
credential: string;
|
|
95
|
+
}): Promise<SeatRecord>;
|
|
96
|
+
/**
|
|
97
|
+
* Typed prepare-time expectation for the single-store attach (CR#1). EXACT — the
|
|
98
|
+
* exact prior ACTIVE record must STILL hold at prepare time (its ref, and, when
|
|
99
|
+
* pinned, its drone id and its live-bearer digest). ABSENT — no ACTIVE record may
|
|
100
|
+
* hold this seat (a fresh enroll / a fresh sibling seat). Field name `credentialRef`
|
|
101
|
+
* is kept for call-site parity with the retired cross-store ExpectedBinding.
|
|
102
|
+
*/
|
|
103
|
+
export type SeatExpectation = {
|
|
104
|
+
kind: 'exact';
|
|
105
|
+
credentialRef: string;
|
|
106
|
+
droneId?: string;
|
|
107
|
+
sessionDigest?: string;
|
|
108
|
+
} | {
|
|
109
|
+
kind: 'absent';
|
|
110
|
+
};
|
|
111
|
+
export type PrepareSeatOutcome = {
|
|
112
|
+
ok: true;
|
|
113
|
+
record: SeatRecord;
|
|
114
|
+
} | {
|
|
115
|
+
ok: false;
|
|
116
|
+
reason: 'expectation-mismatch';
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* CR#1 PREPARE-time abort in the single-store model. Under ONE store flock:
|
|
120
|
+
* REVALIDATE the typed expectation against the record currently at the seat ref
|
|
121
|
+
* (EXACT: the exact prior ACTIVE record must still hold — ref, optional drone id,
|
|
122
|
+
* optional live-bearer digest; ABSENT: no ACTIVE record may hold this seat), then
|
|
123
|
+
* — only if it holds — MINT the pending record in the SAME lock hold. A pre-existing
|
|
124
|
+
* valid record (pending from a lost-response retry, or the active record being
|
|
125
|
+
* reattached) is REUSED so the identical bearer is re-sent. `scrubBeforeMint`
|
|
126
|
+
* discards a known-invalid saved record (eviction remint) before minting, still
|
|
127
|
+
* under the one flock. On a mismatch NOTHING is minted or scrubbed (abort).
|
|
128
|
+
*/
|
|
129
|
+
export declare function prepareSeat(input: {
|
|
130
|
+
expected: SeatExpectation;
|
|
131
|
+
/** Default true. When false (a fresh sibling target key that cannot yet hold a
|
|
132
|
+
* record) the mint runs under the flock but no expectation is revalidated. */
|
|
133
|
+
revalidate?: boolean;
|
|
134
|
+
/** Eviction remint: delete the known-invalid saved record for this seat BEFORE
|
|
135
|
+
* minting a fresh bearer, still inside the one flock. */
|
|
136
|
+
scrubBeforeMint?: boolean;
|
|
137
|
+
seed: {
|
|
138
|
+
origin: string;
|
|
139
|
+
trustIdentity: string;
|
|
140
|
+
cubeId: string;
|
|
141
|
+
roleId: string;
|
|
142
|
+
operation: SeatOperation;
|
|
143
|
+
credential: string;
|
|
144
|
+
};
|
|
145
|
+
}): Promise<PrepareSeatOutcome>;
|
|
146
|
+
export type ActivateSeatOutcome = 'activated' | 'missing' | 'replaced';
|
|
147
|
+
/** The worktree binding + display supplied at FINALIZE (known only once the target
|
|
148
|
+
* worktree is decided). Merged atomically with activation by activateAndBindSeat. */
|
|
149
|
+
export interface SeatBinding {
|
|
150
|
+
worktree: string;
|
|
151
|
+
name: string;
|
|
152
|
+
droneLabel: string;
|
|
153
|
+
roleName?: string;
|
|
154
|
+
roleClass?: 'queen' | 'worker';
|
|
155
|
+
isHumanSeat?: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* ATOMIC compare-and-activate + bind (CR#2 + the scope-A collapse). Under ONE
|
|
159
|
+
* flock: the exact pending/active record whose bearer digest matches
|
|
160
|
+
* `expectedPendingDigest` is stamped ACTIVE with the server metadata AND the
|
|
161
|
+
* worktree binding + display, in a single commit. A same-ref replacement or a
|
|
162
|
+
* missing record fails closed (`replaced`/`missing`) — server metadata for bearer
|
|
163
|
+
* A is never bound onto bearer B, and the digest guard holds even on the
|
|
164
|
+
* no-expectation-digest paths (the SENT bearer's digest is always pinned).
|
|
165
|
+
* Because `state:'active'` and `worktree` land together, ACTIVE-without-binding
|
|
166
|
+
* is unreachable by construction.
|
|
167
|
+
*/
|
|
168
|
+
export declare function activateAndBindSeat(input: {
|
|
169
|
+
origin: string;
|
|
170
|
+
trustIdentity: string;
|
|
171
|
+
cubeId: string;
|
|
172
|
+
roleId: string;
|
|
173
|
+
operation: SeatOperation;
|
|
174
|
+
droneId: string;
|
|
175
|
+
sessionId: string;
|
|
176
|
+
expiresAt: string;
|
|
177
|
+
expectedPendingDigest: string;
|
|
178
|
+
worktree: string;
|
|
179
|
+
name: string;
|
|
180
|
+
droneLabel: string;
|
|
181
|
+
roleName?: string;
|
|
182
|
+
roleClass?: 'queen' | 'worker';
|
|
183
|
+
isHumanSeat?: boolean;
|
|
184
|
+
}): Promise<ActivateSeatOutcome>;
|
|
185
|
+
export type BindPendingSeatOutcome = 'bound' | 'missing' | 'replaced';
|
|
186
|
+
/**
|
|
187
|
+
* CR#2: bind an existing PENDING record to a worktree WITHOUT activating it. On a
|
|
188
|
+
* SIBLING attach whose atomic activate+bind failed, the spawned worktree is
|
|
189
|
+
* preserved for an operator-driven rerun (CR#5). This stamps the worktree locator +
|
|
190
|
+
* display (and, if known, the drone id) onto the EXACT digest-matched PENDING record
|
|
191
|
+
* so the rerun FROM that worktree can DISCOVER and RESUME it — re-sending the
|
|
192
|
+
* identical bearer the server already digest-bound, converging on the SAME seat (no
|
|
193
|
+
* ghost). The record STAYS `state:'pending'`: it is non-hydratable as a live seat
|
|
194
|
+
* (getActiveSeatForWorktree still requires state==='active'), so this introduces no
|
|
195
|
+
* ACTIVE-without-activation state. Under ONE store flock (CR#3), fail-closed (CR#4):
|
|
196
|
+
* a missing / already-ACTIVE / same-ref-replaced record is a typed no-op — never
|
|
197
|
+
* binds a worktree onto a different bearer, never mutates an ACTIVE record.
|
|
198
|
+
*/
|
|
199
|
+
export declare function bindPendingSeatToWorktree(input: {
|
|
200
|
+
origin: string;
|
|
201
|
+
trustIdentity: string;
|
|
202
|
+
cubeId: string;
|
|
203
|
+
roleId: string;
|
|
204
|
+
operation: SeatOperation;
|
|
205
|
+
expectedPendingDigest: string;
|
|
206
|
+
droneId?: string;
|
|
207
|
+
worktree: string;
|
|
208
|
+
name: string;
|
|
209
|
+
droneLabel: string;
|
|
210
|
+
roleName?: string;
|
|
211
|
+
roleClass?: 'queen' | 'worker';
|
|
212
|
+
isHumanSeat?: boolean;
|
|
213
|
+
}): Promise<BindPendingSeatOutcome>;
|
|
214
|
+
/** The exact ACTIVE seat bound to `worktree`, or null. A pending record (no
|
|
215
|
+
* worktree, or non-active) is NEVER surfaced as a live binding. */
|
|
216
|
+
export declare function getActiveSeatForWorktree(worktree: string): Promise<SeatRecord | null>;
|
|
217
|
+
/**
|
|
218
|
+
* CR#2: the seat bound to `worktree` regardless of state — an ACTIVE seat OR a
|
|
219
|
+
* bound-PENDING record (a sibling whose activation failed, bound to its preserved
|
|
220
|
+
* worktree by `bindPendingSeatToWorktree`). Used ONLY by the resume path to recover
|
|
221
|
+
* a bound-pending record's stored `operation` + `state` so the rerun can re-derive
|
|
222
|
+
* the EXACT seat ref and re-send the identical bearer. A bound-pending record is
|
|
223
|
+
* still NON-hydratable as a live seat — `getActiveSeatForWorktree` (and hence
|
|
224
|
+
* `getActiveCube`) still require state==='active', so this reader does NOT weaken
|
|
225
|
+
* the no-ACTIVE-without-binding / non-hydratable-pending invariants.
|
|
226
|
+
*/
|
|
227
|
+
export declare function getSeatForWorktree(worktree: string): Promise<SeatRecord | null>;
|
|
228
|
+
/**
|
|
229
|
+
* CR#3: find an in-flight IMPLICIT-sibling attempt for `binding` — a PENDING,
|
|
230
|
+
* kind==='sibling' record whose operation.projectRoot is the source repo and which
|
|
231
|
+
* has NO worktree binding yet (unbound). Such a record is the persisted, collision-
|
|
232
|
+
* safe attempt identity left when a crash struck AFTER the server accepted the attach
|
|
233
|
+
* but BEFORE the worktree bind: its per-invocation-unique operationKey would otherwise
|
|
234
|
+
* be undiscoverable, so a rerun would mint a NEW bearer and the server (digest-
|
|
235
|
+
* correlating) would create a GHOST seat. Recovering it lets the rerun re-derive the
|
|
236
|
+
* EXACT ref and re-send the identical bearer (the server reuses its seat). A BOUND
|
|
237
|
+
* pending sibling (already discoverable by its worktree) and an ACTIVE record are NOT
|
|
238
|
+
* returned — so a COMPLETED sibling frees the source-repo key and the next distinct
|
|
239
|
+
* sibling mints a fresh identity. Deterministic first match.
|
|
240
|
+
*/
|
|
241
|
+
export declare function findIncompleteSiblingAttempt(binding: {
|
|
242
|
+
origin: string;
|
|
243
|
+
trustIdentity: string;
|
|
244
|
+
cubeId: string;
|
|
245
|
+
projectRoot: string;
|
|
246
|
+
}): Promise<SeatRecord | null>;
|
|
247
|
+
/** True iff this worktree has ANY persisted seat record (active OR a bound
|
|
248
|
+
* pending), so a crash-in-gap PENDING seat is discoverable (not mislabeled). */
|
|
249
|
+
export declare function hasSeatForWorktree(worktree: string): Promise<boolean>;
|
|
250
|
+
/** All ACTIVE bound seats — {worktree, record}. */
|
|
251
|
+
export declare function readAllActiveSeats(): Promise<Array<{
|
|
252
|
+
worktree: string;
|
|
253
|
+
record: SeatRecord;
|
|
254
|
+
}>>;
|
|
255
|
+
export type ResetSeatOutcome = {
|
|
256
|
+
outcome: 'reset';
|
|
257
|
+
ref: string;
|
|
258
|
+
} | {
|
|
259
|
+
outcome: 'no-binding';
|
|
260
|
+
} | {
|
|
261
|
+
outcome: 'changed';
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Reset the seat bound to `worktree`: under ONE flock, re-check the exact FULL
|
|
265
|
+
* binding (ref + drone id) and the token-safe observation, then DELETE the whole
|
|
266
|
+
* record — credential AND binding vanish together in one commit (no 'partial',
|
|
267
|
+
* no cross-store skew). Any drift (missing / different ref or drone / same-ref
|
|
268
|
+
* digest replacement) is an honest no-op.
|
|
269
|
+
*/
|
|
270
|
+
export declare function resetSeatForWorktree(expected: {
|
|
271
|
+
worktree: string;
|
|
272
|
+
ref: string;
|
|
273
|
+
/** CR#4: undefined for a bound-PENDING record with no drone id yet — the reset
|
|
274
|
+
* matches undefined-vs-undefined and still deletes the exact record. */
|
|
275
|
+
droneId?: string;
|
|
276
|
+
observation: SeatObservation;
|
|
277
|
+
}): Promise<ResetSeatOutcome>;
|
|
278
|
+
/** Abort-scrub of the caller's OWN pending record only (CR#2 finalize abort):
|
|
279
|
+
* delete iff still pending AND digest matches — never an active record, never a
|
|
280
|
+
* same-ref replacement. */
|
|
281
|
+
export declare function scrubPendingSeat(ref: string, binding: {
|
|
282
|
+
origin: string;
|
|
283
|
+
trustIdentity: string;
|
|
284
|
+
cubeId: string;
|
|
285
|
+
}, expectedPendingDigest: string): Promise<boolean>;
|
|
286
|
+
/** Discard any record for one seat ref (eviction remint before a fresh mint). */
|
|
287
|
+
export declare function clearSeat(ref: string): Promise<void>;
|
|
288
|
+
/** Metadata-only refresh of one exact ACTIVE seat. The expected tuple prevents
|
|
289
|
+
* a delayed response from updating a replacement seat that reused the worktree. */
|
|
290
|
+
export declare function refreshSeatMetadata(worktree: string, expected: {
|
|
291
|
+
credentialRef: string;
|
|
292
|
+
cubeId: string;
|
|
293
|
+
droneId: string;
|
|
294
|
+
}, display: {
|
|
295
|
+
name: string;
|
|
296
|
+
droneLabel: string;
|
|
297
|
+
roleName?: string;
|
|
298
|
+
roleClass?: 'queen' | 'worker';
|
|
299
|
+
isHumanSeat?: boolean;
|
|
300
|
+
}): Promise<boolean>;
|
|
301
|
+
/** @internal Test-only: point the store at a fixture path is done via HOME; this
|
|
302
|
+
* clears the module cache (there is none — every op reads fresh under the lock). */
|
|
303
|
+
//# sourceMappingURL=seats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seats.d.ts","sourceRoot":"","sources":["../src/seats.ts"],"names":[],"mappings":"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"}
|