@selesai/code 0.13.6 → 0.13.8

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 (993) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +255 -102
  3. package/dist/cli/credential-print.js +4 -4
  4. package/dist/cli.js +0 -0
  5. package/dist/core/compaction/utils.js +2 -2
  6. package/dist/core/export-html/template.css +1066 -1066
  7. package/dist/core/export-html/template.html +55 -55
  8. package/dist/core/export-html/template.js +1864 -1864
  9. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  10. package/dist/core/export-html/vendor/marked.min.js +78 -78
  11. package/dist/core/messages.js +7 -7
  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/pi-hermes-memory/scripts/check-min-sdk.mjs +0 -0
  15. package/dist/extensions/pi-hermes-memory/tests/run-all.sh +0 -0
  16. package/dist/extensions/pi-intercom/LICENSE +21 -21
  17. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  18. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  19. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  20. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  21. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  22. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  23. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  24. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  25. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  26. package/dist/extensions/pi-intercom/index.ts +71 -2
  27. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  28. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  29. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  30. package/dist/extensions/pi-subagents/.github/assets/subagent-fleet-inspector.png +0 -0
  31. package/dist/extensions/pi-subagents/.github/workflows/release.yml +1 -1
  32. package/dist/extensions/pi-subagents/.github/workflows/test.yml +1 -1
  33. package/dist/extensions/pi-subagents/.greptile/config.json +1 -1
  34. package/dist/extensions/pi-subagents/.greptile/files.json +1 -1
  35. package/dist/extensions/pi-subagents/.greptile/rules.md +1 -1
  36. package/dist/extensions/pi-subagents/.oxlintrc.json +2 -2
  37. package/dist/extensions/pi-subagents/AGENTS.md +1 -1
  38. package/dist/extensions/pi-subagents/CHANGELOG.md +34 -2
  39. package/dist/extensions/pi-subagents/LICENSE +1 -1
  40. package/dist/extensions/pi-subagents/README.md +1 -1
  41. package/dist/extensions/pi-subagents/VISION.md +1 -1
  42. package/dist/extensions/pi-subagents/agents/architect.md +1 -1
  43. package/dist/extensions/pi-subagents/agents/builder.md +1 -1
  44. package/dist/extensions/pi-subagents/agents/claude-code-writer.md +1 -1
  45. package/dist/extensions/pi-subagents/agents/claude-code.md +1 -1
  46. package/dist/extensions/pi-subagents/agents/codex-exec-writer.md +1 -1
  47. package/dist/extensions/pi-subagents/agents/codex-exec.md +1 -1
  48. package/dist/extensions/pi-subagents/agents/commentator.md +1 -1
  49. package/dist/extensions/pi-subagents/agents/cursor-agent-writer.md +1 -1
  50. package/dist/extensions/pi-subagents/agents/cursor-agent.md +1 -1
  51. package/dist/extensions/pi-subagents/agents/delegate.md +1 -1
  52. package/dist/extensions/pi-subagents/agents/explorer.md +1 -1
  53. package/dist/extensions/pi-subagents/agents/oracle.md +1 -1
  54. package/dist/extensions/pi-subagents/agents/recapper.md +1 -1
  55. package/dist/extensions/pi-subagents/agents/researcher.md +1 -1
  56. package/dist/extensions/pi-subagents/agents/reviewer.md +1 -1
  57. package/dist/extensions/pi-subagents/agents/scout.md +1 -1
  58. package/dist/extensions/pi-subagents/agents/worker.md +1 -1
  59. package/dist/extensions/pi-subagents/async-retention-discovery-worker.mjs +1 -1
  60. package/dist/extensions/pi-subagents/docs/agents.md +20 -20
  61. package/dist/extensions/pi-subagents/docs/configuration.md +10 -6
  62. package/dist/extensions/pi-subagents/docs/extension-api.md +15 -8
  63. package/dist/extensions/pi-subagents/docs/missions.md +1 -1
  64. package/dist/extensions/pi-subagents/docs/models.md +2 -2
  65. package/dist/extensions/pi-subagents/docs/observability.md +2 -2
  66. package/dist/extensions/pi-subagents/docs/tool-reference.md +13 -4
  67. package/dist/extensions/pi-subagents/docs/watchdog.md +1 -1
  68. package/dist/extensions/pi-subagents/docs/workflows.md +15 -14
  69. package/dist/extensions/pi-subagents/index.ts +1 -1
  70. package/dist/extensions/pi-subagents/inspector-runner.mjs +1 -1
  71. package/dist/extensions/pi-subagents/install.mjs +3 -2
  72. package/dist/extensions/pi-subagents/package-lock.json +3 -3
  73. package/dist/extensions/pi-subagents/package.json +2 -2
  74. package/dist/extensions/pi-subagents/prompts/council.md +1 -1
  75. package/dist/extensions/pi-subagents/prompts/gather-context-and-clarify.md +1 -1
  76. package/dist/extensions/pi-subagents/prompts/parallel-cleanup.md +1 -1
  77. package/dist/extensions/pi-subagents/prompts/parallel-research.md +1 -1
  78. package/dist/extensions/pi-subagents/prompts/parallel-review.md +1 -1
  79. package/dist/extensions/pi-subagents/prompts/review-loop.md +1 -1
  80. package/dist/extensions/pi-subagents/skills/council-mode/SKILL.md +1 -1
  81. package/dist/extensions/pi-subagents/skills/council-mode/references/pass-contracts.md +1 -1
  82. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +7 -5
  83. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +2 -2
  84. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +43 -12
  85. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +1 -1
  86. package/dist/extensions/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +2 -2
  87. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +5 -5
  88. package/dist/extensions/pi-subagents/skills/pi-subagents/references/review-and-validation.md +2 -2
  89. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +103 -64
  90. package/dist/extensions/pi-subagents/src/agents/agent-memory.ts +1 -1
  91. package/dist/extensions/pi-subagents/src/agents/agent-refinements.ts +1 -1
  92. package/dist/extensions/pi-subagents/src/agents/agent-scope.ts +1 -1
  93. package/dist/extensions/pi-subagents/src/agents/agent-selection.ts +1 -1
  94. package/dist/extensions/pi-subagents/src/agents/agent-serializer.ts +1 -1
  95. package/dist/extensions/pi-subagents/src/agents/agents.ts +527 -221
  96. package/dist/extensions/pi-subagents/src/agents/builtin-names.ts +1 -1
  97. package/dist/extensions/pi-subagents/src/agents/chain-serializer.ts +1 -1
  98. package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +1 -1
  99. package/dist/extensions/pi-subagents/src/agents/identity.ts +1 -1
  100. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +1 -1
  101. package/dist/extensions/pi-subagents/src/agents/runtime-agent-events.ts +1 -1
  102. package/dist/extensions/pi-subagents/src/agents/runtime-agent-registry.ts +1 -1
  103. package/dist/extensions/pi-subagents/src/agents/skills.ts +1 -1
  104. package/dist/extensions/pi-subagents/src/api/agents.ts +1 -1
  105. package/dist/extensions/pi-subagents/src/api/background-work.ts +8 -3
  106. package/dist/extensions/pi-subagents/src/api/capability-ceiling.ts +1 -1
  107. package/dist/extensions/pi-subagents/src/api/control-channel.ts +1 -1
  108. package/dist/extensions/pi-subagents/src/api/delegation.ts +1 -1
  109. package/dist/extensions/pi-subagents/src/api/external-job-provider.ts +1 -1
  110. package/dist/extensions/pi-subagents/src/api/external-runs.ts +68 -5
  111. package/dist/extensions/pi-subagents/src/api/intercom-bridge.ts +1 -1
  112. package/dist/extensions/pi-subagents/src/api/pi-args.ts +1 -1
  113. package/dist/extensions/pi-subagents/src/api/preflight.ts +14 -9
  114. package/dist/extensions/pi-subagents/src/api/project-panes.ts +1 -1
  115. package/dist/extensions/pi-subagents/src/api/shared-types.ts +2 -1
  116. package/dist/extensions/pi-subagents/src/extension/config.ts +1 -1
  117. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +1 -1
  118. package/dist/extensions/pi-subagents/src/extension/doctor.ts +1 -1
  119. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +1 -1
  120. package/dist/extensions/pi-subagents/src/extension/index.ts +8 -5
  121. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +48 -5
  122. package/dist/extensions/pi-subagents/src/extension/rpc.ts +63 -5
  123. package/dist/extensions/pi-subagents/src/extension/schemas.ts +12 -8
  124. package/dist/extensions/pi-subagents/src/extension/steering-notices.ts +1 -1
  125. package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +1 -1
  126. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +8 -4
  127. package/dist/extensions/pi-subagents/src/extension/tool-result.ts +1 -1
  128. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +1 -1
  129. package/dist/extensions/pi-subagents/src/inspectors/herdr/client.ts +1 -1
  130. package/dist/extensions/pi-subagents/src/inspectors/herdr/focus.ts +1 -1
  131. package/dist/extensions/pi-subagents/src/inspectors/herdr/inspector-runner.ts +1 -1
  132. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +1 -1
  133. package/dist/extensions/pi-subagents/src/inspectors/herdr/session-roots-codec.ts +1 -1
  134. package/dist/extensions/pi-subagents/src/inspectors/herdr/shell-command.ts +1 -1
  135. package/dist/extensions/pi-subagents/src/integrations/herdr-status.ts +1 -1
  136. package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +1 -1
  137. package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +1 -1
  138. package/dist/extensions/pi-subagents/src/intercom/result-intercom.ts +1 -1
  139. package/dist/extensions/pi-subagents/src/missions/actions.ts +1 -1
  140. package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +1 -1
  141. package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +1 -1
  142. package/dist/extensions/pi-subagents/src/missions/store.ts +1 -1
  143. package/dist/extensions/pi-subagents/src/missions/types.ts +1 -1
  144. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +1 -1
  145. package/dist/extensions/pi-subagents/src/policy/authority.ts +1 -1
  146. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +1 -1
  147. package/dist/extensions/pi-subagents/src/runs/background/active-async-capacity.ts +1 -1
  148. package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +1 -1
  149. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +52 -36
  150. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +63 -4
  151. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +4 -2
  152. package/dist/extensions/pi-subagents/src/runs/background/async-retention.ts +1 -1
  153. package/dist/extensions/pi-subagents/src/runs/background/async-status-snapshot.ts +1 -1
  154. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +69 -10
  155. package/dist/extensions/pi-subagents/src/runs/background/auto-drain.ts +2 -2
  156. package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +1 -1
  157. package/dist/extensions/pi-subagents/src/runs/background/chain-root-attachment.ts +1 -1
  158. package/dist/extensions/pi-subagents/src/runs/background/completion-batcher.ts +1 -1
  159. package/dist/extensions/pi-subagents/src/runs/background/completion-dedupe.ts +1 -1
  160. package/dist/extensions/pi-subagents/src/runs/background/completion-replay.ts +1 -1
  161. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +1 -1
  162. package/dist/extensions/pi-subagents/src/runs/background/fleet-view.ts +2 -2
  163. package/dist/extensions/pi-subagents/src/runs/background/index-segment.ts +1 -1
  164. package/dist/extensions/pi-subagents/src/runs/background/inspect-rpc.ts +1 -1
  165. package/dist/extensions/pi-subagents/src/runs/background/notify.ts +1 -1
  166. package/dist/extensions/pi-subagents/src/runs/background/owned-process-tree.ts +1 -1
  167. package/dist/extensions/pi-subagents/src/runs/background/parallel-groups.ts +1 -1
  168. package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +1 -1
  169. package/dist/extensions/pi-subagents/src/runs/background/result-delivery-ownership.ts +1 -1
  170. package/dist/extensions/pi-subagents/src/runs/background/result-files.ts +1 -1
  171. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +2 -2
  172. package/dist/extensions/pi-subagents/src/runs/background/resume-guidance.ts +2 -2
  173. package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +1 -1
  174. package/dist/extensions/pi-subagents/src/runs/background/run-id-query.ts +1 -1
  175. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +1 -1
  176. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +3 -3
  177. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +1 -1
  178. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +1 -1
  179. package/dist/extensions/pi-subagents/src/runs/background/steering.ts +1 -1
  180. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +2 -3
  181. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +21 -22
  182. package/dist/extensions/pi-subagents/src/runs/background/terminal-run-index.ts +1 -1
  183. package/dist/extensions/pi-subagents/src/runs/background/top-level-async.ts +1 -1
  184. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +2 -2
  185. package/dist/extensions/pi-subagents/src/runs/background/wait-config.ts +1 -1
  186. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +1 -1
  187. package/dist/extensions/pi-subagents/src/runs/background/wait-tool.ts +25 -19
  188. package/dist/extensions/pi-subagents/src/runs/foreground/async-dismiss-action.ts +1 -1
  189. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +1 -1
  190. package/dist/extensions/pi-subagents/src/runs/foreground/async-stop-action.ts +1 -1
  191. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +63 -4
  192. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-control.ts +1 -1
  193. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +1 -1
  194. package/dist/extensions/pi-subagents/src/runs/foreground/prompt-audit.ts +1 -1
  195. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +179 -59
  196. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-detach-reconcile.ts +1 -1
  197. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +1 -1
  198. package/dist/extensions/pi-subagents/src/runs/shared/abort-recovery.ts +1 -1
  199. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +44 -19
  200. package/dist/extensions/pi-subagents/src/runs/shared/agent-contract.ts +1 -1
  201. package/dist/extensions/pi-subagents/src/runs/shared/async-status-projection.ts +1 -1
  202. package/dist/extensions/pi-subagents/src/runs/shared/background-process-options.ts +1 -1
  203. package/dist/extensions/pi-subagents/src/runs/shared/capability-ceiling.ts +1 -1
  204. package/dist/extensions/pi-subagents/src/runs/shared/chain-outputs.ts +1 -1
  205. package/dist/extensions/pi-subagents/src/runs/shared/child-identity.ts +1 -1
  206. package/dist/extensions/pi-subagents/src/runs/shared/child-launch-plan.ts +1 -1
  207. package/dist/extensions/pi-subagents/src/runs/shared/child-protocol.ts +1 -1
  208. package/dist/extensions/pi-subagents/src/runs/shared/claude-code-adapter.ts +1 -1
  209. package/dist/extensions/pi-subagents/src/runs/shared/codex-exec-adapter.ts +1 -1
  210. package/dist/extensions/pi-subagents/src/runs/shared/completion-evidence.ts +1 -1
  211. package/dist/extensions/pi-subagents/src/runs/shared/completion-guard.ts +1 -1
  212. package/dist/extensions/pi-subagents/src/runs/shared/context-mode.ts +1 -1
  213. package/dist/extensions/pi-subagents/src/runs/shared/cursor-agent-adapter.ts +1 -1
  214. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +1 -1
  215. package/dist/extensions/pi-subagents/src/runs/shared/extension-bindings.ts +1 -1
  216. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-contract.ts +1 -1
  217. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-preflight.ts +1 -1
  218. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-runner.ts +1 -1
  219. package/dist/extensions/pi-subagents/src/runs/shared/external-job-bridge.ts +1 -1
  220. package/dist/extensions/pi-subagents/src/runs/shared/external-job-runner.ts +1 -1
  221. package/dist/extensions/pi-subagents/src/runs/shared/fast-mode-extension.ts +1 -1
  222. package/dist/extensions/pi-subagents/src/runs/shared/host-step-status.ts +2 -1
  223. package/dist/extensions/pi-subagents/src/runs/shared/lane-metadata.ts +1 -1
  224. package/dist/extensions/pi-subagents/src/runs/shared/launch-cwd.ts +1 -1
  225. package/dist/extensions/pi-subagents/src/runs/shared/llm-intent-arbiter.ts +1 -1
  226. package/dist/extensions/pi-subagents/src/runs/shared/long-running-guard.ts +1 -1
  227. package/dist/extensions/pi-subagents/src/runs/shared/mcp-config-sources.ts +1 -1
  228. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +1 -1
  229. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-grant.ts +1 -1
  230. package/dist/extensions/pi-subagents/src/runs/shared/model-exclusions.ts +1 -1
  231. package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +62 -18
  232. package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +1 -1
  233. package/dist/extensions/pi-subagents/src/runs/shared/mutation-evidence.ts +1 -1
  234. package/dist/extensions/pi-subagents/src/runs/shared/nested-events.ts +1 -1
  235. package/dist/extensions/pi-subagents/src/runs/shared/nested-path.ts +1 -1
  236. package/dist/extensions/pi-subagents/src/runs/shared/nested-render.ts +1 -1
  237. package/dist/extensions/pi-subagents/src/runs/shared/orca-progress-tabs.ts +1 -1
  238. package/dist/extensions/pi-subagents/src/runs/shared/parallel-handoff.ts +1 -1
  239. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +1 -1
  240. package/dist/extensions/pi-subagents/src/runs/shared/permissions.ts +2 -2
  241. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +3 -3
  242. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +1 -1
  243. package/dist/extensions/pi-subagents/src/runs/shared/process-signal.ts +1 -1
  244. package/dist/extensions/pi-subagents/src/runs/shared/run-fanout-budget.ts +1 -1
  245. package/dist/extensions/pi-subagents/src/runs/shared/run-history.ts +1 -1
  246. package/dist/extensions/pi-subagents/src/runs/shared/runtime-acknowledged-extensions.ts +1 -1
  247. package/dist/extensions/pi-subagents/src/runs/shared/session-lease.ts +1 -1
  248. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +1 -1
  249. package/dist/extensions/pi-subagents/src/runs/shared/spawn-budget.ts +1 -1
  250. package/dist/extensions/pi-subagents/src/runs/shared/structured-output.ts +1 -1
  251. package/dist/extensions/pi-subagents/src/runs/shared/subagent-control.ts +1 -1
  252. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +2 -2
  253. package/dist/extensions/pi-subagents/src/runs/shared/subagent-startup-retry.ts +1 -1
  254. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +1 -1
  255. package/dist/extensions/pi-subagents/src/runs/shared/tool-availability.ts +1 -1
  256. package/dist/extensions/pi-subagents/src/runs/shared/tool-budget.ts +1 -1
  257. package/dist/extensions/pi-subagents/src/runs/shared/tool-timeout.ts +2 -2
  258. package/dist/extensions/pi-subagents/src/runs/shared/usage-budget.ts +1 -1
  259. package/dist/extensions/pi-subagents/src/runs/shared/workflow-graph.ts +4 -3
  260. package/dist/extensions/pi-subagents/src/runs/shared/worktree-cleanup-plan.ts +1 -1
  261. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +1 -1
  262. package/dist/extensions/pi-subagents/src/shared/accessible-dir.ts +1 -1
  263. package/dist/extensions/pi-subagents/src/shared/agent-stream-options.ts +1 -1
  264. package/dist/extensions/pi-subagents/src/shared/artifacts.ts +1 -1
  265. package/dist/extensions/pi-subagents/src/shared/atomic-json.ts +1 -1
  266. package/dist/extensions/pi-subagents/src/shared/capacity-resilient-json.ts +1 -1
  267. package/dist/extensions/pi-subagents/src/shared/child-session-name.ts +2 -2
  268. package/dist/extensions/pi-subagents/src/shared/child-transcript.ts +1 -1
  269. package/dist/extensions/pi-subagents/src/shared/completion-owner.ts +1 -1
  270. package/dist/extensions/pi-subagents/src/shared/display-text.ts +1 -1
  271. package/dist/extensions/pi-subagents/src/shared/extension-context.ts +1 -1
  272. package/dist/extensions/pi-subagents/src/shared/file-coalescer.ts +1 -1
  273. package/dist/extensions/pi-subagents/src/shared/file-system-retry.ts +1 -1
  274. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +1 -1
  275. package/dist/extensions/pi-subagents/src/shared/formatters.ts +1 -1
  276. package/dist/extensions/pi-subagents/src/shared/jsonl-writer.ts +1 -1
  277. package/dist/extensions/pi-subagents/src/shared/launch-contract.ts +1 -1
  278. package/dist/extensions/pi-subagents/src/shared/model-info.ts +1 -1
  279. package/dist/extensions/pi-subagents/src/shared/node-executable.ts +1 -1
  280. package/dist/extensions/pi-subagents/src/shared/post-exit-stdio-guard.ts +1 -1
  281. package/dist/extensions/pi-subagents/src/shared/prompt-resources.ts +1 -1
  282. package/dist/extensions/pi-subagents/src/shared/pruned-fork.ts +1 -1
  283. package/dist/extensions/pi-subagents/src/shared/session-file-trust.ts +1 -1
  284. package/dist/extensions/pi-subagents/src/shared/session-identity.ts +1 -1
  285. package/dist/extensions/pi-subagents/src/shared/session-tokens.ts +1 -1
  286. package/dist/extensions/pi-subagents/src/shared/settings.ts +1 -1
  287. package/dist/extensions/pi-subagents/src/shared/shortcuts.ts +1 -1
  288. package/dist/extensions/pi-subagents/src/shared/status-format.ts +1 -1
  289. package/dist/extensions/pi-subagents/src/shared/thinking-ceiling.ts +1 -1
  290. package/dist/extensions/pi-subagents/src/shared/types.ts +41 -4
  291. package/dist/extensions/pi-subagents/src/shared/utf8.ts +1 -1
  292. package/dist/extensions/pi-subagents/src/shared/utils.ts +1 -1
  293. package/dist/extensions/pi-subagents/src/shared/watch-strategy.ts +1 -1
  294. package/dist/extensions/pi-subagents/src/shared/workflow-child-permit.ts +91 -0
  295. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +1 -1
  296. package/dist/extensions/pi-subagents/src/slash/delegation-json.ts +1 -1
  297. package/dist/extensions/pi-subagents/src/slash/delegation-request.ts +1 -1
  298. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +38 -2
  299. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +1 -1
  300. package/dist/extensions/pi-subagents/src/slash/selector.ts +1 -1
  301. package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +1 -1
  302. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +19 -27
  303. package/dist/extensions/pi-subagents/src/slash/slash-live-state.ts +1 -1
  304. package/dist/extensions/pi-subagents/src/slash/subagents-admin.ts +1 -1
  305. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +1 -1
  306. package/dist/extensions/pi-subagents/src/tui/fleet-transcript.ts +1 -1
  307. package/dist/extensions/pi-subagents/src/tui/fleet.ts +1 -1
  308. package/dist/extensions/pi-subagents/src/tui/render-helpers.ts +1 -1
  309. package/dist/extensions/pi-subagents/src/tui/render.ts +96 -53
  310. package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +1 -1
  311. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +1 -1
  312. package/dist/extensions/pi-subagents/src/watchdog/child-status.ts +1 -1
  313. package/dist/extensions/pi-subagents/src/watchdog/emission-guard.ts +1 -1
  314. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +1 -1
  315. package/dist/extensions/pi-subagents/src/watchdog/model-selection.ts +1 -1
  316. package/dist/extensions/pi-subagents/src/watchdog/permission-arbiter.ts +1 -1
  317. package/dist/extensions/pi-subagents/src/watchdog/register-child.ts +1 -1
  318. package/dist/extensions/pi-subagents/src/watchdog/register-main.ts +1 -1
  319. package/dist/extensions/pi-subagents/src/watchdog/render.ts +1 -1
  320. package/dist/extensions/pi-subagents/src/watchdog/review.ts +1 -1
  321. package/dist/extensions/pi-subagents/src/watchdog/runtime.ts +1 -1
  322. package/dist/extensions/pi-subagents/src/watchdog/scope.ts +1 -1
  323. package/dist/extensions/pi-subagents/src/watchdog/settings.ts +1 -1
  324. package/dist/extensions/pi-subagents/src/watchdog/tool-actions.ts +1 -1
  325. package/dist/extensions/pi-subagents/src/watchdog/turn-delta.ts +1 -1
  326. package/dist/extensions/pi-subagents/src/watchdog/types.ts +1 -1
  327. package/dist/extensions/pi-subagents/src/watchdog/warning-format.ts +1 -1
  328. package/dist/extensions/pi-subagents/src/workflows/chat-progress.ts +1 -1
  329. package/dist/extensions/pi-subagents/src/workflows/host-command.ts +1 -1
  330. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +154 -5
  331. package/dist/extensions/pi-subagents/src/workflows/workflow-child-summary.ts +2 -2
  332. package/dist/extensions/pi-subagents/src/workflows/workflow-preflight.ts +1 -1
  333. package/dist/extensions/pi-subagents/src/workflows/workflow-receipt.ts +42 -5
  334. package/dist/extensions/pi-subagents/src/workflows/workflow-resources.ts +150 -0
  335. package/dist/extensions/pi-subagents/src/workflows/workflow-settlement.ts +1 -1
  336. package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +1 -1
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +3 -0
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +2 -0
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +17 -0
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +57 -0
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +16 -0
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +15 -0
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +18 -0
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +9 -0
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +10 -0
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +10 -0
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +20 -0
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +3 -0
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +96 -0
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +119 -0
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +85 -0
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +620 -0
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +5 -0
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +56 -0
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +32 -0
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +49 -0
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +93 -0
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +128 -0
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +7 -0
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +38 -0
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +3 -0
  362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +15 -0
  363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +9 -0
  364. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +29 -0
  365. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +2 -0
  366. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +22 -0
  367. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +37 -0
  368. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +34 -0
  369. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +12 -0
  370. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +23 -0
  371. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +171 -0
  372. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +1261 -0
  373. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +20 -0
  374. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +54 -0
  375. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +22 -0
  376. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +13 -0
  377. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +358 -0
  378. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +77 -0
  379. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +512 -0
  380. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +43 -0
  381. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +121 -0
  382. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +82 -0
  383. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +17 -0
  384. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +7 -0
  385. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +210 -0
  386. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +15 -0
  387. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +54 -0
  388. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +4 -0
  389. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +55 -0
  390. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +2 -0
  391. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +5 -0
  392. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +30 -0
  393. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +206 -0
  394. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +15 -0
  395. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +106 -0
  396. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +19 -0
  397. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +356 -0
  398. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +297 -0
  399. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +60 -0
  400. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +15 -0
  401. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +18 -0
  402. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +28 -0
  403. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +3 -0
  404. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +10 -0
  405. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +68 -0
  406. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +106 -0
  407. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +51 -0
  408. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +6 -0
  409. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +35 -0
  410. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +37 -0
  411. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +40 -0
  412. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +37 -0
  413. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +52 -0
  414. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +10 -0
  415. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +35 -0
  416. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +24 -0
  417. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  418. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +70 -0
  419. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +26 -0
  420. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +36 -0
  421. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +19 -0
  422. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +3 -0
  423. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +61 -0
  424. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +23 -0
  425. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +3 -0
  426. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +10 -0
  427. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +42 -0
  428. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +35 -0
  429. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +12 -0
  430. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +33 -0
  431. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +9 -0
  432. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +34 -0
  433. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +22 -0
  434. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  435. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  436. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  437. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  438. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +102 -0
  439. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  440. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  441. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  442. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +20 -0
  443. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  444. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +12 -0
  445. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  446. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  447. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  448. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +23 -0
  449. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  450. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  451. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +32 -0
  452. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +34 -0
  453. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  454. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  455. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +54 -0
  456. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  457. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  458. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  459. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +95 -0
  460. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  461. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  462. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  463. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  464. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  465. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  466. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  467. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  468. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  469. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  470. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +14 -0
  471. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  472. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +394 -0
  473. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +12 -0
  474. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  475. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +120 -0
  476. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +28 -0
  477. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +17 -0
  478. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +246 -0
  479. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +20 -0
  480. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +457 -0
  481. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +8 -0
  482. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +3 -0
  483. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +2 -0
  484. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +22 -0
  485. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +18 -0
  486. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +11 -0
  487. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +11 -0
  488. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +4 -0
  489. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +4 -0
  490. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +5 -0
  491. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +8 -0
  492. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +5 -0
  493. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +26 -0
  494. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +7 -0
  495. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +10 -0
  496. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +18 -0
  497. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +30 -0
  498. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +2 -0
  499. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +16 -0
  500. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +3 -0
  501. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +3 -0
  502. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +9 -0
  503. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +31 -0
  504. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +21 -0
  505. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +2 -0
  506. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +31 -0
  507. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +5 -0
  508. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +12 -0
  509. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +3 -0
  510. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +15 -0
  511. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +3 -0
  512. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/index.mjs +1 -1
  513. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/package.json +1 -1
  514. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +1 -1
  515. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +198 -6
  516. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +250 -18
  517. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +323 -4
  518. package/dist/extensions/pi-subagents/test/integration/claude-code-smoke.test.ts +5 -5
  519. package/dist/extensions/pi-subagents/test/integration/claude-code-writer-smoke.test.ts +5 -5
  520. package/dist/extensions/pi-subagents/test/integration/codex-exec-smoke.test.ts +5 -5
  521. package/dist/extensions/pi-subagents/test/integration/codex-exec-writer-smoke.test.ts +5 -5
  522. package/dist/extensions/pi-subagents/test/integration/cursor-agent-smoke.test.ts +5 -5
  523. package/dist/extensions/pi-subagents/test/integration/cursor-agent-writer-smoke.test.ts +5 -5
  524. package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +1 -1
  525. package/dist/extensions/pi-subagents/test/integration/doctor-executor.test.ts +1 -1
  526. package/dist/extensions/pi-subagents/test/integration/error-handling.test.ts +1 -1
  527. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +1 -1
  528. package/dist/extensions/pi-subagents/test/integration/foreground-result-size.test.ts +1 -1
  529. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +52 -1
  530. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +4 -3
  531. package/dist/extensions/pi-subagents/test/integration/orca-progress-tabs.test.ts +1 -1
  532. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +1 -1
  533. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +75 -7
  534. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +1 -1
  535. package/dist/extensions/pi-subagents/test/integration/session-tokens.test.ts +1 -1
  536. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +274 -12
  537. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +46 -1
  538. package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +1 -1
  539. package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +1 -1
  540. package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +1 -1
  541. package/dist/extensions/pi-subagents/test/support/cursor-smoke-inputs.ts +5 -5
  542. package/dist/extensions/pi-subagents/test/support/helpers.ts +1 -1
  543. package/dist/extensions/pi-subagents/test/support/isolated-temp-root.mjs +1 -1
  544. package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +1 -1
  545. package/dist/extensions/pi-subagents/test/support/mock-pi.ts +1 -1
  546. package/dist/extensions/pi-subagents/test/support/node-command.ts +1 -1
  547. package/dist/extensions/pi-subagents/test/support/real-session-child-cli.mjs +1 -1
  548. package/dist/extensions/pi-subagents/test/support/real-session-runner.ts +1 -1
  549. package/dist/extensions/pi-subagents/test/support/register-loader.mjs +1 -1
  550. package/dist/extensions/pi-subagents/test/support/session-lease-child.mjs +1 -1
  551. package/dist/extensions/pi-subagents/test/support/ts-loader.mjs +1 -1
  552. package/dist/extensions/pi-subagents/test/unit/abort-recovery.test.ts +1 -1
  553. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +66 -1
  554. package/dist/extensions/pi-subagents/test/unit/accessible-dir.test.ts +1 -1
  555. package/dist/extensions/pi-subagents/test/unit/active-async-capacity.test.ts +1 -1
  556. package/dist/extensions/pi-subagents/test/unit/agent-contract.test.ts +1 -1
  557. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +1 -1
  558. package/dist/extensions/pi-subagents/test/unit/agent-discovery-cache.test.ts +232 -0
  559. package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +1 -1
  560. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +3 -3
  561. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +66 -6
  562. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +2 -2
  563. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +1 -1
  564. package/dist/extensions/pi-subagents/test/unit/agent-refinements.test.ts +1 -1
  565. package/dist/extensions/pi-subagents/test/unit/agent-scope.test.ts +1 -1
  566. package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +1 -1
  567. package/dist/extensions/pi-subagents/test/unit/agent-stream-options.test.ts +1 -1
  568. package/dist/extensions/pi-subagents/test/unit/anti-slop-oxlint.test.ts +16 -4
  569. package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +1 -1
  570. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +9 -5
  571. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +1 -1
  572. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +1 -1
  573. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +57 -1
  574. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +1 -1
  575. package/dist/extensions/pi-subagents/test/unit/async-retention.test.ts +1 -1
  576. package/dist/extensions/pi-subagents/test/unit/async-status-projection.test.ts +1 -1
  577. package/dist/extensions/pi-subagents/test/unit/async-status-snapshot.test.ts +1 -1
  578. package/dist/extensions/pi-subagents/test/unit/atomic-json.test.ts +1 -1
  579. package/dist/extensions/pi-subagents/test/unit/authority-policy.test.ts +1 -1
  580. package/dist/extensions/pi-subagents/test/unit/auto-drain.test.ts +1 -1
  581. package/dist/extensions/pi-subagents/test/unit/background-process-options.test.ts +1 -1
  582. package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +57 -2
  583. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +1 -1
  584. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-pi-args.test.ts +1 -1
  585. package/dist/extensions/pi-subagents/test/unit/capability-ceiling.test.ts +1 -1
  586. package/dist/extensions/pi-subagents/test/unit/capacity-resilient-json.test.ts +1 -1
  587. package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +1 -1
  588. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +1 -1
  589. package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +1 -1
  590. package/dist/extensions/pi-subagents/test/unit/child-launch-plan.test.ts +1 -1
  591. package/dist/extensions/pi-subagents/test/unit/child-protocol.test.ts +1 -1
  592. package/dist/extensions/pi-subagents/test/unit/child-session-name.test.ts +1 -1
  593. package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +1 -1
  594. package/dist/extensions/pi-subagents/test/unit/claude-code-adapter.test.ts +1 -1
  595. package/dist/extensions/pi-subagents/test/unit/close-grace-timer.test.ts +1 -1
  596. package/dist/extensions/pi-subagents/test/unit/codex-exec-adapter.test.ts +1 -1
  597. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +1 -1
  598. package/dist/extensions/pi-subagents/test/unit/completion-batcher.test.ts +1 -1
  599. package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +1 -1
  600. package/dist/extensions/pi-subagents/test/unit/completion-evidence.test.ts +1 -1
  601. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +1 -1
  602. package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +1 -1
  603. package/dist/extensions/pi-subagents/test/unit/config-dir-runtime.test.ts +1 -1
  604. package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +1 -1
  605. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +1 -1
  606. package/dist/extensions/pi-subagents/test/unit/cursor-agent-adapter.test.ts +1 -1
  607. package/dist/extensions/pi-subagents/test/unit/cursor-smoke-inputs.test.ts +5 -5
  608. package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +1 -1
  609. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +117 -1
  610. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +1 -1
  611. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +1 -1
  612. package/dist/extensions/pi-subagents/test/unit/ensure-accessible-dir.test.ts +1 -1
  613. package/dist/extensions/pi-subagents/test/unit/extension-bindings.test.ts +1 -1
  614. package/dist/extensions/pi-subagents/test/unit/extension-context.test.ts +1 -1
  615. package/dist/extensions/pi-subagents/test/unit/external-cli-runner.test.ts +1 -1
  616. package/dist/extensions/pi-subagents/test/unit/external-job-runner.test.ts +1 -1
  617. package/dist/extensions/pi-subagents/test/unit/external-runs.test.ts +103 -1
  618. package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +1 -1
  619. package/dist/extensions/pi-subagents/test/unit/fast-mode-extension.test.ts +1 -1
  620. package/dist/extensions/pi-subagents/test/unit/file-coalescer.test.ts +1 -1
  621. package/dist/extensions/pi-subagents/test/unit/file-system-retry.test.ts +1 -1
  622. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +1 -1
  623. package/dist/extensions/pi-subagents/test/unit/fleet-transcript.test.ts +1 -1
  624. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +1 -1
  625. package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +1 -1
  626. package/dist/extensions/pi-subagents/test/unit/foreground-tool-call-compaction.test.ts +1 -1
  627. package/dist/extensions/pi-subagents/test/unit/fork-cache-key.test.ts +2 -2
  628. package/dist/extensions/pi-subagents/test/unit/fork-context.test.ts +1 -1
  629. package/dist/extensions/pi-subagents/test/unit/formatters.test.ts +1 -1
  630. package/dist/extensions/pi-subagents/test/unit/get-final-output.test.ts +1 -1
  631. package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +1 -1
  632. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +1 -1
  633. package/dist/extensions/pi-subagents/test/unit/herdr-session-roots-codec.test.ts +1 -1
  634. package/dist/extensions/pi-subagents/test/unit/herdr-shell-command.test.ts +1 -1
  635. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +1 -1
  636. package/dist/extensions/pi-subagents/test/unit/host-command.test.ts +1 -1
  637. package/dist/extensions/pi-subagents/test/unit/host-peer-runtime-imports.test.ts +1 -1
  638. package/dist/extensions/pi-subagents/test/unit/host-step-status.test.ts +1 -1
  639. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +8 -4
  640. package/dist/extensions/pi-subagents/test/unit/index-segment.test.ts +1 -1
  641. package/dist/extensions/pi-subagents/test/unit/inspect-rpc.test.ts +1 -1
  642. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +1 -1
  643. package/dist/extensions/pi-subagents/test/unit/jsonl-writer.test.ts +1 -1
  644. package/dist/extensions/pi-subagents/test/unit/llm-intent-arbiter.test.ts +1 -1
  645. package/dist/extensions/pi-subagents/test/unit/mcp-direct-tool-grant.test.ts +1 -1
  646. package/dist/extensions/pi-subagents/test/unit/mission-goal-driver.test.ts +1 -1
  647. package/dist/extensions/pi-subagents/test/unit/mission-lifecycle.test.ts +1 -1
  648. package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +1 -1
  649. package/dist/extensions/pi-subagents/test/unit/mock-pi.test.ts +1 -1
  650. package/dist/extensions/pi-subagents/test/unit/model-exclusions.test.ts +1 -1
  651. package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +102 -6
  652. package/dist/extensions/pi-subagents/test/unit/model-info.test.ts +1 -1
  653. package/dist/extensions/pi-subagents/test/unit/model-scope-settings.test.ts +1 -1
  654. package/dist/extensions/pi-subagents/test/unit/model-scope.test.ts +1 -1
  655. package/dist/extensions/pi-subagents/test/unit/mutation-evidence.test.ts +1 -1
  656. package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +1 -1
  657. package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +1 -1
  658. package/dist/extensions/pi-subagents/test/unit/nested-events.test.ts +1 -1
  659. package/dist/extensions/pi-subagents/test/unit/node-executable.test.ts +1 -1
  660. package/dist/extensions/pi-subagents/test/unit/notify.test.ts +1 -1
  661. package/dist/extensions/pi-subagents/test/unit/orca-progress-tabs.test.ts +1 -1
  662. package/dist/extensions/pi-subagents/test/unit/owned-process-tree.test.ts +1 -1
  663. package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +1 -1
  664. package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +1 -1
  665. package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +1 -1
  666. package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +0 -1
  667. package/dist/extensions/pi-subagents/test/unit/path-resolution.test.ts +1 -1
  668. package/dist/extensions/pi-subagents/test/unit/permissions.test.ts +1 -1
  669. package/dist/extensions/pi-subagents/test/unit/pi-args-permission-system.test.ts +1 -1
  670. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +5 -5
  671. package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +2 -2
  672. package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +1 -1
  673. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +106 -1
  674. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +1 -1
  675. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +1 -1
  676. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +1 -1
  677. package/dist/extensions/pi-subagents/test/unit/project-panes-public-api.test.ts +1 -1
  678. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +1 -1
  679. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +1 -1
  680. package/dist/extensions/pi-subagents/test/unit/pruned-fork.test.ts +1 -1
  681. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +40 -3
  682. package/dist/extensions/pi-subagents/test/unit/reads-resolution.test.ts +1 -1
  683. package/dist/extensions/pi-subagents/test/unit/recursion-guard.test.ts +1 -1
  684. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +60 -10
  685. package/dist/extensions/pi-subagents/test/unit/result-delivery-ownership.test.ts +1 -1
  686. package/dist/extensions/pi-subagents/test/unit/result-files.test.ts +1 -1
  687. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +1 -1
  688. package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +1 -1
  689. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +98 -1
  690. package/dist/extensions/pi-subagents/test/unit/run-fanout-budget.test.ts +1 -1
  691. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +1 -1
  692. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +3 -3
  693. package/dist/extensions/pi-subagents/test/unit/runtime-acknowledged-extensions.test.ts +1 -1
  694. package/dist/extensions/pi-subagents/test/unit/runtime-agent-registration.test.ts +44 -2
  695. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +3 -3
  696. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +1 -1
  697. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +48 -5
  698. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +427 -3
  699. package/dist/extensions/pi-subagents/test/unit/selector.test.ts +1 -1
  700. package/dist/extensions/pi-subagents/test/unit/session-lease.test.ts +1 -1
  701. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +1 -1
  702. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +1 -1
  703. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +1 -1
  704. package/dist/extensions/pi-subagents/test/unit/spawn-budget.test.ts +1 -1
  705. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +41 -1
  706. package/dist/extensions/pi-subagents/test/unit/status-format.test.ts +1 -1
  707. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +1 -1
  708. package/dist/extensions/pi-subagents/test/unit/steering-notices.test.ts +1 -1
  709. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +1 -1
  710. package/dist/extensions/pi-subagents/test/unit/streamed-progress-bounds.test.ts +1 -1
  711. package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +1 -1
  712. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +1 -1
  713. package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +9 -1
  714. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +11 -11
  715. package/dist/extensions/pi-subagents/test/unit/subagent-startup-retry.test.ts +1 -1
  716. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +5 -5
  717. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +1 -1
  718. package/dist/extensions/pi-subagents/test/unit/temp-paths.test.ts +1 -1
  719. package/dist/extensions/pi-subagents/test/unit/thinking-ceiling.test.ts +1 -1
  720. package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +1 -1
  721. package/dist/extensions/pi-subagents/test/unit/tool-budget.test.ts +1 -1
  722. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +8 -6
  723. package/dist/extensions/pi-subagents/test/unit/tool-timeout.test.ts +3 -3
  724. package/dist/extensions/pi-subagents/test/unit/total-cost.test.ts +1 -1
  725. package/dist/extensions/pi-subagents/test/unit/ts-loader.test.ts +1 -1
  726. package/dist/extensions/pi-subagents/test/unit/types-fork-preamble.test.ts +1 -1
  727. package/dist/extensions/pi-subagents/test/unit/wait-completions.test.ts +1 -1
  728. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +7 -5
  729. package/dist/extensions/pi-subagents/test/unit/watch-strategy.test.ts +1 -1
  730. package/dist/extensions/pi-subagents/test/unit/watchdog-change-signature.test.ts +1 -1
  731. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +1 -1
  732. package/dist/extensions/pi-subagents/test/unit/watchdog-emission-guard.test.ts +1 -1
  733. package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +1 -1
  734. package/dist/extensions/pi-subagents/test/unit/watchdog-model-selection.test.ts +1 -1
  735. package/dist/extensions/pi-subagents/test/unit/watchdog-permission-arbiter.test.ts +1 -1
  736. package/dist/extensions/pi-subagents/test/unit/watchdog-render.test.ts +1 -1
  737. package/dist/extensions/pi-subagents/test/unit/watchdog-review.test.ts +1 -1
  738. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +1 -1
  739. package/dist/extensions/pi-subagents/test/unit/watchdog-scope.test.ts +1 -1
  740. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +1 -1
  741. package/dist/extensions/pi-subagents/test/unit/watchdog-tool-actions.test.ts +1 -1
  742. package/dist/extensions/pi-subagents/test/unit/watchdog-turn-delta.test.ts +1 -1
  743. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +8 -6
  744. package/dist/extensions/pi-subagents/test/unit/windows-hide-spawn.test.ts +13 -1
  745. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +1 -1
  746. package/dist/extensions/pi-subagents/test/unit/workflow-detach-reconcile.test.ts +1 -1
  747. package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +1 -1
  748. package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +12 -1
  749. package/dist/extensions/pi-subagents/test/unit/workflow-preflight.test.ts +1 -1
  750. package/dist/extensions/pi-subagents/test/unit/workflow-receipt.test.ts +31 -1
  751. package/dist/extensions/pi-subagents/test/unit/workflow-resources.test.ts +98 -0
  752. package/dist/extensions/pi-subagents/test/unit/workflow-resume-hint.test.ts +1 -1
  753. package/dist/extensions/pi-subagents/test/unit/worktree-cleanup-plan.test.ts +1 -1
  754. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +1 -1
  755. package/dist/extensions/pi-subagents/test/unit/writer-budget-guidance.test.ts +1 -1
  756. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/effect/index.ts +1 -1
  757. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/effect/rules/no-service-constructor-imports.ts +1 -1
  758. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/index.ts +1 -1
  759. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-chained-type-assertions.ts +1 -1
  760. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-conditional-empty-object-spread.ts +1 -1
  761. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-known-value-widening.ts +1 -1
  762. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-module-mocking.ts +1 -1
  763. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-object-parameters.ts +1 -1
  764. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-reflect-apply.ts +1 -1
  765. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-reflect-get.ts +1 -1
  766. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-runtime-typeof.ts +1 -1
  767. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts +1 -1
  768. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-parameters.ts +1 -1
  769. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-returns.ts +1 -1
  770. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-type-aliases.ts +1 -1
  771. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts +1 -1
  772. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-widen-then-assert.ts +1 -1
  773. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/require-safety-comment-for-type-assertion.ts +1 -1
  774. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/dictionary-types.ts +1 -1
  775. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/lexical-type-parameters.ts +1 -1
  776. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/reflect-method.ts +1 -1
  777. package/dist/extensions/pi-subagents/tsconfig.json +1 -1
  778. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  779. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  780. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  781. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  782. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  783. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  784. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  785. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  786. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  787. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  788. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  789. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  790. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  791. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  792. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  793. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  794. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  795. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  796. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  797. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  798. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  799. package/dist/extensions/ponytail/package.json +8 -8
  800. package/dist/extensions/question/constants.ts +30 -30
  801. package/dist/extensions/question/helpers.ts +58 -58
  802. package/dist/extensions/question/navigation.ts +14 -14
  803. package/dist/extensions/question/package.json +19 -19
  804. package/dist/extensions/question/selection-mode.ts +46 -46
  805. package/dist/extensions/question/shortcuts.ts +44 -44
  806. package/dist/extensions/question/types.ts +132 -132
  807. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  808. package/dist/extensions/test-resolve-hook.mjs +6 -6
  809. package/dist/extensions/web-agent-onboarding.ts +222 -222
  810. package/dist/package-manager-cli.js +71 -71
  811. package/dist/rpc-entry.js +0 -0
  812. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  813. package/dist/skills/unlazy/CHANGELOG.md +9 -0
  814. package/dist/skills/unlazy/CONTRIBUTING.md +6 -9
  815. package/dist/skills/unlazy/README.md +9 -23
  816. package/dist/skills/unlazy/SECURITY.md +7 -17
  817. package/dist/skills/unlazy/SKILL.md +4 -12
  818. package/dist/skills/unlazy/references/dispatch.md +14 -17
  819. package/dist/skills/unlazy/references/gates.md +3 -3
  820. package/dist/skills/unlazy/references/orchestration.md +0 -1
  821. package/dist/skills/unlazy/references/parallel.md +4 -16
  822. package/dist/skills/unlazy/references/token-economy.md +1 -1
  823. package/dist/skills/unlazy/research/validation-protocol.md +1 -1
  824. package/dist/skills/unlazy/scripts/gate-check.mjs +4 -19
  825. package/dist/skills/unlazy/scripts/gate-lint.mjs +1 -1
  826. package/dist/skills/unlazy/scripts/lib/gates.mjs +1 -5
  827. package/dist/skills/unlazy/templates/PLAN.md +1 -1
  828. package/dist/skills/unlazy/tests/dispatch-tests.mjs +9 -194
  829. package/dist/skills/unlazy/tests/hardening-tests.mjs +2 -5
  830. package/dist/skills/unlazy/tests/lint-tests.mjs +1 -1
  831. package/dist/skills/unlazy/tests/run-tests.mjs +1 -195
  832. package/dist/skills/unlazy/tests/self-check.mjs +0 -13
  833. package/dist/skills/unlazy/tests/stress-tests.mjs +0 -191
  834. package/docs/compaction.md +396 -396
  835. package/docs/containerization.md +111 -111
  836. package/docs/development.md +71 -71
  837. package/docs/docs.json +164 -164
  838. package/docs/environment-variables.md +86 -86
  839. package/docs/images/selesai-wordmark.png +0 -0
  840. package/docs/images/tokenin-preview.png +0 -0
  841. package/docs/index.md +83 -83
  842. package/docs/json.md +82 -82
  843. package/docs/models.md +502 -502
  844. package/docs/packages.md +227 -227
  845. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  846. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  847. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  848. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  849. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  850. package/docs/prompt-templates.md +95 -95
  851. package/docs/providers.md +293 -293
  852. package/docs/security.md +59 -59
  853. package/docs/session-format.md +414 -414
  854. package/docs/sessions.md +145 -145
  855. package/docs/shared-host-extensions.md +109 -109
  856. package/docs/shell-aliases.md +13 -13
  857. package/docs/skills.md +231 -231
  858. package/docs/terminal-setup.md +142 -142
  859. package/docs/termux.md +127 -127
  860. package/docs/themes.md +295 -295
  861. package/docs/tmux.md +63 -63
  862. package/docs/tui.md +927 -927
  863. package/docs/windows.md +17 -17
  864. package/examples/README.md +25 -25
  865. package/examples/extensions/README.md +211 -211
  866. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  867. package/examples/extensions/bash-spawn-hook.ts +30 -30
  868. package/examples/extensions/bookmark.ts +50 -50
  869. package/examples/extensions/border-status-editor.ts +150 -150
  870. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  871. package/examples/extensions/claude-rules.ts +86 -86
  872. package/examples/extensions/commands.ts +72 -72
  873. package/examples/extensions/confirm-destructive.ts +59 -59
  874. package/examples/extensions/custom-compaction.ts +130 -130
  875. package/examples/extensions/custom-footer.ts +64 -64
  876. package/examples/extensions/custom-header.ts +73 -73
  877. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  878. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  879. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  880. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  881. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  882. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  883. package/examples/extensions/dirty-repo-guard.ts +56 -56
  884. package/examples/extensions/doom-overlay/README.md +46 -46
  885. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  886. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  887. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  888. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  889. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  890. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  891. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  892. package/examples/extensions/doom-overlay/index.ts +74 -74
  893. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  894. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  895. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  896. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  897. package/examples/extensions/dynamic-resources/index.ts +15 -15
  898. package/examples/extensions/dynamic-tools.ts +74 -74
  899. package/examples/extensions/event-bus.ts +43 -43
  900. package/examples/extensions/file-trigger.ts +41 -41
  901. package/examples/extensions/git-checkpoint.ts +53 -53
  902. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  903. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  904. package/examples/extensions/gondolin/index.ts +531 -531
  905. package/examples/extensions/gondolin/package-lock.json +185 -185
  906. package/examples/extensions/gondolin/package.json +19 -19
  907. package/examples/extensions/handoff.ts +199 -199
  908. package/examples/extensions/hello.ts +26 -26
  909. package/examples/extensions/hidden-thinking-label.ts +53 -53
  910. package/examples/extensions/inline-bash.ts +94 -94
  911. package/examples/extensions/input-transform-streaming.ts +39 -39
  912. package/examples/extensions/input-transform.ts +43 -43
  913. package/examples/extensions/interactive-shell.ts +196 -196
  914. package/examples/extensions/mac-system-theme.ts +47 -47
  915. package/examples/extensions/message-renderer.ts +59 -59
  916. package/examples/extensions/minimal-mode.ts +426 -426
  917. package/examples/extensions/modal-editor.ts +85 -85
  918. package/examples/extensions/model-status.ts +31 -31
  919. package/examples/extensions/notify.ts +55 -55
  920. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  921. package/examples/extensions/overlay-test.ts +153 -153
  922. package/examples/extensions/permission-gate.ts +34 -34
  923. package/examples/extensions/pirate.ts +47 -47
  924. package/examples/extensions/plan-mode/README.md +66 -66
  925. package/examples/extensions/plan-mode/index.ts +390 -390
  926. package/examples/extensions/plan-mode/utils.ts +168 -168
  927. package/examples/extensions/preset.ts +436 -436
  928. package/examples/extensions/project-trust.ts +64 -64
  929. package/examples/extensions/prompt-customizer.ts +97 -97
  930. package/examples/extensions/protected-paths.ts +30 -30
  931. package/examples/extensions/provider-payload.ts +18 -18
  932. package/examples/extensions/qna.ts +122 -122
  933. package/examples/extensions/question.ts +285 -285
  934. package/examples/extensions/questionnaire.ts +448 -448
  935. package/examples/extensions/rainbow-editor.ts +88 -88
  936. package/examples/extensions/reload-runtime.ts +37 -37
  937. package/examples/extensions/rpc-demo.ts +118 -118
  938. package/examples/extensions/sandbox/index.ts +321 -321
  939. package/examples/extensions/sandbox/package-lock.json +92 -92
  940. package/examples/extensions/sandbox/package.json +19 -19
  941. package/examples/extensions/send-user-message.ts +97 -97
  942. package/examples/extensions/session-name.ts +27 -27
  943. package/examples/extensions/shutdown-command.ts +63 -63
  944. package/examples/extensions/snake.ts +343 -343
  945. package/examples/extensions/space-invaders.ts +560 -560
  946. package/examples/extensions/ssh.ts +220 -220
  947. package/examples/extensions/status-line.ts +32 -32
  948. package/examples/extensions/structured-output.ts +65 -65
  949. package/examples/extensions/subagent/README.md +175 -175
  950. package/examples/extensions/subagent/agents/planner.md +37 -37
  951. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  952. package/examples/extensions/subagent/agents/scout.md +50 -50
  953. package/examples/extensions/subagent/agents/worker.md +24 -24
  954. package/examples/extensions/subagent/agents.ts +126 -126
  955. package/examples/extensions/subagent/index.ts +1015 -1015
  956. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  957. package/examples/extensions/subagent/prompts/implement.md +10 -10
  958. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  959. package/examples/extensions/summarize.ts +209 -209
  960. package/examples/extensions/system-prompt-header.ts +17 -17
  961. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  962. package/examples/extensions/timed-confirm.ts +70 -70
  963. package/examples/extensions/titlebar-spinner.ts +58 -58
  964. package/examples/extensions/todo.ts +297 -297
  965. package/examples/extensions/tool-override.ts +144 -144
  966. package/examples/extensions/tools.ts +146 -146
  967. package/examples/extensions/trigger-compact.ts +50 -50
  968. package/examples/extensions/truncated-tool.ts +195 -195
  969. package/examples/extensions/widget-placement.ts +9 -9
  970. package/examples/extensions/with-deps/index.ts +32 -32
  971. package/examples/extensions/with-deps/package-lock.json +31 -31
  972. package/examples/extensions/with-deps/package.json +22 -22
  973. package/examples/extensions/working-indicator.ts +123 -123
  974. package/examples/extensions/working-message-test.ts +25 -25
  975. package/examples/rpc-extension-ui.ts +632 -632
  976. package/examples/sdk/01-minimal.ts +26 -26
  977. package/examples/sdk/02-custom-model.ts +53 -53
  978. package/examples/sdk/03-custom-prompt.ts +75 -75
  979. package/examples/sdk/04-skills.ts +55 -55
  980. package/examples/sdk/05-tools.ts +48 -48
  981. package/examples/sdk/06-extensions.ts +99 -99
  982. package/examples/sdk/07-context-files.ts +47 -47
  983. package/examples/sdk/08-prompt-templates.ts +51 -51
  984. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  985. package/examples/sdk/10-settings.ts +53 -53
  986. package/examples/sdk/11-sessions.ts +52 -52
  987. package/examples/sdk/12-full-control.ts +79 -79
  988. package/examples/sdk/13-session-runtime.ts +67 -67
  989. package/examples/sdk/README.md +144 -144
  990. package/package.json +1 -1
  991. package/dist/extensions/pi-subagents/banner.png +0 -0
  992. package/dist/skills/unlazy/scripts/install-hooks.mjs +0 -206
  993. package/dist/skills/unlazy/scripts/stop-hook.mjs +0 -174
@@ -1,381 +1,381 @@
1
- # Phase 4 Plan — Opt-in Main-Session Broad Exploration Guard
2
-
3
- ## Scope and decision
4
-
5
- Implement a **main-session-only**, disabled-by-default guard in `pi-subagents`. It nudges or, only when explicitly configured, blocks repeated **broad** `read`/`grep`/`find`/`ls` exploration. It must not affect child sessions, bash, edits/writes, small targeted reads, or excluded metadata/documentation paths.
6
-
7
- Use the existing extension `tool_call` hook; a `{ block: true, reason }` result is returned to the model as an error tool result without executing the call. Do not change core tool registration, SDK allowlists, child tool budgets, or the subagent launch contract.
8
-
9
- ## Preconditions and telemetry gate
10
-
11
- Phase 4 must not start implementation until all are true:
12
-
13
- 1. **Phase 1 is released:** dynamic catalog and delegation contract are visible to the main model.
14
- 2. **Phase 2 is released:** delegated output/context controls are available so delegation does not create unbounded parent context.
15
- 3. **Phase 3 is released:** advisory routing remains explicit, honors dynamic/capability-restricted agents, and emits aggregate advisory/delegation outcome telemetry.
16
- 4. **Telemetry gate:** after at least 14 days and 100 root-session advisory opportunities:
17
- - At least 20% of opportunities reach four broad exploration operations without a successful non-management subagent launch after advisory.
18
- - Warn-only beta has at least 25 opted-in sessions and 50 warnings.
19
- - Explicit user bypasses (`allow`/`off`) occur in at most 5% of warning sessions after triage; each exception is reviewed for classifier defects.
20
- - No child-session guard activation, no handler exception, and no blocked `write`, `edit`, or `bash` event is recorded.
21
-
22
- If the threshold is not met, stop at Phase 3; do not ship blocking behavior. A warn-only implementation may still be used by opt-in testers to refine false-positive rules.
23
-
24
- ## Detection policy
25
-
26
- ### Configuration
27
-
28
- Add this optional field to `ExtensionConfig`:
29
-
30
- ```json
31
- {
32
- "broadExplorationGuard": {
33
- "mode": "warn",
34
- "warnAfter": 2,
35
- "blockAfter": 4,
36
- "smallReadMaxLines": 400
37
- }
38
- }
39
- ```
40
-
41
- Rules:
42
-
43
- - Missing `broadExplorationGuard`, `false`, or `mode: "off"`: no handler, no command, no telemetry.
44
- - `mode: "warn"`: emits one nudge at `warnAfter`; never blocks.
45
- - `mode: "block"`: emits the same nudge at `warnAfter`, then blocks only isolated broad calls after `blockAfter`.
46
- - Defaults when enabled: `warnAfter: 2`, `blockAfter: 4`, `smallReadMaxLines: 400`.
47
- - Validation:
48
- - `warnAfter`: integer `1..20`.
49
- - `blockAfter`: integer `warnAfter + 1..50`.
50
- - `smallReadMaxLines`: integer `1..1000`.
51
- - Invalid guard config disables only this guard, logs a concise configuration error, and fails open.
52
-
53
- ### Broad-operation classifier
54
-
55
- Count only `read`, `grep`, `find`, and `ls`. Never inspect or regulate `bash`, `write`, `edit`, custom tools, or `subagent`.
56
-
57
- Exclude from counting:
58
-
59
- - Any child process (`SELESAI_SUBAGENT_CHILD=1`).
60
- - Explicit targeted `read` calls with a non-empty path and `limit <= smallReadMaxLines`.
61
- - Reads of `SKILL.md`, `AGENTS.md`, `CLAUDE.md`, package manifests/lockfiles, and paths under `docs/`, `.selesai/`, `.pi-subagents/`, `node_modules/`, or `dist/`.
62
- - Searches/listings whose path is explicitly narrow rather than omitted/current-directory scope.
63
- - Any broad candidate in a multi-tool batch for blocking purposes.
64
-
65
- Count as broad:
66
-
67
- - A non-exempt `read` without an explicit small `limit`.
68
- - `grep`, `find`, or `ls` scoped to omitted path, `"."`, or the session cwd, with omitted/default-large result limits.
69
- - At most one broad event per assistant multi-tool batch. A batch may produce a warning but must never be blocked, because sibling results are unavailable during sequential preflight.
70
-
71
- This is an exploration pacing mechanism, not an authorization boundary. A model can choose narrower operations; that is acceptable and safer than blocking legitimate targeted investigation.
72
-
73
- ## State machine
74
-
75
- Maintain state only in memory per root session:
76
-
77
- | State | Entry | Behavior |
78
- |---|---|---|
79
- | `tracking` | enabled session starts | Count eligible broad operations. |
80
- | `warned` | count reaches `warnAfter` | Send one steer nudge and visible UI notification; allow current call. |
81
- | `delegation-pending` | a non-management `subagent` call follows a warning | Wait for its `tool_result`. |
82
- | `tracking` | delegated call succeeds | Reset the current broad-operation streak and warning latch. |
83
- | `fallback-warn-only` | `subagent` is inactive, or the pending delegated call errors | Never block for the rest of the session; continue warnings/observability. |
84
- | `bypassed` | user runs session `off` | Permit all calls for the rest of the session. |
85
- | `blocking` | isolated call would exceed `blockAfter` in `mode: "block"` | Return `{ block: true, reason }`; remain eligible for later explicit user override. |
86
-
87
- Additional state: broad attempts, allowed broad calls, blocked broad calls, warning count, bypass allowance, and delegation outcome. Do not retain paths, search patterns, task text, tool arguments, tool-call IDs, model output, or child output.
88
-
89
- Before blocking, check `pi.getActiveTools()` includes `subagent`. If it does not, transition to `fallback-warn-only` and permit the call. When a non-management delegated launch after warning returns `isError`, also transition to `fallback-warn-only`; do not parse its content or guess whether an agent is suitable.
90
-
91
- ## User escape hatch
92
-
93
- Register a **user-only slash command** only when the guard is enabled:
94
-
95
- ```text
96
- /subagents-exploration-guard status
97
- /subagents-exploration-guard allow [1..20]
98
- /subagents-exploration-guard off
99
- ```
100
-
101
- - `status` exposes effective mode, state, counters, next threshold, and whether delegation fallback is active; it never displays paths or queries.
102
- - `allow` permits the requested number of otherwise-blocked broad operations for this session only; default is one, maximum is 20.
103
- - `off` disables the guard for the current session only.
104
- - Persistent enablement/disablement remains config-file controlled and takes effect after `/reload` or restart.
105
- - Do not add a model-callable `subagent` action for bypass. The model must not grant itself an override.
106
- - Block reasons must name the delegation alternative and the exact user escape command.
107
-
108
- ## Ordered implementation tasks
109
-
110
- ### 1. Verify prerequisites and establish the implementation boundary
111
-
112
- **Discovery**
113
- - Confirm Phase 1–3 artifacts, release state, and telemetry schema with their owners.
114
- - Inspect `src/extensions/pi-subagents/src/extension/index.ts`, `src/extensions/pi-subagents/src/extension/tool-description.ts`, and Phase 3 telemetry implementation.
115
- - Confirm the telemetry-gate report satisfies the numeric criteria above.
116
-
117
- **Identification**
118
- - No source change in this task.
119
- - Phase 4 is owned by `pi-subagents`, because `src/extensions/pi-subagents/src/extension/index.ts` is the host/main-session registration point and owns the `subagent` capability.
120
-
121
- **Change**
122
- - Record the go/no-go decision before enabling any block-mode beta.
123
- - Do not modify Phase 1–3 code, public RPC/preflight versions, child runtime budgets, or core tool definitions.
124
-
125
- **Verification**
126
- - Success: telemetry shows advisory routing is insufficient under the declared gate.
127
- - Failure: if metrics are absent, under-sampled, or show low residual broad exploration, do not implement/enable blocking.
128
- - Regression: Phase 1–3 behavior remains independently deployable.
129
-
130
- ### 2. Add validated opt-in guard configuration
131
-
132
- **Discovery**
133
- - Inspect `src/extensions/pi-subagents/src/shared/types.ts` `ExtensionConfig`.
134
- - Inspect `src/extensions/pi-subagents/src/extension/config.ts` load/error behavior.
135
- - Reuse the existing config-file location and startup loading in `extension/index.ts`; do not add a second settings file.
136
-
137
- **Identification**
138
- - Modify `src/extensions/pi-subagents/src/shared/types.ts` to add `BroadExplorationGuardConfig` and `ExtensionConfig.broadExplorationGuard`.
139
- - Add `src/extensions/pi-subagents/src/extension/exploration-guard.ts` for guard-specific parsing/defaulting.
140
- - Add `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`.
141
-
142
- **Change**
143
- - Export exact symbols from the new module:
144
- - `resolveBroadExplorationGuardConfig(raw)`
145
- - `classifyBroadExplorationCall(event, cwd, smallReadMaxLines)`
146
- - `registerMainExplorationGuard(pi, config)`
147
- - Make `resolveBroadExplorationGuardConfig` return either normalized config or a concise error. Invalid input must result in disabled guard behavior, not a thrown `tool_call` handler error.
148
- - Keep guard config separate from child `ToolBudgetConfig`; it has different scope and semantics.
149
- - Do not add environment-variable overrides, global telemetry dependencies, or new package dependencies.
150
-
151
- **Verification**
152
- - Success: absent/`false`/`off` configuration yields inactive behavior; valid warn and block configurations normalize defaults.
153
- - Failure: malformed objects, non-integers, inverted thresholds, and out-of-range values fail open with an error.
154
- - Regression: existing config keys, especially `toolBudget`, remain unchanged.
155
-
156
- ### 3. Implement classifier and state-machine behavior
157
-
158
- **Discovery**
159
- - Inspect `src/core/tools/read.ts`, `grep.ts`, `find.ts`, and `ls.ts` input shapes and default limits.
160
- - Inspect `src/extensions/workflow/adapter.ts` `isSoleToolCall` and `transitionBatchBlock`.
161
- - Inspect `src/core/extensions/types.ts` `ToolCallEvent`, `ToolCallEventResult`, and `ExtensionAPI.getActiveTools()`.
162
-
163
- **Identification**
164
- - Modify only `src/extensions/pi-subagents/src/extension/exploration-guard.ts` and its new unit test.
165
- - Do not export or change private core read-classification helpers; implement the narrow guard classifier locally from typed event inputs.
166
-
167
- **Change**
168
- - Implement the exclusion and broad-operation rules above.
169
- - Inspect `ctx.sessionManager.getBranch()` only to determine whether the current assistant message has multiple tool calls; never persist branch contents.
170
- - Deduplicate to one counted event per batch.
171
- - Implement the documented state transitions, including:
172
- - single soft nudge through `pi.sendUserMessage(..., { deliverAs: "steer" })`;
173
- - best-effort `ctx.ui.notify` when UI exists;
174
- - block response only for isolated broad calls in block mode;
175
- - active-tool and failed-delegation fallback to warn-only;
176
- - successful non-management delegated execution resets the current streak.
177
- - Wrap all event-handler logic in `try/catch`; on any unexpected error, emit a concise local diagnostic and return `undefined` so the tool executes.
178
- - Keep block/nudge strings short and stable. Example block reason:
179
-
180
- ```text
181
- Exploration guard: repeated broad repo exploration is paused. Delegate the remaining survey with subagent, or ask the user to run /subagents-exploration-guard allow or off. Small targeted reads remain allowed.
182
- ```
183
-
184
- **Verification**
185
- - Success cases:
186
- - Two broad operations warn once with default thresholds.
187
- - In block mode, four broad operations are allowed and the next isolated broad operation is blocked.
188
- - A successful delegated execution resets the streak.
189
- - A successful `subagent({ action: "list" })` does not reset the streak.
190
- - Failure/fallback cases:
191
- - Inactive `subagent` tool or failed delegated execution permits continued exploration in warn-only fallback.
192
- - Handler exceptions fail open.
193
- - Multi-tool batches are not blocked.
194
- - Regression checks:
195
- - `bash`, `write`, `edit`, custom tools, small targeted reads, excluded documentation/resource paths, and narrow searches are never blocked.
196
-
197
- ### 4. Register the guard at the main host lifecycle boundary
198
-
199
- **Discovery**
200
- - Inspect `src/extensions/pi-subagents/src/extension/index.ts` startup cleanup (`__piSubagentRuntimeCleanup`), `session_start`, and `session_shutdown`.
201
- - Inspect `src/extensions/pi-subagents/src/runs/shared/pi-args.ts` `SUBAGENT_CHILD_ENV`.
202
- - Inspect `test/unit/index-child-registration.test.ts` child-registration assertions.
203
-
204
- **Identification**
205
- - Modify `src/extensions/pi-subagents/src/extension/index.ts`.
206
- - Reuse the new `registerMainExplorationGuard` from `exploration-guard.ts`.
207
- - Do not modify `subagent-prompt-runtime.ts`, `tool-budget.ts`, `pi-args.ts`, or `src/core/agent-session.ts`.
208
-
209
- **Change**
210
- - After `const config = loadConfig()`, resolve/register the main guard.
211
- - Ensure `registerMainExplorationGuard` independently returns without registration when `SUBAGENT_CHILD_ENV === "1"`.
212
- - Add its `dispose()` call to the existing reload cleanup path. Disposal must make stale callbacks inert because `pi.on` handlers may remain registered after reload.
213
- - Reset only in-memory guard counters on `session_start` and clear them on `session_shutdown`.
214
- - Register the slash command only for enabled configurations and only in the main process.
215
-
216
- **Verification**
217
- - Success: enabled root session registers one `tool_call`, one `tool_result`, lifecycle handlers, and the user command.
218
- - Failure: disabled config registers no guard handler; guard initialization error cannot prevent the rest of `pi-subagents` from loading.
219
- - Regression: existing child-mode early-return test still proves no parent extension registrations occur in normal or fanout child sessions.
220
-
221
- ### 5. Add privacy-preserving observability
222
-
223
- **Discovery**
224
- - Inspect `ExtensionAPI.appendEntry` in `src/core/extensions/types.ts`.
225
- - Inspect existing custom-entry and notification practices in `extension/index.ts` and watchdog runtime code.
226
-
227
- **Identification**
228
- - Modify `src/extensions/pi-subagents/src/extension/exploration-guard.ts`.
229
- - Extend `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`.
230
-
231
- **Change**
232
- - Emit local aggregate transition entries only for:
233
- - activated,
234
- - warned,
235
- - blocked,
236
- - user-allow,
237
- - user-off,
238
- - delegation-started,
239
- - delegation-succeeded,
240
- - delegation-failed,
241
- - delegation-unavailable,
242
- - config-invalid.
243
- - Entry payload may include mode, state, aggregate counters, and classifier category (`read`, `grep`, `find`, `ls`), but must exclude paths, patterns, tool arguments, task text, raw errors, model output, and identifiers.
244
- - Do not send network telemetry, write a new log file, or store raw branch/session contents.
245
- - Ensure status output uses only the same aggregate fields.
246
-
247
- **Verification**
248
- - Success: transition entries are sufficient to produce telemetry-gate aggregates.
249
- - Privacy failure: tests assert no source path or grep pattern is present in appended data, notifications, or command status.
250
- - Regression: no entries are emitted when config is absent/off.
251
-
252
- ### 6. Document configuration, behavior, and rollback
253
-
254
- **Discovery**
255
- - Inspect `src/extensions/pi-subagents/README.md` Configuration and watchdog command sections.
256
- - Confirm the documented config path matches `getConfigPath()`.
257
-
258
- **Identification**
259
- - Modify `src/extensions/pi-subagents/README.md`.
260
- - Do not change the always-visible subagent tool description: the guard is off by default and block reasons already instruct the model when it is active.
261
-
262
- **Change**
263
- - Add a `broadExplorationGuard` configuration section with:
264
- - disabled-by-default statement;
265
- - warn/block examples;
266
- - broad-operation and exclusion definitions;
267
- - child exclusion;
268
- - fallback when delegation is unavailable;
269
- - slash-command escape hatch;
270
- - privacy statement;
271
- - `/reload` requirement;
272
- - rollback instructions: set `mode: "off"` or remove the block, then reload.
273
- - State explicitly that this is not a security boundary and does not regulate bash commands.
274
-
275
- **Verification**
276
- - Success: copyable JSON examples validate under the new parser.
277
- - Regression: documentation does not imply auto-delegation, automatic user consent, or child enforcement.
278
-
279
- ### 7. Complete tests and release validation
280
-
281
- **Discovery**
282
- - Inspect `src/extensions/pi-subagents/package.json` test scripts and root `package.json` build script.
283
- - Confirm `@selesai/code` alias/build requirements before testing extension code.
284
-
285
- **Identification**
286
- - Add/update:
287
- - `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`
288
- - `src/extensions/pi-subagents/test/unit/index-child-registration.test.ts` only if existing child early-return coverage cannot exercise the new registration path.
289
-
290
- **Change**
291
- - Test config parsing, classifier boundaries, state transitions, batch behavior, delegation success/failure fallback, user bypass, observability redaction, reload disposal, disabled default, and child exclusion.
292
- - Use fake `pi`, fake `ctx`, and fake `sessionManager.getBranch()`; no real tools or child processes are required for core state-machine tests.
293
- - Do not add end-to-end model tests or modify core Vitest harnesses.
294
-
295
- **Commands**
296
- ```bash
297
- cd src/extensions/pi-subagents && npm run test:unit
298
- npm run build
299
- npx vitest run src/__tests__/task-workflow.test.ts
300
- ```
301
-
302
- The final Vitest command is a regression check for the shared `tool_call` block contract. If a targeted extension test command is desired during iteration:
303
-
304
- ```bash
305
- cd src/extensions/pi-subagents && node --experimental-strip-types --test test/unit/main-exploration-guard.test.ts
306
- ```
307
-
308
- ## Acceptance criteria
309
-
310
- - Guard is absent/inert by default.
311
- - Guard runs only in root/main sessions and never in normal or fanout children.
312
- - Only `read`, `grep`, `find`, and `ls` are considered; `bash`, writes, edits, and custom tools are never blocked.
313
- - Small explicit reads and listed documentation/resource/excluded paths are never counted.
314
- - Block mode always warns before blocking and never blocks a multi-tool batch.
315
- - Delegation unavailable or failed after a warning transitions to warn-only fallback, not hard blocking.
316
- - User-only session `allow` and `off` escape hatches work without persistent config mutation.
317
- - Handler failures fail open.
318
- - Observability is aggregate-only and contains no paths, patterns, prompts, tool arguments, or outputs.
319
- - README documents enablement, thresholds, fallback, privacy, and rollback.
320
- - All specified unit tests, root build, and workflow regression test pass.
321
-
322
- ## Risks and mitigations
323
-
324
- | Severity | Risk | Mitigation |
325
- |---|---|---|
326
- | High | A throwing `tool_call` handler blocks execution through the host fail-safe path. | Catch all guard errors and return `undefined`; keep parser/classifier synchronous and dependency-free. |
327
- | High | Parallel preflight cannot see sibling results, creating unjustified blocks. | Never block a multi-tool batch; count at most one broad event for warning purposes. |
328
- | Medium | Legitimate repository investigation may resemble broad browsing. | Narrow classifier, explicit small-read/resource exclusions, warn-only rollout, and user-only temporary/session bypasses. |
329
- | Medium | A suitable specialist may be unavailable despite advisory text. | Check active `subagent`; downgrade to warn-only after a failed delegated execution; never parse or guess agent suitability. |
330
- | Medium | Persisted observability may leak source details. | Persist only aggregate state/category/counters; prohibit raw args, paths, patterns, task content, output, and errors. |
331
- | Low | Config changes are not live. | Document `/reload`/restart and provide session-only escape commands. |
332
-
333
- ## Rollout and rollback
334
-
335
- 1. Land code with config absent/off by default.
336
- 2. Enable only `mode: "warn"` for volunteer sessions after the telemetry prerequisite is met.
337
- 3. Review aggregate false positives and bypasses after the warn-only cohort gate.
338
- 4. Permit `mode: "block"` only as explicit opt-in; never auto-upgrade existing warn users.
339
- 5. Roll back immediately by setting `broadExplorationGuard.mode` to `"off"` or removing the block and reloading. This removes enforcement without data migration or child-process impact.
340
-
341
- ```acceptance-report
342
- {
343
- "criteriaSatisfied": [
344
- {
345
- "id": "criterion-1",
346
- "status": "satisfied",
347
- "evidence": "Verified concrete ownership and hook findings: src/extensions/pi-subagents/src/extension/index.ts registers the root extension and returns early for SUBAGENT_CHILD_ENV; src/core/agent-session.ts and src/core/extensions/runner.ts route tool_call blocks; src/core/extensions/types.ts defines ToolCallEvent/ToolCallEventResult and getActiveTools(); src/extensions/workflow/adapter.ts provides the main-session blocking and batch-inspection precedent; src/extensions/pi-subagents/src/runs/shared/tool-budget.ts provides soft-nudge/hard-block wording and counter precedent."
348
- }
349
- ],
350
- "changedFiles": [],
351
- "testsAddedOrUpdated": [],
352
- "commandsRun": [
353
- {
354
- "command": "read/grep over Phase 1-4 reconnaissance, extension registration/config, tool schemas, hook types, workflow adapter, and unit-test harnesses",
355
- "result": "passed",
356
- "summary": "Static source verification completed; no implementation commands were run because this task is planning-only."
357
- }
358
- ],
359
- "validationOutput": [
360
- "Confirmed the safest host hook is the pi-subagents main-session tool_call handler, not core tool registration or child tool-budget code.",
361
- "Confirmed child exclusion is already structurally supported by src/extensions/pi-subagents/src/extension/index.ts early return and existing index-child-registration tests.",
362
- "Confirmed read/grep/find/ls schemas expose the path/limit signals required for a conservative broad-operation classifier."
363
- ],
364
- "residualRisks": [
365
- "Phase 1-3 implementation and telemetry availability were not verified as released in this planning task; Phase 4 is gated on their completion and measured advisory insufficiency.",
366
- "The host's sequential parallel-tool preflight makes result-aware batch enforcement unsafe; this plan intentionally permits all multi-tool batches.",
367
- "No raw telemetry service was found in the inspected Phase 4 surfaces; aggregate local transition entries must be mapped to the Phase 3 telemetry process before rollout."
368
- ],
369
- "noStagedFiles": true,
370
- "diffSummary": "No files modified; implementation-ready Phase 4 opt-in enforcement plan only.",
371
- "reviewFindings": [
372
- "high: src/core/extensions/runner.ts:933-954 and src/core/agent-session.ts:484-513 - handler exceptions propagate into tool blocking; guard implementation must fail open.",
373
- "high: docs/extensions.md:711-713 and src/extensions/workflow/adapter.ts:402-426 - sibling results are unavailable during parallel preflight; broad-operation blocking must exclude multi-tool batches.",
374
- "medium: src/extensions/pi-subagents/src/runs/shared/tool-budget.ts - existing tool budget applies to child runtime only and must not be reused as parent enforcement without child/main isolation and false-positive controls.",
375
- "medium: src/core/tools/read.ts, grep.ts, find.ts, and ls.ts - naive counting would classify normal targeted investigation as broad; classifier must require the documented path/limit conditions."
376
- ],
377
- "manualNotes": "No implementation or edits were performed. The recommended design adds one main-only pi-subagents extension module, one optional ExtensionConfig field, focused node:test coverage, and README documentation; it deliberately avoids core, SDK, RPC, preflight, schema, and child-runtime changes."
378
- }
379
- ```
380
-
1
+ # Phase 4 Plan — Opt-in Main-Session Broad Exploration Guard
2
+
3
+ ## Scope and decision
4
+
5
+ Implement a **main-session-only**, disabled-by-default guard in `pi-subagents`. It nudges or, only when explicitly configured, blocks repeated **broad** `read`/`grep`/`find`/`ls` exploration. It must not affect child sessions, bash, edits/writes, small targeted reads, or excluded metadata/documentation paths.
6
+
7
+ Use the existing extension `tool_call` hook; a `{ block: true, reason }` result is returned to the model as an error tool result without executing the call. Do not change core tool registration, SDK allowlists, child tool budgets, or the subagent launch contract.
8
+
9
+ ## Preconditions and telemetry gate
10
+
11
+ Phase 4 must not start implementation until all are true:
12
+
13
+ 1. **Phase 1 is released:** dynamic catalog and delegation contract are visible to the main model.
14
+ 2. **Phase 2 is released:** delegated output/context controls are available so delegation does not create unbounded parent context.
15
+ 3. **Phase 3 is released:** advisory routing remains explicit, honors dynamic/capability-restricted agents, and emits aggregate advisory/delegation outcome telemetry.
16
+ 4. **Telemetry gate:** after at least 14 days and 100 root-session advisory opportunities:
17
+ - At least 20% of opportunities reach four broad exploration operations without a successful non-management subagent launch after advisory.
18
+ - Warn-only beta has at least 25 opted-in sessions and 50 warnings.
19
+ - Explicit user bypasses (`allow`/`off`) occur in at most 5% of warning sessions after triage; each exception is reviewed for classifier defects.
20
+ - No child-session guard activation, no handler exception, and no blocked `write`, `edit`, or `bash` event is recorded.
21
+
22
+ If the threshold is not met, stop at Phase 3; do not ship blocking behavior. A warn-only implementation may still be used by opt-in testers to refine false-positive rules.
23
+
24
+ ## Detection policy
25
+
26
+ ### Configuration
27
+
28
+ Add this optional field to `ExtensionConfig`:
29
+
30
+ ```json
31
+ {
32
+ "broadExplorationGuard": {
33
+ "mode": "warn",
34
+ "warnAfter": 2,
35
+ "blockAfter": 4,
36
+ "smallReadMaxLines": 400
37
+ }
38
+ }
39
+ ```
40
+
41
+ Rules:
42
+
43
+ - Missing `broadExplorationGuard`, `false`, or `mode: "off"`: no handler, no command, no telemetry.
44
+ - `mode: "warn"`: emits one nudge at `warnAfter`; never blocks.
45
+ - `mode: "block"`: emits the same nudge at `warnAfter`, then blocks only isolated broad calls after `blockAfter`.
46
+ - Defaults when enabled: `warnAfter: 2`, `blockAfter: 4`, `smallReadMaxLines: 400`.
47
+ - Validation:
48
+ - `warnAfter`: integer `1..20`.
49
+ - `blockAfter`: integer `warnAfter + 1..50`.
50
+ - `smallReadMaxLines`: integer `1..1000`.
51
+ - Invalid guard config disables only this guard, logs a concise configuration error, and fails open.
52
+
53
+ ### Broad-operation classifier
54
+
55
+ Count only `read`, `grep`, `find`, and `ls`. Never inspect or regulate `bash`, `write`, `edit`, custom tools, or `subagent`.
56
+
57
+ Exclude from counting:
58
+
59
+ - Any child process (`SELESAI_SUBAGENT_CHILD=1`).
60
+ - Explicit targeted `read` calls with a non-empty path and `limit <= smallReadMaxLines`.
61
+ - Reads of `SKILL.md`, `AGENTS.md`, `CLAUDE.md`, package manifests/lockfiles, and paths under `docs/`, `.selesai/`, `.pi-subagents/`, `node_modules/`, or `dist/`.
62
+ - Searches/listings whose path is explicitly narrow rather than omitted/current-directory scope.
63
+ - Any broad candidate in a multi-tool batch for blocking purposes.
64
+
65
+ Count as broad:
66
+
67
+ - A non-exempt `read` without an explicit small `limit`.
68
+ - `grep`, `find`, or `ls` scoped to omitted path, `"."`, or the session cwd, with omitted/default-large result limits.
69
+ - At most one broad event per assistant multi-tool batch. A batch may produce a warning but must never be blocked, because sibling results are unavailable during sequential preflight.
70
+
71
+ This is an exploration pacing mechanism, not an authorization boundary. A model can choose narrower operations; that is acceptable and safer than blocking legitimate targeted investigation.
72
+
73
+ ## State machine
74
+
75
+ Maintain state only in memory per root session:
76
+
77
+ | State | Entry | Behavior |
78
+ |---|---|---|
79
+ | `tracking` | enabled session starts | Count eligible broad operations. |
80
+ | `warned` | count reaches `warnAfter` | Send one steer nudge and visible UI notification; allow current call. |
81
+ | `delegation-pending` | a non-management `subagent` call follows a warning | Wait for its `tool_result`. |
82
+ | `tracking` | delegated call succeeds | Reset the current broad-operation streak and warning latch. |
83
+ | `fallback-warn-only` | `subagent` is inactive, or the pending delegated call errors | Never block for the rest of the session; continue warnings/observability. |
84
+ | `bypassed` | user runs session `off` | Permit all calls for the rest of the session. |
85
+ | `blocking` | isolated call would exceed `blockAfter` in `mode: "block"` | Return `{ block: true, reason }`; remain eligible for later explicit user override. |
86
+
87
+ Additional state: broad attempts, allowed broad calls, blocked broad calls, warning count, bypass allowance, and delegation outcome. Do not retain paths, search patterns, task text, tool arguments, tool-call IDs, model output, or child output.
88
+
89
+ Before blocking, check `pi.getActiveTools()` includes `subagent`. If it does not, transition to `fallback-warn-only` and permit the call. When a non-management delegated launch after warning returns `isError`, also transition to `fallback-warn-only`; do not parse its content or guess whether an agent is suitable.
90
+
91
+ ## User escape hatch
92
+
93
+ Register a **user-only slash command** only when the guard is enabled:
94
+
95
+ ```text
96
+ /subagents-exploration-guard status
97
+ /subagents-exploration-guard allow [1..20]
98
+ /subagents-exploration-guard off
99
+ ```
100
+
101
+ - `status` exposes effective mode, state, counters, next threshold, and whether delegation fallback is active; it never displays paths or queries.
102
+ - `allow` permits the requested number of otherwise-blocked broad operations for this session only; default is one, maximum is 20.
103
+ - `off` disables the guard for the current session only.
104
+ - Persistent enablement/disablement remains config-file controlled and takes effect after `/reload` or restart.
105
+ - Do not add a model-callable `subagent` action for bypass. The model must not grant itself an override.
106
+ - Block reasons must name the delegation alternative and the exact user escape command.
107
+
108
+ ## Ordered implementation tasks
109
+
110
+ ### 1. Verify prerequisites and establish the implementation boundary
111
+
112
+ **Discovery**
113
+ - Confirm Phase 1–3 artifacts, release state, and telemetry schema with their owners.
114
+ - Inspect `src/extensions/pi-subagents/src/extension/index.ts`, `src/extensions/pi-subagents/src/extension/tool-description.ts`, and Phase 3 telemetry implementation.
115
+ - Confirm the telemetry-gate report satisfies the numeric criteria above.
116
+
117
+ **Identification**
118
+ - No source change in this task.
119
+ - Phase 4 is owned by `pi-subagents`, because `src/extensions/pi-subagents/src/extension/index.ts` is the host/main-session registration point and owns the `subagent` capability.
120
+
121
+ **Change**
122
+ - Record the go/no-go decision before enabling any block-mode beta.
123
+ - Do not modify Phase 1–3 code, public RPC/preflight versions, child runtime budgets, or core tool definitions.
124
+
125
+ **Verification**
126
+ - Success: telemetry shows advisory routing is insufficient under the declared gate.
127
+ - Failure: if metrics are absent, under-sampled, or show low residual broad exploration, do not implement/enable blocking.
128
+ - Regression: Phase 1–3 behavior remains independently deployable.
129
+
130
+ ### 2. Add validated opt-in guard configuration
131
+
132
+ **Discovery**
133
+ - Inspect `src/extensions/pi-subagents/src/shared/types.ts` `ExtensionConfig`.
134
+ - Inspect `src/extensions/pi-subagents/src/extension/config.ts` load/error behavior.
135
+ - Reuse the existing config-file location and startup loading in `extension/index.ts`; do not add a second settings file.
136
+
137
+ **Identification**
138
+ - Modify `src/extensions/pi-subagents/src/shared/types.ts` to add `BroadExplorationGuardConfig` and `ExtensionConfig.broadExplorationGuard`.
139
+ - Add `src/extensions/pi-subagents/src/extension/exploration-guard.ts` for guard-specific parsing/defaulting.
140
+ - Add `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`.
141
+
142
+ **Change**
143
+ - Export exact symbols from the new module:
144
+ - `resolveBroadExplorationGuardConfig(raw)`
145
+ - `classifyBroadExplorationCall(event, cwd, smallReadMaxLines)`
146
+ - `registerMainExplorationGuard(pi, config)`
147
+ - Make `resolveBroadExplorationGuardConfig` return either normalized config or a concise error. Invalid input must result in disabled guard behavior, not a thrown `tool_call` handler error.
148
+ - Keep guard config separate from child `ToolBudgetConfig`; it has different scope and semantics.
149
+ - Do not add environment-variable overrides, global telemetry dependencies, or new package dependencies.
150
+
151
+ **Verification**
152
+ - Success: absent/`false`/`off` configuration yields inactive behavior; valid warn and block configurations normalize defaults.
153
+ - Failure: malformed objects, non-integers, inverted thresholds, and out-of-range values fail open with an error.
154
+ - Regression: existing config keys, especially `toolBudget`, remain unchanged.
155
+
156
+ ### 3. Implement classifier and state-machine behavior
157
+
158
+ **Discovery**
159
+ - Inspect `src/core/tools/read.ts`, `grep.ts`, `find.ts`, and `ls.ts` input shapes and default limits.
160
+ - Inspect `src/extensions/workflow/adapter.ts` `isSoleToolCall` and `transitionBatchBlock`.
161
+ - Inspect `src/core/extensions/types.ts` `ToolCallEvent`, `ToolCallEventResult`, and `ExtensionAPI.getActiveTools()`.
162
+
163
+ **Identification**
164
+ - Modify only `src/extensions/pi-subagents/src/extension/exploration-guard.ts` and its new unit test.
165
+ - Do not export or change private core read-classification helpers; implement the narrow guard classifier locally from typed event inputs.
166
+
167
+ **Change**
168
+ - Implement the exclusion and broad-operation rules above.
169
+ - Inspect `ctx.sessionManager.getBranch()` only to determine whether the current assistant message has multiple tool calls; never persist branch contents.
170
+ - Deduplicate to one counted event per batch.
171
+ - Implement the documented state transitions, including:
172
+ - single soft nudge through `pi.sendUserMessage(..., { deliverAs: "steer" })`;
173
+ - best-effort `ctx.ui.notify` when UI exists;
174
+ - block response only for isolated broad calls in block mode;
175
+ - active-tool and failed-delegation fallback to warn-only;
176
+ - successful non-management delegated execution resets the current streak.
177
+ - Wrap all event-handler logic in `try/catch`; on any unexpected error, emit a concise local diagnostic and return `undefined` so the tool executes.
178
+ - Keep block/nudge strings short and stable. Example block reason:
179
+
180
+ ```text
181
+ Exploration guard: repeated broad repo exploration is paused. Delegate the remaining survey with subagent, or ask the user to run /subagents-exploration-guard allow or off. Small targeted reads remain allowed.
182
+ ```
183
+
184
+ **Verification**
185
+ - Success cases:
186
+ - Two broad operations warn once with default thresholds.
187
+ - In block mode, four broad operations are allowed and the next isolated broad operation is blocked.
188
+ - A successful delegated execution resets the streak.
189
+ - A successful `subagent({ action: "list" })` does not reset the streak.
190
+ - Failure/fallback cases:
191
+ - Inactive `subagent` tool or failed delegated execution permits continued exploration in warn-only fallback.
192
+ - Handler exceptions fail open.
193
+ - Multi-tool batches are not blocked.
194
+ - Regression checks:
195
+ - `bash`, `write`, `edit`, custom tools, small targeted reads, excluded documentation/resource paths, and narrow searches are never blocked.
196
+
197
+ ### 4. Register the guard at the main host lifecycle boundary
198
+
199
+ **Discovery**
200
+ - Inspect `src/extensions/pi-subagents/src/extension/index.ts` startup cleanup (`__piSubagentRuntimeCleanup`), `session_start`, and `session_shutdown`.
201
+ - Inspect `src/extensions/pi-subagents/src/runs/shared/pi-args.ts` `SUBAGENT_CHILD_ENV`.
202
+ - Inspect `test/unit/index-child-registration.test.ts` child-registration assertions.
203
+
204
+ **Identification**
205
+ - Modify `src/extensions/pi-subagents/src/extension/index.ts`.
206
+ - Reuse the new `registerMainExplorationGuard` from `exploration-guard.ts`.
207
+ - Do not modify `subagent-prompt-runtime.ts`, `tool-budget.ts`, `pi-args.ts`, or `src/core/agent-session.ts`.
208
+
209
+ **Change**
210
+ - After `const config = loadConfig()`, resolve/register the main guard.
211
+ - Ensure `registerMainExplorationGuard` independently returns without registration when `SUBAGENT_CHILD_ENV === "1"`.
212
+ - Add its `dispose()` call to the existing reload cleanup path. Disposal must make stale callbacks inert because `pi.on` handlers may remain registered after reload.
213
+ - Reset only in-memory guard counters on `session_start` and clear them on `session_shutdown`.
214
+ - Register the slash command only for enabled configurations and only in the main process.
215
+
216
+ **Verification**
217
+ - Success: enabled root session registers one `tool_call`, one `tool_result`, lifecycle handlers, and the user command.
218
+ - Failure: disabled config registers no guard handler; guard initialization error cannot prevent the rest of `pi-subagents` from loading.
219
+ - Regression: existing child-mode early-return test still proves no parent extension registrations occur in normal or fanout child sessions.
220
+
221
+ ### 5. Add privacy-preserving observability
222
+
223
+ **Discovery**
224
+ - Inspect `ExtensionAPI.appendEntry` in `src/core/extensions/types.ts`.
225
+ - Inspect existing custom-entry and notification practices in `extension/index.ts` and watchdog runtime code.
226
+
227
+ **Identification**
228
+ - Modify `src/extensions/pi-subagents/src/extension/exploration-guard.ts`.
229
+ - Extend `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`.
230
+
231
+ **Change**
232
+ - Emit local aggregate transition entries only for:
233
+ - activated,
234
+ - warned,
235
+ - blocked,
236
+ - user-allow,
237
+ - user-off,
238
+ - delegation-started,
239
+ - delegation-succeeded,
240
+ - delegation-failed,
241
+ - delegation-unavailable,
242
+ - config-invalid.
243
+ - Entry payload may include mode, state, aggregate counters, and classifier category (`read`, `grep`, `find`, `ls`), but must exclude paths, patterns, tool arguments, task text, raw errors, model output, and identifiers.
244
+ - Do not send network telemetry, write a new log file, or store raw branch/session contents.
245
+ - Ensure status output uses only the same aggregate fields.
246
+
247
+ **Verification**
248
+ - Success: transition entries are sufficient to produce telemetry-gate aggregates.
249
+ - Privacy failure: tests assert no source path or grep pattern is present in appended data, notifications, or command status.
250
+ - Regression: no entries are emitted when config is absent/off.
251
+
252
+ ### 6. Document configuration, behavior, and rollback
253
+
254
+ **Discovery**
255
+ - Inspect `src/extensions/pi-subagents/README.md` Configuration and watchdog command sections.
256
+ - Confirm the documented config path matches `getConfigPath()`.
257
+
258
+ **Identification**
259
+ - Modify `src/extensions/pi-subagents/README.md`.
260
+ - Do not change the always-visible subagent tool description: the guard is off by default and block reasons already instruct the model when it is active.
261
+
262
+ **Change**
263
+ - Add a `broadExplorationGuard` configuration section with:
264
+ - disabled-by-default statement;
265
+ - warn/block examples;
266
+ - broad-operation and exclusion definitions;
267
+ - child exclusion;
268
+ - fallback when delegation is unavailable;
269
+ - slash-command escape hatch;
270
+ - privacy statement;
271
+ - `/reload` requirement;
272
+ - rollback instructions: set `mode: "off"` or remove the block, then reload.
273
+ - State explicitly that this is not a security boundary and does not regulate bash commands.
274
+
275
+ **Verification**
276
+ - Success: copyable JSON examples validate under the new parser.
277
+ - Regression: documentation does not imply auto-delegation, automatic user consent, or child enforcement.
278
+
279
+ ### 7. Complete tests and release validation
280
+
281
+ **Discovery**
282
+ - Inspect `src/extensions/pi-subagents/package.json` test scripts and root `package.json` build script.
283
+ - Confirm `@selesai/code` alias/build requirements before testing extension code.
284
+
285
+ **Identification**
286
+ - Add/update:
287
+ - `src/extensions/pi-subagents/test/unit/main-exploration-guard.test.ts`
288
+ - `src/extensions/pi-subagents/test/unit/index-child-registration.test.ts` only if existing child early-return coverage cannot exercise the new registration path.
289
+
290
+ **Change**
291
+ - Test config parsing, classifier boundaries, state transitions, batch behavior, delegation success/failure fallback, user bypass, observability redaction, reload disposal, disabled default, and child exclusion.
292
+ - Use fake `pi`, fake `ctx`, and fake `sessionManager.getBranch()`; no real tools or child processes are required for core state-machine tests.
293
+ - Do not add end-to-end model tests or modify core Vitest harnesses.
294
+
295
+ **Commands**
296
+ ```bash
297
+ cd src/extensions/pi-subagents && npm run test:unit
298
+ npm run build
299
+ npx vitest run src/__tests__/task-workflow.test.ts
300
+ ```
301
+
302
+ The final Vitest command is a regression check for the shared `tool_call` block contract. If a targeted extension test command is desired during iteration:
303
+
304
+ ```bash
305
+ cd src/extensions/pi-subagents && node --experimental-strip-types --test test/unit/main-exploration-guard.test.ts
306
+ ```
307
+
308
+ ## Acceptance criteria
309
+
310
+ - Guard is absent/inert by default.
311
+ - Guard runs only in root/main sessions and never in normal or fanout children.
312
+ - Only `read`, `grep`, `find`, and `ls` are considered; `bash`, writes, edits, and custom tools are never blocked.
313
+ - Small explicit reads and listed documentation/resource/excluded paths are never counted.
314
+ - Block mode always warns before blocking and never blocks a multi-tool batch.
315
+ - Delegation unavailable or failed after a warning transitions to warn-only fallback, not hard blocking.
316
+ - User-only session `allow` and `off` escape hatches work without persistent config mutation.
317
+ - Handler failures fail open.
318
+ - Observability is aggregate-only and contains no paths, patterns, prompts, tool arguments, or outputs.
319
+ - README documents enablement, thresholds, fallback, privacy, and rollback.
320
+ - All specified unit tests, root build, and workflow regression test pass.
321
+
322
+ ## Risks and mitigations
323
+
324
+ | Severity | Risk | Mitigation |
325
+ |---|---|---|
326
+ | High | A throwing `tool_call` handler blocks execution through the host fail-safe path. | Catch all guard errors and return `undefined`; keep parser/classifier synchronous and dependency-free. |
327
+ | High | Parallel preflight cannot see sibling results, creating unjustified blocks. | Never block a multi-tool batch; count at most one broad event for warning purposes. |
328
+ | Medium | Legitimate repository investigation may resemble broad browsing. | Narrow classifier, explicit small-read/resource exclusions, warn-only rollout, and user-only temporary/session bypasses. |
329
+ | Medium | A suitable specialist may be unavailable despite advisory text. | Check active `subagent`; downgrade to warn-only after a failed delegated execution; never parse or guess agent suitability. |
330
+ | Medium | Persisted observability may leak source details. | Persist only aggregate state/category/counters; prohibit raw args, paths, patterns, task content, output, and errors. |
331
+ | Low | Config changes are not live. | Document `/reload`/restart and provide session-only escape commands. |
332
+
333
+ ## Rollout and rollback
334
+
335
+ 1. Land code with config absent/off by default.
336
+ 2. Enable only `mode: "warn"` for volunteer sessions after the telemetry prerequisite is met.
337
+ 3. Review aggregate false positives and bypasses after the warn-only cohort gate.
338
+ 4. Permit `mode: "block"` only as explicit opt-in; never auto-upgrade existing warn users.
339
+ 5. Roll back immediately by setting `broadExplorationGuard.mode` to `"off"` or removing the block and reloading. This removes enforcement without data migration or child-process impact.
340
+
341
+ ```acceptance-report
342
+ {
343
+ "criteriaSatisfied": [
344
+ {
345
+ "id": "criterion-1",
346
+ "status": "satisfied",
347
+ "evidence": "Verified concrete ownership and hook findings: src/extensions/pi-subagents/src/extension/index.ts registers the root extension and returns early for SUBAGENT_CHILD_ENV; src/core/agent-session.ts and src/core/extensions/runner.ts route tool_call blocks; src/core/extensions/types.ts defines ToolCallEvent/ToolCallEventResult and getActiveTools(); src/extensions/workflow/adapter.ts provides the main-session blocking and batch-inspection precedent; src/extensions/pi-subagents/src/runs/shared/tool-budget.ts provides soft-nudge/hard-block wording and counter precedent."
348
+ }
349
+ ],
350
+ "changedFiles": [],
351
+ "testsAddedOrUpdated": [],
352
+ "commandsRun": [
353
+ {
354
+ "command": "read/grep over Phase 1-4 reconnaissance, extension registration/config, tool schemas, hook types, workflow adapter, and unit-test harnesses",
355
+ "result": "passed",
356
+ "summary": "Static source verification completed; no implementation commands were run because this task is planning-only."
357
+ }
358
+ ],
359
+ "validationOutput": [
360
+ "Confirmed the safest host hook is the pi-subagents main-session tool_call handler, not core tool registration or child tool-budget code.",
361
+ "Confirmed child exclusion is already structurally supported by src/extensions/pi-subagents/src/extension/index.ts early return and existing index-child-registration tests.",
362
+ "Confirmed read/grep/find/ls schemas expose the path/limit signals required for a conservative broad-operation classifier."
363
+ ],
364
+ "residualRisks": [
365
+ "Phase 1-3 implementation and telemetry availability were not verified as released in this planning task; Phase 4 is gated on their completion and measured advisory insufficiency.",
366
+ "The host's sequential parallel-tool preflight makes result-aware batch enforcement unsafe; this plan intentionally permits all multi-tool batches.",
367
+ "No raw telemetry service was found in the inspected Phase 4 surfaces; aggregate local transition entries must be mapped to the Phase 3 telemetry process before rollout."
368
+ ],
369
+ "noStagedFiles": true,
370
+ "diffSummary": "No files modified; implementation-ready Phase 4 opt-in enforcement plan only.",
371
+ "reviewFindings": [
372
+ "high: src/core/extensions/runner.ts:933-954 and src/core/agent-session.ts:484-513 - handler exceptions propagate into tool blocking; guard implementation must fail open.",
373
+ "high: docs/extensions.md:711-713 and src/extensions/workflow/adapter.ts:402-426 - sibling results are unavailable during parallel preflight; broad-operation blocking must exclude multi-tool batches.",
374
+ "medium: src/extensions/pi-subagents/src/runs/shared/tool-budget.ts - existing tool budget applies to child runtime only and must not be reused as parent enforcement without child/main isolation and false-positive controls.",
375
+ "medium: src/core/tools/read.ts, grep.ts, find.ts, and ls.ts - naive counting would classify normal targeted investigation as broad; classifier must require the documented path/limit conditions."
376
+ ],
377
+ "manualNotes": "No implementation or edits were performed. The recommended design adds one main-only pi-subagents extension module, one optional ExtensionConfig field, focused node:test coverage, and README documentation; it deliberately avoids core, SDK, RPC, preflight, schema, and child-runtime changes."
378
+ }
379
+ ```
380
+
381
381
  ⧉ copy assistant: /cp 35abed