@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
|
@@ -16,42 +16,33 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { runCallback } from "@bastani/atomic";
|
|
19
|
-
import
|
|
19
|
+
import { field, hasProcessFailureEvidence, normalizeCode } from "../shared/workflow-failures-signals.js";
|
|
20
|
+
import type { ToolNodeSnapshot } from "../shared/store-types.js";
|
|
21
|
+
import type {
|
|
22
|
+
WorkflowSerializableValue,
|
|
23
|
+
WorkflowToolOptions,
|
|
24
|
+
WorkflowToolOutcome,
|
|
25
|
+
WorkflowToolPrimitive,
|
|
26
|
+
} from "../shared/types.js";
|
|
20
27
|
import type { DurableWorkflowBackend } from "./backend.js";
|
|
21
28
|
import { durableHash } from "./backend.js";
|
|
22
|
-
import
|
|
29
|
+
import {
|
|
30
|
+
replayedWorkflowToolOutcome,
|
|
31
|
+
workflowToolFailure,
|
|
32
|
+
workflowToolOutcomeFromValue,
|
|
33
|
+
workflowToolSuccess,
|
|
34
|
+
} from "./tool-outcome.js";
|
|
35
|
+
import { recordThrowingToolFailure } from "./tool-failure-checkpoint.js";
|
|
36
|
+
import { DURABLE_TOOL_TOPOLOGY_VERSION, type DurableCheckpoint, type DurableStageRunTopology, type DurableToolCheckpoint } from "./types.js";
|
|
37
|
+
export type { WorkflowToolOptions, WorkflowToolPrimitive } from "../shared/types.js";
|
|
23
38
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export interface WorkflowToolOptions {
|
|
28
|
-
/**
|
|
29
|
-
* When true, the tool function is retried on failure with exponential
|
|
30
|
-
* backoff. Defaults to false (matching DBOS step default).
|
|
31
|
-
*/
|
|
32
|
-
readonly retriesAllowed?: boolean;
|
|
33
|
-
/** Max retry attempts when retriesAllowed is true. Default 3. */
|
|
34
|
-
readonly maxAttempts?: number;
|
|
35
|
-
/** Initial retry interval in ms. Default 1000. */
|
|
36
|
-
readonly intervalMs?: number;
|
|
37
|
-
/** Backoff multiplier. Default 2. */
|
|
38
|
-
readonly backoffRate?: number;
|
|
39
|
-
}
|
|
39
|
+
type WorkflowToolInvocationResult<TValue extends WorkflowSerializableValue> =
|
|
40
|
+
| TValue
|
|
41
|
+
| WorkflowToolOutcome<TValue>;
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* @param name Tool name (for display and checkpoint identity).
|
|
45
|
-
* @param args Tool arguments (JSON-serializable; included in the content hash).
|
|
46
|
-
* @param fn The async function to execute. Its return must be JSON-serializable.
|
|
47
|
-
* @param options Retry configuration.
|
|
48
|
-
*/
|
|
49
|
-
export type WorkflowToolPrimitive = <T extends WorkflowSerializableValue>(
|
|
50
|
-
name: string,
|
|
51
|
-
args: Readonly<Record<string, WorkflowSerializableValue>>,
|
|
52
|
-
fn: () => Promise<T>,
|
|
53
|
-
options?: WorkflowToolOptions,
|
|
54
|
-
) => Promise<T>;
|
|
43
|
+
export type WorkflowToolExecutionAdmission =
|
|
44
|
+
| { readonly accepted?: true; bindNode(nodeId: string): void }
|
|
45
|
+
| { readonly accepted: false; readonly error: Error; bindNode(nodeId: string): void };
|
|
55
46
|
|
|
56
47
|
export interface CreateToolPrimitiveInput {
|
|
57
48
|
readonly workflowId: string;
|
|
@@ -62,6 +53,16 @@ export interface CreateToolPrimitiveInput {
|
|
|
62
53
|
readonly throwIfCancelled: () => void;
|
|
63
54
|
/** Optional signal for aborting retry backoff sleeps. */
|
|
64
55
|
readonly signal?: AbortSignal;
|
|
56
|
+
/** Track the final logical execution promise and bind it to its graph node. */
|
|
57
|
+
readonly trackExecution?: <T>(execution: Promise<T>) => WorkflowToolExecutionAdmission | void;
|
|
58
|
+
/** Observe a logical throwing-mode failure before graph publication or promise rejection. */
|
|
59
|
+
readonly onFailureObserved?: (error: unknown, nodeId: string) => void;
|
|
60
|
+
/** Admit/update a first-class graph node around the durable call. */
|
|
61
|
+
readonly onNodeStart?: (node: ToolNodeSnapshot) => void;
|
|
62
|
+
readonly onNodeRunning?: (nodeId: string, startedAt: number) => void;
|
|
63
|
+
readonly onNodeEnd?: (nodeId: string, update: Pick<ToolNodeSnapshot, "status"> & Partial<Pick<ToolNodeSnapshot, "endedAt" | "resultSummary" | "error">>) => void;
|
|
64
|
+
readonly onNodeSettle?: (nodeId: string) => void;
|
|
65
|
+
readonly runTopology?: DurableStageRunTopology;
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
/**
|
|
@@ -69,53 +70,360 @@ export interface CreateToolPrimitiveInput {
|
|
|
69
70
|
*/
|
|
70
71
|
export function createToolPrimitive(input: CreateToolPrimitiveInput): WorkflowToolPrimitive {
|
|
71
72
|
const ordinals = new Map<string, number>();
|
|
72
|
-
return
|
|
73
|
+
return (<T extends WorkflowSerializableValue>(
|
|
73
74
|
name: string,
|
|
74
75
|
args: Readonly<Record<string, WorkflowSerializableValue>>,
|
|
75
76
|
fn: () => Promise<T>,
|
|
76
77
|
options?: WorkflowToolOptions,
|
|
77
|
-
): Promise<T
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
): Promise<WorkflowToolInvocationResult<T>> => {
|
|
79
|
+
let resolveExecution!: (value: WorkflowToolInvocationResult<T> | PromiseLike<WorkflowToolInvocationResult<T>>) => void;
|
|
80
|
+
let rejectExecution!: (reason?: unknown) => void;
|
|
81
|
+
const execution = new Promise<WorkflowToolInvocationResult<T>>((resolve, reject) => {
|
|
82
|
+
resolveExecution = resolve;
|
|
83
|
+
rejectExecution = reject;
|
|
84
|
+
});
|
|
85
|
+
const admission = input.trackExecution?.(execution);
|
|
86
|
+
if (admission?.accepted === false) {
|
|
87
|
+
void execution.catch(() => undefined);
|
|
88
|
+
rejectExecution(admission.error);
|
|
89
|
+
return execution;
|
|
90
|
+
}
|
|
91
|
+
void executeToolInvocation(input, ordinals, name, args, fn, options, (nodeId) => admission?.bindNode(nodeId))
|
|
92
|
+
.then(resolveExecution, rejectExecution);
|
|
93
|
+
return execution;
|
|
94
|
+
}) as WorkflowToolPrimitive;
|
|
95
|
+
}
|
|
83
96
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
97
|
+
async function executeToolInvocation<T extends WorkflowSerializableValue>(
|
|
98
|
+
input: CreateToolPrimitiveInput,
|
|
99
|
+
ordinals: Map<string, number>,
|
|
100
|
+
name: string,
|
|
101
|
+
args: Readonly<Record<string, WorkflowSerializableValue>>,
|
|
102
|
+
fn: () => Promise<T>,
|
|
103
|
+
options: WorkflowToolOptions | undefined,
|
|
104
|
+
bindNode: (nodeId: string) => void,
|
|
105
|
+
): Promise<WorkflowToolInvocationResult<T>> {
|
|
106
|
+
input.throwIfCancelled();
|
|
107
|
+
if (options?.retriesAllowed === true && options.maxAttempts !== undefined
|
|
108
|
+
&& (!Number.isInteger(options.maxAttempts) || options.maxAttempts < 1)) {
|
|
109
|
+
throw new RangeError("atomic-workflows: ctx.tool maxAttempts must be a positive integer");
|
|
110
|
+
}
|
|
111
|
+
const returnFailure = options?.failureMode === "return";
|
|
112
|
+
const identityMode = returnFailure ? { failureMode: "return" as const } : {};
|
|
113
|
+
const callKey = durableHash({ name, args, ...identityMode });
|
|
114
|
+
const ordinal = (ordinals.get(callKey) ?? 0) + 1;
|
|
115
|
+
ordinals.set(callKey, ordinal);
|
|
116
|
+
const argsHash = durableHash({ name, args, ordinal, ...identityMode });
|
|
87
117
|
|
|
88
|
-
|
|
118
|
+
const cached = input.backend.getToolCheckpoint(input.workflowId, argsHash);
|
|
119
|
+
const node: ToolNodeSnapshot = {
|
|
120
|
+
kind: "tool",
|
|
121
|
+
id: cached?.topology?.nodeId ?? `tool:${argsHash}`,
|
|
122
|
+
name,
|
|
123
|
+
argsHash,
|
|
124
|
+
ordinal: cached?.topology?.ordinal ?? ordinal,
|
|
125
|
+
parentIds: Object.freeze(cached?.topology?.parentIds ?? []),
|
|
126
|
+
status: "pending",
|
|
127
|
+
...(cached !== undefined && cached.topology === undefined ? { topologyState: "unavailable" as const } : {}),
|
|
128
|
+
...(cached !== undefined ? { replayed: true } : {}),
|
|
129
|
+
...(cached?.topology?.order !== undefined ? { executionOrder: cached.topology.order } : {}),
|
|
130
|
+
...(cached?.topology?.startedAt !== undefined ? { startedAt: cached.topology.startedAt } : {}),
|
|
131
|
+
attachable: false,
|
|
132
|
+
};
|
|
133
|
+
bindNode(node.id);
|
|
134
|
+
input.onNodeStart?.(node);
|
|
135
|
+
if (cached !== undefined) {
|
|
136
|
+
const endedAt = cached.topology?.endedAt ?? cached.completedAt;
|
|
137
|
+
try {
|
|
138
|
+
await recordReplayedToolTopology(input, node, cached, argsHash, endedAt);
|
|
139
|
+
const returnedOutcome = cached.outcomeKind === undefined
|
|
140
|
+
? undefined
|
|
141
|
+
: workflowToolOutcomeFromValue<T>(cached.output);
|
|
142
|
+
if (cached.outcomeKind !== undefined && returnedOutcome === undefined) {
|
|
143
|
+
throw new Error(`atomic-workflows: invalid durable return outcome for ctx.tool ${name}`);
|
|
144
|
+
}
|
|
145
|
+
const output = returnedOutcome === undefined
|
|
146
|
+
? cached.output as T
|
|
147
|
+
: replayedWorkflowToolOutcome(returnedOutcome);
|
|
148
|
+
const failed = cached.outcomeKind === "return_failure";
|
|
149
|
+
input.onNodeEnd?.(node.id, {
|
|
150
|
+
status: failed ? "failed" : "cached",
|
|
151
|
+
endedAt,
|
|
152
|
+
...(failed && returnedOutcome?.ok === false
|
|
153
|
+
? { error: returnedOutcome.error.message }
|
|
154
|
+
: { resultSummary: summarizeToolResult(output) }),
|
|
155
|
+
});
|
|
156
|
+
input.onNodeSettle?.(node.id);
|
|
157
|
+
return output;
|
|
158
|
+
} catch (error) {
|
|
159
|
+
const status = input.signal?.aborted === true ? "cancelled" : "failed";
|
|
160
|
+
if (status === "failed") input.onFailureObserved?.(error, node.id);
|
|
161
|
+
input.onNodeEnd?.(node.id, { status, endedAt: Date.now(), error: error instanceof Error ? error.message : String(error) });
|
|
162
|
+
input.onNodeSettle?.(node.id);
|
|
163
|
+
throw error;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
let callbackError: unknown;
|
|
167
|
+
|
|
168
|
+
const startedAt = Date.now();
|
|
169
|
+
let attempts = 0;
|
|
170
|
+
let callbackCompleted = false;
|
|
171
|
+
input.onNodeRunning?.(node.id, startedAt);
|
|
172
|
+
try {
|
|
89
173
|
const result = await executeWithRetries(
|
|
90
|
-
() =>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
174
|
+
() => {
|
|
175
|
+
attempts += 1;
|
|
176
|
+
return runCallback(
|
|
177
|
+
{ kind: "workflow.ctx_tool", name, runId: input.workflowId },
|
|
178
|
+
fn,
|
|
179
|
+
).catch((error: unknown) => {
|
|
180
|
+
callbackError = error;
|
|
181
|
+
throw error;
|
|
182
|
+
});
|
|
183
|
+
},
|
|
94
184
|
options,
|
|
95
185
|
input.throwIfCancelled,
|
|
96
186
|
input.signal,
|
|
97
187
|
);
|
|
188
|
+
callbackCompleted = true;
|
|
189
|
+
const output = returnFailure ? workflowToolSuccess(result, attempts, false) : result;
|
|
98
190
|
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
// durable checkpoint that a resume would silently replay.
|
|
103
|
-
// cross-ref: issue #1498.
|
|
191
|
+
// Linearization policy: cancellation observed before persistence prevents
|
|
192
|
+
// a checkpoint. Once the durable write begins, a successful commit wins
|
|
193
|
+
// for this node; the root still observes its aborted signal and is killed.
|
|
104
194
|
input.throwIfCancelled();
|
|
105
|
-
|
|
106
|
-
// Record the checkpoint durably.
|
|
195
|
+
const completedAt = Date.now();
|
|
107
196
|
const checkpoint: DurableToolCheckpoint = {
|
|
108
197
|
kind: "tool",
|
|
109
198
|
workflowId: input.workflowId,
|
|
110
199
|
checkpointId: `tool:${argsHash}`,
|
|
111
200
|
name,
|
|
112
201
|
argsHash,
|
|
113
|
-
output
|
|
114
|
-
|
|
202
|
+
output,
|
|
203
|
+
...(returnFailure ? { outcomeKind: "return_success" as const } : {}),
|
|
204
|
+
completedAt,
|
|
205
|
+
topology: {
|
|
206
|
+
version: DURABLE_TOOL_TOPOLOGY_VERSION,
|
|
207
|
+
nodeId: node.id,
|
|
208
|
+
ordinal,
|
|
209
|
+
order: node.executionOrder ?? 0,
|
|
210
|
+
parentIds: [...node.parentIds],
|
|
211
|
+
startedAt,
|
|
212
|
+
endedAt: completedAt,
|
|
213
|
+
...(input.runTopology !== undefined ? { run: { ...input.runTopology } } : {}),
|
|
214
|
+
},
|
|
115
215
|
};
|
|
116
216
|
await recordCheckpointDurably(input.backend, checkpoint);
|
|
117
|
-
|
|
118
|
-
|
|
217
|
+
input.onNodeEnd?.(node.id, { status: "completed", endedAt: completedAt, resultSummary: summarizeToolResult(output) });
|
|
218
|
+
input.onNodeSettle?.(node.id);
|
|
219
|
+
return output;
|
|
220
|
+
} catch (error) {
|
|
221
|
+
try {
|
|
222
|
+
throwIfInvocationCancelled(input);
|
|
223
|
+
} catch (cancelledError) {
|
|
224
|
+
input.onNodeEnd?.(node.id, {
|
|
225
|
+
status: "cancelled",
|
|
226
|
+
endedAt: Date.now(),
|
|
227
|
+
error: cancelledError instanceof Error ? cancelledError.message : String(cancelledError),
|
|
228
|
+
});
|
|
229
|
+
input.onNodeSettle?.(node.id);
|
|
230
|
+
throw cancelledError;
|
|
231
|
+
}
|
|
232
|
+
const callbackFailure = callbackError ?? error;
|
|
233
|
+
if (returnFailure && !callbackCompleted && isExplicitCallbackCancellation(callbackFailure)) {
|
|
234
|
+
input.onFailureObserved?.(callbackFailure, node.id);
|
|
235
|
+
const failure = await recordThrowingToolFailure(
|
|
236
|
+
input,
|
|
237
|
+
node,
|
|
238
|
+
{ name, argsHash, ordinal, startedAt },
|
|
239
|
+
callbackFailure,
|
|
240
|
+
attempts,
|
|
241
|
+
);
|
|
242
|
+
input.onNodeEnd?.(node.id, { status: "failed", endedAt: failure.failedAt, error: failure.message });
|
|
243
|
+
input.onNodeSettle?.(node.id);
|
|
244
|
+
throw callbackFailure;
|
|
245
|
+
}
|
|
246
|
+
if (returnFailure && !callbackCompleted) {
|
|
247
|
+
const outcome = workflowToolFailure(callbackFailure, attempts, false);
|
|
248
|
+
const completedAt = Date.now();
|
|
249
|
+
const checkpoint: DurableToolCheckpoint = {
|
|
250
|
+
kind: "tool",
|
|
251
|
+
workflowId: input.workflowId,
|
|
252
|
+
checkpointId: `tool:${argsHash}`,
|
|
253
|
+
name,
|
|
254
|
+
argsHash,
|
|
255
|
+
output: outcome,
|
|
256
|
+
outcomeKind: "return_failure",
|
|
257
|
+
completedAt,
|
|
258
|
+
topology: {
|
|
259
|
+
version: DURABLE_TOOL_TOPOLOGY_VERSION,
|
|
260
|
+
nodeId: node.id,
|
|
261
|
+
ordinal,
|
|
262
|
+
order: node.executionOrder ?? 0,
|
|
263
|
+
parentIds: [...node.parentIds],
|
|
264
|
+
startedAt,
|
|
265
|
+
endedAt: completedAt,
|
|
266
|
+
...(input.runTopology !== undefined ? { run: { ...input.runTopology } } : {}),
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
try {
|
|
270
|
+
await recordCheckpointDurably(input.backend, checkpoint);
|
|
271
|
+
} catch (persistenceError) {
|
|
272
|
+
input.onFailureObserved?.(persistenceError, node.id);
|
|
273
|
+
input.onNodeEnd?.(node.id, {
|
|
274
|
+
status: "failed",
|
|
275
|
+
endedAt: Date.now(),
|
|
276
|
+
error: persistenceError instanceof Error ? persistenceError.message : String(persistenceError),
|
|
277
|
+
});
|
|
278
|
+
input.onNodeSettle?.(node.id);
|
|
279
|
+
throw persistenceError;
|
|
280
|
+
}
|
|
281
|
+
input.onNodeEnd?.(node.id, { status: "failed", endedAt: completedAt, error: outcome.error.message });
|
|
282
|
+
input.onNodeSettle?.(node.id);
|
|
283
|
+
throwIfInvocationCancelled(input);
|
|
284
|
+
return outcome;
|
|
285
|
+
}
|
|
286
|
+
input.onFailureObserved?.(error, node.id);
|
|
287
|
+
const failure = await recordThrowingToolFailure(
|
|
288
|
+
input,
|
|
289
|
+
node,
|
|
290
|
+
{ name, argsHash, ordinal, startedAt },
|
|
291
|
+
error,
|
|
292
|
+
attempts,
|
|
293
|
+
);
|
|
294
|
+
input.onNodeEnd?.(node.id, { status: "failed", endedAt: failure.failedAt, error: failure.message });
|
|
295
|
+
input.onNodeSettle?.(node.id);
|
|
296
|
+
throw error;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
function throwIfInvocationCancelled(input: CreateToolPrimitiveInput): void {
|
|
301
|
+
input.throwIfCancelled();
|
|
302
|
+
if (!input.signal?.aborted) return;
|
|
303
|
+
throw input.signal.reason instanceof Error
|
|
304
|
+
? input.signal.reason
|
|
305
|
+
: new Error("atomic-workflows: workflow cancelled");
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
const CALLBACK_CANCELLATION_NAMES = new Set([
|
|
309
|
+
"aborterror",
|
|
310
|
+
"aborted",
|
|
311
|
+
"cancelederror",
|
|
312
|
+
"cancellederror",
|
|
313
|
+
"canceled",
|
|
314
|
+
"cancelled",
|
|
315
|
+
]);
|
|
316
|
+
const CALLBACK_CANCELLATION_CODES = new Set([
|
|
317
|
+
"aborterror",
|
|
318
|
+
"abort_err",
|
|
319
|
+
"aborted",
|
|
320
|
+
"canceled",
|
|
321
|
+
"cancelled",
|
|
322
|
+
"ecanceled",
|
|
323
|
+
"ecancelled",
|
|
324
|
+
"err_canceled",
|
|
325
|
+
"err_cancelled",
|
|
326
|
+
]);
|
|
327
|
+
const CALLBACK_CANCELLATION_STOP_REASONS = new Set(["aborted", "canceled", "cancelled"]);
|
|
328
|
+
|
|
329
|
+
function safeCancellationField(error: unknown, key: string): unknown {
|
|
330
|
+
try {
|
|
331
|
+
return field(error, key);
|
|
332
|
+
} catch {
|
|
333
|
+
return undefined;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
function hasCancellationMarker(markers: ReadonlySet<string>, value: unknown): boolean {
|
|
338
|
+
return (typeof value === "string" || typeof value === "number")
|
|
339
|
+
&& markers.has(normalizeCode(value) ?? "");
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function isExplicitCallbackCancellation(error: unknown): boolean {
|
|
343
|
+
const seen = new Set<object>();
|
|
344
|
+
const pending: Array<{ readonly value: unknown; readonly depth: number }> = [{ value: error, depth: 0 }];
|
|
345
|
+
while (pending.length > 0) {
|
|
346
|
+
const current = pending.pop()!;
|
|
347
|
+
if (current.value === undefined || current.value === null || current.depth >= 8) continue;
|
|
348
|
+
if (typeof current.value === "object") {
|
|
349
|
+
if (seen.has(current.value)) continue;
|
|
350
|
+
seen.add(current.value);
|
|
351
|
+
}
|
|
352
|
+
const hasProcessFailure = hasProcessFailureEvidence(current.value);
|
|
353
|
+
if (!hasProcessFailure
|
|
354
|
+
&& hasCancellationMarker(CALLBACK_CANCELLATION_NAMES, safeCancellationField(current.value, "name"))) return true;
|
|
355
|
+
if (!hasProcessFailure
|
|
356
|
+
&& hasCancellationMarker(CALLBACK_CANCELLATION_STOP_REASONS, safeCancellationField(current.value, "stopReason"))) return true;
|
|
357
|
+
if (!hasProcessFailure
|
|
358
|
+
&& hasCancellationMarker(CALLBACK_CANCELLATION_CODES, safeCancellationField(current.value, "code"))) return true;
|
|
359
|
+
|
|
360
|
+
for (const key of ["cause", "error", "response", "body"] as const) {
|
|
361
|
+
pending.push({ value: safeCancellationField(current.value, key), depth: current.depth + 1 });
|
|
362
|
+
}
|
|
363
|
+
for (const key of ["diagnostics", "errors"] as const) {
|
|
364
|
+
const entries = safeCancellationField(current.value, key);
|
|
365
|
+
if (!Array.isArray(entries)) continue;
|
|
366
|
+
for (const entry of entries) {
|
|
367
|
+
pending.push({
|
|
368
|
+
value: key === "diagnostics" ? safeCancellationField(entry, "error") ?? entry : entry,
|
|
369
|
+
depth: current.depth + 1,
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
async function recordReplayedToolTopology(
|
|
378
|
+
input: CreateToolPrimitiveInput,
|
|
379
|
+
node: ToolNodeSnapshot,
|
|
380
|
+
cached: DurableToolCheckpoint,
|
|
381
|
+
argsHash: string,
|
|
382
|
+
endedAt: number,
|
|
383
|
+
): Promise<void> {
|
|
384
|
+
const runTopology = input.runTopology;
|
|
385
|
+
if (runTopology === undefined) return;
|
|
386
|
+
if (cached.topology === undefined && runTopology.parentRunId === undefined) return;
|
|
387
|
+
if (cached.topology?.run?.runId === runTopology.runId) return;
|
|
388
|
+
const topology = cached.topology === undefined
|
|
389
|
+
? {
|
|
390
|
+
version: DURABLE_TOOL_TOPOLOGY_VERSION,
|
|
391
|
+
nodeId: node.id,
|
|
392
|
+
ordinal: node.ordinal,
|
|
393
|
+
order: node.executionOrder ?? 0,
|
|
394
|
+
parentIds: [...node.parentIds],
|
|
395
|
+
endedAt,
|
|
396
|
+
run: { ...runTopology },
|
|
397
|
+
}
|
|
398
|
+
: {
|
|
399
|
+
...cached.topology,
|
|
400
|
+
parentIds: [...node.parentIds],
|
|
401
|
+
order: node.executionOrder ?? cached.topology.order,
|
|
402
|
+
endedAt,
|
|
403
|
+
run: { ...runTopology },
|
|
404
|
+
};
|
|
405
|
+
const unchanged = cached.topology !== undefined
|
|
406
|
+
&& JSON.stringify(cached.topology.parentIds) === JSON.stringify(topology.parentIds)
|
|
407
|
+
&& JSON.stringify(cached.topology.run) === JSON.stringify(topology.run)
|
|
408
|
+
&& cached.topology.endedAt === topology.endedAt;
|
|
409
|
+
if (unchanged) return;
|
|
410
|
+
await input.backend.recordAdditiveCheckpointBestEffort({
|
|
411
|
+
kind: "tool",
|
|
412
|
+
workflowId: input.workflowId,
|
|
413
|
+
checkpointId: `tool-replay-meta:${durableHash({ argsHash, topology })}`,
|
|
414
|
+
name: node.name,
|
|
415
|
+
argsHash,
|
|
416
|
+
output: cached.output,
|
|
417
|
+
...(cached.outcomeKind !== undefined ? { outcomeKind: cached.outcomeKind } : {}),
|
|
418
|
+
completedAt: Date.now(),
|
|
419
|
+
topology,
|
|
420
|
+
});
|
|
421
|
+
input.throwIfCancelled();
|
|
422
|
+
}
|
|
423
|
+
function summarizeToolResult(value: WorkflowSerializableValue): string {
|
|
424
|
+
const serialized = JSON.stringify(value);
|
|
425
|
+
if (serialized === undefined) return String(value).slice(0, 240);
|
|
426
|
+
return serialized.length <= 240 ? serialized : `${serialized.slice(0, 237)}...`;
|
|
119
427
|
}
|
|
120
428
|
|
|
121
429
|
export async function recordCheckpointDurably(backend: DurableWorkflowBackend, checkpoint: DurableCheckpoint): Promise<void> {
|
|
@@ -140,6 +448,7 @@ async function executeWithRetries<T>(
|
|
|
140
448
|
try {
|
|
141
449
|
return await fn();
|
|
142
450
|
} catch (err) {
|
|
451
|
+
if (isExplicitCallbackCancellation(err)) throw err;
|
|
143
452
|
lastError = err instanceof Error ? err : new Error(String(err));
|
|
144
453
|
if (attempt < maxAttempts) {
|
|
145
454
|
await sleepOrAbort(delay, signal);
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* cross-ref: issue #1498
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import type { WorkflowFailureCode, WorkflowFailureDisposition, WorkflowFailureKind, WorkflowFailureRecoverability } from "../shared/store-types.js";
|
|
12
13
|
import type { WorkflowModelAttempt, WorkflowSerializableValue } from "../shared/types.js";
|
|
13
14
|
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -52,6 +53,12 @@ export interface DurableWorkflowHandle {
|
|
|
52
53
|
readonly rootWorkflowId?: string;
|
|
53
54
|
/** Explicit resumability flag for failed/blocked runs. */
|
|
54
55
|
readonly resumable?: boolean;
|
|
56
|
+
readonly error?: string;
|
|
57
|
+
readonly failureKind?: WorkflowFailureKind;
|
|
58
|
+
readonly failureCode?: WorkflowFailureCode;
|
|
59
|
+
readonly failureRecoverability?: WorkflowFailureRecoverability;
|
|
60
|
+
readonly failureDisposition?: WorkflowFailureDisposition;
|
|
61
|
+
readonly failedToolNodeId?: string;
|
|
55
62
|
/** Executor id of the Atomic process that last wrote this workflow's metadata. */
|
|
56
63
|
readonly ownerExecutorId?: string;
|
|
57
64
|
}
|
|
@@ -77,6 +84,20 @@ export type DurableCheckpoint = DurableToolCheckpoint | DurableUiCheckpoint | Du
|
|
|
77
84
|
|
|
78
85
|
export type DurableCheckpointKind = "tool" | "ui" | "stage";
|
|
79
86
|
|
|
87
|
+
export const DURABLE_TOOL_TOPOLOGY_VERSION = 1 as const;
|
|
88
|
+
|
|
89
|
+
export interface DurableToolTopology {
|
|
90
|
+
readonly version: typeof DURABLE_TOOL_TOPOLOGY_VERSION;
|
|
91
|
+
readonly nodeId: string;
|
|
92
|
+
readonly ordinal: number;
|
|
93
|
+
readonly order: number;
|
|
94
|
+
readonly parentIds: readonly string[];
|
|
95
|
+
readonly startedAt?: number;
|
|
96
|
+
/** Original terminal timestamp; replay metadata may be written later. */
|
|
97
|
+
readonly endedAt?: number;
|
|
98
|
+
readonly run?: DurableStageRunTopology;
|
|
99
|
+
}
|
|
100
|
+
|
|
80
101
|
/** A `ctx.tool(...)` result cached durably. */
|
|
81
102
|
export interface DurableToolCheckpoint {
|
|
82
103
|
readonly kind: "tool";
|
|
@@ -89,7 +110,13 @@ export interface DurableToolCheckpoint {
|
|
|
89
110
|
readonly argsHash: string;
|
|
90
111
|
/** Cached tool output (JSON-serializable). */
|
|
91
112
|
readonly output: WorkflowSerializableValue;
|
|
113
|
+
/** Explicit return-mode result kind; absent for legacy/default successful tools. */
|
|
114
|
+
readonly outcomeKind?: "return_success" | "return_failure";
|
|
115
|
+
/** Inspection-only error for a throwing-mode failure; never used as a replay cache hit. */
|
|
116
|
+
readonly throwingFailureError?: string;
|
|
92
117
|
readonly completedAt: number;
|
|
118
|
+
/** Additive graph topology; omitted by pre-#1991 checkpoints. */
|
|
119
|
+
readonly topology?: DurableToolTopology;
|
|
93
120
|
}
|
|
94
121
|
|
|
95
122
|
/** A `ctx.ui.*` user response cached durably. */
|
|
@@ -110,6 +137,45 @@ export interface DurableUiCheckpoint {
|
|
|
110
137
|
|
|
111
138
|
export const DURABLE_STAGE_TOPOLOGY_VERSION = 1 as const;
|
|
112
139
|
|
|
140
|
+
export const DURABLE_BOUNDARY_TOPOLOGY_VERSION = 1 as const;
|
|
141
|
+
|
|
142
|
+
export type DurableStageLifecycleStatus =
|
|
143
|
+
| "pending"
|
|
144
|
+
| "running"
|
|
145
|
+
| "awaiting_input"
|
|
146
|
+
| "paused"
|
|
147
|
+
| "blocked"
|
|
148
|
+
| "completed"
|
|
149
|
+
| "failed"
|
|
150
|
+
| "skipped";
|
|
151
|
+
|
|
152
|
+
export interface DurableBoundaryChildTopology {
|
|
153
|
+
readonly runId: string;
|
|
154
|
+
readonly runName: string;
|
|
155
|
+
readonly parentRunId: string;
|
|
156
|
+
readonly parentStageId: string;
|
|
157
|
+
readonly rootRunId: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
interface DurableWorkflowBoundaryIdentity {
|
|
161
|
+
readonly version: typeof DURABLE_BOUNDARY_TOPOLOGY_VERSION;
|
|
162
|
+
readonly replayScope: string;
|
|
163
|
+
readonly alias: string;
|
|
164
|
+
readonly workflow: string;
|
|
165
|
+
/** Definition + exact validated inputs; absent only on compatible completed legacy records. */
|
|
166
|
+
readonly invocationFingerprint?: string;
|
|
167
|
+
readonly child: DurableBoundaryChildTopology;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** Additive identity record written before a nested workflow can execute. */
|
|
171
|
+
export type DurableWorkflowBoundaryTopology = DurableWorkflowBoundaryIdentity & (
|
|
172
|
+
| { readonly event: "start"; readonly status: "running" }
|
|
173
|
+
| {
|
|
174
|
+
readonly event: "terminal";
|
|
175
|
+
readonly status: Extract<DurableStageLifecycleStatus, "completed" | "failed" | "skipped">;
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
|
|
113
179
|
/** Durable ownership metadata needed to rebuild nested workflow runs. */
|
|
114
180
|
export interface DurableStageRunTopology {
|
|
115
181
|
readonly runId: string;
|
|
@@ -124,8 +190,18 @@ export interface DurableStageTopology {
|
|
|
124
190
|
readonly version: typeof DURABLE_STAGE_TOPOLOGY_VERSION;
|
|
125
191
|
readonly stageId: string;
|
|
126
192
|
readonly parentIds: readonly string[];
|
|
193
|
+
/** Zero-based source/spawn order within the owning run. */
|
|
194
|
+
readonly sourceOrder?: number;
|
|
195
|
+
/** Distinguishes one durable prompt-node occurrence from its logical continuation replay key. */
|
|
196
|
+
readonly occurrenceKey?: string;
|
|
197
|
+
/** Actual stage lifecycle state represented by this checkpoint. */
|
|
198
|
+
readonly status?: DurableStageLifecycleStatus;
|
|
199
|
+
/** Shared admission order with durable tool nodes. */
|
|
200
|
+
readonly order?: number;
|
|
127
201
|
/** Owning run and boundary linkage for nested workflow graph reconstruction. */
|
|
128
202
|
readonly run?: DurableStageRunTopology;
|
|
203
|
+
/** Present only for durable nested-workflow boundary records. */
|
|
204
|
+
readonly boundary?: DurableWorkflowBoundaryTopology;
|
|
129
205
|
}
|
|
130
206
|
|
|
131
207
|
/** A `ctx.stage(...)` / `ctx.task(...)` durable checkpoint or resumable session marker. */
|
|
@@ -188,6 +264,12 @@ export interface DurableWorkflowMetadata {
|
|
|
188
264
|
readonly transitionClaimId?: string;
|
|
189
265
|
readonly sessionFile?: string;
|
|
190
266
|
readonly label?: string;
|
|
267
|
+
readonly error?: string;
|
|
268
|
+
readonly failureKind?: WorkflowFailureKind;
|
|
269
|
+
readonly failureCode?: WorkflowFailureCode;
|
|
270
|
+
readonly failureRecoverability?: WorkflowFailureRecoverability;
|
|
271
|
+
readonly failureDisposition?: WorkflowFailureDisposition;
|
|
272
|
+
readonly failedToolNodeId?: string;
|
|
191
273
|
readonly rootWorkflowId?: string;
|
|
192
274
|
readonly resumable?: boolean;
|
|
193
275
|
readonly invocationCwd?: string;
|
|
@@ -207,6 +289,12 @@ export interface ResumableWorkflowEntry {
|
|
|
207
289
|
readonly pendingPrompts: number;
|
|
208
290
|
readonly sessionFile?: string;
|
|
209
291
|
readonly label?: string;
|
|
292
|
+
readonly error?: string;
|
|
293
|
+
readonly failureKind?: WorkflowFailureKind;
|
|
294
|
+
readonly failureCode?: WorkflowFailureCode;
|
|
295
|
+
readonly failureRecoverability?: WorkflowFailureRecoverability;
|
|
296
|
+
readonly failureDisposition?: WorkflowFailureDisposition;
|
|
297
|
+
readonly failedToolNodeId?: string;
|
|
210
298
|
readonly rootWorkflowId?: string;
|
|
211
299
|
readonly resumable?: boolean;
|
|
212
300
|
readonly invocationCwd?: string;
|
|
@@ -216,3 +304,12 @@ export interface ResumableWorkflowEntry {
|
|
|
216
304
|
readonly createdAt: number;
|
|
217
305
|
readonly updatedAt: number;
|
|
218
306
|
}
|
|
307
|
+
|
|
308
|
+
export interface DurableWorkflowFailureMetadata {
|
|
309
|
+
readonly error: string;
|
|
310
|
+
readonly failureKind?: WorkflowFailureKind;
|
|
311
|
+
readonly failureCode?: WorkflowFailureCode;
|
|
312
|
+
readonly failureRecoverability?: WorkflowFailureRecoverability;
|
|
313
|
+
readonly failureDisposition?: WorkflowFailureDisposition;
|
|
314
|
+
readonly failedToolNodeId?: string;
|
|
315
|
+
}
|