botmux 3.15.0 → 3.16.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/README.en.md +2 -2
- package/README.md +2 -2
- package/dist/.runtime-build-id +1 -1
- package/dist/adapters/backend/destroy-result.d.ts +159 -0
- package/dist/adapters/backend/destroy-result.d.ts.map +1 -0
- package/dist/adapters/backend/destroy-result.js +223 -0
- package/dist/adapters/backend/destroy-result.js.map +1 -0
- package/dist/adapters/backend/herdr-backend.d.ts +4 -0
- package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
- package/dist/adapters/backend/herdr-backend.js +23 -1
- package/dist/adapters/backend/herdr-backend.js.map +1 -1
- package/dist/adapters/backend/mojo-backend.d.ts +577 -0
- package/dist/adapters/backend/mojo-backend.d.ts.map +1 -0
- package/dist/adapters/backend/mojo-backend.js +2471 -0
- package/dist/adapters/backend/mojo-backend.js.map +1 -0
- package/dist/adapters/backend/mojo-budgets.d.ts +21 -0
- package/dist/adapters/backend/mojo-budgets.d.ts.map +1 -0
- package/dist/adapters/backend/mojo-budgets.js +22 -0
- package/dist/adapters/backend/mojo-budgets.js.map +1 -0
- package/dist/adapters/backend/mojo-isolated-workspace.d.ts +69 -0
- package/dist/adapters/backend/mojo-isolated-workspace.d.ts.map +1 -0
- package/dist/adapters/backend/mojo-isolated-workspace.js +213 -0
- package/dist/adapters/backend/mojo-isolated-workspace.js.map +1 -0
- package/dist/adapters/backend/mojo-process-tree.d.ts +292 -0
- package/dist/adapters/backend/mojo-process-tree.d.ts.map +1 -0
- package/dist/adapters/backend/mojo-process-tree.js +486 -0
- package/dist/adapters/backend/mojo-process-tree.js.map +1 -0
- package/dist/adapters/backend/mojo-types.d.ts +542 -0
- package/dist/adapters/backend/mojo-types.d.ts.map +1 -0
- package/dist/adapters/backend/mojo-types.js +682 -0
- package/dist/adapters/backend/mojo-types.js.map +1 -0
- package/dist/adapters/backend/reproduce-command.js +3 -3
- package/dist/adapters/backend/reproduce-command.js.map +1 -1
- package/dist/adapters/backend/riff-backend.js +1 -1
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts +44 -7
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +30 -7
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/session-backend-selector.d.ts +14 -1
- package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
- package/dist/adapters/backend/session-backend-selector.js +82 -10
- package/dist/adapters/backend/session-backend-selector.js.map +1 -1
- package/dist/adapters/backend/types.d.ts +101 -6
- package/dist/adapters/backend/types.d.ts.map +1 -1
- package/dist/adapters/backend/types.js.map +1 -1
- package/dist/adapters/backend/zmx-backend.d.ts +11 -0
- package/dist/adapters/backend/zmx-backend.d.ts.map +1 -1
- package/dist/adapters/backend/zmx-backend.js +16 -1
- package/dist/adapters/backend/zmx-backend.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +2 -2
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +7 -0
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/copilot.d.ts +3 -1
- package/dist/adapters/cli/copilot.d.ts.map +1 -1
- package/dist/adapters/cli/copilot.js +23 -5
- package/dist/adapters/cli/copilot.js.map +1 -1
- package/dist/adapters/cli/cursor.d.ts.map +1 -1
- package/dist/adapters/cli/cursor.js +13 -3
- package/dist/adapters/cli/cursor.js.map +1 -1
- package/dist/adapters/cli/grok.d.ts.map +1 -1
- package/dist/adapters/cli/grok.js +24 -5
- package/dist/adapters/cli/grok.js.map +1 -1
- package/dist/adapters/cli/kimi.d.ts.map +1 -1
- package/dist/adapters/cli/kimi.js +19 -1
- package/dist/adapters/cli/kimi.js.map +1 -1
- package/dist/adapters/cli/mojo.d.ts +28 -0
- package/dist/adapters/cli/mojo.d.ts.map +1 -0
- package/dist/adapters/cli/mojo.js +58 -0
- package/dist/adapters/cli/mojo.js.map +1 -0
- package/dist/adapters/cli/pi.d.ts +6 -4
- package/dist/adapters/cli/pi.d.ts.map +1 -1
- package/dist/adapters/cli/pi.js +6 -4
- package/dist/adapters/cli/pi.js.map +1 -1
- package/dist/adapters/cli/read-isolation.d.ts +251 -1
- package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
- package/dist/adapters/cli/read-isolation.js +254 -1
- package/dist/adapters/cli/read-isolation.js.map +1 -1
- package/dist/adapters/cli/registry.d.ts +13 -1
- package/dist/adapters/cli/registry.d.ts.map +1 -1
- package/dist/adapters/cli/registry.js +19 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/runner-input.d.ts +3 -3
- package/dist/adapters/cli/runner-input.d.ts.map +1 -1
- package/dist/adapters/cli/runner-input.js +4 -3
- package/dist/adapters/cli/runner-input.js.map +1 -1
- package/dist/adapters/cli/shared-hints.d.ts +3 -1
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +22 -6
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +29 -4
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +20 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +30 -4
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/arg-utils.d.ts +5 -0
- package/dist/cli/arg-utils.d.ts.map +1 -1
- package/dist/cli/arg-utils.js +7 -0
- package/dist/cli/arg-utils.js.map +1 -1
- package/dist/cli/bots-list-output.d.ts +130 -2
- package/dist/cli/bots-list-output.d.ts.map +1 -1
- package/dist/cli/bots-list-output.js +173 -27
- package/dist/cli/bots-list-output.js.map +1 -1
- package/dist/cli/daemon-lifecycle-env.d.ts +10 -3
- package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -1
- package/dist/cli/daemon-lifecycle-env.js +38 -11
- package/dist/cli/daemon-lifecycle-env.js.map +1 -1
- package/dist/cli/dashboard-command.d.ts +15 -0
- package/dist/cli/dashboard-command.d.ts.map +1 -1
- package/dist/cli/dashboard-command.js +22 -0
- package/dist/cli/dashboard-command.js.map +1 -1
- package/dist/cli/log-tail.d.ts +54 -0
- package/dist/cli/log-tail.d.ts.map +1 -0
- package/dist/cli/log-tail.js +167 -0
- package/dist/cli/log-tail.js.map +1 -0
- package/dist/cli/pm2-env.d.ts +16 -0
- package/dist/cli/pm2-env.d.ts.map +1 -0
- package/dist/cli/pm2-env.js +63 -0
- package/dist/cli/pm2-env.js.map +1 -0
- package/dist/cli/pm2-fleet-lock.d.ts +26 -0
- package/dist/cli/pm2-fleet-lock.d.ts.map +1 -0
- package/dist/cli/pm2-fleet-lock.js +50 -0
- package/dist/cli/pm2-fleet-lock.js.map +1 -0
- package/dist/cli/pm2-god-retirement.d.ts +59 -0
- package/dist/cli/pm2-god-retirement.d.ts.map +1 -0
- package/dist/cli/pm2-god-retirement.js +95 -0
- package/dist/cli/pm2-god-retirement.js.map +1 -0
- package/dist/cli/session-list-wake.d.ts +41 -0
- package/dist/cli/session-list-wake.d.ts.map +1 -0
- package/dist/cli/session-list-wake.js +102 -0
- package/dist/cli/session-list-wake.js.map +1 -0
- package/dist/cli/workflow.d.ts.map +1 -1
- package/dist/cli/workflow.js +26 -0
- package/dist/cli/workflow.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +933 -115
- package/dist/cli.js.map +1 -1
- package/dist/codex-app-runner.js +261 -49
- package/dist/codex-app-runner.js.map +1 -1
- package/dist/core/cli-runtime-update.d.ts +8 -0
- package/dist/core/cli-runtime-update.d.ts.map +1 -1
- package/dist/core/cli-runtime-update.js +127 -8
- package/dist/core/cli-runtime-update.js.map +1 -1
- package/dist/core/close-residual.d.ts +64 -0
- package/dist/core/close-residual.d.ts.map +1 -0
- package/dist/core/close-residual.js +93 -0
- package/dist/core/close-residual.js.map +1 -0
- package/dist/core/closed-session-card.d.ts.map +1 -1
- package/dist/core/closed-session-card.js +11 -3
- package/dist/core/closed-session-card.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +129 -27
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts +3 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +230 -1
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/daemon-background-close.d.ts +19 -0
- package/dist/core/daemon-background-close.d.ts.map +1 -0
- package/dist/core/daemon-background-close.js +39 -0
- package/dist/core/daemon-background-close.js.map +1 -0
- package/dist/core/dashboard-command/overview.d.ts +4 -0
- package/dist/core/dashboard-command/overview.d.ts.map +1 -1
- package/dist/core/dashboard-command/overview.js +8 -1
- package/dist/core/dashboard-command/overview.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +373 -41
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts +4 -0
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +3 -0
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/dashboard-url.d.ts +37 -0
- package/dist/core/dashboard-url.d.ts.map +1 -1
- package/dist/core/dashboard-url.js +71 -0
- package/dist/core/dashboard-url.js.map +1 -1
- package/dist/core/deferred-schedule-settlement.d.ts +15 -1
- package/dist/core/deferred-schedule-settlement.d.ts.map +1 -1
- package/dist/core/deferred-schedule-settlement.js +4 -1
- package/dist/core/deferred-schedule-settlement.js.map +1 -1
- package/dist/core/device-isolation-daemon.d.ts +91 -1
- package/dist/core/device-isolation-daemon.d.ts.map +1 -1
- package/dist/core/device-isolation-daemon.js +346 -2
- package/dist/core/device-isolation-daemon.js.map +1 -1
- package/dist/core/local-terminal-opener.d.ts.map +1 -1
- package/dist/core/local-terminal-opener.js +5 -1
- package/dist/core/local-terminal-opener.js.map +1 -1
- package/dist/core/loopback-target.d.ts +14 -0
- package/dist/core/loopback-target.d.ts.map +1 -0
- package/dist/core/loopback-target.js +20 -0
- package/dist/core/loopback-target.js.map +1 -0
- package/dist/core/maintenance.d.ts.map +1 -1
- package/dist/core/maintenance.js +16 -2
- package/dist/core/maintenance.js.map +1 -1
- package/dist/core/mojo-containment-command.d.ts +20 -0
- package/dist/core/mojo-containment-command.d.ts.map +1 -0
- package/dist/core/mojo-containment-command.js +266 -0
- package/dist/core/mojo-containment-command.js.map +1 -0
- package/dist/core/mojo-containment.d.ts +575 -0
- package/dist/core/mojo-containment.d.ts.map +1 -0
- package/dist/core/mojo-containment.js +1158 -0
- package/dist/core/mojo-containment.js.map +1 -0
- package/dist/core/mojo-launcher-env-quarantine.d.ts +30 -0
- package/dist/core/mojo-launcher-env-quarantine.d.ts.map +1 -0
- package/dist/core/mojo-launcher-env-quarantine.js +175 -0
- package/dist/core/mojo-launcher-env-quarantine.js.map +1 -0
- package/dist/core/mojo-session-identity.d.ts +3 -0
- package/dist/core/mojo-session-identity.d.ts.map +1 -0
- package/dist/core/mojo-session-identity.js +126 -0
- package/dist/core/mojo-session-identity.js.map +1 -0
- package/dist/core/persistent-backend.d.ts +32 -8
- package/dist/core/persistent-backend.d.ts.map +1 -1
- package/dist/core/persistent-backend.js +55 -17
- package/dist/core/persistent-backend.js.map +1 -1
- package/dist/core/plugins/mcp/gateway.d.ts +14 -1
- package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
- package/dist/core/plugins/mcp/gateway.js +70 -3
- package/dist/core/plugins/mcp/gateway.js.map +1 -1
- package/dist/core/plugins/mcp/host.d.ts +2 -0
- package/dist/core/plugins/mcp/host.d.ts.map +1 -1
- package/dist/core/plugins/mcp/host.js +2 -0
- package/dist/core/plugins/mcp/host.js.map +1 -1
- package/dist/core/plugins/pm2.d.ts.map +1 -1
- package/dist/core/plugins/pm2.js +16 -3
- package/dist/core/plugins/pm2.js.map +1 -1
- package/dist/core/plugins/service-manager.d.ts +9 -0
- package/dist/core/plugins/service-manager.d.ts.map +1 -1
- package/dist/core/plugins/service-manager.js +33 -16
- package/dist/core/plugins/service-manager.js.map +1 -1
- package/dist/core/preview-port-owner.d.ts +109 -0
- package/dist/core/preview-port-owner.d.ts.map +1 -0
- package/dist/core/preview-port-owner.js +320 -0
- package/dist/core/preview-port-owner.js.map +1 -0
- package/dist/core/remote-cli-ids.d.ts +5 -0
- package/dist/core/remote-cli-ids.d.ts.map +1 -0
- package/dist/core/remote-cli-ids.js +24 -0
- package/dist/core/remote-cli-ids.js.map +1 -0
- package/dist/core/{riff-shutdown-detach.d.ts → remote-shutdown-detach.d.ts} +40 -39
- package/dist/core/remote-shutdown-detach.d.ts.map +1 -0
- package/dist/core/{riff-shutdown-detach.js → remote-shutdown-detach.js} +85 -83
- package/dist/core/remote-shutdown-detach.js.map +1 -0
- package/dist/core/{riff-worker-shutdown-readiness.d.ts → remote-worker-shutdown-readiness.d.ts} +5 -4
- package/dist/core/remote-worker-shutdown-readiness.d.ts.map +1 -0
- package/dist/core/{riff-worker-shutdown-readiness.js → remote-worker-shutdown-readiness.js} +4 -3
- package/dist/core/remote-worker-shutdown-readiness.js.map +1 -0
- package/dist/core/reply-target.d.ts +16 -1
- package/dist/core/reply-target.d.ts.map +1 -1
- package/dist/core/reply-target.js +61 -0
- package/dist/core/reply-target.js.map +1 -1
- package/dist/core/session-group-birth.d.ts +26 -0
- package/dist/core/session-group-birth.d.ts.map +1 -1
- package/dist/core/session-group-birth.js +81 -4
- package/dist/core/session-group-birth.js.map +1 -1
- package/dist/core/session-manager.d.ts +15 -2
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +259 -5
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-model.d.ts +46 -0
- package/dist/core/session-model.d.ts.map +1 -0
- package/dist/core/session-model.js +42 -0
- package/dist/core/session-model.js.map +1 -0
- package/dist/core/session-owner-reminder.d.ts +63 -0
- package/dist/core/session-owner-reminder.d.ts.map +1 -0
- package/dist/core/session-owner-reminder.js +196 -0
- package/dist/core/session-owner-reminder.js.map +1 -0
- package/dist/core/session-preview-registry.d.ts +53 -0
- package/dist/core/session-preview-registry.d.ts.map +1 -0
- package/dist/core/session-preview-registry.js +82 -0
- package/dist/core/session-preview-registry.js.map +1 -0
- package/dist/core/session-preview.d.ts +114 -0
- package/dist/core/session-preview.d.ts.map +1 -0
- package/dist/core/session-preview.js +184 -0
- package/dist/core/session-preview.js.map +1 -0
- package/dist/core/session-rename.d.ts.map +1 -1
- package/dist/core/session-rename.js +5 -3
- package/dist/core/session-rename.js.map +1 -1
- package/dist/core/session-wake-deadline.d.ts +5 -0
- package/dist/core/session-wake-deadline.d.ts.map +1 -0
- package/dist/core/session-wake-deadline.js +13 -0
- package/dist/core/session-wake-deadline.js.map +1 -0
- package/dist/core/shutdown-budgets.d.ts +7 -6
- package/dist/core/shutdown-budgets.d.ts.map +1 -1
- package/dist/core/shutdown-budgets.js +11 -10
- package/dist/core/shutdown-budgets.js.map +1 -1
- package/dist/core/terminal-control-grant.d.ts +74 -0
- package/dist/core/terminal-control-grant.d.ts.map +1 -0
- package/dist/core/terminal-control-grant.js +183 -0
- package/dist/core/terminal-control-grant.js.map +1 -0
- package/dist/core/terminal-proxy.d.ts.map +1 -1
- package/dist/core/terminal-proxy.js +4 -5
- package/dist/core/terminal-proxy.js.map +1 -1
- package/dist/core/terminal-write-auth.d.ts +4 -11
- package/dist/core/terminal-write-auth.d.ts.map +1 -1
- package/dist/core/terminal-write-auth.js +19 -16
- package/dist/core/terminal-write-auth.js.map +1 -1
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +36 -29
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/types.d.ts +88 -10
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -7
- package/dist/core/types.js.map +1 -1
- package/dist/core/workbench-link.d.ts +81 -0
- package/dist/core/workbench-link.d.ts.map +1 -0
- package/dist/core/workbench-link.js +109 -0
- package/dist/core/workbench-link.js.map +1 -0
- package/dist/core/worker-pool.d.ts +312 -11
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +2494 -209
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +6 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +443 -106
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/aggregator.d.ts +33 -3
- package/dist/dashboard/aggregator.d.ts.map +1 -1
- package/dist/dashboard/aggregator.js +93 -17
- package/dist/dashboard/aggregator.js.map +1 -1
- package/dist/dashboard/auth-session-connections.d.ts +59 -0
- package/dist/dashboard/auth-session-connections.d.ts.map +1 -0
- package/dist/dashboard/auth-session-connections.js +109 -0
- package/dist/dashboard/auth-session-connections.js.map +1 -0
- package/dist/dashboard/auth.d.ts +99 -1
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +176 -64
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +1 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +3 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/control-audit.d.ts +112 -0
- package/dist/dashboard/control-audit.d.ts.map +1 -0
- package/dist/dashboard/control-audit.js +195 -0
- package/dist/dashboard/control-audit.js.map +1 -0
- package/dist/dashboard/control-csrf.d.ts +123 -0
- package/dist/dashboard/control-csrf.d.ts.map +1 -0
- package/dist/dashboard/control-csrf.js +392 -0
- package/dist/dashboard/control-csrf.js.map +1 -0
- package/dist/dashboard/daemon-reconcile.d.ts +26 -0
- package/dist/dashboard/daemon-reconcile.d.ts.map +1 -0
- package/dist/dashboard/daemon-reconcile.js +46 -0
- package/dist/dashboard/daemon-reconcile.js.map +1 -0
- package/dist/dashboard/debug-terminal.d.ts.map +1 -1
- package/dist/dashboard/debug-terminal.js +18 -4
- package/dist/dashboard/debug-terminal.js.map +1 -1
- package/dist/dashboard/events-sse.d.ts +60 -0
- package/dist/dashboard/events-sse.d.ts.map +1 -0
- package/dist/dashboard/events-sse.js +63 -0
- package/dist/dashboard/events-sse.js.map +1 -0
- package/dist/dashboard/h5-auth.d.ts +256 -0
- package/dist/dashboard/h5-auth.d.ts.map +1 -0
- package/dist/dashboard/h5-auth.js +825 -0
- package/dist/dashboard/h5-auth.js.map +1 -0
- package/dist/dashboard/managed-spawn.d.ts +36 -0
- package/dist/dashboard/managed-spawn.d.ts.map +1 -0
- package/dist/dashboard/managed-spawn.js +169 -0
- package/dist/dashboard/managed-spawn.js.map +1 -0
- package/dist/dashboard/preview-content-capability.d.ts +41 -0
- package/dist/dashboard/preview-content-capability.d.ts.map +1 -0
- package/dist/dashboard/preview-content-capability.js +127 -0
- package/dist/dashboard/preview-content-capability.js.map +1 -0
- package/dist/dashboard/preview-contract.d.ts +85 -0
- package/dist/dashboard/preview-contract.d.ts.map +1 -0
- package/dist/dashboard/preview-contract.js +198 -0
- package/dist/dashboard/preview-contract.js.map +1 -0
- package/dist/dashboard/preview-guard-page.d.ts +52 -0
- package/dist/dashboard/preview-guard-page.d.ts.map +1 -0
- package/dist/dashboard/preview-guard-page.js +162 -0
- package/dist/dashboard/preview-guard-page.js.map +1 -0
- package/dist/dashboard/preview-interaction.d.ts +57 -0
- package/dist/dashboard/preview-interaction.d.ts.map +1 -0
- package/dist/dashboard/preview-interaction.js +198 -0
- package/dist/dashboard/preview-interaction.js.map +1 -0
- package/dist/dashboard/preview-proxy.d.ts +113 -0
- package/dist/dashboard/preview-proxy.d.ts.map +1 -0
- package/dist/dashboard/preview-proxy.js +543 -0
- package/dist/dashboard/preview-proxy.js.map +1 -0
- package/dist/dashboard/public-redact.d.ts +23 -0
- package/dist/dashboard/public-redact.d.ts.map +1 -1
- package/dist/dashboard/public-redact.js +90 -21
- package/dist/dashboard/public-redact.js.map +1 -1
- package/dist/dashboard/request-identity.d.ts +77 -0
- package/dist/dashboard/request-identity.d.ts.map +1 -0
- package/dist/dashboard/request-identity.js +72 -0
- package/dist/dashboard/request-identity.js.map +1 -0
- package/dist/dashboard/session-cleanup.d.ts +5 -0
- package/dist/dashboard/session-cleanup.d.ts.map +1 -1
- package/dist/dashboard/session-cleanup.js +4 -0
- package/dist/dashboard/session-cleanup.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +5 -1
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +14 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/standing-link.d.ts +76 -0
- package/dist/dashboard/standing-link.d.ts.map +1 -0
- package/dist/dashboard/standing-link.js +111 -0
- package/dist/dashboard/standing-link.js.map +1 -0
- package/dist/dashboard/terminal-control.d.ts +105 -0
- package/dist/dashboard/terminal-control.d.ts.map +1 -0
- package/dist/dashboard/terminal-control.js +296 -0
- package/dist/dashboard/terminal-control.js.map +1 -0
- package/dist/dashboard/terminal-front-proxy.d.ts +55 -0
- package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -0
- package/dist/dashboard/terminal-front-proxy.js +397 -0
- package/dist/dashboard/terminal-front-proxy.js.map +1 -0
- package/dist/dashboard/terminal-view-capability.d.ts +97 -0
- package/dist/dashboard/terminal-view-capability.d.ts.map +1 -0
- package/dist/dashboard/terminal-view-capability.js +145 -0
- package/dist/dashboard/terminal-view-capability.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-api.d.ts +59 -0
- package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-api.js +227 -0
- package/dist/dashboard/web/agent-workbench-api.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts +59 -0
- package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-appearance-menu.js +195 -0
- package/dist/dashboard/web/agent-workbench-appearance-menu.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-appearance.d.ts +222 -0
- package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-appearance.js +499 -0
- package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-capabilities.d.ts +13 -0
- package/dist/dashboard/web/agent-workbench-capabilities.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-capabilities.js +24 -0
- package/dist/dashboard/web/agent-workbench-capabilities.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-chat.d.ts +90 -0
- package/dist/dashboard/web/agent-workbench-chat.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-chat.js +168 -0
- package/dist/dashboard/web/agent-workbench-chat.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-dock-page.d.ts +3 -0
- package/dist/dashboard/web/agent-workbench-dock-page.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-dock-page.js +23 -0
- package/dist/dashboard/web/agent-workbench-dock-page.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-dock-view.d.ts +22 -0
- package/dist/dashboard/web/agent-workbench-dock-view.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-dock-view.js +76 -0
- package/dist/dashboard/web/agent-workbench-dock-view.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-model.d.ts +196 -0
- package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-model.js +529 -0
- package/dist/dashboard/web/agent-workbench-model.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-page.d.ts +3 -0
- package/dist/dashboard/web/agent-workbench-page.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-page.js +27 -0
- package/dist/dashboard/web/agent-workbench-page.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-panes.d.ts +49 -0
- package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-panes.js +468 -0
- package/dist/dashboard/web/agent-workbench-panes.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-session-list.d.ts +42 -0
- package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-session-list.js +353 -0
- package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-storage.d.ts +49 -0
- package/dist/dashboard/web/agent-workbench-storage.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-storage.js +197 -0
- package/dist/dashboard/web/agent-workbench-storage.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-touch.d.ts +46 -0
- package/dist/dashboard/web/agent-workbench-touch.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-touch.js +96 -0
- package/dist/dashboard/web/agent-workbench-touch.js.map +1 -0
- package/dist/dashboard/web/agent-workbench-view.d.ts +34 -0
- package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -0
- package/dist/dashboard/web/agent-workbench-view.js +439 -0
- package/dist/dashboard/web/agent-workbench-view.js.map +1 -0
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +63 -2
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts +11 -0
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +267 -36
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +6 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/control-csrf.d.ts +4 -0
- package/dist/dashboard/web/control-csrf.d.ts.map +1 -0
- package/dist/dashboard/web/control-csrf.js +26 -0
- package/dist/dashboard/web/control-csrf.js.map +1 -0
- package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
- package/dist/dashboard/web/dashboard-routes.js +2 -0
- package/dist/dashboard/web/dashboard-routes.js.map +1 -1
- package/dist/dashboard/web/groups-page.d.ts.map +1 -1
- package/dist/dashboard/web/groups-page.js +11 -2
- package/dist/dashboard/web/groups-page.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +132 -6
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +3 -2
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +41 -1
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +5 -1
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/settings-page.d.ts +3 -0
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +56 -10
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +27 -2
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +43 -4
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/web/ui.d.ts +3 -0
- package/dist/dashboard/web/ui.d.ts.map +1 -1
- package/dist/dashboard/web/ui.js +11 -0
- package/dist/dashboard/web/ui.js.map +1 -1
- package/dist/dashboard/web/update-action.d.ts +12 -0
- package/dist/dashboard/web/update-action.d.ts.map +1 -1
- package/dist/dashboard/web/update-action.js +11 -0
- package/dist/dashboard/web/update-action.js.map +1 -1
- package/dist/dashboard/workbench-doctor.d.ts +114 -0
- package/dist/dashboard/workbench-doctor.d.ts.map +1 -0
- package/dist/dashboard/workbench-doctor.js +620 -0
- package/dist/dashboard/workbench-doctor.js.map +1 -0
- package/dist/dashboard/workbench-ticket.d.ts +165 -0
- package/dist/dashboard/workbench-ticket.d.ts.map +1 -0
- package/dist/dashboard/workbench-ticket.js +495 -0
- package/dist/dashboard/workbench-ticket.js.map +1 -0
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +1 -0
- package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +1 -0
- package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +10 -0
- package/dist/dashboard-web/chunks/chunk-22WIADUT.js +2 -0
- package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-Z7B3E3US.js → chunk-2W6SCN3M.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-VMWNR3SV.js → chunk-F6KNPF4R.js} +11 -9
- package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +1 -0
- package/dist/dashboard-web/chunks/chunk-G5ZS2YUS.js +1 -0
- package/dist/dashboard-web/chunks/chunk-KTQ7B6ZR.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-Z7DO42GJ.js → chunk-NACP7BMR.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-CPH6VVFY.js → connectors-page-VOISXXII.js} +1 -1
- package/dist/dashboard-web/chunks/{feedback-page-J2FKQ3LK.js → feedback-page-RN6HRZMS.js} +1 -1
- package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +8 -0
- package/dist/dashboard-web/chunks/{insights-page-A2LWTKJD.js → insights-page-HJFDYR5N.js} +3 -3
- package/dist/dashboard-web/chunks/{monitor-room-2YR752E3.js → monitor-room-V7PCP47V.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-BGYSKZGM.js → monitoring-page-NKEKVQAP.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-ZZHTEAE4.js → office-page-GVJF73XW.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +1 -0
- package/dist/dashboard-web/chunks/{plugin-page-VEGTCEAS.js → plugin-page-J3OF5IY4.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-YUC4YLJG.js → roles-page-WQIRSOLZ.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-2L2NKTDJ.js → schedules-page-J2DEY2X6.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +8 -0
- package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-DQPBBI3T.js → skills-page-HGIFR3IU.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-LQKLDV4K.js → team-federation-page-MR5ZPL4B.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-RVKQIMAP.js → v3-page-GBR5JWPE.js} +2 -2
- package/dist/dashboard-web/chunks/{whiteboards-page-S5K55HRZ.js → whiteboards-page-QAZM4BN3.js} +1 -1
- package/dist/dashboard-web/index.html +8 -1
- package/dist/dashboard-web/style.css +2006 -10
- package/dist/dashboard.js +1006 -263
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +30 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +33 -0
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +31 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +28 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +22 -6
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +118 -24
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +15 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +30 -0
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +48 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +133 -22
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/identity-cache.d.ts +14 -6
- package/dist/im/lark/identity-cache.d.ts.map +1 -1
- package/dist/im/lark/identity-cache.js +69 -26
- package/dist/im/lark/identity-cache.js.map +1 -1
- package/dist/im/lark/lark-hosts.d.ts +13 -0
- package/dist/im/lark/lark-hosts.d.ts.map +1 -1
- package/dist/im/lark/lark-hosts.js +16 -0
- package/dist/im/lark/lark-hosts.js.map +1 -1
- package/dist/im/lark/overview-card.d.ts +22 -0
- package/dist/im/lark/overview-card.d.ts.map +1 -1
- package/dist/im/lark/overview-card.js +53 -3
- package/dist/im/lark/overview-card.js.map +1 -1
- package/dist/im/lark/sessions-card.d.ts.map +1 -1
- package/dist/im/lark/sessions-card.js +26 -3
- package/dist/im/lark/sessions-card.js.map +1 -1
- package/dist/im/lark/workflow-slash-command.d.ts +6 -0
- package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
- package/dist/im/lark/workflow-slash-command.js +7 -0
- package/dist/im/lark/workflow-slash-command.js.map +1 -1
- package/dist/index-daemon.js +27 -4
- package/dist/index-daemon.js.map +1 -1
- package/dist/index-dashboard.d.ts +3 -0
- package/dist/index-dashboard.d.ts.map +1 -0
- package/dist/index-dashboard.js +94 -0
- package/dist/index-dashboard.js.map +1 -0
- package/dist/platform/team-agents-client.d.ts +199 -0
- package/dist/platform/team-agents-client.d.ts.map +1 -0
- package/dist/platform/team-agents-client.js +263 -0
- package/dist/platform/team-agents-client.js.map +1 -0
- package/dist/platform/tunnel-client.d.ts +6 -0
- package/dist/platform/tunnel-client.d.ts.map +1 -1
- package/dist/platform/tunnel-client.js.map +1 -1
- package/dist/services/async-trigger-state.d.ts +7 -3
- package/dist/services/async-trigger-state.d.ts.map +1 -1
- package/dist/services/async-trigger-state.js +28 -0
- package/dist/services/async-trigger-state.js.map +1 -1
- package/dist/services/async-trigger-store.d.ts +13 -4
- package/dist/services/async-trigger-store.d.ts.map +1 -1
- package/dist/services/async-trigger-store.js +55 -8
- package/dist/services/async-trigger-store.js.map +1 -1
- package/dist/services/bot-config-store.d.ts +1 -11
- package/dist/services/bot-config-store.d.ts.map +1 -1
- package/dist/services/bot-config-store.js +27 -3
- package/dist/services/bot-config-store.js.map +1 -1
- package/dist/services/bot-profile-store.d.ts +17 -2
- package/dist/services/bot-profile-store.d.ts.map +1 -1
- package/dist/services/bot-profile-store.js +93 -12
- package/dist/services/bot-profile-store.js.map +1 -1
- package/dist/services/bridge-turn-queue.d.ts +10 -1
- package/dist/services/bridge-turn-queue.d.ts.map +1 -1
- package/dist/services/bridge-turn-queue.js +29 -9
- package/dist/services/bridge-turn-queue.js.map +1 -1
- package/dist/services/claude-transcript.d.ts +19 -0
- package/dist/services/claude-transcript.d.ts.map +1 -1
- package/dist/services/claude-transcript.js +57 -5
- package/dist/services/claude-transcript.js.map +1 -1
- package/dist/services/codex-app-threads.d.ts +2 -0
- package/dist/services/codex-app-threads.d.ts.map +1 -1
- package/dist/services/codex-app-threads.js +1 -1
- package/dist/services/codex-app-threads.js.map +1 -1
- package/dist/services/codex-reasoning-effort.d.ts +8 -0
- package/dist/services/codex-reasoning-effort.d.ts.map +1 -1
- package/dist/services/codex-reasoning-effort.js +24 -0
- package/dist/services/codex-reasoning-effort.js.map +1 -1
- package/dist/services/cursor-resume-policy.d.ts.map +1 -1
- package/dist/services/cursor-resume-policy.js +15 -3
- package/dist/services/cursor-resume-policy.js.map +1 -1
- package/dist/services/open-platform-rename.d.ts.map +1 -1
- package/dist/services/open-platform-rename.js +3 -2
- package/dist/services/open-platform-rename.js.map +1 -1
- package/dist/services/ordinary-turn-recovery.d.ts +76 -0
- package/dist/services/ordinary-turn-recovery.d.ts.map +1 -0
- package/dist/services/ordinary-turn-recovery.js +349 -0
- package/dist/services/ordinary-turn-recovery.js.map +1 -0
- package/dist/services/resume-fresh-policy.d.ts +17 -0
- package/dist/services/resume-fresh-policy.d.ts.map +1 -0
- package/dist/services/resume-fresh-policy.js +24 -0
- package/dist/services/resume-fresh-policy.js.map +1 -0
- package/dist/services/session-group-title.d.ts +1 -0
- package/dist/services/session-group-title.d.ts.map +1 -1
- package/dist/services/session-group-title.js +16 -1
- package/dist/services/session-group-title.js.map +1 -1
- package/dist/services/session-groups-store.d.ts +30 -0
- package/dist/services/session-groups-store.d.ts.map +1 -1
- package/dist/services/session-groups-store.js +26 -4
- package/dist/services/session-groups-store.js.map +1 -1
- package/dist/services/session-owner-notification.d.ts +9 -0
- package/dist/services/session-owner-notification.d.ts.map +1 -0
- package/dist/services/session-owner-notification.js +10 -0
- package/dist/services/session-owner-notification.js.map +1 -0
- package/dist/services/session-owner-reminder-config-store.d.ts +9 -0
- package/dist/services/session-owner-reminder-config-store.d.ts.map +1 -0
- package/dist/services/session-owner-reminder-config-store.js +24 -0
- package/dist/services/session-owner-reminder-config-store.js.map +1 -0
- package/dist/services/session-owner-reminder-store.d.ts +5 -0
- package/dist/services/session-owner-reminder-store.d.ts.map +1 -0
- package/dist/services/session-owner-reminder-store.js +54 -0
- package/dist/services/session-owner-reminder-store.js.map +1 -0
- package/dist/services/session-store.d.ts +98 -21
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +406 -48
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/structured-bridge-clis.d.ts +9 -5
- package/dist/services/structured-bridge-clis.d.ts.map +1 -1
- package/dist/services/structured-bridge-clis.js +9 -4
- package/dist/services/structured-bridge-clis.js.map +1 -1
- package/dist/services/transcript-resolver.d.ts +1 -1
- package/dist/services/transcript-resolver.d.ts.map +1 -1
- package/dist/services/transcript-resolver.js +6 -1
- package/dist/services/transcript-resolver.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +7 -2
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/ensure-herdr-integrations.d.ts +13 -0
- package/dist/setup/ensure-herdr-integrations.d.ts.map +1 -1
- package/dist/setup/ensure-herdr-integrations.js +21 -3
- package/dist/setup/ensure-herdr-integrations.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +1 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +107 -7
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/skills/definitions.d.ts +17 -0
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +78 -8
- package/dist/skills/definitions.js.map +1 -1
- package/dist/skills/injection-mode.d.ts +24 -3
- package/dist/skills/injection-mode.d.ts.map +1 -1
- package/dist/skills/injection-mode.js +64 -15
- package/dist/skills/injection-mode.js.map +1 -1
- package/dist/skills/installer.d.ts +18 -0
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +45 -1
- package/dist/skills/installer.js.map +1 -1
- package/dist/types.d.ts +221 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/child-env.d.ts +92 -2
- package/dist/utils/child-env.d.ts.map +1 -1
- package/dist/utils/child-env.js +195 -1
- package/dist/utils/child-env.js.map +1 -1
- package/dist/utils/cli-usage-limit.d.ts +25 -14
- package/dist/utils/cli-usage-limit.d.ts.map +1 -1
- package/dist/utils/cli-usage-limit.js +25 -15
- package/dist/utils/cli-usage-limit.js.map +1 -1
- package/dist/utils/daemon-rejection-guard.d.ts +35 -0
- package/dist/utils/daemon-rejection-guard.d.ts.map +1 -0
- package/dist/utils/daemon-rejection-guard.js +101 -0
- package/dist/utils/daemon-rejection-guard.js.map +1 -0
- package/dist/utils/dashboard-env.d.ts +53 -0
- package/dist/utils/dashboard-env.d.ts.map +1 -0
- package/dist/utils/dashboard-env.js +116 -0
- package/dist/utils/dashboard-env.js.map +1 -0
- package/dist/utils/global-install.d.ts.map +1 -1
- package/dist/utils/global-install.js +61 -5
- package/dist/utils/global-install.js.map +1 -1
- package/dist/utils/install-diagnostics.d.ts +14 -7
- package/dist/utils/install-diagnostics.d.ts.map +1 -1
- package/dist/utils/install-diagnostics.js +20 -11
- package/dist/utils/install-diagnostics.js.map +1 -1
- package/dist/utils/local-dev-update.d.ts +132 -0
- package/dist/utils/local-dev-update.d.ts.map +1 -0
- package/dist/utils/local-dev-update.js +176 -0
- package/dist/utils/local-dev-update.js.map +1 -0
- package/dist/utils/pending-input-queue.d.ts +12 -1
- package/dist/utils/pending-input-queue.d.ts.map +1 -1
- package/dist/utils/pending-input-queue.js.map +1 -1
- package/dist/worker.js +1284 -225
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +68 -68
- package/dist/workflows/events/payloads.d.ts +14 -14
- package/dist/workflows/events/schema.d.ts +312 -312
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +40 -40
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +7 -0
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/goal-cli.d.ts +3 -0
- package/dist/workflows/v3/goal-cli.d.ts.map +1 -1
- package/dist/workflows/v3/goal-cli.js +11 -0
- package/dist/workflows/v3/goal-cli.js.map +1 -1
- package/dist/workflows/v3/run-envelope.d.ts +144 -144
- package/package.json +3 -2
- package/dist/cli/pm2-god-admission.d.ts +0 -8
- package/dist/cli/pm2-god-admission.d.ts.map +0 -1
- package/dist/cli/pm2-god-admission.js +0 -25
- package/dist/cli/pm2-god-admission.js.map +0 -1
- package/dist/core/riff-shutdown-detach.d.ts.map +0 -1
- package/dist/core/riff-shutdown-detach.js.map +0 -1
- package/dist/core/riff-worker-shutdown-readiness.d.ts.map +0 -1
- package/dist/core/riff-worker-shutdown-readiness.js.map +0 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-65SMZ4QY.js +0 -10
- package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +0 -1
- package/dist/dashboard-web/chunks/chunk-IKN6WURK.js +0 -1
- package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +0 -1
- package/dist/dashboard-web/chunks/groups-page-VDOOLS4M.js +0 -8
- package/dist/dashboard-web/chunks/overview-page-7NYPKQSB.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-DYZZMKFL.js +0 -8
- package/dist/dashboard-web/chunks/settings-page-LIULUSMH.js +0 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { request as httpRequest, } from 'node:http';
|
|
2
|
+
export function isLiteralLoopbackHost(value) {
|
|
3
|
+
return value === '127.0.0.1' || value === '::1';
|
|
4
|
+
}
|
|
5
|
+
export function isTcpPort(value) {
|
|
6
|
+
return typeof value === 'number'
|
|
7
|
+
&& Number.isSafeInteger(value)
|
|
8
|
+
&& value >= 1
|
|
9
|
+
&& value <= 65_535;
|
|
10
|
+
}
|
|
11
|
+
/** Runtime-checked HTTP/WS handshake dial. Callers cannot override host/port
|
|
12
|
+
* through RequestOptions because the validated values are written last. */
|
|
13
|
+
export function requestLiteralLoopback(target, options, callback) {
|
|
14
|
+
if (!isLiteralLoopbackHost(target.host))
|
|
15
|
+
throw new Error('remote_host_forbidden');
|
|
16
|
+
if (!isTcpPort(target.port))
|
|
17
|
+
throw new Error('invalid_port');
|
|
18
|
+
return httpRequest({ ...options, host: target.host, port: target.port }, callback);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=loopback-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loopback-target.js","sourceRoot":"","sources":["../../src/core/loopback-target.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,WAAW,GAIvB,MAAM,WAAW,CAAC;AAOnB,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;WAC3B,KAAK,IAAI,CAAC;WACV,KAAK,IAAI,MAAM,CAAC;AACvB,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,sBAAsB,CACpC,MAAmD,EACnD,OAA2D,EAC3D,QAA8C;IAE9C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7D,OAAO,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAY,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAMhE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAChD,SAAS,EAAE,MAAM,gBAAgB,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,iEAAiE;IACjE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA8D9D;AAMD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CASpE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAM9E;AAID;2CAC2C;AAC3C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C;uEACuE;AACvE,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,iBAA8C,GAAG,IAAI,CAWlG;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAGjC;AAED,wBAAgB,kBAAkB,CAAC,YAAY,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAY,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAMhE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAChD,SAAS,EAAE,MAAM,gBAAgB,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,iEAAiE;IACjE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA8D9D;AAMD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CASpE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAM9E;AAID;2CAC2C;AAC3C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C;uEACuE;AACvE,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,iBAA8C,GAAG,IAAI,CAWlG;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAGjC;AAED,wBAAgB,kBAAkB,CAAC,YAAY,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAqCnG;AAWD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,UAAU,CAAC,OAAO,KAAK,CAAC,CAmC1B;AA2CD,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,IAAI,CAavC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
package/dist/core/maintenance.js
CHANGED
|
@@ -29,7 +29,7 @@ import { claimRestartLease, clearRestartLease, hasActiveRestartLease, writeResta
|
|
|
29
29
|
import { isLocalDevInstall, botmuxVersion, botmuxVersionAt, botmuxCliEntry, botmuxCliEntryAt, } from '../utils/install-info.js';
|
|
30
30
|
import { resolveGlobalInstallPlan, } from '../utils/global-install.js';
|
|
31
31
|
import { withFileLockSync } from '../utils/file-lock.js';
|
|
32
|
-
import { scrubWorkflowWorkerEnv } from '../utils/child-env.js';
|
|
32
|
+
import { scrubWorkflowWorkerEnv, stripDashboardH5Env } from '../utils/child-env.js';
|
|
33
33
|
/**
|
|
34
34
|
* One maintenance tick. The schedule is driven solely by auto-update's time
|
|
35
35
|
* (once/day). At that time: install the latest version (download only), and
|
|
@@ -197,13 +197,24 @@ export function detachedRestartEnv(inheritedEnv = process.env) {
|
|
|
197
197
|
// PM2 snapshot. `botmux restart` checks workflow mode before pm2Env(), so it
|
|
198
198
|
// must not inherit node-worker identity even if a host boot scrub regresses.
|
|
199
199
|
scrubWorkflowWorkerEnv(env);
|
|
200
|
+
// The dashboard process legitimately holds the Feishu H5 credential family
|
|
201
|
+
// (index-dashboard.ts dotenv-loads it from ~/.botmux/.env — deliberately NOT
|
|
202
|
+
// baked into the PM2 env block, see DAEMON_ENV_KEYS), so a detached restart
|
|
203
|
+
// it spawns would inherit the APP_SECRET. The restart driver has no consumer
|
|
204
|
+
// for any of it and must not carry it toward pm2; the fresh dashboard reloads
|
|
205
|
+
// the family from .env itself. Not part of the DAEMON_ENV_KEYS mirror below —
|
|
206
|
+
// this is credential hygiene, not baked-snapshot invalidation.
|
|
207
|
+
stripDashboardH5Env(env);
|
|
200
208
|
// The dashboard/daemon snapshot may outlive a ~/.botmux/.env edit. Let the
|
|
201
209
|
// fresh CLI reload these settings from the file.
|
|
202
210
|
//
|
|
203
211
|
// This list MUST mirror DAEMON_ENV_KEYS in src/cli/daemon-lifecycle-env.ts:
|
|
204
212
|
// every key baked into the PM2 env block there has to be stripped here, or a
|
|
205
213
|
// detached restart (dashboard update/restart, maintenance auto-update) keeps
|
|
206
|
-
// the stale baked value instead of reloading from the file.
|
|
214
|
+
// the stale baked value instead of reloading from the file. Kept as a local
|
|
215
|
+
// literal so this stays importable from the daemon/dashboard without pulling
|
|
216
|
+
// in the CLI layer; test/maintenance.test.ts iterates the exported
|
|
217
|
+
// DAEMON_ENV_KEYS and fails the moment the two drift apart.
|
|
207
218
|
for (const key of [
|
|
208
219
|
'WEB_EXTERNAL_HOST',
|
|
209
220
|
'BOTMUX_DASHBOARD_EXTERNAL_HOST',
|
|
@@ -212,6 +223,9 @@ export function detachedRestartEnv(inheritedEnv = process.env) {
|
|
|
212
223
|
'BOTMUX_DAEMON_IPC_BASE_PORT',
|
|
213
224
|
'BOTMUX_DASHBOARD_PUBLIC_READONLY',
|
|
214
225
|
'BOTMUX_PUBLIC_URL',
|
|
226
|
+
// Dashboard control-audit destination + terminal takeover lease TTL.
|
|
227
|
+
'BOTMUX_DASHBOARD_CONTROL_AUDIT_PATH',
|
|
228
|
+
'BOTMUX_DASHBOARD_TERMINAL_CONTROL_TTL_MS',
|
|
215
229
|
])
|
|
216
230
|
delete env[key];
|
|
217
231
|
return env;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAA0B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/core/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAA0B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA0BpF;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAqB;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO;QAAE,OAAO,CAAC,0CAA0C;IAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC1E,KAAK,CAAC,UAAU,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO;IAEnC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACtB,GAAG,CAAC,sEAAsE,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,+DAA+D,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,IAAI,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7G,IAAI,CAAC;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,oEAAoE;oBACpE,iEAAiE;oBACjE,oEAAoE;oBACpE,mEAAmE;oBACnE,iEAAiE;oBACjE,aAAa,GAAG,IAAI,CAAC;oBACrB,GAAG,CAAC,0BAA0B,KAAK,wBAAwB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC9B,GAAG,CAAC,0BAA0B,KAAK,SAAS,MAAM,+CAA+C,CAAC,CAAC;IACrG,CAAC;SAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,gBAAgB,MAAM,MAAM,KAAK,uBAAuB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,6DAA6D;AAE7D,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,CAAmB;IACtE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,8BAA8B;AAE9B;2CAC2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C;uEACuE;AACvE,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,uBAAuB,CAAC,OAA0B,wBAAwB,EAAE;IAC1F,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;QAChD,GAAG,EAAE,sBAAsB,EAAE;QAC7B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACpC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,uCAAuC;KAC7E,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,wBAAwB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,OAAe;IAC7D,2EAA2E;IAC3E,gDAAgD;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,+BAA+B,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,QAAgB,EAChB,SAAkB;IAElB,IAAI,SAAS;QAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;IAC3E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,eAAkC,OAAO,CAAC,GAAG;IAC9E,MAAM,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAChC,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,+DAA+D;IAC/D,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzB,2EAA2E;IAC3E,iDAAiD;IACjD,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,mEAAmE;IACnE,4DAA4D;IAC5D,KAAK,MAAM,GAAG,IAAI;QAChB,mBAAmB;QACnB,gCAAgC;QAChC,uBAAuB;QACvB,uBAAuB;QACvB,6BAA6B;QAC7B,kCAAkC;QAClC,mBAAmB;QACnB,qEAAqE;QACrE,qCAAqC;QACrC,0CAA0C;KAC3C;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,iBAA0B,EAC1B,cAAuB;IAEvB,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;IAC5C,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5B,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,uBAAuB,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,EAAE,GAAG,SAAS,CAAC,CAAC,iEAAiE;IACnF,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IAC5F,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;QAC7B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;QACvD,GAAG,EAAE;YACH,GAAG,kBAAkB,EAAE;YACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBACnB,uBAAuB,EAAE,cAAc;gBACvC,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;aACjD,CAAC,CAAC,CAAC,EAAE,CAAC;SACR;QACD,8EAA8E;QAC9E,uEAAuE;QACvE,qFAAqF;QACrF,GAAG,EAAE,sBAAsB,EAAE;KAC9B,CAAC,CAAC;IACH,uEAAuE;IACvE,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC;YAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc;IACrB,8EAA8E;IAC9E,qEAAqE;IACrE,qCAAqC;IACrC,IAAI,WAA0C,CAAC;IAC/C,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,WAAW;QAChD,SAAS,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/D,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;QAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;QACrC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE;YAC7E,IAAI,qBAAqB,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxE,EAAE,EAAE,CAAC;QACP,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACtB,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW;YAC/B,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAChD,CAAC,CAAC,aAAa,EAAE;QACnB,SAAS,EAAE,GAAG,EAAE;YACd,WAAW,KAAK,wBAAwB,EAAE,CAAC;YAC3C,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACnD,cAAc,EAAE,GAAG,EAAE;YACnB,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,IAAI,KAAiC,CAAC;AAEtC,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB;IAC9B,IAAI,KAAK;QAAE,OAAO;IAClB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC;YAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;IACF,oEAAoE;IACpE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACnC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC/C,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,KAAK,EAAE,CAAC;QAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,KAAK,GAAG,SAAS,CAAC;IAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Is this session row still active" — a STRICT cross-process read of every
|
|
3
|
+
* session file, from the CLI process.
|
|
4
|
+
*
|
|
5
|
+
* Tri-state on purpose (gate-5 review): the store's lenient readers swallow a
|
|
6
|
+
* parse failure into "no row", which this gate would read as proven-inactive —
|
|
7
|
+
* silently passing on exactly the corrupted-state day an operator reaches for
|
|
8
|
+
* this command. Here an unreadable file yields `undefined` ("evidence
|
|
9
|
+
* unavailable"), which does NOT block the revoke but IS surfaced to the
|
|
10
|
+
* operator; only a definite `status === 'active'` blocks.
|
|
11
|
+
*/
|
|
12
|
+
export declare function defaultIsSessionActive(sessionId: string): Promise<boolean | undefined>;
|
|
13
|
+
export declare function runMojoContainmentCommand(argv: string[], deps?: {
|
|
14
|
+
dataDir?: string;
|
|
15
|
+
procRoot?: string;
|
|
16
|
+
isSessionActive?: (sessionId: string) => Promise<boolean | undefined> | boolean | undefined;
|
|
17
|
+
stdout?: (line: string) => void;
|
|
18
|
+
stderr?: (line: string) => void;
|
|
19
|
+
}): Promise<number>;
|
|
20
|
+
//# sourceMappingURL=mojo-containment-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mojo-containment-command.d.ts","sourceRoot":"","sources":["../../src/core/mojo-containment-command.ts"],"names":[],"mappings":"AAwDA;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CA0B5F;AAUD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE;IACJ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5F,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GACL,OAAO,CAAC,MAAM,CAAC,CAyKjB"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `botmux mojo-containment ...` — the auditable operator exit for containment
|
|
3
|
+
* blockers that are correct-but-permanent.
|
|
4
|
+
*
|
|
5
|
+
* WHY this exists: the containment ledger fails closed on purpose. A weak
|
|
6
|
+
* (tree-identity) handle on a host without cgroup v2 can never produce a
|
|
7
|
+
* boundary proof, and an `unprovable` handle never releases by design — so a
|
|
8
|
+
* single mojo session run-and-closed on such a host leaves a durable handle
|
|
9
|
+
* whose device-isolation blocker turns every credential activation into a
|
|
10
|
+
* whole-machine `activation_blocked` 409, forever. That is not a transient
|
|
11
|
+
* retry situation, and the only previous way out was hand-editing the ledger
|
|
12
|
+
* JSON. This command makes the exit explicit, human-only and logged, instead
|
|
13
|
+
* of undocumented file surgery.
|
|
14
|
+
*
|
|
15
|
+
* The runtime never revokes on its own: revokeContainmentHandles is called from
|
|
16
|
+
* here and from nowhere else.
|
|
17
|
+
*
|
|
18
|
+
* SAFETY GATE (P1-c): revoking is the one manual act that can turn into a
|
|
19
|
+
* credential leak — dropping the handle of a subtree that is STILL ALIVE stops
|
|
20
|
+
* tracking a process that still holds the injected credential. The command
|
|
21
|
+
* therefore machine-checks what it can before revoking and default-REJECTS:
|
|
22
|
+
* - a weak handle whose recorded rootPid is still the ORIGINAL process
|
|
23
|
+
* (boot id + starttime verify — the same primitive the runtime kill gate
|
|
24
|
+
* uses), and
|
|
25
|
+
* - a session row that is still `active`.
|
|
26
|
+
* `--force` overrides both, and the override is written into the audit line so
|
|
27
|
+
* forensics can tell a routine cleanup from an operator overruling live
|
|
28
|
+
* evidence.
|
|
29
|
+
*/
|
|
30
|
+
import { MojoContainmentUnavailableError, containmentHandleKey, cgroupHandleLiveMembers, containmentHandles, containmentSessionIds, killPreparedBoundary, readBootId, revokeContainmentHandles, weakHandleRootStillOriginal, } from './mojo-containment.js';
|
|
31
|
+
const USAGE = `用法:
|
|
32
|
+
botmux mojo-containment list
|
|
33
|
+
列出 containment 账本中仍未证明静止的会话与 handle(弱 handle 会标注
|
|
34
|
+
记录的 root 进程当前是否仍存活)。
|
|
35
|
+
|
|
36
|
+
botmux mojo-containment revoke <sessionId> [--handle <key>] --yes [--force]
|
|
37
|
+
操作员显式撤销:不经静止证明直接丢弃该会话的 handle(默认全部,
|
|
38
|
+
--handle 只撤销指定 key)。撤销后对应的设备隔离 blocker 立即消失,
|
|
39
|
+
若该 turn 子树仍有存活进程,将不再被追踪。必须携带 --yes。
|
|
40
|
+
安全闸(默认拒绝,--force 可越过,越过会写入审计日志):
|
|
41
|
+
· 弱 handle 记录的 root 进程仍是原进程且存活;
|
|
42
|
+
· 会话行仍处于 active。`;
|
|
43
|
+
/**
|
|
44
|
+
* "Is this session row still active" — a STRICT cross-process read of every
|
|
45
|
+
* session file, from the CLI process.
|
|
46
|
+
*
|
|
47
|
+
* Tri-state on purpose (gate-5 review): the store's lenient readers swallow a
|
|
48
|
+
* parse failure into "no row", which this gate would read as proven-inactive —
|
|
49
|
+
* silently passing on exactly the corrupted-state day an operator reaches for
|
|
50
|
+
* this command. Here an unreadable file yields `undefined` ("evidence
|
|
51
|
+
* unavailable"), which does NOT block the revoke but IS surfaced to the
|
|
52
|
+
* operator; only a definite `status === 'active'` blocks.
|
|
53
|
+
*/
|
|
54
|
+
export async function defaultIsSessionActive(sessionId) {
|
|
55
|
+
try {
|
|
56
|
+
const [{ config }, { readdirSync, readFileSync }, { join }] = await Promise.all([
|
|
57
|
+
import('../config.js'),
|
|
58
|
+
import('node:fs'),
|
|
59
|
+
import('node:path'),
|
|
60
|
+
]);
|
|
61
|
+
const dir = config.session.dataDir;
|
|
62
|
+
let sawUnreadable = false;
|
|
63
|
+
for (const file of readdirSync(dir)) {
|
|
64
|
+
if (!/^sessions(-[^.]+)?\.json$/.test(file))
|
|
65
|
+
continue;
|
|
66
|
+
try {
|
|
67
|
+
const data = JSON.parse(readFileSync(join(dir, file), 'utf-8'));
|
|
68
|
+
const row = data[sessionId];
|
|
69
|
+
if (row)
|
|
70
|
+
return row.status === 'active';
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// A corrupt file may be the very one hiding this row: unknown, never
|
|
74
|
+
// "proven inactive".
|
|
75
|
+
sawUnreadable = true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return sawUnreadable ? undefined : false;
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function describeHandle(h, liveNote) {
|
|
85
|
+
const key = containmentHandleKey(h);
|
|
86
|
+
if (h.kind === 'cgroup')
|
|
87
|
+
return `${key} (强 handle:内核 cgroup)`;
|
|
88
|
+
if (h.kind === 'unprovable')
|
|
89
|
+
return `${key} (不可证明:该平台无法枚举子树)`;
|
|
90
|
+
return `${key} (弱 handle:root pid ${h.rootPid}, generation ${h.generation ?? '?'}`
|
|
91
|
+
+ `${liveNote ? `, ${liveNote}` : ''})`;
|
|
92
|
+
}
|
|
93
|
+
export async function runMojoContainmentCommand(argv, deps = {}) {
|
|
94
|
+
const out = deps.stdout ?? ((line) => { console.log(line); });
|
|
95
|
+
const err = deps.stderr ?? ((line) => { console.error(line); });
|
|
96
|
+
const [sub, ...rest] = argv;
|
|
97
|
+
const rootStillLive = (h) => h.kind === 'tree-identity'
|
|
98
|
+
&& weakHandleRootStillOriginal(h, deps.procRoot ? { procRoot: deps.procRoot } : {});
|
|
99
|
+
try {
|
|
100
|
+
if (sub === 'list') {
|
|
101
|
+
const ids = containmentSessionIds(deps.dataDir);
|
|
102
|
+
if (ids.length === 0) {
|
|
103
|
+
out('containment 账本为空:没有未证明静止的 mojo 子树。');
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
106
|
+
for (const id of ids) {
|
|
107
|
+
out(`session ${id}`);
|
|
108
|
+
for (const h of containmentHandles(id, deps.dataDir)) {
|
|
109
|
+
out(` ${describeHandle(h, h.kind === 'tree-identity'
|
|
110
|
+
? (rootStillLive(h) ? 'root 仍存活(原进程)' : 'root 已不在/已换代')
|
|
111
|
+
: undefined)}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
out('');
|
|
115
|
+
out('这些 handle 会保持设备隔离 blocker(activation_blocked)。确认对应子树');
|
|
116
|
+
out('确实已不存在后,可用 `botmux mojo-containment revoke <sessionId> --yes` 显式撤销。');
|
|
117
|
+
return 0;
|
|
118
|
+
}
|
|
119
|
+
if (sub === 'revoke') {
|
|
120
|
+
const sessionId = rest[0];
|
|
121
|
+
if (!sessionId || sessionId.startsWith('--')) {
|
|
122
|
+
err(USAGE);
|
|
123
|
+
return 1;
|
|
124
|
+
}
|
|
125
|
+
const handleFlag = rest.indexOf('--handle');
|
|
126
|
+
const handleKey = handleFlag >= 0 ? rest[handleFlag + 1] : undefined;
|
|
127
|
+
if (handleFlag >= 0 && (!handleKey || handleKey.startsWith('--'))) {
|
|
128
|
+
err('--handle 需要一个 handle key(见 `botmux mojo-containment list`),不能是另一个开关。');
|
|
129
|
+
return 1;
|
|
130
|
+
}
|
|
131
|
+
const known = new Set(['--handle', '--yes', '--force', handleKey].filter(Boolean));
|
|
132
|
+
const unknown = rest.slice(1).filter(a => a.startsWith('--') && !known.has(a));
|
|
133
|
+
if (unknown.length > 0) {
|
|
134
|
+
err(`未知参数: ${unknown.join(' ')}`);
|
|
135
|
+
err(USAGE);
|
|
136
|
+
return 1;
|
|
137
|
+
}
|
|
138
|
+
// Reject stray positionals instead of silently dropping them: a typo'd
|
|
139
|
+
// second sessionId must not quietly revoke only the first.
|
|
140
|
+
const strays = rest.filter((a, i) => i > 0
|
|
141
|
+
&& !a.startsWith('--')
|
|
142
|
+
&& !(handleFlag >= 0 && i === handleFlag + 1));
|
|
143
|
+
if (strays.length > 0) {
|
|
144
|
+
err(`多余的参数: ${strays.join(' ')}(revoke 一次只处理一个 sessionId)`);
|
|
145
|
+
err(USAGE);
|
|
146
|
+
return 1;
|
|
147
|
+
}
|
|
148
|
+
if (!rest.includes('--yes')) {
|
|
149
|
+
err('撤销会在没有静止证明的情况下丢弃 handle:若子树仍有进程存活,将不再被追踪。');
|
|
150
|
+
err('确认后请追加 --yes 重新执行。');
|
|
151
|
+
return 1;
|
|
152
|
+
}
|
|
153
|
+
const force = rest.includes('--force');
|
|
154
|
+
// Machine checks BEFORE mutating anything (P1-c). Only PROVEN liveness
|
|
155
|
+
// blocks; an unreadable probe stays non-blocking so a ledger-only host
|
|
156
|
+
// can still clean up.
|
|
157
|
+
const candidates = containmentHandles(sessionId, deps.dataDir)
|
|
158
|
+
.filter(h => handleKey === undefined || containmentHandleKey(h) === handleKey);
|
|
159
|
+
if (candidates.length === 0) {
|
|
160
|
+
err(`session ${sessionId} 没有匹配的 containment handle,未做任何修改。`);
|
|
161
|
+
return 1;
|
|
162
|
+
}
|
|
163
|
+
const liveBlockers = [];
|
|
164
|
+
// Evidence-availability surfacing (gate-5 review): "only PROVEN liveness
|
|
165
|
+
// blocks" must not silently degrade into "no check ran". When the probe
|
|
166
|
+
// substrate itself is unreadable, say so — the operator decides with
|
|
167
|
+
// open eyes instead of a gate that quietly became a no-op.
|
|
168
|
+
if (candidates.some(h => h.kind === 'tree-identity')
|
|
169
|
+
&& readBootId(deps.procRoot ? { procRoot: deps.procRoot } : {}) === null) {
|
|
170
|
+
err('⚠️ 无法读取 /proc 启动身份(hidepid / 非 Linux?):弱 handle 的存活检测'
|
|
171
|
+
+ '不可用,不作为拦截依据——撤销前请自行确认子树已消亡。');
|
|
172
|
+
}
|
|
173
|
+
for (const h of candidates) {
|
|
174
|
+
if (rootStillLive(h)) {
|
|
175
|
+
liveBlockers.push(`${containmentHandleKey(h)}:记录的 root pid `
|
|
176
|
+
+ `${h.rootPid} 仍是原进程且存活`);
|
|
177
|
+
}
|
|
178
|
+
// A cgroup handle has no rootPid, so the tree-identity check above skips
|
|
179
|
+
// it. Read its cgroup membership directly: revoking while a credentialed
|
|
180
|
+
// process still runs in the cgroup drops the blocker over a live tree.
|
|
181
|
+
if (h.kind === 'cgroup') {
|
|
182
|
+
const members = cgroupHandleLiveMembers(h, deps.procRoot ? { procRoot: deps.procRoot } : {});
|
|
183
|
+
if (members.unreadable) {
|
|
184
|
+
err(`⚠️ 无法读取 cgroup ${h.cgroupPath} 的成员:`
|
|
185
|
+
+ '强 handle 的存活检测不可用,不作为拦截依据——撤销前请自行确认子树已消亡。');
|
|
186
|
+
}
|
|
187
|
+
else if (members.live.length > 0) {
|
|
188
|
+
liveBlockers.push(`${containmentHandleKey(h)}:cgroup 内仍有执行中的成员 `
|
|
189
|
+
+ `(${members.live.join(',')})`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const active = await (deps.isSessionActive ?? defaultIsSessionActive)(sessionId);
|
|
194
|
+
if (active === true) {
|
|
195
|
+
liveBlockers.push(`session ${sessionId} 的会话行仍处于 active(先 /close 它)`);
|
|
196
|
+
}
|
|
197
|
+
else if (active === undefined) {
|
|
198
|
+
err('⚠️ 会话库不可读:无法判定会话行是否 active,不作为拦截依据——'
|
|
199
|
+
+ '撤销前请自行确认会话已关闭。');
|
|
200
|
+
}
|
|
201
|
+
if (liveBlockers.length > 0 && !force) {
|
|
202
|
+
err('拒绝撤销 —— 以下证据表明目标可能仍在运行(撤销即凭证泄漏面):');
|
|
203
|
+
for (const b of liveBlockers)
|
|
204
|
+
err(` · ${b}`);
|
|
205
|
+
err('确认要放弃追踪这些存活对象,请追加 --force(该越过会写入审计日志)。');
|
|
206
|
+
return 1;
|
|
207
|
+
}
|
|
208
|
+
const { removed, remaining } = revokeContainmentHandles(sessionId, {
|
|
209
|
+
...(handleKey ? { handleKey } : {}),
|
|
210
|
+
...(deps.dataDir ? { dataDir: deps.dataDir } : {}),
|
|
211
|
+
...(liveBlockers.length > 0
|
|
212
|
+
? { auditNote: `--force past LIVE evidence: ${liveBlockers.join('; ')}` }
|
|
213
|
+
: {}),
|
|
214
|
+
});
|
|
215
|
+
if (removed.length === 0) {
|
|
216
|
+
err(`session ${sessionId} 没有匹配的 containment handle,未做任何修改。`);
|
|
217
|
+
return 1;
|
|
218
|
+
}
|
|
219
|
+
// cgroup.kill + reclaim the directory of every revoked cgroup handle — the
|
|
220
|
+
// runtime never removes it now (a cgroup handle is never released by proof).
|
|
221
|
+
// AWAITED and its result LOGGED, not fire-and-forget: an operator forcing
|
|
222
|
+
// past live evidence must at least SIGKILL the tree, and a failure to prove
|
|
223
|
+
// it empty must be visible rather than leaving a live tree behind a cleared
|
|
224
|
+
// blocker.
|
|
225
|
+
for (const h of removed) {
|
|
226
|
+
if (h.kind !== 'cgroup')
|
|
227
|
+
continue;
|
|
228
|
+
const cg = h;
|
|
229
|
+
const emptied = await killPreparedBoundary({
|
|
230
|
+
sessionId: cg.sessionId, generation: cg.generation,
|
|
231
|
+
cgroupPath: cg.cgroupPath, nonce: cg.nonce,
|
|
232
|
+
});
|
|
233
|
+
if (emptied)
|
|
234
|
+
out(`已回收 cgroup ${cg.cgroupPath}(已 SIGKILL 并证实清空)`);
|
|
235
|
+
else
|
|
236
|
+
err(`⚠️ cgroup ${cg.cgroupPath} 未能证实清空:可能仍有存活成员,blocker 已撤销,请人工核查该子树。`);
|
|
237
|
+
}
|
|
238
|
+
for (const h of removed)
|
|
239
|
+
out(`已撤销: ${describeHandle(h)}`);
|
|
240
|
+
if (liveBlockers.length > 0) {
|
|
241
|
+
out(`⚠️ 本次为 --force 越过存活证据的撤销,已写入审计日志。`);
|
|
242
|
+
}
|
|
243
|
+
if (remaining.length > 0) {
|
|
244
|
+
out(`session ${sessionId} 仍保留 ${remaining.length} 个 handle。`);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
out(`session ${sessionId} 的 containment blocker 已全部清除。`);
|
|
248
|
+
}
|
|
249
|
+
return 0;
|
|
250
|
+
}
|
|
251
|
+
err(USAGE);
|
|
252
|
+
return sub === undefined || sub === 'help' || sub === '--help' ? 0 : 1;
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
// A corrupt/locked ledger is exactly the state an operator reaches for this
|
|
256
|
+
// command in — surface it as a message, never a stack trace.
|
|
257
|
+
if (error instanceof MojoContainmentUnavailableError) {
|
|
258
|
+
err(`containment 账本不可用:${error.message}`);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
err(`mojo-containment 命令失败:${error instanceof Error ? error.message : String(error)}`);
|
|
262
|
+
}
|
|
263
|
+
return 1;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=mojo-containment-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mojo-containment-command.js","sourceRoot":"","sources":["../../src/core/mojo-containment-command.ts"],"names":[],"mappings":"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"}
|