@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.
Files changed (71) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  4. package/dist/builtin/mcp/package.json +2 -2
  5. package/dist/builtin/subagents/CHANGELOG.md +6 -0
  6. package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
  7. package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
  8. package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
  9. package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
  10. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
  11. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
  12. package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
  13. package/dist/builtin/subagents/agents/debugger.md +1 -1
  14. package/dist/builtin/subagents/agents/worker.md +1 -1
  15. package/dist/builtin/subagents/package.json +1 -1
  16. package/dist/builtin/web-access/CHANGELOG.md +6 -0
  17. package/dist/builtin/web-access/package.json +2 -2
  18. package/dist/builtin/workflows/CHANGELOG.md +12 -0
  19. package/dist/builtin/workflows/README.md +1 -1
  20. package/dist/builtin/workflows/builtin/goal-models.ts +4 -2
  21. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +2 -1
  22. package/dist/builtin/workflows/builtin/ralph-models.ts +10 -5
  23. package/dist/builtin/workflows/package.json +1 -1
  24. package/dist/builtin/workflows/src/extension/index.bundle.mjs +67 -37
  25. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +32 -4
  26. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +3 -9
  27. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +27 -20
  28. package/dist/builtin/workflows/src/runs/foreground/executor.ts +4 -0
  29. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +6 -1
  30. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +6 -1
  31. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +7 -8
  32. package/dist/core/tools/ask-user-question/ask-user-question.d.ts +3 -1
  33. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  34. package/dist/core/tools/ask-user-question/ask-user-question.js +2 -1
  35. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  36. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -0
  37. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
  38. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -0
  39. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  40. package/dist/core/tools/ask-user-question/state/key-router.d.ts.map +1 -1
  41. package/dist/core/tools/ask-user-question/state/key-router.js +3 -1
  42. package/dist/core/tools/ask-user-question/state/key-router.js.map +1 -1
  43. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +3 -0
  44. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  45. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +3 -0
  46. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  47. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts +1 -0
  48. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  49. package/dist/core/tools/ask-user-question/state/state-reducer.js +3 -1
  50. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  51. package/dist/core/tools/ask-user-question/view/components/chat-row-view.d.ts +2 -0
  52. package/dist/core/tools/ask-user-question/view/components/chat-row-view.d.ts.map +1 -1
  53. package/dist/core/tools/ask-user-question/view/components/chat-row-view.js +1 -0
  54. package/dist/core/tools/ask-user-question/view/components/chat-row-view.js.map +1 -1
  55. package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts +3 -0
  56. package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts.map +1 -1
  57. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js +2 -1
  58. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js.map +1 -1
  59. package/dist/core/tools/edit-batch.d.ts +33 -0
  60. package/dist/core/tools/edit-batch.d.ts.map +1 -0
  61. package/dist/core/tools/edit-batch.js +89 -0
  62. package/dist/core/tools/edit-batch.js.map +1 -0
  63. package/dist/core/tools/edit.d.ts +1 -1
  64. package/dist/core/tools/edit.d.ts.map +1 -1
  65. package/dist/core/tools/edit.js +98 -42
  66. package/dist/core/tools/edit.js.map +1 -1
  67. package/docs/providers.md +1 -1
  68. package/docs/tools.md +1 -1
  69. package/docs/workflows.md +3 -3
  70. package/npm-shrinkwrap.json +65 -50
  71. 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.2",
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.2",
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.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:high, 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
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:high, 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
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:high, 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
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:high, 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
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:high, 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
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:high, 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
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:high, 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
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:high, 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
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:high, 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
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.2",
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.2",
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.7.0"
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. Inline graph rendering is supported; `overlay: true` is rejected clearly because nested workflow graph overlays are not safely supported yet.
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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/workflows",
3
- "version": "0.9.14-alpha.2",
3
+ "version": "0.9.14-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension for multi-stage workflow authoring and execution.",
6
6
  "contributors": [
@@ -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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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:high",
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 readinessResultMeansAdvance(result) ? "advance" : "stay";
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
- runtime.state.waitingForStageChatTurn = true;
68197
- try {
68198
- await runtime.raceStageSessionHeartbeat(raceAbort(new Promise((resolve11) => {
68199
- resolveNextTurnEnd = resolve11;
68200
- runtime.state.wakeWaitingForStageChatTurn = resolve11;
68201
- }), runtime.signal));
68202
- } finally {
68203
- runtime.state.wakeWaitingForStageChatTurn = undefined;
68204
- runtime.state.waitingForStageChatTurn = false;
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;