@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,317 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Orchestration for the inline workflow input form (Option C: sticky chat
|
|
3
|
-
* card + custom editor).
|
|
4
|
-
*
|
|
5
|
-
* `registerInlineFormRenderer(pi)` — call once at extension init time
|
|
6
|
-
* to wire `pi.registerMessageRenderer`
|
|
7
|
-
* for our customType. Idempotent.
|
|
8
|
-
*
|
|
9
|
-
* `openInlineInputsForm(pi, ctx, …)` — drive a single form. Mutates the
|
|
10
|
-
* chat by emitting a custom message,
|
|
11
|
-
* swaps in our editor, awaits user
|
|
12
|
-
* input, then restores the prior
|
|
13
|
-
* editor and resolves with the
|
|
14
|
-
* coerced values (or cancel).
|
|
15
|
-
*
|
|
16
|
-
* The card stays in chat scrollback forever (frozen view after exit).
|
|
17
|
-
*
|
|
18
|
-
* cross-ref:
|
|
19
|
-
* - src/tui/inline-form-store.ts (state map)
|
|
20
|
-
* - src/tui/inline-form-card.ts (renderer used by message renderer)
|
|
21
|
-
* - src/tui/inline-form-editor.ts (custom EditorComponent)
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
import { isStaleExtensionContextError } from "@bastani/atomic";
|
|
25
|
-
import type { ExtensionAPI, PiCommandContext } from "../extension/index.js";
|
|
26
|
-
import type { WorkflowInputEntry } from "../extension/render-result.js";
|
|
27
|
-
import type { PiEditorComponent, PiEditorFactory } from "../extension/wiring.js";
|
|
28
|
-
import type { WorkflowInputValues } from "../shared/types.js";
|
|
29
|
-
import type { GraphTheme } from "./graph-theme.js";
|
|
30
|
-
import { renderInlineCard } from "./inline-form-card.js";
|
|
31
|
-
import { InlineFormEditor } from "./inline-form-editor.js";
|
|
32
|
-
import { createForm, finalizeForm, getForm } from "./inline-form-store.js";
|
|
33
|
-
import { coerceValues } from "./inputs-picker.js";
|
|
34
|
-
|
|
35
|
-
const CUSTOM_TYPE = "workflows:input-form";
|
|
36
|
-
|
|
37
|
-
interface FormMessageDetails {
|
|
38
|
-
formId: string;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Public result type — matches the popup-version contract so callers don't
|
|
43
|
-
* care which surface was used.
|
|
44
|
-
*/
|
|
45
|
-
export type InlineFormResult =
|
|
46
|
-
| { kind: "run"; values: WorkflowInputValues }
|
|
47
|
-
| { kind: "cancel" }
|
|
48
|
-
| { kind: "unsupported" };
|
|
49
|
-
|
|
50
|
-
export interface OpenInlineFormOpts {
|
|
51
|
-
workflowName: string;
|
|
52
|
-
fields: readonly WorkflowInputEntry[];
|
|
53
|
-
prefilled?: WorkflowInputValues;
|
|
54
|
-
theme: GraphTheme;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// ---------------------------------------------------------------------------
|
|
58
|
-
// Message renderer registration
|
|
59
|
-
// ---------------------------------------------------------------------------
|
|
60
|
-
|
|
61
|
-
const rendererRegisteredHosts = new WeakSet<object>();
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Renderer return shape (subset of pi-tui's `Component`). Defined locally so
|
|
65
|
-
* the project doesn't need to import from `@earendil-works/pi-tui` (which is
|
|
66
|
-
* a peer dep of pi-coding-agent that we don't link directly).
|
|
67
|
-
*/
|
|
68
|
-
interface CardComponent {
|
|
69
|
-
render(width: number): string[];
|
|
70
|
-
invalidate?(): void;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
type RawRenderer = (payload: unknown) => CardComponent | null | undefined;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Wire the message renderer once per live ExtensionAPI host. pi creates a new
|
|
77
|
-
* extension host on `/new`, `/resume`, `/fork`, and `/reload`, while jiti may
|
|
78
|
-
* keep this module cached. A process-global boolean would skip registration in
|
|
79
|
-
* the replacement session and leave emitted workflow form messages without a
|
|
80
|
-
* renderer.
|
|
81
|
-
*
|
|
82
|
-
* Theme is captured at registration. If pi's active theme changes later the
|
|
83
|
-
* renderer continues with the original; acceptable since these cards are
|
|
84
|
-
* mostly historical artefacts.
|
|
85
|
-
*/
|
|
86
|
-
export function registerInlineFormRenderer(pi: ExtensionAPI, theme: GraphTheme): void {
|
|
87
|
-
if (rendererRegisteredHosts.has(pi)) return;
|
|
88
|
-
const register = pi.registerMessageRenderer;
|
|
89
|
-
if (typeof register !== "function") return;
|
|
90
|
-
|
|
91
|
-
const renderer: RawRenderer = (raw) => {
|
|
92
|
-
const message = raw as {
|
|
93
|
-
content?: string;
|
|
94
|
-
details?: { formId?: string };
|
|
95
|
-
};
|
|
96
|
-
const formId = message.details?.formId;
|
|
97
|
-
if (!formId) return undefined;
|
|
98
|
-
const state = getForm(formId);
|
|
99
|
-
if (!state) {
|
|
100
|
-
// No backing state — the session was resumed/replaced (the store is
|
|
101
|
-
// cleared on session_start) or the map was evicted. Return null so the
|
|
102
|
-
// host renders nothing: the input widget must not reappear in chat after
|
|
103
|
-
// /resume rather than showing a stale or "snapshot lost" placeholder.
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
// The card is fully reactive: read fresh state on every render call,
|
|
108
|
-
// not just at construction time. pi's host re-runs render() whenever
|
|
109
|
-
// `tui.requestRender()` fires — that's our editor's mutation signal.
|
|
110
|
-
render: (width: number) =>
|
|
111
|
-
renderInlineCard({
|
|
112
|
-
width,
|
|
113
|
-
state: getForm(formId) ?? state,
|
|
114
|
-
theme,
|
|
115
|
-
}),
|
|
116
|
-
invalidate: () => {
|
|
117
|
-
/* nothing cached; renders are pure of state */
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
// Call through `pi` so pi's class-backed ExtensionAPI keeps its `this` binding.
|
|
123
|
-
register.call(pi, CUSTOM_TYPE, renderer);
|
|
124
|
-
rendererRegisteredHosts.add(pi);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// ---------------------------------------------------------------------------
|
|
128
|
-
// Open / drive a form
|
|
129
|
-
// ---------------------------------------------------------------------------
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Open an inline form. Returns a Promise that resolves with the user's
|
|
133
|
-
* coerced values on submit, `{kind:"cancel"}` on esc, or
|
|
134
|
-
* `{kind:"unsupported"}` when the host cannot mount a custom editor. The
|
|
135
|
-
* unsupported result lets callers fall back to another picker surface instead
|
|
136
|
-
* of surfacing a host `setEditorComponent` exception to the user.
|
|
137
|
-
*
|
|
138
|
-
* Requirements:
|
|
139
|
-
* - `pi.sendMessage` is available to add the sticky form card
|
|
140
|
-
* - `ctx.ui.setEditorComponent` is available and accepts the richer
|
|
141
|
-
* pi custom editor surface
|
|
142
|
-
*
|
|
143
|
-
* On any missing or incompatible surface we resolve `unsupported` so the
|
|
144
|
-
* caller can keep the existing missing-required-input path or use a supported
|
|
145
|
-
* overlay picker.
|
|
146
|
-
*/
|
|
147
|
-
export async function openInlineInputsForm(
|
|
148
|
-
pi: ExtensionAPI,
|
|
149
|
-
ctx: PiCommandContext,
|
|
150
|
-
opts: OpenInlineFormOpts,
|
|
151
|
-
): Promise<InlineFormResult> {
|
|
152
|
-
const setEditor = ctx.ui?.setEditorComponent;
|
|
153
|
-
const getEditor = ctx.ui?.getEditorComponent;
|
|
154
|
-
const sendMessage = pi.sendMessage;
|
|
155
|
-
if (typeof setEditor !== "function" || typeof sendMessage !== "function") {
|
|
156
|
-
return { kind: "unsupported" };
|
|
157
|
-
}
|
|
158
|
-
if (opts.fields.length === 0) {
|
|
159
|
-
// Defensive — caller should already have gated on fields.length > 0.
|
|
160
|
-
return { kind: "run", values: coerceValues(opts.fields, {}) };
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// ── Seed state ────────────────────────────────────────────────────────
|
|
164
|
-
const formId = makeFormId();
|
|
165
|
-
const prefilled = opts.prefilled ?? {};
|
|
166
|
-
const rawText: Record<string, string> = {};
|
|
167
|
-
for (const f of opts.fields) {
|
|
168
|
-
if (prefilled[f.name] !== undefined) {
|
|
169
|
-
rawText[f.name] = String(prefilled[f.name]);
|
|
170
|
-
} else if (f.default !== undefined) {
|
|
171
|
-
rawText[f.name] = String(f.default);
|
|
172
|
-
} else if (f.type === "select" && f.choices && f.choices.length > 0) {
|
|
173
|
-
rawText[f.name] = f.choices[0]!;
|
|
174
|
-
} else if (f.type === "boolean") {
|
|
175
|
-
rawText[f.name] = "false";
|
|
176
|
-
} else {
|
|
177
|
-
rawText[f.name] = "";
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
// Focus first invalid field if any.
|
|
181
|
-
const firstInvalid = opts.fields.findIndex((f) => f.required && (rawText[f.name] ?? "").trim() === "");
|
|
182
|
-
const focusedIdx = firstInvalid >= 0 ? firstInvalid : 0;
|
|
183
|
-
const state = createForm({
|
|
184
|
-
formId,
|
|
185
|
-
workflowName: opts.workflowName,
|
|
186
|
-
fields: opts.fields,
|
|
187
|
-
rawText,
|
|
188
|
-
focusedIdx,
|
|
189
|
-
submitChoiceIdx: 0,
|
|
190
|
-
caret: (rawText[opts.fields[focusedIdx]!.name] ?? "").length,
|
|
191
|
-
status: "editing",
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
// ── Swap in our editor and await user decision ────────────────────────
|
|
195
|
-
const previous: PiEditorFactory | undefined = typeof getEditor === "function" ? getEditor.call(ctx.ui) : undefined;
|
|
196
|
-
|
|
197
|
-
return new Promise<InlineFormResult>((resolve) => {
|
|
198
|
-
let resolved = false;
|
|
199
|
-
let activeEditor: PiEditorComponent | undefined;
|
|
200
|
-
let installedFactory: PiEditorFactory | undefined;
|
|
201
|
-
const shouldRestorePreviousEditor = (): boolean => {
|
|
202
|
-
if (typeof getEditor !== "function") return true;
|
|
203
|
-
try {
|
|
204
|
-
return getEditor.call(ctx.ui) === installedFactory;
|
|
205
|
-
} catch (err) {
|
|
206
|
-
// During `/new`, `/resume`, `/fork`, and `/reload`, pi marks the old
|
|
207
|
-
// extension command context as stale before tearing down the old editor
|
|
208
|
-
// surface. A workflow form that settles after that point must not write
|
|
209
|
-
// its captured pre-switch editor factory back into the fresh session.
|
|
210
|
-
if (isStaleExtensionContextError(err)) {
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
// Preserve the previous best-effort behavior for older or unusual hosts:
|
|
214
|
-
// if introspection fails for a non-stale reason, still try the restore
|
|
215
|
-
// and let the existing setEditor catch below keep the command safe.
|
|
216
|
-
return true;
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
const restorePreviousEditor = (): void => {
|
|
220
|
-
if (!shouldRestorePreviousEditor()) return;
|
|
221
|
-
try {
|
|
222
|
-
setEditor.call(ctx.ui, previous);
|
|
223
|
-
} catch {
|
|
224
|
-
// If the host rejects the previous factory as well, leave the host's
|
|
225
|
-
// current editor alone. The important part is that the workflow command
|
|
226
|
-
// resolves without rethrowing the host editor setup failure.
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
const settle = (result: InlineFormResult): void => {
|
|
230
|
-
if (resolved) return;
|
|
231
|
-
resolved = true;
|
|
232
|
-
finalizeForm(formId, result.kind === "run" ? "submit" : "cancel");
|
|
233
|
-
activeEditor?.dispose?.();
|
|
234
|
-
activeEditor = undefined;
|
|
235
|
-
// Restore the previous editor (or default if there wasn't one).
|
|
236
|
-
restorePreviousEditor();
|
|
237
|
-
resolve(result);
|
|
238
|
-
};
|
|
239
|
-
|
|
240
|
-
const factory: PiEditorFactory = (tui, _editorTheme, kb): PiEditorComponent => {
|
|
241
|
-
activeEditor = new InlineFormEditor(tui as { requestRender?: () => void }, {
|
|
242
|
-
formId,
|
|
243
|
-
theme: opts.theme,
|
|
244
|
-
// Pi injects its `KeybindingsManager` as the third factory arg; the
|
|
245
|
-
// editor uses it to route text-editing actions (delete word, line
|
|
246
|
-
// jump, etc.) through the user's resolved keybindings. Older hosts
|
|
247
|
-
// and tests pass a non-keybindings shape — the editor's
|
|
248
|
-
// `isKeybindingsLike` guard handles that gracefully.
|
|
249
|
-
keybindings: kb as ConstructorParameters<typeof InlineFormEditor>[1]["keybindings"],
|
|
250
|
-
onExit: (outcome) => {
|
|
251
|
-
if (outcome === "submit") {
|
|
252
|
-
settle({ kind: "run", values: coerceValues(opts.fields, state.rawText) });
|
|
253
|
-
} else {
|
|
254
|
-
settle({ kind: "cancel" });
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
|
-
});
|
|
258
|
-
return activeEditor;
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
installedFactory = factory;
|
|
262
|
-
|
|
263
|
-
try {
|
|
264
|
-
setEditor.call(ctx.ui, factory);
|
|
265
|
-
} catch {
|
|
266
|
-
activeEditor?.dispose?.();
|
|
267
|
-
activeEditor = undefined;
|
|
268
|
-
finalizeForm(formId, "cancel");
|
|
269
|
-
resolve({ kind: "unsupported" });
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
try {
|
|
274
|
-
(
|
|
275
|
-
sendMessage as unknown as (
|
|
276
|
-
msg: {
|
|
277
|
-
customType: string;
|
|
278
|
-
content?: string;
|
|
279
|
-
display?: boolean;
|
|
280
|
-
details?: FormMessageDetails;
|
|
281
|
-
},
|
|
282
|
-
options?: { excludeFromContext?: boolean },
|
|
283
|
-
) => void
|
|
284
|
-
).call(
|
|
285
|
-
pi,
|
|
286
|
-
{
|
|
287
|
-
customType: CUSTOM_TYPE,
|
|
288
|
-
content: opts.workflowName,
|
|
289
|
-
display: true,
|
|
290
|
-
details: { formId },
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
// The input form is a transient UI surface, not conversation. Keep it
|
|
294
|
-
// out of LLM context so spawning the picker and exiting without
|
|
295
|
-
// running the workflow never leaks the form into the model.
|
|
296
|
-
excludeFromContext: true,
|
|
297
|
-
},
|
|
298
|
-
);
|
|
299
|
-
} catch {
|
|
300
|
-
activeEditor?.dispose?.();
|
|
301
|
-
activeEditor = undefined;
|
|
302
|
-
restorePreviousEditor();
|
|
303
|
-
finalizeForm(formId, "cancel");
|
|
304
|
-
resolve({ kind: "unsupported" });
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// ---------------------------------------------------------------------------
|
|
310
|
-
// Helpers
|
|
311
|
-
// ---------------------------------------------------------------------------
|
|
312
|
-
|
|
313
|
-
function makeFormId(): string {
|
|
314
|
-
// Short, monotonic-enough — no need for cryptographic uniqueness, just
|
|
315
|
-
// enough separation between concurrent forms in scrollback.
|
|
316
|
-
return `wf-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
317
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared state store for inline workflow input forms.
|
|
3
|
-
*
|
|
4
|
-
* One entry per active or historical form, keyed by `formId` (uuid).
|
|
5
|
-
* The custom message renderer (chat-history card) and the custom editor
|
|
6
|
-
* (bottom-of-screen input) both read/write through this module so a single
|
|
7
|
-
* keystroke updates both views via `tui.requestRender()`.
|
|
8
|
-
*
|
|
9
|
-
* Lifecycle:
|
|
10
|
-
* `createForm(id, …)` → status = "editing"
|
|
11
|
-
* editor mutates fields → status stays "editing"
|
|
12
|
-
* `finalizeForm(id, "submit")` → status = "submitted", values frozen
|
|
13
|
-
* `finalizeForm(id, "cancel")` → status = "cancelled"
|
|
14
|
-
*
|
|
15
|
-
* After finalize the state stays in the map for the lifetime of the session.
|
|
16
|
-
* The renderer reads it to display the historical card. On a session boundary
|
|
17
|
-
* (`session_start`: new/resume/fork/reload) the store is cleared via
|
|
18
|
-
* {@link clearForms}, so a rehydrated `workflows:input-form` message has no
|
|
19
|
-
* backing state and its renderer suppresses output (returns null) — the input
|
|
20
|
-
* widget never reappears in chat after `/resume`.
|
|
21
|
-
*
|
|
22
|
-
* Why a global registry instead of closure capture: the message renderer is
|
|
23
|
-
* registered ONCE at factory time and called many times for any number of
|
|
24
|
-
* future messages. It can't close over per-invocation state. The formId in
|
|
25
|
-
* `message.details` is the only stable link between a chat-history entry and
|
|
26
|
-
* its mutable backing record.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
import type { WorkflowInputEntry } from "../extension/render-result.js";
|
|
30
|
-
|
|
31
|
-
export type FormStatus = "editing" | "submitted" | "cancelled";
|
|
32
|
-
|
|
33
|
-
export interface InlineFormState {
|
|
34
|
-
formId: string;
|
|
35
|
-
workflowName: string;
|
|
36
|
-
fields: readonly WorkflowInputEntry[];
|
|
37
|
-
/** Raw string per field; mirrors `inputs-picker.ts` semantics. */
|
|
38
|
-
rawText: Record<string, string>;
|
|
39
|
-
focusedIdx: number;
|
|
40
|
-
/** Reserved for older form snapshots; Submit is now a single final action. */
|
|
41
|
-
submitChoiceIdx: number;
|
|
42
|
-
caret: number;
|
|
43
|
-
status: FormStatus;
|
|
44
|
-
/** Tick counter; bumped on every mutation so renderers can hash-dedupe. */
|
|
45
|
-
version: number;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const FORMS = new Map<string, InlineFormState>();
|
|
49
|
-
|
|
50
|
-
export function createForm(init: Omit<InlineFormState, "version">): InlineFormState {
|
|
51
|
-
const state: InlineFormState = { ...init, version: 0 };
|
|
52
|
-
FORMS.set(state.formId, state);
|
|
53
|
-
return state;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function getForm(formId: string): InlineFormState | undefined {
|
|
57
|
-
return FORMS.get(formId);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Mutate the form in place and bump version. Returns the same state so
|
|
62
|
-
* callers can chain. Mutating directly + bumping centrally keeps every code
|
|
63
|
-
* path consistent — every keystroke handler closes with `touch(state)`.
|
|
64
|
-
*/
|
|
65
|
-
export function touch(state: InlineFormState): InlineFormState {
|
|
66
|
-
state.version += 1;
|
|
67
|
-
return state;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function finalizeForm(formId: string, outcome: "submit" | "cancel"): void {
|
|
71
|
-
const s = FORMS.get(formId);
|
|
72
|
-
if (!s) return;
|
|
73
|
-
s.status = outcome === "submit" ? "submitted" : "cancelled";
|
|
74
|
-
touch(s);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Clear all inline form state. Called on `session_start` so a resumed or
|
|
79
|
-
* replaced session never renders a stale live form, and so a rehydrated
|
|
80
|
-
* `workflows:input-form` message resolves to no backing state (its renderer
|
|
81
|
-
* then returns null and the host renders nothing).
|
|
82
|
-
*/
|
|
83
|
-
export function clearForms(): void {
|
|
84
|
-
FORMS.clear();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/** Test helper — clear the registry between tests. */
|
|
88
|
-
export function _resetForms(): void {
|
|
89
|
-
clearForms();
|
|
90
|
-
}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mount adapter for the interactive argument picker. Reads like clack:
|
|
3
|
-
* a single overlay mounts the picker via the real Pi `ctx.ui.custom(factory, options)`
|
|
4
|
-
* primitive; user submit resolves the parent promise with the coerced
|
|
5
|
-
* typed values. Escape resolves with `cancel` so the calling slash
|
|
6
|
-
* command can short-circuit. When `pi.ui.custom` is unavailable the
|
|
7
|
-
* promise resolves with `cancel` so the slash command can fall back to
|
|
8
|
-
* the "missing required input" text path.
|
|
9
|
-
*
|
|
10
|
-
* The adapter handles the cursor-blink timer in addition to the standard
|
|
11
|
-
* `pi.ui.custom` factory plumbing: a 530ms half-period interval (the
|
|
12
|
-
* Neovim default rate, matching atomic's design TUI) drives a `cursorOn`
|
|
13
|
-
* flag that's threaded into each render so single-line text fields show a
|
|
14
|
-
* blinking caret instead of a static block.
|
|
15
|
-
*
|
|
16
|
-
* Mount mode
|
|
17
|
-
* ----------
|
|
18
|
-
* Uses the same bottom-pinned primitive as `ask_user_question`: hide the
|
|
19
|
-
* host working-loader row for the lifetime of the blocking picker and mount
|
|
20
|
-
* with `{ overlay: false }`. pi's interactive `ExtensionUiController.custom`
|
|
21
|
-
* then REPLACES the editor with the mounted component
|
|
22
|
-
* (`editorContainer.clear(); addChild(component)`), which puts the focused
|
|
23
|
-
* picker in the bottom editor slot instead of a floating overlay. Suppressing
|
|
24
|
-
* `Working…` while mounted keeps host chrome from being wedged between the
|
|
25
|
-
* `/workflow …` command and the picker, avoiding the prior bottom-anchored
|
|
26
|
-
* overlay regression captured in
|
|
27
|
-
* `ui/workflows/Screenshot 2026-05-13 at 1.09.32 AM.png` without overlay
|
|
28
|
-
* anchor/padding tricks — the host owns geometry.
|
|
29
|
-
*
|
|
30
|
-
* cross-ref:
|
|
31
|
-
* - src/tui/inputs-picker.ts (pure state + render)
|
|
32
|
-
* - src/tui/session-overlays.ts (sibling picker; same mount mode)
|
|
33
|
-
* - src/extension/wiring.ts (PiCustomOverlayFunction / PiOverlayOptions)
|
|
34
|
-
* - pi docs/tui.md Mount points and return contracts
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
import type { WorkflowInputEntry } from "../extension/render-result.js";
|
|
38
|
-
import type { PiCustomComponent, PiCustomOverlayFactoryTui, PiCustomOverlayFunction } from "../extension/wiring.js";
|
|
39
|
-
import type { WorkflowInputValues } from "../shared/types.js";
|
|
40
|
-
import type { GraphTheme } from "./graph-theme.js";
|
|
41
|
-
import { coerceValues, createInputsPickerState, handleInputsPickerInput, renderInputsPicker } from "./inputs-picker.js";
|
|
42
|
-
import { isInputsPickerKey } from "./inputs-picker-input.js";
|
|
43
|
-
|
|
44
|
-
export interface InputsUiSurface {
|
|
45
|
-
custom?: PiCustomOverlayFunction;
|
|
46
|
-
setWorkingVisible?: (visible: boolean) => void;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export type InputsPickerResult = { kind: "run"; values: WorkflowInputValues } | { kind: "cancel" };
|
|
50
|
-
|
|
51
|
-
export interface OpenInputsPickerOpts {
|
|
52
|
-
workflowName: string;
|
|
53
|
-
fields: WorkflowInputEntry[];
|
|
54
|
-
/** Prefilled values (e.g. from `key=value` slash args). The form
|
|
55
|
-
* seeds these into the form so the user doesn't re-type what they typed. */
|
|
56
|
-
prefilled?: WorkflowInputValues;
|
|
57
|
-
theme: GraphTheme;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Mount the inputs picker. Resolves with the coerced typed value map on
|
|
62
|
-
* confirm, or `cancel` on esc / no UI surface.
|
|
63
|
-
*
|
|
64
|
-
* Behaviour matrix:
|
|
65
|
-
* - `pi.ui.custom` present: mounted in the editor slot, settled by `done()`
|
|
66
|
-
* - no `pi.ui.custom` at all: resolves `cancel` immediately so the slash
|
|
67
|
-
* command can fall back to the "missing
|
|
68
|
-
* required input" text path
|
|
69
|
-
*/
|
|
70
|
-
export function openInputsPicker(ui: InputsUiSurface, opts: OpenInputsPickerOpts): Promise<InputsPickerResult> {
|
|
71
|
-
return new Promise<InputsPickerResult>((resolve) => {
|
|
72
|
-
const { workflowName, fields, prefilled, theme } = opts;
|
|
73
|
-
if (fields.length === 0) {
|
|
74
|
-
// No inputs to collect — treat as immediate run with whatever the
|
|
75
|
-
// caller already prefilled (likely empty).
|
|
76
|
-
resolve({ kind: "run", values: coerceValues(fields, {}) });
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
let workingHidden = false;
|
|
81
|
-
const hideWorking = (): void => {
|
|
82
|
-
ui.setWorkingVisible?.(false);
|
|
83
|
-
workingHidden = true;
|
|
84
|
-
};
|
|
85
|
-
const restoreWorking = (): void => {
|
|
86
|
-
if (!workingHidden) return;
|
|
87
|
-
workingHidden = false;
|
|
88
|
-
ui.setWorkingVisible?.(true);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
hideWorking();
|
|
92
|
-
|
|
93
|
-
const custom = ui.custom;
|
|
94
|
-
if (typeof custom !== "function") {
|
|
95
|
-
restoreWorking();
|
|
96
|
-
resolve({ kind: "cancel" });
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const state = createInputsPickerState(fields, prefilled);
|
|
101
|
-
let settled = false;
|
|
102
|
-
let cursorOn = true;
|
|
103
|
-
let cursorTimer: ReturnType<typeof setInterval> | null = null;
|
|
104
|
-
|
|
105
|
-
const settleWithoutDone = (result: InputsPickerResult): void => {
|
|
106
|
-
if (settled) return;
|
|
107
|
-
settled = true;
|
|
108
|
-
if (cursorTimer) clearInterval(cursorTimer);
|
|
109
|
-
cursorTimer = null;
|
|
110
|
-
restoreWorking();
|
|
111
|
-
resolve(result);
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
const factory = (
|
|
115
|
-
tui: PiCustomOverlayFactoryTui,
|
|
116
|
-
_theme: unknown,
|
|
117
|
-
keys: unknown,
|
|
118
|
-
done: (r: undefined) => void,
|
|
119
|
-
): PiCustomComponent => {
|
|
120
|
-
// Start the blink as soon as the overlay mounts. We tear it down
|
|
121
|
-
// on dispose to avoid leaking timers across overlay lifecycles.
|
|
122
|
-
cursorTimer = setInterval(() => {
|
|
123
|
-
cursorOn = !cursorOn;
|
|
124
|
-
tui.requestRender?.();
|
|
125
|
-
}, 530);
|
|
126
|
-
|
|
127
|
-
const finish = (result: InputsPickerResult): void => {
|
|
128
|
-
if (settled) return;
|
|
129
|
-
settled = true;
|
|
130
|
-
if (cursorTimer) clearInterval(cursorTimer);
|
|
131
|
-
cursorTimer = null;
|
|
132
|
-
try {
|
|
133
|
-
done(undefined);
|
|
134
|
-
} finally {
|
|
135
|
-
restoreWorking();
|
|
136
|
-
resolve(result);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
return {
|
|
141
|
-
render: (width: number) =>
|
|
142
|
-
renderInputsPicker({
|
|
143
|
-
width,
|
|
144
|
-
theme,
|
|
145
|
-
workflowName,
|
|
146
|
-
fields,
|
|
147
|
-
state,
|
|
148
|
-
cursorOn,
|
|
149
|
-
}),
|
|
150
|
-
handleInput: (data: string): boolean => {
|
|
151
|
-
// Pi's `KeybindingsManager` is the third factory arg — the
|
|
152
|
-
// picker uses it so user-configured text-editing actions
|
|
153
|
-
// (delete word, line jump, etc.) work the same in the
|
|
154
|
-
// inline form. Pass it through structurally; the picker guards
|
|
155
|
-
// the shape itself.
|
|
156
|
-
const kb = keys as Parameters<typeof handleInputsPickerInput>[3];
|
|
157
|
-
const consumed = isInputsPickerKey(data, state, fields, kb);
|
|
158
|
-
const action = handleInputsPickerInput(data, state, fields, kb);
|
|
159
|
-
if (action.kind === "noop") {
|
|
160
|
-
tui.requestRender?.();
|
|
161
|
-
return consumed;
|
|
162
|
-
}
|
|
163
|
-
finish(action);
|
|
164
|
-
return true;
|
|
165
|
-
},
|
|
166
|
-
invalidate: () => tui.requestRender?.(),
|
|
167
|
-
dispose: () => {
|
|
168
|
-
settleWithoutDone({ kind: "cancel" });
|
|
169
|
-
},
|
|
170
|
-
};
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
// overlay: false — picker replaces the editor in-place (see header
|
|
174
|
-
// comment). The host owns geometry/focus; no overlayOptions are
|
|
175
|
-
// forwarded by interactive pi today.
|
|
176
|
-
try {
|
|
177
|
-
// handlesCtrlC: the picker treats Ctrl+C as cancel (inputs-picker-input).
|
|
178
|
-
void Promise.resolve(custom(factory, { overlay: false, handlesCtrlC: true })).catch(() => {
|
|
179
|
-
settleWithoutDone({ kind: "cancel" });
|
|
180
|
-
});
|
|
181
|
-
} catch {
|
|
182
|
-
settleWithoutDone({ kind: "cancel" });
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
}
|