@bastani/atomic 0.9.16-alpha.2 → 0.9.16-alpha.4
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/CHANGELOG.md +14 -0
- package/dist/builtin/intercom/broker/spawn.ts +22 -2
- package/dist/builtin/intercom/index.bundle.mjs +61756 -0
- package/dist/builtin/intercom/package.json +3 -3
- package/dist/builtin/mcp/index.bundle.mjs +64963 -0
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/package.json +2 -2
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +85733 -0
- package/dist/builtin/web-access/index.bundle.mjs +67475 -0
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/package.json +3 -3
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +76480 -96363
- package/dist/builtin/workflows/src/index.bundle.mjs +73306 -0
- package/dist/config-package-identity.d.ts +22 -0
- package/dist/config-package-identity.d.ts.map +1 -0
- package/dist/config-package-identity.js +73 -0
- package/dist/config-package-identity.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/core/builtin-install-layout.d.ts +22 -0
- package/dist/core/builtin-install-layout.d.ts.map +1 -0
- package/dist/core/builtin-install-layout.js +23 -0
- package/dist/core/builtin-install-layout.js.map +1 -0
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +8 -32
- package/dist/core/builtin-packages.js.map +1 -1
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
- package/dist/builtin/intercom/closed-workflow-stage-message.ts +0 -66
- package/dist/builtin/intercom/config.ts +0 -121
- package/dist/builtin/intercom/contact-supervisor-tool.ts +0 -328
- package/dist/builtin/intercom/foreground-detach-handoff.ts +0 -164
- package/dist/builtin/intercom/group.ts +0 -85
- package/dist/builtin/intercom/inbound-idle-queue.ts +0 -82
- package/dist/builtin/intercom/inbound-message-admission.ts +0 -79
- package/dist/builtin/intercom/incoming-message-delivery.ts +0 -49
- package/dist/builtin/intercom/index-heavy.ts +0 -539
- package/dist/builtin/intercom/index.ts +0 -503
- package/dist/builtin/intercom/intercom-test-seams.ts +0 -6
- package/dist/builtin/intercom/intercom-tool.ts +0 -602
- package/dist/builtin/intercom/intercom-utils.ts +0 -427
- package/dist/builtin/intercom/late-stage-message-router.ts +0 -148
- package/dist/builtin/intercom/lazy-heavy-proxy.ts +0 -108
- package/dist/builtin/intercom/lazy-subagent-ack.ts +0 -25
- package/dist/builtin/intercom/lazy-tool-execution.ts +0 -39
- package/dist/builtin/intercom/lifecycle-lease.ts +0 -51
- package/dist/builtin/intercom/lifecycle.ts +0 -144
- package/dist/builtin/intercom/overlay.ts +0 -96
- package/dist/builtin/intercom/parent-ask-handoff.ts +0 -72
- package/dist/builtin/intercom/reconnect-backoff.ts +0 -6
- package/dist/builtin/intercom/reply-routing.ts +0 -17
- package/dist/builtin/intercom/reply-tracker.ts +0 -110
- package/dist/builtin/intercom/reply-waiter.ts +0 -115
- package/dist/builtin/intercom/result-renderers.ts +0 -77
- package/dist/builtin/intercom/runtime-group.ts +0 -13
- package/dist/builtin/intercom/session-target.ts +0 -54
- package/dist/builtin/intercom/source-ownership.ts +0 -31
- package/dist/builtin/intercom/stable-delivery-retry.ts +0 -32
- package/dist/builtin/intercom/subagent-relay.ts +0 -290
- package/dist/builtin/intercom/supervisor-authorization-registry.ts +0 -22
- package/dist/builtin/intercom/terminal-ordering-barrier.ts +0 -247
- package/dist/builtin/intercom/types.ts +0 -66
- package/dist/builtin/intercom/ui/compose.ts +0 -159
- package/dist/builtin/intercom/ui/inline-message.ts +0 -78
- package/dist/builtin/intercom/ui/session-list.ts +0 -195
- package/dist/builtin/intercom/workflow-reply-tracker.ts +0 -19
- package/dist/builtin/intercom/workflow-stage-admission.ts +0 -43
- package/dist/builtin/intercom/workflow-stage-delivery-failure.ts +0 -77
- package/dist/builtin/mcp/agent-dir.ts +0 -30
- package/dist/builtin/mcp/apps-cancellation.ts +0 -32
- package/dist/builtin/mcp/call-tool-result.ts +0 -9
- package/dist/builtin/mcp/caller-wait.ts +0 -50
- package/dist/builtin/mcp/cli.js +0 -191
- package/dist/builtin/mcp/command-registration.ts +0 -82
- package/dist/builtin/mcp/commands.ts +0 -424
- package/dist/builtin/mcp/config-write-utils.ts +0 -104
- package/dist/builtin/mcp/config.ts +0 -498
- package/dist/builtin/mcp/consent-manager.ts +0 -64
- package/dist/builtin/mcp/direct-tool-executor.ts +0 -280
- package/dist/builtin/mcp/direct-tools.ts +0 -216
- package/dist/builtin/mcp/errors.ts +0 -219
- package/dist/builtin/mcp/glimpse-ui.ts +0 -81
- package/dist/builtin/mcp/host-html-template.ts +0 -426
- package/dist/builtin/mcp/index.ts +0 -443
- package/dist/builtin/mcp/init.ts +0 -319
- package/dist/builtin/mcp/lifecycle.ts +0 -93
- package/dist/builtin/mcp/logger.ts +0 -169
- package/dist/builtin/mcp/mcp-auth-flow.ts +0 -372
- package/dist/builtin/mcp/mcp-auth.ts +0 -297
- package/dist/builtin/mcp/mcp-callback-server.ts +0 -306
- package/dist/builtin/mcp/mcp-oauth-provider.ts +0 -324
- package/dist/builtin/mcp/mcp-panel-renderer.ts +0 -243
- package/dist/builtin/mcp/mcp-panel-state.ts +0 -227
- package/dist/builtin/mcp/mcp-panel-types.ts +0 -86
- package/dist/builtin/mcp/mcp-panel.ts +0 -393
- package/dist/builtin/mcp/mcp-setup-panel.ts +0 -502
- package/dist/builtin/mcp/metadata-cache.ts +0 -201
- package/dist/builtin/mcp/metadata-hydration.ts +0 -52
- package/dist/builtin/mcp/npx-resolver.ts +0 -425
- package/dist/builtin/mcp/oauth-handler.ts +0 -60
- package/dist/builtin/mcp/onboarding-state.ts +0 -68
- package/dist/builtin/mcp/proxy-auth.ts +0 -61
- package/dist/builtin/mcp/proxy-call.ts +0 -447
- package/dist/builtin/mcp/proxy-connect.ts +0 -78
- package/dist/builtin/mcp/proxy-info-modes.ts +0 -409
- package/dist/builtin/mcp/proxy-modes.ts +0 -3
- package/dist/builtin/mcp/proxy-types.ts +0 -3
- package/dist/builtin/mcp/resource-tools.ts +0 -17
- package/dist/builtin/mcp/sampling-handler.ts +0 -273
- package/dist/builtin/mcp/server-manager.ts +0 -372
- package/dist/builtin/mcp/session-cleanup-barrier.ts +0 -43
- package/dist/builtin/mcp/startup-warmup.ts +0 -110
- package/dist/builtin/mcp/state-lease.ts +0 -12
- package/dist/builtin/mcp/state.ts +0 -41
- package/dist/builtin/mcp/tool-call-timeout.ts +0 -101
- package/dist/builtin/mcp/tool-metadata.ts +0 -152
- package/dist/builtin/mcp/tool-registrar.ts +0 -46
- package/dist/builtin/mcp/tool-result-renderer.ts +0 -66
- package/dist/builtin/mcp/types.ts +0 -445
- package/dist/builtin/mcp/ui-resource-handler.ts +0 -145
- package/dist/builtin/mcp/ui-server-http.ts +0 -81
- package/dist/builtin/mcp/ui-server.ts +0 -499
- package/dist/builtin/mcp/ui-session.ts +0 -378
- package/dist/builtin/mcp/ui-stream-types.ts +0 -89
- package/dist/builtin/mcp/utils.ts +0 -165
- package/dist/builtin/subagents/src/agents/agent-discovery.ts +0 -116
- package/dist/builtin/subagents/src/agents/agent-loaders.ts +0 -216
- package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +0 -221
- package/dist/builtin/subagents/src/agents/agent-management.ts +0 -315
- package/dist/builtin/subagents/src/agents/agent-overrides.ts +0 -450
- package/dist/builtin/subagents/src/agents/agent-paths.ts +0 -69
- package/dist/builtin/subagents/src/agents/agent-scope.ts +0 -6
- package/dist/builtin/subagents/src/agents/agent-selection.ts +0 -23
- package/dist/builtin/subagents/src/agents/agent-serializer.ts +0 -113
- package/dist/builtin/subagents/src/agents/agent-types.ts +0 -97
- package/dist/builtin/subagents/src/agents/agents.ts +0 -25
- package/dist/builtin/subagents/src/agents/frontmatter.ts +0 -74
- package/dist/builtin/subagents/src/agents/identity.ts +0 -37
- package/dist/builtin/subagents/src/agents/skills-paths.ts +0 -380
- package/dist/builtin/subagents/src/agents/skills.ts +0 -398
- package/dist/builtin/subagents/src/extension/api-lifecycle.ts +0 -64
- package/dist/builtin/subagents/src/extension/config.ts +0 -16
- package/dist/builtin/subagents/src/extension/control-notices.ts +0 -91
- package/dist/builtin/subagents/src/extension/index.ts +0 -420
- package/dist/builtin/subagents/src/extension/notification-content.ts +0 -85
- package/dist/builtin/subagents/src/extension/prompt-guidance.ts +0 -11
- package/dist/builtin/subagents/src/extension/schemas.ts +0 -208
- package/dist/builtin/subagents/src/extension/startup-maintenance.ts +0 -133
- package/dist/builtin/subagents/src/extension/tool-description.ts +0 -17
- package/dist/builtin/subagents/src/extension/tool-rendering.ts +0 -53
- package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +0 -376
- package/dist/builtin/subagents/src/intercom/result-intercom.ts +0 -246
- package/dist/builtin/subagents/src/intercom/supervisor-authorization.ts +0 -30
- package/dist/builtin/subagents/src/runs/foreground/completion-notification.ts +0 -42
- package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +0 -26
- package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +0 -58
- package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +0 -19
- package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +0 -51
- package/dist/builtin/subagents/src/runs/foreground/execution-parent-ask-handoff.ts +0 -78
- package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +0 -1
- package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +0 -26
- package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +0 -61
- package/dist/builtin/subagents/src/runs/foreground/execution.ts +0 -6
- package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +0 -512
- package/dist/builtin/subagents/src/runs/foreground/notify.ts +0 -355
- package/dist/builtin/subagents/src/runs/foreground/parent-ask-output.ts +0 -48
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-burst-display.ts +0 -46
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-burst.ts +0 -403
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +0 -223
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-cwd.ts +0 -6
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +0 -139
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-live-update.ts +0 -11
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +0 -268
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +0 -327
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parent-ask-projection.ts +0 -11
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +0 -12
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +0 -350
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +0 -246
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +0 -131
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +0 -102
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +0 -217
- package/dist/builtin/subagents/src/runs/inprocess/child-policy.ts +0 -27
- package/dist/builtin/subagents/src/runs/inprocess/control-registry.ts +0 -55
- package/dist/builtin/subagents/src/runs/inprocess/control-status.ts +0 -72
- package/dist/builtin/subagents/src/runs/inprocess/index.ts +0 -27
- package/dist/builtin/subagents/src/runs/inprocess/prompt-behavior.ts +0 -168
- package/dist/builtin/subagents/src/runs/inprocess/runner.ts +0 -1280
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/temp-cleanup.ts +0 -69
- package/dist/builtin/subagents/src/runs/inprocess.ts +0 -1
- package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +0 -67
- package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +0 -182
- package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +0 -391
- package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +0 -56
- package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +0 -88
- package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +0 -70
- package/dist/builtin/subagents/src/runs/shared/progress-trend.ts +0 -69
- package/dist/builtin/subagents/src/runs/shared/run-history.ts +0 -64
- package/dist/builtin/subagents/src/runs/shared/single-output.ts +0 -169
- package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +0 -234
- package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +0 -111
- package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +0 -67
- package/dist/builtin/subagents/src/runs/shared/worktree.ts +0 -552
- package/dist/builtin/subagents/src/shared/artifacts.ts +0 -240
- package/dist/builtin/subagents/src/shared/atomic-json.ts +0 -16
- package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +0 -330
- package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +0 -44
- package/dist/builtin/subagents/src/shared/fast-mode.ts +0 -87
- package/dist/builtin/subagents/src/shared/file-coalescer.ts +0 -40
- package/dist/builtin/subagents/src/shared/fork-context.ts +0 -79
- package/dist/builtin/subagents/src/shared/formatters.ts +0 -89
- package/dist/builtin/subagents/src/shared/jsonl-writer.ts +0 -83
- package/dist/builtin/subagents/src/shared/model-info.ts +0 -101
- package/dist/builtin/subagents/src/shared/model-resolution.ts +0 -78
- package/dist/builtin/subagents/src/shared/session-identity.ts +0 -10
- package/dist/builtin/subagents/src/shared/session-tokens.ts +0 -45
- package/dist/builtin/subagents/src/shared/settings.ts +0 -118
- package/dist/builtin/subagents/src/shared/status-format.ts +0 -50
- package/dist/builtin/subagents/src/shared/types-config.ts +0 -206
- package/dist/builtin/subagents/src/shared/types-depth.ts +0 -46
- package/dist/builtin/subagents/src/shared/types-foreground-state.ts +0 -48
- package/dist/builtin/subagents/src/shared/types-output.ts +0 -63
- package/dist/builtin/subagents/src/shared/types-results.ts +0 -259
- package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -115
- package/dist/builtin/subagents/src/shared/types.ts +0 -13
- package/dist/builtin/subagents/src/shared/utils.ts +0 -342
- package/dist/builtin/subagents/src/slash/bridge-settlement.ts +0 -87
- package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +0 -455
- package/dist/builtin/subagents/src/slash/slash-bridge.ts +0 -194
- package/dist/builtin/subagents/src/slash/slash-commands.ts +0 -5
- package/dist/builtin/subagents/src/slash/slash-live-state.ts +0 -259
- package/dist/builtin/subagents/src/tui/render-event-formatting.ts +0 -7
- package/dist/builtin/subagents/src/tui/render-helpers.ts +0 -90
- package/dist/builtin/subagents/src/tui/render-layout.ts +0 -157
- package/dist/builtin/subagents/src/tui/render-progress.ts +0 -89
- package/dist/builtin/subagents/src/tui/render-result-animation.ts +0 -47
- package/dist/builtin/subagents/src/tui/render-result-compact.ts +0 -248
- package/dist/builtin/subagents/src/tui/render-result.ts +0 -438
- package/dist/builtin/subagents/src/tui/render-stable-output.ts +0 -50
- package/dist/builtin/subagents/src/tui/render-status-progress.ts +0 -168
- package/dist/builtin/subagents/src/tui/render.ts +0 -23
- package/dist/builtin/web-access/activity.ts +0 -101
- package/dist/builtin/web-access/chrome-cookies.ts +0 -323
- package/dist/builtin/web-access/code-search.ts +0 -107
- package/dist/builtin/web-access/config-paths.ts +0 -11
- package/dist/builtin/web-access/content-tools.ts +0 -354
- package/dist/builtin/web-access/curator-page-assets/script-1.ts +0 -400
- package/dist/builtin/web-access/curator-page-assets/script-2.ts +0 -400
- package/dist/builtin/web-access/curator-page-assets/script-3.ts +0 -400
- package/dist/builtin/web-access/curator-page-assets/script-4.ts +0 -400
- package/dist/builtin/web-access/curator-page-assets/script-5.ts +0 -398
- package/dist/builtin/web-access/curator-page-assets/styles-1.ts +0 -394
- package/dist/builtin/web-access/curator-page-assets/styles-2.ts +0 -394
- package/dist/builtin/web-access/curator-page-assets/styles-3.ts +0 -393
- package/dist/builtin/web-access/curator-page.ts +0 -196
- package/dist/builtin/web-access/curator-server-helpers.ts +0 -115
- package/dist/builtin/web-access/curator-server.ts +0 -494
- package/dist/builtin/web-access/exa-mcp.ts +0 -218
- package/dist/builtin/web-access/exa.ts +0 -317
- package/dist/builtin/web-access/extract-frames.ts +0 -229
- package/dist/builtin/web-access/extract.ts +0 -500
- package/dist/builtin/web-access/flat-string.ts +0 -37
- package/dist/builtin/web-access/gemini-api.ts +0 -111
- package/dist/builtin/web-access/gemini-search.ts +0 -363
- package/dist/builtin/web-access/gemini-url-context.ts +0 -126
- package/dist/builtin/web-access/gemini-web-config.ts +0 -53
- package/dist/builtin/web-access/gemini-web.ts +0 -397
- package/dist/builtin/web-access/github-api.ts +0 -198
- package/dist/builtin/web-access/github-config.ts +0 -156
- package/dist/builtin/web-access/github-extract.ts +0 -487
- package/dist/builtin/web-access/index-heavy.ts +0 -164
- package/dist/builtin/web-access/index.ts +0 -401
- package/dist/builtin/web-access/lifecycle-lease.ts +0 -38
- package/dist/builtin/web-access/pdf-extract.ts +0 -192
- package/dist/builtin/web-access/perplexity.ts +0 -194
- package/dist/builtin/web-access/result-renderers.ts +0 -366
- package/dist/builtin/web-access/rsc-extract.ts +0 -338
- package/dist/builtin/web-access/storage.ts +0 -72
- package/dist/builtin/web-access/subprocess.ts +0 -102
- package/dist/builtin/web-access/summary-review.ts +0 -287
- package/dist/builtin/web-access/utils.ts +0 -44
- package/dist/builtin/web-access/video-extract.ts +0 -375
- package/dist/builtin/web-access/web-search-activity.ts +0 -102
- package/dist/builtin/web-access/web-search-browser.ts +0 -124
- package/dist/builtin/web-access/web-search-command.ts +0 -242
- package/dist/builtin/web-access/web-search-config.ts +0 -157
- package/dist/builtin/web-access/web-search-curator.ts +0 -214
- package/dist/builtin/web-access/web-search-features.ts +0 -181
- package/dist/builtin/web-access/web-search-formatting.ts +0 -117
- package/dist/builtin/web-access/web-search-return.ts +0 -143
- package/dist/builtin/web-access/web-search-summary.ts +0 -177
- package/dist/builtin/web-access/web-search-tool.ts +0 -286
- package/dist/builtin/web-access/web-search-types.ts +0 -50
- package/dist/builtin/web-access/web-search-workflow.ts +0 -10
- package/dist/builtin/web-access/youtube-extract.ts +0 -309
- package/dist/builtin/workflows/src/authoring/keep-context.ts +0 -46
- package/dist/builtin/workflows/src/authoring/typebox-defaults.d.ts +0 -41
- package/dist/builtin/workflows/src/authoring/typebox-defaults.ts +0 -180
- package/dist/builtin/workflows/src/authoring/workflow.ts +0 -206
- package/dist/builtin/workflows/src/durable/backend.ts +0 -598
- package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +0 -172
- package/dist/builtin/workflows/src/durable/boundary-topology.ts +0 -475
- package/dist/builtin/workflows/src/durable/child-invocation.ts +0 -14
- package/dist/builtin/workflows/src/durable/child-primitive.ts +0 -124
- package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +0 -385
- package/dist/builtin/workflows/src/durable/completed-catalog.ts +0 -685
- package/dist/builtin/workflows/src/durable/completed-inspection.ts +0 -157
- package/dist/builtin/workflows/src/durable/completed-subtree.ts +0 -50
- package/dist/builtin/workflows/src/durable/dbos-backend.ts +0 -580
- package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +0 -681
- package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +0 -717
- package/dist/builtin/workflows/src/durable/dbos-envelope.ts +0 -516
- package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +0 -208
- package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +0 -166
- package/dist/builtin/workflows/src/durable/dbos-metadata.ts +0 -196
- package/dist/builtin/workflows/src/durable/dbos-process-owner.ts +0 -87
- package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +0 -377
- package/dist/builtin/workflows/src/durable/dbos-registration-diagnostics.ts +0 -113
- package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +0 -182
- package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +0 -67
- package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +0 -27
- package/dist/builtin/workflows/src/durable/durable-hash.ts +0 -18
- package/dist/builtin/workflows/src/durable/factory.ts +0 -93
- package/dist/builtin/workflows/src/durable/format-version.ts +0 -6
- package/dist/builtin/workflows/src/durable/index.ts +0 -82
- package/dist/builtin/workflows/src/durable/local-command.ts +0 -135
- package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +0 -184
- package/dist/builtin/workflows/src/durable/prompt-reservations.ts +0 -36
- package/dist/builtin/workflows/src/durable/resume-catalog.ts +0 -20
- package/dist/builtin/workflows/src/durable/resume-eligibility.ts +0 -106
- package/dist/builtin/workflows/src/durable/resume-runtime.ts +0 -344
- package/dist/builtin/workflows/src/durable/retention-policy.ts +0 -43
- package/dist/builtin/workflows/src/durable/run-timing.ts +0 -151
- package/dist/builtin/workflows/src/durable/scoped-backend.ts +0 -308
- package/dist/builtin/workflows/src/durable/stage-primitive.ts +0 -553
- package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +0 -247
- package/dist/builtin/workflows/src/durable/stage-topology.ts +0 -53
- package/dist/builtin/workflows/src/durable/targeted-inspection.ts +0 -110
- package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +0 -54
- package/dist/builtin/workflows/src/durable/tool-outcome.ts +0 -130
- package/dist/builtin/workflows/src/durable/tool-primitive.ts +0 -861
- package/dist/builtin/workflows/src/durable/types.ts +0 -343
- package/dist/builtin/workflows/src/durable/ui-primitive.ts +0 -263
- package/dist/builtin/workflows/src/durable/workflow-child-result.ts +0 -63
- package/dist/builtin/workflows/src/durable/workflow-heartbeat-anchor.ts +0 -153
- package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +0 -31
- package/dist/builtin/workflows/src/engine/graph-inference.ts +0 -100
- package/dist/builtin/workflows/src/engine/options.ts +0 -44
- package/dist/builtin/workflows/src/engine/primitives/chain.ts +0 -34
- package/dist/builtin/workflows/src/engine/primitives/exit.ts +0 -2
- package/dist/builtin/workflows/src/engine/primitives/parallel.ts +0 -74
- package/dist/builtin/workflows/src/engine/primitives/task.ts +0 -127
- package/dist/builtin/workflows/src/engine/primitives/ui.ts +0 -54
- package/dist/builtin/workflows/src/engine/primitives/workflow.ts +0 -219
- package/dist/builtin/workflows/src/engine/replay.ts +0 -8
- package/dist/builtin/workflows/src/engine/run-budget.ts +0 -308
- package/dist/builtin/workflows/src/engine/run-durable-admission.ts +0 -50
- package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +0 -97
- package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +0 -65
- package/dist/builtin/workflows/src/engine/run-durable-topology.ts +0 -295
- package/dist/builtin/workflows/src/engine/run-returned-status.ts +0 -86
- package/dist/builtin/workflows/src/engine/run-terminal-event.ts +0 -39
- package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +0 -53
- package/dist/builtin/workflows/src/engine/run-tool-admission-boundary.ts +0 -99
- package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +0 -187
- package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +0 -164
- package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +0 -158
- package/dist/builtin/workflows/src/engine/run.ts +0 -841
- package/dist/builtin/workflows/src/engine/runtime.ts +0 -220
- package/dist/builtin/workflows/src/engine/workflow-activity.ts +0 -13
- package/dist/builtin/workflows/src/engine/workflow-tool-abort.ts +0 -92
- package/dist/builtin/workflows/src/extension/adopt-session-run-state.ts +0 -20
- package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +0 -168
- package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +0 -154
- package/dist/builtin/workflows/src/extension/companions.ts +0 -210
- package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +0 -167
- package/dist/builtin/workflows/src/extension/config-file-loader.ts +0 -185
- package/dist/builtin/workflows/src/extension/config-loader.ts +0 -439
- package/dist/builtin/workflows/src/extension/discovery-loaders.ts +0 -112
- package/dist/builtin/workflows/src/extension/discovery.ts +0 -424
- package/dist/builtin/workflows/src/extension/dispatcher.ts +0 -273
- package/dist/builtin/workflows/src/extension/extension-factory.ts +0 -133
- package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +0 -174
- package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +0 -596
- package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +0 -367
- package/dist/builtin/workflows/src/extension/index.ts +0 -42
- package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +0 -83
- package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +0 -849
- package/dist/builtin/workflows/src/extension/mcp.ts +0 -121
- package/dist/builtin/workflows/src/extension/postmortem-deps.ts +0 -70
- package/dist/builtin/workflows/src/extension/public-types.ts +0 -234
- package/dist/builtin/workflows/src/extension/render-call.ts +0 -115
- package/dist/builtin/workflows/src/extension/render-component.ts +0 -12
- package/dist/builtin/workflows/src/extension/render-result.ts +0 -558
- package/dist/builtin/workflows/src/extension/renderers.ts +0 -89
- package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +0 -78
- package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +0 -174
- package/dist/builtin/workflows/src/extension/runtime.ts +0 -439
- package/dist/builtin/workflows/src/extension/status-writer.ts +0 -182
- package/dist/builtin/workflows/src/extension/ui-surface.ts +0 -387
- package/dist/builtin/workflows/src/extension/wiring.ts +0 -490
- package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +0 -129
- package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +0 -296
- package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +0 -114
- package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +0 -175
- package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +0 -270
- package/dist/builtin/workflows/src/extension/workflow-heartbeat-delivery.ts +0 -241
- package/dist/builtin/workflows/src/extension/workflow-heartbeat-notice.ts +0 -115
- package/dist/builtin/workflows/src/extension/workflow-heartbeat-scheduler.ts +0 -962
- package/dist/builtin/workflows/src/extension/workflow-model-catalog.ts +0 -24
- package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +0 -162
- package/dist/builtin/workflows/src/extension/workflow-policy.ts +0 -13
- package/dist/builtin/workflows/src/extension/workflow-ports.ts +0 -45
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +0 -73
- package/dist/builtin/workflows/src/extension/workflow-reload-coordinator.ts +0 -66
- package/dist/builtin/workflows/src/extension/workflow-reload-report.ts +0 -42
- package/dist/builtin/workflows/src/extension/workflow-request-abort.ts +0 -15
- package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +0 -96
- package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +0 -53
- package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +0 -562
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +0 -192
- package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +0 -252
- package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +0 -276
- package/dist/builtin/workflows/src/extension/workflow-targets.ts +0 -210
- package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +0 -265
- package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +0 -547
- package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +0 -153
- package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +0 -145
- package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +0 -488
- package/dist/builtin/workflows/src/extension/workflow-tool.ts +0 -188
- package/dist/builtin/workflows/src/index.ts +0 -8
- package/dist/builtin/workflows/src/intercom/intercom-bridge.ts +0 -90
- package/dist/builtin/workflows/src/intercom/intercom-routing.ts +0 -131
- package/dist/builtin/workflows/src/intercom/result-intercom.ts +0 -271
- package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +0 -135
- package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +0 -63
- package/dist/builtin/workflows/src/runs/background/job-tracker.ts +0 -125
- package/dist/builtin/workflows/src/runs/background/quit-tool-node.ts +0 -71
- package/dist/builtin/workflows/src/runs/background/quit.ts +0 -417
- package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +0 -99
- package/dist/builtin/workflows/src/runs/background/run-inspect.ts +0 -126
- package/dist/builtin/workflows/src/runs/background/runner.ts +0 -185
- package/dist/builtin/workflows/src/runs/background/startup-admission.ts +0 -73
- package/dist/builtin/workflows/src/runs/background/status.ts +0 -511
- package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +0 -43
- package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +0 -441
- package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +0 -263
- package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +0 -79
- package/dist/builtin/workflows/src/runs/foreground/executor-child-workflow.ts +0 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +0 -207
- package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +0 -321
- package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +0 -224
- package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +0 -403
- package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +0 -86
- package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +0 -491
- package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +0 -156
- package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +0 -379
- package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +0 -75
- package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +0 -144
- package/dist/builtin/workflows/src/runs/foreground/executor-run.ts +0 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +0 -206
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +0 -434
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +0 -153
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +0 -225
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +0 -473
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +0 -156
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +0 -72
- package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +0 -2
- package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +0 -226
- package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +0 -186
- package/dist/builtin/workflows/src/runs/foreground/executor.ts +0 -25
- package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +0 -245
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +0 -466
- package/dist/builtin/workflows/src/runs/foreground/stage-delivery-activity.ts +0 -86
- package/dist/builtin/workflows/src/runs/foreground/stage-queued-user-messages.ts +0 -95
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +0 -21
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +0 -330
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +0 -1472
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +0 -196
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +0 -177
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +0 -97
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +0 -278
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +0 -206
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +0 -41
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +0 -134
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +0 -38
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +0 -66
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +0 -120
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +0 -211
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +0 -42
- package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +0 -22
- package/dist/builtin/workflows/src/runs/foreground/stage-session-heartbeat.ts +0 -88
- package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +0 -49
- package/dist/builtin/workflows/src/runs/shared/concurrency.ts +0 -76
- package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +0 -2
- package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +0 -325
- package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +0 -19
- package/dist/builtin/workflows/src/runs/shared/model-fallback.ts +0 -2
- package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +0 -96
- package/dist/builtin/workflows/src/runs/shared/retry.ts +0 -44
- package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +0 -111
- package/dist/builtin/workflows/src/runs/shared/worktree-cache-lifecycle.ts +0 -23
- package/dist/builtin/workflows/src/runs/shared/worktree-cwd.ts +0 -116
- package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +0 -172
- package/dist/builtin/workflows/src/runs/shared/worktree-generation.ts +0 -57
- package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +0 -107
- package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +0 -407
- package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +0 -137
- package/dist/builtin/workflows/src/runs/shared/worktree-root.ts +0 -84
- package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +0 -372
- package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +0 -102
- package/dist/builtin/workflows/src/runs/shared/worktree.ts +0 -21
- package/dist/builtin/workflows/src/sdk-surface.ts +0 -70
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +0 -403
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +0 -489
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +0 -327
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +0 -437
- package/dist/builtin/workflows/src/shared/budget-meter.ts +0 -34
- package/dist/builtin/workflows/src/shared/budget.d.ts +0 -67
- package/dist/builtin/workflows/src/shared/budget.ts +0 -127
- package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +0 -434
- package/dist/builtin/workflows/src/shared/flat-string.ts +0 -33
- package/dist/builtin/workflows/src/shared/graph-store-snapshot.ts +0 -188
- package/dist/builtin/workflows/src/shared/intercom-group.ts +0 -58
- package/dist/builtin/workflows/src/shared/persistence-compaction-policy.ts +0 -72
- package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +0 -613
- package/dist/builtin/workflows/src/shared/persistence-restore.ts +0 -306
- package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +0 -303
- package/dist/builtin/workflows/src/shared/prompt-answer.ts +0 -130
- package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +0 -13
- package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +0 -161
- package/dist/builtin/workflows/src/shared/resume-continuation.ts +0 -2
- package/dist/builtin/workflows/src/shared/returned-run-status.ts +0 -164
- package/dist/builtin/workflows/src/shared/run-id.ts +0 -36
- package/dist/builtin/workflows/src/shared/run-indicator-status.ts +0 -75
- package/dist/builtin/workflows/src/shared/run-visibility.ts +0 -9
- package/dist/builtin/workflows/src/shared/schema-introspection.ts +0 -111
- package/dist/builtin/workflows/src/shared/serializable.ts +0 -118
- package/dist/builtin/workflows/src/shared/session-scoped-singleton.ts +0 -98
- package/dist/builtin/workflows/src/shared/session-transcript.ts +0 -79
- package/dist/builtin/workflows/src/shared/stage-prompt.ts +0 -338
- package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +0 -340
- package/dist/builtin/workflows/src/shared/store-factory.ts +0 -26
- package/dist/builtin/workflows/src/shared/store-internal.ts +0 -252
- package/dist/builtin/workflows/src/shared/store-observation.ts +0 -10
- package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +0 -215
- package/dist/builtin/workflows/src/shared/store-public-types.ts +0 -282
- package/dist/builtin/workflows/src/shared/store-run-methods.ts +0 -305
- package/dist/builtin/workflows/src/shared/store-stage-methods.ts +0 -331
- package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +0 -60
- package/dist/builtin/workflows/src/shared/store-types.ts +0 -439
- package/dist/builtin/workflows/src/shared/store.ts +0 -15
- package/dist/builtin/workflows/src/shared/timing.ts +0 -71
- package/dist/builtin/workflows/src/shared/tool-payload-bounds.ts +0 -576
- package/dist/builtin/workflows/src/shared/types.ts +0 -523
- package/dist/builtin/workflows/src/shared/workflow-artifact-env.ts +0 -21
- package/dist/builtin/workflows/src/shared/workflow-artifacts.ts +0 -259
- package/dist/builtin/workflows/src/shared/workflow-authoring-types.d.ts +0 -60
- package/dist/builtin/workflows/src/shared/workflow-authoring-types.ts +0 -111
- package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +0 -292
- package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +0 -74
- package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +0 -458
- package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +0 -303
- package/dist/builtin/workflows/src/shared/workflow-failures.ts +0 -13
- package/dist/builtin/workflows/src/shared/workflow-heartbeat-contract.d.ts +0 -21
- package/dist/builtin/workflows/src/shared/workflow-heartbeat-contract.ts +0 -25
- package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +0 -49
- package/dist/builtin/workflows/src/tui/chat-surface-message.ts +0 -319
- package/dist/builtin/workflows/src/tui/chat-surface.ts +0 -477
- package/dist/builtin/workflows/src/tui/color-utils.ts +0 -55
- package/dist/builtin/workflows/src/tui/connectors.ts +0 -84
- package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +0 -334
- package/dist/builtin/workflows/src/tui/edge.ts +0 -25
- package/dist/builtin/workflows/src/tui/graph-canvas.ts +0 -185
- package/dist/builtin/workflows/src/tui/graph-theme.ts +0 -292
- package/dist/builtin/workflows/src/tui/graph-view-constants.ts +0 -49
- package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +0 -157
- package/dist/builtin/workflows/src/tui/graph-view-input.ts +0 -427
- package/dist/builtin/workflows/src/tui/graph-view-layout.ts +0 -297
- package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +0 -294
- package/dist/builtin/workflows/src/tui/graph-view-render.ts +0 -361
- package/dist/builtin/workflows/src/tui/graph-view-state.ts +0 -547
- package/dist/builtin/workflows/src/tui/graph-view-types.ts +0 -79
- package/dist/builtin/workflows/src/tui/graph-view.ts +0 -25
- package/dist/builtin/workflows/src/tui/header.ts +0 -210
- package/dist/builtin/workflows/src/tui/host-input-form.ts +0 -64
- package/dist/builtin/workflows/src/tui/inline-form-card.ts +0 -438
- package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +0 -120
- package/dist/builtin/workflows/src/tui/inline-form-editor.ts +0 -496
- package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +0 -317
- package/dist/builtin/workflows/src/tui/inline-form-store.ts +0 -90
- package/dist/builtin/workflows/src/tui/inputs-overlay.ts +0 -185
- package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +0 -147
- package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +0 -357
- package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +0 -312
- package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +0 -161
- package/dist/builtin/workflows/src/tui/inputs-picker.ts +0 -20
- package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +0 -167
- package/dist/builtin/workflows/src/tui/layout.ts +0 -150
- package/dist/builtin/workflows/src/tui/mouse-input.ts +0 -61
- package/dist/builtin/workflows/src/tui/node-card.ts +0 -357
- package/dist/builtin/workflows/src/tui/overlay-adapter.ts +0 -449
- package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +0 -39
- package/dist/builtin/workflows/src/tui/prompt-card-input.ts +0 -215
- package/dist/builtin/workflows/src/tui/prompt-card-render.ts +0 -584
- package/dist/builtin/workflows/src/tui/prompt-card-select.ts +0 -94
- package/dist/builtin/workflows/src/tui/prompt-card-state.ts +0 -61
- package/dist/builtin/workflows/src/tui/prompt-card-text.ts +0 -122
- package/dist/builtin/workflows/src/tui/prompt-card.ts +0 -12
- package/dist/builtin/workflows/src/tui/renderers.ts +0 -14
- package/dist/builtin/workflows/src/tui/run-detail.ts +0 -438
- package/dist/builtin/workflows/src/tui/run-identity-rows.ts +0 -97
- package/dist/builtin/workflows/src/tui/session-list.ts +0 -38
- package/dist/builtin/workflows/src/tui/session-overlays.ts +0 -161
- package/dist/builtin/workflows/src/tui/session-picker.ts +0 -482
- package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +0 -19
- package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +0 -81
- package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +0 -462
- package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +0 -115
- package/dist/builtin/workflows/src/tui/stage-chat-view-delivery-activity.ts +0 -113
- package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +0 -219
- package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +0 -216
- package/dist/builtin/workflows/src/tui/stage-chat-view-live-events.ts +0 -65
- package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +0 -7
- package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +0 -149
- package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +0 -49
- package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +0 -575
- package/dist/builtin/workflows/src/tui/stage-chat-view-status.ts +0 -35
- package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +0 -226
- package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +0 -156
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +0 -309
- package/dist/builtin/workflows/src/tui/status-helpers.ts +0 -85
- package/dist/builtin/workflows/src/tui/status-list.ts +0 -447
- package/dist/builtin/workflows/src/tui/store-widget-installer.ts +0 -338
- package/dist/builtin/workflows/src/tui/submit-pane.ts +0 -148
- package/dist/builtin/workflows/src/tui/switcher.ts +0 -172
- package/dist/builtin/workflows/src/tui/text-helpers.ts +0 -208
- package/dist/builtin/workflows/src/tui/tool-detail.ts +0 -367
- package/dist/builtin/workflows/src/tui/widget.ts +0 -427
- package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +0 -21
- package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +0 -77
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +0 -477
- package/dist/builtin/workflows/src/tui/workflow-list.ts +0 -189
- package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +0 -167
- package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +0 -334
- package/dist/builtin/workflows/src/tui/workflow-status.ts +0 -12
- package/dist/builtin/workflows/src/workflows/identity.ts +0 -39
- package/dist/builtin/workflows/src/workflows/registry.ts +0 -115
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import type { RunSnapshot, RunStatus, WorkflowFailureRecoverability } from "../shared/store-types.js";
|
|
2
|
-
import type { DurableWorkflowStatus } from "./types.js";
|
|
3
|
-
|
|
4
|
-
/** Metadata required to classify a current DBOS workflow as resumable. */
|
|
5
|
-
export interface DurableResumeCandidate {
|
|
6
|
-
readonly workflowId: string;
|
|
7
|
-
readonly status: DurableWorkflowStatus;
|
|
8
|
-
readonly completedCheckpoints: number;
|
|
9
|
-
readonly pendingPrompts: number;
|
|
10
|
-
readonly rootWorkflowId?: string;
|
|
11
|
-
readonly resumable?: boolean;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/** Live snapshot fields used by every workflow resume surface. */
|
|
15
|
-
export interface WorkflowRunResumeCandidate {
|
|
16
|
-
readonly status: RunStatus;
|
|
17
|
-
readonly endedAt?: number;
|
|
18
|
-
readonly resumable?: boolean;
|
|
19
|
-
readonly failureRecoverability?: WorkflowFailureRecoverability;
|
|
20
|
-
readonly exitReason?: string;
|
|
21
|
-
/** True when a descendant stage is paused/blocked even if the root is still running. */
|
|
22
|
-
readonly hasPausedState?: boolean;
|
|
23
|
-
/** Explicitly false when durable state or referenced artifacts are missing. */
|
|
24
|
-
readonly hasDurableCheckpoint?: boolean;
|
|
25
|
-
readonly artifactsIntact?: boolean;
|
|
26
|
-
/** True only for the engine-owned budget_exceeded blocked rail. */
|
|
27
|
-
readonly budgetSystemOwnedStop?: boolean;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Derive the paused/blocked state used by every workflow resume surface. */
|
|
31
|
-
export function workflowRunHasPausedState(run: Pick<RunSnapshot, "status" | "exitReason" | "stages">): boolean {
|
|
32
|
-
return (
|
|
33
|
-
run.status === "paused" ||
|
|
34
|
-
run.exitReason === "quit" ||
|
|
35
|
-
run.stages.some((stage) => stage.status === "paused" || stage.status === "blocked")
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Authoritative live-run resume rule shared by every workflow resume surface.
|
|
41
|
-
* Missing durable state or artifacts is never a resume target even when stale
|
|
42
|
-
* snapshot metadata still says resumable.
|
|
43
|
-
*/
|
|
44
|
-
export function isWorkflowRunResumable(candidate: WorkflowRunResumeCandidate): boolean {
|
|
45
|
-
if (candidate.hasDurableCheckpoint === false || candidate.artifactsIntact === false) return false;
|
|
46
|
-
if (candidate.hasPausedState === true || candidate.status === "paused" || candidate.exitReason === "quit") {
|
|
47
|
-
return candidate.resumable !== false;
|
|
48
|
-
}
|
|
49
|
-
return (
|
|
50
|
-
(candidate.status === "failed" && candidate.endedAt !== undefined && candidate.resumable !== false) ||
|
|
51
|
-
(candidate.resumable === true &&
|
|
52
|
-
candidate.failureRecoverability === "recoverable" &&
|
|
53
|
-
(candidate.endedAt === undefined || candidate.budgetSystemOwnedStop === true))
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** Authoritative status/progress rules for durable workflow resume discovery. */
|
|
58
|
-
export function isDurableWorkflowResumable(candidate: DurableResumeCandidate): boolean {
|
|
59
|
-
const isRoot = candidate.rootWorkflowId === undefined || candidate.rootWorkflowId === candidate.workflowId;
|
|
60
|
-
if (!isRoot) return false;
|
|
61
|
-
if (candidate.status === "failed" || candidate.status === "blocked") return candidate.resumable !== false;
|
|
62
|
-
const hasResumeProgress = candidate.completedCheckpoints > 0 || candidate.pendingPrompts > 0;
|
|
63
|
-
return (
|
|
64
|
-
candidate.resumable !== false &&
|
|
65
|
-
(candidate.status === "running" || candidate.status === "paused") &&
|
|
66
|
-
hasResumeProgress
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Liveness window for a `running` workflow owned by another Atomic process.
|
|
72
|
-
* Active LM stages refresh durable timing metadata at least every ~30s, so a
|
|
73
|
-
* running handle whose metadata is fresher than this window is treated as
|
|
74
|
-
* genuinely executing in that other session rather than crashed.
|
|
75
|
-
*/
|
|
76
|
-
export const FOREIGN_LIVE_WORKFLOW_WINDOW_MS = 120_000;
|
|
77
|
-
|
|
78
|
-
export interface ForeignLivenessCandidate {
|
|
79
|
-
readonly status: DurableWorkflowStatus;
|
|
80
|
-
readonly updatedAt: number;
|
|
81
|
-
readonly ownerExecutorId?: string;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/** Whether a running workflow appears live in a DIFFERENT Atomic process. */
|
|
85
|
-
export function isForeignLiveWorkflow(
|
|
86
|
-
candidate: ForeignLivenessCandidate,
|
|
87
|
-
localExecutorId: string,
|
|
88
|
-
now: number = Date.now(),
|
|
89
|
-
): boolean {
|
|
90
|
-
if (candidate.status !== "running") return false;
|
|
91
|
-
if (candidate.ownerExecutorId === undefined || candidate.ownerExecutorId === localExecutorId) return false;
|
|
92
|
-
return now - candidate.updatedAt < FOREIGN_LIVE_WORKFLOW_WINDOW_MS;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Whether a running workflow appears genuinely live ANYWHERE (any owner).
|
|
97
|
-
* Live-running workflows are never resume targets: offering them would allow
|
|
98
|
-
* double-dispatch across sessions. Only stale-heartbeat (crashed) running
|
|
99
|
-
* workflows surface, presented as crashed rather than running.
|
|
100
|
-
*/
|
|
101
|
-
export function isLiveRunningWorkflow(
|
|
102
|
-
candidate: Pick<ForeignLivenessCandidate, "status" | "updatedAt">,
|
|
103
|
-
now: number = Date.now(),
|
|
104
|
-
): boolean {
|
|
105
|
-
return candidate.status === "running" && now - candidate.updatedAt < FOREIGN_LIVE_WORKFLOW_WINDOW_MS;
|
|
106
|
-
}
|
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-process workflow resume using DBOS as the sole source of state.
|
|
3
|
-
*
|
|
4
|
-
* Resume semantics (DBOS-aligned):
|
|
5
|
-
* 1. Look up the durable catalog entry (workflow name + cached inputs).
|
|
6
|
-
* 2. Resolve the workflow definition from the registry.
|
|
7
|
-
* 3. Re-dispatch the workflow as a new background run, reusing the ORIGINAL
|
|
8
|
-
* top-level workflow id as the run id. Because durable checkpoints are
|
|
9
|
-
* keyed by workflow id, every `ctx.tool` / `ctx.ui` / `ctx.stage` call
|
|
10
|
-
* inside the resumed run returns its cached result instead of re-executing
|
|
11
|
-
* — completed side effects are not repeated, exactly like DBOS replay.
|
|
12
|
-
*
|
|
13
|
-
* The adapter deliberately re-dispatches through `runDetached` rather than
|
|
14
|
-
* reconstructing an in-memory snapshot, so it works across processes and
|
|
15
|
-
* sessions without a live store entry.
|
|
16
|
-
*
|
|
17
|
-
* cross-ref: issue #1498 — "/workflow resume connects/attempts resume by
|
|
18
|
-
* top-level workflow id."
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import type { JobTracker } from "../runs/background/job-tracker.js";
|
|
22
|
-
import { launchDetachedUntilStartup, workflowStartupFailureMessage } from "../runs/background/startup-admission.js";
|
|
23
|
-
import {
|
|
24
|
-
isWorkflowDefinition,
|
|
25
|
-
workflowDefinitionRequirementMessage,
|
|
26
|
-
} from "../runs/foreground/executor-child-helpers.js";
|
|
27
|
-
import { resolveAndValidateInputs } from "../runs/foreground/executor-inputs.js";
|
|
28
|
-
import type { RunOpts } from "../runs/foreground/executor-types.js";
|
|
29
|
-
import { isFullRunId, malformedRunIdMessage } from "../shared/run-id.js";
|
|
30
|
-
import type { RunSnapshot } from "../shared/store-types.js";
|
|
31
|
-
import type { WorkflowDefinition, WorkflowInputValues } from "../shared/types.js";
|
|
32
|
-
import type { WorkflowRegistry } from "../workflows/registry.js";
|
|
33
|
-
import { type DurableWorkflowBackend, resumableEntryFromHandle } from "./backend.js";
|
|
34
|
-
import { getAtomicExecutorId } from "./dbos-sdk-handle.js";
|
|
35
|
-
import { getDurableBackend } from "./factory.js";
|
|
36
|
-
import { isDurableWorkflowResumable, isForeignLiveWorkflow } from "./resume-eligibility.js";
|
|
37
|
-
import type { ResumableWorkflowEntry } from "./types.js";
|
|
38
|
-
|
|
39
|
-
export type ResumeDurableResult =
|
|
40
|
-
| { ok: true; runId: string; workflowId: string; name: string; message: string }
|
|
41
|
-
| {
|
|
42
|
-
ok: false;
|
|
43
|
-
reason:
|
|
44
|
-
| "workflow_not_found"
|
|
45
|
-
| "not_resumable"
|
|
46
|
-
| "invalid_inputs"
|
|
47
|
-
| "not_registered"
|
|
48
|
-
| "stale"
|
|
49
|
-
| "startup_failed";
|
|
50
|
-
message: string;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export interface ResumeDurableDeps {
|
|
54
|
-
readonly registry: WorkflowRegistry;
|
|
55
|
-
/** Base run options forwarded to the detached runner (store, persistence, …). */
|
|
56
|
-
readonly baseRunOpts: RunOpts;
|
|
57
|
-
/** Durable backend override (defaults to the global singleton). */
|
|
58
|
-
readonly durableBackend?: DurableWorkflowBackend;
|
|
59
|
-
/** Resolve a definition from its original invocation directory after restart. */
|
|
60
|
-
readonly resolveDefinition?: (name: string, cwd: string | undefined) => Promise<WorkflowDefinition | undefined>;
|
|
61
|
-
/** Job tracker used by the detached resume launch. */
|
|
62
|
-
readonly jobs?: JobTracker;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** Hydrate current DBOS metadata and checkpoints before synchronous replay reads. */
|
|
66
|
-
export async function prepareDurableResume(
|
|
67
|
-
workflowId: string | undefined,
|
|
68
|
-
deps: ResumeDurableDeps,
|
|
69
|
-
): Promise<readonly ResumableWorkflowEntry[]> {
|
|
70
|
-
const backend = deps.durableBackend ?? getDurableBackend();
|
|
71
|
-
await backend.hydrateResumableWorkflows();
|
|
72
|
-
const catalog = backend.listResumableWorkflows();
|
|
73
|
-
// If a specific target was requested, hydrate that workflow too (it might
|
|
74
|
-
// be resumable but not yet in the resumable filter — e.g. recently failed).
|
|
75
|
-
if (workflowId !== undefined) {
|
|
76
|
-
const resolved = resolveDurableEntry(workflowId, catalog);
|
|
77
|
-
if (resolved !== undefined && !("kind" in resolved)) {
|
|
78
|
-
await backend.hydrateWorkflow(resolved.workflowId);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return backend.listResumableWorkflows();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Resolve a current DBOS catalog entry by its full run id.
|
|
86
|
-
*
|
|
87
|
-
* The durable `workflowId` is the live run id, so it takes the same strict
|
|
88
|
-
* contract: a full UUID or nothing. A malformed target is reported separately
|
|
89
|
-
* from an absent one.
|
|
90
|
-
*/
|
|
91
|
-
export function resolveDurableEntry(
|
|
92
|
-
workflowId: string,
|
|
93
|
-
catalog: readonly ResumableWorkflowEntry[],
|
|
94
|
-
): ResumableWorkflowEntry | { kind: "malformed"; message: string } | undefined {
|
|
95
|
-
if (!isFullRunId(workflowId)) return { kind: "malformed", message: malformedRunIdMessage(workflowId) };
|
|
96
|
-
return catalog.find((entry) => entry.workflowId === workflowId);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/** Resume by DBOS workflow id and replay current persisted checkpoints. */
|
|
100
|
-
export async function resumeDurableWorkflow(
|
|
101
|
-
workflowId: string,
|
|
102
|
-
deps: ResumeDurableDeps,
|
|
103
|
-
catalog?: readonly ResumableWorkflowEntry[],
|
|
104
|
-
): Promise<ResumeDurableResult> {
|
|
105
|
-
const backend = deps.durableBackend ?? getDurableBackend();
|
|
106
|
-
const resolvedCatalog = catalog ?? backend.listResumableWorkflows();
|
|
107
|
-
const resolved = resolveDurableEntry(workflowId, resolvedCatalog);
|
|
108
|
-
if (resolved === undefined) {
|
|
109
|
-
const direct = backend.getWorkflow(workflowId);
|
|
110
|
-
if (direct !== undefined && direct.status === "running") {
|
|
111
|
-
if (hasActiveLiveRun(deps.baseRunOpts.store, direct.workflowId)) {
|
|
112
|
-
return alreadyRunningResult(direct.name, direct.workflowId, deps.baseRunOpts.store);
|
|
113
|
-
}
|
|
114
|
-
if (isForeignLiveWorkflow(direct, getAtomicExecutorId())) {
|
|
115
|
-
return foreignRunningResult(direct.name, direct.workflowId);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
if (!backend.isWorkflowLoadable(workflowId)) {
|
|
119
|
-
return {
|
|
120
|
-
ok: false,
|
|
121
|
-
reason: "not_registered",
|
|
122
|
-
message: `Workflow ${workflowId} has no valid current DBOS state.`,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
ok: false,
|
|
127
|
-
reason: "not_registered",
|
|
128
|
-
message: `No resumable workflow found for id: ${workflowId}`,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
if ("kind" in resolved) {
|
|
132
|
-
return { ok: false, reason: "not_registered", message: resolved.message };
|
|
133
|
-
}
|
|
134
|
-
if (!backend.isWorkflowLoadable(resolved.workflowId)) {
|
|
135
|
-
return {
|
|
136
|
-
ok: false,
|
|
137
|
-
reason: "not_registered",
|
|
138
|
-
message: `Workflow ${resolved.workflowId} has no valid current DBOS state.`,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
// Revalidate the authoritative DBOS handle before resume. A running handle
|
|
142
|
-
// is refused when this process still has an actively executing run, or when
|
|
143
|
-
// fresh ownership metadata shows another Atomic session is executing it.
|
|
144
|
-
const handle = backend.getWorkflow(resolved.workflowId);
|
|
145
|
-
if (handle === undefined) {
|
|
146
|
-
return {
|
|
147
|
-
ok: false,
|
|
148
|
-
reason: "stale",
|
|
149
|
-
message: `Workflow ${resolved.workflowId} has no current DBOS checkpoint state; re-run the workflow to start fresh.`,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (handle.status === "running") {
|
|
154
|
-
if (hasActiveLiveRun(deps.baseRunOpts.store, resolved.workflowId)) {
|
|
155
|
-
return alreadyRunningResult(handle.name, resolved.workflowId, deps.baseRunOpts.store);
|
|
156
|
-
}
|
|
157
|
-
if (isForeignLiveWorkflow(handle, getAtomicExecutorId())) {
|
|
158
|
-
return foreignRunningResult(handle.name, resolved.workflowId);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (!isDurableWorkflowResumable(handle)) {
|
|
162
|
-
return {
|
|
163
|
-
ok: false,
|
|
164
|
-
reason: "not_resumable",
|
|
165
|
-
message: `Workflow ${resolved.workflowId} is ${handle.status}, not resumable.`,
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const def =
|
|
170
|
-
handle.invocationCwd === undefined
|
|
171
|
-
? deps.registry.get(handle.name)
|
|
172
|
-
: ((await deps.resolveDefinition?.(handle.name, handle.invocationCwd)) ?? deps.registry.get(handle.name));
|
|
173
|
-
if (def === undefined) {
|
|
174
|
-
return { ok: false, reason: "workflow_not_found", message: `Workflow definition not found: ${handle.name}` };
|
|
175
|
-
}
|
|
176
|
-
if (!isWorkflowDefinition(def)) {
|
|
177
|
-
return {
|
|
178
|
-
ok: false,
|
|
179
|
-
reason: "workflow_not_found",
|
|
180
|
-
message: workflowDefinitionRequirementMessage("resumeDurableWorkflow", def),
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const inputs: Record<string, unknown> = { ...handle.inputs };
|
|
185
|
-
try {
|
|
186
|
-
resolveAndValidateInputs(def.inputs, inputs as WorkflowInputValues, `workflow "${def.name}"`);
|
|
187
|
-
} catch (err) {
|
|
188
|
-
return {
|
|
189
|
-
ok: false,
|
|
190
|
-
reason: "invalid_inputs",
|
|
191
|
-
message: `invalid_inputs: ${err instanceof Error ? err.message : String(err)}`,
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
removeDurableResumeShadowRuns(deps.baseRunOpts.store, resolved.workflowId);
|
|
195
|
-
|
|
196
|
-
// Claim resume against concurrent deletion through the required transition seam.
|
|
197
|
-
const claimed = await backend.transitionWorkflowStatus(resolved.workflowId, [handle.status], "running");
|
|
198
|
-
if (!claimed) {
|
|
199
|
-
return {
|
|
200
|
-
ok: false,
|
|
201
|
-
reason: "stale",
|
|
202
|
-
message: `Workflow ${resolved.workflowId} changed while resume was pending; refresh the workflow list and try again.`,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
const resumeRunOpts: RunOpts = {
|
|
207
|
-
...deps.baseRunOpts,
|
|
208
|
-
...(handle.invocationCwd !== undefined ? { cwd: handle.invocationCwd } : {}),
|
|
209
|
-
...(handle.origin !== undefined ? { origin: handle.origin } : {}),
|
|
210
|
-
runId: resolved.workflowId,
|
|
211
|
-
durableBackend: backend,
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
let launch: ReturnType<typeof launchDetachedUntilStartup>;
|
|
215
|
-
try {
|
|
216
|
-
launch = launchDetachedUntilStartup(def, inputs, {
|
|
217
|
-
...resumeRunOpts,
|
|
218
|
-
...(deps.jobs !== undefined ? { jobs: deps.jobs } : {}),
|
|
219
|
-
});
|
|
220
|
-
} catch (error) {
|
|
221
|
-
backend.setWorkflowStatus(resolved.workflowId, handle.status, handle.pendingPrompts, handle.resumable);
|
|
222
|
-
await backend.flush();
|
|
223
|
-
return {
|
|
224
|
-
ok: false,
|
|
225
|
-
reason: "startup_failed",
|
|
226
|
-
message: `Failed to resume durable workflow ${resolved.workflowId}: ${error instanceof Error ? error.message : String(error)}`,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
const { accepted } = launch;
|
|
230
|
-
const admission = await launch.wait;
|
|
231
|
-
if (!admission.started) {
|
|
232
|
-
const snapshot = deps.baseRunOpts.store?.runs().find((run) => run.id === accepted.runId);
|
|
233
|
-
const error = workflowStartupFailureMessage(
|
|
234
|
-
admission,
|
|
235
|
-
snapshot?.error,
|
|
236
|
-
`Workflow ${resolved.workflowId} ended before startup admission`,
|
|
237
|
-
);
|
|
238
|
-
deps.baseRunOpts.store?.removeRun(accepted.runId);
|
|
239
|
-
backend.setWorkflowStatus(resolved.workflowId, handle.status, handle.pendingPrompts, handle.resumable);
|
|
240
|
-
await backend.flush();
|
|
241
|
-
return {
|
|
242
|
-
ok: false,
|
|
243
|
-
reason: "startup_failed",
|
|
244
|
-
message: `Failed to resume durable workflow ${resolved.workflowId}: ${error}`,
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return {
|
|
249
|
-
ok: true,
|
|
250
|
-
runId: accepted.runId,
|
|
251
|
-
workflowId: resolved.workflowId,
|
|
252
|
-
name: handle.name,
|
|
253
|
-
message: `Resuming durable workflow "${handle.name}" (${resolved.workflowId}) — completed checkpoints will be replayed.`,
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function isDurableResumeShadow(run: RunSnapshot): boolean {
|
|
258
|
-
return run.endedAt !== undefined || run.exitReason === "quit" || run.status === "paused";
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
function removeDurableResumeShadowRuns(store: RunOpts["store"], workflowId: string): void {
|
|
262
|
-
if (store === undefined) return;
|
|
263
|
-
for (;;) {
|
|
264
|
-
const existing = store.runs().find((run) => run.id === workflowId);
|
|
265
|
-
if (existing === undefined || !isDurableResumeShadow(existing)) return;
|
|
266
|
-
if (!store.removeRun(workflowId)) return;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
function foreignRunningResult(name: string, workflowId: string): ResumeDurableResult {
|
|
270
|
-
return {
|
|
271
|
-
ok: false,
|
|
272
|
-
reason: "not_resumable",
|
|
273
|
-
message:
|
|
274
|
-
`Workflow "${name}" (${workflowId}) is actively running in another Atomic session. ` +
|
|
275
|
-
"Control it from that session; it becomes resumable here only after that session pauses, quits, or crashes.",
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
function alreadyRunningResult(name: string, workflowId: string, store: RunOpts["store"]): ResumeDurableResult {
|
|
280
|
-
const here = store?.runs().some((r) => r.id === workflowId && r.endedAt === undefined) === true;
|
|
281
|
-
return {
|
|
282
|
-
ok: false,
|
|
283
|
-
reason: "not_resumable",
|
|
284
|
-
message: `Workflow "${name}" (${workflowId}) is already running${
|
|
285
|
-
here ? " in this session" : " in another session"
|
|
286
|
-
}. See agents working and chat with or steer each stage using \`/workflow connect ${workflowId}\`; use \`/workflow quit ${workflowId}\` to pause the run for later resume.`,
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* True when the live run store has an actively-executing (not ended, not quit)
|
|
292
|
-
* run for `workflowId`. This is the only reliable signal that a durable
|
|
293
|
-
* `running` handle is genuinely live in THIS process — distinguishing a real
|
|
294
|
-
* double-resume from cross-session crash recovery.
|
|
295
|
-
*/
|
|
296
|
-
function hasActiveLiveRun(store: RunOpts["store"] | undefined, workflowId: string): boolean {
|
|
297
|
-
if (store === undefined) return false;
|
|
298
|
-
return store.runs().some((r) => r.id === workflowId && r.endedAt === undefined && r.exitReason !== "quit");
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/** Remove local snapshots that do not exist as valid current DBOS workflows. */
|
|
302
|
-
export function purgeSuppressedWorkflowRuns(
|
|
303
|
-
backend: DurableWorkflowBackend,
|
|
304
|
-
store: RunOpts["store"],
|
|
305
|
-
): readonly string[] {
|
|
306
|
-
if (store === undefined) return [];
|
|
307
|
-
const removed: string[] = [];
|
|
308
|
-
for (const run of store.runs()) {
|
|
309
|
-
if (backend.isWorkflowLoadable(run.id)) continue;
|
|
310
|
-
if (store.removeRun(run.id)) removed.push(run.id);
|
|
311
|
-
}
|
|
312
|
-
return removed;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/** Hydrate a bounded set of known DBOS workflow ids. */
|
|
316
|
-
export async function prepareTargetedDurableResumable(
|
|
317
|
-
backend: DurableWorkflowBackend,
|
|
318
|
-
workflowIds: readonly string[],
|
|
319
|
-
): Promise<readonly ResumableWorkflowEntry[]> {
|
|
320
|
-
const entries: ResumableWorkflowEntry[] = [];
|
|
321
|
-
const seen = new Set<string>();
|
|
322
|
-
for (const workflowId of workflowIds) {
|
|
323
|
-
if (seen.has(workflowId)) continue;
|
|
324
|
-
seen.add(workflowId);
|
|
325
|
-
await backend.hydrateWorkflow(workflowId);
|
|
326
|
-
const handle = backend.getLoadableWorkflow(workflowId);
|
|
327
|
-
if (handle === undefined || !isDurableWorkflowResumable(handle)) continue;
|
|
328
|
-
entries.push(resumableEntryFromHandle(handle));
|
|
329
|
-
}
|
|
330
|
-
return entries;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
export async function prepareRuntimeDurableResumable(
|
|
334
|
-
getBackend: () => DurableWorkflowBackend,
|
|
335
|
-
workflowId?: string,
|
|
336
|
-
): Promise<readonly ResumableWorkflowEntry[]> {
|
|
337
|
-
const backend = getBackend();
|
|
338
|
-
await backend.hydrateResumableWorkflows();
|
|
339
|
-
if (workflowId !== undefined) {
|
|
340
|
-
const resolved = resolveDurableEntry(workflowId, backend.listResumableWorkflows());
|
|
341
|
-
if (resolved !== undefined && !("kind" in resolved)) await backend.hydrateWorkflow(resolved.workflowId);
|
|
342
|
-
}
|
|
343
|
-
return backend.listResumableWorkflows();
|
|
344
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { DurableWorkflowBackend } from "./backend.js";
|
|
2
|
-
|
|
3
|
-
export type DurableWorkflowDeleteOutcome =
|
|
4
|
-
| { readonly ok: true; readonly message: string }
|
|
5
|
-
| { readonly ok: false; readonly message: string };
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* `/resume` parity keeps every eligible run regardless of age/count and only
|
|
9
|
-
* removes history after an explicit confirmed action. This helper is the
|
|
10
|
-
* workflow-aware deletion gate used after selector confirmation.
|
|
11
|
-
*/
|
|
12
|
-
export async function deleteDurableWorkflowIfSafe(
|
|
13
|
-
backend: DurableWorkflowBackend,
|
|
14
|
-
workflowId: string,
|
|
15
|
-
isInFlight: (workflowId: string) => boolean,
|
|
16
|
-
): Promise<DurableWorkflowDeleteOutcome> {
|
|
17
|
-
if (isInFlight(workflowId)) {
|
|
18
|
-
return { ok: false, message: "Cannot delete an in-flight workflow run." };
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
const handle = backend.getLoadableWorkflow(workflowId);
|
|
22
|
-
if (handle === undefined) {
|
|
23
|
-
return { ok: false, message: "Workflow durable state is stale or no longer available." };
|
|
24
|
-
}
|
|
25
|
-
if (handle.status === "running") {
|
|
26
|
-
return { ok: false, message: "Cannot delete a workflow marked running; it may be active in another process." };
|
|
27
|
-
}
|
|
28
|
-
const result = await backend.deleteWorkflowIfInactive(workflowId);
|
|
29
|
-
if (!result.ok) {
|
|
30
|
-
return {
|
|
31
|
-
ok: false,
|
|
32
|
-
message:
|
|
33
|
-
result.reason === "running"
|
|
34
|
-
? "Cannot delete a workflow that became active while deletion was pending."
|
|
35
|
-
: "Workflow durable state is stale or no longer available.",
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
return { ok: true, message: "Workflow durable history deleted; retained session transcripts were not removed." };
|
|
39
|
-
} catch (error) {
|
|
40
|
-
const detail = error instanceof Error ? error.message : String(error);
|
|
41
|
-
return { ok: false, message: `Failed to delete workflow durable history: ${detail}` };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Durable run-level elapsed-time checkpoints.
|
|
3
|
-
*
|
|
4
|
-
* Persists the total accumulated elapsed time of a top-level workflow run so a
|
|
5
|
-
* durable `/workflow resume` can seed the new `RunSnapshot` with the prior
|
|
6
|
-
* elapsed time — the main-chat dashboard total then reports prior + current
|
|
7
|
-
* elapsed instead of restarting at zero.
|
|
8
|
-
*
|
|
9
|
-
* Storage shape: a reserved tool-kind checkpoint (name/argsHash
|
|
10
|
-
* `workflow-run-timing`). Tool checkpoints round-trip through the DBOS
|
|
11
|
-
* envelope untouched and are ignored by stage-graph reconstruction, so no
|
|
12
|
-
* phantom stages appear in durable inspection. Repeated updates use distinct
|
|
13
|
-
* checkpoint ids; the latest record (by `completedAt`) wins on hydration
|
|
14
|
-
* because the in-memory mirror replays checkpoints in completion order.
|
|
15
|
-
*
|
|
16
|
-
* cross-ref: packages/workflows/src/shared/timing.ts elapsedRunMs
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import { restoreBudgetState } from "../shared/persistence-restore-helpers.js";
|
|
20
|
-
import type { RunBudgetAccountingState, RunSnapshot } from "../shared/store-types.js";
|
|
21
|
-
import { elapsedRunMs } from "../shared/timing.js";
|
|
22
|
-
import type { DurableWorkflowBackend } from "./backend.js";
|
|
23
|
-
import { durableHash } from "./durable-hash.js";
|
|
24
|
-
import type { DurableToolCheckpoint } from "./types.js";
|
|
25
|
-
|
|
26
|
-
/** Reserved checkpoint names AND args-hashes for run-level meter records. */
|
|
27
|
-
export const RUN_TIMING_CHECKPOINT_NAME = "workflow-run-timing";
|
|
28
|
-
export const RUN_USAGE_CHECKPOINT_NAME = "workflow-run-usage";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Debounce granularity for run-timing updates, matching the stage-session
|
|
32
|
-
* duration bucket so piggybacked writes never outpace stage checkpoints.
|
|
33
|
-
*/
|
|
34
|
-
export const RUN_TIMING_DURATION_BUCKET_MS = 30_000;
|
|
35
|
-
|
|
36
|
-
function timingBucket(elapsedMs: number): number {
|
|
37
|
-
return Math.floor(elapsedMs / RUN_TIMING_DURATION_BUCKET_MS);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** Prior accumulated run elapsed recorded durably, or undefined when absent. */
|
|
41
|
-
export function priorRunElapsedMs(backend: DurableWorkflowBackend, workflowId: string): number | undefined {
|
|
42
|
-
const output = backend.getToolOutput(workflowId, RUN_TIMING_CHECKPOINT_NAME);
|
|
43
|
-
if (typeof output !== "object" || output === null || Array.isArray(output)) return undefined;
|
|
44
|
-
const elapsedMs = (output as Record<string, unknown>).elapsedMs;
|
|
45
|
-
if (typeof elapsedMs !== "number" || !Number.isFinite(elapsedMs) || elapsedMs <= 0) return undefined;
|
|
46
|
-
return elapsedMs;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/** Prior token/cost accounting recorded durably, or undefined when absent/malformed. */
|
|
50
|
-
export function priorRunAccounting(
|
|
51
|
-
backend: DurableWorkflowBackend,
|
|
52
|
-
workflowId: string,
|
|
53
|
-
): RunBudgetAccountingState | undefined {
|
|
54
|
-
const output = backend.getToolOutput(workflowId, RUN_USAGE_CHECKPOINT_NAME);
|
|
55
|
-
if (typeof output !== "object" || output === null || Array.isArray(output)) return undefined;
|
|
56
|
-
return restoreBudgetState({ accounting: (output as Record<string, unknown>).accounting })?.accounting;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Record the run's current total elapsed time (prior + this session) durably.
|
|
60
|
-
*
|
|
61
|
-
* Skipped when the workflow has no durable progress yet (a timing record with
|
|
62
|
-
* nothing to resume would only manufacture resumability), when the elapsed
|
|
63
|
-
* value did not grow past the last record, or — with `debounce` — while the
|
|
64
|
-
* value stays inside the last 30 s bucket. Usage shares only the progress guard.
|
|
65
|
-
*/
|
|
66
|
-
export function recordRunTimingCheckpoint(
|
|
67
|
-
backend: DurableWorkflowBackend,
|
|
68
|
-
run: RunSnapshot,
|
|
69
|
-
options?: { readonly debounce?: boolean; readonly now?: number },
|
|
70
|
-
): boolean {
|
|
71
|
-
const checkpoints = [runTimingCheckpoint(backend, run, options), runUsageCheckpoint(backend, run, options?.now)];
|
|
72
|
-
if (checkpoints.every((checkpoint) => checkpoint === undefined)) return false;
|
|
73
|
-
for (const checkpoint of checkpoints) if (checkpoint !== undefined) backend.recordCheckpoint(checkpoint);
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** Await the timing and usage writes so an active turn observes persistent storage faults at once. */
|
|
78
|
-
export async function recordRunTimingCheckpointAsync(
|
|
79
|
-
backend: DurableWorkflowBackend,
|
|
80
|
-
run: RunSnapshot,
|
|
81
|
-
options?: { readonly debounce?: boolean; readonly now?: number },
|
|
82
|
-
): Promise<boolean> {
|
|
83
|
-
const checkpoints = [runTimingCheckpoint(backend, run, options), runUsageCheckpoint(backend, run, options?.now)];
|
|
84
|
-
if (checkpoints.every((checkpoint) => checkpoint === undefined)) return false;
|
|
85
|
-
for (const checkpoint of checkpoints) if (checkpoint !== undefined) await backend.recordCheckpointAsync(checkpoint);
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function runTimingCheckpoint(
|
|
90
|
-
backend: DurableWorkflowBackend,
|
|
91
|
-
run: RunSnapshot,
|
|
92
|
-
options?: { readonly debounce?: boolean; readonly now?: number },
|
|
93
|
-
): DurableToolCheckpoint | undefined {
|
|
94
|
-
const now = options?.now ?? Date.now();
|
|
95
|
-
const elapsedMs = elapsedRunMs(run, now);
|
|
96
|
-
if (elapsedMs <= 0) return undefined;
|
|
97
|
-
if (backend.listCheckpoints(run.id).length === 0) return undefined;
|
|
98
|
-
const recorded = priorRunElapsedMs(backend, run.id);
|
|
99
|
-
if (recorded !== undefined) {
|
|
100
|
-
if (elapsedMs <= recorded) return undefined;
|
|
101
|
-
if (options?.debounce === true && timingBucket(elapsedMs) === timingBucket(recorded)) return undefined;
|
|
102
|
-
}
|
|
103
|
-
return {
|
|
104
|
-
kind: "tool",
|
|
105
|
-
workflowId: run.id,
|
|
106
|
-
checkpointId: `run-timing:${elapsedMs}`,
|
|
107
|
-
name: RUN_TIMING_CHECKPOINT_NAME,
|
|
108
|
-
argsHash: RUN_TIMING_CHECKPOINT_NAME,
|
|
109
|
-
output: { elapsedMs },
|
|
110
|
-
completedAt: now,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
function runUsageCheckpoint(
|
|
114
|
-
backend: DurableWorkflowBackend,
|
|
115
|
-
run: RunSnapshot,
|
|
116
|
-
now = Date.now(),
|
|
117
|
-
): DurableToolCheckpoint | undefined {
|
|
118
|
-
const accounting = run.budgetState?.accounting;
|
|
119
|
-
if (accounting === undefined || backend.listCheckpoints(run.id).length === 0) return undefined;
|
|
120
|
-
const checkpointId = `run-usage:${durableHash({ accounting })}`;
|
|
121
|
-
if (backend.getToolCheckpoint(run.id, RUN_USAGE_CHECKPOINT_NAME)?.checkpointId === checkpointId) return undefined;
|
|
122
|
-
return {
|
|
123
|
-
kind: "tool",
|
|
124
|
-
workflowId: run.id,
|
|
125
|
-
checkpointId,
|
|
126
|
-
name: RUN_USAGE_CHECKPOINT_NAME,
|
|
127
|
-
argsHash: RUN_USAGE_CHECKPOINT_NAME,
|
|
128
|
-
output: { accounting },
|
|
129
|
-
completedAt: now,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Elapsed time a freshly-created run inherits from its predecessor:
|
|
135
|
-
* continuation resumes measure the live source snapshot; durable re-dispatch
|
|
136
|
-
* resumes (same run id, no continuation) read the persisted timing record.
|
|
137
|
-
*/
|
|
138
|
-
export function inheritedRunElapsedMs(input: {
|
|
139
|
-
readonly backend: DurableWorkflowBackend;
|
|
140
|
-
readonly runId: string;
|
|
141
|
-
readonly continuationSource?: RunSnapshot;
|
|
142
|
-
readonly now?: number;
|
|
143
|
-
}): number | undefined {
|
|
144
|
-
const now = input.now ?? Date.now();
|
|
145
|
-
const source = input.continuationSource;
|
|
146
|
-
const inherited =
|
|
147
|
-
source !== undefined
|
|
148
|
-
? elapsedRunMs(source, source.endedAt ?? now)
|
|
149
|
-
: priorRunElapsedMs(input.backend, input.runId);
|
|
150
|
-
return inherited !== undefined && inherited > 0 ? inherited : undefined;
|
|
151
|
-
}
|