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
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep the daemon alive when a fire-and-forget promise rejects.
|
|
3
|
+
*
|
|
4
|
+
* Node terminates the process on an unhandled rejection by default. In a worker
|
|
5
|
+
* that is the right call — one worker owns one session, so exiting loses exactly
|
|
6
|
+
* that session (see the handler at the bottom of worker.ts, which deliberately
|
|
7
|
+
* calls process.exit(1) after tearing its sandbox down).
|
|
8
|
+
*
|
|
9
|
+
* The daemon is the opposite. It owns EVERY session, so the default turns one
|
|
10
|
+
* missed `.catch` on one session's teardown into a total outage: every other
|
|
11
|
+
* Lark session dies with it. That is not hypothetical — the repo already carries
|
|
12
|
+
* a post-mortem of this exact shape in tmux-pipe-backend.ts, and the reason this
|
|
13
|
+
* guard exists now is a corrupt containment store: a constructor threw above a
|
|
14
|
+
* try block, the caller was a `void fn().then(...)` with no `.catch`, and the
|
|
15
|
+
* rejection escaped to take the whole daemon with it.
|
|
16
|
+
*
|
|
17
|
+
* The failure mode this closes is structural, not local. Individual `.catch`
|
|
18
|
+
* additions fix the holes we have already found; this makes the NEXT missed one
|
|
19
|
+
* a logged incident on one session instead of an outage for all of them. Both
|
|
20
|
+
* layers are wanted — this is the backstop, not a licence to drop `.catch`.
|
|
21
|
+
*
|
|
22
|
+
* Deliberately NOT swallowed silently. A rejection that reaches here is a real
|
|
23
|
+
* bug: it is logged at error level with the stack, so pm2's error_file carries
|
|
24
|
+
* an actionable signal rather than a mystery. Callers that legitimately expect a
|
|
25
|
+
* rejection must still handle it themselves; nothing here makes a rejection
|
|
26
|
+
* "fine", it only makes it survivable.
|
|
27
|
+
*
|
|
28
|
+
* Scope note, on purpose: this covers `unhandledRejection` only, NOT
|
|
29
|
+
* `uncaughtException`. A rejected promise is usually a contained operation whose
|
|
30
|
+
* caller forgot a `.catch`, so continuing is defensible. A synchronous throw
|
|
31
|
+
* that unwound to the top can leave arbitrary state half-updated, and keeping a
|
|
32
|
+
* process alive through that is a much stronger claim than this module is
|
|
33
|
+
* entitled to make. Widening it needs its own analysis.
|
|
34
|
+
*/
|
|
35
|
+
import { isIgnorableStreamError } from './stdio-epipe-guard.js';
|
|
36
|
+
let installed = false;
|
|
37
|
+
/**
|
|
38
|
+
* Render a rejection reason for the log.
|
|
39
|
+
*
|
|
40
|
+
* Prefers the stack: without it an `unhandledRejection` report is close to
|
|
41
|
+
* useless, because the throw site is exactly what the caller failed to observe.
|
|
42
|
+
* Non-Error reasons (a rejected string, a plain object) still have to produce
|
|
43
|
+
* something readable, since `String({})` alone would log "[object Object]".
|
|
44
|
+
*/
|
|
45
|
+
export function formatRejectionReason(reason) {
|
|
46
|
+
if (reason instanceof Error) {
|
|
47
|
+
return reason.stack ?? `${reason.name}: ${reason.message}`;
|
|
48
|
+
}
|
|
49
|
+
if (reason !== null && typeof reason === 'object') {
|
|
50
|
+
try {
|
|
51
|
+
return `non-Error rejection: ${JSON.stringify(reason)}`;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Circular or otherwise unserialisable — still say something.
|
|
55
|
+
return `non-Error rejection: ${Object.prototype.toString.call(reason)}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return `non-Error rejection: ${String(reason)}`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The handler body, exported so a test can drive it directly instead of
|
|
62
|
+
* emitting a real process-level event (which would leak across test files).
|
|
63
|
+
*
|
|
64
|
+
* Returns whether the rejection was logged; a broken-pipe-class reason is
|
|
65
|
+
* dropped for the same reason stdio-epipe-guard drops it, and reporting that
|
|
66
|
+
* would just add noise on every detached pm2 log stream.
|
|
67
|
+
*/
|
|
68
|
+
export function handleDaemonUnhandledRejection(reason, sink) {
|
|
69
|
+
if (isIgnorableStreamError(reason))
|
|
70
|
+
return false;
|
|
71
|
+
sink.error('Unhandled promise rejection in daemon — the daemon is STAYING UP so other '
|
|
72
|
+
+ `sessions keep running; this is a bug that needs a .catch: ${formatRejectionReason(reason)}`);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Install the daemon-side guard. Idempotent, so multiple entry points may call
|
|
77
|
+
* it. Returns true if it installed on this call.
|
|
78
|
+
*
|
|
79
|
+
* `target` is parameterized only so unit tests can inject a fake emitter rather
|
|
80
|
+
* than registering a listener on the real process for the whole test run.
|
|
81
|
+
*/
|
|
82
|
+
export function installDaemonRejectionGuard(sink, target = process) {
|
|
83
|
+
if (installed)
|
|
84
|
+
return false;
|
|
85
|
+
installed = true;
|
|
86
|
+
target.on('unhandledRejection', (reason) => {
|
|
87
|
+
// Never let the guard itself throw: an exception raised in here would
|
|
88
|
+
// become an uncaughtException and kill the daemon in the very path that
|
|
89
|
+
// exists to prevent that.
|
|
90
|
+
try {
|
|
91
|
+
handleDaemonUnhandledRejection(reason, sink);
|
|
92
|
+
}
|
|
93
|
+
catch { /* logging must never be fatal */ }
|
|
94
|
+
});
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
/** Test-only reset of the idempotency latch. */
|
|
98
|
+
export function resetDaemonRejectionGuardForTest() {
|
|
99
|
+
installed = false;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=daemon-rejection-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-rejection-guard.js","sourceRoot":"","sources":["../../src/utils/daemon-rejection-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAOhE,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,OAAO,wBAAwB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,wBAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAe,EACf,IAAsB;IAEtB,IAAI,sBAAsB,CAAC,MAA+B,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,CAAC,KAAK,CACR,4EAA4E;UAC1E,6DAA6D,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAC/F,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAsB,EACtB,SAAsF,OAAO;IAE7F,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5B,SAAS,GAAG,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;QAClD,sEAAsE;QACtE,wEAAwE;QACxE,0BAA0B;QAC1B,IAAI,CAAC;YACH,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,gCAAgC;IAC9C,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keys the dashboard process reads from ~/.botmux/.env, beyond
|
|
3
|
+
* {@link DAEMON_ENV_KEYS} (which is folded in below: every key baked into the
|
|
4
|
+
* shared PM2 env block is by definition a setting the dashboard may resolve,
|
|
5
|
+
* and a foreground/manual `dist/index-dashboard.js` has only the file).
|
|
6
|
+
*
|
|
7
|
+
* Each entry names its consumer inside the dashboard process, so a future
|
|
8
|
+
* reader can verify — or delete — it:
|
|
9
|
+
* - SESSION_DATA_DIR → config.session.dataDir. The dashboard shares
|
|
10
|
+
* pairings/federations/memberships with the daemons under {dataDir}/*.json;
|
|
11
|
+
* a wrong value silently splits the store (cli.ts also bakes it).
|
|
12
|
+
* - CLI_ID / BACKEND_TYPE → config.daemon.cliId / config.daemon.backendType,
|
|
13
|
+
* the fleet-wide fallback the dashboard applies to a bot that pins neither
|
|
14
|
+
* (VC-meeting consumer isolation verdict, adapter capability probes).
|
|
15
|
+
* - BOTMUX_SCHEDULE_TIMEZONE → utils/timezone scheduleTimeZone(). The settings
|
|
16
|
+
* payload advertises `effectiveScheduleTimeZone`; dropping the env override
|
|
17
|
+
* here would make the UI report a zone the daemons do not fire in.
|
|
18
|
+
* - FEISHU_USER_ACCESS_TOKEN → utils/user-token resolveUserToken(), used by
|
|
19
|
+
* dashboard/feed-groups.ts. A credential, kept for the same reason as the H5
|
|
20
|
+
* APP_SECRET below: the dashboard is a real consumer. Not a licence to add
|
|
21
|
+
* other credentials — a key belongs here only with a named consumer.
|
|
22
|
+
* - BOTMUX_DASHBOARD_DEV_RELOAD → dashboard.ts dev-reload switch.
|
|
23
|
+
* - proxy family → outbound HTTPS from the dashboard itself (npm registry
|
|
24
|
+
* version/rollback lookups, hd2d asset download) on hosts without direct
|
|
25
|
+
* internet. These are forwarded to CLI children by design elsewhere
|
|
26
|
+
* (PROXY_ENV_KEYS), so allowing them adds no new exposure.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DASHBOARD_ENV_ALLOWLIST: readonly ["WEB_EXTERNAL_HOST", "BOTMUX_DASHBOARD_EXTERNAL_HOST", "BOTMUX_DASHBOARD_HOST", "BOTMUX_DASHBOARD_PORT", "BOTMUX_DAEMON_IPC_BASE_PORT", "BOTMUX_DASHBOARD_PUBLIC_READONLY", "BOTMUX_PUBLIC_URL", "BOTMUX_DASHBOARD_CONTROL_AUDIT_PATH", "BOTMUX_DASHBOARD_TERMINAL_CONTROL_TTL_MS", "SESSION_DATA_DIR", "CLI_ID", "BACKEND_TYPE", "BOTMUX_SCHEDULE_TIMEZONE", "FEISHU_USER_ACCESS_TOKEN", "BOTMUX_DASHBOARD_DEV_RELOAD", "http_proxy", "https_proxy", "HTTP_PROXY", "HTTPS_PROXY", "no_proxy", "NO_PROXY", "all_proxy", "ALL_PROXY"];
|
|
29
|
+
/**
|
|
30
|
+
* True for a key the dashboard may take from ~/.botmux/.env.
|
|
31
|
+
*
|
|
32
|
+
* The Feishu H5 login family is matched by PREFIX, not by name: the dashboard
|
|
33
|
+
* is that family's single consumer (resolveDashboardH5AuthConfig), and a knob
|
|
34
|
+
* added tomorrow must work the day it ships — the same prefix rule
|
|
35
|
+
* stripDashboardH5Env() uses to remove it everywhere else, so the two cannot
|
|
36
|
+
* drift into "loaded here, not stripped there".
|
|
37
|
+
*/
|
|
38
|
+
export declare function isDashboardEnvKey(key: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Load `envPath` and merge ONLY {@link isDashboardEnvKey} keys into `target`
|
|
41
|
+
* (default process.env).
|
|
42
|
+
*
|
|
43
|
+
* Semantics kept identical to the previous wholesale `dotenvConfig({ path })`
|
|
44
|
+
* for allowlisted keys — a value already present in `target` wins, so the
|
|
45
|
+
* deterministic PM2 snapshot (resolveDaemonEnv → DAEMON_ENV_KEYS) still
|
|
46
|
+
* outranks the file. The difference is everything else in the file: it is
|
|
47
|
+
* parsed into a private object and dropped.
|
|
48
|
+
*
|
|
49
|
+
* A missing/unreadable file is a no-op (dotenv reports it in `result.error`;
|
|
50
|
+
* the dashboard has always treated an absent .env as "no settings").
|
|
51
|
+
*/
|
|
52
|
+
export declare function loadDashboardEnvFile(envPath: string, target?: NodeJS.ProcessEnv): void;
|
|
53
|
+
//# sourceMappingURL=dashboard-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-env.d.ts","sourceRoot":"","sources":["../../src/utils/dashboard-env.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,uBAAuB,ghBAU1B,CAAC;AAIX;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,UAAwB,GACtC,IAAI,CAsBN"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Dashboard-side `.env` loading, narrowed to an ALLOWLIST.
|
|
2
|
+
//
|
|
3
|
+
// ~/.botmux/.env is a general-purpose operator file: besides botmux settings it
|
|
4
|
+
// routinely holds unrelated credentials (LARK_APP_SECRET for the legacy
|
|
5
|
+
// single-bot mode, GITHUB_TOKEN, model API keys, whatever the host's tooling
|
|
6
|
+
// wants). index-dashboard.ts used to dotenv-load that file WHOLESALE into
|
|
7
|
+
// process.env, and the dashboard process is the worst place in the fleet for
|
|
8
|
+
// that: it forks debug-terminal shells, `botmux start-bot/stop-bot` children,
|
|
9
|
+
// a global npm/pnpm/bun install (whose lifecycle scripts run with the inherited
|
|
10
|
+
// env), herdr plugin installs, and it starts plugin PM2 services — every one of
|
|
11
|
+
// those inherited the whole file. A secret that has no consumer in the
|
|
12
|
+
// dashboard must therefore never enter its process.env at all.
|
|
13
|
+
//
|
|
14
|
+
// So the entry loads the file into a side object and copies over ONLY the keys
|
|
15
|
+
// the dashboard actually consumes (this module's allowlist). Everything else —
|
|
16
|
+
// especially credentials — stays in the file. The per-boundary redaction
|
|
17
|
+
// (redactChildEnv / stripDashboardH5Env) remains the second layer for the keys
|
|
18
|
+
// the dashboard legitimately holds, most importantly the H5 login family.
|
|
19
|
+
//
|
|
20
|
+
// Adding a key here is a deliberate act: it means "the dashboard process reads
|
|
21
|
+
// this, and every child it forks may see it unless a boundary strips it".
|
|
22
|
+
import { config as dotenvConfig } from 'dotenv';
|
|
23
|
+
import { DAEMON_ENV_KEYS } from '../cli/daemon-lifecycle-env.js';
|
|
24
|
+
import { DASHBOARD_H5_ENV_PREFIX } from './child-env.js';
|
|
25
|
+
/**
|
|
26
|
+
* Keys the dashboard process reads from ~/.botmux/.env, beyond
|
|
27
|
+
* {@link DAEMON_ENV_KEYS} (which is folded in below: every key baked into the
|
|
28
|
+
* shared PM2 env block is by definition a setting the dashboard may resolve,
|
|
29
|
+
* and a foreground/manual `dist/index-dashboard.js` has only the file).
|
|
30
|
+
*
|
|
31
|
+
* Each entry names its consumer inside the dashboard process, so a future
|
|
32
|
+
* reader can verify — or delete — it:
|
|
33
|
+
* - SESSION_DATA_DIR → config.session.dataDir. The dashboard shares
|
|
34
|
+
* pairings/federations/memberships with the daemons under {dataDir}/*.json;
|
|
35
|
+
* a wrong value silently splits the store (cli.ts also bakes it).
|
|
36
|
+
* - CLI_ID / BACKEND_TYPE → config.daemon.cliId / config.daemon.backendType,
|
|
37
|
+
* the fleet-wide fallback the dashboard applies to a bot that pins neither
|
|
38
|
+
* (VC-meeting consumer isolation verdict, adapter capability probes).
|
|
39
|
+
* - BOTMUX_SCHEDULE_TIMEZONE → utils/timezone scheduleTimeZone(). The settings
|
|
40
|
+
* payload advertises `effectiveScheduleTimeZone`; dropping the env override
|
|
41
|
+
* here would make the UI report a zone the daemons do not fire in.
|
|
42
|
+
* - FEISHU_USER_ACCESS_TOKEN → utils/user-token resolveUserToken(), used by
|
|
43
|
+
* dashboard/feed-groups.ts. A credential, kept for the same reason as the H5
|
|
44
|
+
* APP_SECRET below: the dashboard is a real consumer. Not a licence to add
|
|
45
|
+
* other credentials — a key belongs here only with a named consumer.
|
|
46
|
+
* - BOTMUX_DASHBOARD_DEV_RELOAD → dashboard.ts dev-reload switch.
|
|
47
|
+
* - proxy family → outbound HTTPS from the dashboard itself (npm registry
|
|
48
|
+
* version/rollback lookups, hd2d asset download) on hosts without direct
|
|
49
|
+
* internet. These are forwarded to CLI children by design elsewhere
|
|
50
|
+
* (PROXY_ENV_KEYS), so allowing them adds no new exposure.
|
|
51
|
+
*/
|
|
52
|
+
export const DASHBOARD_ENV_ALLOWLIST = [
|
|
53
|
+
...DAEMON_ENV_KEYS,
|
|
54
|
+
'SESSION_DATA_DIR',
|
|
55
|
+
'CLI_ID',
|
|
56
|
+
'BACKEND_TYPE',
|
|
57
|
+
'BOTMUX_SCHEDULE_TIMEZONE',
|
|
58
|
+
'FEISHU_USER_ACCESS_TOKEN',
|
|
59
|
+
'BOTMUX_DASHBOARD_DEV_RELOAD',
|
|
60
|
+
'http_proxy', 'https_proxy', 'HTTP_PROXY', 'HTTPS_PROXY',
|
|
61
|
+
'no_proxy', 'NO_PROXY', 'all_proxy', 'ALL_PROXY',
|
|
62
|
+
];
|
|
63
|
+
const ALLOWED = new Set(DASHBOARD_ENV_ALLOWLIST);
|
|
64
|
+
/**
|
|
65
|
+
* True for a key the dashboard may take from ~/.botmux/.env.
|
|
66
|
+
*
|
|
67
|
+
* The Feishu H5 login family is matched by PREFIX, not by name: the dashboard
|
|
68
|
+
* is that family's single consumer (resolveDashboardH5AuthConfig), and a knob
|
|
69
|
+
* added tomorrow must work the day it ships — the same prefix rule
|
|
70
|
+
* stripDashboardH5Env() uses to remove it everywhere else, so the two cannot
|
|
71
|
+
* drift into "loaded here, not stripped there".
|
|
72
|
+
*/
|
|
73
|
+
export function isDashboardEnvKey(key) {
|
|
74
|
+
return key.startsWith(DASHBOARD_H5_ENV_PREFIX) || ALLOWED.has(key);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Load `envPath` and merge ONLY {@link isDashboardEnvKey} keys into `target`
|
|
78
|
+
* (default process.env).
|
|
79
|
+
*
|
|
80
|
+
* Semantics kept identical to the previous wholesale `dotenvConfig({ path })`
|
|
81
|
+
* for allowlisted keys — a value already present in `target` wins, so the
|
|
82
|
+
* deterministic PM2 snapshot (resolveDaemonEnv → DAEMON_ENV_KEYS) still
|
|
83
|
+
* outranks the file. The difference is everything else in the file: it is
|
|
84
|
+
* parsed into a private object and dropped.
|
|
85
|
+
*
|
|
86
|
+
* A missing/unreadable file is a no-op (dotenv reports it in `result.error`;
|
|
87
|
+
* the dashboard has always treated an absent .env as "no settings").
|
|
88
|
+
*/
|
|
89
|
+
export function loadDashboardEnvFile(envPath, target = process.env) {
|
|
90
|
+
// `processEnv` (dotenv ≥16.4) makes dotenv populate THIS object instead of
|
|
91
|
+
// process.env, so non-allowlisted secrets are never in the process at all —
|
|
92
|
+
// not even for the microtask between load and delete.
|
|
93
|
+
const fileEnv = {};
|
|
94
|
+
const before = new Set(Object.keys(target));
|
|
95
|
+
dotenvConfig({ path: envPath, processEnv: fileEnv });
|
|
96
|
+
// Belt for the day dotenv drops/renames `processEnv`: anything that appeared
|
|
97
|
+
// in `target` across the call can only have come from the file, so a
|
|
98
|
+
// non-allowlisted newcomer is removed. Keys that already existed are never
|
|
99
|
+
// touched — deleting an inherited PATH/HOME because the file happens to
|
|
100
|
+
// mention it would be far worse than the leak this guards.
|
|
101
|
+
for (const key of Object.keys(target)) {
|
|
102
|
+
if (before.has(key) || isDashboardEnvKey(key))
|
|
103
|
+
continue;
|
|
104
|
+
delete target[key];
|
|
105
|
+
}
|
|
106
|
+
for (const [key, value] of Object.entries(fileEnv)) {
|
|
107
|
+
if (value === undefined)
|
|
108
|
+
continue;
|
|
109
|
+
if (!isDashboardEnvKey(key))
|
|
110
|
+
continue;
|
|
111
|
+
if (target[key] !== undefined)
|
|
112
|
+
continue; // dotenv never overrides an existing var
|
|
113
|
+
target[key] = value;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=dashboard-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-env.js","sourceRoot":"","sources":["../../src/utils/dashboard-env.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,wEAAwE;AACxE,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,uEAAuE;AACvE,+DAA+D;AAC/D,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAC/E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,eAAe;IAClB,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa;IACxD,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW;CACxC,CAAC;AAEX,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAS,uBAAuB,CAAC,CAAC;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAA4B,OAAO,CAAC,GAAG;IAEvC,2EAA2E;IAC3E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACrD,6EAA6E;IAC7E,qEAAqE;IACrE,2EAA2E;IAC3E,wEAAwE;IACxE,2DAA2D;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAAE,SAAS;QACtC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,yCAAyC;QAClF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-install.d.ts","sourceRoot":"","sources":["../../src/utils/global-install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"global-install.d.ts","sourceRoot":"","sources":["../../src/utils/global-install.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;iEAC6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;4EACwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,OAAO,EAAE,sBAAsB;aAC/B,WAAW,EAAE,MAAM;gBADnB,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM;CAKtC;AAuFD,qFAAqF;AACrF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,sBAAsB,CA2BxB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,GAAE,MAA4B,EACzC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,SAAkB,GACrB,iBAAiB,CA+EnB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,GAAE,MAA4B,EACzC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,SAAkB,GACrB,iBAAiB,GAAG,IAAI,CAO1B;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAED,sFAAsF;AACtF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,SAAgC,GACvC,iBAAiB,CAYnB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAG1E"}
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* supported; known Yarn layouts are identified for diagnostics but rejected
|
|
8
8
|
* until their global-dir/bin-dir semantics are handled explicitly.
|
|
9
9
|
*/
|
|
10
|
+
import { spawnSync } from 'node:child_process';
|
|
10
11
|
import { readdirSync, realpathSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
11
13
|
import { posix, win32 } from 'node:path';
|
|
12
14
|
import { botmuxInstallRoot } from './install-info.js';
|
|
13
15
|
export class UnsupportedGlobalInstallError extends Error {
|
|
@@ -23,6 +25,46 @@ export class UnsupportedGlobalInstallError extends Error {
|
|
|
23
25
|
function normalized(path) {
|
|
24
26
|
return path.replace(/\\/g, '/').replace(/\/+$/, '');
|
|
25
27
|
}
|
|
28
|
+
/** Node resolves pnpm 11's global botmux symlink to this store realpath. */
|
|
29
|
+
function pnpmV11StoreMatch(root) {
|
|
30
|
+
return root.match(/^(.*\/pnpm)\/store\/(v\d+)\/links\/@\/botmux\/[^/]+\/[^/]+\/node_modules\/botmux$/i);
|
|
31
|
+
}
|
|
32
|
+
function pnpmGlobalDir(pathImpl, layout, platform = process.platform) {
|
|
33
|
+
const command = platform === 'win32' ? 'pnpm.cmd' : 'pnpm';
|
|
34
|
+
const result = spawnSync(command, ['list', '-g', '--depth', '0', '--json'], {
|
|
35
|
+
cwd: homedir(),
|
|
36
|
+
encoding: 'utf8',
|
|
37
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
38
|
+
// .cmd shims are not directly executable: without cmd.exe the Windows
|
|
39
|
+
// install path fails with ENOENT/EINVAL. Mirror the update execution
|
|
40
|
+
// strategy (installLatestBotmuxSync / runGlobalInstall). Args are fixed
|
|
41
|
+
// literals, so the shell cannot reinterpret anything.
|
|
42
|
+
shell: platform === 'win32',
|
|
43
|
+
// This probe runs on request-serving paths (dashboard settings, update
|
|
44
|
+
// status, scheduled maintenance) with no plan cache before the first
|
|
45
|
+
// successful update, so a hung pnpm or wedged disk must never freeze the
|
|
46
|
+
// event loop. Any timeout/error keeps callers on the fail-closed path
|
|
47
|
+
// (status !== 0 -> undefined). SIGKILL cannot be trapped by the child.
|
|
48
|
+
timeout: 5_000,
|
|
49
|
+
killSignal: 'SIGKILL',
|
|
50
|
+
maxBuffer: 256 * 1024,
|
|
51
|
+
});
|
|
52
|
+
if (result.status !== 0 || typeof result.stdout !== 'string')
|
|
53
|
+
return undefined;
|
|
54
|
+
let globalRoot;
|
|
55
|
+
try {
|
|
56
|
+
const listing = JSON.parse(result.stdout);
|
|
57
|
+
globalRoot = Array.isArray(listing) && typeof listing[0]?.path === 'string'
|
|
58
|
+
? normalized(listing[0].path)
|
|
59
|
+
: undefined;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
if (!globalRoot)
|
|
65
|
+
return undefined;
|
|
66
|
+
return globalRoot.endsWith(`/${layout}`) ? pathImpl.dirname(globalRoot) : undefined;
|
|
67
|
+
}
|
|
26
68
|
/**
|
|
27
69
|
* pnpm 11 installs a global project in a versioned directory and points a
|
|
28
70
|
* stable content-addressed symlink at that directory:
|
|
@@ -66,6 +108,8 @@ export function detectGlobalInstallManager(packageRoot, platform = process.platf
|
|
|
66
108
|
// path. Match it before the generic node_modules layouts below.
|
|
67
109
|
if (root.includes('/.pnpm/'))
|
|
68
110
|
return 'pnpm';
|
|
111
|
+
if (pnpmV11StoreMatch(root))
|
|
112
|
+
return 'pnpm';
|
|
69
113
|
// Known non-npm managers must never fall through to npm, especially on
|
|
70
114
|
// Windows where all three can end in <prefix>/node_modules/botmux.
|
|
71
115
|
if (root.includes('/.bun/install/global/node_modules/botmux')
|
|
@@ -107,22 +151,34 @@ export function resolveGlobalInstallPlan(packageRoot = botmuxInstallRoot(), plat
|
|
|
107
151
|
const marker = '/.pnpm/';
|
|
108
152
|
const markerIndex = root.toLowerCase().indexOf(marker);
|
|
109
153
|
const pnpmV11Match = root.match(/^(.*\/pnpm\/global)\/(v\d+)\/[^/]+\/node_modules\/botmux$/i);
|
|
154
|
+
const pnpmV11Store = pnpmV11StoreMatch(root);
|
|
110
155
|
// Use the capture from the normalized path. Besides avoiding a fragile
|
|
111
156
|
// separator search, this preserves Windows drive letters while converting
|
|
112
157
|
// backslashes to the separator expected by pnpm's command arguments.
|
|
113
|
-
const globalDir = pnpmV11Match?.[1]
|
|
158
|
+
const globalDir = pnpmV11Match?.[1]
|
|
159
|
+
?? (pnpmV11Store ? pnpmGlobalDir(path, pnpmV11Store[2], platform) : undefined);
|
|
160
|
+
if (pnpmV11Store && !globalDir) {
|
|
161
|
+
throw new UnsupportedGlobalInstallError('pnpm', packageRoot);
|
|
162
|
+
}
|
|
114
163
|
const globalInstallDir = pnpmV11Match
|
|
115
164
|
? path.join(globalDir, pnpmV11Match[2])
|
|
116
|
-
:
|
|
117
|
-
?
|
|
118
|
-
:
|
|
165
|
+
: pnpmV11Store
|
|
166
|
+
? path.join(globalDir, pnpmV11Store[2])
|
|
167
|
+
: markerIndex >= 0
|
|
168
|
+
? root.slice(0, markerIndex)
|
|
169
|
+
: path.dirname(path.dirname(packageRoot));
|
|
119
170
|
// pnpm appends its global layout version (currently "5", or "v11") to
|
|
120
171
|
// --global-dir. The pnpm 11 runtime adds another temporary directory below
|
|
121
172
|
// the layout version, so pass the parent of that layout to pnpm.
|
|
122
173
|
const resolvedGlobalDir = globalDir ?? path.dirname(globalInstallDir);
|
|
123
174
|
const activePackageRoot = pnpmV11Match
|
|
124
175
|
? pnpmV11StablePackageRoot(packageRoot, resolvedGlobalDir, pnpmV11Match[2], path)
|
|
125
|
-
:
|
|
176
|
+
: pnpmV11Store
|
|
177
|
+
? pnpmV11StablePackageRoot(packageRoot, resolvedGlobalDir, pnpmV11Store[2], path)
|
|
178
|
+
: path.join(globalInstallDir, 'node_modules', 'botmux');
|
|
179
|
+
if (pnpmV11Store && activePackageRoot === packageRoot) {
|
|
180
|
+
throw new UnsupportedGlobalInstallError('pnpm', packageRoot);
|
|
181
|
+
}
|
|
126
182
|
return {
|
|
127
183
|
manager,
|
|
128
184
|
command: 'pnpm',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-install.js","sourceRoot":"","sources":["../../src/utils/global-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAiBtD,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAEpC;IACA;IAFlB,YACkB,OAA+B,EAC/B,WAAmB;QAEnC,KAAK,CAAC,sCAAsC,OAAO,MAAM,WAAW,EAAE,CAAC,CAAC;QAHxD,YAAO,GAAP,OAAO,CAAwB;QAC/B,gBAAW,GAAX,WAAW,CAAQ;QAGnC,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAC/B,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,QAAsB;IAEtB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBAAE,SAAS;YACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC;gBACH,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,WAAW;oBAAE,OAAO,SAAS,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,yDAAyD;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,SAAS,CAAC;IAE7D,+EAA+E;IAC/E,gEAAgE;IAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"global-install.js","sourceRoot":"","sources":["../../src/utils/global-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,21 @@ export interface NodeCheck {
|
|
|
10
10
|
/** Classify the running Node against the minimum major. Pure. */
|
|
11
11
|
export declare function checkNode(version?: string, required?: number): NodeCheck;
|
|
12
12
|
/**
|
|
13
|
-
* The version to show in the update card
|
|
14
|
-
* published version from package.json. A
|
|
15
|
-
* `0.0.0` (CI injects the real version only
|
|
16
|
-
*
|
|
17
|
-
* tag, e.g. "v2.86.0", stripped
|
|
18
|
-
* display, "behind" comparison, and
|
|
19
|
-
* Falls back to the raw package.json
|
|
13
|
+
* The version to show in the update card, for the install rooted at `rootDir`.
|
|
14
|
+
* For an npm install this is the real published version from package.json. A
|
|
15
|
+
* source checkout ships the unbuilt `0.0.0` (CI injects the real version only
|
|
16
|
+
* at publish), so we derive a real baseline from the latest git tag
|
|
17
|
+
* (`git describe --tags --abbrev=0` → the clean tag, e.g. "v2.86.0", stripped
|
|
18
|
+
* of the leading v). That makes the version display, "behind" comparison, and
|
|
19
|
+
* changelog range correct in dev mode too. Falls back to the raw package.json
|
|
20
|
+
* version if git is unavailable.
|
|
21
|
+
*
|
|
22
|
+
* Takes an explicit dir so the local-dev update path can report the version of
|
|
23
|
+
* the checkout it actually updated (the wrapper's checkout), which may differ
|
|
24
|
+
* from the running process's install root.
|
|
20
25
|
*/
|
|
26
|
+
export declare function resolveCurrentVersionAt(rootDir: string): string;
|
|
27
|
+
/** The version to show for the running install (its own package root). */
|
|
21
28
|
export declare function resolveCurrentVersion(): string;
|
|
22
29
|
export type InstallKind = 'npm-global' | 'pnpm-global' | 'yarn-global' | 'bun-global' | 'source-checkout' | 'unknown';
|
|
23
30
|
export interface InstallEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-diagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"AAqBA,gEAAgE;AAChE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,SAAS;IACxB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAwB,EAAE,QAAQ,SAAiB,GAAG,SAAS,CAIjG;AAED
|
|
1
|
+
{"version":3,"file":"install-diagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"AAqBA,gEAAgE;AAChE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,SAAS;IACxB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAwB,EAAE,QAAQ,SAAiB,GAAG,SAAS,CAIjG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe/D;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,YAAY,GACZ,iBAAiB,GACjB,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C;AAwCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAe9F;AAgCD,yDAAyD;AACzD,wBAAgB,oBAAoB,IAAI,kBAAkB,CAEzD"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { execFileSync } from 'node:child_process';
|
|
16
16
|
import { readFileSync, realpathSync, statSync } from 'node:fs';
|
|
17
17
|
import { dirname } from 'node:path';
|
|
18
|
-
import { isLocalDevInstallAt,
|
|
18
|
+
import { isLocalDevInstallAt, botmuxVersionAt, botmuxInstallRoot } from './install-info.js';
|
|
19
19
|
import { detectGlobalInstallManager } from './global-install.js';
|
|
20
20
|
import { parseVersion } from '../core/update-check.js';
|
|
21
21
|
/** Minimum Node major (mirrors package.json `engines.node`). */
|
|
@@ -27,21 +27,26 @@ export function checkNode(version = process.version, required = MIN_NODE_MAJOR)
|
|
|
27
27
|
return { version, major, required, ok: major >= required };
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* The version to show in the update card
|
|
31
|
-
* published version from package.json. A
|
|
32
|
-
* `0.0.0` (CI injects the real version only
|
|
33
|
-
*
|
|
34
|
-
* tag, e.g. "v2.86.0", stripped
|
|
35
|
-
* display, "behind" comparison, and
|
|
36
|
-
* Falls back to the raw package.json
|
|
30
|
+
* The version to show in the update card, for the install rooted at `rootDir`.
|
|
31
|
+
* For an npm install this is the real published version from package.json. A
|
|
32
|
+
* source checkout ships the unbuilt `0.0.0` (CI injects the real version only
|
|
33
|
+
* at publish), so we derive a real baseline from the latest git tag
|
|
34
|
+
* (`git describe --tags --abbrev=0` → the clean tag, e.g. "v2.86.0", stripped
|
|
35
|
+
* of the leading v). That makes the version display, "behind" comparison, and
|
|
36
|
+
* changelog range correct in dev mode too. Falls back to the raw package.json
|
|
37
|
+
* version if git is unavailable.
|
|
38
|
+
*
|
|
39
|
+
* Takes an explicit dir so the local-dev update path can report the version of
|
|
40
|
+
* the checkout it actually updated (the wrapper's checkout), which may differ
|
|
41
|
+
* from the running process's install root.
|
|
37
42
|
*/
|
|
38
|
-
export function
|
|
39
|
-
const raw =
|
|
43
|
+
export function resolveCurrentVersionAt(rootDir) {
|
|
44
|
+
const raw = botmuxVersionAt(rootDir);
|
|
40
45
|
if (raw !== '0.0.0')
|
|
41
46
|
return raw;
|
|
42
47
|
try {
|
|
43
48
|
const tag = execFileSync('git', ['describe', '--tags', '--abbrev=0'], {
|
|
44
|
-
cwd:
|
|
49
|
+
cwd: rootDir,
|
|
45
50
|
encoding: 'utf-8',
|
|
46
51
|
timeout: 3_000,
|
|
47
52
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
@@ -53,6 +58,10 @@ export function resolveCurrentVersion() {
|
|
|
53
58
|
return raw; // no git / no tags / not a checkout
|
|
54
59
|
}
|
|
55
60
|
}
|
|
61
|
+
/** The version to show for the running install (its own package root). */
|
|
62
|
+
export function resolveCurrentVersion() {
|
|
63
|
+
return resolveCurrentVersionAt(botmuxInstallRoot());
|
|
64
|
+
}
|
|
56
65
|
/** A shim under 4 KiB is a tiny `exec node "<cli.js>"` wrapper; the real cli.js
|
|
57
66
|
* is hundreds of KiB, so a small file is the only one worth string-scanning. */
|
|
58
67
|
const MAX_SHIM_BYTES = 4096;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-diagnostics.js","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"install-diagnostics.js","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"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"}
|