@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,466 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live stage-control registry — runtime-only handle table keyed by
|
|
3
|
-
* `runId + stageId`. Snapshots in `StoreSnapshot` are JSON-cloned and
|
|
4
|
-
* cannot carry function/AgentSession references, so live "attach a
|
|
5
|
-
* pane to this stage" wiring lives here instead.
|
|
6
|
-
*
|
|
7
|
-
* The registry exposes:
|
|
8
|
-
* - `StageControlHandle` — per-stage prompt/steer/follow-up/pause/resume
|
|
9
|
-
* surface used by the attached chat pane.
|
|
10
|
-
* - `WorkflowRunControlHandle` — per-run aggregate used by `/workflow pause`
|
|
11
|
-
* and `/workflow resume` to fan an action across the stages that are
|
|
12
|
-
* actually pausable right now.
|
|
13
|
-
*
|
|
14
|
-
* A completed stage may keep its chat handle alive while being detached from
|
|
15
|
-
* run-level pause/resume control. That lets the chat stay interactive without
|
|
16
|
-
* letting a finished stage keep blocking or pausing downstream work.
|
|
17
|
-
*
|
|
18
|
-
* The registry does not know about Pi SDK details; it talks to the
|
|
19
|
-
* stage-runner via a small interface so tests can fake it without a real
|
|
20
|
-
* `AgentSession`.
|
|
21
|
-
*
|
|
22
|
-
* cross-ref:
|
|
23
|
-
* - src/runs/foreground/stage-runner.ts (InternalStageContext)
|
|
24
|
-
* - src/runs/foreground/executor.ts (registers/unregisters handles)
|
|
25
|
-
* - pi docs/sdk.md (AgentSession.prompt/steer/followUp/abort)
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
import type { AgentSession, AgentSessionEvent } from "@bastani/atomic";
|
|
29
|
-
import { createSessionScopedSingleton } from "../../shared/session-scoped-singleton.js";
|
|
30
|
-
import type { StageDeliveryActivityEvent } from "./stage-delivery-activity.js";
|
|
31
|
-
import type { StageQueuedUserMessages } from "./stage-queued-user-messages.js";
|
|
32
|
-
import type { StageUserMessageDeliveryAction } from "./stage-runner-types.js";
|
|
33
|
-
|
|
34
|
-
export type StageControlStatus =
|
|
35
|
-
| "pending"
|
|
36
|
-
| "running"
|
|
37
|
-
| "awaiting_input"
|
|
38
|
-
| "paused"
|
|
39
|
-
| "blocked"
|
|
40
|
-
| "completed"
|
|
41
|
-
| "failed"
|
|
42
|
-
| "skipped";
|
|
43
|
-
|
|
44
|
-
export type AgentSessionEventListener = (event: AgentSessionEvent) => void;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Per-stage interactive surface exposed to the attached chat pane.
|
|
48
|
-
*
|
|
49
|
-
* Implementations wrap an `InternalStageContext` (which lazily creates
|
|
50
|
-
* the underlying Pi SDK `AgentSession`) and add controlled pause/resume
|
|
51
|
-
* semantics that the raw SDK does not provide.
|
|
52
|
-
*/
|
|
53
|
-
export interface StageControlHandle {
|
|
54
|
-
readonly runId: string;
|
|
55
|
-
readonly stageId: string;
|
|
56
|
-
readonly stageName: string;
|
|
57
|
-
readonly status: StageControlStatus;
|
|
58
|
-
readonly sessionId: string | undefined;
|
|
59
|
-
readonly sessionFile: string | undefined;
|
|
60
|
-
readonly isStreaming: boolean;
|
|
61
|
-
/** True after the executor has released the live SDK session behind this handle. */
|
|
62
|
-
readonly isDisposed?: boolean;
|
|
63
|
-
readonly messages: AgentSession["messages"];
|
|
64
|
-
/** Live coding-agent session when available, used by embedded chat/footer UI. */
|
|
65
|
-
readonly agentSession?: AgentSession;
|
|
66
|
-
/** Replayable in-flight tool starts/partial updates for stage-chat remounts. */
|
|
67
|
-
pendingToolExecutionEvents?(): readonly AgentSessionEvent[];
|
|
68
|
-
/**
|
|
69
|
-
* Pending steering/follow-up text on this stage's session, kept current from
|
|
70
|
-
* `queue_update` for the handle's whole lifetime so a detached graph node and
|
|
71
|
-
* a remounted stage chat can both read it. Deliberately independent of
|
|
72
|
-
* `agentSession`: an adapter-backed runtime that publishes the ordinary
|
|
73
|
-
* events keeps queue-aware UI.
|
|
74
|
-
*/
|
|
75
|
-
queuedUserMessages?(): StageQueuedUserMessages;
|
|
76
|
-
/** Ensure the SDK session exists. Cheap when already attached. */
|
|
77
|
-
ensureAttached(): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Deliver through the idle-aware session primitive and report the action.
|
|
80
|
-
* `beforeDelivery` must run synchronously after async setup and immediately
|
|
81
|
-
* before the underlying SDK admits or queues the message.
|
|
82
|
-
*/
|
|
83
|
-
sendUserMessage?(
|
|
84
|
-
text: string,
|
|
85
|
-
options?: { readonly deliverAs?: "steer" | "followUp" },
|
|
86
|
-
beforeDelivery?: () => void,
|
|
87
|
-
): Promise<StageUserMessageDeliveryAction>;
|
|
88
|
-
|
|
89
|
-
/** Send a prompt. Use only when the stage is idle / not streaming. */
|
|
90
|
-
prompt(text: string): Promise<void>;
|
|
91
|
-
/** Steer the current streaming operation (interrupt mid-turn). */
|
|
92
|
-
steer(text: string): Promise<void>;
|
|
93
|
-
/** Queue a follow-up after the current operation completes. */
|
|
94
|
-
followUp(text: string): Promise<void>;
|
|
95
|
-
/**
|
|
96
|
-
* True controlled pause. Aborts the current Pi op without finalizing
|
|
97
|
-
* the stage as failed; the original `prompt()` awaiter is held until
|
|
98
|
-
* `resume()` is called.
|
|
99
|
-
*/
|
|
100
|
-
pause(): Promise<void>;
|
|
101
|
-
/**
|
|
102
|
-
* Release a paused stage. If `message` is provided it is sent as the
|
|
103
|
-
* next user message before resuming. `beforeResume` guards final admission.
|
|
104
|
-
*/
|
|
105
|
-
resume(message?: string, beforeResume?: () => void): Promise<undefined | StageUserMessageDeliveryAction>;
|
|
106
|
-
/**
|
|
107
|
-
* Subscribe to AgentSession events. The pending-listener semantics
|
|
108
|
-
* from `InternalStageContext.subscribe` apply: listeners registered
|
|
109
|
-
* before the session exists are buffered and bound on first attach.
|
|
110
|
-
*/
|
|
111
|
-
subscribe(listener: AgentSessionEventListener): () => void;
|
|
112
|
-
/**
|
|
113
|
-
* Subscribe to workflow-owned delivery lifecycle facts. Present only for
|
|
114
|
-
* handles backed by a live stage runner. An accepted idle delivery reports
|
|
115
|
-
* `delivery_start` before the public `agent_start` is published, letting an
|
|
116
|
-
* attached chat show Working for the whole turn.
|
|
117
|
-
*/
|
|
118
|
-
subscribeDeliveryActivity?(listener: (event: StageDeliveryActivityEvent) => void): () => void;
|
|
119
|
-
/** Release the underlying SDK session and unregister this direct chat handle. */
|
|
120
|
-
dispose?(): void | Promise<void>;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/** Tentative ownership used by workflow sends until final message admission. */
|
|
124
|
-
export interface DetachedStageHandleLease {
|
|
125
|
-
readonly handle: StageControlHandle;
|
|
126
|
-
/** Keep the handle registered after admission; false when it was displaced. */
|
|
127
|
-
commit(): boolean;
|
|
128
|
-
/** Release tentative ownership and dispose an unclaimed provisional handle. */
|
|
129
|
-
release(): Promise<void>;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Per-run aggregate. Fans pause/resume to currently-running stage
|
|
134
|
-
* handles. Backed by the same `StageControlRegistry`.
|
|
135
|
-
*/
|
|
136
|
-
export interface WorkflowRunControlHandle {
|
|
137
|
-
readonly runId: string;
|
|
138
|
-
/** Stage handles still participating in run-level workflow control. */
|
|
139
|
-
stages(): readonly StageControlHandle[];
|
|
140
|
-
/** Currently paused stage handles. */
|
|
141
|
-
pausedStages(): readonly StageControlHandle[];
|
|
142
|
-
/**
|
|
143
|
-
* Pause every currently running stage (or the specific stage when
|
|
144
|
-
* `stageId` is supplied). Returns every handle whose pause state changed,
|
|
145
|
-
* including cascade-blocked descendants; keeping the array return preserves
|
|
146
|
-
* existing slash-command iteration ergonomics.
|
|
147
|
-
*/
|
|
148
|
-
pause(stageId?: string): Promise<readonly StageControlHandle[]>;
|
|
149
|
-
/**
|
|
150
|
-
* Resume every paused stage (or the specific stage when `stageId`
|
|
151
|
-
* is supplied). `message`, if given, is forwarded to each resumed
|
|
152
|
-
* stage as the next user message.
|
|
153
|
-
*/
|
|
154
|
-
resume(stageId?: string, message?: string): Promise<readonly StageControlHandle[]>;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
export interface StageControlRegistry {
|
|
158
|
-
/**
|
|
159
|
-
* Register a stage handle. The returned disposer removes the chat handle
|
|
160
|
-
* entirely. Stage completion should normally call `detachControl()` first so
|
|
161
|
-
* run-level pause/resume stops seeing the stage while any open chat pane can
|
|
162
|
-
* keep using its direct handle reference.
|
|
163
|
-
*/
|
|
164
|
-
register(handle: StageControlHandle): () => void;
|
|
165
|
-
/**
|
|
166
|
-
* Atomically resolve an existing non-disposed handle for `runId + stageId`
|
|
167
|
-
* or create one via `create`, register it, and immediately detach it from
|
|
168
|
-
* run-level pause/resume control. Used by the post-mortem stage-chat
|
|
169
|
-
* resolver so repeated attach/send calls single-flight onto one detached
|
|
170
|
-
* writer per real stage instead of racing competing sessions.
|
|
171
|
-
*/
|
|
172
|
-
getOrCreateDetached(runId: string, stageId: string, create: () => StageControlHandle): StageControlHandle;
|
|
173
|
-
/**
|
|
174
|
-
* Acquire tentative ownership of a detached handle. A newly-created handle
|
|
175
|
-
* stays provisional until one lease commits or an ordinary consumer claims
|
|
176
|
-
* it through `claim()` / `getOrCreateDetached()`.
|
|
177
|
-
*/
|
|
178
|
-
acquireDetached(runId: string, stageId: string, create: () => StageControlHandle): DetachedStageHandleLease;
|
|
179
|
-
/** Inspect without claiming a provisional detached handle. */
|
|
180
|
-
peek(runId: string, stageId: string): StageControlHandle | undefined;
|
|
181
|
-
/** Resolve and permanently claim a provisional detached handle. */
|
|
182
|
-
claim(runId: string, stageId: string): StageControlHandle | undefined;
|
|
183
|
-
/**
|
|
184
|
-
* Remove this stage from run-level pause/resume aggregates while keeping
|
|
185
|
-
* `get()` chat attachment live until the registration disposer runs.
|
|
186
|
-
*/
|
|
187
|
-
detachControl(runId: string, stageId: string, handle?: StageControlHandle): boolean;
|
|
188
|
-
/** Resolve one stage handle by run + stage id, including detached chats. */
|
|
189
|
-
get(runId: string, stageId: string): StageControlHandle | undefined;
|
|
190
|
-
/** Resolve all currently-registered chat handles for a run. */
|
|
191
|
-
forRun(runId: string): readonly StageControlHandle[];
|
|
192
|
-
/** True when this run currently has a registration map. */
|
|
193
|
-
has(runId: string): boolean;
|
|
194
|
-
/** Build a run-level control aggregate. Cheap; not memoised. */
|
|
195
|
-
run(runId: string): WorkflowRunControlHandle;
|
|
196
|
-
/**
|
|
197
|
-
* Drop every registration and invoke each handle's optional dispose hook.
|
|
198
|
-
* Used on session boundaries to release retained direct chat handles and
|
|
199
|
-
* their subscriptions when the host store is cleared.
|
|
200
|
-
*/
|
|
201
|
-
clear(): void;
|
|
202
|
-
/**
|
|
203
|
-
* Drop only handles detached from run-level control (`controlsDependencies`
|
|
204
|
-
* false), disposing them through the background-dispose path. Live executor
|
|
205
|
-
* handles that still own workflow execution stay registered. Emptied run
|
|
206
|
-
* maps are pruned.
|
|
207
|
-
*/
|
|
208
|
-
clearDetached(): void;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* In-memory implementation. Handles live in a `Map<runId, Map<stageId, handle>>`
|
|
213
|
-
* so per-run lookups stay cheap as workflows scale.
|
|
214
|
-
*/
|
|
215
|
-
export function createStageControlRegistry(): StageControlRegistry {
|
|
216
|
-
type RegistryEntry = {
|
|
217
|
-
handle: StageControlHandle;
|
|
218
|
-
controlsDependencies: boolean;
|
|
219
|
-
permanent: boolean;
|
|
220
|
-
readonly leases: Set<symbol>;
|
|
221
|
-
disposal?: Promise<void>;
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
const _byRun = new Map<string, Map<string, RegistryEntry>>();
|
|
225
|
-
|
|
226
|
-
function ensureRun(runId: string): Map<string, RegistryEntry> {
|
|
227
|
-
let runMap = _byRun.get(runId);
|
|
228
|
-
if (!runMap) {
|
|
229
|
-
runMap = new Map();
|
|
230
|
-
_byRun.set(runId, runMap);
|
|
231
|
-
}
|
|
232
|
-
return runMap;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
function controlledEntries(runId: string): RegistryEntry[] {
|
|
236
|
-
const runMap = _byRun.get(runId);
|
|
237
|
-
if (!runMap) return [];
|
|
238
|
-
return [...runMap.values()].filter((entry) => entry.controlsDependencies);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
function disposeEntry(entry: RegistryEntry): Promise<void> {
|
|
242
|
-
if (entry.disposal !== undefined) return entry.disposal;
|
|
243
|
-
try {
|
|
244
|
-
entry.disposal = Promise.resolve(entry.handle.dispose?.());
|
|
245
|
-
} catch (error) {
|
|
246
|
-
entry.disposal = Promise.reject(error);
|
|
247
|
-
}
|
|
248
|
-
return entry.disposal;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function disposeEntryInBackground(entry: RegistryEntry, message: string): void {
|
|
252
|
-
void disposeEntry(entry).catch((err: unknown) => console.warn(message, err));
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
function makeRunHandle(runId: string): WorkflowRunControlHandle {
|
|
256
|
-
return {
|
|
257
|
-
runId,
|
|
258
|
-
stages(): readonly StageControlHandle[] {
|
|
259
|
-
return controlledEntries(runId).map((entry) => entry.handle);
|
|
260
|
-
},
|
|
261
|
-
pausedStages(): readonly StageControlHandle[] {
|
|
262
|
-
return controlledEntries(runId)
|
|
263
|
-
.map((entry) => entry.handle)
|
|
264
|
-
.filter((h) => h.status === "paused");
|
|
265
|
-
},
|
|
266
|
-
async pause(stageId?: string): Promise<readonly StageControlHandle[]> {
|
|
267
|
-
const runMap = _byRun.get(runId);
|
|
268
|
-
if (!runMap) return [];
|
|
269
|
-
const controlEntries = controlledEntries(runId);
|
|
270
|
-
const targets = stageId
|
|
271
|
-
? [runMap.get(stageId)]
|
|
272
|
-
.filter((entry): entry is RegistryEntry => entry?.controlsDependencies === true)
|
|
273
|
-
.map((entry) => entry.handle)
|
|
274
|
-
: controlEntries
|
|
275
|
-
.map((entry) => entry.handle)
|
|
276
|
-
.filter((h) => h.status === "running" || h.status === "pending");
|
|
277
|
-
const before = new Map(controlEntries.map((entry) => [entry.handle.stageId, entry.handle.status]));
|
|
278
|
-
for (const handle of targets) {
|
|
279
|
-
if (handle.status === "paused") continue;
|
|
280
|
-
if (handle.status === "completed" || handle.status === "failed" || handle.status === "skipped") continue;
|
|
281
|
-
await handle.pause();
|
|
282
|
-
}
|
|
283
|
-
return controlledEntries(runId)
|
|
284
|
-
.map((entry) => entry.handle)
|
|
285
|
-
.filter((handle) => {
|
|
286
|
-
const previous = before.get(handle.stageId);
|
|
287
|
-
return previous !== handle.status && (handle.status === "paused" || handle.status === "blocked");
|
|
288
|
-
});
|
|
289
|
-
},
|
|
290
|
-
async resume(stageId?: string, message?: string): Promise<readonly StageControlHandle[]> {
|
|
291
|
-
const runMap = _byRun.get(runId);
|
|
292
|
-
if (!runMap) return [];
|
|
293
|
-
const controlEntries = controlledEntries(runId);
|
|
294
|
-
const before = new Map(controlEntries.map((entry) => [entry.handle.stageId, entry.handle.status]));
|
|
295
|
-
const targets = stageId
|
|
296
|
-
? [runMap.get(stageId)]
|
|
297
|
-
.filter((entry): entry is RegistryEntry => entry?.controlsDependencies === true)
|
|
298
|
-
.map((entry) => entry.handle)
|
|
299
|
-
: controlEntries.map((entry) => entry.handle).filter((h) => h.status === "paused");
|
|
300
|
-
for (const handle of targets) {
|
|
301
|
-
if (handle.status !== "paused") continue;
|
|
302
|
-
await handle.resume(message);
|
|
303
|
-
}
|
|
304
|
-
return controlledEntries(runId)
|
|
305
|
-
.map((entry) => entry.handle)
|
|
306
|
-
.filter((handle) => {
|
|
307
|
-
const previous = before.get(handle.stageId);
|
|
308
|
-
return (previous === "paused" || previous === "blocked") && previous !== handle.status;
|
|
309
|
-
});
|
|
310
|
-
},
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
return {
|
|
315
|
-
register(handle: StageControlHandle): () => void {
|
|
316
|
-
const runMap = ensureRun(handle.runId);
|
|
317
|
-
const displaced = runMap.get(handle.stageId);
|
|
318
|
-
runMap.set(handle.stageId, {
|
|
319
|
-
handle,
|
|
320
|
-
controlsDependencies: true,
|
|
321
|
-
permanent: true,
|
|
322
|
-
leases: new Set(),
|
|
323
|
-
});
|
|
324
|
-
if (displaced !== undefined && displaced.handle !== handle && !displaced.permanent) {
|
|
325
|
-
disposeEntryInBackground(displaced, "atomic-workflows: displaced provisional stage handle dispose failed");
|
|
326
|
-
}
|
|
327
|
-
return () => {
|
|
328
|
-
const existing = _byRun.get(handle.runId);
|
|
329
|
-
if (!existing) return;
|
|
330
|
-
if (existing.get(handle.stageId)?.handle === handle) {
|
|
331
|
-
existing.delete(handle.stageId);
|
|
332
|
-
}
|
|
333
|
-
if (existing.size === 0) _byRun.delete(handle.runId);
|
|
334
|
-
};
|
|
335
|
-
},
|
|
336
|
-
getOrCreateDetached(runId: string, stageId: string, create: () => StageControlHandle): StageControlHandle {
|
|
337
|
-
const runMap = ensureRun(runId);
|
|
338
|
-
const existing = runMap.get(stageId);
|
|
339
|
-
if (existing !== undefined && existing.handle.isDisposed !== true) {
|
|
340
|
-
existing.permanent = true;
|
|
341
|
-
return existing.handle;
|
|
342
|
-
}
|
|
343
|
-
if (existing !== undefined) {
|
|
344
|
-
runMap.delete(stageId);
|
|
345
|
-
disposeEntryInBackground(existing, "atomic-workflows: stale stage handle dispose failed");
|
|
346
|
-
}
|
|
347
|
-
const handle = create();
|
|
348
|
-
runMap.set(handle.stageId, {
|
|
349
|
-
handle,
|
|
350
|
-
controlsDependencies: false,
|
|
351
|
-
permanent: true,
|
|
352
|
-
leases: new Set(),
|
|
353
|
-
});
|
|
354
|
-
return handle;
|
|
355
|
-
},
|
|
356
|
-
acquireDetached(runId: string, stageId: string, create: () => StageControlHandle): DetachedStageHandleLease {
|
|
357
|
-
const runMap = ensureRun(runId);
|
|
358
|
-
let entry = runMap.get(stageId);
|
|
359
|
-
if (entry?.handle.isDisposed === true) {
|
|
360
|
-
runMap.delete(stageId);
|
|
361
|
-
disposeEntryInBackground(entry, "atomic-workflows: stale stage handle dispose failed");
|
|
362
|
-
entry = undefined;
|
|
363
|
-
}
|
|
364
|
-
if (entry === undefined) {
|
|
365
|
-
entry = {
|
|
366
|
-
handle: create(),
|
|
367
|
-
controlsDependencies: false,
|
|
368
|
-
permanent: false,
|
|
369
|
-
leases: new Set(),
|
|
370
|
-
};
|
|
371
|
-
runMap.set(stageId, entry);
|
|
372
|
-
}
|
|
373
|
-
const leasedEntry = entry;
|
|
374
|
-
const token = Symbol("detached-stage-handle-lease");
|
|
375
|
-
leasedEntry.leases.add(token);
|
|
376
|
-
let settled = false;
|
|
377
|
-
return {
|
|
378
|
-
handle: leasedEntry.handle,
|
|
379
|
-
commit() {
|
|
380
|
-
if (settled) return false;
|
|
381
|
-
if (runMap.get(stageId) !== leasedEntry || leasedEntry.disposal !== undefined) {
|
|
382
|
-
return false;
|
|
383
|
-
}
|
|
384
|
-
settled = true;
|
|
385
|
-
leasedEntry.leases.delete(token);
|
|
386
|
-
leasedEntry.permanent = true;
|
|
387
|
-
return true;
|
|
388
|
-
},
|
|
389
|
-
async release() {
|
|
390
|
-
if (settled) return;
|
|
391
|
-
settled = true;
|
|
392
|
-
leasedEntry.leases.delete(token);
|
|
393
|
-
if (runMap.get(stageId) !== leasedEntry) {
|
|
394
|
-
if (leasedEntry.disposal !== undefined) await leasedEntry.disposal;
|
|
395
|
-
return;
|
|
396
|
-
}
|
|
397
|
-
if (leasedEntry.permanent || leasedEntry.leases.size > 0) return;
|
|
398
|
-
runMap.delete(stageId);
|
|
399
|
-
if (runMap.size === 0) _byRun.delete(runId);
|
|
400
|
-
await disposeEntry(leasedEntry);
|
|
401
|
-
},
|
|
402
|
-
};
|
|
403
|
-
},
|
|
404
|
-
detachControl(runId: string, stageId: string, handle?: StageControlHandle): boolean {
|
|
405
|
-
const entry = _byRun.get(runId)?.get(stageId);
|
|
406
|
-
if (!entry) return false;
|
|
407
|
-
if (handle !== undefined && entry.handle !== handle) return false;
|
|
408
|
-
if (!entry.controlsDependencies) return false;
|
|
409
|
-
entry.controlsDependencies = false;
|
|
410
|
-
return true;
|
|
411
|
-
},
|
|
412
|
-
peek(runId: string, stageId: string): StageControlHandle | undefined {
|
|
413
|
-
return _byRun.get(runId)?.get(stageId)?.handle;
|
|
414
|
-
},
|
|
415
|
-
claim(runId: string, stageId: string): StageControlHandle | undefined {
|
|
416
|
-
const entry = _byRun.get(runId)?.get(stageId);
|
|
417
|
-
if (entry !== undefined) entry.permanent = true;
|
|
418
|
-
return entry?.handle;
|
|
419
|
-
},
|
|
420
|
-
get(runId: string, stageId: string): StageControlHandle | undefined {
|
|
421
|
-
return _byRun.get(runId)?.get(stageId)?.handle;
|
|
422
|
-
},
|
|
423
|
-
forRun(runId: string): readonly StageControlHandle[] {
|
|
424
|
-
const runMap = _byRun.get(runId);
|
|
425
|
-
if (!runMap) return [];
|
|
426
|
-
return [...runMap.values()].map((entry) => entry.handle);
|
|
427
|
-
},
|
|
428
|
-
has(runId: string): boolean {
|
|
429
|
-
return _byRun.has(runId);
|
|
430
|
-
},
|
|
431
|
-
run(runId: string): WorkflowRunControlHandle {
|
|
432
|
-
return makeRunHandle(runId);
|
|
433
|
-
},
|
|
434
|
-
clear(): void {
|
|
435
|
-
const entries = [..._byRun.values()].flatMap((runMap) => [...runMap.values()]);
|
|
436
|
-
_byRun.clear();
|
|
437
|
-
for (const entry of entries) {
|
|
438
|
-
disposeEntryInBackground(entry, "atomic-workflows: stage handle dispose failed");
|
|
439
|
-
}
|
|
440
|
-
},
|
|
441
|
-
clearDetached(): void {
|
|
442
|
-
for (const [runId, runMap] of [..._byRun]) {
|
|
443
|
-
for (const [stageId, entry] of [...runMap]) {
|
|
444
|
-
if (entry.controlsDependencies) continue;
|
|
445
|
-
runMap.delete(stageId);
|
|
446
|
-
disposeEntryInBackground(entry, "atomic-workflows: detached stage handle dispose failed");
|
|
447
|
-
}
|
|
448
|
-
if (runMap.size === 0) _byRun.delete(runId);
|
|
449
|
-
}
|
|
450
|
-
},
|
|
451
|
-
};
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
/**
|
|
455
|
-
* Process-wide registry. Tests and embedders SHOULD prefer passing an
|
|
456
|
-
* explicit instance via `RunOpts.stageControlRegistry`; the singleton
|
|
457
|
-
* is the default consumer surface used by the extension factory.
|
|
458
|
-
*/
|
|
459
|
-
const SESSION_KEY = "workflows:stage-control:v1";
|
|
460
|
-
const singleton = createSessionScopedSingleton(SESSION_KEY, createStageControlRegistry);
|
|
461
|
-
|
|
462
|
-
export const stageControlRegistry: StageControlRegistry = singleton.facade;
|
|
463
|
-
|
|
464
|
-
export function adoptStageControlRegistry(scope: object): StageControlRegistry {
|
|
465
|
-
return singleton.adopt(scope);
|
|
466
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal stage delivery-activity channel.
|
|
3
|
-
*
|
|
4
|
-
* An accepted *idle* stage delivery starts a real backend turn long before the
|
|
5
|
-
* public `agent_start` clears the session's ordered extension event queue. The
|
|
6
|
-
* attached stage chat therefore had no signal to paint `Working` with, and the
|
|
7
|
-
* pane looked idle while the model was already running.
|
|
8
|
-
*
|
|
9
|
-
* This channel carries only that fact — "an idle delivery was admitted and is
|
|
10
|
-
* now starting a turn" — as a workflow-internal event, so the chat can start
|
|
11
|
-
* its existing Working lifecycle without fabricating SDK lifecycle events or
|
|
12
|
-
* reordering the public event stream.
|
|
13
|
-
*
|
|
14
|
-
* Streaming deliveries (`steer` / `followUp`) never emit here: they join an
|
|
15
|
-
* in-flight turn that already owns the indicator.
|
|
16
|
-
*
|
|
17
|
-
* cross-ref:
|
|
18
|
-
* - src/runs/foreground/stage-runner-send-user-message.ts (emitter)
|
|
19
|
-
* - src/tui/stage-chat-view-delivery-activity.ts (consumer)
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
export type StageDeliveryActivityEvent =
|
|
23
|
-
| { readonly type: "delivery_start"; readonly deliveryId: number }
|
|
24
|
-
| { readonly type: "delivery_settled"; readonly deliveryId: number };
|
|
25
|
-
|
|
26
|
-
export type StageDeliveryActivityListener = (event: StageDeliveryActivityEvent) => void;
|
|
27
|
-
|
|
28
|
-
export class StageDeliveryActivity {
|
|
29
|
-
private readonly listeners = new Set<StageDeliveryActivityListener>();
|
|
30
|
-
private readonly active = new Set<number>();
|
|
31
|
-
private nextDeliveryId = 0;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Register `listener`, then synchronously replay every currently-active
|
|
35
|
-
* delivery as `delivery_start`.
|
|
36
|
-
*
|
|
37
|
-
* A stage chat can attach after a delivery was admitted — a late `/workflow
|
|
38
|
-
* attach`, or a remount — and would otherwise see nothing until the public
|
|
39
|
-
* `agent_start` finally arrives. Registering before replaying matters:
|
|
40
|
-
* snapshotting first would drop a start or settlement that lands in between.
|
|
41
|
-
*/
|
|
42
|
-
subscribe(listener: StageDeliveryActivityListener): () => void {
|
|
43
|
-
this.listeners.add(listener);
|
|
44
|
-
for (const deliveryId of [...this.active]) {
|
|
45
|
-
if (!this.listeners.has(listener)) break;
|
|
46
|
-
listener({ type: "delivery_start", deliveryId });
|
|
47
|
-
}
|
|
48
|
-
return () => {
|
|
49
|
-
this.listeners.delete(listener);
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/** Report an admitted idle delivery that is about to start a turn. */
|
|
54
|
-
start(): number {
|
|
55
|
-
const deliveryId = ++this.nextDeliveryId;
|
|
56
|
-
this.active.add(deliveryId);
|
|
57
|
-
this.emit({ type: "delivery_start", deliveryId });
|
|
58
|
-
return deliveryId;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** Keep one correlated delivery active for the full asynchronous operation. */
|
|
62
|
-
async runWithLease<T>(operation: () => Promise<T>): Promise<T> {
|
|
63
|
-
const deliveryId = this.start();
|
|
64
|
-
try {
|
|
65
|
-
return await operation();
|
|
66
|
-
} finally {
|
|
67
|
-
this.settle(deliveryId);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** Report that a delivery finished, failed, or started no turn at all. */
|
|
72
|
-
settle(deliveryId: number | undefined): void {
|
|
73
|
-
if (deliveryId === undefined || !this.active.delete(deliveryId)) return;
|
|
74
|
-
this.emit({ type: "delivery_settled", deliveryId });
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** Settle every outstanding delivery, then drop listeners. */
|
|
78
|
-
dispose(): void {
|
|
79
|
-
for (const deliveryId of [...this.active]) this.settle(deliveryId);
|
|
80
|
-
this.listeners.clear();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
private emit(event: StageDeliveryActivityEvent): void {
|
|
84
|
-
for (const listener of [...this.listeners]) listener(event);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handle-owned projection of a stage session's pending user-message queue.
|
|
3
|
-
*
|
|
4
|
-
* The queue itself lives on the session, but its display lives in a stage-chat
|
|
5
|
-
* pane that detach destroys, and the graph needs a count for a stage nobody is
|
|
6
|
-
* attached to. Both read this buffer instead of the concrete coding-agent
|
|
7
|
-
* `AgentSession`, so a custom `StageSessionRuntime` that publishes ordinary
|
|
8
|
-
* `queue_update` events keeps queue-aware UI without having to satisfy the
|
|
9
|
-
* whole concrete session surface.
|
|
10
|
-
*
|
|
11
|
-
* This is a runtime projection of the event stream, never durable workflow
|
|
12
|
-
* state: nothing here belongs in a cloned `StageSnapshot`.
|
|
13
|
-
*
|
|
14
|
-
* cross-ref:
|
|
15
|
-
* - src/runs/foreground/executor-stage-control.ts (live handle wiring)
|
|
16
|
-
* - src/runs/foreground/postmortem-stage-chat.ts (retained-session wiring)
|
|
17
|
-
* - packages/coding-agent/src/core/agent-session-events.ts (`queue_update`)
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import type { AgentSessionEvent } from "@bastani/atomic";
|
|
21
|
-
|
|
22
|
-
/** Pending steering and follow-up text on one stage session. */
|
|
23
|
-
export interface StageQueuedUserMessages {
|
|
24
|
-
readonly steering: readonly string[];
|
|
25
|
-
readonly followUp: readonly string[];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export const EMPTY_STAGE_QUEUED_USER_MESSAGES: StageQueuedUserMessages = Object.freeze({
|
|
29
|
-
steering: Object.freeze([]) as readonly string[],
|
|
30
|
-
followUp: Object.freeze([]) as readonly string[],
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
function queuedTexts(value: unknown): readonly string[] {
|
|
34
|
-
if (!Array.isArray(value)) return [];
|
|
35
|
-
return value.filter((entry): entry is string => typeof entry === "string");
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export class StageQueuedUserMessageBuffer {
|
|
39
|
-
private queued: StageQueuedUserMessages = EMPTY_STAGE_QUEUED_USER_MESSAGES;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Each `queue_update` is a complete snapshot, including the reduced snapshot
|
|
43
|
-
* published just before a queued message is consumed, so replace both lists
|
|
44
|
-
* rather than merging. Duplicates, text, and per-queue order are preserved
|
|
45
|
-
* exactly as the session published them.
|
|
46
|
-
*/
|
|
47
|
-
record(event: AgentSessionEvent): void {
|
|
48
|
-
if (String((event as { type?: unknown }).type ?? "") !== "queue_update") return;
|
|
49
|
-
const update = event as { steering?: unknown; followUp?: unknown };
|
|
50
|
-
this.queued = {
|
|
51
|
-
steering: queuedTexts(update.steering),
|
|
52
|
-
followUp: queuedTexts(update.followUp),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
snapshot(): StageQueuedUserMessages {
|
|
57
|
-
return this.queued;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
clear(): void {
|
|
61
|
-
this.queued = EMPTY_STAGE_QUEUED_USER_MESSAGES;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* The `queue_update` a session would publish for the queue it is already
|
|
67
|
-
* holding, or `undefined` when it holds nothing or does not expose its queues.
|
|
68
|
-
*
|
|
69
|
-
* A session announces its queue by event, so a queue that exists before this
|
|
70
|
-
* stage's listeners are bound to that session is announced to nobody: the
|
|
71
|
-
* retirement transfer publishes on the adopting session while the stage's
|
|
72
|
-
* listeners are still unsubscribed, and a reopened retained session publishes
|
|
73
|
-
* before a post-mortem handle's projection reaches it. Reading the session once
|
|
74
|
-
* at attach closes that window; every later change still arrives as an event.
|
|
75
|
-
*
|
|
76
|
-
* The lists are copied, never aliased: a session returns its live arrays.
|
|
77
|
-
*/
|
|
78
|
-
export function stageSessionQueueUpdateEvent(session: {
|
|
79
|
-
getSteeringMessages?(): readonly string[];
|
|
80
|
-
getFollowUpMessages?(): readonly string[];
|
|
81
|
-
}): AgentSessionEvent | undefined {
|
|
82
|
-
if (typeof session.getSteeringMessages !== "function" || typeof session.getFollowUpMessages !== "function") {
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
const steering = queuedTexts(session.getSteeringMessages());
|
|
86
|
-
const followUp = queuedTexts(session.getFollowUpMessages());
|
|
87
|
-
if (steering.length === 0 && followUp.length === 0) return undefined;
|
|
88
|
-
return { type: "queue_update", steering, followUp };
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/** Total pending entries across both queues. */
|
|
92
|
-
export function stageQueuedUserMessageCount(queued: StageQueuedUserMessages | undefined): number {
|
|
93
|
-
if (!queued) return 0;
|
|
94
|
-
return queued.steering.length + queued.followUp.length;
|
|
95
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { StageOptions, WorkflowModelAttempt } from "../../shared/types.js";
|
|
2
|
-
import type { WorkflowResolvedModelCandidate } from "../shared/model-fallback.js";
|
|
3
|
-
|
|
4
|
-
export function effectiveCandidateReasoning(
|
|
5
|
-
candidate: WorkflowResolvedModelCandidate,
|
|
6
|
-
fallback: StageOptions["thinkingLevel"] | undefined,
|
|
7
|
-
): StageOptions["thinkingLevel"] | undefined {
|
|
8
|
-
return candidate.reasoningLevel ?? fallback;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function modelAttemptReasoning(
|
|
12
|
-
candidate: WorkflowResolvedModelCandidate,
|
|
13
|
-
fallback: StageOptions["thinkingLevel"] | undefined,
|
|
14
|
-
): Pick<WorkflowModelAttempt, "reasoningLevel"> {
|
|
15
|
-
const reasoningLevel = effectiveCandidateReasoning(candidate, fallback);
|
|
16
|
-
return reasoningLevel !== undefined ? { reasoningLevel } : {};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function candidateLabel(candidate: WorkflowResolvedModelCandidate): string {
|
|
20
|
-
return candidate.reasoningLevel !== undefined ? `${candidate.id}:${candidate.reasoningLevel}` : candidate.id;
|
|
21
|
-
}
|