@bastani/atomic 0.9.4 → 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 +136 -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 +98 -0
- package/dist/builtin/workflows/README.md +20 -16
- 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-ledger.ts +3 -0
- package/dist/builtin/workflows/builtin/goal-prompts.ts +39 -5
- package/dist/builtin/workflows/builtin/goal-reducer.ts +21 -0
- package/dist/builtin/workflows/builtin/goal-reports.ts +23 -0
- package/dist/builtin/workflows/builtin/goal-review.ts +85 -6
- package/dist/builtin/workflows/builtin/goal-runner.ts +122 -49
- package/dist/builtin/workflows/builtin/goal-schemas.ts +22 -0
- package/dist/builtin/workflows/builtin/goal-types.ts +25 -1
- package/dist/builtin/workflows/builtin/goal.d.ts +5 -0
- package/dist/builtin/workflows/builtin/goal.ts +13 -2
- package/dist/builtin/workflows/builtin/index.d.ts +8 -0
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +16 -5
- package/dist/builtin/workflows/builtin/ralph-core.ts +100 -15
- package/dist/builtin/workflows/builtin/ralph-models.ts +98 -66
- package/dist/builtin/workflows/builtin/ralph-review-gate.ts +37 -5
- package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +159 -0
- package/dist/builtin/workflows/builtin/ralph-runner.ts +75 -165
- package/dist/builtin/workflows/builtin/ralph.d.ts +3 -0
- package/dist/builtin/workflows/builtin/ralph.ts +4 -1
- package/dist/builtin/workflows/builtin/review-convergence.ts +111 -0
- package/dist/builtin/workflows/builtin/shared-prompts.ts +20 -1
- 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 +59 -36
- 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
|
@@ -1,18 +1,67 @@
|
|
|
1
1
|
import type { WorkflowTaskResult } from "../src/shared/types.js";
|
|
2
2
|
import type { ReviewDecision, ReviewRecord } from "./goal-types.js";
|
|
3
|
+
import {
|
|
4
|
+
finalActionRemaining,
|
|
5
|
+
parseFailureDiagnostics,
|
|
6
|
+
summarizeReviewConvergence,
|
|
7
|
+
traceabilityProvenExceptFinalAction,
|
|
8
|
+
type ParsedReviewDecision,
|
|
9
|
+
} from "./review-convergence.js";
|
|
3
10
|
|
|
4
11
|
export function reviewDecisionFromResult(result: WorkflowTaskResult): ReviewDecision | undefined {
|
|
5
12
|
return result.structured as ReviewDecision | undefined;
|
|
6
13
|
}
|
|
7
14
|
|
|
8
|
-
export function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
export function parsedReviewDecisionFromResult(
|
|
16
|
+
result: WorkflowTaskResult,
|
|
17
|
+
reviewer: string,
|
|
18
|
+
): ParsedReviewDecision<ReviewDecision> {
|
|
19
|
+
const parsed = reviewDecisionFromResult(result);
|
|
20
|
+
if (parsed !== undefined) {
|
|
21
|
+
return { decision: parsed, parsed: true, diagnostics: [] };
|
|
22
|
+
}
|
|
23
|
+
const diagnostics = parseFailureDiagnostics(reviewer, result.text);
|
|
24
|
+
return {
|
|
25
|
+
decision: reviewerErrorDecision(diagnostics.join("\n")),
|
|
26
|
+
parsed: false,
|
|
27
|
+
diagnostics,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const NON_BLOCKING_ALIGNMENTS = new Set([
|
|
32
|
+
"beyond_objective",
|
|
33
|
+
"contradicts_objective",
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
function findingBlocksApproval(finding: ReviewDecision["findings"][number]): boolean {
|
|
37
|
+
const alignment = finding.objective_alignment;
|
|
38
|
+
if (NON_BLOCKING_ALIGNMENTS.has(alignment)) return false;
|
|
39
|
+
if (alignment !== "required_by_objective" && alignment !== "consistent_with_objective") {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return finding.priority !== 3;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function traceabilityApproves(
|
|
46
|
+
decision: ReviewDecision,
|
|
47
|
+
allowFinalActionRemaining: boolean,
|
|
48
|
+
): boolean {
|
|
49
|
+
return traceabilityProvenExceptFinalAction({
|
|
50
|
+
traceability: decision.requirements_traceability,
|
|
51
|
+
allowFinalActionRemaining,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function reviewApproved(
|
|
56
|
+
decision: ReviewDecision,
|
|
57
|
+
options: { readonly allowFinalActionRemaining?: boolean } = {},
|
|
58
|
+
): boolean {
|
|
59
|
+
const hasBlockingFindings = decision.findings.some(findingBlocksApproval);
|
|
12
60
|
return (
|
|
13
61
|
decision.stop_review_loop === true &&
|
|
14
62
|
decision.overall_correctness === "patch is correct" &&
|
|
15
63
|
decision.goal_oracle_satisfied === true &&
|
|
64
|
+
traceabilityApproves(decision, options.allowFinalActionRemaining === true) &&
|
|
16
65
|
!hasBlockingFindings &&
|
|
17
66
|
decision.reviewer_error == null
|
|
18
67
|
);
|
|
@@ -26,6 +75,7 @@ export function reviewerErrorDecision(message: string): ReviewDecision {
|
|
|
26
75
|
"Reviewer execution failed, so the review gate cannot safely approve the current repository state.",
|
|
27
76
|
overall_confidence_score: 0,
|
|
28
77
|
goal_oracle_satisfied: false,
|
|
78
|
+
requirements_traceability: [],
|
|
29
79
|
receipt_assessment:
|
|
30
80
|
"No reviewer receipt could be produced because reviewer execution failed.",
|
|
31
81
|
verification_remaining: "Recover reviewer execution and re-run oracle validation.",
|
|
@@ -57,18 +107,43 @@ export function reviewDecisionToRecord(args: {
|
|
|
57
107
|
readonly reviewer: string;
|
|
58
108
|
readonly artifactPath: string;
|
|
59
109
|
readonly decision: ReviewDecision;
|
|
110
|
+
readonly parsed: boolean;
|
|
111
|
+
readonly diagnostics: readonly string[];
|
|
112
|
+
readonly allowFinalActionRemaining: boolean;
|
|
60
113
|
}): ReviewRecord {
|
|
61
114
|
const blocker = blockerFromReviewDecision(args.decision);
|
|
62
|
-
const approved = reviewApproved(args.decision
|
|
115
|
+
const approved = reviewApproved(args.decision, {
|
|
116
|
+
allowFinalActionRemaining: args.allowFinalActionRemaining,
|
|
117
|
+
});
|
|
118
|
+
const hasFinalActionRemaining = args.allowFinalActionRemaining &&
|
|
119
|
+
finalActionRemaining(args.decision.requirements_traceability);
|
|
63
120
|
const verificationGap = args.decision.verification_remaining.trim();
|
|
121
|
+
const traceabilityGaps = args.decision.requirements_traceability
|
|
122
|
+
.filter((entry) => entry.status !== "proven")
|
|
123
|
+
.map((entry) => `${entry.status}: ${entry.requirement} — ${entry.evidence}`);
|
|
64
124
|
const gaps = [
|
|
65
|
-
...args.decision.findings.map((finding) =>
|
|
125
|
+
...args.decision.findings.map((finding) =>
|
|
126
|
+
`[${finding.objective_alignment}] ${finding.title}: ${finding.body}`
|
|
127
|
+
),
|
|
128
|
+
...traceabilityGaps,
|
|
66
129
|
...(approved || verificationGap.length === 0 ? [] : [verificationGap]),
|
|
67
130
|
...(args.decision.reviewer_error == null
|
|
68
131
|
? []
|
|
69
132
|
: [`${args.decision.reviewer_error.kind}: ${args.decision.reviewer_error.message}`]),
|
|
70
133
|
];
|
|
71
134
|
|
|
135
|
+
const nextAction = approved
|
|
136
|
+
? hasFinalActionRemaining ? "pull-request" : "finish"
|
|
137
|
+
: blocker === null ? "implementation" : "blocked";
|
|
138
|
+
const convergenceDecision = summarizeReviewConvergence({
|
|
139
|
+
parsed: args.parsed,
|
|
140
|
+
approved,
|
|
141
|
+
stopReviewLoop: args.decision.stop_review_loop,
|
|
142
|
+
nextAction,
|
|
143
|
+
finalActionRemaining: approved && hasFinalActionRemaining,
|
|
144
|
+
diagnostics: args.diagnostics,
|
|
145
|
+
});
|
|
146
|
+
|
|
72
147
|
return {
|
|
73
148
|
...args.decision,
|
|
74
149
|
decision: approved ? "complete" : blocker === null ? "continue" : "blocked",
|
|
@@ -80,5 +155,9 @@ export function reviewDecisionToRecord(args: {
|
|
|
80
155
|
turn: args.turn,
|
|
81
156
|
reviewer: args.reviewer,
|
|
82
157
|
artifact_path: args.artifactPath,
|
|
158
|
+
parsed: args.parsed,
|
|
159
|
+
approved,
|
|
160
|
+
parse_diagnostics: args.diagnostics,
|
|
161
|
+
convergence_decision: convergenceDecision,
|
|
83
162
|
};
|
|
84
163
|
}
|
|
@@ -8,8 +8,9 @@ import {
|
|
|
8
8
|
type GoalWorkflowInputs,
|
|
9
9
|
type GoalWorkflowOutputs,
|
|
10
10
|
type ReviewRecord,
|
|
11
|
+
type ReducerDecision,
|
|
11
12
|
} from "./goal-types.js";
|
|
12
|
-
import { writeReviewArtifact, writeReviewRoundArtifact } from "./goal-artifacts.js";
|
|
13
|
+
import { artifactSafeName, writeReviewArtifact, writeReviewRoundArtifact } from "./goal-artifacts.js";
|
|
13
14
|
import { appendLifecycleEvent, createGoalLedger, writeGoalLedger } from "./goal-ledger.js";
|
|
14
15
|
import {
|
|
15
16
|
collectRemainingWork,
|
|
@@ -17,14 +18,13 @@ import {
|
|
|
17
18
|
} from "./goal-reducer.js";
|
|
18
19
|
import { formatReviewReport, renderFinalReport } from "./goal-reports.js";
|
|
19
20
|
import {
|
|
20
|
-
|
|
21
|
-
reviewerErrorDecision,
|
|
21
|
+
parsedReviewDecisionFromResult,
|
|
22
22
|
reviewDecisionToRecord,
|
|
23
23
|
} from "./goal-review.js";
|
|
24
|
+
import { reviewerFailureText } from "./review-convergence.js";
|
|
24
25
|
import {
|
|
25
26
|
WORKER_PREFLIGHT_CONTRACT,
|
|
26
27
|
WORKER_RECEIPT_CONTRACT,
|
|
27
|
-
goalRunnerTools,
|
|
28
28
|
renderForkedGoalWorkerPrompt,
|
|
29
29
|
renderGoalContinuationPrompt,
|
|
30
30
|
renderReviewerPrompt,
|
|
@@ -76,6 +76,27 @@ type GoalWorkflowOptions = {
|
|
|
76
76
|
readonly workflowStartCwd: string;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
+
function reviewerExecutionFailedDecision(input: {
|
|
80
|
+
readonly turn: number;
|
|
81
|
+
readonly reviewQuorum: number;
|
|
82
|
+
readonly reviews: readonly ReviewRecord[];
|
|
83
|
+
readonly reason: string;
|
|
84
|
+
}): ReducerDecision {
|
|
85
|
+
return {
|
|
86
|
+
turn: input.turn,
|
|
87
|
+
decision: "needs_human",
|
|
88
|
+
reason: input.reason,
|
|
89
|
+
complete_votes: input.reviews.filter((review) => review.decision === "complete").length,
|
|
90
|
+
review_quorum: input.reviewQuorum,
|
|
91
|
+
parsed: input.reviews.every((review) => review.parsed),
|
|
92
|
+
approved: false,
|
|
93
|
+
stopReviewLoop: false,
|
|
94
|
+
nextAction: "needs_human",
|
|
95
|
+
finalActionRemaining: false,
|
|
96
|
+
diagnostics: input.reviews.flatMap((review) => review.parse_diagnostics),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
79
100
|
export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkflowOptions): Promise<GoalWorkflowOutputs> {
|
|
80
101
|
const inputs = ctx.inputs;
|
|
81
102
|
const createPr = options.createPr;
|
|
@@ -85,49 +106,72 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
85
106
|
throw new Error("goal requires an objective input.");
|
|
86
107
|
}
|
|
87
108
|
const objective = rawObjective;
|
|
109
|
+
const acceptanceCriteria = inputs.acceptance_criteria?.trim() || objective;
|
|
88
110
|
|
|
89
111
|
const maxTurns = positiveInteger(inputs.max_turns, DEFAULT_MAX_TURNS);
|
|
90
112
|
const reviewQuorum = DEFAULT_REVIEW_QUORUM;
|
|
91
113
|
const blockerThreshold = Math.min(DEFAULT_BLOCKER_THRESHOLD, maxTurns);
|
|
92
114
|
const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
|
|
93
|
-
const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective);
|
|
115
|
+
const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective, acceptanceCriteria);
|
|
94
116
|
|
|
95
|
-
// Chains curated from Atomic's agentic-coding benchmark
|
|
96
|
-
// ralph-models.ts for the frontier data and drop rationale).
|
|
117
|
+
// Chains curated from Atomic's agentic-coding benchmark; see ralph-models.ts for frontier data and drop rationale.
|
|
97
118
|
const workerModelConfig = {
|
|
98
|
-
model: "openai-codex/gpt-5.
|
|
119
|
+
model: "openai-codex/gpt-5.6-sol:medium",
|
|
99
120
|
fallbackModels: [
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
121
|
+
"github-copilot/gpt-5.6-sol:medium",
|
|
122
|
+
"openai/gpt-5.6-sol:medium",
|
|
123
|
+
"openai-codex/gpt-5.5:medium",
|
|
124
|
+
"github-copilot/gpt-5.5:medium",
|
|
125
|
+
"openai/gpt-5.5:medium",
|
|
126
|
+
"anthropic/claude-fable-5:low",
|
|
127
|
+
"github-copilot/claude-opus-4.8 (1m):medium",
|
|
128
|
+
"anthropic/claude-opus-4-8:medium",
|
|
129
|
+
"cursor/gpt-5.6-sol:medium",
|
|
130
|
+
"cursor/gpt-5.5:medium",
|
|
131
|
+
"cursor/claude-fable-5:low",
|
|
132
|
+
"cursor/claude-opus-4-8-thinking:medium",
|
|
133
|
+
"cursor/grok-4.5",
|
|
134
|
+
"zai/glm-5.2:high",
|
|
135
|
+
"zai-coding-cn/glm-5.2:high",
|
|
136
|
+
"cursor/glm-5.2",
|
|
137
|
+
"openrouter/openai/gpt-5.6-sol:medium",
|
|
138
|
+
"openrouter/openai/gpt-5.5:medium",
|
|
139
|
+
"openrouter/anthropic/claude-fable-5:low",
|
|
140
|
+
"openrouter/anthropic/claude-opus-4-8:medium",
|
|
141
|
+
"openrouter/x-ai/grok-4.5",
|
|
142
|
+
"openrouter/z-ai/glm-5.2:xhigh"
|
|
111
143
|
],
|
|
112
|
-
|
|
144
|
+
excludedTools: ["ask_user_question"],
|
|
113
145
|
};
|
|
114
146
|
|
|
115
147
|
const reviewerModelConfig = {
|
|
116
|
-
model: "anthropic/claude-fable-5:
|
|
148
|
+
model: "anthropic/claude-fable-5:high",
|
|
117
149
|
fallbackModels: [
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
150
|
+
"openai-codex/gpt-5.6-sol:max",
|
|
151
|
+
"github-copilot/gpt-5.6-sol:max",
|
|
152
|
+
"openai/gpt-5.6-sol:max",
|
|
153
|
+
"openai-codex/gpt-5.5:xhigh",
|
|
154
|
+
"github-copilot/gpt-5.5:xhigh",
|
|
155
|
+
"openai/gpt-5.5:xhigh",
|
|
156
|
+
"github-copilot/claude-opus-4.8 (1m):high",
|
|
157
|
+
"anthropic/claude-opus-4-8:high",
|
|
158
|
+
"cursor/claude-fable-5:high",
|
|
159
|
+
"cursor/gpt-5.6-sol:max",
|
|
160
|
+
"cursor/gpt-5.5:high",
|
|
161
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
162
|
+
"cursor/grok-4.5",
|
|
163
|
+
"zai/glm-5.2:xhigh",
|
|
164
|
+
"zai-coding-cn/glm-5.2:xhigh",
|
|
165
|
+
"cursor/glm-5.2",
|
|
166
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
167
|
+
"openrouter/openai/gpt-5.6-sol:max",
|
|
168
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
169
|
+
"openrouter/openai/gpt-5.5:xhigh",
|
|
170
|
+
"openrouter/anthropic/claude-opus-4-8:high",
|
|
171
|
+
"openrouter/x-ai/grok-4.5",
|
|
172
|
+
"openrouter/z-ai/glm-5.2:xhigh"
|
|
129
173
|
],
|
|
130
|
-
|
|
174
|
+
excludedTools: ["ask_user_question"],
|
|
131
175
|
schema: reviewDecisionSchema,
|
|
132
176
|
};
|
|
133
177
|
|
|
@@ -191,6 +235,12 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
191
235
|
reason: terminalRemainingWork,
|
|
192
236
|
complete_votes: 0,
|
|
193
237
|
review_quorum: reviewQuorum,
|
|
238
|
+
parsed: false,
|
|
239
|
+
approved: false,
|
|
240
|
+
stopReviewLoop: false,
|
|
241
|
+
nextAction: "needs_human",
|
|
242
|
+
finalActionRemaining: false,
|
|
243
|
+
diagnostics: [terminalRemainingWork],
|
|
194
244
|
});
|
|
195
245
|
appendLifecycleEvent(ledger, "status_decided", terminalRemainingWork, turn);
|
|
196
246
|
await writeGoalLedger(ledgerPath, ledger);
|
|
@@ -223,6 +273,7 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
223
273
|
comparisonBaseBranch,
|
|
224
274
|
reviewQuorum,
|
|
225
275
|
blockerThreshold,
|
|
276
|
+
createPr,
|
|
226
277
|
}),
|
|
227
278
|
reads: [ledgerPath, workTurnPath],
|
|
228
279
|
...reviewerModelConfig,
|
|
@@ -247,42 +298,48 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
247
298
|
];
|
|
248
299
|
|
|
249
300
|
let reviewResults: WorkflowTaskResult[];
|
|
301
|
+
let reviewerBatchFailed = false;
|
|
250
302
|
try {
|
|
251
303
|
reviewResults = await ctx.parallel(reviewerSteps, {
|
|
252
304
|
task: objective,
|
|
253
|
-
failFast:
|
|
305
|
+
failFast: true,
|
|
254
306
|
});
|
|
255
307
|
} catch (err) {
|
|
256
|
-
|
|
257
|
-
const structured = reviewerErrorDecision(message);
|
|
308
|
+
reviewerBatchFailed = true;
|
|
258
309
|
reviewResults = [
|
|
259
310
|
{
|
|
260
311
|
name: "reviewer-error",
|
|
261
312
|
stageName: "reviewer-error",
|
|
262
|
-
text:
|
|
263
|
-
structured,
|
|
313
|
+
text: reviewerFailureText(err),
|
|
264
314
|
},
|
|
265
315
|
];
|
|
266
316
|
}
|
|
267
317
|
|
|
268
318
|
latestReviews = await Promise.all(reviewResults.map(async (result) => {
|
|
269
319
|
const reviewerName = result.name ?? result.stageName;
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
);
|
|
274
|
-
const reviewArtifactPath = await writeReviewArtifact(
|
|
320
|
+
const normalizedReviewerName = reviewerName.replace(/-\d+$/u, "");
|
|
321
|
+
const parsed = parsedReviewDecisionFromResult(result, reviewerName);
|
|
322
|
+
const reviewArtifactPath = join(
|
|
275
323
|
artifactDir,
|
|
276
|
-
|
|
277
|
-
parsed,
|
|
278
|
-
result.text,
|
|
324
|
+
`review-${artifactSafeName(normalizedReviewerName)}.json`,
|
|
279
325
|
);
|
|
280
|
-
|
|
326
|
+
const record = reviewDecisionToRecord({
|
|
281
327
|
turn,
|
|
282
|
-
reviewer:
|
|
328
|
+
reviewer: normalizedReviewerName,
|
|
283
329
|
artifactPath: reviewArtifactPath,
|
|
284
|
-
decision: parsed,
|
|
330
|
+
decision: parsed.decision,
|
|
331
|
+
parsed: parsed.parsed,
|
|
332
|
+
diagnostics: parsed.diagnostics,
|
|
333
|
+
allowFinalActionRemaining: createPr,
|
|
285
334
|
});
|
|
335
|
+
await writeReviewArtifact(
|
|
336
|
+
artifactDir,
|
|
337
|
+
normalizedReviewerName,
|
|
338
|
+
parsed.decision,
|
|
339
|
+
result.text,
|
|
340
|
+
record.convergence_decision,
|
|
341
|
+
);
|
|
342
|
+
return record;
|
|
286
343
|
}));
|
|
287
344
|
latestReviewArtifactPaths = latestReviews.map((review) => review.artifact_path);
|
|
288
345
|
latestReviewReportPath = await writeReviewRoundArtifact(
|
|
@@ -296,12 +353,27 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
296
353
|
`Recorded ${latestReviews.length} reviewer decisions.`,
|
|
297
354
|
turn,
|
|
298
355
|
);
|
|
356
|
+
if (reviewerBatchFailed) {
|
|
357
|
+
terminalRemainingWork = collectRemainingWork(latestReviews);
|
|
358
|
+
const reason = `Reviewer execution failed before quorum could be established. Remaining work: ${terminalRemainingWork}`;
|
|
359
|
+
ledger.decisions.push(reviewerExecutionFailedDecision({
|
|
360
|
+
turn,
|
|
361
|
+
reviewQuorum,
|
|
362
|
+
reviews: latestReviews,
|
|
363
|
+
reason,
|
|
364
|
+
}));
|
|
365
|
+
ledger.status = "needs_human";
|
|
366
|
+
appendLifecycleEvent(ledger, "status_decided", reason, turn);
|
|
367
|
+
await writeGoalLedger(ledgerPath, ledger);
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
299
370
|
|
|
300
371
|
const reducerOutcome = reduceGoalDecision(ledger, latestReviews, {
|
|
301
372
|
turn,
|
|
302
373
|
maxTurns,
|
|
303
374
|
reviewQuorum,
|
|
304
375
|
blockerThreshold,
|
|
376
|
+
nextActionOnComplete: createPr ? "pull-request" : "finish",
|
|
305
377
|
});
|
|
306
378
|
if (reducerOutcome.blockerObservation !== undefined) {
|
|
307
379
|
ledger.blockers.push(reducerOutcome.blockerObservation);
|
|
@@ -415,6 +487,7 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
415
487
|
approved: ledger.status === "complete",
|
|
416
488
|
goal_id: ledger.goal_id,
|
|
417
489
|
objective: ledger.objective,
|
|
490
|
+
acceptance_criteria: ledger.acceptance_criteria,
|
|
418
491
|
ledger_path: ledgerPath,
|
|
419
492
|
turns_completed: ledger.turns,
|
|
420
493
|
iterations_completed: ledger.turns,
|
|
@@ -5,6 +5,12 @@ const reviewFindingSchema = Type.Object(
|
|
|
5
5
|
title: Type.String(),
|
|
6
6
|
body: Type.String(),
|
|
7
7
|
confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
|
|
8
|
+
objective_alignment: Type.Union([
|
|
9
|
+
Type.Literal("required_by_objective"),
|
|
10
|
+
Type.Literal("consistent_with_objective"),
|
|
11
|
+
Type.Literal("beyond_objective"),
|
|
12
|
+
Type.Literal("contradicts_objective"),
|
|
13
|
+
]),
|
|
8
14
|
priority: Type.Optional(
|
|
9
15
|
Type.Union([Type.Integer({ minimum: 0, maximum: 3 }), Type.Null()]),
|
|
10
16
|
),
|
|
@@ -25,6 +31,21 @@ const reviewFindingSchema = Type.Object(
|
|
|
25
31
|
{ additionalProperties: false },
|
|
26
32
|
);
|
|
27
33
|
|
|
34
|
+
|
|
35
|
+
const requirementsTraceabilitySchema = Type.Object(
|
|
36
|
+
{
|
|
37
|
+
requirement: Type.String(),
|
|
38
|
+
status: Type.Union([
|
|
39
|
+
Type.Literal("proven"),
|
|
40
|
+
Type.Literal("contradicted"),
|
|
41
|
+
Type.Literal("missing"),
|
|
42
|
+
Type.Literal("unverified"),
|
|
43
|
+
]),
|
|
44
|
+
evidence: Type.String(),
|
|
45
|
+
},
|
|
46
|
+
{ additionalProperties: false },
|
|
47
|
+
);
|
|
48
|
+
|
|
28
49
|
const reviewerErrorSchema = Type.Object(
|
|
29
50
|
{
|
|
30
51
|
kind: Type.Union([
|
|
@@ -49,6 +70,7 @@ export const reviewDecisionSchema = Type.Object(
|
|
|
49
70
|
overall_explanation: Type.String(),
|
|
50
71
|
overall_confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
|
|
51
72
|
goal_oracle_satisfied: Type.Boolean(),
|
|
73
|
+
requirements_traceability: Type.Array(requirementsTraceabilitySchema),
|
|
52
74
|
receipt_assessment: Type.String(),
|
|
53
75
|
verification_remaining: Type.String(),
|
|
54
76
|
stop_review_loop: Type.Boolean(),
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ReviewConvergenceSummary } from "./review-convergence.js";
|
|
2
|
+
|
|
1
3
|
export const DEFAULT_MAX_TURNS = 10;
|
|
2
4
|
// Goal Runner runs three independent reviewer personas; two approvals form a majority.
|
|
3
5
|
export const DEFAULT_REVIEW_QUORUM = 2;
|
|
@@ -14,10 +16,23 @@ export type WorkReceipt = {
|
|
|
14
16
|
readonly summary: string;
|
|
15
17
|
};
|
|
16
18
|
|
|
19
|
+
export type ObjectiveAlignment =
|
|
20
|
+
| "required_by_objective"
|
|
21
|
+
| "consistent_with_objective"
|
|
22
|
+
| "beyond_objective"
|
|
23
|
+
| "contradicts_objective";
|
|
24
|
+
|
|
25
|
+
export type RequirementTraceability = {
|
|
26
|
+
readonly requirement: string;
|
|
27
|
+
readonly status: "proven" | "contradicted" | "missing" | "unverified";
|
|
28
|
+
readonly evidence: string;
|
|
29
|
+
};
|
|
30
|
+
|
|
17
31
|
export type ReviewFinding = {
|
|
18
32
|
readonly title: string;
|
|
19
33
|
readonly body: string;
|
|
20
34
|
readonly confidence_score: number;
|
|
35
|
+
readonly objective_alignment: ObjectiveAlignment;
|
|
21
36
|
readonly priority?: number | null;
|
|
22
37
|
readonly code_location: {
|
|
23
38
|
readonly absolute_file_path: string;
|
|
@@ -44,6 +59,7 @@ export type ReviewDecision = {
|
|
|
44
59
|
readonly overall_explanation: string;
|
|
45
60
|
readonly overall_confidence_score: number;
|
|
46
61
|
readonly goal_oracle_satisfied: boolean;
|
|
62
|
+
readonly requirements_traceability: readonly RequirementTraceability[];
|
|
47
63
|
readonly receipt_assessment: string;
|
|
48
64
|
readonly verification_remaining: string;
|
|
49
65
|
readonly stop_review_loop: boolean;
|
|
@@ -60,6 +76,10 @@ export type ReviewRecord = ReviewDecision & {
|
|
|
60
76
|
readonly turn: number;
|
|
61
77
|
readonly reviewer: string;
|
|
62
78
|
readonly artifact_path: string;
|
|
79
|
+
readonly parsed: boolean;
|
|
80
|
+
readonly approved: boolean;
|
|
81
|
+
readonly parse_diagnostics: readonly string[];
|
|
82
|
+
readonly convergence_decision: ReviewConvergenceSummary;
|
|
63
83
|
};
|
|
64
84
|
|
|
65
85
|
export type BlockerObservation = {
|
|
@@ -68,7 +88,7 @@ export type BlockerObservation = {
|
|
|
68
88
|
readonly reviewers: readonly string[];
|
|
69
89
|
};
|
|
70
90
|
|
|
71
|
-
export type ReducerDecision = {
|
|
91
|
+
export type ReducerDecision = ReviewConvergenceSummary & {
|
|
72
92
|
readonly turn: number;
|
|
73
93
|
readonly decision: "complete" | "continue" | "blocked" | "needs_human";
|
|
74
94
|
readonly reason: string;
|
|
@@ -93,6 +113,7 @@ export type GoalLifecycleEvent = {
|
|
|
93
113
|
export type GoalLedger = {
|
|
94
114
|
readonly goal_id: string;
|
|
95
115
|
readonly objective: string;
|
|
116
|
+
readonly acceptance_criteria: string;
|
|
96
117
|
status: GoalStatus;
|
|
97
118
|
turns: number;
|
|
98
119
|
readonly created_at: string;
|
|
@@ -112,8 +133,10 @@ export type ReducerOutcome = {
|
|
|
112
133
|
|
|
113
134
|
export type GoalWorkflowInputs = {
|
|
114
135
|
readonly objective: string;
|
|
136
|
+
readonly acceptance_criteria?: string;
|
|
115
137
|
readonly max_turns: number;
|
|
116
138
|
readonly base_branch: string;
|
|
139
|
+
readonly git_worktree_dir: string;
|
|
117
140
|
readonly create_pr: boolean;
|
|
118
141
|
};
|
|
119
142
|
|
|
@@ -123,6 +146,7 @@ export type GoalWorkflowOutputs = {
|
|
|
123
146
|
readonly approved?: boolean;
|
|
124
147
|
readonly goal_id?: string;
|
|
125
148
|
readonly objective?: string;
|
|
149
|
+
readonly acceptance_criteria?: string;
|
|
126
150
|
readonly ledger_path?: string;
|
|
127
151
|
readonly turns_completed?: number;
|
|
128
152
|
readonly iterations_completed?: number;
|
|
@@ -11,15 +11,19 @@ export type GoalWorkflowReceipt = {
|
|
|
11
11
|
|
|
12
12
|
export type GoalWorkflowInputs = WorkflowInputValues & {
|
|
13
13
|
readonly objective: string;
|
|
14
|
+
readonly acceptance_criteria?: string;
|
|
14
15
|
readonly max_turns: number;
|
|
15
16
|
readonly base_branch: string;
|
|
17
|
+
readonly git_worktree_dir: string;
|
|
16
18
|
readonly create_pr: boolean;
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
export type GoalWorkflowRunInputs = WorkflowInputValues & {
|
|
20
22
|
readonly objective: string;
|
|
23
|
+
readonly acceptance_criteria?: string;
|
|
21
24
|
readonly max_turns?: number;
|
|
22
25
|
readonly base_branch?: string;
|
|
26
|
+
readonly git_worktree_dir?: string;
|
|
23
27
|
readonly create_pr?: boolean;
|
|
24
28
|
};
|
|
25
29
|
|
|
@@ -29,6 +33,7 @@ export type GoalWorkflowOutputs = WorkflowOutputValues & {
|
|
|
29
33
|
readonly approved?: boolean;
|
|
30
34
|
readonly goal_id?: string;
|
|
31
35
|
readonly objective?: string;
|
|
36
|
+
readonly acceptance_criteria?: string;
|
|
32
37
|
readonly ledger_path?: string;
|
|
33
38
|
readonly turns_completed?: number;
|
|
34
39
|
readonly iterations_completed?: number;
|
|
@@ -13,9 +13,10 @@ import { DEFAULT_MAX_TURNS } from "./goal-types.js";
|
|
|
13
13
|
|
|
14
14
|
export default workflow({
|
|
15
15
|
name: "goal",
|
|
16
|
-
description: "Goal Runner workflow with bounded LM turns, ledger artifacts, parallel reviewers, and reducer-gated completion.",
|
|
16
|
+
description: "Goal Runner workflow with bounded LM turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract.",
|
|
17
17
|
inputs: {
|
|
18
|
-
objective: Type.String({ description: "The objective for
|
|
18
|
+
objective: Type.String({ description: "The objective or delta for this Goal Runner workflow run." }),
|
|
19
|
+
acceptance_criteria: Type.Optional(Type.String({ description: "Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here." })),
|
|
19
20
|
max_turns: Type.Number({
|
|
20
21
|
default: DEFAULT_MAX_TURNS,
|
|
21
22
|
description: "Maximum worker/review turns before Goal Runner stops as needs_human.",
|
|
@@ -24,6 +25,11 @@ export default workflow({
|
|
|
24
25
|
default: "origin/main",
|
|
25
26
|
description: "Optional branch reviewers compare the current code delta against (default origin/main).",
|
|
26
27
|
}),
|
|
28
|
+
git_worktree_dir: Type.String({
|
|
29
|
+
default: "",
|
|
30
|
+
description:
|
|
31
|
+
"Optional Git worktree path. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.",
|
|
32
|
+
}),
|
|
27
33
|
create_pr: Type.Boolean({
|
|
28
34
|
default: false,
|
|
29
35
|
description:
|
|
@@ -39,6 +45,7 @@ export default workflow({
|
|
|
39
45
|
approved: Type.Optional(Type.Boolean({ description: "Whether the reducer reached complete." })),
|
|
40
46
|
goal_id: Type.Optional(Type.String({ description: "Per-run goal identifier stored in the ledger." })),
|
|
41
47
|
objective: Type.Optional(Type.String({ description: "Raw goal objective used by the run." })),
|
|
48
|
+
acceptance_criteria: Type.Optional(Type.String({ description: "Immutable acceptance criteria used by the run." })),
|
|
42
49
|
ledger_path: Type.Optional(Type.String({ description: "OS-temp path to goal-ledger.json with receipts, reviewer decisions, blockers, and lifecycle events." })),
|
|
43
50
|
turns_completed: Type.Optional(Type.Number({ description: "Worker/review turns completed." })),
|
|
44
51
|
iterations_completed: Type.Optional(Type.Number({ description: "Worker/review turns completed, retained for status summaries." })),
|
|
@@ -53,6 +60,10 @@ export default workflow({
|
|
|
53
60
|
review_report_path: Type.Optional(Type.String({ description: "JSON artifact path for the latest reviewer decision round." })),
|
|
54
61
|
pr_report: Type.Optional(Type.String({ description: "Pull-request report emitted only when create_pr=true, Goal reaches complete, and the final pull-request stage runs." })),
|
|
55
62
|
},
|
|
63
|
+
worktreeFromInputs: {
|
|
64
|
+
gitWorktreeDir: "git_worktree_dir",
|
|
65
|
+
baseBranch: "base_branch",
|
|
66
|
+
},
|
|
56
67
|
run: async (ctx) => {
|
|
57
68
|
const workflowCtx = ctx;
|
|
58
69
|
const workflowStartCwd = workflowCtx.cwd ?? process.cwd();
|
|
@@ -37,14 +37,18 @@ export type GoalWorkflowReceipt = {
|
|
|
37
37
|
};
|
|
38
38
|
export type GoalWorkflowInputs = WorkflowInputValues & {
|
|
39
39
|
readonly objective: string;
|
|
40
|
+
readonly acceptance_criteria?: string;
|
|
40
41
|
readonly max_turns: number;
|
|
41
42
|
readonly base_branch: string;
|
|
43
|
+
readonly git_worktree_dir: string;
|
|
42
44
|
readonly create_pr: boolean;
|
|
43
45
|
};
|
|
44
46
|
export type GoalWorkflowRunInputs = WorkflowInputValues & {
|
|
45
47
|
readonly objective: string;
|
|
48
|
+
readonly acceptance_criteria?: string;
|
|
46
49
|
readonly max_turns?: number;
|
|
47
50
|
readonly base_branch?: string;
|
|
51
|
+
readonly git_worktree_dir?: string;
|
|
48
52
|
readonly create_pr?: boolean;
|
|
49
53
|
};
|
|
50
54
|
export type GoalWorkflowOutputs = WorkflowOutputValues & {
|
|
@@ -53,6 +57,7 @@ export type GoalWorkflowOutputs = WorkflowOutputValues & {
|
|
|
53
57
|
readonly approved?: boolean;
|
|
54
58
|
readonly goal_id?: string;
|
|
55
59
|
readonly objective?: string;
|
|
60
|
+
readonly acceptance_criteria?: string;
|
|
56
61
|
readonly ledger_path?: string;
|
|
57
62
|
readonly turns_completed?: number;
|
|
58
63
|
readonly iterations_completed?: number;
|
|
@@ -70,6 +75,7 @@ export type GoalWorkflowDefinition = WorkflowDefinition<
|
|
|
70
75
|
|
|
71
76
|
export type RalphWorkflowInputs = WorkflowInputValues & {
|
|
72
77
|
readonly prompt: string;
|
|
78
|
+
readonly acceptance_criteria?: string;
|
|
73
79
|
readonly max_loops: number;
|
|
74
80
|
readonly base_branch: string;
|
|
75
81
|
readonly git_worktree_dir: string;
|
|
@@ -77,6 +83,7 @@ export type RalphWorkflowInputs = WorkflowInputValues & {
|
|
|
77
83
|
};
|
|
78
84
|
export type RalphWorkflowRunInputs = WorkflowInputValues & {
|
|
79
85
|
readonly prompt: string;
|
|
86
|
+
readonly acceptance_criteria?: string;
|
|
80
87
|
readonly max_loops?: number;
|
|
81
88
|
readonly base_branch?: string;
|
|
82
89
|
readonly git_worktree_dir?: string;
|
|
@@ -89,6 +96,7 @@ export type RalphWorkflowOutputs = WorkflowOutputValues & {
|
|
|
89
96
|
readonly research?: string;
|
|
90
97
|
readonly research_path?: string;
|
|
91
98
|
readonly implementation_notes_path?: string;
|
|
99
|
+
readonly qa_video_path?: string;
|
|
92
100
|
readonly pr_report?: string;
|
|
93
101
|
readonly approved?: boolean;
|
|
94
102
|
readonly iterations_completed?: number;
|