@bastani/atomic 0.9.16-alpha.2 → 0.9.16-alpha.3
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 +7 -0
- package/dist/builtin/intercom/broker/spawn.ts +22 -2
- package/dist/builtin/intercom/index.bundle.mjs +61694 -0
- package/dist/builtin/intercom/package.json +3 -3
- package/dist/builtin/mcp/index.bundle.mjs +64901 -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 +85671 -0
- package/dist/builtin/web-access/index.bundle.mjs +67413 -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 +76391 -96336
- package/dist/builtin/workflows/src/index.bundle.mjs +73244 -0
- 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,407 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { type GitWorktreeGenerationAnchor, openGitWorktreeGenerationAnchor } from "./worktree-generation.js";
|
|
4
|
-
import { gitFailureMessage, isGitTimeoutResult, runGit, runGitReadOnlyProbe } from "./worktree-git-runner.js";
|
|
5
|
-
import { findCanonicalGitRoot } from "./worktree-root.js";
|
|
6
|
-
import type { GitResult, GitWorktreeSetupOptions, GitWorktreeSetupResult } from "./worktree-types.js";
|
|
7
|
-
|
|
8
|
-
export type { GitRunner } from "./worktree-git-runner.js";
|
|
9
|
-
export {
|
|
10
|
-
gitFailureMessage,
|
|
11
|
-
isGitTimeoutResult,
|
|
12
|
-
runGit,
|
|
13
|
-
runGitChecked,
|
|
14
|
-
runGitPlain,
|
|
15
|
-
withGitRunnerForTest,
|
|
16
|
-
} from "./worktree-git-runner.js";
|
|
17
|
-
|
|
18
|
-
export interface GitWorktreeSetupCache {
|
|
19
|
-
get(options: GitWorktreeSetupOptions): GitWorktreeSetupResult;
|
|
20
|
-
dispose(): void;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function gitWorktreeSetupCacheKey(options: GitWorktreeSetupOptions): string {
|
|
24
|
-
const repoRoot = repositoryRootForGitWorktree(options.cwd);
|
|
25
|
-
const { logicalRepoRoot } = cwdWithinGitRepository(options.cwd, repoRoot);
|
|
26
|
-
const worktreeRoot = resolveGitWorktreePath(options.gitWorktreeDir, logicalRepoRoot);
|
|
27
|
-
return JSON.stringify([
|
|
28
|
-
comparableRealPath(gitCommonDirForWorktree(repoRoot)),
|
|
29
|
-
comparablePathThroughExistingAncestor(worktreeRoot),
|
|
30
|
-
]);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
interface CachedGitWorktreeSetup {
|
|
34
|
-
readonly result: GitWorktreeSetupResult;
|
|
35
|
-
readonly identity: GitWorktreeIdentity;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function createGitWorktreeSetupCache(): GitWorktreeSetupCache {
|
|
39
|
-
const results = new Map<string, CachedGitWorktreeSetup>();
|
|
40
|
-
let disposed = false;
|
|
41
|
-
return {
|
|
42
|
-
get(options) {
|
|
43
|
-
if (disposed) throw new Error("Git worktree setup cache is already disposed");
|
|
44
|
-
const key = gitWorktreeSetupCacheKey(options);
|
|
45
|
-
const cached = results.get(key);
|
|
46
|
-
if (cached !== undefined) {
|
|
47
|
-
assertCachedGitWorktreeIdentity(cached, options);
|
|
48
|
-
return cached.result;
|
|
49
|
-
}
|
|
50
|
-
const result = setupGitWorktree(options);
|
|
51
|
-
results.set(key, { result, identity: captureGitWorktreeIdentity(result) });
|
|
52
|
-
return result;
|
|
53
|
-
},
|
|
54
|
-
dispose() {
|
|
55
|
-
if (disposed) return;
|
|
56
|
-
disposed = true;
|
|
57
|
-
let firstError: Error | undefined;
|
|
58
|
-
for (const cached of results.values()) {
|
|
59
|
-
try {
|
|
60
|
-
cached.identity.generation.dispose();
|
|
61
|
-
} catch (error) {
|
|
62
|
-
firstError ??= error instanceof Error ? error : new Error(String(error));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
results.clear();
|
|
66
|
-
if (firstError !== undefined) throw firstError;
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export function setupGitWorktreeCached(
|
|
72
|
-
options: GitWorktreeSetupOptions,
|
|
73
|
-
cache?: GitWorktreeSetupCache,
|
|
74
|
-
): GitWorktreeSetupResult {
|
|
75
|
-
return cache?.get(options) ?? setupGitWorktree(options);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function quoteShellArg(value: string): string {
|
|
79
|
-
if (process.platform === "win32") return `"${value.replace(/"/g, '""')}"`;
|
|
80
|
-
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function worktreeRecoveryCommand(repositoryRoot: string, worktreeDir: string): string {
|
|
84
|
-
return `git -C ${quoteShellArg(repositoryRoot)} worktree remove --force ${quoteShellArg(worktreeDir)}`;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function hasGrandparent(value: string): boolean {
|
|
88
|
-
const parent = path.dirname(value);
|
|
89
|
-
if (parent === value) return false;
|
|
90
|
-
const grandparent = path.dirname(parent);
|
|
91
|
-
return grandparent !== parent;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function pathAncestors(value: string): string[] {
|
|
95
|
-
const ancestors: string[] = [];
|
|
96
|
-
let current = value;
|
|
97
|
-
while (true) {
|
|
98
|
-
ancestors.push(current);
|
|
99
|
-
const parent = path.dirname(current);
|
|
100
|
-
if (parent === current) return ancestors;
|
|
101
|
-
current = parent;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function shouldPreserveLogicalPath(logicalPath: string): boolean {
|
|
106
|
-
return pathAncestors(logicalPath).some((ancestor) => {
|
|
107
|
-
try {
|
|
108
|
-
return fs.lstatSync(ancestor).isSymbolicLink() && hasGrandparent(ancestor);
|
|
109
|
-
} catch {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function canonicalizePreservingSymlinks(value: string): string {
|
|
116
|
-
const logicalPath = path.resolve(value);
|
|
117
|
-
const preserveLogicalPath = shouldPreserveLogicalPath(logicalPath);
|
|
118
|
-
try {
|
|
119
|
-
const canonical = fs.realpathSync.native(logicalPath);
|
|
120
|
-
return preserveLogicalPath && canonical !== logicalPath ? logicalPath : canonical;
|
|
121
|
-
} catch {
|
|
122
|
-
return logicalPath;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function resolveGitWorktreePath(value: string, repoRoot: string): string {
|
|
127
|
-
const trimmed = value.trim();
|
|
128
|
-
if (!trimmed) throw new Error("gitWorktreeDir cannot be empty");
|
|
129
|
-
if (trimmed.includes("\0")) {
|
|
130
|
-
throw new Error("gitWorktreeDir contains an unusable null byte; provide a valid path or omit gitWorktreeDir.");
|
|
131
|
-
}
|
|
132
|
-
return canonicalizePreservingSymlinks(path.isAbsolute(trimmed) ? trimmed : path.resolve(repoRoot, trimmed));
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
function comparableRealPath(value: string): string {
|
|
136
|
-
const realpath = fs.realpathSync.native(value).replace(/\\/g, "/");
|
|
137
|
-
return process.platform === "win32" ? realpath.toLowerCase() : realpath;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function comparablePathThroughExistingAncestor(value: string): string {
|
|
141
|
-
let existing = path.resolve(value);
|
|
142
|
-
const missing: string[] = [];
|
|
143
|
-
while (!pathExistsSync(existing)) {
|
|
144
|
-
const parent = path.dirname(existing);
|
|
145
|
-
if (parent === existing) break;
|
|
146
|
-
missing.unshift(path.basename(existing));
|
|
147
|
-
existing = parent;
|
|
148
|
-
}
|
|
149
|
-
const resolved = path.resolve(comparableRealPath(existing), ...missing).replace(/\\/g, "/");
|
|
150
|
-
return process.platform === "win32" ? resolved.toLowerCase() : resolved;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
function validateWorktreeOutsideInvokingCheckout(worktreeRoot: string, repoRoot: string): void {
|
|
154
|
-
const repository = comparableRealPath(repoRoot);
|
|
155
|
-
const candidate = comparablePathThroughExistingAncestor(worktreeRoot);
|
|
156
|
-
const relativePath = path.relative(repository, candidate);
|
|
157
|
-
if (relativePath === "") {
|
|
158
|
-
throw new Error(
|
|
159
|
-
"gitWorktreeDir must not resolve to the invoking checkout; provide a separate same-repository worktree path.",
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
if (!relativePath.startsWith(`..${path.sep}`) && relativePath !== ".." && !path.isAbsolute(relativePath)) {
|
|
163
|
-
throw new Error(
|
|
164
|
-
"gitWorktreeDir must be outside the invoking checkout; provide a separate same-repository worktree path.",
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
function gitPathFromOutput(value: string, cwd: string): string | undefined {
|
|
170
|
-
const trimmed = value.trim();
|
|
171
|
-
if (!trimmed) return undefined;
|
|
172
|
-
return path.isAbsolute(trimmed) ? path.resolve(trimmed) : path.resolve(cwd, trimmed);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
function pathExistsSync(value: string): boolean {
|
|
176
|
-
try {
|
|
177
|
-
fs.statSync(value);
|
|
178
|
-
return true;
|
|
179
|
-
} catch (error) {
|
|
180
|
-
const code =
|
|
181
|
-
error && typeof error === "object" && "code" in error ? (error as { code?: unknown }).code : undefined;
|
|
182
|
-
if (code === "ENOENT" || code === "ENOTDIR") return false;
|
|
183
|
-
throw error;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
function repositoryRootForGitWorktree(cwd: string): string {
|
|
188
|
-
const result = runGitReadOnlyProbe(cwd, ["rev-parse", "--show-toplevel"]);
|
|
189
|
-
if (result.status !== 0) {
|
|
190
|
-
if (isGitTimeoutResult(result)) {
|
|
191
|
-
throw new Error(
|
|
192
|
-
`Timed out while checking the Git repository for gitWorktreeDir from ${cwd}. Git reported: ${gitFailureMessage(result)}`,
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
throw new Error(
|
|
196
|
-
`gitWorktreeDir requires the workflow to be invoked from inside a Git repository. Start from a Git checkout or omit gitWorktreeDir. Git reported: ${gitFailureMessage(result)}`,
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
const normalized = gitPathFromOutput(result.stdout, cwd);
|
|
200
|
-
if (normalized === undefined) {
|
|
201
|
-
throw new Error(
|
|
202
|
-
`gitWorktreeDir could not resolve the repository top level from ${cwd}: git returned an empty path.`,
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
return normalized;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export function gitTopLevelFromResult(result: GitResult, cwd: string, description: string): string | undefined {
|
|
209
|
-
if (result.status !== 0) {
|
|
210
|
-
if (isGitTimeoutResult(result)) {
|
|
211
|
-
throw new Error(`Timed out while validating ${description}. Git reported: ${gitFailureMessage(result)}`);
|
|
212
|
-
}
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
return gitPathFromOutput(result.stdout, cwd);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
function gitTopLevel(cwd: string): string | undefined {
|
|
219
|
-
return gitTopLevelFromResult(
|
|
220
|
-
runGitReadOnlyProbe(cwd, ["rev-parse", "--show-toplevel"]),
|
|
221
|
-
cwd,
|
|
222
|
-
`gitWorktreeDir ${cwd}`,
|
|
223
|
-
);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
function gitCommonDirForWorktree(cwd: string): string {
|
|
227
|
-
const result = runGitReadOnlyProbe(cwd, ["rev-parse", "--git-common-dir"]);
|
|
228
|
-
if (result.status !== 0) {
|
|
229
|
-
if (isGitTimeoutResult(result)) {
|
|
230
|
-
throw new Error(
|
|
231
|
-
`Timed out while validating Git common directory for gitWorktreeDir ${cwd}. Git reported: ${gitFailureMessage(result)}`,
|
|
232
|
-
);
|
|
233
|
-
}
|
|
234
|
-
throw new Error(
|
|
235
|
-
`Failed to validate Git common directory for gitWorktreeDir ${cwd}. Git reported: ${gitFailureMessage(result)}`,
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
const gitPath = gitPathFromOutput(result.stdout, cwd);
|
|
239
|
-
if (gitPath === undefined) throw new Error("git rev-parse --git-common-dir returned an empty path");
|
|
240
|
-
return gitPath;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
function dirnameForEachRelativeComponent(base: string, relativePath: string): string | undefined {
|
|
244
|
-
if (relativePath === "") return base;
|
|
245
|
-
let current = base;
|
|
246
|
-
for (const component of relativePath.split(/[\\/]+/).filter(Boolean)) {
|
|
247
|
-
if (component === ".") continue;
|
|
248
|
-
if (component === "..") return undefined;
|
|
249
|
-
current = path.dirname(current);
|
|
250
|
-
}
|
|
251
|
-
return current;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function cwdWithinGitRepository(cwd: string, repoRoot: string): { relativeCwd: string; logicalRepoRoot: string } {
|
|
255
|
-
const sourceCwd = fs.realpathSync.native(cwd);
|
|
256
|
-
const sourceRepoRoot = fs.realpathSync.native(repoRoot);
|
|
257
|
-
const relativeCwd = path.relative(sourceRepoRoot, sourceCwd);
|
|
258
|
-
const safeRelativeCwd =
|
|
259
|
-
relativeCwd === "" || relativeCwd.startsWith("..") || path.isAbsolute(relativeCwd) ? "" : relativeCwd;
|
|
260
|
-
const logicalCwd = canonicalizePreservingSymlinks(cwd);
|
|
261
|
-
return {
|
|
262
|
-
relativeCwd: safeRelativeCwd,
|
|
263
|
-
logicalRepoRoot: dirnameForEachRelativeComponent(logicalCwd, safeRelativeCwd) ?? repoRoot,
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
function workspaceCwdForGitWorktreeRoot(worktreeRoot: string, relativeCwd: string): string {
|
|
268
|
-
return relativeCwd === "" ? worktreeRoot : path.join(worktreeRoot, relativeCwd);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
function validateExistingGitWorktreeRoot(worktreeRoot: string, repoRoot: string): void {
|
|
272
|
-
const topLevel = gitTopLevel(worktreeRoot);
|
|
273
|
-
if (topLevel === undefined) {
|
|
274
|
-
throw new Error(`gitWorktreeDir already exists but is not a Git worktree: ${worktreeRoot}`);
|
|
275
|
-
}
|
|
276
|
-
if (comparableRealPath(worktreeRoot) !== comparableRealPath(topLevel)) {
|
|
277
|
-
throw new Error(
|
|
278
|
-
`gitWorktreeDir already exists but is not a Git worktree root: ${worktreeRoot}. Git top-level checkout is ${topLevel}`,
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
if (
|
|
282
|
-
comparableRealPath(gitCommonDirForWorktree(repoRoot)) !== comparableRealPath(gitCommonDirForWorktree(topLevel))
|
|
283
|
-
) {
|
|
284
|
-
throw new Error(
|
|
285
|
-
`gitWorktreeDir already exists but does not belong to the invoking Git repository: ${worktreeRoot}`,
|
|
286
|
-
);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
interface GitWorktreeIdentitySnapshot {
|
|
291
|
-
readonly worktreeRealPath: string;
|
|
292
|
-
readonly repositoryRealPath: string;
|
|
293
|
-
readonly gitDirRealPath: string;
|
|
294
|
-
readonly commonDirRealPath: string;
|
|
295
|
-
readonly device: number;
|
|
296
|
-
readonly inode: number;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
interface GitWorktreeIdentity extends GitWorktreeIdentitySnapshot {
|
|
300
|
-
readonly generation: GitWorktreeGenerationAnchor;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
function gitDirectoryForWorktree(cwd: string): string {
|
|
304
|
-
const result = runGitReadOnlyProbe(cwd, ["rev-parse", "--absolute-git-dir"]);
|
|
305
|
-
if (result.status !== 0) {
|
|
306
|
-
throw new Error(
|
|
307
|
-
`Failed to validate Git directory for gitWorktreeDir ${cwd}. Git reported: ${gitFailureMessage(result)}`,
|
|
308
|
-
);
|
|
309
|
-
}
|
|
310
|
-
const gitDir = gitPathFromOutput(result.stdout, cwd);
|
|
311
|
-
if (gitDir === undefined) throw new Error("git rev-parse --absolute-git-dir returned an empty path");
|
|
312
|
-
return gitDir;
|
|
313
|
-
}
|
|
314
|
-
function captureGitWorktreeIdentitySnapshot(setup: GitWorktreeSetupResult): GitWorktreeIdentitySnapshot {
|
|
315
|
-
validateWorktreeOutsideInvokingCheckout(setup.worktreeRoot, setup.repositoryRoot);
|
|
316
|
-
validateExistingGitWorktreeRoot(setup.worktreeRoot, setup.repositoryRoot);
|
|
317
|
-
const stats = fs.statSync(setup.worktreeRoot);
|
|
318
|
-
return {
|
|
319
|
-
worktreeRealPath: comparableRealPath(setup.worktreeRoot),
|
|
320
|
-
repositoryRealPath: comparableRealPath(setup.repositoryRoot),
|
|
321
|
-
gitDirRealPath: comparableRealPath(gitDirectoryForWorktree(setup.worktreeRoot)),
|
|
322
|
-
commonDirRealPath: comparableRealPath(gitCommonDirForWorktree(setup.worktreeRoot)),
|
|
323
|
-
device: stats.dev,
|
|
324
|
-
inode: stats.ino,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
function captureGitWorktreeIdentity(setup: GitWorktreeSetupResult): GitWorktreeIdentity {
|
|
329
|
-
const snapshot = captureGitWorktreeIdentitySnapshot(setup);
|
|
330
|
-
return { ...snapshot, generation: openGitWorktreeGenerationAnchor(setup.worktreeRoot) };
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
function assertCachedGitWorktreeIdentity(cached: CachedGitWorktreeSetup, options: GitWorktreeSetupOptions): void {
|
|
334
|
-
let current: GitWorktreeIdentitySnapshot;
|
|
335
|
-
try {
|
|
336
|
-
current = captureGitWorktreeIdentitySnapshot(cached.result);
|
|
337
|
-
cached.identity.generation.assertCurrent();
|
|
338
|
-
} catch (error) {
|
|
339
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
340
|
-
throw new Error(`Cached gitWorktreeDir changed before reuse: ${options.gitWorktreeDir}. Reason: ${message}`);
|
|
341
|
-
}
|
|
342
|
-
const expected = cached.identity;
|
|
343
|
-
if (
|
|
344
|
-
current.worktreeRealPath !== expected.worktreeRealPath ||
|
|
345
|
-
current.repositoryRealPath !== expected.repositoryRealPath ||
|
|
346
|
-
current.gitDirRealPath !== expected.gitDirRealPath ||
|
|
347
|
-
current.commonDirRealPath !== expected.commonDirRealPath ||
|
|
348
|
-
current.device !== expected.device ||
|
|
349
|
-
current.inode !== expected.inode
|
|
350
|
-
) {
|
|
351
|
-
throw new Error(
|
|
352
|
-
`Cached gitWorktreeDir changed before reuse: ${options.gitWorktreeDir}. Start a new run with the intended same-repository worktree.`,
|
|
353
|
-
);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
export function setupGitWorktree(options: GitWorktreeSetupOptions): GitWorktreeSetupResult {
|
|
358
|
-
const repoRoot = repositoryRootForGitWorktree(options.cwd);
|
|
359
|
-
const mainRoot = findCanonicalGitRoot(repoRoot);
|
|
360
|
-
if (mainRoot === undefined) {
|
|
361
|
-
throw new Error(`Unable to resolve the canonical main Git repository root from ${repoRoot}.`);
|
|
362
|
-
}
|
|
363
|
-
const { relativeCwd, logicalRepoRoot } = cwdWithinGitRepository(options.cwd, repoRoot);
|
|
364
|
-
const worktreeRoot = resolveGitWorktreePath(options.gitWorktreeDir, logicalRepoRoot);
|
|
365
|
-
validateWorktreeOutsideInvokingCheckout(worktreeRoot, repoRoot);
|
|
366
|
-
if (pathExistsSync(worktreeRoot)) {
|
|
367
|
-
validateExistingGitWorktreeRoot(worktreeRoot, repoRoot);
|
|
368
|
-
return {
|
|
369
|
-
worktreeRoot,
|
|
370
|
-
cwd: workspaceCwdForGitWorktreeRoot(worktreeRoot, relativeCwd),
|
|
371
|
-
repositoryRoot: repoRoot,
|
|
372
|
-
created: false,
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
try {
|
|
377
|
-
fs.mkdirSync(path.dirname(worktreeRoot), { recursive: true });
|
|
378
|
-
} catch (error) {
|
|
379
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
380
|
-
throw new Error(`Failed to create parent directory for requested gitWorktreeDir ${worktreeRoot}: ${message}`);
|
|
381
|
-
}
|
|
382
|
-
const baseRef = options.baseBranch?.trim() || "HEAD";
|
|
383
|
-
const result = runGit(mainRoot, ["worktree", "add", "--detach", worktreeRoot, baseRef]);
|
|
384
|
-
if (result.status !== 0) {
|
|
385
|
-
throw new Error(
|
|
386
|
-
[
|
|
387
|
-
`Failed to create git worktree at requested gitWorktreeDir ${worktreeRoot} from ${baseRef}. Git reported: ${gitFailureMessage(result)}`,
|
|
388
|
-
`If another process just created this same-repository worktree, rerun the workflow to resume it. If this is an orphaned worktree from an interrupted run, recover or remove it with: ${worktreeRecoveryCommand(mainRoot, worktreeRoot)}`,
|
|
389
|
-
].join("\n"),
|
|
390
|
-
);
|
|
391
|
-
}
|
|
392
|
-
try {
|
|
393
|
-
validateWorktreeOutsideInvokingCheckout(worktreeRoot, repoRoot);
|
|
394
|
-
validateExistingGitWorktreeRoot(worktreeRoot, repoRoot);
|
|
395
|
-
} catch (error) {
|
|
396
|
-
// Best-effort rollback of a target that changed while Git was creating it.
|
|
397
|
-
runGit(mainRoot, ["worktree", "remove", "--force", worktreeRoot]);
|
|
398
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
399
|
-
throw new Error(`Created gitWorktreeDir failed post-creation validation: ${message}`);
|
|
400
|
-
}
|
|
401
|
-
return {
|
|
402
|
-
worktreeRoot,
|
|
403
|
-
cwd: workspaceCwdForGitWorktreeRoot(worktreeRoot, relativeCwd),
|
|
404
|
-
repositoryRoot: repoRoot,
|
|
405
|
-
created: true,
|
|
406
|
-
};
|
|
407
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { runGit, runGitPlain } from "./worktree-git.js";
|
|
4
|
-
|
|
5
|
-
function tracked(repo: string, relativePath: string): boolean {
|
|
6
|
-
const result = runGit(repo, ["ls-files", "--error-unmatch", "--", relativePath]);
|
|
7
|
-
return result.status === 0;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
function hasTrackedPathComponent(repo: string, relativePath: string): boolean {
|
|
11
|
-
const components = relativePath.split(/[\\/]+/).filter(Boolean);
|
|
12
|
-
let candidate = "";
|
|
13
|
-
for (const component of components) {
|
|
14
|
-
candidate = candidate ? `${candidate}/${component}` : component;
|
|
15
|
-
const result = runGit(repo, ["ls-files", "--stage", "--", candidate]);
|
|
16
|
-
if (result.status !== 0) continue;
|
|
17
|
-
const exact = result.stdout.split(/\r?\n/).some((line) => line.slice(line.indexOf("\t") + 1) === candidate);
|
|
18
|
-
if (exact) return true;
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function copyUntrackedFile(mainRoot: string, worktreeRoot: string, relativePath: string): boolean {
|
|
24
|
-
const source = path.join(mainRoot, relativePath);
|
|
25
|
-
const destination = path.join(worktreeRoot, relativePath);
|
|
26
|
-
if (!fs.existsSync(source) || fs.existsSync(destination) || hasTrackedPathComponent(worktreeRoot, relativePath))
|
|
27
|
-
return false;
|
|
28
|
-
fs.mkdirSync(path.dirname(destination), { recursive: true });
|
|
29
|
-
fs.copyFileSync(source, destination);
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function propagateLocalSettings(mainRoot: string, worktreeRoot: string): string[] {
|
|
34
|
-
const copied: string[] = [];
|
|
35
|
-
if (copyUntrackedFile(mainRoot, worktreeRoot, ".atomic/settings.local.json"))
|
|
36
|
-
copied.push(".atomic/settings.local.json");
|
|
37
|
-
if (
|
|
38
|
-
!tracked(mainRoot, ".atomic/settings.json") &&
|
|
39
|
-
copyUntrackedFile(mainRoot, worktreeRoot, ".atomic/settings.json")
|
|
40
|
-
) {
|
|
41
|
-
copied.push(".atomic/settings.json");
|
|
42
|
-
}
|
|
43
|
-
return copied;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function populatedHooksDirectory(mainRoot: string): string | undefined {
|
|
47
|
-
const husky = path.join(mainRoot, ".husky");
|
|
48
|
-
try {
|
|
49
|
-
if (fs.statSync(husky).isDirectory()) return husky;
|
|
50
|
-
} catch {
|
|
51
|
-
// Try ordinary Git hooks.
|
|
52
|
-
}
|
|
53
|
-
const hooks = path.join(mainRoot, ".git", "hooks");
|
|
54
|
-
try {
|
|
55
|
-
const populated = fs
|
|
56
|
-
.readdirSync(hooks, { withFileTypes: true })
|
|
57
|
-
.some((entry) => entry.isFile() && !entry.name.endsWith(".sample"));
|
|
58
|
-
return populated ? hooks : undefined;
|
|
59
|
-
} catch {
|
|
60
|
-
return undefined;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function configureSharedHooksPath(mainRoot: string): void {
|
|
65
|
-
const desired = populatedHooksDirectory(mainRoot);
|
|
66
|
-
if (desired === undefined) return;
|
|
67
|
-
const current = runGitPlain(mainRoot, ["config", "--get", "core.hooksPath"]);
|
|
68
|
-
if (current.status === 0 && path.resolve(mainRoot, current.stdout.trim()) === desired) return;
|
|
69
|
-
const configured = runGitPlain(mainRoot, ["config", "core.hooksPath", desired]);
|
|
70
|
-
if (configured.status !== 0) {
|
|
71
|
-
throw new Error(configured.stderr.trim() || "failed to configure shared core.hooksPath");
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function normalizeSymlinkDirectory(value: string): string | undefined {
|
|
76
|
-
const trimmed = value.trim();
|
|
77
|
-
if (!trimmed || path.isAbsolute(trimmed)) return undefined;
|
|
78
|
-
const normalized = path.normalize(trimmed);
|
|
79
|
-
if (normalized === "." || normalized === ".." || normalized.startsWith(`..${path.sep}`)) return undefined;
|
|
80
|
-
return normalized;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function symlinkConfiguredDirectories(
|
|
84
|
-
mainRoot: string,
|
|
85
|
-
worktreeRoot: string,
|
|
86
|
-
directories: readonly string[],
|
|
87
|
-
): string[] {
|
|
88
|
-
const synthetic: string[] = [];
|
|
89
|
-
for (const rawDirectory of directories) {
|
|
90
|
-
const relativePath = normalizeSymlinkDirectory(rawDirectory);
|
|
91
|
-
if (relativePath === undefined || synthetic.includes(relativePath)) continue;
|
|
92
|
-
const source = path.join(mainRoot, relativePath);
|
|
93
|
-
const destination = path.join(worktreeRoot, relativePath);
|
|
94
|
-
if (!fs.existsSync(source) || fs.existsSync(destination) || hasTrackedPathComponent(worktreeRoot, relativePath))
|
|
95
|
-
continue;
|
|
96
|
-
fs.mkdirSync(path.dirname(destination), { recursive: true });
|
|
97
|
-
try {
|
|
98
|
-
fs.symlinkSync(source, destination, process.platform === "win32" ? "junction" : undefined);
|
|
99
|
-
synthetic.push(relativePath);
|
|
100
|
-
} catch {
|
|
101
|
-
// Optional setup: unsupported filesystems may reject symlinks.
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return synthetic;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function copyWorktreeIncludes(mainRoot: string, worktreeRoot: string): void {
|
|
108
|
-
if (!fs.existsSync(path.join(mainRoot, ".worktreeinclude"))) return;
|
|
109
|
-
const ignored = runGit(mainRoot, ["ls-files", "--others", "--ignored", "--exclude-standard"]);
|
|
110
|
-
const included = runGit(mainRoot, ["ls-files", "--others", "--ignored", "--exclude-from=.worktreeinclude"]);
|
|
111
|
-
if (ignored.status !== 0 || included.status !== 0) return;
|
|
112
|
-
const ignoredPaths = new Set(ignored.stdout.split(/\r?\n/).filter(Boolean));
|
|
113
|
-
for (const relativePath of included.stdout.split(/\r?\n/).filter(Boolean)) {
|
|
114
|
-
if (!ignoredPaths.has(relativePath) || hasTrackedPathComponent(worktreeRoot, relativePath)) continue;
|
|
115
|
-
const source = path.join(mainRoot, relativePath);
|
|
116
|
-
const destination = path.join(worktreeRoot, relativePath);
|
|
117
|
-
try {
|
|
118
|
-
if (!fs.statSync(source).isFile() || fs.existsSync(destination)) continue;
|
|
119
|
-
fs.mkdirSync(path.dirname(destination), { recursive: true });
|
|
120
|
-
fs.copyFileSync(source, destination);
|
|
121
|
-
} catch {
|
|
122
|
-
// A concurrently removed ignored file is harmless.
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export function performPostCreationSetup(
|
|
128
|
-
mainRoot: string,
|
|
129
|
-
worktreeRoot: string,
|
|
130
|
-
symlinkDirectories: readonly string[],
|
|
131
|
-
): string[] {
|
|
132
|
-
const syntheticPaths = propagateLocalSettings(mainRoot, worktreeRoot);
|
|
133
|
-
configureSharedHooksPath(mainRoot);
|
|
134
|
-
syntheticPaths.push(...symlinkConfiguredDirectories(mainRoot, worktreeRoot, symlinkDirectories));
|
|
135
|
-
copyWorktreeIncludes(mainRoot, worktreeRoot);
|
|
136
|
-
return syntheticPaths;
|
|
137
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
|
|
4
|
-
function pathFromPointer(contents: string, prefix: string, base: string): string | undefined {
|
|
5
|
-
if (!contents.startsWith(prefix)) return undefined;
|
|
6
|
-
const value = contents.slice(prefix.length).trim();
|
|
7
|
-
if (!value) return undefined;
|
|
8
|
-
return path.resolve(base, value);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function readText(file: string): string | undefined {
|
|
12
|
-
try {
|
|
13
|
-
return fs.readFileSync(file, "utf8");
|
|
14
|
-
} catch {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function samePath(left: string, right: string): boolean {
|
|
20
|
-
try {
|
|
21
|
-
const a = fs.realpathSync.native(left);
|
|
22
|
-
const b = fs.realpathSync.native(right);
|
|
23
|
-
return process.platform === "win32" ? a.toLowerCase() === b.toLowerCase() : a === b;
|
|
24
|
-
} catch {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** Find the nearest checkout root without invoking Git. */
|
|
30
|
-
export function findGitRoot(cwd: string): string | undefined {
|
|
31
|
-
let current = path.resolve(cwd);
|
|
32
|
-
try {
|
|
33
|
-
if (!fs.statSync(current).isDirectory()) current = path.dirname(current);
|
|
34
|
-
} catch {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
while (true) {
|
|
38
|
-
try {
|
|
39
|
-
const entry = fs.statSync(path.join(current, ".git"));
|
|
40
|
-
if (entry.isDirectory() || entry.isFile()) return current;
|
|
41
|
-
} catch {
|
|
42
|
-
// Continue walking.
|
|
43
|
-
}
|
|
44
|
-
const parent = path.dirname(current);
|
|
45
|
-
if (parent === current) return undefined;
|
|
46
|
-
current = parent;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** Resolve only standard `git worktree add` layouts to their main checkout. */
|
|
51
|
-
export function resolveMainRepoRoot(repoRoot: string): string | undefined {
|
|
52
|
-
const gitEntry = path.join(repoRoot, ".git");
|
|
53
|
-
let stats: fs.Stats;
|
|
54
|
-
try {
|
|
55
|
-
stats = fs.statSync(gitEntry);
|
|
56
|
-
} catch {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
if (stats.isDirectory()) return path.resolve(repoRoot);
|
|
60
|
-
if (!stats.isFile()) return undefined;
|
|
61
|
-
|
|
62
|
-
const pointer = readText(gitEntry);
|
|
63
|
-
if (pointer === undefined) return undefined;
|
|
64
|
-
const gitDir = pathFromPointer(pointer, "gitdir:", repoRoot);
|
|
65
|
-
if (gitDir === undefined || path.basename(path.dirname(gitDir)) !== "worktrees") return undefined;
|
|
66
|
-
const commonGitDir = path.dirname(path.dirname(gitDir));
|
|
67
|
-
if (path.basename(commonGitDir) !== ".git") return undefined;
|
|
68
|
-
|
|
69
|
-
// A real linked-worktree admin directory points back to this checkout and
|
|
70
|
-
// declares the common directory. These checks reject crafted foreign pointers.
|
|
71
|
-
const backPointer = readText(path.join(gitDir, "gitdir"));
|
|
72
|
-
const commonPointer = readText(path.join(gitDir, "commondir"));
|
|
73
|
-
if (backPointer === undefined || commonPointer === undefined) return undefined;
|
|
74
|
-
const linkedGitEntry = path.resolve(gitDir, backPointer.trim());
|
|
75
|
-
const declaredCommonDir = path.resolve(gitDir, commonPointer.trim());
|
|
76
|
-
if (!backPointer.trim() || !commonPointer.trim()) return undefined;
|
|
77
|
-
if (!samePath(linkedGitEntry, gitEntry) || !samePath(declaredCommonDir, commonGitDir)) return undefined;
|
|
78
|
-
return path.dirname(commonGitDir);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export function findCanonicalGitRoot(cwd: string): string | undefined {
|
|
82
|
-
const repoRoot = findGitRoot(cwd);
|
|
83
|
-
return repoRoot === undefined ? undefined : resolveMainRepoRoot(repoRoot);
|
|
84
|
-
}
|