@bastani/atomic 0.9.5-alpha.1 → 0.9.5-alpha.10
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 +124 -2
- package/README.md +2 -2
- package/dist/builtin/cursor/CHANGELOG.md +6 -0
- package/dist/builtin/cursor/package.json +3 -3
- package/dist/builtin/cursor/src/model-mapper.ts +6 -3
- package/dist/builtin/intercom/CHANGELOG.md +31 -0
- package/dist/builtin/intercom/README.md +29 -21
- package/dist/builtin/intercom/broker/broker.ts +9 -120
- package/dist/builtin/intercom/broker/client.ts +29 -54
- package/dist/builtin/intercom/broker/delivered-message-cache.ts +44 -0
- package/dist/builtin/intercom/broker/paths.ts +42 -5
- package/dist/builtin/intercom/broker/pending-send-registry.ts +142 -0
- package/dist/builtin/intercom/broker/send-handler.ts +106 -0
- package/dist/builtin/intercom/broker/send-signature.ts +37 -0
- package/dist/builtin/intercom/broker/spawn.ts +78 -10
- package/dist/builtin/intercom/config.ts +6 -3
- package/dist/builtin/intercom/contact-supervisor-tool.ts +6 -4
- package/dist/builtin/intercom/foreground-detach-handoff.ts +136 -0
- package/dist/builtin/intercom/index-heavy.ts +50 -54
- package/dist/builtin/intercom/index.ts +320 -272
- package/dist/builtin/intercom/intercom-tool.ts +9 -3
- package/dist/builtin/intercom/lazy-heavy-proxy.ts +114 -0
- package/dist/builtin/intercom/lazy-subagent-ack.ts +20 -0
- package/dist/builtin/intercom/lazy-tool-execution.ts +39 -0
- package/dist/builtin/intercom/lifecycle-lease.ts +51 -0
- package/dist/builtin/intercom/lifecycle.ts +37 -20
- package/dist/builtin/intercom/package.json +12 -6
- package/dist/builtin/intercom/reply-routing.ts +17 -0
- package/dist/builtin/intercom/result-renderers.ts +1 -1
- package/dist/builtin/intercom/subagent-relay.ts +58 -12
- package/dist/builtin/intercom/types.ts +3 -3
- package/dist/builtin/intercom/ui/compose.ts +2 -2
- package/dist/builtin/intercom/ui/inline-message.ts +2 -2
- package/dist/builtin/intercom/ui/session-list.ts +2 -2
- package/dist/builtin/mcp/CHANGELOG.md +23 -0
- package/dist/builtin/mcp/OAUTH.md +1 -0
- package/dist/builtin/mcp/README.md +10 -6
- package/dist/builtin/mcp/apps-cancellation.ts +32 -0
- package/dist/builtin/mcp/call-tool-result.ts +9 -0
- package/dist/builtin/mcp/caller-wait.ts +50 -0
- package/dist/builtin/mcp/command-registration.ts +82 -0
- package/dist/builtin/mcp/direct-tool-executor.ts +279 -0
- package/dist/builtin/mcp/direct-tools.ts +40 -255
- package/dist/builtin/mcp/host-html-template.ts +4 -2
- package/dist/builtin/mcp/index.ts +274 -239
- package/dist/builtin/mcp/init.ts +96 -126
- package/dist/builtin/mcp/mcp-auth-flow.ts +247 -237
- package/dist/builtin/mcp/mcp-callback-server.ts +89 -68
- package/dist/builtin/mcp/mcp-oauth-provider.ts +23 -1
- package/dist/builtin/mcp/metadata-hydration.ts +52 -0
- package/dist/builtin/mcp/package.json +3 -3
- package/dist/builtin/mcp/proxy-auth.ts +4 -4
- package/dist/builtin/mcp/proxy-call.ts +111 -40
- package/dist/builtin/mcp/proxy-connect.ts +35 -15
- package/dist/builtin/mcp/proxy-info-modes.ts +106 -23
- package/dist/builtin/mcp/proxy-modes.ts +3 -3
- package/dist/builtin/mcp/session-cleanup-barrier.ts +43 -0
- package/dist/builtin/mcp/startup-warmup.ts +98 -0
- package/dist/builtin/mcp/state-lease.ts +12 -0
- package/dist/builtin/mcp/tool-result-renderer.ts +3 -3
- package/dist/builtin/mcp/ui-server.ts +8 -8
- package/dist/builtin/mcp/ui-session.ts +9 -18
- package/dist/builtin/subagents/CHANGELOG.md +60 -0
- package/dist/builtin/subagents/README.md +30 -29
- package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
- package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
- package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
- package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
- package/dist/builtin/subagents/agents/debugger.md +2 -2
- package/dist/builtin/subagents/agents/worker.md +2 -2
- package/dist/builtin/subagents/package.json +5 -5
- package/dist/builtin/subagents/prompts/review-loop.md +1 -1
- package/dist/builtin/subagents/skills/subagent/SKILL.md +37 -36
- package/dist/builtin/subagents/src/extension/api-lifecycle.ts +64 -0
- package/dist/builtin/subagents/src/extension/fanout-child.ts +44 -51
- package/dist/builtin/subagents/src/extension/index.ts +289 -320
- package/dist/builtin/subagents/src/extension/prompt-guidance.ts +7 -10
- package/dist/builtin/subagents/src/extension/schemas.ts +22 -5
- package/dist/builtin/subagents/src/extension/startup-maintenance.ts +89 -0
- package/dist/builtin/subagents/src/extension/tool-description.ts +29 -0
- package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +13 -2
- package/dist/builtin/subagents/src/intercom/result-intercom.ts +4 -4
- package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +106 -0
- package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +26 -20
- package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +13 -2
- package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +3 -0
- package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +1 -1
- package/dist/builtin/subagents/src/runs/background/completion-claims.ts +189 -0
- package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +44 -7
- package/dist/builtin/subagents/src/runs/background/completion-notification.ts +34 -0
- package/dist/builtin/subagents/src/runs/background/notify.ts +72 -22
- package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +232 -0
- package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +151 -0
- package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +72 -0
- package/dist/builtin/subagents/src/runs/background/result-retry-scheduler.ts +48 -0
- package/dist/builtin/subagents/src/runs/background/result-status.ts +81 -0
- package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +59 -0
- package/dist/builtin/subagents/src/runs/background/result-watcher.ts +177 -233
- package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +3 -2
- package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +73 -14
- package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +29 -15
- package/dist/builtin/subagents/src/runs/background/top-level-async.ts +1 -2
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +1 -0
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +1 -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 +7 -9
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +3 -13
- package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +2 -15
- package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +63 -46
- package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +48 -0
- package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +17 -0
- package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +39 -26
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +3 -1
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +3 -51
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +6 -11
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +11 -2
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +2 -0
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +5 -112
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +2 -0
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +68 -118
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +79 -7
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -2
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +3 -0
- package/dist/builtin/subagents/src/runs/shared/pi-args.ts +2 -2
- package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +55 -12
- package/dist/builtin/subagents/src/shared/artifacts.ts +22 -11
- package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +294 -0
- package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +44 -0
- package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -0
- package/dist/builtin/subagents/src/shared/model-info.ts +2 -2
- package/dist/builtin/subagents/src/shared/settings.ts +20 -10
- package/dist/builtin/subagents/src/shared/types-async.ts +3 -1
- package/dist/builtin/subagents/src/shared/types-config.ts +2 -0
- package/dist/builtin/subagents/src/shared/types-runtime.ts +3 -2
- package/dist/builtin/subagents/src/slash/slash-commands.ts +9 -12
- package/dist/builtin/subagents/src/slash/slash-live-state.ts +63 -32
- package/dist/builtin/subagents/src/tui/render-event-formatting.ts +15 -48
- package/dist/builtin/subagents/src/tui/render-layout.ts +9 -0
- package/dist/builtin/subagents/src/tui/render-result.ts +7 -0
- package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
- package/dist/builtin/subagents/src/tui/render-widget-graph.ts +27 -25
- package/dist/builtin/subagents/src/tui/render-widget.ts +177 -132
- package/dist/builtin/subagents/src/tui/render.ts +1 -1
- package/dist/builtin/web-access/CHANGELOG.md +14 -0
- package/dist/builtin/web-access/README.md +4 -0
- package/dist/builtin/web-access/content-tools.ts +8 -3
- package/dist/builtin/web-access/index-heavy.ts +1 -1
- package/dist/builtin/web-access/index.ts +190 -46
- package/dist/builtin/web-access/lifecycle-lease.ts +38 -0
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/web-access/result-renderers.ts +1 -1
- package/dist/builtin/web-access/summary-review.ts +1 -1
- package/dist/builtin/web-access/web-search-activity.ts +1 -1
- package/dist/builtin/web-access/web-search-return.ts +7 -0
- package/dist/builtin/web-access/web-search-summary.ts +1 -1
- package/dist/builtin/web-access/web-search-tool.ts +4 -2
- package/dist/builtin/workflows/CHANGELOG.md +86 -0
- package/dist/builtin/workflows/README.md +8 -6
- package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +33 -9
- package/dist/builtin/workflows/builtin/goal-artifacts.ts +3 -1
- package/dist/builtin/workflows/builtin/goal-prompts.ts +25 -2
- package/dist/builtin/workflows/builtin/goal-reducer.ts +21 -0
- package/dist/builtin/workflows/builtin/goal-review.ts +60 -6
- package/dist/builtin/workflows/builtin/goal-runner.ts +119 -48
- package/dist/builtin/workflows/builtin/goal-types.ts +8 -1
- package/dist/builtin/workflows/builtin/goal.d.ts +2 -0
- package/dist/builtin/workflows/builtin/goal.ts +9 -0
- package/dist/builtin/workflows/builtin/index.d.ts +2 -0
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +16 -5
- package/dist/builtin/workflows/builtin/ralph-core.ts +61 -13
- package/dist/builtin/workflows/builtin/ralph-models.ts +98 -66
- package/dist/builtin/workflows/builtin/ralph-review-gate.ts +10 -3
- package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +159 -0
- package/dist/builtin/workflows/builtin/ralph-runner.ts +67 -164
- package/dist/builtin/workflows/builtin/review-convergence.ts +111 -0
- package/dist/builtin/workflows/builtin/shared-prompts.ts +5 -0
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/create-spec/SKILL.md +2 -0
- package/dist/builtin/workflows/skills/impeccable/SKILL.md +16 -13
- package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +1 -0
- package/dist/builtin/workflows/skills/impeccable/reference/adapt.native.md +58 -0
- package/dist/builtin/workflows/skills/impeccable/reference/android.md +40 -0
- package/dist/builtin/workflows/skills/impeccable/reference/animate.md +2 -0
- package/dist/builtin/workflows/skills/impeccable/reference/audit.md +2 -0
- package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +139 -0
- package/dist/builtin/workflows/skills/impeccable/reference/bolder.md +69 -62
- package/dist/builtin/workflows/skills/impeccable/reference/critique.md +21 -7
- package/dist/builtin/workflows/skills/impeccable/reference/document.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +92 -0
- package/dist/builtin/workflows/skills/impeccable/reference/init.md +29 -7
- package/dist/builtin/workflows/skills/impeccable/reference/ios.md +45 -0
- package/dist/builtin/workflows/skills/impeccable/reference/layout.md +25 -1
- package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +23 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/context-signals.mjs +2 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/context.mjs +75 -14
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/browser/injected/index.mjs +1 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/cli/main.mjs +31 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/design-system.mjs +64 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +118 -11
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +16 -11
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/registry/antipatterns.mjs +66 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +42 -10
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/page.mjs +4 -6
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +660 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +516 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +1764 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +61 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-config.mjs +4 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/lib/is-generated.mjs +2 -2
- package/dist/builtin/workflows/skills/impeccable/scripts/live/svelte-component.mjs +13 -16
- package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +17 -11
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +104 -37
- package/dist/builtin/workflows/skills/impeccable/scripts/live-wrap.mjs +9 -0
- package/dist/builtin/workflows/src/durable/backend.ts +12 -0
- package/dist/builtin/workflows/src/durable/child-primitive.ts +12 -8
- package/dist/builtin/workflows/src/durable/dbos-backend.ts +63 -2
- package/dist/builtin/workflows/src/durable/dbos-envelope.ts +28 -0
- package/dist/builtin/workflows/src/durable/resume-catalog.ts +12 -0
- package/dist/builtin/workflows/src/durable/resume-runtime.ts +5 -2
- package/dist/builtin/workflows/src/durable/stage-primitive.ts +167 -28
- package/dist/builtin/workflows/src/durable/types.ts +30 -1
- package/dist/builtin/workflows/src/engine/primitives/task.ts +3 -1
- package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +1 -2
- package/dist/builtin/workflows/src/engine/run-returned-status.ts +50 -16
- package/dist/builtin/workflows/src/engine/run.ts +32 -32
- package/dist/builtin/workflows/src/engine/runtime.ts +5 -0
- package/dist/builtin/workflows/src/extension/extension-factory.ts +3 -0
- package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +9 -2
- package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +137 -27
- package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +22 -6
- package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
- package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +13 -1
- package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +19 -4
- package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +9 -0
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -17
- package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +48 -23
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
- package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +20 -8
- package/dist/builtin/workflows/src/extension/workflow-tool.ts +24 -8
- package/dist/builtin/workflows/src/runs/background/status.ts +4 -3
- package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +13 -3
- package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +29 -8
- package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +8 -0
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +4 -3
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +2 -0
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +18 -19
- package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +38 -0
- package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +47 -0
- package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -1
- package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +155 -20
- package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +6 -0
- package/dist/builtin/workflows/src/runs/shared/worktree.ts +2 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -2
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +2 -2
- package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +18 -1
- package/dist/builtin/workflows/src/shared/persistence-restore.ts +23 -5
- package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +4 -0
- package/dist/builtin/workflows/src/shared/resume-continuation.ts +2 -0
- package/dist/builtin/workflows/src/shared/returned-run-status.ts +116 -0
- package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +2 -0
- package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +21 -3
- package/dist/builtin/workflows/src/tui/graph-view-state.ts +3 -0
- package/dist/builtin/workflows/src/tui/graph-view-types.ts +3 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +1 -23
- package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +54 -9
- package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +9 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +27 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +5 -6
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +5 -2
- package/dist/builtin/workflows/src/tui/status-list.ts +22 -15
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +4 -4
- package/dist/bun/internal-intercom-broker.d.ts +6 -0
- package/dist/bun/internal-intercom-broker.d.ts.map +1 -0
- package/dist/bun/internal-intercom-broker.js +39 -0
- package/dist/bun/internal-intercom-broker.js.map +1 -0
- package/dist/bun/split-loader.d.ts +2 -0
- package/dist/bun/split-loader.d.ts.map +1 -0
- package/dist/bun/split-loader.js +50 -0
- package/dist/bun/split-loader.js.map +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -4
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts +26 -6
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +178 -19
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +25 -4
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +12 -2
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +1 -1
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +1 -1
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +13 -4
- 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 -2
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +2 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-retry.d.ts +2 -0
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +152 -4
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +4 -2
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +15 -1
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +6 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +6 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/anthropic-thinking-guard.d.ts +5 -5
- package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
- package/dist/core/anthropic-thinking-guard.js +42 -32
- package/dist/core/anthropic-thinking-guard.js.map +1 -1
- package/dist/core/atomic-guide-command.d.ts.map +1 -1
- package/dist/core/atomic-guide-command.js +15 -15
- package/dist/core/atomic-guide-command.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +14 -9
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +8 -4
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +79 -46
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/context-assistant-turns.d.ts +42 -0
- package/dist/core/compaction/context-assistant-turns.d.ts.map +1 -0
- package/dist/core/compaction/context-assistant-turns.js +87 -0
- package/dist/core/compaction/context-assistant-turns.js.map +1 -0
- package/dist/core/compaction/context-compaction-critical.d.ts +15 -0
- package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -0
- package/dist/core/compaction/context-compaction-critical.js +57 -0
- package/dist/core/compaction/context-compaction-critical.js.map +1 -0
- package/dist/core/compaction/context-compaction-eviction-alternates.d.ts +18 -0
- package/dist/core/compaction/context-compaction-eviction-alternates.d.ts.map +1 -0
- package/dist/core/compaction/context-compaction-eviction-alternates.js +186 -0
- package/dist/core/compaction/context-compaction-eviction-alternates.js.map +1 -0
- package/dist/core/compaction/context-compaction-eviction.d.ts +12 -0
- package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -0
- package/dist/core/compaction/context-compaction-eviction.js +222 -0
- package/dist/core/compaction/context-compaction-eviction.js.map +1 -0
- package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -1
- package/dist/core/compaction/context-compaction-prompt.js +1 -1
- package/dist/core/compaction/context-compaction-prompt.js.map +1 -1
- package/dist/core/compaction/context-compaction-runner.d.ts +7 -1
- package/dist/core/compaction/context-compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/context-compaction-runner.js +113 -21
- package/dist/core/compaction/context-compaction-runner.js.map +1 -1
- package/dist/core/compaction/context-compaction-types.d.ts +2 -0
- package/dist/core/compaction/context-compaction-types.d.ts.map +1 -1
- package/dist/core/compaction/context-compaction-types.js.map +1 -1
- package/dist/core/compaction/context-deletion-application.d.ts +5 -4
- package/dist/core/compaction/context-deletion-application.d.ts.map +1 -1
- package/dist/core/compaction/context-deletion-application.js +17 -15
- package/dist/core/compaction/context-deletion-application.js.map +1 -1
- package/dist/core/compaction/context-deletion-store.d.ts.map +1 -1
- package/dist/core/compaction/context-deletion-store.js +1 -1
- package/dist/core/compaction/context-deletion-store.js.map +1 -1
- package/dist/core/compaction/context-deletion-targets.d.ts +2 -1
- package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -1
- package/dist/core/compaction/context-deletion-targets.js +36 -31
- package/dist/core/compaction/context-deletion-targets.js.map +1 -1
- package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -1
- package/dist/core/compaction/context-deletion-tool-helpers.js +116 -43
- package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -1
- package/dist/core/compaction/context-transcript-analysis.d.ts +4 -2
- package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
- package/dist/core/compaction/context-transcript-analysis.js +36 -40
- package/dist/core/compaction/context-transcript-analysis.js.map +1 -1
- package/dist/core/copilot-anthropic-sse-repair.d.ts +23 -0
- package/dist/core/copilot-anthropic-sse-repair.d.ts.map +1 -0
- package/dist/core/copilot-anthropic-sse-repair.js +340 -0
- package/dist/core/copilot-anthropic-sse-repair.js.map +1 -0
- package/dist/core/copilot-gemini-reasoning.d.ts +16 -8
- package/dist/core/copilot-gemini-reasoning.d.ts.map +1 -1
- package/dist/core/copilot-gemini-reasoning.js +27 -22
- package/dist/core/copilot-gemini-reasoning.js.map +1 -1
- package/dist/core/copilot-hosts.d.ts +12 -0
- package/dist/core/copilot-hosts.d.ts.map +1 -0
- package/dist/core/copilot-hosts.js +33 -0
- package/dist/core/copilot-hosts.js.map +1 -0
- package/dist/core/copilot-model-catalog.d.ts.map +1 -1
- package/dist/core/copilot-model-catalog.js +3 -2
- package/dist/core/copilot-model-catalog.js.map +1 -1
- package/dist/core/copilot-model-synthesis.d.ts.map +1 -1
- package/dist/core/copilot-model-synthesis.js +3 -1
- package/dist/core/copilot-model-synthesis.js.map +1 -1
- package/dist/core/extensions/agent-events.d.ts +1 -1
- package/dist/core/extensions/agent-events.d.ts.map +1 -1
- package/dist/core/extensions/agent-events.js.map +1 -1
- package/dist/core/extensions/loader-core.d.ts.map +1 -1
- package/dist/core/extensions/loader-core.js +6 -0
- package/dist/core/extensions/loader-core.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts +8 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +10 -4
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +2 -7
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +6 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +72 -29
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +5 -5
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/messages.d.ts +9 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +100 -18
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry-builtins.d.ts.map +1 -1
- package/dist/core/model-registry-builtins.js +5 -0
- 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 +49 -8
- 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 +11 -5
- package/dist/core/model-registry-dynamic.js.map +1 -1
- package/dist/core/model-registry-loader.d.ts.map +1 -1
- package/dist/core/model-registry-loader.js +8 -0
- package/dist/core/model-registry-loader.js.map +1 -1
- package/dist/core/model-registry-schemas.d.ts +93 -8
- package/dist/core/model-registry-schemas.d.ts.map +1 -1
- package/dist/core/model-registry-schemas.js +24 -12
- package/dist/core/model-registry-schemas.js.map +1 -1
- package/dist/core/model-registry-types.d.ts +7 -6
- 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.d.ts +5 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +23 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-cli.d.ts.map +1 -1
- package/dist/core/model-resolver-cli.js +33 -5
- package/dist/core/model-resolver-cli.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts +6 -1
- package/dist/core/model-resolver-initial.d.ts.map +1 -1
- package/dist/core/model-resolver-initial.js +12 -7
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/model-resolver-scope.d.ts +9 -0
- package/dist/core/model-resolver-scope.d.ts.map +1 -1
- package/dist/core/model-resolver-scope.js +12 -4
- package/dist/core/model-resolver-scope.js.map +1 -1
- package/dist/core/model-resolver.d.ts +4 -3
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +2 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/openai-responses-payload-sanitizer.d.ts +7 -0
- package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -0
- package/dist/core/openai-responses-payload-sanitizer.js +74 -0
- package/dist/core/openai-responses-payload-sanitizer.js.map +1 -0
- package/dist/core/package-manager-auto-resources.d.ts +2 -2
- package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
- package/dist/core/package-manager-auto-resources.js +32 -52
- 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 +23 -14
- package/dist/core/package-manager-resolver.js.map +1 -1
- package/dist/core/package-manager-resource-collector.d.ts +3 -3
- package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
- package/dist/core/package-manager-resource-collector.js +76 -73
- package/dist/core/package-manager-resource-collector.js.map +1 -1
- package/dist/core/package-manager-resource-files.d.ts +9 -8
- package/dist/core/package-manager-resource-files.d.ts.map +1 -1
- package/dist/core/package-manager-resource-files.js +92 -81
- package/dist/core/package-manager-resource-files.js.map +1 -1
- package/dist/core/prompt-templates-async.d.ts +3 -0
- package/dist/core/prompt-templates-async.d.ts.map +1 -0
- package/dist/core/prompt-templates-async.js +118 -0
- package/dist/core/prompt-templates-async.js.map +1 -0
- package/dist/core/provider-context-usage.d.ts +11 -0
- package/dist/core/provider-context-usage.d.ts.map +1 -0
- package/dist/core/provider-context-usage.js +58 -0
- package/dist/core/provider-context-usage.js.map +1 -0
- package/dist/core/resource-loader-assets.d.ts +3 -3
- package/dist/core/resource-loader-assets.d.ts.map +1 -1
- package/dist/core/resource-loader-assets.js +66 -83
- package/dist/core/resource-loader-assets.js.map +1 -1
- package/dist/core/resource-loader-context-files.d.ts +1 -0
- package/dist/core/resource-loader-context-files.d.ts.map +1 -1
- package/dist/core/resource-loader-context-files.js +13 -10
- package/dist/core/resource-loader-context-files.js.map +1 -1
- package/dist/core/resource-loader-core.d.ts +1 -1
- package/dist/core/resource-loader-core.d.ts.map +1 -1
- package/dist/core/resource-loader-core.js +5 -5
- package/dist/core/resource-loader-core.js.map +1 -1
- package/dist/core/resource-loader-extensions.d.ts.map +1 -1
- package/dist/core/resource-loader-extensions.js +4 -0
- package/dist/core/resource-loader-extensions.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +54 -7
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-types.d.ts +7 -1
- package/dist/core/resource-loader-types.d.ts.map +1 -1
- package/dist/core/resource-loader-types.js.map +1 -1
- package/dist/core/sdk-types.d.ts +2 -0
- 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.map +1 -1
- package/dist/core/sdk.js +9 -6
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-entry-normalization.d.ts +7 -0
- package/dist/core/session-entry-normalization.d.ts.map +1 -0
- package/dist/core/session-entry-normalization.js +14 -0
- package/dist/core/session-entry-normalization.js.map +1 -0
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js +1 -0
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-history.d.ts +2 -2
- package/dist/core/session-manager-history.d.ts.map +1 -1
- package/dist/core/session-manager-history.js +127 -108
- package/dist/core/session-manager-history.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +3 -2
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +6 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +3 -2
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-storage.d.ts.map +1 -1
- package/dist/core/settings-storage.js +2 -1
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +2 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/skills-async.d.ts +3 -0
- package/dist/core/skills-async.d.ts.map +1 -0
- package/dist/core/skills-async.js +269 -0
- package/dist/core/skills-async.js.map +1 -0
- package/dist/core/slash-commands.d.ts +2 -0
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +141 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +11 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/trust-manager.d.ts +9 -0
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +44 -2
- package/dist/core/trust-manager.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 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main-deferred-startup.d.ts +33 -0
- package/dist/main-deferred-startup.d.ts.map +1 -0
- package/dist/main-deferred-startup.js +44 -0
- package/dist/main-deferred-startup.js.map +1 -0
- package/dist/main-early-input.d.ts +41 -0
- package/dist/main-early-input.d.ts.map +1 -0
- package/dist/main-early-input.js +154 -0
- package/dist/main-early-input.js.map +1 -0
- package/dist/main-session.d.ts.map +1 -1
- package/dist/main-session.js +1 -0
- package/dist/main-session.js.map +1 -1
- package/dist/main.d.ts +0 -6
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +47 -39
- package/dist/main.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 +0 -1
- package/dist/modes/interactive/components/chat-session-host-actions.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 +15 -0
- package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-options.js +3 -1
- package/dist/modes/interactive/components/settings-selector-options.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +2 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +37 -2
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +0 -1
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +21 -9
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-child-ordering.d.ts +7 -0
- package/dist/modes/interactive/interactive-child-ordering.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-child-ordering.js +26 -0
- package/dist/modes/interactive/interactive-child-ordering.js.map +1 -0
- package/dist/modes/interactive/interactive-deferred-startup.d.ts +8 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +86 -26
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +13 -13
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.js +16 -0
- package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-hotkeys-debug.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-hotkeys-debug.js +4 -3
- package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +360 -230
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +19 -4
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +46 -4
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +3 -3
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +3 -3
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +27 -17
- 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-types.d.ts +8 -1
- package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +14 -10
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-onboarding.d.ts +0 -9
- package/dist/modes/interactive/interactive-onboarding.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-onboarding.js +24 -201
- package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js +43 -9
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +93 -10
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-disclosure.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-resource-disclosure.js +3 -2
- package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
- package/dist/modes/interactive/interactive-resource-rendering.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-resource-rendering.js +10 -8
- package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
- package/dist/modes/interactive/interactive-session-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-session-routing.js +9 -5
- package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.d.ts.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.d.ts.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.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +102 -98
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/global-theme.js +26 -2
- package/dist/modes/interactive/theme/global-theme.js.map +1 -1
- package/dist/modes/interactive/theme/theme-class.d.ts +1 -1
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +2 -0
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.d.ts +1 -0
- package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.js +3 -0
- package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +1 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/utils/child-process.d.ts +8 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +39 -6
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +3 -0
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/event-loop.d.ts +7 -0
- package/dist/utils/event-loop.d.ts.map +1 -0
- package/dist/utils/event-loop.js +14 -0
- package/dist/utils/event-loop.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +24 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js +60 -5
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/json.d.ts +4 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +8 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/module-require.d.ts +11 -0
- package/dist/utils/module-require.d.ts.map +1 -1
- package/dist/utils/module-require.js +14 -1
- package/dist/utils/module-require.js.map +1 -1
- package/dist/utils/split-launcher.d.ts +38 -0
- package/dist/utils/split-launcher.d.ts.map +1 -0
- package/dist/utils/split-launcher.js +63 -0
- package/dist/utils/split-launcher.js.map +1 -0
- package/docs/changelog.mdx +19 -0
- package/docs/compaction.md +100 -64
- package/docs/custom-provider.md +18 -5
- package/docs/development.md +4 -0
- package/docs/extensions.md +11 -2
- package/docs/json.md +3 -1
- package/docs/keybindings.md +2 -2
- package/docs/models.md +69 -10
- package/docs/providers.md +3 -2
- package/docs/quickstart.md +15 -11
- package/docs/rpc.md +5 -3
- package/docs/sdk.md +1 -1
- package/docs/settings.md +33 -3
- package/docs/subagents.md +40 -5
- package/docs/terminal-setup.md +4 -0
- package/docs/tools.md +1 -1
- package/docs/usage.md +8 -6
- package/docs/windows.md +4 -0
- package/docs/workflows.md +52 -34
- package/examples/extensions/preset.ts +2 -2
- package/examples/extensions/subagent/README.md +2 -2
- package/examples/extensions/subagent/index.ts +1 -2
- package/examples/extensions/subagent/schemas.ts +4 -1
- package/examples/sdk/12-full-control.ts +1 -1
- package/npm-shrinkwrap.json +538 -51
- package/package.json +10 -9
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +0 -75
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +0 -202
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +0 -97
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +0 -160
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +0 -72
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +0 -161
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +0 -203
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +0 -234
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +0 -103
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +0 -29
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +0 -9
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +0 -117
|
@@ -359,6 +359,10 @@ export class DbosDurableBackend implements DurableWorkflowBackend {
|
|
|
359
359
|
...(entry.label !== undefined ? { label: entry.label } : {}),
|
|
360
360
|
...(entry.rootWorkflowId !== undefined ? { rootWorkflowId: entry.rootWorkflowId } : {}),
|
|
361
361
|
...(entry.resumable !== undefined ? { resumable: entry.resumable } : {}),
|
|
362
|
+
...(entry.invocationCwd !== undefined ? { invocationCwd: entry.invocationCwd } : {}),
|
|
363
|
+
...(entry.workflowCwd !== undefined ? { workflowCwd: entry.workflowCwd } : {}),
|
|
364
|
+
...(entry.repositoryRoot !== undefined ? { repositoryRoot: entry.repositoryRoot } : {}),
|
|
365
|
+
...(entry.gitWorktreeRoot !== undefined ? { gitWorktreeRoot: entry.gitWorktreeRoot } : {}),
|
|
362
366
|
});
|
|
363
367
|
}
|
|
364
368
|
}
|
|
@@ -377,7 +381,7 @@ function isMetadataStep(stepName: string): boolean {
|
|
|
377
381
|
interface DbosMetadataEnvelope {
|
|
378
382
|
readonly __atomicDurableMetadata: true;
|
|
379
383
|
readonly version: 1;
|
|
380
|
-
readonly entry:
|
|
384
|
+
readonly entry: WorkflowSerializableValue;
|
|
381
385
|
}
|
|
382
386
|
|
|
383
387
|
function encodeMetadata(entry: DurableCheckpointEntry): WorkflowSerializableValue {
|
|
@@ -395,6 +399,10 @@ function encodeMetadata(entry: DurableCheckpointEntry): WorkflowSerializableValu
|
|
|
395
399
|
...(entry.label !== undefined ? { label: entry.label } : {}),
|
|
396
400
|
...(entry.rootWorkflowId !== undefined ? { rootWorkflowId: entry.rootWorkflowId } : {}),
|
|
397
401
|
...(entry.resumable !== undefined ? { resumable: entry.resumable } : {}),
|
|
402
|
+
...(entry.invocationCwd !== undefined ? { invocationCwd: entry.invocationCwd } : {}),
|
|
403
|
+
...(entry.workflowCwd !== undefined ? { workflowCwd: entry.workflowCwd } : {}),
|
|
404
|
+
...(entry.repositoryRoot !== undefined ? { repositoryRoot: entry.repositoryRoot } : {}),
|
|
405
|
+
...(entry.gitWorktreeRoot !== undefined ? { gitWorktreeRoot: entry.gitWorktreeRoot } : {}),
|
|
398
406
|
ts: entry.ts,
|
|
399
407
|
},
|
|
400
408
|
};
|
|
@@ -404,7 +412,60 @@ function decodeMetadata(value: WorkflowSerializableValue): DurableCheckpointEntr
|
|
|
404
412
|
if (typeof value !== "object" || value === null || Array.isArray(value)) return undefined;
|
|
405
413
|
const raw = value as Partial<DbosMetadataEnvelope>;
|
|
406
414
|
if (raw.__atomicDurableMetadata !== true || raw.version !== METADATA_VERSION) return undefined;
|
|
407
|
-
|
|
415
|
+
const entry = raw.entry;
|
|
416
|
+
if (entry === undefined) return undefined;
|
|
417
|
+
return parseDurableCheckpointEntry(entry);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
function parseDurableCheckpointEntry(value: WorkflowSerializableValue): DurableCheckpointEntry | undefined {
|
|
421
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return undefined;
|
|
422
|
+
const entry = value as Partial<DurableCheckpointEntry>;
|
|
423
|
+
if (entry.type !== "workflow.durable.checkpoint"
|
|
424
|
+
|| typeof entry.workflowId !== "string"
|
|
425
|
+
|| typeof entry.name !== "string"
|
|
426
|
+
|| typeof entry.inputs !== "object"
|
|
427
|
+
|| entry.inputs === null
|
|
428
|
+
|| Array.isArray(entry.inputs)
|
|
429
|
+
|| typeof entry.status !== "string"
|
|
430
|
+
|| !isDurableWorkflowStatus(entry.status)
|
|
431
|
+
|| typeof entry.completedCheckpoints !== "number"
|
|
432
|
+
|| typeof entry.pendingPrompts !== "number"
|
|
433
|
+
|| typeof entry.ts !== "number"
|
|
434
|
+
|| (entry.label !== undefined && typeof entry.label !== "string")
|
|
435
|
+
|| (entry.rootWorkflowId !== undefined && typeof entry.rootWorkflowId !== "string")
|
|
436
|
+
|| (entry.resumable !== undefined && typeof entry.resumable !== "boolean")
|
|
437
|
+
|| (entry.invocationCwd !== undefined && typeof entry.invocationCwd !== "string")
|
|
438
|
+
|| (entry.workflowCwd !== undefined && typeof entry.workflowCwd !== "string")
|
|
439
|
+
|| (entry.repositoryRoot !== undefined && typeof entry.repositoryRoot !== "string")
|
|
440
|
+
|| (entry.gitWorktreeRoot !== undefined && typeof entry.gitWorktreeRoot !== "string")) {
|
|
441
|
+
return undefined;
|
|
442
|
+
}
|
|
443
|
+
return {
|
|
444
|
+
type: "workflow.durable.checkpoint",
|
|
445
|
+
workflowId: entry.workflowId,
|
|
446
|
+
name: entry.name,
|
|
447
|
+
inputs: entry.inputs,
|
|
448
|
+
status: entry.status,
|
|
449
|
+
completedCheckpoints: entry.completedCheckpoints,
|
|
450
|
+
pendingPrompts: entry.pendingPrompts,
|
|
451
|
+
ts: entry.ts,
|
|
452
|
+
...(entry.label !== undefined ? { label: entry.label } : {}),
|
|
453
|
+
...(entry.rootWorkflowId !== undefined ? { rootWorkflowId: entry.rootWorkflowId } : {}),
|
|
454
|
+
...(entry.resumable !== undefined ? { resumable: entry.resumable } : {}),
|
|
455
|
+
...(entry.invocationCwd !== undefined ? { invocationCwd: entry.invocationCwd } : {}),
|
|
456
|
+
...(entry.workflowCwd !== undefined ? { workflowCwd: entry.workflowCwd } : {}),
|
|
457
|
+
...(entry.repositoryRoot !== undefined ? { repositoryRoot: entry.repositoryRoot } : {}),
|
|
458
|
+
...(entry.gitWorktreeRoot !== undefined ? { gitWorktreeRoot: entry.gitWorktreeRoot } : {}),
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
function isDurableWorkflowStatus(value: string): value is DurableWorkflowStatus {
|
|
463
|
+
return value === "running"
|
|
464
|
+
|| value === "paused"
|
|
465
|
+
|| value === "completed"
|
|
466
|
+
|| value === "failed"
|
|
467
|
+
|| value === "cancelled"
|
|
468
|
+
|| value === "blocked";
|
|
408
469
|
}
|
|
409
470
|
|
|
410
471
|
function dbosStatusToDurable(status: string): DurableWorkflowStatus {
|
|
@@ -51,6 +51,14 @@ export interface DbosCheckpointEnvelope extends WorkflowSerializableObject {
|
|
|
51
51
|
readonly sessionId?: string;
|
|
52
52
|
readonly sessionFile?: string;
|
|
53
53
|
readonly completedAt: number;
|
|
54
|
+
readonly startedAt?: number;
|
|
55
|
+
readonly endedAt?: number;
|
|
56
|
+
readonly durationMs?: number;
|
|
57
|
+
readonly result?: string;
|
|
58
|
+
readonly model?: string;
|
|
59
|
+
readonly fastMode?: boolean;
|
|
60
|
+
readonly attemptedModels?: WorkflowSerializableValue;
|
|
61
|
+
readonly modelAttempts?: WorkflowSerializableValue;
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
/**
|
|
@@ -82,6 +90,14 @@ export function encodeCheckpoint(cp: DurableCheckpoint): DbosCheckpointEnvelope
|
|
|
82
90
|
replayKey: s.replayKey,
|
|
83
91
|
...(s.sessionId !== undefined ? { sessionId: s.sessionId } : {}),
|
|
84
92
|
...(s.sessionFile !== undefined ? { sessionFile: s.sessionFile } : {}),
|
|
93
|
+
...(s.startedAt !== undefined ? { startedAt: s.startedAt } : {}),
|
|
94
|
+
...(s.endedAt !== undefined ? { endedAt: s.endedAt } : {}),
|
|
95
|
+
...(s.durationMs !== undefined ? { durationMs: s.durationMs } : {}),
|
|
96
|
+
...(s.result !== undefined ? { result: s.result } : {}),
|
|
97
|
+
...(s.model !== undefined ? { model: s.model } : {}),
|
|
98
|
+
...(s.fastMode !== undefined ? { fastMode: s.fastMode } : {}),
|
|
99
|
+
...(s.attemptedModels !== undefined ? { attemptedModels: [...s.attemptedModels] } : {}),
|
|
100
|
+
...(s.modelAttempts !== undefined ? { modelAttempts: s.modelAttempts as WorkflowSerializableValue } : {}),
|
|
85
101
|
};
|
|
86
102
|
}
|
|
87
103
|
|
|
@@ -144,9 +160,21 @@ function decodeEnvelope(workflowId: string, env: DbosCheckpointEnvelope): Durabl
|
|
|
144
160
|
...(env.hasOutput !== false && env.output !== undefined ? { output: env.output } : {}),
|
|
145
161
|
...(env.sessionId !== undefined ? { sessionId: env.sessionId } : {}),
|
|
146
162
|
...(env.sessionFile !== undefined ? { sessionFile: env.sessionFile } : {}),
|
|
163
|
+
...(typeof env.startedAt === "number" ? { startedAt: env.startedAt } : {}),
|
|
164
|
+
...(typeof env.endedAt === "number" ? { endedAt: env.endedAt } : {}),
|
|
165
|
+
...(typeof env.durationMs === "number" ? { durationMs: env.durationMs } : {}),
|
|
166
|
+
...(typeof env.result === "string" ? { result: env.result } : {}),
|
|
167
|
+
...(typeof env.model === "string" ? { model: env.model } : {}),
|
|
168
|
+
...(typeof env.fastMode === "boolean" ? { fastMode: env.fastMode } : {}),
|
|
169
|
+
...(isStringArray(env.attemptedModels) ? { attemptedModels: env.attemptedModels } : {}),
|
|
170
|
+
...(Array.isArray(env.modelAttempts) ? { modelAttempts: env.modelAttempts as DurableStageCheckpoint["modelAttempts"] } : {}),
|
|
147
171
|
} as DurableStageCheckpoint;
|
|
148
172
|
}
|
|
149
173
|
|
|
174
|
+
|
|
175
|
+
function isStringArray(value: WorkflowSerializableValue | undefined): value is readonly string[] {
|
|
176
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
177
|
+
}
|
|
150
178
|
function decodeLegacy(
|
|
151
179
|
workflowId: string,
|
|
152
180
|
stepName: string,
|
|
@@ -107,6 +107,10 @@ function parseDurableEntry(raw: Record<string, unknown>): DurableCheckpointEntry
|
|
|
107
107
|
...(typeof raw["label"] === "string" ? { label: raw["label"] } : {}),
|
|
108
108
|
...(typeof raw["rootWorkflowId"] === "string" ? { rootWorkflowId: raw["rootWorkflowId"] } : {}),
|
|
109
109
|
...(typeof raw["resumable"] === "boolean" ? { resumable: raw["resumable"] } : {}),
|
|
110
|
+
...(typeof raw["invocationCwd"] === "string" ? { invocationCwd: raw["invocationCwd"] } : {}),
|
|
111
|
+
...(typeof raw["workflowCwd"] === "string" ? { workflowCwd: raw["workflowCwd"] } : {}),
|
|
112
|
+
...(typeof raw["repositoryRoot"] === "string" ? { repositoryRoot: raw["repositoryRoot"] } : {}),
|
|
113
|
+
...(typeof raw["gitWorktreeRoot"] === "string" ? { gitWorktreeRoot: raw["gitWorktreeRoot"] } : {}),
|
|
110
114
|
ts,
|
|
111
115
|
};
|
|
112
116
|
}
|
|
@@ -142,6 +146,10 @@ function entryToResumable(entry: DurableCheckpointEntry, sessionFile: string): R
|
|
|
142
146
|
...(entry.label !== undefined ? { label: entry.label } : {}),
|
|
143
147
|
...(entry.rootWorkflowId !== undefined ? { rootWorkflowId: entry.rootWorkflowId } : {}),
|
|
144
148
|
...(entry.resumable !== undefined ? { resumable: entry.resumable } : {}),
|
|
149
|
+
...(entry.invocationCwd !== undefined ? { invocationCwd: entry.invocationCwd } : {}),
|
|
150
|
+
...(entry.workflowCwd !== undefined ? { workflowCwd: entry.workflowCwd } : {}),
|
|
151
|
+
...(entry.repositoryRoot !== undefined ? { repositoryRoot: entry.repositoryRoot } : {}),
|
|
152
|
+
...(entry.gitWorktreeRoot !== undefined ? { gitWorktreeRoot: entry.gitWorktreeRoot } : {}),
|
|
145
153
|
createdAt: entry.ts,
|
|
146
154
|
updatedAt: entry.ts,
|
|
147
155
|
};
|
|
@@ -197,6 +205,10 @@ export function persistDurableCacheEntry(
|
|
|
197
205
|
...(entry.label !== undefined ? { label: entry.label } : {}),
|
|
198
206
|
...(entry.rootWorkflowId !== undefined ? { rootWorkflowId: entry.rootWorkflowId } : {}),
|
|
199
207
|
...(entry.resumable !== undefined ? { resumable: entry.resumable } : {}),
|
|
208
|
+
...(entry.invocationCwd !== undefined ? { invocationCwd: entry.invocationCwd } : {}),
|
|
209
|
+
...(entry.workflowCwd !== undefined ? { workflowCwd: entry.workflowCwd } : {}),
|
|
210
|
+
...(entry.repositoryRoot !== undefined ? { repositoryRoot: entry.repositoryRoot } : {}),
|
|
211
|
+
...(entry.gitWorktreeRoot !== undefined ? { gitWorktreeRoot: entry.gitWorktreeRoot } : {}),
|
|
200
212
|
ts: entry.ts,
|
|
201
213
|
});
|
|
202
214
|
}
|
|
@@ -167,11 +167,14 @@ export function resumeDurableWorkflow(
|
|
|
167
167
|
// ORIGINAL workflow id as the run id so durable checkpoints replay.
|
|
168
168
|
backend.setWorkflowStatus(resolved.workflowId, "running");
|
|
169
169
|
|
|
170
|
-
const
|
|
170
|
+
const resumeRunOpts: RunOpts = {
|
|
171
171
|
...deps.baseRunOpts,
|
|
172
|
+
...(handle.invocationCwd !== undefined ? { cwd: handle.invocationCwd } : {}),
|
|
172
173
|
runId: resolved.workflowId,
|
|
173
174
|
durableBackend: backend,
|
|
174
|
-
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
const accepted: DetachedAccepted = runDetached(def, inputs, resumeRunOpts);
|
|
175
178
|
|
|
176
179
|
return {
|
|
177
180
|
ok: true,
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/** Durable `ctx.stage` / `ctx.task` replay and checkpoint helpers. */
|
|
2
2
|
|
|
3
|
-
import type { StageContext, StageOptions, WorkflowTaskOptions, WorkflowTaskResult } from "../shared/types.js";
|
|
3
|
+
import type { StageContext, StageOptions, WorkflowChildResult, WorkflowOutputValues, WorkflowTaskOptions, WorkflowTaskResult } from "../shared/types.js";
|
|
4
4
|
import type { StageSnapshot } from "../shared/store-types.js";
|
|
5
5
|
import type { WorkflowSerializableValue } from "../shared/types.js";
|
|
6
6
|
import type { DurableWorkflowBackend } from "./backend.js";
|
|
7
7
|
import type { ParallelFailFastScope } from "../runs/foreground/executor-types.js";
|
|
8
8
|
import { durableHash } from "./backend.js";
|
|
9
9
|
import { recordCheckpointDurably } from "./tool-primitive.js";
|
|
10
|
+
import { RESUME_CONTINUATION_PROMPT } from "../shared/resume-continuation.js";
|
|
10
11
|
import type { DurableStageCheckpoint } from "./types.js";
|
|
12
|
+
export type DurableCompletedStageCheckpoint = DurableStageCheckpoint & { readonly output: WorkflowSerializableValue };
|
|
11
13
|
|
|
12
14
|
export interface DurableStageDeps {
|
|
13
15
|
readonly workflowId: string;
|
|
@@ -20,16 +22,28 @@ export interface DurableStageDeps {
|
|
|
20
22
|
export async function recordStageCheckpoint(deps: DurableStageDeps, stage: StageSnapshot): Promise<boolean> {
|
|
21
23
|
if (stage.status !== "completed") return false;
|
|
22
24
|
const replayKey = deps.replayKeyForCompletedStage?.(stage) ?? stage.replayKey ?? deps.nextReplayKey(stage.name);
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
const metadata = checkpointMetadata(stage);
|
|
26
|
+
const hasExistingOutput = deps.backend.getStageOutput(deps.workflowId, replayKey) !== undefined;
|
|
27
|
+
const checkpoint: DurableStageCheckpoint = hasExistingOutput
|
|
28
|
+
? {
|
|
29
|
+
kind: "stage",
|
|
30
|
+
workflowId: deps.workflowId,
|
|
31
|
+
checkpointId: stageMetadataCheckpointId(replayKey, stage),
|
|
32
|
+
name: stage.name,
|
|
33
|
+
replayKey,
|
|
34
|
+
completedAt: stage.endedAt ?? Date.now(),
|
|
35
|
+
...metadata,
|
|
36
|
+
}
|
|
37
|
+
: {
|
|
38
|
+
kind: "stage",
|
|
39
|
+
workflowId: deps.workflowId,
|
|
40
|
+
checkpointId: stableCheckpointId("stage", replayKey),
|
|
41
|
+
name: stage.name,
|
|
42
|
+
replayKey,
|
|
43
|
+
output: stageOutput(stage),
|
|
44
|
+
completedAt: stage.endedAt ?? Date.now(),
|
|
45
|
+
...metadata,
|
|
46
|
+
};
|
|
33
47
|
await recordCheckpointDurably(deps.backend, checkpoint);
|
|
34
48
|
return true;
|
|
35
49
|
}
|
|
@@ -53,7 +67,7 @@ export async function recordStageSessionCheckpoint(deps: DurableStageDeps, stage
|
|
|
53
67
|
return true;
|
|
54
68
|
}
|
|
55
69
|
|
|
56
|
-
const MID_SESSION_RESUME_PROMPT =
|
|
70
|
+
const MID_SESSION_RESUME_PROMPT = RESUME_CONTINUATION_PROMPT;
|
|
57
71
|
|
|
58
72
|
function withMidSessionResumePrompt<T extends StageContext>(stage: T, enabled: boolean): T {
|
|
59
73
|
if (!enabled) return stage;
|
|
@@ -79,14 +93,14 @@ export function createDurableStagePrimitive(input: {
|
|
|
79
93
|
readonly backend: DurableWorkflowBackend;
|
|
80
94
|
readonly nextReplayKey: (stageName: string) => string;
|
|
81
95
|
readonly stage: (name: string, options: StageOptions | undefined, replayKey: string) => StageContext;
|
|
82
|
-
readonly recordCachedStage?: (name: string, replayKey: string,
|
|
96
|
+
readonly recordCachedStage?: (name: string, replayKey: string, checkpoint: DurableCompletedStageCheckpoint) => void;
|
|
83
97
|
}): (name: string, options?: StageOptions) => StageContext {
|
|
84
98
|
return (name: string, options?: StageOptions): StageContext => {
|
|
85
99
|
const replayKey = input.nextReplayKey(name);
|
|
86
|
-
const cached = input.backend
|
|
100
|
+
const cached = stageCheckpointWithOutput(input.backend, input.workflowId, replayKey);
|
|
87
101
|
if (cached !== undefined) {
|
|
88
102
|
input.recordCachedStage?.(name, replayKey, cached);
|
|
89
|
-
return createCachedStageContext(name, cached);
|
|
103
|
+
return createCachedStageContext(name, cached.output, cached.result);
|
|
90
104
|
}
|
|
91
105
|
const session = input.backend.getStageSession(input.workflowId, replayKey);
|
|
92
106
|
const isMidSessionResume = session?.sessionFile !== undefined;
|
|
@@ -112,14 +126,14 @@ export function createDurableTaskPrimitive(input: {
|
|
|
112
126
|
readonly backend: DurableWorkflowBackend;
|
|
113
127
|
readonly nextReplayKey: (stageName: string) => string;
|
|
114
128
|
readonly task: (name: string, options: WorkflowTaskOptions, stageFailFastScope?: ParallelFailFastScope) => Promise<WorkflowTaskResult>;
|
|
115
|
-
readonly recordCachedTask?: (name: string, replayKey: string,
|
|
129
|
+
readonly recordCachedTask?: (name: string, replayKey: string, checkpoint: DurableCompletedStageCheckpoint, stageFailFastScope?: ParallelFailFastScope) => void;
|
|
116
130
|
}): (name: string, options: WorkflowTaskOptions) => Promise<WorkflowTaskResult> {
|
|
117
131
|
return async (name: string, options: WorkflowTaskOptions, stageFailFastScope?: ParallelFailFastScope): Promise<WorkflowTaskResult> => {
|
|
118
132
|
const replayKey = input.nextReplayKey(`task:${name}`);
|
|
119
|
-
const cached = input.backend
|
|
120
|
-
if (cached !== undefined && isWorkflowTaskResult(cached)) {
|
|
121
|
-
input.recordCachedTask?.(name, replayKey, cached);
|
|
122
|
-
return cached;
|
|
133
|
+
const cached = stageCheckpointWithOutput(input.backend, input.workflowId, replayKey, isWorkflowTaskResult);
|
|
134
|
+
if (cached !== undefined && isWorkflowTaskResult(cached.output)) {
|
|
135
|
+
input.recordCachedTask?.(name, replayKey, cached, stageFailFastScope);
|
|
136
|
+
return cached.output;
|
|
123
137
|
}
|
|
124
138
|
const session = input.backend.getStageSession(input.workflowId, replayKey);
|
|
125
139
|
const taskOptions: WorkflowTaskOptions = {
|
|
@@ -136,6 +150,7 @@ export function createDurableTaskPrimitive(input: {
|
|
|
136
150
|
replayKey,
|
|
137
151
|
output: result,
|
|
138
152
|
completedAt: Date.now(),
|
|
153
|
+
...taskCheckpointMetadata(result),
|
|
139
154
|
});
|
|
140
155
|
return result;
|
|
141
156
|
};
|
|
@@ -174,8 +189,8 @@ function wrapSchemaStageForDurability(input: {
|
|
|
174
189
|
return wrapped;
|
|
175
190
|
}
|
|
176
191
|
|
|
177
|
-
function createCachedStageContext(name: string, output: WorkflowSerializableValue): StageContext {
|
|
178
|
-
const text = typeof output === "string" ? output : JSON.stringify(output);
|
|
192
|
+
function createCachedStageContext(name: string, output: WorkflowSerializableValue, result?: string): StageContext {
|
|
193
|
+
const text = result ?? (typeof output === "string" ? output : JSON.stringify(output));
|
|
179
194
|
const unsupported = async (): Promise<never> => { throw new Error(`Stage "${name}" was replayed from a durable checkpoint; live session operations are unavailable.`); };
|
|
180
195
|
const cached = {
|
|
181
196
|
name,
|
|
@@ -213,6 +228,82 @@ function stageOutput(stage: StageSnapshot): WorkflowSerializableValue {
|
|
|
213
228
|
return { status: stage.status, stageId: stage.id };
|
|
214
229
|
}
|
|
215
230
|
|
|
231
|
+
function checkpointMetadata(stage: StageSnapshot): Partial<DurableStageCheckpoint> {
|
|
232
|
+
return {
|
|
233
|
+
...(stage.startedAt !== undefined ? { startedAt: stage.startedAt } : {}),
|
|
234
|
+
...(stage.endedAt !== undefined ? { endedAt: stage.endedAt } : {}),
|
|
235
|
+
...(stage.durationMs !== undefined ? { durationMs: stage.durationMs } : {}),
|
|
236
|
+
...(stage.result !== undefined ? { result: stage.result } : {}),
|
|
237
|
+
...(stage.sessionId !== undefined ? { sessionId: stage.sessionId } : {}),
|
|
238
|
+
...(stage.sessionFile !== undefined ? { sessionFile: stage.sessionFile } : {}),
|
|
239
|
+
...(stage.model !== undefined ? { model: stage.model } : {}),
|
|
240
|
+
...(stage.fastMode !== undefined ? { fastMode: stage.fastMode } : {}),
|
|
241
|
+
...(stage.attemptedModels !== undefined ? { attemptedModels: [...stage.attemptedModels] } : {}),
|
|
242
|
+
...(stage.modelAttempts !== undefined ? { modelAttempts: [...stage.modelAttempts] } : {}),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
function taskCheckpointMetadata(result: WorkflowTaskResult): Partial<DurableStageCheckpoint> {
|
|
247
|
+
return {
|
|
248
|
+
result: result.text,
|
|
249
|
+
...(result.sessionId !== undefined ? { sessionId: result.sessionId } : {}),
|
|
250
|
+
...(result.sessionFile !== undefined ? { sessionFile: result.sessionFile } : {}),
|
|
251
|
+
...(result.model !== undefined ? { model: result.model } : {}),
|
|
252
|
+
...(result.fastMode !== undefined ? { fastMode: result.fastMode } : {}),
|
|
253
|
+
...(result.attemptedModels !== undefined ? { attemptedModels: [...result.attemptedModels] } : {}),
|
|
254
|
+
...(result.modelAttempts !== undefined ? { modelAttempts: [...result.modelAttempts] } : {}),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export function stageCheckpointWithOutput(
|
|
259
|
+
backend: DurableWorkflowBackend,
|
|
260
|
+
workflowId: string,
|
|
261
|
+
replayKey: string,
|
|
262
|
+
matchesOutput?: (value: WorkflowSerializableValue) => boolean,
|
|
263
|
+
): DurableCompletedStageCheckpoint | undefined {
|
|
264
|
+
const checkpoints = backend.listCheckpoints(workflowId)
|
|
265
|
+
.filter((checkpoint): checkpoint is DurableStageCheckpoint =>
|
|
266
|
+
checkpoint.kind === "stage" && checkpoint.replayKey === replayKey,
|
|
267
|
+
);
|
|
268
|
+
const outputCheckpoints = checkpoints.filter((checkpoint): checkpoint is DurableCompletedStageCheckpoint =>
|
|
269
|
+
checkpoint.output !== undefined,
|
|
270
|
+
);
|
|
271
|
+
const replayValueCheckpoint = matchesOutput === undefined
|
|
272
|
+
? outputCheckpoints[0]
|
|
273
|
+
: outputCheckpoints.find((checkpoint) => matchesOutput(checkpoint.output));
|
|
274
|
+
if (replayValueCheckpoint === undefined) return undefined;
|
|
275
|
+
return mergeCheckpointHydrationMetadata(replayValueCheckpoint, checkpoints);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function mergeCheckpointHydrationMetadata(
|
|
279
|
+
replayValueCheckpoint: DurableCompletedStageCheckpoint,
|
|
280
|
+
checkpoints: readonly DurableStageCheckpoint[],
|
|
281
|
+
): DurableCompletedStageCheckpoint {
|
|
282
|
+
if (checkpoints.length === 0) return replayValueCheckpoint;
|
|
283
|
+
return {
|
|
284
|
+
...replayValueCheckpoint,
|
|
285
|
+
...(replayValueCheckpoint.startedAt === undefined ? metadataValue(checkpoints, "startedAt") : {}),
|
|
286
|
+
...(replayValueCheckpoint.endedAt === undefined ? metadataValue(checkpoints, "endedAt") : {}),
|
|
287
|
+
...(replayValueCheckpoint.durationMs === undefined ? metadataValue(checkpoints, "durationMs") : {}),
|
|
288
|
+
...(replayValueCheckpoint.result === undefined ? metadataValue(checkpoints, "result") : {}),
|
|
289
|
+
...(replayValueCheckpoint.sessionId === undefined ? metadataValue(checkpoints, "sessionId") : {}),
|
|
290
|
+
...(replayValueCheckpoint.sessionFile === undefined ? metadataValue(checkpoints, "sessionFile") : {}),
|
|
291
|
+
...(replayValueCheckpoint.model === undefined ? metadataValue(checkpoints, "model") : {}),
|
|
292
|
+
...(replayValueCheckpoint.fastMode === undefined ? metadataValue(checkpoints, "fastMode") : {}),
|
|
293
|
+
...(replayValueCheckpoint.attemptedModels === undefined ? metadataValue(checkpoints, "attemptedModels") : {}),
|
|
294
|
+
...(replayValueCheckpoint.modelAttempts === undefined ? metadataValue(checkpoints, "modelAttempts") : {}),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function metadataValue<K extends keyof DurableStageCheckpoint>(
|
|
299
|
+
checkpoints: readonly DurableStageCheckpoint[],
|
|
300
|
+
key: K,
|
|
301
|
+
): Pick<DurableStageCheckpoint, K> | Record<string, never> {
|
|
302
|
+
const value = checkpoints.find((checkpoint) => checkpoint[key] !== undefined)?.[key];
|
|
303
|
+
return value === undefined ? {} : { [key]: value } as Pick<DurableStageCheckpoint, K>;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
|
|
216
307
|
export function createStageReplayKeyGenerator(_workflowId: string): (stageName: string, stageId?: string) => string {
|
|
217
308
|
const counts = new Map<string, number>();
|
|
218
309
|
return (stageName: string, _stageId?: string): string => {
|
|
@@ -236,6 +327,15 @@ function stageSessionCheckpointId(replayKey: string, stage: StageSnapshot): stri
|
|
|
236
327
|
export function cachedStageId(runId: string, replayKey: string): string {
|
|
237
328
|
return `durable-${durableHash({ runId, replayKey })}`;
|
|
238
329
|
}
|
|
330
|
+
function stageMetadataCheckpointId(replayKey: string, stage: StageSnapshot): string {
|
|
331
|
+
return `${stableCheckpointId("stage-meta", replayKey)}:${durableHash({
|
|
332
|
+
stageId: stage.id,
|
|
333
|
+
endedAt: stage.endedAt ?? 0,
|
|
334
|
+
durationMs: stage.durationMs ?? 0,
|
|
335
|
+
result: stage.result ?? "",
|
|
336
|
+
})}`;
|
|
337
|
+
}
|
|
338
|
+
|
|
239
339
|
|
|
240
340
|
export function recordCachedStageIntoStore(
|
|
241
341
|
store: import("../shared/store.js").Store,
|
|
@@ -245,13 +345,24 @@ export function recordCachedStageIntoStore(
|
|
|
245
345
|
output: WorkflowSerializableValue,
|
|
246
346
|
completedStageReplayKeys: Map<string, string>,
|
|
247
347
|
parentIds?: readonly string[],
|
|
348
|
+
checkpoint?: DurableCompletedStageCheckpoint,
|
|
248
349
|
): void {
|
|
249
350
|
const now = Date.now();
|
|
250
351
|
const stageId = cachedStageId(runId, replayKey);
|
|
251
|
-
const result = typeof output === "string" ? output : JSON.stringify(output);
|
|
352
|
+
const result = checkpoint?.result ?? (typeof output === "string" ? output : JSON.stringify(output));
|
|
353
|
+
const endedAt = checkpoint?.endedAt ?? checkpoint?.completedAt ?? now;
|
|
354
|
+
const workflowChild = isWorkflowChildResult(output) ? workflowChildSnapshotFromResult(output) : undefined;
|
|
252
355
|
const snapshot: StageSnapshot = {
|
|
253
|
-
id: stageId, name, status: "completed", parentIds: parentIds !== undefined ? Object.freeze([...parentIds]) : [],
|
|
356
|
+
id: stageId, name, status: "completed", parentIds: parentIds !== undefined ? Object.freeze([...parentIds]) : [],
|
|
357
|
+
startedAt: checkpoint?.startedAt ?? endedAt, endedAt, durationMs: checkpoint?.durationMs ?? 0, result,
|
|
254
358
|
replayKey, replayed: true, skippedReason: "durable checkpoint replay", toolEvents: [], attachable: false,
|
|
359
|
+
...(workflowChild !== undefined ? { workflowChild } : {}),
|
|
360
|
+
...(checkpoint?.sessionId !== undefined ? { sessionId: checkpoint.sessionId } : {}),
|
|
361
|
+
...(checkpoint?.sessionFile !== undefined ? { sessionFile: checkpoint.sessionFile } : {}),
|
|
362
|
+
...(checkpoint?.model !== undefined ? { model: checkpoint.model } : {}),
|
|
363
|
+
...(checkpoint?.fastMode !== undefined ? { fastMode: checkpoint.fastMode } : {}),
|
|
364
|
+
...(checkpoint?.attemptedModels !== undefined ? { attemptedModels: checkpoint.attemptedModels } : {}),
|
|
365
|
+
...(checkpoint?.modelAttempts !== undefined ? { modelAttempts: checkpoint.modelAttempts } : {}),
|
|
255
366
|
};
|
|
256
367
|
store.recordStageStart(runId, snapshot);
|
|
257
368
|
store.recordStageEnd(runId, snapshot);
|
|
@@ -269,16 +380,44 @@ export function recordCachedStageWithTracker(
|
|
|
269
380
|
runId: string,
|
|
270
381
|
name: string,
|
|
271
382
|
replayKey: string,
|
|
272
|
-
|
|
383
|
+
checkpoint: DurableCompletedStageCheckpoint,
|
|
273
384
|
completedStageReplayKeys: Map<string, string>,
|
|
385
|
+
stageFailFastScope?: ParallelFailFastScope,
|
|
274
386
|
): void {
|
|
275
387
|
const stageId = cachedStageId(runId, replayKey);
|
|
276
|
-
|
|
277
|
-
|
|
388
|
+
let parentIds = tracker.onSpawn(stageId, name);
|
|
389
|
+
const scopeParentIds = stageFailFastScope?.parentIds ?? [];
|
|
390
|
+
if (stageFailFastScope !== undefined) {
|
|
391
|
+
tracker.replaceParents(stageId, scopeParentIds);
|
|
392
|
+
parentIds = [...scopeParentIds];
|
|
393
|
+
}
|
|
394
|
+
recordCachedStageIntoStore(store, runId, name, replayKey, checkpoint.output, completedStageReplayKeys, parentIds, checkpoint);
|
|
278
395
|
tracker.onSettle(stageId);
|
|
279
396
|
}
|
|
280
|
-
|
|
281
397
|
function isWorkflowTaskResult(value: WorkflowSerializableValue): value is WorkflowTaskResult {
|
|
282
398
|
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
283
399
|
return typeof (value as Record<string, WorkflowSerializableValue>)["text"] === "string";
|
|
284
400
|
}
|
|
401
|
+
|
|
402
|
+
function isWorkflowChildResult(value: WorkflowSerializableValue): value is WorkflowChildResult<WorkflowOutputValues> {
|
|
403
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
404
|
+
const objectValue = value as Record<string, WorkflowSerializableValue | undefined>;
|
|
405
|
+
return typeof objectValue["workflow"] === "string"
|
|
406
|
+
&& typeof objectValue["runId"] === "string"
|
|
407
|
+
&& typeof objectValue["status"] === "string"
|
|
408
|
+
&& typeof objectValue["outputs"] === "object"
|
|
409
|
+
&& objectValue["outputs"] !== null
|
|
410
|
+
&& !Array.isArray(objectValue["outputs"]);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
function workflowChildSnapshotFromResult(result: WorkflowChildResult<WorkflowOutputValues>): StageSnapshot["workflowChild"] {
|
|
414
|
+
return {
|
|
415
|
+
alias: result.workflow,
|
|
416
|
+
workflow: result.workflow,
|
|
417
|
+
runId: result.runId,
|
|
418
|
+
status: result.status,
|
|
419
|
+
...(result.exited !== undefined ? { exited: result.exited } : {}),
|
|
420
|
+
outputs: result.outputs,
|
|
421
|
+
...(typeof result.exitReason === "string" ? { exitReason: result.exitReason } : {}),
|
|
422
|
+
};
|
|
423
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* cross-ref: issue #1498
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { WorkflowSerializableValue } from "../shared/types.js";
|
|
12
|
+
import type { WorkflowModelAttempt, WorkflowSerializableValue } from "../shared/types.js";
|
|
13
13
|
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
// Top-level workflow identity
|
|
@@ -32,6 +32,14 @@ export interface DurableWorkflowHandle {
|
|
|
32
32
|
readonly updatedAt: number;
|
|
33
33
|
/** Current durable status. */
|
|
34
34
|
readonly status: DurableWorkflowStatus;
|
|
35
|
+
/** Original invocation cwd used to resolve repo-relative workflow defaults on resume. */
|
|
36
|
+
readonly invocationCwd?: string;
|
|
37
|
+
/** Resolved workflow cwd when an input-bound reusable worktree was set up. */
|
|
38
|
+
readonly workflowCwd?: string;
|
|
39
|
+
/** Invoking repository root used for reusable worktree validation. */
|
|
40
|
+
readonly repositoryRoot?: string;
|
|
41
|
+
/** Resolved reusable git worktree root, when setup happened at workflow start. */
|
|
42
|
+
readonly gitWorktreeRoot?: string;
|
|
35
43
|
/** Session file path that caches this workflow's durable metadata. */
|
|
36
44
|
readonly sessionFile?: string;
|
|
37
45
|
/** Number of completed durable checkpoints. */
|
|
@@ -113,6 +121,19 @@ export interface DurableStageCheckpoint {
|
|
|
113
121
|
readonly sessionId?: string;
|
|
114
122
|
readonly sessionFile?: string;
|
|
115
123
|
readonly completedAt: number;
|
|
124
|
+
/** Original stage start timestamp, when available. */
|
|
125
|
+
readonly startedAt?: number;
|
|
126
|
+
/** Original stage end timestamp, when available. */
|
|
127
|
+
readonly endedAt?: number;
|
|
128
|
+
/** Original stage duration, when available. */
|
|
129
|
+
readonly durationMs?: number;
|
|
130
|
+
/** Display/result text recorded for the completed stage. */
|
|
131
|
+
readonly result?: string;
|
|
132
|
+
/** Completed stage/task model metadata used to hydrate replayed snapshots. */
|
|
133
|
+
readonly model?: string;
|
|
134
|
+
readonly fastMode?: boolean;
|
|
135
|
+
readonly attemptedModels?: readonly string[];
|
|
136
|
+
readonly modelAttempts?: readonly WorkflowModelAttempt[];
|
|
116
137
|
}
|
|
117
138
|
|
|
118
139
|
export type UiPromptKind = "input" | "confirm" | "select" | "editor" | "custom";
|
|
@@ -145,6 +166,10 @@ export interface DurableCheckpointEntry {
|
|
|
145
166
|
readonly label?: string;
|
|
146
167
|
readonly rootWorkflowId?: string;
|
|
147
168
|
readonly resumable?: boolean;
|
|
169
|
+
readonly invocationCwd?: string;
|
|
170
|
+
readonly workflowCwd?: string;
|
|
171
|
+
readonly repositoryRoot?: string;
|
|
172
|
+
readonly gitWorktreeRoot?: string;
|
|
148
173
|
readonly ts: number;
|
|
149
174
|
}
|
|
150
175
|
|
|
@@ -163,6 +188,10 @@ export interface ResumableWorkflowEntry {
|
|
|
163
188
|
readonly label?: string;
|
|
164
189
|
readonly rootWorkflowId?: string;
|
|
165
190
|
readonly resumable?: boolean;
|
|
191
|
+
readonly invocationCwd?: string;
|
|
192
|
+
readonly workflowCwd?: string;
|
|
193
|
+
readonly repositoryRoot?: string;
|
|
194
|
+
readonly gitWorktreeRoot?: string;
|
|
166
195
|
readonly createdAt: number;
|
|
167
196
|
readonly updatedAt: number;
|
|
168
197
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WorkflowChainOptions, WorkflowParallelOptions, WorkflowTaskOptions, WorkflowTaskResult, WorkflowTaskStep } from "../../shared/types.js";
|
|
2
2
|
import type { ParallelFailFastScope } from "../../runs/foreground/executor-types.js";
|
|
3
3
|
import type { EngineRuntime } from "../runtime.js";
|
|
4
|
+
import { RESUME_CONTINUATION_PROMPT } from "../../shared/resume-continuation.js";
|
|
4
5
|
import {
|
|
5
6
|
applyTaskContext,
|
|
6
7
|
structuredTaskOutputText,
|
|
@@ -41,6 +42,7 @@ function createTaskPrimitive(runtime: EngineRuntime): WorkflowTaskPrimitive {
|
|
|
41
42
|
const resolvedTaskOptions = stageOptionsWithGitWorktree(
|
|
42
43
|
stageOptionsWithInputDefaults(taskOptions, runtime.inputRuntimeDefaults),
|
|
43
44
|
runtime.workflowInvocationCwd,
|
|
45
|
+
runtime.gitWorktreeSetupCache,
|
|
44
46
|
) ?? taskOptions;
|
|
45
47
|
const stageOptions = taskStageOptions(resolvedTaskOptions);
|
|
46
48
|
const stageHandle = runtime.spawnStage(name, {
|
|
@@ -50,7 +52,7 @@ function createTaskPrimitive(runtime: EngineRuntime): WorkflowTaskPrimitive {
|
|
|
50
52
|
});
|
|
51
53
|
const stage = stageHandle.context;
|
|
52
54
|
const promptText = resolvedTaskOptions.resumeFromSessionFile !== undefined
|
|
53
|
-
?
|
|
55
|
+
? RESUME_CONTINUATION_PROMPT
|
|
54
56
|
: applyTaskContext(`${taskReadInstruction(resolvedTaskOptions)}${taskPrompt(resolvedTaskOptions)}`, taskPrevious(resolvedTaskOptions));
|
|
55
57
|
const rawOutput = await stage.prompt(promptText, taskPromptOptions(resolvedTaskOptions));
|
|
56
58
|
const structured = typeof rawOutput === "string" ? undefined : rawOutput;
|
|
@@ -38,8 +38,7 @@ export async function finalizeDurableTerminalStatus(input: DurableTerminalFinali
|
|
|
38
38
|
|
|
39
39
|
const durableStatus = toDurableStatus(status);
|
|
40
40
|
if (durableStatus !== undefined) {
|
|
41
|
-
|
|
42
|
-
input.durableBackend.setWorkflowStatus(input.runId, durableStatus, undefined, resumable);
|
|
41
|
+
input.durableBackend.setWorkflowStatus(input.runId, durableStatus, undefined, input.runSnapshot.resumable);
|
|
43
42
|
}
|
|
44
43
|
try {
|
|
45
44
|
await input.durableBackend.flush?.();
|