@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
|
@@ -78,14 +78,25 @@ export async function runOpenClaudeDesignWorkflow(ctx: OpenClaudeDesignContext):
|
|
|
78
78
|
// strictly dominated in Atomic's benchmark (see ralph-models.ts). Opus stays
|
|
79
79
|
// at :xhigh here — visual quality, not $/task, is the objective for design.
|
|
80
80
|
const designModelConfig = {
|
|
81
|
-
model: "anthropic/claude-fable-5:
|
|
81
|
+
model: "anthropic/claude-fable-5:high",
|
|
82
82
|
fallbackModels: [
|
|
83
|
-
"github-copilot/claude-opus-4.8 (1m):
|
|
84
|
-
"anthropic/claude-opus-4-8:
|
|
83
|
+
"github-copilot/claude-opus-4.8 (1m):high",
|
|
84
|
+
"anthropic/claude-opus-4-8:high",
|
|
85
|
+
"cursor/claude-fable-5:high",
|
|
86
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
87
|
+
"openai-codex/gpt-5.6-sol:xhigh",
|
|
88
|
+
"github-copilot/gpt-5.6-sol:xhigh",
|
|
89
|
+
"openai/gpt-5.6-sol:xhigh",
|
|
90
|
+
"cursor/gpt-5.6-sol:xhigh",
|
|
91
|
+
"cursor/grok-4.5",
|
|
85
92
|
"zai/glm-5.2:xhigh",
|
|
86
93
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
87
|
-
"
|
|
88
|
-
"openrouter/anthropic/claude-
|
|
94
|
+
"cursor/glm-5.2",
|
|
95
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
96
|
+
"openrouter/anthropic/claude-opus-4-8:high",
|
|
97
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
98
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
99
|
+
"openrouter/x-ai/grok-4.5",
|
|
89
100
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
90
101
|
],
|
|
91
102
|
};
|
|
@@ -3,29 +3,45 @@ import { tmpdir } from "node:os";
|
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { Type } from "typebox";
|
|
5
5
|
import type { WorkflowTaskResult } from "../src/shared/types.js";
|
|
6
|
-
import { E2E_VERIFICATION_GUIDANCE } from "./shared-prompts.js";
|
|
6
|
+
import { E2E_VERIFICATION_GUIDANCE, LITERAL_OBJECTIVE_CONTRACT } from "./shared-prompts.js";
|
|
7
7
|
import type { ReviewDecision } from "./ralph-review-gate.js";
|
|
8
|
+
import { reviewDecisionApproved } from "./ralph-review-gate.js";
|
|
9
|
+
import {
|
|
10
|
+
parseFailureDiagnostics,
|
|
11
|
+
finalActionRemaining,
|
|
12
|
+
reviewerFailureText,
|
|
13
|
+
summarizeReviewConvergence,
|
|
14
|
+
type ParsedReviewDecision,
|
|
15
|
+
type ReviewConvergenceSummary,
|
|
16
|
+
} from "./review-convergence.js";
|
|
17
|
+
|
|
8
18
|
|
|
9
19
|
export const DEFAULT_MAX_LOOPS = 10;
|
|
10
20
|
const DEFAULT_RESEARCH_DIR = "research";
|
|
11
21
|
const IMPLEMENTATION_NOTES_FILENAME = "implementation-notes.md";
|
|
12
22
|
const QA_E2E_VIDEO_FILENAME = "qa-e2e-evidence.webm";
|
|
13
23
|
const MAX_RESEARCH_SLUG_LENGTH = 80;
|
|
14
|
-
// Reviewer fan-out launches
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
24
|
+
// Reviewer fan-out launches two independent reviewers; the loop stops only when
|
|
25
|
+
// both reviewers independently approve. Approval is severity-aware: a reviewer
|
|
26
|
+
// approves when it judged the patch correct, reported no reviewer_error, and
|
|
27
|
+
// filed no *blocking* (P0/P1/P2) finding. P3 nice-to-haves no longer keep the
|
|
18
28
|
// loop iterating, so a single low-priority nit (or a placeholder finding) can no
|
|
19
29
|
// longer strand an otherwise-approved patch. Requiring unanimous approval still
|
|
20
|
-
// means a blocking finding from
|
|
30
|
+
// means a blocking finding from either reviewer keeps the loop going. See
|
|
21
31
|
// ./ralph-review-gate.ts for the gate types and decision logic.
|
|
22
|
-
export const REVIEWER_COUNT =
|
|
32
|
+
export const REVIEWER_COUNT = 2;
|
|
23
33
|
|
|
24
34
|
const reviewFindingSchema = Type.Object(
|
|
25
35
|
{
|
|
26
36
|
title: Type.String(),
|
|
27
37
|
body: Type.String(),
|
|
28
38
|
confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
|
|
39
|
+
objective_alignment: Type.Union([
|
|
40
|
+
Type.Literal("required_by_objective"),
|
|
41
|
+
Type.Literal("consistent_with_objective"),
|
|
42
|
+
Type.Literal("beyond_objective"),
|
|
43
|
+
Type.Literal("contradicts_objective"),
|
|
44
|
+
]),
|
|
29
45
|
priority: Type.Optional(
|
|
30
46
|
Type.Union([Type.Integer({ minimum: 0, maximum: 3 }), Type.Null()]),
|
|
31
47
|
),
|
|
@@ -46,6 +62,20 @@ const reviewFindingSchema = Type.Object(
|
|
|
46
62
|
{ additionalProperties: false },
|
|
47
63
|
);
|
|
48
64
|
|
|
65
|
+
const requirementsTraceabilitySchema = Type.Object(
|
|
66
|
+
{
|
|
67
|
+
requirement: Type.String(),
|
|
68
|
+
status: Type.Union([
|
|
69
|
+
Type.Literal("proven"),
|
|
70
|
+
Type.Literal("contradicted"),
|
|
71
|
+
Type.Literal("missing"),
|
|
72
|
+
Type.Literal("unverified"),
|
|
73
|
+
]),
|
|
74
|
+
evidence: Type.String(),
|
|
75
|
+
},
|
|
76
|
+
{ additionalProperties: false },
|
|
77
|
+
);
|
|
78
|
+
|
|
49
79
|
const reviewerErrorSchema = Type.Object(
|
|
50
80
|
{
|
|
51
81
|
kind: Type.Union([
|
|
@@ -69,6 +99,7 @@ export const reviewDecisionSchema = Type.Object(
|
|
|
69
99
|
]),
|
|
70
100
|
overall_explanation: Type.String(),
|
|
71
101
|
overall_confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
|
|
102
|
+
requirements_traceability: Type.Array(requirementsTraceabilitySchema),
|
|
72
103
|
stop_review_loop: Type.Boolean(),
|
|
73
104
|
reviewer_error: Type.Optional(
|
|
74
105
|
Type.Union([Type.Null(), reviewerErrorSchema]),
|
|
@@ -170,6 +201,7 @@ export function renderQaE2eVideoGuidance(qaVideoPath: string): string {
|
|
|
170
201
|
`Record that QA E2E pass as a reviewable video so the user can watch the feature working. After \`playwright-cli open\`, start recording with \`playwright-cli video-start ${qaVideoPath}\`, annotate the scenario with \`playwright-cli video-chapter\` / \`playwright-cli video-show-actions\`, exercise the full user scenario, then \`playwright-cli video-stop\`. Write the video to exactly this path and overwrite any prior recording so it always reflects the latest implemented state: ${qaVideoPath}`,
|
|
171
202
|
`After recording, add the video to the implementation notes as a reference: include a \`## QA E2E Video\` entry with the absolute path ${qaVideoPath} and a one-line description of the proven scenario, so the user can review the proof when this stage finishes.`,
|
|
172
203
|
"If the change has no user-visible UI scenario (pure refactor, docs, infra, or non-UI library code), do not fabricate a video; record in the implementation notes that no QA E2E video applies and why.",
|
|
204
|
+
"Assume credentials, auth, and browser environment access exist until a concrete attempt proves otherwise. Before declaring the QA E2E video impractical, check credential/auth state with non-destructive commands, attempt to launch the app/flow, and record the exact command(s) plus observed failure output.",
|
|
173
205
|
"If `playwright-cli` or a browser runtime is unavailable, install it once per the skill (`npm install -g @playwright/cli@latest`, then `npx playwright install chromium` for a missing browser executable). If it still cannot run, record the smallest validation actually performed and note that the QA E2E video could not be produced — never claim a video exists when it does not.",
|
|
174
206
|
].join("\n");
|
|
175
207
|
}
|
|
@@ -178,6 +210,43 @@ export function reviewDecisionFromResult(result: WorkflowTaskResult): ReviewDeci
|
|
|
178
210
|
return result.structured as ReviewDecision | undefined;
|
|
179
211
|
}
|
|
180
212
|
|
|
213
|
+
export function parsedReviewDecisionFromResult(
|
|
214
|
+
result: WorkflowTaskResult,
|
|
215
|
+
reviewer: string,
|
|
216
|
+
): ParsedReviewDecision<ReviewDecision> {
|
|
217
|
+
const parsed = reviewDecisionFromResult(result);
|
|
218
|
+
if (parsed !== undefined) {
|
|
219
|
+
return { decision: parsed, parsed: true, diagnostics: [] };
|
|
220
|
+
}
|
|
221
|
+
const diagnostics = parseFailureDiagnostics(reviewer, result.text);
|
|
222
|
+
return {
|
|
223
|
+
decision: reviewerErrorDecision(diagnostics.join("\n")),
|
|
224
|
+
parsed: false,
|
|
225
|
+
diagnostics,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export function ralphReviewConvergence(args: {
|
|
230
|
+
readonly decision: ReviewDecision;
|
|
231
|
+
readonly parsed: boolean;
|
|
232
|
+
readonly diagnostics: readonly string[];
|
|
233
|
+
readonly allowFinalActionRemaining: boolean;
|
|
234
|
+
}): ReviewConvergenceSummary {
|
|
235
|
+
const approved = reviewDecisionApproved(args.decision, {
|
|
236
|
+
allowFinalActionRemaining: args.allowFinalActionRemaining,
|
|
237
|
+
});
|
|
238
|
+
const hasFinalActionRemaining = args.allowFinalActionRemaining &&
|
|
239
|
+
finalActionRemaining(args.decision.requirements_traceability);
|
|
240
|
+
return summarizeReviewConvergence({
|
|
241
|
+
parsed: args.parsed,
|
|
242
|
+
approved,
|
|
243
|
+
stopReviewLoop: args.decision.stop_review_loop,
|
|
244
|
+
nextAction: approved && hasFinalActionRemaining ? "pull-request" : approved ? "finish" : "implementation",
|
|
245
|
+
finalActionRemaining: approved && hasFinalActionRemaining,
|
|
246
|
+
diagnostics: args.diagnostics,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
|
|
181
250
|
export function reviewerErrorDecision(error: string): ReviewDecision {
|
|
182
251
|
return {
|
|
183
252
|
findings: [],
|
|
@@ -186,6 +255,7 @@ export function reviewerErrorDecision(error: string): ReviewDecision {
|
|
|
186
255
|
"Reviewer execution failed, so the review gate cannot safely approve the current repository state.",
|
|
187
256
|
overall_confidence_score: 0,
|
|
188
257
|
stop_review_loop: false,
|
|
258
|
+
requirements_traceability: [],
|
|
189
259
|
reviewer_error: {
|
|
190
260
|
kind: "reviewer_failure",
|
|
191
261
|
message: error,
|
|
@@ -196,14 +266,12 @@ export function reviewerErrorDecision(error: string): ReviewDecision {
|
|
|
196
266
|
}
|
|
197
267
|
|
|
198
268
|
export function reviewerErrorResult(
|
|
199
|
-
error:
|
|
269
|
+
error: unknown,
|
|
200
270
|
): WorkflowTaskResult {
|
|
201
|
-
const structured = reviewerErrorDecision(error);
|
|
202
271
|
return {
|
|
203
272
|
name: "reviewer-error",
|
|
204
273
|
stageName: "reviewer-error",
|
|
205
|
-
text:
|
|
206
|
-
structured,
|
|
274
|
+
text: reviewerFailureText(error),
|
|
207
275
|
};
|
|
208
276
|
}
|
|
209
277
|
|
|
@@ -218,14 +286,17 @@ export function artifactSafeName(value: string): string {
|
|
|
218
286
|
type ReviewArtifact = {
|
|
219
287
|
readonly reviewer: string;
|
|
220
288
|
readonly decision: ReviewDecision;
|
|
289
|
+
readonly convergence_decision: ReviewConvergenceSummary;
|
|
221
290
|
readonly raw_text: string;
|
|
222
291
|
};
|
|
223
292
|
|
|
224
293
|
type ReviewRoundArtifact = {
|
|
294
|
+
readonly convergence_decision: ReviewConvergenceSummary;
|
|
225
295
|
readonly reviews: readonly {
|
|
226
296
|
readonly reviewer: string;
|
|
227
297
|
readonly artifact_path: string;
|
|
228
298
|
readonly decision: ReviewDecision;
|
|
299
|
+
readonly convergence_decision: ReviewConvergenceSummary;
|
|
229
300
|
}[];
|
|
230
301
|
};
|
|
231
302
|
|
|
@@ -258,6 +329,7 @@ export function forkContinuationOptions(
|
|
|
258
329
|
|
|
259
330
|
export function renderResearchPromptRefinementPrompt(args: {
|
|
260
331
|
readonly request: string;
|
|
332
|
+
readonly acceptanceCriteria: string;
|
|
261
333
|
readonly workflowCwdContext: PromptSection;
|
|
262
334
|
readonly latestReviewReportPath: string | undefined;
|
|
263
335
|
}): string {
|
|
@@ -265,6 +337,9 @@ export function renderResearchPromptRefinementPrompt(args: {
|
|
|
265
337
|
return [
|
|
266
338
|
basePrompt,
|
|
267
339
|
taggedPrompt([
|
|
340
|
+
["objective", `Research the full requested task: ${args.request}`],
|
|
341
|
+
["acceptance_criteria", args.acceptanceCriteria],
|
|
342
|
+
["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
|
|
268
343
|
args.workflowCwdContext,
|
|
269
344
|
[
|
|
270
345
|
"review_findings",
|
|
@@ -272,7 +347,7 @@ export function renderResearchPromptRefinementPrompt(args: {
|
|
|
272
347
|
? "No prior review artifact is available."
|
|
273
348
|
: [
|
|
274
349
|
`Latest review round artifact: ${args.latestReviewReportPath}`,
|
|
275
|
-
"Read this JSON artifact and include unresolved reviewer findings in the transformed research question
|
|
350
|
+
"Read this JSON artifact and include unresolved reviewer findings in the transformed research question only when they are consistent with the literal objective and acceptance criteria.",
|
|
276
351
|
].join("\n"),
|
|
277
352
|
],
|
|
278
353
|
[
|
|
@@ -285,6 +360,8 @@ export function renderResearchPromptRefinementPrompt(args: {
|
|
|
285
360
|
|
|
286
361
|
export function renderResearchPrompt(args: {
|
|
287
362
|
readonly transformedResearchQuestion: string;
|
|
363
|
+
readonly prompt: string;
|
|
364
|
+
readonly acceptanceCriteria: string;
|
|
288
365
|
readonly workflowCwdContext: PromptSection;
|
|
289
366
|
readonly latestReviewReportPath: string | undefined;
|
|
290
367
|
readonly researchPath: string;
|
|
@@ -293,6 +370,9 @@ export function renderResearchPrompt(args: {
|
|
|
293
370
|
return [
|
|
294
371
|
basePrompt,
|
|
295
372
|
taggedPrompt([
|
|
373
|
+
["objective", `Research implementation requirements for: ${args.prompt}`],
|
|
374
|
+
["acceptance_criteria", args.acceptanceCriteria],
|
|
375
|
+
["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
|
|
296
376
|
args.workflowCwdContext,
|
|
297
377
|
[
|
|
298
378
|
"review_findings",
|
|
@@ -318,6 +398,7 @@ export function renderResearchPrompt(args: {
|
|
|
318
398
|
|
|
319
399
|
export function renderForkedOrchestratorPrompt(args: {
|
|
320
400
|
readonly prompt: string;
|
|
401
|
+
readonly acceptanceCriteria: string;
|
|
321
402
|
readonly workflowCwdContext: PromptSection;
|
|
322
403
|
readonly researchPath: string;
|
|
323
404
|
readonly implementationNotesPath: string;
|
|
@@ -331,6 +412,8 @@ export function renderForkedOrchestratorPrompt(args: {
|
|
|
331
412
|
].join("\n"),
|
|
332
413
|
],
|
|
333
414
|
["objective", `Implement the full requested task: ${args.prompt}`],
|
|
415
|
+
["acceptance_criteria", args.acceptanceCriteria],
|
|
416
|
+
["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
|
|
334
417
|
args.workflowCwdContext,
|
|
335
418
|
[
|
|
336
419
|
"research",
|
|
@@ -351,10 +434,10 @@ export function renderForkedOrchestratorPrompt(args: {
|
|
|
351
434
|
[
|
|
352
435
|
"output_format",
|
|
353
436
|
[
|
|
354
|
-
"After
|
|
437
|
+
"After the implementation work is complete, return Markdown with headings:",
|
|
355
438
|
"1. Research file — the path you read",
|
|
356
|
-
"2. Delegations performed — subagents
|
|
357
|
-
"3. Changes made — concrete changes
|
|
439
|
+
"2. Delegations performed — subagents used and what each completed, or none when direct work was sufficient",
|
|
440
|
+
"3. Changes made — concrete completed changes, not intentions",
|
|
358
441
|
"4. Files touched",
|
|
359
442
|
"5. Validation run / recommended",
|
|
360
443
|
"6. Deferred work or blockers",
|
|
@@ -367,6 +450,7 @@ export function renderForkedOrchestratorPrompt(args: {
|
|
|
367
450
|
|
|
368
451
|
export type RalphInputs = {
|
|
369
452
|
readonly prompt?: string;
|
|
453
|
+
readonly acceptance_criteria?: string;
|
|
370
454
|
readonly max_loops?: number;
|
|
371
455
|
readonly base_branch?: string;
|
|
372
456
|
readonly git_worktree_dir?: string;
|
|
@@ -375,6 +459,7 @@ export type RalphInputs = {
|
|
|
375
459
|
|
|
376
460
|
export type RalphWorkflowOptions = {
|
|
377
461
|
readonly prompt: string;
|
|
462
|
+
readonly acceptanceCriteria: string;
|
|
378
463
|
readonly maxLoops: number;
|
|
379
464
|
readonly comparisonBaseBranch: string;
|
|
380
465
|
readonly workflowStartCwd: string;
|
|
@@ -1,135 +1,167 @@
|
|
|
1
1
|
import { reviewDecisionSchema } from "./ralph-core.js";
|
|
2
2
|
|
|
3
|
-
// Model chains are curated from Atomic's agentic-coding benchmark
|
|
4
|
-
//
|
|
5
|
-
// -
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// -
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// fable-5 xhigh ($13.41/70%).
|
|
14
|
-
// - Dropped as strictly dominated: claude-sonnet-5 (40-54% at $4-26, up to
|
|
15
|
-
// 268 steps), claude-sonnet-4.6 (30%/$5.52), gemini-3.1-pro (12%/$9.48),
|
|
16
|
-
// gemini-3.5-flash (37%/$7.34, 276k output tokens).
|
|
17
|
-
// - claude-opus-4.8 rides at :high — its value point (52%/$4.28); :xhigh
|
|
18
|
-
// doubles the cost for +2pts.
|
|
19
|
-
// - glm-5.2 is reviewer-C's diversity primary only (third model family
|
|
20
|
-
// decorrelates review errors); elsewhere it is a budget fallback. Note:
|
|
21
|
-
// GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
|
|
3
|
+
// Model chains are curated from Atomic's agentic-coding benchmark and the
|
|
4
|
+
// July 2026 frontier refresh:
|
|
5
|
+
// - Critical synthesis/review stages prefer fable-5:xhigh, then gpt-5.5 xhigh
|
|
6
|
+
// variants, openrouter fugu-ultra, long-context opus, and GLM fallbacks.
|
|
7
|
+
// - Research remains on gpt-5.5:medium / fable-5:low for perf-per-dollar.
|
|
8
|
+
// - Reviewer B keeps gpt-5.5:xhigh as an independent frontier family to
|
|
9
|
+
// decorrelate review errors from reviewer A.
|
|
10
|
+
// - Dominated benchmark models stay out of the chains: claude-sonnet-5,
|
|
11
|
+
// claude-sonnet-4.6, gemini-3.1-pro, and gemini-3.5-flash.
|
|
12
|
+
// - GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
|
|
22
13
|
// minimal/low/medium/high to "high" and xhigh to "max" — so chains only use
|
|
23
14
|
// :high (budget tier, 36%/$2.84) or :xhigh (best tier, 44%/$3.92); the
|
|
24
15
|
// openrouter/z-ai mirror maps :xhigh exclusively, so it is always :xhigh.
|
|
25
16
|
|
|
26
17
|
export const promptEngineerModelConfig = {
|
|
27
|
-
model: "
|
|
18
|
+
model: "anthropic/claude-fable-5:high",
|
|
28
19
|
fallbackModels: [
|
|
20
|
+
"openai-codex/gpt-5.6-sol:xhigh",
|
|
21
|
+
"github-copilot/gpt-5.6-sol:xhigh",
|
|
22
|
+
"openai/gpt-5.6-sol:xhigh",
|
|
23
|
+
"openai-codex/gpt-5.5:xhigh",
|
|
29
24
|
"github-copilot/gpt-5.5:xhigh",
|
|
30
25
|
"openai/gpt-5.5:xhigh",
|
|
31
|
-
"anthropic/claude-fable-5:xhigh",
|
|
32
26
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
33
27
|
"anthropic/claude-opus-4-8:high",
|
|
28
|
+
"cursor/claude-fable-5:high",
|
|
29
|
+
"cursor/gpt-5.6-sol:xhigh",
|
|
30
|
+
"cursor/gpt-5.5:high",
|
|
31
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
32
|
+
"cursor/grok-4.5",
|
|
34
33
|
"zai/glm-5.2:xhigh",
|
|
35
34
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
35
|
+
"cursor/glm-5.2",
|
|
36
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
37
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
38
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
36
39
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
37
|
-
"openrouter/anthropic/claude-fable-5:xhigh",
|
|
38
40
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
41
|
+
"openrouter/x-ai/grok-4.5",
|
|
39
42
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
40
43
|
],
|
|
41
44
|
excludedTools: ["ask_user_question"],
|
|
42
45
|
};
|
|
43
46
|
|
|
44
47
|
export const researchModelConfig = {
|
|
45
|
-
model: "openai-codex/gpt-5.
|
|
48
|
+
model: "openai-codex/gpt-5.6-sol:medium",
|
|
46
49
|
fallbackModels: [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
"github-copilot/gpt-5.6-sol:medium",
|
|
51
|
+
"openai/gpt-5.6-sol:medium",
|
|
52
|
+
"openai-codex/gpt-5.5:medium",
|
|
53
|
+
"github-copilot/gpt-5.5:medium",
|
|
54
|
+
"openai/gpt-5.5:medium",
|
|
55
|
+
"anthropic/claude-fable-5:low",
|
|
56
|
+
"github-copilot/claude-opus-4.8 (1m):medium",
|
|
57
|
+
"anthropic/claude-opus-4-8:medium",
|
|
58
|
+
"cursor/gpt-5.6-sol:medium",
|
|
59
|
+
"cursor/gpt-5.5:medium",
|
|
60
|
+
"cursor/claude-fable-5:low",
|
|
61
|
+
"cursor/claude-opus-4-8-thinking:medium",
|
|
62
|
+
"cursor/grok-4.5",
|
|
63
|
+
"zai/glm-5.2:high",
|
|
64
|
+
"zai-coding-cn/glm-5.2:high",
|
|
65
|
+
"cursor/glm-5.2",
|
|
66
|
+
"openrouter/openai/gpt-5.6-sol:medium",
|
|
67
|
+
"openrouter/openai/gpt-5.5:medium",
|
|
68
|
+
"openrouter/anthropic/claude-fable-5:low",
|
|
69
|
+
"openrouter/anthropic/claude-opus-4-8:medium",
|
|
70
|
+
"openrouter/x-ai/grok-4.5",
|
|
71
|
+
"openrouter/z-ai/glm-5.2:high"
|
|
58
72
|
],
|
|
59
73
|
excludedTools: ["ask_user_question"],
|
|
60
74
|
};
|
|
61
75
|
|
|
62
76
|
export const orchestratorModelConfig = {
|
|
63
|
-
model: "openai-codex/gpt-5.
|
|
64
|
-
fallbackModels: [
|
|
65
|
-
"github-copilot/gpt-5.5:medium",
|
|
66
|
-
"openai/gpt-5.5:medium",
|
|
67
|
-
"anthropic/claude-fable-5:low",
|
|
68
|
-
"github-copilot/claude-opus-4.8 (1m):medium",
|
|
69
|
-
"anthropic/claude-opus-4-8:medium",
|
|
70
|
-
"zai/glm-5.2:high",
|
|
71
|
-
"zai-coding-cn/glm-5.2:high",
|
|
72
|
-
"openrouter/openai/gpt-5.5:medium",
|
|
73
|
-
"openrouter/anthropic/claude-fable-5:low",
|
|
74
|
-
"openrouter/anthropic/claude-opus-4-8:medium",
|
|
75
|
-
"openrouter/z-ai/glm-5.2:xhigh"
|
|
76
|
-
],
|
|
77
|
-
excludedTools: ["ask_user_question"],
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const reviewerAModelConfig = {
|
|
81
|
-
model: "anthropic/claude-fable-5:xhigh",
|
|
77
|
+
model: "openai-codex/gpt-5.6-sol:xhigh",
|
|
82
78
|
fallbackModels: [
|
|
79
|
+
"github-copilot/gpt-5.6-sol:xhigh",
|
|
80
|
+
"openai/gpt-5.6-sol:xhigh",
|
|
81
|
+
"anthropic/claude-fable-5:high",
|
|
83
82
|
"openai-codex/gpt-5.5:xhigh",
|
|
84
83
|
"github-copilot/gpt-5.5:xhigh",
|
|
85
84
|
"openai/gpt-5.5:xhigh",
|
|
86
85
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
87
86
|
"anthropic/claude-opus-4-8:high",
|
|
87
|
+
"cursor/gpt-5.6-sol:xhigh",
|
|
88
|
+
"cursor/claude-fable-5:high",
|
|
89
|
+
"cursor/gpt-5.5:high",
|
|
90
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
91
|
+
"cursor/grok-4.5",
|
|
88
92
|
"zai/glm-5.2:xhigh",
|
|
89
93
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
90
|
-
"
|
|
94
|
+
"cursor/glm-5.2",
|
|
95
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
96
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
97
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
91
98
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
92
99
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
100
|
+
"openrouter/x-ai/grok-4.5",
|
|
93
101
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
94
102
|
],
|
|
95
103
|
excludedTools: ["ask_user_question"],
|
|
96
|
-
schema: reviewDecisionSchema,
|
|
97
104
|
};
|
|
98
105
|
|
|
99
|
-
export const
|
|
100
|
-
model: "
|
|
106
|
+
export const reviewerAModelConfig = {
|
|
107
|
+
model: "anthropic/claude-fable-5:high",
|
|
101
108
|
fallbackModels: [
|
|
109
|
+
"openai-codex/gpt-5.6-sol:max",
|
|
110
|
+
"github-copilot/gpt-5.6-sol:max",
|
|
111
|
+
"openai/gpt-5.6-sol:max",
|
|
112
|
+
"openai-codex/gpt-5.5:xhigh",
|
|
102
113
|
"github-copilot/gpt-5.5:xhigh",
|
|
103
114
|
"openai/gpt-5.5:xhigh",
|
|
104
|
-
"anthropic/claude-fable-5:xhigh",
|
|
105
115
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
106
116
|
"anthropic/claude-opus-4-8:high",
|
|
117
|
+
"cursor/claude-fable-5:high",
|
|
118
|
+
"cursor/gpt-5.6-sol:max",
|
|
119
|
+
"cursor/gpt-5.5:high",
|
|
120
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
121
|
+
"cursor/grok-4.5",
|
|
107
122
|
"zai/glm-5.2:xhigh",
|
|
108
123
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
124
|
+
"cursor/glm-5.2",
|
|
125
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
126
|
+
"openrouter/openai/gpt-5.6-sol:max",
|
|
127
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
109
128
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
110
|
-
"openrouter/anthropic/claude-fable-5:xhigh",
|
|
111
129
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
130
|
+
"openrouter/x-ai/grok-4.5",
|
|
112
131
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
113
132
|
],
|
|
114
133
|
excludedTools: ["ask_user_question"],
|
|
115
134
|
schema: reviewDecisionSchema,
|
|
116
135
|
};
|
|
117
136
|
|
|
118
|
-
export const
|
|
119
|
-
model: "
|
|
137
|
+
export const reviewerBModelConfig = {
|
|
138
|
+
model: "openai-codex/gpt-5.6-sol:max",
|
|
120
139
|
fallbackModels: [
|
|
121
|
-
"
|
|
122
|
-
"
|
|
140
|
+
"github-copilot/gpt-5.6-sol:max",
|
|
141
|
+
"openai/gpt-5.6-sol:max",
|
|
123
142
|
"openai-codex/gpt-5.5:xhigh",
|
|
124
143
|
"github-copilot/gpt-5.5:xhigh",
|
|
125
144
|
"openai/gpt-5.5:xhigh",
|
|
126
|
-
"anthropic/claude-fable-5:
|
|
145
|
+
"anthropic/claude-fable-5:high",
|
|
127
146
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
128
147
|
"anthropic/claude-opus-4-8:high",
|
|
148
|
+
"cursor/gpt-5.6-sol:max",
|
|
149
|
+
"cursor/gpt-5.5:high",
|
|
150
|
+
"cursor/claude-fable-5:high",
|
|
151
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
152
|
+
"cursor/grok-4.5",
|
|
153
|
+
"zai/glm-5.2:xhigh",
|
|
154
|
+
"zai-coding-cn/glm-5.2:xhigh",
|
|
155
|
+
"cursor/glm-5.2",
|
|
156
|
+
"openrouter/openai/gpt-5.6-sol:max",
|
|
129
157
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
130
|
-
"openrouter/anthropic/claude-fable-5:
|
|
131
|
-
"openrouter/
|
|
158
|
+
"openrouter/anthropic/claude-fable-5:high",
|
|
159
|
+
"openrouter/sakana/fugu-ultra:high",
|
|
160
|
+
"openrouter/anthropic/claude-opus-4-8:high",
|
|
161
|
+
"openrouter/x-ai/grok-4.5",
|
|
162
|
+
"openrouter/z-ai/glm-5.2:xhigh"
|
|
132
163
|
],
|
|
133
164
|
excludedTools: ["ask_user_question"],
|
|
134
165
|
schema: reviewDecisionSchema,
|
|
135
166
|
};
|
|
167
|
+
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { traceabilityProvenExceptFinalAction } from "./review-convergence.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Review-gate severity logic for the builtin `ralph` workflow.
|
|
3
5
|
*
|
|
@@ -23,10 +25,17 @@
|
|
|
23
25
|
* depend on the model correctly deriving that flag.
|
|
24
26
|
*/
|
|
25
27
|
|
|
28
|
+
export type ObjectiveAlignment =
|
|
29
|
+
| "required_by_objective"
|
|
30
|
+
| "consistent_with_objective"
|
|
31
|
+
| "beyond_objective"
|
|
32
|
+
| "contradicts_objective";
|
|
33
|
+
|
|
26
34
|
export type ReviewFinding = {
|
|
27
35
|
readonly title: string;
|
|
28
36
|
readonly body: string;
|
|
29
37
|
readonly confidence_score: number;
|
|
38
|
+
readonly objective_alignment: ObjectiveAlignment;
|
|
30
39
|
readonly priority?: number | null;
|
|
31
40
|
readonly code_location: {
|
|
32
41
|
readonly absolute_file_path: string;
|
|
@@ -46,12 +55,19 @@ export type ReviewerError = {
|
|
|
46
55
|
readonly message: string;
|
|
47
56
|
readonly attempted_recovery: string;
|
|
48
57
|
};
|
|
58
|
+
export type RequirementTraceability = {
|
|
59
|
+
readonly requirement: string;
|
|
60
|
+
readonly status: "proven" | "contradicted" | "missing" | "unverified";
|
|
61
|
+
readonly evidence: string;
|
|
62
|
+
};
|
|
63
|
+
|
|
49
64
|
|
|
50
65
|
export type ReviewDecision = {
|
|
51
66
|
readonly findings: readonly ReviewFinding[];
|
|
52
67
|
readonly overall_correctness: "patch is correct" | "patch is incorrect";
|
|
53
68
|
readonly overall_explanation: string;
|
|
54
69
|
readonly overall_confidence_score: number;
|
|
70
|
+
readonly requirements_traceability: readonly RequirementTraceability[];
|
|
55
71
|
readonly stop_review_loop: boolean;
|
|
56
72
|
readonly reviewer_error?: ReviewerError | null;
|
|
57
73
|
};
|
|
@@ -69,6 +85,13 @@ export const MAX_BLOCKING_PRIORITY = 2;
|
|
|
69
85
|
* approves.
|
|
70
86
|
*/
|
|
71
87
|
export function isBlockingFinding(finding: ReviewFinding): boolean {
|
|
88
|
+
const alignment = finding.objective_alignment;
|
|
89
|
+
if (alignment === "beyond_objective" || alignment === "contradicts_objective") {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (alignment !== "required_by_objective" && alignment !== "consistent_with_objective") {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
72
95
|
const priority = finding.priority;
|
|
73
96
|
if (priority === undefined || priority === null) return true;
|
|
74
97
|
return priority <= MAX_BLOCKING_PRIORITY;
|
|
@@ -76,14 +99,23 @@ export function isBlockingFinding(finding: ReviewFinding): boolean {
|
|
|
76
99
|
|
|
77
100
|
/**
|
|
78
101
|
* A single reviewer approves (would stop the loop) when it judged the patch
|
|
79
|
-
* correct, surfaced no reviewer execution error,
|
|
80
|
-
*
|
|
81
|
-
*
|
|
102
|
+
* correct, surfaced no reviewer execution error, filed no blocking (P0/P1/P2)
|
|
103
|
+
* finding, and supplied a non-empty requirement traceability map where every
|
|
104
|
+
* explicit requirement is proven. P3 nice-to-haves and placeholder/dummy
|
|
105
|
+
* findings do not block approval.
|
|
82
106
|
*/
|
|
83
|
-
export function reviewDecisionApproved(
|
|
107
|
+
export function reviewDecisionApproved(
|
|
108
|
+
decision: ReviewDecision,
|
|
109
|
+
options: { readonly allowFinalActionRemaining?: boolean } = {},
|
|
110
|
+
): boolean {
|
|
111
|
+
const traceability = decision.requirements_traceability;
|
|
84
112
|
return (
|
|
85
113
|
decision.overall_correctness === "patch is correct" &&
|
|
86
114
|
decision.reviewer_error == null &&
|
|
87
|
-
!decision.findings.some(isBlockingFinding)
|
|
115
|
+
!decision.findings.some(isBlockingFinding) &&
|
|
116
|
+
traceabilityProvenExceptFinalAction({
|
|
117
|
+
traceability,
|
|
118
|
+
allowFinalActionRemaining: options.allowFinalActionRemaining === true,
|
|
119
|
+
})
|
|
88
120
|
);
|
|
89
121
|
}
|