@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
@@ -296,4 +296,4 @@ export function reconcileDetachedWorkflowChildCompletion(input: {
296
296
  });
297
297
  }
298
298
  return true;
299
- }
299
+ }
@@ -185,4 +185,4 @@ export function workflowForegroundSteeringLaunchOptions(control: ForegroundRunCo
185
185
  steerCapabilityPath: steerCapabilityPath(control.workflowSteeringDir, index),
186
186
  steerAckDir,
187
187
  };
188
- }
188
+ }
@@ -116,4 +116,4 @@ export function planAbortRecovery(input: {
116
116
  const progressLimit = emptyZeroUsageTerminal ? terminal.index : input.messages.length;
117
117
  if (!hasUsefulProgress(input.messages, progressLimit)) return settle("no useful prior progress");
118
118
  return { action: "resume", prompt: ABORT_RECOVERY_PROMPT };
119
- }
119
+ }
@@ -678,7 +678,15 @@ function parseAcceptanceReportBody(body: string): { report?: AcceptanceReport; e
678
678
  return validateAcceptanceReport(parseReportJson(body));
679
679
  }
680
680
 
681
- function parseUnterminatedAcceptanceReportFence(output: string): { report?: AcceptanceReport; error?: string } {
681
+ interface AcceptanceReportParseResult {
682
+ report?: AcceptanceReport;
683
+ error?: string;
684
+ /** True when an acceptance-report signal was found but its envelope was invalid. */
685
+ malformed?: boolean;
686
+ sourcePath?: string;
687
+ }
688
+
689
+ function parseUnterminatedAcceptanceReportFence(output: string): AcceptanceReportParseResult {
682
690
  const opener = /```acceptance[-_]report\b[^\n]*\n/gi.exec(output);
683
691
  if (!opener) return {};
684
692
  const bodyStart = opener.index + opener[0].length;
@@ -687,13 +695,13 @@ function parseUnterminatedAcceptanceReportFence(output: string): { report?: Acce
687
695
  const validation = validateAcceptanceReport(JSON.parse(output.slice(bodyStart).trim()) as unknown);
688
696
  return validation.report
689
697
  ? { report: validation.report }
690
- : { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}` };
698
+ : { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}`, malformed: true };
691
699
  } catch (error) {
692
- return { error: `Failed to parse acceptance-report: ${error instanceof Error ? error.message : String(error)}` };
700
+ return { error: `Failed to parse acceptance-report: ${error instanceof Error ? error.message : String(error)}`, malformed: true };
693
701
  }
694
702
  }
695
703
 
696
- function parseGenericJsonAcceptanceReportBody(body: string): { report?: AcceptanceReport; error?: string } {
704
+ function parseGenericJsonAcceptanceReportBody(body: string): AcceptanceReportParseResult {
697
705
  const parsed = parseReportJson(body);
698
706
  const normalized = normalizeAcceptanceReportValue(parsed);
699
707
  const hasCriteriaMarker = normalized.value !== null
@@ -704,12 +712,12 @@ function parseGenericJsonAcceptanceReportBody(body: string): { report?: Acceptan
704
712
  const validation = validateAcceptanceReport(parsed);
705
713
  return validation.report
706
714
  ? { report: validation.report }
707
- : { error: `Invalid acceptance-report: ${validation.errors.join("; ")}` };
715
+ : { error: `Invalid acceptance-report: ${validation.errors.join("; ")}`, malformed: true };
708
716
  }
709
717
 
710
718
  export const ACCEPTANCE_REPORT_NOT_FOUND = "Structured acceptance report not found.";
711
719
 
712
- export function parseAcceptanceReport(output: string): { report?: AcceptanceReport; error?: string } {
720
+ export function parseAcceptanceReport(output: string): AcceptanceReportParseResult {
713
721
  const explicitFencePresent = /```acceptance[-_]report\b/i.test(output);
714
722
  const fenced = fencedBlocks(output, "acceptance[-_]report");
715
723
  const parseErrors: string[] = [];
@@ -722,17 +730,17 @@ export function parseAcceptanceReport(output: string): { report?: AcceptanceRepo
722
730
  parseErrors.push(error instanceof Error ? error.message : String(error));
723
731
  }
724
732
  }
725
- if (parseErrors.length > 0) return { error: `Failed to parse acceptance-report: ${parseErrors.join("; ")}` };
733
+ if (parseErrors.length > 0) return { error: `Failed to parse acceptance-report: ${parseErrors.join("; ")}`, malformed: true };
726
734
  if (explicitFencePresent) {
727
735
  const recovered = parseUnterminatedAcceptanceReportFence(output);
728
736
  if (recovered.report || recovered.error) return recovered;
729
- return { error: "Failed to parse acceptance-report: Empty or unterminated acceptance-report fence." };
737
+ return { error: "Failed to parse acceptance-report: Empty or unterminated acceptance-report fence.", malformed: true };
730
738
  }
731
739
  for (const body of fencedBlocks(output, "(?:json|jsonc|json5)")) {
732
740
  try {
733
741
  const parsed = parseGenericJsonAcceptanceReportBody(body);
734
742
  if (parsed.report) return { report: parsed.report };
735
- if (parsed.error) return { error: `Failed to parse acceptance-report: ${parsed.error}` };
743
+ if (parsed.error) return { error: `Failed to parse acceptance-report: ${parsed.error}`, malformed: parsed.malformed };
736
744
  } catch {
737
745
  // Ignore unrelated malformed generic JSON. A recognizable report shape
738
746
  // returns exact validation errors above instead of being mistaken for prose.
@@ -742,20 +750,20 @@ export function parseAcceptanceReport(output: string): { report?: AcceptanceRepo
742
750
  if (markerIndex !== -1) {
743
751
  const jsonStart = output.indexOf("{", markerIndex);
744
752
  if (jsonStart === -1) {
745
- return { error: "Failed to parse acceptance-report: Expected a JSON object after ACCEPTANCE_REPORT:." };
753
+ return { error: "Failed to parse acceptance-report: Expected a JSON object after ACCEPTANCE_REPORT:.", malformed: true };
746
754
  }
747
755
  const json = extractBalancedJson(output, jsonStart);
748
756
  if (!json) {
749
- return { error: "Failed to parse acceptance-report: Unterminated JSON object after ACCEPTANCE_REPORT:." };
757
+ return { error: "Failed to parse acceptance-report: Unterminated JSON object after ACCEPTANCE_REPORT:.", malformed: true };
750
758
  }
751
759
  try {
752
760
  const parsed = JSON.parse(json) as unknown;
753
761
  const validation = validateAcceptanceReport(parsed);
754
762
  if (validation.report) return { report: validation.report };
755
- return { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}` };
763
+ return { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}`, malformed: true };
756
764
  } catch (error) {
757
765
  const message = error instanceof Error ? error.message : String(error);
758
- return { error: `Failed to parse acceptance-report: ${message}` };
766
+ return { error: `Failed to parse acceptance-report: ${message}`, malformed: true };
759
767
  }
760
768
  }
761
769
  return { error: ACCEPTANCE_REPORT_NOT_FOUND };
@@ -764,14 +772,18 @@ export function parseAcceptanceReport(output: string): { report?: AcceptanceRepo
764
772
  function parseAcceptanceReportSources(
765
773
  output: string,
766
774
  fileOutput: { content: string; path: string; authoritative?: boolean } | undefined,
767
- ): { report?: AcceptanceReport; error?: string } {
775
+ ): AcceptanceReportParseResult {
768
776
  const fromText = () => parseAcceptanceReport(output);
769
777
  const fromFile = () => {
770
778
  if (!fileOutput) return { error: ACCEPTANCE_REPORT_NOT_FOUND };
771
779
  const parsed = parseAcceptanceReport(fileOutput.content);
772
780
  return parsed.report || parsed.error === ACCEPTANCE_REPORT_NOT_FOUND
773
781
  ? parsed
774
- : { error: `${parsed.error} (in configured output ${fileOutput.path})` };
782
+ : {
783
+ ...parsed,
784
+ error: `${parsed.error} (in configured output ${fileOutput.path})`,
785
+ sourcePath: fileOutput.path,
786
+ };
775
787
  };
776
788
  const [primary, secondary] = fileOutput?.authoritative ? [fromFile, fromText] : [fromText, fromFile];
777
789
  const first = primary();
@@ -1272,7 +1284,7 @@ export async function evaluateAcceptance(input: {
1272
1284
  * be misattributed). Searched for the acceptance report; searched before
1273
1285
  * the assistant output when `authoritative` (outputMode "file-only").
1274
1286
  */
1275
- fileOutput?: { content: string; path: string; authoritative?: boolean };
1287
+ fileOutput?: { content: string; path: string; authoritative?: boolean; durable?: boolean };
1276
1288
  report?: AcceptanceReport;
1277
1289
  reportError?: string;
1278
1290
  reviewResult?: AcceptanceReviewResult;
@@ -1296,16 +1308,25 @@ export async function evaluateAcceptance(input: {
1296
1308
  };
1297
1309
  if (acceptance.level === "none") return ledger;
1298
1310
 
1299
- const parsed = input.reportError
1311
+ const parsed: AcceptanceReportParseResult = input.reportError
1300
1312
  ? { error: input.reportError }
1301
1313
  : input.report
1302
1314
  ? (() => {
1303
1315
  const validation = validateAcceptanceReport(input.report);
1304
1316
  return validation.report
1305
1317
  ? { report: validation.report }
1306
- : { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}` };
1318
+ : { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join("; ")}`, malformed: true };
1307
1319
  })()
1308
1320
  : parseAcceptanceReportSources(input.output, input.fileOutput);
1321
+ const durableFileOutput = input.fileOutput?.authoritative && input.fileOutput.durable ? input.fileOutput : undefined;
1322
+ if (parsed.malformed && parsed.sourcePath && durableFileOutput) {
1323
+ ledger.recovery = {
1324
+ status: "available-for-review",
1325
+ reason: "acceptance-metadata-rejected",
1326
+ reportPath: parsed.sourcePath,
1327
+ reportHash: hash(durableFileOutput.content),
1328
+ };
1329
+ }
1309
1330
  const needsReport = acceptanceRequiresChildReport(acceptance);
1310
1331
  if (parsed.report) {
1311
1332
  ledger.childReport = parsed.report;
@@ -1314,6 +1335,10 @@ export async function evaluateAcceptance(input: {
1314
1335
  } else if (!input.reportOptional || needsReport || parsed.error !== ACCEPTANCE_REPORT_NOT_FOUND) {
1315
1336
  ledger.childReportParseError = parsed.error;
1316
1337
  ledger.runtimeChecks.push({ id: "attestation", status: "failed", message: parsed.error ?? "Structured acceptance report missing." });
1338
+ if (ledger.recovery) {
1339
+ ledger.status = "rejected";
1340
+ ledger.evidenceStatus = "rejected";
1341
+ }
1317
1342
  if (!input.reportOptional) {
1318
1343
  ledger.status = "rejected";
1319
1344
  ledger.evidenceStatus = "rejected";
@@ -1420,4 +1445,4 @@ export function acceptanceFailureMessage(ledger: AcceptanceLedger): string | und
1420
1445
  if (failedVerify) return `Acceptance verification '${failedVerify.id}' ${failedVerify.status}.`;
1421
1446
  if (ledger.reviewResult?.status === "blockers") return "Acceptance review found blockers.";
1422
1447
  return "Acceptance rejected.";
1423
- }
1448
+ }
@@ -35,4 +35,4 @@ export function attachContractProjections<T extends SingleResult>(result: T): T
35
35
  result.review = buildReviewProjection(result);
36
36
  if (!result.effects) result.effects = {} satisfies EffectsProjection;
37
37
  return result;
38
- }
38
+ }
@@ -594,4 +594,4 @@ export function projectAsyncStatusSnapshot(jobs: Iterable<AsyncJobState>, option
594
594
  };
595
595
  enforceByteLimit(snapshot);
596
596
  return snapshot;
597
- }
597
+ }
@@ -6,4 +6,4 @@ export function backgroundProcessOptions(platform: NodeJS.Platform = process.pla
6
6
  detached: platform !== "win32",
7
7
  windowsHide: true,
8
8
  };
9
- }
9
+ }
@@ -206,4 +206,4 @@ export function decodeSubagentCapabilityCeiling(value: string | undefined): Reso
206
206
  throw new Error("Invalid inherited capability ceiling version.");
207
207
  }
208
208
  return parseSubagentCapabilityCeiling(parsed, "inherited capability ceiling");
209
- }
209
+ }
@@ -113,4 +113,4 @@ export function outputEntryFromAsyncResult(result: { agent: string; output: stri
113
113
  agent: result.agent,
114
114
  stepIndex,
115
115
  };
116
- }
116
+ }
@@ -48,4 +48,4 @@ export function resolveAsyncStatusChild(
48
48
 
49
49
  export function isStoppableAsyncStatusStep(step: AsyncStatusStep): boolean {
50
50
  return step.status === "pending" || step.status === "running";
51
- }
51
+ }
@@ -148,4 +148,4 @@ export function planChildLaunch(input: ChildLaunchPlanInput): ChildLaunchPlan {
148
148
  const outputPath = resolveSingleOutputPath(behavior.output, input.runtimeCwd, instructionCwd, input.outputBaseDir);
149
149
 
150
150
  return { stepCwd, instructionCwd, readExistenceCwd, behavior, inheritedRelativeParallelOutput, namespaceOutputPath, outputPath, skillNames };
151
- }
151
+ }
@@ -412,4 +412,4 @@ export function projectChildLifecycle(event: { type?: string; willRetry?: unknow
412
412
  if (event.type === "agent_settled") return state?.compactionRetryActive ? "none" : "start-drain";
413
413
  if (terminalAssistantStop) return "start-drain";
414
414
  return "none";
415
- }
415
+ }
@@ -126,4 +126,4 @@ export function resolveClaudeCodeLaunch(input: {
126
126
  },
127
127
  parser: createClaudeCodeJsonlParser(),
128
128
  };
129
- }
129
+ }
@@ -126,4 +126,4 @@ export function resolveCodexExecLaunch(input: {
126
126
  },
127
127
  parser: createCodexExecJsonlParser(finalMessagePath),
128
128
  };
129
- }
129
+ }
@@ -86,4 +86,4 @@ export function projectSettlementDiagnostic(
86
86
  ...(input.requiredOutput ? { requiredOutput: input.requiredOutput } : {}),
87
87
  afterCompactionSettlement: input.afterCompactionSettlement === true,
88
88
  };
89
- }
89
+ }
@@ -249,4 +249,4 @@ export function evaluateCompletionMutationGuard(input: CompletionMutationGuardIn
249
249
  triggered: expectedMutation && !attemptedMutation && !noEditChallengeComplete,
250
250
  blocked: false,
251
251
  };
252
- }
252
+ }
@@ -41,4 +41,4 @@ export function contextModePrefix(
41
41
  if (!label) return "";
42
42
  if (mode === "fork") return `${theme.fg("warning", label)} `;
43
43
  return `${theme.fg("dim", label)} `;
44
- }
44
+ }
@@ -111,4 +111,4 @@ export function resolveCursorAgentLaunch(input: {
111
111
  },
112
112
  parser: createCursorAgentJsonlParser(),
113
113
  };
114
- }
114
+ }
@@ -294,4 +294,4 @@ export async function validateDynamicCollection(schema: JsonSchemaObject | undef
294
294
  if (validation.status === "invalid") {
295
295
  throw new DynamicFanoutError(`Collected output validation failed: ${validation.message}`);
296
296
  }
297
- }
297
+ }
@@ -75,4 +75,4 @@ export function encodeExtensionBindings(input: ExtensionBindings | undefined): s
75
75
  export function omitExtensionBindingsEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
76
76
  const { [SELESAI_SUBAGENT_EXTENSION_BINDINGS_ENV]: _extensionBindings, ...sanitized } = env;
77
77
  return sanitized;
78
- }
78
+ }
@@ -164,4 +164,4 @@ export function externalCliReceiptMetadata(input: {
164
164
  supervisor: { mode: "unsupported", reason: runner.unsupportedReasons.supervisor },
165
165
  nonResumableReason: runner.nonResumableReason,
166
166
  };
167
- }
167
+ }
@@ -119,4 +119,4 @@ export function invalidateExternalCliPreflight(command: string, spec: ExternalCl
119
119
  export function clearExternalCliPreflightCacheForTests(): void {
120
120
  cache.clear();
121
121
  lookup.clear();
122
- }
122
+ }
@@ -426,4 +426,4 @@ export function runExternalCli(input: {
426
426
  })();
427
427
  });
428
428
  });
429
- }
429
+ }
@@ -457,4 +457,4 @@ export async function requestExternalJobOperation<T extends ExternalJobHandle |
457
457
  fs.rmSync(outPath, { force: true });
458
458
  if (!response.ok) throw new ExternalJobProviderError(response.message, { code: response.code, ...(response.blockingJobId ? { blockingJobId: response.blockingJobId } : {}) });
459
459
  return response.result as T;
460
- }
460
+ }
@@ -386,4 +386,4 @@ export async function runExternalJob(input: {
386
386
  input.registerTimeout?.(undefined);
387
387
  input.registerStop?.(undefined);
388
388
  }
389
- }
389
+ }
@@ -7,4 +7,4 @@ export function rewriteFastModeProviderRequest(event: BeforeProviderRequestEvent
7
7
 
8
8
  export default function registerSubagentFastModeExtension(pi: ExtensionAPI): void {
9
9
  pi.on("before_provider_request", rewriteFastModeProviderRequest);
10
- }
10
+ }
@@ -144,6 +144,7 @@ export function validHostStepNodes(graph: WorkflowGraphSnapshot | undefined): Ho
144
144
  export function assertWorkflowGraphHostSteps(graph: WorkflowGraphSnapshot | undefined, source = "status", expectedRunId?: string): void {
145
145
  if (!graph) return;
146
146
  if (expectedRunId !== undefined && graph.runId !== expectedRunId) throw new Error(`Invalid host step '${source}': workflowGraph.runId does not match the status run id.`);
147
+ if (!Array.isArray(graph.nodes)) throw new Error(`Invalid host step '${source}.workflowGraph': nodes must be an array.`);
147
148
  const hostStepCount = graph.nodes.filter((node) => node.kind === "host-step").length;
148
149
  if (hostStepCount > HOST_STEP_MAX_COUNT) throw new Error(`Invalid host step '${source}': workflowGraph contains more than ${HOST_STEP_MAX_COUNT} host steps.`);
149
150
  const hostSteps: HostStepNodeV1[] = [];
@@ -227,4 +228,4 @@ export function hostStepVerdictLabel(state: HostStepState, verdict: HostStepVerd
227
228
  export function hostStepReportName(reportPath: string | undefined): string | undefined {
228
229
  if (!reportPath) return undefined;
229
230
  return reportPath.split(/[\\/]/).filter(Boolean).at(-1);
230
- }
231
+ }
@@ -102,4 +102,4 @@ export function validateAsyncStatusLaneMetadata(status: Pick<AsyncStatus, "runId
102
102
  if (hasPath !== hasBranch) throw new Error(`${label}.steps[${index}] must include both worktreePath and branch.`);
103
103
  if (hasPath) normalizeWorktreeStatusReference({ worktreePath: step.worktreePath, branch: step.branch }, `${label}.steps[${index}]`);
104
104
  }
105
- }
105
+ }
@@ -13,4 +13,4 @@ export function preflightLaunchCwd(requestedCwd: string, effectiveCwd: string):
13
13
  return `Subagent launch aborted: cwd could not be accessed: ${effectiveCwd}${resolution}\n${error instanceof Error ? error.message : String(error)}`;
14
14
  }
15
15
  return undefined;
16
- }
16
+ }
@@ -299,4 +299,4 @@ async function arbitrateWithGuard(
299
299
  } catch {
300
300
  return "unavailable";
301
301
  }
302
- }
302
+ }
@@ -218,4 +218,4 @@ export function summarizeRecentMutatingFailures(state: MutatingFailureState): st
218
218
  return state.recentFailures
219
219
  .map((entry) => `${entry.tool}${entry.path ? `(${entry.path})` : ""}: ${entry.error}`)
220
220
  .join(" | ");
221
- }
221
+ }
@@ -419,4 +419,4 @@ function readJson(filePath: string): unknown | undefined {
419
419
  } catch (error) {
420
420
  throw new Error(`Invalid JSON in '${filePath}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
421
421
  }
422
- }
422
+ }
@@ -480,4 +480,4 @@ function stableStringify(value: unknown): string {
480
480
  if (Array.isArray(value)) return `[${value.map((entry) => stableStringify(entry)).join(",")}]`;
481
481
  const obj = value as Record<string, unknown>;
482
482
  return `{${Object.keys(obj).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(obj[key])}`).join(",")}}`;
483
- }
483
+ }
@@ -191,4 +191,4 @@ function resourceNameToToolName(name: string): string {
191
191
  .toLowerCase();
192
192
  if (!result || /^\d/.test(result)) result = `resource${result ? `_${result}` : ""}`;
193
193
  return result;
194
- }
194
+ }
@@ -302,4 +302,4 @@ function shortenExclusionsToTTL(items: ModelExclusion[], ttlMs: number, now: num
302
302
  const previousLength = items.length;
303
303
  prune(items, now);
304
304
  return changed || items.length !== previousLength;
305
- }
305
+ }
@@ -321,15 +321,23 @@ export function resolveSubagentModelOverride(
321
321
  const explicit = trimmed && trimmed !== INHERIT_MODEL ? trimmed : undefined;
322
322
  if (!parentModel) throwForUnresolvedEnforcedInheritScope(options?.scope, explicit === undefined || options?.source === "inherited");
323
323
  let resolved: string | undefined;
324
+ let resolvedFromRegistry = explicit === undefined;
324
325
  if (explicit === undefined) {
325
326
  resolved = parentModel ? `${parentModel.provider}/${parentModel.id}` : undefined;
326
327
  } else {
327
- resolved = resolveRequiredSubagentModelCandidate(explicit, availableModels, preferredProvider);
328
- }
329
- if (resolved && explicit !== undefined && options?.source === "explicit") {
330
- throwForExplicitModelExclusion(resolved);
328
+ const candidate = resolveSubagentModelCandidate(explicit, availableModels, preferredProvider);
329
+ if (options?.source === "explicit") {
330
+ resolved = candidate ?? resolveRequiredSubagentModelCandidate(explicit, availableModels, preferredProvider);
331
+ throwForExplicitModelExclusion(resolved);
332
+ resolvedFromRegistry = true;
333
+ } else if (candidate) {
334
+ resolved = candidate;
335
+ resolvedFromRegistry = true;
336
+ } else {
337
+ resolved = explicit;
338
+ }
331
339
  }
332
- if (resolved && options?.scope) {
340
+ if (resolved && options?.scope && resolvedFromRegistry) {
333
341
  const source: ModelSource = explicit === undefined ? "inherited" : (options.source ?? "inherited");
334
342
  enforceModelScopes(resolved, options.scope, source, options.onWarn);
335
343
  }
@@ -362,12 +370,33 @@ export function resolveEffectiveSubagentModel(
362
370
  );
363
371
  }
364
372
 
373
+ export type ModelOrigin = ModelSource | "configured";
374
+
365
375
  export interface BuildModelCandidatesOptions {
366
376
  /** Fallback models warn by default and throw when strict scope enforcement is enabled. */
367
377
  scope?: ModelScopeCheckRule | ModelScopeCheckRule[];
368
378
  onWarn?: (violation: ModelScopeViolation) => void;
369
379
  /** The primary model came from the running parent session, not configuration. */
370
380
  primaryModelFromParent?: boolean;
381
+ /** How the primary model was selected. Explicit stays strict and does not rotate to fallbacks. */
382
+ origin?: ModelOrigin;
383
+ }
384
+
385
+ const ZERO_USABLE_MODEL_CANDIDATES_ERROR =
386
+ "No usable subagent models remain after registry, scope, and cached-exclusion filtering.";
387
+
388
+ export function resolveModelOrigin(input: {
389
+ explicitModel?: string | boolean;
390
+ agentModel?: string | boolean;
391
+ parentModel?: ParentModel;
392
+ fromParent?: boolean;
393
+ storedOrigin?: ModelOrigin;
394
+ }): ModelOrigin {
395
+ if (input.storedOrigin) return input.storedOrigin;
396
+ if (input.fromParent) return "inherited";
397
+ if (inheritsParentModel(input.explicitModel, input.agentModel, input.parentModel)) return "inherited";
398
+ const trimmed = typeof input.explicitModel === "string" ? input.explicitModel.trim() : "";
399
+ return trimmed && trimmed !== INHERIT_MODEL ? "explicit" : "configured";
371
400
  }
372
401
 
373
402
  export function inheritsParentModel(
@@ -388,36 +417,51 @@ export function buildModelCandidates(
388
417
  options?: BuildModelCandidatesOptions,
389
418
  ): string[] {
390
419
  if (!primaryModel) throwForUnresolvedEnforcedInheritScope(options?.scope, true);
420
+ const origin = options?.origin ?? (options?.primaryModelFromParent ? "inherited" : "configured");
421
+ const scopes = configuredScopes(options?.scope);
422
+ const warnCachedExclusion = (candidate: string, exclusion: NonNullable<ReturnType<typeof findModelExclusion>>) => {
423
+ const reason = redactSecretValues((exclusion.reason ?? "runtime-failure").replace(/[\u0000-\u001f\u007f]+/g, " ")).slice(0, 240);
424
+ console.warn(`[pi-subagents] Skipping model '${candidate}' due to a cached exclusion (reason: ${reason}; expires: ${new Date(exclusion.expiresAt).toISOString()}).`);
425
+ };
426
+ if (origin === "explicit" && primaryModel) {
427
+ const normalized = resolveRequiredSubagentModelCandidate(primaryModel.trim(), availableModels, preferredProvider);
428
+ throwForExplicitModelExclusion(normalized);
429
+ enforceModelScopes(normalized, scopes, "explicit", options?.onWarn);
430
+ primaryModel = normalized;
431
+ }
391
432
  const seen = new Set<string>();
392
433
  const candidates: string[] = [];
393
434
  const rawCandidates = [primaryModel, ...(fallbackModels ?? [])];
435
+ let skippedPrimary: string | undefined;
394
436
  for (let index = 0; index < rawCandidates.length; index++) {
395
437
  const raw = rawCandidates[index];
396
438
  if (!raw) continue;
397
439
  const model = raw.trim();
398
- const normalized = index === 0
399
- ? options?.primaryModelFromParent
400
- ? model
401
- : resolveRequiredSubagentModelCandidate(model, availableModels, preferredProvider)
440
+ const normalized = index === 0 && (origin === "inherited" || origin === "explicit" || options?.primaryModelFromParent)
441
+ ? model
402
442
  : resolveSubagentModelCandidate(model, availableModels, preferredProvider);
403
443
  if (!normalized) {
404
- console.warn(`[pi-subagents] Skipping fallback model '${model}' because it is unavailable in this environment.`);
444
+ if (index === 0) skippedPrimary = model;
445
+ else console.warn(`[pi-subagents] Skipping fallback model '${model}' because it is unavailable in this environment.`);
405
446
  continue;
406
447
  }
407
448
  if (seen.has(normalized)) continue;
408
- const scopes = configuredScopes(options?.scope);
409
449
  if (index > 0 || scopes.some((scope) => scope.enforce === true && scope.strict === true)) {
410
450
  enforceModelScopes(normalized, scopes, "inherited", options?.onWarn);
411
451
  }
412
452
  seen.add(normalized);
413
453
  candidates.push(normalized);
414
454
  }
415
- return filterFallbackCandidates(candidates, {
416
- onExcluded(candidate, exclusion) {
417
- const reason = redactSecretValues((exclusion.reason ?? "runtime-failure").replace(/[\u0000-\u001f\u007f]+/g, " ")).slice(0, 240);
418
- console.warn(`[pi-subagents] Skipping model '${candidate}' due to a cached exclusion (reason: ${reason}; expires: ${new Date(exclusion.expiresAt).toISOString()}).`);
419
- },
420
- });
455
+ const resolved = filterFallbackCandidates(candidates, { onExcluded: warnCachedExclusion });
456
+ if (resolved.length === 0) {
457
+ if (skippedPrimary) resolveRequiredSubagentModelCandidate(skippedPrimary, availableModels, preferredProvider);
458
+ if (candidates.length > 0) throw new Error(ZERO_USABLE_MODEL_CANDIDATES_ERROR);
459
+ return resolved;
460
+ }
461
+ if (skippedPrimary) {
462
+ console.warn(`[pi-subagents] Skipping primary model '${skippedPrimary}' because it is unavailable in this environment.`);
463
+ }
464
+ return resolved;
421
465
  }
422
466
 
423
467
  const RETRYABLE_MODEL_FAILURE_PATTERNS = [
@@ -531,4 +575,4 @@ export function formatModelAttemptNote(attempt: ModelAttemptSummary, nextModel?:
531
575
  return nextModel
532
576
  ? `[fallback] ${attempt.model} failed: ${failure}. Retrying with ${nextModel}.`
533
577
  : `[fallback] ${attempt.model} failed: ${failure}.`;
534
- }
578
+ }
@@ -202,4 +202,4 @@ export function parseModelScopeConfig(
202
202
  }
203
203
 
204
204
  return Object.keys(config).length > 0 ? config : undefined;
205
- }
205
+ }
@@ -196,4 +196,4 @@ export function buildTimeoutRecoverySummary(input: {
196
196
  warning,
197
197
  message: lines.join("\n"),
198
198
  };
199
- }
199
+ }
@@ -1083,4 +1083,4 @@ export function nestedResultsPath(rootRunId: string, id: string): string {
1083
1083
  assertSafeId("rootRunId", rootRunId);
1084
1084
  assertSafeId("id", id);
1085
1085
  return path.join(DIRS.results, "nested", rootRunId, `${id}.json`);
1086
- }
1086
+ }
@@ -49,4 +49,4 @@ export function parseNestedPathEnv(value: string | undefined): NestedPathEntry[]
49
49
  export function encodeNestedPathEnv(value: NestedPathEntry[]): string {
50
50
  const sanitized = sanitizeNestedPath(value);
51
51
  return sanitized.length ? JSON.stringify(sanitized) : "";
52
- }
52
+ }
@@ -124,4 +124,4 @@ export function formatNestedRunStatusLines(children: NestedRunSummary[] | undefi
124
124
  maxLines: options.maxLines ?? 40,
125
125
  commandHints: options.commandHints ?? false,
126
126
  });
127
- }
127
+ }
@@ -496,4 +496,4 @@ export function createOrcaProgressTab(input: {
496
496
  });
497
497
  },
498
498
  };
499
- }
499
+ }
@@ -689,4 +689,4 @@ export function discardPreservedWorktrees(
689
689
  }
690
690
  }
691
691
  return { manifest, text: lines.join("\n") };
692
- }
692
+ }
@@ -276,4 +276,4 @@ export function aggregateParallelOutputs(
276
276
  .join("\n\n");
277
277
  }
278
278
 
279
- export const MAX_PARALLEL_CONCURRENCY = 4;
279
+ export const MAX_PARALLEL_CONCURRENCY = 4;
@@ -7,7 +7,7 @@ export interface PermissionConfig { rules?: PermissionRules }
7
7
 
8
8
  export const PERMISSION_POLICY_ENV = "SELESAI_SUBAGENT_PERMISSION_POLICY";
9
9
  export const PERMISSION_AUDIT_PATH_ENV = "SELESAI_SUBAGENT_PERMISSION_AUDIT_PATH";
10
- const INTERNAL_TOOLS = new Set(["contact_supervisor", "intercom", "subagent_wait", "structured_output"]);
10
+ const INTERNAL_TOOLS = new Set(["contact_supervisor", "intercom", "bg_wait", "subagent_wait", "structured_output"]);
11
11
  const DECISIONS = new Set<PermissionDecision>(["allow", "ask", "deny"]);
12
12
  const MAX_POLICY_BYTES = 16 * 1024;
13
13
  const MAX_PREVIEW_BYTES = 2048;
@@ -96,4 +96,4 @@ export function appendPermissionAudit(filePath: string | undefined, record: Reco
96
96
  if (!filePath) return;
97
97
  fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
98
98
  fs.appendFileSync(filePath, `${JSON.stringify(record)}\n`, { encoding: "utf-8", mode: 0o600 });
99
- }
99
+ }