botmux 2.111.0 → 2.112.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 +19 -7
- package/README.md +19 -7
- package/dist/adapters/adopt-route.d.ts.map +1 -1
- package/dist/adapters/adopt-route.js +2 -1
- package/dist/adapters/adopt-route.js.map +1 -1
- package/dist/adapters/backend/herdr-backend.d.ts +29 -0
- package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
- package/dist/adapters/backend/herdr-backend.js +167 -0
- package/dist/adapters/backend/herdr-backend.js.map +1 -1
- package/dist/adapters/backend/riff-backend.js +2 -2
- package/dist/adapters/backend/sandbox.d.ts +61 -6
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +235 -43
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/backend/tmux-backend.d.ts +1 -0
- package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-backend.js +1 -0
- package/dist/adapters/backend/tmux-backend.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts +2 -0
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +7 -0
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/codex-app-turn.d.ts +16 -0
- package/dist/adapters/cli/codex-app-turn.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app-turn.js +26 -0
- package/dist/adapters/cli/codex-app-turn.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +1 -0
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/grok.d.ts +8 -6
- package/dist/adapters/cli/grok.d.ts.map +1 -1
- package/dist/adapters/cli/grok.js +14 -6
- package/dist/adapters/cli/grok.js.map +1 -1
- package/dist/adapters/cli/read-isolation.d.ts +40 -14
- package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
- package/dist/adapters/cli/read-isolation.js +116 -19
- package/dist/adapters/cli/read-isolation.js.map +1 -1
- package/dist/adapters/cli/runner-control-channel.d.ts +32 -0
- package/dist/adapters/cli/runner-control-channel.d.ts.map +1 -0
- package/dist/adapters/cli/runner-control-channel.js +104 -0
- package/dist/adapters/cli/runner-control-channel.js.map +1 -0
- package/dist/adapters/cli/shared-hints.d.ts +1 -1
- package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
- package/dist/adapters/cli/shared-hints.js +9 -0
- package/dist/adapters/cli/shared-hints.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +100 -64
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +13 -0
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +36 -27
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +354 -8
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/saved-workflow.d.ts +25 -0
- package/dist/cli/saved-workflow.d.ts.map +1 -0
- package/dist/cli/saved-workflow.js +338 -0
- package/dist/cli/saved-workflow.js.map +1 -0
- package/dist/cli/send-dispatch.d.ts +18 -3
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +22 -3
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli/v3-run-cancel.d.ts +47 -0
- package/dist/cli/v3-run-cancel.d.ts.map +1 -0
- package/dist/cli/v3-run-cancel.js +96 -0
- package/dist/cli/v3-run-cancel.js.map +1 -0
- package/dist/cli/vc-agent.d.ts.map +1 -1
- package/dist/cli/vc-agent.js +54 -1
- package/dist/cli/vc-agent.js.map +1 -1
- package/dist/cli/workflow-migration.d.ts +39 -0
- package/dist/cli/workflow-migration.d.ts.map +1 -0
- package/dist/cli/workflow-migration.js +302 -0
- package/dist/cli/workflow-migration.js.map +1 -0
- package/dist/cli/workflow-run-archive.d.ts +29 -0
- package/dist/cli/workflow-run-archive.d.ts.map +1 -0
- package/dist/cli/workflow-run-archive.js +183 -0
- package/dist/cli/workflow-run-archive.js.map +1 -0
- package/dist/cli/workflow.d.ts +5 -10
- package/dist/cli/workflow.d.ts.map +1 -1
- package/dist/cli/workflow.js +85 -764
- package/dist/cli/workflow.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1018 -191
- package/dist/cli.js.map +1 -1
- package/dist/codex-app-runner.js +30 -21
- package/dist/codex-app-runner.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +21 -9
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/current-turn-provenance.d.ts +39 -0
- package/dist/core/current-turn-provenance.d.ts.map +1 -0
- package/dist/core/current-turn-provenance.js +122 -0
- package/dist/core/current-turn-provenance.js.map +1 -0
- package/dist/core/daemon-ipc-auth.d.ts +20 -0
- package/dist/core/daemon-ipc-auth.d.ts.map +1 -0
- package/dist/core/daemon-ipc-auth.js +44 -0
- package/dist/core/daemon-ipc-auth.js.map +1 -0
- package/dist/core/daemon-ipc-session-auth.d.ts +37 -0
- package/dist/core/daemon-ipc-session-auth.d.ts.map +1 -0
- package/dist/core/daemon-ipc-session-auth.js +35 -0
- package/dist/core/daemon-ipc-session-auth.js.map +1 -0
- package/dist/core/dashboard-command/index.d.ts +0 -2
- package/dist/core/dashboard-command/index.d.ts.map +1 -1
- package/dist/core/dashboard-command/index.js +2 -2
- package/dist/core/dashboard-command/index.js.map +1 -1
- package/dist/core/dashboard-command/stub.d.ts +1 -1
- package/dist/core/dashboard-command/stub.d.ts.map +1 -1
- package/dist/core/dashboard-command/stub.js +0 -1
- package/dist/core/dashboard-command/stub.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +11 -2
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +266 -41
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-secret.d.ts +3 -0
- package/dist/core/dashboard-secret.d.ts.map +1 -0
- package/dist/core/dashboard-secret.js +7 -0
- package/dist/core/dashboard-secret.js.map +1 -0
- package/dist/core/data-dir.d.ts +24 -0
- package/dist/core/data-dir.d.ts.map +1 -0
- package/dist/core/data-dir.js +48 -0
- package/dist/core/data-dir.js.map +1 -0
- package/dist/core/inflight-input-tracker.d.ts +4 -2
- package/dist/core/inflight-input-tracker.d.ts.map +1 -1
- package/dist/core/inflight-input-tracker.js +6 -5
- package/dist/core/inflight-input-tracker.js.map +1 -1
- package/dist/core/inject-queue-policy.d.ts +70 -0
- package/dist/core/inject-queue-policy.d.ts.map +1 -0
- package/dist/core/inject-queue-policy.js +30 -0
- package/dist/core/inject-queue-policy.js.map +1 -0
- package/dist/core/maintenance.d.ts +1 -1
- package/dist/core/maintenance.d.ts.map +1 -1
- package/dist/core/maintenance.js +3 -2
- package/dist/core/maintenance.js.map +1 -1
- package/dist/core/managed-origin-capability.d.ts +30 -0
- package/dist/core/managed-origin-capability.d.ts.map +1 -0
- package/dist/core/managed-origin-capability.js +88 -0
- package/dist/core/managed-origin-capability.js.map +1 -0
- package/dist/core/role-library.d.ts +15 -0
- package/dist/core/role-library.d.ts.map +1 -0
- package/dist/core/role-library.js +75 -0
- package/dist/core/role-library.js.map +1 -0
- package/dist/core/session-cwd.d.ts +14 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +17 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +4 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +27 -8
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-marker.d.ts +22 -0
- package/dist/core/session-marker.d.ts.map +1 -1
- package/dist/core/session-marker.js +185 -20
- package/dist/core/session-marker.js.map +1 -1
- package/dist/core/slash-inject.d.ts +15 -0
- package/dist/core/slash-inject.d.ts.map +1 -0
- package/dist/core/slash-inject.js +25 -0
- package/dist/core/slash-inject.js.map +1 -0
- package/dist/core/terminal-url.d.ts +1 -0
- package/dist/core/terminal-url.d.ts.map +1 -1
- package/dist/core/terminal-url.js +14 -8
- package/dist/core/terminal-url.js.map +1 -1
- package/dist/core/terminal-write-auth.d.ts +26 -0
- package/dist/core/terminal-write-auth.d.ts.map +1 -1
- package/dist/core/terminal-write-auth.js +48 -3
- package/dist/core/terminal-write-auth.js.map +1 -1
- package/dist/core/trigger-session.d.ts +24 -1
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +106 -15
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/types.d.ts +26 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +10 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +65 -2
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +459 -39
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +249 -8
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +7383 -1195
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/aggregator.d.ts +1 -1
- package/dist/dashboard/aggregator.d.ts.map +1 -1
- package/dist/dashboard/aggregator.js +2 -2
- package/dist/dashboard/aggregator.js.map +1 -1
- package/dist/dashboard/auth.d.ts +3 -8
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +63 -22
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +5 -0
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +37 -0
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +42 -2
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/daemon-internal-api.d.ts +0 -2
- package/dist/dashboard/daemon-internal-api.d.ts.map +1 -1
- package/dist/dashboard/daemon-internal-api.js +26 -93
- package/dist/dashboard/daemon-internal-api.js.map +1 -1
- package/dist/dashboard/daemon-internal-client.d.ts.map +1 -1
- package/dist/dashboard/daemon-internal-client.js +2 -3
- package/dist/dashboard/daemon-internal-client.js.map +1 -1
- package/dist/dashboard/federation-api.js +1 -1
- package/dist/dashboard/federation-api.js.map +1 -1
- package/dist/dashboard/federation-spoke-api.js +1 -1
- package/dist/dashboard/federation-spoke-api.js.map +1 -1
- package/dist/dashboard/history-senders.d.ts +3 -0
- package/dist/dashboard/history-senders.d.ts.map +1 -1
- package/dist/dashboard/history-senders.js.map +1 -1
- package/dist/dashboard/http.d.ts +4 -0
- package/dist/dashboard/http.d.ts.map +1 -0
- package/dist/dashboard/http.js +6 -0
- package/dist/dashboard/http.js.map +1 -0
- package/dist/dashboard/registry.d.ts +4 -0
- package/dist/dashboard/registry.d.ts.map +1 -1
- package/dist/dashboard/registry.js.map +1 -1
- package/dist/dashboard/trigger-api.js +1 -1
- package/dist/dashboard/trigger-api.js.map +1 -1
- package/dist/dashboard/v3-runs-api.d.ts +13 -10
- package/dist/dashboard/v3-runs-api.d.ts.map +1 -1
- package/dist/dashboard/v3-runs-api.js +121 -4
- package/dist/dashboard/v3-runs-api.js.map +1 -1
- package/dist/dashboard/vc-consumer-profiles-api.d.ts +105 -0
- package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -0
- package/dist/dashboard/vc-consumer-profiles-api.js +312 -0
- package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -0
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +7 -6
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +9 -14
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +7 -3
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/connectors-page.d.ts +5 -0
- package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
- package/dist/dashboard/web/connectors-page.js +16 -12
- package/dist/dashboard/web/connectors-page.js.map +1 -1
- package/dist/dashboard/web/create-session-entry.d.ts +4 -0
- package/dist/dashboard/web/create-session-entry.d.ts.map +1 -0
- package/dist/dashboard/web/create-session-entry.js +17 -0
- package/dist/dashboard/web/create-session-entry.js.map +1 -0
- package/dist/dashboard/web/dashboard-components.d.ts +5 -0
- package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
- package/dist/dashboard/web/dashboard-components.js +29 -4
- package/dist/dashboard/web/dashboard-components.js.map +1 -1
- package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
- package/dist/dashboard/web/dashboard-routes.js +0 -1
- package/dist/dashboard/web/dashboard-routes.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +192 -382
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/preferences.d.ts +3 -0
- package/dist/dashboard/web/preferences.d.ts.map +1 -1
- package/dist/dashboard/web/preferences.js +18 -0
- package/dist/dashboard/web/preferences.js.map +1 -1
- package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
- package/dist/dashboard/web/schedules-page.js +4 -1
- package/dist/dashboard/web/schedules-page.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +64 -18
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +2 -1
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/v3-api.d.ts +12 -2
- package/dist/dashboard/web/v3-api.d.ts.map +1 -1
- package/dist/dashboard/web/v3-api.js +34 -6
- package/dist/dashboard/web/v3-api.js.map +1 -1
- package/dist/dashboard/web/v3-components.d.ts +6 -0
- package/dist/dashboard/web/v3-components.d.ts.map +1 -1
- package/dist/dashboard/web/v3-components.js +66 -23
- package/dist/dashboard/web/v3-components.js.map +1 -1
- package/dist/dashboard/web/v3-model.js +1 -1
- package/dist/dashboard/web/v3-model.js.map +1 -1
- package/dist/dashboard/web/v3-terminal.js +2 -2
- package/dist/dashboard/web/v3-terminal.js.map +1 -1
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +19 -0
- package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -0
- package/dist/dashboard/web/vc-consumer-profiles-section.js +382 -0
- package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -0
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +29 -6
- 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-RYBL4ZYE.js +4 -0
- package/dist/dashboard-web/chunks/{chunk-OEJIT66L.js → chunk-CMDPZOPK.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-I35DXGM4.js +1 -0
- package/dist/dashboard-web/chunks/chunk-NYZHARIU.js +47 -0
- package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-YQFXGRSD.js → chunk-YBOHL7T7.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-YWCPDL4S.js +1 -0
- package/dist/dashboard-web/chunks/connectors-page-DAMP7TTV.js +1 -0
- package/dist/dashboard-web/chunks/{groups-page-5AJPPJH2.js → groups-page-BPFA356N.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-R3DFECX4.js → insights-page-SHOPHTWY.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-NLMKJLDY.js → monitor-room-PXPJGZCN.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-EHSOX4GV.js → monitoring-page-4DF54M5Y.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-OXJKFJ4R.js → office-page-6OHU6KMZ.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-GJHIVXJF.js → overview-page-IHIZ6F5M.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-6ZODQISW.js → roles-page-JYTBYKEF.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-DAGMHVCH.js → schedules-page-WJ72T7KV.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-page-QC56OIAI.js +3 -0
- package/dist/dashboard-web/chunks/settings-page-TCKWEXTN.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-J7EVUHXP.js → skills-page-RJJNIECW.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-YM5JBIII.js → team-federation-page-ZMDX3E7K.js} +1 -1
- package/dist/dashboard-web/chunks/v3-page-VLLAUQ33.js +94 -0
- package/dist/dashboard-web/chunks/{whiteboards-page-75N2U6W4.js → whiteboards-page-NAO53CKM.js} +1 -1
- package/dist/dashboard-web/style.css +363 -274
- package/dist/dashboard.js +194 -78
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +12 -87
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +12 -87
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/brand-template.d.ts +15 -0
- package/dist/im/lark/brand-template.d.ts.map +1 -0
- package/dist/im/lark/brand-template.js +114 -0
- package/dist/im/lark/brand-template.js.map +1 -0
- package/dist/im/lark/card-handler.d.ts +6 -3
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +23 -39
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +8 -2
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +33 -31
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/doc-comment.d.ts +18 -0
- package/dist/im/lark/doc-comment.d.ts.map +1 -1
- package/dist/im/lark/doc-comment.js +119 -5
- package/dist/im/lark/doc-comment.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +18 -2
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +41 -19
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/merge-forward.d.ts.map +1 -1
- package/dist/im/lark/merge-forward.js +7 -2
- package/dist/im/lark/merge-forward.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +7 -0
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/im/lark/overview-card.d.ts +1 -2
- package/dist/im/lark/overview-card.d.ts.map +1 -1
- package/dist/im/lark/overview-card.js +1 -48
- package/dist/im/lark/overview-card.js.map +1 -1
- package/dist/im/lark/v3-blocked-card-handler.d.ts.map +1 -1
- package/dist/im/lark/v3-blocked-card-handler.js +5 -5
- package/dist/im/lark/v3-blocked-card-handler.js.map +1 -1
- package/dist/im/lark/v3-blocked-card.d.ts +1 -0
- package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
- package/dist/im/lark/v3-blocked-card.js +19 -2
- package/dist/im/lark/v3-blocked-card.js.map +1 -1
- package/dist/im/lark/v3-distillation-card-handler.d.ts +12 -0
- package/dist/im/lark/v3-distillation-card-handler.d.ts.map +1 -0
- package/dist/im/lark/v3-distillation-card-handler.js +107 -0
- package/dist/im/lark/v3-distillation-card-handler.js.map +1 -0
- package/dist/im/lark/v3-distillation-card.d.ts +42 -0
- package/dist/im/lark/v3-distillation-card.d.ts.map +1 -0
- package/dist/im/lark/v3-distillation-card.js +206 -0
- package/dist/im/lark/v3-distillation-card.js.map +1 -0
- package/dist/im/lark/v3-gate-card-handler.d.ts +1 -1
- package/dist/im/lark/v3-gate-card-handler.d.ts.map +1 -1
- package/dist/im/lark/v3-gate-card-handler.js +6 -5
- package/dist/im/lark/v3-gate-card-handler.js.map +1 -1
- package/dist/im/lark/v3-gate-card.d.ts +8 -1
- package/dist/im/lark/v3-gate-card.d.ts.map +1 -1
- package/dist/im/lark/v3-gate-card.js +38 -7
- package/dist/im/lark/v3-gate-card.js.map +1 -1
- package/dist/im/lark/v3-loop-grant-card-handler.d.ts.map +1 -1
- package/dist/im/lark/v3-loop-grant-card-handler.js +3 -4
- package/dist/im/lark/v3-loop-grant-card-handler.js.map +1 -1
- package/dist/im/lark/v3-loop-grant-card.js +1 -1
- package/dist/im/lark/v3-loop-grant-card.js.map +1 -1
- package/dist/im/lark/v3-progress-card-manager.d.ts +79 -0
- package/dist/im/lark/v3-progress-card-manager.d.ts.map +1 -0
- package/dist/im/lark/v3-progress-card-manager.js +444 -0
- package/dist/im/lark/v3-progress-card-manager.js.map +1 -0
- package/dist/im/lark/v3-progress-card.d.ts +26 -0
- package/dist/im/lark/v3-progress-card.d.ts.map +1 -0
- package/dist/im/lark/v3-progress-card.js +211 -0
- package/dist/im/lark/v3-progress-card.js.map +1 -0
- package/dist/im/lark/v3-revisit-grant-card-handler.d.ts.map +1 -1
- package/dist/im/lark/v3-revisit-grant-card-handler.js +3 -4
- package/dist/im/lark/v3-revisit-grant-card-handler.js.map +1 -1
- package/dist/im/lark/v3-revisit-grant-card.js +1 -1
- package/dist/im/lark/v3-revisit-grant-card.js.map +1 -1
- package/dist/im/lark/v3-run-save-card-handler.d.ts +12 -0
- package/dist/im/lark/v3-run-save-card-handler.d.ts.map +1 -0
- package/dist/im/lark/v3-run-save-card-handler.js +160 -0
- package/dist/im/lark/v3-run-save-card-handler.js.map +1 -0
- package/dist/im/lark/v3-run-save-card.d.ts +38 -0
- package/dist/im/lark/v3-run-save-card.d.ts.map +1 -0
- package/dist/im/lark/v3-run-save-card.js +125 -0
- package/dist/im/lark/v3-run-save-card.js.map +1 -0
- package/dist/im/lark/v3-saved-workflow-command.d.ts +36 -0
- package/dist/im/lark/v3-saved-workflow-command.d.ts.map +1 -0
- package/dist/im/lark/v3-saved-workflow-command.js +186 -0
- package/dist/im/lark/v3-saved-workflow-command.js.map +1 -0
- package/dist/im/lark/v3-saved-workflow-handler.d.ts +89 -0
- package/dist/im/lark/v3-saved-workflow-handler.d.ts.map +1 -0
- package/dist/im/lark/v3-saved-workflow-handler.js +212 -0
- package/dist/im/lark/v3-saved-workflow-handler.js.map +1 -0
- package/dist/im/lark/workflow-slash-command.d.ts +7 -110
- package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
- package/dist/im/lark/workflow-slash-command.js +16 -230
- package/dist/im/lark/workflow-slash-command.js.map +1 -1
- package/dist/index-daemon.js +1 -1
- package/dist/index-daemon.js.map +1 -1
- package/dist/mir-runner.js +11 -15
- package/dist/mir-runner.js.map +1 -1
- package/dist/mira-runner.js +8 -12
- package/dist/mira-runner.js.map +1 -1
- package/dist/services/bridge-turn-queue.d.ts +29 -12
- package/dist/services/bridge-turn-queue.d.ts.map +1 -1
- package/dist/services/bridge-turn-queue.js +59 -23
- package/dist/services/bridge-turn-queue.js.map +1 -1
- package/dist/services/claude-transcript.d.ts +15 -0
- package/dist/services/claude-transcript.d.ts.map +1 -1
- package/dist/services/claude-transcript.js +24 -0
- package/dist/services/claude-transcript.js.map +1 -1
- package/dist/services/codex-bridge-queue.d.ts +13 -2
- package/dist/services/codex-bridge-queue.d.ts.map +1 -1
- package/dist/services/codex-bridge-queue.js +20 -3
- package/dist/services/codex-bridge-queue.js.map +1 -1
- package/dist/services/codex-transcript.d.ts +6 -0
- package/dist/services/codex-transcript.d.ts.map +1 -1
- package/dist/services/codex-transcript.js.map +1 -1
- package/dist/services/grok-transcript.d.ts +3 -2
- package/dist/services/grok-transcript.d.ts.map +1 -1
- package/dist/services/grok-transcript.js +73 -22
- package/dist/services/grok-transcript.js.map +1 -1
- package/dist/services/hook-runner.d.ts.map +1 -1
- package/dist/services/hook-runner.js +26 -3
- package/dist/services/hook-runner.js.map +1 -1
- package/dist/services/schedule-store.d.ts +37 -0
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/services/schedule-store.js +259 -141
- package/dist/services/schedule-store.js.map +1 -1
- package/dist/services/send-policy.d.ts +50 -0
- package/dist/services/send-policy.d.ts.map +1 -1
- package/dist/services/send-policy.js +65 -0
- package/dist/services/send-policy.js.map +1 -1
- package/dist/services/session-lifecycle-hooks.d.ts.map +1 -1
- package/dist/services/session-lifecycle-hooks.js +12 -0
- package/dist/services/session-lifecycle-hooks.js.map +1 -1
- package/dist/services/traex-transcript.d.ts +11 -2
- package/dist/services/traex-transcript.d.ts.map +1 -1
- package/dist/services/traex-transcript.js +142 -8
- package/dist/services/traex-transcript.js.map +1 -1
- package/dist/services/trigger-types.d.ts +6 -1
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/turn-terminal-deduper.d.ts +14 -0
- package/dist/services/turn-terminal-deduper.d.ts.map +1 -0
- package/dist/services/turn-terminal-deduper.js +34 -0
- package/dist/services/turn-terminal-deduper.js.map +1 -0
- package/dist/services/vc-meeting-action-gate.d.ts +246 -0
- package/dist/services/vc-meeting-action-gate.d.ts.map +1 -0
- package/dist/services/vc-meeting-action-gate.js +756 -0
- package/dist/services/vc-meeting-action-gate.js.map +1 -0
- package/dist/services/vc-meeting-action-store.d.ts +222 -0
- package/dist/services/vc-meeting-action-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-action-store.js +806 -0
- package/dist/services/vc-meeting-action-store.js.map +1 -0
- package/dist/services/vc-meeting-consumer-isolation.d.ts +27 -0
- package/dist/services/vc-meeting-consumer-isolation.d.ts.map +1 -0
- package/dist/services/vc-meeting-consumer-isolation.js +37 -0
- package/dist/services/vc-meeting-consumer-isolation.js.map +1 -0
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +72 -0
- package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -0
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js +343 -0
- package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -0
- package/dist/services/vc-meeting-consumer-profile-store.d.ts +39 -0
- package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-consumer-profile-store.js +190 -0
- package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -0
- package/dist/services/vc-meeting-daemon-auth.d.ts +29 -0
- package/dist/services/vc-meeting-daemon-auth.d.ts.map +1 -0
- package/dist/services/vc-meeting-daemon-auth.js +117 -0
- package/dist/services/vc-meeting-daemon-auth.js.map +1 -0
- package/dist/services/vc-meeting-delivery-feed.d.ts +52 -0
- package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -0
- package/dist/services/vc-meeting-delivery-feed.js +231 -0
- package/dist/services/vc-meeting-delivery-feed.js.map +1 -0
- package/dist/services/vc-meeting-delivery-hub-store.d.ts +213 -0
- package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-delivery-hub-store.js +1230 -0
- package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -0
- package/dist/services/vc-meeting-delivery-protocol.d.ts +159 -0
- package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -0
- package/dist/services/vc-meeting-delivery-protocol.js +443 -0
- package/dist/services/vc-meeting-delivery-protocol.js.map +1 -0
- package/dist/services/vc-meeting-delivery-receiver.d.ts +80 -0
- package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -0
- package/dist/services/vc-meeting-delivery-receiver.js +543 -0
- package/dist/services/vc-meeting-delivery-receiver.js.map +1 -0
- package/dist/services/vc-meeting-delivery-store.d.ts +339 -0
- package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-delivery-store.js +1024 -0
- package/dist/services/vc-meeting-delivery-store.js.map +1 -0
- package/dist/services/vc-meeting-feed-metadata-store.d.ts +58 -0
- package/dist/services/vc-meeting-feed-metadata-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-feed-metadata-store.js +356 -0
- package/dist/services/vc-meeting-feed-metadata-store.js.map +1 -0
- package/dist/services/vc-meeting-im-reply.d.ts +55 -0
- package/dist/services/vc-meeting-im-reply.d.ts.map +1 -0
- package/dist/services/vc-meeting-im-reply.js +279 -0
- package/dist/services/vc-meeting-im-reply.js.map +1 -0
- package/dist/services/vc-meeting-im-routing.d.ts +131 -0
- package/dist/services/vc-meeting-im-routing.d.ts.map +1 -0
- package/dist/services/vc-meeting-im-routing.js +449 -0
- package/dist/services/vc-meeting-im-routing.js.map +1 -0
- package/dist/services/vc-meeting-listener-message-store.d.ts +23 -0
- package/dist/services/vc-meeting-listener-message-store.d.ts.map +1 -0
- package/dist/services/vc-meeting-listener-message-store.js +142 -0
- package/dist/services/vc-meeting-listener-message-store.js.map +1 -0
- package/dist/services/vc-meeting-member-policy.d.ts +37 -0
- package/dist/services/vc-meeting-member-policy.d.ts.map +1 -0
- package/dist/services/vc-meeting-member-policy.js +102 -0
- package/dist/services/vc-meeting-member-policy.js.map +1 -0
- package/dist/services/vc-meeting-profile-instructions.d.ts +22 -0
- package/dist/services/vc-meeting-profile-instructions.d.ts.map +1 -0
- package/dist/services/vc-meeting-profile-instructions.js +64 -0
- package/dist/services/vc-meeting-profile-instructions.js.map +1 -0
- package/dist/services/vc-meeting-runtime-store.d.ts +63 -0
- package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
- package/dist/services/vc-meeting-runtime-store.js +605 -116
- package/dist/services/vc-meeting-runtime-store.js.map +1 -1
- package/dist/services/vc-meeting-send-policy.d.ts +89 -0
- package/dist/services/vc-meeting-send-policy.d.ts.map +1 -0
- package/dist/services/vc-meeting-send-policy.js +150 -0
- package/dist/services/vc-meeting-send-policy.js.map +1 -0
- package/dist/services/vc-meeting-terminal-reconciler.d.ts +93 -0
- package/dist/services/vc-meeting-terminal-reconciler.d.ts.map +1 -0
- package/dist/services/vc-meeting-terminal-reconciler.js +198 -0
- package/dist/services/vc-meeting-terminal-reconciler.js.map +1 -0
- package/dist/setup/open-platform-automation.d.ts +2 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +1 -0
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/setup/open-platform-outcome.d.ts +50 -0
- package/dist/setup/open-platform-outcome.d.ts.map +1 -0
- package/dist/setup/open-platform-outcome.js +56 -0
- package/dist/setup/open-platform-outcome.js.map +1 -0
- package/dist/setup/setup-args.d.ts +7 -2
- package/dist/setup/setup-args.d.ts.map +1 -1
- package/dist/setup/setup-args.js +21 -5
- package/dist/setup/setup-args.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +66 -54
- package/dist/skills/definitions.js.map +1 -1
- package/dist/skills/injection-mode.d.ts +5 -4
- package/dist/skills/injection-mode.d.ts.map +1 -1
- package/dist/skills/injection-mode.js +19 -10
- package/dist/skills/injection-mode.js.map +1 -1
- package/dist/types.d.ts +187 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/canonical-input-hash.d.ts +5 -0
- package/dist/utils/canonical-input-hash.d.ts.map +1 -0
- package/dist/utils/canonical-input-hash.js +43 -0
- package/dist/utils/canonical-input-hash.js.map +1 -0
- package/dist/utils/canonical-json.d.ts +10 -0
- package/dist/utils/canonical-json.d.ts.map +1 -0
- package/dist/utils/canonical-json.js +23 -0
- package/dist/utils/canonical-json.js.map +1 -0
- package/dist/utils/child-env.d.ts +1 -1
- package/dist/utils/child-env.d.ts.map +1 -1
- package/dist/utils/child-env.js +8 -0
- package/dist/utils/child-env.js.map +1 -1
- package/dist/utils/daemon-discovery.d.ts +4 -0
- package/dist/utils/daemon-discovery.d.ts.map +1 -1
- package/dist/utils/daemon-discovery.js +12 -6
- package/dist/utils/daemon-discovery.js.map +1 -1
- package/dist/utils/file-lock.d.ts.map +1 -1
- package/dist/utils/file-lock.js +696 -102
- package/dist/utils/file-lock.js.map +1 -1
- package/dist/utils/fs-durability.d.ts +20 -0
- package/dist/utils/fs-durability.d.ts.map +1 -0
- package/dist/utils/fs-durability.js +84 -0
- package/dist/utils/fs-durability.js.map +1 -0
- package/dist/utils/global-install.d.ts +5 -2
- package/dist/utils/global-install.d.ts.map +1 -1
- package/dist/utils/global-install.js +22 -4
- package/dist/utils/global-install.js.map +1 -1
- package/dist/utils/herdr-web-history.d.ts +12 -0
- package/dist/utils/herdr-web-history.d.ts.map +1 -0
- package/dist/utils/herdr-web-history.js +74 -0
- package/dist/utils/herdr-web-history.js.map +1 -0
- package/dist/utils/herdr-web-terminal-binding.d.ts +39 -0
- package/dist/utils/herdr-web-terminal-binding.d.ts.map +1 -0
- package/dist/utils/herdr-web-terminal-binding.js +56 -0
- package/dist/utils/herdr-web-terminal-binding.js.map +1 -0
- package/dist/utils/pending-input-queue.d.ts +30 -1
- package/dist/utils/pending-input-queue.d.ts.map +1 -1
- package/dist/utils/pending-input-queue.js +45 -5
- package/dist/utils/pending-input-queue.js.map +1 -1
- package/dist/vc-agent/cards.d.ts +49 -4
- package/dist/vc-agent/cards.d.ts.map +1 -1
- package/dist/vc-agent/cards.js +460 -70
- package/dist/vc-agent/cards.js.map +1 -1
- package/dist/vc-agent/polling-source.d.ts +6 -1
- package/dist/vc-agent/polling-source.d.ts.map +1 -1
- package/dist/vc-agent/polling-source.js +17 -4
- package/dist/vc-agent/polling-source.js.map +1 -1
- package/dist/worker.js +1333 -283
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +28 -35
- package/dist/workflows/definition.d.ts.map +1 -1
- package/dist/workflows/definition.js +7 -24
- package/dist/workflows/definition.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +28 -28
- package/dist/workflows/events/replay.d.ts +5 -0
- package/dist/workflows/events/replay.d.ts.map +1 -1
- package/dist/workflows/events/replay.js +6 -1
- package/dist/workflows/events/replay.js.map +1 -1
- package/dist/workflows/events/schema.d.ts +663 -663
- package/dist/workflows/events/schema.d.ts.map +1 -1
- package/dist/workflows/events/schema.js +1 -4
- package/dist/workflows/events/schema.js.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts +5 -4
- package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/botmux-schedule.js +80 -35
- package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
- package/dist/workflows/hostExecutors/feishu-im.d.ts +3 -3
- package/dist/workflows/hostExecutors/feishu-im.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/feishu-im.js +3 -3
- package/dist/workflows/hostExecutors/feishu-im.js.map +1 -1
- package/dist/workflows/hostExecutors/feishu-reply.d.ts +1 -1
- package/dist/workflows/hostExecutors/feishu-reply.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/feishu-reply.js +1 -1
- package/dist/workflows/hostExecutors/feishu-reply.js.map +1 -1
- package/dist/workflows/hostExecutors/feishu-send.d.ts +1 -1
- package/dist/workflows/hostExecutors/feishu-send.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/feishu-send.js +1 -1
- package/dist/workflows/hostExecutors/feishu-send.js.map +1 -1
- package/dist/workflows/hostExecutors/index.d.ts +0 -1
- package/dist/workflows/hostExecutors/index.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/index.js +0 -1
- package/dist/workflows/hostExecutors/index.js.map +1 -1
- package/dist/workflows/hostExecutors/registry.d.ts +1 -1
- package/dist/workflows/hostExecutors/registry.d.ts.map +1 -1
- package/dist/workflows/hostExecutors/types.d.ts +21 -29
- package/dist/workflows/hostExecutors/types.d.ts.map +1 -1
- package/dist/workflows/migration/v2-definition-paths.d.ts +3 -0
- package/dist/workflows/migration/v2-definition-paths.d.ts.map +1 -0
- package/dist/workflows/migration/v2-definition-paths.js +10 -0
- package/dist/workflows/migration/v2-definition-paths.js.map +1 -0
- package/dist/workflows/migration/v2-ledger.d.ts +138 -0
- package/dist/workflows/migration/v2-ledger.d.ts.map +1 -0
- package/dist/workflows/migration/v2-ledger.js +599 -0
- package/dist/workflows/migration/v2-ledger.js.map +1 -0
- package/dist/workflows/migration/v2-migration-service.d.ts +40 -0
- package/dist/workflows/migration/v2-migration-service.d.ts.map +1 -0
- package/dist/workflows/migration/v2-migration-service.js +454 -0
- package/dist/workflows/migration/v2-migration-service.js.map +1 -0
- package/dist/workflows/migration/v2-read-only-ids.d.ts +7 -0
- package/dist/workflows/migration/v2-read-only-ids.d.ts.map +1 -0
- package/dist/workflows/migration/v2-read-only-ids.js +9 -0
- package/dist/workflows/migration/v2-read-only-ids.js.map +1 -0
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +976 -0
- package/dist/workflows/migration/v2-run-archive-schema.d.ts.map +1 -0
- package/dist/workflows/migration/v2-run-archive-schema.js +113 -0
- package/dist/workflows/migration/v2-run-archive-schema.js.map +1 -0
- package/dist/workflows/migration/v2-run-archive.d.ts +92 -0
- package/dist/workflows/migration/v2-run-archive.d.ts.map +1 -0
- package/dist/workflows/migration/v2-run-archive.js +1220 -0
- package/dist/workflows/migration/v2-run-archive.js.map +1 -0
- package/dist/workflows/migration/v2-scanner.d.ts +22 -0
- package/dist/workflows/migration/v2-scanner.d.ts.map +1 -0
- package/dist/workflows/migration/v2-scanner.js +114 -0
- package/dist/workflows/migration/v2-scanner.js.map +1 -0
- package/dist/workflows/migration/v2-to-v3.d.ts +32 -0
- package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -0
- package/dist/workflows/migration/v2-to-v3.js +494 -0
- package/dist/workflows/migration/v2-to-v3.js.map +1 -0
- package/dist/workflows/ops-projection.d.ts.map +1 -1
- package/dist/workflows/ops-projection.js +4 -3
- package/dist/workflows/ops-projection.js.map +1 -1
- package/dist/workflows/shared/idempotency-key.d.ts +19 -0
- package/dist/workflows/shared/idempotency-key.d.ts.map +1 -0
- package/dist/workflows/shared/idempotency-key.js +23 -0
- package/dist/workflows/shared/idempotency-key.js.map +1 -0
- package/dist/workflows/{params.d.ts → shared/params.d.ts} +42 -6
- package/dist/workflows/shared/params.d.ts.map +1 -0
- package/dist/workflows/{params.js → shared/params.js} +91 -4
- package/dist/workflows/shared/params.js.map +1 -0
- package/dist/workflows/shared/provider-reconciler.d.ts +47 -0
- package/dist/workflows/shared/provider-reconciler.d.ts.map +1 -0
- package/dist/workflows/shared/provider-reconciler.js +17 -0
- package/dist/workflows/shared/provider-reconciler.js.map +1 -0
- package/dist/workflows/{spawn-policy.d.ts → shared/sandbox-policy.d.ts} +2 -2
- package/dist/workflows/shared/sandbox-policy.d.ts.map +1 -0
- package/dist/workflows/{spawn-policy.js → shared/sandbox-policy.js} +1 -1
- package/dist/workflows/shared/sandbox-policy.js.map +1 -0
- package/dist/workflows/shared/worker-process.d.ts +29 -0
- package/dist/workflows/shared/worker-process.d.ts.map +1 -0
- package/dist/workflows/shared/worker-process.js +56 -0
- package/dist/workflows/shared/worker-process.js.map +1 -0
- package/dist/workflows/v3/architect.d.ts.map +1 -1
- package/dist/workflows/v3/architect.js +16 -4
- package/dist/workflows/v3/architect.js.map +1 -1
- package/dist/workflows/v3/attempt-ledger.d.ts +23 -0
- package/dist/workflows/v3/attempt-ledger.d.ts.map +1 -0
- package/dist/workflows/v3/attempt-ledger.js +74 -0
- package/dist/workflows/v3/attempt-ledger.js.map +1 -0
- package/dist/workflows/v3/bot-resolve.d.ts +19 -1
- package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
- package/dist/workflows/v3/bot-resolve.js +129 -3
- package/dist/workflows/v3/bot-resolve.js.map +1 -1
- package/dist/workflows/v3/cli-daemon-command-authority.d.ts +59 -0
- package/dist/workflows/v3/cli-daemon-command-authority.d.ts.map +1 -0
- package/dist/workflows/v3/cli-daemon-command-authority.js +175 -0
- package/dist/workflows/v3/cli-daemon-command-authority.js.map +1 -0
- package/dist/workflows/v3/cli-run.d.ts +27 -0
- package/dist/workflows/v3/cli-run.d.ts.map +1 -1
- package/dist/workflows/v3/cli-run.js +113 -29
- package/dist/workflows/v3/cli-run.js.map +1 -1
- package/dist/workflows/v3/contract.d.ts +16 -16
- package/dist/workflows/v3/contract.d.ts.map +1 -1
- package/dist/workflows/v3/contract.js +15 -11
- package/dist/workflows/v3/contract.js.map +1 -1
- package/dist/workflows/v3/daemon-ipc-auth.d.ts +113 -0
- package/dist/workflows/v3/daemon-ipc-auth.d.ts.map +1 -0
- package/dist/workflows/v3/daemon-ipc-auth.js +294 -0
- package/dist/workflows/v3/daemon-ipc-auth.js.map +1 -0
- package/dist/workflows/v3/daemon-ipc-body.d.ts +30 -0
- package/dist/workflows/v3/daemon-ipc-body.d.ts.map +1 -0
- package/dist/workflows/v3/daemon-ipc-body.js +65 -0
- package/dist/workflows/v3/daemon-ipc-body.js.map +1 -0
- package/dist/workflows/v3/daemon-ipc-client.d.ts +32 -0
- package/dist/workflows/v3/daemon-ipc-client.d.ts.map +1 -0
- package/dist/workflows/v3/daemon-ipc-client.js +74 -0
- package/dist/workflows/v3/daemon-ipc-client.js.map +1 -0
- package/dist/workflows/v3/daemon-run.d.ts +87 -2
- package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
- package/dist/workflows/v3/daemon-run.js +863 -68
- package/dist/workflows/v3/daemon-run.js.map +1 -1
- package/dist/workflows/v3/dag.d.ts +22 -8
- package/dist/workflows/v3/dag.d.ts.map +1 -1
- package/dist/workflows/v3/dag.js +214 -22
- package/dist/workflows/v3/dag.js.map +1 -1
- package/dist/workflows/v3/distillation-compiler.d.ts +36 -0
- package/dist/workflows/v3/distillation-compiler.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-compiler.js +704 -0
- package/dist/workflows/v3/distillation-compiler.js.map +1 -0
- package/dist/workflows/v3/distillation-private-root.d.ts +10 -0
- package/dist/workflows/v3/distillation-private-root.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-private-root.js +34 -0
- package/dist/workflows/v3/distillation-private-root.js.map +1 -0
- package/dist/workflows/v3/distillation-runner.d.ts +64 -0
- package/dist/workflows/v3/distillation-runner.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-runner.js +1028 -0
- package/dist/workflows/v3/distillation-runner.js.map +1 -0
- package/dist/workflows/v3/distillation-schema.d.ts +63 -0
- package/dist/workflows/v3/distillation-schema.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-schema.js +184 -0
- package/dist/workflows/v3/distillation-schema.js.map +1 -0
- package/dist/workflows/v3/distillation-service.d.ts +78 -0
- package/dist/workflows/v3/distillation-service.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-service.js +416 -0
- package/dist/workflows/v3/distillation-service.js.map +1 -0
- package/dist/workflows/v3/distillation-source.d.ts +35 -0
- package/dist/workflows/v3/distillation-source.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-source.js +118 -0
- package/dist/workflows/v3/distillation-source.js.map +1 -0
- package/dist/workflows/v3/distillation-store.d.ts +185 -0
- package/dist/workflows/v3/distillation-store.d.ts.map +1 -0
- package/dist/workflows/v3/distillation-store.js +1127 -0
- package/dist/workflows/v3/distillation-store.js.map +1 -0
- package/dist/workflows/v3/drive-lease.d.ts +7 -0
- package/dist/workflows/v3/drive-lease.d.ts.map +1 -0
- package/dist/workflows/v3/drive-lease.js +10 -0
- package/dist/workflows/v3/drive-lease.js.map +1 -0
- package/dist/workflows/v3/ephemeral-pool.d.ts +1 -1
- package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
- package/dist/workflows/v3/ephemeral-pool.js +222 -37
- package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
- package/dist/workflows/v3/grill-state.d.ts +18 -3
- package/dist/workflows/v3/grill-state.d.ts.map +1 -1
- package/dist/workflows/v3/grill-state.js +22 -5
- package/dist/workflows/v3/grill-state.js.map +1 -1
- package/dist/workflows/v3/host-bindings.d.ts +40 -0
- package/dist/workflows/v3/host-bindings.d.ts.map +1 -0
- package/dist/workflows/v3/host-bindings.js +272 -0
- package/dist/workflows/v3/host-bindings.js.map +1 -0
- package/dist/workflows/v3/host-effect-ledger.d.ts +22 -0
- package/dist/workflows/v3/host-effect-ledger.d.ts.map +1 -0
- package/dist/workflows/v3/host-effect-ledger.js +110 -0
- package/dist/workflows/v3/host-effect-ledger.js.map +1 -0
- package/dist/workflows/v3/host-execution.d.ts +142 -0
- package/dist/workflows/v3/host-execution.d.ts.map +1 -0
- package/dist/workflows/v3/host-execution.js +424 -0
- package/dist/workflows/v3/host-execution.js.map +1 -0
- package/dist/workflows/v3/host.d.ts +46 -10
- package/dist/workflows/v3/host.d.ts.map +1 -1
- package/dist/workflows/v3/host.js +419 -140
- package/dist/workflows/v3/host.js.map +1 -1
- package/dist/workflows/v3/human-gate.d.ts +19 -1
- package/dist/workflows/v3/human-gate.d.ts.map +1 -1
- package/dist/workflows/v3/human-gate.js +145 -19
- package/dist/workflows/v3/human-gate.js.map +1 -1
- package/dist/workflows/v3/journal.d.ts +125 -7
- package/dist/workflows/v3/journal.d.ts.map +1 -1
- package/dist/workflows/v3/journal.js +154 -38
- package/dist/workflows/v3/journal.js.map +1 -1
- package/dist/workflows/v3/library-materialize.d.ts +88 -0
- package/dist/workflows/v3/library-materialize.d.ts.map +1 -0
- package/dist/workflows/v3/library-materialize.js +294 -0
- package/dist/workflows/v3/library-materialize.js.map +1 -0
- package/dist/workflows/v3/library-schema.d.ts +138 -0
- package/dist/workflows/v3/library-schema.d.ts.map +1 -0
- package/dist/workflows/v3/library-schema.js +573 -0
- package/dist/workflows/v3/library-schema.js.map +1 -0
- package/dist/workflows/v3/library-service.d.ts +126 -0
- package/dist/workflows/v3/library-service.d.ts.map +1 -0
- package/dist/workflows/v3/library-service.js +542 -0
- package/dist/workflows/v3/library-service.js.map +1 -0
- package/dist/workflows/v3/library-store.d.ts +124 -0
- package/dist/workflows/v3/library-store.d.ts.map +1 -0
- package/dist/workflows/v3/library-store.js +665 -0
- package/dist/workflows/v3/library-store.js.map +1 -0
- package/dist/workflows/v3/orchestrator.d.ts +9 -1
- package/dist/workflows/v3/orchestrator.d.ts.map +1 -1
- package/dist/workflows/v3/orchestrator.js +2 -1
- package/dist/workflows/v3/orchestrator.js.map +1 -1
- package/dist/workflows/v3/progress-projection.d.ts +99 -0
- package/dist/workflows/v3/progress-projection.d.ts.map +1 -0
- package/dist/workflows/v3/progress-projection.js +197 -0
- package/dist/workflows/v3/progress-projection.js.map +1 -0
- package/dist/workflows/v3/run-envelope.d.ts +1279 -0
- package/dist/workflows/v3/run-envelope.d.ts.map +1 -0
- package/dist/workflows/v3/run-envelope.js +681 -0
- package/dist/workflows/v3/run-envelope.js.map +1 -0
- package/dist/workflows/v3/runtime.d.ts +39 -7
- package/dist/workflows/v3/runtime.d.ts.map +1 -1
- package/dist/workflows/v3/runtime.js +1992 -100
- package/dist/workflows/v3/runtime.js.map +1 -1
- package/dist/workflows/v3/session-relay-client.d.ts +61 -0
- package/dist/workflows/v3/session-relay-client.d.ts.map +1 -0
- package/dist/workflows/v3/session-relay-client.js +92 -0
- package/dist/workflows/v3/session-relay-client.js.map +1 -0
- package/dist/workflows/v3/session-relay.d.ts +66 -0
- package/dist/workflows/v3/session-relay.d.ts.map +1 -0
- package/dist/workflows/v3/session-relay.js +157 -0
- package/dist/workflows/v3/session-relay.js.map +1 -0
- package/dist/workflows/v3/start-intent.d.ts +8 -0
- package/dist/workflows/v3/start-intent.d.ts.map +1 -0
- package/dist/workflows/v3/start-intent.js +34 -0
- package/dist/workflows/v3/start-intent.js.map +1 -0
- package/dist/workflows/v3/state.d.ts +11 -2
- package/dist/workflows/v3/state.d.ts.map +1 -1
- package/dist/workflows/v3/state.js +182 -10
- package/dist/workflows/v3/state.js.map +1 -1
- package/dist/workflows/v3/template-bindings.d.ts +22 -0
- package/dist/workflows/v3/template-bindings.d.ts.map +1 -0
- package/dist/workflows/v3/template-bindings.js +204 -0
- package/dist/workflows/v3/template-bindings.js.map +1 -0
- package/dist/workflows/v3/worker-fence.d.ts +158 -0
- package/dist/workflows/v3/worker-fence.d.ts.map +1 -0
- package/dist/workflows/v3/worker-fence.js +685 -0
- package/dist/workflows/v3/worker-fence.js.map +1 -0
- package/package.json +3 -2
- package/dist/core/dashboard-command/workflows.d.ts +0 -20
- package/dist/core/dashboard-command/workflows.d.ts.map +0 -1
- package/dist/core/dashboard-command/workflows.js +0 -45
- package/dist/core/dashboard-command/workflows.js.map +0 -1
- package/dist/dashboard/web/legacy-workflow-link.d.ts +0 -2
- package/dist/dashboard/web/legacy-workflow-link.d.ts.map +0 -1
- package/dist/dashboard/web/legacy-workflow-link.js +0 -12
- package/dist/dashboard/web/legacy-workflow-link.js.map +0 -1
- package/dist/dashboard/web/legacy-workflow-page.d.ts +0 -3
- package/dist/dashboard/web/legacy-workflow-page.d.ts.map +0 -1
- package/dist/dashboard/web/legacy-workflow-page.js +0 -717
- package/dist/dashboard/web/legacy-workflow-page.js.map +0 -1
- package/dist/dashboard/web/workflow-version-switch.d.ts +0 -8
- package/dist/dashboard/web/workflow-version-switch.d.ts.map +0 -1
- package/dist/dashboard/web/workflow-version-switch.js +0 -9
- package/dist/dashboard/web/workflow-version-switch.js.map +0 -1
- package/dist/dashboard/web/workflows.d.ts +0 -273
- package/dist/dashboard/web/workflows.d.ts.map +0 -1
- package/dist/dashboard/web/workflows.js +0 -436
- package/dist/dashboard/web/workflows.js.map +0 -1
- package/dist/dashboard/workflow-api.d.ts +0 -30
- package/dist/dashboard/workflow-api.d.ts.map +0 -1
- package/dist/dashboard/workflow-api.js +0 -397
- package/dist/dashboard/workflow-api.js.map +0 -1
- package/dist/dashboard/workflow-card-model.d.ts +0 -127
- package/dist/dashboard/workflow-card-model.d.ts.map +0 -1
- package/dist/dashboard/workflow-card-model.js +0 -186
- package/dist/dashboard/workflow-card-model.js.map +0 -1
- package/dist/dashboard/workflows-action-helpers.d.ts +0 -105
- package/dist/dashboard/workflows-action-helpers.d.ts.map +0 -1
- package/dist/dashboard/workflows-action-helpers.js +0 -196
- package/dist/dashboard/workflows-action-helpers.js.map +0 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-7T7DPOV6.js +0 -4
- package/dist/dashboard-web/chunks/chunk-IGXYYRYJ.js +0 -1
- package/dist/dashboard-web/chunks/chunk-ISOD7VDX.js +0 -1
- package/dist/dashboard-web/chunks/chunk-PNK3HQBI.js +0 -37
- package/dist/dashboard-web/chunks/chunk-SRIE4MLQ.js +0 -1
- package/dist/dashboard-web/chunks/connectors-page-UQ4QBE45.js +0 -1
- package/dist/dashboard-web/chunks/legacy-workflow-page-QMC7OZXH.js +0 -2
- package/dist/dashboard-web/chunks/sessions-page-NNZIDHZM.js +0 -3
- package/dist/dashboard-web/chunks/settings-page-LJIXX5LQ.js +0 -2
- package/dist/dashboard-web/chunks/v3-page-YLYVHGKD.js +0 -94
- package/dist/dashboard-web/terminal-replay.html +0 -227
- package/dist/im/lark/workflow-card-handler.d.ts +0 -51
- package/dist/im/lark/workflow-card-handler.d.ts.map +0 -1
- package/dist/im/lark/workflow-card-handler.js +0 -163
- package/dist/im/lark/workflow-card-handler.js.map +0 -1
- package/dist/im/lark/workflow-cards.d.ts +0 -47
- package/dist/im/lark/workflow-cards.d.ts.map +0 -1
- package/dist/im/lark/workflow-cards.js +0 -231
- package/dist/im/lark/workflow-cards.js.map +0 -1
- package/dist/im/lark/workflow-progress-card.d.ts +0 -81
- package/dist/im/lark/workflow-progress-card.d.ts.map +0 -1
- package/dist/im/lark/workflow-progress-card.js +0 -336
- package/dist/im/lark/workflow-progress-card.js.map +0 -1
- package/dist/im/lark/workflows-card.d.ts +0 -102
- package/dist/im/lark/workflows-card.d.ts.map +0 -1
- package/dist/im/lark/workflows-card.js +0 -737
- package/dist/im/lark/workflows-card.js.map +0 -1
- package/dist/workflows/attempt-resume.d.ts +0 -119
- package/dist/workflows/attempt-resume.d.ts.map +0 -1
- package/dist/workflows/attempt-resume.js +0 -392
- package/dist/workflows/attempt-resume.js.map +0 -1
- package/dist/workflows/blob.d.ts +0 -27
- package/dist/workflows/blob.d.ts.map +0 -1
- package/dist/workflows/blob.js +0 -40
- package/dist/workflows/blob.js.map +0 -1
- package/dist/workflows/cancel-run.d.ts +0 -45
- package/dist/workflows/cancel-run.d.ts.map +0 -1
- package/dist/workflows/cancel-run.js +0 -99
- package/dist/workflows/cancel-run.js.map +0 -1
- package/dist/workflows/cancel.d.ts +0 -111
- package/dist/workflows/cancel.d.ts.map +0 -1
- package/dist/workflows/cancel.js +0 -120
- package/dist/workflows/cancel.js.map +0 -1
- package/dist/workflows/catalog.d.ts +0 -60
- package/dist/workflows/catalog.d.ts.map +0 -1
- package/dist/workflows/catalog.js +0 -119
- package/dist/workflows/catalog.js.map +0 -1
- package/dist/workflows/cold-attach.d.ts +0 -30
- package/dist/workflows/cold-attach.d.ts.map +0 -1
- package/dist/workflows/cold-attach.js +0 -40
- package/dist/workflows/cold-attach.js.map +0 -1
- package/dist/workflows/cold-scan.d.ts +0 -21
- package/dist/workflows/cold-scan.d.ts.map +0 -1
- package/dist/workflows/cold-scan.js +0 -70
- package/dist/workflows/cold-scan.js.map +0 -1
- package/dist/workflows/daemon-spawn.d.ts +0 -119
- package/dist/workflows/daemon-spawn.d.ts.map +0 -1
- package/dist/workflows/daemon-spawn.js +0 -564
- package/dist/workflows/daemon-spawn.js.map +0 -1
- package/dist/workflows/effect-input.d.ts +0 -4
- package/dist/workflows/effect-input.d.ts.map +0 -1
- package/dist/workflows/effect-input.js +0 -19
- package/dist/workflows/effect-input.js.map +0 -1
- package/dist/workflows/events/append.d.ts +0 -77
- package/dist/workflows/events/append.d.ts.map +0 -1
- package/dist/workflows/events/append.js +0 -214
- package/dist/workflows/events/append.js.map +0 -1
- package/dist/workflows/events/idempotency.d.ts +0 -77
- package/dist/workflows/events/idempotency.d.ts.map +0 -1
- package/dist/workflows/events/idempotency.js +0 -116
- package/dist/workflows/events/idempotency.js.map +0 -1
- package/dist/workflows/events/index.d.ts +0 -7
- package/dist/workflows/events/index.d.ts.map +0 -1
- package/dist/workflows/events/index.js +0 -7
- package/dist/workflows/events/index.js.map +0 -1
- package/dist/workflows/fanout.d.ts +0 -36
- package/dist/workflows/fanout.d.ts.map +0 -1
- package/dist/workflows/fanout.js +0 -115
- package/dist/workflows/fanout.js.map +0 -1
- package/dist/workflows/hostExecutors/protocol.d.ts +0 -42
- package/dist/workflows/hostExecutors/protocol.d.ts.map +0 -1
- package/dist/workflows/hostExecutors/protocol.js +0 -181
- package/dist/workflows/hostExecutors/protocol.js.map +0 -1
- package/dist/workflows/loader.d.ts +0 -30
- package/dist/workflows/loader.d.ts.map +0 -1
- package/dist/workflows/loader.js +0 -84
- package/dist/workflows/loader.js.map +0 -1
- package/dist/workflows/loop.d.ts +0 -50
- package/dist/workflows/loop.d.ts.map +0 -1
- package/dist/workflows/loop.js +0 -408
- package/dist/workflows/loop.js.map +0 -1
- package/dist/workflows/orchestrator.d.ts +0 -171
- package/dist/workflows/orchestrator.d.ts.map +0 -1
- package/dist/workflows/orchestrator.js +0 -609
- package/dist/workflows/orchestrator.js.map +0 -1
- package/dist/workflows/output-binding.d.ts +0 -77
- package/dist/workflows/output-binding.d.ts.map +0 -1
- package/dist/workflows/output-binding.js +0 -329
- package/dist/workflows/output-binding.js.map +0 -1
- package/dist/workflows/params.d.ts.map +0 -1
- package/dist/workflows/params.js.map +0 -1
- package/dist/workflows/resume.d.ts +0 -263
- package/dist/workflows/resume.d.ts.map +0 -1
- package/dist/workflows/resume.js +0 -808
- package/dist/workflows/resume.js.map +0 -1
- package/dist/workflows/run-id.d.ts +0 -2
- package/dist/workflows/run-id.d.ts.map +0 -1
- package/dist/workflows/run-id.js +0 -7
- package/dist/workflows/run-id.js.map +0 -1
- package/dist/workflows/run-init.d.ts +0 -48
- package/dist/workflows/run-init.d.ts.map +0 -1
- package/dist/workflows/run-init.js +0 -100
- package/dist/workflows/run-init.js.map +0 -1
- package/dist/workflows/runs-dir.d.ts +0 -4
- package/dist/workflows/runs-dir.d.ts.map +0 -1
- package/dist/workflows/runs-dir.js +0 -15
- package/dist/workflows/runs-dir.js.map +0 -1
- package/dist/workflows/runtime.d.ts +0 -215
- package/dist/workflows/runtime.d.ts.map +0 -1
- package/dist/workflows/runtime.js +0 -630
- package/dist/workflows/runtime.js.map +0 -1
- package/dist/workflows/spawn-bot.d.ts +0 -165
- package/dist/workflows/spawn-bot.d.ts.map +0 -1
- package/dist/workflows/spawn-bot.js +0 -215
- package/dist/workflows/spawn-bot.js.map +0 -1
- package/dist/workflows/spawn-policy.d.ts.map +0 -1
- package/dist/workflows/spawn-policy.js.map +0 -1
- package/dist/workflows/system.d.ts +0 -49
- package/dist/workflows/system.d.ts.map +0 -1
- package/dist/workflows/system.js +0 -48
- package/dist/workflows/system.js.map +0 -1
- package/dist/workflows/trigger-from-envelope.d.ts +0 -13
- package/dist/workflows/trigger-from-envelope.d.ts.map +0 -1
- package/dist/workflows/trigger-from-envelope.js +0 -68
- package/dist/workflows/trigger-from-envelope.js.map +0 -1
- package/dist/workflows/trigger-run.d.ts +0 -70
- package/dist/workflows/trigger-run.d.ts.map +0 -1
- package/dist/workflows/trigger-run.js +0 -88
- package/dist/workflows/trigger-run.js.map +0 -1
- package/dist/workflows/wait.d.ts +0 -141
- package/dist/workflows/wait.d.ts.map +0 -1
- package/dist/workflows/wait.js +0 -203
- package/dist/workflows/wait.js.map +0 -1
package/dist/dashboard.js
CHANGED
|
@@ -6,7 +6,7 @@ import { atomicWriteFileSync } from './utils/atomic-write.js';
|
|
|
6
6
|
import { join, dirname, extname, resolve, relative, isAbsolute } from 'node:path';
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
8
|
import { fileURLToPath } from 'node:url';
|
|
9
|
-
import { randomBytes
|
|
9
|
+
import { randomBytes } from 'node:crypto';
|
|
10
10
|
import { logger } from './utils/logger.js';
|
|
11
11
|
import { config } from './config.js';
|
|
12
12
|
import { listenWithProbe } from './utils/listen-with-probe.js';
|
|
@@ -15,16 +15,16 @@ import { DaemonRegistry } from './dashboard/registry.js';
|
|
|
15
15
|
import { Aggregator, subscribeDaemon } from './dashboard/aggregator.js';
|
|
16
16
|
import { pickCreatorForGroup } from './dashboard/operator-selector.js';
|
|
17
17
|
import { buildTeamGroupCreatePayload, planGroupCreator } from './dashboard/team-group.js';
|
|
18
|
-
import {
|
|
18
|
+
import { jsonRes } from './dashboard/http.js';
|
|
19
19
|
import { handleV3RunsApi } from './dashboard/v3-runs-api.js';
|
|
20
20
|
import { defaultRunsDir as v3RunsDir } from './workflows/v3/ops-projection.js';
|
|
21
|
+
import { verifyWorkflowDaemonIpcResponse, workflowDaemonIpcHeaders, WORKFLOW_DAEMON_IPC_ROUTE_PREFIX, } from './workflows/v3/daemon-ipc-auth.js';
|
|
21
22
|
import { handleDashboardTriggerApi } from './dashboard/trigger-api.js';
|
|
22
23
|
import { handleConnectorApi } from './dashboard/connector-api.js';
|
|
23
24
|
import { redactGroupsForPublic, redactSchedulesForPublic } from './dashboard/public-redact.js';
|
|
24
25
|
import { handleWebhookRoute } from './dashboard/webhook-routes.js';
|
|
25
26
|
import { handleFederationApi } from './dashboard/federation-api.js';
|
|
26
27
|
import { handleFederationSpokeApi, syncAllMemberships, autoBindOwnerIfUnambiguous } from './dashboard/federation-spoke-api.js';
|
|
27
|
-
import { getRunsDir } from './workflows/runs-dir.js';
|
|
28
28
|
import { BotOnboardingManager } from './dashboard/bot-onboarding.js';
|
|
29
29
|
import { FeishuLoginManager } from './dashboard/feishu-login.js';
|
|
30
30
|
import { CLI_SELECT_OPTIONS, resolveCliSelection, isTtadkWrapper, ttadkAcceptsModel, TTADK_DEFAULT_MODEL, TTADK_MODEL_SUGGESTIONS, } from './setup/cli-selection.js';
|
|
@@ -33,6 +33,8 @@ import { invalidWorkingDirs } from './utils/working-dir.js';
|
|
|
33
33
|
import { invalidateGlobalConfigCache, mergeDashboardConfig, mergeGlobalConfig, readGlobalConfig } from './global-config.js';
|
|
34
34
|
import { hostLocalTimeZone, scheduleTimeZone } from './utils/timezone.js';
|
|
35
35
|
import { buildDashboardUrls } from './core/dashboard-url.js';
|
|
36
|
+
import { resolveBotmuxDataDir } from './core/data-dir.js';
|
|
37
|
+
import { dashboardSecretPath } from './core/dashboard-secret.js';
|
|
36
38
|
import { deleteWhiteboard, listWhiteboards, readWhiteboard, whiteboardEnabled } from './services/whiteboard-store.js';
|
|
37
39
|
import { isLocalDevInstall, botmuxVersionAt, botmuxCliEntry, botmuxInstallRoot } from './utils/install-info.js';
|
|
38
40
|
import { checkNode, detectBotmuxInstalls, resolveCurrentVersion } from './utils/install-diagnostics.js';
|
|
@@ -46,20 +48,23 @@ import { withFileLock } from './utils/file-lock.js';
|
|
|
46
48
|
import { spawn } from 'node:child_process';
|
|
47
49
|
import { applySettingsWrite, defaultSettingsWriteApplierDeps, } from './dashboard/settings-write-applier.js';
|
|
48
50
|
import { addBotsToGroup, bindOncall, disbandGroup, leaveGroup, unbindOncall, } from './dashboard/groups-action-helpers.js';
|
|
49
|
-
import { defaultWorkflowsActionDeps } from './dashboard/workflows-action-helpers.js';
|
|
50
|
-
import { listRuns as listRunsImpl, readRunSnapshot as readRunSnapshotImpl, scrubSnapshotForUnauthed as scrubSnapshotImpl, isValidRunId as isValidRunIdImpl, TERMINAL_RUN_STATUSES as TERMINAL_RUN_STATUSES_IMPL, } from './workflows/ops-projection.js';
|
|
51
51
|
import { createDaemonInternalApi } from './dashboard/daemon-internal-api.js';
|
|
52
52
|
import { listTeamReports, readTeamBoard, setTeamBoardEntry } from './services/team-board-store.js';
|
|
53
53
|
import { createCliAdapterSync } from './adapters/cli/registry.js';
|
|
54
54
|
import { hd2dAssetPath, hd2dStatus, startHd2dDownload } from './dashboard/hd2d-assets.js';
|
|
55
55
|
import { installLocalSkillLinks, readSkillRegistry, removeInstalledSkill, removeInstalledSkills, updateInstalledSkillAsync, } from './services/skill-registry-store.js';
|
|
56
56
|
import { redactGitUrlCredentials } from './core/skills/sources.js';
|
|
57
|
-
import { getBot, loadBotConfigs } from './bot-registry.js';
|
|
57
|
+
import { effectiveDefaultWorkingDir, getBot, loadBotConfigs, parseBotConfigsFromText } from './bot-registry.js';
|
|
58
58
|
import { findEntryIndex, readRawConfig, requireConfigPath, writeRawConfigAtomic } from './services/config-store.js';
|
|
59
59
|
import { discoverNativeCliSkillGroups } from './core/skills/discovery.js';
|
|
60
60
|
import { analyzeSkillReferences } from './core/skills/references.js';
|
|
61
61
|
import { discoverDashboardSkills, installDashboardSkill, parseDashboardSkillInstallRequest, parseInstallLocalLinksSources, MAX_LOCAL_LINK_SOURCES } from './dashboard/skill-install-request.js';
|
|
62
62
|
import { botDefaultsPayload, botSummaryPayload } from './dashboard/bot-payload.js';
|
|
63
|
+
import { handleVcMeetingConsumerProfilesGet, handleVcMeetingConsumerProfilesPut, } from './dashboard/vc-consumer-profiles-api.js';
|
|
64
|
+
import { buildVcMeetingConsumerBootstrapAgents, seedVcMeetingDefaultConsumerProfile, } from './services/vc-meeting-consumer-profile-bootstrap.js';
|
|
65
|
+
import { evaluateVcMeetingConsumerIsolation } from './services/vc-meeting-consumer-isolation.js';
|
|
66
|
+
import { resolvePairedSpawnBackendType } from './core/persistent-backend.js';
|
|
67
|
+
import { readVcMeetingConsumerProfiles, updateVcMeetingConsumerProfiles, } from './services/vc-meeting-consumer-profile-store.js';
|
|
63
68
|
import { isValidRoleProfileId } from './services/role-profile-store.js';
|
|
64
69
|
import { mergeSafeInsightOverviews } from './services/insight/report.js';
|
|
65
70
|
import { readPlatformBinding } from './platform/binding.js';
|
|
@@ -82,13 +87,14 @@ import { materializePlugin } from './core/plugins/materializer.js';
|
|
|
82
87
|
import { resolveEffectivePluginIds, updateBotPluginOverride } from './core/plugins/effective.js';
|
|
83
88
|
import { assertPluginBindingTransition, describePluginDependencyError } from './core/plugins/dependencies.js';
|
|
84
89
|
import { inspectGatewayEntry } from './core/plugins/mcp/gateway-installer.js';
|
|
85
|
-
|
|
90
|
+
import { fetchDaemonIpc } from './core/daemon-ipc-auth.js';
|
|
91
|
+
const SECRET_PATH = dashboardSecretPath();
|
|
86
92
|
const TOKEN_PATH = join(homedir(), '.botmux', '.dashboard-token');
|
|
87
93
|
/** Per-daemon budget for the cross-daemon insight overview fan-out — bounds
|
|
88
94
|
* aggregate latency when one daemon's insight parse is slow or hung. */
|
|
89
95
|
const INSIGHT_FANOUT_TIMEOUT_MS = 10_000;
|
|
90
96
|
const BOTS_JSON_PATH = join(homedir(), '.botmux', 'bots.json');
|
|
91
|
-
const REGISTRY_DIR = join(
|
|
97
|
+
const REGISTRY_DIR = join(resolveBotmuxDataDir(), 'dashboard-daemons');
|
|
92
98
|
// The dashboard probes upward if its configured port is busy (e.g. a second
|
|
93
99
|
// botmux instance on this host). The actually-bound port is persisted here so
|
|
94
100
|
// the `botmux dashboard` CLI can reach /__cli/rotate without guessing.
|
|
@@ -176,17 +182,6 @@ function verifyDashboardBinding(port) {
|
|
|
176
182
|
req.on('error', () => resolve(false));
|
|
177
183
|
});
|
|
178
184
|
}
|
|
179
|
-
/** Sign a loopback request to a daemon's write-link route. The daemon verifies
|
|
180
|
-
* with the same .dashboard-secret, so only a caller that can read the secret —
|
|
181
|
-
* the dashboard — can mint write tokens; a bare local process that only knows
|
|
182
|
-
* the ipcPort can't. Same scheme as the `botmux dashboard` → /__cli/rotate
|
|
183
|
-
* HMAC. */
|
|
184
|
-
function signDaemonTokenHeaders() {
|
|
185
|
-
const ts = Math.floor(Date.now() / 1000).toString();
|
|
186
|
-
const nonce = randomBytes(8).toString('hex');
|
|
187
|
-
const sig = createHmac('sha256', SECRET).update(`${ts}:${nonce}`).digest('base64url');
|
|
188
|
-
return { 'X-Botmux-Cli-Ts': ts, 'X-Botmux-Cli-Nonce': nonce, 'X-Botmux-Cli-Auth': sig };
|
|
189
|
-
}
|
|
190
185
|
mkdirSync(REGISTRY_DIR, { recursive: true });
|
|
191
186
|
const registry = new DaemonRegistry(REGISTRY_DIR);
|
|
192
187
|
const aggregator = new Aggregator();
|
|
@@ -312,6 +307,32 @@ function refreshLocalVcMeetingAgentConfig(appId) {
|
|
|
312
307
|
// This dashboard process may not host the target bot daemon.
|
|
313
308
|
}
|
|
314
309
|
}
|
|
310
|
+
function vcMeetingConsumerProfilesApiDeps() {
|
|
311
|
+
return {
|
|
312
|
+
readSnapshot: readVcMeetingConsumerProfiles,
|
|
313
|
+
updateSnapshot: updateVcMeetingConsumerProfiles,
|
|
314
|
+
loadBotConfigs,
|
|
315
|
+
effectiveDefaultWorkingDir,
|
|
316
|
+
onlineBotName: appId => registry.getByAppId(appId)?.botName,
|
|
317
|
+
isOnline: appId => !!registry.getByAppId(appId),
|
|
318
|
+
adapterReliableTurnTerminal: (cliId, cliPathOverride) => {
|
|
319
|
+
if (!cliId)
|
|
320
|
+
return false;
|
|
321
|
+
try {
|
|
322
|
+
return createCliAdapterSync(cliId, cliPathOverride).reliableTurnTerminal === true;
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
managedSideEffectIsolation: bot => evaluateVcMeetingConsumerIsolation({
|
|
329
|
+
sandbox: bot.sandbox,
|
|
330
|
+
platform: process.platform,
|
|
331
|
+
backendType: resolvePairedSpawnBackendType(bot.cliId ?? config.daemon.cliId, undefined, bot.backendType, config.daemon.backendType),
|
|
332
|
+
}).ok,
|
|
333
|
+
reloadDaemons: reloadVcMeetingBotConfigOnDaemons,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
315
336
|
async function reloadVcMeetingBotConfigOnDaemons(appIds) {
|
|
316
337
|
const unique = [...new Set(appIds.filter(Boolean))];
|
|
317
338
|
for (const appId of unique)
|
|
@@ -320,7 +341,7 @@ async function reloadVcMeetingBotConfigOnDaemons(appIds) {
|
|
|
320
341
|
const d = registry.getByAppId(appId);
|
|
321
342
|
if (!d)
|
|
322
343
|
return;
|
|
323
|
-
await
|
|
344
|
+
await fetchDaemonIpc(d.ipcPort, '/api/bot-config/reload', {
|
|
324
345
|
method: 'POST',
|
|
325
346
|
signal: AbortSignal.timeout(10_000),
|
|
326
347
|
}).catch(() => undefined);
|
|
@@ -553,7 +574,8 @@ async function syncVcMeetingListenerBotConfig(listenerBotAppId, previousListener
|
|
|
553
574
|
const entry = raw[idx];
|
|
554
575
|
const next = normalizeVcMeetingAgentRecord(entry.vcMeetingAgent);
|
|
555
576
|
let entryChanged = false;
|
|
556
|
-
|
|
577
|
+
const firstEnable = next.enabled !== true;
|
|
578
|
+
if (firstEnable) {
|
|
557
579
|
next.enabled = true;
|
|
558
580
|
next.dashboardManagedListener = true;
|
|
559
581
|
entryChanged = true;
|
|
@@ -563,18 +585,25 @@ async function syncVcMeetingListenerBotConfig(listenerBotAppId, previousListener
|
|
|
563
585
|
entryChanged = true;
|
|
564
586
|
}
|
|
565
587
|
const mc = next.meetingConsumer;
|
|
566
|
-
|
|
567
|
-
|
|
588
|
+
const mcRec = mc && typeof mc === 'object' && !Array.isArray(mc)
|
|
589
|
+
? { ...mc }
|
|
590
|
+
: {};
|
|
591
|
+
// Selecting a global listener is the Dashboard's explicit opt-in to the
|
|
592
|
+
// complete meeting pipeline. It intentionally re-enables the listener's
|
|
593
|
+
// consumer surface; profile/default ownership is still preserved by the
|
|
594
|
+
// own-property gates in seedVcMeetingDefaultConsumerProfile below.
|
|
595
|
+
if (mcRec.enabled !== true) {
|
|
596
|
+
mcRec.enabled = true;
|
|
568
597
|
entryChanged = true;
|
|
569
598
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
}
|
|
599
|
+
if (seedVcMeetingDefaultConsumerProfile(mcRec, nextAppId,
|
|
600
|
+
// Resolve against the latest locked bots.json snapshot, not a stale
|
|
601
|
+
// pre-lock load. This also makes fallback selection independent of
|
|
602
|
+
// the order in which bot entries happen to be stored.
|
|
603
|
+
buildVcMeetingConsumerBootstrapAgents(parseBotConfigsFromText(JSON.stringify(raw))))) {
|
|
604
|
+
entryChanged = true;
|
|
577
605
|
}
|
|
606
|
+
next.meetingConsumer = mcRec;
|
|
578
607
|
if (entryChanged) {
|
|
579
608
|
compactVcMeetingAgentEntry(entry, next);
|
|
580
609
|
changed = true;
|
|
@@ -596,8 +625,13 @@ async function syncVcMeetingListenerBotConfig(listenerBotAppId, previousListener
|
|
|
596
625
|
}
|
|
597
626
|
}
|
|
598
627
|
}
|
|
599
|
-
if (changed)
|
|
628
|
+
if (changed) {
|
|
629
|
+
// Validate the complete post-mutation file before replacing bots.json.
|
|
630
|
+
// Keep this path symmetric with daemon bootstrap so a future generated
|
|
631
|
+
// default cannot make the Dashboard persist an invalid registry.
|
|
632
|
+
parseBotConfigsFromText(JSON.stringify(raw));
|
|
600
633
|
await writeRawConfigAtomic(path, raw);
|
|
634
|
+
}
|
|
601
635
|
});
|
|
602
636
|
}
|
|
603
637
|
catch (err) {
|
|
@@ -647,7 +681,7 @@ function resolveDashboardSettings() {
|
|
|
647
681
|
// `PUT /api/settings` route and (PR2 C6) the HMAC-gated `PUT /__daemon/settings-write`
|
|
648
682
|
// route call through this so error codes / merge semantics stay identical.
|
|
649
683
|
async function reloadLocaleOnAllDaemons() {
|
|
650
|
-
await Promise.all(registry.list().map(d =>
|
|
684
|
+
await Promise.all(registry.list().map(d => fetchDaemonIpc(d.ipcPort, '/api/locale/reload', { method: 'POST' }).catch(() => undefined)));
|
|
651
685
|
}
|
|
652
686
|
const settingsWriteApplierDeps = defaultSettingsWriteApplierDeps(resolveDashboardSettings, reloadLocaleOnAllDaemons);
|
|
653
687
|
settingsWriteApplierDeps.syncVcMeetingListenerBotConfig = syncVcMeetingListenerBotConfig;
|
|
@@ -667,6 +701,7 @@ const groupsActionDeps = {
|
|
|
667
701
|
registryGetByAppId: (id) => registry.getByAppId(id),
|
|
668
702
|
proxyToDaemon,
|
|
669
703
|
closeSessionsMatching,
|
|
704
|
+
fetch: fetchDaemonUrl,
|
|
670
705
|
};
|
|
671
706
|
// ─── PR2 C8: Route B internal API (`/__daemon/*`) ───────────────────────────
|
|
672
707
|
// HMAC + loopback + ts ±60s + nonce TTL, signed-request envelope = full
|
|
@@ -689,15 +724,6 @@ const daemonInternalApi = createDaemonInternalApi({
|
|
|
689
724
|
buildGroupsMatrix,
|
|
690
725
|
settingsApplierDeps: settingsWriteApplierDeps,
|
|
691
726
|
groupsActionDeps,
|
|
692
|
-
workflowsActionDeps: defaultWorkflowsActionDeps({
|
|
693
|
-
runsDir: getRunsDir(),
|
|
694
|
-
proxyToDaemon,
|
|
695
|
-
listRuns: listRunsImpl,
|
|
696
|
-
readRunSnapshot: readRunSnapshotImpl,
|
|
697
|
-
scrubSnapshotForUnauthed: scrubSnapshotImpl,
|
|
698
|
-
TERMINAL_RUN_STATUSES: TERMINAL_RUN_STATUSES_IMPL,
|
|
699
|
-
isValidRunId: isValidRunIdImpl,
|
|
700
|
-
}),
|
|
701
727
|
proxyToDaemon,
|
|
702
728
|
ownerOf: (sid) => aggregator.ownerOf(sid),
|
|
703
729
|
scheduleOwnerOf: (id) => aggregator.scheduleOwnerOf(id),
|
|
@@ -745,7 +771,7 @@ async function cachedChangelog(current, now = Date.now()) {
|
|
|
745
771
|
return value;
|
|
746
772
|
}
|
|
747
773
|
/**
|
|
748
|
-
* Run the ownership-aware npm/pnpm update for the manual-update flow WITHOUT blocking
|
|
774
|
+
* Run the ownership-aware npm/pnpm/Bun update for the manual-update flow WITHOUT blocking
|
|
749
775
|
* the event loop (async spawn, not execSync — the dashboard must keep serving
|
|
750
776
|
* during the ~10-30s install). Resolves on exit 0; rejects with the tail of
|
|
751
777
|
* stdout/stderr on a non-zero exit, spawn error, or 3-minute timeout. Args are
|
|
@@ -755,9 +781,9 @@ function runGlobalInstallLatest(plan) {
|
|
|
755
781
|
return new Promise((resolve, reject) => {
|
|
756
782
|
const child = spawn(plan.command, plan.args, {
|
|
757
783
|
cwd: globalInstallUpdateCwd(),
|
|
758
|
-
env: process.env,
|
|
784
|
+
env: { ...process.env, ...plan.env },
|
|
759
785
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
760
|
-
shell: process.platform === 'win32', // resolve npm.cmd / pnpm.cmd
|
|
786
|
+
shell: process.platform === 'win32', // resolve npm.cmd / pnpm.cmd / bun.exe
|
|
761
787
|
});
|
|
762
788
|
let tail = '';
|
|
763
789
|
const capture = (d) => { tail = (tail + d.toString()).slice(-2000); };
|
|
@@ -795,8 +821,8 @@ async function attachDaemon(d) {
|
|
|
795
821
|
// 1. Hydrate snapshot (blocking — completes before we wire SSE)
|
|
796
822
|
try {
|
|
797
823
|
const [sRes, schRes] = await Promise.all([
|
|
798
|
-
|
|
799
|
-
|
|
824
|
+
fetchDaemonIpc(d.ipcPort, '/api/sessions'),
|
|
825
|
+
fetchDaemonIpc(d.ipcPort, '/api/schedules'),
|
|
800
826
|
]);
|
|
801
827
|
const s = await sRes.json();
|
|
802
828
|
const sch = await schRes.json();
|
|
@@ -808,7 +834,7 @@ async function attachDaemon(d) {
|
|
|
808
834
|
}
|
|
809
835
|
// 2. Open SSE subscription if not already (idempotent)
|
|
810
836
|
if (!subs.has(d.larkAppId)) {
|
|
811
|
-
subs.set(d.larkAppId, subscribeDaemon(d, aggregator, e => logger.warn(`[aggregator] ${d.larkAppId}: ${e.message}`)));
|
|
837
|
+
subs.set(d.larkAppId, subscribeDaemon(d, aggregator, e => logger.warn(`[aggregator] ${d.larkAppId}: ${e.message}`), (_url, init) => fetchDaemonIpc(d.ipcPort, '/api/events', init)));
|
|
812
838
|
}
|
|
813
839
|
}
|
|
814
840
|
finally {
|
|
@@ -1306,7 +1332,84 @@ async function proxyToDaemon(larkAppId, daemonPath, init) {
|
|
|
1306
1332
|
headers: { 'content-type': 'application/json' },
|
|
1307
1333
|
});
|
|
1308
1334
|
}
|
|
1309
|
-
|
|
1335
|
+
const method = String(init.method ?? 'GET').toUpperCase();
|
|
1336
|
+
const workflowPathTail = daemonPath.startsWith(`${WORKFLOW_DAEMON_IPC_ROUTE_PREFIX}/`)
|
|
1337
|
+
? daemonPath.slice(WORKFLOW_DAEMON_IPC_ROUTE_PREFIX.length + 1)
|
|
1338
|
+
: '';
|
|
1339
|
+
const isWorkflowMutation = method === 'POST' &&
|
|
1340
|
+
/^[^/]+\/(?:start|cancel|retry|grant)(?:\?.*)?$/.test(workflowPathTail);
|
|
1341
|
+
if (!isWorkflowMutation) {
|
|
1342
|
+
// Non-workflow routes ride the shared trusted-host wrapper (route-bound
|
|
1343
|
+
// X-Botmux-Cli-* HMAC). Workflow mutations keep the domain-separated
|
|
1344
|
+
// full-envelope protocol below; the daemon admits that prefix through its
|
|
1345
|
+
// narrow capability aperture and the handler fail-closes on the envelope.
|
|
1346
|
+
return fetchDaemonIpc(d.ipcPort, daemonPath, init);
|
|
1347
|
+
}
|
|
1348
|
+
if (d.workflowIpcProtocol !== 'v1' || !d.bootInstanceId) {
|
|
1349
|
+
return new Response(JSON.stringify({
|
|
1350
|
+
ok: false,
|
|
1351
|
+
error: 'daemon_upgrade_required',
|
|
1352
|
+
message: 'target daemon does not advertise Workflow IPC v1; upgrade and restart all botmux processes',
|
|
1353
|
+
}), { status: 503, headers: { 'content-type': 'application/json' } });
|
|
1354
|
+
}
|
|
1355
|
+
const bodyRaw = init.body === undefined || init.body === null
|
|
1356
|
+
? ''
|
|
1357
|
+
: typeof init.body === 'string'
|
|
1358
|
+
? init.body
|
|
1359
|
+
: (() => { throw new Error('Workflow daemon mutation body must be a pre-serialized string'); })();
|
|
1360
|
+
const target = {
|
|
1361
|
+
larkAppId: d.larkAppId,
|
|
1362
|
+
ipcPort: d.ipcPort,
|
|
1363
|
+
bootInstanceId: d.bootInstanceId,
|
|
1364
|
+
};
|
|
1365
|
+
const authHeaders = workflowDaemonIpcHeaders({
|
|
1366
|
+
secret: SECRET,
|
|
1367
|
+
method,
|
|
1368
|
+
pathWithQuery: daemonPath,
|
|
1369
|
+
bodyRaw,
|
|
1370
|
+
target,
|
|
1371
|
+
});
|
|
1372
|
+
const workflowResponseAuth = {
|
|
1373
|
+
nonce: authHeaders['X-Botmux-Workflow-Ipc-Nonce'],
|
|
1374
|
+
target,
|
|
1375
|
+
};
|
|
1376
|
+
const headers = new Headers(init.headers);
|
|
1377
|
+
for (const [key, value] of Object.entries(authHeaders)) {
|
|
1378
|
+
headers.set(key, value);
|
|
1379
|
+
}
|
|
1380
|
+
const upstream = await fetch(`http://127.0.0.1:${d.ipcPort}${daemonPath}`, { ...init, headers });
|
|
1381
|
+
const responseBody = await upstream.text();
|
|
1382
|
+
const authenticated = verifyWorkflowDaemonIpcResponse({
|
|
1383
|
+
secret: SECRET,
|
|
1384
|
+
requestNonce: workflowResponseAuth.nonce,
|
|
1385
|
+
method,
|
|
1386
|
+
pathWithQuery: daemonPath,
|
|
1387
|
+
status: upstream.status,
|
|
1388
|
+
body: responseBody,
|
|
1389
|
+
target: workflowResponseAuth.target,
|
|
1390
|
+
signature: upstream.headers.get('x-botmux-workflow-ipc-response-signature'),
|
|
1391
|
+
});
|
|
1392
|
+
if (!authenticated) {
|
|
1393
|
+
return new Response(JSON.stringify({
|
|
1394
|
+
ok: false,
|
|
1395
|
+
error: 'daemon_response_unauthenticated',
|
|
1396
|
+
message: 'target daemon response did not verify as Workflow IPC v1',
|
|
1397
|
+
}), { status: 502, headers: { 'content-type': 'application/json' } });
|
|
1398
|
+
}
|
|
1399
|
+
return new Response(responseBody, {
|
|
1400
|
+
status: upstream.status,
|
|
1401
|
+
statusText: upstream.statusText,
|
|
1402
|
+
headers: upstream.headers,
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1405
|
+
/** Authenticated adapter for helpers that receive a discovered daemon URL. */
|
|
1406
|
+
function fetchDaemonUrl(input, init) {
|
|
1407
|
+
const url = new URL(input instanceof Request ? input.url : String(input));
|
|
1408
|
+
const port = Number(url.port);
|
|
1409
|
+
if (url.hostname !== '127.0.0.1' || !Number.isSafeInteger(port) || port <= 0) {
|
|
1410
|
+
return Promise.reject(new Error('daemon helper attempted a non-loopback URL'));
|
|
1411
|
+
}
|
|
1412
|
+
return fetchDaemonIpc(port, `${url.pathname}${url.search}`, init);
|
|
1310
1413
|
}
|
|
1311
1414
|
/** Create a Feishu group from the team UI: pick a creator daemon among the
|
|
1312
1415
|
* selected bots, proxy to its /api/groups/create, invite the requesting user.
|
|
@@ -1461,7 +1564,7 @@ async function createLifecycleGroupForWebhook(connector, args) {
|
|
|
1461
1564
|
const allowed = creator.resolvedAllowedUsers ?? [];
|
|
1462
1565
|
const ownerUnionIds = allowed.filter(u => u.startsWith('on_'));
|
|
1463
1566
|
const userOpenIds = allowed.filter(u => u.startsWith('ou_'));
|
|
1464
|
-
const upstream = await
|
|
1567
|
+
const upstream = await fetchDaemonIpc(creator.ipcPort, '/api/groups/create', {
|
|
1465
1568
|
method: 'POST',
|
|
1466
1569
|
headers: { 'content-type': 'application/json' },
|
|
1467
1570
|
body: JSON.stringify({
|
|
@@ -1497,7 +1600,7 @@ async function buildGroupsMatrix() {
|
|
|
1497
1600
|
.sort((a, b) => a.botIndex - b.botIndex);
|
|
1498
1601
|
await Promise.all(onlineBots.map(async (d) => {
|
|
1499
1602
|
try {
|
|
1500
|
-
const r = await
|
|
1603
|
+
const r = await fetchDaemonIpc(d.ipcPort, '/api/groups');
|
|
1501
1604
|
if (!r.ok)
|
|
1502
1605
|
return;
|
|
1503
1606
|
const j = await r.json();
|
|
@@ -1732,7 +1835,7 @@ async function dashboardSkillReferencesMany(skillNames) {
|
|
|
1732
1835
|
const onlineBots = [...registry.list()].sort((a, b) => a.botIndex - b.botIndex);
|
|
1733
1836
|
const onlineConfigs = await Promise.all(onlineBots.map(async (d) => {
|
|
1734
1837
|
try {
|
|
1735
|
-
const r = await
|
|
1838
|
+
const r = await fetchDaemonIpc(d.ipcPort, '/api/bot-default-oncall', {
|
|
1736
1839
|
signal: AbortSignal.timeout(1_500),
|
|
1737
1840
|
});
|
|
1738
1841
|
if (!r.ok)
|
|
@@ -1788,8 +1891,8 @@ const server = createServer(async (req, res) => {
|
|
|
1788
1891
|
// proxy on proxyBasePort+idx), so we resolve the session's owning daemon's
|
|
1789
1892
|
// proxy port from the aggregator rows and forward there, streaming the
|
|
1790
1893
|
// response straight back. Mounted before the dashboard auth gate because the
|
|
1791
|
-
//
|
|
1792
|
-
//
|
|
1894
|
+
// worker independently requires a view/write capability or authenticated
|
|
1895
|
+
// dashboard cookie before serving either HTTP or WebSocket terminal data.
|
|
1793
1896
|
if (url.pathname === '/s' || url.pathname.startsWith('/s/')) {
|
|
1794
1897
|
const sessionId = parseTerminalSessionId(url.pathname);
|
|
1795
1898
|
const tport = sessionId ? aggregator.terminalProxyPortOf(sessionId) : undefined;
|
|
@@ -1892,11 +1995,8 @@ const server = createServer(async (req, res) => {
|
|
|
1892
1995
|
activeToken: activeToken ?? '',
|
|
1893
1996
|
publicReadOnly: dashboardSettings.publicReadOnly,
|
|
1894
1997
|
});
|
|
1895
|
-
// `authed` is consumed by route handlers that
|
|
1896
|
-
//
|
|
1897
|
-
// valid cookie" — e.g. `/api/workflows/runs/<id>/snapshot` strips
|
|
1898
|
-
// log bytes when unauth'd. Mirror of the `authed` check in
|
|
1899
|
-
// `decideDashboardAuth`.
|
|
1998
|
+
// `authed` is consumed by route handlers that distinguish the public-read
|
|
1999
|
+
// carve-out from a valid management cookie (notably v3 run details).
|
|
1900
2000
|
const authed = !!presentedToken && presentedToken === activeToken && !!activeToken;
|
|
1901
2001
|
if (decision.kind === 'deny401') {
|
|
1902
2002
|
res.writeHead(401, { 'content-type': 'text/html; charset=utf-8' });
|
|
@@ -1911,6 +2011,13 @@ const server = createServer(async (req, res) => {
|
|
|
1911
2011
|
res.end();
|
|
1912
2012
|
return;
|
|
1913
2013
|
}
|
|
2014
|
+
if (url.pathname === '/api/workflows' || url.pathname.startsWith('/api/workflows/')) {
|
|
2015
|
+
return jsonRes(res, 410, {
|
|
2016
|
+
ok: false,
|
|
2017
|
+
error: 'legacy_workflow_retired',
|
|
2018
|
+
message: 'v2 workflow dashboard APIs are retired; use /api/v3/runs for v3 run visibility',
|
|
2019
|
+
});
|
|
2020
|
+
}
|
|
1914
2021
|
if (req.method === 'GET' && url.pathname === '/__dev/reload') {
|
|
1915
2022
|
if (!dashboardDevReloadEnabled())
|
|
1916
2023
|
return jsonRes(res, 404, { error: 'dev_reload_disabled' });
|
|
@@ -2744,7 +2851,7 @@ const server = createServer(async (req, res) => {
|
|
|
2744
2851
|
const owner = aggregator.ownerOf(sid);
|
|
2745
2852
|
if (!owner)
|
|
2746
2853
|
return jsonRes(res, 404, { ok: false, error: 'unknown_session' });
|
|
2747
|
-
const upstream = await proxyToDaemon(owner, `/api/sessions/${sid}/write-link`, { method: 'GET'
|
|
2854
|
+
const upstream = await proxyToDaemon(owner, `/api/sessions/${sid}/write-link`, { method: 'GET' });
|
|
2748
2855
|
res.writeHead(upstream.status, { 'content-type': 'application/json' });
|
|
2749
2856
|
res.end(await upstream.text());
|
|
2750
2857
|
return;
|
|
@@ -2782,25 +2889,15 @@ const server = createServer(async (req, res) => {
|
|
|
2782
2889
|
res.end(await upstream.text());
|
|
2783
2890
|
return;
|
|
2784
2891
|
}
|
|
2785
|
-
//
|
|
2786
|
-
//
|
|
2787
|
-
//
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
// Mutations are intentionally proxied to the owner daemon from
|
|
2791
|
-
// chat-binding.larkAppId so only the daemon with live workflow runtime
|
|
2792
|
-
// context writes the event log.
|
|
2793
|
-
if (await handleWorkflowApi(req, res, url, {
|
|
2794
|
-
runsDir: getRunsDir(),
|
|
2892
|
+
// v3 workflow runs. Reads project directly from disk; cancel resolves the
|
|
2893
|
+
// immutable run owner and proxies to that daemon (the dashboard never
|
|
2894
|
+
// writes the v3 journal itself).
|
|
2895
|
+
if (await handleV3RunsApi(req, res, url, {
|
|
2896
|
+
runsDir: v3RunsDir(),
|
|
2795
2897
|
proxyToDaemon,
|
|
2796
2898
|
}, authed)) {
|
|
2797
2899
|
return;
|
|
2798
2900
|
}
|
|
2799
|
-
// v3 workflow runs (read-only DAG + per-node terminal projection). Reads
|
|
2800
|
-
// the v3 run dirs directly; no daemon proxy (v3 runs are plain files).
|
|
2801
|
-
if (await handleV3RunsApi(req, res, url, { runsDir: v3RunsDir() }, authed)) {
|
|
2802
|
-
return;
|
|
2803
|
-
}
|
|
2804
2901
|
// ─── Groups (Phase B) ────────────────────────────────────────────────────
|
|
2805
2902
|
if (req.method === 'GET' && url.pathname === '/api/groups') {
|
|
2806
2903
|
// Fan out via the shared `buildGroupsMatrix` helper so the browser
|
|
@@ -2864,11 +2961,30 @@ const server = createServer(async (req, res) => {
|
|
|
2864
2961
|
}
|
|
2865
2962
|
}
|
|
2866
2963
|
// ─── Profiles (aggregate/proxy to daemon) ─────────────────────────────
|
|
2964
|
+
// ─── 会议角色预设(私有 API:不在 PUBLIC_READ_PATHS,未认证已被 401) ───
|
|
2965
|
+
if (url.pathname === '/api/vc-meeting/consumer-profiles') {
|
|
2966
|
+
if (req.method === 'GET') {
|
|
2967
|
+
const out = await handleVcMeetingConsumerProfilesGet(url.searchParams.get('listenerBotAppId') ?? '', vcMeetingConsumerProfilesApiDeps());
|
|
2968
|
+
return jsonRes(res, out.status, out.body);
|
|
2969
|
+
}
|
|
2970
|
+
if (req.method === 'PUT') {
|
|
2971
|
+
let parsed;
|
|
2972
|
+
try {
|
|
2973
|
+
parsed = await readJsonBody(req);
|
|
2974
|
+
}
|
|
2975
|
+
catch {
|
|
2976
|
+
return jsonRes(res, 400, { ok: false, error: 'bad_json' });
|
|
2977
|
+
}
|
|
2978
|
+
const out = await handleVcMeetingConsumerProfilesPut(parsed, vcMeetingConsumerProfilesApiDeps());
|
|
2979
|
+
return jsonRes(res, out.status, out.body);
|
|
2980
|
+
}
|
|
2981
|
+
return jsonRes(res, 405, { ok: false, error: 'method_not_allowed' });
|
|
2982
|
+
}
|
|
2867
2983
|
if (req.method === 'GET' && url.pathname === '/api/role-profiles') {
|
|
2868
2984
|
const merged = new Map();
|
|
2869
2985
|
await Promise.all(registry.list().map(async (d) => {
|
|
2870
2986
|
try {
|
|
2871
|
-
const r = await
|
|
2987
|
+
const r = await fetchDaemonIpc(d.ipcPort, '/api/role-profiles');
|
|
2872
2988
|
if (!r.ok)
|
|
2873
2989
|
return;
|
|
2874
2990
|
const j = await r.json();
|
|
@@ -2967,7 +3083,7 @@ const server = createServer(async (req, res) => {
|
|
|
2967
3083
|
const byBot = new Map();
|
|
2968
3084
|
await Promise.all(registry.list().map(async (d) => {
|
|
2969
3085
|
try {
|
|
2970
|
-
const r = await
|
|
3086
|
+
const r = await fetchDaemonIpc(d.ipcPort, `/api/role-profiles/${encodeURIComponent(profileId)}`);
|
|
2971
3087
|
if (!r.ok)
|
|
2972
3088
|
return;
|
|
2973
3089
|
const j = await r.json();
|
|
@@ -3068,7 +3184,7 @@ const server = createServer(async (req, res) => {
|
|
|
3068
3184
|
const onlineBots = [...registry.list()].map(b => withConfiguredCliId(b, agentFields)).sort((a, b) => a.botIndex - b.botIndex);
|
|
3069
3185
|
const out = await Promise.all(onlineBots.map(async (d) => {
|
|
3070
3186
|
try {
|
|
3071
|
-
const r = await
|
|
3187
|
+
const r = await fetchDaemonIpc(d.ipcPort, '/api/bot-default-oncall');
|
|
3072
3188
|
if (!r.ok) {
|
|
3073
3189
|
return botDefaultsPayload(d, undefined, `http_${r.status}`);
|
|
3074
3190
|
}
|
|
@@ -3536,7 +3652,7 @@ const server = createServer(async (req, res) => {
|
|
|
3536
3652
|
: undefined,
|
|
3537
3653
|
roleProfileId: roleProfileId ?? undefined,
|
|
3538
3654
|
};
|
|
3539
|
-
const upstream = await
|
|
3655
|
+
const upstream = await fetchDaemonIpc(creator.ipcPort, '/api/groups/create', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify(forwardBody) });
|
|
3540
3656
|
const upstreamText = await upstream.text();
|
|
3541
3657
|
let upstreamJson = null;
|
|
3542
3658
|
try {
|