@selesai/code 0.8.2 → 0.8.4

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 (528) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +4 -2
  3. package/dist/cli/args.d.ts +2 -0
  4. package/dist/cli/args.js +18 -0
  5. package/dist/cli/config-selector.js +2 -2
  6. package/dist/cli/startup-ui.d.ts +1 -1
  7. package/dist/cli/startup-ui.js +2 -2
  8. package/dist/core/keybindings.d.ts +44 -4
  9. package/dist/core/llama/provider.js +22 -7
  10. package/dist/core/model-resolver.js +2 -0
  11. package/dist/core/model-runtime.d.ts +4 -2
  12. package/dist/core/model-runtime.js +23 -2
  13. package/dist/core/remote-catalog-provider.js +72 -67
  14. package/dist/core/settings-manager.d.ts +8 -0
  15. package/dist/core/settings-manager.js +18 -0
  16. package/dist/extensions/handoff-new.ts +1 -1
  17. package/dist/extensions/inline-skills.test.ts +1 -0
  18. package/dist/extensions/inline-skills.ts +1 -1
  19. package/dist/extensions/pi-intercom/CHANGELOG.md +25 -3
  20. package/dist/extensions/pi-intercom/README.md +34 -15
  21. package/dist/extensions/pi-intercom/broker/broker.ts +38 -141
  22. package/dist/extensions/pi-intercom/broker/client-liveness.test.ts +173 -0
  23. package/dist/extensions/pi-intercom/broker/client.ts +78 -150
  24. package/dist/extensions/pi-intercom/broker/extension-state.ts +18 -7
  25. package/dist/extensions/pi-intercom/broker/framing.ts +1 -1
  26. package/dist/extensions/pi-intercom/broker/protocol.ts +182 -0
  27. package/dist/extensions/pi-intercom/broker/spawn.test.ts +106 -7
  28. package/dist/extensions/pi-intercom/broker/spawn.ts +37 -11
  29. package/dist/extensions/pi-intercom/config.test.ts +8 -10
  30. package/dist/extensions/pi-intercom/config.ts +3 -3
  31. package/dist/extensions/pi-intercom/index.ts +218 -147
  32. package/dist/extensions/pi-intercom/intercom.integration.test.ts +891 -103
  33. package/dist/extensions/pi-intercom/package.json +3 -2
  34. package/dist/extensions/pi-intercom/project-agent.test.ts +145 -0
  35. package/dist/extensions/pi-intercom/project-agent.ts +324 -0
  36. package/dist/extensions/pi-intercom/reply-tracker.test.ts +86 -1
  37. package/dist/extensions/pi-intercom/reply-tracker.ts +41 -9
  38. package/dist/extensions/pi-intercom/skills/pi-intercom/SKILL.md +49 -9
  39. package/dist/extensions/pi-intercom/test/inline-message.test.ts +9 -9
  40. package/dist/extensions/pi-intercom/types.ts +3 -1
  41. package/dist/extensions/pi-intercom/ui/inline-message.ts +7 -7
  42. package/dist/extensions/pi-powerline-footer/.github/workflows/test.yml +2 -2
  43. package/dist/extensions/pi-powerline-footer/CHANGELOG.md +15 -1
  44. package/dist/extensions/pi-powerline-footer/README.md +20 -37
  45. package/dist/extensions/pi-powerline-footer/bash-mode/completion.ts +40 -25
  46. package/dist/extensions/pi-powerline-footer/bash-mode/editor.ts +149 -18
  47. package/dist/extensions/pi-powerline-footer/bash-mode/types.ts +1 -0
  48. package/dist/extensions/pi-powerline-footer/editor-performance.ts +99 -0
  49. package/dist/extensions/pi-powerline-footer/git-status.ts +15 -0
  50. package/dist/extensions/pi-powerline-footer/index.ts +394 -586
  51. package/dist/extensions/pi-powerline-footer/package.json +5 -6
  52. package/dist/extensions/pi-powerline-footer/powerline-config.ts +0 -18
  53. package/dist/extensions/pi-powerline-footer/queue/store.ts +8 -56
  54. package/dist/extensions/pi-powerline-footer/queue/types.ts +1 -2
  55. package/dist/extensions/pi-powerline-footer/segments.ts +0 -3
  56. package/dist/extensions/pi-powerline-footer/tests/bash-mode.test.ts +231 -1
  57. package/dist/extensions/pi-powerline-footer/tests/custom-items.test.ts +5 -19
  58. package/dist/extensions/pi-powerline-footer/tests/editor-performance.test.ts +43 -0
  59. package/dist/extensions/pi-powerline-footer/tests/fixed-editor-border.test.ts +2 -2
  60. package/dist/extensions/pi-powerline-footer/tests/git-optional-locks.test.ts +64 -0
  61. package/dist/extensions/pi-powerline-footer/tests/guide.test.ts +1 -1
  62. package/dist/extensions/pi-powerline-footer/tests/jump-shortcuts.test.ts +86 -19
  63. package/dist/extensions/pi-powerline-footer/tests/queue-store.test.ts +19 -149
  64. package/dist/extensions/pi-powerline-footer/tests/remaining-regressions.test.ts +6 -0
  65. package/dist/extensions/pi-powerline-footer/tests/usage-display.test.ts +5 -5
  66. package/dist/extensions/pi-powerline-footer/tsconfig.json +1 -1
  67. package/dist/extensions/pi-powerline-footer/types.ts +1 -2
  68. package/dist/extensions/pi-subagents/CHANGELOG.md +202 -14
  69. package/dist/extensions/pi-subagents/README.md +65 -1614
  70. package/dist/extensions/pi-subagents/agents/builder.md +0 -1
  71. package/dist/extensions/pi-subagents/agents/delegate.md +14 -0
  72. package/dist/extensions/pi-subagents/agents/oracle.md +74 -0
  73. package/dist/extensions/pi-subagents/agents/reviewer.md +78 -0
  74. package/dist/extensions/pi-subagents/agents/scout.md +50 -0
  75. package/dist/extensions/pi-subagents/agents/worker.md +58 -0
  76. package/dist/extensions/pi-subagents/docs/configuration.md +328 -0
  77. package/dist/extensions/pi-subagents/docs/extension-api.md +308 -0
  78. package/dist/extensions/pi-subagents/docs/missions.md +119 -0
  79. package/dist/extensions/pi-subagents/docs/models.md +192 -0
  80. package/dist/extensions/pi-subagents/docs/observability.md +174 -0
  81. package/dist/extensions/pi-subagents/docs/tool-reference.md +343 -0
  82. package/dist/extensions/pi-subagents/docs/watchdog.md +176 -0
  83. package/dist/extensions/pi-subagents/docs/workflows.md +163 -0
  84. package/dist/extensions/pi-subagents/inspector-runner.mjs +11 -0
  85. package/dist/extensions/pi-subagents/package-lock.json +152 -194
  86. package/dist/extensions/pi-subagents/package.json +9 -10
  87. package/dist/extensions/pi-subagents/prompts/gather-context-and-clarify.md +1 -1
  88. package/dist/extensions/pi-subagents/prompts/parallel-cleanup.md +9 -9
  89. package/dist/extensions/pi-subagents/prompts/parallel-research.md +6 -6
  90. package/dist/extensions/pi-subagents/prompts/parallel-review.md +8 -8
  91. package/dist/extensions/pi-subagents/prompts/review-loop.md +12 -12
  92. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +22 -17
  93. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +77 -72
  94. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +177 -69
  95. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +28 -8
  96. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +88 -66
  97. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +3 -3
  98. package/dist/extensions/pi-subagents/src/agents/agent-refinements.ts +624 -0
  99. package/dist/extensions/pi-subagents/src/agents/agents.ts +29 -16
  100. package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +7 -3
  101. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +2 -2
  102. package/dist/extensions/pi-subagents/src/agents/skills.ts +2 -9
  103. package/dist/extensions/pi-subagents/src/api/delegation.ts +1 -2
  104. package/dist/extensions/pi-subagents/src/api/project-panes.ts +30 -0
  105. package/dist/extensions/pi-subagents/src/extension/config.ts +56 -8
  106. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +2 -2
  107. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +51 -26
  108. package/dist/extensions/pi-subagents/src/extension/index.ts +119 -50
  109. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +72 -0
  110. package/dist/extensions/pi-subagents/src/extension/rpc.ts +15 -15
  111. package/dist/extensions/pi-subagents/src/extension/schemas.ts +58 -21
  112. package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +39 -0
  113. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +47 -25
  114. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +3 -3
  115. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +460 -64
  116. package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +102 -4
  117. package/dist/extensions/pi-subagents/src/missions/actions.ts +77 -16
  118. package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +162 -0
  119. package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +65 -14
  120. package/dist/extensions/pi-subagents/src/missions/store.ts +147 -5
  121. package/dist/extensions/pi-subagents/src/missions/types.ts +58 -3
  122. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +256 -0
  123. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +8 -8
  124. package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +42 -0
  125. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +41 -7
  126. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +294 -134
  127. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +19 -3
  128. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +39 -6
  129. package/dist/extensions/pi-subagents/src/runs/background/completion-replay.ts +267 -0
  130. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +145 -60
  131. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +114 -6
  132. package/dist/extensions/pi-subagents/src/runs/background/resume-guidance.ts +33 -0
  133. package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +68 -0
  134. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +71 -0
  135. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +21 -2
  136. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +42 -14
  137. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +12 -24
  138. package/dist/extensions/pi-subagents/src/runs/background/steering.ts +7 -5
  139. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +152 -68
  140. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +17 -4
  141. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +146 -0
  142. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +21 -5
  143. package/dist/extensions/pi-subagents/src/runs/foreground/async-dismiss-action.ts +85 -0
  144. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +43 -18
  145. package/dist/extensions/pi-subagents/src/runs/foreground/chain-clarify.ts +20 -19
  146. package/dist/extensions/pi-subagents/src/runs/foreground/chain-execution.ts +3 -0
  147. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +55 -26
  148. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +137 -0
  149. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +798 -112
  150. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +187 -0
  151. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +165 -22
  152. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +1 -1
  153. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +2 -0
  154. package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +9 -5
  155. package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +12 -2
  156. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +1 -0
  157. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +465 -116
  158. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +10 -10
  159. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +189 -32
  160. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +2 -2
  161. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +3 -3
  162. package/dist/extensions/pi-subagents/src/shared/artifacts.ts +128 -3
  163. package/dist/extensions/pi-subagents/src/shared/display-text.ts +100 -0
  164. package/dist/extensions/pi-subagents/src/shared/file-coalescer.ts +9 -0
  165. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +13 -0
  166. package/dist/extensions/pi-subagents/src/shared/formatters.ts +4 -6
  167. package/dist/extensions/pi-subagents/src/shared/prompt-resources.ts +51 -0
  168. package/dist/extensions/pi-subagents/src/shared/settings.ts +41 -11
  169. package/dist/extensions/pi-subagents/src/shared/types.ts +100 -3
  170. package/dist/extensions/pi-subagents/src/shared/utf8.ts +11 -0
  171. package/dist/extensions/pi-subagents/src/shared/utils.ts +43 -33
  172. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +1 -14
  173. package/dist/extensions/pi-subagents/src/slash/inline-subagents.ts +1 -1
  174. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +14 -12
  175. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +176 -21
  176. package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +12 -6
  177. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +52 -18
  178. package/dist/extensions/pi-subagents/src/slash/slash-live-state.ts +36 -5
  179. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +30 -16
  180. package/dist/extensions/pi-subagents/src/tui/fleet.ts +151 -31
  181. package/dist/extensions/pi-subagents/src/tui/render.ts +201 -68
  182. package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +0 -6
  183. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +5 -4
  184. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +0 -1
  185. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +313 -25
  186. package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +15 -15
  187. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +3 -0
  188. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +2 -0
  189. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +17 -0
  190. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +57 -0
  191. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +16 -0
  192. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +15 -0
  193. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +18 -0
  194. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +9 -0
  195. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +10 -0
  196. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +10 -0
  197. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +20 -0
  198. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +3 -0
  199. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +96 -0
  200. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +119 -0
  201. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +85 -0
  202. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +620 -0
  203. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +5 -0
  204. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +56 -0
  205. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +32 -0
  206. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +49 -0
  207. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +93 -0
  208. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +128 -0
  209. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +7 -0
  210. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +38 -0
  211. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +3 -0
  212. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +15 -0
  213. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +9 -0
  214. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +29 -0
  215. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +2 -0
  216. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +22 -0
  217. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +37 -0
  218. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +34 -0
  219. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +12 -0
  220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +23 -0
  221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +171 -0
  222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +1261 -0
  223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +20 -0
  224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +54 -0
  225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +22 -0
  226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +13 -0
  227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +358 -0
  228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +77 -0
  229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +512 -0
  230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +43 -0
  231. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +121 -0
  232. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +82 -0
  233. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +17 -0
  234. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +7 -0
  235. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +210 -0
  236. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +15 -0
  237. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +54 -0
  238. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +4 -0
  239. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +55 -0
  240. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +2 -0
  241. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +5 -0
  242. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +30 -0
  243. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +206 -0
  244. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +15 -0
  245. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +106 -0
  246. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +19 -0
  247. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +356 -0
  248. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +297 -0
  249. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +60 -0
  250. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +15 -0
  251. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +18 -0
  252. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +28 -0
  253. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +3 -0
  254. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +10 -0
  255. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +68 -0
  256. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +106 -0
  257. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +51 -0
  258. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +6 -0
  259. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +35 -0
  260. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +37 -0
  261. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +40 -0
  262. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +37 -0
  263. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +52 -0
  264. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +10 -0
  265. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +35 -0
  266. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +24 -0
  267. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  268. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +70 -0
  269. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +26 -0
  270. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +36 -0
  271. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +19 -0
  272. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +3 -0
  273. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +61 -0
  274. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +23 -0
  275. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +3 -0
  276. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +10 -0
  277. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +42 -0
  278. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +35 -0
  279. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +12 -0
  280. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +33 -0
  281. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +9 -0
  282. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +34 -0
  283. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +22 -0
  284. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  285. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  286. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  287. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  288. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +102 -0
  289. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  290. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  291. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  292. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +20 -0
  293. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  294. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +12 -0
  295. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  296. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  297. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  298. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +23 -0
  299. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  300. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  301. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +32 -0
  302. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +34 -0
  303. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  304. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  305. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +54 -0
  306. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  307. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  308. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  309. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +95 -0
  310. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  311. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  312. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  313. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  314. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  315. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  316. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  317. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  318. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  319. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  320. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +14 -0
  321. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  322. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +394 -0
  323. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +12 -0
  324. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  325. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +120 -0
  326. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +28 -0
  327. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +17 -0
  328. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +246 -0
  329. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +20 -0
  330. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +457 -0
  331. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +8 -0
  332. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +3 -0
  333. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +2 -0
  334. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +22 -0
  335. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +18 -0
  336. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +11 -0
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +11 -0
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +4 -0
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +4 -0
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +5 -0
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +8 -0
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +5 -0
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +26 -0
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +7 -0
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +10 -0
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +18 -0
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +30 -0
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +2 -0
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +16 -0
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +3 -0
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +3 -0
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +9 -0
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +31 -0
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +21 -0
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +2 -0
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +31 -0
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +5 -0
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +12 -0
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +3 -0
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +15 -0
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +3 -0
  362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/index.mjs +84 -0
  363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/package.json +14 -0
  364. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +15 -15
  365. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +411 -300
  366. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +309 -123
  367. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +99 -56
  368. package/dist/extensions/pi-subagents/test/integration/chain-clarify.test.ts +62 -16
  369. package/dist/extensions/pi-subagents/test/integration/chain-execution.test.ts +159 -108
  370. package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +1 -1
  371. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +4 -2
  372. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +56 -56
  373. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +114 -45
  374. package/dist/extensions/pi-subagents/test/integration/parallel-execution.test.ts +57 -19
  375. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +106 -106
  376. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +416 -106
  377. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +287 -17
  378. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +809 -87
  379. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +107 -20
  380. package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +9 -9
  381. package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +26 -6
  382. package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +2 -2
  383. package/dist/extensions/pi-subagents/test/support/helpers.ts +2 -0
  384. package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +1 -1
  385. package/dist/extensions/pi-subagents/test/support/ts-loader.mjs +0 -8
  386. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +163 -58
  387. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +15 -15
  388. package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +66 -66
  389. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +334 -248
  390. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +52 -52
  391. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +26 -26
  392. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +99 -99
  393. package/dist/extensions/pi-subagents/test/unit/agent-refinements.test.ts +160 -0
  394. package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +9 -9
  395. package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +43 -1
  396. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +36 -10
  397. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +387 -30
  398. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +9 -9
  399. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +2 -2
  400. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +94 -40
  401. package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +5 -3
  402. package/dist/extensions/pi-subagents/test/unit/builtin-agent-documentation.test.ts +7 -7
  403. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +19 -19
  404. package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +19 -19
  405. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +9 -9
  406. package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +20 -20
  407. package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +9 -9
  408. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +35 -5
  409. package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +2 -2
  410. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +52 -52
  411. package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +187 -0
  412. package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +125 -71
  413. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +18 -3
  414. package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +12 -12
  415. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +17 -23
  416. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +1 -1
  417. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +25 -25
  418. package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +3 -3
  419. package/dist/extensions/pi-subagents/test/unit/file-coalescer.test.ts +15 -0
  420. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +62 -44
  421. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +329 -37
  422. package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +4 -4
  423. package/dist/extensions/pi-subagents/test/unit/foreground-tool-call-compaction.test.ts +37 -0
  424. package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +69 -0
  425. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +79 -2
  426. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +102 -49
  427. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +98 -32
  428. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +5 -5
  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 +55 -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 +28 -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/package-manifest.test.ts +16 -2
  440. package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +7 -7
  441. package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +10 -10
  442. package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +3 -3
  443. package/dist/extensions/pi-subagents/test/unit/path-resolution.test.ts +26 -17
  444. package/dist/extensions/pi-subagents/test/unit/pi-args-permission-system.test.ts +405 -0
  445. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +357 -92
  446. package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +22 -6
  447. package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +6 -6
  448. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +43 -43
  449. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +13 -13
  450. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +4 -4
  451. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +19 -19
  452. package/dist/extensions/pi-subagents/test/unit/project-panes-public-api.test.ts +243 -0
  453. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +68 -168
  454. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +58 -15
  455. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +40 -0
  456. package/dist/extensions/pi-subagents/test/unit/reads-resolution.test.ts +66 -0
  457. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +47 -28
  458. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +12 -12
  459. package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +57 -0
  460. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +107 -27
  461. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +1 -1
  462. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +56 -50
  463. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +69 -28
  464. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +67 -0
  465. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +59 -44
  466. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +424 -49
  467. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +23 -1
  468. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +32 -5
  469. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +13 -13
  470. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +120 -91
  471. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +2 -2
  472. package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +85 -0
  473. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +35 -35
  474. package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +24 -0
  475. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +312 -22
  476. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +150 -15
  477. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +26 -26
  478. package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +73 -0
  479. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +76 -25
  480. package/dist/extensions/pi-subagents/test/unit/turn-budget.test.ts +5 -5
  481. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +55 -6
  482. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +13 -13
  483. package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +1 -1
  484. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +1 -1
  485. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +8 -8
  486. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +6 -6
  487. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +138 -11
  488. package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +8 -8
  489. package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +113 -0
  490. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +7 -7
  491. package/dist/extensions/pi-subagents/test/unit/writer-budget-guidance.test.ts +6 -6
  492. package/dist/extensions/workflow/extension.ts +21 -19
  493. package/dist/extensions/workflow/modes.ts +65 -0
  494. package/dist/index.d.ts +1 -1
  495. package/dist/main.js +1 -0
  496. package/dist/modes/interactive/components/settings-selector.d.ts +6 -2
  497. package/dist/modes/interactive/components/settings-selector.js +20 -0
  498. package/dist/modes/interactive/interactive-mode.d.ts +28 -0
  499. package/dist/modes/interactive/interactive-mode.js +214 -28
  500. package/dist/modes/interactive/theme/dark.json +1 -0
  501. package/dist/modes/interactive/theme/light.json +1 -0
  502. package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
  503. package/dist/modes/interactive/theme/theme-controller.js +10 -1
  504. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  505. package/dist/modes/interactive/theme/theme.js +24 -6
  506. package/dist/skills/pi-subagents/SKILL.md +20 -15
  507. package/dist/skills/pi-subagents/references/constraints-and-recipes.md +77 -83
  508. package/dist/skills/pi-subagents/references/execution-controls.md +215 -106
  509. package/dist/skills/pi-subagents/references/management-authoring-rpc.md +29 -9
  510. package/dist/skills/pi-subagents/references/prompting-and-roles.md +58 -43
  511. package/docs/keybindings.md +35 -7
  512. package/docs/plans/workflow-autoloop-reference.md +192 -0
  513. package/docs/plans/workflow-subagent-consolidation-planb.md +374 -0
  514. package/docs/plans/workflow-subagent-scripted-merge.md +406 -0
  515. package/docs/settings.md +16 -14
  516. package/docs/usage.md +5 -0
  517. package/package.json +5 -5
  518. package/dist/extensions/pi-powerline-footer/fixed-editor/cluster.ts +0 -113
  519. package/dist/extensions/pi-powerline-footer/fixed-editor/terminal-split.ts +0 -1080
  520. package/dist/extensions/pi-powerline-footer/tests/fixed-editor.test.ts +0 -1452
  521. package/dist/extensions/workflow/adapter.ts +0 -949
  522. package/dist/extensions/workflow/modes/loop.ts +0 -74
  523. package/dist/extensions/workflow/modes/prototype.ts +0 -170
  524. package/dist/extensions/workflow/modes/quicktype.ts +0 -150
  525. package/dist/extensions/workflow/modes/task.ts +0 -105
  526. package/dist/extensions/workflow/run-state.ts +0 -124
  527. package/dist/extensions/workflow/state-machine.ts +0 -484
  528. package/dist/extensions/workflow/validators.ts +0 -42
@@ -91,12 +91,13 @@ describe("SELESAI_CODING_AGENT_DIR runtime paths", () => {
91
91
 
92
92
  process.env.SELESAI_CODING_AGENT_DIR = agentDir;
93
93
  const configPath = path.join(agentDir, "extensions", "subagent", "config.json");
94
- writeFile(configPath, JSON.stringify({ asyncByDefault: true, maxSubagentDepth: 3, artifactDir: "session" }));
94
+ writeFile(configPath, JSON.stringify({ asyncByDefault: true, maxSubagentDepth: 3, artifactDir: "session", artifactConfig: { cleanupDays: 9007199254740991 } }));
95
95
 
96
96
  const config = loadConfig();
97
97
  assert.equal(config.asyncByDefault, true);
98
98
  assert.equal(config.maxSubagentDepth, 3);
99
99
  assert.equal(config.artifactDir, "session");
100
+ assert.equal(config.artifactConfig?.cleanupDays, Number.MAX_SAFE_INTEGER);
100
101
  });
101
102
 
102
103
  it("discovers user agents, chains, and settings under the configured agent dir", () => {
@@ -120,7 +121,7 @@ Inspect env.
120
121
  writeFile(settingsPath, JSON.stringify({
121
122
  subagents: {
122
123
  agentOverrides: {
123
- builder: { systemPrompt: "Use env-rooted settings." },
124
+ worker: { systemPrompt: "Use env-rooted settings." },
124
125
  },
125
126
  },
126
127
  }, null, 2));
@@ -132,10 +133,10 @@ Inspect env.
132
133
  assert.ok(discovered.user.find((agent) => agent.name === "env-agent" && agent.filePath === path.join(agentDir, "agents", "env-agent.md")));
133
134
  assert.ok(discovered.chains.find((chain) => chain.name === "env-chain" && chain.filePath === path.join(agentDir, "chains", "env-chain.chain.md")));
134
135
 
135
- const builder = discovered.builtin.find((agent) => agent.name === "builder");
136
- assert.equal(builder?.systemPrompt, "Use env-rooted settings.");
137
- assert.equal(builder?.override?.path, settingsPath);
138
- assert.equal(builder?.override?.scope, "user");
136
+ const worker = discovered.builtin.find((agent) => agent.name === "worker");
137
+ assert.equal(worker?.systemPrompt, "Use env-rooted settings.");
138
+ assert.equal(worker?.override?.path, settingsPath);
139
+ assert.equal(worker?.override?.scope, "user");
139
140
 
140
141
  const createdName = "created-env-agent";
141
142
  const created = handleCreate(
@@ -204,6 +205,9 @@ Package skill content.
204
205
  fs.utimesSync(artifactPath, oldTime, oldTime);
205
206
 
206
207
  cleanupAllArtifactDirs(0);
208
+ assert.equal(fs.existsSync(artifactPath), true);
209
+
210
+ cleanupAllArtifactDirs(1 / 24 / 60 / 60 / 1000);
207
211
  assert.equal(fs.existsSync(artifactPath), false);
208
212
  });
209
213
 
@@ -225,6 +229,18 @@ Package skill content.
225
229
  assert.throws(() => updateConfig((config) => config), /config\.artifactDir must be "project", "session", or "temp"/);
226
230
  });
227
231
 
232
+ it("loads and validates Fleet keybinding config", () => {
233
+ const configPath = path.join(agentDir, "extensions", "subagent", "config.json");
234
+ writeFile(configPath, JSON.stringify({ fleetKeybindings: { pageUp: ["u"], pageDown: ["d"] } }));
235
+ assert.deepEqual(loadConfig().fleetKeybindings, { pageUp: ["u"], pageDown: ["d"] });
236
+
237
+ writeFile(configPath, JSON.stringify({ fleetKeybindings: { missing: ["m"] } }));
238
+ assert.throws(() => updateConfig((config) => config), /config\.fleetKeybindings\.missing is not a supported Fleet action/);
239
+
240
+ writeFile(configPath, JSON.stringify({ fleetKeybindings: { pageUp: [""] } }));
241
+ assert.throws(() => updateConfig((config) => config), /config\.fleetKeybindings\.pageUp entries must be non-empty strings/);
242
+ });
243
+
228
244
  it("hardens and redacts existing run history while recording", () => {
229
245
  const historyPath = path.join(agentDir, "run-history.jsonl");
230
246
  fs.mkdirSync(agentDir, { recursive: true, mode: 0o755 });
@@ -70,7 +70,7 @@ describe("getPiSpawnCommand", () => {
70
70
  },
71
71
  env: { SELESAI_SUBAGENT_PI_BINARY: " " },
72
72
  });
73
- assert.deepEqual(result, { command: "selesai", args });
73
+ assert.deepEqual(result, { command: "pi", args });
74
74
  });
75
75
 
76
76
  for (const [platform, execPath] of [
@@ -152,7 +152,7 @@ describe("getPiSpawnCommand", () => {
152
152
  });
153
153
  });
154
154
 
155
- it("falls back to plain selesai command on POSIX when CLI script cannot be resolved", () => {
155
+ it("falls back to plain pi command on POSIX when CLI script cannot be resolved", () => {
156
156
  const args = ["--mode", "json", "Task: check output"];
157
157
  const result = getPiSpawnCommand(args, {
158
158
  platform: "darwin",
@@ -163,7 +163,7 @@ describe("getPiSpawnCommand", () => {
163
163
  },
164
164
  env: {},
165
165
  });
166
- assert.deepEqual(result, { command: "selesai", args });
166
+ assert.deepEqual(result, { command: "pi", args });
167
167
  });
168
168
 
169
169
  it("ignores embedded host entry points and resolves the Pi package bin on every platform", () => {
@@ -289,7 +289,7 @@ describe("getPiSpawnCommand", () => {
289
289
  assert.equal(result.args[0], cliPath);
290
290
  });
291
291
 
292
- it("falls back to selesai when Windows CLI script cannot be resolved", () => {
292
+ it("falls back to pi when Windows CLI script cannot be resolved", () => {
293
293
  const deps = makeDeps({
294
294
  platform: "win32",
295
295
  argv1: "/opt/pi/subagent-runner.ts",
@@ -297,7 +297,7 @@ describe("getPiSpawnCommand", () => {
297
297
  });
298
298
  const args = ["-p", "Task: hello"];
299
299
  const result = getPiSpawnCommand(args, deps);
300
- assert.deepEqual(result, { command: "selesai", args });
300
+ assert.deepEqual(result, { command: "pi", args });
301
301
  });
302
302
 
303
303
  it("walks from package main entry to resolve package bin", () => {
@@ -328,7 +328,7 @@ describe("getPiSpawnCommand", () => {
328
328
  platform: "win32",
329
329
  execPath: "/usr/local/bin/node",
330
330
  argv1: "/opt/pi/subagent-runner.ts",
331
- resolvePackageEntry: () => entry,
331
+ resolvePackageJson: () => path.join(packageRoot, "package.json"),
332
332
  env: {},
333
333
  });
334
334
  assert.equal(result.command, "/usr/local/bin/node");
@@ -75,9 +75,9 @@ describe("public launch contract preflight", () => {
75
75
  const cwd = path.join(tempDir, "repo");
76
76
  fs.mkdirSync(cwd, { recursive: true });
77
77
  writeSkill(cwd, "project-skill");
78
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
79
- name: builder
80
- description: Project builder
78
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
79
+ name: worker
80
+ description: Project worker
81
81
  tools:
82
82
  - read
83
83
  - write
@@ -97,7 +97,7 @@ Project prompt.
97
97
  try {
98
98
  const ceiling = resolveSubagentCapabilityCeiling("preflight-session");
99
99
  const result = await resolveSubagentLaunchContract({
100
- agent: "builder",
100
+ agent: "worker",
101
101
  cwd,
102
102
  task: "Inspect the repo",
103
103
  runId: "run-123",
@@ -115,7 +115,7 @@ Project prompt.
115
115
  assert.equal(result.contract.agent.definitionProjectionVersion, 1);
116
116
  assert.match(result.contract.agent.definitionDigest, /^[a-f0-9]{64}$/);
117
117
  assert.match(result.contract.launchContractDigest, /^[a-f0-9]{64}$/);
118
- assert.ok(result.contract.agent.shadowedCandidates.some((candidate) => candidate.name === "builder" && candidate.source === "builtin"));
118
+ assert.ok(result.contract.agent.shadowedCandidates.some((candidate) => candidate.name === "worker" && candidate.source === "builtin"));
119
119
  assert.equal(result.contract.model, "test/primary:high");
120
120
  assert.deepEqual(result.contract.modelCandidates, ["test/primary:high", "test/fallback:high"]);
121
121
  assert.equal(result.contract.thinking, "high");
@@ -133,7 +133,7 @@ Project prompt.
133
133
  assert.notEqual(result.contract.roots.lifecycle?.asyncDir, result.contract.roots.artifactsDir);
134
134
  assert.match(result.contract.digest, /^[a-f0-9]{64}$/);
135
135
  const repeated = await resolveSubagentLaunchContract({
136
- agent: "builder",
136
+ agent: "worker",
137
137
  cwd,
138
138
  task: "Inspect the repo",
139
139
  runId: "run-123",
@@ -156,9 +156,9 @@ Project prompt.
156
156
  it("resolves agent aliases to the canonical launch contract agent", async () => {
157
157
  const cwd = path.join(tempDir, "repo-alias");
158
158
  fs.mkdirSync(cwd, { recursive: true });
159
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
160
- name: builder
161
- description: Project builder
159
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
160
+ name: worker
161
+ description: Project worker
162
162
  aliases: developer, coder
163
163
  ---
164
164
  Project prompt.
@@ -171,22 +171,22 @@ Project prompt.
171
171
  });
172
172
 
173
173
  assert.equal(result.ok, true);
174
- assert.equal(result.contract.agent.name, "builder");
174
+ assert.equal(result.contract.agent.name, "worker");
175
175
  });
176
176
 
177
177
  it("reports alias collisions as ambiguous agents", async () => {
178
178
  const cwd = path.join(tempDir, "repo-alias-collision");
179
179
  fs.mkdirSync(cwd, { recursive: true });
180
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
181
- name: builder
182
- description: Project builder
180
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
181
+ name: worker
182
+ description: Project worker
183
183
  aliases: coder
184
184
  ---
185
185
  Project prompt.
186
186
  `);
187
- writeAgent(path.join(cwd, ".selesai", "agents", "commentator.md"), `---
188
- name: commentator
189
- description: Project commentator
187
+ writeAgent(path.join(cwd, ".selesai", "agents", "reviewer.md"), `---
188
+ name: reviewer
189
+ description: Project reviewer
190
190
  aliases: coder
191
191
  ---
192
192
  Review prompt.
@@ -196,32 +196,32 @@ Review prompt.
196
196
 
197
197
  assert.equal(result.ok, false);
198
198
  assert.equal(result.code, "ambiguous_agent");
199
- assert.match(result.message, /Ambiguous agent alias 'coder': commentator, builder|Ambiguous agent alias 'coder': builder, commentator/);
199
+ assert.match(result.message, /Ambiguous agent alias 'coder': reviewer, worker|Ambiguous agent alias 'coder': worker, reviewer/);
200
200
  });
201
201
 
202
202
  it("changes definition and launch digests when selected agent content changes", async () => {
203
203
  const cwd = path.join(tempDir, "repo");
204
204
  fs.mkdirSync(cwd, { recursive: true });
205
- const agentPath = path.join(cwd, ".selesai", "agents", "builder.md");
205
+ const agentPath = path.join(cwd, ".selesai", "agents", "worker.md");
206
206
  writeAgent(agentPath, `---
207
- name: digest-builder
208
- description: Digest builder
207
+ name: digest-worker
208
+ description: Digest worker
209
209
  tools:
210
210
  - read
211
211
  ---
212
212
  First prompt.
213
213
  `);
214
- const before = await resolveSubagentLaunchContract({ agent: "digest-builder", cwd, runId: "digest-test" });
214
+ const before = await resolveSubagentLaunchContract({ agent: "digest-worker", cwd, runId: "digest-test" });
215
215
  assert.equal(before.ok, true);
216
216
  writeAgent(agentPath, `---
217
- name: digest-builder
218
- description: Digest builder
217
+ name: digest-worker
218
+ description: Digest worker
219
219
  tools:
220
220
  - read
221
221
  ---
222
222
  Changed prompt.
223
223
  `);
224
- const after = await resolveSubagentLaunchContract({ agent: "digest-builder", cwd, runId: "digest-test" });
224
+ const after = await resolveSubagentLaunchContract({ agent: "digest-worker", cwd, runId: "digest-test" });
225
225
  assert.equal(after.ok, true);
226
226
  assert.notEqual(after.contract.agent.definitionDigest, before.contract.agent.definitionDigest);
227
227
  assert.notEqual(after.contract.launchContractDigest, before.contract.launchContractDigest);
@@ -232,9 +232,9 @@ Changed prompt.
232
232
  const cwd = path.join(tempDir, "repo");
233
233
  fs.mkdirSync(cwd, { recursive: true });
234
234
  writeSkill(cwd, "digest-skill");
235
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
236
- name: builder
237
- description: Project builder
235
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
236
+ name: worker
237
+ description: Project worker
238
238
  tools:
239
239
  - read
240
240
  skills:
@@ -242,12 +242,12 @@ skills:
242
242
  ---
243
243
  Project prompt.
244
244
  `);
245
- const before = await resolveSubagentLaunchContract({ agent: "builder", cwd, runId: "skill-digest-test" });
245
+ const before = await resolveSubagentLaunchContract({ agent: "worker", cwd, runId: "skill-digest-test" });
246
246
  assert.equal(before.ok, true);
247
247
  fs.writeFileSync(path.join(cwd, ".selesai", "skills", "digest-skill", "SKILL.md"), "---\ndescription: updated digest-skill\n---\n\nUse digest-skill.\n", "utf-8");
248
248
  clearSkillCache();
249
249
 
250
- const after = await resolveSubagentLaunchContract({ agent: "builder", cwd, runId: "skill-digest-test" });
250
+ const after = await resolveSubagentLaunchContract({ agent: "worker", cwd, runId: "skill-digest-test" });
251
251
  assert.equal(after.ok, true);
252
252
  assert.equal(after.contract.agent.definitionDigest, before.contract.agent.definitionDigest);
253
253
  assert.notEqual(after.contract.launchContractDigest, before.contract.launchContractDigest);
@@ -257,9 +257,9 @@ Project prompt.
257
257
  it("returns closed failures for missing agents and missing skills", async () => {
258
258
  const cwd = path.join(tempDir, "repo");
259
259
  fs.mkdirSync(cwd, { recursive: true });
260
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
261
- name: builder
262
- description: Project builder
260
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
261
+ name: worker
262
+ description: Project worker
263
263
  skills:
264
264
  - missing-skill
265
265
  ---
@@ -269,7 +269,7 @@ Project prompt.
269
269
  const missingAgent = await resolveSubagentLaunchContract({ agent: "missing", cwd });
270
270
  assert.deepEqual(missingAgent, { ok: false, code: "missing_agent", message: "Unknown agent: missing", diagnostics: [] });
271
271
 
272
- const missingSkill = await resolveSubagentLaunchContract({ agent: "builder", cwd });
272
+ const missingSkill = await resolveSubagentLaunchContract({ agent: "worker", cwd });
273
273
  assert.equal(missingSkill.ok, false);
274
274
  assert.equal(missingSkill.code, "missing_skill");
275
275
  assert.match(missingSkill.message, /missing-skill/);
@@ -278,22 +278,22 @@ Project prompt.
278
278
  it("fails closed for invalid runtime inputs", async () => {
279
279
  const cwd = path.join(tempDir, "repo");
280
280
  fs.mkdirSync(cwd, { recursive: true });
281
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
282
- name: builder
283
- description: Project builder
281
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
282
+ name: worker
283
+ description: Project worker
284
284
  ---
285
285
  Project prompt.
286
286
  `);
287
287
 
288
- const invalidCwd = await resolveSubagentLaunchContract({ agent: "builder", cwd: path.join(tempDir, "missing") });
288
+ const invalidCwd = await resolveSubagentLaunchContract({ agent: "worker", cwd: path.join(tempDir, "missing") });
289
289
  assert.equal(invalidCwd.ok, false);
290
290
  assert.equal(invalidCwd.code, "invalid_cwd");
291
291
 
292
- const unsupportedMode = await resolveSubagentLaunchContract({ agent: "builder", cwd, context: "bogus" as never });
292
+ const unsupportedMode = await resolveSubagentLaunchContract({ agent: "worker", cwd, context: "bogus" as never });
293
293
  assert.equal(unsupportedMode.ok, false);
294
294
  assert.equal(unsupportedMode.code, "unsupported_mode");
295
295
 
296
- const invalidArtifactDir = await resolveSubagentLaunchContract({ agent: "builder", cwd, artifactDir: "bogus" as never });
296
+ const invalidArtifactDir = await resolveSubagentLaunchContract({ agent: "worker", cwd, artifactDir: "bogus" as never });
297
297
  assert.equal(invalidArtifactDir.ok, false);
298
298
  assert.equal(invalidArtifactDir.code, "invalid_artifact_dir");
299
299
  });
@@ -345,9 +345,9 @@ Project prompt.
345
345
  const cwd = path.join(tempDir, "repo");
346
346
  fs.mkdirSync(cwd, { recursive: true });
347
347
  writeSkill(cwd, "project-skill");
348
- writeAgent(path.join(cwd, ".selesai", "agents", "builder.md"), `---
349
- name: builder
350
- description: Project builder
348
+ writeAgent(path.join(cwd, ".selesai", "agents", "worker.md"), `---
349
+ name: worker
350
+ description: Project worker
351
351
  tools:
352
352
  - read
353
353
  skills:
@@ -357,7 +357,7 @@ Project prompt.
357
357
  `);
358
358
 
359
359
  const result = await resolveSubagentLaunchContract({
360
- agent: "builder",
360
+ agent: "worker",
361
361
  cwd,
362
362
  capabilityCeiling: { version: 1, allowedTools: [], denyExtensions: false, sources: ["test"] },
363
363
  });
@@ -29,7 +29,7 @@ function chain(name: string, skills: string[]): ChainConfig {
29
29
  description: `${name} chain`,
30
30
  source: "project",
31
31
  filePath: `/tmp/${name}.chain.md`,
32
- steps: [{ agent: "builder", skills }],
32
+ steps: [{ agent: "worker", skills }],
33
33
  };
34
34
  }
35
35
 
@@ -37,9 +37,9 @@ describe("proactive skill subagent recommendations", () => {
37
37
  it("recommends available skills referenced by multiple enabled configs", () => {
38
38
  const recommendations = recommendProactiveSkillSubagents({
39
39
  agents: [
40
- agent("commentator"),
41
- agent("ui-commentator", ["accessibility"]),
42
- agent("disabled-commentator", ["accessibility"], true),
40
+ agent("reviewer"),
41
+ agent("ui-reviewer", ["accessibility"]),
42
+ agent("disabled-reviewer", ["accessibility"], true),
43
43
  ],
44
44
  chains: [chain("ui-check", ["accessibility"]), chain("cleanup", ["deslop"])],
45
45
  availableSkills: [
@@ -50,31 +50,31 @@ describe("proactive skill subagent recommendations", () => {
50
50
 
51
51
  assert.equal(recommendations.length, 1);
52
52
  assert.equal(recommendations[0]?.skill, "accessibility");
53
- assert.equal(recommendations[0]?.agent, "commentator");
53
+ assert.equal(recommendations[0]?.agent, "reviewer");
54
54
  assert.equal(recommendations[0]?.references, 2);
55
- assert.deepEqual(recommendations[0]?.sources, ["agent:ui-commentator", "chain:ui-check"]);
55
+ assert.deepEqual(recommendations[0]?.sources, ["agent:ui-reviewer", "chain:ui-check"]);
56
56
  });
57
57
 
58
58
  it("filters unavailable orchestration skills and honors config bounds", () => {
59
59
  const recommendations = recommendProactiveSkillSubagents({
60
60
  agents: [
61
- agent("explorer", ["pi-subagents", "alpha", "beta"]),
61
+ agent("delegate", ["pi-subagents", "alpha", "beta"]),
62
62
  agent("one", ["alpha", "beta"]),
63
63
  agent("two", ["gamma"]),
64
64
  agent("three", ["gamma"]),
65
65
  ],
66
66
  availableSkills: [{ name: "alpha" }, { name: "beta" }, { name: "gamma" }],
67
- config: { preferredAgent: "explorer", maxRecommendations: 2 },
67
+ config: { preferredAgent: "delegate", maxRecommendations: 2 },
68
68
  });
69
69
 
70
70
  assert.deepEqual(recommendations.map((entry) => entry.skill), ["alpha", "beta"]);
71
- assert.ok(recommendations.every((entry) => entry.agent === "explorer"));
71
+ assert.ok(recommendations.every((entry) => entry.agent === "delegate"));
72
72
  });
73
73
 
74
74
  it("can be disabled and formats guardrails for visible suggestions", () => {
75
75
  assert.equal(resolveProactiveSkillSubagentsConfig(false).enabled, false);
76
76
  assert.deepEqual(recommendProactiveSkillSubagents({
77
- agents: [agent("commentator", ["deslop"]), agent("cleanup", ["deslop"])],
77
+ agents: [agent("reviewer", ["deslop"]), agent("cleanup", ["deslop"])],
78
78
  availableSkills: [{ name: "deslop" }],
79
79
  config: false,
80
80
  }), []);
@@ -82,7 +82,7 @@ describe("proactive skill subagent recommendations", () => {
82
82
  const lines = formatProactiveSkillSubagentRecommendations([
83
83
  {
84
84
  skill: "deslop",
85
- agent: "commentator",
85
+ agent: "reviewer",
86
86
  references: 2,
87
87
  sources: ["agent:a", "chain:b"],
88
88
  reason: "referenced by 2 configured agents/chains",
@@ -95,7 +95,7 @@ describe("proactive skill subagent recommendations", () => {
95
95
  it("does not discover skills when disabled and treats discovery failures as no suggestions", () => {
96
96
  let discoveryCalls = 0;
97
97
  const disabledLines = buildProactiveSkillSubagentRecommendationLines({
98
- agents: [agent("commentator", ["deslop"]), agent("cleanup", ["deslop"])],
98
+ agents: [agent("reviewer", ["deslop"]), agent("cleanup", ["deslop"])],
99
99
  config: false,
100
100
  discoverAvailableSkills: () => {
101
101
  discoveryCalls++;
@@ -106,7 +106,7 @@ describe("proactive skill subagent recommendations", () => {
106
106
  assert.equal(discoveryCalls, 0);
107
107
 
108
108
  const failedDiscoveryLines = buildProactiveSkillSubagentRecommendationLines({
109
- agents: [agent("commentator", ["deslop"]), agent("cleanup", ["deslop"])],
109
+ agents: [agent("reviewer", ["deslop"]), agent("cleanup", ["deslop"])],
110
110
  discoverAvailableSkills: () => {
111
111
  discoveryCalls++;
112
112
  throw new Error("skill scan failed");
@@ -30,7 +30,7 @@ test("process-terminal proof requires the matching runner instance and writer cl
30
30
  }],
31
31
  },
32
32
  });
33
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "run-1", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "builder", status: "complete" }] }));
33
+ fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "run-1", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "worker", status: "complete" }] }));
34
34
  fs.writeFileSync(path.join(asyncDir, "events.jsonl"), "");
35
35
 
36
36
  const mismatch = finalizeProcessTerminal(asyncDir, "run-1", {
@@ -67,7 +67,7 @@ test("process-terminal rejects missing writer close evidence", () => {
67
67
  expectedWriters: { "0": 1 },
68
68
  writers: { "0": [] },
69
69
  });
70
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "run-missing-writer", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "builder", status: "complete" }] }));
70
+ fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "run-missing-writer", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "worker", status: "complete" }] }));
71
71
  fs.writeFileSync(path.join(asyncDir, "events.jsonl"), "");
72
72
  const proof = finalizeProcessTerminal(asyncDir, "run-missing-writer", {
73
73
  processInstanceId: "runner-missing-writer",
@@ -117,7 +117,7 @@ test("process-terminal preserves stopped non-resumability and requires lease rel
117
117
  revivalLeaseToken: "lease-token",
118
118
  revivalLeaseReleaseAcknowledged: false,
119
119
  });
120
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "stopped-run", state: "stopped", lifecycleArtifactVersion: 3, steps: [{ agent: "builder", status: "stopped" }] }));
120
+ fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "stopped-run", state: "stopped", lifecycleArtifactVersion: 3, steps: [{ agent: "worker", status: "stopped" }] }));
121
121
  fs.writeFileSync(path.join(asyncDir, "events.jsonl"), "");
122
122
  const unverified = finalizeProcessTerminal(asyncDir, "stopped-run", { processInstanceId: "stopped-runner", closeObservedAt: 20, exitCode: 0, signal: null });
123
123
  assert.equal(unverified.state, "unknown");
@@ -164,7 +164,7 @@ test("process-terminal rejects cross-run observed sidecars and inconsistent expe
164
164
  "0": [{ processInstanceId: "unexpected-writer", kind: "pi-writer", attempt: 0, closeObservedAt: 10, exitCode: 0, signal: null }],
165
165
  },
166
166
  });
167
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "actual-run", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "builder", status: "complete" }] }));
167
+ fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({ runId: "actual-run", state: "complete", lifecycleArtifactVersion: 3, steps: [{ agent: "worker", status: "complete" }] }));
168
168
  fs.writeFileSync(path.join(asyncDir, "events.jsonl"), "");
169
169
  const inconsistent = finalizeProcessTerminal(asyncDir, "actual-run", { processInstanceId: "runner-1", closeObservedAt: 30, exitCode: 0, signal: null });
170
170
  assert.equal(inconsistent.state, "unknown");
@@ -56,12 +56,12 @@ describe("profiles helpers", () => {
56
56
  fs.writeFileSync(path.join(profilesDir, "openai-codex.quota.json"), JSON.stringify({
57
57
  subagents: {
58
58
  agentOverrides: {
59
- explorer: {
59
+ scout: {
60
60
  model: "openai-codex/gpt-5.3-codex-spark",
61
61
  thinking: "medium",
62
62
  fallbackModels: ["openai-codex/gpt-5.4-mini"],
63
63
  },
64
- commentator: { thinking: false, fallbackModels: false },
64
+ reviewer: { thinking: false, fallbackModels: false },
65
65
  },
66
66
  },
67
67
  }, null, 2));
@@ -72,7 +72,7 @@ describe("profiles helpers", () => {
72
72
  subagents: {
73
73
  disableBuiltins: true,
74
74
  modelScope: { enforce: true, allow: ["openai-codex/*"] },
75
- agentOverrides: { explorer: { model: "old" }, stale: { model: "remove-me" } },
75
+ agentOverrides: { scout: { model: "old" }, stale: { model: "remove-me" } },
76
76
  },
77
77
  }, null, 2));
78
78
 
@@ -84,12 +84,12 @@ describe("profiles helpers", () => {
84
84
  assert.equal(written.subagents.disableBuiltins, true);
85
85
  assert.deepEqual(written.subagents.modelScope, { enforce: true, allow: ["openai-codex/*"] });
86
86
  assert.deepEqual(written.subagents.agentOverrides, {
87
- explorer: {
87
+ scout: {
88
88
  model: "openai-codex/gpt-5.3-codex-spark",
89
89
  thinking: "medium",
90
90
  fallbackModels: ["openai-codex/gpt-5.4-mini"],
91
91
  },
92
- commentator: { thinking: false, fallbackModels: false },
92
+ reviewer: { thinking: false, fallbackModels: false },
93
93
  });
94
94
  });
95
95
 
@@ -100,7 +100,7 @@ describe("profiles helpers", () => {
100
100
  subagents: {
101
101
  disableBuiltins: true,
102
102
  agentOverrides: {
103
- builder: {
103
+ worker: {
104
104
  model: "bluebox-azure-openai/gpt-5_6-luna",
105
105
  thinking: "high",
106
106
  fallbackModels: ["bluebox-azure-openai/gpt-5_6-terra"],
@@ -110,16 +110,16 @@ describe("profiles helpers", () => {
110
110
  }, null, 2));
111
111
  const agentDir = path.join(homeDir, ".selesai", "agent", "agents");
112
112
  fs.mkdirSync(agentDir, { recursive: true });
113
- fs.writeFileSync(path.join(agentDir, "builder.md"), `---\nname: builder\ndescription: Profile-managed builder\n---\n\nDo work.\n`);
113
+ fs.writeFileSync(path.join(agentDir, "worker.md"), `---\nname: worker\ndescription: Profile-managed worker\n---\n\nDo work.\n`);
114
114
 
115
115
  applySubagentProfile("azure-fallback");
116
116
  const agents = discoverAgents(process.cwd(), "both").agents;
117
- const builder = agents.find((agent) => agent.name === "builder");
118
- assert.equal(builder?.source, "user");
119
- assert.equal(builder?.model, "bluebox-azure-openai/gpt-5_6-luna");
120
- assert.equal(builder?.thinking, "high");
121
- assert.deepEqual(builder?.fallbackModels, ["bluebox-azure-openai/gpt-5_6-terra"]);
122
- assert.equal(builder?.override?.scope, "user");
117
+ const worker = agents.find((agent) => agent.name === "worker");
118
+ assert.equal(worker?.source, "user");
119
+ assert.equal(worker?.model, "bluebox-azure-openai/gpt-5_6-luna");
120
+ assert.equal(worker?.thinking, "high");
121
+ assert.deepEqual(worker?.fallbackModels, ["bluebox-azure-openai/gpt-5_6-terra"]);
122
+ assert.equal(worker?.override?.scope, "user");
123
123
  assert.equal(agents.some((agent) => agent.source === "builtin"), false);
124
124
  });
125
125
 
@@ -129,7 +129,7 @@ describe("profiles helpers", () => {
129
129
  fs.writeFileSync(path.join(profilesDir, "invalid.json"), JSON.stringify({
130
130
  subagents: {
131
131
  agentOverrides: {
132
- builder: { fallbackModels: ["openai/gpt-5", 42] },
132
+ worker: { fallbackModels: ["openai/gpt-5", 42] },
133
133
  },
134
134
  },
135
135
  }, null, 2));
@@ -310,8 +310,8 @@ describe("profiles helpers", () => {
310
310
  fs.writeFileSync(path.join(profilesDir, "demo.json"), JSON.stringify({
311
311
  subagents: {
312
312
  agentOverrides: {
313
- explorer: { model: "openai-codex/gpt-5.3-codex-spark" },
314
- builder: { model: "openai-codex/gpt-5.9" },
313
+ scout: { model: "openai-codex/gpt-5.3-codex-spark" },
314
+ worker: { model: "openai-codex/gpt-5.9" },
315
315
  },
316
316
  },
317
317
  }, null, 2));
@@ -328,13 +328,13 @@ describe("profiles helpers", () => {
328
328
  const result = await checkSubagentProfile(pi, ctx as never, "demo");
329
329
  assert.deepEqual(result.results, [
330
330
  {
331
- agent: "explorer",
331
+ agent: "scout",
332
332
  model: "openai-codex/gpt-5.3-codex-spark",
333
333
  inRegistry: true,
334
334
  probe: { status: "ok", message: "OK" },
335
335
  },
336
336
  {
337
- agent: "builder",
337
+ agent: "worker",
338
338
  model: "openai-codex/gpt-5.9",
339
339
  inRegistry: false,
340
340
  probe: { status: "unavailable", message: "model unavailable" },
@@ -346,7 +346,7 @@ describe("profiles helpers", () => {
346
346
  const profilesDir = getSubagentProfilesDir();
347
347
  fs.mkdirSync(profilesDir, { recursive: true });
348
348
  fs.writeFileSync(path.join(profilesDir, "demo.json"), JSON.stringify({
349
- subagents: { agentOverrides: { explorer: { model: "gpt-5.3-codex-spark:high" } } },
349
+ subagents: { agentOverrides: { scout: { model: "gpt-5.3-codex-spark:high" } } },
350
350
  }, null, 2));
351
351
  const probedModels: unknown[] = [];
352
352
  const pi = {