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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-prefix.d.ts","sourceRoot":"","sources":["../src/console-prefix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAazD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAUzC;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
package/dist/console-prefix.js
CHANGED
|
@@ -1 +1,96 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Drone self-identification prefix for client-emitted console messages.
|
|
3
|
+
*
|
|
4
|
+
* Per gh#25: when a drone session emits a console error (e.g.
|
|
5
|
+
* "Authentication expired — your saved login has expired. Run: borg setup"),
|
|
6
|
+
* the Queen has no way to
|
|
7
|
+
* tell which drone window the message came from without scanning every
|
|
8
|
+
* open terminal. Window title alone (set by terminal-title.ts) is
|
|
9
|
+
* insufficient — the Queen reads the active terminal's output stream,
|
|
10
|
+
* not its title bar.
|
|
11
|
+
*
|
|
12
|
+
* This module exports a one-shot initializer that resolves the prefix
|
|
13
|
+
* from the local cube state cache, plus a synchronous getter that
|
|
14
|
+
* call sites use to wrap each console.error.
|
|
15
|
+
*
|
|
16
|
+
* Format (matches the terminal-title.ts middle-dot convention so
|
|
17
|
+
* surfaces stay internally consistent):
|
|
18
|
+
* `[<drone-label> · <cube-name>]` (assimilated)
|
|
19
|
+
* `[borg · <repo-basename>]` (no cube cached)
|
|
20
|
+
*
|
|
21
|
+
* The not-yet-assimilated shape reads as neutral metadata ("this is
|
|
22
|
+
* borg, in project X"), NOT a fault the user must fix — and mirrors the
|
|
23
|
+
* unassimilated terminal-title shape (`borg · <repo-basename>`), so the
|
|
24
|
+
* title bar and the console prefix agree (gh#818 P1).
|
|
25
|
+
*/
|
|
26
|
+
import { basename } from 'node:path';
|
|
27
|
+
import chalk from 'chalk';
|
|
28
|
+
import { getActiveCube } from './cubes.js';
|
|
29
|
+
let cachedPrefix = null;
|
|
30
|
+
/** Neutral prefix for a not-yet-assimilated session (gh#818 P1). */
|
|
31
|
+
function unassimilatedPrefix() {
|
|
32
|
+
return `[borg · ${basename(process.cwd())}]`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve the drone-self-identification prefix from cube state and
|
|
36
|
+
* cache it for subsequent synchronous reads. Idempotent — calling
|
|
37
|
+
* multiple times returns the same value. Falls back silently to the
|
|
38
|
+
* unassimilated shape on any read error so console emission is never
|
|
39
|
+
* blocked.
|
|
40
|
+
*/
|
|
41
|
+
export async function initConsolePrefix() {
|
|
42
|
+
if (cachedPrefix !== null)
|
|
43
|
+
return cachedPrefix;
|
|
44
|
+
try {
|
|
45
|
+
const active = await getActiveCube();
|
|
46
|
+
if (active?.droneLabel && active?.name) {
|
|
47
|
+
cachedPrefix = `[${active.droneLabel} · ${active.name}]`;
|
|
48
|
+
return cachedPrefix;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Fall through to unassimilated fallback.
|
|
53
|
+
}
|
|
54
|
+
cachedPrefix = unassimilatedPrefix();
|
|
55
|
+
return cachedPrefix;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Synchronous prefix getter. Returns the cached value if initialized,
|
|
59
|
+
* otherwise the unassimilated fallback — safe to call before
|
|
60
|
+
* initConsolePrefix() resolves.
|
|
61
|
+
*/
|
|
62
|
+
export function droneIdPrefix() {
|
|
63
|
+
if (cachedPrefix !== null)
|
|
64
|
+
return cachedPrefix;
|
|
65
|
+
return unassimilatedPrefix();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Prefix + trailing space, styled dim/gray so the prefix is metadata
|
|
69
|
+
* and the message body retains visual emphasis. Use as
|
|
70
|
+
* `${consolePrefix()}<message>`.
|
|
71
|
+
*/
|
|
72
|
+
export function consolePrefix() {
|
|
73
|
+
return chalk.gray(droneIdPrefix()) + ' ';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Drop-in replacement for `console.error` that prepends the drone
|
|
77
|
+
* self-id prefix. If the first arg is a string, the prefix is
|
|
78
|
+
* concatenated to it; otherwise the prefix is emitted as its own arg
|
|
79
|
+
* (handles the `console.error('label:', value)` shape).
|
|
80
|
+
*/
|
|
81
|
+
export function cerr(...args) {
|
|
82
|
+
if (args.length === 0) {
|
|
83
|
+
console.error(consolePrefix());
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (typeof args[0] === 'string') {
|
|
87
|
+
console.error(consolePrefix() + args[0], ...args.slice(1));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.error(consolePrefix(), ...args);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export function _resetCachedPrefixForTests() {
|
|
94
|
+
cachedPrefix = null;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=console-prefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-prefix.js","sourceRoot":"","sources":["../src/console-prefix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,oEAAoE;AACpE,SAAS,mBAAmB;IAC1B,OAAO,WAAW,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACvC,YAAY,GAAG,IAAI,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC;YACzD,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,YAAY,GAAG,mBAAmB,EAAE,CAAC;IACrC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAC/C,OAAO,mBAAmB,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,IAAW;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cube-name.d.ts","sourceRoot":"","sources":["../src/cube-name.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAa9F"}
|
package/dist/cube-name.js
CHANGED
|
@@ -1 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
import { basename } from 'node:path';
|
|
2
|
+
const MAX_URL_LEN = 2048;
|
|
3
|
+
const CONTROL_CHAR_RE = /[\x00-\x1F\x7F]/;
|
|
4
|
+
/**
|
|
5
|
+
* Trim + reject control chars + cap length. Returns null on rejection
|
|
6
|
+
* so callers fall through to no-remote derivation.
|
|
7
|
+
*/
|
|
8
|
+
export function sanitizeRemoteUrl(raw) {
|
|
9
|
+
const trimmed = raw.trim();
|
|
10
|
+
if (trimmed.length === 0 || trimmed.length > MAX_URL_LEN)
|
|
11
|
+
return null;
|
|
12
|
+
if (CONTROL_CHAR_RE.test(trimmed))
|
|
13
|
+
return null;
|
|
14
|
+
return trimmed;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extract the repo name from a git remote URL. Handles SSH/HTTPS/git/file
|
|
18
|
+
* forms and embedded credentials. Returns null when nothing parseable
|
|
19
|
+
* is present.
|
|
20
|
+
*
|
|
21
|
+
* Strategy: strip protocol + credentials, then take the last path segment
|
|
22
|
+
* after the final `/` or `:`, stripping a trailing `.git`.
|
|
23
|
+
*/
|
|
24
|
+
export function parseGitRemote(url) {
|
|
25
|
+
if (!url)
|
|
26
|
+
return null;
|
|
27
|
+
let s = url.replace(/^[a-z]+:\/\//, '');
|
|
28
|
+
s = s.replace(/^[^@\/]*@/, '');
|
|
29
|
+
const lastSep = Math.max(s.lastIndexOf('/'), s.lastIndexOf(':'));
|
|
30
|
+
if (lastSep === -1)
|
|
31
|
+
return null;
|
|
32
|
+
let name = s.slice(lastSep + 1);
|
|
33
|
+
name = name.replace(/\.git$/, '');
|
|
34
|
+
return name.length > 0 ? name : null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Normalize an arbitrary string into a valid cube name:
|
|
38
|
+
* lowercase, underscores+spaces → hyphens, strip [^a-z0-9-], truncate 64.
|
|
39
|
+
*/
|
|
40
|
+
export function normalizeCubeName(raw) {
|
|
41
|
+
return raw
|
|
42
|
+
.toLowerCase()
|
|
43
|
+
.replace(/[_\s]+/g, '-')
|
|
44
|
+
.replace(/[^a-z0-9-]/g, '')
|
|
45
|
+
.slice(0, 64);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Compose the full derivation: sanitize + parse + normalize, with
|
|
49
|
+
* project-root basename as fallback. Returns null when no valid name
|
|
50
|
+
* can be derived.
|
|
51
|
+
*/
|
|
52
|
+
export function deriveCubeName(projectRoot, gitRemoteUrl) {
|
|
53
|
+
if (gitRemoteUrl) {
|
|
54
|
+
const sanitized = sanitizeRemoteUrl(gitRemoteUrl);
|
|
55
|
+
if (sanitized) {
|
|
56
|
+
const repo = parseGitRemote(sanitized);
|
|
57
|
+
if (repo) {
|
|
58
|
+
const normalized = normalizeCubeName(repo);
|
|
59
|
+
if (normalized.length > 0)
|
|
60
|
+
return normalized;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const fallback = normalizeCubeName(basename(projectRoot));
|
|
65
|
+
return fallback.length > 0 ? fallback : null;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=cube-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cube-name.js","sourceRoot":"","sources":["../src/cube-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,YAA2B;IAC7E,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,UAAU,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
|
package/dist/cubes.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-project active-cube persistence for Borg MCP client
|
|
3
3
|
*
|
|
4
|
-
* Stores the currently-assimilated cube
|
|
5
|
-
*
|
|
4
|
+
* Stores the currently-assimilated cube identity + authority metadata PER
|
|
5
|
+
* PROJECT in ~/.config/borgmcp/cubes.json. The "project"
|
|
6
6
|
* is identified by walking up from cwd to find a .git directory; if none is
|
|
7
7
|
* found, cwd itself is used as the project key.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* the user has already been admitted to.
|
|
9
|
+
* Local-server session tokens never enter this file: only an opaque keychain
|
|
10
|
+
* reference is stored and hydrated at read time. An entry without verified
|
|
11
|
+
* local-server trust can no longer be hydrated.
|
|
13
12
|
*
|
|
14
13
|
* apiUrl is captured at assimilate time so subprocess invocations (e.g. the
|
|
15
14
|
* SessionStart hook firing borg-regen) don't need BORG_API_URL in their env
|
|
16
15
|
* to know which worker to talk to.
|
|
17
16
|
*/
|
|
18
|
-
import {
|
|
17
|
+
import { rename, unlink, writeFile } from 'node:fs/promises';
|
|
18
|
+
import { type SeatObservation, type SeatOperation } from './seats.js';
|
|
19
|
+
/** Re-exported from seats.ts for call-site parity (the retired cross-store name). */
|
|
20
|
+
export type { SeatExpectation as ExpectedBinding } from './seats.js';
|
|
19
21
|
export type BorgCli = 'claude' | 'codex' | 'opencode';
|
|
20
22
|
export interface ActiveCube {
|
|
21
23
|
cubeId: string;
|
|
@@ -24,10 +26,18 @@ export interface ActiveCube {
|
|
|
24
26
|
sessionToken: string;
|
|
25
27
|
droneLabel: string;
|
|
26
28
|
apiUrl: string;
|
|
29
|
+
/** Verified local-server CA identity; absent until a local server is selected. */
|
|
30
|
+
serverTrustIdentity?: string;
|
|
31
|
+
/** Opaque local-session keychain reference; never a bearer. */
|
|
32
|
+
localSessionCredentialRef?: string;
|
|
33
|
+
localSessionExpiresAt?: string | null;
|
|
27
34
|
roleName?: string;
|
|
28
35
|
roleClass?: 'queen' | 'worker';
|
|
29
36
|
isHumanSeat?: boolean;
|
|
30
37
|
}
|
|
38
|
+
export type ActiveCubeInput = Omit<ActiveCube, 'sessionToken'> & {
|
|
39
|
+
sessionToken?: string;
|
|
40
|
+
};
|
|
31
41
|
export interface CodexWakeTargetRecord {
|
|
32
42
|
threadId: string;
|
|
33
43
|
socketPath: string;
|
|
@@ -56,10 +66,19 @@ export declare function atomicWriteFile(filePath: string, data: string, opts?: {
|
|
|
56
66
|
*/
|
|
57
67
|
export declare function getActiveCube(): Promise<ActiveCube | null>;
|
|
58
68
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
69
|
+
* True iff this worktree has an ACTIVE bound seat in seats.json. In the collapsed
|
|
70
|
+
* single-store model the credential and the worktree binding are one atomic unit,
|
|
71
|
+
* so there is no "binding present but credential lost" partial state to diagnose:
|
|
72
|
+
* an active bound seat always hydrates.
|
|
61
73
|
*/
|
|
62
|
-
export declare function
|
|
74
|
+
export declare function hasPersistedActiveCube(): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Legacy binding-only writer. In the collapsed single-store model an ACTIVE seat is
|
|
77
|
+
* created ONLY by the atomic mint→activate+bind path in seats.ts (driven by the
|
|
78
|
+
* attach FINALIZE); there is no standalone binding write. Retained solely as a
|
|
79
|
+
* fail-closed guard for incomplete session metadata.
|
|
80
|
+
*/
|
|
81
|
+
export declare function setActiveCube(_active: ActiveCubeInput): Promise<void>;
|
|
63
82
|
export declare function activeCubeWithFreshRegenIdentity(active: ActiveCube, result: {
|
|
64
83
|
cube?: {
|
|
65
84
|
name?: string | null;
|
|
@@ -67,13 +86,103 @@ export declare function activeCubeWithFreshRegenIdentity(active: ActiveCube, res
|
|
|
67
86
|
drone?: {
|
|
68
87
|
label?: string | null;
|
|
69
88
|
};
|
|
89
|
+
role?: {
|
|
90
|
+
name?: string | null;
|
|
91
|
+
role_class?: 'queen' | 'worker' | null;
|
|
92
|
+
is_human_seat?: boolean | null;
|
|
93
|
+
};
|
|
70
94
|
}): ActiveCube;
|
|
95
|
+
export interface LocalSeatSnapshot {
|
|
96
|
+
apiUrl: string;
|
|
97
|
+
serverTrustIdentity: string;
|
|
98
|
+
cubeId: string;
|
|
99
|
+
/** The FULL binding includes the prior drone identity (CR #3): a drone-id
|
|
100
|
+
* change at recheck is a full-binding change and aborts the reset. CR#4: a
|
|
101
|
+
* bound-PENDING record (a sibling whose activation failed) may carry NO drone id
|
|
102
|
+
* yet — the snapshot then omits it and the reset matches on undefined-vs-undefined,
|
|
103
|
+
* still deleting the exact record. */
|
|
104
|
+
droneId?: string;
|
|
105
|
+
credentialRef: string;
|
|
106
|
+
worktree: string;
|
|
107
|
+
/** Token-safe TYPED seat observation: active|pending (with digest) or absent. */
|
|
108
|
+
observation: SeatObservation;
|
|
109
|
+
}
|
|
110
|
+
export type ResetLocalSeatOutcome = {
|
|
111
|
+
outcome: 'reset';
|
|
112
|
+
credentialRef: string;
|
|
113
|
+
} | {
|
|
114
|
+
outcome: 'no-binding';
|
|
115
|
+
} | {
|
|
116
|
+
outcome: 'changed';
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Snapshot this worktree's exact FULL local-seat binding (incl drone id) plus a
|
|
120
|
+
* token-safe TYPED observation (active + digest | absent). Read-only. Returns null
|
|
121
|
+
* when this worktree has no ACTIVE bound seat to reset: an honest no-op.
|
|
122
|
+
*/
|
|
123
|
+
export declare function snapshotLocalSeat(): Promise<LocalSeatSnapshot | null>;
|
|
124
|
+
export interface PersistedLocalSeat {
|
|
125
|
+
cubeId: string;
|
|
126
|
+
/** Optional: a bound-PENDING record (a sibling whose activation failed) may carry
|
|
127
|
+
* no drone id yet — the ACTIVE resume path still has it. */
|
|
128
|
+
droneId?: string;
|
|
129
|
+
name: string;
|
|
130
|
+
droneLabel: string;
|
|
131
|
+
apiUrl: string;
|
|
132
|
+
serverTrustIdentity: string;
|
|
133
|
+
localSessionCredentialRef: string;
|
|
134
|
+
localSessionExpiresAt?: string | null;
|
|
135
|
+
roleName?: string;
|
|
136
|
+
roleClass?: 'queen' | 'worker';
|
|
137
|
+
isHumanSeat?: boolean;
|
|
138
|
+
/** The STORED seat operation (projectRoot + kind + operationKey). The resume path
|
|
139
|
+
* re-derives the EXACT seat ref from this: for a bound-PENDING sibling it is the
|
|
140
|
+
* ORIGINAL sibling operation, NOT the rerun worktree's derived seat operation —
|
|
141
|
+
* so the rerun re-mints-or-reuses the identical pending bearer and converges. */
|
|
142
|
+
operation: SeatOperation;
|
|
143
|
+
/** The record state: a bound-PENDING record resumes with an ABSENT/pending-reuse
|
|
144
|
+
* expectation (re-send the identical bearer); an ACTIVE one resumes with EXACT. */
|
|
145
|
+
state: 'pending' | 'active';
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Read the RAW persisted local-server seat bound to the current worktree — ACTIVE
|
|
149
|
+
* or a bound-PENDING record — WITHOUT hydrating its credential. Used by the resume
|
|
150
|
+
* path to recover the seat identity, its stored `operation`, and its `state`.
|
|
151
|
+
*
|
|
152
|
+
* CR#2: a SIBLING attach whose activation failed leaves a PENDING record BOUND to
|
|
153
|
+
* the preserved worktree (via the attach path's bind-pending step). This surfaces it so the
|
|
154
|
+
* rerun-from-that-worktree re-derives the EXACT sibling ref and re-sends the
|
|
155
|
+
* identical bearer (ghost-free convergence). A crash-in-gap PENDING record that was
|
|
156
|
+
* NEVER bound to a worktree still returns null here (it carries no worktree locator)
|
|
157
|
+
* and is resumed by prepareSeat's idempotent mint-or-reuse; a genuine absence is
|
|
158
|
+
* likewise null and a fresh enroll mints correctly.
|
|
159
|
+
*/
|
|
160
|
+
export declare function readPersistedLocalSeat(): Promise<PersistedLocalSeat | null>;
|
|
161
|
+
/**
|
|
162
|
+
* Reset this worktree's seat: delegate to the single-store resetSeatForWorktree,
|
|
163
|
+
* which under ONE flock re-checks the exact FULL binding (ref + drone id, CR #3)
|
|
164
|
+
* plus the token-safe observation and DELETES the whole record — credential AND
|
|
165
|
+
* binding vanish together in one commit. Any drift / missing / same-ref digest
|
|
166
|
+
* replacement is an honest no-op ('changed'); no cross-store 'partial' exists.
|
|
167
|
+
*/
|
|
168
|
+
export declare function resetLocalSeatBinding(expected: LocalSeatSnapshot): Promise<ResetLocalSeatOutcome>;
|
|
169
|
+
export type FinalizeServerSeatOutcome = {
|
|
170
|
+
committed: true;
|
|
171
|
+
} | {
|
|
172
|
+
committed: false;
|
|
173
|
+
reason: 'expectation-mismatch';
|
|
174
|
+
} | {
|
|
175
|
+
committed: false;
|
|
176
|
+
reason: 'activation-failed';
|
|
177
|
+
};
|
|
71
178
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
179
|
+
* Metadata-only refresh (cube name / drone label / role display) of the CURRENT
|
|
180
|
+
* worktree's ACTIVE seat — delegates to seats.ts refreshSeatMetadata, which CANNOT
|
|
181
|
+
* alter the credential, ref, identity, or worktree binding. A no-op when this
|
|
182
|
+
* worktree has no active seat, so a stale regen identity can never resurrect or
|
|
183
|
+
* mutate a seat ref.
|
|
75
184
|
*/
|
|
76
|
-
export declare function
|
|
185
|
+
export declare function refreshActiveCubeMetadata(active: ActiveCubeInput): Promise<boolean>;
|
|
77
186
|
export declare function getProjectCliPreference(): Promise<BorgCli | null>;
|
|
78
187
|
/**
|
|
79
188
|
* gh#556 Part 2 — like getProjectCliPreference, but keyed on an arbitrary
|
|
@@ -82,10 +191,9 @@ export declare function getProjectCliPreference(): Promise<BorgCli | null>;
|
|
|
82
191
|
*/
|
|
83
192
|
export declare function getProjectCliPreferenceForPath(dir: string): Promise<BorgCli | null>;
|
|
84
193
|
/**
|
|
85
|
-
* gh#556 Part 2 — returns all persisted project identities from
|
|
86
|
-
* Used by `borg launch-all` to enumerate drones across all known worktrees
|
|
87
|
-
*
|
|
88
|
-
* Returns an empty array if the file is absent or malformed.
|
|
194
|
+
* gh#556 Part 2 — returns all persisted project identities from the seat store.
|
|
195
|
+
* Used by `borg launch-all` to enumerate drones across all known worktrees.
|
|
196
|
+
* Returns an empty array when no ACTIVE bound seats exist.
|
|
89
197
|
*/
|
|
90
198
|
export declare function readAllProjectIdentities(): Promise<Array<{
|
|
91
199
|
projectPath: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cubes.d.ts","sourceRoot":"","sources":["../src/cubes.ts"],"names":[],"mappings":"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"}
|