@bastani/atomic 0.9.14-alpha.2 → 0.9.14-alpha.3
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 +14 -0
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/CHANGELOG.md +6 -0
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/CHANGELOG.md +6 -0
- package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
- package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
- package/dist/builtin/subagents/agents/debugger.md +1 -1
- package/dist/builtin/subagents/agents/worker.md +1 -1
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/web-access/CHANGELOG.md +6 -0
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +12 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/goal-models.ts +4 -2
- package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +2 -1
- package/dist/builtin/workflows/builtin/ralph-models.ts +10 -5
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +67 -37
- package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +32 -4
- package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +3 -9
- package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +27 -20
- package/dist/builtin/workflows/src/runs/foreground/executor.ts +4 -0
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +6 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +6 -1
- package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +7 -8
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts +3 -1
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +2 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -0
- package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -0
- package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/key-router.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/state/key-router.js +3 -1
- package/dist/core/tools/ask-user-question/state/key-router.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +3 -0
- package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.js +3 -0
- package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/state-reducer.d.ts +1 -0
- package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/state/state-reducer.js +3 -1
- package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/chat-row-view.d.ts +2 -0
- package/dist/core/tools/ask-user-question/view/components/chat-row-view.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/chat-row-view.js +1 -0
- package/dist/core/tools/ask-user-question/view/components/chat-row-view.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts +3 -0
- package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/wrapping-select.js +2 -1
- package/dist/core/tools/ask-user-question/view/components/wrapping-select.js.map +1 -1
- package/dist/core/tools/edit-batch.d.ts +33 -0
- package/dist/core/tools/edit-batch.d.ts.map +1 -0
- package/dist/core/tools/edit-batch.js +89 -0
- package/dist/core/tools/edit-batch.js.map +1 -0
- package/dist/core/tools/edit.d.ts +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +98 -42
- package/dist/core/tools/edit.js.map +1 -1
- package/docs/providers.md +1 -1
- package/docs/tools.md +1 -1
- package/docs/workflows.md +3 -3
- package/npm-shrinkwrap.json +65 -50
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.14-alpha.3] - 2026-08-17
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Documented built-in workflow and subagent Grok 4.6 fallbacks as `xai/grok-4.6:xhigh` and `github-copilot/grok-4.6:xhigh`.
|
|
10
|
+
- Optional DBOS durable execution now makes `/workflow resume` recovery idempotent, re-stamps `executor_id` on a successful step checkpoint, and keeps the SDK's internal admin server off by default.
|
|
11
|
+
- MCP OAuth browser launch now succeeds from WSL when the Linux working directory is not reachable from Windows.
|
|
12
|
+
- `ask_user_question` no longer submits an empty or whitespace-only **Type something.** answer. The readiness-gate tool can treat **Chat about this** as a plain option via `createAskUserQuestionToolDefinition({ chatAsOption: true })`.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Parallel `edit` calls that share a `[path#TAG]` are now applied as one snapshot-anchored batch, so later siblings no longer fail with `file content changed before write` after the first write mints a new tag.
|
|
17
|
+
- PDF extraction no longer throws `TypeError: Math.sumPrecise is not a function` on Node runtimes without that builtin.
|
|
18
|
+
|
|
5
19
|
## [0.9.14-alpha.2] - 2026-08-17
|
|
6
20
|
|
|
7
21
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/intercom",
|
|
3
|
-
"version": "0.9.14-alpha.
|
|
3
|
+
"version": "0.9.14-alpha.3",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
|
|
6
6
|
"contributors": [
|
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.9.14-alpha.3] - 2026-08-17
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- MCP OAuth now opens the authorization URL from WSL when the Linux working directory is not reachable from Windows.
|
|
15
|
+
|
|
10
16
|
## [0.9.13] - 2026-08-13
|
|
11
17
|
|
|
12
18
|
Cumulative release of the `0.9.13-alpha.1` – `0.9.13-alpha.2` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/mcp",
|
|
3
|
-
"version": "0.9.14-alpha.
|
|
3
|
+
"version": "0.9.14-alpha.3",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
|
|
6
6
|
"contributors": [
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@modelcontextprotocol/ext-apps": "^1.7.5",
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
53
|
-
"open": "^11.0.
|
|
53
|
+
"open": "^11.0.1",
|
|
54
54
|
"typebox": "^1.3.7",
|
|
55
55
|
"zod": "^3.25.0 || ^4.0.0"
|
|
56
56
|
}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.14-alpha.3] - 2026-08-17
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Raised every built-in subagent Grok 4.6 fallback from `xai/grok-4.6:high` to `xai/grok-4.6:xhigh` and added the matching `github-copilot/grok-4.6:xhigh` twin immediately after each xAI id.
|
|
10
|
+
|
|
5
11
|
## [0.9.14-alpha.2] - 2026-08-17
|
|
6
12
|
|
|
7
13
|
### Added
|
|
@@ -9,7 +9,7 @@ description: |
|
|
|
9
9
|
- Code that has gotten messy after several iterations.
|
|
10
10
|
tools: read, edit, write, search, find, ls, bash, todo
|
|
11
11
|
model: openai-codex/gpt-5.6-luna:max
|
|
12
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:
|
|
12
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
13
13
|
skills: tdd, playwright-cli, tmux
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -3,7 +3,7 @@ name: codebase-analyzer
|
|
|
3
3
|
description: Analyzes codebase implementation details. Call the codebase-analyzer agent when you need to find detailed information about specific components.
|
|
4
4
|
tools: read, search, find, ls, todo
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
skills: tdd, playwright-cli, tmux
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: codebase-locator
|
|
|
3
3
|
description: Locates files, directories, and components relevant to a feature or task. Basically a "super search/find/ls tool."
|
|
4
4
|
tools: read, search, find, ls
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -3,7 +3,7 @@ name: codebase-online-researcher
|
|
|
3
3
|
description: Online research for up-to-date documentation and library-source knowledge. Use when you need authoritative external information — official docs, ecosystem context, version-specific behavior, GitHub permalinks into open-source libraries, or video tutorials.
|
|
4
4
|
tools: read, search, find, ls, bash, web_search, fetch_content, get_search_content, todo
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
skills: playwright-cli
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: codebase-pattern-finder
|
|
|
3
3
|
description: Find similar implementations, usage examples, or existing patterns in the codebase that can be modeled after.
|
|
4
4
|
tools: read, search, find, ls
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -3,7 +3,7 @@ name: codebase-research-analyzer
|
|
|
3
3
|
description: Analyzes local research documents to extract high-value insights, decisions, and technical details while filtering out noise. Use this when you want to deep dive on a research topic or understand the rationale behind decisions.
|
|
4
4
|
tools: read, search, find, ls, todo
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -3,7 +3,7 @@ name: codebase-research-locator
|
|
|
3
3
|
description: Discovers local research documents that are relevant to the current research task.
|
|
4
4
|
tools: read, search, find, ls
|
|
5
5
|
model: openai-codex/gpt-5.6-luna:max
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Role and goal
|
|
@@ -3,7 +3,7 @@ name: debugger
|
|
|
3
3
|
description: Debug and fix errors, test failures, and unexpected behavior. Use PROACTIVELY when encountering issues, analyzing stack traces, or investigating system problems.
|
|
4
4
|
tools: read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo
|
|
5
5
|
model: openai-codex/gpt-5.6-sol:xhigh
|
|
6
|
-
fallbackModels: github-copilot/gpt-5.6-sol:xhigh, openai/gpt-5.6-sol:xhigh, anthropic/claude-opus-5:high, github-copilot/claude-opus-5:high, anthropic/claude-fable-5:high, github-copilot/claude-fable-5:high, kimi-coding/k3:max, moonshotai/kimi-k3:max, moonshotai-cn/kimi-k3:max, openai-codex/gpt-5.5:xhigh, github-copilot/gpt-5.5:xhigh, openai/gpt-5.5:xhigh, anthropic/claude-opus-4-8:high, github-copilot/claude-opus-4.8:high, xai/grok-4.6:
|
|
6
|
+
fallbackModels: github-copilot/gpt-5.6-sol:xhigh, openai/gpt-5.6-sol:xhigh, anthropic/claude-opus-5:high, github-copilot/claude-opus-5:high, anthropic/claude-fable-5:high, github-copilot/claude-fable-5:high, kimi-coding/k3:max, moonshotai/kimi-k3:max, moonshotai-cn/kimi-k3:max, openai-codex/gpt-5.5:xhigh, github-copilot/gpt-5.5:xhigh, openai/gpt-5.5:xhigh, anthropic/claude-opus-4-8:high, github-copilot/claude-opus-4.8:high, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-sol:xhigh, openrouter/anthropic/claude-opus-5:high, openrouter/anthropic/claude-fable-5:high, openrouter/moonshotai/kimi-k3:max, openrouter/sakana/fugu-ultra:high, openrouter/openai/gpt-5.5:xhigh, openrouter/anthropic/claude-opus-4-8:high, openrouter/x-ai/grok-4.6
|
|
7
7
|
skills: tdd, playwright-cli, tmux
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -6,7 +6,7 @@ inheritProjectContext: true
|
|
|
6
6
|
inheritSkills: false
|
|
7
7
|
tools: read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo
|
|
8
8
|
model: openai-codex/gpt-5.6-luna:max
|
|
9
|
-
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:
|
|
9
|
+
fallbackModels: github-copilot/gpt-5.6-luna:max, openai/gpt-5.6-luna:max, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, openrouter/openai/gpt-5.6-luna:max, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6
|
|
10
10
|
skills: tdd, playwright-cli, tmux
|
|
11
11
|
defaultContext: fork
|
|
12
12
|
defaultProgress: true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/subagents",
|
|
3
|
-
"version": "0.9.14-alpha.
|
|
3
|
+
"version": "0.9.14-alpha.3",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for delegating tasks to subagents with parallel execution. Fork of: https://github.com/nicobailon/pi-subagents",
|
|
6
6
|
"contributors": [
|
|
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.9.14-alpha.3] - 2026-08-17
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- `fetch_content` PDF extraction no longer throws `TypeError: Math.sumPrecise is not a function` on Node runtimes without that builtin.
|
|
12
|
+
|
|
7
13
|
## [0.9.13] - 2026-08-13
|
|
8
14
|
|
|
9
15
|
Cumulative release of the `0.9.13-alpha.2` prerelease. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease section below.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/web-access",
|
|
3
|
-
"version": "0.9.14-alpha.
|
|
3
|
+
"version": "0.9.14-alpha.3",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for web search, URL fetching, GitHub repo cloning, PDF/video extraction. Fork of: https://github.com/nicobailon/pi-web-access",
|
|
6
6
|
"contributors": [
|
|
@@ -46,6 +46,6 @@
|
|
|
46
46
|
"linkedom": "^0.18.13",
|
|
47
47
|
"p-limit": "^7.3.1",
|
|
48
48
|
"turndown": "^7.2.0",
|
|
49
|
-
"unpdf": "1.
|
|
49
|
+
"unpdf": "1.8.1"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.9.14-alpha.3] - 2026-08-17
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Raised built-in Goal, Ralph, and open-claude-design Grok 4.6 fallbacks from `xai/grok-4.6:high` to `xai/grok-4.6:xhigh` and added the matching `github-copilot/grok-4.6:xhigh` twin immediately after each xAI id.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Readiness-gate **Type something.** now stays in the stage and sends the typed text as the next stage-chat turn. Empty or whitespace-only custom text cannot be submitted. **Chat about this** is a plain option on the gate (no inline editor) and stays by sending `The user would like to chat more about this`.
|
|
18
|
+
|
|
19
|
+
- Fixed `ask_user_question` failing every workflow stage that called it while the graph viewer was attached. The tool always mounts with `overlay: true`, and both graph hosts — the attached stage chat and the `ctx.ui.custom` prompt node — rejected that with "ctx.ui.custom overlay mode is unavailable in the workflow graph viewer", so the questionnaire never painted and the stage failed. Overlay is a placement hint rather than a capability request: an overlay request now mounts on the stage chat's existing custom-UI slot, which already keeps the stage transcript visible and scrollable behind the question, takes focus, and resolves through `done(value)`. Workflow-level `ctx.ui.custom(factory, { overlay: true })` completes on the same path. No nested overlay is opened above the graph chrome, so `overlayOptions` and `onHandle` stay unconsumed there, and non-overlay custom UI, readiness gates, detach-does-not-cancel, and mid-mount settle guards are unchanged.
|
|
20
|
+
|
|
9
21
|
## [0.9.14-alpha.2] - 2026-08-17
|
|
10
22
|
|
|
11
23
|
### Breaking Changes
|
|
@@ -218,7 +218,7 @@ export default workflow({
|
|
|
218
218
|
|
|
219
219
|
Human input is runtime-only: call `ctx.ui.input`, `ctx.ui.confirm`, `ctx.ui.select`, `ctx.ui.editor`, or `ctx.ui.custom<T>` at the point where the workflow actually needs a decision. No declaration-time HIL marker is required or supported.
|
|
220
220
|
|
|
221
|
-
`ctx.ui.custom<T>(factory, options?)` mounts an arbitrary focused TUI component in the attached workflow graph/stage UI and resolves with the value passed to `done(value)`. The factory uses the same real TUI/theme/keybinding/component types as Atomic extension `ctx.ui.custom`. Use `options.label` for a safe display-only graph/status label and `options.replayIdentity` (do not include secrets) when the widget's semantics can change without the callsite changing; label text is not part of replay identity. Custom widget prompts require an interactive workflow graph; they are not answerable through non-TUI `workflow send` in iteration 1.
|
|
221
|
+
`ctx.ui.custom<T>(factory, options?)` mounts an arbitrary focused TUI component in the attached workflow graph/stage UI and resolves with the value passed to `done(value)`. The factory uses the same real TUI/theme/keybinding/component types as Atomic extension `ctx.ui.custom`. Use `options.label` for a safe display-only graph/status label and `options.replayIdentity` (do not include secrets) when the widget's semantics can change without the callsite changing; label text is not part of replay identity. Custom widget prompts require an interactive workflow graph; they are not answerable through non-TUI `workflow send` in iteration 1. Both inline rendering and `overlay: true` mount: overlay is a placement hint, so the request lands on the attached stage chat's custom-UI slot — which keeps the stage transcript visible behind it — rather than opening a nested overlay above the graph chrome. An in-stage `ask_user_question`, which always asks for an overlay, therefore mounts and answers there; `overlayOptions` and `onHandle` are not consumed on that path.
|
|
222
222
|
|
|
223
223
|
### Example 4 — Compose workflows
|
|
224
224
|
|
|
@@ -19,7 +19,8 @@ export const orchestratorModelConfig = {
|
|
|
19
19
|
"openai/gpt-5.5:xhigh",
|
|
20
20
|
"anthropic/claude-opus-4-8:high",
|
|
21
21
|
"github-copilot/claude-opus-4.8:high",
|
|
22
|
-
"xai/grok-4.6:
|
|
22
|
+
"xai/grok-4.6:xhigh",
|
|
23
|
+
"github-copilot/grok-4.6:xhigh",
|
|
23
24
|
"zai/glm-5.3:high",
|
|
24
25
|
"zai-coding-cn/glm-5.3:high",
|
|
25
26
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -53,7 +54,8 @@ export const reviewerModelConfig = {
|
|
|
53
54
|
"openai/gpt-5.5:xhigh",
|
|
54
55
|
"anthropic/claude-opus-4-8:high",
|
|
55
56
|
"github-copilot/claude-opus-4.8:high",
|
|
56
|
-
"xai/grok-4.6:
|
|
57
|
+
"xai/grok-4.6:xhigh",
|
|
58
|
+
"github-copilot/grok-4.6:xhigh",
|
|
57
59
|
"zai/glm-5.3:high",
|
|
58
60
|
"zai-coding-cn/glm-5.3:high",
|
|
59
61
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -118,7 +118,8 @@ export async function runOpenClaudeDesignWorkflow(ctx: OpenClaudeDesignContext):
|
|
|
118
118
|
"openai-codex/gpt-5.6-sol:xhigh",
|
|
119
119
|
"github-copilot/gpt-5.6-sol:xhigh",
|
|
120
120
|
"openai/gpt-5.6-sol:xhigh",
|
|
121
|
-
"xai/grok-4.6:
|
|
121
|
+
"xai/grok-4.6:xhigh",
|
|
122
|
+
"github-copilot/grok-4.6:xhigh",
|
|
122
123
|
"zai/glm-5.3:high",
|
|
123
124
|
"zai-coding-cn/glm-5.3:high",
|
|
124
125
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -31,7 +31,8 @@ export const promptEngineerModelConfig = {
|
|
|
31
31
|
"openai/gpt-5.5:xhigh",
|
|
32
32
|
"anthropic/claude-opus-4-8:high",
|
|
33
33
|
"github-copilot/claude-opus-4.8:high",
|
|
34
|
-
"xai/grok-4.6:
|
|
34
|
+
"xai/grok-4.6:xhigh",
|
|
35
|
+
"github-copilot/grok-4.6:xhigh",
|
|
35
36
|
"zai/glm-5.3:high",
|
|
36
37
|
"zai-coding-cn/glm-5.3:high",
|
|
37
38
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -63,7 +64,8 @@ export const researchModelConfig = {
|
|
|
63
64
|
"openai/gpt-5.5:xhigh",
|
|
64
65
|
"anthropic/claude-opus-4-8:high",
|
|
65
66
|
"github-copilot/claude-opus-4.8:high",
|
|
66
|
-
"xai/grok-4.6:
|
|
67
|
+
"xai/grok-4.6:xhigh",
|
|
68
|
+
"github-copilot/grok-4.6:xhigh",
|
|
67
69
|
"zai/glm-5.3:high",
|
|
68
70
|
"zai-coding-cn/glm-5.3:high",
|
|
69
71
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -95,7 +97,8 @@ export const orchestratorModelConfig = {
|
|
|
95
97
|
"openai/gpt-5.5:xhigh",
|
|
96
98
|
"anthropic/claude-opus-4-8:high",
|
|
97
99
|
"github-copilot/claude-opus-4.8:high",
|
|
98
|
-
"xai/grok-4.6:
|
|
100
|
+
"xai/grok-4.6:xhigh",
|
|
101
|
+
"github-copilot/grok-4.6:xhigh",
|
|
99
102
|
"zai/glm-5.3:high",
|
|
100
103
|
"zai-coding-cn/glm-5.3:high",
|
|
101
104
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -127,7 +130,8 @@ export const reviewerAModelConfig = {
|
|
|
127
130
|
"openai/gpt-5.5:xhigh",
|
|
128
131
|
"anthropic/claude-opus-4-8:high",
|
|
129
132
|
"github-copilot/claude-opus-4.8:high",
|
|
130
|
-
"xai/grok-4.6:
|
|
133
|
+
"xai/grok-4.6:xhigh",
|
|
134
|
+
"github-copilot/grok-4.6:xhigh",
|
|
131
135
|
"zai/glm-5.3:high",
|
|
132
136
|
"zai-coding-cn/glm-5.3:high",
|
|
133
137
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -160,7 +164,8 @@ export const reviewerBModelConfig = {
|
|
|
160
164
|
"openai/gpt-5.5:xhigh",
|
|
161
165
|
"anthropic/claude-opus-4-8:high",
|
|
162
166
|
"github-copilot/claude-opus-4.8:high",
|
|
163
|
-
"xai/grok-4.6:
|
|
167
|
+
"xai/grok-4.6:xhigh",
|
|
168
|
+
"github-copilot/grok-4.6:xhigh",
|
|
164
169
|
"zai/glm-5.3:high",
|
|
165
170
|
"zai-coding-cn/glm-5.3:high",
|
|
166
171
|
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
@@ -45560,11 +45560,6 @@ async function showCustomUi(ctx, request) {
|
|
|
45560
45560
|
ctx.stageUiBroker.reject(request, new Error("atomic-workflows: stage custom UI cannot mount without attached TUI host"));
|
|
45561
45561
|
return;
|
|
45562
45562
|
}
|
|
45563
|
-
if (request.options?.overlay === true) {
|
|
45564
|
-
ctx.mountingRequestId = null;
|
|
45565
|
-
ctx.stageUiBroker.reject(request, new Error("atomic-workflows: ctx.ui.custom overlay mode is unavailable in the workflow graph viewer"));
|
|
45566
|
-
return;
|
|
45567
|
-
}
|
|
45568
45563
|
try {
|
|
45569
45564
|
const mounted = await mountStageCustomUi(request, ctx.piTui, ctx.piTheme, ctx.piKeybindings, ctx.stageUiBroker, () => {
|
|
45570
45565
|
if (ctx.mountedCustomUi?.request.id !== request.id)
|
|
@@ -56020,7 +56015,8 @@ var orchestratorModelConfig = {
|
|
|
56020
56015
|
"openai/gpt-5.5:xhigh",
|
|
56021
56016
|
"anthropic/claude-opus-4-8:high",
|
|
56022
56017
|
"github-copilot/claude-opus-4.8:high",
|
|
56023
|
-
"xai/grok-4.6:
|
|
56018
|
+
"xai/grok-4.6:xhigh",
|
|
56019
|
+
"github-copilot/grok-4.6:xhigh",
|
|
56024
56020
|
"zai/glm-5.3:high",
|
|
56025
56021
|
"zai-coding-cn/glm-5.3:high",
|
|
56026
56022
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -56051,7 +56047,8 @@ var reviewerModelConfig = {
|
|
|
56051
56047
|
"openai/gpt-5.5:xhigh",
|
|
56052
56048
|
"anthropic/claude-opus-4-8:high",
|
|
56053
56049
|
"github-copilot/claude-opus-4.8:high",
|
|
56054
|
-
"xai/grok-4.6:
|
|
56050
|
+
"xai/grok-4.6:xhigh",
|
|
56051
|
+
"github-copilot/grok-4.6:xhigh",
|
|
56055
56052
|
"zai/glm-5.3:high",
|
|
56056
56053
|
"zai-coding-cn/glm-5.3:high",
|
|
56057
56054
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -58079,7 +58076,8 @@ async function runOpenClaudeDesignWorkflow(ctx) {
|
|
|
58079
58076
|
"openai-codex/gpt-5.6-sol:xhigh",
|
|
58080
58077
|
"github-copilot/gpt-5.6-sol:xhigh",
|
|
58081
58078
|
"openai/gpt-5.6-sol:xhigh",
|
|
58082
|
-
"xai/grok-4.6:
|
|
58079
|
+
"xai/grok-4.6:xhigh",
|
|
58080
|
+
"github-copilot/grok-4.6:xhigh",
|
|
58083
58081
|
"zai/glm-5.3:high",
|
|
58084
58082
|
"zai-coding-cn/glm-5.3:high",
|
|
58085
58083
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -59016,7 +59014,8 @@ var promptEngineerModelConfig = {
|
|
|
59016
59014
|
"openai/gpt-5.5:xhigh",
|
|
59017
59015
|
"anthropic/claude-opus-4-8:high",
|
|
59018
59016
|
"github-copilot/claude-opus-4.8:high",
|
|
59019
|
-
"xai/grok-4.6:
|
|
59017
|
+
"xai/grok-4.6:xhigh",
|
|
59018
|
+
"github-copilot/grok-4.6:xhigh",
|
|
59020
59019
|
"zai/glm-5.3:high",
|
|
59021
59020
|
"zai-coding-cn/glm-5.3:high",
|
|
59022
59021
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -59047,7 +59046,8 @@ var researchModelConfig = {
|
|
|
59047
59046
|
"openai/gpt-5.5:xhigh",
|
|
59048
59047
|
"anthropic/claude-opus-4-8:high",
|
|
59049
59048
|
"github-copilot/claude-opus-4.8:high",
|
|
59050
|
-
"xai/grok-4.6:
|
|
59049
|
+
"xai/grok-4.6:xhigh",
|
|
59050
|
+
"github-copilot/grok-4.6:xhigh",
|
|
59051
59051
|
"zai/glm-5.3:high",
|
|
59052
59052
|
"zai-coding-cn/glm-5.3:high",
|
|
59053
59053
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -59078,7 +59078,8 @@ var orchestratorModelConfig2 = {
|
|
|
59078
59078
|
"openai/gpt-5.5:xhigh",
|
|
59079
59079
|
"anthropic/claude-opus-4-8:high",
|
|
59080
59080
|
"github-copilot/claude-opus-4.8:high",
|
|
59081
|
-
"xai/grok-4.6:
|
|
59081
|
+
"xai/grok-4.6:xhigh",
|
|
59082
|
+
"github-copilot/grok-4.6:xhigh",
|
|
59082
59083
|
"zai/glm-5.3:high",
|
|
59083
59084
|
"zai-coding-cn/glm-5.3:high",
|
|
59084
59085
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -59109,7 +59110,8 @@ var reviewerAModelConfig = {
|
|
|
59109
59110
|
"openai/gpt-5.5:xhigh",
|
|
59110
59111
|
"anthropic/claude-opus-4-8:high",
|
|
59111
59112
|
"github-copilot/claude-opus-4.8:high",
|
|
59112
|
-
"xai/grok-4.6:
|
|
59113
|
+
"xai/grok-4.6:xhigh",
|
|
59114
|
+
"github-copilot/grok-4.6:xhigh",
|
|
59113
59115
|
"zai/glm-5.3:high",
|
|
59114
59116
|
"zai-coding-cn/glm-5.3:high",
|
|
59115
59117
|
"openrouter/anthropic/claude-opus-5:high",
|
|
@@ -59141,7 +59143,8 @@ var reviewerBModelConfig = {
|
|
|
59141
59143
|
"openai/gpt-5.5:xhigh",
|
|
59142
59144
|
"anthropic/claude-opus-4-8:high",
|
|
59143
59145
|
"github-copilot/claude-opus-4.8:high",
|
|
59144
|
-
"xai/grok-4.6:
|
|
59146
|
+
"xai/grok-4.6:xhigh",
|
|
59147
|
+
"github-copilot/grok-4.6:xhigh",
|
|
59145
59148
|
"zai/glm-5.3:high",
|
|
59146
59149
|
"zai-coding-cn/glm-5.3:high",
|
|
59147
59150
|
"openrouter/openai/gpt-5.6-sol:xhigh",
|
|
@@ -60826,6 +60829,7 @@ function askUserQuestionToolEvent(event) {
|
|
|
60826
60829
|
return;
|
|
60827
60830
|
}
|
|
60828
60831
|
var READINESS_GATE_ADVANCE_LABEL = "I'm ready to move on to the next workflow stage.";
|
|
60832
|
+
var READINESS_GATE_CHAT_MESSAGE = "The user would like to chat more about this";
|
|
60829
60833
|
var READINESS_GATE_ADVANCE_NORMALIZED = READINESS_GATE_ADVANCE_LABEL.trim().toLowerCase();
|
|
60830
60834
|
var READINESS_GATE_QUESTION_PARAMS = {
|
|
60831
60835
|
questions: [
|
|
@@ -60870,6 +60874,34 @@ function toolResultHasChatAnswer(result) {
|
|
|
60870
60874
|
return false;
|
|
60871
60875
|
return answers.some((a) => a !== null && typeof a === "object" && a.kind === "chat");
|
|
60872
60876
|
}
|
|
60877
|
+
function firstReadinessAnswer(result) {
|
|
60878
|
+
if (result === null || typeof result !== "object")
|
|
60879
|
+
return;
|
|
60880
|
+
const details = result.details;
|
|
60881
|
+
if (details === null || typeof details !== "object")
|
|
60882
|
+
return;
|
|
60883
|
+
const answers = details.answers;
|
|
60884
|
+
if (!Array.isArray(answers))
|
|
60885
|
+
return;
|
|
60886
|
+
const first = answers[0];
|
|
60887
|
+
return first !== null && typeof first === "object" ? first : undefined;
|
|
60888
|
+
}
|
|
60889
|
+
function readinessStayMessage(result) {
|
|
60890
|
+
const first = firstReadinessAnswer(result);
|
|
60891
|
+
if (first === undefined)
|
|
60892
|
+
return;
|
|
60893
|
+
if (first.kind === "chat")
|
|
60894
|
+
return READINESS_GATE_CHAT_MESSAGE;
|
|
60895
|
+
if (first.kind !== "custom" || typeof first.answer !== "string")
|
|
60896
|
+
return;
|
|
60897
|
+
return first.answer.trim().length > 0 ? first.answer : undefined;
|
|
60898
|
+
}
|
|
60899
|
+
function interpretReadinessResult(result) {
|
|
60900
|
+
if (readinessResultMeansAdvance(result))
|
|
60901
|
+
return { action: "advance" };
|
|
60902
|
+
const message = readinessStayMessage(result);
|
|
60903
|
+
return message !== undefined ? { action: "stay", message } : { action: "stay" };
|
|
60904
|
+
}
|
|
60873
60905
|
function shouldInjectResumeContinuation(state) {
|
|
60874
60906
|
if (state.reason === false || state.aborted)
|
|
60875
60907
|
return false;
|
|
@@ -60878,14 +60910,14 @@ function shouldInjectResumeContinuation(state) {
|
|
|
60878
60910
|
var cachedReadinessGateTool;
|
|
60879
60911
|
function readinessGateTool() {
|
|
60880
60912
|
if (cachedReadinessGateTool === undefined) {
|
|
60881
|
-
cachedReadinessGateTool = createAskUserQuestionToolDefinition();
|
|
60913
|
+
cachedReadinessGateTool = createAskUserQuestionToolDefinition({ chatAsOption: true });
|
|
60882
60914
|
}
|
|
60883
60915
|
return cachedReadinessGateTool;
|
|
60884
60916
|
}
|
|
60885
60917
|
async function askReadinessViaStageBroker(runId, stageId, signal) {
|
|
60886
60918
|
const execute = readinessGateTool().execute;
|
|
60887
60919
|
if (execute === undefined)
|
|
60888
|
-
return "advance";
|
|
60920
|
+
return { action: "advance" };
|
|
60889
60921
|
const gateContext = {
|
|
60890
60922
|
hasUI: true,
|
|
60891
60923
|
ui: {
|
|
@@ -60898,7 +60930,7 @@ async function askReadinessViaStageBroker(runId, stageId, signal) {
|
|
|
60898
60930
|
stageUiBroker.provideStagePrompt(runId, stageId, gateAdapter);
|
|
60899
60931
|
try {
|
|
60900
60932
|
const result = await execute(gatePromptId, READINESS_GATE_QUESTION_PARAMS, signal, undefined, gateContext);
|
|
60901
|
-
return
|
|
60933
|
+
return interpretReadinessResult(result);
|
|
60902
60934
|
} finally {
|
|
60903
60935
|
stageUiBroker.clearStagePrompt(runId, stageId);
|
|
60904
60936
|
}
|
|
@@ -64990,12 +65022,6 @@ function buildPromptNodeUiAdapter(input) {
|
|
|
64990
65022
|
throw err;
|
|
64991
65023
|
}
|
|
64992
65024
|
if (isCustom) {
|
|
64993
|
-
if (descriptor.options?.overlay === true) {
|
|
64994
|
-
const error = new Error("atomic-workflows: ctx.ui.custom overlay mode is unavailable in the workflow graph viewer");
|
|
64995
|
-
applyFailureToStage(stageSnapshot, input.classifyExecutorFailure(error));
|
|
64996
|
-
await finalizePromptStage("failed");
|
|
64997
|
-
throw error;
|
|
64998
|
-
}
|
|
64999
65025
|
const mergedSignal = mergeHilSignals(input.signal, descriptor.options?.signal);
|
|
65000
65026
|
try {
|
|
65001
65027
|
if (mergedSignal.signal.aborted)
|
|
@@ -68041,11 +68067,11 @@ function createTrackedStageCaller(input) {
|
|
|
68041
68067
|
stageName: runtime.name,
|
|
68042
68068
|
signal: runtime.signal
|
|
68043
68069
|
});
|
|
68044
|
-
return ready ? "advance" : "stay";
|
|
68070
|
+
return ready ? { action: "advance" } : { action: "stay" };
|
|
68045
68071
|
}
|
|
68046
68072
|
return await askReadinessViaStageBroker(runtime.runId, runtime.stageId, runtime.signal);
|
|
68047
68073
|
} catch {
|
|
68048
|
-
return "advance";
|
|
68074
|
+
return { action: "advance" };
|
|
68049
68075
|
}
|
|
68050
68076
|
};
|
|
68051
68077
|
const suppressReadinessForCurrentTurn = () => {
|
|
@@ -68187,25 +68213,29 @@ function createTrackedStageCaller(input) {
|
|
|
68187
68213
|
try {
|
|
68188
68214
|
while (runtime.state.askUserQuestionObservedThisTurn || repeatReadinessAfterChatTurn) {
|
|
68189
68215
|
const decision = await confirmReadiness();
|
|
68190
|
-
if (decision === "advance")
|
|
68216
|
+
if (decision.action === "advance")
|
|
68191
68217
|
break;
|
|
68192
68218
|
if (runtime.signal.aborted)
|
|
68193
68219
|
break;
|
|
68194
68220
|
runtime.state.askUserQuestionObservedThisTurn = false;
|
|
68195
68221
|
runtime.state.chatAnswerObservedThisTurn = false;
|
|
68196
|
-
|
|
68197
|
-
|
|
68198
|
-
|
|
68199
|
-
|
|
68200
|
-
|
|
68201
|
-
|
|
68202
|
-
|
|
68203
|
-
|
|
68204
|
-
|
|
68222
|
+
if (decision.message !== undefined) {
|
|
68223
|
+
result = await runtime.raceStageSessionHeartbeat(raceAbort(runtime.innerCtx.prompt(decision.message), runtime.signal));
|
|
68224
|
+
} else {
|
|
68225
|
+
runtime.state.waitingForStageChatTurn = true;
|
|
68226
|
+
try {
|
|
68227
|
+
await runtime.raceStageSessionHeartbeat(raceAbort(new Promise((resolve11) => {
|
|
68228
|
+
resolveNextTurnEnd = resolve11;
|
|
68229
|
+
runtime.state.wakeWaitingForStageChatTurn = resolve11;
|
|
68230
|
+
}), runtime.signal));
|
|
68231
|
+
} finally {
|
|
68232
|
+
runtime.state.wakeWaitingForStageChatTurn = undefined;
|
|
68233
|
+
runtime.state.waitingForStageChatTurn = false;
|
|
68234
|
+
}
|
|
68235
|
+
if (runtime.signal.aborted)
|
|
68236
|
+
break;
|
|
68237
|
+
result = runtime.innerCtx.__getLastAssistantText() ?? result;
|
|
68205
68238
|
}
|
|
68206
|
-
if (runtime.signal.aborted)
|
|
68207
|
-
break;
|
|
68208
|
-
result = runtime.innerCtx.__getLastAssistantText() ?? result;
|
|
68209
68239
|
const continuationDrain = await drainResumeContinuations(result);
|
|
68210
68240
|
result = continuationDrain.result;
|
|
68211
68241
|
repeatReadinessAfterChatTurn ||= continuationDrain.chatAnswerObserved;
|