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
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import{a as T}from"./chunk-ISOD7VDX.js";import{b as L}from"./chunk-OEJIT66L.js";import{d as S}from"./chunk-SRIE4MLQ.js";import"./chunk-PNK3HQBI.js";import{a as H}from"./chunk-SYC6D5XU.js";import{a as ne,d as V}from"./chunk-5THX4DI2.js";import{c as b}from"./chunk-7SZRL6FY.js";var c=b(ne(),1);function G(e,t){let s=t?`?${t}`:"";return`#/legacy-workflow/${encodeURIComponent(e)}${s}`}function B(e,t){return e===404&&!t}async function F(e=fetch){let t=await e("/api/v3/runs");if(!t.ok)return[];let s=await t.json();return Array.isArray(s.runs)?s.runs:[]}async function A(e,t=fetch){let s=await t(`/api/v3/runs/${encodeURIComponent(e)}`);return s.ok?{ok:!0,view:await s.json()}:{ok:!1,status:s.status}}async function O(e,t=fetch){return(await t(`/api/workflows/runs/${encodeURIComponent(e)}/snapshot`)).ok}var y={pending:"\u5F85\u673A",gateWaiting:"\u7B49\u5BA1\u6279",running:"\u8FD0\u884C\u4E2D",done:"\u5B8C\u6210",skipped:"\u5DF2\u8DF3\u8FC7",cancelled:"\u5DF2\u53D6\u6D88",blocked:"\u53D7\u963B",superseded:"\u5DF2\u5237\u65B0",failed:"\u5931\u8D25"},_={exit:"\u2713 \u901A\u8FC7",continue:"\u21BB \u7EE7\u7EED\u8FD4\u5DE5",exhausted:"\u26D4 \u8F6E\u6570\u8017\u5C3D"},g={nodeWidth:168,plainHeight:48,loopHeight:70,columnGap:226,verticalGap:30,padding:26,maxDots:8},v={width:104,height:30,columnGap:138,rowGap:42,padding:6};function W(e){return e==="succeeded"||e==="failed"}function J(e=typeof location<"u"?location.hash:""){let t=e.match(/^#\/workflows\/([^?#]+)/);if(!t)return null;try{return decodeURIComponent(t[1])}catch{return t[1]}}function $(e,t){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function M(e){return e.isLoop?g.loopHeight:g.plainHeight}function D(e){return e.nodes.filter(t=>!t.loop)}function X(e){let t=D(e),s=oe(t),o=new Map;for(let r of t){let d=s.get(r.id)??0,p=o.get(d);p?p.push(r):o.set(d,[r])}let i=[...o.keys()].sort((r,d)=>r-d),a=[],l=new Map,u=0;for(let r of i){let d=o.get(r)??[],p=g.padding;for(let m of d){let w={node:m,x:g.padding+r*g.columnGap,y:p,width:g.nodeWidth,height:M(m)};a.push(w),l.set(m.id,w),p+=w.height+g.verticalGap}u=Math.max(u,p-g.verticalGap+g.padding)}let f=g.padding*2+(i.length===0?0:Math.max(...i)*g.columnGap+g.nodeWidth),h=new Map(t.map(r=>[r.id,r])),x=[];for(let r of t){let d=l.get(r.id);if(d)for(let p of r.depends){let m=l.get(p),w=h.get(p);if(!m||!w)continue;let N=m.x+g.nodeWidth,I=m.y+M(w)/2,R=d.x,te=d.y+M(r)/2;x.push({fromId:p,toId:r.id,x1:N,y1:I,x2:R,y2:te,mx:(N+R)/2,live:r.status==="running"})}}return{width:f,height:u,nodes:a,edges:x}}function oe(e){let t=new Map(e.map(a=>[a.id,a])),s=new Map,o=new Set;function i(a){if(s.has(a))return s.get(a);if(o.has(a))return 0;o.add(a);let u=(t.get(a)?.depends??[]).filter(h=>t.has(h)),f=u.length?1+Math.max(...u.map(i)):0;return o.delete(a),s.set(a,f),f}for(let a of e)i(a.id);return s}function j(e,t){return(e?.nodes??[]).filter(s=>s.loop?.loopId===t)}function z(e,t,s){if(s&&t){let i=e.find(a=>a.id===t);if(i)return i}let o=e.filter(i=>i.status==="running");return o[o.length-1]??e[e.length-1]??null}function U(e){let t=new Map;for(let s of e){let o=s.loop?.iteration;if(o===void 0)continue;let i=t.get(o);i?i.push(s):t.set(o,[s])}return[...t.entries()].sort((s,o)=>s[0]-o[0]).map(([s,o])=>({iteration:s,instances:o}))}function E(e){let t=e.loopState?.maxIterations;return e.loopState&&t!==void 0?t+e.loopState.granted:void 0}function q(e,t){let s=new Map(e.map(r=>[r.id,r])),o=new Map;function i(r){if(o.has(r))return o.get(r);o.set(r,0);let d=(s.get(r)?.depends??[]).filter(m=>s.has(m)),p=d.length?1+Math.max(...d.map(i)):0;return o.set(r,p),p}let a=new Map,l=0,u=[],f=new Map;for(let r of e){let d=i(r.id),p=a.get(d)??0;a.set(d,p+1),l=Math.max(l,p);let m={templateId:r.id,node:t.get(r.id),x:v.padding+d*v.columnGap,y:v.padding+p*v.rowGap,width:v.width,height:v.height};u.push(m),f.set(r.id,m)}let h=o.size?Math.max(...o.values()):0,x=[];for(let r of e){let d=f.get(r.id);if(d)for(let p of r.depends){let m=f.get(p);if(!m)continue;let w=m.x+v.width,N=m.y+v.height/2,I=d.x,R=d.y+v.height/2;x.push({fromId:p,toId:r.id,x1:w,y1:N,x2:I,y2:R,mx:(w+I)/2,live:t.get(r.id)?.status==="running"})}}return{width:v.padding*2+(e.length?h*v.columnGap+v.width:0),height:v.padding*2+l*v.rowGap+v.height,nodes:u,edges:x}}function P(e){let t=e.webTerminal;return`${t?.status??"-"}|${t?.sessionId??"-"}|${t?.webPort??"-"}|${e.hasPtyLog?"1":"0"}`}function Y(e,t,s){e.setAttribute("data-run-id",t),e.setAttribute("data-node-id",s.id),e.innerHTML=se(t,s).html}function se(e,t,s={}){let o=P(t),i=t.webTerminal;if(i?.status==="live"&&i.webPort&&i.webPort>0)return{kind:"live",signature:o,html:ie(i.webPort,i.sessionId,s.host)};if(t.hasPtyLog)return{kind:"replay",signature:o,html:ae(e,t.id,i?.status==="closed")};let a=i?.status==="live"?"\u7EC8\u7AEF\u6B63\u5728\u542F\u52A8\uFF0C\u7A0D\u540E\u5237\u65B0":"\u6682\u65E0\u7EC8\u7AEF\u8BB0\u5F55";return{kind:"empty",signature:o,html:re(a)}}function ie(e,t,s){let o=de(e,s,t);return`<div class="v3-terminal-panel">
|
|
2
|
-
<div class="v3-terminal-head">
|
|
3
|
-
<span class="v3-terminal-dot live"></span>
|
|
4
|
-
<span>\u5B9E\u65F6\u7EC8\u7AEF\uFF08\u53EA\u8BFB\uFF09</span>
|
|
5
|
-
<span class="muted">:${e}</span>
|
|
6
|
-
<a class="btn-link" href="${k(o)}" target="_blank" rel="noopener">\u65B0\u7A97\u53E3\u6253\u5F00</a>
|
|
7
|
-
</div>
|
|
8
|
-
<iframe class="wf-terminal-frame v3-terminal-frame" src="${k(o)}" title="v3 live terminal" loading="lazy"></iframe>
|
|
9
|
-
</div>`}function ae(e,t,s){let o=`/api/v3/runs/${encodeURIComponent(e)}/nodes/${encodeURIComponent(t)}/pty-log`,i=ce(o,`${e} / ${t}`);return`<div class="v3-terminal-panel">
|
|
10
|
-
<div class="v3-terminal-head">
|
|
11
|
-
<span class="v3-terminal-dot ${s?"closed":"replay"}"></span>
|
|
12
|
-
<span>${s?"\u7EC8\u7AEF\u56DE\u653E":"\u7EC8\u7AEF\u8BB0\u5F55"}</span>
|
|
13
|
-
<span class="muted">PTY log</span>
|
|
14
|
-
<a class="btn-link" href="${k(o)}" target="_blank" rel="noopener">\u4E0B\u8F7D/\u6253\u5F00\u539F\u59CB\u65E5\u5FD7</a>
|
|
15
|
-
</div>
|
|
16
|
-
<iframe class="wf-terminal-frame v3-terminal-frame" srcdoc="${k(i)}" title="v3 terminal replay" loading="lazy"></iframe>
|
|
17
|
-
</div>`}function re(e){return`<div class="v3-terminal-empty muted">${C(e)}</div>`}function de(e,t,s){return s&&typeof window<"u"&&window.location.protocol==="https:"?`${window.location.origin}/s/${encodeURIComponent(s)}`:`http://${t??le()}:${e}/`}function le(){return typeof window>"u"?"127.0.0.1":window.location.hostname||"127.0.0.1"}function ce(e,t){let s=JSON.stringify(e);return`<!doctype html>
|
|
18
|
-
<html>
|
|
19
|
-
<head>
|
|
20
|
-
<meta charset="utf-8">
|
|
21
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.css">
|
|
22
|
-
<style>
|
|
23
|
-
html,body{margin:0;height:100%;background:#0d1117;color:#c9d1d9;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}
|
|
24
|
-
#bar{height:31px;display:flex;align-items:center;gap:10px;padding:0 10px;background:#161b22;border-bottom:1px solid #30363d;box-sizing:border-box}
|
|
25
|
-
#status{margin-left:auto;color:#8b949e;white-space:nowrap}
|
|
26
|
-
#term{height:calc(100% - 31px);padding:4px;box-sizing:border-box;overflow:auto}
|
|
27
|
-
a{color:#58a6ff;text-decoration:none}
|
|
28
|
-
</style>
|
|
29
|
-
</head>
|
|
30
|
-
<body>
|
|
31
|
-
<div id="bar"><span>${C(t)}</span><span id="status">loading...</span></div>
|
|
32
|
-
<div id="term"></div>
|
|
33
|
-
<script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/lib/xterm.js"><\/script>
|
|
34
|
-
<script src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0.10.0/lib/addon-fit.js"><\/script>
|
|
35
|
-
<script>
|
|
36
|
-
(function(){
|
|
37
|
-
var endpoint=${s};
|
|
38
|
-
// v3 ephemeral workers spawn their PTY at DEFAULT_RENDER_COLS (=160, see
|
|
39
|
-
// worker.ts) and never adopt, so the captured stream's TUI / box-drawing
|
|
40
|
-
// is exactly 160 cols wide. Fitting it into a narrower (or oddly-measured)
|
|
41
|
-
// grid re-wraps those fixed-width lines into a stair-stepped mess and
|
|
42
|
-
// wastes the panel. So we render at the capture width and let FitAddon
|
|
43
|
-
// only size the ROW count to the iframe height (cols pinned back to 160).
|
|
44
|
-
var COLS=160;
|
|
45
|
-
var status=document.getElementById('status');
|
|
46
|
-
var termEl=document.getElementById('term');
|
|
47
|
-
if(!window.Terminal){status.textContent='xterm.js failed to load';return;}
|
|
48
|
-
var term=new Terminal({
|
|
49
|
-
cols:COLS,
|
|
50
|
-
convertEol:false,
|
|
51
|
-
scrollback:100000,
|
|
52
|
-
fontSize:13,
|
|
53
|
-
disableStdin:true,
|
|
54
|
-
theme:{background:'#0d1117',foreground:'#c9d1d9',cursor:'#c9d1d9'}
|
|
55
|
-
});
|
|
56
|
-
var fit=null;
|
|
57
|
-
if(window.FitAddon){fit=new window.FitAddon.FitAddon();term.loadAddon(fit);}
|
|
58
|
-
term.open(termEl);
|
|
59
|
-
function doFit(){
|
|
60
|
-
try{if(fit)fit.fit()}catch(_){}
|
|
61
|
-
if(term.cols!==COLS)term.resize(COLS,term.rows||24);
|
|
62
|
-
}
|
|
63
|
-
doFit(); window.addEventListener('resize',doFit);
|
|
64
|
-
fetch(endpoint,{credentials:'include'}).then(function(res){
|
|
65
|
-
if(!res.ok){
|
|
66
|
-
if(res.status===401){status.textContent='\u9700\u8981\u767B\u5F55 dashboard \u540E\u67E5\u770B\u56DE\u653E';}
|
|
67
|
-
else if(res.status===404){status.textContent='\u6CA1\u6709 PTY \u65E5\u5FD7';}
|
|
68
|
-
else{status.textContent='\u52A0\u8F7D\u5931\u8D25 HTTP '+res.status;}
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
var total=Number(res.headers.get('x-botmux-log-bytes')||0);
|
|
72
|
-
var served=Number(res.headers.get('x-botmux-served-bytes')||0);
|
|
73
|
-
var truncated=res.headers.get('x-botmux-truncated')==='1';
|
|
74
|
-
status.textContent=truncated
|
|
75
|
-
? 'showing tail '+formatBytes(served)+' / '+formatBytes(total)
|
|
76
|
-
: 'loaded '+formatBytes(total);
|
|
77
|
-
return res.arrayBuffer();
|
|
78
|
-
}).then(function(buf){
|
|
79
|
-
if(!buf)return;
|
|
80
|
-
term.write(new TextDecoder().decode(buf));
|
|
81
|
-
setTimeout(doFit,0);
|
|
82
|
-
}).catch(function(err){
|
|
83
|
-
status.textContent='\u52A0\u8F7D\u5931\u8D25: '+(err&&err.message?err.message:String(err));
|
|
84
|
-
});
|
|
85
|
-
function formatBytes(n){
|
|
86
|
-
if(!Number.isFinite(n)||n<=0)return '0 B';
|
|
87
|
-
var u=['B','KiB','MiB','GiB'];var i=0;
|
|
88
|
-
while(n>=1024&&i<u.length-1){n/=1024;i++;}
|
|
89
|
-
return (i===0?String(n):n.toFixed(1))+' '+u[i];
|
|
90
|
-
}
|
|
91
|
-
})();
|
|
92
|
-
<\/script>
|
|
93
|
-
</body>
|
|
94
|
-
</html>`}function C(e){return e.replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t])}function k(e){return C(e).replace(/`/g,"`")}var n=b(V(),1);function Z(){return typeof document<"u"&&document.hidden}function ue(){let[e,t]=(0,c.useState)([]);return(0,c.useEffect)(()=>{let s=!1,o=null,i=()=>{o=window.setTimeout(()=>{a()},2e3)};async function a(){if(!s){if(!Z())try{let l=await F();s||t(l)}catch{}s||i()}}return a(),()=>{s=!0,o!==null&&window.clearTimeout(o)}},[]),e}function me(e){let[t,s]=(0,c.useState)(null),[o,i]=(0,c.useState)("");return(0,c.useEffect)(()=>{let a=!1,l=null,u=!1,f=()=>{l=window.setTimeout(()=>{x()},2e3)};async function h(r){if(!B(r,u))return!1;u=!0;try{let d=await O(e);return a||!d?!1:(window.location.replace(G(e,location.hash.split("?")[1])),!0)}catch{return!1}}async function x(){if(a)return;let r=!1;if(!Z())try{let d=await A(e);if(a)return;if(d.ok)s(d.view),i(d.view.runStatus),r=W(d.view.runStatus);else{if(await h(d.status))return;i(d.status===404?"not found":`HTTP ${d.status}`)}}catch{}!a&&!r&&f()}return x(),()=>{a=!0,l!==null&&window.clearTimeout(l)}},[e]),{view:t,statusText:o}}function pe(){let e=L(),t=ue(),s=(0,n.jsxs)("div",{className:"page-heading-actions v3r-run-toolbar",children:[(0,n.jsx)("span",{className:"v3r-run-count",children:t.length}),(0,n.jsx)(T,{active:"v3"})]});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"page-heading",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"eyebrow",children:e("nav.workflows")}),(0,n.jsx)("h1",{children:e("nav.workflows")})]}),s]}),(0,n.jsx)("section",{className:"overview-block v3r-runs-section",children:(0,n.jsx)("div",{className:"v3r-run-list",children:t.length?t.map(o=>(0,n.jsxs)("a",{className:"v3r-run-card",href:`#/workflows/${encodeURIComponent(o.runId)}`,children:[(0,n.jsxs)("span",{className:"v3r-run-main",children:[(0,n.jsx)("code",{className:"v3r-runid",children:o.runId}),(0,n.jsxs)("small",{children:["\u8282\u70B9 ",o.nodeCount]})]}),(0,n.jsx)("span",{className:`v3r-pill rs-${o.runStatus}`,children:o.runStatus})]},o.runId)):(0,n.jsxs)("div",{className:"empty v3r-empty",children:["\u6682\u65E0\u5DE5\u4F5C\u6D41\u8FD0\u884C\uFF08\u7528 ",(0,n.jsx)("code",{children:"/workflow new"})," \u53D1\u8D77\u4E00\u4E2A\uFF09"]})})})]})}function ge(e){let t=L(),{view:s,statusText:o}=me(e.runId),[i,a]=(0,c.useState)(null),[l,u]=(0,c.useState)(null),[f,h]=(0,c.useState)(!1);(0,c.useEffect)(()=>{a(null),u(null),h(!1)},[e.runId]),(0,c.useEffect)(()=>{s&&a(m=>m&&s.nodes.some(w=>w.id===m)?m:D(s)[0]?.id??s.nodes[0]?.id??null)},[s]);let x=(0,c.useCallback)(m=>{a(m),u(null),h(!1)},[]),r=(0,c.useCallback)(m=>{u(m),h(!0)},[]),d=s?.nodes.find(m=>m.id===i)??null,p=s?`v3r-pill rs-${s.runStatus}`:"v3r-pill";return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"page-heading v3r-detail-heading",children:[(0,n.jsxs)("div",{className:"v3r-title-row",children:[(0,n.jsx)("p",{className:"eyebrow",children:t("nav.workflows")}),(0,n.jsxs)("a",{href:"#/workflows",className:"btn-link v3r-back-link",children:["\u2190 ",t("nav.workflows")]}),(0,n.jsx)("h1",{children:e.runId}),(0,n.jsx)("span",{className:`${p} v3r-run-status-pill`,children:o})]}),(0,n.jsx)("div",{className:"page-heading-actions",children:(0,n.jsx)(T,{active:"v3"})})]}),(0,n.jsxs)("div",{className:"v3r-wrap",children:[(0,n.jsxs)("section",{className:"overview-block v3r-graph-section",children:[(0,n.jsx)(S,{title:"\u8FD0\u884C\u62D3\u6251",hint:s?`${s.nodes.length} \u4E2A\u8282\u70B9`:o}),(0,n.jsxs)("div",{className:"v3r-graph-card",children:[(0,n.jsx)(ve,{view:s,selectedId:i,onSelect:x}),(0,n.jsx)(fe,{})]})]}),(0,n.jsxs)("section",{className:"overview-block v3r-node-section",children:[(0,n.jsx)(S,{title:"\u8282\u70B9\u8BE6\u60C5",hint:d?(0,n.jsxs)("span",{className:`v3r-pill v3r-node-status-pill st-${d.status}`,children:[(0,n.jsx)("i",{className:"dot"}),y[d.status]]}):"\u9009\u62E9\u4E00\u4E2A\u8282\u70B9"}),(0,n.jsx)(ye,{runId:e.runId,view:s,node:d,instanceId:l,instancePinned:f,onInstanceSelect:r})]})]})]})}function fe(){return(0,n.jsxs)("div",{className:"v3r-legend",children:[(0,n.jsx)("span",{className:"lg st-pending",children:"\u5F85\u673A"}),(0,n.jsx)("span",{className:"lg st-running",children:"\u8FD0\u884C\u4E2D"}),(0,n.jsx)("span",{className:"lg st-gateWaiting",children:"\u7B49\u5BA1\u6279"}),(0,n.jsx)("span",{className:"lg st-done",children:"\u5B8C\u6210"}),(0,n.jsx)("span",{className:"lg st-skipped",children:"\u5DF2\u8DF3\u8FC7"}),(0,n.jsx)("span",{className:"lg st-cancelled",children:"\u5DF2\u53D6\u6D88"}),(0,n.jsx)("span",{className:"lg st-blocked",children:"\u53D7\u963B"}),(0,n.jsx)("span",{className:"lg st-failed",children:"\u5931\u8D25"}),(0,n.jsx)("span",{className:"lg lg-loop",children:"\u27F3 \u5FAA\u73AF\u5BB9\u5668"})]})}function ve(e){let t=(0,c.useMemo)(()=>e.view?X(e.view):null,[e.view]),s=t?`${t.width}:${t.height}:${t.nodes.map(i=>i.node.id).join("\0")}`:"",o=(0,c.useRef)(null);return(0,c.useLayoutEffect)(()=>{let i=o.current;if(!i||!s)return;let a=0,l=()=>{a=0,i.scrollLeft=Math.max(0,(i.scrollWidth-i.clientWidth)/2),i.scrollTop=Math.max(0,(i.scrollHeight-i.clientHeight)/2)},u=()=>{a&&window.cancelAnimationFrame(a),a=window.requestAnimationFrame(l)};u();let f=typeof ResizeObserver>"u"?null:new ResizeObserver(u);f?.observe(i);let h=i.querySelector(".v3r-graph-stage");return h&&f?.observe(h),()=>{a&&window.cancelAnimationFrame(a),f?.disconnect()}},[s]),(0,n.jsx)("div",{id:"v3-graph",className:"v3r-graph",ref:o,children:t?(0,n.jsx)("div",{className:"v3r-graph-stage",children:(0,n.jsxs)("svg",{width:t.width,height:t.height,viewBox:`0 0 ${t.width} ${t.height}`,children:[(0,n.jsx)("defs",{children:(0,n.jsx)("marker",{id:"v3arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse",children:(0,n.jsx)("path",{d:"M0,0 L10,5 L0,10 z",fill:"var(--faint, #8b98aa)"})})}),t.edges.map(i=>(0,n.jsx)("path",{className:`v3r-edge${i.live?" live":""}`,d:`M${i.x1},${i.y1} C${i.mx},${i.y1} ${i.mx},${i.y2} ${i.x2},${i.y2}`,markerEnd:"url(#v3arrow)"},`${i.fromId}->${i.toId}`)),t.nodes.map(i=>(0,n.jsx)(he,{box:i,selected:i.node.id===e.selectedId,onSelect:e.onSelect},i.node.id))]})}):null})}function he(e){let{box:t,selected:s}=e,o=t.node;return o.isLoop?(0,n.jsx)(we,{box:t,selected:s,onSelect:e.onSelect}):(0,n.jsxs)("g",{className:`v3r-node st-${o.status}${s?" sel":""}`,"data-node":o.id,onClick:()=>e.onSelect(o.id),children:[(0,n.jsx)("rect",{className:"v3r-box",x:t.x,y:t.y,width:g.nodeWidth,height:g.plainHeight,rx:"10"}),(0,n.jsx)("text",{className:"v3r-nid",x:t.x+14,y:t.y+20,children:$(o.id,18)}),(0,n.jsx)("text",{className:"v3r-nstatus",x:t.x+14,y:t.y+37,children:y[o.status]})]})}function we(e){let{box:t,selected:s}=e,o=t.node,i=o.loopState,a=E(o),l=i?`${y[o.status]} \xB7 \u7B2C${i.iteration}${a!==void 0?`/${a}`:""}\u8F6E`:`${y[o.status]} \xB7 loop`,u=i?.maxIterations;return(0,n.jsxs)("g",{className:`v3r-node v3r-loopnode st-${o.status}${s?" sel":""}`,"data-node":o.id,onClick:()=>e.onSelect(o.id),children:[(0,n.jsx)("rect",{className:"v3r-cap",x:t.x-4,y:t.y-4,width:g.nodeWidth+8,height:g.loopHeight+8,rx:"14"}),(0,n.jsx)("rect",{className:"v3r-box",x:t.x,y:t.y,width:g.nodeWidth,height:g.loopHeight,rx:"10"}),(0,n.jsx)("text",{className:"v3r-spin",x:t.x+14,y:t.y+21,children:"\u27F3"}),(0,n.jsx)("text",{className:"v3r-nid",x:t.x+30,y:t.y+21,children:$(o.id,16)}),(0,n.jsx)("text",{className:"v3r-nstatus",x:t.x+14,y:t.y+39,children:l}),i&&a!==void 0&&a<=g.maxDots?(0,n.jsx)(xe,{node:o,x:t.x,y:t.y,budget:a,maxIterations:u}):null]})}function xe(e){let t=e.node.loopState,s=e.y+g.loopHeight-13,o=Array.from({length:e.budget},(i,a)=>a+1);return(0,n.jsxs)(n.Fragment,{children:[o.map(i=>{let a=i<t.iteration?"v3r-dot done":i===t.iteration?`v3r-dot cur${e.node.status==="running"?" live":""}`:"v3r-dot todo",l=e.maxIterations!==void 0&&i>e.maxIterations?" grant":"";return(0,n.jsx)("circle",{className:`${a}${l}`,cx:e.x+14+(i-1)*15,cy:s,r:"3.6"},i)}),t.lastDecision==="exit"?(0,n.jsx)("text",{className:"v3r-dots-verdict ok",x:e.x+14+e.budget*15+4,y:s+4,children:"\u2713"}):null,t.lastDecision==="exhausted"&&e.node.status==="blocked"?(0,n.jsx)("text",{className:"v3r-dots-verdict warn",x:e.x+14+e.budget*15+4,y:s+4,children:"\u26A0"}):null]})}function ye(e){let t=e.node,s=(0,c.useMemo)(()=>t?.isLoop?j(e.view,t.id):[],[t,e.view]),o=t?.isLoop?z(s,e.instanceId,e.instancePinned):t,i=t?.isLoop?o?.id??null:null;return t?(0,n.jsxs)("div",{id:"v3-node-panel",className:"v3r-panel",children:[(0,n.jsxs)("div",{id:"v3-node-meta",children:[t.goal?(0,n.jsx)("p",{className:"v3r-goal",children:t.goal}):null,t.depends.length?(0,n.jsxs)("p",{className:"v3r-deps",children:[(0,n.jsx)("span",{children:"\u4F9D\u8D56"}),t.depends.map(a=>(0,n.jsx)("span",{className:"v3r-dep",children:a},a))]}):null,t.errorClass?(0,n.jsx)(be,{node:t}):null,t.isLoop?(0,n.jsx)(Ie,{runId:e.runId,node:t,instances:s,activeInstanceId:i,onInstanceSelect:e.onInstanceSelect}):null]}),(0,n.jsx)("div",{id:"v3-inst-strip",children:t.isLoop&&o?(0,n.jsx)(Ne,{node:o,auto:!e.instancePinned}):null}),(0,n.jsx)(Ve,{runId:e.runId,node:o})]}):(0,n.jsx)("div",{id:"v3-node-panel",className:"v3r-panel",children:(0,n.jsx)("p",{className:"muted",children:"\u70B9\u4E00\u4E2A\u8282\u70B9\u770B\u8BE6\u60C5\u4E0E\u7EC8\u7AEF"})})}function be(e){let t=e.node;return(0,n.jsxs)("p",{className:"v3r-err",children:["\u539F\u56E0\uFF1A",t.errorClass,t.errorCode?` (${t.errorCode})`:"",t.status==="blocked"&&!t.isLoop?(0,n.jsxs)(n.Fragment,{children:[" \u2014 \u98DE\u4E66\u5361\u7247\u6216 ",(0,n.jsx)("code",{children:"botmux workflow retry"})," \u53EF\u91CD\u8BD5"]}):null]})}function Ne(e){let t=e.node.loop;return(0,n.jsxs)("div",{className:"v3r-inst-strip",children:[(0,n.jsx)("span",{className:"lbl",children:"\u5B9E\u4F8B\u7EC8\u7AEF"}),(0,n.jsx)("span",{className:"v3r-nodeid sm",children:e.node.id}),(0,n.jsxs)("span",{className:`v3r-pill st-${e.node.status}`,children:[(0,n.jsx)("i",{className:"dot"}),y[e.node.status]]}),(0,n.jsxs)("span",{className:"muted",children:["\u7B2C ",t.iteration," \u8F6E \xB7 ",t.bodyNodeId,e.auto?" \xB7 \u81EA\u52A8\u8DDF\u968F":""]})]})}function Ie(e){let t=e.node.loopState;if(!t)return(0,n.jsx)("p",{className:"muted",children:"loop \u672A\u5F00\u59CB"});let s=E(e.node),o=new Map(t.decisions.map(a=>[a.iteration,a.decision])),i=U(e.instances);return(0,n.jsxs)("div",{className:"v3r-loop-sec",children:[(0,n.jsxs)("div",{className:"v3r-loop-meter",children:[(0,n.jsxs)("span",{className:"num",children:["\u7B2C ",(0,n.jsx)("b",{children:t.iteration}),s!==void 0?(0,n.jsxs)(n.Fragment,{children:[" / ",(0,n.jsx)("b",{children:s})]}):null," \u8F6E"]}),t.granted>0?(0,n.jsxs)("span",{className:"v3r-granted-tag",children:["\u542B\u4EBA\u5DE5\u8FFD\u52A0 +",t.granted]}):null,t.lastDecision==="exit"?(0,n.jsx)("span",{className:"v3r-verdict vd-exit",children:"\u2713 \u5DF2\u6536\u655B"}):null]}),(0,n.jsx)("div",{className:"v3r-rounds",children:i.map(a=>{let l=o.get(a.iteration),u=a.iteration===t.iteration,f=t.maxIterations!==void 0&&a.iteration>t.maxIterations;return(0,n.jsxs)("div",{className:`v3r-round${u?" cur":""}${l?` vd-${l}`:""}`,children:[(0,n.jsxs)("div",{className:"v3r-round-head",children:[(0,n.jsxs)("span",{className:"rn",children:["R",a.iteration]}),f?(0,n.jsx)("span",{className:"v3r-granted-tag",children:"\u2795 \u8FFD\u52A0\u8F6E"}):null,l?(0,n.jsx)("span",{className:`v3r-verdict vd-${l}`,children:_[l]}):u&&e.node.status==="running"?(0,n.jsx)("span",{className:"v3r-verdict vd-live",children:"\u25B6 \u8FDB\u884C\u4E2D"}):null]}),(0,n.jsx)(Re,{template:t.bodyTemplate,instances:a.instances,activeInstanceId:e.activeInstanceId,onInstanceSelect:e.onInstanceSelect})]},a.iteration)})}),e.node.status==="blocked"?(0,n.jsxs)("div",{className:"v3r-cta",children:["\u26A0 \u8F6E\u6570\u8017\u5C3D\uFF0C\u7B49\u4EBA\u8FFD\u52A0 \u2014 \u98DE\u4E66\u5361\u7247\u70B9\u300C\u2795 \u8FFD\u52A0 1 \u8F6E\u300D\uFF0C\u6216 ",(0,n.jsxs)("code",{children:["botmux workflow grant ",e.runId]})]}):null]})}function Re(e){let t=(0,c.useMemo)(()=>new Map(e.instances.map(o=>[o.loop.bodyNodeId,o])),[e.instances]),s=(0,c.useMemo)(()=>q(e.template,t),[e.template,t]);return(0,n.jsxs)("svg",{className:"v3r-mini-svg",width:s.width,height:s.height,viewBox:`0 0 ${s.width} ${s.height}`,children:[(0,n.jsx)("defs",{children:(0,n.jsx)("marker",{id:"v3arrow-mini",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:(0,n.jsx)("path",{d:"M0,0 L10,5 L0,10 z",fill:"var(--faint, #8b98aa)"})})}),s.edges.map(o=>(0,n.jsx)("path",{className:`v3r-edge${o.live?" live":""}`,d:`M${o.x1},${o.y1} C${o.mx},${o.y1} ${o.mx},${o.y2} ${o.x2},${o.y2}`,markerEnd:"url(#v3arrow-mini)"},`${o.fromId}->${o.toId}`)),s.nodes.map(o=>{let i=o.node,a=i?.status??"pending",l=i?.id===e.activeInstanceId;return(0,n.jsxs)("g",{className:`v3r-node v3r-mini st-${a}${l?" sel":""}${i?"":" ghost"}`,"data-sel":i?.id,style:i?{cursor:"pointer"}:void 0,onClick:u=>{i&&(u.stopPropagation(),e.onInstanceSelect(i.id))},children:[(0,n.jsx)("rect",{className:"v3r-box",x:o.x,y:o.y,width:o.width,height:o.height,rx:"8"}),(0,n.jsx)("circle",{className:"v3r-mini-dot",cx:o.x+13,cy:o.y+o.height/2,r:"3.4"}),(0,n.jsx)("text",{className:"v3r-nid",x:o.x+24,y:o.y+o.height/2+4,children:$(o.templateId,12)})]},o.templateId)})]})}function Ve(e){let t=(0,c.useRef)(null),s=(0,c.useRef)(null),o=e.node?`${e.runId}|${e.node.id}|${P(e.node)}`:null;return(0,c.useEffect)(()=>{let i=t.current;if(i){if(!e.node||!o){i.innerHTML="",s.current=null;return}s.current!==o&&(Y(i,e.runId,e.node),s.current=o)}},[e.runId,e.node,o]),(0,n.jsx)("div",{id:"v3-term-slot",className:"v3r-term-slot",ref:t})}function Q(){let e=J();return(0,n.jsx)("section",{className:"page workflows-page v3-page",children:e?(0,n.jsx)(ge,{runId:e}):(0,n.jsx)(pe,{})})}var ee=b(V(),1);function Ae(e){return H(e,(0,ee.jsx)(Q,{}))}export{Ae as renderV3RunsPage};
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>Workflow attempt terminal replay</title>
|
|
6
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.css">
|
|
7
|
-
<style>
|
|
8
|
-
html, body {
|
|
9
|
-
margin: 0;
|
|
10
|
-
padding: 0;
|
|
11
|
-
background: #0d1117;
|
|
12
|
-
color: #c9d1d9;
|
|
13
|
-
height: 100%;
|
|
14
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
15
|
-
font-size: 13px;
|
|
16
|
-
}
|
|
17
|
-
#chrome {
|
|
18
|
-
display: flex;
|
|
19
|
-
gap: 1rem;
|
|
20
|
-
align-items: center;
|
|
21
|
-
padding: 0.45rem 0.75rem;
|
|
22
|
-
border-bottom: 1px solid #30363d;
|
|
23
|
-
background: #161b22;
|
|
24
|
-
color: #8b949e;
|
|
25
|
-
font-size: 12px;
|
|
26
|
-
}
|
|
27
|
-
#chrome a {
|
|
28
|
-
color: #58a6ff;
|
|
29
|
-
text-decoration: none;
|
|
30
|
-
}
|
|
31
|
-
#chrome a:hover { text-decoration: underline; }
|
|
32
|
-
#info { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
33
|
-
#progress { color: #6e7681; margin-left: auto; }
|
|
34
|
-
#term {
|
|
35
|
-
height: calc(100% - 33px);
|
|
36
|
-
padding: 0.25rem;
|
|
37
|
-
box-sizing: border-box;
|
|
38
|
-
}
|
|
39
|
-
#term :focus { outline: none; }
|
|
40
|
-
.mode-toggle {
|
|
41
|
-
display: inline-flex;
|
|
42
|
-
border: 1px solid #30363d;
|
|
43
|
-
border-radius: 4px;
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
}
|
|
46
|
-
.mode-toggle button {
|
|
47
|
-
background: transparent;
|
|
48
|
-
color: #8b949e;
|
|
49
|
-
border: 0;
|
|
50
|
-
padding: 0.2rem 0.6rem;
|
|
51
|
-
font: inherit;
|
|
52
|
-
cursor: pointer;
|
|
53
|
-
}
|
|
54
|
-
.mode-toggle button.active {
|
|
55
|
-
background: #1f6feb;
|
|
56
|
-
color: #ffffff;
|
|
57
|
-
}
|
|
58
|
-
.mode-toggle button:disabled {
|
|
59
|
-
color: #484f58;
|
|
60
|
-
cursor: not-allowed;
|
|
61
|
-
}
|
|
62
|
-
.mode-toggle button:not(.active):not(:disabled):hover {
|
|
63
|
-
background: #21262d;
|
|
64
|
-
color: #c9d1d9;
|
|
65
|
-
}
|
|
66
|
-
</style>
|
|
67
|
-
</head>
|
|
68
|
-
<body>
|
|
69
|
-
<div id="chrome">
|
|
70
|
-
<span id="info">Loading…</span>
|
|
71
|
-
<span class="mode-toggle" id="mode-toggle">
|
|
72
|
-
<button type="button" data-mode="pty" id="btn-pty">Terminal</button>
|
|
73
|
-
<button type="button" data-mode="diag" id="btn-diag">Diagnostic</button>
|
|
74
|
-
</span>
|
|
75
|
-
<span id="progress"></span>
|
|
76
|
-
<a id="download-link" href="#" target="_blank" rel="noopener" style="display:none">Download full log</a>
|
|
77
|
-
</div>
|
|
78
|
-
<div id="term"></div>
|
|
79
|
-
<script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/lib/xterm.js"></script>
|
|
80
|
-
<script src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0.10.0/lib/addon-fit.js"></script>
|
|
81
|
-
<script>
|
|
82
|
-
(function () {
|
|
83
|
-
'use strict';
|
|
84
|
-
var params = new URLSearchParams(window.location.search);
|
|
85
|
-
var runId = params.get('runId');
|
|
86
|
-
var activityId = params.get('activityId');
|
|
87
|
-
var attemptId = params.get('attemptId');
|
|
88
|
-
// hasPtyLog=1 → projection saw a non-empty pty.log; default mode is the
|
|
89
|
-
// raw PTY cinema. Without it the diag button is the only one enabled
|
|
90
|
-
// (older attempt → no pty.log on disk → /raw?stream=pty would 404).
|
|
91
|
-
var hasPty = params.get('hasPtyLog') === '1';
|
|
92
|
-
var info = document.getElementById('info');
|
|
93
|
-
var progress = document.getElementById('progress');
|
|
94
|
-
var dl = document.getElementById('download-link');
|
|
95
|
-
var btnPty = document.getElementById('btn-pty');
|
|
96
|
-
var btnDiag = document.getElementById('btn-diag');
|
|
97
|
-
if (!runId || !activityId || !attemptId) {
|
|
98
|
-
info.textContent = 'Missing runId/activityId/attemptId query params';
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
var Term = window.Terminal;
|
|
102
|
-
var FitAddon = window.FitAddon ? window.FitAddon.FitAddon : null;
|
|
103
|
-
if (!Term) {
|
|
104
|
-
info.textContent = 'xterm.js failed to load';
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
var term = new Term({
|
|
108
|
-
convertEol: true,
|
|
109
|
-
scrollback: 100000,
|
|
110
|
-
fontSize: 13,
|
|
111
|
-
theme: { background: '#0d1117', foreground: '#c9d1d9' },
|
|
112
|
-
disableStdin: true,
|
|
113
|
-
});
|
|
114
|
-
var fit = FitAddon ? new FitAddon() : null;
|
|
115
|
-
if (fit) term.loadAddon(fit);
|
|
116
|
-
term.open(document.getElementById('term'));
|
|
117
|
-
if (fit) {
|
|
118
|
-
try { fit.fit(); } catch (e) { /* initial fit can race layout */ }
|
|
119
|
-
window.addEventListener('resize', function () {
|
|
120
|
-
try { fit.fit(); } catch (e) { /* ignore */ }
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
var apiBase = '/api/workflows/runs/' + encodeURIComponent(runId)
|
|
125
|
-
+ '/attempts/' + encodeURIComponent(activityId)
|
|
126
|
-
+ '/' + encodeURIComponent(attemptId)
|
|
127
|
-
+ '/terminal-log/raw';
|
|
128
|
-
|
|
129
|
-
var activeFetchToken = 0;
|
|
130
|
-
|
|
131
|
-
function setMode(mode) {
|
|
132
|
-
btnPty.classList.toggle('active', mode === 'pty');
|
|
133
|
-
btnDiag.classList.toggle('active', mode === 'diag');
|
|
134
|
-
var query = mode === 'pty' ? '?stream=pty' : '';
|
|
135
|
-
dl.href = apiBase + (query ? query + '&download=1' : '?download=1');
|
|
136
|
-
dl.style.display = '';
|
|
137
|
-
// Bump token so any in-flight earlier fetch doesn't write into the
|
|
138
|
-
// terminal after we've already reset for the new mode.
|
|
139
|
-
var myToken = ++activeFetchToken;
|
|
140
|
-
term.reset();
|
|
141
|
-
progress.textContent = '';
|
|
142
|
-
info.textContent = 'Loading…';
|
|
143
|
-
fetchAndRender(query, myToken);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (!hasPty) {
|
|
147
|
-
btnPty.disabled = true;
|
|
148
|
-
btnPty.title = 'This attempt has no raw PTY log (older run or empty session)';
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
btnPty.addEventListener('click', function () {
|
|
152
|
-
if (btnPty.disabled || btnPty.classList.contains('active')) return;
|
|
153
|
-
setMode('pty');
|
|
154
|
-
});
|
|
155
|
-
btnDiag.addEventListener('click', function () {
|
|
156
|
-
if (btnDiag.classList.contains('active')) return;
|
|
157
|
-
setMode('diag');
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// Initial load — PTY when available, diag otherwise.
|
|
161
|
-
setMode(hasPty ? 'pty' : 'diag');
|
|
162
|
-
|
|
163
|
-
function fetchAndRender(query, token) {
|
|
164
|
-
fetch(apiBase + query).then(function (res) {
|
|
165
|
-
if (token !== activeFetchToken) return null;
|
|
166
|
-
if (!res.ok) {
|
|
167
|
-
if (res.status === 404) {
|
|
168
|
-
info.textContent = 'No log on disk for this attempt';
|
|
169
|
-
} else {
|
|
170
|
-
info.textContent = 'Failed to load log: HTTP ' + res.status;
|
|
171
|
-
}
|
|
172
|
-
return null;
|
|
173
|
-
}
|
|
174
|
-
var totalBytes = Number(res.headers.get('x-botmux-log-bytes') || 0);
|
|
175
|
-
var servedBytes = Number(res.headers.get('x-botmux-served-bytes') || 0);
|
|
176
|
-
var truncated = res.headers.get('x-botmux-truncated') === '1';
|
|
177
|
-
info.textContent = truncated
|
|
178
|
-
? 'Showing last ' + formatBytes(servedBytes) + ' of ' + formatBytes(totalBytes) + ' (truncated — Download for full)'
|
|
179
|
-
: 'Showing ' + formatBytes(totalBytes);
|
|
180
|
-
return res.text();
|
|
181
|
-
}).then(function (text) {
|
|
182
|
-
if (token !== activeFetchToken) return;
|
|
183
|
-
if (text == null) return;
|
|
184
|
-
if (text.length === 0) {
|
|
185
|
-
// header has already filled in totals; nothing to render
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
// Chunk writes through requestAnimationFrame so the browser stays
|
|
189
|
-
// responsive on multi-MB logs. 64 KB / frame ≈ a few seconds for
|
|
190
|
-
// a 10 MB tail at 60 fps.
|
|
191
|
-
var CHUNK = 64 * 1024;
|
|
192
|
-
var offset = 0;
|
|
193
|
-
var total = text.length;
|
|
194
|
-
function writeNext() {
|
|
195
|
-
// Abort the chunk loop if the user switched modes mid-render.
|
|
196
|
-
if (token !== activeFetchToken) return;
|
|
197
|
-
if (offset >= total) {
|
|
198
|
-
progress.textContent = '';
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
var slice = text.slice(offset, offset + CHUNK);
|
|
202
|
-
offset += slice.length;
|
|
203
|
-
term.write(slice);
|
|
204
|
-
progress.textContent = formatBytes(Math.min(offset, total)) + ' / ' + formatBytes(total);
|
|
205
|
-
if (typeof window.requestAnimationFrame === 'function') {
|
|
206
|
-
window.requestAnimationFrame(writeNext);
|
|
207
|
-
} else {
|
|
208
|
-
setTimeout(writeNext, 16);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
writeNext();
|
|
212
|
-
}).catch(function (err) {
|
|
213
|
-
if (token !== activeFetchToken) return;
|
|
214
|
-
info.textContent = 'Failed to load log: ' + (err && err.message ? err.message : err);
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
function formatBytes(n) {
|
|
219
|
-
if (!isFinite(n)) return '0 B';
|
|
220
|
-
if (n < 1024) return n + ' B';
|
|
221
|
-
if (n < 1024 * 1024) return (n / 1024).toFixed(1) + ' KB';
|
|
222
|
-
return (n / (1024 * 1024)).toFixed(2) + ' MB';
|
|
223
|
-
}
|
|
224
|
-
})();
|
|
225
|
-
</script>
|
|
226
|
-
</body>
|
|
227
|
-
</html>
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type Locale } from '../../i18n/index.js';
|
|
2
|
-
import { EventLog } from '../../workflows/events/append.js';
|
|
3
|
-
import { type ResolveWaitInput, type ResolveWaitResult, type ResolveWaitContext } from '../../workflows/wait.js';
|
|
4
|
-
import { type RequestCancelInput } from '../../workflows/cancel.js';
|
|
5
|
-
import type { CancelRequestedEvent } from '../../workflows/events/types.js';
|
|
6
|
-
import type { FrozenCard } from '../../core/types.js';
|
|
7
|
-
export type WorkflowCardActionData = {
|
|
8
|
-
operator?: {
|
|
9
|
-
open_id?: string;
|
|
10
|
-
};
|
|
11
|
-
action?: {
|
|
12
|
-
value?: Record<string, string>;
|
|
13
|
-
form_value?: Record<string, string>;
|
|
14
|
-
};
|
|
15
|
-
context?: {
|
|
16
|
-
open_message_id?: string;
|
|
17
|
-
};
|
|
18
|
-
open_message_id?: string;
|
|
19
|
-
};
|
|
20
|
-
export type WorkflowApprovalHandlerDeps = {
|
|
21
|
-
runsDir?: string;
|
|
22
|
-
makeEventLog?: (runId: string, runsDir: string) => EventLog;
|
|
23
|
-
resolveWaitFn?: (log: EventLog, input: ResolveWaitInput, ctx?: ResolveWaitContext) => Promise<ResolveWaitResult>;
|
|
24
|
-
requestCancelFn?: (log: EventLog, input: RequestCancelInput, actor: 'human') => Promise<CancelRequestedEvent>;
|
|
25
|
-
loadFrozenCardsFn?: (storeId: string) => Map<string, FrozenCard>;
|
|
26
|
-
saveFrozenCardsFn?: (storeId: string, cards: Map<string, FrozenCard>) => void;
|
|
27
|
-
};
|
|
28
|
-
export type WorkflowApprovalHandlerResult = {
|
|
29
|
-
ok: true;
|
|
30
|
-
duplicate: true;
|
|
31
|
-
cardNonce: string;
|
|
32
|
-
} | {
|
|
33
|
-
ok: true;
|
|
34
|
-
duplicate: false;
|
|
35
|
-
cardNonce: string;
|
|
36
|
-
result: ResolveWaitResult | CancelRequestedEvent;
|
|
37
|
-
/** Frozen card body (no buttons) for the dispatcher to in-place patch the
|
|
38
|
-
* clicked card. Undefined if rebuild failed — caller falls back to no
|
|
39
|
-
* patch and the card stays interactive (handler is idempotent via
|
|
40
|
-
* frozenCards). */
|
|
41
|
-
resolvedCardJson?: string;
|
|
42
|
-
} | {
|
|
43
|
-
ok: false;
|
|
44
|
-
error: 'not_approver';
|
|
45
|
-
cardNonce: string;
|
|
46
|
-
};
|
|
47
|
-
export declare function isWorkflowApprovalAction(action?: string): boolean;
|
|
48
|
-
export declare function workflowRunsDir(): string;
|
|
49
|
-
export declare function workflowFrozenStoreId(runId: string): string;
|
|
50
|
-
export declare function handleWorkflowApprovalAction(data: WorkflowCardActionData, deps?: WorkflowApprovalHandlerDeps, locale?: Locale): Promise<WorkflowApprovalHandlerResult | undefined>;
|
|
51
|
-
//# sourceMappingURL=workflow-card-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-card-handler.d.ts","sourceRoot":"","sources":["../../../src/im/lark/workflow-card-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAO5D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUtD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC5D,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,gBAAgB,EACvB,GAAG,CAAC,EAAE,kBAAkB,KACrB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,CAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IACjD;;;wBAGoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,sBAAsB,EAC5B,IAAI,GAAE,2BAAgC,EACtC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,6BAA6B,GAAG,SAAS,CAAC,CA8FpD"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { logger } from '../../utils/logger.js';
|
|
2
|
-
import { loadFrozenCards, saveFrozenCards } from '../../services/frozen-card-store.js';
|
|
3
|
-
import { EventLog } from '../../workflows/events/append.js';
|
|
4
|
-
import { replay } from '../../workflows/events/replay.js';
|
|
5
|
-
import { getRunsDir } from '../../workflows/runs-dir.js';
|
|
6
|
-
import { readWorkflowDefinitionFromRunDir } from '../../workflows/loader.js';
|
|
7
|
-
import { join } from 'node:path';
|
|
8
|
-
import { resolveWait, } from '../../workflows/wait.js';
|
|
9
|
-
import { requestCancel, } from '../../workflows/cancel.js';
|
|
10
|
-
import { buildWorkflowApprovalCard, WORKFLOW_APPROVE_ACTION, WORKFLOW_CANCEL_ACTION, WORKFLOW_COMMENT_FIELD, WORKFLOW_REJECT_ACTION, } from './workflow-cards.js';
|
|
11
|
-
export function isWorkflowApprovalAction(action) {
|
|
12
|
-
return (action === WORKFLOW_APPROVE_ACTION ||
|
|
13
|
-
action === WORKFLOW_REJECT_ACTION ||
|
|
14
|
-
action === WORKFLOW_CANCEL_ACTION);
|
|
15
|
-
}
|
|
16
|
-
export function workflowRunsDir() {
|
|
17
|
-
return getRunsDir();
|
|
18
|
-
}
|
|
19
|
-
export function workflowFrozenStoreId(runId) {
|
|
20
|
-
return `workflow-${runId.replace(/[^a-zA-Z0-9._-]/g, '_')}`;
|
|
21
|
-
}
|
|
22
|
-
export async function handleWorkflowApprovalAction(data, deps = {}, locale) {
|
|
23
|
-
const value = data.action?.value;
|
|
24
|
-
const action = value?.action;
|
|
25
|
-
if (!isWorkflowApprovalAction(action))
|
|
26
|
-
return undefined;
|
|
27
|
-
const runId = requiredValue(value, 'run_id');
|
|
28
|
-
const activityId = requiredValue(value, 'activity_id');
|
|
29
|
-
const attemptId = requiredValue(value, 'attempt_id');
|
|
30
|
-
const cardNonce = requiredValue(value, 'card_nonce');
|
|
31
|
-
const by = data.operator?.open_id;
|
|
32
|
-
if (!by)
|
|
33
|
-
throw new Error('workflow approval action missing operator.open_id');
|
|
34
|
-
const storeId = workflowFrozenStoreId(runId);
|
|
35
|
-
const loadCards = deps.loadFrozenCardsFn ?? loadFrozenCards;
|
|
36
|
-
const saveCards = deps.saveFrozenCardsFn ?? saveFrozenCards;
|
|
37
|
-
const frozenCards = loadCards(storeId);
|
|
38
|
-
if (frozenCards.has(cardNonce)) {
|
|
39
|
-
logger.info(`[workflow:${runId}] duplicate approval card click ignored: ${cardNonce}`);
|
|
40
|
-
return { ok: true, duplicate: true, cardNonce };
|
|
41
|
-
}
|
|
42
|
-
const comment = cleanComment(data.action?.form_value?.[WORKFLOW_COMMENT_FIELD]);
|
|
43
|
-
const runsDir = deps.runsDir ?? workflowRunsDir();
|
|
44
|
-
const makeEventLog = deps.makeEventLog ?? ((rid, base) => new EventLog(rid, base));
|
|
45
|
-
const log = makeEventLog(runId, runsDir);
|
|
46
|
-
const eventsBefore = await log.readAll();
|
|
47
|
-
if (!canApproveFromEvents(eventsBefore, activityId, by)) {
|
|
48
|
-
logger.info(`[workflow:${runId}] approval card action blocked for non-approver ${by}`);
|
|
49
|
-
return { ok: false, error: 'not_approver', cardNonce };
|
|
50
|
-
}
|
|
51
|
-
const result = action === WORKFLOW_CANCEL_ACTION
|
|
52
|
-
? await (deps.requestCancelFn ?? requestCancel)(log, {
|
|
53
|
-
target: { kind: 'run', runId },
|
|
54
|
-
reason: cancelReason(comment),
|
|
55
|
-
by,
|
|
56
|
-
}, 'human')
|
|
57
|
-
: await (deps.resolveWaitFn ?? resolveWait)(log, {
|
|
58
|
-
activityId,
|
|
59
|
-
attemptId,
|
|
60
|
-
resolution: action === WORKFLOW_APPROVE_ACTION ? 'approved' : 'rejected',
|
|
61
|
-
by,
|
|
62
|
-
comment,
|
|
63
|
-
},
|
|
64
|
-
// v0.2: resolveWait inspects ctx.def to detect `decision` nodes
|
|
65
|
-
// so reject writes activitySucceeded instead of activityFailed.
|
|
66
|
-
// Loading the per-run workflow snapshot (not the catalog) keeps
|
|
67
|
-
// long-running cards bound to the definition the run was started
|
|
68
|
-
// with even if the catalog has since been edited.
|
|
69
|
-
await (async () => {
|
|
70
|
-
const def = await readWorkflowDefinitionFromRunDir(join(runsDir, runId));
|
|
71
|
-
return def ? { def } : undefined;
|
|
72
|
-
})());
|
|
73
|
-
const resolutionKind = action === WORKFLOW_APPROVE_ACTION
|
|
74
|
-
? 'approved'
|
|
75
|
-
: action === WORKFLOW_REJECT_ACTION
|
|
76
|
-
? 'rejected'
|
|
77
|
-
: 'cancelled';
|
|
78
|
-
frozenCards.set(cardNonce, {
|
|
79
|
-
messageId: data.context?.open_message_id ?? data.open_message_id ?? '',
|
|
80
|
-
title: `workflow approval ${runId}/${activityId}`,
|
|
81
|
-
content: JSON.stringify({
|
|
82
|
-
runId,
|
|
83
|
-
activityId,
|
|
84
|
-
attemptId,
|
|
85
|
-
resolution: resolutionKind,
|
|
86
|
-
by,
|
|
87
|
-
...(comment ? { comment } : {}),
|
|
88
|
-
}),
|
|
89
|
-
});
|
|
90
|
-
saveCards(storeId, frozenCards);
|
|
91
|
-
if (action === WORKFLOW_CANCEL_ACTION) {
|
|
92
|
-
logger.info(`[workflow:${runId}] run cancel requested from approval card by ${by}`);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
logger.info(`[workflow:${runId}] wait ${activityId}/${attemptId} resolved by ${by}`);
|
|
96
|
-
}
|
|
97
|
-
const resolvedCardJson = buildResolvedCardJson(eventsBefore, activityId, {
|
|
98
|
-
kind: resolutionKind,
|
|
99
|
-
by,
|
|
100
|
-
comment,
|
|
101
|
-
}, locale);
|
|
102
|
-
return { ok: true, duplicate: false, cardNonce, result, resolvedCardJson };
|
|
103
|
-
}
|
|
104
|
-
function buildResolvedCardJson(events, activityId, resolution, locale) {
|
|
105
|
-
try {
|
|
106
|
-
const waitEvent = findLatestWaitCreated(events, activityId);
|
|
107
|
-
if (!waitEvent)
|
|
108
|
-
return undefined;
|
|
109
|
-
const snapshot = replay(events);
|
|
110
|
-
return buildWorkflowApprovalCard(waitEvent, snapshot, { resolution }, locale);
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
logger.warn(`failed to build resolved approval card: ${err instanceof Error ? err.message : String(err)}`);
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
function findLatestWaitCreated(events, activityId) {
|
|
118
|
-
for (let i = events.length - 1; i >= 0; i--) {
|
|
119
|
-
const evt = events[i];
|
|
120
|
-
if (evt.type !== 'waitCreated')
|
|
121
|
-
continue;
|
|
122
|
-
if (waitCreatedActivityId(evt) !== activityId)
|
|
123
|
-
continue;
|
|
124
|
-
return evt;
|
|
125
|
-
}
|
|
126
|
-
return undefined;
|
|
127
|
-
}
|
|
128
|
-
function requiredValue(value, key) {
|
|
129
|
-
const v = value?.[key];
|
|
130
|
-
if (!v)
|
|
131
|
-
throw new Error(`workflow approval action missing ${key}`);
|
|
132
|
-
return v;
|
|
133
|
-
}
|
|
134
|
-
function cleanComment(s) {
|
|
135
|
-
const trimmed = s?.trim();
|
|
136
|
-
return trimmed ? trimmed : undefined;
|
|
137
|
-
}
|
|
138
|
-
function cancelReason(comment) {
|
|
139
|
-
return comment ? `cancelled from approval card: ${comment}` : 'cancelled from approval card';
|
|
140
|
-
}
|
|
141
|
-
function canApproveFromEvents(events, activityId, by) {
|
|
142
|
-
const wait = findLatestWaitCreated(events, activityId);
|
|
143
|
-
const approvers = waitCreatedApprovers(wait);
|
|
144
|
-
if (!approvers || approvers.length === 0)
|
|
145
|
-
return true;
|
|
146
|
-
return approvers.includes(by);
|
|
147
|
-
}
|
|
148
|
-
function waitCreatedActivityId(event) {
|
|
149
|
-
const payload = event.payload;
|
|
150
|
-
if (typeof payload !== 'object' || payload === null || 'ref' in payload)
|
|
151
|
-
return undefined;
|
|
152
|
-
return payload.activityId;
|
|
153
|
-
}
|
|
154
|
-
function waitCreatedApprovers(event) {
|
|
155
|
-
if (!event)
|
|
156
|
-
return undefined;
|
|
157
|
-
const payload = event.payload;
|
|
158
|
-
if (typeof payload !== 'object' || payload === null || 'ref' in payload)
|
|
159
|
-
return undefined;
|
|
160
|
-
const approvers = payload.approvers;
|
|
161
|
-
return Array.isArray(approvers) ? approvers.filter((x) => typeof x === 'string') : undefined;
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=workflow-card-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-card-handler.js","sourceRoot":"","sources":["../../../src/im/lark/workflow-card-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { type Locale } from '../../i18n/index.js';
|
|
2
|
-
import type { WaitCreatedEvent } from '../../workflows/events/types.js';
|
|
3
|
-
import type { Snapshot } from '../../workflows/events/replay.js';
|
|
4
|
-
export declare const WORKFLOW_APPROVE_ACTION = "wf_approve";
|
|
5
|
-
export declare const WORKFLOW_REJECT_ACTION = "wf_reject";
|
|
6
|
-
export declare const WORKFLOW_CANCEL_ACTION = "wf_cancel";
|
|
7
|
-
export declare const WORKFLOW_COMMENT_FIELD = "wf_comment";
|
|
8
|
-
export declare const WORKFLOW_APPROVAL_FORM = "wf_approval_form";
|
|
9
|
-
export type WorkflowApprovalResolutionKind = 'approved' | 'rejected' | 'cancelled';
|
|
10
|
-
export type WorkflowApprovalCardResolution = {
|
|
11
|
-
kind: WorkflowApprovalResolutionKind;
|
|
12
|
-
by: string;
|
|
13
|
-
comment?: string;
|
|
14
|
-
};
|
|
15
|
-
export type WorkflowApprovalCardOptions = {
|
|
16
|
-
webDetailUrl?: string;
|
|
17
|
-
cardNonce?: string;
|
|
18
|
-
promptMaxChars?: number;
|
|
19
|
-
/** When present, render a frozen "已通过 / 已拒绝 / 已取消" card — no form,
|
|
20
|
-
* no clickable approve/reject/cancel buttons — so the same surface that
|
|
21
|
-
* triggered the action can't be re-submitted from a stale UI. */
|
|
22
|
-
resolution?: WorkflowApprovalCardResolution;
|
|
23
|
-
};
|
|
24
|
-
export type WorkflowApprovalCardContext = {
|
|
25
|
-
runId: string;
|
|
26
|
-
workflowId?: string;
|
|
27
|
-
revisionId?: string;
|
|
28
|
-
nodeId: string;
|
|
29
|
-
activityId: string;
|
|
30
|
-
attemptId: string;
|
|
31
|
-
deadlineAt?: number;
|
|
32
|
-
/** Body text for the card. Either the full inline prompt (small case)
|
|
33
|
-
* or the inline promptPreview (large case). Cards must NEVER read
|
|
34
|
-
* promptRef blob files — see `hasFullBehindRef`. */
|
|
35
|
-
prompt: string;
|
|
36
|
-
/** True when the upstream waitCreated event spilled its prompt to a
|
|
37
|
-
* blob (promptRef set). Card-builder uses this to render a hint
|
|
38
|
-
* pointing the approver to the dashboard for the complete text. */
|
|
39
|
-
hasFullBehindRef: boolean;
|
|
40
|
-
cardNonce: string;
|
|
41
|
-
webDetailUrl: string;
|
|
42
|
-
};
|
|
43
|
-
export declare function workflowApprovalCardNonce(runId: string, activityId: string, attemptId: string): string;
|
|
44
|
-
export declare function workflowRunDetailUrl(runId: string): string;
|
|
45
|
-
export declare function getWorkflowApprovalCardContext(event: WaitCreatedEvent, snapshot: Snapshot, opts?: WorkflowApprovalCardOptions): WorkflowApprovalCardContext;
|
|
46
|
-
export declare function buildWorkflowApprovalCard(event: WaitCreatedEvent, snapshot: Snapshot, opts?: WorkflowApprovalCardOptions, locale?: Locale): string;
|
|
47
|
-
//# sourceMappingURL=workflow-cards.d.ts.map
|