botmux 3.14.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/tmux-pipe-backend.d.ts +30 -0
- package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.js +60 -0
- package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
- package/dist/adapters/backend/types.d.ts +108 -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 +26 -4
- package/dist/adapters/cli/cursor.js.map +1 -1
- package/dist/adapters/cli/dsh.d.ts.map +1 -1
- package/dist/adapters/cli/dsh.js +5 -1
- package/dist/adapters/cli/dsh.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 +20 -5
- package/dist/adapters/cli/pi.d.ts.map +1 -1
- package/dist/adapters/cli/pi.js +27 -5
- 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 +51 -30
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +33 -4
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +42 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +54 -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 +941 -118
- 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-discovery.d.ts.map +1 -1
- package/dist/core/command-discovery.js +4 -1
- package/dist/core/command-discovery.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 +415 -42
- 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/skills/frontmatter.d.ts.map +1 -1
- package/dist/core/skills/frontmatter.js +6 -1
- package/dist/core/skills/frontmatter.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 +2515 -217
- 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 +447 -116
- 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 +5 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +4 -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 +18 -0
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +362 -36
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +8 -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 +140 -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/skills-page.d.ts.map +1 -1
- package/dist/dashboard/web/skills-page.js +4 -2
- package/dist/dashboard/web/skills-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-6O7KXFD2.js → chunk-2W6SCN3M.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-Q2MT4VWH.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-U3ZFSO7E.js → chunk-NACP7BMR.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-2KZO5KSJ.js → connectors-page-VOISXXII.js} +1 -1
- package/dist/dashboard-web/chunks/{feedback-page-CLVTOLLO.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-4RPU2CRU.js → insights-page-HJFDYR5N.js} +3 -3
- package/dist/dashboard-web/chunks/{monitor-room-OTKQ2CXK.js → monitor-room-V7PCP47V.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-IJPUB6JT.js → monitoring-page-NKEKVQAP.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-QSR3J44Y.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-6NWJMOB5.js → roles-page-WQIRSOLZ.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-6I3LNXD4.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-M2Q6L5CB.js → skills-page-HGIFR3IU.js} +2 -2
- package/dist/dashboard-web/chunks/{team-federation-page-7I7FDE3B.js → team-federation-page-MR5ZPL4B.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-HQXRL65L.js → v3-page-GBR5JWPE.js} +2 -2
- package/dist/dashboard-web/chunks/{whiteboards-page-LQKC4TAZ.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 +1017 -264
- package/dist/dashboard.js.map +1 -1
- package/dist/dsh-runner.js +8 -1
- package/dist/dsh-runner.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 +46 -27
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +43 -27
- 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 +138 -41
- 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-fallback-gate.d.ts +15 -7
- package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
- package/dist/services/bridge-fallback-gate.js +43 -16
- package/dist/services/bridge-fallback-gate.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/peer-cross-ref-store.d.ts +8 -0
- package/dist/services/peer-cross-ref-store.d.ts.map +1 -0
- package/dist/services/peer-cross-ref-store.js +95 -0
- package/dist/services/peer-cross-ref-store.js.map +1 -0
- package/dist/services/pi-transcript.d.ts.map +1 -1
- package/dist/services/pi-transcript.js +10 -6
- package/dist/services/pi-transcript.js.map +1 -1
- 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 +15 -2
- package/dist/services/structured-bridge-clis.d.ts.map +1 -1
- package/dist/services/structured-bridge-clis.js +16 -1
- 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 +222 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/bot-routing.d.ts +1 -1
- package/dist/utils/bot-routing.d.ts.map +1 -1
- package/dist/utils/bot-routing.js.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 +1517 -236
- 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 +7 -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-4RENHE7J.js +0 -10
- package/dist/dashboard-web/chunks/chunk-2WQDS65D.js +0 -1
- package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +0 -1
- package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +0 -1
- package/dist/dashboard-web/chunks/groups-page-HLASRTSY.js +0 -8
- package/dist/dashboard-web/chunks/overview-page-6OK63V4V.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-B2TXGJDO.js +0 -8
- package/dist/dashboard-web/chunks/settings-page-6KJADSC6.js +0 -2
|
@@ -43,11 +43,74 @@ export declare function scrubWorkflowWorkerEnv(env: NodeJS.ProcessEnv): void;
|
|
|
43
43
|
* session's identity into anything it forks (workers, the shared tmux
|
|
44
44
|
* server). */
|
|
45
45
|
export declare function scrubClaudeSessionMarkerEnv(env: NodeJS.ProcessEnv): void;
|
|
46
|
+
/**
|
|
47
|
+
* Dashboard-only Feishu/Lark H5 passwordless-login configuration. Every key in
|
|
48
|
+
* this family is read by ONE consumer — resolveDashboardH5AuthConfig() in
|
|
49
|
+
* src/dashboard/h5-auth.ts, inside the dashboard process — and by nothing else
|
|
50
|
+
* in the fleet. A session's CLI child has no reason to see any of it, and
|
|
51
|
+
* `..._APP_SECRET` is a full Feishu app credential: whoever holds it can mint
|
|
52
|
+
* app_access_token for the H5 login app, i.e. forge the identity the Dashboard
|
|
53
|
+
* authenticates on. The daemon loads ~/.botmux/.env wholesale (index-daemon.ts
|
|
54
|
+
* dotenv), so without this scrub the secret rode into every PTY/direct CLI
|
|
55
|
+
* child and every one-shot the daemon forks (session group-title).
|
|
56
|
+
*
|
|
57
|
+
* Redaction is BOTH belt and braces:
|
|
58
|
+
* - these exact names sit in REDACTED_CHILD_ENV_KEYS, which also drives the
|
|
59
|
+
* tmux pane wrapper's `unset` clause and the tmux client-env strip;
|
|
60
|
+
* - redactChildEnv() additionally sweeps the whole
|
|
61
|
+
* {@link DASHBOARD_H5_ENV_PREFIX}, so a future H5 knob is redacted the day
|
|
62
|
+
* it is added rather than the day someone remembers this list.
|
|
63
|
+
*/
|
|
64
|
+
export declare const DASHBOARD_H5_ENV_PREFIX = "BOTMUX_DASHBOARD_FEISHU_H5_";
|
|
65
|
+
export declare const DASHBOARD_H5_ENV_KEYS: readonly ["BOTMUX_DASHBOARD_FEISHU_H5_ENABLED", "BOTMUX_DASHBOARD_FEISHU_H5_BRAND", "BOTMUX_DASHBOARD_FEISHU_H5_APP_ID", "BOTMUX_DASHBOARD_FEISHU_H5_APP_SECRET", "BOTMUX_DASHBOARD_FEISHU_H5_ALLOWED_OPEN_IDS", "BOTMUX_DASHBOARD_FEISHU_H5_ENTRY_PATH", "BOTMUX_DASHBOARD_FEISHU_H5_SESSION_TTL_MS", "BOTMUX_DASHBOARD_FEISHU_H5_SECURE_COOKIE", "BOTMUX_DASHBOARD_FEISHU_H5_TRUSTED_PROXY_HOPS"];
|
|
66
|
+
/**
|
|
67
|
+
* Delete the entire Dashboard-only Feishu H5 login family from `env` IN PLACE:
|
|
68
|
+
* every named key in {@link DASHBOARD_H5_ENV_KEYS} plus a
|
|
69
|
+
* {@link DASHBOARD_H5_ENV_PREFIX} sweep, so a knob added tomorrow is stripped
|
|
70
|
+
* the day it ships rather than the day someone extends the list.
|
|
71
|
+
*
|
|
72
|
+
* The Dashboard is the family's ONLY consumer, and it receives the values by
|
|
73
|
+
* dotenv-loading ~/.botmux/.env itself (index-dashboard.ts) — NOT through the
|
|
74
|
+
* shared PM2 env block (the H5 keys are deliberately absent from
|
|
75
|
+
* DAEMON_ENV_KEYS). Every other botmux-owned process must therefore hold none
|
|
76
|
+
* of it. Call sites:
|
|
77
|
+
* - index-daemon.ts boot: the daemon dotenv-loads the same .env wholesale, so
|
|
78
|
+
* it must drop the family right after dotenv — a daemon holding the H5
|
|
79
|
+
* APP_SECRET can mint app_access_token for the Dashboard's login app.
|
|
80
|
+
* - core/maintenance.ts detachedRestartEnv(): the detached `botmux restart`
|
|
81
|
+
* the DASHBOARD spawns (update/restart button) inherits the dashboard's env,
|
|
82
|
+
* which legitimately holds the secrets; the restart driver does not need
|
|
83
|
+
* them and must not carry them toward pm2.
|
|
84
|
+
* redactChildEnv() keeps its own equivalent strip as the second line of
|
|
85
|
+
* defense at every CLI-child boundary (PTY/tmux pane unset/one-shot).
|
|
86
|
+
*/
|
|
87
|
+
export declare function stripDashboardH5Env(env: NodeJS.ProcessEnv): void;
|
|
88
|
+
/**
|
|
89
|
+
* Terminal/interactivity fingerprints of whichever process invoked a pm2
|
|
90
|
+
* mutation. pm2 persists the caller's env into every managed app (and into
|
|
91
|
+
* dump.pm2 for resurrect), so a `botmux restart` issued from an agent's
|
|
92
|
+
* non-interactive shell — Claude Code / Codex tool shells export NO_COLOR=1,
|
|
93
|
+
* CODEX_CI=1, PAGER=cat, plus the terminal-app identity of whatever terminal
|
|
94
|
+
* hosted them — bakes "you have no colors, you are in CI" into every daemon,
|
|
95
|
+
* which every worker and session PTY then inherits: all bot CLI TUIs render
|
|
96
|
+
* colorless, and TERMINFO can even point at a terminal app's private terminfo
|
|
97
|
+
* dir. A daemon is a headless service: every key here describes the invoker's
|
|
98
|
+
* terminal or harness, never the machine, so deleting them at the pm2
|
|
99
|
+
* boundary is always correct. Session PTYs set their own TERM (the backends
|
|
100
|
+
* spawn with name 'xterm-256color'), and a user who wants genuinely colorless
|
|
101
|
+
* bots keeps the per-bot `env` channel — like CLAUDE_EFFORT, the ambient
|
|
102
|
+
* "export it in the shell that runs `botmux restart`" channel is sacrificed
|
|
103
|
+
* because at this boundary it cannot be told apart from contamination.
|
|
104
|
+
*/
|
|
105
|
+
export declare const INVOKER_TERMINAL_ENV_KEYS: readonly ["NO_COLOR", "FORCE_COLOR", "CLICOLOR", "CLICOLOR_FORCE", "TERM", "COLORTERM", "TERMINFO", "TERM_PROGRAM", "TERM_PROGRAM_VERSION", "TERM_SESSION_ID", "CI", "CODEX_CI", "PAGER", "GIT_PAGER", "GH_PAGER"];
|
|
106
|
+
/** Delete inherited invoker-terminal fingerprints from `env` in place. */
|
|
107
|
+
export declare function scrubInvokerTerminalEnv(env: NodeJS.ProcessEnv): void;
|
|
46
108
|
/**
|
|
47
109
|
* Env vars that must never reach a spawned CLI child. The bot's IM-app creds
|
|
48
110
|
* (a child CLI's own Lark OAuth reads `process.env.LARK_APP_ID` as the app to
|
|
49
111
|
* authorize and gets hijacked by the botmux IM app → no docs scopes → 403
|
|
50
|
-
* loop), daemon-side GitHub API tokens,
|
|
112
|
+
* loop), daemon-side GitHub API tokens, the Dashboard-only Feishu H5 login
|
|
113
|
+
* credentials (DASHBOARD_H5_ENV_KEYS), and claude-code's session markers
|
|
51
114
|
* (CLAUDE_SESSION_MARKER_ENV_KEYS). The
|
|
52
115
|
* child resolves Lark via the namespaced `BOTMUX_LARK_APP_ID` or via bots.json
|
|
53
116
|
* on disk (im/lark/client.ts); the worker keeps its own bare creds
|
|
@@ -59,7 +122,7 @@ export declare function scrubClaudeSessionMarkerEnv(env: NodeJS.ProcessEnv): voi
|
|
|
59
122
|
* client env can't override, so the shell wrapper `unset`s them before exec
|
|
60
123
|
* (see SHELL_WRAPPER_SCRIPT in tmux-backend.ts).
|
|
61
124
|
*/
|
|
62
|
-
export declare const REDACTED_CHILD_ENV_KEYS: readonly ["LARK_APP_ID", "LARK_APP_SECRET", "GITHUB_TOKEN", "GH_TOKEN", "CLAUDECODE", "CLAUDE_CODE_CHILD_SESSION", "CLAUDE_CODE_SESSION_ID", "CLAUDE_CODE_ENTRYPOINT", "CLAUDE_CODE_EXECPATH", "CLAUDE_PID", "TMUX", "TMUX_PANE", "BOTMUX_PM2_GRACEFUL_EXIT_CODE"];
|
|
125
|
+
export declare const REDACTED_CHILD_ENV_KEYS: readonly ["LARK_APP_ID", "LARK_APP_SECRET", "GITHUB_TOKEN", "GH_TOKEN", "BOTMUX_DASHBOARD_FEISHU_H5_ENABLED", "BOTMUX_DASHBOARD_FEISHU_H5_BRAND", "BOTMUX_DASHBOARD_FEISHU_H5_APP_ID", "BOTMUX_DASHBOARD_FEISHU_H5_APP_SECRET", "BOTMUX_DASHBOARD_FEISHU_H5_ALLOWED_OPEN_IDS", "BOTMUX_DASHBOARD_FEISHU_H5_ENTRY_PATH", "BOTMUX_DASHBOARD_FEISHU_H5_SESSION_TTL_MS", "BOTMUX_DASHBOARD_FEISHU_H5_SECURE_COOKIE", "BOTMUX_DASHBOARD_FEISHU_H5_TRUSTED_PROXY_HOPS", "CLAUDECODE", "CLAUDE_CODE_CHILD_SESSION", "CLAUDE_CODE_SESSION_ID", "CLAUDE_CODE_ENTRYPOINT", "CLAUDE_CODE_EXECPATH", "CLAUDE_PID", "TMUX", "TMUX_PANE", "BOTMUX_PM2_GRACEFUL_EXIT_CODE"];
|
|
63
126
|
/**
|
|
64
127
|
* Session-level CLI data-root pointers: claude-family → CLAUDE_CONFIG_DIR,
|
|
65
128
|
* codex → CODEX_HOME. Botmux computes these PER SESSION (read isolation pins
|
|
@@ -128,6 +191,33 @@ export declare function scrubSessionCliHomeEnv(env: NodeJS.ProcessEnv): void;
|
|
|
128
191
|
* into its global env either.
|
|
129
192
|
*/
|
|
130
193
|
export declare const BOTMUX_INJECTED_ENV_KEYS: readonly ["__OWNER_OPEN_ID", "BOTMUX", "SESSION_DATA_DIR", "IS_SANDBOX", "BOTMUX_SESSION_ID", "BOTMUX_CHAT_ID", "BOTMUX_MCP_GATEWAY_SOCKET", "BOTMUX_MCP_GATEWAY_REQUIRED", "BOTMUX_CHAT_TYPE", "BOTMUX_LARK_APP_ID", "BOTS_CONFIG", "BOTMUX_ROOT_MESSAGE_ID", "BOTMUX_OWNER_OPEN_ID", "BOTMUX_TURN_ID", "BOTMUX_DISPATCH_ATTEMPT", "BOTMUX_BRAND_LABEL", "BOTMUX_READ_ISOLATION", "BOTMUX_API_ONLY", "BOTMUX_USAGE_DISPLAY", "BOTMUX_PI_INITIAL_PROMPT_FILE", "BOTMUX_DAEMON_IPC_PORT", "BOTMUX_READ_ISOLATED", "BOTMUX_ORIGIN_CHANNEL_ID", "BOTMUX_LARK_LIST_BOTS_API_ENABLED", "BOTMUX_LARK_LIST_BOTS_API_TIMEOUT_MS", "BOTMUX_READY_COMMAND", "BOTMUX_CODEX_APP_CONTROL_BOOTSTRAP", "HERMES_HOME", "HERMES_BOTMUX_SOURCE_HOME", "HERMES_BOTMUX_PROFILES_ROOT", "CLAUDE_CONFIG_DIR", "CODEX_HOME", "CLAUDE_CODE_RESUME_TOKEN_THRESHOLD", "CJADK_INTERACTIVE"];
|
|
194
|
+
/**
|
|
195
|
+
* Session-only botmux identity and capabilities of the process that invoked a
|
|
196
|
+
* pm2 mutation. A `botmux restart` issued from inside a bot session carries
|
|
197
|
+
* that session's routing identity and capabilities; persisted by pm2 into the
|
|
198
|
+
* fleet, every daemon then carries a stale foreign turn identity, and a
|
|
199
|
+
* plugin service started from the same env would misroute its own
|
|
200
|
+
* `botmux send` to a long-dead thread.
|
|
201
|
+
*
|
|
202
|
+
* This is a DELIBERATELY hand-maintained list. It is NOT derived from
|
|
203
|
+
* BOTMUX_INJECTED_ENV_KEYS: that list is the tmux/pane TRANSPORT whitelist
|
|
204
|
+
* and mixes session-only keys with ambient/daemon config that merely needs
|
|
205
|
+
* pane delivery (CLAUDE_CODE_RESUME_TOKEN_THRESHOLD is ambient-only — worker
|
|
206
|
+
* reads it from its own process.env and per-bot env REJECTS it, so a boot
|
|
207
|
+
* scrub would silently kill the user's setting; HERMES_HOME and the two
|
|
208
|
+
* HERMES_BOTMUX_* roots are ambient install-location config nothing in
|
|
209
|
+
* botmux ever sets, same contract as GROK_HOME; BOTS_CONFIG /
|
|
210
|
+
* SESSION_DATA_DIR / BOTMUX_LARK_LIST_BOTS_API_* are documented ambient or
|
|
211
|
+
* ecosystem-block config). The reverse also holds: session/sandbox routing
|
|
212
|
+
* keys the pane transport never carries (BOTMUX_SESSION_SCOPE,
|
|
213
|
+
* BOTMUX_SEND_RELAY) still need scrubbing here. Every entry below is
|
|
214
|
+
* session-scoped BY CONSTRUCTION: the daemon/worker computes and injects it
|
|
215
|
+
* per session AFTER every boundary scrub, and no ambient/env-file channel for
|
|
216
|
+
* it exists.
|
|
217
|
+
*/
|
|
218
|
+
export declare const SESSION_TURN_MARKER_ENV_KEYS: readonly ["BOTMUX", "BOTMUX_SESSION_ID", "BOTMUX_CHAT_ID", "BOTMUX_CHAT_TYPE", "BOTMUX_ROOT_MESSAGE_ID", "BOTMUX_TURN_ID", "BOTMUX_DISPATCH_ATTEMPT", "BOTMUX_SESSION_SCOPE", "BOTMUX_OWNER_OPEN_ID", "__OWNER_OPEN_ID", "BOTMUX_ORIGIN_CHANNEL_ID", "BOTMUX_SEND_RELAY", "BOTMUX_MCP_GATEWAY_SOCKET", "BOTMUX_MCP_GATEWAY_REQUIRED", "BOTMUX_DAEMON_IPC_PORT", "BOTMUX_READ_ISOLATION", "BOTMUX_READ_ISOLATED", "BOTMUX_API_ONLY", "IS_SANDBOX", "BOTMUX_BRAND_LABEL", "BOTMUX_USAGE_DISPLAY", "BOTMUX_PI_INITIAL_PROMPT_FILE", "BOTMUX_CODEX_APP_CONTROL_BOOTSTRAP", "BOTMUX_READY_COMMAND", "BOTMUX_LARK_APP_ID", "CJADK_INTERACTIVE"];
|
|
219
|
+
/** Delete inherited session-only identity/capabilities from `env` in place. */
|
|
220
|
+
export declare function scrubSessionTurnMarkerEnv(env: NodeJS.ProcessEnv): void;
|
|
131
221
|
/** Proxy env vars that must reach the CLI child process so it can dial the
|
|
132
222
|
* upstream API on hosts without direct internet access. Forwarded explicitly
|
|
133
223
|
* by buildBotmuxEnvAssignments (tmux/tmux-pipe/zellij backends) and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-env.d.ts","sourceRoot":"","sources":["../../src/utils/child-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,gJAOjC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,sQAW3B,CAAC;AAEX,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAEnE;AAeD;;;;;;eAMe;AACf,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAGxE;AAED
|
|
1
|
+
{"version":3,"file":"child-env.d.ts","sourceRoot":"","sources":["../../src/utils/child-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,gJAOjC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,sQAW3B,CAAC;AAEX,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAEnE;AAeD;;;;;;eAMe;AACf,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,eAAO,MAAM,qBAAqB,qYAUxB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAKhE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,yBAAyB,oNAwB5B,CAAC;AAEX,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAEpE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,8nBAoC1B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,yBAAyB,8CAA+C,CAAC;AAEtF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,IAAI,CAQN;AAED;;;iBAGiB;AACjB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,wBAAwB,k0BAuF3B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,2mBA6C/B,CAAC;AAEX,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAEtE;AAED;;;;;;;4DAO4D;AAC5D,eAAO,MAAM,cAAc,uHAGjB,CAAC;AA2BX;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAUzE"}
|
package/dist/utils/child-env.js
CHANGED
|
@@ -81,11 +81,118 @@ export function scrubClaudeSessionMarkerEnv(env) {
|
|
|
81
81
|
for (const key of BOUNDARY_ONLY_CLAUDE_ENV_KEYS)
|
|
82
82
|
delete env[key];
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Dashboard-only Feishu/Lark H5 passwordless-login configuration. Every key in
|
|
86
|
+
* this family is read by ONE consumer — resolveDashboardH5AuthConfig() in
|
|
87
|
+
* src/dashboard/h5-auth.ts, inside the dashboard process — and by nothing else
|
|
88
|
+
* in the fleet. A session's CLI child has no reason to see any of it, and
|
|
89
|
+
* `..._APP_SECRET` is a full Feishu app credential: whoever holds it can mint
|
|
90
|
+
* app_access_token for the H5 login app, i.e. forge the identity the Dashboard
|
|
91
|
+
* authenticates on. The daemon loads ~/.botmux/.env wholesale (index-daemon.ts
|
|
92
|
+
* dotenv), so without this scrub the secret rode into every PTY/direct CLI
|
|
93
|
+
* child and every one-shot the daemon forks (session group-title).
|
|
94
|
+
*
|
|
95
|
+
* Redaction is BOTH belt and braces:
|
|
96
|
+
* - these exact names sit in REDACTED_CHILD_ENV_KEYS, which also drives the
|
|
97
|
+
* tmux pane wrapper's `unset` clause and the tmux client-env strip;
|
|
98
|
+
* - redactChildEnv() additionally sweeps the whole
|
|
99
|
+
* {@link DASHBOARD_H5_ENV_PREFIX}, so a future H5 knob is redacted the day
|
|
100
|
+
* it is added rather than the day someone remembers this list.
|
|
101
|
+
*/
|
|
102
|
+
export const DASHBOARD_H5_ENV_PREFIX = 'BOTMUX_DASHBOARD_FEISHU_H5_';
|
|
103
|
+
export const DASHBOARD_H5_ENV_KEYS = [
|
|
104
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_ENABLED',
|
|
105
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_BRAND',
|
|
106
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_APP_ID',
|
|
107
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_APP_SECRET',
|
|
108
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_ALLOWED_OPEN_IDS',
|
|
109
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_ENTRY_PATH',
|
|
110
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_SESSION_TTL_MS',
|
|
111
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_SECURE_COOKIE',
|
|
112
|
+
'BOTMUX_DASHBOARD_FEISHU_H5_TRUSTED_PROXY_HOPS',
|
|
113
|
+
];
|
|
114
|
+
/**
|
|
115
|
+
* Delete the entire Dashboard-only Feishu H5 login family from `env` IN PLACE:
|
|
116
|
+
* every named key in {@link DASHBOARD_H5_ENV_KEYS} plus a
|
|
117
|
+
* {@link DASHBOARD_H5_ENV_PREFIX} sweep, so a knob added tomorrow is stripped
|
|
118
|
+
* the day it ships rather than the day someone extends the list.
|
|
119
|
+
*
|
|
120
|
+
* The Dashboard is the family's ONLY consumer, and it receives the values by
|
|
121
|
+
* dotenv-loading ~/.botmux/.env itself (index-dashboard.ts) — NOT through the
|
|
122
|
+
* shared PM2 env block (the H5 keys are deliberately absent from
|
|
123
|
+
* DAEMON_ENV_KEYS). Every other botmux-owned process must therefore hold none
|
|
124
|
+
* of it. Call sites:
|
|
125
|
+
* - index-daemon.ts boot: the daemon dotenv-loads the same .env wholesale, so
|
|
126
|
+
* it must drop the family right after dotenv — a daemon holding the H5
|
|
127
|
+
* APP_SECRET can mint app_access_token for the Dashboard's login app.
|
|
128
|
+
* - core/maintenance.ts detachedRestartEnv(): the detached `botmux restart`
|
|
129
|
+
* the DASHBOARD spawns (update/restart button) inherits the dashboard's env,
|
|
130
|
+
* which legitimately holds the secrets; the restart driver does not need
|
|
131
|
+
* them and must not carry them toward pm2.
|
|
132
|
+
* redactChildEnv() keeps its own equivalent strip as the second line of
|
|
133
|
+
* defense at every CLI-child boundary (PTY/tmux pane unset/one-shot).
|
|
134
|
+
*/
|
|
135
|
+
export function stripDashboardH5Env(env) {
|
|
136
|
+
for (const key of DASHBOARD_H5_ENV_KEYS)
|
|
137
|
+
delete env[key];
|
|
138
|
+
for (const key of Object.keys(env)) {
|
|
139
|
+
if (key.startsWith(DASHBOARD_H5_ENV_PREFIX))
|
|
140
|
+
delete env[key];
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Terminal/interactivity fingerprints of whichever process invoked a pm2
|
|
145
|
+
* mutation. pm2 persists the caller's env into every managed app (and into
|
|
146
|
+
* dump.pm2 for resurrect), so a `botmux restart` issued from an agent's
|
|
147
|
+
* non-interactive shell — Claude Code / Codex tool shells export NO_COLOR=1,
|
|
148
|
+
* CODEX_CI=1, PAGER=cat, plus the terminal-app identity of whatever terminal
|
|
149
|
+
* hosted them — bakes "you have no colors, you are in CI" into every daemon,
|
|
150
|
+
* which every worker and session PTY then inherits: all bot CLI TUIs render
|
|
151
|
+
* colorless, and TERMINFO can even point at a terminal app's private terminfo
|
|
152
|
+
* dir. A daemon is a headless service: every key here describes the invoker's
|
|
153
|
+
* terminal or harness, never the machine, so deleting them at the pm2
|
|
154
|
+
* boundary is always correct. Session PTYs set their own TERM (the backends
|
|
155
|
+
* spawn with name 'xterm-256color'), and a user who wants genuinely colorless
|
|
156
|
+
* bots keeps the per-bot `env` channel — like CLAUDE_EFFORT, the ambient
|
|
157
|
+
* "export it in the shell that runs `botmux restart`" channel is sacrificed
|
|
158
|
+
* because at this boundary it cannot be told apart from contamination.
|
|
159
|
+
*/
|
|
160
|
+
export const INVOKER_TERMINAL_ENV_KEYS = [
|
|
161
|
+
// Color semantics
|
|
162
|
+
'NO_COLOR',
|
|
163
|
+
'FORCE_COLOR',
|
|
164
|
+
'CLICOLOR',
|
|
165
|
+
'CLICOLOR_FORCE',
|
|
166
|
+
// Terminal identity. TERMINFO is a single-directory override that terminal
|
|
167
|
+
// apps export for their own private terminfo bundle — invoker-scoped.
|
|
168
|
+
// TERMINFO_DIRS is deliberately ABSENT: it is a search-path list that
|
|
169
|
+
// NixOS/home-manager and custom-ncurses setups configure machine-wide, and
|
|
170
|
+
// deleting it would break terminfo resolution for every PTY on such hosts.
|
|
171
|
+
'TERM',
|
|
172
|
+
'COLORTERM',
|
|
173
|
+
'TERMINFO',
|
|
174
|
+
'TERM_PROGRAM',
|
|
175
|
+
'TERM_PROGRAM_VERSION',
|
|
176
|
+
'TERM_SESSION_ID',
|
|
177
|
+
// CI / agent-harness flags
|
|
178
|
+
'CI',
|
|
179
|
+
'CODEX_CI',
|
|
180
|
+
// Non-interactive pager pins agent shells export for their own subcommands
|
|
181
|
+
'PAGER',
|
|
182
|
+
'GIT_PAGER',
|
|
183
|
+
'GH_PAGER',
|
|
184
|
+
];
|
|
185
|
+
/** Delete inherited invoker-terminal fingerprints from `env` in place. */
|
|
186
|
+
export function scrubInvokerTerminalEnv(env) {
|
|
187
|
+
for (const key of INVOKER_TERMINAL_ENV_KEYS)
|
|
188
|
+
delete env[key];
|
|
189
|
+
}
|
|
84
190
|
/**
|
|
85
191
|
* Env vars that must never reach a spawned CLI child. The bot's IM-app creds
|
|
86
192
|
* (a child CLI's own Lark OAuth reads `process.env.LARK_APP_ID` as the app to
|
|
87
193
|
* authorize and gets hijacked by the botmux IM app → no docs scopes → 403
|
|
88
|
-
* loop), daemon-side GitHub API tokens,
|
|
194
|
+
* loop), daemon-side GitHub API tokens, the Dashboard-only Feishu H5 login
|
|
195
|
+
* credentials (DASHBOARD_H5_ENV_KEYS), and claude-code's session markers
|
|
89
196
|
* (CLAUDE_SESSION_MARKER_ENV_KEYS). The
|
|
90
197
|
* child resolves Lark via the namespaced `BOTMUX_LARK_APP_ID` or via bots.json
|
|
91
198
|
* on disk (im/lark/client.ts); the worker keeps its own bare creds
|
|
@@ -102,6 +209,12 @@ export const REDACTED_CHILD_ENV_KEYS = [
|
|
|
102
209
|
'LARK_APP_SECRET',
|
|
103
210
|
'GITHUB_TOKEN',
|
|
104
211
|
'GH_TOKEN',
|
|
212
|
+
// Dashboard-only Feishu H5 login config/credential family — see
|
|
213
|
+
// DASHBOARD_H5_ENV_KEYS. Listed by exact name (not only swept by prefix in
|
|
214
|
+
// redactChildEnv) so the tmux pane wrapper `unset`s them too: on that backend
|
|
215
|
+
// the pane inherits the tmux SERVER's global env, which the client env cannot
|
|
216
|
+
// override.
|
|
217
|
+
...DASHBOARD_H5_ENV_KEYS,
|
|
105
218
|
...CLAUDE_SESSION_MARKER_ENV_KEYS,
|
|
106
219
|
// Parent-tmux client vars: when the daemon itself was started inside a tmux
|
|
107
220
|
// session, process.env carries TMUX (server socket path) + TMUX_PANE. Leaking
|
|
@@ -294,6 +407,81 @@ export const BOTMUX_INJECTED_ENV_KEYS = [
|
|
|
294
407
|
'CLAUDE_CODE_RESUME_TOKEN_THRESHOLD',
|
|
295
408
|
'CJADK_INTERACTIVE',
|
|
296
409
|
];
|
|
410
|
+
/**
|
|
411
|
+
* Session-only botmux identity and capabilities of the process that invoked a
|
|
412
|
+
* pm2 mutation. A `botmux restart` issued from inside a bot session carries
|
|
413
|
+
* that session's routing identity and capabilities; persisted by pm2 into the
|
|
414
|
+
* fleet, every daemon then carries a stale foreign turn identity, and a
|
|
415
|
+
* plugin service started from the same env would misroute its own
|
|
416
|
+
* `botmux send` to a long-dead thread.
|
|
417
|
+
*
|
|
418
|
+
* This is a DELIBERATELY hand-maintained list. It is NOT derived from
|
|
419
|
+
* BOTMUX_INJECTED_ENV_KEYS: that list is the tmux/pane TRANSPORT whitelist
|
|
420
|
+
* and mixes session-only keys with ambient/daemon config that merely needs
|
|
421
|
+
* pane delivery (CLAUDE_CODE_RESUME_TOKEN_THRESHOLD is ambient-only — worker
|
|
422
|
+
* reads it from its own process.env and per-bot env REJECTS it, so a boot
|
|
423
|
+
* scrub would silently kill the user's setting; HERMES_HOME and the two
|
|
424
|
+
* HERMES_BOTMUX_* roots are ambient install-location config nothing in
|
|
425
|
+
* botmux ever sets, same contract as GROK_HOME; BOTS_CONFIG /
|
|
426
|
+
* SESSION_DATA_DIR / BOTMUX_LARK_LIST_BOTS_API_* are documented ambient or
|
|
427
|
+
* ecosystem-block config). The reverse also holds: session/sandbox routing
|
|
428
|
+
* keys the pane transport never carries (BOTMUX_SESSION_SCOPE,
|
|
429
|
+
* BOTMUX_SEND_RELAY) still need scrubbing here. Every entry below is
|
|
430
|
+
* session-scoped BY CONSTRUCTION: the daemon/worker computes and injects it
|
|
431
|
+
* per session AFTER every boundary scrub, and no ambient/env-file channel for
|
|
432
|
+
* it exists.
|
|
433
|
+
*/
|
|
434
|
+
export const SESSION_TURN_MARKER_ENV_KEYS = [
|
|
435
|
+
// "Runs inside botmux" pane marker; pane wrapper injects it per session.
|
|
436
|
+
'BOTMUX',
|
|
437
|
+
// Turn/session routing identity (worker-injected per pane/turn).
|
|
438
|
+
'BOTMUX_SESSION_ID',
|
|
439
|
+
'BOTMUX_CHAT_ID',
|
|
440
|
+
'BOTMUX_CHAT_TYPE',
|
|
441
|
+
'BOTMUX_ROOT_MESSAGE_ID',
|
|
442
|
+
'BOTMUX_TURN_ID',
|
|
443
|
+
'BOTMUX_DISPATCH_ATTEMPT',
|
|
444
|
+
// thread|chat scope, computed per session from rootMessageId (worker.ts).
|
|
445
|
+
'BOTMUX_SESSION_SCOPE',
|
|
446
|
+
// Daemon-authenticated session owner, both channels (applySessionOwnerEnv).
|
|
447
|
+
'BOTMUX_OWNER_OPEN_ID',
|
|
448
|
+
'__OWNER_OPEN_ID',
|
|
449
|
+
// Unguessable pane/profile authority channel (daemon-rotated capability).
|
|
450
|
+
'BOTMUX_ORIGIN_CHANNEL_ID',
|
|
451
|
+
// Sandbox send-relay directory — a per-session capability path.
|
|
452
|
+
'BOTMUX_SEND_RELAY',
|
|
453
|
+
// Session-scoped MCP gateway capability + fail-closed marker.
|
|
454
|
+
'BOTMUX_MCP_GATEWAY_SOCKET',
|
|
455
|
+
'BOTMUX_MCP_GATEWAY_REQUIRED',
|
|
456
|
+
// Owning daemon's per-boot IPC port; the daemon self-sets the real value at
|
|
457
|
+
// boot (daemon.ts), so an inherited copy is always a stale foreign port.
|
|
458
|
+
'BOTMUX_DAEMON_IPC_PORT',
|
|
459
|
+
// Per-session read-isolation / apiOnly / sandbox verdicts (worker-owned).
|
|
460
|
+
'BOTMUX_READ_ISOLATION',
|
|
461
|
+
'BOTMUX_READ_ISOLATED',
|
|
462
|
+
'BOTMUX_API_ONLY',
|
|
463
|
+
'IS_SANDBOX',
|
|
464
|
+
// Per-session display footer resolved from bots.json (never env-configured).
|
|
465
|
+
'BOTMUX_BRAND_LABEL',
|
|
466
|
+
// Per-bot usage display, resolved via resolveUsageDisplay(cfg) per session;
|
|
467
|
+
// env is never a config input for it.
|
|
468
|
+
'BOTMUX_USAGE_DISPLAY',
|
|
469
|
+
// One-shot per-session artifacts/paths.
|
|
470
|
+
'BOTMUX_PI_INITIAL_PROMPT_FILE',
|
|
471
|
+
'BOTMUX_CODEX_APP_CONTROL_BOOTSTRAP',
|
|
472
|
+
// Ready-gate hook command, sessionReadyHookCommand() per session.
|
|
473
|
+
'BOTMUX_READY_COMMAND',
|
|
474
|
+
// Per-app value pinned by the ecosystemConfig env block; an inherited copy
|
|
475
|
+
// is untrusted (the daemon resolves its bot via BOTMUX_BOT_INDEX).
|
|
476
|
+
'BOTMUX_LARK_APP_ID',
|
|
477
|
+
// cjadk wrapper-branch knob, set/deleted per spawn by the worker.
|
|
478
|
+
'CJADK_INTERACTIVE',
|
|
479
|
+
];
|
|
480
|
+
/** Delete inherited session-only identity/capabilities from `env` in place. */
|
|
481
|
+
export function scrubSessionTurnMarkerEnv(env) {
|
|
482
|
+
for (const key of SESSION_TURN_MARKER_ENV_KEYS)
|
|
483
|
+
delete env[key];
|
|
484
|
+
}
|
|
297
485
|
/** Proxy env vars that must reach the CLI child process so it can dial the
|
|
298
486
|
* upstream API on hosts without direct internet access. Forwarded explicitly
|
|
299
487
|
* by buildBotmuxEnvAssignments (tmux/tmux-pipe/zellij backends) and
|
|
@@ -368,6 +556,12 @@ export function redactChildEnv(base) {
|
|
|
368
556
|
const env = { ...base };
|
|
369
557
|
for (const key of REDACTED_CHILD_ENV_KEYS)
|
|
370
558
|
delete env[key];
|
|
559
|
+
// Minimum-exposure sweep for the Dashboard-only H5 login family: the named
|
|
560
|
+
// keys above are already gone, this also catches any BOTMUX_DASHBOARD_FEISHU_H5_*
|
|
561
|
+
// knob added later. No CLI child ever consumes one, so a prefix-wide strip
|
|
562
|
+
// cannot break a supported configuration channel. Same implementation as the
|
|
563
|
+
// daemon-boot / detached-restart strip so the two layers cannot drift.
|
|
564
|
+
stripDashboardH5Env(env);
|
|
371
565
|
return env;
|
|
372
566
|
}
|
|
373
567
|
//# sourceMappingURL=child-env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-env.js","sourceRoot":"","sources":["../../src/utils/child-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,YAAY;IACZ,2BAA2B;IAC3B,wBAAwB;IACxB,wBAAwB;IACxB,sBAAsB;IACtB,YAAY;CACJ,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iBAAiB;IACjB,8BAA8B;IAC9B,wBAAwB;IACxB,yBAAyB;IACzB,kBAAkB;IAClB,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,yBAAyB;IACzB,gBAAgB;CACR,CAAC;AAEX,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,KAAK,MAAM,GAAG,IAAI,wBAAwB;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;qBAUqB;AACrB,MAAM,6BAA6B,GAAG,CAAC,eAAe,CAAU,CAAC;AAEjE;;;;;;eAMe;AACf,MAAM,UAAU,2BAA2B,CAAC,GAAsB;IAChE,KAAK,MAAM,GAAG,IAAI,8BAA8B;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAClE,KAAK,MAAM,GAAG,IAAI,6BAA6B;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"child-env.js","sourceRoot":"","sources":["../../src/utils/child-env.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,24 +24,35 @@ export interface DetectUsageLimitOptions {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Whether a CLI adapter is authoritative for structured rate limits — i.e. it
|
|
27
|
-
* actually PUBLISHES a `limited` screen_update from
|
|
28
|
-
*
|
|
29
|
-
* `bridgeJsonlPath` path), and it is exactly the adapters that carry
|
|
30
|
-
* `claudeDataDir`. When true, the worker passes `suppressRateKind` so the
|
|
31
|
-
* screen-scan `rate` verdict is suppressed in favor of the structured signal.
|
|
27
|
+
* actually PUBLISHES a `limited` screen_update from a machine signal in its
|
|
28
|
+
* transcript rather than from scraping screen text. Two families qualify:
|
|
32
29
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
30
|
+
* - The Claude family (`claudeDataDir`): the worker's
|
|
31
|
+
* `maybeEmitStructuredRateLimit` reads the transcript's `error:"rate_limit"`
|
|
32
|
+
* record on the `bridgeJsonlPath` path.
|
|
33
|
+
* - Codex (`emitsStructuredRateLimit`): `maybeEmitCodexStructuredRateLimit`
|
|
34
|
+
* reads the rollout's `codex_rate_limited` terminal (`isCodexRateLimitEvent`)
|
|
35
|
+
* and emits `limited`. This emit runs only under the `structuredBridgeIsCodex`
|
|
36
|
+
* gate, so among codexBridgeQueue CLIs only codex sets the flag.
|
|
37
|
+
*
|
|
38
|
+
* When true the worker passes `suppressRateKind` so the screen-scan `rate`
|
|
39
|
+
* verdict is dropped in favor of the structured signal — otherwise the model's
|
|
40
|
+
* own output (or a dev editing rate-limit code) puts "429" / "exceeded retry
|
|
41
|
+
* limit" on screen and the scraper cannot tell a printed 429 from a request
|
|
42
|
+
* that actually returned 429.
|
|
43
|
+
*
|
|
44
|
+
* The other codexBridgeQueue CLIs (grok / traex / pi / hermes / mtr / cursor)
|
|
45
|
+
* emit NO structured `limited` state, so they must keep screen-scanning: set
|
|
46
|
+
* neither field on them or a real 429 silently loses its backoff + Dashboard
|
|
47
|
+
* 「需要你」signal. Most set `reliableTurnTerminal`, so gating on that flag would
|
|
48
|
+
* wrongly suppress them; gating on these two explicit capability fields keeps
|
|
49
|
+
* the split exact. Extracted as a pure predicate so it has a direct unit-test
|
|
50
|
+
* surface (see cli-usage-limit.test.ts) — a future adapter can't silently
|
|
51
|
+
* re-broaden it.
|
|
42
52
|
*/
|
|
43
53
|
export declare function isStructuredRateLimitAuthoritative(adapter: {
|
|
44
54
|
readonly claudeDataDir?: string;
|
|
55
|
+
readonly emitsStructuredRateLimit?: boolean;
|
|
45
56
|
} | null | undefined): boolean;
|
|
46
57
|
export declare function detectCliUsageLimit(text: string, now?: Date, opts?: DetectUsageLimitOptions): CliUsageLimitDetection;
|
|
47
58
|
export declare function usageLimitStateKey(state: CliUsageLimitState): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-usage-limit.d.ts","sourceRoot":"","sources":["../../src/utils/cli-usage-limit.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;AAoCnF,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AA0DzD,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED
|
|
1
|
+
{"version":3,"file":"cli-usage-limit.d.ts","sourceRoot":"","sources":["../../src/utils/cli-usage-limit.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;AAoCnF,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AA0DzD,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC3G,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,OAAa,EAChB,IAAI,GAAE,uBAA4B,GACjC,sBAAsB,CAsCxB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,SAAK,EAAE,GAAG,OAAa,GAAG,kBAAkB,CAUxF"}
|
|
@@ -84,24 +84,34 @@ function hardRateLimitFallbackTime(now) {
|
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Whether a CLI adapter is authoritative for structured rate limits — i.e. it
|
|
87
|
-
* actually PUBLISHES a `limited` screen_update from
|
|
88
|
-
*
|
|
89
|
-
* `bridgeJsonlPath` path), and it is exactly the adapters that carry
|
|
90
|
-
* `claudeDataDir`. When true, the worker passes `suppressRateKind` so the
|
|
91
|
-
* screen-scan `rate` verdict is suppressed in favor of the structured signal.
|
|
87
|
+
* actually PUBLISHES a `limited` screen_update from a machine signal in its
|
|
88
|
+
* transcript rather than from scraping screen text. Two families qualify:
|
|
92
89
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
90
|
+
* - The Claude family (`claudeDataDir`): the worker's
|
|
91
|
+
* `maybeEmitStructuredRateLimit` reads the transcript's `error:"rate_limit"`
|
|
92
|
+
* record on the `bridgeJsonlPath` path.
|
|
93
|
+
* - Codex (`emitsStructuredRateLimit`): `maybeEmitCodexStructuredRateLimit`
|
|
94
|
+
* reads the rollout's `codex_rate_limited` terminal (`isCodexRateLimitEvent`)
|
|
95
|
+
* and emits `limited`. This emit runs only under the `structuredBridgeIsCodex`
|
|
96
|
+
* gate, so among codexBridgeQueue CLIs only codex sets the flag.
|
|
97
|
+
*
|
|
98
|
+
* When true the worker passes `suppressRateKind` so the screen-scan `rate`
|
|
99
|
+
* verdict is dropped in favor of the structured signal — otherwise the model's
|
|
100
|
+
* own output (or a dev editing rate-limit code) puts "429" / "exceeded retry
|
|
101
|
+
* limit" on screen and the scraper cannot tell a printed 429 from a request
|
|
102
|
+
* that actually returned 429.
|
|
103
|
+
*
|
|
104
|
+
* The other codexBridgeQueue CLIs (grok / traex / pi / hermes / mtr / cursor)
|
|
105
|
+
* emit NO structured `limited` state, so they must keep screen-scanning: set
|
|
106
|
+
* neither field on them or a real 429 silently loses its backoff + Dashboard
|
|
107
|
+
* 「需要你」signal. Most set `reliableTurnTerminal`, so gating on that flag would
|
|
108
|
+
* wrongly suppress them; gating on these two explicit capability fields keeps
|
|
109
|
+
* the split exact. Extracted as a pure predicate so it has a direct unit-test
|
|
110
|
+
* surface (see cli-usage-limit.test.ts) — a future adapter can't silently
|
|
111
|
+
* re-broaden it.
|
|
102
112
|
*/
|
|
103
113
|
export function isStructuredRateLimitAuthoritative(adapter) {
|
|
104
|
-
return !!adapter?.claudeDataDir;
|
|
114
|
+
return !!adapter?.claudeDataDir || !!adapter?.emitsStructuredRateLimit;
|
|
105
115
|
}
|
|
106
116
|
export function detectCliUsageLimit(text, now = new Date(), opts = {}) {
|
|
107
117
|
// Hot path: runs on every screen tick for every active session. Gate heavier
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-usage-limit.js","sourceRoot":"","sources":["../../src/utils/cli-usage-limit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-usage-limit.js","sourceRoot":"","sources":["../../src/utils/cli-usage-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Minimal sink so tests can capture without touching the real logger. */
|
|
2
|
+
export interface RejectionLogSink {
|
|
3
|
+
error(msg: string): void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Render a rejection reason for the log.
|
|
7
|
+
*
|
|
8
|
+
* Prefers the stack: without it an `unhandledRejection` report is close to
|
|
9
|
+
* useless, because the throw site is exactly what the caller failed to observe.
|
|
10
|
+
* Non-Error reasons (a rejected string, a plain object) still have to produce
|
|
11
|
+
* something readable, since `String({})` alone would log "[object Object]".
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatRejectionReason(reason: unknown): string;
|
|
14
|
+
/**
|
|
15
|
+
* The handler body, exported so a test can drive it directly instead of
|
|
16
|
+
* emitting a real process-level event (which would leak across test files).
|
|
17
|
+
*
|
|
18
|
+
* Returns whether the rejection was logged; a broken-pipe-class reason is
|
|
19
|
+
* dropped for the same reason stdio-epipe-guard drops it, and reporting that
|
|
20
|
+
* would just add noise on every detached pm2 log stream.
|
|
21
|
+
*/
|
|
22
|
+
export declare function handleDaemonUnhandledRejection(reason: unknown, sink: RejectionLogSink): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Install the daemon-side guard. Idempotent, so multiple entry points may call
|
|
25
|
+
* it. Returns true if it installed on this call.
|
|
26
|
+
*
|
|
27
|
+
* `target` is parameterized only so unit tests can inject a fake emitter rather
|
|
28
|
+
* than registering a listener on the real process for the whole test run.
|
|
29
|
+
*/
|
|
30
|
+
export declare function installDaemonRejectionGuard(sink: RejectionLogSink, target?: {
|
|
31
|
+
on(event: 'unhandledRejection', cb: (reason: unknown) => void): unknown;
|
|
32
|
+
}): boolean;
|
|
33
|
+
/** Test-only reset of the idempotency latch. */
|
|
34
|
+
export declare function resetDaemonRejectionGuardForTest(): void;
|
|
35
|
+
//# sourceMappingURL=daemon-rejection-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-rejection-guard.d.ts","sourceRoot":"","sources":["../../src/utils/daemon-rejection-guard.ts"],"names":[],"mappings":"AAoCA,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAa7D;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAOT;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,gBAAgB,EACtB,MAAM,GAAE;IAAE,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAA;CAAY,GAC5F,OAAO,CAYT;AAED,gDAAgD;AAChD,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
|