@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,417 +0,0 @@
|
|
|
1
|
-
import type { DurableWorkflowBackend } from "../../durable/backend.js";
|
|
2
|
-
import { getDurableBackend } from "../../durable/factory.js";
|
|
3
|
-
import { recordRunTimingCheckpoint } from "../../durable/run-timing.js";
|
|
4
|
-
import {
|
|
5
|
-
getLoadableDurableWorkflow,
|
|
6
|
-
transitionDurableWorkflowStatus,
|
|
7
|
-
} from "../../durable/workflow-status-transition.js";
|
|
8
|
-
import type { ToolAdmissionBoundary } from "../../engine/run-tool-admission-boundary.js";
|
|
9
|
-
import {
|
|
10
|
-
toolControlRegistry as defaultToolControlRegistry,
|
|
11
|
-
sameToolNodeIdentity,
|
|
12
|
-
settleAbortedToolNodes,
|
|
13
|
-
TOOL_QUIT_SETTLEMENT_TIMEOUT_MS,
|
|
14
|
-
type ToolControlHandle,
|
|
15
|
-
type ToolControlRegistry,
|
|
16
|
-
} from "../../engine/run-tool-control-registry.js";
|
|
17
|
-
import { WorkflowGracefulQuitError } from "../../engine/workflow-tool-abort.js";
|
|
18
|
-
import { expandWorkflowGraph } from "../../shared/expanded-workflow-graph.js";
|
|
19
|
-
import { topLevelWorkflowRuns } from "../../shared/run-visibility.js";
|
|
20
|
-
import { store as defaultStore } from "../../shared/store.js";
|
|
21
|
-
import { readGraphStoreSnapshot } from "../../shared/store-observation.js";
|
|
22
|
-
import type { Store } from "../../shared/store-public-types.js";
|
|
23
|
-
import type { RunSnapshot, StageSnapshot, WorkflowActor } from "../../shared/store-types.js";
|
|
24
|
-
import type { WorkflowCancelledToolNode, WorkflowToolNodeIdentity } from "../../shared/types.js";
|
|
25
|
-
import {
|
|
26
|
-
stageControlRegistry as defaultStageControlRegistry,
|
|
27
|
-
type StageControlHandle,
|
|
28
|
-
type StageControlRegistry,
|
|
29
|
-
} from "../foreground/stage-control-registry.js";
|
|
30
|
-
import { jobTracker as defaultJobTracker, type JobTracker } from "./job-tracker.js";
|
|
31
|
-
import { expandedControlRunIds } from "./workflow-lifecycle-aggregate.js";
|
|
32
|
-
|
|
33
|
-
export type QuitRunResult =
|
|
34
|
-
| {
|
|
35
|
-
readonly ok: true;
|
|
36
|
-
readonly runId: string;
|
|
37
|
-
readonly paused: readonly StageSnapshot[];
|
|
38
|
-
/** Tool nodes aborted by this quit, settled or abandoned, with owning run. */
|
|
39
|
-
readonly cancelledTools: readonly WorkflowCancelledToolNode[];
|
|
40
|
-
/** Aborted nodes whose callback ignored its signal within the bounded wait. */
|
|
41
|
-
readonly abandonedTools: readonly WorkflowToolNodeIdentity[];
|
|
42
|
-
}
|
|
43
|
-
| {
|
|
44
|
-
readonly ok: false;
|
|
45
|
-
readonly runId: string;
|
|
46
|
-
readonly reason: "not_found" | "already_ended" | "no_active_stages" | "stage_not_found";
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
type QuitAllRunResult =
|
|
50
|
-
| QuitRunResult
|
|
51
|
-
| {
|
|
52
|
-
readonly ok: false;
|
|
53
|
-
readonly runId: string;
|
|
54
|
-
readonly reason: "pause_failed";
|
|
55
|
-
readonly message: string;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Gracefully quit workflow work without destructive cancellation.
|
|
60
|
-
*
|
|
61
|
-
* This is the graceful public quit primitive. Order matters, because quit is
|
|
62
|
-
* documented as an exact durability boundary:
|
|
63
|
-
*
|
|
64
|
-
* 1. pause every controllable stage and await its acknowledgement;
|
|
65
|
-
* 2. close the root-shared `ctx.tool` admission boundary, so no root or nested
|
|
66
|
-
* run can admit another callback, and await open registration sections;
|
|
67
|
-
* 3. rescan every root/nested tool handle — after the close the set can only
|
|
68
|
-
* shrink, so one scan is enough and no rescan loop can spin;
|
|
69
|
-
* 4. abort that set, wait a bounded interval, and publish settled/abandoned
|
|
70
|
-
* nodes as cancelled;
|
|
71
|
-
* 5. only then record the durable paused transition and the resumable run.
|
|
72
|
-
*
|
|
73
|
-
* Step 4 is the point of no return: an aborted callback cannot be un-aborted,
|
|
74
|
-
* and the executor that observed the abort suspends without writing any
|
|
75
|
-
* terminal record. So once it has run, step 5 publishes the local paused record
|
|
76
|
-
* whatever the durable transition does — a durable failure that skipped it left
|
|
77
|
-
* a run reported as running with nothing running it, and no live handle for a
|
|
78
|
-
* retry to rediscover. Only `resumable` follows the durable outcome.
|
|
79
|
-
*
|
|
80
|
-
* A callback that ignores its signal is abandoned rather than pinning quit; its
|
|
81
|
-
* `{runId, nodeId}` identity is reported in `abandonedTools`.
|
|
82
|
-
*
|
|
83
|
-
* It deliberately does NOT abort through the cancellation registry or append a
|
|
84
|
-
* terminal `workflow.run.end` entry. Destructive cancellation remains an
|
|
85
|
-
* internal lifecycle mechanism.
|
|
86
|
-
*
|
|
87
|
-
* A quit publishes its stage pauses in step 1, long before step 5 can record the
|
|
88
|
-
* quit itself, so the run passes through an ordinary paused state on the way.
|
|
89
|
-
* Only step 5 carries the caller's `actor`, so an observer that reports deliberate
|
|
90
|
-
* control actions sees one quit rather than a pause followed by a quit — and
|
|
91
|
-
* still sees nothing at all when a quit never publishes.
|
|
92
|
-
*/
|
|
93
|
-
export async function quitRun(
|
|
94
|
-
runId: string,
|
|
95
|
-
opts?: {
|
|
96
|
-
store?: Store;
|
|
97
|
-
stageControlRegistry?: StageControlRegistry;
|
|
98
|
-
toolControlRegistry?: ToolControlRegistry;
|
|
99
|
-
jobs?: JobTracker;
|
|
100
|
-
/** Who requested this quit. Omitted for internal callers. */
|
|
101
|
-
actor?: WorkflowActor;
|
|
102
|
-
},
|
|
103
|
-
): Promise<QuitRunResult> {
|
|
104
|
-
const activeStore = opts?.store ?? defaultStore;
|
|
105
|
-
const registry = opts?.stageControlRegistry ?? defaultStageControlRegistry;
|
|
106
|
-
const toolControls = opts?.toolControlRegistry ?? defaultToolControlRegistry;
|
|
107
|
-
const jobs = opts?.jobs ?? defaultJobTracker;
|
|
108
|
-
const run = activeStore.runs().find((candidate) => candidate.id === runId);
|
|
109
|
-
if (!run) return { ok: false, runId, reason: "not_found" };
|
|
110
|
-
if (run.endedAt !== undefined) return { ok: false, runId, reason: "already_ended" };
|
|
111
|
-
|
|
112
|
-
const graph = expandWorkflowGraph(readGraphStoreSnapshot(activeStore), runId);
|
|
113
|
-
const handles = controllableHandles(activeStore, registry, runId);
|
|
114
|
-
const admissionBoundaries = controllableAdmissionBoundaries(activeStore, toolControls, runId);
|
|
115
|
-
const promptStages = graph.stages.filter(
|
|
116
|
-
(stage) =>
|
|
117
|
-
stage.pendingPrompt !== undefined || stage.inputRequest !== undefined || stage.status === "awaiting_input",
|
|
118
|
-
);
|
|
119
|
-
const hasPausedState = run.status === "paused" || graph.stages.some((stage) => stage.status === "paused");
|
|
120
|
-
const hasLiveToolWork =
|
|
121
|
-
controllableToolHandles(activeStore, toolControls, runId).length > 0 ||
|
|
122
|
-
admissionBoundaries.some((boundary) => boundary.hasPendingAdmissions);
|
|
123
|
-
// Nothing controllable: leave admission open so an ordinary between-stages run
|
|
124
|
-
// keeps working exactly as before.
|
|
125
|
-
if (handles.length === 0 && !hasLiveToolWork && promptStages.length === 0 && !hasPausedState) {
|
|
126
|
-
return { ok: false, runId, reason: "no_active_stages" };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const paused: StageSnapshot[] = [];
|
|
130
|
-
const pausedRunIds = new Set<string>();
|
|
131
|
-
const pausable = handles.filter(({ handle }) => handle.status !== "paused");
|
|
132
|
-
const settled = await Promise.allSettled(pausable.map(({ handle }) => handle.pause()));
|
|
133
|
-
const pauseFailures: string[] = [];
|
|
134
|
-
settled.forEach((result, index) => {
|
|
135
|
-
const target = pausable[index]!;
|
|
136
|
-
if (result.status === "rejected") {
|
|
137
|
-
const message = result.reason instanceof Error ? result.reason.message : String(result.reason);
|
|
138
|
-
pauseFailures.push(`${target.controlRunId}/${target.handle.stageId}: ${message}`);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const controlRun = activeStore.runs().find((candidate) => candidate.id === target.controlRunId);
|
|
142
|
-
if (controlRun?.endedAt !== undefined) return;
|
|
143
|
-
activeStore.recordStagePaused(target.controlRunId, target.handle.stageId);
|
|
144
|
-
const stage = activeStore
|
|
145
|
-
.runs()
|
|
146
|
-
.find((candidate) => candidate.id === target.controlRunId)
|
|
147
|
-
?.stages.find((candidate) => candidate.id === target.handle.stageId);
|
|
148
|
-
if (stage?.status === "paused") {
|
|
149
|
-
pausedRunIds.add(target.controlRunId);
|
|
150
|
-
paused.push(structuredClone(stage));
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
if (pauseFailures.length > 0) {
|
|
154
|
-
throw new Error(`Failed to pause workflow stages: ${pauseFailures.join("; ")}`);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
for (const promptStage of promptStages) {
|
|
158
|
-
const target = promptStage.workflowGraphTarget;
|
|
159
|
-
activeStore.recordStagePaused(target.runId, target.stageId);
|
|
160
|
-
pausedRunIds.add(target.runId);
|
|
161
|
-
}
|
|
162
|
-
// Durability boundary. Closing admission first is what makes the following
|
|
163
|
-
// scan final: a callback admitted while the stage pauses were still being
|
|
164
|
-
// acknowledged is included, and none can start afterwards — not even while
|
|
165
|
-
// `markDurableQuit()` awaits the backend.
|
|
166
|
-
await closeToolAdmission(admissionBoundaries, runId);
|
|
167
|
-
const toolHandles = controllableToolHandles(activeStore, toolControls, runId);
|
|
168
|
-
const abandonedTools = await abortInFlightTools(activeStore, toolHandles);
|
|
169
|
-
const cancelledTools = collectCancelledToolNodes(activeStore, toolHandles);
|
|
170
|
-
// A nested run whose tool was aborted has no paused stage of its own; mark it
|
|
171
|
-
// paused too so the boundary's live state matches the root's.
|
|
172
|
-
for (const handle of toolHandles) if (handle.runId !== runId) pausedRunIds.add(handle.runId);
|
|
173
|
-
const current = activeStore.runs().find((candidate) => candidate.id === runId);
|
|
174
|
-
if (current === undefined) return { ok: false, runId, reason: "not_found" };
|
|
175
|
-
if (current.endedAt !== undefined) return { ok: false, runId, reason: "already_ended" };
|
|
176
|
-
// A quit that aborted a call is committed: each of those callbacks observed a
|
|
177
|
-
// whole-run quit, so its executor suspends without writing any terminal
|
|
178
|
-
// record, and only the publication below can report that the run stopped.
|
|
179
|
-
const suspendedByAbort = toolHandles.length > 0;
|
|
180
|
-
const publish = (resumable: boolean): void => {
|
|
181
|
-
publishLocalQuit(activeStore, runId, pausedRunIds, resumable, opts?.actor);
|
|
182
|
-
// An abandoned callback keeps its executor alive, but that executor is no
|
|
183
|
-
// longer authoritative for this run id: detach it so `/workflow resume`
|
|
184
|
-
// relaunches a fresh executor instead of adopting the stale job and
|
|
185
|
-
// reporting a running run nothing is actually running. Cooperative quits
|
|
186
|
-
// settle on their own and unregister themselves.
|
|
187
|
-
if (abandonedTools.length > 0) jobs.detach(runId, jobs.get(runId));
|
|
188
|
-
};
|
|
189
|
-
let durableTransition: DurableQuitOutcome;
|
|
190
|
-
try {
|
|
191
|
-
durableTransition = await markDurableQuit(runId, current);
|
|
192
|
-
} catch (error) {
|
|
193
|
-
if (!suspendedByAbort) throw error;
|
|
194
|
-
publish(false);
|
|
195
|
-
throw new Error(unrecordedDurableQuitMessage(error), { cause: error });
|
|
196
|
-
}
|
|
197
|
-
if (durableTransition === "refused") {
|
|
198
|
-
if (suspendedByAbort) publish(false);
|
|
199
|
-
return { ok: false, runId, reason: "already_ended" };
|
|
200
|
-
}
|
|
201
|
-
publish(true);
|
|
202
|
-
return { ok: true, runId, paused, cancelledTools, abandonedTools };
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Publish the local paused record for this workflow boundary.
|
|
207
|
-
*
|
|
208
|
-
* `resumable` follows the durable outcome rather than the local one: a pause the
|
|
209
|
-
* durable backend never accepted is still real — the run stopped — but no future
|
|
210
|
-
* process could resume from it, so it is not advertised as resumable. Recording
|
|
211
|
-
* it keeps the run controllable, so a later `/workflow quit` re-attempts the
|
|
212
|
-
* transition and upgrades the record.
|
|
213
|
-
*
|
|
214
|
-
* The boundary run is deliberately excluded from the descendant loop: a bare
|
|
215
|
-
* `recordRunPaused(runId)` first would publish a plain paused state, and a
|
|
216
|
-
* lifecycle observer would report this quit as a pause followed by a quit. The
|
|
217
|
-
* single metadata-carrying call below records the same end state in one step.
|
|
218
|
-
*/
|
|
219
|
-
function publishLocalQuit(
|
|
220
|
-
activeStore: Store,
|
|
221
|
-
runId: string,
|
|
222
|
-
pausedRunIds: ReadonlySet<string>,
|
|
223
|
-
resumable: boolean,
|
|
224
|
-
actor?: WorkflowActor,
|
|
225
|
-
): void {
|
|
226
|
-
for (const pausedRunId of pausedRunIds) {
|
|
227
|
-
if (pausedRunId === runId) continue;
|
|
228
|
-
activeStore.recordRunPaused(pausedRunId);
|
|
229
|
-
}
|
|
230
|
-
activeStore.recordRunPaused(runId, undefined, {
|
|
231
|
-
exitReason: "quit",
|
|
232
|
-
resumable,
|
|
233
|
-
...(actor === undefined ? {} : { actor }),
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* Report what the failed durable write left behind, not merely that it failed.
|
|
239
|
-
*
|
|
240
|
-
* Every caller already names the run ("Failed to quit run …: "), so this reads
|
|
241
|
-
* as the rest of that sentence.
|
|
242
|
-
*/
|
|
243
|
-
function unrecordedDurableQuitMessage(error: unknown): string {
|
|
244
|
-
const detail = error instanceof Error ? error.message : String(error);
|
|
245
|
-
return (
|
|
246
|
-
`the in-flight ctx.tool work was cancelled but the durable paused transition failed: ${detail}.` +
|
|
247
|
-
" The run is paused locally and is not resumable until a retried quit records it durably."
|
|
248
|
-
);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/** Distinct admission boundaries owned by this workflow boundary's runs. */
|
|
252
|
-
function controllableAdmissionBoundaries(
|
|
253
|
-
activeStore: Store,
|
|
254
|
-
toolControls: ToolControlRegistry,
|
|
255
|
-
runId: string,
|
|
256
|
-
): readonly ToolAdmissionBoundary[] {
|
|
257
|
-
const boundaries = new Set<ToolAdmissionBoundary>();
|
|
258
|
-
for (const controlRunId of expandedControlRunIds(activeStore, runId)) {
|
|
259
|
-
const boundary = toolControls.admissionBoundary(controlRunId);
|
|
260
|
-
if (boundary !== undefined) boundaries.add(boundary);
|
|
261
|
-
}
|
|
262
|
-
return [...boundaries];
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Refuse further `ctx.tool` admissions and wait for calls already inside their
|
|
267
|
-
* short registration section. A call refused after this point receives the
|
|
268
|
-
* graceful-quit signal, so it suspends the executor instead of failing the run.
|
|
269
|
-
*/
|
|
270
|
-
async function closeToolAdmission(boundaries: readonly ToolAdmissionBoundary[], runId: string): Promise<void> {
|
|
271
|
-
if (boundaries.length === 0) return;
|
|
272
|
-
const reason = new WorkflowGracefulQuitError(runId, `run ${runId}`);
|
|
273
|
-
await Promise.all(boundaries.map((boundary) => boundary.closeForQuit(reason)));
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/** In-flight tool nodes below this workflow boundary, including nested runs. */
|
|
277
|
-
function controllableToolHandles(
|
|
278
|
-
activeStore: Store,
|
|
279
|
-
toolControls: ToolControlRegistry,
|
|
280
|
-
runId: string,
|
|
281
|
-
): readonly ToolControlHandle[] {
|
|
282
|
-
return expandedControlRunIds(activeStore, runId).flatMap((controlRunId) => [...toolControls.active(controlRunId)]);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Abort every selected tool node, wait a bounded interval for settlement, and
|
|
287
|
-
* publish anything still unsettled as cancelled. Returns the abandoned
|
|
288
|
-
* identities, keyed by owning run so nested duplicates stay distinguishable.
|
|
289
|
-
*/
|
|
290
|
-
async function abortInFlightTools(
|
|
291
|
-
activeStore: Store,
|
|
292
|
-
toolHandles: readonly ToolControlHandle[],
|
|
293
|
-
): Promise<readonly WorkflowToolNodeIdentity[]> {
|
|
294
|
-
if (toolHandles.length === 0) return [];
|
|
295
|
-
for (const handle of toolHandles) handle.abort("quit");
|
|
296
|
-
const abandoned = await settleAbortedToolNodes(toolHandles, TOOL_QUIT_SETTLEMENT_TIMEOUT_MS);
|
|
297
|
-
const endedAt = Date.now();
|
|
298
|
-
for (const handle of toolHandles) {
|
|
299
|
-
if (!abandoned.some((identity) => sameToolNodeIdentity(identity, handle))) continue;
|
|
300
|
-
activeStore.recordToolNodeEnd(handle.runId, handle.nodeId, {
|
|
301
|
-
status: "cancelled",
|
|
302
|
-
endedAt,
|
|
303
|
-
error: `atomic-workflows: ctx.tool ${handle.name} abandoned after quit; the callback ignored its abort signal`,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
return abandoned;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
function collectCancelledToolNodes(
|
|
310
|
-
activeStore: Store,
|
|
311
|
-
toolHandles: readonly ToolControlHandle[],
|
|
312
|
-
): readonly WorkflowCancelledToolNode[] {
|
|
313
|
-
return toolHandles.flatMap((handle) => {
|
|
314
|
-
const node = activeStore
|
|
315
|
-
.runs()
|
|
316
|
-
.find((candidate) => candidate.id === handle.runId)
|
|
317
|
-
?.toolNodes?.find((candidate) => candidate.id === handle.nodeId);
|
|
318
|
-
if (node === undefined || node.status !== "cancelled") return [];
|
|
319
|
-
return [{ runId: handle.runId, nodeId: handle.nodeId, node: structuredClone(node) }];
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
function controllableHandles(
|
|
324
|
-
activeStore: Store,
|
|
325
|
-
registry: StageControlRegistry,
|
|
326
|
-
runId: string,
|
|
327
|
-
): Array<{ controlRunId: string; handle: StageControlHandle }> {
|
|
328
|
-
const graph = expandWorkflowGraph(readGraphStoreSnapshot(activeStore), runId);
|
|
329
|
-
const controlRunIds = new Set<string>([runId]);
|
|
330
|
-
for (const stage of graph.stages) controlRunIds.add(stage.workflowGraphTarget.runId);
|
|
331
|
-
return [...controlRunIds].flatMap((controlRunId) =>
|
|
332
|
-
registry
|
|
333
|
-
.run(controlRunId)
|
|
334
|
-
.stages()
|
|
335
|
-
.filter(
|
|
336
|
-
(handle) =>
|
|
337
|
-
handle.status === "running" ||
|
|
338
|
-
handle.status === "pending" ||
|
|
339
|
-
handle.status === "awaiting_input" ||
|
|
340
|
-
handle.status === "paused",
|
|
341
|
-
)
|
|
342
|
-
.map((handle) => ({ controlRunId, handle })),
|
|
343
|
-
);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
type DurableQuitOutcome = "transitioned" | "not_needed" | "refused";
|
|
347
|
-
|
|
348
|
-
async function markDurableQuit(runId: string, run: RunSnapshot): Promise<DurableQuitOutcome> {
|
|
349
|
-
const backend = discoverDurableQuitBackend(runId);
|
|
350
|
-
if (backend === undefined) return "not_needed";
|
|
351
|
-
// The workflow is durably tracked, so a failure to persist the paused
|
|
352
|
-
// transition or flush it must surface: swallowing it here would let quitRun
|
|
353
|
-
// advertise a resumable pause no future process could resume from. The caller
|
|
354
|
-
// still reconciles an already-suspended executor into a pause that is not
|
|
355
|
-
// advertised as resumable, so the failure costs the promise, not the record.
|
|
356
|
-
const transitioned = await transitionDurableWorkflowStatus(
|
|
357
|
-
backend,
|
|
358
|
-
runId,
|
|
359
|
-
["running", "paused"],
|
|
360
|
-
"paused",
|
|
361
|
-
undefined,
|
|
362
|
-
true,
|
|
363
|
-
);
|
|
364
|
-
if (!transitioned) return "refused";
|
|
365
|
-
// Persist the exact accumulated run elapsed at quit time so a later durable
|
|
366
|
-
// resume seeds the total workflow duration with prior-session time.
|
|
367
|
-
recordRunTimingCheckpoint(backend, run);
|
|
368
|
-
await backend.flush();
|
|
369
|
-
return "transitioned";
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Resolve the durable backend only when `runId` is durably tracked. Discovery
|
|
374
|
-
* stays best-effort for custom backends that throw on unsupported inspection;
|
|
375
|
-
* the persistence writes performed after a positive match are intentionally
|
|
376
|
-
* left to propagate so genuine durable failures are not masked.
|
|
377
|
-
*/
|
|
378
|
-
function discoverDurableQuitBackend(runId: string): DurableWorkflowBackend | undefined {
|
|
379
|
-
try {
|
|
380
|
-
const backend = getDurableBackend();
|
|
381
|
-
return getLoadableDurableWorkflow(backend, runId) === undefined ? undefined : backend;
|
|
382
|
-
} catch {
|
|
383
|
-
return undefined;
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
export async function quitAllRuns(opts?: {
|
|
388
|
-
store?: Store;
|
|
389
|
-
stageControlRegistry?: StageControlRegistry;
|
|
390
|
-
toolControlRegistry?: ToolControlRegistry;
|
|
391
|
-
jobs?: JobTracker;
|
|
392
|
-
/** Who requested these quits. Omitted for internal callers. */
|
|
393
|
-
actor?: WorkflowActor;
|
|
394
|
-
}): Promise<QuitAllRunResult[]> {
|
|
395
|
-
const activeStore = opts?.store ?? defaultStore;
|
|
396
|
-
const inFlight = topLevelWorkflowRuns(activeStore.runs()).filter((run) => run.endedAt === undefined);
|
|
397
|
-
const attempts = inFlight.map((run) =>
|
|
398
|
-
quitRun(run.id, {
|
|
399
|
-
store: activeStore,
|
|
400
|
-
stageControlRegistry: opts?.stageControlRegistry,
|
|
401
|
-
toolControlRegistry: opts?.toolControlRegistry,
|
|
402
|
-
jobs: opts?.jobs,
|
|
403
|
-
...(opts?.actor === undefined ? {} : { actor: opts.actor }),
|
|
404
|
-
}),
|
|
405
|
-
);
|
|
406
|
-
const settled = await Promise.allSettled(attempts);
|
|
407
|
-
return settled.map((result, index) => {
|
|
408
|
-
if (result.status === "fulfilled") return result.value;
|
|
409
|
-
const runId = inFlight[index]!.id;
|
|
410
|
-
return {
|
|
411
|
-
ok: false,
|
|
412
|
-
runId,
|
|
413
|
-
reason: "pause_failed",
|
|
414
|
-
message: result.reason instanceof Error ? result.reason.message : String(result.reason),
|
|
415
|
-
};
|
|
416
|
-
});
|
|
417
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import type { Store } from "../../shared/store-public-types.js";
|
|
2
|
-
import type { StageSnapshot } from "../../shared/store-types.js";
|
|
3
|
-
import type { StageControlHandle } from "../foreground/stage-control-registry.js";
|
|
4
|
-
|
|
5
|
-
export interface ResumeAcknowledgementTarget {
|
|
6
|
-
readonly controlRunId: string;
|
|
7
|
-
readonly handle: StageControlHandle;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface ResumeAcknowledgementResult {
|
|
11
|
-
readonly resumed: readonly StageSnapshot[];
|
|
12
|
-
readonly acknowledged: number;
|
|
13
|
-
/** Rejections whose targets are still visibly paused and therefore retryable. */
|
|
14
|
-
readonly failures: readonly string[];
|
|
15
|
-
/** Rejections reported after the target had already become visibly running. */
|
|
16
|
-
readonly lateFailures: readonly string[];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function targetStage(store: Store, target: ResumeAcknowledgementTarget): StageSnapshot | undefined {
|
|
20
|
-
return store
|
|
21
|
-
.runs()
|
|
22
|
-
.find((run) => run.id === target.controlRunId)
|
|
23
|
-
?.stages.find((stage) => stage.id === target.handle.stageId);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function targetIsActuallyPaused(store: Store, target: ResumeAcknowledgementTarget): boolean {
|
|
27
|
-
const run = store.runs().find((candidate) => candidate.id === target.controlRunId);
|
|
28
|
-
const stage = targetStage(store, target);
|
|
29
|
-
if (run?.endedAt !== undefined || stage?.endedAt !== undefined) return false;
|
|
30
|
-
return (
|
|
31
|
-
stage?.status === "paused" ||
|
|
32
|
-
stage?.status === "blocked" ||
|
|
33
|
-
(run?.status === "paused" && target.handle.status === "paused")
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** Attempt every actually-paused control, then reconcile outcomes from visible state in target order. */
|
|
38
|
-
export async function settleResumeAcknowledgements(
|
|
39
|
-
store: Store,
|
|
40
|
-
targets: readonly ResumeAcknowledgementTarget[],
|
|
41
|
-
message?: string,
|
|
42
|
-
): Promise<ResumeAcknowledgementResult> {
|
|
43
|
-
const attempted = targets.filter(
|
|
44
|
-
(target) => target.handle.status === "paused" && targetIsActuallyPaused(store, target),
|
|
45
|
-
);
|
|
46
|
-
const settled = await Promise.allSettled(attempted.map(({ handle }) => handle.resume(message)));
|
|
47
|
-
const resumed: StageSnapshot[] = [];
|
|
48
|
-
let acknowledged = 0;
|
|
49
|
-
const failures: string[] = [];
|
|
50
|
-
const lateFailures: string[] = [];
|
|
51
|
-
const resumedRunIds = new Set<string>();
|
|
52
|
-
settled.forEach((result, index) => {
|
|
53
|
-
const target = attempted[index]!;
|
|
54
|
-
const controlRun = store.runs().find((candidate) => candidate.id === target.controlRunId);
|
|
55
|
-
const controlVisiblyRunning =
|
|
56
|
-
target.handle.status === "running" ||
|
|
57
|
-
target.handle.status === "pending" ||
|
|
58
|
-
target.handle.status === "awaiting_input";
|
|
59
|
-
if (result.status === "fulfilled" || controlVisiblyRunning) acknowledged += 1;
|
|
60
|
-
if ((result.status === "fulfilled" || controlVisiblyRunning) && controlRun?.endedAt === undefined) {
|
|
61
|
-
const stage = targetStage(store, target);
|
|
62
|
-
if (stage?.status === "paused" || stage?.status === "blocked") {
|
|
63
|
-
store.recordStageResumed(target.controlRunId, target.handle.stageId);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const stage = targetStage(store, target);
|
|
67
|
-
const visiblyRunning = controlRun?.endedAt === undefined && stage?.status === "running";
|
|
68
|
-
if (visiblyRunning && stage !== undefined) {
|
|
69
|
-
resumedRunIds.add(target.controlRunId);
|
|
70
|
-
resumed.push(structuredClone(stage));
|
|
71
|
-
}
|
|
72
|
-
if (result.status !== "rejected") return;
|
|
73
|
-
const detail = result.reason instanceof Error ? result.reason.message : String(result.reason);
|
|
74
|
-
const qualified = `${target.controlRunId}/${target.handle.stageId}: ${detail}`;
|
|
75
|
-
if (visiblyRunning) lateFailures.push(qualified);
|
|
76
|
-
else if (controlRun?.endedAt === undefined && targetIsActuallyPaused(store, target)) failures.push(qualified);
|
|
77
|
-
});
|
|
78
|
-
for (const controlRunId of resumedRunIds)
|
|
79
|
-
store.recordRunResumed(controlRunId, undefined, { source: "acknowledgement" });
|
|
80
|
-
return { resumed, acknowledged, failures, lateFailures };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/** Let immediate prompt/root finalizers settle before public resume reconciliation. */
|
|
84
|
-
export async function waitForResumeReconciliation(acknowledged: number): Promise<void> {
|
|
85
|
-
if (acknowledged > 0) await new Promise<void>((resolve) => setTimeout(resolve, 0));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/** Existing optional message channel for a fulfilled zero-stage or terminal acknowledgement. */
|
|
89
|
-
export function resumeAcknowledgementMessage(
|
|
90
|
-
acknowledged: number,
|
|
91
|
-
resumed: number,
|
|
92
|
-
runId: string,
|
|
93
|
-
current: { readonly status: string; readonly endedAt?: number },
|
|
94
|
-
): string | undefined {
|
|
95
|
-
if (acknowledged === 0 || (current.endedAt === undefined && resumed > 0)) return undefined;
|
|
96
|
-
return `Resume acknowledged; workflow ${runId} ${
|
|
97
|
-
current.endedAt !== undefined ? `reached terminal status ${current.status}` : "can continue"
|
|
98
|
-
}.`;
|
|
99
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Read-only per-run inspection surface.
|
|
3
|
-
*
|
|
4
|
-
* Extracted from `status.ts` (which stays focused on lifecycle status,
|
|
5
|
-
* cancellation, and resume helpers) so both files respect the repository
|
|
6
|
-
* focused modules.
|
|
7
|
-
*
|
|
8
|
-
* cross-ref: spec §5.5
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { expandWorkflowGraph } from "../../shared/expanded-workflow-graph.js";
|
|
12
|
-
import {
|
|
13
|
-
actionableReturnedStatusText,
|
|
14
|
-
effectiveRunStatus,
|
|
15
|
-
structuredRecoverableWorkflowFailureText,
|
|
16
|
-
} from "../../shared/returned-run-status.js";
|
|
17
|
-
import type { Store } from "../../shared/store.js";
|
|
18
|
-
import { store as defaultStore } from "../../shared/store.js";
|
|
19
|
-
import type { RunSnapshot, RunStatus } from "../../shared/store-types.js";
|
|
20
|
-
import type { WorkflowInputValues, WorkflowOutputValues } from "../../shared/types.js";
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Per-run detail returned by {@link inspectRun}. A read-only view over the
|
|
24
|
-
* store snapshot suitable for the " RUN" detail surface — same data the
|
|
25
|
-
* resume snapshot carries, plus a normalised `mode` field derived from
|
|
26
|
-
* stage shape so renderers don't have to recompute it.
|
|
27
|
-
*/
|
|
28
|
-
export interface RunDetail {
|
|
29
|
-
readonly runId: string;
|
|
30
|
-
readonly name: string;
|
|
31
|
-
readonly status: RunStatus | "crashed";
|
|
32
|
-
readonly mode: "single" | "chain";
|
|
33
|
-
readonly startedAt: number;
|
|
34
|
-
readonly endedAt?: number;
|
|
35
|
-
readonly durationMs?: number;
|
|
36
|
-
readonly pausedDurationMs?: number;
|
|
37
|
-
readonly pausedAt?: number;
|
|
38
|
-
readonly resumedAt?: number;
|
|
39
|
-
/** Elapsed ms inherited from prior sessions of a resumed durable run. */
|
|
40
|
-
readonly accumulatedDurationMs?: number;
|
|
41
|
-
readonly inputs: Readonly<WorkflowInputValues>;
|
|
42
|
-
readonly stages: readonly RunSnapshot["stages"][number][];
|
|
43
|
-
/** Always populated by inspectRun; optional for legacy structural literals. */
|
|
44
|
-
readonly tools?: readonly NonNullable<RunSnapshot["toolNodes"]>[number][];
|
|
45
|
-
readonly result?: WorkflowOutputValues;
|
|
46
|
-
readonly error?: string;
|
|
47
|
-
readonly exited?: boolean;
|
|
48
|
-
readonly exitReason?: string;
|
|
49
|
-
readonly failureKind?: RunSnapshot["failureKind"];
|
|
50
|
-
readonly failureCode?: RunSnapshot["failureCode"];
|
|
51
|
-
readonly failureRecoverability?: RunSnapshot["failureRecoverability"];
|
|
52
|
-
readonly failureDisposition?: RunSnapshot["failureDisposition"];
|
|
53
|
-
readonly failedStageId?: string;
|
|
54
|
-
readonly failedToolNodeId?: string;
|
|
55
|
-
readonly resumable?: boolean;
|
|
56
|
-
readonly retryAfterMs?: number;
|
|
57
|
-
/** Actionable guidance for a snapshot hydrated from durable storage. */
|
|
58
|
-
readonly resumeGuidance?: string;
|
|
59
|
-
/** True when a fresh durable owner is active in another Atomic process. */
|
|
60
|
-
readonly ownerActiveElsewhere?: boolean;
|
|
61
|
-
readonly blockedAt?: number;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export type InspectRunResult =
|
|
65
|
-
| { ok: true; runId: string; detail: RunDetail }
|
|
66
|
-
| { ok: false; runId: string; reason: "not_found" };
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Look up a single run by its exact id and return a normalised
|
|
70
|
-
* {@link RunDetail} for the per-run text/TUI surfaces.
|
|
71
|
-
*
|
|
72
|
-
* Exact match only. Callers reach this with an id already resolved at the input
|
|
73
|
-
* boundary, where shape is validated; a second, looser prefix match here would
|
|
74
|
-
* only reintroduce the truncated targeting the resolvers now reject.
|
|
75
|
-
*
|
|
76
|
-
* Read-only: does not mutate the store.
|
|
77
|
-
*/
|
|
78
|
-
export function inspectRun(runId: string, opts?: { store?: Store }): InspectRunResult {
|
|
79
|
-
const activeStore = opts?.store ?? defaultStore;
|
|
80
|
-
const candidate = activeStore.runs().find((r) => r.id === runId);
|
|
81
|
-
|
|
82
|
-
if (!candidate) {
|
|
83
|
-
return { ok: false, runId, reason: "not_found" };
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Deep copy so callers cannot mutate the store via the snapshot.
|
|
87
|
-
const copy = structuredClone(candidate);
|
|
88
|
-
const expandedGraph = expandWorkflowGraph(activeStore.snapshot(), copy.id);
|
|
89
|
-
const expandedStages = expandedGraph.stages;
|
|
90
|
-
|
|
91
|
-
const detail: RunDetail = {
|
|
92
|
-
runId: copy.id,
|
|
93
|
-
name: copy.name,
|
|
94
|
-
status: effectiveRunStatus(copy),
|
|
95
|
-
mode: expandedStages.length > 1 ? "chain" : "single",
|
|
96
|
-
startedAt: copy.startedAt,
|
|
97
|
-
endedAt: copy.endedAt,
|
|
98
|
-
durationMs: copy.durationMs,
|
|
99
|
-
pausedDurationMs: copy.pausedDurationMs,
|
|
100
|
-
pausedAt: copy.pausedAt,
|
|
101
|
-
resumedAt: copy.resumedAt,
|
|
102
|
-
accumulatedDurationMs: copy.accumulatedDurationMs,
|
|
103
|
-
inputs: copy.inputs,
|
|
104
|
-
stages: expandedStages.map((stage) => structuredClone(stage)),
|
|
105
|
-
tools: expandedGraph.tools.map((tool) => structuredClone(tool)),
|
|
106
|
-
result: copy.result,
|
|
107
|
-
error:
|
|
108
|
-
copy.error ??
|
|
109
|
-
(effectiveRunStatus(copy) === copy.status
|
|
110
|
-
? undefined
|
|
111
|
-
: (structuredRecoverableWorkflowFailureText(copy) ?? actionableReturnedStatusText(copy.result))),
|
|
112
|
-
exited: copy.exited,
|
|
113
|
-
exitReason: copy.exitReason,
|
|
114
|
-
failureKind: copy.failureKind,
|
|
115
|
-
failureCode: copy.failureCode,
|
|
116
|
-
failureRecoverability: copy.failureRecoverability,
|
|
117
|
-
failureDisposition: copy.failureDisposition,
|
|
118
|
-
failedStageId: copy.failedStageId,
|
|
119
|
-
failedToolNodeId: copy.failedToolNodeId,
|
|
120
|
-
resumable: copy.resumable,
|
|
121
|
-
retryAfterMs: copy.retryAfterMs,
|
|
122
|
-
blockedAt: copy.blockedAt,
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
return { ok: true, runId: copy.id, detail };
|
|
126
|
-
}
|