@bastani/atomic 0.9.14-alpha.6 → 0.9.15-alpha.1

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 (526) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +1 -1
  3. package/dist/builtin/intercom/package.json +2 -2
  4. package/dist/builtin/mcp/CHANGELOG.md +14 -0
  5. package/dist/builtin/mcp/package.json +4 -4
  6. package/dist/builtin/mcp/sampling-handler.ts +2 -2
  7. package/dist/builtin/mcp/types.ts +1 -1
  8. package/dist/builtin/subagents/CHANGELOG.md +42 -0
  9. package/dist/builtin/subagents/README.md +5 -22
  10. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  11. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  12. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  13. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  14. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  15. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  16. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  17. package/dist/builtin/subagents/agents/worker.md +2 -2
  18. package/dist/builtin/subagents/package.json +4 -4
  19. package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
  20. package/dist/builtin/subagents/src/agents/agent-loaders.ts +0 -4
  21. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +1 -12
  22. package/dist/builtin/subagents/src/agents/agent-management.ts +0 -1
  23. package/dist/builtin/subagents/src/agents/agent-serializer.ts +7 -6
  24. package/dist/builtin/subagents/src/agents/agent-types.ts +0 -1
  25. package/dist/builtin/subagents/src/extension/schemas.ts +2 -2
  26. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +2 -2
  27. package/dist/builtin/subagents/src/intercom/result-intercom.ts +0 -127
  28. package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +1 -3
  29. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +15 -106
  30. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +0 -3
  31. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +2 -13
  32. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +2 -12
  33. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +1 -20
  34. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +0 -6
  35. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +10 -21
  36. package/dist/builtin/subagents/src/runs/inprocess/attempt-handles.ts +104 -0
  37. package/dist/builtin/subagents/src/runs/inprocess/index.ts +10 -21
  38. package/dist/builtin/subagents/src/runs/inprocess/prompt-behavior.ts +2 -3
  39. package/dist/builtin/subagents/src/runs/inprocess/runner.ts +11 -32
  40. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/temp-cleanup.ts +69 -0
  41. package/dist/builtin/subagents/src/shared/model-resolution.ts +1 -1
  42. package/dist/builtin/subagents/src/shared/types-config.ts +0 -4
  43. package/dist/builtin/subagents/src/shared/types-depth.ts +15 -103
  44. package/dist/builtin/subagents/src/shared/types-foreground-state.ts +56 -0
  45. package/dist/builtin/subagents/src/shared/types-results.ts +1 -59
  46. package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -2
  47. package/dist/builtin/subagents/src/shared/types.ts +1 -1
  48. package/dist/builtin/subagents/src/shared/utils.ts +1 -1
  49. package/dist/builtin/subagents/src/slash/slash-live-state.ts +1 -1
  50. package/dist/builtin/web-access/CHANGELOG.md +16 -0
  51. package/dist/builtin/web-access/package.json +2 -2
  52. package/dist/builtin/web-access/summary-review.ts +2 -2
  53. package/dist/builtin/web-access/web-search-summary.ts +2 -2
  54. package/dist/builtin/workflows/CHANGELOG.md +84 -0
  55. package/dist/builtin/workflows/README.md +2 -2
  56. package/dist/builtin/workflows/package.json +2 -2
  57. package/dist/builtin/workflows/src/extension/index.bundle.mjs +60473 -401
  58. package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
  59. package/dist/builtin/workflows/src/extension/wiring.ts +1 -1
  60. package/dist/builtin/workflows/src/extension/workflow-heartbeat-delivery.ts +48 -4
  61. package/dist/builtin/workflows/src/extension/workflow-tool.ts +1 -1
  62. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +5 -0
  63. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +35 -2
  64. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +1 -1
  65. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +6 -0
  66. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +15 -13
  67. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +25 -2
  68. package/dist/bun/cli.js +1 -1
  69. package/dist/bun/cli.js.map +1 -1
  70. package/dist/bun/register-bedrock.js +2 -2
  71. package/dist/bun/register-bedrock.js.map +1 -1
  72. package/dist/cli/auth-check.d.ts +1 -1
  73. package/dist/cli/auth-check.d.ts.map +1 -1
  74. package/dist/cli/auth-check.js +1 -1
  75. package/dist/cli/auth-check.js.map +1 -1
  76. package/dist/cli/credential-print.d.ts +1 -1
  77. package/dist/cli/credential-print.d.ts.map +1 -1
  78. package/dist/cli/credential-print.js +2 -2
  79. package/dist/cli/credential-print.js.map +1 -1
  80. package/dist/cli/file-processor.d.ts +1 -1
  81. package/dist/cli/file-processor.d.ts.map +1 -1
  82. package/dist/cli/file-processor.js.map +1 -1
  83. package/dist/cli/initial-message.d.ts +1 -1
  84. package/dist/cli/initial-message.d.ts.map +1 -1
  85. package/dist/cli/initial-message.js.map +1 -1
  86. package/dist/cli/list-models.js.map +1 -1
  87. package/dist/core/agent-session-auto-compaction.d.ts +1 -1
  88. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  89. package/dist/core/agent-session-auto-compaction.js +1 -1
  90. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  91. package/dist/core/agent-session-events.d.ts +1 -1
  92. package/dist/core/agent-session-events.d.ts.map +1 -1
  93. package/dist/core/agent-session-events.js +1 -1
  94. package/dist/core/agent-session-events.js.map +1 -1
  95. package/dist/core/agent-session-export.js.map +1 -1
  96. package/dist/core/agent-session-extension-bindings.js +1 -1
  97. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  98. package/dist/core/agent-session-message-queue.d.ts +1 -1
  99. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  100. package/dist/core/agent-session-message-queue.js.map +1 -1
  101. package/dist/core/agent-session-methods.d.ts +2 -2
  102. package/dist/core/agent-session-methods.d.ts.map +1 -1
  103. package/dist/core/agent-session-methods.js.map +1 -1
  104. package/dist/core/agent-session-models.d.ts +2 -2
  105. package/dist/core/agent-session-models.d.ts.map +1 -1
  106. package/dist/core/agent-session-models.js +2 -2
  107. package/dist/core/agent-session-models.js.map +1 -1
  108. package/dist/core/agent-session-prompt.d.ts +1 -1
  109. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  110. package/dist/core/agent-session-prompt.js.map +1 -1
  111. package/dist/core/agent-session-retry.d.ts +1 -1
  112. package/dist/core/agent-session-retry.d.ts.map +1 -1
  113. package/dist/core/agent-session-retry.js +1 -1
  114. package/dist/core/agent-session-retry.js.map +1 -1
  115. package/dist/core/agent-session-runtime-auth.js +1 -1
  116. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  117. package/dist/core/agent-session-runtime.d.ts +1 -1
  118. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  119. package/dist/core/agent-session-runtime.js +1 -1
  120. package/dist/core/agent-session-runtime.js.map +1 -1
  121. package/dist/core/agent-session-services.d.ts +1 -1
  122. package/dist/core/agent-session-services.d.ts.map +1 -1
  123. package/dist/core/agent-session-services.js.map +1 -1
  124. package/dist/core/agent-session-state.d.ts +1 -1
  125. package/dist/core/agent-session-state.d.ts.map +1 -1
  126. package/dist/core/agent-session-state.js.map +1 -1
  127. package/dist/core/agent-session-tree.js.map +1 -1
  128. package/dist/core/agent-session-types.d.ts +1 -1
  129. package/dist/core/agent-session-types.d.ts.map +1 -1
  130. package/dist/core/agent-session-types.js.map +1 -1
  131. package/dist/core/agent-session.d.ts +1 -1
  132. package/dist/core/agent-session.d.ts.map +1 -1
  133. package/dist/core/agent-session.js.map +1 -1
  134. package/dist/core/anthropic-thinking-guard.d.ts +1 -1
  135. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  136. package/dist/core/anthropic-thinking-guard.js +1 -1
  137. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  138. package/dist/core/auth-storage.d.ts +1 -1
  139. package/dist/core/auth-storage.d.ts.map +1 -1
  140. package/dist/core/auth-storage.js.map +1 -1
  141. package/dist/core/cache-stats.d.ts +1 -1
  142. package/dist/core/cache-stats.d.ts.map +1 -1
  143. package/dist/core/cache-stats.js.map +1 -1
  144. package/dist/core/cloudflare-gateway-binding.d.ts +1 -1
  145. package/dist/core/cloudflare-gateway-binding.d.ts.map +1 -1
  146. package/dist/core/cloudflare-gateway-binding.js +1 -1
  147. package/dist/core/cloudflare-gateway-binding.js.map +1 -1
  148. package/dist/core/codex-fast-mode.d.ts +2 -2
  149. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  150. package/dist/core/codex-fast-mode.js +3 -2
  151. package/dist/core/codex-fast-mode.js.map +1 -1
  152. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  153. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  154. package/dist/core/compaction/branch-summarization.js +2 -2
  155. package/dist/core/compaction/branch-summarization.js.map +1 -1
  156. package/dist/core/compaction/compaction-runner.d.ts +2 -2
  157. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  158. package/dist/core/compaction/compaction-runner.js.map +1 -1
  159. package/dist/core/compaction/compaction-types.d.ts +2 -2
  160. package/dist/core/compaction/compaction-types.d.ts.map +1 -1
  161. package/dist/core/compaction/compaction-types.js.map +1 -1
  162. package/dist/core/compaction/compaction.d.ts +1 -1
  163. package/dist/core/compaction/compaction.d.ts.map +1 -1
  164. package/dist/core/compaction/compaction.js.map +1 -1
  165. package/dist/core/compaction/fallback-planner.d.ts +1 -1
  166. package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
  167. package/dist/core/compaction/fallback-planner.js.map +1 -1
  168. package/dist/core/compaction/planner-outcome.d.ts +1 -1
  169. package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
  170. package/dist/core/compaction/planner-outcome.js +1 -1
  171. package/dist/core/compaction/planner-outcome.js.map +1 -1
  172. package/dist/core/compaction/range-planner-diagnostics.d.ts +1 -1
  173. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  174. package/dist/core/compaction/range-planner-diagnostics.js +1 -1
  175. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  176. package/dist/core/compaction/range-planner.d.ts +2 -2
  177. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  178. package/dist/core/compaction/range-planner.js +2 -2
  179. package/dist/core/compaction/range-planner.js.map +1 -1
  180. package/dist/core/compaction/session-summarization.d.ts +2 -2
  181. package/dist/core/compaction/session-summarization.d.ts.map +1 -1
  182. package/dist/core/compaction/session-summarization.js +2 -2
  183. package/dist/core/compaction/session-summarization.js.map +1 -1
  184. package/dist/core/compaction/transcript-serialization.d.ts +1 -1
  185. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  186. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  187. package/dist/core/compaction/utils.d.ts +1 -1
  188. package/dist/core/compaction/utils.d.ts.map +1 -1
  189. package/dist/core/compaction/utils.js.map +1 -1
  190. package/dist/core/experimental.d.ts +1 -1
  191. package/dist/core/experimental.d.ts.map +1 -1
  192. package/dist/core/experimental.js.map +1 -1
  193. package/dist/core/export-html/tool-renderer.js.map +1 -1
  194. package/dist/core/extensions/agent-events.d.ts +2 -2
  195. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  196. package/dist/core/extensions/agent-events.js.map +1 -1
  197. package/dist/core/extensions/api-types.d.ts +2 -2
  198. package/dist/core/extensions/api-types.d.ts.map +1 -1
  199. package/dist/core/extensions/api-types.js.map +1 -1
  200. package/dist/core/extensions/context-types.d.ts +1 -7
  201. package/dist/core/extensions/context-types.d.ts.map +1 -1
  202. package/dist/core/extensions/context-types.js.map +1 -1
  203. package/dist/core/extensions/event-results.d.ts +1 -1
  204. package/dist/core/extensions/event-results.d.ts.map +1 -1
  205. package/dist/core/extensions/event-results.js.map +1 -1
  206. package/dist/core/extensions/index.d.ts +1 -1
  207. package/dist/core/extensions/index.d.ts.map +1 -1
  208. package/dist/core/extensions/index.js.map +1 -1
  209. package/dist/core/extensions/loader-api.js.map +1 -1
  210. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  211. package/dist/core/extensions/loader-virtual-modules.js +21 -9
  212. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  213. package/dist/core/extensions/provider-types.d.ts +2 -2
  214. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  215. package/dist/core/extensions/provider-types.js.map +1 -1
  216. package/dist/core/extensions/reactive-widget.d.ts +6 -0
  217. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  218. package/dist/core/extensions/reactive-widget.js +62 -6
  219. package/dist/core/extensions/reactive-widget.js.map +1 -1
  220. package/dist/core/extensions/runner-context.d.ts +1 -1
  221. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  222. package/dist/core/extensions/runner-context.js.map +1 -1
  223. package/dist/core/extensions/runner-events.d.ts +1 -1
  224. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  225. package/dist/core/extensions/runner-events.js.map +1 -1
  226. package/dist/core/extensions/runner.d.ts +2 -2
  227. package/dist/core/extensions/runner.d.ts.map +1 -1
  228. package/dist/core/extensions/runner.js.map +1 -1
  229. package/dist/core/extensions/runtime-types.d.ts +2 -2
  230. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  231. package/dist/core/extensions/runtime-types.js.map +1 -1
  232. package/dist/core/extensions/tool-events.d.ts +1 -1
  233. package/dist/core/extensions/tool-events.d.ts.map +1 -1
  234. package/dist/core/extensions/tool-events.js.map +1 -1
  235. package/dist/core/extensions/tool-types.d.ts +2 -2
  236. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  237. package/dist/core/extensions/tool-types.js.map +1 -1
  238. package/dist/core/extensions/ui-types.d.ts +2 -0
  239. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  240. package/dist/core/extensions/ui-types.js.map +1 -1
  241. package/dist/core/fallback-models.d.ts +1 -1
  242. package/dist/core/fallback-models.d.ts.map +1 -1
  243. package/dist/core/fallback-models.js.map +1 -1
  244. package/dist/core/http-dispatcher.d.ts.map +1 -1
  245. package/dist/core/http-dispatcher.js +14 -0
  246. package/dist/core/http-dispatcher.js.map +1 -1
  247. package/dist/core/messages.d.ts +1 -1
  248. package/dist/core/messages.d.ts.map +1 -1
  249. package/dist/core/messages.js.map +1 -1
  250. package/dist/core/model-capabilities.d.ts +1 -1
  251. package/dist/core/model-capabilities.d.ts.map +1 -1
  252. package/dist/core/model-capabilities.js.map +1 -1
  253. package/dist/core/model-fallback-failures.d.ts.map +1 -1
  254. package/dist/core/model-fallback-failures.js +18 -1
  255. package/dist/core/model-fallback-failures.js.map +1 -1
  256. package/dist/core/model-registry.d.ts +1 -1
  257. package/dist/core/model-registry.d.ts.map +1 -1
  258. package/dist/core/model-registry.js.map +1 -1
  259. package/dist/core/model-resolver-cli.js.map +1 -1
  260. package/dist/core/model-resolver-defaults.d.ts +1 -1
  261. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  262. package/dist/core/model-resolver-defaults.js +1 -1
  263. package/dist/core/model-resolver-defaults.js.map +1 -1
  264. package/dist/core/model-resolver-initial.d.ts +1 -1
  265. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  266. package/dist/core/model-resolver-initial.js.map +1 -1
  267. package/dist/core/model-resolver-patterns.d.ts +1 -1
  268. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  269. package/dist/core/model-resolver-patterns.js.map +1 -1
  270. package/dist/core/model-resolver-scope.d.ts +1 -1
  271. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  272. package/dist/core/model-resolver-scope.js +1 -1
  273. package/dist/core/model-resolver-scope.js.map +1 -1
  274. package/dist/core/model-resolver-types.d.ts +1 -1
  275. package/dist/core/model-resolver-types.d.ts.map +1 -1
  276. package/dist/core/model-resolver-types.js.map +1 -1
  277. package/dist/core/model-runtime-auth.d.ts +1 -1
  278. package/dist/core/model-runtime-auth.d.ts.map +1 -1
  279. package/dist/core/model-runtime-auth.js.map +1 -1
  280. package/dist/core/model-runtime-providers.d.ts +2 -2
  281. package/dist/core/model-runtime-providers.d.ts.map +1 -1
  282. package/dist/core/model-runtime-providers.js +2 -2
  283. package/dist/core/model-runtime-providers.js.map +1 -1
  284. package/dist/core/model-runtime-restoration.d.ts +1 -1
  285. package/dist/core/model-runtime-restoration.d.ts.map +1 -1
  286. package/dist/core/model-runtime-restoration.js.map +1 -1
  287. package/dist/core/model-runtime-snapshot.d.ts +1 -1
  288. package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
  289. package/dist/core/model-runtime-snapshot.js.map +1 -1
  290. package/dist/core/model-runtime-streaming.d.ts +1 -1
  291. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  292. package/dist/core/model-runtime-streaming.js +1 -1
  293. package/dist/core/model-runtime-streaming.js.map +1 -1
  294. package/dist/core/model-runtime-types.d.ts +1 -1
  295. package/dist/core/model-runtime-types.d.ts.map +1 -1
  296. package/dist/core/model-runtime-types.js.map +1 -1
  297. package/dist/core/model-runtime.d.ts +8 -1
  298. package/dist/core/model-runtime.d.ts.map +1 -1
  299. package/dist/core/model-runtime.js +15 -3
  300. package/dist/core/model-runtime.js.map +1 -1
  301. package/dist/core/models-store.d.ts +1 -1
  302. package/dist/core/models-store.d.ts.map +1 -1
  303. package/dist/core/models-store.js.map +1 -1
  304. package/dist/core/oauth-login.d.ts +1 -1
  305. package/dist/core/oauth-login.d.ts.map +1 -1
  306. package/dist/core/oauth-login.js.map +1 -1
  307. package/dist/core/oauth-provider-metadata.d.ts +1 -1
  308. package/dist/core/oauth-provider-metadata.d.ts.map +1 -1
  309. package/dist/core/oauth-provider-metadata.js.map +1 -1
  310. package/dist/core/openai-responses-payload-sanitizer.d.ts +1 -1
  311. package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
  312. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  313. package/dist/core/provider-attribution.d.ts +1 -1
  314. package/dist/core/provider-attribution.d.ts.map +1 -1
  315. package/dist/core/provider-attribution.js.map +1 -1
  316. package/dist/core/provider-composer-internal.d.ts +1 -1
  317. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  318. package/dist/core/provider-composer-internal.js.map +1 -1
  319. package/dist/core/provider-composer.d.ts +1 -1
  320. package/dist/core/provider-composer.d.ts.map +1 -1
  321. package/dist/core/provider-composer.js +2 -2
  322. package/dist/core/provider-composer.js.map +1 -1
  323. package/dist/core/provider-context-usage.d.ts.map +1 -1
  324. package/dist/core/provider-context-usage.js.map +1 -1
  325. package/dist/core/remote-catalog-provider.d.ts +1 -1
  326. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  327. package/dist/core/remote-catalog-provider.js.map +1 -1
  328. package/dist/core/runtime-credentials.d.ts +1 -1
  329. package/dist/core/runtime-credentials.d.ts.map +1 -1
  330. package/dist/core/runtime-credentials.js.map +1 -1
  331. package/dist/core/sdk-types.d.ts +1 -1
  332. package/dist/core/sdk-types.d.ts.map +1 -1
  333. package/dist/core/sdk-types.js.map +1 -1
  334. package/dist/core/sdk.d.ts +1 -1
  335. package/dist/core/sdk.d.ts.map +1 -1
  336. package/dist/core/sdk.js +30 -6
  337. package/dist/core/sdk.js.map +1 -1
  338. package/dist/core/session-manager-core.d.ts +2 -2
  339. package/dist/core/session-manager-core.d.ts.map +1 -1
  340. package/dist/core/session-manager-core.js.map +1 -1
  341. package/dist/core/session-manager-entries.d.ts +1 -1
  342. package/dist/core/session-manager-entries.d.ts.map +1 -1
  343. package/dist/core/session-manager-entries.js.map +1 -1
  344. package/dist/core/session-manager-list.js.map +1 -1
  345. package/dist/core/session-manager-types.d.ts +1 -1
  346. package/dist/core/session-manager-types.d.ts.map +1 -1
  347. package/dist/core/session-manager-types.js.map +1 -1
  348. package/dist/core/session-manager-validation.js +1 -1
  349. package/dist/core/session-manager-validation.js.map +1 -1
  350. package/dist/core/settings-manager-basic-accessors.d.ts +1 -0
  351. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  352. package/dist/core/settings-manager-basic-accessors.js +11 -0
  353. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  354. package/dist/core/settings-types.d.ts +2 -1
  355. package/dist/core/settings-types.d.ts.map +1 -1
  356. package/dist/core/settings-types.js.map +1 -1
  357. package/dist/core/summarization-retry.d.ts +1 -1
  358. package/dist/core/summarization-retry.d.ts.map +1 -1
  359. package/dist/core/summarization-retry.js.map +1 -1
  360. package/dist/core/tools/bash-session-environment.d.ts +1 -1
  361. package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
  362. package/dist/core/tools/bash-session-environment.js.map +1 -1
  363. package/dist/core/tools/oversized-tool-result.d.ts +1 -1
  364. package/dist/core/tools/oversized-tool-result.d.ts.map +1 -1
  365. package/dist/core/tools/oversized-tool-result.js.map +1 -1
  366. package/dist/core/tools/read-url.d.ts +1 -1
  367. package/dist/core/tools/read-url.d.ts.map +1 -1
  368. package/dist/core/tools/read-url.js.map +1 -1
  369. package/dist/core/tools/read.d.ts.map +1 -1
  370. package/dist/core/tools/read.js.map +1 -1
  371. package/dist/core/tools/render-utils.d.ts +1 -1
  372. package/dist/core/tools/render-utils.d.ts.map +1 -1
  373. package/dist/core/tools/render-utils.js.map +1 -1
  374. package/dist/core/tools/resource-selectors.d.ts +1 -1
  375. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  376. package/dist/core/tools/resource-selectors.js +2 -7
  377. package/dist/core/tools/resource-selectors.js.map +1 -1
  378. package/dist/core/typebox-compat.js +1 -1
  379. package/dist/core/typebox-compat.js.map +1 -1
  380. package/dist/core/usage-totals.d.ts +1 -1
  381. package/dist/core/usage-totals.d.ts.map +1 -1
  382. package/dist/core/usage-totals.js.map +1 -1
  383. package/dist/extensions/llama/provider.d.ts +1 -1
  384. package/dist/extensions/llama/provider.d.ts.map +1 -1
  385. package/dist/extensions/llama/provider.js +1 -1
  386. package/dist/extensions/llama/provider.js.map +1 -1
  387. package/dist/main-app-mode.d.ts +1 -1
  388. package/dist/main-app-mode.d.ts.map +1 -1
  389. package/dist/main-app-mode.js.map +1 -1
  390. package/dist/main-session-options.js +1 -1
  391. package/dist/main-session-options.js.map +1 -1
  392. package/dist/modes/interactive/components/assistant-message.d.ts +1 -1
  393. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  394. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  395. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  396. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  397. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  398. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  399. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  400. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  401. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  402. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  403. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  404. package/dist/modes/interactive/components/model-selector.js +1 -1
  405. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  406. package/dist/modes/interactive/components/scoped-models-selector.d.ts +1 -1
  407. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  408. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  409. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  410. package/dist/modes/interactive/components/settings-selector-types.d.ts +1 -1
  411. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  412. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  413. package/dist/modes/interactive/interactive-auth-routing.js +1 -1
  414. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  415. package/dist/modes/interactive/interactive-deferred-startup.js +1 -1
  416. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  417. package/dist/modes/interactive/interactive-extension-context.js +26 -0
  418. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  419. package/dist/modes/interactive/interactive-extension-runtime.js +7 -2
  420. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  421. package/dist/modes/interactive/interactive-mode-base.d.ts +1 -0
  422. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  423. package/dist/modes/interactive/interactive-mode-base.js +1 -0
  424. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  425. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
  426. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  427. package/dist/modes/interactive/interactive-mode-deps.js +1 -1
  428. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  429. package/dist/modes/interactive/interactive-mode-helpers.js +1 -1
  430. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  431. package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -0
  432. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  433. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  434. package/dist/modes/interactive/model-catalog-refresh.d.ts +1 -1
  435. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  436. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  437. package/dist/modes/interactive/streaming-assistant-message.d.ts +1 -1
  438. package/dist/modes/interactive/streaming-assistant-message.d.ts.map +1 -1
  439. package/dist/modes/interactive/streaming-assistant-message.js.map +1 -1
  440. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -0
  441. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  442. package/dist/modes/interactive-engine/engine-custom-ui.js +26 -3
  443. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  444. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  445. package/dist/modes/interactive-engine/remote-component.d.ts +2 -1
  446. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  447. package/dist/modes/interactive-engine/remote-component.js +14 -0
  448. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  449. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  450. package/dist/modes/json-event.d.ts +1 -1
  451. package/dist/modes/json-event.d.ts.map +1 -1
  452. package/dist/modes/json-event.js.map +1 -1
  453. package/dist/modes/print-mode.d.ts +1 -1
  454. package/dist/modes/print-mode.d.ts.map +1 -1
  455. package/dist/modes/print-mode.js.map +1 -1
  456. package/dist/modes/rpc/rpc-client-api.d.ts +2 -2
  457. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  458. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  459. package/dist/modes/rpc/rpc-client.d.ts +1 -1
  460. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  461. package/dist/modes/rpc/rpc-client.js.map +1 -1
  462. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  463. package/dist/modes/rpc/rpc-extension-ui.js +4 -1
  464. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  465. package/dist/modes/rpc/rpc-provider-auth.d.ts +1 -1
  466. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  467. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  468. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  469. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  470. package/dist/modes/rpc/rpc-types.js.map +1 -1
  471. package/dist/utils/tool-result-images.d.ts +1 -1
  472. package/dist/utils/tool-result-images.d.ts.map +1 -1
  473. package/dist/utils/tool-result-images.js.map +1 -1
  474. package/docs/custom-provider.md +11 -8
  475. package/docs/development.md +0 -2
  476. package/docs/extensions.md +2 -2
  477. package/docs/json.md +1 -1
  478. package/docs/models/artificial-analysis-index.md +2 -2
  479. package/docs/models/model-selection.md +8 -8
  480. package/docs/models/pareto-efficiency.md +10 -10
  481. package/docs/models.md +9 -3
  482. package/docs/packages.md +1 -1
  483. package/docs/providers.md +5 -3
  484. package/docs/quickstart.md +1 -1
  485. package/docs/rpc.md +1 -1
  486. package/docs/sdk.md +2 -2
  487. package/docs/session-format.md +2 -2
  488. package/docs/settings.md +2 -1
  489. package/docs/subagents.md +5 -6
  490. package/docs/tui.md +3 -0
  491. package/docs/workflows.md +3 -1
  492. package/examples/extensions/README.md +1 -1
  493. package/examples/extensions/custom-footer.ts +1 -1
  494. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  495. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  496. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  497. package/examples/extensions/handoff.ts +2 -2
  498. package/examples/extensions/hello.ts +1 -1
  499. package/examples/extensions/plan-mode/index.ts +1 -1
  500. package/examples/extensions/preset.ts +1 -1
  501. package/examples/extensions/qna.ts +1 -1
  502. package/examples/extensions/subagent/display.ts +1 -1
  503. package/examples/extensions/subagent/runner.ts +1 -1
  504. package/examples/extensions/subagent/types.ts +1 -1
  505. package/examples/extensions/summarize.ts +2 -2
  506. package/examples/extensions/tool-override.ts +1 -1
  507. package/examples/sdk/02-custom-model.ts +1 -1
  508. package/examples/sdk/12-full-control.ts +1 -1
  509. package/examples/sdk/README.md +1 -1
  510. package/npm-shrinkwrap.json +54 -31
  511. package/package.json +3 -3
  512. package/dist/builtin/subagents/src/extension/fanout-child.ts +0 -259
  513. package/dist/builtin/subagents/src/runs/inprocess/nested-routing.ts +0 -218
  514. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-api.ts +0 -55
  515. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-control.ts +0 -178
  516. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-core.ts +0 -187
  517. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-paths.ts +0 -57
  518. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +0 -42
  519. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-registry.ts +0 -352
  520. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-rendering.ts +0 -136
  521. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +0 -252
  522. package/dist/builtin/subagents/src/shared/types-nested.ts +0 -127
  523. package/dist/core/copilot-env-routing.d.ts +0 -36
  524. package/dist/core/copilot-env-routing.d.ts.map +0 -1
  525. package/dist/core/copilot-env-routing.js +0 -94
  526. package/dist/core/copilot-env-routing.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,96 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.15-alpha.1] - 2026-08-21
6
+
7
+ ### Breaking Changes
8
+
9
+ - Two exported SDK types each lose a field, because subagent delegation is now a fixed one-level rule rather than a configurable depth. `WorkflowStageOrchestrationContext.constraints` no longer has the required nesting-depth number and is now `{ disableWorkflowTool: true }`; `SubagentChildPolicy` no longer has the optional inherited delegation limit and keeps `depth` alone. Code that constructs a stage orchestration context must drop the removed required field.
10
+
11
+ ### Changed
12
+
13
+ - `@bastani/pi-ai` now refreshes its models.dev catalog at package build, matching upstream pi-ai, instead of shipping the frozen v0.84.2 snapshot.
14
+
15
+ - Vendored `@earendil-works/pi-ai` into `packages/ai` as `@bastani/pi-ai` and switched Atomic onto the workspace package. First-party imports, extension loader aliases, shrinkwrap, and the release publisher now use `@bastani/pi-ai`. Extensions that still import `@earendil-works/pi-ai` keep resolving through the loader. The first npm version of `@bastani/pi-ai` must be published by hand before a tagged Atomic release can publish it via trusted publishing.
16
+
17
+ - Moved `COPILOT_GITHUB_TOKEN` env-token host routing into `@bastani/pi-ai/providers/github-copilot-env`, preserving `models.json` endpoint overrides ([#2522](https://github.com/bastani-inc/atomic/issues/2522)).
18
+
19
+ - SQLite resource selectors now load `node:sqlite` exclusively; the `bun:sqlite` fallback for Bun releases before 1.4.0 was removed. `node:sqlite` ships unflagged in Node ≥ 22.13 and Bun ≥ 1.4.0, which is now the repository's Bun floor (engines, CI pins, and release binaries all moved to Bun 1.4.0).
20
+
21
+ ### Fixed
22
+
23
+ - Fixed the `400 checking third-party user token: bad request: Personal Access Tokens are not supported for this endpoint` failure for fine-grained PATs supplied through `COPILOT_GITHUB_TOKEN`. Raw tokens now send `Copilot-Integration-Id: copilot-developer-cli`; exchanged OAuth tokens containing a `tid=` segment remain unchanged, and per-request or `models.json` provider/model header overrides win. Catalog default headers are no longer promoted into the per-request override layer, while remaining visible to `before_provider_headers` extension hooks ([#2522](https://github.com/bastani-inc/atomic/issues/2522)).
24
+ - Fixed workflow stages staying `running` forever when GitHub Copilot on the default `transport: "auto"` hit a repeated `Library error: zlib error: incorrect header check`. The stalled provider stream never settled, so retry and model fallback never advanced and the stage transcript kept only its user prompt. Such a failure now settles as a transient transport error and fails over, and a new `streamDeadlineMs` setting (default `300000`; accepts durations such as `30s` and `5m`; `0`/`"disabled"` disables it) bounds the idle gap between provider stream events below the HTTP layer ([#2553](https://github.com/bastani-inc/atomic/issues/2553)).
25
+ - Extension widgets now recover after the interactive host clears or disposes a live widget: reactive controllers receive a release signal, remount exactly once on the next refresh, and preserve in-place updates without flicker. Isolated-engine widgets also discard stale remote mounts before reopening ([#2556](https://github.com/bastani-inc/atomic/issues/2556)).
26
+ - Ported unreleased `packages/ai` commits from `earendil-works/pi` main after the vendored v0.84.2 snapshot into `@bastani/pi-ai`: Copilot login rate-limit handling, Kimi cached-token accounting, Google thinking-level maps, Bedrock response headers and redacted reasoning, Anthropic fallback pricing, Azure Responses `toolChoice`, OpenAI Completions reasoning-details replay, catalog fixes for Xiaomi, China ZAI Coding Plan, Qwen Token Plan Individual, Baseten GLM-5.2, and DeepSeek V4 Flash `low` thinking, plus xAI Responses routing, simple `toolChoice`, generalized thinking-token budgets, adapter User-Agent headers, and dropping the unused OpenTelemetry dependency. Cerebras now defaults to `gpt-oss-120b`.
27
+
28
+ ## [0.9.14] - 2026-08-19
29
+
30
+ Cumulative release of the `0.9.14-alpha.1` – `0.9.14-alpha.5` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
31
+
32
+ ### Breaking Changes
33
+
34
+ - **The `workflow` parameter on bundled `web_search` is gone.** Models cannot select the curator per call. Persist `"workflow": "summary-review"` in web-search config or run `/curator on` to opt in.
35
+
36
+ ### Added
37
+
38
+ - Two new unbound viewport actions, `tui.altScreen.lineUp` and `tui.altScreen.lineDown`, scroll the transcript by a single line ([#2385](https://github.com/bastani-inc/atomic/issues/2385)).
39
+ - Added the `fullscreenExitOutput` setting with a `/settings` row beside **Fullscreen scrollbar**. `"transcript"` (the default) prints the final transcript and session resume hint when an interactive session exits; `"resume-hint"` restores the terminal's previous screen and prints only the resume hint.
40
+ - Added the `defaultTools` setting, which selects the built-in tools a session starts with — an empty array starts with none — while extension and SDK custom tools stay registered and active, so `workflow`, `subagent`, `intercom`, `mcp`, and `web_search` survive a narrow selection. Explicit `--tools`, `--no-tools`, `--no-builtin-tools`, and `--exclude-tools` keep their precedence, a project array replaces the global array, and an unreadable value reads as unset.
41
+ - Added `--use-theme <name[/name]>`, which selects the interactive theme for one run without writing settings. `atomic --use-theme light/dark` follows terminal appearance; choosing another theme later in `/settings` applies immediately and saves normally, and `/export`/`/share` render with the run's theme.
42
+ - Added `expandPromptTemplates` to `sendUserMessage()`. The default stays `false`, so extension-authored messages keep their literal-send meaning; `true` dispatches registered extension commands and expands skill commands and prompt templates, and an unknown command falls through to a literal send.
43
+ - Added opt-in strict JSON-schema constrained sampling for built-in tool definitions behind the existing experimental gate (`ATOMIC_EXPERIMENTAL=1` or legacy `PI_EXPERIMENTAL=1`). `read`, `bash`, `edit`, `write`, `find`, `search`, `ls`, `ask_user_question`, `todo`, and the harness tool wrapper declare `{ type: "json_schema", strict: "prefer" }` only while the gate is on.
44
+ - Added the Cloudflare AI Gateway Workers AI binding transport to the public surface: `createGatewayBindingFetch`, the `CLOUDFLARE_GATEWAY_BINDING_AUTH_SENTINEL` placeholder credential, and the binding types are re-exported from `@bastani/atomic`, and [Providers](docs/providers.md) documents the no-API-token path.
45
+ - Added the `SessionNameState` type and `getSessionNameState()` to the public SDK surface. `getSessionNameState()` reports whether a session was never named, named and then cleared, or currently holds a name — the distinction the session file already records — where `getLatestSessionName` returns only the name.
46
+ - Same-name skills stay independently selectable. `/skill:name` still uses the current project/user-over-package winner, and Atomic now keeps every distinct file as a source-qualified command such as `/skill:tdd@user` and `/skill:tdd@builtin`. Autocomplete, `pi.getCommands()`, RPC `get_commands`, the model-visible skill list, collision diagnostics, and in-process child `skills` selectors share those identities ([#2328](https://github.com/bastani-inc/atomic/issues/2328)).
47
+ - Added `sessionScopedExtensionState()` to the public surface: a host primitive for extension state that must survive `/reload`. Reloading file extensions re-evaluates their module graph, so module-scoped singletons are recreated while the session keeps running; the primitive returns the state already registered for that session's event bus under a caller-chosen key ([#2462](https://github.com/bastani-inc/atomic/issues/2462) by [@makgunay](https://github.com/makgunay)).
48
+ - `ctx.ui.custom()` accepts `reserveTranscriptRows` for bottom-anchored overlay mounts. A blocking dialog sets it to be height-bounded against the terminal and to have its covered transcript-bottom suffix added to the scroll extent. Reserving overlays require a bottom anchor and reject `row` or a nonzero `offsetY`.
49
+ - `OVERLAY_ACTIVE_ROW_MARKER` is exported for components mounted that way. Embed it in the line you most need kept — the selected row of a list — and the bound places what it keeps around that row instead of taking a fixed head. It is a zero-width APC sequence the host strips before painting.
50
+ - Added HumanLayer's bundled `show-me` skill for visual explanations, diagrams, code-shape sketches, and focused HTML artifacts. Sourced from https://github.com/humanlayer/skills and distributed under the MIT License.
51
+
52
+ ### Changed
53
+
54
+ - Adopted the pi 0.84.2 runtime across all six `@earendil-works/pi-*` dependencies ([#2385](https://github.com/bastani-inc/atomic/issues/2385)). Provider fixes arrive with `pi-ai`: OpenAI Responses namespace handling, DeepSeek `max_tokens` and case-insensitive base URLs, Bedrock empty tool-argument keys, Google length stops alongside tool calls, Codex `end_turn`, upstream buffer retry, Cloudflare strict-tools gating, and DeepSeek V4 Flash low effort. Renderer fixes arrive with `pi-tui`: full-width row painting, repaint after an idle focus loss, LaTeX control-space handling across line endings, focused-overlay wheel/viewport-key deferral, and generic SGR mouse release. Mistral models now stream over a native HTTP transport — the Mistral SDK is no longer installed — and `PI_TUI_ESC_TIMEOUT` (default `100` ms over SSH, `10` ms otherwise) tunes how long the renderer waits after a lone `ESC` before treating it as Escape.
55
+ - Bundled `web_search` no longer opens the curator confirmation UI by default. Persist `"workflow": "summary-review"` in web-search config or run `/curator on` to opt in.
56
+ - The exported `Theme` constructor's color maps now accept the optional `scrollbarThumb` token, with the same fallback encoded in the typebox and JSON theme schemas, so every user-authored theme keeps validating and rendering. Unused leftover `searchMatchBg` / `searchMatchText` keys remain accepted so older theme files still load.
57
+ - Automatic theme detection starts its colour-scheme and background probes concurrently instead of sequentially, halving the worst-case per-startup detection delay from 200 ms to 100 ms.
58
+ - Concurrent interactive model-catalog refreshes share one in-flight pass per runtime and effective network policy — keyed also on credential state and catalog content — so startup's refresh and the `/model` selector's refresh no longer start overlapping passes for the same catalog.
59
+ - Changed the built-in xAI default and the shipped xAI and OpenRouter workflow and subagent fallback chains from Grok 4.5 to Grok 4.6, documented those fallbacks as `xai/grok-4.6:xhigh` and `github-copilot/grok-4.6:xhigh`, and refreshed model-selection guidance from the latest DeepSWE v1.1 and Artificial Analysis v4.1.1 results.
60
+ - 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.
61
+ - MCP OAuth browser launch now succeeds from WSL when the Linux working directory is not reachable from Windows.
62
+ - `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 })`.
63
+
64
+ ### Fixed
65
+
66
+ - **The whole transcript stays readable while the `ask_user_question` dialog is open** ([#2378](https://github.com/bastani-inc/atomic/issues/2378)). The dialog is now pinned to the bottom as an overlay, so the transcript keeps its full viewport height and full page step. The overlay is bounded so at least six transcript rows always survive on a short terminal, and the rows it covers are added back to the transcript's scroll extent. Transcript page, Home/End, and wheel input remain available while the questionnaire's Notes editor is active.
67
+ - **The active questionnaire row stays visible on a short terminal.** The dialog now keeps a window around every active row, including single- and multi-select choices, Next, Submit, Cancel, inline sentinels, and focused text inputs.
68
+ - The `ask_user_question` dialog no longer draws one preview row at the wrong horizontal offset. The active-row mark now terminates its APC string with ST as ECMA-48 requires instead of BEL, and both interactive renderers strip the mark centrally before painting.
69
+ - Interactive startup now exits quietly when Ctrl+C stops the engine during first-paint binding, without leaking expected in-flight RPC transport failures.
70
+ - Bare `/` and slash-command drafts typed while explicitly loaded extension and workflow packages finish loading now remain in the interactive editor until Enter is pressed.
71
+ - Queue-control RPC frames now remain reachable during long-running prompts. When all overlapping remote `clear_queue` calls fail, Atomic restores the pre-clear host queue only if no later `queue_update` has supplied engine truth, including an empty queue ([#2516](https://github.com/bastani-inc/atomic/issues/2516)).
72
+ - 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.
73
+ - PDF extraction no longer throws `TypeError: Math.sumPrecise is not a function` on Node runtimes without that builtin.
74
+ - Updated the Z.AI and Z.AI Coding Plan defaults to the catalog-valid `glm-5.3` model; direct GLM-5.3 chains use `:high`, while OpenRouter and Baseten remain documented provider-specific exceptions because their catalogs do not expose GLM-5.3 ([#2459](https://github.com/bastani-inc/atomic/issues/2459)).
75
+ - Hardened hashline edits against unsafe integer anchors and oversized numeric ranges (inclusive ranges are capped at 100,000 lines before expansion), preserved hunk-looking `+TEXT` rows as literal payloads with a parser warning, omitted the synthetic terminal-newline row consistently across whole-file, truncated, and selector reads for LF and CRLF text while retaining genuine blank lines, and kept copied read output's original terminal-newline state when writing it back.
76
+ - Codex fast mode now sends the real ChatGPT routing contract only when the final request body uses `service_tier: priority`. Final non-priority requests keep `originator: pi` with no routing hint, and routing changes close cached sockets before reuse.
77
+ - `message_update` events on the JSON and RPC wire now carry the cumulative provider-reported `usage` on every streaming update (upstream #7982) and — only when the provider reports one — `endTurn`. A non-assistant message on this event throws instead of emitting an invented zeroed usage.
78
+ - `triggerTurn: false` no longer steers an active run (upstream #8022). A custom message queued with the turn trigger disabled is appended and reaches the model on a later turn instead of being delivered into the running one.
79
+ - The system prompt ends with a newline after the working-directory line, in both the default and custom-prompt branches (upstream #7887).
80
+ - Extension tool output with no registered renderer collapses to a ten-line preview with Atomic's expand hint instead of printing the whole result (upstream #7979).
81
+ - Fullscreen drag-selection copy reports honest failure (upstream #8110). The copy routes through Atomic's clipboard path, so a host clipboard that never received the text flashes "Copy failed" instead of a false "Copied!".
82
+ - A mouse release reported with the generic SGR button code — the form some terminals send (upstream #7963) — ends a fullscreen drag selection.
83
+ - Fullscreen viewport keys keep their Atomic routing on pi-tui 0.84.2. A focused overlay is still offered viewport keys first and the transcript still receives what it declines — including behind the `ask_user_question` dialog.
84
+ - Managed-tool startup status (`fd`/`rg` readiness) reports through the transcript instead of writing to the console, whose output previously landed in and corrupted the fullscreen alternate screen.
85
+ - The `-e`/`--extension` source trust prompt names the product through its branding constant, so a rebranded distribution asks users to trust its own name rather than a hardcoded one.
86
+ - A session that was named and then cleared now reads as cleared rather than never-named. `getLatestSessionName` and the session-list reducer preserve the distinction the session file already records.
87
+ - Corrected the [custom provider](docs/custom-provider.md) reference list and documented the previously undocumented `ModelRuntime` model-catalog options in the [SDK](docs/sdk.md) guide.
88
+
89
+ ### Removed
90
+
91
+ - Removed the `workflow` parameter on bundled `web_search`. Models cannot select the curator per call.
92
+ - Removed fullscreen transcript search. `Ctrl+Shift+F` no longer opens a find box over the main transcript or an attached workflow stage chat; the four `tui.altScreen.search*` actions stay unbound and do nothing.
93
+ - Removed the bundled `@bastani/i-have-adhd` package and its default-on ADHD-friendly response mode. The `/i-have-adhd` command, `--no-adhd` flag, `.i-have-adhd-off` marker, the "ADHD Mode" status badge, and the `stop adhd mode` / `normal mode` control phrases no longer exist; responses now use Atomic's default style.
94
+
5
95
  ## [0.9.14-alpha.5] - 2026-08-19
6
96
 
7
97
  ### Added
package/README.md CHANGED
@@ -673,6 +673,6 @@ MIT
673
673
 
674
674
  ## See Also
675
675
 
676
- - [@earendil-works/pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai): Core LLM toolkit
676
+ - [@bastani/pi-ai](https://www.npmjs.com/package/@bastani/pi-ai): Core LLM toolkit
677
677
  - [@earendil-works/pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core): Agent framework
678
678
  - [@earendil-works/pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui): Terminal UI components
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/intercom",
3
- "version": "0.9.14-alpha.6",
3
+ "version": "0.9.15-alpha.1",
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": [
@@ -10,7 +10,7 @@
10
10
  "license": "MIT",
11
11
  "type": "module",
12
12
  "engines": {
13
- "bun": ">=1.3.14"
13
+ "bun": ">=1.4.0"
14
14
  },
15
15
  "main": "./index.ts",
16
16
  "types": "./index.ts",
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.9.15-alpha.1] - 2026-08-21
11
+
12
+ ### Changed
13
+
14
+ - Switched the optional peer from `@earendil-works/pi-ai` to `@bastani/pi-ai`.
15
+
16
+ ## [0.9.14] - 2026-08-19
17
+
18
+ Cumulative release of the `0.9.14-alpha.3` prerelease. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease section below.
19
+
20
+ ### Changed
21
+
22
+ - MCP OAuth now opens the authorization URL from WSL when the Linux working directory is not reachable from Windows.
23
+
10
24
  ## [0.9.14-alpha.3] - 2026-08-17
11
25
 
12
26
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.14-alpha.6",
3
+ "version": "0.9.15-alpha.1",
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": [
@@ -10,7 +10,7 @@
10
10
  "license": "MIT",
11
11
  "type": "module",
12
12
  "engines": {
13
- "bun": ">=1.3.14"
13
+ "bun": ">=1.4.0"
14
14
  },
15
15
  "main": "./index.ts",
16
16
  "types": "./index.ts",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@bastani/atomic": "*",
35
- "@earendil-works/pi-ai": "^0.84.2",
35
+ "@bastani/pi-ai": "*",
36
36
  "@earendil-works/pi-tui": "^0.84.2",
37
37
  "zod": "^3.25.0 || ^4.0.0"
38
38
  },
@@ -40,7 +40,7 @@
40
40
  "@bastani/atomic": {
41
41
  "optional": true
42
42
  },
43
- "@earendil-works/pi-ai": {
43
+ "@bastani/pi-ai": {
44
44
  "optional": true
45
45
  },
46
46
  "@earendil-works/pi-tui": {
@@ -1,5 +1,5 @@
1
- import type { ProviderHeaders } from "@earendil-works/pi-ai";
2
- import { complete, type Api, type AssistantMessage, type Message, type Model, type TextContent } from "@earendil-works/pi-ai/compat";
1
+ import type { ProviderHeaders } from "@bastani/pi-ai";
2
+ import { complete, type Api, type AssistantMessage, type Message, type Model, type TextContent } from "@bastani/pi-ai/compat";
3
3
  import { truncateAtWord } from "./utils.js";
4
4
  import type { ExtensionUIContext, ModelRegistry } from "@bastani/atomic";
5
5
  import type { Client } from "@modelcontextprotocol/sdk/client/index.js";
@@ -2,7 +2,7 @@
2
2
  import type { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
3
  import type { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
4
4
  import type { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
5
- import type { TextContent, ImageContent } from "@earendil-works/pi-ai/compat";
5
+ import type { TextContent, ImageContent } from "@bastani/pi-ai/compat";
6
6
  import type { UiStreamMode } from "./ui-stream-types.ts";
7
7
 
8
8
  // Transport type (stdio + HTTP)
@@ -2,6 +2,48 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.15-alpha.1] - 2026-08-21
6
+
7
+ ### Breaking Changes
8
+
9
+ - Subagent delegation is now exactly one level deep and is no longer configurable. A top-level session — main chat or a workflow stage — may call the `subagent` tool; a session that was itself admitted as a subagent child may not. Every launch, `resume`, and `interrupt` attempted from inside a child is refused with a single fixed message; the observing actions `list`, `get`, `status`, and `doctor` remain available to a child. Workflow stages are unchanged and still delegate once. The Rust `SubagentControl` admission door now refuses any child deeper than the single permitted level, and the executor refuses a child before any run starts, so the rule holds at both doors.
10
+
11
+ ### Removed
12
+
13
+ - Removed the extension config option that set the delegation ceiling. Existing `config.json` files that still declare it are ignored rather than rejected.
14
+ - Removed the per-agent nesting-depth frontmatter field. An agent `.md` file that still declares the key parses and loads normally rather than being rejected; the key is no longer read, no longer re-emitted, and no longer printed in `subagent({ action: "get" })` output, and `create`/`update` no longer validate or clamp it. An agent-management rewrite of such a file strips the stale key, matching how earlier removed frontmatter keys are handled.
15
+ - Removed the nesting-depth clause from the `subagent` tool's `config` parameter description.
16
+ - Removed the per-child delegation limit from the typed admission policy, the in-process child spec, retained foreground resume records, and the run options. Admitted depth alone now decides whether a session may delegate.
17
+ - Removed the multi-level nested-run pipeline: the temp-directory route, its event sink and control inbox, the run registry and its recursive projection, and the recursive status renderer. Its inherited-route resolvers had already been permanently disabled, so no event could reach any of it and `subagent({ action: "status" })` never printed a nested line; live and retained status output for a parent's own direct children is unchanged. Delegating no longer creates a per-run temp route directory. Startup still reaps route directories left by earlier versions.
18
+ - Removed the nested run summary, run address, step summary, and route types, along with their public projections, from the subagent result payload. `SubagentResultIntercomChild` no longer carries a `children` array and `ControlEvent` no longer carries a nested run id or nesting path; result receipts no longer contain a "Nested subagents:" section. A parent still receives one entry per direct child.
19
+
20
+ ### Changed
21
+
22
+ - Switched the optional peer from `@earendil-works/pi-ai` to `@bastani/pi-ai`.
23
+ - The fanout-child boundary prompt no longer tells an authorized child that it may delegate, because no child can.
24
+ - Replaced built-in `gpt-5.6-luna:max` primary and fallback pins with `gpt-5.6-sol` at the same thinking level as each agent's `gpt-5.5` fallback: `:medium` for `worker`, `code-simplifier`, `codebase-analyzer`, `codebase-online-researcher`, and `codebase-research-analyzer`; `:low` for `codebase-locator`, `codebase-pattern-finder`, and `codebase-research-locator`.
25
+
26
+ ## [0.9.14] - 2026-08-19
27
+
28
+ Cumulative release of the `0.9.14-alpha.2` – `0.9.14-alpha.5` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
29
+
30
+ ### Added
31
+
32
+ - Added pure progress-trend evidence and injected control score-series support that can raise wall-clock attention priority without creating failure states, suppressing signals, or scheduling model calls ([#2489](https://github.com/bastani-inc/atomic/issues/2489)).
33
+ - Agent frontmatter accepts YAML array-form `tools` — flow sequences (`tools: [read, bash]`) and block sequences (`tools:` followed by `- read` lines) — as well as the comma-separated string form, and both spellings produce the same tool set.
34
+ - Extra frontmatter fields round-trip losslessly through the YAML emitter when agent files are rewritten. Sequences now serialize as block collections with hostile keys quoted, so a rewritten file can no longer fail YAML parsing and silently disappear from later scans.
35
+ - In-process children resolve `skills` through the live loader catalog, so source-qualified selectors such as `tdd@builtin` inject the shadowed candidate instead of the precedence winner. Missing or ambiguous selectors are reported on the child result. The parent-only `subagent` orchestration skill remains unavailable, including qualified aliases such as `subagent@builtin` ([#2328](https://github.com/bastani-inc/atomic/issues/2328)).
36
+
37
+ ### Changed
38
+
39
+ - 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.
40
+
41
+ ### Fixed
42
+
43
+ - A subagent that pins no model of its own now inherits the dispatching session's thinking level alongside its model, matching the parent's tool configuration inheritance. The agent's declared `thinking` and any candidate `:level` suffix still take precedence.
44
+ - In-process JSONL event artifacts now honor `includeJsonl: false` and enforce the existing 50 MiB cap when enabled, preventing unbounded artifact growth ([#2445](https://github.com/bastani-inc/atomic/issues/2445)).
45
+ - Migrated all built-in subagent GLM fallbacks to direct Z.AI `glm-5.3:high` entries, omitting unavailable OpenRouter GLM-5.3 fallbacks ([#2459](https://github.com/bastani-inc/atomic/issues/2459)).
46
+
5
47
  ## [0.9.14-alpha.5] - 2026-08-19
6
48
 
7
49
  ### Added
@@ -193,7 +193,7 @@ Use the optional prompt shortcuts below when you want the pattern to be repeatab
193
193
 
194
194
  Packaged `worker` defaults to forked context when a launch omits `context`; every other builtin runs fresh. Pass `context: "fresh"` when you intentionally want a fresh `worker` run.
195
195
 
196
- Child-safety boundaries are enforced at runtime by typed admission policy. In-process child sessions load bundled extensions through normal discovery. The `subagent` tool may therefore be registered when the child's active tool selection permits it, including the default no-allowlist case; an explicit allowlist may omit it. Tool presence does not grant fanout: fanout is authorized only when the resolved builtin `tools` list includes `subagent`. Typed admission policy lets a non-fanout child use only `list`, `get`, `status`, and `doctor`; delegation, `resume`, and `interrupt` receive the fanout refusal. A management-restricted child is also refused `create`, `update`, and `delete`. The bundled `pi-subagents` skill remains parent-only and is stripped from child prompts, including fanout-authorized children. Non-fanout children receive boundary instructions that they are not the parent orchestrator and must not propose or run subagents; authorized fanout children get a narrower boundary that limits nested delegation to the assigned fanout. Forked child context filtering also removes parent-only subagent artifacts (including old hidden orchestration-instruction messages, slash/status/control messages, and prior parent `subagent` tool-call/tool-result history) while preserving ordinary prose and unrelated tool calls/results.
196
+ Child-safety boundaries are enforced at runtime by typed admission policy. In-process child sessions load bundled extensions through normal discovery. The `subagent` tool may therefore be registered when the child's active tool selection permits it, including the default no-allowlist case; an explicit allowlist may omit it. Tool presence does not grant fanout: fanout is authorized only when the resolved builtin `tools` list includes `subagent`. Typed admission policy lets a non-fanout child use only `list`, `get`, `status`, and `doctor`; delegation, `resume`, and `interrupt` receive the fanout refusal. A management-restricted child is also refused `create`, `update`, and `delete`. The bundled `pi-subagents` skill remains parent-only and is stripped from child prompts, including fanout-authorized children. No admitted child may delegate: launches, `resume`, and `interrupt` are refused for every child regardless of its fanout authorization. Children receive boundary instructions that they are not the parent orchestrator and must complete their assigned task directly. Forked child context filtering also removes parent-only subagent artifacts (including old hidden orchestration-instruction messages, slash/status/control messages, and prior parent `subagent` tool-call/tool-result history) while preserving ordinary prose and unrelated tool calls/results.
197
197
 
198
198
  ## Optional shortcuts
199
199
 
@@ -400,7 +400,6 @@ output: context.md
400
400
  defaultReads: context.md
401
401
  defaultProgress: true
402
402
  interactive: true
403
- maxSubagentDepth: 1
404
403
  ---
405
404
 
406
405
  Your system prompt goes here.
@@ -427,7 +426,6 @@ Important fields:
427
426
  | `defaultReads` | Files to read before running in single or parallel behavior. |
428
427
  | `defaultProgress` | Maintain `progress.md`. |
429
428
  | `interactive` | Parsed for compatibility but not enforced in v1. |
430
- | `maxSubagentDepth` | Tightens nested delegation for this agent’s children. |
431
429
 
432
430
  ### Tool and extension selection
433
431
 
@@ -648,7 +646,7 @@ After a worktree parallel step completes, per-agent diff stats are appended to t
648
646
 
649
647
  Atomic subagents read optional JSON config from `~/.atomic/agent/extensions/subagent/config.json` and still check the legacy `~/.pi/agent/extensions/subagent/config.json` path for compatibility.
650
648
 
651
- Subagent configuration controls discovery, parallel limits, session storage, depth, control notices, and intercom delivery. There are no execution-mode toggles; every execution request is foreground.
649
+ Subagent configuration controls discovery, parallel limits, session storage, control notices, and intercom delivery. There are no execution-mode toggles; every execution request is foreground.
652
650
 
653
651
  ### `parallel`
654
652
 
@@ -671,14 +669,6 @@ Subagent configuration controls discovery, parallel limits, session storage, dep
671
669
 
672
670
  Session directory precedence is: `params.sessionDir`, then `config.defaultSessionDir`, then a directory derived from the parent session. Sessions are always enabled.
673
671
 
674
- ### `maxSubagentDepth`
675
-
676
- ```json
677
- { "maxSubagentDepth": 1 }
678
- ```
679
-
680
- Controls nested delegation through typed admission policy. Accepted values are `0` through `5`; higher values are refused at the hard ceiling. Per-agent `maxSubagentDepth` can tighten the limit for that agent’s child runs, but cannot relax an inherited stricter limit.
681
-
682
672
  ### `intercomBridge`
683
673
 
684
674
  ```json
@@ -780,18 +770,11 @@ Pass `share: true` to export a full session to HTML, upload it to a secret GitHu
780
770
 
781
771
  This is disabled by default. Session data may contain source code, paths, environment variables, credentials, or other sensitive output. You need `gh` installed and authenticated.
782
772
 
783
- ## Recursion guard
784
-
785
- Subagents can call `subagent`, which can get expensive and hard to observe. A depth guard prevents unbounded nesting.
786
-
787
- By default, nesting is capped at five delegated subagent levels below the main session. Deeper calls are blocked with guidance to complete the current task directly.
788
-
789
- Configure a lower or equal limit with:
773
+ ## Delegation boundary
790
774
 
791
- 1. `config.maxSubagentDepth`
792
- 2. `maxSubagentDepth` in agent frontmatter, which can only tighten the admitted limit
775
+ Delegation is exactly one level deep, and nothing configures it. A top-level session — main chat or a workflow stage — may call `subagent`. A session that was itself admitted as a subagent child may not: every launch, `resume`, and `interrupt` it attempts is refused with guidance to complete its assigned task directly. The observing actions `list`, `get`, `status`, and `doctor` stay available to a child.
793
776
 
794
- The depth policy is typed admission state and is not inherited through an environment variable.
777
+ There is no configuration option, agent frontmatter field, or tool parameter for the delegation level. The rule is enforced twice: the subagent executor refuses a child before any run starts, and the Rust `SubagentControl` admission door refuses a child deeper than the single permitted level. Admitted depth is typed admission state and is not inherited through an environment variable.
795
778
 
796
779
  Completion and intercom events:
797
780
 
@@ -8,8 +8,8 @@ description: |
8
8
  - Production-quality refinement of a working draft ("ugly but working CSV parser").
9
9
  - Code that has gotten messy after several iterations.
10
10
  tools: read, edit, write, search, find, ls, bash, todo
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: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
11
+ model: openai-codex/gpt-5.6-sol:medium
12
+ fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, 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-sol:medium, 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
 
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:medium
6
+ fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, 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-sol:medium, 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
 
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:low
6
+ fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, 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-sol:low, 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
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:medium
6
+ fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, 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-sol:medium, 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
 
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:low
6
+ fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, 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-sol:low, 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
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:medium
6
+ fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, 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-sol:medium, 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
@@ -2,8 +2,8 @@
2
2
  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
- 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: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
5
+ model: openai-codex/gpt-5.6-sol:low
6
+ fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, 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-sol:low, 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
@@ -5,8 +5,8 @@ systemPromptMode: replace
5
5
  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
- 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: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
8
+ model: openai-codex/gpt-5.6-sol:medium
9
+ fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, 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-sol:medium, 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.6",
3
+ "version": "0.9.15-alpha.1",
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": [
@@ -10,7 +10,7 @@
10
10
  "license": "MIT",
11
11
  "type": "module",
12
12
  "engines": {
13
- "bun": ">=1.3.14"
13
+ "bun": ">=1.4.0"
14
14
  },
15
15
  "main": "./src/extension/index.ts",
16
16
  "types": "./src/extension/index.ts",
@@ -39,7 +39,7 @@
39
39
  "peerDependencies": {
40
40
  "@bastani/atomic": "*",
41
41
  "@earendil-works/pi-agent-core": "^0.84.2",
42
- "@earendil-works/pi-ai": "^0.84.2",
42
+ "@bastani/pi-ai": "*",
43
43
  "@earendil-works/pi-tui": "^0.84.2"
44
44
  },
45
45
  "peerDependenciesMeta": {
@@ -49,7 +49,7 @@
49
49
  "@earendil-works/pi-agent-core": {
50
50
  "optional": true
51
51
  },
52
- "@earendil-works/pi-ai": {
52
+ "@bastani/pi-ai": {
53
53
  "optional": true
54
54
  },
55
55
  "@earendil-works/pi-tui": {
@@ -120,7 +120,7 @@ Builtin agents load at the lowest priority. Project agents override user agents,
120
120
  | `codebase-online-researcher` | Web research with authoritative sources | `openai/gpt-5.5` | low | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
121
121
  | `code-simplifier` | Clean up recently changed code without changing behavior | `openai/gpt-5.5` | low | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
122
122
  | `debugger` | Reproduce, diagnose, and fix failing behavior | `openai-codex/gpt-5.6-sol:xhigh` | xhigh | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
123
- | `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-5.6-luna:max` | max | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
123
+ | `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-5.6-sol:medium` | medium | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
124
124
 
125
125
  Each builtin declares an explicit `model` and `fallbackModels` sequence (typically `github-copilot/<same>`, then `anthropic/claude-opus-4-8`, then `github-copilot/claude-opus-4.7`). The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
126
126
 
@@ -448,7 +448,6 @@ That is only a starting point. Omit `package` for the traditional unqualified ru
448
448
  - `defaultReads`
449
449
  - `defaultContext`
450
450
  - `output`
451
- - `maxSubagentDepth`
452
451
 
453
452
  For many customizations, builtin overrides in settings are lower-friction than copying a full builtin file.
454
453
 
@@ -462,7 +461,7 @@ If a prompt-template extension is installed, additional user prompt templates ca
462
461
 
463
462
  - **Forking requires a persisted parent session.** If the current session does not have a persisted session file, forked runs fail.
464
463
  - **Forked runs inherit parent history.** They are branched threads, not fresh filtered contexts. Use fresh context for adversarial review unless the user explicitly asks for forked context.
465
- - **Default subagent nesting depth is 5.** Deeper recursive delegation is blocked, and configured values above 5 are clamped to the hard ceiling.
464
+ - **Delegation is one level deep and not configurable.** A subagent cannot call `subagent`: every launch, `resume`, and `interrupt` from inside a child is refused. Only `list`, `get`, `status`, and `doctor` stay available to a child.
466
465
  - **Attention signals are not lifecycle state.** `needs_attention` means no activity has been observed past the configured threshold. `paused` means the child turn was intentionally interrupted or is awaiting direction; it is not the same as `failed`.
467
466
  - **Builtin coordination varies by agent.** `debugger` and `worker` declare `intercom` and `contact_supervisor`; the other builtin specialists do not. For agents without bridge tools, decide the task up front or use a custom agent when mid-run coordination is required.
468
467
  - **Intercom asks are blocking.** A session can only maintain one pending outbound ask wait state at a time.
@@ -551,7 +550,7 @@ For complex or risky changes, increase review and validation fanout when user in
551
550
 
552
551
  For very large work, split into serial milestones instead of launching a swarm of writers. Each milestone gets one writer, a validation contract, fresh-context review, a fix pass, and parent approval before the next milestone starts. Use parallel subagents inside a milestone for read-only context, research, and review only.
553
552
 
554
- Keep orchestration authority in the parent session. Child subagents should not launch more subagents or run their own orchestration loops unless the parent intentionally selected an explicit fanout agent whose resolved builtin `tools` includes `subagent` for that assigned fanout. This skill is parent-only: it is stripped from every child prompt, including fanout-authorized children. A child may still have the `subagent` extension tool registered, because bundled extensions load through normal discovery; registration is not authority. Typed admission policy lets a non-fanout child use only `list`, `get`, `status`, and `doctor`, and refuses delegation, `resume`, and `interrupt`. Spawned children also do not receive parent-only status/control/slash messages or prior parent `subagent` tool-call/tool-result artifacts, and child context filtering strips old hidden orchestration-instruction messages when they appear in inherited history. Every child also receives a boundary instruction that says the parent owns orchestration, the child must not propose or run subagents unless explicitly authorized for fanout, and writer children must call real edit/write tools instead of printing pseudo tool calls. Pass children concrete role-specific work instead.
553
+ Keep orchestration authority in the parent session. Child subagents cannot launch more subagents or run their own orchestration loops: delegation is one level deep and nothing configures it. This skill is parent-only and is stripped from every child prompt. A child may still have the `subagent` extension tool registered, because bundled extensions load through normal discovery; registration is not authority. Typed admission policy lets a child use only `list`, `get`, `status`, and `doctor`, and refuses delegation, `resume`, and `interrupt`. Spawned children also do not receive parent-only status/control/slash messages or prior parent `subagent` tool-call/tool-result artifacts, and child context filtering strips old hidden orchestration-instruction messages when they appear in inherited history. Every child also receives a boundary instruction that says the parent owns orchestration, that the `subagent` tool refuses every launch, `resume`, and `interrupt` from inside a subagent, and that writer children must call real edit/write tools instead of printing pseudo tool calls. Pass children concrete role-specific work instead.
555
554
 
556
555
  1. Clarify only when needed. Use existing context first; gather missing code or research context selectively, then ask only unresolved questions that materially affect scope, completion criteria, constraints, or non-goals.
557
556
  2. Define the validation contract. State completion expectations before implementation: expected behavior, checks to run, user flows to exercise, and evidence required in the writer handoff. For UI, CLI, integration, or workflow changes, include at least one validator angle that uses the product the way a user would rather than only reading code.
@@ -631,10 +630,11 @@ subagent({ action: "doctor" })
631
630
  // Check runtime paths, execution support, discovery counts, current session, and intercom bridge state.
632
631
  ```
633
632
 
634
- **"Max subagent depth exceeded"**
633
+ **"Subagent delegation is not available inside a subagent"**
635
634
 
636
635
  ```typescript
637
- // Flatten the workflow or raise maxSubagentDepth in config.
636
+ // Do the work in this session. Only a top-level session — main chat or a
637
+ // workflow stage — can delegate, and the one-level rule is not configurable.
638
638
  ```
639
639
 
640
640
  **"Session manager did not return a session file"**
@@ -1,6 +1,5 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { normalizeMaxSubagentDepth } from "../shared/types.js";
4
3
  import { splitToolList } from "./agent-overrides.js";
5
4
  import { shouldPreserveAgentExtraField } from "./agent-serializer.js";
6
5
  import {
@@ -181,8 +180,6 @@ export function loadAgentsFromDirWithDiagnostics(dir: string, source: AgentSourc
181
180
  if (shouldPreserveAgentExtraField(key)) extraFields[key] = value;
182
181
  }
183
182
 
184
- const parsedMaxSubagentDepth = normalizeMaxSubagentDepth(frontmatter.maxSubagentDepth);
185
-
186
183
  agents.push({
187
184
  name: runtimeName,
188
185
  localName,
@@ -207,7 +204,6 @@ export function loadAgentsFromDirWithDiagnostics(dir: string, source: AgentSourc
207
204
  defaultReads,
208
205
  defaultProgress: frontmatterBoolean(frontmatter.defaultProgress) === true,
209
206
  interactive: frontmatterBoolean(frontmatter.interactive) === true,
210
- maxSubagentDepth: parsedMaxSubagentDepth,
211
207
  extraFields: Object.keys(extraFields).length > 0 ? extraFields : undefined,
212
208
  });
213
209
  }
@@ -1,5 +1,5 @@
1
1
  import type { SkillCatalog } from "@bastani/atomic";
2
- import { MAX_SUBAGENT_NESTING_DEPTH, type SubagentToolResult } from "../shared/types.js";
2
+ import type { SubagentToolResult } from "../shared/types.js";
3
3
  import type { ManagementContext, ManagementScope } from "./agent-management.js";
4
4
  import type { AgentConfig, AgentScope } from "./agents.js";
5
5
  import { discoverAgentsAll, parsePackageName } from "./agents.js";
@@ -217,16 +217,5 @@ export function applyAgentConfig(target: AgentConfig, cfg: Record<string, unknow
217
217
  if (typeof cfg.progress !== "boolean") return "config.progress must be a boolean when provided.";
218
218
  target.defaultProgress = cfg.progress;
219
219
  }
220
- if (hasKey(cfg, "maxSubagentDepth")) {
221
- if (cfg.maxSubagentDepth === false || cfg.maxSubagentDepth === "") target.maxSubagentDepth = undefined;
222
- else if (
223
- typeof cfg.maxSubagentDepth === "number" &&
224
- Number.isInteger(cfg.maxSubagentDepth) &&
225
- cfg.maxSubagentDepth >= 0
226
- ) {
227
- target.maxSubagentDepth = Math.min(cfg.maxSubagentDepth, MAX_SUBAGENT_NESTING_DEPTH);
228
- } else
229
- return `config.maxSubagentDepth must be an integer >= 0 or false when provided; values above ${MAX_SUBAGENT_NESTING_DEPTH} are clamped.`;
230
- }
231
220
  return undefined;
232
221
  }