botmux 3.5.0 → 3.6.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 +56 -396
- package/README.md +55 -396
- package/dist/.runtime-build-id +1 -0
- package/dist/adapters/backend/sandbox.d.ts +99 -279
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +424 -826
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts +6 -0
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +197 -11
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/coco.js +4 -4
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +9 -6
- 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 +9 -5
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/fs-policy.d.ts +244 -0
- package/dist/adapters/cli/fs-policy.d.ts.map +1 -0
- package/dist/adapters/cli/fs-policy.js +537 -0
- package/dist/adapters/cli/fs-policy.js.map +1 -0
- package/dist/adapters/cli/grok.d.ts +2 -1
- package/dist/adapters/cli/grok.d.ts.map +1 -1
- package/dist/adapters/cli/grok.js +2 -1
- package/dist/adapters/cli/grok.js.map +1 -1
- package/dist/adapters/cli/hermes.d.ts.map +1 -1
- package/dist/adapters/cli/hermes.js +8 -4
- package/dist/adapters/cli/hermes.js.map +1 -1
- package/dist/adapters/cli/mtr.d.ts.map +1 -1
- package/dist/adapters/cli/mtr.js +3 -2
- package/dist/adapters/cli/mtr.js.map +1 -1
- package/dist/adapters/cli/opencode.d.ts.map +1 -1
- package/dist/adapters/cli/opencode.js +5 -4
- package/dist/adapters/cli/opencode.js.map +1 -1
- package/dist/adapters/cli/read-isolation.d.ts +14 -200
- package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
- package/dist/adapters/cli/read-isolation.js +18 -477
- package/dist/adapters/cli/read-isolation.js.map +1 -1
- package/dist/adapters/cli/relay.js +2 -2
- package/dist/adapters/cli/relay.js.map +1 -1
- package/dist/adapters/cli/runner-input.d.ts +2 -2
- package/dist/adapters/cli/runner-input.d.ts.map +1 -1
- package/dist/adapters/cli/runner-input.js +9 -6
- package/dist/adapters/cli/runner-input.js.map +1 -1
- package/dist/adapters/cli/seed.d.ts.map +1 -1
- package/dist/adapters/cli/seed.js +2 -1
- package/dist/adapters/cli/seed.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +3 -2
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +25 -18
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +54 -23
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +91 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +297 -104
- package/dist/cli.js.map +1 -1
- package/dist/codex-app-runner.js +85 -192
- package/dist/codex-app-runner.js.map +1 -1
- package/dist/config.d.ts +0 -16
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -30
- package/dist/config.js.map +1 -1
- package/dist/core/ask-broker.d.ts +12 -0
- package/dist/core/ask-broker.d.ts.map +1 -1
- package/dist/core/ask-broker.js +41 -0
- package/dist/core/ask-broker.js.map +1 -1
- package/dist/core/bot-turn-mutation-gate.d.ts +24 -0
- package/dist/core/bot-turn-mutation-gate.d.ts.map +1 -0
- package/dist/core/bot-turn-mutation-gate.js +369 -0
- package/dist/core/bot-turn-mutation-gate.js.map +1 -0
- package/dist/core/command-handler.d.ts +5 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +53 -73
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +356 -84
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts +8 -0
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/host-overload-alert.d.ts +157 -0
- package/dist/core/host-overload-alert.d.ts.map +1 -0
- package/dist/core/host-overload-alert.js +251 -0
- package/dist/core/host-overload-alert.js.map +1 -0
- package/dist/core/passthrough-commands.d.ts +8 -0
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +20 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/plugins/mcp/gateway-installer.d.ts.map +1 -1
- package/dist/core/plugins/mcp/gateway-installer.js +14 -2
- package/dist/core/plugins/mcp/gateway-installer.js.map +1 -1
- package/dist/core/restart-coordinator.d.ts +28 -0
- package/dist/core/restart-coordinator.d.ts.map +1 -0
- package/dist/core/restart-coordinator.js +82 -0
- package/dist/core/restart-coordinator.js.map +1 -0
- package/dist/core/restart-followup-policy.d.ts +112 -0
- package/dist/core/restart-followup-policy.d.ts.map +1 -0
- package/dist/core/restart-followup-policy.js +49 -0
- package/dist/core/restart-followup-policy.js.map +1 -0
- package/dist/core/role-library.d.ts +1 -1
- package/dist/core/role-library.js +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js +8 -0
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/session-discovery.d.ts +14 -0
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +25 -0
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-liveness.d.ts +15 -0
- package/dist/core/session-liveness.d.ts.map +1 -0
- package/dist/core/session-liveness.js +76 -0
- package/dist/core/session-liveness.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +90 -60
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-row-enrichment.d.ts +15 -0
- package/dist/core/session-row-enrichment.d.ts.map +1 -0
- package/dist/core/session-row-enrichment.js +93 -0
- package/dist/core/session-row-enrichment.js.map +1 -0
- package/dist/core/slash-inject.js +1 -1
- package/dist/core/slash-inject.js.map +1 -1
- package/dist/core/trigger-final-suppression.d.ts +24 -0
- package/dist/core/trigger-final-suppression.d.ts.map +1 -0
- package/dist/core/trigger-final-suppression.js +97 -0
- package/dist/core/trigger-final-suppression.js.map +1 -0
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +64 -4
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +44 -0
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +333 -38
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +5 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +526 -35
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/aggregator.d.ts +1 -0
- package/dist/dashboard/aggregator.d.ts.map +1 -1
- package/dist/dashboard/aggregator.js +34 -6
- package/dist/dashboard/aggregator.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +8 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +10 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/compat.d.ts +102 -2
- package/dist/dashboard/compat.d.ts.map +1 -1
- package/dist/dashboard/compat.js +78 -14
- package/dist/dashboard/compat.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +1 -0
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/desktop-asks.d.ts +21 -0
- package/dist/dashboard/desktop-asks.d.ts.map +1 -0
- package/dist/dashboard/desktop-asks.js +49 -0
- package/dist/dashboard/desktop-asks.js.map +1 -0
- package/dist/dashboard/public-redact.d.ts +7 -0
- package/dist/dashboard/public-redact.d.ts.map +1 -1
- package/dist/dashboard/public-redact.js +35 -3
- package/dist/dashboard/public-redact.js.map +1 -1
- package/dist/dashboard/session-presentation.d.ts +16 -0
- package/dist/dashboard/session-presentation.d.ts.map +1 -0
- package/dist/dashboard/session-presentation.js +62 -0
- package/dist/dashboard/session-presentation.js.map +1 -0
- package/dist/dashboard/settings-write-applier.d.ts +2 -1
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +19 -1
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/trigger-api.d.ts.map +1 -1
- package/dist/dashboard/trigger-api.js +19 -1
- package/dist/dashboard/trigger-api.js.map +1 -1
- package/dist/dashboard/vc-consumer-profiles-api.d.ts +7 -2
- package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
- package/dist/dashboard/vc-consumer-profiles-api.js +13 -0
- package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +18 -5
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts +16 -0
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +288 -7
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +10 -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/client-shell.d.ts +29 -0
- package/dist/dashboard/web/client-shell.d.ts.map +1 -0
- package/dist/dashboard/web/client-shell.js +89 -0
- package/dist/dashboard/web/client-shell.js.map +1 -0
- package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
- package/dist/dashboard/web/connectors-page.js +5 -1
- package/dist/dashboard/web/connectors-page.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +130 -22
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/preferences.d.ts +7 -0
- package/dist/dashboard/web/preferences.d.ts.map +1 -1
- package/dist/dashboard/web/preferences.js +32 -0
- package/dist/dashboard/web/preferences.js.map +1 -1
- package/dist/dashboard/web/sessions-kanban.d.ts +1 -1
- package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-kanban.js +1 -1
- package/dist/dashboard/web/sessions-kanban.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +78 -67
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts +4 -0
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +14 -1
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/settings-page.d.ts +6 -0
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +55 -30
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/store.d.ts +1 -2
- package/dist/dashboard/web/store.d.ts.map +1 -1
- package/dist/dashboard/web/store.js +69 -20
- package/dist/dashboard/web/store.js.map +1 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.js +128 -42
- package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +9 -2
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-VQMPUJ4Y.js +10 -0
- package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-QCPPKCX3.js → chunk-JMRGZQDB.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-EJDYUINZ.js → chunk-NP4JUBGS.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-WXPMNEYV.js → chunk-P327LXOT.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-SNKATZWK.js +49 -0
- package/dist/dashboard-web/chunks/connectors-page-DOY4J3ZL.js +1 -0
- package/dist/dashboard-web/chunks/{groups-page-3P4TLUMF.js → groups-page-74TS2DIH.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-TDCZV56A.js → insights-page-AYCO65JC.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-QWCWL3SX.js → monitor-room-YKYLTSAN.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-IOWFSNVC.js → monitoring-page-QBIUNRBR.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-5AUPEHZP.js → office-page-4PH2A26P.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-H73D5UT4.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-WJVB52ET.js → roles-page-U4BTOQ7F.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-RVRWHP4V.js → schedules-page-RHRHX7R7.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-page-VSC6AM5G.js +2 -0
- package/dist/dashboard-web/chunks/settings-page-LF3RKM5P.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-7YT5TIX5.js → skills-page-SYOIGGXH.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-NJZKTU7A.js → team-federation-page-RMBLASTW.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-NQ73UA2Q.js → v3-page-XJXKKJRN.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-DSM3MDMN.js → whiteboards-page-K3YVSTHJ.js} +1 -1
- package/dist/dashboard-web/style.css +571 -3
- package/dist/dashboard.js +238 -9
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +11 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +27 -1
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +6 -19
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +6 -19
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +1 -14
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +1 -35
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +10 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +161 -44
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +47 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +127 -18
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +13 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +48 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/identity-cache.d.ts +25 -1
- package/dist/im/lark/identity-cache.d.ts.map +1 -1
- package/dist/im/lark/identity-cache.js +47 -1
- package/dist/im/lark/identity-cache.js.map +1 -1
- package/dist/im/lark/overload-nonce.d.ts +19 -0
- package/dist/im/lark/overload-nonce.d.ts.map +1 -0
- package/dist/im/lark/overload-nonce.js +72 -0
- package/dist/im/lark/overload-nonce.js.map +1 -0
- package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
- package/dist/im/lark/v3-progress-card.js +5 -0
- package/dist/im/lark/v3-progress-card.js.map +1 -1
- package/dist/services/async-trigger-state.d.ts +82 -0
- package/dist/services/async-trigger-state.d.ts.map +1 -0
- package/dist/services/async-trigger-state.js +95 -0
- package/dist/services/async-trigger-state.js.map +1 -0
- package/dist/services/async-trigger-store.d.ts +28 -0
- package/dist/services/async-trigger-store.d.ts.map +1 -0
- package/dist/services/async-trigger-store.js +120 -0
- package/dist/services/async-trigger-store.js.map +1 -0
- package/dist/services/bot-config-store.d.ts.map +1 -1
- package/dist/services/bot-config-store.js +34 -2
- package/dist/services/bot-config-store.js.map +1 -1
- package/dist/services/bridge-fallback-gate.d.ts +32 -0
- package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
- package/dist/services/bridge-fallback-gate.js +39 -0
- package/dist/services/bridge-fallback-gate.js.map +1 -1
- package/dist/services/bridge-turn-queue.d.ts.map +1 -1
- package/dist/services/bridge-turn-queue.js +15 -1
- package/dist/services/bridge-turn-queue.js.map +1 -1
- package/dist/services/card-prefs-store.d.ts +4 -0
- package/dist/services/card-prefs-store.d.ts.map +1 -1
- package/dist/services/card-prefs-store.js +8 -0
- package/dist/services/card-prefs-store.js.map +1 -1
- package/dist/services/claude-transcript.d.ts +23 -0
- package/dist/services/claude-transcript.d.ts.map +1 -1
- package/dist/services/claude-transcript.js +33 -0
- package/dist/services/claude-transcript.js.map +1 -1
- package/dist/services/codex-app-runner-protocol.d.ts +61 -0
- package/dist/services/codex-app-runner-protocol.d.ts.map +1 -0
- package/dist/services/codex-app-runner-protocol.js +170 -0
- package/dist/services/codex-app-runner-protocol.js.map +1 -0
- package/dist/services/codex-app-turn-controller.d.ts +72 -0
- package/dist/services/codex-app-turn-controller.d.ts.map +1 -0
- package/dist/services/codex-app-turn-controller.js +524 -0
- package/dist/services/codex-app-turn-controller.js.map +1 -0
- package/dist/services/codex-runner-freshness.d.ts +39 -0
- package/dist/services/codex-runner-freshness.d.ts.map +1 -0
- package/dist/services/codex-runner-freshness.js +78 -0
- package/dist/services/codex-runner-freshness.js.map +1 -0
- package/dist/services/connector-store.d.ts +6 -0
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/grant-store.d.ts.map +1 -1
- package/dist/services/grant-store.js +16 -0
- package/dist/services/grant-store.js.map +1 -1
- package/dist/services/hermes-transcript.d.ts +1 -0
- package/dist/services/hermes-transcript.d.ts.map +1 -1
- package/dist/services/hermes-transcript.js +49 -0
- package/dist/services/hermes-transcript.js.map +1 -1
- package/dist/services/sandbox-migration.d.ts +14 -0
- package/dist/services/sandbox-migration.d.ts.map +1 -0
- package/dist/services/sandbox-migration.js +85 -0
- package/dist/services/sandbox-migration.js.map +1 -0
- package/dist/services/sandbox-store.d.ts +28 -0
- package/dist/services/sandbox-store.d.ts.map +1 -1
- package/dist/services/sandbox-store.js +82 -0
- package/dist/services/sandbox-store.js.map +1 -1
- package/dist/services/schedule-split-migration.d.ts +2 -0
- package/dist/services/schedule-split-migration.d.ts.map +1 -0
- package/dist/services/schedule-split-migration.js +159 -0
- package/dist/services/schedule-split-migration.js.map +1 -0
- package/dist/services/schedule-store.d.ts +28 -4
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/services/schedule-store.js +118 -33
- package/dist/services/schedule-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +18 -1
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js +3 -0
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-store.js +1 -0
- package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -1
- package/dist/services/vc-meeting-consumer-profile-templates.d.ts +32 -0
- package/dist/services/vc-meeting-consumer-profile-templates.d.ts.map +1 -0
- package/dist/services/vc-meeting-consumer-profile-templates.js +106 -0
- package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -0
- package/dist/services/vc-meeting-delivery-feed.d.ts +1 -1
- package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-feed.js +2 -1
- package/dist/services/vc-meeting-delivery-feed.js.map +1 -1
- package/dist/services/vc-meeting-delivery-hub-store.d.ts +3 -1
- package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-hub-store.js +11 -0
- package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -1
- package/dist/services/vc-meeting-delivery-protocol.d.ts +9 -2
- package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-protocol.js +10 -1
- package/dist/services/vc-meeting-delivery-protocol.js.map +1 -1
- package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-receiver.js +10 -1
- package/dist/services/vc-meeting-delivery-receiver.js.map +1 -1
- package/dist/services/vc-meeting-delivery-store.d.ts +12 -2
- package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-delivery-store.js +14 -2
- package/dist/services/vc-meeting-delivery-store.js.map +1 -1
- package/dist/services/vc-meeting-im-reply.d.ts +2 -1
- package/dist/services/vc-meeting-im-reply.d.ts.map +1 -1
- package/dist/services/vc-meeting-im-reply.js +19 -3
- package/dist/services/vc-meeting-im-reply.js.map +1 -1
- package/dist/services/vc-meeting-listener-output-protocol.d.ts +27 -0
- package/dist/services/vc-meeting-listener-output-protocol.d.ts.map +1 -0
- package/dist/services/vc-meeting-listener-output-protocol.js +58 -0
- package/dist/services/vc-meeting-listener-output-protocol.js.map +1 -0
- package/dist/services/vc-meeting-listener-topic-store.d.ts +31 -0
- package/dist/services/vc-meeting-listener-topic-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-listener-topic-store.js +120 -0
- package/dist/services/vc-meeting-listener-topic-store.js.map +1 -0
- package/dist/services/vc-meeting-runtime-store.d.ts +2 -1
- package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-runtime-store.js +8 -0
- package/dist/services/vc-meeting-runtime-store.js.map +1 -1
- package/dist/services/vc-meeting-send-policy.d.ts +8 -1
- package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
- package/dist/services/vc-meeting-send-policy.js +8 -0
- package/dist/services/vc-meeting-send-policy.js.map +1 -1
- package/dist/types.d.ts +53 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/allowed-users-apply.d.ts +76 -0
- package/dist/utils/allowed-users-apply.d.ts.map +1 -0
- package/dist/utils/allowed-users-apply.js +123 -0
- package/dist/utils/allowed-users-apply.js.map +1 -0
- package/dist/utils/allowed-users-cache.d.ts +29 -0
- package/dist/utils/allowed-users-cache.d.ts.map +1 -0
- package/dist/utils/allowed-users-cache.js +82 -0
- package/dist/utils/allowed-users-cache.js.map +1 -0
- package/dist/utils/child-env.d.ts +4 -3
- package/dist/utils/child-env.d.ts.map +1 -1
- package/dist/utils/child-env.js +16 -1
- package/dist/utils/child-env.js.map +1 -1
- package/dist/utils/cli-usage-limit.d.ts +27 -1
- package/dist/utils/cli-usage-limit.d.ts.map +1 -1
- package/dist/utils/cli-usage-limit.js +92 -20
- package/dist/utils/cli-usage-limit.js.map +1 -1
- package/dist/utils/input-gate.d.ts +2 -0
- package/dist/utils/input-gate.d.ts.map +1 -1
- package/dist/utils/input-gate.js +2 -0
- package/dist/utils/input-gate.js.map +1 -1
- package/dist/utils/runtime-build-id.d.ts +21 -0
- package/dist/utils/runtime-build-id.d.ts.map +1 -0
- package/dist/utils/runtime-build-id.js +83 -0
- package/dist/utils/runtime-build-id.js.map +1 -0
- package/dist/utils/terminal-renderer.d.ts +3 -3
- package/dist/utils/terminal-renderer.js +3 -3
- package/dist/vc-agent/cards.d.ts.map +1 -1
- package/dist/vc-agent/cards.js +21 -1
- package/dist/vc-agent/cards.js.map +1 -1
- package/dist/worker.js +1010 -669
- package/dist/worker.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +56 -0
- package/dist/workflows/events/payloads.d.ts.map +1 -1
- package/dist/workflows/events/payloads.js +9 -0
- package/dist/workflows/events/payloads.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +86 -0
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js +13 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +20 -20
- package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -1
- package/dist/workflows/migration/v2-to-v3.js +5 -1
- package/dist/workflows/migration/v2-to-v3.js.map +1 -1
- package/dist/workflows/shared/sandbox-policy.d.ts +10 -1
- package/dist/workflows/shared/sandbox-policy.d.ts.map +1 -1
- package/dist/workflows/shared/sandbox-policy.js +12 -0
- package/dist/workflows/shared/sandbox-policy.js.map +1 -1
- package/dist/workflows/v3/architect.d.ts.map +1 -1
- package/dist/workflows/v3/architect.js +1 -0
- package/dist/workflows/v3/architect.js.map +1 -1
- package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
- package/dist/workflows/v3/bot-resolve.js +36 -0
- package/dist/workflows/v3/bot-resolve.js.map +1 -1
- package/dist/workflows/v3/cli-run.d.ts +9 -0
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +17 -2
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/contract.d.ts +8 -0
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/goal-cli.d.ts +58 -0
- package/dist/workflows/v3/goal-cli.d.ts.map +1 -0
- package/dist/workflows/v3/goal-cli.js +430 -0
- package/dist/workflows/v3/goal-cli.js.map +1 -0
- package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
- package/dist/workflows/v3/library-materialize.js +5 -1
- package/dist/workflows/v3/library-materialize.js.map +1 -1
- package/dist/workflows/v3/library-schema.d.ts +21 -0
- package/dist/workflows/v3/library-schema.d.ts.map +1 -1
- package/dist/workflows/v3/library-schema.js +95 -1
- package/dist/workflows/v3/library-schema.js.map +1 -1
- package/dist/workflows/v3/progress-projection.d.ts +3 -0
- package/dist/workflows/v3/progress-projection.d.ts.map +1 -1
- package/dist/workflows/v3/progress-projection.js +23 -1
- package/dist/workflows/v3/progress-projection.js.map +1 -1
- package/dist/workflows/v3/run-envelope.d.ts +46 -1
- package/dist/workflows/v3/run-envelope.d.ts.map +1 -1
- package/dist/workflows/v3/run-envelope.js +32 -1
- package/dist/workflows/v3/run-envelope.js.map +1 -1
- package/package.json +2 -2
- package/dist/dashboard-web/chunks/bot-defaults-page-O376WSER.js +0 -5
- package/dist/dashboard-web/chunks/chunk-H7P5UV4W.js +0 -49
- package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +0 -1
- package/dist/dashboard-web/chunks/connectors-page-IR54AOAI.js +0 -1
- package/dist/dashboard-web/chunks/overview-page-QJMI6NLW.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-KWLGBX6G.js +0 -3
- package/dist/dashboard-web/chunks/settings-page-TNZEPC7V.js +0 -2
- package/dist/services/sandbox-land.d.ts +0 -45
- package/dist/services/sandbox-land.d.ts.map +0 -1
- package/dist/services/sandbox-land.js +0 -394
- package/dist/services/sandbox-land.js.map +0 -1
- package/dist/utils/screen-analyzer.d.ts +0 -75
- package/dist/utils/screen-analyzer.d.ts.map +0 -1
- package/dist/utils/screen-analyzer.js +0 -333
- package/dist/utils/screen-analyzer.js.map +0 -1
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time split of the legacy shared `data/schedules.json` into per-bot
|
|
3
|
+
* stores (`<botmuxHome>/bots/<appId>/schedules.json`).
|
|
4
|
+
*
|
|
5
|
+
* Why: the shared file needed a sandbox policy special-case (single-file
|
|
6
|
+
* readWrite grant) that could not cover the RMW sibling lock
|
|
7
|
+
* (`schedules.json.lock`) — a sandboxed `botmux schedule add` failed EPERM —
|
|
8
|
+
* and it exposed every bot's task prompts/routing to every other sandboxed
|
|
9
|
+
* bot. Per-bot stores live inside each bot's BOT_HOME, which the sandbox
|
|
10
|
+
* already grants readWrite to the owner and denies to siblings by
|
|
11
|
+
* construction.
|
|
12
|
+
*
|
|
13
|
+
* Runs at daemon startup, BEFORE the scheduler and the external-write watcher
|
|
14
|
+
* touch the store. Multiple per-bot daemons boot concurrently against the same
|
|
15
|
+
* legacy file: the whole split runs under the legacy file's cross-process lock
|
|
16
|
+
* and re-checks existence inside it, so exactly one daemon performs the split
|
|
17
|
+
* and the rest see the file already gone (renamed to `schedules.json.bak-split-v1`).
|
|
18
|
+
*
|
|
19
|
+
* Routing (per task):
|
|
20
|
+
* - OWNERLESS (`larkAppId` undefined) → PRIMARY bot's store, kept ownerless.
|
|
21
|
+
* The scheduler runs ownerless tasks on the primary daemon (bot-0) — the
|
|
22
|
+
* exact pre-split behaviour. The appId is NOT stamped on. ONLY `undefined`
|
|
23
|
+
* is ownerless; a falsy non-string is corrupt data (next branch).
|
|
24
|
+
* - owner present but NOT a string → fail-safe: abort the split. Covers
|
|
25
|
+
* (bool/number/null/object, truthy `true`/`false`/`0`/`null`/objects —
|
|
26
|
+
* OR falsy) none matches a string appId, and a
|
|
27
|
+
* falsy one would otherwise slip into primary and run under primary's
|
|
28
|
+
* identity (codex #611 f3+f4). `assertSafeAppId`'s RegExp.test would also
|
|
29
|
+
* silently coerce a truthy one (`true`→"true"), so guard the TYPE first.
|
|
30
|
+
* - owner IS in bots.json → that owner's own BOT_HOME store.
|
|
31
|
+
* - owner well-formed but NOT in → that owner's own (dormant) store, NOT
|
|
32
|
+
* bots.json (removed / config drift) primary. Folding it into primary would
|
|
33
|
+
* either strand it (primary's owner filter rejects a foreign appId) or, if
|
|
34
|
+
* stripped, run it under the wrong bot identity; its own store keeps it
|
|
35
|
+
* verbatim so it reappears intact if the bot is re-added (codex #611 f1).
|
|
36
|
+
* - owner is an UNSAFE string appId → fail-safe: abort the split before any
|
|
37
|
+
* (cannot be a path segment) import, leave the legacy file for a
|
|
38
|
+
* human. Never silently drop the row.
|
|
39
|
+
* Id conflicts with an existing per-bot entry keep the existing entry (the
|
|
40
|
+
* per-bot store is newer by definition) and are logged.
|
|
41
|
+
*
|
|
42
|
+
* Downgrade: the pre-split file survives verbatim as `*.bak-split-v1`; an
|
|
43
|
+
* older build can be restored by renaming it back (documented in the PR).
|
|
44
|
+
* Never throws — a failed/partial migration must not brick daemon startup;
|
|
45
|
+
* the legacy file stays in place and the next boot retries.
|
|
46
|
+
*/
|
|
47
|
+
import { existsSync, readFileSync, renameSync } from 'node:fs';
|
|
48
|
+
import { join } from 'node:path';
|
|
49
|
+
import { config } from '../config.js';
|
|
50
|
+
import { logger } from '../utils/logger.js';
|
|
51
|
+
import { withFileLockSync } from '../utils/file-lock.js';
|
|
52
|
+
import { assertSafeAppId } from '../adapters/cli/read-isolation.js';
|
|
53
|
+
import * as scheduleStore from './schedule-store.js';
|
|
54
|
+
function legacyFilePath() {
|
|
55
|
+
return join(config.session.dataDir, 'schedules.json');
|
|
56
|
+
}
|
|
57
|
+
export function migrateSharedSchedulesAtStartup(knownAppIds, primaryAppId) {
|
|
58
|
+
const legacyFp = legacyFilePath();
|
|
59
|
+
if (!existsSync(legacyFp))
|
|
60
|
+
return; // already split (or fresh install) — no-op
|
|
61
|
+
try {
|
|
62
|
+
withFileLockSync(legacyFp, () => {
|
|
63
|
+
// Another daemon may have completed the split while we waited on the lock.
|
|
64
|
+
if (!existsSync(legacyFp))
|
|
65
|
+
return;
|
|
66
|
+
let raw;
|
|
67
|
+
try {
|
|
68
|
+
raw = JSON.parse(readFileSync(legacyFp, 'utf-8'));
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
// Malformed legacy file: leave it for a human — do NOT rename (that
|
|
72
|
+
// would silently discard whatever tasks it held) and do not brick boot.
|
|
73
|
+
logger.error(`[schedule-split] legacy schedules.json unreadable, split skipped: ${err}`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
77
|
+
logger.error('[schedule-split] legacy schedules.json root is not an object, split skipped');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const known = new Set(knownAppIds);
|
|
81
|
+
const byBot = new Map();
|
|
82
|
+
for (const [id, task] of Object.entries(raw)) {
|
|
83
|
+
if (!task || typeof task !== 'object')
|
|
84
|
+
continue;
|
|
85
|
+
let owner;
|
|
86
|
+
if (task.larkAppId === undefined) {
|
|
87
|
+
// Truly OWNERLESS legacy task (field absent) → primary's store, kept
|
|
88
|
+
// ownerless. The scheduler runs an ownerless task on the primary daemon
|
|
89
|
+
// (bot-0), which is exactly the pre-split behaviour. Do NOT stamp
|
|
90
|
+
// primary's appId — that would pin it away from the legacy ownerless
|
|
91
|
+
// semantics. ONLY `undefined` counts as ownerless: a falsy non-string
|
|
92
|
+
// (`false`/`0`/`null`) is corrupt data, not "no owner", and must not be
|
|
93
|
+
// silently absorbed into primary where it would run under primary's
|
|
94
|
+
// identity (codex #611 finding 4).
|
|
95
|
+
owner = primaryAppId;
|
|
96
|
+
}
|
|
97
|
+
else if (typeof task.larkAppId !== 'string') {
|
|
98
|
+
// Present but NOT a string (boolean/number/null/object, truthy OR falsy):
|
|
99
|
+
// corrupt owner data. It can NEVER match a real bot — the scheduler's
|
|
100
|
+
// owner filter compares `task.larkAppId === ownerAppId` against a STRING
|
|
101
|
+
// appId — and `assertSafeAppId`'s `RegExp.test` would silently coerce it
|
|
102
|
+
// (`true`→"true", `false`→"false") and pass, migrating it into
|
|
103
|
+
// `bots/<coerced>/` where no daemon ever runs it, OR (for falsy values)
|
|
104
|
+
// slip past a truthiness check into primary and run under the WRONG
|
|
105
|
+
// identity (codex #611 findings 3 & 4). Guard the TYPE, then fail-safe:
|
|
106
|
+
// abort the whole split with no import performed, leaving legacy intact.
|
|
107
|
+
logger.error(`[schedule-split] task ${id} has a non-string larkAppId ` +
|
|
108
|
+
`(${task.larkAppId === null ? 'null' : typeof task.larkAppId}); ` +
|
|
109
|
+
'split aborted, legacy schedules.json preserved');
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
else if (known.has(task.larkAppId)) {
|
|
113
|
+
// Configured owner → its own BOT_HOME store.
|
|
114
|
+
owner = task.larkAppId;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Well-formed STRING appId that is NOT currently in bots.json (bot
|
|
118
|
+
// removed, or config drift): route to ITS OWN store, not primary. Folding
|
|
119
|
+
// it into primary either strands it (primary's owner filter rejects a
|
|
120
|
+
// foreign appId — codex #611 finding 1) or, if we stripped the appId,
|
|
121
|
+
// would run it under the WRONG bot identity. Its own dormant store
|
|
122
|
+
// preserves the task verbatim so it reappears intact if the bot is
|
|
123
|
+
// re-added later.
|
|
124
|
+
//
|
|
125
|
+
// An unsafe string appId (path-traversal, or empty string) cannot be a
|
|
126
|
+
// path segment (`scheduleFilePathFor` → `assertSafeAppId` throws).
|
|
127
|
+
// Fail-safe: abort the whole split with NO import performed yet (imports
|
|
128
|
+
// happen after this loop), leaving legacy untouched — never drop the row.
|
|
129
|
+
try {
|
|
130
|
+
assertSafeAppId(task.larkAppId);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
logger.error(`[schedule-split] task ${id} has an unsafe larkAppId ${JSON.stringify(task.larkAppId)}; ` +
|
|
134
|
+
'split aborted, legacy schedules.json preserved for manual resolution');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
owner = task.larkAppId;
|
|
138
|
+
}
|
|
139
|
+
let bucket = byBot.get(owner);
|
|
140
|
+
if (!bucket) {
|
|
141
|
+
bucket = [];
|
|
142
|
+
byBot.set(owner, bucket);
|
|
143
|
+
}
|
|
144
|
+
bucket.push([id, task]);
|
|
145
|
+
}
|
|
146
|
+
for (const [appId, entries] of byBot) {
|
|
147
|
+
scheduleStore.importTasks(appId, entries);
|
|
148
|
+
}
|
|
149
|
+
const bak = `${legacyFp}.bak-split-v1`;
|
|
150
|
+
renameSync(legacyFp, bak);
|
|
151
|
+
const counts = [...byBot.entries()].map(([a, e]) => `${a}:${e.length}`).join(', ');
|
|
152
|
+
logger.info(`[schedule-split] split legacy schedules.json into per-bot stores (${counts || 'empty'}); backup: ${bak}`);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
logger.warn(`[schedule-split] skipped (${err instanceof Error ? err.message : String(err)})`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=schedule-split-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-split-migration.js","sourceRoot":"","sources":["../../src/services/schedule-split-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,12 @@ export declare function canonicalScheduleInput(t: {
|
|
|
56
56
|
deliver?: 'origin' | 'local' | 'new-topic';
|
|
57
57
|
silent?: boolean;
|
|
58
58
|
}): unknown;
|
|
59
|
+
/** Bind the store's default file to one bot. Daemon: own bot at startup.
|
|
60
|
+
* CLI: the session's bot / explicit --lark-app-id before any store call. */
|
|
61
|
+
export declare function setScheduleScope(appId: string): void;
|
|
62
|
+
export declare function getScheduleScope(): string | null;
|
|
63
|
+
/** The per-bot schedules file: `<botmuxHome>/bots/<appId>/schedules.json`. */
|
|
64
|
+
export declare function scheduleFilePathFor(appId: string): string;
|
|
59
65
|
export declare function getTaskOutputDir(taskId: string): string;
|
|
60
66
|
export declare function __setScheduleStoreBeforeRenameTestHook(hook?: () => void): void;
|
|
61
67
|
/**
|
|
@@ -99,15 +105,33 @@ export declare function createTask(params: {
|
|
|
99
105
|
deliver?: 'origin' | 'local' | 'new-topic';
|
|
100
106
|
silent?: boolean;
|
|
101
107
|
}): ScheduledTask;
|
|
102
|
-
export declare function getTask(id: string): ScheduledTask | undefined;
|
|
103
|
-
export declare function removeTask(id: string): boolean;
|
|
104
|
-
export declare function updateTask(id: string, updates: Partial<Pick<ScheduledTask, 'enabled' | 'lastRunAt' | 'nextRunAt' | 'lastStatus' | 'lastError' | 'lastDeliveryError' | 'repeat' | 'rootMessageId' | 'scope' | 'executionPosition' | 'topicTitle' | 'chatType' | 'deliver' | 'name' | 'prompt' | 'schedule' | 'parsed' | 'silent' | 'workingDir'
|
|
108
|
+
export declare function getTask(id: string, appId?: string): ScheduledTask | undefined;
|
|
109
|
+
export declare function removeTask(id: string, appId?: string): boolean;
|
|
110
|
+
export declare function updateTask(id: string, updates: Partial<Pick<ScheduledTask, 'enabled' | 'lastRunAt' | 'nextRunAt' | 'lastStatus' | 'lastError' | 'lastDeliveryError' | 'repeat' | 'rootMessageId' | 'scope' | 'executionPosition' | 'topicTitle' | 'chatType' | 'deliver' | 'name' | 'prompt' | 'schedule' | 'parsed' | 'silent' | 'workingDir'>>, appId?: string): void;
|
|
105
111
|
/**
|
|
106
112
|
* Record a run outcome and auto-manage repeat counter. If the task has a
|
|
107
113
|
* finite repeat count and we've hit it, the task is removed.
|
|
108
114
|
*/
|
|
109
115
|
export declare function markRun(id: string, success: boolean, error?: string, deliveryError?: string): void;
|
|
110
|
-
export declare function listTasks(): ScheduledTask[];
|
|
116
|
+
export declare function listTasks(appId?: string): ScheduledTask[];
|
|
117
|
+
/** Aggregate view across several bots' stores (unsandboxed admin CLI). Bots
|
|
118
|
+
* whose store cannot be read (sandbox deny / missing BOT_HOME) are skipped —
|
|
119
|
+
* callers inside a sandbox naturally collapse to their own bot. */
|
|
120
|
+
export declare function listTasksForBots(appIds: readonly string[]): Array<ScheduledTask & {
|
|
121
|
+
_storeAppId: string;
|
|
122
|
+
}>;
|
|
123
|
+
/** Bulk-insert raw task entries into one bot's store (startup split
|
|
124
|
+
* migration). Runs the same in-file legacy normalization as a disk read;
|
|
125
|
+
* an id already present in the destination wins (the per-bot store is newer
|
|
126
|
+
* by definition) and the collision is logged. */
|
|
127
|
+
export declare function importTasks(appId: string, entries: ReadonlyArray<[string, unknown]>): void;
|
|
128
|
+
/** Locate a task id across several bots' stores. First hit wins (ids are
|
|
129
|
+
* UUID-derived; a cross-store collision is negligible and would only make an
|
|
130
|
+
* id-addressed command pick the first store). */
|
|
131
|
+
export declare function findTaskAcrossBots(id: string, appIds: readonly string[]): {
|
|
132
|
+
task: ScheduledTask;
|
|
133
|
+
appId: string;
|
|
134
|
+
} | undefined;
|
|
111
135
|
/** Ensure per-task output dir exists and return path to today's run log. */
|
|
112
136
|
export declare function appendOutputLog(taskId: string, content: string): string;
|
|
113
137
|
export declare function startExternalWriteWatcher(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { dashboardEventBus } from '../core/dashboard-events.js';
|
|
|
7
7
|
import { computeInputHash } from '../utils/canonical-input-hash.js';
|
|
8
8
|
import { withFileLockSync } from '../utils/file-lock.js';
|
|
9
9
|
import { fsyncDirectorySyncPortable } from '../utils/fs-durability.js';
|
|
10
|
+
import { botHomePath } from '../adapters/cli/read-isolation.js';
|
|
10
11
|
// ─── Idempotency types (events doc v0.1.2 §2.2) ─────────────────────────────
|
|
11
12
|
/**
|
|
12
13
|
* Raised by `createTask` when an `id` is supplied but a task already exists
|
|
@@ -83,11 +84,36 @@ export function canonicalScheduleInput(t) {
|
|
|
83
84
|
silent: t.silent === true ? true : undefined,
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
-
let
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
const fileStates = new Map();
|
|
88
|
+
let scopeAppId = null;
|
|
89
|
+
/** Bind the store's default file to one bot. Daemon: own bot at startup.
|
|
90
|
+
* CLI: the session's bot / explicit --lark-app-id before any store call. */
|
|
91
|
+
export function setScheduleScope(appId) {
|
|
92
|
+
scopeAppId = appId;
|
|
93
|
+
}
|
|
94
|
+
export function getScheduleScope() {
|
|
95
|
+
return scopeAppId;
|
|
96
|
+
}
|
|
97
|
+
function requireScope() {
|
|
98
|
+
if (!scopeAppId) {
|
|
99
|
+
throw new Error('[schedule-store] no bot scope bound — call setScheduleScope(<larkAppId>) before using the schedule store');
|
|
100
|
+
}
|
|
101
|
+
return scopeAppId;
|
|
102
|
+
}
|
|
103
|
+
/** The per-bot schedules file: `<botmuxHome>/bots/<appId>/schedules.json`. */
|
|
104
|
+
export function scheduleFilePathFor(appId) {
|
|
105
|
+
return join(botHomePath(dirname(config.session.dataDir), appId), 'schedules.json');
|
|
106
|
+
}
|
|
107
|
+
function getFilePath(appId) {
|
|
108
|
+
return scheduleFilePathFor(appId ?? requireScope());
|
|
109
|
+
}
|
|
110
|
+
function stateFor(fp) {
|
|
111
|
+
let s = fileStates.get(fp);
|
|
112
|
+
if (!s) {
|
|
113
|
+
s = { tasks: new Map(), loaded: false, version: 'missing' };
|
|
114
|
+
fileStates.set(fp, s);
|
|
115
|
+
}
|
|
116
|
+
return s;
|
|
91
117
|
}
|
|
92
118
|
function getOutputDir() {
|
|
93
119
|
return join(config.session.dataDir, 'schedules-output');
|
|
@@ -254,9 +280,10 @@ function persistDiskSnapshot(fp, map) {
|
|
|
254
280
|
}
|
|
255
281
|
}
|
|
256
282
|
function installSnapshot(map, fp) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
283
|
+
const s = stateFor(fp);
|
|
284
|
+
s.tasks = map;
|
|
285
|
+
s.version = fileVersion(fp);
|
|
286
|
+
s.loaded = true;
|
|
260
287
|
}
|
|
261
288
|
/**
|
|
262
289
|
* Every schedules.json mutation goes through one cross-process transaction:
|
|
@@ -264,8 +291,8 @@ function installSnapshot(map, fp) {
|
|
|
264
291
|
* to memory. A failed write therefore cannot create an in-memory ghost, and a
|
|
265
292
|
* stale daemon/CLI process cannot overwrite another process's newer update.
|
|
266
293
|
*/
|
|
267
|
-
function mutateTasks(mutate) {
|
|
268
|
-
const fp = getFilePath();
|
|
294
|
+
function mutateTasks(mutate, appId) {
|
|
295
|
+
const fp = getFilePath(appId);
|
|
269
296
|
ensureDir(dirname(fp));
|
|
270
297
|
return withFileLockSync(fp, () => {
|
|
271
298
|
const working = readDiskSnapshot(fp, true).map;
|
|
@@ -278,13 +305,14 @@ function mutateTasks(mutate) {
|
|
|
278
305
|
return outcome.result;
|
|
279
306
|
});
|
|
280
307
|
}
|
|
281
|
-
function load() {
|
|
282
|
-
|
|
283
|
-
|
|
308
|
+
function load(appId) {
|
|
309
|
+
const fp = getFilePath(appId);
|
|
310
|
+
ensureDir(dirname(fp));
|
|
311
|
+
const state = stateFor(fp);
|
|
284
312
|
const currentVersion = fileVersion(fp);
|
|
285
313
|
// Reload if the file has been atomically replaced externally (e.g. by
|
|
286
314
|
// `botmux schedule add`) or on first load.
|
|
287
|
-
if (loaded && currentVersion ===
|
|
315
|
+
if (state.loaded && currentVersion === state.version)
|
|
288
316
|
return;
|
|
289
317
|
const snapshot = readDiskSnapshot(fp, false);
|
|
290
318
|
let nextMap = snapshot.map;
|
|
@@ -309,7 +337,7 @@ function load() {
|
|
|
309
337
|
nextMap = readDiskSnapshot(fp, false).map;
|
|
310
338
|
}
|
|
311
339
|
}
|
|
312
|
-
if (!loaded) {
|
|
340
|
+
if (!state.loaded) {
|
|
313
341
|
logger.info(`Loaded ${nextMap.size} scheduled tasks from ${fp}` +
|
|
314
342
|
`${snapshot.migratedCount ? ` (migrated ${snapshot.migratedCount} legacy)` : ''}`);
|
|
315
343
|
}
|
|
@@ -335,6 +363,10 @@ function load() {
|
|
|
335
363
|
* avoid collisions with the 8-char randomUUID legacy namespace.
|
|
336
364
|
*/
|
|
337
365
|
export function createTask(params) {
|
|
366
|
+
// Route to the OWNING bot's file: a task explicitly created for another bot
|
|
367
|
+
// (`--lark-app-id` / dashboard admin flows) must land in that bot's store so
|
|
368
|
+
// its daemon (the only one that executes it) can see it. Sandboxed callers
|
|
369
|
+
// can only reach their own BOT_HOME — a cross-bot write fails closed (EPERM).
|
|
338
370
|
return mutateTasks(working => {
|
|
339
371
|
if (params.id) {
|
|
340
372
|
const existing = working.get(params.id);
|
|
@@ -388,29 +420,29 @@ export function createTask(params) {
|
|
|
388
420
|
};
|
|
389
421
|
working.set(task.id, task);
|
|
390
422
|
return { result: task, changed: true };
|
|
391
|
-
});
|
|
423
|
+
}, params.larkAppId);
|
|
392
424
|
}
|
|
393
|
-
export function getTask(id) {
|
|
394
|
-
load();
|
|
395
|
-
return tasks.get(id);
|
|
425
|
+
export function getTask(id, appId) {
|
|
426
|
+
load(appId);
|
|
427
|
+
return stateFor(getFilePath(appId)).tasks.get(id);
|
|
396
428
|
}
|
|
397
|
-
export function removeTask(id) {
|
|
429
|
+
export function removeTask(id, appId) {
|
|
398
430
|
const existed = mutateTasks(working => {
|
|
399
431
|
const removed = working.delete(id);
|
|
400
432
|
return { result: removed, changed: removed };
|
|
401
|
-
});
|
|
433
|
+
}, appId);
|
|
402
434
|
if (existed)
|
|
403
435
|
logger.info(`[schedule-store] Removed task ${id}`);
|
|
404
436
|
return existed;
|
|
405
437
|
}
|
|
406
|
-
export function updateTask(id, updates) {
|
|
438
|
+
export function updateTask(id, updates, appId) {
|
|
407
439
|
mutateTasks(working => {
|
|
408
440
|
const task = working.get(id);
|
|
409
441
|
if (!task)
|
|
410
442
|
return { result: undefined, changed: false };
|
|
411
443
|
Object.assign(task, updates.deliver === 'new-topic' ? { ...updates, deliver: 'origin' } : updates);
|
|
412
444
|
return { result: undefined, changed: true };
|
|
413
|
-
});
|
|
445
|
+
}, appId);
|
|
414
446
|
}
|
|
415
447
|
/**
|
|
416
448
|
* Record a run outcome and auto-manage repeat counter. If the task has a
|
|
@@ -446,9 +478,60 @@ export function markRun(id, success, error, deliveryError) {
|
|
|
446
478
|
logger.info(`[schedule-store] Task ${id} removed after completing ${completedRepeat} runs`);
|
|
447
479
|
}
|
|
448
480
|
}
|
|
449
|
-
export function listTasks() {
|
|
450
|
-
load();
|
|
451
|
-
return [...tasks.values()];
|
|
481
|
+
export function listTasks(appId) {
|
|
482
|
+
load(appId);
|
|
483
|
+
return [...stateFor(getFilePath(appId)).tasks.values()];
|
|
484
|
+
}
|
|
485
|
+
/** Aggregate view across several bots' stores (unsandboxed admin CLI). Bots
|
|
486
|
+
* whose store cannot be read (sandbox deny / missing BOT_HOME) are skipped —
|
|
487
|
+
* callers inside a sandbox naturally collapse to their own bot. */
|
|
488
|
+
export function listTasksForBots(appIds) {
|
|
489
|
+
const out = [];
|
|
490
|
+
for (const appId of appIds) {
|
|
491
|
+
try {
|
|
492
|
+
for (const t of listTasks(appId))
|
|
493
|
+
out.push({ ...t, _storeAppId: appId });
|
|
494
|
+
}
|
|
495
|
+
catch { /* unreadable (sandboxed sibling / bad appId) → skip */ }
|
|
496
|
+
}
|
|
497
|
+
return out;
|
|
498
|
+
}
|
|
499
|
+
/** Bulk-insert raw task entries into one bot's store (startup split
|
|
500
|
+
* migration). Runs the same in-file legacy normalization as a disk read;
|
|
501
|
+
* an id already present in the destination wins (the per-bot store is newer
|
|
502
|
+
* by definition) and the collision is logged. */
|
|
503
|
+
export function importTasks(appId, entries) {
|
|
504
|
+
if (entries.length === 0)
|
|
505
|
+
return;
|
|
506
|
+
mutateTasks(working => {
|
|
507
|
+
let changed = false;
|
|
508
|
+
for (const [id, raw] of entries) {
|
|
509
|
+
const task = migrate(raw);
|
|
510
|
+
if (!task)
|
|
511
|
+
continue;
|
|
512
|
+
if (working.has(id)) {
|
|
513
|
+
logger.warn(`[schedule-store] import: id ${id} already exists in ${appId}'s store — keeping existing entry`);
|
|
514
|
+
continue;
|
|
515
|
+
}
|
|
516
|
+
working.set(id, task);
|
|
517
|
+
changed = true;
|
|
518
|
+
}
|
|
519
|
+
return { result: undefined, changed };
|
|
520
|
+
}, appId);
|
|
521
|
+
}
|
|
522
|
+
/** Locate a task id across several bots' stores. First hit wins (ids are
|
|
523
|
+
* UUID-derived; a cross-store collision is negligible and would only make an
|
|
524
|
+
* id-addressed command pick the first store). */
|
|
525
|
+
export function findTaskAcrossBots(id, appIds) {
|
|
526
|
+
for (const appId of appIds) {
|
|
527
|
+
try {
|
|
528
|
+
const task = getTask(id, appId);
|
|
529
|
+
if (task)
|
|
530
|
+
return { task, appId };
|
|
531
|
+
}
|
|
532
|
+
catch { /* unreadable → skip */ }
|
|
533
|
+
}
|
|
534
|
+
return undefined;
|
|
452
535
|
}
|
|
453
536
|
/** Ensure per-task output dir exists and return path to today's run log. */
|
|
454
537
|
export function appendOutputLog(taskId, content) {
|
|
@@ -475,10 +558,11 @@ export function startExternalWriteWatcher() {
|
|
|
475
558
|
if (watcherStarted)
|
|
476
559
|
return;
|
|
477
560
|
watcherStarted = true;
|
|
478
|
-
//
|
|
479
|
-
//
|
|
480
|
-
|
|
561
|
+
// Watch this daemon's OWN bot store (the only one it executes/serves). Make
|
|
562
|
+
// sure the BOT_HOME + file exist before we try to watch — fs.watch on a
|
|
563
|
+
// non-existent path throws ENOENT.
|
|
481
564
|
const fp = getFilePath();
|
|
565
|
+
ensureDir(dirname(fp));
|
|
482
566
|
if (!existsSync(fp)) {
|
|
483
567
|
try {
|
|
484
568
|
mutateTasks(working => ({ result: undefined, changed: !existsSync(fp) && working.size === 0 }));
|
|
@@ -487,6 +571,7 @@ export function startExternalWriteWatcher() {
|
|
|
487
571
|
}
|
|
488
572
|
// Prime the cached file identity so the first watcher fire is comparable.
|
|
489
573
|
load();
|
|
574
|
+
const state = stateFor(fp);
|
|
490
575
|
try {
|
|
491
576
|
// Watch the directory, not the file inode: every commit atomically replaces
|
|
492
577
|
// schedules.json, so a file-level watcher would remain attached to the old
|
|
@@ -497,16 +582,16 @@ export function startExternalWriteWatcher() {
|
|
|
497
582
|
return;
|
|
498
583
|
if (!existsSync(fp))
|
|
499
584
|
return;
|
|
500
|
-
if (fileVersion(fp) ===
|
|
585
|
+
if (fileVersion(fp) === state.version)
|
|
501
586
|
return;
|
|
502
587
|
// Snapshot in-memory state, then let load() refresh from disk.
|
|
503
588
|
// load() compares file identity internally and updates the cache.
|
|
504
589
|
const before = new Map();
|
|
505
|
-
for (const [k, v] of tasks)
|
|
590
|
+
for (const [k, v] of state.tasks)
|
|
506
591
|
before.set(k, v);
|
|
507
592
|
load();
|
|
508
593
|
// Diff and publish.
|
|
509
|
-
for (const [id, t] of tasks) {
|
|
594
|
+
for (const [id, t] of state.tasks) {
|
|
510
595
|
const prev = before.get(id);
|
|
511
596
|
if (!prev) {
|
|
512
597
|
dashboardEventBus.publish({ type: 'schedule.created', body: { schedule: t } });
|
|
@@ -516,7 +601,7 @@ export function startExternalWriteWatcher() {
|
|
|
516
601
|
}
|
|
517
602
|
}
|
|
518
603
|
for (const id of before.keys()) {
|
|
519
|
-
if (!tasks.has(id)) {
|
|
604
|
+
if (!state.tasks.has(id)) {
|
|
520
605
|
dashboardEventBus.publish({ type: 'schedule.deleted', body: { id } });
|
|
521
606
|
}
|
|
522
607
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-store.js","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schedule-store.js","sourceRoot":"","sources":["../../src/services/schedule-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,13 +39,30 @@ export interface TriggerRequest {
|
|
|
39
39
|
waitForFinalOutput?: boolean;
|
|
40
40
|
asyncReturnSessionId?: boolean;
|
|
41
41
|
timeoutMs?: number;
|
|
42
|
+
/** Connector-owner opt-in: drop the daemon-rendered final_output reply for
|
|
43
|
+
* this loud trigger's turn. The streaming card / start notice still show;
|
|
44
|
+
* only the trailing transcript-driven summary is suppressed. */
|
|
45
|
+
suppressFinalOutput?: boolean;
|
|
42
46
|
};
|
|
43
47
|
}
|
|
44
|
-
export type TriggerErrorCode = 'bad_json' | 'bad_request' | 'bot_not_found' | 'bot_not_in_chat' | 'daemon_offline' | 'dry_run' | 'invalid_signature' | 'chat_not_allowed' | 'legacy_workflow_retired' | 'group_create_failed' | 'lifecycle_extract_failed' | 'rate_limited' | 'replay' | 'session_not_found' | 'target_required' | 'trigger_failed' | 'wait_timeout' | 'workflow_trigger_not_implemented';
|
|
48
|
+
export type TriggerErrorCode = 'bad_json' | 'bad_request' | 'bot_not_found' | 'bot_not_in_chat' | 'daemon_offline' | 'dry_run' | 'invalid_signature' | 'chat_not_allowed' | 'legacy_workflow_retired' | 'group_create_failed' | 'lifecycle_extract_failed' | 'rate_limited' | 'replay' | 'session_not_found' | 'target_required' | 'trigger_failed' | 'wait_timeout' | 'no_output' | 'workflow_trigger_not_implemented';
|
|
49
|
+
/** Four-state async lifecycle for `GET /api/sessions/:id/trigger-result`.
|
|
50
|
+
* Programmatic callers (task runners) branch on this instead of ok/action:
|
|
51
|
+
* - running: turn still in flight — keep polling
|
|
52
|
+
* - completed: final output captured (see output.content)
|
|
53
|
+
* - failed: session terminated without a captured output (soft terminal —
|
|
54
|
+
* may be a genuine failure OR a caller-initiated close/cancel)
|
|
55
|
+
* - not_found: no session record on disk (never existed / invalid id) */
|
|
56
|
+
export type AsyncTriggerState = 'running' | 'completed' | 'failed' | 'not_found';
|
|
45
57
|
export interface TriggerResponse {
|
|
46
58
|
ok: boolean;
|
|
47
59
|
triggerId?: string;
|
|
48
60
|
action?: TriggerAction;
|
|
61
|
+
/** Four-state async lifecycle. Present on trigger-result (async polling)
|
|
62
|
+
* responses; absent on synchronous turn/workflow dispatch responses. */
|
|
63
|
+
state?: AsyncTriggerState;
|
|
64
|
+
/** ISO8601 completion/termination time. Present on completed/failed states. */
|
|
65
|
+
finishedAt?: string;
|
|
49
66
|
target?: {
|
|
50
67
|
kind: TriggerTargetKind;
|
|
51
68
|
sessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-types.d.ts","sourceRoot":"","sources":["../../src/services/trigger-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAC1F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,CAAC;AACzD,MAAM,MAAM,8BAA8B,GACtC,SAAS,GACT,UAAU,GACV,yBAAyB,GACzB,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAIF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0EACsE;IACtE,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;QACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger-types.d.ts","sourceRoot":"","sources":["../../src/services/trigger-types.ts"],"names":[],"mappings":"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"}
|