@selesai/code 0.6.3 → 0.7.0

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 (996) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +1 -1
  3. package/dist/bun/cli.d.ts +0 -1
  4. package/dist/bun/cli.js +0 -1
  5. package/dist/bun/register-bedrock.d.ts +0 -1
  6. package/dist/bun/register-bedrock.js +0 -1
  7. package/dist/bun/restore-sandbox-env.d.ts +0 -1
  8. package/dist/bun/restore-sandbox-env.js +0 -1
  9. package/dist/cli/args.d.ts +0 -1
  10. package/dist/cli/args.js +0 -1
  11. package/dist/cli/config-selector.d.ts +0 -1
  12. package/dist/cli/config-selector.js +0 -1
  13. package/dist/cli/credential-print.d.ts +0 -1
  14. package/dist/cli/credential-print.js +0 -1
  15. package/dist/cli/file-processor.d.ts +0 -1
  16. package/dist/cli/file-processor.js +0 -1
  17. package/dist/cli/initial-message.d.ts +0 -1
  18. package/dist/cli/initial-message.js +0 -1
  19. package/dist/cli/list-models.d.ts +0 -1
  20. package/dist/cli/list-models.js +0 -1
  21. package/dist/cli/project-trust.d.ts +0 -1
  22. package/dist/cli/project-trust.js +0 -1
  23. package/dist/cli/session-picker.d.ts +0 -1
  24. package/dist/cli/session-picker.js +0 -1
  25. package/dist/cli/startup-ui.d.ts +0 -1
  26. package/dist/cli/startup-ui.js +0 -1
  27. package/dist/cli.d.ts +0 -1
  28. package/dist/cli.js +0 -1
  29. package/dist/config.d.ts +0 -1
  30. package/dist/config.js +0 -1
  31. package/dist/core/agent-session-auto-handoff.test.d.ts +0 -1
  32. package/dist/core/agent-session-auto-handoff.test.js +0 -1
  33. package/dist/core/agent-session-runtime.d.ts +0 -1
  34. package/dist/core/agent-session-runtime.js +0 -1
  35. package/dist/core/agent-session-services.d.ts +0 -1
  36. package/dist/core/agent-session-services.js +0 -1
  37. package/dist/core/agent-session-skill-block.test.d.ts +0 -1
  38. package/dist/core/agent-session-skill-block.test.js +0 -1
  39. package/dist/core/agent-session.d.ts +0 -1
  40. package/dist/core/agent-session.js +0 -1
  41. package/dist/core/agents.d.ts +0 -1
  42. package/dist/core/agents.js +0 -1
  43. package/dist/core/auth-guidance.d.ts +0 -1
  44. package/dist/core/auth-guidance.js +0 -1
  45. package/dist/core/auth-storage.d.ts +0 -1
  46. package/dist/core/auth-storage.js +0 -1
  47. package/dist/core/bash-executor.d.ts +0 -1
  48. package/dist/core/bash-executor.js +0 -1
  49. package/dist/core/built-in-extensions.d.ts +0 -1
  50. package/dist/core/built-in-extensions.js +0 -1
  51. package/dist/core/cache-stats.d.ts +0 -1
  52. package/dist/core/cache-stats.js +0 -1
  53. package/dist/core/compaction/branch-summarization.d.ts +0 -1
  54. package/dist/core/compaction/branch-summarization.js +0 -1
  55. package/dist/core/compaction/compaction.d.ts +0 -1
  56. package/dist/core/compaction/compaction.js +0 -1
  57. package/dist/core/compaction/index.d.ts +0 -1
  58. package/dist/core/compaction/index.js +0 -1
  59. package/dist/core/compaction/utils.d.ts +0 -1
  60. package/dist/core/compaction/utils.js +0 -1
  61. package/dist/core/defaults.d.ts +0 -1
  62. package/dist/core/defaults.js +0 -1
  63. package/dist/core/diagnostics.d.ts +0 -1
  64. package/dist/core/diagnostics.js +0 -1
  65. package/dist/core/event-bus.d.ts +0 -1
  66. package/dist/core/event-bus.js +0 -1
  67. package/dist/core/exec.d.ts +0 -1
  68. package/dist/core/exec.js +0 -1
  69. package/dist/core/experimental.d.ts +0 -1
  70. package/dist/core/experimental.js +0 -1
  71. package/dist/core/export-html/ansi-to-html.d.ts +0 -1
  72. package/dist/core/export-html/ansi-to-html.js +0 -1
  73. package/dist/core/export-html/index.d.ts +0 -1
  74. package/dist/core/export-html/index.js +0 -1
  75. package/dist/core/export-html/tool-renderer.d.ts +0 -1
  76. package/dist/core/export-html/tool-renderer.js +0 -1
  77. package/dist/core/extensions/index.d.ts +0 -1
  78. package/dist/core/extensions/index.js +0 -1
  79. package/dist/core/extensions/loader.d.ts +0 -1
  80. package/dist/core/extensions/loader.js +0 -1
  81. package/dist/core/extensions/runner.d.ts +0 -1
  82. package/dist/core/extensions/runner.js +0 -1
  83. package/dist/core/extensions/types.d.ts +0 -1
  84. package/dist/core/extensions/types.js +0 -1
  85. package/dist/core/extensions/wrapper.d.ts +0 -1
  86. package/dist/core/extensions/wrapper.js +0 -1
  87. package/dist/core/footer-data-provider.d.ts +0 -1
  88. package/dist/core/footer-data-provider.js +0 -1
  89. package/dist/core/git-command.d.ts +0 -1
  90. package/dist/core/git-command.js +0 -1
  91. package/dist/core/http-dispatcher.d.ts +0 -1
  92. package/dist/core/http-dispatcher.js +0 -1
  93. package/dist/core/index.d.ts +0 -1
  94. package/dist/core/index.js +0 -1
  95. package/dist/core/keybindings.d.ts +0 -1
  96. package/dist/core/keybindings.js +0 -1
  97. package/dist/core/llama/client.d.ts +0 -1
  98. package/dist/core/llama/client.js +0 -1
  99. package/dist/core/llama/huggingface.d.ts +0 -1
  100. package/dist/core/llama/huggingface.js +0 -1
  101. package/dist/core/llama/index.d.ts +0 -1
  102. package/dist/core/llama/index.js +0 -1
  103. package/dist/core/llama/provider.d.ts +0 -1
  104. package/dist/core/llama/provider.js +0 -1
  105. package/dist/core/llama/ui.d.ts +0 -1
  106. package/dist/core/llama/ui.js +0 -1
  107. package/dist/core/messages.d.ts +0 -1
  108. package/dist/core/messages.js +0 -1
  109. package/dist/core/model-config.d.ts +0 -1
  110. package/dist/core/model-config.js +0 -1
  111. package/dist/core/model-registry.d.ts +0 -1
  112. package/dist/core/model-registry.js +0 -1
  113. package/dist/core/model-resolver.d.ts +0 -1
  114. package/dist/core/model-resolver.js +0 -1
  115. package/dist/core/model-runtime.d.ts +0 -1
  116. package/dist/core/model-runtime.js +0 -1
  117. package/dist/core/models-store.d.ts +0 -1
  118. package/dist/core/models-store.js +0 -1
  119. package/dist/core/output-guard.d.ts +0 -1
  120. package/dist/core/output-guard.js +0 -1
  121. package/dist/core/package-manager.d.ts +0 -1
  122. package/dist/core/package-manager.js +0 -1
  123. package/dist/core/package-manager.test.d.ts +0 -1
  124. package/dist/core/package-manager.test.js +0 -1
  125. package/dist/core/project-trust.d.ts +0 -1
  126. package/dist/core/project-trust.js +0 -1
  127. package/dist/core/prompt-templates.d.ts +0 -1
  128. package/dist/core/prompt-templates.js +0 -1
  129. package/dist/core/provider-attribution.d.ts +0 -1
  130. package/dist/core/provider-attribution.js +0 -1
  131. package/dist/core/provider-composer.d.ts +0 -1
  132. package/dist/core/provider-composer.js +0 -1
  133. package/dist/core/radius.d.ts +0 -1
  134. package/dist/core/radius.js +0 -1
  135. package/dist/core/remote-catalog-provider.d.ts +0 -1
  136. package/dist/core/remote-catalog-provider.js +0 -1
  137. package/dist/core/resolve-config-value.d.ts +0 -1
  138. package/dist/core/resolve-config-value.js +0 -1
  139. package/dist/core/resource-loader.d.ts +0 -1
  140. package/dist/core/resource-loader.js +0 -1
  141. package/dist/core/runtime-credentials.d.ts +0 -1
  142. package/dist/core/runtime-credentials.js +0 -1
  143. package/dist/core/sdk.d.ts +0 -1
  144. package/dist/core/sdk.js +0 -1
  145. package/dist/core/session-cwd.d.ts +0 -1
  146. package/dist/core/session-cwd.js +0 -1
  147. package/dist/core/session-manager.d.ts +0 -1
  148. package/dist/core/session-manager.js +0 -1
  149. package/dist/core/settings-manager-auto-handoff.test.d.ts +0 -1
  150. package/dist/core/settings-manager-auto-handoff.test.js +0 -1
  151. package/dist/core/settings-manager.d.ts +0 -4
  152. package/dist/core/settings-manager.js +0 -12
  153. package/dist/core/skills.d.ts +0 -1
  154. package/dist/core/skills.js +0 -1
  155. package/dist/core/slash-commands.d.ts +0 -1
  156. package/dist/core/slash-commands.js +0 -1
  157. package/dist/core/source-info.d.ts +0 -1
  158. package/dist/core/source-info.js +0 -1
  159. package/dist/core/system-prompt.d.ts +0 -1
  160. package/dist/core/system-prompt.js +0 -1
  161. package/dist/core/system-prompt.test.d.ts +0 -1
  162. package/dist/core/system-prompt.test.js +0 -1
  163. package/dist/core/telemetry.d.ts +0 -1
  164. package/dist/core/telemetry.js +0 -1
  165. package/dist/core/timings.d.ts +0 -1
  166. package/dist/core/timings.js +0 -1
  167. package/dist/core/tools/bash.d.ts +0 -1
  168. package/dist/core/tools/bash.js +0 -1
  169. package/dist/core/tools/edit-diff.d.ts +0 -1
  170. package/dist/core/tools/edit-diff.js +0 -1
  171. package/dist/core/tools/edit.d.ts +0 -1
  172. package/dist/core/tools/edit.js +0 -1
  173. package/dist/core/tools/file-mutation-queue.d.ts +0 -1
  174. package/dist/core/tools/file-mutation-queue.js +0 -1
  175. package/dist/core/tools/find.d.ts +0 -1
  176. package/dist/core/tools/find.js +0 -1
  177. package/dist/core/tools/grep.d.ts +0 -1
  178. package/dist/core/tools/grep.js +0 -1
  179. package/dist/core/tools/index.d.ts +0 -1
  180. package/dist/core/tools/index.js +0 -1
  181. package/dist/core/tools/ls.d.ts +0 -1
  182. package/dist/core/tools/ls.js +0 -1
  183. package/dist/core/tools/output-accumulator.d.ts +0 -1
  184. package/dist/core/tools/output-accumulator.js +0 -1
  185. package/dist/core/tools/path-utils.d.ts +0 -1
  186. package/dist/core/tools/path-utils.js +0 -1
  187. package/dist/core/tools/read.d.ts +0 -1
  188. package/dist/core/tools/read.js +0 -1
  189. package/dist/core/tools/render-utils.d.ts +0 -1
  190. package/dist/core/tools/render-utils.js +0 -1
  191. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -1
  192. package/dist/core/tools/tool-definition-wrapper.js +0 -1
  193. package/dist/core/tools/truncate.d.ts +0 -1
  194. package/dist/core/tools/truncate.js +0 -1
  195. package/dist/core/tools/write.d.ts +0 -1
  196. package/dist/core/tools/write.js +0 -1
  197. package/dist/core/trust-manager.d.ts +0 -1
  198. package/dist/core/trust-manager.js +0 -1
  199. package/dist/core/usage-totals.d.ts +0 -1
  200. package/dist/core/usage-totals.js +0 -1
  201. package/dist/defaults/models.json +8 -0
  202. package/dist/defaults/settings.json +6 -7
  203. package/dist/extensions/inline-skills.test.ts +13 -13
  204. package/dist/extensions/inline-skills.ts +6 -6
  205. package/dist/extensions/pi-subagents/CHANGELOG.md +89 -12
  206. package/dist/extensions/pi-subagents/README.md +339 -604
  207. package/dist/extensions/pi-subagents/package-lock.json +190 -2079
  208. package/dist/extensions/pi-subagents/package.json +13 -5
  209. package/dist/extensions/pi-subagents/prompts/parallel-context-build.md +1 -1
  210. package/dist/extensions/pi-subagents/prompts/parallel-handoff-plan.md +1 -1
  211. package/dist/extensions/pi-subagents/prompts/review-loop.md +1 -1
  212. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +10 -10
  213. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +32 -43
  214. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +106 -105
  215. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +3 -3
  216. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +28 -35
  217. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +167 -124
  218. package/dist/extensions/pi-subagents/src/agents/agent-serializer.ts +19 -0
  219. package/dist/extensions/pi-subagents/src/agents/agents.ts +163 -75
  220. package/dist/extensions/pi-subagents/src/agents/chain-serializer.ts +10 -7
  221. package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +5 -3
  222. package/dist/extensions/pi-subagents/src/agents/identity.ts +1 -1
  223. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +14 -11
  224. package/dist/extensions/pi-subagents/src/agents/skills.ts +23 -6
  225. package/dist/extensions/pi-subagents/src/agents/task-aware-routing.ts +8 -1
  226. package/dist/extensions/pi-subagents/src/api/control-channel.ts +4 -0
  227. package/dist/extensions/pi-subagents/src/api/delegation.ts +26 -194
  228. package/dist/extensions/pi-subagents/src/api/external-runs.ts +129 -0
  229. package/dist/extensions/pi-subagents/src/api/intercom-bridge.ts +3 -0
  230. package/dist/extensions/pi-subagents/src/api/pi-args.ts +5 -0
  231. package/dist/extensions/pi-subagents/src/api/preflight.ts +4 -4
  232. package/dist/extensions/pi-subagents/src/api/shared-types.ts +19 -0
  233. package/dist/extensions/pi-subagents/src/extension/config.ts +10 -0
  234. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +5 -39
  235. package/dist/extensions/pi-subagents/src/extension/doctor.ts +10 -9
  236. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +7 -4
  237. package/dist/extensions/pi-subagents/src/extension/index.ts +243 -77
  238. package/dist/extensions/pi-subagents/src/extension/rpc.ts +18 -6
  239. package/dist/extensions/pi-subagents/src/extension/schemas.ts +50 -39
  240. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +36 -103
  241. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +229 -0
  242. package/dist/extensions/pi-subagents/src/inspectors/herdr/client.ts +130 -0
  243. package/dist/extensions/pi-subagents/src/inspectors/herdr/inspector-runner.ts +141 -0
  244. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +154 -0
  245. package/dist/extensions/pi-subagents/src/integrations/herdr-status.ts +330 -0
  246. package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +3 -2
  247. package/dist/extensions/pi-subagents/src/intercom/result-intercom.ts +5 -1
  248. package/dist/extensions/pi-subagents/src/missions/actions.ts +372 -0
  249. package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +314 -0
  250. package/dist/extensions/pi-subagents/src/missions/store.ts +442 -0
  251. package/dist/extensions/pi-subagents/src/missions/types.ts +135 -0
  252. package/dist/extensions/pi-subagents/src/policy/authority.ts +46 -0
  253. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +32 -6
  254. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +103 -72
  255. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +10 -2
  256. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +6 -6
  257. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +29 -1
  258. package/dist/extensions/pi-subagents/src/runs/background/auto-drain.ts +3 -3
  259. package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +3 -2
  260. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +9 -7
  261. package/dist/extensions/pi-subagents/src/runs/background/fleet-view.ts +3 -4
  262. package/dist/extensions/pi-subagents/src/runs/background/notify.ts +3 -28
  263. package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +5 -5
  264. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +18 -68
  265. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +3 -3
  266. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +35 -8
  267. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +602 -375
  268. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +3 -3
  269. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +612 -464
  270. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +50 -9
  271. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +253 -0
  272. package/dist/extensions/pi-subagents/src/runs/background/wait-tool.ts +12 -4
  273. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +3 -3
  274. package/dist/extensions/pi-subagents/src/runs/foreground/chain-clarify.ts +8 -4
  275. package/dist/extensions/pi-subagents/src/runs/foreground/chain-execution.ts +74 -102
  276. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +21 -22
  277. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +1050 -396
  278. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +44 -18
  279. package/dist/extensions/pi-subagents/src/runs/shared/capability-ceiling.ts +0 -1
  280. package/dist/extensions/pi-subagents/src/runs/shared/child-protocol.ts +302 -22
  281. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +1 -1
  282. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-runner.ts +130 -0
  283. package/dist/extensions/pi-subagents/src/runs/shared/long-running-guard.ts +42 -1
  284. package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +1 -1
  285. package/dist/extensions/pi-subagents/src/runs/shared/nested-events.ts +59 -5
  286. package/dist/extensions/pi-subagents/src/runs/shared/nested-render.ts +9 -4
  287. package/dist/extensions/pi-subagents/src/runs/shared/parallel-handoff.ts +86 -2
  288. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +11 -2
  289. package/dist/extensions/pi-subagents/src/runs/shared/permissions.ts +95 -0
  290. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +11 -1
  291. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +15 -6
  292. package/dist/extensions/pi-subagents/src/runs/shared/run-history.ts +1 -1
  293. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +9 -63
  294. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +37 -6
  295. package/dist/extensions/pi-subagents/src/runs/shared/subagent-startup-retry.ts +5 -2
  296. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +2 -23
  297. package/dist/extensions/pi-subagents/src/runs/shared/turn-budget.ts +6 -6
  298. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +124 -13
  299. package/dist/extensions/pi-subagents/src/shared/accessible-dir.ts +29 -7
  300. package/dist/extensions/pi-subagents/src/shared/artifacts.ts +18 -1
  301. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +3 -2
  302. package/dist/extensions/pi-subagents/src/shared/launch-contract.ts +1 -0
  303. package/dist/extensions/pi-subagents/src/shared/settings.ts +10 -0
  304. package/dist/extensions/pi-subagents/src/shared/types.ts +158 -55
  305. package/dist/extensions/pi-subagents/src/shared/utils.ts +16 -66
  306. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +33 -199
  307. package/dist/extensions/pi-subagents/src/slash/delegation-request.ts +43 -126
  308. package/dist/extensions/pi-subagents/src/slash/inline-subagents.ts +103 -0
  309. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +158 -205
  310. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +22 -58
  311. package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +14 -0
  312. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +44 -642
  313. package/dist/extensions/pi-subagents/src/slash/subagents-admin.ts +18 -14
  314. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +156 -21
  315. package/dist/extensions/pi-subagents/src/tui/fleet-transcript.ts +110 -5
  316. package/dist/extensions/pi-subagents/src/tui/fleet.ts +60 -24
  317. package/dist/extensions/pi-subagents/src/tui/render.ts +296 -140
  318. package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +14 -0
  319. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +1 -1
  320. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +13 -7
  321. package/dist/extensions/pi-subagents/src/watchdog/model-selection.ts +2 -2
  322. package/dist/extensions/pi-subagents/src/watchdog/permission-arbiter.ts +145 -0
  323. package/dist/extensions/pi-subagents/src/watchdog/register-child.ts +1 -1
  324. package/dist/extensions/pi-subagents/src/watchdog/register-main.ts +1 -1
  325. package/dist/extensions/pi-subagents/src/watchdog/review.ts +4 -1
  326. package/dist/extensions/pi-subagents/src/watchdog/runtime.ts +3 -2
  327. package/dist/extensions/pi-subagents/src/workflows/chat-progress.ts +140 -0
  328. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +415 -0
  329. package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +41 -144
  330. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +16 -16
  331. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +415 -298
  332. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +149 -82
  333. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +40 -40
  334. package/dist/extensions/pi-subagents/test/integration/chain-clarify.test.ts +15 -15
  335. package/dist/extensions/pi-subagents/test/integration/chain-execution.test.ts +193 -133
  336. package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +1 -49
  337. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +62 -0
  338. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +56 -58
  339. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +81 -68
  340. package/dist/extensions/pi-subagents/test/integration/parallel-execution.test.ts +20 -25
  341. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +425 -317
  342. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +73 -73
  343. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +123 -98
  344. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +653 -240
  345. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +20 -1661
  346. package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +9 -9
  347. package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +3 -3
  348. package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +2 -2
  349. package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +8 -5
  350. package/dist/extensions/pi-subagents/test/support/mock-pi.ts +6 -6
  351. package/dist/extensions/pi-subagents/test/support/real-session-runner.ts +4 -20
  352. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +25 -4
  353. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +1 -1
  354. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +280 -295
  355. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +47 -207
  356. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +26 -26
  357. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +89 -89
  358. package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +9 -9
  359. package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +10 -0
  360. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +33 -9
  361. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +24 -2
  362. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +11 -9
  363. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +2 -2
  364. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +40 -40
  365. package/dist/extensions/pi-subagents/test/unit/authority-policy.test.ts +22 -0
  366. package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +1 -1
  367. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +5 -39
  368. package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +19 -19
  369. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +9 -9
  370. package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +20 -20
  371. package/dist/extensions/pi-subagents/test/unit/child-protocol.test.ts +99 -0
  372. package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +9 -9
  373. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +41 -0
  374. package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +2 -2
  375. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +35 -5
  376. package/dist/extensions/pi-subagents/test/unit/config-dir-runtime.test.ts +7 -0
  377. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +16 -82
  378. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +162 -620
  379. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +1 -1
  380. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +25 -25
  381. package/dist/extensions/pi-subagents/test/unit/ensure-accessible-dir.test.ts +125 -0
  382. package/dist/extensions/pi-subagents/test/unit/external-cli-runner.test.ts +94 -0
  383. package/dist/extensions/pi-subagents/test/unit/external-runs.test.ts +66 -0
  384. package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +3 -3
  385. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +242 -52
  386. package/dist/extensions/pi-subagents/test/unit/fleet-transcript.test.ts +127 -0
  387. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +197 -36
  388. package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +4 -4
  389. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +245 -0
  390. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +494 -0
  391. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +261 -31
  392. package/dist/extensions/pi-subagents/test/unit/inline-subagents.test.ts +52 -0
  393. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +6 -6
  394. package/dist/extensions/pi-subagents/test/unit/mission-lifecycle.test.ts +217 -0
  395. package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +182 -0
  396. package/dist/extensions/pi-subagents/test/unit/mock-pi.test.ts +22 -0
  397. package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +1 -1
  398. package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +10 -10
  399. package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +20 -12
  400. package/dist/extensions/pi-subagents/test/unit/nested-events.test.ts +47 -5
  401. package/dist/extensions/pi-subagents/test/unit/notify.test.ts +49 -55
  402. package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +20 -3
  403. package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +37 -7
  404. package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +10 -10
  405. package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +3 -3
  406. package/dist/extensions/pi-subagents/test/unit/permissions.test.ts +46 -0
  407. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +31 -10
  408. package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +40 -16
  409. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +42 -44
  410. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +13 -13
  411. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +4 -4
  412. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +75 -9
  413. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +20 -84
  414. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +15 -16
  415. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +28 -28
  416. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +19 -12
  417. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +37 -21
  418. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +1 -1
  419. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +50 -50
  420. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +396 -433
  421. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +76 -153
  422. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +411 -0
  423. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +1 -91
  424. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +139 -0
  425. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +29 -0
  426. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +13 -13
  427. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +2 -2
  428. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +2 -2
  429. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +35 -35
  430. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +53 -18
  431. package/dist/extensions/pi-subagents/test/unit/subagent-startup-retry.test.ts +13 -1
  432. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +44 -11
  433. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +2 -26
  434. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +24 -148
  435. package/dist/extensions/pi-subagents/test/unit/turn-budget.test.ts +11 -9
  436. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +351 -0
  437. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +13 -13
  438. package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +1 -1
  439. package/dist/extensions/pi-subagents/test/unit/watchdog-permission-arbiter.test.ts +79 -0
  440. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +1 -1
  441. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +8 -8
  442. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +45 -9
  443. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +197 -0
  444. package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +8 -8
  445. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +142 -12
  446. package/dist/extensions/pi-subagents/tsconfig.json +15 -0
  447. package/dist/extensions/rtk.test.ts +126 -0
  448. package/dist/extensions/rtk.ts +56 -20
  449. package/dist/index.d.ts +1 -1
  450. package/dist/index.js +1 -1
  451. package/dist/main.d.ts +0 -1
  452. package/dist/main.js +0 -1
  453. package/dist/migrations.d.ts +0 -1
  454. package/dist/migrations.js +0 -1
  455. package/dist/modes/index.d.ts +0 -1
  456. package/dist/modes/index.js +0 -1
  457. package/dist/modes/interactive/components/armin.d.ts +0 -1
  458. package/dist/modes/interactive/components/armin.js +0 -1
  459. package/dist/modes/interactive/components/assistant-message.d.ts +0 -1
  460. package/dist/modes/interactive/components/assistant-message.js +0 -1
  461. package/dist/modes/interactive/components/bash-execution.d.ts +0 -1
  462. package/dist/modes/interactive/components/bash-execution.js +0 -1
  463. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -1
  464. package/dist/modes/interactive/components/bordered-loader.js +0 -1
  465. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -1
  466. package/dist/modes/interactive/components/branch-summary-message.js +0 -1
  467. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -1
  468. package/dist/modes/interactive/components/compaction-summary-message.js +0 -1
  469. package/dist/modes/interactive/components/config-selector.d.ts +0 -1
  470. package/dist/modes/interactive/components/config-selector.js +0 -1
  471. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -1
  472. package/dist/modes/interactive/components/countdown-timer.js +0 -1
  473. package/dist/modes/interactive/components/custom-editor.d.ts +0 -1
  474. package/dist/modes/interactive/components/custom-editor.js +0 -1
  475. package/dist/modes/interactive/components/custom-entry.d.ts +0 -1
  476. package/dist/modes/interactive/components/custom-entry.js +0 -1
  477. package/dist/modes/interactive/components/custom-message.d.ts +0 -1
  478. package/dist/modes/interactive/components/custom-message.js +0 -1
  479. package/dist/modes/interactive/components/daxnuts.d.ts +0 -1
  480. package/dist/modes/interactive/components/daxnuts.js +0 -1
  481. package/dist/modes/interactive/components/diff.d.ts +0 -1
  482. package/dist/modes/interactive/components/diff.js +0 -1
  483. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -1
  484. package/dist/modes/interactive/components/dynamic-border.js +0 -1
  485. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -1
  486. package/dist/modes/interactive/components/earendil-announcement.js +0 -1
  487. package/dist/modes/interactive/components/extension-editor.d.ts +0 -1
  488. package/dist/modes/interactive/components/extension-editor.js +0 -1
  489. package/dist/modes/interactive/components/extension-input.d.ts +0 -1
  490. package/dist/modes/interactive/components/extension-input.js +0 -1
  491. package/dist/modes/interactive/components/extension-selector.d.ts +0 -1
  492. package/dist/modes/interactive/components/extension-selector.js +0 -1
  493. package/dist/modes/interactive/components/first-time-setup.d.ts +0 -1
  494. package/dist/modes/interactive/components/first-time-setup.js +0 -1
  495. package/dist/modes/interactive/components/footer.d.ts +0 -1
  496. package/dist/modes/interactive/components/footer.js +0 -1
  497. package/dist/modes/interactive/components/index.d.ts +0 -1
  498. package/dist/modes/interactive/components/index.js +0 -1
  499. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -1
  500. package/dist/modes/interactive/components/keybinding-hints.js +0 -1
  501. package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
  502. package/dist/modes/interactive/components/login-dialog.js +0 -1
  503. package/dist/modes/interactive/components/model-selector.d.ts +0 -1
  504. package/dist/modes/interactive/components/model-selector.js +0 -1
  505. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -1
  506. package/dist/modes/interactive/components/oauth-selector.js +0 -1
  507. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -1
  508. package/dist/modes/interactive/components/scoped-models-selector.js +0 -1
  509. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -1
  510. package/dist/modes/interactive/components/session-selector-search.js +0 -1
  511. package/dist/modes/interactive/components/session-selector.d.ts +0 -1
  512. package/dist/modes/interactive/components/session-selector.js +0 -1
  513. package/dist/modes/interactive/components/settings-selector.d.ts +0 -3
  514. package/dist/modes/interactive/components/settings-selector.js +1 -14
  515. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -1
  516. package/dist/modes/interactive/components/show-images-selector.js +0 -1
  517. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -1
  518. package/dist/modes/interactive/components/skill-invocation-message.js +0 -1
  519. package/dist/modes/interactive/components/status-indicator.d.ts +0 -1
  520. package/dist/modes/interactive/components/status-indicator.js +0 -1
  521. package/dist/modes/interactive/components/theme-selector.d.ts +0 -1
  522. package/dist/modes/interactive/components/theme-selector.js +0 -1
  523. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -1
  524. package/dist/modes/interactive/components/thinking-selector.js +0 -1
  525. package/dist/modes/interactive/components/tool-execution.d.ts +0 -1
  526. package/dist/modes/interactive/components/tool-execution.js +0 -1
  527. package/dist/modes/interactive/components/tree-selector.d.ts +0 -1
  528. package/dist/modes/interactive/components/tree-selector.js +0 -1
  529. package/dist/modes/interactive/components/trust-selector.d.ts +0 -1
  530. package/dist/modes/interactive/components/trust-selector.js +0 -1
  531. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -1
  532. package/dist/modes/interactive/components/user-message-selector.js +0 -1
  533. package/dist/modes/interactive/components/user-message.d.ts +0 -1
  534. package/dist/modes/interactive/components/user-message.js +0 -1
  535. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -1
  536. package/dist/modes/interactive/components/visual-truncate.js +0 -1
  537. package/dist/modes/interactive/external-editor.d.ts +0 -1
  538. package/dist/modes/interactive/external-editor.js +0 -1
  539. package/dist/modes/interactive/interactive-mode.d.ts +0 -2
  540. package/dist/modes/interactive/interactive-mode.js +1 -22
  541. package/dist/modes/interactive/model-search.d.ts +0 -1
  542. package/dist/modes/interactive/model-search.js +0 -1
  543. package/dist/modes/interactive/theme/theme-controller.d.ts +0 -1
  544. package/dist/modes/interactive/theme/theme-controller.js +0 -1
  545. package/dist/modes/interactive/theme/theme.d.ts +0 -1
  546. package/dist/modes/interactive/theme/theme.js +0 -1
  547. package/dist/modes/print-mode.d.ts +0 -1
  548. package/dist/modes/print-mode.js +0 -1
  549. package/dist/modes/rpc/jsonl.d.ts +0 -1
  550. package/dist/modes/rpc/jsonl.js +0 -1
  551. package/dist/modes/rpc/rpc-client.d.ts +1 -2
  552. package/dist/modes/rpc/rpc-client.js +1 -2
  553. package/dist/modes/rpc/rpc-mode.d.ts +0 -1
  554. package/dist/modes/rpc/rpc-mode.js +0 -9
  555. package/dist/modes/rpc/rpc-types.d.ts +0 -1
  556. package/dist/modes/rpc/rpc-types.js +0 -1
  557. package/dist/package-manager-cli.d.ts +0 -1
  558. package/dist/package-manager-cli.js +0 -1
  559. package/dist/rpc-entry.d.ts +0 -1
  560. package/dist/rpc-entry.js +0 -1
  561. package/dist/utils/ansi.d.ts +0 -1
  562. package/dist/utils/ansi.js +0 -1
  563. package/dist/utils/changelog.d.ts +0 -1
  564. package/dist/utils/changelog.js +0 -1
  565. package/dist/utils/child-process.d.ts +0 -1
  566. package/dist/utils/child-process.js +0 -1
  567. package/dist/utils/clipboard-image.d.ts +0 -1
  568. package/dist/utils/clipboard-image.js +0 -1
  569. package/dist/utils/clipboard-native.d.ts +0 -1
  570. package/dist/utils/clipboard-native.js +0 -1
  571. package/dist/utils/clipboard.d.ts +0 -1
  572. package/dist/utils/clipboard.js +0 -1
  573. package/dist/utils/deprecation.d.ts +0 -1
  574. package/dist/utils/deprecation.js +0 -1
  575. package/dist/utils/exif-orientation.d.ts +0 -1
  576. package/dist/utils/exif-orientation.js +0 -1
  577. package/dist/utils/frontmatter.d.ts +0 -1
  578. package/dist/utils/frontmatter.js +0 -1
  579. package/dist/utils/fs-watch.d.ts +0 -1
  580. package/dist/utils/fs-watch.js +0 -1
  581. package/dist/utils/git.d.ts +0 -1
  582. package/dist/utils/git.js +0 -1
  583. package/dist/utils/html.d.ts +0 -1
  584. package/dist/utils/html.js +0 -1
  585. package/dist/utils/image-convert.d.ts +0 -1
  586. package/dist/utils/image-convert.js +0 -1
  587. package/dist/utils/image-process.d.ts +0 -1
  588. package/dist/utils/image-process.js +0 -1
  589. package/dist/utils/image-resize-core.d.ts +0 -1
  590. package/dist/utils/image-resize-core.js +0 -1
  591. package/dist/utils/image-resize-worker.d.ts +0 -1
  592. package/dist/utils/image-resize-worker.js +0 -1
  593. package/dist/utils/image-resize.d.ts +0 -1
  594. package/dist/utils/image-resize.js +0 -1
  595. package/dist/utils/json.d.ts +0 -1
  596. package/dist/utils/json.js +0 -1
  597. package/dist/utils/mime.d.ts +0 -1
  598. package/dist/utils/mime.js +0 -1
  599. package/dist/utils/open-browser.d.ts +0 -1
  600. package/dist/utils/open-browser.js +0 -1
  601. package/dist/utils/paths.d.ts +0 -1
  602. package/dist/utils/paths.js +0 -1
  603. package/dist/utils/photon.d.ts +0 -1
  604. package/dist/utils/photon.js +0 -1
  605. package/dist/utils/pi-user-agent.d.ts +0 -1
  606. package/dist/utils/pi-user-agent.js +0 -1
  607. package/dist/utils/shell.d.ts +0 -1
  608. package/dist/utils/shell.js +0 -1
  609. package/dist/utils/sleep.d.ts +0 -1
  610. package/dist/utils/sleep.js +0 -1
  611. package/dist/utils/syntax-highlight.d.ts +0 -1
  612. package/dist/utils/syntax-highlight.js +0 -1
  613. package/dist/utils/thinking-tags.d.ts +0 -1
  614. package/dist/utils/thinking-tags.js +0 -1
  615. package/dist/utils/tools-manager.d.ts +3 -3
  616. package/dist/utils/tools-manager.js +125 -42
  617. package/dist/utils/version-check.d.ts +0 -1
  618. package/dist/utils/version-check.js +0 -1
  619. package/dist/utils/windows-self-update.d.ts +0 -1
  620. package/dist/utils/windows-self-update.js +0 -1
  621. package/docs/rpc.md +1 -2
  622. package/docs/settings.md +0 -1
  623. package/docs/skills.md +10 -18
  624. package/package.json +3 -2
  625. package/dist/bun/cli.d.ts.map +0 -1
  626. package/dist/bun/cli.js.map +0 -1
  627. package/dist/bun/register-bedrock.d.ts.map +0 -1
  628. package/dist/bun/register-bedrock.js.map +0 -1
  629. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  630. package/dist/bun/restore-sandbox-env.js.map +0 -1
  631. package/dist/cli/args.d.ts.map +0 -1
  632. package/dist/cli/args.js.map +0 -1
  633. package/dist/cli/config-selector.d.ts.map +0 -1
  634. package/dist/cli/config-selector.js.map +0 -1
  635. package/dist/cli/credential-print.d.ts.map +0 -1
  636. package/dist/cli/credential-print.js.map +0 -1
  637. package/dist/cli/file-processor.d.ts.map +0 -1
  638. package/dist/cli/file-processor.js.map +0 -1
  639. package/dist/cli/initial-message.d.ts.map +0 -1
  640. package/dist/cli/initial-message.js.map +0 -1
  641. package/dist/cli/list-models.d.ts.map +0 -1
  642. package/dist/cli/list-models.js.map +0 -1
  643. package/dist/cli/project-trust.d.ts.map +0 -1
  644. package/dist/cli/project-trust.js.map +0 -1
  645. package/dist/cli/session-picker.d.ts.map +0 -1
  646. package/dist/cli/session-picker.js.map +0 -1
  647. package/dist/cli/startup-ui.d.ts.map +0 -1
  648. package/dist/cli/startup-ui.js.map +0 -1
  649. package/dist/cli.d.ts.map +0 -1
  650. package/dist/cli.js.map +0 -1
  651. package/dist/config.d.ts.map +0 -1
  652. package/dist/config.js.map +0 -1
  653. package/dist/core/agent-session-auto-handoff.test.d.ts.map +0 -1
  654. package/dist/core/agent-session-auto-handoff.test.js.map +0 -1
  655. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  656. package/dist/core/agent-session-runtime.js.map +0 -1
  657. package/dist/core/agent-session-services.d.ts.map +0 -1
  658. package/dist/core/agent-session-services.js.map +0 -1
  659. package/dist/core/agent-session-skill-block.test.d.ts.map +0 -1
  660. package/dist/core/agent-session-skill-block.test.js.map +0 -1
  661. package/dist/core/agent-session.d.ts.map +0 -1
  662. package/dist/core/agent-session.js.map +0 -1
  663. package/dist/core/agents.d.ts.map +0 -1
  664. package/dist/core/agents.js.map +0 -1
  665. package/dist/core/auth-guidance.d.ts.map +0 -1
  666. package/dist/core/auth-guidance.js.map +0 -1
  667. package/dist/core/auth-storage.d.ts.map +0 -1
  668. package/dist/core/auth-storage.js.map +0 -1
  669. package/dist/core/bash-executor.d.ts.map +0 -1
  670. package/dist/core/bash-executor.js.map +0 -1
  671. package/dist/core/built-in-extensions.d.ts.map +0 -1
  672. package/dist/core/built-in-extensions.js.map +0 -1
  673. package/dist/core/cache-stats.d.ts.map +0 -1
  674. package/dist/core/cache-stats.js.map +0 -1
  675. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  676. package/dist/core/compaction/branch-summarization.js.map +0 -1
  677. package/dist/core/compaction/compaction.d.ts.map +0 -1
  678. package/dist/core/compaction/compaction.js.map +0 -1
  679. package/dist/core/compaction/index.d.ts.map +0 -1
  680. package/dist/core/compaction/index.js.map +0 -1
  681. package/dist/core/compaction/utils.d.ts.map +0 -1
  682. package/dist/core/compaction/utils.js.map +0 -1
  683. package/dist/core/defaults.d.ts.map +0 -1
  684. package/dist/core/defaults.js.map +0 -1
  685. package/dist/core/diagnostics.d.ts.map +0 -1
  686. package/dist/core/diagnostics.js.map +0 -1
  687. package/dist/core/event-bus.d.ts.map +0 -1
  688. package/dist/core/event-bus.js.map +0 -1
  689. package/dist/core/exec.d.ts.map +0 -1
  690. package/dist/core/exec.js.map +0 -1
  691. package/dist/core/experimental.d.ts.map +0 -1
  692. package/dist/core/experimental.js.map +0 -1
  693. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  694. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  695. package/dist/core/export-html/index.d.ts.map +0 -1
  696. package/dist/core/export-html/index.js.map +0 -1
  697. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  698. package/dist/core/export-html/tool-renderer.js.map +0 -1
  699. package/dist/core/extensions/index.d.ts.map +0 -1
  700. package/dist/core/extensions/index.js.map +0 -1
  701. package/dist/core/extensions/loader.d.ts.map +0 -1
  702. package/dist/core/extensions/loader.js.map +0 -1
  703. package/dist/core/extensions/runner.d.ts.map +0 -1
  704. package/dist/core/extensions/runner.js.map +0 -1
  705. package/dist/core/extensions/types.d.ts.map +0 -1
  706. package/dist/core/extensions/types.js.map +0 -1
  707. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  708. package/dist/core/extensions/wrapper.js.map +0 -1
  709. package/dist/core/footer-data-provider.d.ts.map +0 -1
  710. package/dist/core/footer-data-provider.js.map +0 -1
  711. package/dist/core/git-command.d.ts.map +0 -1
  712. package/dist/core/git-command.js.map +0 -1
  713. package/dist/core/http-dispatcher.d.ts.map +0 -1
  714. package/dist/core/http-dispatcher.js.map +0 -1
  715. package/dist/core/index.d.ts.map +0 -1
  716. package/dist/core/index.js.map +0 -1
  717. package/dist/core/keybindings.d.ts.map +0 -1
  718. package/dist/core/keybindings.js.map +0 -1
  719. package/dist/core/llama/client.d.ts.map +0 -1
  720. package/dist/core/llama/client.js.map +0 -1
  721. package/dist/core/llama/huggingface.d.ts.map +0 -1
  722. package/dist/core/llama/huggingface.js.map +0 -1
  723. package/dist/core/llama/index.d.ts.map +0 -1
  724. package/dist/core/llama/index.js.map +0 -1
  725. package/dist/core/llama/provider.d.ts.map +0 -1
  726. package/dist/core/llama/provider.js.map +0 -1
  727. package/dist/core/llama/ui.d.ts.map +0 -1
  728. package/dist/core/llama/ui.js.map +0 -1
  729. package/dist/core/messages.d.ts.map +0 -1
  730. package/dist/core/messages.js.map +0 -1
  731. package/dist/core/model-config.d.ts.map +0 -1
  732. package/dist/core/model-config.js.map +0 -1
  733. package/dist/core/model-registry.d.ts.map +0 -1
  734. package/dist/core/model-registry.js.map +0 -1
  735. package/dist/core/model-resolver.d.ts.map +0 -1
  736. package/dist/core/model-resolver.js.map +0 -1
  737. package/dist/core/model-runtime.d.ts.map +0 -1
  738. package/dist/core/model-runtime.js.map +0 -1
  739. package/dist/core/models-store.d.ts.map +0 -1
  740. package/dist/core/models-store.js.map +0 -1
  741. package/dist/core/output-guard.d.ts.map +0 -1
  742. package/dist/core/output-guard.js.map +0 -1
  743. package/dist/core/package-manager.d.ts.map +0 -1
  744. package/dist/core/package-manager.js.map +0 -1
  745. package/dist/core/package-manager.test.d.ts.map +0 -1
  746. package/dist/core/package-manager.test.js.map +0 -1
  747. package/dist/core/project-trust.d.ts.map +0 -1
  748. package/dist/core/project-trust.js.map +0 -1
  749. package/dist/core/prompt-templates.d.ts.map +0 -1
  750. package/dist/core/prompt-templates.js.map +0 -1
  751. package/dist/core/provider-attribution.d.ts.map +0 -1
  752. package/dist/core/provider-attribution.js.map +0 -1
  753. package/dist/core/provider-composer.d.ts.map +0 -1
  754. package/dist/core/provider-composer.js.map +0 -1
  755. package/dist/core/radius.d.ts.map +0 -1
  756. package/dist/core/radius.js.map +0 -1
  757. package/dist/core/remote-catalog-provider.d.ts.map +0 -1
  758. package/dist/core/remote-catalog-provider.js.map +0 -1
  759. package/dist/core/resolve-config-value.d.ts.map +0 -1
  760. package/dist/core/resolve-config-value.js.map +0 -1
  761. package/dist/core/resource-loader.d.ts.map +0 -1
  762. package/dist/core/resource-loader.js.map +0 -1
  763. package/dist/core/runtime-credentials.d.ts.map +0 -1
  764. package/dist/core/runtime-credentials.js.map +0 -1
  765. package/dist/core/sdk.d.ts.map +0 -1
  766. package/dist/core/sdk.js.map +0 -1
  767. package/dist/core/session-cwd.d.ts.map +0 -1
  768. package/dist/core/session-cwd.js.map +0 -1
  769. package/dist/core/session-manager.d.ts.map +0 -1
  770. package/dist/core/session-manager.js.map +0 -1
  771. package/dist/core/settings-manager-auto-handoff.test.d.ts.map +0 -1
  772. package/dist/core/settings-manager-auto-handoff.test.js.map +0 -1
  773. package/dist/core/settings-manager.d.ts.map +0 -1
  774. package/dist/core/settings-manager.js.map +0 -1
  775. package/dist/core/skills.d.ts.map +0 -1
  776. package/dist/core/skills.js.map +0 -1
  777. package/dist/core/slash-commands.d.ts.map +0 -1
  778. package/dist/core/slash-commands.js.map +0 -1
  779. package/dist/core/source-info.d.ts.map +0 -1
  780. package/dist/core/source-info.js.map +0 -1
  781. package/dist/core/system-prompt.d.ts.map +0 -1
  782. package/dist/core/system-prompt.js.map +0 -1
  783. package/dist/core/system-prompt.test.d.ts.map +0 -1
  784. package/dist/core/system-prompt.test.js.map +0 -1
  785. package/dist/core/telemetry.d.ts.map +0 -1
  786. package/dist/core/telemetry.js.map +0 -1
  787. package/dist/core/timings.d.ts.map +0 -1
  788. package/dist/core/timings.js.map +0 -1
  789. package/dist/core/tools/bash.d.ts.map +0 -1
  790. package/dist/core/tools/bash.js.map +0 -1
  791. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  792. package/dist/core/tools/edit-diff.js.map +0 -1
  793. package/dist/core/tools/edit.d.ts.map +0 -1
  794. package/dist/core/tools/edit.js.map +0 -1
  795. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  796. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  797. package/dist/core/tools/find.d.ts.map +0 -1
  798. package/dist/core/tools/find.js.map +0 -1
  799. package/dist/core/tools/grep.d.ts.map +0 -1
  800. package/dist/core/tools/grep.js.map +0 -1
  801. package/dist/core/tools/index.d.ts.map +0 -1
  802. package/dist/core/tools/index.js.map +0 -1
  803. package/dist/core/tools/ls.d.ts.map +0 -1
  804. package/dist/core/tools/ls.js.map +0 -1
  805. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  806. package/dist/core/tools/output-accumulator.js.map +0 -1
  807. package/dist/core/tools/path-utils.d.ts.map +0 -1
  808. package/dist/core/tools/path-utils.js.map +0 -1
  809. package/dist/core/tools/read.d.ts.map +0 -1
  810. package/dist/core/tools/read.js.map +0 -1
  811. package/dist/core/tools/render-utils.d.ts.map +0 -1
  812. package/dist/core/tools/render-utils.js.map +0 -1
  813. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  814. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  815. package/dist/core/tools/truncate.d.ts.map +0 -1
  816. package/dist/core/tools/truncate.js.map +0 -1
  817. package/dist/core/tools/write.d.ts.map +0 -1
  818. package/dist/core/tools/write.js.map +0 -1
  819. package/dist/core/trust-manager.d.ts.map +0 -1
  820. package/dist/core/trust-manager.js.map +0 -1
  821. package/dist/core/usage-totals.d.ts.map +0 -1
  822. package/dist/core/usage-totals.js.map +0 -1
  823. package/dist/extensions/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  824. package/dist/extensions/pi-subagents/test/unit/slash-chain-groups.test.ts +0 -464
  825. package/dist/index.d.ts.map +0 -1
  826. package/dist/index.js.map +0 -1
  827. package/dist/main.d.ts.map +0 -1
  828. package/dist/main.js.map +0 -1
  829. package/dist/migrations.d.ts.map +0 -1
  830. package/dist/migrations.js.map +0 -1
  831. package/dist/modes/index.d.ts.map +0 -1
  832. package/dist/modes/index.js.map +0 -1
  833. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  834. package/dist/modes/interactive/components/armin.js.map +0 -1
  835. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  836. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  837. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  838. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  839. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  840. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  841. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  842. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  843. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  844. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  845. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  846. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  847. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  848. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  849. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  850. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  851. package/dist/modes/interactive/components/custom-entry.d.ts.map +0 -1
  852. package/dist/modes/interactive/components/custom-entry.js.map +0 -1
  853. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  854. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  855. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  856. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  857. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  858. package/dist/modes/interactive/components/diff.js.map +0 -1
  859. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  860. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  861. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  862. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  863. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  864. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  865. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  866. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  867. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  868. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  869. package/dist/modes/interactive/components/first-time-setup.d.ts.map +0 -1
  870. package/dist/modes/interactive/components/first-time-setup.js.map +0 -1
  871. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  872. package/dist/modes/interactive/components/footer.js.map +0 -1
  873. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  874. package/dist/modes/interactive/components/index.js.map +0 -1
  875. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  876. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  877. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  878. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  879. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  880. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  881. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  882. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  883. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  884. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  885. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  886. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  887. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  888. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  889. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  890. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  891. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  892. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  893. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  894. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  895. package/dist/modes/interactive/components/status-indicator.d.ts.map +0 -1
  896. package/dist/modes/interactive/components/status-indicator.js.map +0 -1
  897. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  898. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  899. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  900. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  901. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  902. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  903. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  904. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  905. package/dist/modes/interactive/components/trust-selector.d.ts.map +0 -1
  906. package/dist/modes/interactive/components/trust-selector.js.map +0 -1
  907. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  908. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  909. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  910. package/dist/modes/interactive/components/user-message.js.map +0 -1
  911. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  912. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  913. package/dist/modes/interactive/external-editor.d.ts.map +0 -1
  914. package/dist/modes/interactive/external-editor.js.map +0 -1
  915. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  916. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  917. package/dist/modes/interactive/model-search.d.ts.map +0 -1
  918. package/dist/modes/interactive/model-search.js.map +0 -1
  919. package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
  920. package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
  921. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  922. package/dist/modes/interactive/theme/theme.js.map +0 -1
  923. package/dist/modes/print-mode.d.ts.map +0 -1
  924. package/dist/modes/print-mode.js.map +0 -1
  925. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  926. package/dist/modes/rpc/jsonl.js.map +0 -1
  927. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  928. package/dist/modes/rpc/rpc-client.js.map +0 -1
  929. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  930. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  931. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  932. package/dist/modes/rpc/rpc-types.js.map +0 -1
  933. package/dist/package-manager-cli.d.ts.map +0 -1
  934. package/dist/package-manager-cli.js.map +0 -1
  935. package/dist/rpc-entry.d.ts.map +0 -1
  936. package/dist/rpc-entry.js.map +0 -1
  937. package/dist/utils/ansi.d.ts.map +0 -1
  938. package/dist/utils/ansi.js.map +0 -1
  939. package/dist/utils/changelog.d.ts.map +0 -1
  940. package/dist/utils/changelog.js.map +0 -1
  941. package/dist/utils/child-process.d.ts.map +0 -1
  942. package/dist/utils/child-process.js.map +0 -1
  943. package/dist/utils/clipboard-image.d.ts.map +0 -1
  944. package/dist/utils/clipboard-image.js.map +0 -1
  945. package/dist/utils/clipboard-native.d.ts.map +0 -1
  946. package/dist/utils/clipboard-native.js.map +0 -1
  947. package/dist/utils/clipboard.d.ts.map +0 -1
  948. package/dist/utils/clipboard.js.map +0 -1
  949. package/dist/utils/deprecation.d.ts.map +0 -1
  950. package/dist/utils/deprecation.js.map +0 -1
  951. package/dist/utils/exif-orientation.d.ts.map +0 -1
  952. package/dist/utils/exif-orientation.js.map +0 -1
  953. package/dist/utils/frontmatter.d.ts.map +0 -1
  954. package/dist/utils/frontmatter.js.map +0 -1
  955. package/dist/utils/fs-watch.d.ts.map +0 -1
  956. package/dist/utils/fs-watch.js.map +0 -1
  957. package/dist/utils/git.d.ts.map +0 -1
  958. package/dist/utils/git.js.map +0 -1
  959. package/dist/utils/html.d.ts.map +0 -1
  960. package/dist/utils/html.js.map +0 -1
  961. package/dist/utils/image-convert.d.ts.map +0 -1
  962. package/dist/utils/image-convert.js.map +0 -1
  963. package/dist/utils/image-process.d.ts.map +0 -1
  964. package/dist/utils/image-process.js.map +0 -1
  965. package/dist/utils/image-resize-core.d.ts.map +0 -1
  966. package/dist/utils/image-resize-core.js.map +0 -1
  967. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  968. package/dist/utils/image-resize-worker.js.map +0 -1
  969. package/dist/utils/image-resize.d.ts.map +0 -1
  970. package/dist/utils/image-resize.js.map +0 -1
  971. package/dist/utils/json.d.ts.map +0 -1
  972. package/dist/utils/json.js.map +0 -1
  973. package/dist/utils/mime.d.ts.map +0 -1
  974. package/dist/utils/mime.js.map +0 -1
  975. package/dist/utils/open-browser.d.ts.map +0 -1
  976. package/dist/utils/open-browser.js.map +0 -1
  977. package/dist/utils/paths.d.ts.map +0 -1
  978. package/dist/utils/paths.js.map +0 -1
  979. package/dist/utils/photon.d.ts.map +0 -1
  980. package/dist/utils/photon.js.map +0 -1
  981. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  982. package/dist/utils/pi-user-agent.js.map +0 -1
  983. package/dist/utils/shell.d.ts.map +0 -1
  984. package/dist/utils/shell.js.map +0 -1
  985. package/dist/utils/sleep.d.ts.map +0 -1
  986. package/dist/utils/sleep.js.map +0 -1
  987. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  988. package/dist/utils/syntax-highlight.js.map +0 -1
  989. package/dist/utils/thinking-tags.d.ts.map +0 -1
  990. package/dist/utils/thinking-tags.js.map +0 -1
  991. package/dist/utils/tools-manager.d.ts.map +0 -1
  992. package/dist/utils/tools-manager.js.map +0 -1
  993. package/dist/utils/version-check.d.ts.map +0 -1
  994. package/dist/utils/version-check.js.map +0 -1
  995. package/dist/utils/windows-self-update.d.ts.map +0 -1
  996. package/dist/utils/windows-self-update.js.map +0 -1
@@ -13,7 +13,6 @@
13
13
 
14
14
  import { afterEach, describe, it } from "node:test";
15
15
  import assert from "node:assert/strict";
16
- import * as fs from "node:fs";
17
16
  import * as os from "node:os";
18
17
  import * as path from "node:path";
19
18
  import { tryImport } from "../support/helpers.ts";
@@ -24,17 +23,6 @@ const piAi = await tryImport<unknown>("@earendil-works/pi-ai");
24
23
  const available = Boolean(piCodingAgent && piAi);
25
24
 
26
25
  const CHILD_MARKER = "CHILD_REAL_SESSION_OK";
27
-
28
- /**
29
- * Reference-first tool results: completion content carries "Output saved to:
30
- * <path> (…)". Read the durable file to inspect the full child output.
31
- */
32
- function readSavedOutput(text: string): string {
33
- const rest = text.split("Output saved to: ")[1];
34
- assert.ok(rest, `expected a saved-output reference in: ${text.slice(0, 160)}`);
35
- const outputPath = rest.split(" (")[0]!;
36
- return fs.readFileSync(outputPath, "utf-8");
37
- }
38
26
  // Env vars the runner must clear so a parent that was itself spawned as a
39
27
  // subagent child can still launch fresh children. The values are deliberately
40
28
  // bogus sentinels (nonexistent paths) so a leaked value would break spawning.
@@ -49,7 +37,7 @@ const ISOLATED_ENV_KEYS = [
49
37
  "SELESAI_SUBAGENT_EXTRA_AGENT_DIRS",
50
38
  "SELESAI_SUBAGENT_PARENT_SESSION",
51
39
  "SELESAI_SUBAGENT_PI_BINARY",
52
- "SELESAI_SUBAGENTS_SELESAI_CODING_AGENT_PACKAGE_ROOT",
40
+ "SELESAI_SUBAGENTS_SELESAI_PACKAGE_ROOT",
53
41
  ] as const;
54
42
 
55
43
  describe("real Pi-session subagent E2E", { skip: !available ? "pi runtime packages not available" : undefined }, () => {
@@ -60,10 +48,10 @@ describe("real Pi-session subagent E2E", { skip: !available ? "pi runtime packag
60
48
  run = undefined;
61
49
  });
62
50
 
63
- it("loads requested extension tools in direct and chain children and diagnoses missing providers", async () => {
51
+ it("loads requested extension tools in direct and workflow children and diagnoses missing providers", async () => {
64
52
  const { runRealSubagentSession, subagentCall, subagentToolResults } = await import("../support/real-session-runner.ts");
65
53
  const extensionAgent = `---
66
- name: extension-worker
54
+ name: extension-builder
67
55
  description: Uses a child-only fixture tool
68
56
  tools: read, fixture_search
69
57
  subagentOnlyExtensions: ./fixture-extension.ts
@@ -71,7 +59,7 @@ completionGuard: false
71
59
  ---
72
60
  Use the available tools.`;
73
61
  const missingAgent = `---
74
- name: missing-extension-worker
62
+ name: missing-extension-builder
75
63
  description: Requests an extension tool without loading its provider
76
64
  tools: read, missing_search
77
65
  completionGuard: false
@@ -88,41 +76,42 @@ Use the available tools.`;
88
76
  }`;
89
77
 
90
78
  run = await runRealSubagentSession({
91
- prompt: "Run the direct, chain, and missing-provider child checks.",
79
+ prompt: "Run the direct, workflow, and missing-provider child checks.",
92
80
  childText: CHILD_MARKER,
93
81
  reportChildTools: true,
94
82
  projectFiles: {
95
- ".selesai/agents/extension-worker.md": extensionAgent,
96
- ".selesai/agents/missing-extension-worker.md": missingAgent,
83
+ ".selesai/agents/extension-builder.md": extensionAgent,
84
+ ".selesai/agents/missing-extension-builder.md": missingAgent,
97
85
  "fixture-extension.ts": fixtureExtension,
98
86
  },
99
87
  respond(context) {
100
88
  const resultCount = (context.messages as Array<{ role?: string; toolName?: string }>).filter((message) => message.role === "toolResult" && message.toolName === "subagent").length;
101
89
  if (resultCount === 0) {
102
- return subagentCall({ agent: "extension-worker", task: "Report active tools.", context: "fresh", agentScope: "project" }, "call-direct-extension");
90
+ return subagentCall({ agent: "extension-builder", task: "Report active tools.", context: "fresh", async: false, clarify: false, agentScope: "project" }, "call-direct-extension");
103
91
  }
104
92
  if (resultCount === 1) {
105
- return subagentCall({ chain: [{ agent: "extension-worker", task: "Report active tools." }], async: false, clarify: false, agentScope: "project" }, "call-chain-extension");
106
- }
107
- if (resultCount === 2) {
108
93
  return subagentCall({
109
- chain: [{
110
- agent: "extension-worker",
111
- task: "Submit the required structured marker.",
112
- outputSchema: {
113
- type: "object",
114
- properties: { marker: { type: "string" } },
115
- required: ["marker"],
116
- additionalProperties: false,
94
+ workflowScript: `return await runs.all([
95
+ { key: "extension", agent: "extension-builder", task: "Report active tools." },
96
+ {
97
+ key: "structured",
98
+ agent: "extension-builder",
99
+ task: "Submit the required structured marker.",
100
+ outputSchema: {
101
+ type: "object",
102
+ properties: { marker: { type: "string" } },
103
+ required: ["marker"],
104
+ additionalProperties: false,
105
+ },
117
106
  },
118
- }],
107
+ ]);`,
119
108
  async: false,
120
109
  clarify: false,
121
110
  agentScope: "project",
122
- }, "call-structured-output");
111
+ }, "call-workflow-extension");
123
112
  }
124
- if (resultCount === 3) {
125
- return subagentCall({ agent: "missing-extension-worker", task: "Report active tools.", context: "fresh", agentScope: "project" }, "call-missing-extension");
113
+ if (resultCount === 2) {
114
+ return subagentCall({ agent: "missing-extension-builder", task: "Report active tools.", context: "fresh", async: false, clarify: false, agentScope: "project" }, "call-missing-extension");
126
115
  }
127
116
  return "Child tool checks complete.";
128
117
  },
@@ -131,26 +120,21 @@ Use the available tools.`;
131
120
 
132
121
  const results = subagentToolResults(run.parentSession);
133
122
  const toolMessages = run.parentSession.messages.filter((message) => message.role === "toolResult" && (message as { toolName?: string }).toolName === "subagent");
134
- const chainDetails = JSON.stringify((toolMessages[1] as { details?: unknown } | undefined)?.details);
135
- const structuredDetails = JSON.stringify((toolMessages[2] as { details?: unknown } | undefined)?.details);
136
- assert.equal(results.length, 4);
137
- const directOutput = readSavedOutput(results[0] ?? "");
138
- assert.match(directOutput, /ACTIVE_TOOLS:[^\n]*fixture_search/);
139
- assert.match(directOutput, /ACTIVE_TOOLS:[^\n]*read/);
140
- const chainFirstChild = (toolMessages[1] as { details?: { results?: Array<{ savedOutputPath?: string }> } } | undefined)?.details?.results?.[0];
141
- assert.ok(chainFirstChild?.savedOutputPath, "chain details should carry the saved output path");
142
- const chainOutput = fs.readFileSync(chainFirstChild.savedOutputPath, "utf-8");
143
- assert.match(chainOutput, /ACTIVE_TOOLS:[^\n]*fixture_search/);
144
- assert.match(chainOutput, /ACTIVE_TOOLS:[^\n]*read/);
145
- assert.match(structuredDetails, /STRUCTURED_OUTPUT_OK/);
146
- assert.match(results[3] ?? "", /requested unavailable child tools: missing_search/);
147
- assert.match(results[3] ?? "", /subagentOnlyExtensions/);
123
+ const workflowDetails = JSON.stringify((toolMessages[1] as { details?: unknown } | undefined)?.details);
124
+ assert.equal(results.length, 3);
125
+ assert.match(results[0] ?? "", /ACTIVE_TOOLS:[^\n]*fixture_search/);
126
+ assert.match(results[0] ?? "", /ACTIVE_TOOLS:[^\n]*read/);
127
+ assert.match(workflowDetails, /ACTIVE_TOOLS:[^\n]*fixture_search/);
128
+ assert.match(workflowDetails, /ACTIVE_TOOLS:[^\n]*read/);
129
+ assert.match(workflowDetails, /STRUCTURED_OUTPUT_OK/);
130
+ assert.match(results[2] ?? "", /requested unavailable child tools: missing_search/);
131
+ assert.match(results[2] ?? "", /subagentOnlyExtensions/);
148
132
  });
149
133
 
150
134
  it("accepts child tools registered by async before_agent_start hooks", async () => {
151
135
  const { runRealSubagentSession, subagentCall, subagentToolResults } = await import("../support/real-session-runner.ts");
152
136
  const asyncExtensionAgent = `---
153
- name: async-extension-worker
137
+ name: async-extension-builder
154
138
  description: Uses a child-only tool registered from before_agent_start
155
139
  tools: read, fixture_async_search
156
140
  subagentOnlyExtensions: ./fixture-async-extension.ts
@@ -175,21 +159,20 @@ Report active tools.`;
175
159
  childText: CHILD_MARKER,
176
160
  reportChildTools: true,
177
161
  projectFiles: {
178
- ".selesai/agents/async-extension-worker.md": asyncExtensionAgent,
162
+ ".selesai/agents/async-extension-builder.md": asyncExtensionAgent,
179
163
  "fixture-async-extension.ts": fixtureAsyncExtension,
180
164
  },
181
165
  respond(context) {
182
166
  const resultCount = (context.messages as Array<{ role?: string; toolName?: string }>).filter((message) => message.role === "toolResult" && message.toolName === "subagent").length;
183
167
  if (resultCount > 0) return "Async child tool check complete.";
184
- return subagentCall({ agent: "async-extension-worker", task: "Report active tools.", context: "fresh", agentScope: "project" }, "call-async-extension");
168
+ return subagentCall({ agent: "async-extension-builder", task: "Report active tools.", context: "fresh", async: false, clarify: false, agentScope: "project" }, "call-async-extension");
185
169
  },
186
170
  timeoutMs: 60_000,
187
171
  });
188
172
 
189
173
  const results = subagentToolResults(run.parentSession);
190
174
  assert.equal(results.length, 1);
191
- const asyncOutput = readSavedOutput(results[0] ?? "");
192
- assert.match(asyncOutput, /ACTIVE_TOOLS:[^\n]*fixture_async_search/);
175
+ assert.match(results[0] ?? "", /ACTIVE_TOOLS:[^\n]*fixture_async_search/);
193
176
  assert.doesNotMatch(results[0] ?? "", /requested unavailable child tools/);
194
177
  });
195
178
 
@@ -204,7 +187,7 @@ Report active tools.`;
204
187
  process.env.SELESAI_SUBAGENT_EXTRA_AGENT_DIRS = BOGUS_EXTRA_DIRS;
205
188
  process.env.SELESAI_SUBAGENT_PARENT_SESSION = "polluted-parent";
206
189
  process.env.SELESAI_SUBAGENT_PI_BINARY = BOGUS_PI_BINARY;
207
- process.env.SELESAI_SUBAGENTS_SELESAI_CODING_AGENT_PACKAGE_ROOT = BOGUS_PI_PACKAGE_ROOT;
190
+ process.env.SELESAI_SUBAGENTS_SELESAI_PACKAGE_ROOT = BOGUS_PI_PACKAGE_ROOT;
208
191
 
209
192
  try {
210
193
  run = await runRealSubagentSession({
@@ -216,6 +199,8 @@ Report active tools.`;
216
199
  agent: "builder",
217
200
  task: "Return the marker from the faux child provider.",
218
201
  context: "fresh",
202
+ async: false,
203
+ clarify: false,
219
204
  agentScope: "project",
220
205
  },
221
206
  }),
@@ -223,7 +208,7 @@ Report active tools.`;
223
208
 
224
209
  const toolResults = subagentToolResults(run.parentSession);
225
210
  assert.equal(toolResults.length, 1);
226
- assert.match(readSavedOutput(toolResults[0]!), new RegExp(CHILD_MARKER));
211
+ assert.match(toolResults[0]!, new RegExp(CHILD_MARKER));
227
212
  assert.match(run.responseText, new RegExp(CHILD_MARKER));
228
213
  assert.doesNotMatch(run.responseText, /CHILD_MISSING/);
229
214
  assert.ok(run.modelCalls >= 2, `expected parent tool-call and final turns, got ${run.modelCalls}`);
@@ -236,92 +221,4 @@ Report active tools.`;
236
221
  }
237
222
  }
238
223
  });
239
-
240
- function latestSubagentToolResultText(messages: Array<{ role?: string; toolName?: string; content?: unknown }>): string | undefined {
241
- for (let i = messages.length - 1; i >= 0; i--) {
242
- const message = messages[i]!;
243
- if (message.role === "toolResult" && message.toolName === "subagent") {
244
- return Array.isArray(message.content)
245
- ? message.content
246
- .map((part) => part && typeof part === "object" && (part as { type?: unknown }).type === "text"
247
- ? String((part as { text?: unknown }).text ?? "")
248
- : "")
249
- .join("")
250
- : "";
251
- }
252
- }
253
- return undefined;
254
- }
255
-
256
- it("lists then delegates to a non-bundled discovered writer in a broad-mutation request", async () => {
257
- const { runRealSubagentSession, subagentCall, subagentToolResults } = await import("../support/real-session-runner.ts");
258
- const writerAgent = `---
259
- name: fixture-writer
260
- description: Scoped mutation-capable fixture writer
261
- aliases: fw
262
- tools: read, grep, find, ls, bash, edit, write
263
- acceptanceRole: writer
264
- defaultContext: fork
265
- completionGuard: false
266
- ---
267
- Implement the scoped fixture change and return the marker.`;
268
-
269
- run = await runRealSubagentSession({
270
- prompt: "Implement the fixture change across the codebase.",
271
- childText: CHILD_MARKER,
272
- projectFiles: {
273
- ".selesai/agents/fixture-writer.md": writerAgent,
274
- },
275
- respond(context) {
276
- const messages = context.messages as Array<{ role?: string; toolName?: string; content?: unknown; details?: unknown }>;
277
- const subagentResults = messages.filter((message) => message.role === "toolResult" && message.toolName === "subagent");
278
- if (subagentResults.length === 0) {
279
- return subagentCall({ action: "list", agentScope: "project" }, "call-list-writer");
280
- }
281
- if (subagentResults.length === 1) {
282
- const listText = latestSubagentToolResultText(messages) ?? "";
283
- assert.match(
284
- listText,
285
- /- fixture-writer \(project, context: fork, role: writer, aliases: fw, tools: read, grep, find, ls, bash, edit, write\)/,
286
- "catalog must expose the custom writer with its runtime metadata",
287
- );
288
- const listedDetails = JSON.stringify(subagentResults.at(-1)?.details ?? {});
289
- assert.match(listedDetails, /"catalog"/);
290
- assert.match(listedDetails, /"fixture-writer"/);
291
- assert.match(listedDetails, /"acceptanceRole":"writer"/);
292
- return subagentCall(
293
- { agent: "fixture-writer", task: "Implement the change and return the marker.", context: "fresh", agentScope: "project" },
294
- "call-fixture-writer",
295
- );
296
- }
297
- return "Broad mutation work complete.";
298
- },
299
- timeoutMs: 60_000,
300
- });
301
-
302
- const results = subagentToolResults(run.parentSession);
303
- assert.equal(results.length, 2);
304
- assert.match(results[0] ?? "", /fixture-writer \(project, context: fork, role: writer/);
305
- assert.match(readSavedOutput(results[1] ?? ""), new RegExp(CHILD_MARKER));
306
- });
307
-
308
- it("keeps tiny targeted reads local without a subagent call", async () => {
309
- const { runRealSubagentSession, subagentToolResults } = await import("../support/real-session-runner.ts");
310
- run = await runRealSubagentSession({
311
- prompt: "What does the README say about subagents?",
312
- childText: CHILD_MARKER,
313
- projectFiles: {
314
- "README.md": "Subagents are delegated workers.",
315
- },
316
- respond() {
317
- return "The README says: Subagents are delegated workers.";
318
- },
319
- timeoutMs: 60_000,
320
- });
321
-
322
- const results = subagentToolResults(run.parentSession);
323
- assert.equal(results.length, 0);
324
- assert.match(run.responseText, /Subagents are delegated workers/);
325
- assert.ok(run.modelCalls >= 1, `expected at least one parent turn, got ${run.modelCalls}`);
326
- });
327
224
  });
@@ -158,7 +158,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
158
158
  const outputPath = path.join(tempDir, "report.md");
159
159
  conflictingReportsCall(outputPath, "satisfied", "not-satisfied");
160
160
 
161
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
161
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
162
162
  runId: "acceptance-file-only",
163
163
  outputPath,
164
164
  outputMode: "file-only",
@@ -179,7 +179,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
179
179
  writeFiles: [{ path: outputPath, content: fileReport }],
180
180
  });
181
181
 
182
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
182
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
183
183
  runId: "acceptance-foreground-saved-receipt",
184
184
  outputPath,
185
185
  outputMode: "file-only",
@@ -203,7 +203,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
203
203
  const artifactsDir = path.join(tempDir, "report-only-artifacts");
204
204
  mockPi.onCall({ output: acceptanceReport("satisfied", "report-only evidence") });
205
205
 
206
- const result = await runSync!(tempDir, [makeAgent("worker", { completionGuard: false })], "worker", "Implement and report the fix.", {
206
+ const result = await runSync!(tempDir, [makeAgent("builder", { completionGuard: false })], "builder", "Implement and report the fix.", {
207
207
  runId: "acceptance-report-only",
208
208
  acceptance: { level: "checked", criteria: ["Report the findings"] },
209
209
  artifactsDir,
@@ -225,7 +225,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
225
225
  const artifactsDir = path.join(tempDir, "rejected-artifacts");
226
226
  conflictingReportsCall(outputPath, "satisfied", "not-satisfied");
227
227
 
228
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
228
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
229
229
  runId: "acceptance-inline-text-first",
230
230
  outputPath,
231
231
  acceptance: { level: "checked", criteria: ["Report the findings"] },
@@ -248,7 +248,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
248
248
  const outputPath = path.join(tempDir, "report.md");
249
249
  conflictingReportsCall(outputPath, "not-satisfied", "satisfied");
250
250
 
251
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
251
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
252
252
  runId: "acceptance-inline-file-fallback-only",
253
253
  outputPath,
254
254
  acceptance: { level: "checked", criteria: ["Report the findings"] },
@@ -281,7 +281,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
281
281
  ],
282
282
  });
283
283
 
284
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
284
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
285
285
  runId: "acceptance-failed-write",
286
286
  outputPath,
287
287
  outputMode: "file-only",
@@ -304,7 +304,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
304
304
  writeFiles: [{ path: outputPath, content: malformedReport }],
305
305
  });
306
306
 
307
- const result = await runSync!(tempDir, makeAgentConfigs(["worker"]), "worker", "Write the findings report.", {
307
+ const result = await runSync!(tempDir, makeAgentConfigs(["builder"]), "builder", "Write the findings report.", {
308
308
  runId: "acceptance-malformed-file-report",
309
309
  outputPath,
310
310
  outputMode: "file-only",
@@ -313,16 +313,16 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
313
313
 
314
314
  assert.equal(result.acceptance?.status, "rejected");
315
315
  assert.equal(result.exitCode, 1);
316
- assert.match(result.error ?? "", /Empty or unterminated acceptance-report fence.*configured output/);
316
+ assert.match(result.error ?? "", /Failed to parse acceptance-report: Expected property name.*configured output/);
317
317
  });
318
318
  });
319
319
 
320
320
  describe("background runner", { skip: isAsyncAvailable && !isAsyncAvailable() ? "jiti not available" : undefined }, () => {
321
321
  function runAsyncSingle(id: string, outputPath: string, outputMode: "inline" | "file-only", artifactConfig = DISABLED_ARTIFACTS) {
322
322
  executeAsyncSingle!(id, {
323
- agent: "worker",
323
+ agent: "builder",
324
324
  task: "Write the findings report.",
325
- agentConfig: makeAgent("worker", { completionGuard: false }),
325
+ agentConfig: makeAgent("builder", { completionGuard: false }),
326
326
  ctx: { pi: { events: { emit() {} } }, cwd: tempDir, currentSessionId: "session-file-report" },
327
327
  artifactConfig,
328
328
  artifactsDir: path.join(tempDir, ".pi-subagents", "artifacts"),
@@ -350,7 +350,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
350
350
 
351
351
  it("file-only mode persists async acceptance metadata when final assistant text is only a receipt", async () => {
352
352
  const outputPath = path.join(tempDir, "saved-review.md");
353
- const fileReport = `# Review\n${acceptanceReport("satisfied", "saved reviewer verdict")}`;
353
+ const fileReport = `# Review\n${acceptanceReport("satisfied", "saved commentator verdict")}`;
354
354
  mockPi.onCall({
355
355
  jsonl: [...events.completedWrite(outputPath, fileReport), events.assistantMessage("Output saved to the configured file.")],
356
356
  writeFiles: [{ path: outputPath, content: fileReport }],
@@ -361,12 +361,12 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
361
361
  const payload = await waitForAsyncResult(id);
362
362
  assert.equal(payload.success, true);
363
363
  assert.equal(payload.results[0]?.acceptance?.status, "checked");
364
- assert.equal(payload.results[0]?.acceptance?.childReport?.criteriaSatisfied?.[0]?.evidence, "saved reviewer verdict");
364
+ assert.equal(payload.results[0]?.acceptance?.childReport?.criteriaSatisfied?.[0]?.evidence, "saved commentator verdict");
365
365
  const metadataPath = payload.results[0]?.artifactPaths?.metadataPath;
366
366
  assert.ok(metadataPath);
367
367
  const metadata = JSON.parse(fs.readFileSync(metadataPath, "utf-8")) as { acceptance?: AcceptanceSummary };
368
368
  assert.equal(metadata.acceptance?.status, "checked");
369
- assert.equal(metadata.acceptance?.childReport?.criteriaSatisfied?.[0]?.evidence, "saved reviewer verdict");
369
+ assert.equal(metadata.acceptance?.childReport?.criteriaSatisfied?.[0]?.evidence, "saved commentator verdict");
370
370
  });
371
371
 
372
372
  it("inline mode accepts from the text report and strips fences from the resolved file output", async () => {
@@ -405,7 +405,7 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
405
405
  tempArtifactsDir: tempDir,
406
406
  getSubagentSessionRoot: () => tempDir,
407
407
  expandTilde: (p: string) => p,
408
- discoverAgents: () => ({ agents: [makeAgent("worker", { completionGuard: false })] }),
408
+ discoverAgents: () => ({ agents: [makeAgent("builder", { completionGuard: false })] }),
409
409
  });
410
410
 
411
411
  const acceptance = { level: "checked", criteria: ["Report the findings"] };
@@ -413,8 +413,8 @@ describe("acceptance file reports", { skip: !runSync ? "pi packages not availabl
413
413
  "acceptance-parallel-files",
414
414
  {
415
415
  tasks: [
416
- { agent: "worker", task: "Alpha task: write the report.", output: alphaPath, outputMode: "file-only", acceptance },
417
- { agent: "worker", task: "Beta task: write the report.", output: betaPath, outputMode: "file-only", acceptance },
416
+ { agent: "builder", task: "Alpha task: write the report.", output: alphaPath, outputMode: "file-only", acceptance },
417
+ { agent: "builder", task: "Beta task: write the report.", output: betaPath, outputMode: "file-only", acceptance },
418
418
  ],
419
419
  async: true,
420
420
  clarify: false,