@bastani/atomic 0.9.11-alpha.4 → 0.9.11-alpha.6
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 +55 -0
- package/README.md +12 -5
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/CHANGELOG.md +6 -0
- package/dist/builtin/mcp/README.md +3 -3
- package/dist/builtin/mcp/cli.js +0 -1
- package/dist/builtin/mcp/config.ts +0 -2
- package/dist/builtin/mcp/package.json +3 -3
- package/dist/builtin/mcp/types.ts +0 -1
- package/dist/builtin/subagents/CHANGELOG.md +19 -0
- package/dist/builtin/subagents/README.md +10 -1
- package/dist/builtin/subagents/agents/code-simplifier.md +47 -102
- package/dist/builtin/subagents/agents/codebase-analyzer.md +27 -130
- package/dist/builtin/subagents/agents/codebase-locator.md +24 -83
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +60 -259
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +29 -207
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +28 -150
- package/dist/builtin/subagents/agents/codebase-research-locator.md +21 -118
- package/dist/builtin/subagents/agents/debugger.md +29 -65
- package/dist/builtin/subagents/agents/worker.md +23 -30
- package/dist/builtin/subagents/package.json +4 -4
- package/dist/builtin/subagents/prompts/gather-context-and-clarify.md +18 -11
- package/dist/builtin/subagents/prompts/parallel-cleanup.md +34 -33
- package/dist/builtin/subagents/prompts/parallel-context-build.md +22 -36
- package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +20 -52
- package/dist/builtin/subagents/prompts/parallel-research.md +17 -41
- package/dist/builtin/subagents/prompts/parallel-review.md +23 -28
- package/dist/builtin/subagents/prompts/review-loop.md +18 -27
- package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
- package/dist/builtin/subagents/src/extension/prompt-guidance.ts +4 -1
- package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +23 -4
- package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +2 -0
- package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +10 -0
- package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +1 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +2 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +8 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +6 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +2 -0
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +7 -0
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +1 -0
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +3 -0
- package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +1 -2
- package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +1 -0
- package/dist/builtin/subagents/src/runs/shared/pi-args.ts +5 -3
- package/dist/builtin/subagents/src/shared/settings.ts +4 -0
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +53 -0
- package/dist/builtin/workflows/README.md +72 -70
- package/dist/builtin/workflows/ambient.d.ts +0 -5
- package/dist/builtin/workflows/builtin/adversarial-verification-prompts.ts +7 -4
- package/dist/builtin/workflows/builtin/adversarial-verification-runner.ts +1 -1
- package/dist/builtin/workflows/builtin/adversarial-verification.ts +2 -1
- package/dist/builtin/workflows/builtin/classify-and-act-prompts.ts +5 -2
- package/dist/builtin/workflows/builtin/classify-and-act-runner.ts +5 -7
- package/dist/builtin/workflows/builtin/classify-and-act.ts +3 -2
- package/dist/builtin/workflows/builtin/fan-out-and-synthesize-prompts.ts +6 -3
- package/dist/builtin/workflows/builtin/fan-out-and-synthesize-runner.ts +5 -5
- package/dist/builtin/workflows/builtin/fan-out-and-synthesize.ts +3 -2
- package/dist/builtin/workflows/builtin/generate-and-filter-prompts.ts +7 -4
- package/dist/builtin/workflows/builtin/generate-and-filter-runner.ts +6 -3
- package/dist/builtin/workflows/builtin/generate-and-filter.ts +3 -2
- package/dist/builtin/workflows/builtin/goal-artifacts.ts +1 -1
- package/dist/builtin/workflows/builtin/goal-models.ts +39 -39
- package/dist/builtin/workflows/builtin/goal-orchestrator-prompts.ts +94 -0
- package/dist/builtin/workflows/builtin/goal-prompts.ts +66 -286
- package/dist/builtin/workflows/builtin/goal-reducer.ts +1 -1
- package/dist/builtin/workflows/builtin/goal-runner.ts +72 -116
- package/dist/builtin/workflows/builtin/goal.ts +9 -8
- package/dist/builtin/workflows/builtin/index.d.ts +17 -112
- package/dist/builtin/workflows/builtin/index.ts +1 -2
- package/dist/builtin/workflows/builtin/loop-until-done-prompts.ts +20 -12
- package/dist/builtin/workflows/builtin/loop-until-done-runner.ts +3 -0
- package/dist/builtin/workflows/builtin/loop-until-done.ts +3 -2
- package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +52 -55
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +45 -52
- package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +41 -46
- package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +16 -21
- package/dist/builtin/workflows/builtin/open-claude-design.ts +2 -1
- package/dist/builtin/workflows/builtin/ralph-core.ts +61 -57
- package/dist/builtin/workflows/builtin/ralph-forked-prompts.ts +41 -45
- package/dist/builtin/workflows/builtin/ralph-models.ts +33 -43
- package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +35 -117
- package/dist/builtin/workflows/builtin/ralph-runner.ts +81 -108
- package/dist/builtin/workflows/builtin/ralph.ts +2 -1
- package/dist/builtin/workflows/builtin/shared-prompts.ts +111 -80
- package/dist/builtin/workflows/builtin/steering-context.ts +51 -0
- package/dist/builtin/workflows/builtin/tournament-prompts.ts +21 -12
- package/dist/builtin/workflows/builtin/tournament-runner.ts +3 -0
- package/dist/builtin/workflows/builtin/tournament.ts +3 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/create-spec/SKILL.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +6 -8
- package/dist/builtin/workflows/skills/impeccable/reference/live.md +3 -4
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +2 -20
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +4 -42
- package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +3 -3
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +2 -3
- package/dist/builtin/workflows/skills/impeccable/scripts/live-inject.mjs +0 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/live-poll.mjs +2 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/pin.mjs +4 -4
- package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +57 -252
- package/dist/builtin/workflows/skills/prompt-engineer/references/advanced_patterns.md +70 -226
- package/dist/builtin/workflows/skills/prompt-engineer/references/core_prompting.md +64 -103
- package/dist/builtin/workflows/skills/prompt-engineer/references/quality_improvement.md +81 -155
- package/dist/builtin/workflows/src/authoring.d.ts +5 -1
- package/dist/builtin/workflows/src/durable/backend.ts +68 -9
- package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +148 -0
- package/dist/builtin/workflows/src/durable/boundary-topology.ts +420 -0
- package/dist/builtin/workflows/src/durable/child-invocation.ts +14 -0
- package/dist/builtin/workflows/src/durable/child-primitive.ts +74 -44
- package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +250 -0
- package/dist/builtin/workflows/src/durable/completed-catalog.ts +205 -131
- package/dist/builtin/workflows/src/durable/completed-inspection.ts +8 -2
- package/dist/builtin/workflows/src/durable/completed-subtree.ts +31 -0
- package/dist/builtin/workflows/src/durable/dbos-backend.ts +28 -24
- package/dist/builtin/workflows/src/durable/dbos-envelope.ts +130 -3
- package/dist/builtin/workflows/src/durable/dbos-metadata.ts +18 -0
- package/dist/builtin/workflows/src/durable/scoped-backend.ts +64 -17
- package/dist/builtin/workflows/src/durable/stage-primitive.ts +60 -60
- package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +234 -0
- package/dist/builtin/workflows/src/durable/stage-topology.ts +53 -0
- package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +49 -0
- package/dist/builtin/workflows/src/durable/tool-outcome.ts +120 -0
- package/dist/builtin/workflows/src/durable/tool-primitive.ts +367 -58
- package/dist/builtin/workflows/src/durable/types.ts +97 -0
- package/dist/builtin/workflows/src/durable/ui-primitive.ts +46 -0
- package/dist/builtin/workflows/src/durable/workflow-child-result.ts +58 -0
- package/dist/builtin/workflows/src/engine/options.ts +1 -0
- package/dist/builtin/workflows/src/engine/primitives/workflow.ts +19 -10
- package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +11 -1
- package/dist/builtin/workflows/src/engine/run-durable-topology.ts +190 -18
- package/dist/builtin/workflows/src/engine/run-terminal-event.ts +37 -0
- package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +50 -0
- package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +152 -0
- package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +87 -0
- package/dist/builtin/workflows/src/engine/run.ts +111 -110
- package/dist/builtin/workflows/src/engine/runtime.ts +15 -2
- package/dist/builtin/workflows/src/extension/extension-factory.ts +1 -0
- package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +11 -0
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +6599 -4776
- package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +16 -5
- package/dist/builtin/workflows/src/extension/render-result.ts +16 -2
- package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +3 -0
- package/dist/builtin/workflows/src/extension/runtime.ts +4 -0
- package/dist/builtin/workflows/src/extension/wiring.ts +3 -1
- package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +1 -0
- package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +9 -3
- package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +18 -3
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +27 -9
- package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +43 -0
- package/dist/builtin/workflows/src/extension/workflow-targets.ts +34 -30
- package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +12 -5
- package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +162 -63
- package/dist/builtin/workflows/src/runs/background/run-inspect.ts +7 -1
- package/dist/builtin/workflows/src/runs/background/status.ts +18 -8
- package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +3 -11
- package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +24 -21
- package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +30 -13
- package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +102 -53
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +13 -5
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +26 -8
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +11 -4
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +4 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +7 -1
- package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +35 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +136 -17
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +12 -4
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +35 -42
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +5 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +195 -0
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +0 -13
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +14 -2
- package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +3 -143
- package/dist/builtin/workflows/src/sdk-surface.ts +1 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +6 -11
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +6 -11
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +57 -6
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +76 -11
- package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +206 -116
- package/dist/builtin/workflows/src/shared/intercom-group.ts +17 -10
- package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +30 -0
- package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +5 -0
- package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +3 -3
- package/dist/builtin/workflows/src/shared/store-factory.ts +2 -0
- package/dist/builtin/workflows/src/shared/store-internal.ts +8 -0
- package/dist/builtin/workflows/src/shared/store-public-types.ts +8 -0
- package/dist/builtin/workflows/src/shared/store-run-methods.ts +9 -0
- package/dist/builtin/workflows/src/shared/store-stage-methods.ts +2 -0
- package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +46 -0
- package/dist/builtin/workflows/src/shared/store-types.ts +34 -0
- package/dist/builtin/workflows/src/shared/types.ts +14 -24
- package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +11 -5
- package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +58 -0
- package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +53 -0
- package/dist/builtin/workflows/src/tui/graph-view-input.ts +2 -8
- package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +11 -4
- package/dist/builtin/workflows/src/tui/graph-view-render.ts +1 -0
- package/dist/builtin/workflows/src/tui/graph-view-state.ts +27 -9
- package/dist/builtin/workflows/src/tui/graph-view-types.ts +4 -3
- package/dist/builtin/workflows/src/tui/node-card.ts +4 -3
- package/dist/builtin/workflows/src/tui/overlay-adapter.ts +0 -4
- package/dist/builtin/workflows/src/tui/run-detail.ts +53 -17
- package/dist/builtin/workflows/src/tui/session-list.ts +8 -4
- package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +12 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +21 -1
- package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +3 -19
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +4 -2
- package/dist/builtin/workflows/src/tui/switcher.ts +13 -3
- package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +1 -1
- package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +0 -9
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +16 -49
- package/dist/builtin/workflows/src/tui/workflow-status.ts +7 -0
- package/dist/builtin/workflows/src/workflows/identity.ts +1 -1
- package/dist/cli/args.d.ts +0 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -20
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +1 -2
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +2 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.js +2 -2
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config-self-update.js +1 -1
- package/dist/config-self-update.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -10
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-accessors.d.ts.map +1 -1
- package/dist/core/agent-session-accessors.js +2 -1
- package/dist/core/agent-session-accessors.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts +4 -3
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +55 -59
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-bash.d.ts +9 -6
- package/dist/core/agent-session-bash.d.ts.map +1 -1
- package/dist/core/agent-session-bash.js +32 -13
- package/dist/core/agent-session-bash.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +11 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +87 -19
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts +14 -0
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -0
- package/dist/core/agent-session-custom-message-commit.js +141 -0
- package/dist/core/agent-session-custom-message-commit.js.map +1 -0
- package/dist/core/agent-session-delivery-forwarding.d.ts +9 -0
- package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -0
- package/dist/core/agent-session-delivery-forwarding.js +36 -0
- package/dist/core/agent-session-delivery-forwarding.js.map +1 -0
- package/dist/core/agent-session-events.d.ts +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +45 -14
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts +2 -6
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +18 -11
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +5 -2
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +91 -97
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +47 -39
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-models.d.ts +2 -38
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js +5 -147
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.d.ts +47 -0
- package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -0
- package/dist/core/agent-session-persistent-custom-messages.js +267 -0
- package/dist/core/agent-session-persistent-custom-messages.js.map +1 -0
- package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +34 -9
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +2 -0
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +42 -16
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-queue-pause.d.ts +10 -0
- package/dist/core/agent-session-queue-pause.d.ts.map +1 -0
- package/dist/core/agent-session-queue-pause.js +86 -0
- package/dist/core/agent-session-queue-pause.js.map +1 -0
- package/dist/core/agent-session-retry.d.ts +0 -11
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +8 -57
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session-runtime-auth.d.ts +6 -0
- package/dist/core/agent-session-runtime-auth.d.ts.map +1 -0
- package/dist/core/agent-session-runtime-auth.js +26 -0
- package/dist/core/agent-session-runtime-auth.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +13 -2
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +32 -6
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +0 -2
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +6 -7
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-state.d.ts.map +1 -1
- package/dist/core/agent-session-state.js +3 -0
- package/dist/core/agent-session-state.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +6 -1
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +2 -18
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-transfer.d.ts +4 -0
- package/dist/core/agent-session-transfer.d.ts.map +1 -0
- package/dist/core/agent-session-transfer.js +71 -0
- package/dist/core/agent-session-transfer.js.map +1 -0
- package/dist/core/agent-session-tree.js +1 -1
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +5 -11
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js +0 -3
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +12 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +8 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/atomic-guide-command.d.ts.map +1 -1
- package/dist/core/atomic-guide-command.js +31 -33
- package/dist/core/atomic-guide-command.js.map +1 -1
- package/dist/core/auth-storage.js +2 -2
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts +5 -3
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +5 -4
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +0 -6
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +8 -3
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +17 -6
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction-boundary.d.ts +18 -1
- package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
- package/dist/core/compaction/compaction-boundary.js +2 -2
- package/dist/core/compaction/compaction-boundary.js.map +1 -1
- package/dist/core/compaction/compaction-runner.d.ts +61 -6
- package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/compaction-runner.js +242 -18
- package/dist/core/compaction/compaction-runner.js.map +1 -1
- package/dist/core/compaction/compaction-types.d.ts +53 -2
- package/dist/core/compaction/compaction-types.d.ts.map +1 -1
- package/dist/core/compaction/compaction-types.js.map +1 -1
- package/dist/core/compaction/fallback-planner.d.ts +64 -0
- package/dist/core/compaction/fallback-planner.d.ts.map +1 -0
- package/dist/core/compaction/fallback-planner.js +75 -0
- package/dist/core/compaction/fallback-planner.js.map +1 -0
- package/dist/core/compaction/index.d.ts +3 -0
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js +3 -0
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/planner-outcome.d.ts +86 -0
- package/dist/core/compaction/planner-outcome.d.ts.map +1 -0
- package/dist/core/compaction/planner-outcome.js +122 -0
- package/dist/core/compaction/planner-outcome.js.map +1 -0
- package/dist/core/compaction/range-planner-diagnostics.d.ts +58 -6
- package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
- package/dist/core/compaction/range-planner-diagnostics.js +69 -31
- package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
- package/dist/core/compaction/range-planner.d.ts +36 -8
- package/dist/core/compaction/range-planner.d.ts.map +1 -1
- package/dist/core/compaction/range-planner.js +136 -51
- package/dist/core/compaction/range-planner.js.map +1 -1
- package/dist/core/compaction/region-trimming.d.ts +34 -0
- package/dist/core/compaction/region-trimming.d.ts.map +1 -0
- package/dist/core/compaction/region-trimming.js +73 -0
- package/dist/core/compaction/region-trimming.js.map +1 -0
- package/dist/core/compaction/transcript-serialization.d.ts +8 -1
- package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
- package/dist/core/compaction/transcript-serialization.js +78 -27
- package/dist/core/compaction/transcript-serialization.js.map +1 -1
- package/dist/core/context-tool-pairing.d.ts +19 -0
- package/dist/core/context-tool-pairing.d.ts.map +1 -0
- package/dist/core/context-tool-pairing.js +50 -0
- package/dist/core/context-tool-pairing.js.map +1 -0
- package/dist/core/diagnostics.d.ts +8 -0
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +3 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -0
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +48 -27
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts +2 -4
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +199 -18
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/message-types.d.ts +7 -4
- package/dist/core/extensions/message-types.d.ts.map +1 -1
- package/dist/core/extensions/message-types.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +9 -4
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +2 -0
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +4 -0
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +1 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +28 -20
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +25 -0
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +7 -3
- package/dist/core/extensions/tool-types.d.ts.map +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +14 -4
- package/dist/core/extensions/ui-types.d.ts.map +1 -1
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/fallback-models.d.ts +37 -0
- package/dist/core/fallback-models.d.ts.map +1 -0
- package/dist/core/fallback-models.js +48 -0
- package/dist/core/fallback-models.js.map +1 -0
- package/dist/core/flattened-tool-arguments.d.ts +4 -7
- package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
- package/dist/core/flattened-tool-arguments.js +4 -7
- package/dist/core/flattened-tool-arguments.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +0 -5
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/messages.d.ts +14 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +28 -4
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-capabilities.d.ts +18 -0
- package/dist/core/model-capabilities.d.ts.map +1 -0
- package/dist/core/model-capabilities.js +23 -0
- package/dist/core/model-capabilities.js.map +1 -0
- package/dist/core/model-registry-auth.d.ts.map +1 -1
- package/dist/core/model-registry-auth.js +0 -2
- package/dist/core/model-registry-auth.js.map +1 -1
- package/dist/core/model-registry-builtins.d.ts +0 -2
- package/dist/core/model-registry-builtins.d.ts.map +1 -1
- package/dist/core/model-registry-builtins.js +9 -76
- package/dist/core/model-registry-builtins.js.map +1 -1
- package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
- package/dist/core/model-registry-custom-loader.js +1 -12
- package/dist/core/model-registry-custom-loader.js.map +1 -1
- package/dist/core/model-registry-dynamic.d.ts.map +1 -1
- package/dist/core/model-registry-dynamic.js +3 -15
- package/dist/core/model-registry-dynamic.js.map +1 -1
- package/dist/core/model-registry-extension-refresh.d.ts +23 -0
- package/dist/core/model-registry-extension-refresh.d.ts.map +1 -0
- package/dist/core/model-registry-extension-refresh.js +32 -0
- package/dist/core/model-registry-extension-refresh.js.map +1 -0
- package/dist/core/model-registry-schemas.d.ts +118 -9
- package/dist/core/model-registry-schemas.d.ts.map +1 -1
- package/dist/core/model-registry-schemas.js +10 -3
- package/dist/core/model-registry-schemas.js.map +1 -1
- package/dist/core/model-registry-types.d.ts +5 -5
- package/dist/core/model-registry-types.d.ts.map +1 -1
- package/dist/core/model-registry-types.js.map +1 -1
- package/dist/core/model-registry-validation.d.ts +7 -0
- package/dist/core/model-registry-validation.d.ts.map +1 -0
- package/dist/core/model-registry-validation.js +12 -0
- package/dist/core/model-registry-validation.js.map +1 -0
- package/dist/core/model-registry.d.ts +5 -3
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +34 -33
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-defaults.d.ts.map +1 -1
- package/dist/core/model-resolver-defaults.js +0 -1
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts.map +1 -1
- package/dist/core/model-resolver-initial.js +9 -0
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/model-resolver-patterns.d.ts.map +1 -1
- package/dist/core/model-resolver-patterns.js +0 -2
- package/dist/core/model-resolver-patterns.js.map +1 -1
- package/dist/core/model-resolver-scope.d.ts +2 -0
- package/dist/core/model-resolver-scope.d.ts.map +1 -1
- package/dist/core/model-resolver-scope.js +18 -4
- package/dist/core/model-resolver-scope.js.map +1 -1
- package/dist/core/model-resolver-types.d.ts +2 -0
- package/dist/core/model-resolver-types.d.ts.map +1 -1
- package/dist/core/model-resolver-types.js.map +1 -1
- package/dist/core/oauth-provider-bridge.d.ts +21 -0
- package/dist/core/oauth-provider-bridge.d.ts.map +1 -1
- package/dist/core/oauth-provider-bridge.js +68 -7
- package/dist/core/oauth-provider-bridge.js.map +1 -1
- package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
- package/dist/core/package-manager-auto-resources.js +12 -4
- package/dist/core/package-manager-auto-resources.js.map +1 -1
- package/dist/core/package-manager-resolver.d.ts.map +1 -1
- package/dist/core/package-manager-resolver.js +42 -11
- package/dist/core/package-manager-resolver.js.map +1 -1
- package/dist/core/package-manager-types.d.ts +2 -0
- package/dist/core/package-manager-types.d.ts.map +1 -1
- package/dist/core/package-manager-types.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +17 -11
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader-assets.d.ts.map +1 -1
- package/dist/core/resource-loader-assets.js +30 -4
- package/dist/core/resource-loader-assets.js.map +1 -1
- package/dist/core/resource-loader-context-files.d.ts.map +1 -1
- package/dist/core/resource-loader-context-files.js +3 -1
- package/dist/core/resource-loader-context-files.js.map +1 -1
- package/dist/core/resource-loader-core.d.ts +2 -1
- package/dist/core/resource-loader-core.d.ts.map +1 -1
- package/dist/core/resource-loader-core.js +3 -0
- package/dist/core/resource-loader-core.js.map +1 -1
- package/dist/core/resource-loader-extensions.d.ts +1 -0
- package/dist/core/resource-loader-extensions.d.ts.map +1 -1
- package/dist/core/resource-loader-extensions.js +120 -7
- package/dist/core/resource-loader-extensions.js.map +1 -1
- package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
- package/dist/core/resource-loader-package-resources.js +14 -1
- package/dist/core/resource-loader-package-resources.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +2 -1
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-source-info.d.ts.map +1 -1
- package/dist/core/resource-loader-source-info.js +6 -3
- package/dist/core/resource-loader-source-info.js.map +1 -1
- package/dist/core/sdk-types.d.ts +11 -10
- package/dist/core/sdk-types.d.ts.map +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +13 -84
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-core.d.ts +3 -3
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js +18 -25
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +2 -5
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js +2 -8
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/session-manager-history.d.ts +3 -3
- package/dist/core/session-manager-history.d.ts.map +1 -1
- package/dist/core/session-manager-history.js +49 -27
- package/dist/core/session-manager-history.js.map +1 -1
- package/dist/core/session-manager-storage.d.ts +6 -0
- package/dist/core/session-manager-storage.d.ts.map +1 -1
- package/dist/core/session-manager-storage.js +38 -5
- package/dist/core/session-manager-storage.js.map +1 -1
- package/dist/core/session-manager-types.d.ts +6 -6
- package/dist/core/session-manager-types.d.ts.map +1 -1
- package/dist/core/session-manager-types.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +0 -4
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +0 -50
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts +2 -4
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +5 -51
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-storage.d.ts +3 -1
- package/dist/core/settings-storage.d.ts.map +1 -1
- package/dist/core/settings-storage.js +22 -0
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +2 -4
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +69 -23
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-info.d.ts +3 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js +2 -0
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +11 -0
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/core/tools/bash-session-environment.d.ts +13 -0
- package/dist/core/tools/bash-session-environment.d.ts.map +1 -0
- package/dist/core/tools/bash-session-environment.js +35 -0
- package/dist/core/tools/bash-session-environment.js.map +1 -0
- package/dist/core/tools/bash.d.ts +4 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +16 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +3 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +10 -2
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +3 -2
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +9 -3
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index-extensions.d.ts +1 -1
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/main-session-options.d.ts.map +1 -1
- package/dist/main-session-options.js +0 -4
- package/dist/main-session-options.js.map +1 -1
- package/dist/main-session.d.ts.map +1 -1
- package/dist/main-session.js +2 -1
- package/dist/main-session.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -17
- package/dist/main.js.map +1 -1
- package/dist/modes/index.d.ts +1 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/chat-input-actions.d.ts +1 -1
- package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
- package/dist/modes/interactive/chat-input-actions.js +14 -96
- package/dist/modes/interactive/chat-input-actions.js.map +1 -1
- package/dist/modes/interactive/components/atomic-banner.d.ts +9 -8
- package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
- package/dist/modes/interactive/components/atomic-banner.js +68 -24
- package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
- package/dist/modes/interactive/components/atomic-working-status.d.ts +52 -0
- package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -0
- package/dist/modes/interactive/components/atomic-working-status.js +202 -0
- package/dist/modes/interactive/components/atomic-working-status.js.map +1 -0
- package/dist/modes/interactive/components/chat-message-renderer.js +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.js +99 -7
- package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-editor.js +3 -3
- package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-events.js +52 -9
- package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.js +23 -7
- package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +2 -0
- package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-runtime.js +67 -18
- package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.d.ts +9 -0
- package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.js +5 -0
- package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-types.d.ts +10 -0
- package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.js +2 -1
- package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +3 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +9 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +3 -2
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +14 -43
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +18 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/startup-identity.d.ts +22 -0
- package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -0
- package/dist/modes/interactive/components/startup-identity.js +58 -0
- package/dist/modes/interactive/components/startup-identity.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector-content.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-content.js +0 -6
- package/dist/modes/interactive/components/tree-selector-content.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-model.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-model.js +0 -1
- package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
- package/dist/modes/interactive/components/working-status.d.ts +5 -11
- package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
- package/dist/modes/interactive/components/working-status.js +14 -15
- package/dist/modes/interactive/components/working-status.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts +23 -0
- package/dist/modes/interactive/external-editor.d.ts.map +1 -0
- package/dist/modes/interactive/external-editor.js +120 -0
- package/dist/modes/interactive/external-editor.js.map +1 -0
- package/dist/modes/interactive/interactive-agent-events.js +25 -20
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +16 -6
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js +3 -0
- package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.d.ts +2 -1
- package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.js +8 -0
- package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +49 -19
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +4 -3
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-dialogs.js +1 -1
- package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.js +3 -2
- package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-initial-session-binding.d.ts +4 -0
- package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-initial-session-binding.js +23 -0
- package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -0
- package/dist/modes/interactive/interactive-input-handling.d.ts +2 -1
- package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +27 -51
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +11 -7
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +14 -6
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +2 -4
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +2 -4
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -8
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-model-catalog-startup.d.ts +2 -3
- package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-catalog-startup.js +3 -6
- package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +26 -97
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-pause.d.ts +4 -0
- package/dist/modes/interactive/interactive-pause.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-pause.js +8 -0
- package/dist/modes/interactive/interactive-pause.js.map +1 -0
- package/dist/modes/interactive/interactive-process-lifecycle.js +5 -4
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/modes/interactive/interactive-prompt-turn.d.ts +2 -0
- package/dist/modes/interactive/interactive-prompt-turn.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-prompt-turn.js +41 -0
- package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -0
- package/dist/modes/interactive/interactive-render-chat.js +20 -8
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-paths.js +11 -2
- package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-rendering.js +99 -0
- package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup-chat-container.d.ts +20 -0
- package/dist/modes/interactive/interactive-startup-chat-container.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-startup-chat-container.js +26 -0
- package/dist/modes/interactive/interactive-startup-chat-container.js.map +1 -0
- package/dist/modes/interactive/interactive-startup.d.ts +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +30 -25
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-summarization-retry-events.js +9 -3
- package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
- package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -1
- package/dist/modes/interactive/theme/catppuccin-latte.json +1 -1
- package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -1
- package/dist/modes/interactive/theme/catppuccin-mocha.json +9 -1
- package/dist/modes/interactive/theme/dark.json +1 -1
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/interactive/theme/theme-class.d.ts +4 -0
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +7 -0
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.js +4 -0
- package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.d.ts +32 -0
- package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.js +8 -0
- package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +15 -2
- package/dist/modes/interactive/whimsical-messages.d.ts +1 -0
- package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
- package/dist/modes/interactive/whimsical-messages.js +2 -2
- package/dist/modes/interactive/whimsical-messages.js.map +1 -1
- package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/create-isolated-runtime.js +3 -1
- package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-args.js +0 -1
- package/dist/modes/interactive-engine/engine-args.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +5 -17
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js +8 -19
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js +3 -0
- package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-auth.d.ts +10 -0
- package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -0
- package/dist/modes/interactive-engine/isolated-auth.js +14 -0
- package/dist/modes/interactive-engine/isolated-auth.js.map +1 -0
- package/dist/modes/interactive-engine/isolated-runtime.d.ts +9 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +46 -34
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
- package/dist/modes/interactive-engine/protocol.js +3 -10
- package/dist/modes/interactive-engine/protocol.js.map +1 -1
- package/dist/modes/interactive-engine/remote-model-catalog.d.ts +1 -0
- package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-model-catalog.js +10 -1
- package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
- package/dist/modes/interactive-engine/remote-queue-pause.d.ts +13 -0
- package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -0
- package/dist/modes/interactive-engine/remote-queue-pause.js +38 -0
- package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -0
- package/dist/modes/interactive-engine/remote-renderer.d.ts +3 -1
- package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js +4 -1
- package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +5 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts +2 -7
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js +7 -24
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/queued-writer.d.ts +19 -0
- package/dist/modes/rpc/queued-writer.d.ts.map +1 -0
- package/dist/modes/rpc/{bounded-writer.js → queued-writer.js} +7 -30
- package/dist/modes/rpc/queued-writer.js.map +1 -0
- package/dist/modes/rpc/rpc-bash-request-owners.d.ts +24 -0
- package/dist/modes/rpc/rpc-bash-request-owners.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-bash-request-owners.js +45 -0
- package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -0
- package/dist/modes/rpc/rpc-client-api.d.ts +8 -5
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js +10 -11
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/modes/rpc/rpc-client-process.d.ts +1 -4
- package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-process.js +2 -14
- package/dist/modes/rpc/rpc-client-process.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +8 -4
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +21 -30
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.d.ts +7 -4
- package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.js +76 -93
- package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.d.ts +3 -3
- package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.js +7 -4
- package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +5 -5
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts +4 -0
- package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-model-fallback-prompt.js +11 -0
- package/dist/modes/rpc/rpc-model-fallback-prompt.js.map +1 -0
- package/dist/modes/rpc/rpc-oauth-client.d.ts +22 -0
- package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-oauth-client.js +74 -0
- package/dist/modes/rpc/rpc-oauth-client.js.map +1 -0
- package/dist/modes/rpc/rpc-oauth-interaction.d.ts +9 -0
- package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-oauth-interaction.js +49 -0
- package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -0
- package/dist/modes/rpc/rpc-output-buffer.d.ts +2 -1
- package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-output-buffer.js +4 -39
- package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts +23 -0
- package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-provider-auth.js +145 -0
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -0
- package/dist/modes/rpc/rpc-responses.d.ts +0 -1
- package/dist/modes/rpc/rpc-responses.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-responses.js +0 -14
- package/dist/modes/rpc/rpc-responses.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +83 -27
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +21 -8
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +3 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/changelog.mdx +12 -1
- package/docs/compaction.md +101 -18
- package/docs/custom-provider.md +13 -4
- package/docs/docs.json +1 -0
- package/docs/environment-variables.md +37 -0
- package/docs/extensions.md +45 -9
- package/docs/index.md +1 -0
- package/docs/intercom.md +1 -1
- package/docs/json.md +4 -4
- package/docs/keybindings.md +4 -2
- package/docs/llama-cpp.md +3 -1
- package/docs/models.md +29 -43
- package/docs/providers.md +18 -24
- package/docs/quickstart.md +19 -16
- package/docs/rpc.md +38 -85
- package/docs/sdk.md +15 -22
- package/docs/session-format.md +2 -15
- package/docs/sessions.md +1 -1
- package/docs/settings.md +10 -15
- package/docs/skills.md +8 -0
- package/docs/subagents.md +24 -8
- package/docs/themes.md +10 -1
- package/docs/tui.md +3 -3
- package/docs/usage.md +30 -2
- package/docs/windows.md +1 -1
- package/docs/workflows.md +1128 -522
- package/examples/extensions/README.md +1 -1
- package/examples/extensions/handoff.ts +8 -1
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/summarize.ts +3 -0
- package/examples/extensions/working-indicator.ts +2 -2
- package/npm-shrinkwrap.json +40 -46
- package/package.json +9 -7
- package/dist/builtin/cursor/CHANGELOG.md +0 -281
- package/dist/builtin/cursor/LICENSE +0 -26
- package/dist/builtin/cursor/README.md +0 -24
- package/dist/builtin/cursor/index.ts +0 -9
- package/dist/builtin/cursor/package.json +0 -47
- package/dist/builtin/cursor/src/auth.ts +0 -352
- package/dist/builtin/cursor/src/catalog-cache.ts +0 -155
- package/dist/builtin/cursor/src/config.ts +0 -123
- package/dist/builtin/cursor/src/conversation-state.ts +0 -135
- package/dist/builtin/cursor/src/cursor-models-raw.json +0 -412
- package/dist/builtin/cursor/src/model-mapper.ts +0 -369
- package/dist/builtin/cursor/src/model-reference.ts +0 -282
- package/dist/builtin/cursor/src/models.ts +0 -54
- package/dist/builtin/cursor/src/native-loader.ts +0 -71
- package/dist/builtin/cursor/src/proto/README.md +0 -34
- package/dist/builtin/cursor/src/proto/agent_pb.ts +0 -15294
- package/dist/builtin/cursor/src/proto/protobuf-codec-base64.ts +0 -22
- package/dist/builtin/cursor/src/proto/protobuf-codec-json.ts +0 -44
- package/dist/builtin/cursor/src/proto/protobuf-codec-request.ts +0 -311
- package/dist/builtin/cursor/src/proto/protobuf-codec-wire.ts +0 -248
- package/dist/builtin/cursor/src/proto/protobuf-codec.ts +0 -200
- package/dist/builtin/cursor/src/provider.ts +0 -301
- package/dist/builtin/cursor/src/stream.ts +0 -494
- package/dist/builtin/cursor/src/transport-errors.ts +0 -74
- package/dist/builtin/cursor/src/transport-frame.ts +0 -56
- package/dist/builtin/cursor/src/transport-http2.ts +0 -122
- package/dist/builtin/cursor/src/transport-native-client.ts +0 -161
- package/dist/builtin/cursor/src/transport-run-stream.ts +0 -188
- package/dist/builtin/cursor/src/transport-timeouts.ts +0 -87
- package/dist/builtin/cursor/src/transport-types.ts +0 -143
- package/dist/builtin/cursor/src/transport.ts +0 -26
- package/dist/builtin/workflows/builtin/deep-research-codebase-runner.ts +0 -492
- package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +0 -383
- package/dist/builtin/workflows/builtin/deep-research-codebase.d.ts +0 -35
- package/dist/builtin/workflows/builtin/deep-research-codebase.ts +0 -47
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +0 -516
- package/dist/core/context-window.d.ts +0 -54
- package/dist/core/context-window.d.ts.map +0 -1
- package/dist/core/context-window.js +0 -110
- package/dist/core/context-window.js.map +0 -1
- package/dist/core/copilot-anthropic-sse-repair.d.ts +0 -23
- package/dist/core/copilot-anthropic-sse-repair.d.ts.map +0 -1
- package/dist/core/copilot-anthropic-sse-repair.js +0 -340
- package/dist/core/copilot-anthropic-sse-repair.js.map +0 -1
- package/dist/core/copilot-errors.d.ts +0 -9
- package/dist/core/copilot-errors.d.ts.map +0 -1
- package/dist/core/copilot-errors.js +0 -32
- package/dist/core/copilot-errors.js.map +0 -1
- package/dist/core/copilot-gemini-payload-sanitizer.d.ts +0 -72
- package/dist/core/copilot-gemini-payload-sanitizer.d.ts.map +0 -1
- package/dist/core/copilot-gemini-payload-sanitizer.js +0 -296
- package/dist/core/copilot-gemini-payload-sanitizer.js.map +0 -1
- package/dist/core/copilot-gemini-reasoning.d.ts +0 -126
- package/dist/core/copilot-gemini-reasoning.d.ts.map +0 -1
- package/dist/core/copilot-gemini-reasoning.js +0 -265
- package/dist/core/copilot-gemini-reasoning.js.map +0 -1
- package/dist/core/copilot-gemini-tool-arguments.d.ts +0 -42
- package/dist/core/copilot-gemini-tool-arguments.d.ts.map +0 -1
- package/dist/core/copilot-gemini-tool-arguments.js +0 -159
- package/dist/core/copilot-gemini-tool-arguments.js.map +0 -1
- package/dist/core/copilot-hosts.d.ts +0 -12
- package/dist/core/copilot-hosts.d.ts.map +0 -1
- package/dist/core/copilot-hosts.js +0 -33
- package/dist/core/copilot-hosts.js.map +0 -1
- package/dist/core/copilot-model-catalog.d.ts +0 -114
- package/dist/core/copilot-model-catalog.d.ts.map +0 -1
- package/dist/core/copilot-model-catalog.js +0 -392
- package/dist/core/copilot-model-catalog.js.map +0 -1
- package/dist/core/copilot-model-static-fallbacks.d.ts +0 -43
- package/dist/core/copilot-model-static-fallbacks.d.ts.map +0 -1
- package/dist/core/copilot-model-static-fallbacks.js +0 -50
- package/dist/core/copilot-model-static-fallbacks.js.map +0 -1
- package/dist/core/copilot-model-synthesis.d.ts +0 -10
- package/dist/core/copilot-model-synthesis.d.ts.map +0 -1
- package/dist/core/copilot-model-synthesis.js +0 -91
- package/dist/core/copilot-model-synthesis.js.map +0 -1
- package/dist/modes/interactive/components/context-window-selector.d.ts +0 -53
- package/dist/modes/interactive/components/context-window-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/context-window-selector.js +0 -136
- package/dist/modes/interactive/components/context-window-selector.js.map +0 -1
- package/dist/modes/rpc/bounded-writer.d.ts +0 -27
- package/dist/modes/rpc/bounded-writer.d.ts.map +0 -1
- package/dist/modes/rpc/bounded-writer.js.map +0 -1
|
@@ -11,6 +11,9 @@ import type { ContinuationReplayIndex } from "./executor-continuation.js";
|
|
|
11
11
|
import type { StageControlRegistry } from "./stage-control-registry.js";
|
|
12
12
|
import { getPromptAnswerState, sameStringSet } from "./executor-continuation.js";
|
|
13
13
|
import { applyFailureToStage, stageReplayFields } from "./executor-lifecycle.js";
|
|
14
|
+
import { withPromptCallerStack } from "../../shared/prompt-callsite-context.js";
|
|
15
|
+
import type { DurableUiReplayRequest } from "../../durable/ui-primitive.js";
|
|
16
|
+
import type { DurableStageTopology } from "../../durable/types.js";
|
|
14
17
|
import {
|
|
15
18
|
customPromptDescriptor,
|
|
16
19
|
fallbackForPromptDescriptor,
|
|
@@ -22,6 +25,10 @@ import {
|
|
|
22
25
|
type PromptDescriptor,
|
|
23
26
|
} from "./executor-hil.js";
|
|
24
27
|
|
|
28
|
+
export interface PromptNodeUiAdapter extends WorkflowUIContext {
|
|
29
|
+
replayDurable(request: DurableUiReplayRequest): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
export function buildPromptNodeUiAdapter(input: {
|
|
26
33
|
readonly runId: string;
|
|
27
34
|
readonly activeStore: Store;
|
|
@@ -35,8 +42,14 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
35
42
|
readonly workflowExitSkippedReason: (reason?: string) => string;
|
|
36
43
|
readonly preserveWorkflowExitSkippedReason: (stage: StageSnapshot, fallback: string) => void;
|
|
37
44
|
readonly classifyExecutorFailure: (error: unknown) => WorkflowFailure;
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
readonly durableTopologyForReplayKey?: (replayKey: string) => DurableStageTopology | undefined;
|
|
46
|
+
/** Durably publish an unanswered prompt node before exposing its live wait. */
|
|
47
|
+
readonly onPendingStage?: (runId: string, snapshot: StageSnapshot) => Promise<void>;
|
|
48
|
+
}): PromptNodeUiAdapter {
|
|
49
|
+
const ask = async <T>(
|
|
50
|
+
descriptor: PromptDescriptor<T>,
|
|
51
|
+
durableReplay?: DurableUiReplayRequest,
|
|
52
|
+
): Promise<unknown> => {
|
|
40
53
|
input.throwIfWorkflowExitSelected();
|
|
41
54
|
const isCustom = isCustomPromptDescriptor(descriptor);
|
|
42
55
|
if (input.signal.aborted) {
|
|
@@ -46,9 +59,10 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
46
59
|
if (isCustom && descriptor.options?.signal?.aborted) throw hilAbortError(descriptor.options.signal);
|
|
47
60
|
|
|
48
61
|
const prompt = makePrompt(descriptor);
|
|
49
|
-
const stageId = crypto.randomUUID();
|
|
50
|
-
const provisionalParentIds = input.tracker.onSpawn(stageId, descriptor.kind);
|
|
51
62
|
const replayKey = promptReplayKey(descriptor);
|
|
63
|
+
const durableTopology = input.durableTopologyForReplayKey?.(replayKey);
|
|
64
|
+
const stageId = durableTopology?.stageId ?? crypto.randomUUID();
|
|
65
|
+
const provisionalParentIds = input.tracker.onSpawn(stageId, descriptor.kind);
|
|
52
66
|
const replayDecision = input.replayIndex.decide({
|
|
53
67
|
displayName: descriptor.kind,
|
|
54
68
|
replayKey,
|
|
@@ -56,16 +70,21 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
56
70
|
stageId,
|
|
57
71
|
kind: "prompt",
|
|
58
72
|
});
|
|
59
|
-
const parentIds = replayDecision.parentIds;
|
|
73
|
+
const parentIds = durableTopology?.parentIds ?? replayDecision.parentIds;
|
|
60
74
|
if (!sameStringSet(parentIds, provisionalParentIds)) input.tracker.replaceParents(stageId, parentIds);
|
|
61
75
|
const replaySource = replayDecision.source;
|
|
62
|
-
const
|
|
76
|
+
const continuationAnswer = replayDecision.kind === "replay"
|
|
63
77
|
? input.activeStore.getStagePromptAnswer(input.opts.continuation!.source.id, replayDecision.source.id)
|
|
64
78
|
: undefined;
|
|
79
|
+
const replayAnswer = durableReplay === undefined
|
|
80
|
+
? continuationAnswer
|
|
81
|
+
: { value: durableReplay.response };
|
|
65
82
|
const shouldReplay = replayAnswer !== undefined;
|
|
66
|
-
if (shouldReplay) input.replayIndex.markPromptAnswerReplayed(stageId);
|
|
83
|
+
if (shouldReplay && durableReplay === undefined) input.replayIndex.markPromptAnswerReplayed(stageId);
|
|
67
84
|
const replaySourceId = replaySource?.id;
|
|
68
|
-
const promptAnswerStatus =
|
|
85
|
+
const promptAnswerStatus = durableReplay === undefined
|
|
86
|
+
? getPromptAnswerState(shouldReplay, replaySourceId, replayDecision.answerReplay)
|
|
87
|
+
: "available";
|
|
69
88
|
const stageSnapshot: StageSnapshot = {
|
|
70
89
|
id: stageId,
|
|
71
90
|
name: descriptor.kind,
|
|
@@ -89,44 +108,48 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
89
108
|
} : {}),
|
|
90
109
|
};
|
|
91
110
|
let finalized = false;
|
|
111
|
+
let finalization: Promise<void> | undefined;
|
|
92
112
|
let unregisterWorkflowExitCleanup = (): void => {};
|
|
93
113
|
let unregisterStageControl = (): void => {};
|
|
94
114
|
let pauseGate: PromiseWithResolvers<void> | undefined;
|
|
95
115
|
const waitForExplicitResume = async (): Promise<void> => {
|
|
96
116
|
if (pauseGate !== undefined) await pauseGate.promise;
|
|
97
117
|
};
|
|
98
|
-
const finalizePromptStage = (status: "completed" | "failed" | "skipped"): void => {
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
118
|
+
const finalizePromptStage = async (status: "completed" | "failed" | "skipped"): Promise<void> => {
|
|
119
|
+
if (finalization !== undefined) return finalization;
|
|
120
|
+
finalization = (async (): Promise<void> => {
|
|
121
|
+
finalized = true;
|
|
122
|
+
unregisterWorkflowExitCleanup();
|
|
123
|
+
unregisterStageControl();
|
|
124
|
+
const currentPauseGate = pauseGate;
|
|
125
|
+
pauseGate = undefined;
|
|
126
|
+
currentPauseGate?.resolve();
|
|
127
|
+
stageSnapshot.status = status;
|
|
128
|
+
stageSnapshot.endedAt = Date.now();
|
|
129
|
+
stageSnapshot.durationMs = elapsedStageMs(stageSnapshot, stageSnapshot.endedAt);
|
|
130
|
+
input.activeStore.recordStageAttachable(input.runId, stageId, false);
|
|
131
|
+
input.activeStore.recordStageEnd(input.runId, stageSnapshot);
|
|
132
|
+
await input.opts.onStageEnd?.(input.runId, stageSnapshot);
|
|
133
|
+
if (input.opts.persistence) {
|
|
134
|
+
appendStageEnd(input.opts.persistence, {
|
|
135
|
+
runId: input.runId,
|
|
136
|
+
stageId,
|
|
137
|
+
status: stageSnapshot.status,
|
|
138
|
+
durationMs: stageSnapshot.durationMs,
|
|
139
|
+
...(stageSnapshot.error !== undefined ? { error: stageSnapshot.error } : {}),
|
|
140
|
+
...(stageSnapshot.failureKind !== undefined ? { failureKind: stageSnapshot.failureKind } : {}),
|
|
141
|
+
...(stageSnapshot.failureCode !== undefined ? { failureCode: stageSnapshot.failureCode } : {}),
|
|
142
|
+
...(stageSnapshot.failureRecoverability !== undefined ? { failureRecoverability: stageSnapshot.failureRecoverability } : {}),
|
|
143
|
+
...(stageSnapshot.failureDisposition !== undefined ? { failureDisposition: stageSnapshot.failureDisposition } : {}),
|
|
144
|
+
...(stageSnapshot.failureMessage !== undefined ? { failureMessage: stageSnapshot.failureMessage } : {}),
|
|
145
|
+
...(stageSnapshot.retryAfterMs !== undefined ? { retryAfterMs: stageSnapshot.retryAfterMs } : {}),
|
|
146
|
+
...(stageSnapshot.skippedReason !== undefined ? { skippedReason: stageSnapshot.skippedReason } : {}),
|
|
147
|
+
...stageReplayFields(stageSnapshot),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
input.tracker.onSettle(stageId);
|
|
151
|
+
})();
|
|
152
|
+
return finalization;
|
|
130
153
|
};
|
|
131
154
|
|
|
132
155
|
input.activeStore.recordStageStart(input.runId, stageSnapshot);
|
|
@@ -158,8 +181,11 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
158
181
|
subscribe: () => () => {},
|
|
159
182
|
});
|
|
160
183
|
unregisterWorkflowExitCleanup = input.registerWorkflowExitCleanup(stageId, {
|
|
161
|
-
skipForWorkflowExit(reason?: string): void {
|
|
162
|
-
if (finalized)
|
|
184
|
+
async skipForWorkflowExit(reason?: string): Promise<void> {
|
|
185
|
+
if (finalized) {
|
|
186
|
+
await finalization;
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
163
189
|
stageSnapshot.skippedReason = input.workflowExitSkippedReason(reason);
|
|
164
190
|
if (!shouldReplay) {
|
|
165
191
|
stageUiBroker.cancelStagePrompt(
|
|
@@ -168,7 +194,7 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
168
194
|
new Error(`atomic-workflows: prompt ${stageId} skipped by workflow exit`),
|
|
169
195
|
);
|
|
170
196
|
}
|
|
171
|
-
finalizePromptStage("skipped");
|
|
197
|
+
await finalizePromptStage("skipped");
|
|
172
198
|
},
|
|
173
199
|
});
|
|
174
200
|
if (input.opts.persistence) {
|
|
@@ -184,15 +210,23 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
184
210
|
if (shouldReplay) {
|
|
185
211
|
await Promise.resolve();
|
|
186
212
|
input.throwIfWorkflowExitSelected();
|
|
187
|
-
finalizePromptStage("completed");
|
|
213
|
+
await finalizePromptStage("completed");
|
|
188
214
|
return replayAnswer.value;
|
|
189
215
|
}
|
|
190
216
|
|
|
217
|
+
try {
|
|
218
|
+
await input.onPendingStage?.(input.runId, stageSnapshot);
|
|
219
|
+
} catch (err) {
|
|
220
|
+
applyFailureToStage(stageSnapshot, input.classifyExecutorFailure(err));
|
|
221
|
+
await finalizePromptStage("failed");
|
|
222
|
+
throw err;
|
|
223
|
+
}
|
|
224
|
+
|
|
191
225
|
if (isCustom) {
|
|
192
226
|
if (descriptor.options?.overlay === true) {
|
|
193
227
|
const error = new Error("atomic-workflows: ctx.ui.custom overlay mode is unavailable in the workflow graph viewer");
|
|
194
228
|
applyFailureToStage(stageSnapshot, input.classifyExecutorFailure(error));
|
|
195
|
-
finalizePromptStage("failed");
|
|
229
|
+
await finalizePromptStage("failed");
|
|
196
230
|
throw error;
|
|
197
231
|
}
|
|
198
232
|
|
|
@@ -203,7 +237,7 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
203
237
|
if (!accepted) {
|
|
204
238
|
const error = new Error("atomic-workflows: ctx.ui.custom prompt node is unavailable");
|
|
205
239
|
stageSnapshot.skippedReason = "prompt-unavailable";
|
|
206
|
-
finalizePromptStage("skipped");
|
|
240
|
+
await finalizePromptStage("skipped");
|
|
207
241
|
throw error;
|
|
208
242
|
}
|
|
209
243
|
const response = await stageUiBroker.requestCustomUi(
|
|
@@ -215,19 +249,19 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
215
249
|
);
|
|
216
250
|
await waitForExplicitResume();
|
|
217
251
|
input.activeStore.recordStagePromptAnswer(input.runId, stageId, prompt, response, { answerSource: "workflow_ui" });
|
|
218
|
-
finalizePromptStage("completed");
|
|
252
|
+
await finalizePromptStage("completed");
|
|
219
253
|
return response;
|
|
220
254
|
} catch (err) {
|
|
221
255
|
input.activeStore.recordStageAwaitingInput(input.runId, stageId, false);
|
|
222
256
|
stageUiBroker.cancelStagePrompt(input.runId, stageId, err);
|
|
223
257
|
if (mergedSignal.signal.aborted) {
|
|
224
258
|
input.preserveWorkflowExitSkippedReason(stageSnapshot, input.signal.aborted ? "run-aborted" : "prompt-aborted");
|
|
225
|
-
finalizePromptStage("skipped");
|
|
259
|
+
await finalizePromptStage("skipped");
|
|
226
260
|
throw hilAbortError(mergedSignal.signal);
|
|
227
261
|
}
|
|
228
262
|
if (!finalized) {
|
|
229
263
|
applyFailureToStage(stageSnapshot, input.classifyExecutorFailure(err));
|
|
230
|
-
finalizePromptStage("failed");
|
|
264
|
+
await finalizePromptStage("failed");
|
|
231
265
|
}
|
|
232
266
|
throw err;
|
|
233
267
|
} finally {
|
|
@@ -238,7 +272,7 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
238
272
|
const accepted = input.activeStore.recordStagePendingPrompt(input.runId, stageId, prompt);
|
|
239
273
|
if (!accepted) {
|
|
240
274
|
stageSnapshot.skippedReason = "prompt-unavailable";
|
|
241
|
-
finalizePromptStage("skipped");
|
|
275
|
+
await finalizePromptStage("skipped");
|
|
242
276
|
return fallbackForPromptDescriptor(descriptor);
|
|
243
277
|
}
|
|
244
278
|
|
|
@@ -272,21 +306,36 @@ export function buildPromptNodeUiAdapter(input: {
|
|
|
272
306
|
);
|
|
273
307
|
});
|
|
274
308
|
await waitForExplicitResume();
|
|
275
|
-
finalizePromptStage("completed");
|
|
309
|
+
await finalizePromptStage("completed");
|
|
276
310
|
return response;
|
|
277
311
|
} catch (err) {
|
|
278
312
|
if (input.signal.aborted) {
|
|
279
313
|
input.preserveWorkflowExitSkippedReason(stageSnapshot, "run-aborted");
|
|
280
|
-
finalizePromptStage("skipped");
|
|
314
|
+
await finalizePromptStage("skipped");
|
|
281
315
|
} else {
|
|
282
316
|
applyFailureToStage(stageSnapshot, input.classifyExecutorFailure(err));
|
|
283
|
-
finalizePromptStage("failed");
|
|
317
|
+
await finalizePromptStage("failed");
|
|
284
318
|
}
|
|
285
319
|
throw err;
|
|
286
320
|
}
|
|
287
321
|
};
|
|
288
322
|
|
|
289
323
|
return {
|
|
324
|
+
async replayDurable(request: DurableUiReplayRequest): Promise<void> {
|
|
325
|
+
await withPromptCallerStack(request.callerStack, async () => {
|
|
326
|
+
if (request.kind === "input") {
|
|
327
|
+
await ask({ kind: "input", message: request.promptText }, request);
|
|
328
|
+
} else if (request.kind === "confirm") {
|
|
329
|
+
await ask({ kind: "confirm", message: request.message }, request);
|
|
330
|
+
} else if (request.kind === "select") {
|
|
331
|
+
await ask({ kind: "select", message: request.message, choices: request.options }, request);
|
|
332
|
+
} else if (request.kind === "editor") {
|
|
333
|
+
await ask({ kind: "editor", message: "Edit and save to continue.", initial: request.initial }, request);
|
|
334
|
+
} else {
|
|
335
|
+
await ask(customPromptDescriptor(request.factory, request.options), request);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
},
|
|
290
339
|
async input(promptText: string): Promise<string> {
|
|
291
340
|
const response = await ask({ kind: "input", message: promptText });
|
|
292
341
|
return typeof response === "string" ? response : String(response ?? "");
|
|
@@ -84,11 +84,14 @@ export function createTrackedStageCaller(input: {
|
|
|
84
84
|
reason,
|
|
85
85
|
gateEnabled: readinessGateEnabled,
|
|
86
86
|
aborted: runtime.signal.aborted,
|
|
87
|
-
}))
|
|
88
|
-
|
|
87
|
+
}) || skipResumeContinuationInjection()) continue;
|
|
88
|
+
const suppressQueuedContinuation = reason === "paused-queued-user-message";
|
|
89
|
+
if (suppressQueuedContinuation) runtime.state.suppressQueuedUserMessageContinuation = true;
|
|
90
|
+
try {
|
|
91
|
+
result = await raceAbort(runtime.innerCtx.prompt(RESUME_CONTINUATION_PROMPT), runtime.signal) as T;
|
|
92
|
+
} finally {
|
|
93
|
+
if (suppressQueuedContinuation) runtime.state.suppressQueuedUserMessageContinuation = false;
|
|
89
94
|
}
|
|
90
|
-
if (skipResumeContinuationInjection()) continue;
|
|
91
|
-
result = await raceAbort(runtime.innerCtx.prompt(RESUME_CONTINUATION_PROMPT), runtime.signal) as T;
|
|
92
95
|
captureChatAnswer();
|
|
93
96
|
}
|
|
94
97
|
captureChatAnswer();
|
|
@@ -186,8 +189,12 @@ export function createTrackedStageCaller(input: {
|
|
|
186
189
|
runtime.state.chatAnswerObservedThisTurn = false;
|
|
187
190
|
runtime.state.waitingForStageChatTurn = true;
|
|
188
191
|
try {
|
|
189
|
-
await raceAbort(new Promise<void>((resolve) => {
|
|
192
|
+
await raceAbort(new Promise<void>((resolve) => {
|
|
193
|
+
resolveNextTurnEnd = resolve;
|
|
194
|
+
runtime.state.wakeWaitingForStageChatTurn = resolve;
|
|
195
|
+
}), runtime.signal);
|
|
190
196
|
} finally {
|
|
197
|
+
runtime.state.wakeWaitingForStageChatTurn = undefined;
|
|
191
198
|
runtime.state.waitingForStageChatTurn = false;
|
|
192
199
|
}
|
|
193
200
|
if (runtime.signal.aborted) break;
|
|
@@ -198,6 +205,7 @@ export function createTrackedStageCaller(input: {
|
|
|
198
205
|
if (runtime.innerCtx.__structuredOutputFinalized()) break;
|
|
199
206
|
}
|
|
200
207
|
} finally {
|
|
208
|
+
runtime.state.wakeWaitingForStageChatTurn = undefined;
|
|
201
209
|
resolveNextTurnEnd = null;
|
|
202
210
|
unsubscribeTurnWatcher();
|
|
203
211
|
}
|
|
@@ -55,15 +55,19 @@ export function createStageControlHandle(runtime: LiveStageRuntime): StageContro
|
|
|
55
55
|
runtime.throwIfStageMutationBlocked();
|
|
56
56
|
runtime.captureStageSessionMeta();
|
|
57
57
|
},
|
|
58
|
-
async sendUserMessage(text, options) {
|
|
58
|
+
async sendUserMessage(text, options, beforeDelivery) {
|
|
59
59
|
runtime.throwIfStageMutationBlocked();
|
|
60
60
|
await ensureMessagingSession();
|
|
61
61
|
runtime.throwIfStageMutationBlocked();
|
|
62
|
+
const admitDelivery = (): void => {
|
|
63
|
+
runtime.throwIfStageMutationBlocked();
|
|
64
|
+
beforeDelivery?.();
|
|
65
|
+
};
|
|
62
66
|
try {
|
|
63
67
|
const action = await runtime.innerCtx.__sendUserMessage(
|
|
64
68
|
text,
|
|
65
69
|
options,
|
|
66
|
-
|
|
70
|
+
admitDelivery,
|
|
67
71
|
);
|
|
68
72
|
if (action === "steer" || action === "followUp") {
|
|
69
73
|
runtime.state.resumeContinuationPending = "queued-user-message";
|
|
@@ -138,7 +142,7 @@ export function createStageControlHandle(runtime: LiveStageRuntime): StageContro
|
|
|
138
142
|
// pause-adjusted stage elapsed time even inside the normal 30s bucket.
|
|
139
143
|
await runtime.captureStageSessionMeta({ forceDurable: true });
|
|
140
144
|
},
|
|
141
|
-
async resume(message?: string) {
|
|
145
|
+
async resume(message?: string, beforeResume?: () => void) {
|
|
142
146
|
runtime.throwIfStageMutationBlocked();
|
|
143
147
|
await ensureMessagingSession();
|
|
144
148
|
runtime.throwIfStageMutationBlocked();
|
|
@@ -147,10 +151,23 @@ export function createStageControlHandle(runtime: LiveStageRuntime): StageContro
|
|
|
147
151
|
const hasMessage = typeof message === "string" && message.trim().length > 0;
|
|
148
152
|
const resumeMessage = hasMessage ? message : undefined;
|
|
149
153
|
const queuedResumeContinuation = wasPausedBeforeResume && !resumesIdleStageChat;
|
|
150
|
-
const
|
|
151
|
-
|
|
154
|
+
const previousResumeContinuation = runtime.state.resumeContinuationPending;
|
|
155
|
+
let resumeContinuationChanged = false;
|
|
156
|
+
let wakeReleasedIdleStageChat = false;
|
|
152
157
|
try {
|
|
153
|
-
await runtime.innerCtx.__resume(
|
|
158
|
+
await runtime.innerCtx.__resume(
|
|
159
|
+
resumesIdleStageChat ? undefined : resumeMessage,
|
|
160
|
+
({ releasedQueuedMessages, runnerOwnedDeliveryPending }) => {
|
|
161
|
+
if (runnerOwnedDeliveryPending) return;
|
|
162
|
+
if (!releasedQueuedMessages && !queuedResumeContinuation) return;
|
|
163
|
+
resumeContinuationChanged = true;
|
|
164
|
+
runtime.state.resumeContinuationPending = releasedQueuedMessages
|
|
165
|
+
? "paused-queued-user-message"
|
|
166
|
+
: previousResumeContinuation === false ? "resume" : previousResumeContinuation;
|
|
167
|
+
wakeReleasedIdleStageChat = resumesIdleStageChat && releasedQueuedMessages;
|
|
168
|
+
},
|
|
169
|
+
beforeResume,
|
|
170
|
+
);
|
|
154
171
|
const changed = runtime.activeStore.recordStageResumed(runtime.runId, runtime.stageId);
|
|
155
172
|
if (changed) {
|
|
156
173
|
runtime.scheduler.releaseStageBarrier(runtime.stageId);
|
|
@@ -159,6 +176,7 @@ export function createStageControlHandle(runtime: LiveStageRuntime): StageContro
|
|
|
159
176
|
// resume succeeds, the run is active even if sibling stages remain paused.
|
|
160
177
|
runtime.activeStore.recordRunResumed(runtime.runId);
|
|
161
178
|
}
|
|
179
|
+
if (wakeReleasedIdleStageChat) runtime.state.wakeWaitingForStageChatTurn?.();
|
|
162
180
|
if (resumesIdleStageChat && hasMessage) {
|
|
163
181
|
runtime.throwIfStageMutationBlocked();
|
|
164
182
|
return await runtime.innerCtx.__sendUserMessage(
|
|
@@ -168,8 +186,8 @@ export function createStageControlHandle(runtime: LiveStageRuntime): StageContro
|
|
|
168
186
|
);
|
|
169
187
|
}
|
|
170
188
|
} catch (err) {
|
|
171
|
-
if (
|
|
172
|
-
runtime.state.resumeContinuationPending =
|
|
189
|
+
if (resumeContinuationChanged) {
|
|
190
|
+
runtime.state.resumeContinuationPending = previousResumeContinuation;
|
|
173
191
|
}
|
|
174
192
|
throw err;
|
|
175
193
|
} finally {
|
|
@@ -30,6 +30,7 @@ import { createQueuedUserMessageConsumptionWatcher } from "./executor-queued-use
|
|
|
30
30
|
|
|
31
31
|
export function createWorkflowStageFactory(input: {
|
|
32
32
|
readonly runId: string;
|
|
33
|
+
readonly workflowIntercomGroup: string;
|
|
33
34
|
readonly activeStore: Store;
|
|
34
35
|
readonly opts: EngineStageRuntimeOptions;
|
|
35
36
|
readonly adapters: StageAdapters;
|
|
@@ -49,9 +50,10 @@ export function createWorkflowStageFactory(input: {
|
|
|
49
50
|
return (name: string, options?: StageOptions, stageFailFastScope?: ParallelFailFastScope): StageContextWithMeta => {
|
|
50
51
|
input.exit.throwIfWorkflowExitSelected();
|
|
51
52
|
options = stageOptionsWithGitWorktree(stageOptionsWithInputDefaults(options, input.inputRuntimeDefaults), input.workflowInvocationCwd, input.gitWorktreeSetupCache);
|
|
52
|
-
const stageId = crypto.randomUUID();
|
|
53
|
+
const stageId = options?.durableStageId ?? crypto.randomUUID();
|
|
53
54
|
const provisionalParentIds = input.tracker.onSpawn(stageId, name);
|
|
54
|
-
const scopedParentIds =
|
|
55
|
+
const scopedParentIds = options?.durableParentIds
|
|
56
|
+
?? (input.opts.continuation === undefined ? stageFailFastScope?.parentIds : undefined);
|
|
55
57
|
const initialParentIds = scopedParentIds === undefined ? provisionalParentIds : [...scopedParentIds];
|
|
56
58
|
if (scopedParentIds !== undefined && !sameStringSet(scopedParentIds, provisionalParentIds)) {
|
|
57
59
|
input.tracker.replaceParents(stageId, scopedParentIds);
|
|
@@ -65,7 +67,7 @@ export function createWorkflowStageFactory(input: {
|
|
|
65
67
|
stageId,
|
|
66
68
|
kind: "stage",
|
|
67
69
|
});
|
|
68
|
-
const parentIds = replayDecision.parentIds;
|
|
70
|
+
const parentIds = options?.durableParentIds ?? replayDecision.parentIds;
|
|
69
71
|
if (!sameStringSet(parentIds, provisionalParentIds)) input.tracker.replaceParents(stageId, parentIds);
|
|
70
72
|
const replaySource = replayDecision.kind === "replay" ? replayDecision.source : undefined;
|
|
71
73
|
const executeReplaySource = replayDecision.kind === "execute" ? replayDecision.source : undefined;
|
|
@@ -131,6 +133,7 @@ export function createWorkflowStageFactory(input: {
|
|
|
131
133
|
stageName: name,
|
|
132
134
|
adapters: input.adapters,
|
|
133
135
|
runId: input.runId,
|
|
136
|
+
workflowIntercomGroup: input.workflowIntercomGroup,
|
|
134
137
|
signal: input.signal,
|
|
135
138
|
stageOptions: stageOptionsForContext,
|
|
136
139
|
models: input.opts.models,
|
|
@@ -147,7 +150,9 @@ export function createWorkflowStageFactory(input: {
|
|
|
147
150
|
askUserQuestionObservedThisTurn: false,
|
|
148
151
|
chatAnswerObservedThisTurn: false,
|
|
149
152
|
resumeContinuationPending: false,
|
|
153
|
+
suppressQueuedUserMessageContinuation: false,
|
|
150
154
|
waitingForStageChatTurn: false,
|
|
155
|
+
wakeWaitingForStageChatTurn: undefined,
|
|
151
156
|
liveHandleReleased: false,
|
|
152
157
|
stageClosedByWorkflowExit: false,
|
|
153
158
|
stageFinalized: false,
|
|
@@ -183,7 +188,9 @@ export function createWorkflowStageFactory(input: {
|
|
|
183
188
|
});
|
|
184
189
|
const unsubscribeQueuedUserMessageWatcher = innerCtx.subscribe(
|
|
185
190
|
createQueuedUserMessageConsumptionWatcher(() => {
|
|
186
|
-
state.
|
|
191
|
+
if (!state.suppressQueuedUserMessageContinuation) {
|
|
192
|
+
state.resumeContinuationPending = "queued-user-message";
|
|
193
|
+
}
|
|
187
194
|
}),
|
|
188
195
|
);
|
|
189
196
|
|
|
@@ -14,14 +14,17 @@ export interface StageMcpScope {
|
|
|
14
14
|
clear(): void;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export type ResumeContinuationReason = "resume" | "queued-user-message";
|
|
17
|
+
export type ResumeContinuationReason = "resume" | "queued-user-message" | "paused-queued-user-message";
|
|
18
18
|
|
|
19
19
|
export interface LiveStageMutableState {
|
|
20
20
|
activeAskUserQuestionAnonymousCalls: number;
|
|
21
21
|
askUserQuestionObservedThisTurn: boolean;
|
|
22
22
|
chatAnswerObservedThisTurn: boolean;
|
|
23
23
|
resumeContinuationPending: false | ResumeContinuationReason;
|
|
24
|
+
suppressQueuedUserMessageContinuation: boolean;
|
|
24
25
|
waitingForStageChatTurn: boolean;
|
|
26
|
+
/** Wakes the executor so a paused idle stage-chat can drain released work. */
|
|
27
|
+
wakeWaitingForStageChatTurn: (() => void) | undefined;
|
|
25
28
|
liveHandleReleased: boolean;
|
|
26
29
|
stageClosedByWorkflowExit: boolean;
|
|
27
30
|
stageFinalized: boolean;
|
|
@@ -9,7 +9,7 @@ import type {
|
|
|
9
9
|
WorkflowMcpPort,
|
|
10
10
|
WorkflowModelCatalogPort,
|
|
11
11
|
} from "../../shared/types.js";
|
|
12
|
-
import type { RunStatus, RunSnapshot, StageSnapshot, WorkflowOverlayAdapter } from "../../shared/store-types.js";
|
|
12
|
+
import type { RunStatus, RunSnapshot, StageSnapshot, ToolNodeSnapshot, WorkflowOverlayAdapter } from "../../shared/store-types.js";
|
|
13
13
|
import type { Store } from "../../shared/store.js";
|
|
14
14
|
import type { WorkflowRegistry } from "../../workflows/registry.js";
|
|
15
15
|
import type { CancellationRegistry } from "../background/cancellation-registry.js";
|
|
@@ -89,6 +89,8 @@ export interface RunOpts extends Omit<AuthoringContract.RunOpts, "adapters" | "s
|
|
|
89
89
|
* cross-ref: issue #1498 — DBOS-backed cross-session resumability.
|
|
90
90
|
*/
|
|
91
91
|
durableBackend?: import("../../durable/backend.js").DurableWorkflowBackend;
|
|
92
|
+
/** Internal physical backend used to reconstruct full nested topology through stacked scopes. */
|
|
93
|
+
durableRootBackend?: import("../../durable/backend.js").DurableWorkflowBackend;
|
|
92
94
|
/**
|
|
93
95
|
* Durable scope for a child workflow run. When set, the child's internal
|
|
94
96
|
* `ctx.tool`/`ctx.ui`/`ctx.stage` checkpoints are routed under the root
|
|
@@ -116,10 +118,14 @@ export interface RunResult<TOutputs extends WorkflowOutputValues = WorkflowOutpu
|
|
|
116
118
|
readonly status: RunStatus;
|
|
117
119
|
readonly result?: Partial<TOutputs>;
|
|
118
120
|
readonly error?: string;
|
|
121
|
+
/** Tool node whose rejection supplied the selected terminal failure. */
|
|
122
|
+
readonly failedToolNodeId?: string;
|
|
119
123
|
/** True when the run reached its terminal status through ctx.exit(). */
|
|
120
124
|
readonly exited?: boolean;
|
|
121
125
|
readonly exitReason?: string;
|
|
122
126
|
readonly stages: StageSnapshot[];
|
|
127
|
+
/** Always populated by the runtime; optional for legacy structural literals. */
|
|
128
|
+
readonly toolNodes?: ToolNodeSnapshot[];
|
|
123
129
|
}
|
|
124
130
|
|
|
125
131
|
export interface ParallelFailFastStage {
|
|
@@ -30,6 +30,7 @@ import { isReopenableSessionTranscript } from "../../shared/session-transcript.j
|
|
|
30
30
|
import { createStageContext, type StageAdapters } from "./stage-runner.js";
|
|
31
31
|
import {
|
|
32
32
|
type AgentSessionEventListener,
|
|
33
|
+
type DetachedStageHandleLease,
|
|
33
34
|
type StageControlHandle,
|
|
34
35
|
type StageControlRegistry,
|
|
35
36
|
} from "./stage-control-registry.js";
|
|
@@ -45,6 +46,10 @@ export type EnsurePostMortemStageHandleResult =
|
|
|
45
46
|
| { readonly ok: true; readonly handle: StageControlHandle }
|
|
46
47
|
| { readonly ok: false; readonly reason: PostMortemUnavailableReason };
|
|
47
48
|
|
|
49
|
+
export type AcquirePostMortemStageHandleResult =
|
|
50
|
+
| { readonly ok: true; readonly lease: DetachedStageHandleLease }
|
|
51
|
+
| { readonly ok: false; readonly reason: PostMortemUnavailableReason };
|
|
52
|
+
|
|
48
53
|
export interface PostMortemStageChatDeps {
|
|
49
54
|
readonly registry: StageControlRegistry;
|
|
50
55
|
readonly adapters?: StageAdapters;
|
|
@@ -82,7 +87,7 @@ export function ensurePostMortemStageHandle(
|
|
|
82
87
|
deps: PostMortemStageChatDeps,
|
|
83
88
|
): EnsurePostMortemStageHandleResult {
|
|
84
89
|
if (!TERMINAL_POSTMORTEM_STATUSES.has(stage.status)) return { ok: false, reason: "not_terminal" };
|
|
85
|
-
const existing = deps.registry.
|
|
90
|
+
const existing = deps.registry.claim(runId, stage.id);
|
|
86
91
|
if (existing !== undefined && existing.isDisposed !== true) {
|
|
87
92
|
return { ok: true, handle: existing };
|
|
88
93
|
}
|
|
@@ -98,6 +103,31 @@ export function ensurePostMortemStageHandle(
|
|
|
98
103
|
return { ok: true, handle };
|
|
99
104
|
}
|
|
100
105
|
|
|
106
|
+
/** Acquire a tentative detached handle for programmatic message admission. */
|
|
107
|
+
export function acquirePostMortemStageHandle(
|
|
108
|
+
runId: string,
|
|
109
|
+
stage: StageSnapshot,
|
|
110
|
+
deps: PostMortemStageChatDeps,
|
|
111
|
+
): AcquirePostMortemStageHandleResult {
|
|
112
|
+
if (!TERMINAL_POSTMORTEM_STATUSES.has(stage.status)) return { ok: false, reason: "not_terminal" };
|
|
113
|
+
const existing = deps.registry.peek(runId, stage.id);
|
|
114
|
+
if (existing !== undefined && existing.isDisposed !== true) {
|
|
115
|
+
return {
|
|
116
|
+
ok: true,
|
|
117
|
+
lease: deps.registry.acquireDetached(runId, stage.id, () => existing),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (deps.adapters?.agentSession === undefined) return { ok: false, reason: "no_adapter" };
|
|
121
|
+
const sessionFile = stage.sessionFile;
|
|
122
|
+
if (typeof sessionFile !== "string" || sessionFile.length === 0) return { ok: false, reason: "no_session" };
|
|
123
|
+
if (!isReopenableSessionTranscript(sessionFile)) return { ok: false, reason: "invalid_session" };
|
|
124
|
+
const adapters = deps.adapters;
|
|
125
|
+
const lease = deps.registry.acquireDetached(runId, stage.id, () =>
|
|
126
|
+
createPostMortemStageHandle(runId, stage, sessionFile, adapters, deps.cwd, deps.defaultSessionDir)
|
|
127
|
+
);
|
|
128
|
+
return { ok: true, lease };
|
|
129
|
+
}
|
|
130
|
+
|
|
101
131
|
/**
|
|
102
132
|
* Build a lazy session-only stage-control handle that reopens `sessionFile` on
|
|
103
133
|
* first use and appends follow-up conversation without dispatching the
|
|
@@ -141,6 +171,10 @@ export function createPostMortemStageHandle(
|
|
|
141
171
|
get messages() { return context.messages; },
|
|
142
172
|
get agentSession() { return context.__agentSession(); },
|
|
143
173
|
async ensureAttached() { await ensureAttached(); },
|
|
174
|
+
async sendUserMessage(text, options, beforeDelivery) {
|
|
175
|
+
await ensureAttached();
|
|
176
|
+
return context.__sendUserMessage(text, options, beforeDelivery);
|
|
177
|
+
},
|
|
144
178
|
async prompt(text: string) {
|
|
145
179
|
await ensureAttached();
|
|
146
180
|
await context.prompt(text);
|