@selesai/code 0.8.3 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +7 -1
  3. package/dist/core/slash-commands.js +1 -0
  4. package/dist/defaults/models.json +41 -55
  5. package/dist/defaults/settings.json +7 -8
  6. package/dist/extensions/handoff-new.ts +1 -1
  7. package/dist/extensions/inline-skills.test.ts +1 -0
  8. package/dist/extensions/inline-skills.ts +1 -1
  9. package/dist/extensions/pi-intercom/CHANGELOG.md +25 -3
  10. package/dist/extensions/pi-intercom/README.md +34 -15
  11. package/dist/extensions/pi-intercom/broker/broker.ts +38 -141
  12. package/dist/extensions/pi-intercom/broker/client-liveness.test.ts +173 -0
  13. package/dist/extensions/pi-intercom/broker/client.ts +78 -150
  14. package/dist/extensions/pi-intercom/broker/extension-state.ts +18 -7
  15. package/dist/extensions/pi-intercom/broker/framing.ts +1 -1
  16. package/dist/extensions/pi-intercom/broker/protocol.ts +182 -0
  17. package/dist/extensions/pi-intercom/broker/spawn.test.ts +106 -7
  18. package/dist/extensions/pi-intercom/broker/spawn.ts +37 -11
  19. package/dist/extensions/pi-intercom/config.test.ts +8 -10
  20. package/dist/extensions/pi-intercom/config.ts +3 -3
  21. package/dist/extensions/pi-intercom/index.ts +218 -147
  22. package/dist/extensions/pi-intercom/intercom.integration.test.ts +891 -103
  23. package/dist/extensions/pi-intercom/package.json +3 -2
  24. package/dist/extensions/pi-intercom/project-agent.test.ts +145 -0
  25. package/dist/extensions/pi-intercom/project-agent.ts +324 -0
  26. package/dist/extensions/pi-intercom/reply-tracker.test.ts +86 -1
  27. package/dist/extensions/pi-intercom/reply-tracker.ts +41 -9
  28. package/dist/extensions/pi-intercom/skills/pi-intercom/SKILL.md +49 -9
  29. package/dist/extensions/pi-intercom/test/inline-message.test.ts +9 -9
  30. package/dist/extensions/pi-intercom/types.ts +3 -1
  31. package/dist/extensions/pi-intercom/ui/inline-message.ts +7 -7
  32. package/dist/extensions/pi-powerline-footer/.github/workflows/test.yml +2 -2
  33. package/dist/extensions/pi-powerline-footer/CHANGELOG.md +14 -1
  34. package/dist/extensions/pi-powerline-footer/README.md +20 -37
  35. package/dist/extensions/pi-powerline-footer/bash-mode/completion.ts +40 -25
  36. package/dist/extensions/pi-powerline-footer/bash-mode/editor.ts +149 -18
  37. package/dist/extensions/pi-powerline-footer/bash-mode/types.ts +1 -0
  38. package/dist/extensions/pi-powerline-footer/editor-performance.ts +99 -0
  39. package/dist/extensions/pi-powerline-footer/git-status.ts +15 -0
  40. package/dist/extensions/pi-powerline-footer/index.ts +394 -317
  41. package/dist/extensions/pi-powerline-footer/package.json +1 -1
  42. package/dist/extensions/pi-powerline-footer/powerline-config.ts +0 -12
  43. package/dist/extensions/pi-powerline-footer/queue/store.ts +8 -56
  44. package/dist/extensions/pi-powerline-footer/queue/types.ts +1 -2
  45. package/dist/extensions/pi-powerline-footer/segments.ts +0 -3
  46. package/dist/extensions/pi-powerline-footer/tests/bash-mode.test.ts +231 -1
  47. package/dist/extensions/pi-powerline-footer/tests/custom-items.test.ts +5 -19
  48. package/dist/extensions/pi-powerline-footer/tests/editor-performance.test.ts +43 -0
  49. package/dist/extensions/pi-powerline-footer/tests/git-optional-locks.test.ts +64 -0
  50. package/dist/extensions/pi-powerline-footer/tests/jump-shortcuts.test.ts +116 -0
  51. package/dist/extensions/pi-powerline-footer/tests/queue-store.test.ts +19 -149
  52. package/dist/extensions/pi-powerline-footer/tests/remaining-regressions.test.ts +6 -0
  53. package/dist/extensions/pi-powerline-footer/tests/usage-display.test.ts +5 -5
  54. package/dist/extensions/pi-powerline-footer/types.ts +1 -2
  55. package/dist/extensions/pi-subagents/CHANGELOG.md +225 -14
  56. package/dist/extensions/pi-subagents/README.md +66 -1613
  57. package/dist/extensions/pi-subagents/agents/builder.md +0 -1
  58. package/dist/extensions/pi-subagents/agents/delegate.md +14 -0
  59. package/dist/extensions/pi-subagents/agents/oracle.md +74 -0
  60. package/dist/extensions/pi-subagents/agents/reviewer.md +78 -0
  61. package/dist/extensions/pi-subagents/agents/scout.md +50 -0
  62. package/dist/extensions/pi-subagents/agents/worker.md +58 -0
  63. package/dist/extensions/pi-subagents/docs/configuration.md +372 -0
  64. package/dist/extensions/pi-subagents/docs/extension-api.md +308 -0
  65. package/dist/extensions/pi-subagents/docs/missions.md +119 -0
  66. package/dist/extensions/pi-subagents/docs/models.md +192 -0
  67. package/dist/extensions/pi-subagents/docs/observability.md +174 -0
  68. package/dist/extensions/pi-subagents/docs/tool-reference.md +343 -0
  69. package/dist/extensions/pi-subagents/docs/watchdog.md +176 -0
  70. package/dist/extensions/pi-subagents/docs/workflows.md +163 -0
  71. package/dist/extensions/pi-subagents/inspector-runner.mjs +11 -0
  72. package/dist/extensions/pi-subagents/package-lock.json +152 -194
  73. package/dist/extensions/pi-subagents/package.json +9 -10
  74. package/dist/extensions/pi-subagents/prompts/gather-context-and-clarify.md +1 -1
  75. package/dist/extensions/pi-subagents/prompts/parallel-cleanup.md +9 -9
  76. package/dist/extensions/pi-subagents/prompts/parallel-research.md +6 -6
  77. package/dist/extensions/pi-subagents/prompts/parallel-review.md +8 -8
  78. package/dist/extensions/pi-subagents/prompts/review-loop.md +12 -12
  79. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +22 -17
  80. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +77 -72
  81. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +177 -69
  82. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +28 -8
  83. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +88 -66
  84. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +3 -3
  85. package/dist/extensions/pi-subagents/src/agents/agent-refinements.ts +624 -0
  86. package/dist/extensions/pi-subagents/src/agents/agents.ts +38 -19
  87. package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +7 -3
  88. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +2 -2
  89. package/dist/extensions/pi-subagents/src/agents/skills.ts +2 -9
  90. package/dist/extensions/pi-subagents/src/api/delegation.ts +1 -2
  91. package/dist/extensions/pi-subagents/src/api/project-panes.ts +30 -0
  92. package/dist/extensions/pi-subagents/src/extension/config.ts +62 -8
  93. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +2 -2
  94. package/dist/extensions/pi-subagents/src/extension/doctor.ts +40 -0
  95. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +51 -26
  96. package/dist/extensions/pi-subagents/src/extension/index.ts +140 -50
  97. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +77 -0
  98. package/dist/extensions/pi-subagents/src/extension/rpc.ts +18 -24
  99. package/dist/extensions/pi-subagents/src/extension/schemas.ts +58 -21
  100. package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +39 -0
  101. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +47 -25
  102. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +3 -3
  103. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +460 -64
  104. package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +4 -1
  105. package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +102 -4
  106. package/dist/extensions/pi-subagents/src/missions/actions.ts +77 -16
  107. package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +162 -0
  108. package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +65 -17
  109. package/dist/extensions/pi-subagents/src/missions/store.ts +151 -9
  110. package/dist/extensions/pi-subagents/src/missions/types.ts +58 -3
  111. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +260 -0
  112. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +8 -8
  113. package/dist/extensions/pi-subagents/src/runs/background/active-async-capacity.ts +374 -0
  114. package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +46 -0
  115. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +158 -36
  116. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +294 -134
  117. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +26 -4
  118. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +45 -6
  119. package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +33 -15
  120. package/dist/extensions/pi-subagents/src/runs/background/completion-replay.ts +267 -0
  121. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +145 -60
  122. package/dist/extensions/pi-subagents/src/runs/background/owned-process-tree.ts +104 -0
  123. package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +17 -3
  124. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +114 -6
  125. package/dist/extensions/pi-subagents/src/runs/background/resume-guidance.ts +33 -0
  126. package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +68 -0
  127. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +71 -0
  128. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +26 -3
  129. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +42 -14
  130. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +12 -24
  131. package/dist/extensions/pi-subagents/src/runs/background/steering.ts +7 -5
  132. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +233 -101
  133. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +17 -4
  134. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +146 -0
  135. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +21 -5
  136. package/dist/extensions/pi-subagents/src/runs/foreground/async-dismiss-action.ts +85 -0
  137. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +43 -18
  138. package/dist/extensions/pi-subagents/src/runs/foreground/chain-clarify.ts +20 -19
  139. package/dist/extensions/pi-subagents/src/runs/foreground/chain-execution.ts +40 -2
  140. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +188 -46
  141. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-control.ts +12 -0
  142. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +137 -0
  143. package/dist/extensions/pi-subagents/src/runs/foreground/prompt-audit.ts +171 -0
  144. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +1365 -252
  145. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +187 -0
  146. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +178 -26
  147. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +1 -1
  148. package/dist/extensions/pi-subagents/src/runs/shared/llm-intent-arbiter.ts +286 -0
  149. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +2 -0
  150. package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +32 -5
  151. package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +12 -2
  152. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +3 -0
  153. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +509 -117
  154. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +10 -10
  155. package/dist/extensions/pi-subagents/src/runs/shared/run-fanout-budget.ts +280 -0
  156. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +4 -2
  157. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +189 -32
  158. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +21 -5
  159. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +20 -8
  160. package/dist/extensions/pi-subagents/src/shared/artifacts.ts +128 -3
  161. package/dist/extensions/pi-subagents/src/shared/display-text.ts +100 -0
  162. package/dist/extensions/pi-subagents/src/shared/file-coalescer.ts +9 -0
  163. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +13 -0
  164. package/dist/extensions/pi-subagents/src/shared/formatters.ts +4 -6
  165. package/dist/extensions/pi-subagents/src/shared/prompt-resources.ts +51 -0
  166. package/dist/extensions/pi-subagents/src/shared/settings.ts +41 -11
  167. package/dist/extensions/pi-subagents/src/shared/types.ts +192 -3
  168. package/dist/extensions/pi-subagents/src/shared/utf8.ts +11 -0
  169. package/dist/extensions/pi-subagents/src/shared/utils.ts +46 -34
  170. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +1 -14
  171. package/dist/extensions/pi-subagents/src/slash/inline-subagents.ts +1 -1
  172. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +14 -12
  173. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +176 -21
  174. package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +12 -6
  175. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +52 -18
  176. package/dist/extensions/pi-subagents/src/slash/slash-live-state.ts +36 -5
  177. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +37 -21
  178. package/dist/extensions/pi-subagents/src/tui/fleet.ts +375 -42
  179. package/dist/extensions/pi-subagents/src/tui/render.ts +201 -68
  180. package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +0 -6
  181. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +5 -4
  182. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +0 -1
  183. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +332 -27
  184. package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +15 -15
  185. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +3 -0
  186. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +2 -0
  187. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +17 -0
  188. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +57 -0
  189. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +16 -0
  190. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +15 -0
  191. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +18 -0
  192. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +9 -0
  193. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +10 -0
  194. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +10 -0
  195. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +20 -0
  196. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +3 -0
  197. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +96 -0
  198. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +119 -0
  199. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +85 -0
  200. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +620 -0
  201. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +5 -0
  202. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +56 -0
  203. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +32 -0
  204. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +49 -0
  205. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +93 -0
  206. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +128 -0
  207. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +7 -0
  208. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +38 -0
  209. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +3 -0
  210. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +15 -0
  211. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +9 -0
  212. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +29 -0
  213. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +2 -0
  214. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +22 -0
  215. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +37 -0
  216. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +34 -0
  217. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +12 -0
  218. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +23 -0
  219. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +171 -0
  220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +1261 -0
  221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +20 -0
  222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +54 -0
  223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +22 -0
  224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +13 -0
  225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +358 -0
  226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +77 -0
  227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +512 -0
  228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +43 -0
  229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +121 -0
  230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +82 -0
  231. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +17 -0
  232. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +7 -0
  233. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +210 -0
  234. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +15 -0
  235. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +54 -0
  236. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +4 -0
  237. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +55 -0
  238. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +2 -0
  239. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +5 -0
  240. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +30 -0
  241. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +206 -0
  242. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +15 -0
  243. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +106 -0
  244. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +19 -0
  245. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +356 -0
  246. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +297 -0
  247. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +60 -0
  248. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +15 -0
  249. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +18 -0
  250. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +28 -0
  251. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +3 -0
  252. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +10 -0
  253. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +68 -0
  254. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +106 -0
  255. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +51 -0
  256. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +6 -0
  257. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +35 -0
  258. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +37 -0
  259. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +40 -0
  260. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +37 -0
  261. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +52 -0
  262. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +10 -0
  263. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +35 -0
  264. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +24 -0
  265. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  266. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +70 -0
  267. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +26 -0
  268. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +36 -0
  269. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +19 -0
  270. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +3 -0
  271. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +61 -0
  272. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +23 -0
  273. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +3 -0
  274. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +10 -0
  275. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +42 -0
  276. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +35 -0
  277. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +12 -0
  278. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +33 -0
  279. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +9 -0
  280. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +34 -0
  281. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +22 -0
  282. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  283. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  284. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  285. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  286. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +102 -0
  287. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  288. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  289. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  290. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +20 -0
  291. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  292. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +12 -0
  293. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  294. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  295. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  296. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +23 -0
  297. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  298. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  299. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +32 -0
  300. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +34 -0
  301. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  302. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  303. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +54 -0
  304. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  305. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  306. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  307. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +95 -0
  308. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  309. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  310. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  311. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  312. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  313. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  314. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  315. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  316. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  317. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  318. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +14 -0
  319. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  320. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +394 -0
  321. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +12 -0
  322. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  323. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +120 -0
  324. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +28 -0
  325. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +17 -0
  326. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +246 -0
  327. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +20 -0
  328. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +457 -0
  329. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +8 -0
  330. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +3 -0
  331. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +2 -0
  332. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +22 -0
  333. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +18 -0
  334. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +11 -0
  335. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +11 -0
  336. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +4 -0
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +4 -0
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +5 -0
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +8 -0
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +5 -0
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +26 -0
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +7 -0
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +10 -0
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +18 -0
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +30 -0
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +2 -0
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +16 -0
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +3 -0
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +3 -0
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +9 -0
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +31 -0
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +21 -0
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +2 -0
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +31 -0
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +5 -0
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +12 -0
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +3 -0
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +15 -0
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +3 -0
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/index.mjs +84 -0
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/package.json +14 -0
  362. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +102 -15
  363. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +507 -306
  364. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +309 -123
  365. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +124 -58
  366. package/dist/extensions/pi-subagents/test/integration/chain-clarify.test.ts +62 -16
  367. package/dist/extensions/pi-subagents/test/integration/chain-execution.test.ts +167 -113
  368. package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +1 -1
  369. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +4 -2
  370. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +139 -58
  371. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +324 -59
  372. package/dist/extensions/pi-subagents/test/integration/parallel-execution.test.ts +98 -22
  373. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +106 -106
  374. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +416 -106
  375. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +287 -17
  376. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +1122 -96
  377. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +107 -20
  378. package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +9 -9
  379. package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +26 -6
  380. package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +2 -2
  381. package/dist/extensions/pi-subagents/test/support/helpers.ts +2 -0
  382. package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +1 -1
  383. package/dist/extensions/pi-subagents/test/support/ts-loader.mjs +0 -8
  384. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +194 -59
  385. package/dist/extensions/pi-subagents/test/unit/active-async-capacity.test.ts +317 -0
  386. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +15 -15
  387. package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +66 -66
  388. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +334 -248
  389. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +52 -52
  390. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +26 -26
  391. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +118 -99
  392. package/dist/extensions/pi-subagents/test/unit/agent-refinements.test.ts +160 -0
  393. package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +9 -9
  394. package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +43 -1
  395. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +36 -10
  396. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +387 -30
  397. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +9 -9
  398. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +18 -3
  399. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +99 -40
  400. package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +5 -3
  401. package/dist/extensions/pi-subagents/test/unit/builtin-agent-documentation.test.ts +7 -7
  402. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +19 -19
  403. package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +94 -23
  404. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +9 -9
  405. package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +20 -20
  406. package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +9 -9
  407. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +35 -5
  408. package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +2 -2
  409. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +70 -52
  410. package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +187 -0
  411. package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +125 -71
  412. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +18 -3
  413. package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +12 -12
  414. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +17 -23
  415. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +30 -2
  416. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +25 -25
  417. package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +3 -3
  418. package/dist/extensions/pi-subagents/test/unit/file-coalescer.test.ts +15 -0
  419. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +91 -47
  420. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +468 -38
  421. package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +14 -4
  422. package/dist/extensions/pi-subagents/test/unit/foreground-tool-call-compaction.test.ts +37 -0
  423. package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +69 -0
  424. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +79 -2
  425. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +102 -49
  426. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +98 -32
  427. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +7 -6
  428. package/dist/extensions/pi-subagents/test/unit/llm-intent-arbiter.test.ts +171 -0
  429. package/dist/extensions/pi-subagents/test/unit/mission-goal-driver.test.ts +116 -0
  430. package/dist/extensions/pi-subagents/test/unit/mission-lifecycle.test.ts +81 -7
  431. package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +289 -13
  432. package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +42 -1
  433. package/dist/extensions/pi-subagents/test/unit/model-scope-settings.test.ts +2 -2
  434. package/dist/extensions/pi-subagents/test/unit/model-scope.test.ts +11 -2
  435. package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +84 -10
  436. package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +122 -8
  437. package/dist/extensions/pi-subagents/test/unit/nested-events.test.ts +8 -8
  438. package/dist/extensions/pi-subagents/test/unit/notify.test.ts +24 -24
  439. package/dist/extensions/pi-subagents/test/unit/owned-process-tree.test.ts +69 -0
  440. package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +16 -2
  441. package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +7 -7
  442. package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +10 -10
  443. package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +3 -3
  444. package/dist/extensions/pi-subagents/test/unit/path-resolution.test.ts +26 -17
  445. package/dist/extensions/pi-subagents/test/unit/pi-args-permission-system.test.ts +405 -0
  446. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +440 -92
  447. package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +24 -8
  448. package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +6 -6
  449. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +43 -43
  450. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +13 -13
  451. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +59 -6
  452. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +19 -19
  453. package/dist/extensions/pi-subagents/test/unit/project-panes-public-api.test.ts +243 -0
  454. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +68 -168
  455. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +58 -15
  456. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +51 -0
  457. package/dist/extensions/pi-subagents/test/unit/reads-resolution.test.ts +66 -0
  458. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +47 -28
  459. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +12 -12
  460. package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +57 -0
  461. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +111 -31
  462. package/dist/extensions/pi-subagents/test/unit/run-fanout-budget.test.ts +121 -0
  463. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +1 -1
  464. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +65 -50
  465. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +69 -28
  466. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +67 -0
  467. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +60 -44
  468. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +424 -49
  469. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +28 -0
  470. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +23 -1
  471. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +32 -5
  472. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +13 -13
  473. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +130 -92
  474. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +2 -2
  475. package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +85 -0
  476. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +35 -35
  477. package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +24 -0
  478. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +312 -22
  479. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +150 -15
  480. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +65 -26
  481. package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +138 -0
  482. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +76 -25
  483. package/dist/extensions/pi-subagents/test/unit/turn-budget.test.ts +5 -5
  484. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +55 -6
  485. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +13 -13
  486. package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +1 -1
  487. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +1 -1
  488. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +8 -8
  489. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +6 -6
  490. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +138 -11
  491. package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +8 -8
  492. package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +113 -0
  493. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +68 -7
  494. package/dist/extensions/pi-subagents/test/unit/writer-budget-guidance.test.ts +6 -6
  495. package/dist/extensions/workflow/extension.ts +21 -19
  496. package/dist/extensions/workflow/modes.ts +65 -0
  497. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  498. package/dist/modes/interactive/interactive-mode.js +48 -1
  499. package/dist/skills/pi-subagents/SKILL.md +20 -15
  500. package/dist/skills/pi-subagents/references/constraints-and-recipes.md +77 -83
  501. package/dist/skills/pi-subagents/references/execution-controls.md +215 -106
  502. package/dist/skills/pi-subagents/references/management-authoring-rpc.md +29 -9
  503. package/dist/skills/pi-subagents/references/prompting-and-roles.md +58 -43
  504. package/docs/plans/workflow-autoloop-reference.md +192 -0
  505. package/docs/plans/workflow-subagent-consolidation-planb.md +374 -0
  506. package/docs/plans/workflow-subagent-scripted-merge.md +406 -0
  507. package/docs/quickstart.md +27 -43
  508. package/docs/settings.md +4 -0
  509. package/docs/usage.md +1 -0
  510. package/package.json +2 -1
  511. package/dist/extensions/workflow/adapter.ts +0 -949
  512. package/dist/extensions/workflow/modes/loop.ts +0 -74
  513. package/dist/extensions/workflow/modes/prototype.ts +0 -170
  514. package/dist/extensions/workflow/modes/quicktype.ts +0 -150
  515. package/dist/extensions/workflow/modes/task.ts +0 -105
  516. package/dist/extensions/workflow/run-state.ts +0 -124
  517. package/dist/extensions/workflow/state-machine.ts +0 -484
  518. package/dist/extensions/workflow/validators.ts +0 -42
@@ -232,7 +232,7 @@ describe("detectSubagentError", { skip: !available ? "utils not importable" : un
232
232
  // ---- Real-world regression test ----
233
233
 
234
234
  it("real-world: 19-read review run with trailing EISDIR", () => {
235
- // Simulate the actual _impl-commentator run that produced a false positive
235
+ // Simulate the actual _impl-reviewer run that produced a false positive
236
236
  const readResults = Array.from({ length: 18 }, (_, i) =>
237
237
  toolResult("read", `contents of file ${i + 1}`),
238
238
  );
@@ -4,6 +4,7 @@ import * as fs from "node:fs";
4
4
  import * as os from "node:os";
5
5
  import * as path from "node:path";
6
6
  import { afterEach, describe, it } from "node:test";
7
+ import { fileURLToPath } from "node:url";
7
8
 
8
9
  const tempDirs: string[] = [];
9
10
  afterEach(() => {
@@ -12,7 +13,7 @@ afterEach(() => {
12
13
 
13
14
  function runProcess(command: string, args: string[], cwd: string): Promise<number | null> {
14
15
  return new Promise((resolve, reject) => {
15
- const child = spawn(command, args, { cwd, stdio: "inherit", shell: false, windowsHide: true });
16
+ const child = spawn(command, args, { cwd, stdio: "inherit", shell: false });
16
17
  child.once("error", reject);
17
18
  child.once("close", resolve);
18
19
  });
@@ -45,7 +46,8 @@ describe("external CLI async lifecycle", () => {
45
46
  resultMode: "single",
46
47
  }));
47
48
  const repo = path.resolve(import.meta.dirname, "../..");
48
- const exitCode = await runProcess(process.execPath, [path.join(repo, "node_modules/jiti/lib/jiti-cli.mjs"), path.join(repo, "src/runs/background/subagent-runner.ts"), configPath], repo);
49
+ const jitiCli = path.join(path.dirname(fileURLToPath(import.meta.resolve("jiti/package.json"))), "lib", "jiti-cli.mjs");
50
+ const exitCode = await runProcess(process.execPath, [jitiCli, path.join(repo, "src/runs/background/subagent-runner.ts"), configPath], repo);
49
51
  assert.equal(exitCode, 0);
50
52
  const status = JSON.parse(fs.readFileSync(path.join(asyncDir, "status.json"), "utf-8"));
51
53
  assert.equal(status.state, "complete");
@@ -5,6 +5,7 @@ import * as path from "node:path";
5
5
  import type { MockPi } from "../support/helpers.ts";
6
6
  import { createEventBus, createMockPi, createTempDir, events, removeTempDir, tryImport } from "../support/helpers.ts";
7
7
  import { discoverAgents } from "../../src/agents/agents.ts";
8
+ import { ACTIVE_ASYNC_CAPACITY_DIR, acquireActiveAsyncCapacity, activeAsyncCapacitySessionKey } from "../../src/runs/background/active-async-capacity.ts";
8
9
  import { DEFAULT_FORK_PREAMBLE, INTERCOM_DETACH_REQUEST_EVENT, SUBAGENT_ASYNC_STARTED_EVENT } from "../../src/shared/types.ts";
9
10
 
10
11
  interface ExecutorModule {
@@ -335,14 +336,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
335
336
  const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
336
337
  const executor = makeExecutorWithDiscoverAgents(() => ({
337
338
  agents: [
338
- { name: "builder", description: "Worker", defaultContext: "fork" },
339
+ { name: "worker", description: "Worker", defaultContext: "fork" },
339
340
  ],
340
341
  projectAgentsDir: null,
341
342
  }));
342
343
 
343
344
  const result = await executor.execute(
344
345
  "id",
345
- { agent: "builder", task: "test" },
346
+ { agent: "worker", task: "test" },
346
347
  new AbortController().signal,
347
348
  undefined,
348
349
  makeCtx(manager),
@@ -376,14 +377,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
376
377
  };
377
378
  const executor = makeExecutorWithDiscoverAgents(() => ({
378
379
  agents: [
379
- { name: "builder", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
380
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
380
381
  ],
381
382
  projectAgentsDir: null,
382
383
  }));
383
384
 
384
385
  const result = await executor.execute(
385
386
  "id",
386
- { agent: "builder", task: "test" },
387
+ { agent: "worker", task: "test" },
387
388
  new AbortController().signal,
388
389
  undefined,
389
390
  makeCtx(manager),
@@ -433,7 +434,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
433
434
  };
434
435
  const executor = makeExecutorWithDiscoverAgents(() => ({
435
436
  agents: [
436
- { name: "builder", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", fallbackModels: ["anthropic/claude-sonnet-4:low"], thinking: "high" },
437
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", fallbackModels: ["anthropic/claude-sonnet-4:low"], thinking: "high" },
437
438
  ],
438
439
  projectAgentsDir: null,
439
440
  }));
@@ -449,7 +450,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
449
450
  };
450
451
  const result = await executor.execute(
451
452
  "id",
452
- { agent: "builder", task: "test" },
453
+ { agent: "worker", task: "test" },
453
454
  new AbortController().signal,
454
455
  undefined,
455
456
  ctx,
@@ -482,7 +483,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
482
483
  };
483
484
  const executor = makeExecutorWithDiscoverAgents(() => ({
484
485
  agents: [
485
- { name: "builder", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
486
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
486
487
  ],
487
488
  projectAgentsDir: null,
488
489
  }));
@@ -495,7 +496,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
495
496
  };
496
497
  const result = await executor.execute(
497
498
  "id",
498
- { agent: "builder", task: "test" },
499
+ { agent: "worker", task: "test" },
499
500
  new AbortController().signal,
500
501
  undefined,
501
502
  ctx,
@@ -516,7 +517,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
516
517
  const manager = makeSignedThinkingSessionManager(childSessionFile);
517
518
  const executor = makeExecutorWithDiscoverAgents(() => ({
518
519
  agents: [
519
- { name: "builder", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
520
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
520
521
  ],
521
522
  projectAgentsDir: null,
522
523
  modelScope: { enforce: true, allow: ["anthropic/*"] },
@@ -533,7 +534,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
533
534
  try {
534
535
  const result = await executor.execute(
535
536
  "id",
536
- { agent: "builder", task: "test" },
537
+ { agent: "worker", task: "test" },
537
538
  new AbortController().signal,
538
539
  undefined,
539
540
  ctx,
@@ -554,7 +555,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
554
555
  const manager = makeSignedThinkingSessionManager(childSessionFile);
555
556
  const executor = makeExecutorWithDiscoverAgents(() => ({
556
557
  agents: [
557
- { name: "builder", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
558
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
558
559
  ],
559
560
  projectAgentsDir: null,
560
561
  modelScope: { enforce: true, allow: ["anthropic/*"] },
@@ -572,7 +573,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
572
573
  for (const model of ["", "inherit"]) {
573
574
  const result = await executor.execute(
574
575
  "id",
575
- { agent: "builder", task: "test", model },
576
+ { agent: "worker", task: "test", model },
576
577
  new AbortController().signal,
577
578
  undefined,
578
579
  ctx,
@@ -612,7 +613,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
612
613
  };
613
614
  const executor = makeExecutorWithDiscoverAgents(() => ({
614
615
  agents: [
615
- { name: "builder", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
616
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
616
617
  ],
617
618
  projectAgentsDir: null,
618
619
  }));
@@ -625,7 +626,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
625
626
  };
626
627
  const result = await executor.execute(
627
628
  "id",
628
- { agent: "builder", task: "test" },
629
+ { agent: "worker", task: "test" },
629
630
  new AbortController().signal,
630
631
  undefined,
631
632
  ctx,
@@ -633,7 +634,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
633
634
 
634
635
  assert.equal(result.isError, undefined);
635
636
  const text = result.content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
636
- assert.equal(text.includes("fork context forced thinking off for builder (child 0)"), true);
637
+ assert.equal(text.includes("fork context forced thinking off for worker (child 0)"), true);
637
638
  });
638
639
 
639
640
  it("resolves inherit before classifying a forked child", async () => {
@@ -641,7 +642,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
641
642
  const manager = makeSignedThinkingSessionManager(childSessionFile);
642
643
  const executor = makeExecutorWithDiscoverAgents(() => ({
643
644
  agents: [
644
- { name: "builder", description: "Worker", defaultContext: "fork", thinking: "high" },
645
+ { name: "worker", description: "Worker", defaultContext: "fork", thinking: "high" },
645
646
  ],
646
647
  projectAgentsDir: null,
647
648
  }));
@@ -655,7 +656,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
655
656
 
656
657
  const result = await executor.execute(
657
658
  "id",
658
- { agent: "builder", task: "test", model: "inherit" },
659
+ { agent: "worker", task: "test", model: "inherit" },
659
660
  new AbortController().signal,
660
661
  undefined,
661
662
  ctx,
@@ -671,7 +672,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
671
672
  const manager = makeSignedThinkingSessionManager(childSessionFile);
672
673
  const executor = makeExecutorWithDiscoverAgents(() => ({
673
674
  agents: [
674
- { name: "builder", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5", thinking: "high" },
675
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5", thinking: "high" },
675
676
  ],
676
677
  projectAgentsDir: null,
677
678
  }));
@@ -688,7 +689,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
688
689
 
689
690
  const result = await executor.execute(
690
691
  "id",
691
- { tasks: [{ agent: "builder", task: "test", model: "" }] },
692
+ { tasks: [{ agent: "worker", task: "test", model: "" }] },
692
693
  new AbortController().signal,
693
694
  undefined,
694
695
  ctx,
@@ -706,7 +707,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
706
707
  const manager = makeSignedThinkingSessionManager(childSessionFile);
707
708
  const executor = makeExecutorWithDiscoverAgents(() => ({
708
709
  agents: [
709
- { name: "builder", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
710
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
710
711
  ],
711
712
  projectAgentsDir: null,
712
713
  }));
@@ -719,7 +720,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
719
720
 
720
721
  const result = await executor.execute(
721
722
  "id",
722
- { tasks: [{ agent: "builder", task: "test", model: "" }] },
723
+ { tasks: [{ agent: "worker", task: "test", model: "" }] },
723
724
  new AbortController().signal,
724
725
  undefined,
725
726
  ctx,
@@ -737,7 +738,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
737
738
  const manager = makeSignedThinkingSessionManager(childSessionFile);
738
739
  const executor = makeExecutorWithDiscoverAgents(() => ({
739
740
  agents: [
740
- { name: "builder", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
741
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
741
742
  ],
742
743
  projectAgentsDir: null,
743
744
  }));
@@ -763,7 +764,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
763
764
 
764
765
  const result = await executor.execute(
765
766
  "id",
766
- { agent: "builder", task: "test", clarify: true },
767
+ { agent: "worker", task: "test", clarify: true },
767
768
  new AbortController().signal,
768
769
  undefined,
769
770
  ctx,
@@ -783,7 +784,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
783
784
  const manager = makeSignedThinkingSessionManager(childSessionFile);
784
785
  const executor = makeExecutorWithDiscoverAgents(() => ({
785
786
  agents: [
786
- { name: "builder", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
787
+ { name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
787
788
  ],
788
789
  projectAgentsDir: null,
789
790
  }));
@@ -796,7 +797,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
796
797
 
797
798
  const result = await executor.execute(
798
799
  "id",
799
- { agent: "builder", task: "test" },
800
+ { agent: "worker", task: "test" },
800
801
  new AbortController().signal,
801
802
  undefined,
802
803
  ctx,
@@ -804,7 +805,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
804
805
 
805
806
  assert.equal(result.isError, true);
806
807
  const text = result.content.filter((block) => block.text).map((block) => block.text).join("\n");
807
- assert.equal(text.includes("fork context forced thinking off for builder (child 0)"), true);
808
+ assert.equal(text.includes("fork context forced thinking off for worker (child 0)"), true);
808
809
  });
809
810
 
810
811
  it("keeps default-fork context on run-path errors", async () => {
@@ -812,7 +813,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
812
813
  const { manager } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
813
814
  const executor = makeExecutorWithDiscoverAgents(() => ({
814
815
  agents: [
815
- { name: "builder", description: "Worker", defaultContext: "fork" },
816
+ { name: "worker", description: "Worker", defaultContext: "fork" },
816
817
  ],
817
818
  projectAgentsDir: null,
818
819
  }));
@@ -824,7 +825,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
824
825
 
825
826
  const result = await executor.execute(
826
827
  "id",
827
- { agent: "builder" },
828
+ { agent: "worker" },
828
829
  new AbortController().signal,
829
830
  undefined,
830
831
  ctx,
@@ -840,14 +841,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
840
841
  const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
841
842
  const executor = makeExecutorWithDiscoverAgents(() => ({
842
843
  agents: [
843
- { name: "commentator", description: "Oracle", defaultContext: "fork" },
844
+ { name: "oracle", description: "Oracle", defaultContext: "fork" },
844
845
  ],
845
846
  projectAgentsDir: null,
846
847
  }));
847
848
 
848
849
  const result = await executor.execute(
849
850
  "id",
850
- { agent: "commentator", task: "test", context: "fresh" },
851
+ { agent: "oracle", task: "test", context: "fresh" },
851
852
  new AbortController().signal,
852
853
  undefined,
853
854
  makeCtx(manager),
@@ -866,7 +867,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
866
867
  const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
867
868
  const executor = makeExecutorWithDiscoverAgents(() => ({
868
869
  agents: [
869
- { name: "builder", description: "Worker", defaultContext: "fork" },
870
+ { name: "worker", description: "Worker", defaultContext: "fork" },
870
871
  { name: "second", description: "Second" },
871
872
  ],
872
873
  projectAgentsDir: null,
@@ -874,7 +875,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
874
875
 
875
876
  const result = await executor.execute(
876
877
  "id",
877
- { tasks: [{ agent: "builder", task: "one" }, { agent: "second", task: "two" }] },
878
+ { tasks: [{ agent: "worker", task: "one" }, { agent: "second", task: "two" }] },
878
879
  new AbortController().signal,
879
880
  undefined,
880
881
  makeCtx(manager),
@@ -898,7 +899,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
898
899
  const { manager, openedPaths } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
899
900
  const executor = makeExecutorWithDiscoverAgents(() => ({
900
901
  agents: [
901
- { name: "builder", description: "Worker", defaultContext: "fork" },
902
+ { name: "worker", description: "Worker", defaultContext: "fork" },
902
903
  { name: "second", description: "Second" },
903
904
  ],
904
905
  projectAgentsDir: null,
@@ -906,7 +907,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
906
907
 
907
908
  const result = await executor.execute(
908
909
  "id",
909
- { tasks: [{ agent: "builder", task: "one" }, { agent: "second", task: "two" }], context: "fresh" },
910
+ { tasks: [{ agent: "worker", task: "one" }, { agent: "second", task: "two" }], context: "fresh" },
910
911
  new AbortController().signal,
911
912
  undefined,
912
913
  makeCtx(manager),
@@ -924,14 +925,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
924
925
  const executor = makeExecutorWithDiscoverAgents(() => ({
925
926
  agents: [
926
927
  { name: "echo", description: "Echo" },
927
- { name: "builder", description: "Worker", defaultContext: "fork" },
928
+ { name: "worker", description: "Worker", defaultContext: "fork" },
928
929
  ],
929
930
  projectAgentsDir: null,
930
931
  }));
931
932
 
932
933
  const result = await executor.execute(
933
934
  "id",
934
- { chain: [{ agent: "echo", task: "scan" }, { agent: "builder", task: "write" }], clarify: false },
935
+ { chain: [{ agent: "echo", task: "scan" }, { agent: "worker", task: "write" }], clarify: false },
935
936
  new AbortController().signal,
936
937
  undefined,
937
938
  makeCtx(manager),
@@ -965,15 +966,15 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
965
966
  };
966
967
  const executor = makeExecutorWithDiscoverAgents(() => ({
967
968
  agents: [
968
- { name: "explorer", description: "Scout", defaultContext: "fresh" },
969
- { name: "builder", description: "Worker", defaultContext: "fork" },
969
+ { name: "scout", description: "Scout", defaultContext: "fresh" },
970
+ { name: "worker", description: "Worker", defaultContext: "fork" },
970
971
  ],
971
972
  projectAgentsDir: null,
972
973
  }));
973
974
 
974
975
  const result = await executor.execute(
975
976
  "id",
976
- { tasks: [{ agent: "explorer", task: "scan" }, { agent: "builder", task: "write" }] },
977
+ { tasks: [{ agent: "scout", task: "scan" }, { agent: "worker", task: "write" }] },
977
978
  new AbortController().signal,
978
979
  undefined,
979
980
  makeCtx(manager),
@@ -1000,8 +1001,8 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1000
1001
  };
1001
1002
  const executor = makeExecutorWithDiscoverAgents(() => ({
1002
1003
  agents: [
1003
- { name: "explorer", description: "Scout", defaultContext: "fresh" },
1004
- { name: "builder", description: "Worker", defaultContext: "fork" },
1004
+ { name: "scout", description: "Scout", defaultContext: "fresh" },
1005
+ { name: "worker", description: "Worker", defaultContext: "fork" },
1005
1006
  ],
1006
1007
  projectAgentsDir: null,
1007
1008
  }));
@@ -1010,11 +1011,11 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1010
1011
  "id",
1011
1012
  {
1012
1013
  chain: [
1013
- { agent: "explorer", task: "scan" },
1014
- { agent: "builder", task: "write" },
1014
+ { agent: "scout", task: "scan" },
1015
+ { agent: "worker", task: "write" },
1015
1016
  {
1016
1017
  expand: { from: { output: "items", path: "$" } },
1017
- parallel: { agent: "explorer", task: "inspect item" },
1018
+ parallel: { agent: "scout", task: "inspect item" },
1018
1019
  collect: { as: "inspections" },
1019
1020
  },
1020
1021
  ],
@@ -1041,7 +1042,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1041
1042
  const executor = makeExecutorWithDiscoverAgents(() => ({
1042
1043
  agents: [
1043
1044
  { name: "producer", description: "Producer", defaultContext: "fresh" },
1044
- { name: "builder", description: "Worker", defaultContext: "fork" },
1045
+ { name: "worker", description: "Worker", defaultContext: "fork" },
1045
1046
  ],
1046
1047
  projectAgentsDir: null,
1047
1048
  }));
@@ -1053,10 +1054,10 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1053
1054
  { agent: "producer", task: "produce", as: "items", outputSchema: { type: "object" } },
1054
1055
  {
1055
1056
  expand: { from: { output: "items", path: "/items" }, item: "item", key: "/id", maxItems: 3 },
1056
- parallel: { agent: "builder", task: "inspect {item.id}" },
1057
+ parallel: { agent: "worker", task: "inspect {item.id}" },
1057
1058
  collect: { as: "inspections" },
1058
1059
  },
1059
- { agent: "builder", task: "final" },
1060
+ { agent: "worker", task: "final" },
1060
1061
  ],
1061
1062
  clarify: false,
1062
1063
  },
@@ -1074,13 +1075,13 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1074
1075
  it("reports unknown top-level parallel agents before default-fork preconditions", async () => {
1075
1076
  const { manager } = makeSessionManagerRecorder({ sessionFile: undefined, leafId: "leaf-current" });
1076
1077
  const executor = makeExecutorWithDiscoverAgents(() => ({
1077
- agents: [{ name: "builder", description: "Worker", defaultContext: "fork" }],
1078
+ agents: [{ name: "worker", description: "Worker", defaultContext: "fork" }],
1078
1079
  projectAgentsDir: null,
1079
1080
  }));
1080
1081
 
1081
1082
  const result = await executor.execute(
1082
1083
  "id",
1083
- { tasks: [{ agent: "builder", task: "one" }, { agent: "missing", task: "two" }] },
1084
+ { tasks: [{ agent: "worker", task: "one" }, { agent: "missing", task: "two" }] },
1084
1085
  new AbortController().signal,
1085
1086
  undefined,
1086
1087
  makeCtx(manager),
@@ -1446,7 +1447,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1446
1447
 
1447
1448
  it("keeps inherited model-scope warnings non-fatal in async parallel conversion", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
1448
1449
  const executor = makeExecutorWithDiscoverAgents(() => ({
1449
- agents: [{ name: "builder", description: "Worker", model: "openai/gpt-5-mini" }],
1450
+ agents: [{ name: "worker", description: "Worker", model: "openai/gpt-5-mini" }],
1450
1451
  projectAgentsDir: null,
1451
1452
  modelScope: { enforce: true, allow: ["anthropic/*"] },
1452
1453
  }));
@@ -1462,7 +1463,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1462
1463
  try {
1463
1464
  const result = await executor.execute(
1464
1465
  "id",
1465
- { tasks: [{ agent: "builder", task: "test" }], async: true },
1466
+ { tasks: [{ agent: "worker", task: "test" }], async: true },
1466
1467
  new AbortController().signal,
1467
1468
  undefined,
1468
1469
  ctx,
@@ -1478,7 +1479,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1478
1479
 
1479
1480
  it("keeps inherited model-scope warnings non-fatal after Clarify switches parallel work to background", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
1480
1481
  const executor = makeExecutorWithDiscoverAgents(() => ({
1481
- agents: [{ name: "builder", description: "Worker", model: "openai/gpt-5-mini" }],
1482
+ agents: [{ name: "worker", description: "Worker", model: "openai/gpt-5-mini" }],
1482
1483
  projectAgentsDir: null,
1483
1484
  modelScope: { enforce: true, allow: ["anthropic/*"] },
1484
1485
  }));
@@ -1503,7 +1504,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1503
1504
  try {
1504
1505
  const result = await executor.execute(
1505
1506
  "id",
1506
- { tasks: [{ agent: "builder", task: "test" }], clarify: true },
1507
+ { tasks: [{ agent: "worker", task: "test" }], clarify: true },
1507
1508
  new AbortController().signal,
1508
1509
  undefined,
1509
1510
  ctx,
@@ -1523,6 +1524,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1523
1524
  const rawParallelChainGoal = "Parallel chain first child raw goal";
1524
1525
  const paddedWorkflowGoal = " preserve this workflow padding ";
1525
1526
  const literalPreambleGoal = `${DEFAULT_FORK_PREAMBLE}\n\nTask:\nliteral fresh-context text`;
1527
+ const redactedGoal = "[prompt redacted]";
1526
1528
  const executor = makeExecutorWithDiscoverAgents(() => ({
1527
1529
  agents: [
1528
1530
  { name: "echo", description: "Echo", defaultContext: "fork" },
@@ -1576,13 +1578,91 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1576
1578
  assert.ok(result.details?.asyncId, `${testCase.name}: expected an async id`);
1577
1579
  const event = started.find((entry) => entry.id === result.details?.asyncId);
1578
1580
  assert.ok(event, `${testCase.name}: missing async-started event for ${result.details?.asyncId}`);
1579
- assert.equal(event.goal, testCase.goal, testCase.name);
1581
+ assert.equal(event.goal, redactedGoal, testCase.name);
1580
1582
  if (!("allowsLiteralPreamble" in testCase)) {
1581
1583
  assert.doesNotMatch(event.goal ?? "", /delegated subagent running from a fork/, testCase.name);
1584
+ assert.notEqual(event.goal, testCase.goal, testCase.name);
1582
1585
  }
1583
1586
  }
1584
1587
  });
1585
1588
 
1589
+ it("rejects Clarify background switches over the active async capacity cap", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
1590
+ const previousDepth = process.env.SELESAI_SUBAGENT_DEPTH;
1591
+ process.env.SELESAI_SUBAGENT_DEPTH = "0";
1592
+ try {
1593
+ for (const testCase of [
1594
+ {
1595
+ name: "single",
1596
+ mode: "single",
1597
+ params: { agent: "echo", task: "Original single", async: true, clarify: true },
1598
+ templates: ["Edited single"],
1599
+ },
1600
+ {
1601
+ name: "parallel",
1602
+ mode: "parallel",
1603
+ params: { tasks: [{ agent: "echo", task: "Original parallel" }, { agent: "second", task: "Second child" }], async: true, clarify: true },
1604
+ templates: ["Edited parallel", "Second child"],
1605
+ },
1606
+ {
1607
+ name: "chain",
1608
+ mode: "chain",
1609
+ params: { chain: [{ agent: "echo", task: "Original chain" }], async: true, clarify: true },
1610
+ templates: ["Edited chain"],
1611
+ },
1612
+ ] as const) {
1613
+ const sessionId = `session-clarify-cap-${testCase.name}-${Date.now()}`;
1614
+ const sessionCapacityDir = path.join(ACTIVE_ASYNC_CAPACITY_DIR, activeAsyncCapacitySessionKey(sessionId));
1615
+ fs.rmSync(sessionCapacityDir, { recursive: true, force: true });
1616
+ const held = acquireActiveAsyncCapacity({
1617
+ sessionId,
1618
+ limit: 1,
1619
+ runId: `held-${testCase.name}`,
1620
+ kind: "runner",
1621
+ asyncDir: path.join(tempDir, `held-${testCase.name}`),
1622
+ });
1623
+ held?.markStarted(`held-runner-${testCase.name}`);
1624
+ try {
1625
+ const executor = makeExecutorWithConfig({ maxActiveAsyncRunsPerSession: 1 });
1626
+ const manager = {
1627
+ ...makeSessionManagerRecorder().manager,
1628
+ getSessionId: () => sessionId,
1629
+ };
1630
+ const ctx = {
1631
+ ...makeCtx(manager),
1632
+ hasUI: true,
1633
+ ui: {
1634
+ custom: async () => ({
1635
+ confirmed: true,
1636
+ templates: testCase.templates,
1637
+ behaviorOverrides: testCase.templates.map(() => undefined),
1638
+ runInBackground: true,
1639
+ }),
1640
+ },
1641
+ };
1642
+
1643
+ const result = await executor.execute(
1644
+ `clarify-cap-${testCase.name}`,
1645
+ testCase.params,
1646
+ new AbortController().signal,
1647
+ undefined,
1648
+ ctx,
1649
+ );
1650
+
1651
+ assert.equal(result.isError, true, testCase.name);
1652
+ assert.equal(result.details?.mode, testCase.mode, testCase.name);
1653
+ assert.equal(result.details?.asyncId, undefined, testCase.name);
1654
+ assert.match(result.content[0]?.text ?? "", /Active async run capacity exhausted: 1\/1 used/, testCase.name);
1655
+ assert.equal(mockPi.callCount(), 0, testCase.name);
1656
+ } finally {
1657
+ fs.rmSync(sessionCapacityDir, { recursive: true, force: true });
1658
+ }
1659
+ }
1660
+ } finally {
1661
+ if (previousDepth === undefined) delete process.env.SELESAI_SUBAGENT_DEPTH;
1662
+ else process.env.SELESAI_SUBAGENT_DEPTH = previousDepth;
1663
+ }
1664
+ });
1665
+
1586
1666
  it("uses edited raw goals when clarification switches each mode to background", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
1587
1667
  const executor = makeExecutorWithDiscoverAgents(() => ({
1588
1668
  agents: [
@@ -1640,7 +1720,8 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1640
1720
  assert.equal(result.isError, undefined, testCase.name);
1641
1721
  assert.ok(result.details?.asyncId, `${testCase.name}: expected an async id`);
1642
1722
  const event = started.find((entry) => entry.id === result.details?.asyncId);
1643
- assert.equal(event?.goal, testCase.goal, testCase.name);
1723
+ assert.equal(event?.goal, "[prompt redacted]", testCase.name);
1724
+ assert.notEqual(event?.goal, testCase.goal, testCase.name);
1644
1725
  assert.doesNotMatch(event?.goal ?? "", /delegated subagent running from a fork/, testCase.name);
1645
1726
  }
1646
1727
  });
@@ -1863,14 +1944,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
1863
1944
  process.env.USERPROFILE = tempHome;
1864
1945
  const worktreeDir = path.join(tempDir, "worktree");
1865
1946
  fs.mkdirSync(worktreeDir, { recursive: true });
1866
- writeProjectOverride(tempDir, "commentator", "openai/gpt-5-main");
1867
- writeProjectOverride(worktreeDir, "commentator", "openai/gpt-5-worktree");
1947
+ writeProjectOverride(tempDir, "reviewer", "openai/gpt-5-main");
1948
+ writeProjectOverride(worktreeDir, "reviewer", "openai/gpt-5-worktree");
1868
1949
  const executor = makeExecutor();
1869
1950
 
1870
1951
  try {
1871
1952
  const result = await executor.execute(
1872
1953
  "id",
1873
- { action: "get", agent: "commentator", cwd: "worktree" },
1954
+ { action: "get", agent: "reviewer", cwd: "worktree" },
1874
1955
  new AbortController().signal,
1875
1956
  undefined,
1876
1957
  makeCtx(makeSessionManagerRecorder().manager),