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,577 @@
|
|
|
1
|
+
import type { TerminationOutcome, TurnQuiescence } from './mojo-process-tree.js';
|
|
2
|
+
import type { SessionBackend, SessionAbortDestroyResult, SessionDestroyResult, SessionShutdownDetachResult, SpawnOpts } from './types.js';
|
|
3
|
+
import type { MojoAuthStatus, MojoLivePatch, EffectiveMojoConfig, MojoCancelOutcome, MojoLocalCloseResidual } from './mojo-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Pre-exec cgroup enrolment shim (P0: the spawn→enrolment window).
|
|
6
|
+
*
|
|
7
|
+
* Post-spawn migration cannot capture descendants the child forked before the
|
|
8
|
+
* parent's `cgroup.procs` write landed — cgroup v2 does not retroactively move
|
|
9
|
+
* an existing process's descendants — so the enrolment has to happen INSIDE the
|
|
10
|
+
* child, before any target code runs. `/bin/sh` writes its own pid into the
|
|
11
|
+
* prepared boundary and only then `exec`s the real launch, keeping the same
|
|
12
|
+
* pid. Between fork and the write the process executes just this shim, which
|
|
13
|
+
* forks nothing, so every descendant of the target is born enrolled.
|
|
14
|
+
*
|
|
15
|
+
* The `|| exit 97` is the handshake: an enrolment failure must NOT fall through
|
|
16
|
+
* to running a credentialed binary outside the boundary. Exit 97 is reserved —
|
|
17
|
+
* the parent maps it to a refused turn (see MOJO_ENROLL_FAILED_EXIT).
|
|
18
|
+
*
|
|
19
|
+
* Invoked as: sh -c SHIM <name> <cgroup.procs path> <bin> <args...>
|
|
20
|
+
* ($0 = name, $1 = procs path; after `shift`, "$@" = bin + args.)
|
|
21
|
+
*/
|
|
22
|
+
export declare const MOJO_CGROUP_ENROLL_SHIM = "echo \"$$\" > \"$1\" || exit 97; shift; exec \"$@\"";
|
|
23
|
+
export declare const MOJO_ENROLL_FAILED_EXIT = 97;
|
|
24
|
+
export declare class MojoBackend implements SessionBackend {
|
|
25
|
+
/** Mutable: applyLivePatch rotates credentials without a refork. */
|
|
26
|
+
private config;
|
|
27
|
+
private readonly sessionId;
|
|
28
|
+
private dataCb;
|
|
29
|
+
private taskDoneCb;
|
|
30
|
+
private exitCb;
|
|
31
|
+
private taskIdCb;
|
|
32
|
+
private turnFinalCb;
|
|
33
|
+
private outputBuffer;
|
|
34
|
+
/**
|
|
35
|
+
* This turn's assistant answer, accumulated from the SAME text the user
|
|
36
|
+
* sees on the card (emitText is the single choke point for model prose —
|
|
37
|
+
* tool-call/warning chrome goes through emitLine and is deliberately left
|
|
38
|
+
* out). Reset per turn in runTurn(); handed to turnFinalCb at settleTurn().
|
|
39
|
+
*/
|
|
40
|
+
private turnFinalText;
|
|
41
|
+
/** mojo-side session id — the resume lineage. */
|
|
42
|
+
private cliSessionId;
|
|
43
|
+
private child;
|
|
44
|
+
private killed;
|
|
45
|
+
private closing;
|
|
46
|
+
/** A close attempt observed evidence that something credentialed may still be
|
|
47
|
+
* alive (an unproven local subtree, or a dispatched turn with no lineage).
|
|
48
|
+
*
|
|
49
|
+
* ONE-WAY for the lifetime of this backend: nothing clears it. The CLOSE stays
|
|
50
|
+
* retryable though — a later destroySession() whose terminateChildProven()
|
|
51
|
+
* succeeds proceeds to the remote cancel and returns ok:true — and that
|
|
52
|
+
* liveness property IS covered by a test, because a fence that also wedged the
|
|
53
|
+
* close would be worse than the bug it fixes.
|
|
54
|
+
*
|
|
55
|
+
* Honest scope note: the one-way lifetime itself is an implementation fact, not
|
|
56
|
+
* a tested guarantee. Once a close succeeds `killed` refuses writes anyway, so
|
|
57
|
+
* clearing this field at that point is an equivalent mutation (verified: it
|
|
58
|
+
* survives). Do not read it as a proven invariant. */
|
|
59
|
+
private admissionFenced;
|
|
60
|
+
/** Graceful daemon shutdown is a non-cancelling detach. Fence only writes
|
|
61
|
+
* arriving after prepare, then wait just long enough for an already accepted
|
|
62
|
+
* first turn to publish its `system/init` lineage. */
|
|
63
|
+
private shutdownDetaching;
|
|
64
|
+
private shutdownDetachPrepared;
|
|
65
|
+
private shutdownDetachAttempt;
|
|
66
|
+
private shutdownDetachInFlight;
|
|
67
|
+
private shutdownDetachAbortInFlight;
|
|
68
|
+
private shutdownDetachWake;
|
|
69
|
+
private lineageWaiters;
|
|
70
|
+
/** At least one turn crossed the adapter boundary while no lineage was
|
|
71
|
+
* known. A later process exit without `system/init` cannot prove that no
|
|
72
|
+
* remote session was created, so shutdown must not persist authoritative
|
|
73
|
+
* null merely because the local write promise settled. */
|
|
74
|
+
private acceptedWriteWithoutLineage;
|
|
75
|
+
/** Inherited by every descendant of every turn, so the subtree stays
|
|
76
|
+
* enumerable after setsid/reparenting. Per BACKEND, not per turn: a tool left
|
|
77
|
+
* behind by an earlier turn must still be found. */
|
|
78
|
+
/**
|
|
79
|
+
* Env nonce injected into the turn subtree, inherited by every descendant.
|
|
80
|
+
*
|
|
81
|
+
* NOT `readonly`, and NOT freshly random per instance: a replacement worker
|
|
82
|
+
* generation builds a NEW backend for the SAME session, and a new nonce would
|
|
83
|
+
* make the previous generation's tree unenumerable forever (the env signal is
|
|
84
|
+
* the only one that survives setsid + reparenting). So it is adopted from an
|
|
85
|
+
* inherited containment handle whenever one is outstanding.
|
|
86
|
+
*/
|
|
87
|
+
private treeNonce;
|
|
88
|
+
/**
|
|
89
|
+
* Worker generation, used only for operator-facing logs on the handle. Derived
|
|
90
|
+
* from how many handles this session already has outstanding, so a replacement
|
|
91
|
+
* generation is distinguishable from the first one.
|
|
92
|
+
*/
|
|
93
|
+
private readonly containmentGeneration;
|
|
94
|
+
/**
|
|
95
|
+
* The cgroup boundary prepared for the CURRENT turn, created before spawn so
|
|
96
|
+
* the child can enrol itself pre-exec (see MOJO_CGROUP_ENROLL_SHIM). Null on
|
|
97
|
+
* hosts without cgroup v2 delegation — those turns get a weak handle instead.
|
|
98
|
+
*/
|
|
99
|
+
private preparedBoundary;
|
|
100
|
+
/** Realpath of this session's isolated workspace (host execution only).
|
|
101
|
+
* Populated lazily by resolveCwd(); spawn and close share this exact
|
|
102
|
+
* string so the close-side daemon-registry match cannot drift. */
|
|
103
|
+
private isolatedWorkspace?;
|
|
104
|
+
/** True for control-plane-only instances (the workerless orphan-cancel
|
|
105
|
+
* helper): they never run an agent turn, so isolating their cwd would
|
|
106
|
+
* only mint a junk workspace dir (and potentially a junk daemon) for a
|
|
107
|
+
* sentinel session id. */
|
|
108
|
+
private readonly controlPlaneOnly;
|
|
109
|
+
/** One-shot resolver for the CURRENT runTurn promise, fired by settleTurn.
|
|
110
|
+
* The turn is accounted for by its result event, never by the client
|
|
111
|
+
* process ending — see runTurn for why the process may outlive the turn. */
|
|
112
|
+
private turnResolve;
|
|
113
|
+
/**
|
|
114
|
+
* Latched once a strong boundary proved unusable at runtime — the shim's
|
|
115
|
+
* enrolment write was rejected (exit 97). The prepare-time probe only opens
|
|
116
|
+
* cgroup.procs; a host that rejects the pid WRITE (delegation containment)
|
|
117
|
+
* would otherwise fail EVERY turn with exit 97 forever. After the first such
|
|
118
|
+
* failure this backend degrades to the weak post-spawn handle instead.
|
|
119
|
+
*/
|
|
120
|
+
private strongBoundaryUnusable;
|
|
121
|
+
/** True for the turn currently in flight iff it launched through the cgroup
|
|
122
|
+
* enrolment shim, so a genuine mojo `exit 97` is not misread as an enrolment
|
|
123
|
+
* failure (and vice versa) on weak-handle hosts where no shim runs. */
|
|
124
|
+
private usedEnrolShim;
|
|
125
|
+
/**
|
|
126
|
+
* Latched when a spawned turn's containment handle could NOT be persisted
|
|
127
|
+
* AND the started subtree could not be proven terminated afterwards. While
|
|
128
|
+
* set, every close/destroy proof is refused: there is a tree nothing durable
|
|
129
|
+
* describes, so publishing a closed row would drop the device-isolation
|
|
130
|
+
* blocker over a subtree we cannot enumerate.
|
|
131
|
+
*/
|
|
132
|
+
private containmentUnrecorded;
|
|
133
|
+
/**
|
|
134
|
+
* Root pid of the most recent turn, kept AFTER `this.child` is cleared.
|
|
135
|
+
*
|
|
136
|
+
* The child's own `close` handler nulls `this.child`, so a later `/close` had
|
|
137
|
+
* nothing left to check and skipped the subtree scan entirely — the exact hole
|
|
138
|
+
* that let a survivor go unnoticed once its parent had exited.
|
|
139
|
+
*/
|
|
140
|
+
private lastTurnPid;
|
|
141
|
+
/**
|
|
142
|
+
* Recycle-proof identity of `lastTurnPid`, captured AT SPAWN.
|
|
143
|
+
*
|
|
144
|
+
* The pid number alone is not a handle: by the time teardown runs, the kernel
|
|
145
|
+
* may have recycled it onto an unrelated process, and `kill(-pid)` would then
|
|
146
|
+
* signal a stranger's whole process group. Binding boot id + starttime at
|
|
147
|
+
* spawn is what lets the signal path prove it is still aiming at OUR child.
|
|
148
|
+
*/
|
|
149
|
+
private turnIdentity;
|
|
150
|
+
/**
|
|
151
|
+
* Evidence class of the last quiescence attempt. DIAGNOSTIC ONLY.
|
|
152
|
+
*
|
|
153
|
+
* The previous wording claimed the blocker decision requires
|
|
154
|
+
* `boundaryProof === true` on this value. It did not, and still does not:
|
|
155
|
+
* nothing in production reads `TurnQuiescence.boundaryProof`, so that was a
|
|
156
|
+
* claim about code that was never written. The real gate is
|
|
157
|
+
* `TerminationOutcome.boundaryProven` (see the close path below), which is
|
|
158
|
+
* derived from `containmentReleaseDecision` in mojo-containment.ts. This field
|
|
159
|
+
* is kept for logs and for tests that assert the grading, and it is read
|
|
160
|
+
* through the `lastTurnQuiescence` getter only.
|
|
161
|
+
*/
|
|
162
|
+
private lastQuiescence;
|
|
163
|
+
private lastTermination;
|
|
164
|
+
/** True once the current turn has emitted its `result` event, so a late
|
|
165
|
+
* process exit cannot fire a second turn boundary. */
|
|
166
|
+
private turnSettled;
|
|
167
|
+
/** Buffer for partial NDJSON lines across stdout chunks. */
|
|
168
|
+
private stdoutTail;
|
|
169
|
+
/** Set when --include-partial deltas have already rendered this turn's text,
|
|
170
|
+
* so the trailing whole-segment `text` event isn't printed twice. */
|
|
171
|
+
private streamedThisTurn;
|
|
172
|
+
private readonly cliTimeoutMs;
|
|
173
|
+
/** How long /close waits for an in-flight turn to publish its session id
|
|
174
|
+
* before tearing down. Must stay well under the worker's close/restart
|
|
175
|
+
* race so teardown never becomes the thing that times out. */
|
|
176
|
+
private readonly destroySettleMs;
|
|
177
|
+
/**
|
|
178
|
+
* Captured from spawn(). The worker owns the authoritative cwd + env (the
|
|
179
|
+
* BOTMUX_* session context, per-bot `env`, credential paths, proxies) and
|
|
180
|
+
* hands them over exactly once; ignoring them silently drops repo selection,
|
|
181
|
+
* per-bot tokens and proxy settings. `config` values still win where set, so
|
|
182
|
+
* an explicit bots.json override remains authoritative.
|
|
183
|
+
*/
|
|
184
|
+
private spawnOpts;
|
|
185
|
+
/**
|
|
186
|
+
* Resolved launch PREFIX from BotConfig.wrapperCli (e.g. `env VAR=x mojo`,
|
|
187
|
+
* a ttadk gateway). The worker resolves the prefix into a real bin + args and
|
|
188
|
+
* passes them to spawn(); a PTY CLI is wrapped once for the life of its
|
|
189
|
+
* process, but mojo is invoked per turn, so the prefix must be re-applied to
|
|
190
|
+
* EVERY invocation. Null when no wrapper is configured, in which case the
|
|
191
|
+
* plain binary is used.
|
|
192
|
+
*/
|
|
193
|
+
private launchPrefix;
|
|
194
|
+
/** Guard so the config-side wrapper resolution is attempted at most once. */
|
|
195
|
+
private wrapperResolved;
|
|
196
|
+
/** Resolved once per session — see resolveBin. */
|
|
197
|
+
private pinnedBin;
|
|
198
|
+
/**
|
|
199
|
+
* Live JWT, THREE states — the distinction is why a clear used to fail:
|
|
200
|
+
* undefined → no live snapshot received; resolve from config/env as before
|
|
201
|
+
* string → use exactly this
|
|
202
|
+
* null → explicitly cleared; do NOT fall back to any config-layer env
|
|
203
|
+
*
|
|
204
|
+
* The daemon already folds the ambient fallback into the snapshot it sends, so
|
|
205
|
+
* `null` genuinely means "no credential from any config layer". Previously a
|
|
206
|
+
* clear only set `config.jwt = undefined`, and buildEnv then re-read `jwtEnv`
|
|
207
|
+
* out of the init-time `config.env` / `injectEnv`, reviving a stale token.
|
|
208
|
+
*/
|
|
209
|
+
private liveJwt;
|
|
210
|
+
/**
|
|
211
|
+
* Generic CLI args the worker composed for this session (today: CLI_EXTRA_ARGS,
|
|
212
|
+
* e.g. `--timeout 77`). The mojo adapter's buildArgs() returns [], so anything
|
|
213
|
+
* arriving here came from the worker's shared arg pipeline and must be applied
|
|
214
|
+
* to every turn — dropping it made the flag work with a wrapper configured
|
|
215
|
+
* (buildWrappedLaunch folds spawnArgs into the prefix) but silently vanish
|
|
216
|
+
* without one.
|
|
217
|
+
*/
|
|
218
|
+
private extraCliArgs;
|
|
219
|
+
private writeChain;
|
|
220
|
+
constructor(config: EffectiveMojoConfig, sessionId: string, opts?: {
|
|
221
|
+
controlPlaneOnly?: boolean;
|
|
222
|
+
});
|
|
223
|
+
spawn(bin: string, args: string[], opts: SpawnOpts): void;
|
|
224
|
+
/**
|
|
225
|
+
* Resolve the executable + leading args for one invocation, re-applying the
|
|
226
|
+
* wrapperCli prefix when present.
|
|
227
|
+
*
|
|
228
|
+
* The prefix normally arrives pre-resolved from the worker via spawn(). The
|
|
229
|
+
* daemon's workerless cancel path never calls spawn(), so when a wrapper is
|
|
230
|
+
* configured but unresolved we resolve it here from the config — otherwise
|
|
231
|
+
* `/close` would run an unwrapped binary that a wrapper-dependent setup
|
|
232
|
+
* (e.g. a gateway that injects auth) cannot reach.
|
|
233
|
+
*/
|
|
234
|
+
private resolveLaunch;
|
|
235
|
+
/**
|
|
236
|
+
* Resolve the binary ONCE and reuse it for every turn of this session.
|
|
237
|
+
*
|
|
238
|
+
* Without pinning, a bare `mojo` was re-resolved on each turn against the
|
|
239
|
+
* then-current PATH, so anything able to influence the environment between
|
|
240
|
+
* turns could substitute the executable. The live patch no longer carries
|
|
241
|
+
* `env` at all, but pinning removes the class of problem rather than one
|
|
242
|
+
* instance of it — and it also keeps a session on one binary if PATH shifts
|
|
243
|
+
* underneath a long-running worker.
|
|
244
|
+
*/
|
|
245
|
+
private resolveBin;
|
|
246
|
+
/**
|
|
247
|
+
* Find an executable using the PATH the CHILD will actually see.
|
|
248
|
+
*
|
|
249
|
+
* Layered exactly like buildEnv (worker env → per-bot injectEnv → mojo.env),
|
|
250
|
+
* so a per-bot PATH override takes effect. Falls back to the caller's own PATH
|
|
251
|
+
* when spawn() has not run (direct/unit use).
|
|
252
|
+
*/
|
|
253
|
+
private locateOnEffectivePath;
|
|
254
|
+
/** Lazily resolve (and memoize) `config.wrapperCli` when spawn() never ran. */
|
|
255
|
+
private resolveConfiguredWrapper;
|
|
256
|
+
/** bots.json `mojo.cwd` wins; otherwise the worker's session working dir. */
|
|
257
|
+
/** The operator-facing working directory (the repo). Kept separate from
|
|
258
|
+
* resolveCwd(): host execution runs the CLI in an isolated per-session
|
|
259
|
+
* directory instead, and the decorate() preamble points the agent back
|
|
260
|
+
* here for repo work. */
|
|
261
|
+
private realWorkingDir;
|
|
262
|
+
/** True when this config executes tools on the bot host (shared derivation
|
|
263
|
+
* with buildEnv/buildArgs — see deriveMojoExecutionMode). */
|
|
264
|
+
private hostExecution;
|
|
265
|
+
/** HOME for the isolated workspace root. Prefer the CHILD env the worker
|
|
266
|
+
* hands over — in production it equals the daemon's own HOME (so the
|
|
267
|
+
* workerless close path, which uses os.homedir(), matches), while in
|
|
268
|
+
* tests it keeps backend instances from minting directories under the
|
|
269
|
+
* developer's real ~/.botmux (the full suite did exactly that once). */
|
|
270
|
+
private isolationHome;
|
|
271
|
+
private resolveCwd;
|
|
272
|
+
write(data: string): boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Rotate the JWT on a LIVE session, without a refork.
|
|
275
|
+
*
|
|
276
|
+
* Needed because the config is otherwise read once at worker init, so every
|
|
277
|
+
* subsequent per-turn CLI invocation kept using the ORIGINAL token — a rotated
|
|
278
|
+
* credential never took effect.
|
|
279
|
+
*
|
|
280
|
+
* Takes a COMPLETE snapshot rather than a sparse diff, so the two states that
|
|
281
|
+
* a sparse patch could not express both work:
|
|
282
|
+
* - `jwt: null` → cleared (a deleted `mojo.jwt` must not linger)
|
|
283
|
+
* - `jwt: <original>` → rolled back (A → B → A must return to A)
|
|
284
|
+
*
|
|
285
|
+
* Only the JWT is patchable. An `env` patch would be equivalent to replacing
|
|
286
|
+
* the launcher — see MOJO_LIVE_PATCH_KEYS.
|
|
287
|
+
*/
|
|
288
|
+
applyLivePatch(patch: MojoLivePatch): void;
|
|
289
|
+
resize(_cols: number, _rows: number): void;
|
|
290
|
+
onData(cb: (data: string) => void): void;
|
|
291
|
+
/**
|
|
292
|
+
* NOT fired on per-turn CLI exit — the binary is spawned and exits every
|
|
293
|
+
* turn, so forwarding that would tear the session down after the first
|
|
294
|
+
* reply. It IS fired from kill(), mirroring RiffBackend: the worker needs to
|
|
295
|
+
* learn the backend is gone on teardown / daemon restart, and nothing else
|
|
296
|
+
* tells it.
|
|
297
|
+
*/
|
|
298
|
+
onExit(cb: (code: number | null, signal: string | null) => void): void;
|
|
299
|
+
/** Turn boundary — required: an API-backed backend produces no PTY output, so
|
|
300
|
+
* botmux's idle detector never fires and nothing else re-arms prompt-ready. */
|
|
301
|
+
onTaskDone(cb: () => void): void;
|
|
302
|
+
/** This turn's assistant answer, for the worker's final_output bridge. A
|
|
303
|
+
* headless mojo session has no terminal the user could read instead, so an
|
|
304
|
+
* answer the agent never `botmux send`s would otherwise reach nobody. */
|
|
305
|
+
onTurnFinal(cb: (text: string) => void): void;
|
|
306
|
+
/** Lineage id updates — forwarded to the daemon so multi-turn context
|
|
307
|
+
* survives a daemon restart. */
|
|
308
|
+
onTaskId(cb: (taskId: string | null) => void): void;
|
|
309
|
+
captureCurrentScreen(): string;
|
|
310
|
+
captureViewport(): string;
|
|
311
|
+
getPaneSize(): {
|
|
312
|
+
cols: number;
|
|
313
|
+
rows: number;
|
|
314
|
+
} | null;
|
|
315
|
+
getChildPid(): number | null;
|
|
316
|
+
/**
|
|
317
|
+
* SIGTERM, then PROVE the child is gone (escalating to SIGKILL).
|
|
318
|
+
*
|
|
319
|
+
* `child.kill('SIGTERM')` returning true only means the signal was delivered.
|
|
320
|
+
* A child that ignores it keeps executing with the injected credential while
|
|
321
|
+
* the explicit close publishes the row as `closed` — and a closed row is
|
|
322
|
+
* filtered out of the device-isolation inventory
|
|
323
|
+
* (mergePersistedDeviceIsolationSessions), so the blocker vanishes with the
|
|
324
|
+
* process still alive. That is exactly the state this backend must never
|
|
325
|
+
* report as a successful teardown.
|
|
326
|
+
*
|
|
327
|
+
* Returns false when termination could not be proven; the caller must then
|
|
328
|
+
* refuse the close rather than let the row be published as closed.
|
|
329
|
+
*/
|
|
330
|
+
/** Overridable so a behaviour test can exercise the escalation ladder without
|
|
331
|
+
* burning the production budget in wall-clock. Production never changes it. */
|
|
332
|
+
protected get terminationProofBudgetMs(): number;
|
|
333
|
+
/** Overridable so a test can point the scan at a synthetic /proc. */
|
|
334
|
+
protected get procRoot(): string;
|
|
335
|
+
/** Overridable so a test can point boundary preparation at a synthetic
|
|
336
|
+
* cgroup root. `undefined` = the real /sys/fs/cgroup. */
|
|
337
|
+
protected get cgroupRoot(): string | undefined;
|
|
338
|
+
/** Overridable so a test can point the delegated-parent lookup
|
|
339
|
+
* (/proc/self/cgroup) at a synthetic /proc. `undefined` = the real /proc. */
|
|
340
|
+
protected get cgroupProcRoot(): string | undefined;
|
|
341
|
+
/**
|
|
342
|
+
* SIGTERM the whole turn SUBTREE, then gather the best evidence this host can
|
|
343
|
+
* give that nothing in it survives (escalating to SIGKILL).
|
|
344
|
+
*
|
|
345
|
+
* Read the result precisely. `ok: true` means "no executing member was
|
|
346
|
+
* found", NOT "the credential is now unreachable". Enumeration cannot see a
|
|
347
|
+
* descendant that both setsid'd and scrubbed its own environ, so a clean scan
|
|
348
|
+
* is a DIAGNOSTIC signal only — `boundaryProven` is the field that says
|
|
349
|
+
* whether a real boundary was established, and only kernel-level containment
|
|
350
|
+
* (a per-session cgroup) can set it true. `ok: true` with
|
|
351
|
+
* `boundaryProven: false` is therefore legal and, for Linux weak handles, the
|
|
352
|
+
* common case; destroySession() below consumes the two fields separately and
|
|
353
|
+
* downgrades the second case to a residual close.
|
|
354
|
+
*
|
|
355
|
+
* Three fail-open paths are closed here.
|
|
356
|
+
*
|
|
357
|
+
* 1. `child.kill()` returning true only means the signal was DELIVERED. A
|
|
358
|
+
* child that ignores SIGTERM keeps executing with the injected credential
|
|
359
|
+
* while the close publishes the row as `closed` — and a closed row is
|
|
360
|
+
* filtered out of the device-isolation inventory, so the blocker vanishes
|
|
361
|
+
* with the process still alive.
|
|
362
|
+
* 2. Signalling the direct pid leaves DESCENDANTS alive.
|
|
363
|
+
* 3. Signalling the process GROUP still leaves descendants that escaped it via
|
|
364
|
+
* setsid/detached. Enumeration therefore unions PGID, the inherited env
|
|
365
|
+
* nonce and the PPID chain — see mojo-process-tree.
|
|
366
|
+
*
|
|
367
|
+
* Reports `ok: false` whenever no such evidence could be obtained, INCLUDING when
|
|
368
|
+
* the scan itself fails: "cannot enumerate" must never read as "nothing is
|
|
369
|
+
* running". The caller then refuses the close, which keeps the row active and
|
|
370
|
+
* so keeps the device-isolation blocker in place. (destroySession makes ONE
|
|
371
|
+
* exception, for a platform that can never enumerate at all — see the
|
|
372
|
+
* `unsupported-platform` branch there.)
|
|
373
|
+
*
|
|
374
|
+
* Zombie members are discounted, because a reaped process executes nothing and
|
|
375
|
+
* cannot use the credential; only a definite `Z` state qualifies.
|
|
376
|
+
*/
|
|
377
|
+
private terminateChildProven;
|
|
378
|
+
/** Structured evidence from the last termination attempt; see TerminationOutcome. */
|
|
379
|
+
get lastTerminationOutcome(): TerminationOutcome | null;
|
|
380
|
+
/** Evidence class of the last termination attempt; see TurnQuiescence. */
|
|
381
|
+
get lastTurnQuiescence(): TurnQuiescence | null;
|
|
382
|
+
/**
|
|
383
|
+
* SIGTERM the whole turn SUBTREE, then try to establish that nothing in it
|
|
384
|
+
* survives (escalating to SIGKILL), and report WHAT KIND of evidence we got.
|
|
385
|
+
*/
|
|
386
|
+
protected proveTurnQuiescence(): Promise<TurnQuiescence>;
|
|
387
|
+
/**
|
|
388
|
+
* Mint and PERSIST the containment handle for a freshly spawned turn root.
|
|
389
|
+
*
|
|
390
|
+
* Extracted so it can be exercised directly: doing this at close time would be
|
|
391
|
+
* too late, because a crash between spawn and record is exactly the window that
|
|
392
|
+
* loses the tree, and a lost tree can never be proven quiescent afterwards.
|
|
393
|
+
*/
|
|
394
|
+
private recordTurnContainment;
|
|
395
|
+
/**
|
|
396
|
+
* Terminate a subtree whose containment handle could not be persisted.
|
|
397
|
+
*
|
|
398
|
+
* `containmentUnrecorded` is already latched by the caller. It is cleared
|
|
399
|
+
* only when the boundary is PROVEN empty (rmdir accepted by the kernel) —
|
|
400
|
+
* anything less keeps every close proof refused, because a tree nothing
|
|
401
|
+
* durable describes must not be closable.
|
|
402
|
+
*/
|
|
403
|
+
private containUnrecordedSpawn;
|
|
404
|
+
/**
|
|
405
|
+
* Discharge every DURABLE handle this session owns, after the in-memory ladder
|
|
406
|
+
* believes its own root is gone.
|
|
407
|
+
*
|
|
408
|
+
* The in-memory verdict only ever speaks for the pid THIS backend spawned. A
|
|
409
|
+
* replacement generation inherits handles describing trees it never spawned, and
|
|
410
|
+
* those must be proven independently or the close stays refused. A handle leaves
|
|
411
|
+
* the store only against a `proven: true` verdict — `releaseContainmentHandle`
|
|
412
|
+
* takes the verdict itself and throws on anything else, so "clear the blocker
|
|
413
|
+
* without proof" is not representable here.
|
|
414
|
+
*/
|
|
415
|
+
private dischargeContainment;
|
|
416
|
+
/** Pids that must never be signalled, whatever a scan says. */
|
|
417
|
+
private selfPids;
|
|
418
|
+
/**
|
|
419
|
+
* SIGKILL an inherited tree whose recorded root identity has already been
|
|
420
|
+
* re-verified by the caller.
|
|
421
|
+
*
|
|
422
|
+
* SIGTERM is skipped deliberately: this tree belongs to a previous worker
|
|
423
|
+
* generation that is already gone, so nobody is waiting to shut it down
|
|
424
|
+
* gracefully, and the graceful attempt was made when that generation closed.
|
|
425
|
+
* Every enumerated member is signalled individually as well, because a
|
|
426
|
+
* descendant may have left the group via setsid and would survive the group
|
|
427
|
+
* signal alone.
|
|
428
|
+
*
|
|
429
|
+
* Best effort by design: this only creates the CHANCE for the proof below to
|
|
430
|
+
* succeed. If anything survives, the proof still refuses the close.
|
|
431
|
+
*/
|
|
432
|
+
private signalInheritedTree;
|
|
433
|
+
kill(): void;
|
|
434
|
+
/** Test-only view of the adopted lineage, so a teardown test can assert it is
|
|
435
|
+
* still unset inside the pre-init window it is exercising. */
|
|
436
|
+
get cliSessionIdForTest(): string | undefined;
|
|
437
|
+
/** /close teardown — cancel the server-side session so it stops consuming
|
|
438
|
+
* cloud sandbox time after the IM session is gone. */
|
|
439
|
+
destroySession(): Promise<SessionDestroyResult>;
|
|
440
|
+
/**
|
|
441
|
+
* Roll back a FAILED prepare (restore write admission).
|
|
442
|
+
*
|
|
443
|
+
* Only valid when the cancel did not succeed. A proven cancel is irreversible:
|
|
444
|
+
* the remote session is gone, so restoring admission would produce a session
|
|
445
|
+
* that looks active but can never continue.
|
|
446
|
+
*/
|
|
447
|
+
abortDestroySession(): SessionAbortDestroyResult;
|
|
448
|
+
/**
|
|
449
|
+
* Prepare a daemon-restart detach without cancelling the remote Mojo
|
|
450
|
+
* session. Unlike Riff, a Mojo turn can legitimately run for 60 seconds;
|
|
451
|
+
* shutdown only needs the lineage from its first `system/init`, not the
|
|
452
|
+
* whole answer. Therefore a pre-init turn waits at most destroySettleMs,
|
|
453
|
+
* while a known lineage (or an idle backend with no accepted turn) prepares
|
|
454
|
+
* immediately.
|
|
455
|
+
*/
|
|
456
|
+
prepareShutdownDetach(): Promise<SessionShutdownDetachResult>;
|
|
457
|
+
abortShutdownDetach(): Promise<SessionShutdownDetachResult>;
|
|
458
|
+
commitShutdownDetach(): void;
|
|
459
|
+
private buildArgs;
|
|
460
|
+
/** Retry the "session still RUNNING" race with backoff (see SESSION_BUSY_RE). */
|
|
461
|
+
private runTurnWithBusyRetry;
|
|
462
|
+
/** Resolves `true` when the turn was rejected because the session is still
|
|
463
|
+
* RUNNING (caller should retry), `false` once the turn is accounted for. */
|
|
464
|
+
private runTurn;
|
|
465
|
+
/**
|
|
466
|
+
* Drop a dead resume lineage so the NEXT message starts a fresh session
|
|
467
|
+
* instead of re-sending the same doomed `-r <sid>` forever.
|
|
468
|
+
*
|
|
469
|
+
* Mirrors RiffBackend's broken-lineage path: the `null` broadcast is what
|
|
470
|
+
* clears the DAEMON-side persisted id — without it a daemon restart would
|
|
471
|
+
* resurrect the very session we just declared dead.
|
|
472
|
+
*
|
|
473
|
+
* Returns true when the lineage was dropped (caller must not treat the turn
|
|
474
|
+
* as a generic failure).
|
|
475
|
+
*/
|
|
476
|
+
private maybeDropLineage;
|
|
477
|
+
/** Parse NDJSON incrementally — a chunk may split a line in half. */
|
|
478
|
+
private consume;
|
|
479
|
+
private flushTail;
|
|
480
|
+
private handleLine;
|
|
481
|
+
private adoptSession;
|
|
482
|
+
private handleResult;
|
|
483
|
+
/**
|
|
484
|
+
* Fire the turn boundary exactly once.
|
|
485
|
+
*
|
|
486
|
+
* This is the ONLY authority on when a mojo turn ends, which is why the
|
|
487
|
+
* worker must not run its generic IdleDetector for this backend: that
|
|
488
|
+
* detector infers "done" from ~2s of output quiescence, and a mojo turn goes
|
|
489
|
+
* quiet for far longer while a tool runs. An early idle would re-arm
|
|
490
|
+
* prompt-ready mid-turn, flushing queued messages into a session that is
|
|
491
|
+
* still RUNNING (rejected — see SESSION_BUSY_RE) and attributing the reply
|
|
492
|
+
* to the wrong turn/card. See the `isRemoteBackendType` gate in worker.ts.
|
|
493
|
+
*/
|
|
494
|
+
private settleTurn;
|
|
495
|
+
/** `error` is an object ({code, message, retryable}) on both envelope shapes;
|
|
496
|
+
* naive interpolation yields "[object Object]". */
|
|
497
|
+
private fmtErr;
|
|
498
|
+
/** Condense a tool_result payload into one status line. The output is a JSON
|
|
499
|
+
* string for shell-like tools ({return_code, stdout, stderr, status}) but may
|
|
500
|
+
* be arbitrary text for others, so both shapes are handled. */
|
|
501
|
+
private summarizeToolResult;
|
|
502
|
+
private clip;
|
|
503
|
+
private summarizeInput;
|
|
504
|
+
/**
|
|
505
|
+
* Prepend the platform-owned skill block and the operator's systemPrompt.
|
|
506
|
+
*
|
|
507
|
+
* Order matters and is deliberate: the skill catalog is APPENDED after the
|
|
508
|
+
* operator prompt, never merged into it. Folding it into `systemPrompt` would
|
|
509
|
+
* mean a bot that sets its own prompt silently loses skill discovery — the
|
|
510
|
+
* same trap riff documented for its mandatory routing rules.
|
|
511
|
+
*
|
|
512
|
+
* `builtinSkillBlock` is only populated for `prompt` / `off`; in `global`
|
|
513
|
+
* mode the files are already on disk (~/.mojo/skills) so it stays empty.
|
|
514
|
+
*/
|
|
515
|
+
private decorate;
|
|
516
|
+
/**
|
|
517
|
+
* Host-execution guidance (undefined in cloud mode). Two compensations for
|
|
518
|
+
* the isolated per-session cwd:
|
|
519
|
+
* 1. the initial working directory is NOT the repo — point the agent at
|
|
520
|
+
* the real one so repo work still lands in the right place;
|
|
521
|
+
* 2. every botmux command carries an explicit `--session-id`: the
|
|
522
|
+
* execution daemon's env belongs to whichever session spawned it, so
|
|
523
|
+
* an inherited BOTMUX_SESSION_ID must never be what routes a reply
|
|
524
|
+
* (defence in depth — the isolated daemon already carries the right
|
|
525
|
+
* env, this survives even a regression back to a shared daemon).
|
|
526
|
+
*/
|
|
527
|
+
private hostGuidanceBlock;
|
|
528
|
+
private buildEnv;
|
|
529
|
+
/** Single-shot CLI call returning one JSON envelope (session.* subcommands). */
|
|
530
|
+
private runCliJson;
|
|
531
|
+
private runCli;
|
|
532
|
+
/** Probe the authoritative model list: an invalid --model exits 2 and prints
|
|
533
|
+
* "可用模型:a、b、c" to stderr. */
|
|
534
|
+
probeModels(): Promise<string[] | null>;
|
|
535
|
+
/** `mojo auth status --json` → {logged_in, identity, mode, source, expires_at}. */
|
|
536
|
+
authStatus(): Promise<MojoAuthStatus | null>;
|
|
537
|
+
private emitLine;
|
|
538
|
+
/** Normalize newlines for xterm rendering (bare \n → \r\n). */
|
|
539
|
+
private emitText;
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Cancel a mojo session by id WITHOUT a live backend instance.
|
|
543
|
+
*
|
|
544
|
+
* The daemon needs this on the workerless `/close` path: the worker is already
|
|
545
|
+
* gone, so `MojoBackend.destroySession()` is unreachable, yet the server-side
|
|
546
|
+
* session must stop consuming cloud sandbox time (and stop an agent that may
|
|
547
|
+
* still hold injected credentials). Mirrors `cancelRiffTaskById`.
|
|
548
|
+
*
|
|
549
|
+
* One retry, then a STRUCTURED outcome — see MojoCancelOutcome for why this is no
|
|
550
|
+
* longer a boolean.
|
|
551
|
+
*/
|
|
552
|
+
export declare function cancelMojoSessionById(config: EffectiveMojoConfig, sessionId: string): Promise<MojoCancelOutcome>;
|
|
553
|
+
/** The workerless local-subtree proof, split into its two independent answers. */
|
|
554
|
+
export interface WorkerlessLocalSubtreeProof {
|
|
555
|
+
/** Non-null → quiescence itself is unproven; the close must be REFUSED. */
|
|
556
|
+
unproven: MojoCancelOutcome | null;
|
|
557
|
+
/**
|
|
558
|
+
* Quiescence was proven, but at least one release decision kept its handle
|
|
559
|
+
* (weak evidence carries no boundary proof), so the close may proceed ONLY
|
|
560
|
+
* as `closed_with_residual`. Discarding this — the old contract returned
|
|
561
|
+
* bare null here — published a plain `closed` row while the handle and the
|
|
562
|
+
* device-isolation blocker silently stayed behind.
|
|
563
|
+
*/
|
|
564
|
+
residual: MojoLocalCloseResidual | null;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Prove (and discharge) the LOCAL subtree a dead worker may have left behind.
|
|
568
|
+
*
|
|
569
|
+
* `unproven: null` means every outstanding handle was proven quiescent (or none
|
|
570
|
+
* existed). `residual` then reports whether any of those proofs was weak-only,
|
|
571
|
+
* in which case the handle stays in the store and the caller must surface a
|
|
572
|
+
* residual close instead of a plain one.
|
|
573
|
+
*/
|
|
574
|
+
export declare function proveWorkerlessLocalSubtree(sessionId: string, opts?: {
|
|
575
|
+
procRoot?: string;
|
|
576
|
+
}): WorkerlessLocalSubtreeProof;
|
|
577
|
+
//# sourceMappingURL=mojo-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mojo-backend.d.ts","sourceRoot":"","sources":["../../../src/adapters/backend/mojo-backend.ts"],"names":[],"mappings":"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"}
|