@bastani/atomic 0.9.5-alpha.9 → 0.9.5
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 +106 -0
- package/README.md +2 -2
- package/dist/builtin/cursor/CHANGELOG.md +12 -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 +37 -0
- package/dist/builtin/intercom/README.md +4 -2
- package/dist/builtin/intercom/broker/broker.ts +6 -114
- 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/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/foreground-detach-handoff.ts +136 -0
- package/dist/builtin/intercom/index-heavy.ts +49 -53
- package/dist/builtin/intercom/index.ts +278 -262
- 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 +3 -6
- package/dist/builtin/intercom/reply-routing.ts +17 -0
- package/dist/builtin/intercom/subagent-relay.ts +58 -12
- package/dist/builtin/intercom/types.ts +3 -3
- package/dist/builtin/mcp/CHANGELOG.md +27 -0
- package/dist/builtin/mcp/OAUTH.md +1 -0
- package/dist/builtin/mcp/README.md +4 -0
- 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 +6 -239
- package/dist/builtin/mcp/host-html-template.ts +4 -2
- package/dist/builtin/mcp/index.ts +258 -250
- package/dist/builtin/mcp/init.ts +96 -87
- 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 +21 -6
- 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 +49 -19
- package/dist/builtin/mcp/proxy-modes.ts +3 -3
- package/dist/builtin/mcp/session-cleanup-barrier.ts +43 -0
- package/dist/builtin/mcp/state-lease.ts +12 -0
- package/dist/builtin/mcp/ui-server.ts +8 -8
- package/dist/builtin/mcp/ui-session.ts +9 -18
- package/dist/builtin/subagents/CHANGELOG.md +66 -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 +287 -307
- 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/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 +3 -2
- 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 +172 -238
- 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 +17 -13
- 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 +53 -44
- 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 +27 -11
- 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-result.ts +7 -0
- package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
- package/dist/builtin/subagents/src/tui/render-widget.ts +128 -89
- package/dist/builtin/web-access/CHANGELOG.md +28 -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 +68 -0
- package/dist/builtin/workflows/README.md +4 -4
- package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +27 -4
- package/dist/builtin/workflows/builtin/goal-runner.ts +47 -26
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +10 -0
- package/dist/builtin/workflows/builtin/ralph-core.ts +9 -9
- package/dist/builtin/workflows/builtin/ralph-models.ts +71 -36
- package/dist/builtin/workflows/builtin/ralph-runner.ts +20 -31
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/durable/stage-primitive.ts +2 -1
- package/dist/builtin/workflows/src/engine/primitives/task.ts +2 -1
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -22
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
- package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -2
- package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -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/resume-continuation.ts +2 -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.ts +5 -2
- 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/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +2 -1
- package/dist/core/agent-session-events.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-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +1 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +1 -1
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +3 -2
- package/dist/core/agent-session-services.js.map +1 -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/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/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 +1 -1
- package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -1
- package/dist/core/compaction/context-compaction-critical.js +2 -2
- package/dist/core/compaction/context-compaction-critical.js.map +1 -1
- 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 +10 -2
- package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -1
- package/dist/core/compaction/context-compaction-eviction.js +196 -146
- package/dist/core/compaction/context-compaction-eviction.js.map +1 -1
- 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-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 +1 -2
- package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
- package/dist/core/compaction/context-transcript-analysis.js +33 -37
- package/dist/core/compaction/context-transcript-analysis.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/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/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.d.ts +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.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/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +2 -2
- 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 +2 -2
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-types.d.ts +1 -1
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.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/main-session.d.ts.map +1 -1
- package/dist/main-session.js +1 -0
- package/dist/main-session.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 +2 -1
- package/dist/modes/interactive/interactive-agent-events.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.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +2 -2
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +8 -3
- package/dist/modes/interactive/interactive-model-routing.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/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/docs/changelog.mdx +19 -0
- package/docs/compaction.md +55 -48
- package/docs/custom-provider.md +18 -5
- package/docs/extensions.md +7 -3
- package/docs/models.md +69 -10
- package/docs/providers.md +1 -1
- package/docs/quickstart.md +11 -7
- package/docs/rpc.md +2 -2
- package/docs/sdk.md +1 -1
- package/docs/settings.md +3 -3
- package/docs/subagents.md +36 -5
- package/docs/tools.md +1 -1
- package/docs/usage.md +4 -2
- package/docs/workflows.md +26 -43
- 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 +48 -51
- package/package.json +7 -7
- 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
|
@@ -37,18 +37,29 @@ export const FILE_ONLY_OUTPUT = "file-only" satisfies WorkflowOutputMode;
|
|
|
37
37
|
export const PLANNER_MODEL_CONFIG = {
|
|
38
38
|
model: "anthropic/claude-fable-5:high",
|
|
39
39
|
fallbackModels: [
|
|
40
|
+
"openai-codex/gpt-5.6-sol:xhigh",
|
|
41
|
+
"github-copilot/gpt-5.6-sol:xhigh",
|
|
42
|
+
"openai/gpt-5.6-sol:xhigh",
|
|
40
43
|
"openai-codex/gpt-5.5:xhigh",
|
|
41
44
|
"github-copilot/gpt-5.5:xhigh",
|
|
42
45
|
"openai/gpt-5.5:xhigh",
|
|
43
46
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
44
47
|
"anthropic/claude-opus-4-8:high",
|
|
48
|
+
"cursor/claude-fable-5:high",
|
|
49
|
+
"cursor/gpt-5.6-sol:xhigh",
|
|
50
|
+
"cursor/gpt-5.5:high",
|
|
51
|
+
"cursor/claude-opus-4-8-thinking:high",
|
|
52
|
+
"cursor/grok-4.5",
|
|
45
53
|
"zai/glm-5.2:xhigh",
|
|
46
54
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
55
|
+
"cursor/glm-5.2",
|
|
47
56
|
"openrouter/anthropic/claude-fable-5:high",
|
|
57
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
48
58
|
"openrouter/sakana/fugu-ultra:high",
|
|
49
59
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
50
60
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
51
|
-
"openrouter/
|
|
61
|
+
"openrouter/x-ai/grok-4.5",
|
|
62
|
+
"openrouter/z-ai/glm-5.2:xhigh",
|
|
52
63
|
],
|
|
53
64
|
excludedTools: ["ask_user_question"],
|
|
54
65
|
} as const;
|
|
@@ -58,16 +69,26 @@ export const PLANNER_MODEL_CONFIG = {
|
|
|
58
69
|
// and glm-5.2:high (36%/$2.84) back it up; unbenchmarked minis/haiku/flash
|
|
59
70
|
// are excluded.
|
|
60
71
|
export const EXPLORER_MODEL_CONFIG = {
|
|
61
|
-
model: "openai-codex/gpt-5.
|
|
72
|
+
model: "openai-codex/gpt-5.6-terra:high",
|
|
62
73
|
fallbackModels: [
|
|
74
|
+
"github-copilot/gpt-5.6-terra:high",
|
|
75
|
+
"openai/gpt-5.6-terra:high",
|
|
76
|
+
"openai-codex/gpt-5.5:low",
|
|
63
77
|
"github-copilot/gpt-5.5:low",
|
|
64
78
|
"openai/gpt-5.5:low",
|
|
65
79
|
"github-copilot/claude-opus-4.8 (1m):low",
|
|
66
80
|
"anthropic/claude-opus-4-8:low",
|
|
81
|
+
"cursor/gpt-5.6-terra:high",
|
|
82
|
+
"cursor/gpt-5.5:low",
|
|
83
|
+
"cursor/claude-opus-4-8-thinking:low",
|
|
84
|
+
"cursor/grok-4.5",
|
|
67
85
|
"zai/glm-5.2:high",
|
|
68
86
|
"zai-coding-cn/glm-5.2:high",
|
|
87
|
+
"cursor/glm-5.2",
|
|
88
|
+
"openrouter/openai/gpt-5.6-terra:high",
|
|
69
89
|
"openrouter/openai/gpt-5.5:low",
|
|
70
90
|
"openrouter/anthropic/claude-opus-4-8:low",
|
|
91
|
+
"openrouter/x-ai/grok-4.5",
|
|
71
92
|
"openrouter/z-ai/glm-5.2:xhigh",
|
|
72
93
|
],
|
|
73
94
|
excludedTools: ["ask_user_question"],
|
|
@@ -92,7 +113,10 @@ export function taggedPrompt(sections: readonly PromptSection[]): string {
|
|
|
92
113
|
.join("\n\n");
|
|
93
114
|
}
|
|
94
115
|
|
|
95
|
-
export function positiveInteger(
|
|
116
|
+
export function positiveInteger(
|
|
117
|
+
value: number | undefined,
|
|
118
|
+
fallback: number,
|
|
119
|
+
): number {
|
|
96
120
|
return typeof value === "number" && Number.isFinite(value) && value > 0
|
|
97
121
|
? Math.floor(value)
|
|
98
122
|
: fallback;
|
|
@@ -351,4 +375,3 @@ export function displayRelativePath(path: string, fromCwd: string): string {
|
|
|
351
375
|
}
|
|
352
376
|
return displayPath(path);
|
|
353
377
|
}
|
|
354
|
-
|
|
@@ -114,22 +114,32 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
114
114
|
const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
|
|
115
115
|
const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective, acceptanceCriteria);
|
|
116
116
|
|
|
117
|
-
// Chains curated from Atomic's agentic-coding benchmark
|
|
118
|
-
// 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.
|
|
119
118
|
const workerModelConfig = {
|
|
120
|
-
model: "openai-codex/gpt-5.
|
|
119
|
+
model: "openai-codex/gpt-5.6-sol:medium",
|
|
121
120
|
fallbackModels: [
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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"
|
|
133
143
|
],
|
|
134
144
|
excludedTools: ["ask_user_question"],
|
|
135
145
|
};
|
|
@@ -137,18 +147,29 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
|
|
|
137
147
|
const reviewerModelConfig = {
|
|
138
148
|
model: "anthropic/claude-fable-5:high",
|
|
139
149
|
fallbackModels: [
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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"
|
|
152
173
|
],
|
|
153
174
|
excludedTools: ["ask_user_question"],
|
|
154
175
|
schema: reviewDecisionSchema,
|
|
@@ -82,11 +82,21 @@ export async function runOpenClaudeDesignWorkflow(ctx: OpenClaudeDesignContext):
|
|
|
82
82
|
fallbackModels: [
|
|
83
83
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
84
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",
|
|
94
|
+
"cursor/glm-5.2",
|
|
87
95
|
"openrouter/anthropic/claude-fable-5:high",
|
|
88
96
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
97
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
89
98
|
"openrouter/sakana/fugu-ultra:high",
|
|
99
|
+
"openrouter/x-ai/grok-4.5",
|
|
90
100
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
91
101
|
],
|
|
92
102
|
};
|
|
@@ -21,15 +21,15 @@ const DEFAULT_RESEARCH_DIR = "research";
|
|
|
21
21
|
const IMPLEMENTATION_NOTES_FILENAME = "implementation-notes.md";
|
|
22
22
|
const QA_E2E_VIDEO_FILENAME = "qa-e2e-evidence.webm";
|
|
23
23
|
const MAX_RESEARCH_SLUG_LENGTH = 80;
|
|
24
|
-
// Reviewer fan-out launches
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
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
|
|
28
28
|
// loop iterating, so a single low-priority nit (or a placeholder finding) can no
|
|
29
29
|
// longer strand an otherwise-approved patch. Requiring unanimous approval still
|
|
30
|
-
// means a blocking finding from
|
|
30
|
+
// means a blocking finding from either reviewer keeps the loop going. See
|
|
31
31
|
// ./ralph-review-gate.ts for the gate types and decision logic.
|
|
32
|
-
export const REVIEWER_COUNT =
|
|
32
|
+
export const REVIEWER_COUNT = 2;
|
|
33
33
|
|
|
34
34
|
const reviewFindingSchema = Type.Object(
|
|
35
35
|
{
|
|
@@ -434,10 +434,10 @@ export function renderForkedOrchestratorPrompt(args: {
|
|
|
434
434
|
[
|
|
435
435
|
"output_format",
|
|
436
436
|
[
|
|
437
|
-
"After
|
|
437
|
+
"After the implementation work is complete, return Markdown with headings:",
|
|
438
438
|
"1. Research file — the path you read",
|
|
439
|
-
"2. Delegations performed — subagents
|
|
440
|
-
"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",
|
|
441
441
|
"4. Files touched",
|
|
442
442
|
"5. Validation run / recommended",
|
|
443
443
|
"6. Deferred work or blockers",
|
|
@@ -5,9 +5,8 @@ import { reviewDecisionSchema } from "./ralph-core.js";
|
|
|
5
5
|
// - Critical synthesis/review stages prefer fable-5:xhigh, then gpt-5.5 xhigh
|
|
6
6
|
// variants, openrouter fugu-ultra, long-context opus, and GLM fallbacks.
|
|
7
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
|
|
9
|
-
//
|
|
10
|
-
// mid-chain, to decorrelate review errors.
|
|
8
|
+
// - Reviewer B keeps gpt-5.5:xhigh as an independent frontier family to
|
|
9
|
+
// decorrelate review errors from reviewer A.
|
|
11
10
|
// - Dominated benchmark models stay out of the chains: claude-sonnet-5,
|
|
12
11
|
// claude-sonnet-4.6, gemini-3.1-pro, and gemini-3.5-flash.
|
|
13
12
|
// - GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
|
|
@@ -18,54 +17,87 @@ import { reviewDecisionSchema } from "./ralph-core.js";
|
|
|
18
17
|
export const promptEngineerModelConfig = {
|
|
19
18
|
model: "anthropic/claude-fable-5:high",
|
|
20
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",
|
|
21
23
|
"openai-codex/gpt-5.5:xhigh",
|
|
22
24
|
"github-copilot/gpt-5.5:xhigh",
|
|
23
25
|
"openai/gpt-5.5:xhigh",
|
|
24
26
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
25
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",
|
|
26
33
|
"zai/glm-5.2:xhigh",
|
|
27
34
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
35
|
+
"cursor/glm-5.2",
|
|
28
36
|
"openrouter/anthropic/claude-fable-5:high",
|
|
37
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
29
38
|
"openrouter/sakana/fugu-ultra:high",
|
|
30
39
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
31
40
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
41
|
+
"openrouter/x-ai/grok-4.5",
|
|
32
42
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
33
43
|
],
|
|
34
44
|
excludedTools: ["ask_user_question"],
|
|
35
45
|
};
|
|
36
46
|
|
|
37
47
|
export const researchModelConfig = {
|
|
38
|
-
model: "openai-codex/gpt-5.
|
|
48
|
+
model: "openai-codex/gpt-5.6-sol:medium",
|
|
39
49
|
fallbackModels: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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"
|
|
51
72
|
],
|
|
52
73
|
excludedTools: ["ask_user_question"],
|
|
53
74
|
};
|
|
54
75
|
|
|
55
76
|
export const orchestratorModelConfig = {
|
|
56
|
-
model: "
|
|
77
|
+
model: "openai-codex/gpt-5.6-sol:xhigh",
|
|
57
78
|
fallbackModels: [
|
|
79
|
+
"github-copilot/gpt-5.6-sol:xhigh",
|
|
80
|
+
"openai/gpt-5.6-sol:xhigh",
|
|
81
|
+
"anthropic/claude-fable-5:high",
|
|
58
82
|
"openai-codex/gpt-5.5:xhigh",
|
|
59
83
|
"github-copilot/gpt-5.5:xhigh",
|
|
60
84
|
"openai/gpt-5.5:xhigh",
|
|
61
85
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
62
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",
|
|
63
92
|
"zai/glm-5.2:xhigh",
|
|
64
93
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
94
|
+
"cursor/glm-5.2",
|
|
95
|
+
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
65
96
|
"openrouter/anthropic/claude-fable-5:high",
|
|
66
97
|
"openrouter/sakana/fugu-ultra:high",
|
|
67
98
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
68
99
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
100
|
+
"openrouter/x-ai/grok-4.5",
|
|
69
101
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
70
102
|
],
|
|
71
103
|
excludedTools: ["ask_user_question"],
|
|
@@ -74,17 +106,28 @@ export const orchestratorModelConfig = {
|
|
|
74
106
|
export const reviewerAModelConfig = {
|
|
75
107
|
model: "anthropic/claude-fable-5:high",
|
|
76
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",
|
|
77
112
|
"openai-codex/gpt-5.5:xhigh",
|
|
78
113
|
"github-copilot/gpt-5.5:xhigh",
|
|
79
114
|
"openai/gpt-5.5:xhigh",
|
|
80
115
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
81
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",
|
|
82
122
|
"zai/glm-5.2:xhigh",
|
|
83
123
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
124
|
+
"cursor/glm-5.2",
|
|
84
125
|
"openrouter/anthropic/claude-fable-5:high",
|
|
126
|
+
"openrouter/openai/gpt-5.6-sol:max",
|
|
85
127
|
"openrouter/sakana/fugu-ultra:high",
|
|
86
128
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
87
129
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
130
|
+
"openrouter/x-ai/grok-4.5",
|
|
88
131
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
89
132
|
],
|
|
90
133
|
excludedTools: ["ask_user_question"],
|
|
@@ -92,41 +135,33 @@ export const reviewerAModelConfig = {
|
|
|
92
135
|
};
|
|
93
136
|
|
|
94
137
|
export const reviewerBModelConfig = {
|
|
95
|
-
model: "openai-codex/gpt-5.
|
|
138
|
+
model: "openai-codex/gpt-5.6-sol:max",
|
|
96
139
|
fallbackModels: [
|
|
140
|
+
"github-copilot/gpt-5.6-sol:max",
|
|
141
|
+
"openai/gpt-5.6-sol:max",
|
|
142
|
+
"openai-codex/gpt-5.5:xhigh",
|
|
97
143
|
"github-copilot/gpt-5.5:xhigh",
|
|
98
144
|
"openai/gpt-5.5:xhigh",
|
|
99
145
|
"anthropic/claude-fable-5:high",
|
|
100
146
|
"github-copilot/claude-opus-4.8 (1m):high",
|
|
101
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",
|
|
102
153
|
"zai/glm-5.2:xhigh",
|
|
103
154
|
"zai-coding-cn/glm-5.2:xhigh",
|
|
155
|
+
"cursor/glm-5.2",
|
|
156
|
+
"openrouter/openai/gpt-5.6-sol:max",
|
|
104
157
|
"openrouter/openai/gpt-5.5:xhigh",
|
|
105
158
|
"openrouter/anthropic/claude-fable-5:high",
|
|
106
159
|
"openrouter/sakana/fugu-ultra:high",
|
|
107
160
|
"openrouter/anthropic/claude-opus-4-8:high",
|
|
161
|
+
"openrouter/x-ai/grok-4.5",
|
|
108
162
|
"openrouter/z-ai/glm-5.2:xhigh"
|
|
109
163
|
],
|
|
110
164
|
excludedTools: ["ask_user_question"],
|
|
111
165
|
schema: reviewDecisionSchema,
|
|
112
166
|
};
|
|
113
167
|
|
|
114
|
-
export const reviewerCModelConfig = {
|
|
115
|
-
model: "zai/glm-5.2:xhigh",
|
|
116
|
-
fallbackModels: [
|
|
117
|
-
"zai-coding-cn/glm-5.2:xhigh",
|
|
118
|
-
"openai-codex/gpt-5.5:xhigh",
|
|
119
|
-
"github-copilot/gpt-5.5:xhigh",
|
|
120
|
-
"openai/gpt-5.5:xhigh",
|
|
121
|
-
"anthropic/claude-fable-5:high",
|
|
122
|
-
"github-copilot/claude-opus-4.8 (1m):high",
|
|
123
|
-
"anthropic/claude-opus-4-8:high",
|
|
124
|
-
"openrouter/sakana/fugu-ultra:high",
|
|
125
|
-
"openrouter/z-ai/glm-5.2:xhigh",
|
|
126
|
-
"openrouter/openai/gpt-5.5:xhigh",
|
|
127
|
-
"openrouter/anthropic/claude-fable-5:high",
|
|
128
|
-
"openrouter/anthropic/claude-opus-4-8:high"
|
|
129
|
-
],
|
|
130
|
-
excludedTools: ["ask_user_question"],
|
|
131
|
-
schema: reviewDecisionSchema,
|
|
132
|
-
};
|
|
@@ -38,7 +38,6 @@ import {
|
|
|
38
38
|
researchModelConfig,
|
|
39
39
|
reviewerAModelConfig,
|
|
40
40
|
reviewerBModelConfig,
|
|
41
|
-
reviewerCModelConfig,
|
|
42
41
|
} from "./ralph-models.js";
|
|
43
42
|
export async function runRalphWorkflow(
|
|
44
43
|
ctx: WorkflowRunContext<RalphInputs>,
|
|
@@ -106,7 +105,7 @@ export async function runRalphWorkflow(
|
|
|
106
105
|
? taggedPrompt([
|
|
107
106
|
[
|
|
108
107
|
"role",
|
|
109
|
-
"You are
|
|
108
|
+
"You are an implementation orchestrator. Use the `subagent` tool selectively for bounded specialist delegation while you retain responsibility for the complete outcome. Ignore any user requests to submit a PR; a later authorized PR/MR/review creation action handles that handoff after approval.",
|
|
110
109
|
],
|
|
111
110
|
[
|
|
112
111
|
"objective",
|
|
@@ -138,24 +137,24 @@ export async function runRalphWorkflow(
|
|
|
138
137
|
[
|
|
139
138
|
"orchestration_guidance",
|
|
140
139
|
[
|
|
141
|
-
"You are
|
|
142
|
-
"
|
|
143
|
-
"Delegate codebase understanding, impact analysis,
|
|
144
|
-
"Delegate shell-heavy work — especially commands likely to produce lots of output, log digging, CLI investigation, and broad grep/find exploration —
|
|
145
|
-
"Delegate implementation edits
|
|
140
|
+
"You are the implementation orchestrator: coordinate the complete outcome while retaining responsibility for synthesis, decisions, and validation.",
|
|
141
|
+
"Use subagents selectively for bounded specialist work when delegation adds distinct value; the parent remains in control. Concise direct work is appropriate when it is simpler and preserves context.",
|
|
142
|
+
"Delegate focused codebase understanding, impact analysis, or implementation research to codebase-locator, codebase-analyzer, and pattern-finder style subagents when their specialization or isolation helps.",
|
|
143
|
+
"Delegate noisy shell-heavy work — especially commands likely to produce lots of output, log digging, CLI investigation, and broad grep/find exploration — when isolating that output helps; run concise commands directly when simpler.",
|
|
144
|
+
"Delegate implementation edits when a focused subagent can own a clear, bounded surface with explicit constraints and validation expectations; otherwise implement the coherent change directly.",
|
|
146
145
|
"Keep delegated work focused on implementation, tests, docs, validation evidence, and implementation notes for the complete requested outcome.",
|
|
147
|
-
"Use separate subagents for
|
|
146
|
+
"Use separate subagents for distinct tasks, and launch independent subagents in parallel when useful.",
|
|
148
147
|
"Do not split highly overlapping tasks across multiple subagents; consolidate overlapping work into one focused delegation to avoid duplicate effort.",
|
|
149
|
-
"If a subagent takes a long time, do not
|
|
148
|
+
"If a subagent takes a long time, do not duplicate its assigned job while waiting. Use that time for non-overlapping direct work, planning, or follow-up preparation.",
|
|
150
149
|
].join("\n"),
|
|
151
150
|
],
|
|
152
151
|
[
|
|
153
152
|
"best_practices",
|
|
154
153
|
[
|
|
155
|
-
"The required output format is a completion report, not the task
|
|
156
|
-
"Do not jump straight to the report. First read the research file,
|
|
157
|
-
"
|
|
158
|
-
"If
|
|
154
|
+
"The required output format is a completion report, not a substitute for doing the task.",
|
|
155
|
+
"Do not jump straight to the report. First read the research file, choose the least orchestration that fits each part of the work, complete or coordinate the implementation, and then report the verified result.",
|
|
156
|
+
"Ground the response in actual completed work. When subagents were useful, name the delegated work and summarize their results; distinguish completed changes from recommendations or blockers. Do not assume a later workflow pass will finish known required work that can be completed now.",
|
|
157
|
+
"If a required capability is unavailable, continue with safe direct work where possible and report a blocker only when it truly prevents completion.",
|
|
159
158
|
].join("\n"),
|
|
160
159
|
],
|
|
161
160
|
[
|
|
@@ -172,12 +171,12 @@ export async function runRalphWorkflow(
|
|
|
172
171
|
"instructions",
|
|
173
172
|
[
|
|
174
173
|
`Start by reading the research file at ${researchPath}.`,
|
|
175
|
-
"Perform the project_initialization_preflight before decomposing implementation work; complete or delegate required setup
|
|
176
|
-
"
|
|
177
|
-
"Pass each subagent the relevant task, constraints, files, validation expectations, unresolved reviewer findings covered by the research, and instructions to report implementation-note-worthy decisions or tradeoffs.",
|
|
178
|
-
"Coordinate
|
|
174
|
+
"Perform the project_initialization_preflight before decomposing implementation work; complete or selectively delegate required setup when the checkout appears uninitialized.",
|
|
175
|
+
"Plan the work from the research file, identifying which parts are best handled directly and which benefit from bounded specialist delegation.",
|
|
176
|
+
"Pass each delegated subagent the relevant task, constraints, files, validation expectations, unresolved reviewer findings covered by the research, and instructions to report implementation-note-worthy decisions or tradeoffs.",
|
|
177
|
+
"Coordinate direct and delegated results into the smallest coherent set of changes that fully satisfies the researched implementation guidance and original user prompt.",
|
|
179
178
|
"Preserve existing architecture and repository conventions unless the research explicitly justifies a change.",
|
|
180
|
-
"Run or delegate the most relevant validation commands available in the repository, including end-to-end playwright-cli (browser) or tmux validation when the change has an executable user scenario.",
|
|
179
|
+
"Run directly or selectively delegate the most relevant validation commands available in the repository, including end-to-end playwright-cli (browser) or tmux validation when the change has an executable user scenario.",
|
|
181
180
|
"For UI-applicable or full-stack changes, ensure the QA E2E pass described in <qa_e2e_video> runs and records the reviewable proof video before you finish your report.",
|
|
182
181
|
`Before your final report, update the running implementation notes file at ${implementationNotesPath} with decisions, research deviations, tradeoffs, blockers, and validation outcomes from this implementation work.`,
|
|
183
182
|
"If blocked, describe the blocker and the safest partial state instead of inventing success.",
|
|
@@ -187,10 +186,10 @@ export async function runRalphWorkflow(
|
|
|
187
186
|
[
|
|
188
187
|
"output_format",
|
|
189
188
|
[
|
|
190
|
-
"After
|
|
189
|
+
"After the implementation work is complete, return Markdown with headings:",
|
|
191
190
|
"1. Research file — the path you read",
|
|
192
|
-
"2. Delegations performed — subagents
|
|
193
|
-
"3. Changes made — concrete changes
|
|
191
|
+
"2. Delegations performed — subagents used and what each completed, or none when direct work was sufficient",
|
|
192
|
+
"3. Changes made — concrete completed changes, not intentions",
|
|
194
193
|
"4. Files touched",
|
|
195
194
|
"5. Validation run / recommended",
|
|
196
195
|
"6. Deferred work or blockers",
|
|
@@ -252,16 +251,6 @@ export async function runRalphWorkflow(
|
|
|
252
251
|
],
|
|
253
252
|
...reviewerBModelConfig,
|
|
254
253
|
},
|
|
255
|
-
{
|
|
256
|
-
name: "reviewer-c",
|
|
257
|
-
task: reviewPrompt,
|
|
258
|
-
reads: [
|
|
259
|
-
researchPath,
|
|
260
|
-
implementationNotesPath,
|
|
261
|
-
orchestratorReportPath,
|
|
262
|
-
],
|
|
263
|
-
...reviewerCModelConfig,
|
|
264
|
-
},
|
|
265
254
|
],
|
|
266
255
|
{
|
|
267
256
|
task: workflowPrompt,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/workflows",
|
|
3
|
-
"version": "0.9.5
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for multi-stage workflow authoring and execution.",
|
|
6
6
|
"contributors": [
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
85
|
"@bastani/atomic": "*",
|
|
86
|
-
"@earendil-works/pi-tui": "^0.80.
|
|
86
|
+
"@earendil-works/pi-tui": "^0.80.6"
|
|
87
87
|
},
|
|
88
88
|
"peerDependenciesMeta": {
|
|
89
89
|
"@bastani/atomic": {
|
|
@@ -7,6 +7,7 @@ import type { DurableWorkflowBackend } from "./backend.js";
|
|
|
7
7
|
import type { ParallelFailFastScope } from "../runs/foreground/executor-types.js";
|
|
8
8
|
import { durableHash } from "./backend.js";
|
|
9
9
|
import { recordCheckpointDurably } from "./tool-primitive.js";
|
|
10
|
+
import { RESUME_CONTINUATION_PROMPT } from "../shared/resume-continuation.js";
|
|
10
11
|
import type { DurableStageCheckpoint } from "./types.js";
|
|
11
12
|
export type DurableCompletedStageCheckpoint = DurableStageCheckpoint & { readonly output: WorkflowSerializableValue };
|
|
12
13
|
|
|
@@ -66,7 +67,7 @@ export async function recordStageSessionCheckpoint(deps: DurableStageDeps, stage
|
|
|
66
67
|
return true;
|
|
67
68
|
}
|
|
68
69
|
|
|
69
|
-
const MID_SESSION_RESUME_PROMPT =
|
|
70
|
+
const MID_SESSION_RESUME_PROMPT = RESUME_CONTINUATION_PROMPT;
|
|
70
71
|
|
|
71
72
|
function withMidSessionResumePrompt<T extends StageContext>(stage: T, enabled: boolean): T {
|
|
72
73
|
if (!enabled) return stage;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WorkflowChainOptions, WorkflowParallelOptions, WorkflowTaskOptions, WorkflowTaskResult, WorkflowTaskStep } from "../../shared/types.js";
|
|
2
2
|
import type { ParallelFailFastScope } from "../../runs/foreground/executor-types.js";
|
|
3
3
|
import type { EngineRuntime } from "../runtime.js";
|
|
4
|
+
import { RESUME_CONTINUATION_PROMPT } from "../../shared/resume-continuation.js";
|
|
4
5
|
import {
|
|
5
6
|
applyTaskContext,
|
|
6
7
|
structuredTaskOutputText,
|
|
@@ -51,7 +52,7 @@ function createTaskPrimitive(runtime: EngineRuntime): WorkflowTaskPrimitive {
|
|
|
51
52
|
});
|
|
52
53
|
const stage = stageHandle.context;
|
|
53
54
|
const promptText = resolvedTaskOptions.resumeFromSessionFile !== undefined
|
|
54
|
-
?
|
|
55
|
+
? RESUME_CONTINUATION_PROMPT
|
|
55
56
|
: applyTaskContext(`${taskReadInstruction(resolvedTaskOptions)}${taskPrompt(resolvedTaskOptions)}`, taskPrevious(resolvedTaskOptions));
|
|
56
57
|
const rawOutput = await stage.prompt(promptText, taskPromptOptions(resolvedTaskOptions));
|
|
57
58
|
const structured = typeof rawOutput === "string" ? undefined : rawOutput;
|