@selesai/code 0.13.3 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli/credential-print.js +4 -4
  3. package/dist/cli.js +0 -0
  4. package/dist/core/compaction/utils.js +2 -2
  5. package/dist/core/export-html/template.css +1066 -1066
  6. package/dist/core/export-html/template.html +55 -55
  7. package/dist/core/export-html/template.js +1864 -1864
  8. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  9. package/dist/core/export-html/vendor/marked.min.js +78 -78
  10. package/dist/core/messages.js +7 -7
  11. package/dist/defaults/models.json +17 -1
  12. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  13. package/dist/extensions/context-compaction-reminder.ts +28 -28
  14. package/dist/extensions/cost-reconcile.test.ts +24 -5
  15. package/dist/extensions/cost-reconcile.ts +14 -7
  16. package/dist/extensions/pi-hermes-memory/scripts/check-min-sdk.mjs +0 -0
  17. package/dist/extensions/pi-hermes-memory/tests/run-all.sh +0 -0
  18. package/dist/extensions/pi-intercom/CHANGELOG.md +13 -0
  19. package/dist/extensions/pi-intercom/LICENSE +21 -21
  20. package/dist/extensions/pi-intercom/README.md +4 -5
  21. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  22. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  23. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  24. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  25. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  26. package/dist/extensions/pi-intercom/config.test.ts +3 -31
  27. package/dist/extensions/pi-intercom/config.ts +0 -15
  28. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  29. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  30. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  31. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  32. package/dist/extensions/pi-intercom/index.ts +9 -46
  33. package/dist/extensions/pi-intercom/intercom.integration.test.ts +49 -57
  34. package/dist/extensions/pi-intercom/package.json +1 -1
  35. package/dist/extensions/pi-intercom/reply-tracker.test.ts +20 -0
  36. package/dist/extensions/pi-intercom/reply-tracker.ts +8 -0
  37. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  38. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  39. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  40. package/dist/extensions/pi-subagents/CHANGELOG.md +27 -0
  41. package/dist/extensions/pi-subagents/docs/tool-reference.md +4 -1
  42. package/dist/extensions/pi-subagents/docs/workflows.md +2 -2
  43. package/dist/extensions/pi-subagents/install.mjs +0 -0
  44. package/dist/extensions/pi-subagents/package-lock.json +2 -2
  45. package/dist/extensions/pi-subagents/package.json +1 -1
  46. package/dist/extensions/pi-subagents/skills/council-mode/SKILL.md +48 -243
  47. package/dist/extensions/pi-subagents/skills/council-mode/references/pass-contracts.md +150 -0
  48. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +87 -37
  49. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +29 -233
  50. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +49 -8
  51. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +2 -2
  52. package/dist/extensions/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +13 -1
  53. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +34 -27
  54. package/dist/extensions/pi-subagents/skills/pi-subagents/references/review-and-validation.md +73 -0
  55. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +157 -28
  56. package/dist/extensions/pi-subagents/src/api/shared-types.ts +2 -0
  57. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +1 -0
  58. package/dist/extensions/pi-subagents/src/extension/schemas.ts +1 -0
  59. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +4 -1
  60. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +2 -2
  61. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +3 -0
  62. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +45 -2
  63. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +3 -2
  64. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +13 -2
  65. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +5 -1
  66. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +10 -2
  67. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +3 -0
  68. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +11 -2
  69. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +98 -1
  70. package/dist/extensions/pi-subagents/src/runs/shared/async-status-projection.ts +138 -4
  71. package/dist/extensions/pi-subagents/src/runs/shared/background-process-options.ts +9 -0
  72. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-grant.ts +2 -5
  73. package/dist/extensions/pi-subagents/src/runs/shared/mutation-evidence.ts +52 -3
  74. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +47 -1
  75. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +45 -18
  76. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +21 -2
  77. package/dist/extensions/pi-subagents/src/runs/shared/workflow-graph.ts +15 -0
  78. package/dist/extensions/pi-subagents/src/shared/types.ts +34 -1
  79. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +11 -3
  80. package/dist/extensions/pi-subagents/src/tui/render-helpers.ts +31 -0
  81. package/dist/extensions/pi-subagents/src/tui/render.ts +597 -112
  82. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +40 -1
  83. package/dist/extensions/pi-subagents/src/workflows/host-command.ts +6 -1
  84. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +53 -2
  85. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +55 -6
  86. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +111 -1
  87. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +206 -38
  88. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +522 -31
  89. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +123 -0
  90. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +48 -0
  91. package/dist/extensions/pi-subagents/test/unit/async-status-projection.test.ts +57 -1
  92. package/dist/extensions/pi-subagents/test/unit/background-process-options.test.ts +17 -0
  93. package/dist/extensions/pi-subagents/test/unit/external-cli-runner.test.ts +1 -1
  94. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +44 -4
  95. package/dist/extensions/pi-subagents/test/unit/fork-cache-key.test.ts +91 -0
  96. package/dist/extensions/pi-subagents/test/unit/host-command.test.ts +1 -0
  97. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +0 -1
  98. package/dist/extensions/pi-subagents/test/unit/mcp-direct-tool-grant.test.ts +20 -3
  99. package/dist/extensions/pi-subagents/test/unit/mutation-evidence.test.ts +27 -0
  100. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +93 -17
  101. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +1 -0
  102. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +103 -26
  103. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +58 -0
  104. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +22 -2
  105. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +21 -0
  106. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +13 -0
  107. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +54 -0
  108. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +2 -0
  109. package/dist/extensions/pi-subagents/test/unit/wait-completions.test.ts +32 -0
  110. package/dist/extensions/pi-subagents/test/unit/watchdog-change-signature.test.ts +48 -1
  111. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +21 -6
  112. package/dist/extensions/pi-subagents/test/unit/windows-hide-spawn.test.ts +11 -0
  113. package/dist/extensions/pi-web-agent/CHANGELOG.md +410 -0
  114. package/dist/extensions/pi-web-agent/README.md +131 -0
  115. package/dist/extensions/pi-web-agent/package.json +4 -2
  116. package/dist/extensions/pi-web-agent/src/backends/config.ts +62 -5
  117. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -0
  118. package/dist/extensions/pi-web-agent/src/backends/factory.ts +96 -6
  119. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  120. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  121. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  122. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +183 -47
  123. package/dist/extensions/pi-web-agent/src/extension.ts +62 -25
  124. package/dist/extensions/pi-web-agent/src/extract/readability.ts +19 -11
  125. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  126. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  127. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  128. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  129. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  130. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +5 -4
  131. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +2 -25
  132. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +5 -2
  133. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +2 -0
  134. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  135. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  136. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +72 -7
  137. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +8 -1
  138. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +28 -3
  139. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +4 -0
  140. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  141. package/dist/extensions/pi-web-agent/src/orchestration/url.ts +35 -0
  142. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  143. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  144. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +18 -6
  145. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  146. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +14 -2
  147. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  148. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  149. package/dist/extensions/pi-web-agent/src/readers/github-reader.ts +150 -0
  150. package/dist/extensions/pi-web-agent/src/readers/limits.ts +3 -0
  151. package/dist/extensions/pi-web-agent/src/readers/pdf-reader.ts +87 -0
  152. package/dist/extensions/pi-web-agent/src/readers/resolver.ts +25 -0
  153. package/dist/extensions/pi-web-agent/src/readers/types.ts +11 -0
  154. package/dist/extensions/pi-web-agent/src/readers/youtube-reader.ts +79 -0
  155. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  156. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +32 -5
  157. package/dist/extensions/pi-web-agent/src/search/exa.ts +109 -0
  158. package/dist/extensions/pi-web-agent/src/search/fanout.ts +154 -0
  159. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  160. package/dist/extensions/pi-web-agent/src/search/tavily.ts +113 -0
  161. package/dist/extensions/pi-web-agent/src/search/youcom.ts +109 -0
  162. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  163. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  164. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  165. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +22 -9
  166. package/dist/extensions/pi-web-agent/src/types.ts +19 -4
  167. package/dist/extensions/pi-zentui/extensions/zentui/format.ts +7 -1
  168. package/dist/extensions/ponytail/package.json +8 -8
  169. package/dist/extensions/question/constants.ts +30 -30
  170. package/dist/extensions/question/helpers.ts +58 -58
  171. package/dist/extensions/question/navigation.ts +14 -14
  172. package/dist/extensions/question/package.json +19 -19
  173. package/dist/extensions/question/selection-mode.ts +46 -46
  174. package/dist/extensions/question/shortcuts.ts +44 -44
  175. package/dist/extensions/question/types.ts +132 -132
  176. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  177. package/dist/extensions/test-resolve-hook.mjs +6 -6
  178. package/dist/extensions/web-agent-onboarding.ts +222 -222
  179. package/dist/package-manager-cli.js +71 -71
  180. package/dist/rpc-entry.js +0 -0
  181. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  182. package/docs/compaction.md +396 -396
  183. package/docs/containerization.md +111 -111
  184. package/docs/development.md +71 -71
  185. package/docs/docs.json +164 -164
  186. package/docs/environment-variables.md +86 -86
  187. package/docs/index.md +83 -83
  188. package/docs/json.md +82 -82
  189. package/docs/models.md +502 -502
  190. package/docs/packages.md +227 -227
  191. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  192. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  193. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  194. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  195. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  196. package/docs/prompt-templates.md +95 -95
  197. package/docs/providers.md +293 -293
  198. package/docs/security.md +59 -59
  199. package/docs/session-format.md +414 -414
  200. package/docs/sessions.md +145 -145
  201. package/docs/shared-host-extensions.md +109 -109
  202. package/docs/shell-aliases.md +13 -13
  203. package/docs/skills.md +231 -231
  204. package/docs/terminal-setup.md +142 -142
  205. package/docs/termux.md +127 -127
  206. package/docs/themes.md +295 -295
  207. package/docs/tmux.md +63 -63
  208. package/docs/tui.md +927 -927
  209. package/docs/windows.md +17 -17
  210. package/examples/README.md +25 -25
  211. package/examples/extensions/README.md +211 -211
  212. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  213. package/examples/extensions/bash-spawn-hook.ts +30 -30
  214. package/examples/extensions/bookmark.ts +50 -50
  215. package/examples/extensions/border-status-editor.ts +150 -150
  216. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  217. package/examples/extensions/claude-rules.ts +86 -86
  218. package/examples/extensions/commands.ts +72 -72
  219. package/examples/extensions/confirm-destructive.ts +59 -59
  220. package/examples/extensions/custom-compaction.ts +130 -130
  221. package/examples/extensions/custom-footer.ts +64 -64
  222. package/examples/extensions/custom-header.ts +73 -73
  223. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  224. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  225. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  226. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  227. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  228. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  229. package/examples/extensions/dirty-repo-guard.ts +56 -56
  230. package/examples/extensions/doom-overlay/README.md +46 -46
  231. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  232. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  233. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  234. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  235. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  236. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  237. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  238. package/examples/extensions/doom-overlay/index.ts +74 -74
  239. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  240. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  241. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  242. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  243. package/examples/extensions/dynamic-resources/index.ts +15 -15
  244. package/examples/extensions/dynamic-tools.ts +74 -74
  245. package/examples/extensions/event-bus.ts +43 -43
  246. package/examples/extensions/file-trigger.ts +41 -41
  247. package/examples/extensions/git-checkpoint.ts +53 -53
  248. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  249. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  250. package/examples/extensions/gondolin/index.ts +531 -531
  251. package/examples/extensions/gondolin/package-lock.json +185 -185
  252. package/examples/extensions/gondolin/package.json +19 -19
  253. package/examples/extensions/handoff.ts +199 -199
  254. package/examples/extensions/hello.ts +26 -26
  255. package/examples/extensions/hidden-thinking-label.ts +53 -53
  256. package/examples/extensions/inline-bash.ts +94 -94
  257. package/examples/extensions/input-transform-streaming.ts +39 -39
  258. package/examples/extensions/input-transform.ts +43 -43
  259. package/examples/extensions/interactive-shell.ts +196 -196
  260. package/examples/extensions/mac-system-theme.ts +47 -47
  261. package/examples/extensions/message-renderer.ts +59 -59
  262. package/examples/extensions/minimal-mode.ts +426 -426
  263. package/examples/extensions/modal-editor.ts +85 -85
  264. package/examples/extensions/model-status.ts +31 -31
  265. package/examples/extensions/notify.ts +55 -55
  266. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  267. package/examples/extensions/overlay-test.ts +153 -153
  268. package/examples/extensions/permission-gate.ts +34 -34
  269. package/examples/extensions/pirate.ts +47 -47
  270. package/examples/extensions/plan-mode/README.md +66 -66
  271. package/examples/extensions/plan-mode/index.ts +390 -390
  272. package/examples/extensions/plan-mode/utils.ts +168 -168
  273. package/examples/extensions/preset.ts +436 -436
  274. package/examples/extensions/project-trust.ts +64 -64
  275. package/examples/extensions/prompt-customizer.ts +97 -97
  276. package/examples/extensions/protected-paths.ts +30 -30
  277. package/examples/extensions/provider-payload.ts +18 -18
  278. package/examples/extensions/qna.ts +122 -122
  279. package/examples/extensions/question.ts +285 -285
  280. package/examples/extensions/questionnaire.ts +448 -448
  281. package/examples/extensions/rainbow-editor.ts +88 -88
  282. package/examples/extensions/reload-runtime.ts +37 -37
  283. package/examples/extensions/rpc-demo.ts +118 -118
  284. package/examples/extensions/sandbox/index.ts +321 -321
  285. package/examples/extensions/sandbox/package-lock.json +92 -92
  286. package/examples/extensions/sandbox/package.json +19 -19
  287. package/examples/extensions/send-user-message.ts +97 -97
  288. package/examples/extensions/session-name.ts +27 -27
  289. package/examples/extensions/shutdown-command.ts +63 -63
  290. package/examples/extensions/snake.ts +343 -343
  291. package/examples/extensions/space-invaders.ts +560 -560
  292. package/examples/extensions/ssh.ts +220 -220
  293. package/examples/extensions/status-line.ts +32 -32
  294. package/examples/extensions/structured-output.ts +65 -65
  295. package/examples/extensions/subagent/README.md +175 -175
  296. package/examples/extensions/subagent/agents/planner.md +37 -37
  297. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  298. package/examples/extensions/subagent/agents/scout.md +50 -50
  299. package/examples/extensions/subagent/agents/worker.md +24 -24
  300. package/examples/extensions/subagent/agents.ts +126 -126
  301. package/examples/extensions/subagent/index.ts +1015 -1015
  302. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  303. package/examples/extensions/subagent/prompts/implement.md +10 -10
  304. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  305. package/examples/extensions/summarize.ts +209 -209
  306. package/examples/extensions/system-prompt-header.ts +17 -17
  307. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  308. package/examples/extensions/timed-confirm.ts +70 -70
  309. package/examples/extensions/titlebar-spinner.ts +58 -58
  310. package/examples/extensions/todo.ts +297 -297
  311. package/examples/extensions/tool-override.ts +144 -144
  312. package/examples/extensions/tools.ts +146 -146
  313. package/examples/extensions/trigger-compact.ts +50 -50
  314. package/examples/extensions/truncated-tool.ts +195 -195
  315. package/examples/extensions/widget-placement.ts +9 -9
  316. package/examples/extensions/with-deps/index.ts +32 -32
  317. package/examples/extensions/with-deps/package-lock.json +31 -31
  318. package/examples/extensions/with-deps/package.json +22 -22
  319. package/examples/extensions/working-indicator.ts +123 -123
  320. package/examples/extensions/working-message-test.ts +25 -25
  321. package/examples/rpc-extension-ui.ts +632 -632
  322. package/examples/sdk/01-minimal.ts +26 -26
  323. package/examples/sdk/02-custom-model.ts +53 -53
  324. package/examples/sdk/03-custom-prompt.ts +75 -75
  325. package/examples/sdk/04-skills.ts +55 -55
  326. package/examples/sdk/05-tools.ts +48 -48
  327. package/examples/sdk/06-extensions.ts +99 -99
  328. package/examples/sdk/07-context-files.ts +47 -47
  329. package/examples/sdk/08-prompt-templates.ts +51 -51
  330. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  331. package/examples/sdk/10-settings.ts +53 -53
  332. package/examples/sdk/11-sessions.ts +52 -52
  333. package/examples/sdk/12-full-control.ts +79 -79
  334. package/examples/sdk/13-session-runtime.ts +67 -67
  335. package/examples/sdk/README.md +144 -144
  336. package/package.json +3 -2
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  364. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  365. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  366. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  367. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  368. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  369. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  370. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  371. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  372. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1261
  373. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  374. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  375. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  376. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  377. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  378. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  379. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  380. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  381. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  382. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  383. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  384. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  385. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  386. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  387. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  388. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  389. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  390. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  391. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  392. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  393. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  394. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  395. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  396. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  397. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  398. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  399. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  400. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  401. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  402. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  403. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  404. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  405. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  406. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  407. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  408. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  409. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  410. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  411. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  412. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  413. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  414. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  415. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  416. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  417. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  418. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  419. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  420. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  421. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  422. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +0 -3
  423. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  424. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  425. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  426. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  427. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  428. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  429. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  430. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  431. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  432. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  433. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  434. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  435. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  436. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  437. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  438. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  439. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  440. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  441. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  442. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  443. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  444. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  445. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  446. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  447. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  448. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  449. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  450. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  451. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  452. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  453. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  454. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  455. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  456. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  457. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  458. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  459. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  460. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  461. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  462. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  463. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  464. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  465. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  466. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  467. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  468. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  469. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  470. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  471. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  472. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  473. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  474. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  475. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  476. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  477. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  478. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  479. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  480. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  481. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  482. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  483. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  484. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  485. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  486. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  487. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  488. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  489. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  490. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  491. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  492. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  493. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  494. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  495. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  496. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  497. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  498. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  499. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  500. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  501. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  502. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  503. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  504. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  505. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  506. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  507. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  508. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  509. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  510. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  511. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +0 -3
@@ -1,282 +1,282 @@
1
- # Phase 2 Plan — Minimize Parent Context from Delegated Work
2
-
3
- ## Verified findings
4
-
5
- - **High — foreground non-intercom results leak full child output:** `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts:3237-3245` aggregates full parallel output; `runSinglePath` returns `finalizeSingleOutput(...).displayOutput`; `compactForegroundDetails()` retains `results[].finalOutput`.
6
- - **High — intercom moves, rather than minimizes, full output:** `src/extensions/pi-subagents/src/intercom/result-intercom.ts:244-269` places full `summary` text in the grouped event. The compact receipt only applies after acknowledged delivery.
7
- - **High — async notifications expose full summaries:** `background/subagent-runner.ts:4135-4146` builds a full-output summary; `background/notify.ts:137-151` sends it as a model-visible `subagent-notify` message.
8
- - **Medium — durable non-debug paths already exist:** explicit `output` persistence in `single-output.ts:173-208` works independently of `artifacts`; async always writes `asyncDir/output-<index>.log`.
9
- - **Medium — chain terminal content is already concise, but details/intercom are not:** `shared/formatters.ts:58-90` emits a chain summary, while `details.results`/`details.outputs` and grouped intercom payloads can retain child text.
10
- - **Medium — file-only is reusable but opt-in:** `finalizeSingleOutput()` emits only `SavedOutputReference.message` for `file-only`; tests cover read-only runtime persistence in `single-execution.test.ts:2478`.
11
-
12
- ## Design decision
13
-
14
- Use the existing `output`, `outputMode: "file-only"`, saved-output reference, async output logs, `status`, transcript, and `resume` mechanisms. Do **not** add a new public “summary delivery” API, new artifact service, or dependency.
15
-
16
- New default policy:
17
-
18
- 1. Every delegated child gets a durable result path unless the caller explicitly uses `output: false`.
19
- 2. Omitted `outputMode` resolves to `file-only` when a result path exists; explicit `outputMode: "inline"` retains legacy full-output delivery.
20
- 3. Full output is persisted independently of `artifacts: true`; debug artifacts remain opt-in.
21
- 4. Successful normal delivery contains references and lifecycle/status information, not child prose.
22
- 5. If persistence or reference reading fails, return a bounded fallback only: first **80 lines / 4 KiB**, prefixed with the persistence error and stating that full output is unavailable. Reuse `truncateOutput`; do not fall back to unbounded output.
23
-
24
- `output: false` remains a compatibility escape hatch: no generated output file and bounded inline delivery. Explicit `outputMode: "file-only"` plus `output: false` remains a pre-spawn validation error.
25
-
26
- ## Data contract
27
-
28
- No new public tool parameter is required.
29
-
30
- | Field/surface | Contract |
31
- |---|---|
32
- | `SingleResult.savedOutputPath` / `outputReference` | Authoritative full-output location and byte/line metadata. Present for generated or explicit saved outputs, including failed children that produced output. |
33
- | `SingleResult.finalOutput` | `Output saved to: …` reference for default/file-only delivery; bounded fallback only when persistence failed; full text only with explicit `outputMode:"inline"`. |
34
- | `Details.results[]` | Terminal parent-facing details must omit raw `messages`, raw `finalOutput`, `truncation`, and chain `outputs` text. Keep status, error, output reference/path, session, transcript, acceptance, and compact tool-call metadata. |
35
- | Foreground tool-result `content` | Compact run receipt/reference list. No child prose by default. |
36
- | Intercom payload child `summary` | Saved-output/async-log reference plus process status; never full child output by default. |
37
- | Async `result.json` | May retain internal result text until watcher delivery, but parent-facing notifier/intercom delivery must use references to `asyncDir/output-<index>.log` or explicit saved outputs. |
38
- | Failure fallback | A bounded context slice with the write/read error and intended path. It must not claim a full artifact exists. |
39
-
40
- ## Ordered implementation tasks
41
-
42
- ### 1. Make saved-output persistence usable for default and failed delivery
43
-
44
- **Discovery**
45
- - Re-read `runs/shared/single-output.ts`, especially `resolveSingleOutput()` and `finalizeSingleOutput()`.
46
- - Trace all callers in `foreground/execution.ts` and background runner step execution before editing.
47
- - Confirm async `output-<index>.log` contains the child’s final output, not merely progress.
48
-
49
- **Files**
50
- - Modify `src/extensions/pi-subagents/src/runs/shared/single-output.ts`.
51
- - Modify `src/extensions/pi-subagents/src/runs/foreground/execution.ts`.
52
- - Update `src/extensions/pi-subagents/test/unit/single-output.test.ts`.
53
- - Update focused cases in `test/integration/single-execution.test.ts`.
54
-
55
- **Change**
56
- - Export a small internal context-fallback limit (`bytes: 4096`, `lines: 80`) beside existing output helpers; reuse existing `truncateOutput()`.
57
- - Add a formatter that produces a bounded persistence-failure fallback containing:
58
- - process error/status,
59
- - intended output path,
60
- - persistence/read error,
61
- - bounded output slice.
62
- - Call `resolveSingleOutput()` whenever an output path is configured and meaningful child output exists, not only for `exitCode === 0`.
63
- - Preserve existing child-authored-file precedence and snapshot safety.
64
- - Update `finalizeSingleOutput()` so failed runs with a successfully persisted result return error/status plus the saved-output reference, rather than raw output.
65
- - Do not change `formatSavedOutputReference()` wording or make debug artifacts mandatory.
66
-
67
- **Verification**
68
- - Successful child-written and runtime-persisted outputs retain full file contents.
69
- - Failed child with output gets a reference and readable file.
70
- - Failed write/read produces only the bounded fallback.
71
- - Existing explicit inline behavior remains unchanged when selected.
72
-
73
- ### 2. Resolve generated paths and default delivery consistently by execution mode
74
-
75
- **Discovery**
76
- - Trace `resolveSingleRunOutputBaseDir()` and top-level parallel path namespacing in `subagent-executor.ts`.
77
- - Trace foreground chain output resolution in `chain-execution.ts`.
78
- - Trace async step construction in `async-execution.ts` and result-log creation in `subagent-runner.ts`.
79
-
80
- **Files**
81
- - Modify `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts`.
82
- - Modify `src/extensions/pi-subagents/src/runs/foreground/chain-execution.ts`.
83
- - Modify `src/extensions/pi-subagents/src/runs/background/async-execution.ts`.
84
- - Modify only necessary type declarations in `src/extensions/pi-subagents/src/shared/types.ts` and `runs/shared/parallel-utils.ts`.
85
- - Update `test/integration/single-execution.test.ts`, `parallel-execution.test.ts`, and `async-execution.test.ts`.
86
-
87
- **Change**
88
- - Resolve omitted output as a generated per-child relative file name:
89
- - foreground single: `<singleRunOutputBaseDir>/<runId>/result.md`;
90
- - foreground top-level parallel: existing per-task namespace plus `result.md`;
91
- - foreground chain: `<chainDir>/outputs/<flat-index>-<agent>.md`;
92
- - async single/parallel/chain: `<asyncDir>/outputs/<flat-index>-<agent>.md`, while retaining existing `output-<index>.log` as status/transcript recovery.
93
- - Preserve explicit absolute and relative `output` paths, existing duplicate-path validation, and `output: false`.
94
- - Resolve omitted `outputMode` to `file-only` when an output path is active. Preserve explicit `"inline"` exactly.
95
- - Keep chain handoff semantics valid: later `{previous}`/`{outputs.name}` consumers receive the existing file reference for file-only steps and can read the named path; do not re-inline child prose merely for chaining.
96
- - Ensure generated output paths are passed to child task and system-prompt instructions through existing `injectSingleOutputInstruction()` / `injectOutputPathSystemPrompt()`.
97
- - Do not add frontmatter-only defaults to builtin agents: those would collide in chains and fail to cover custom agents. Runtime-generated per-run paths own this behavior.
98
-
99
- **Mode acceptance matrix**
100
- - **Foreground single:** compact saved-output reference; explicit inline opt-out remains full text.
101
- - **Foreground parallel:** one compact result per child, each with status and output reference.
102
- - **Foreground chain:** existing chain completion summary plus chain/output paths; no step prose in terminal parent result.
103
- - **Async launch:** existing concise launch receipt unchanged.
104
- - **Async completion:** compact references to explicit saved output or `asyncDir/output-<index>.log`.
105
- - **Status/transcript:** remain the path to inspect output; `resume` continues using existing session persistence.
106
- - **Errors, pause, stop, timeout:** retain process error/status and recovery instructions; attach a saved-output/log reference if available, otherwise bounded fallback.
107
-
108
- ### 3. Strip terminal foreground details and intercom payloads of raw output
109
-
110
- **Discovery**
111
- - Inspect `compactForegroundDetails()` in `shared/utils.ts`.
112
- - Inspect `maybeBuildForegroundIntercomReceipt()` and `resultSummaryForIntercom()` in `subagent-executor.ts`.
113
- - Inspect `stripDetailsOutputsForIntercomReceipt()` in `intercom/result-intercom.ts`.
114
-
115
- **Files**
116
- - Modify `src/extensions/pi-subagents/src/shared/utils.ts`.
117
- - Modify `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts`.
118
- - Modify `src/extensions/pi-subagents/src/intercom/result-intercom.ts`.
119
- - Update `test/integration/foreground-result-size.test.ts`.
120
- - Update `test/integration/intercom-result-delivery.test.ts`.
121
-
122
- **Change**
123
- - Add one shared terminal-result projection based on the existing intercom stripping pattern. It must remove raw child output from terminal `Details`, including chain `details.outputs` text/structured payloads, while retaining references and operational metadata.
124
- - Apply that projection for all completed foreground modes, not just acknowledged intercom receipts.
125
- - Keep remembered foreground state able to recover output from `savedOutputPath` first; do not retain full `finalOutput` in memory when an authoritative path exists.
126
- - Change foreground intercom child summaries from `getSingleResultOutput()` to the saved-output reference. Include error/status before the reference for failed children.
127
- - Keep the current 500 ms intercom acknowledgement behavior:
128
- - acknowledged relay: compact receipt and stripped details;
129
- - unavailable/unacknowledged relay: compact native foreground receipt, not legacy full child output;
130
- - explicit `outputMode:"inline"` is the sole compatibility opt-out for full foreground output.
131
- - Do not alter supervisor-request/detached-run routing.
132
-
133
- **Verification**
134
- - Bridge-on and bridge-off foreground single, parallel, and chain responses contain no child prose by default.
135
- - Intercom payloads contain references, not full output.
136
- - Explicit inline still exposes legacy content.
137
- - `JSON.stringify(result)` remains below current payload-size protections.
138
-
139
- ### 4. Make async notifier and grouped intercom delivery reference-only
140
-
141
- **Discovery**
142
- - Trace `summary` creation in `background/subagent-runner.ts`.
143
- - Trace result-file normalization and delivery in `background/result-watcher.ts`.
144
- - Trace `buildCompletionDetails()`, `formatSingleCompletion()`, and `formatGroupedCompletion()` in `background/notify.ts`.
145
-
146
- **Files**
147
- - Modify `src/extensions/pi-subagents/src/runs/background/subagent-runner.ts`.
148
- - Modify `src/extensions/pi-subagents/src/runs/background/result-watcher.ts`.
149
- - Modify `src/extensions/pi-subagents/src/runs/background/notify.ts`.
150
- - Update `test/integration/async-execution.test.ts`.
151
- - Update `test/integration/result-watcher.test.ts`.
152
- - Update `test/unit/notify.test.ts`.
153
-
154
- **Change**
155
- - Persist/retain each async child’s authoritative output location in the result payload: explicit `savedOutputPath` when present, otherwise its existing `asyncDir/output-<index>.log`.
156
- - At watcher delivery time, build compact child summaries from that path using `formatSavedOutputReference()`; do not use `results[].output` or run `summary` as parent-facing text.
157
- - Build the local `subagent-notify` content from the same compact run receipt so notification and intercom behavior match.
158
- - Preserve grouped intercom acknowledgement semantics:
159
- - acknowledged grouped delivery suppresses duplicate local notification;
160
- - unacknowledged or disabled grouped delivery sends the compact local notifier;
161
- - session-lease and result-file retry/unlink behavior remains unchanged.
162
- - On absent/unreadable output log, include process error and bounded fallback only; do not emit raw `result.json.summary`.
163
- - Preserve full internal `result.json` data only until watcher consumption; the durable parent reference must be the output path/log, not the deletable result queue file.
164
-
165
- **Verification**
166
- - Async success emits a notification/intercom message with output-log or saved-output reference only.
167
- - Async failed, paused, stopped, and timed-out cases retain status, error, and recovery guidance.
168
- - Intercom acknowledgement still suppresses duplicate notifier delivery.
169
- - Watcher retry on notifier failure leaves the result file intact.
170
-
171
- ### 5. Document migration and rebuild packaged assets
172
-
173
- **Discovery**
174
- - Re-read current output instructions in:
175
- - `src/extensions/pi-subagents/README.md:647-671,1446-1486`;
176
- - `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md:91,140-156`;
177
- - `src/extensions/pi-subagents/src/extension/tool-description.ts`.
178
- - Coordinate with Phase 0/1 edits before resolving overlapping wording.
179
-
180
- **Files**
181
- - Modify `src/extensions/pi-subagents/README.md`.
182
- - Modify `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md`.
183
- - Modify `src/extensions/pi-subagents/src/extension/tool-description.ts` only if Phase 1 has not already incorporated the final contract.
184
- - Regenerate `dist/extensions/pi-subagents/**` with the root build; do not hand-edit generated copies.
185
-
186
- **Change**
187
- - State that normal delegated results are reference-first and full output is inspected through saved output, async status/transcript, or resume.
188
- - Document explicit `outputMode:"inline"` as compatibility opt-out.
189
- - Document `output:false` as disabling durable result persistence and causing bounded fallback visibility.
190
- - State that generated output paths persist with `artifacts:false`; debug `_input`, `_output`, metadata, and transcript artifacts remain opt-in.
191
- - Correct old claims that failed runs always return full inline debugging output.
192
- - Keep examples using explicit output paths where humans or later processes need stable project-owned names.
193
-
194
- ## Migration and compatibility
195
-
196
- - This is an intentional behavior change for omitted `outputMode`: default delivery becomes file-only/reference-first.
197
- - Existing callers requiring full terminal text must set `outputMode:"inline"`.
198
- - Existing callers with explicit `output` keep that path; generated paths affect only omitted output.
199
- - Existing `output:false` behavior remains available, but loses full durable recovery by design.
200
- - No external protocol version bump is needed if new fields are additive and result files remain backward-readable. Treat absent saved-path fields as legacy and use bounded fallback.
201
- - Do not expose `maxOutput` as a new Phase 2 API; its current undocumented semantics are unrelated. Use a fixed internal fallback cap only.
202
-
203
- ## Phase dependencies
204
-
205
- - **Phase 0:** must land its corrected role/output documentation first, or Phase 2 documentation will conflict with stale “write/no-write” and context claims. Runtime work is otherwise independent.
206
- - **Phase 1:** should land before the final `tool-description.ts` wording so the always-visible delegation contract can describe reference-first completion once, without duplicate edits. Runtime Phase 2 code does not depend on Phase 1 catalog changes.
207
- - **No dependency on Phase 3/4:** advisory routing and enforcement must not be coupled to output delivery.
208
-
209
- ## Test commands
210
-
211
- ```sh
212
- cd src/extensions/pi-subagents
213
- node --experimental-strip-types --test test/unit/single-output.test.ts test/unit/notify.test.ts
214
- node --experimental-strip-types --import ./test/support/register-loader.mjs --test \
215
- test/integration/single-execution.test.ts \
216
- test/integration/parallel-execution.test.ts \
217
- test/integration/foreground-result-size.test.ts \
218
- test/integration/intercom-result-delivery.test.ts \
219
- test/integration/async-execution.test.ts \
220
- test/integration/result-watcher.test.ts
221
- npm run test:all
222
-
223
- cd ../../..
224
- npm run build
225
- ```
226
-
227
- ## Acceptance criteria
228
-
229
- - Default foreground single, parallel, and chain completion contains no raw child output in `content`, terminal `details`, or intercom delivery.
230
- - Default async completion notification/intercom contains no raw child output.
231
- - Each successful child has a readable, authoritative result reference with byte/line metadata while `artifacts:false`.
232
- - Failure/timeout/stop/pause preserves status and recovery information and never emits unbounded output.
233
- - Persistence failure produces the specified 80-line/4-KiB fallback and does not falsely claim a full reference exists.
234
- - Explicit `outputMode:"inline"` preserves legacy inline delivery.
235
- - `output:false`, status, transcript, resume, intercom acknowledgement, session leases, chain output bindings, and structured output behavior remain covered by regression tests.
236
- - Root build regenerates `dist` from source.
237
-
238
- ## Risks and rollback
239
-
240
- - **Risk:** reference-only chains require downstream children to read referenced outputs deliberately. Mitigate with injected authoritative output-path instructions and chain tests.
241
- - **Risk:** generated output files increase `.pi-subagents` disk use despite debug artifacts being disabled. Mitigate through documented paths and existing project/session/temp placement; do not silently delete authoritative outputs in this phase.
242
- - **Risk:** host behavior for tool `details` is not fully controlled. Mitigate by removing terminal raw output from details rather than relying on renderer behavior.
243
- - **Rollback:** restore omitted-mode resolution to `"inline"` and remove generated-path assignment; explicit output/file-only callers remain functional. Leave already-written result files in place; they are harmless and should not be deleted automatically.
244
-
245
- ```acceptance-report
246
- {
247
- "criteriaSatisfied": [
248
- {
249
- "id": "criterion-1",
250
- "status": "satisfied",
251
- "evidence": "Concrete findings verified in source and tests: high-risk raw-output surfaces in foreground executor, result-intercom, async runner, notifier, and details; reusable file-only, async-log, status, transcript, resume, and artifact-default-off mechanisms cited with exact paths."
252
- }
253
- ],
254
- "changedFiles": [],
255
- "testsAddedOrUpdated": [],
256
- "commandsRun": [
257
- {
258
- "command": "read/grep static inspection of pi-subagents source, docs, and tests",
259
- "result": "passed",
260
- "summary": "Verified cited symbols, current mode behavior, artifact-default-off gates, and existing test seams. No implementation commands were run."
261
- }
262
- ],
263
- "validationOutput": [
264
- "Plan is implementation-ready and limited to Phase 2.",
265
- "No files were edited."
266
- ],
267
- "residualRisks": [
268
- "Reference-first defaults intentionally change omitted outputMode behavior; callers needing inline output must migrate.",
269
- "Generated authoritative outputs require a retention policy decision outside this phase if disk growth becomes material."
270
- ],
271
- "noStagedFiles": false,
272
- "diffSummary": "No diff produced; planning-only task.",
273
- "reviewFindings": [
274
- "high: foreground executor and intercom payloads currently expose full child output by default.",
275
- "high: async completion notifier currently forwards full runner summaries.",
276
- "medium: existing explicit output persistence and async output logs can satisfy Phase 2 without enabling debug artifacts."
277
- ],
278
- "manualNotes": "Staged-file state was not inspected because this session has no shell execution tool."
279
- }
280
- ```
281
-
1
+ # Phase 2 Plan — Minimize Parent Context from Delegated Work
2
+
3
+ ## Verified findings
4
+
5
+ - **High — foreground non-intercom results leak full child output:** `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts:3237-3245` aggregates full parallel output; `runSinglePath` returns `finalizeSingleOutput(...).displayOutput`; `compactForegroundDetails()` retains `results[].finalOutput`.
6
+ - **High — intercom moves, rather than minimizes, full output:** `src/extensions/pi-subagents/src/intercom/result-intercom.ts:244-269` places full `summary` text in the grouped event. The compact receipt only applies after acknowledged delivery.
7
+ - **High — async notifications expose full summaries:** `background/subagent-runner.ts:4135-4146` builds a full-output summary; `background/notify.ts:137-151` sends it as a model-visible `subagent-notify` message.
8
+ - **Medium — durable non-debug paths already exist:** explicit `output` persistence in `single-output.ts:173-208` works independently of `artifacts`; async always writes `asyncDir/output-<index>.log`.
9
+ - **Medium — chain terminal content is already concise, but details/intercom are not:** `shared/formatters.ts:58-90` emits a chain summary, while `details.results`/`details.outputs` and grouped intercom payloads can retain child text.
10
+ - **Medium — file-only is reusable but opt-in:** `finalizeSingleOutput()` emits only `SavedOutputReference.message` for `file-only`; tests cover read-only runtime persistence in `single-execution.test.ts:2478`.
11
+
12
+ ## Design decision
13
+
14
+ Use the existing `output`, `outputMode: "file-only"`, saved-output reference, async output logs, `status`, transcript, and `resume` mechanisms. Do **not** add a new public “summary delivery” API, new artifact service, or dependency.
15
+
16
+ New default policy:
17
+
18
+ 1. Every delegated child gets a durable result path unless the caller explicitly uses `output: false`.
19
+ 2. Omitted `outputMode` resolves to `file-only` when a result path exists; explicit `outputMode: "inline"` retains legacy full-output delivery.
20
+ 3. Full output is persisted independently of `artifacts: true`; debug artifacts remain opt-in.
21
+ 4. Successful normal delivery contains references and lifecycle/status information, not child prose.
22
+ 5. If persistence or reference reading fails, return a bounded fallback only: first **80 lines / 4 KiB**, prefixed with the persistence error and stating that full output is unavailable. Reuse `truncateOutput`; do not fall back to unbounded output.
23
+
24
+ `output: false` remains a compatibility escape hatch: no generated output file and bounded inline delivery. Explicit `outputMode: "file-only"` plus `output: false` remains a pre-spawn validation error.
25
+
26
+ ## Data contract
27
+
28
+ No new public tool parameter is required.
29
+
30
+ | Field/surface | Contract |
31
+ |---|---|
32
+ | `SingleResult.savedOutputPath` / `outputReference` | Authoritative full-output location and byte/line metadata. Present for generated or explicit saved outputs, including failed children that produced output. |
33
+ | `SingleResult.finalOutput` | `Output saved to: …` reference for default/file-only delivery; bounded fallback only when persistence failed; full text only with explicit `outputMode:"inline"`. |
34
+ | `Details.results[]` | Terminal parent-facing details must omit raw `messages`, raw `finalOutput`, `truncation`, and chain `outputs` text. Keep status, error, output reference/path, session, transcript, acceptance, and compact tool-call metadata. |
35
+ | Foreground tool-result `content` | Compact run receipt/reference list. No child prose by default. |
36
+ | Intercom payload child `summary` | Saved-output/async-log reference plus process status; never full child output by default. |
37
+ | Async `result.json` | May retain internal result text until watcher delivery, but parent-facing notifier/intercom delivery must use references to `asyncDir/output-<index>.log` or explicit saved outputs. |
38
+ | Failure fallback | A bounded context slice with the write/read error and intended path. It must not claim a full artifact exists. |
39
+
40
+ ## Ordered implementation tasks
41
+
42
+ ### 1. Make saved-output persistence usable for default and failed delivery
43
+
44
+ **Discovery**
45
+ - Re-read `runs/shared/single-output.ts`, especially `resolveSingleOutput()` and `finalizeSingleOutput()`.
46
+ - Trace all callers in `foreground/execution.ts` and background runner step execution before editing.
47
+ - Confirm async `output-<index>.log` contains the child’s final output, not merely progress.
48
+
49
+ **Files**
50
+ - Modify `src/extensions/pi-subagents/src/runs/shared/single-output.ts`.
51
+ - Modify `src/extensions/pi-subagents/src/runs/foreground/execution.ts`.
52
+ - Update `src/extensions/pi-subagents/test/unit/single-output.test.ts`.
53
+ - Update focused cases in `test/integration/single-execution.test.ts`.
54
+
55
+ **Change**
56
+ - Export a small internal context-fallback limit (`bytes: 4096`, `lines: 80`) beside existing output helpers; reuse existing `truncateOutput()`.
57
+ - Add a formatter that produces a bounded persistence-failure fallback containing:
58
+ - process error/status,
59
+ - intended output path,
60
+ - persistence/read error,
61
+ - bounded output slice.
62
+ - Call `resolveSingleOutput()` whenever an output path is configured and meaningful child output exists, not only for `exitCode === 0`.
63
+ - Preserve existing child-authored-file precedence and snapshot safety.
64
+ - Update `finalizeSingleOutput()` so failed runs with a successfully persisted result return error/status plus the saved-output reference, rather than raw output.
65
+ - Do not change `formatSavedOutputReference()` wording or make debug artifacts mandatory.
66
+
67
+ **Verification**
68
+ - Successful child-written and runtime-persisted outputs retain full file contents.
69
+ - Failed child with output gets a reference and readable file.
70
+ - Failed write/read produces only the bounded fallback.
71
+ - Existing explicit inline behavior remains unchanged when selected.
72
+
73
+ ### 2. Resolve generated paths and default delivery consistently by execution mode
74
+
75
+ **Discovery**
76
+ - Trace `resolveSingleRunOutputBaseDir()` and top-level parallel path namespacing in `subagent-executor.ts`.
77
+ - Trace foreground chain output resolution in `chain-execution.ts`.
78
+ - Trace async step construction in `async-execution.ts` and result-log creation in `subagent-runner.ts`.
79
+
80
+ **Files**
81
+ - Modify `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts`.
82
+ - Modify `src/extensions/pi-subagents/src/runs/foreground/chain-execution.ts`.
83
+ - Modify `src/extensions/pi-subagents/src/runs/background/async-execution.ts`.
84
+ - Modify only necessary type declarations in `src/extensions/pi-subagents/src/shared/types.ts` and `runs/shared/parallel-utils.ts`.
85
+ - Update `test/integration/single-execution.test.ts`, `parallel-execution.test.ts`, and `async-execution.test.ts`.
86
+
87
+ **Change**
88
+ - Resolve omitted output as a generated per-child relative file name:
89
+ - foreground single: `<singleRunOutputBaseDir>/<runId>/result.md`;
90
+ - foreground top-level parallel: existing per-task namespace plus `result.md`;
91
+ - foreground chain: `<chainDir>/outputs/<flat-index>-<agent>.md`;
92
+ - async single/parallel/chain: `<asyncDir>/outputs/<flat-index>-<agent>.md`, while retaining existing `output-<index>.log` as status/transcript recovery.
93
+ - Preserve explicit absolute and relative `output` paths, existing duplicate-path validation, and `output: false`.
94
+ - Resolve omitted `outputMode` to `file-only` when an output path is active. Preserve explicit `"inline"` exactly.
95
+ - Keep chain handoff semantics valid: later `{previous}`/`{outputs.name}` consumers receive the existing file reference for file-only steps and can read the named path; do not re-inline child prose merely for chaining.
96
+ - Ensure generated output paths are passed to child task and system-prompt instructions through existing `injectSingleOutputInstruction()` / `injectOutputPathSystemPrompt()`.
97
+ - Do not add frontmatter-only defaults to builtin agents: those would collide in chains and fail to cover custom agents. Runtime-generated per-run paths own this behavior.
98
+
99
+ **Mode acceptance matrix**
100
+ - **Foreground single:** compact saved-output reference; explicit inline opt-out remains full text.
101
+ - **Foreground parallel:** one compact result per child, each with status and output reference.
102
+ - **Foreground chain:** existing chain completion summary plus chain/output paths; no step prose in terminal parent result.
103
+ - **Async launch:** existing concise launch receipt unchanged.
104
+ - **Async completion:** compact references to explicit saved output or `asyncDir/output-<index>.log`.
105
+ - **Status/transcript:** remain the path to inspect output; `resume` continues using existing session persistence.
106
+ - **Errors, pause, stop, timeout:** retain process error/status and recovery instructions; attach a saved-output/log reference if available, otherwise bounded fallback.
107
+
108
+ ### 3. Strip terminal foreground details and intercom payloads of raw output
109
+
110
+ **Discovery**
111
+ - Inspect `compactForegroundDetails()` in `shared/utils.ts`.
112
+ - Inspect `maybeBuildForegroundIntercomReceipt()` and `resultSummaryForIntercom()` in `subagent-executor.ts`.
113
+ - Inspect `stripDetailsOutputsForIntercomReceipt()` in `intercom/result-intercom.ts`.
114
+
115
+ **Files**
116
+ - Modify `src/extensions/pi-subagents/src/shared/utils.ts`.
117
+ - Modify `src/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts`.
118
+ - Modify `src/extensions/pi-subagents/src/intercom/result-intercom.ts`.
119
+ - Update `test/integration/foreground-result-size.test.ts`.
120
+ - Update `test/integration/intercom-result-delivery.test.ts`.
121
+
122
+ **Change**
123
+ - Add one shared terminal-result projection based on the existing intercom stripping pattern. It must remove raw child output from terminal `Details`, including chain `details.outputs` text/structured payloads, while retaining references and operational metadata.
124
+ - Apply that projection for all completed foreground modes, not just acknowledged intercom receipts.
125
+ - Keep remembered foreground state able to recover output from `savedOutputPath` first; do not retain full `finalOutput` in memory when an authoritative path exists.
126
+ - Change foreground intercom child summaries from `getSingleResultOutput()` to the saved-output reference. Include error/status before the reference for failed children.
127
+ - Keep the current 500 ms intercom acknowledgement behavior:
128
+ - acknowledged relay: compact receipt and stripped details;
129
+ - unavailable/unacknowledged relay: compact native foreground receipt, not legacy full child output;
130
+ - explicit `outputMode:"inline"` is the sole compatibility opt-out for full foreground output.
131
+ - Do not alter supervisor-request/detached-run routing.
132
+
133
+ **Verification**
134
+ - Bridge-on and bridge-off foreground single, parallel, and chain responses contain no child prose by default.
135
+ - Intercom payloads contain references, not full output.
136
+ - Explicit inline still exposes legacy content.
137
+ - `JSON.stringify(result)` remains below current payload-size protections.
138
+
139
+ ### 4. Make async notifier and grouped intercom delivery reference-only
140
+
141
+ **Discovery**
142
+ - Trace `summary` creation in `background/subagent-runner.ts`.
143
+ - Trace result-file normalization and delivery in `background/result-watcher.ts`.
144
+ - Trace `buildCompletionDetails()`, `formatSingleCompletion()`, and `formatGroupedCompletion()` in `background/notify.ts`.
145
+
146
+ **Files**
147
+ - Modify `src/extensions/pi-subagents/src/runs/background/subagent-runner.ts`.
148
+ - Modify `src/extensions/pi-subagents/src/runs/background/result-watcher.ts`.
149
+ - Modify `src/extensions/pi-subagents/src/runs/background/notify.ts`.
150
+ - Update `test/integration/async-execution.test.ts`.
151
+ - Update `test/integration/result-watcher.test.ts`.
152
+ - Update `test/unit/notify.test.ts`.
153
+
154
+ **Change**
155
+ - Persist/retain each async child’s authoritative output location in the result payload: explicit `savedOutputPath` when present, otherwise its existing `asyncDir/output-<index>.log`.
156
+ - At watcher delivery time, build compact child summaries from that path using `formatSavedOutputReference()`; do not use `results[].output` or run `summary` as parent-facing text.
157
+ - Build the local `subagent-notify` content from the same compact run receipt so notification and intercom behavior match.
158
+ - Preserve grouped intercom acknowledgement semantics:
159
+ - acknowledged grouped delivery suppresses duplicate local notification;
160
+ - unacknowledged or disabled grouped delivery sends the compact local notifier;
161
+ - session-lease and result-file retry/unlink behavior remains unchanged.
162
+ - On absent/unreadable output log, include process error and bounded fallback only; do not emit raw `result.json.summary`.
163
+ - Preserve full internal `result.json` data only until watcher consumption; the durable parent reference must be the output path/log, not the deletable result queue file.
164
+
165
+ **Verification**
166
+ - Async success emits a notification/intercom message with output-log or saved-output reference only.
167
+ - Async failed, paused, stopped, and timed-out cases retain status, error, and recovery guidance.
168
+ - Intercom acknowledgement still suppresses duplicate notifier delivery.
169
+ - Watcher retry on notifier failure leaves the result file intact.
170
+
171
+ ### 5. Document migration and rebuild packaged assets
172
+
173
+ **Discovery**
174
+ - Re-read current output instructions in:
175
+ - `src/extensions/pi-subagents/README.md:647-671,1446-1486`;
176
+ - `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md:91,140-156`;
177
+ - `src/extensions/pi-subagents/src/extension/tool-description.ts`.
178
+ - Coordinate with Phase 0/1 edits before resolving overlapping wording.
179
+
180
+ **Files**
181
+ - Modify `src/extensions/pi-subagents/README.md`.
182
+ - Modify `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md`.
183
+ - Modify `src/extensions/pi-subagents/src/extension/tool-description.ts` only if Phase 1 has not already incorporated the final contract.
184
+ - Regenerate `dist/extensions/pi-subagents/**` with the root build; do not hand-edit generated copies.
185
+
186
+ **Change**
187
+ - State that normal delegated results are reference-first and full output is inspected through saved output, async status/transcript, or resume.
188
+ - Document explicit `outputMode:"inline"` as compatibility opt-out.
189
+ - Document `output:false` as disabling durable result persistence and causing bounded fallback visibility.
190
+ - State that generated output paths persist with `artifacts:false`; debug `_input`, `_output`, metadata, and transcript artifacts remain opt-in.
191
+ - Correct old claims that failed runs always return full inline debugging output.
192
+ - Keep examples using explicit output paths where humans or later processes need stable project-owned names.
193
+
194
+ ## Migration and compatibility
195
+
196
+ - This is an intentional behavior change for omitted `outputMode`: default delivery becomes file-only/reference-first.
197
+ - Existing callers requiring full terminal text must set `outputMode:"inline"`.
198
+ - Existing callers with explicit `output` keep that path; generated paths affect only omitted output.
199
+ - Existing `output:false` behavior remains available, but loses full durable recovery by design.
200
+ - No external protocol version bump is needed if new fields are additive and result files remain backward-readable. Treat absent saved-path fields as legacy and use bounded fallback.
201
+ - Do not expose `maxOutput` as a new Phase 2 API; its current undocumented semantics are unrelated. Use a fixed internal fallback cap only.
202
+
203
+ ## Phase dependencies
204
+
205
+ - **Phase 0:** must land its corrected role/output documentation first, or Phase 2 documentation will conflict with stale “write/no-write” and context claims. Runtime work is otherwise independent.
206
+ - **Phase 1:** should land before the final `tool-description.ts` wording so the always-visible delegation contract can describe reference-first completion once, without duplicate edits. Runtime Phase 2 code does not depend on Phase 1 catalog changes.
207
+ - **No dependency on Phase 3/4:** advisory routing and enforcement must not be coupled to output delivery.
208
+
209
+ ## Test commands
210
+
211
+ ```sh
212
+ cd src/extensions/pi-subagents
213
+ node --experimental-strip-types --test test/unit/single-output.test.ts test/unit/notify.test.ts
214
+ node --experimental-strip-types --import ./test/support/register-loader.mjs --test \
215
+ test/integration/single-execution.test.ts \
216
+ test/integration/parallel-execution.test.ts \
217
+ test/integration/foreground-result-size.test.ts \
218
+ test/integration/intercom-result-delivery.test.ts \
219
+ test/integration/async-execution.test.ts \
220
+ test/integration/result-watcher.test.ts
221
+ npm run test:all
222
+
223
+ cd ../../..
224
+ npm run build
225
+ ```
226
+
227
+ ## Acceptance criteria
228
+
229
+ - Default foreground single, parallel, and chain completion contains no raw child output in `content`, terminal `details`, or intercom delivery.
230
+ - Default async completion notification/intercom contains no raw child output.
231
+ - Each successful child has a readable, authoritative result reference with byte/line metadata while `artifacts:false`.
232
+ - Failure/timeout/stop/pause preserves status and recovery information and never emits unbounded output.
233
+ - Persistence failure produces the specified 80-line/4-KiB fallback and does not falsely claim a full reference exists.
234
+ - Explicit `outputMode:"inline"` preserves legacy inline delivery.
235
+ - `output:false`, status, transcript, resume, intercom acknowledgement, session leases, chain output bindings, and structured output behavior remain covered by regression tests.
236
+ - Root build regenerates `dist` from source.
237
+
238
+ ## Risks and rollback
239
+
240
+ - **Risk:** reference-only chains require downstream children to read referenced outputs deliberately. Mitigate with injected authoritative output-path instructions and chain tests.
241
+ - **Risk:** generated output files increase `.pi-subagents` disk use despite debug artifacts being disabled. Mitigate through documented paths and existing project/session/temp placement; do not silently delete authoritative outputs in this phase.
242
+ - **Risk:** host behavior for tool `details` is not fully controlled. Mitigate by removing terminal raw output from details rather than relying on renderer behavior.
243
+ - **Rollback:** restore omitted-mode resolution to `"inline"` and remove generated-path assignment; explicit output/file-only callers remain functional. Leave already-written result files in place; they are harmless and should not be deleted automatically.
244
+
245
+ ```acceptance-report
246
+ {
247
+ "criteriaSatisfied": [
248
+ {
249
+ "id": "criterion-1",
250
+ "status": "satisfied",
251
+ "evidence": "Concrete findings verified in source and tests: high-risk raw-output surfaces in foreground executor, result-intercom, async runner, notifier, and details; reusable file-only, async-log, status, transcript, resume, and artifact-default-off mechanisms cited with exact paths."
252
+ }
253
+ ],
254
+ "changedFiles": [],
255
+ "testsAddedOrUpdated": [],
256
+ "commandsRun": [
257
+ {
258
+ "command": "read/grep static inspection of pi-subagents source, docs, and tests",
259
+ "result": "passed",
260
+ "summary": "Verified cited symbols, current mode behavior, artifact-default-off gates, and existing test seams. No implementation commands were run."
261
+ }
262
+ ],
263
+ "validationOutput": [
264
+ "Plan is implementation-ready and limited to Phase 2.",
265
+ "No files were edited."
266
+ ],
267
+ "residualRisks": [
268
+ "Reference-first defaults intentionally change omitted outputMode behavior; callers needing inline output must migrate.",
269
+ "Generated authoritative outputs require a retention policy decision outside this phase if disk growth becomes material."
270
+ ],
271
+ "noStagedFiles": false,
272
+ "diffSummary": "No diff produced; planning-only task.",
273
+ "reviewFindings": [
274
+ "high: foreground executor and intercom payloads currently expose full child output by default.",
275
+ "high: async completion notifier currently forwards full runner summaries.",
276
+ "medium: existing explicit output persistence and async output logs can satisfy Phase 2 without enabling debug artifacts."
277
+ ],
278
+ "manualNotes": "Staged-file state was not inspected because this session has no shell execution tool."
279
+ }
280
+ ```
281
+
282
282
  ⧉ copy assistant: /cp 5224d1