pi-subagents 0.70.1 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +3 -1
  3. package/agents/worker.md +2 -2
  4. package/docs/agents.md +1 -1
  5. package/docs/configuration.md +15 -1
  6. package/docs/extension-api.md +3 -1
  7. package/docs/observability.md +16 -12
  8. package/docs/tool-reference.md +6 -4
  9. package/docs/workflows.md +1 -1
  10. package/package.json +2 -2
  11. package/skills/pi-subagents/references/constraints-and-recipes.md +5 -2
  12. package/skills/pi-subagents/references/execution-controls.md +2 -2
  13. package/skills/pi-subagents/references/management-authoring-rpc.md +2 -2
  14. package/src/agents/proactive-skills.d.ts +1 -0
  15. package/src/agents/proactive-skills.d.ts.map +1 -1
  16. package/src/agents/proactive-skills.js +3 -1
  17. package/src/agents/proactive-skills.js.map +1 -1
  18. package/src/agents/skills.d.ts +2 -0
  19. package/src/agents/skills.d.ts.map +1 -1
  20. package/src/agents/skills.js +41 -8
  21. package/src/agents/skills.js.map +1 -1
  22. package/src/api/delegation.d.ts +14 -0
  23. package/src/api/delegation.d.ts.map +1 -1
  24. package/src/extension/index.d.ts.map +1 -1
  25. package/src/extension/index.js +4 -0
  26. package/src/extension/index.js.map +1 -1
  27. package/src/extension/rpc.d.ts +1 -1
  28. package/src/extension/rpc.d.ts.map +1 -1
  29. package/src/extension/rpc.js +11 -1
  30. package/src/extension/rpc.js.map +1 -1
  31. package/src/extension/tool-activation.d.ts +9 -0
  32. package/src/extension/tool-activation.d.ts.map +1 -0
  33. package/src/extension/tool-activation.js +172 -0
  34. package/src/extension/tool-activation.js.map +1 -0
  35. package/src/extension/tool-description.d.ts +4 -4
  36. package/src/extension/tool-description.d.ts.map +1 -1
  37. package/src/extension/tool-description.js +1 -1
  38. package/src/intercom/intercom-bridge.d.ts.map +1 -1
  39. package/src/intercom/intercom-bridge.js +2 -0
  40. package/src/intercom/intercom-bridge.js.map +1 -1
  41. package/src/runs/background/active-async-capacity.d.ts.map +1 -1
  42. package/src/runs/background/active-async-capacity.js +4 -33
  43. package/src/runs/background/active-async-capacity.js.map +1 -1
  44. package/src/runs/background/async-execution.d.ts.map +1 -1
  45. package/src/runs/background/async-execution.js +5 -33
  46. package/src/runs/background/async-execution.js.map +1 -1
  47. package/src/runs/background/async-job-tracker.d.ts.map +1 -1
  48. package/src/runs/background/async-job-tracker.js +25 -19
  49. package/src/runs/background/async-job-tracker.js.map +1 -1
  50. package/src/runs/background/async-resume.d.ts +1 -1
  51. package/src/runs/background/async-resume.d.ts.map +1 -1
  52. package/src/runs/background/async-resume.js +7 -2
  53. package/src/runs/background/async-resume.js.map +1 -1
  54. package/src/runs/background/async-status.d.ts +1 -0
  55. package/src/runs/background/async-status.d.ts.map +1 -1
  56. package/src/runs/background/async-status.js +1 -0
  57. package/src/runs/background/async-status.js.map +1 -1
  58. package/src/runs/background/binary-bootstrap.d.ts.map +1 -1
  59. package/src/runs/background/binary-bootstrap.js +28 -6
  60. package/src/runs/background/binary-bootstrap.js.map +1 -1
  61. package/src/runs/background/fleet-view.d.ts.map +1 -1
  62. package/src/runs/background/fleet-view.js +26 -7
  63. package/src/runs/background/fleet-view.js.map +1 -1
  64. package/src/runs/background/notify.d.ts +11 -0
  65. package/src/runs/background/notify.d.ts.map +1 -1
  66. package/src/runs/background/notify.js +71 -3
  67. package/src/runs/background/notify.js.map +1 -1
  68. package/src/runs/background/process-terminal-candidate.d.ts +18 -0
  69. package/src/runs/background/process-terminal-candidate.d.ts.map +1 -0
  70. package/src/runs/background/process-terminal-candidate.js +97 -0
  71. package/src/runs/background/process-terminal-candidate.js.map +1 -0
  72. package/src/runs/background/process-terminal.d.ts +3 -15
  73. package/src/runs/background/process-terminal.d.ts.map +1 -1
  74. package/src/runs/background/process-terminal.js +19 -96
  75. package/src/runs/background/process-terminal.js.map +1 -1
  76. package/src/runs/background/retained-children.d.ts.map +1 -1
  77. package/src/runs/background/retained-children.js +3 -2
  78. package/src/runs/background/retained-children.js.map +1 -1
  79. package/src/runs/background/run-child-session.d.ts +1 -0
  80. package/src/runs/background/run-child-session.d.ts.map +1 -1
  81. package/src/runs/background/run-child-session.js.map +1 -1
  82. package/src/runs/background/run-status.d.ts.map +1 -1
  83. package/src/runs/background/run-status.js +5 -1
  84. package/src/runs/background/run-status.js.map +1 -1
  85. package/src/runs/background/runner-aliases.d.ts.map +1 -1
  86. package/src/runs/background/runner-aliases.js +2 -1
  87. package/src/runs/background/runner-aliases.js.map +1 -1
  88. package/src/runs/background/runner-startup-failure.d.ts +14 -0
  89. package/src/runs/background/runner-startup-failure.d.ts.map +1 -0
  90. package/src/runs/background/runner-startup-failure.js +47 -0
  91. package/src/runs/background/runner-startup-failure.js.map +1 -0
  92. package/src/runs/background/stale-run-reconciler.d.ts.map +1 -1
  93. package/src/runs/background/stale-run-reconciler.js +9 -1
  94. package/src/runs/background/stale-run-reconciler.js.map +1 -1
  95. package/src/runs/background/subagent-runner-bootstrap.d.ts +14 -0
  96. package/src/runs/background/subagent-runner-bootstrap.d.ts.map +1 -0
  97. package/src/runs/background/subagent-runner-bootstrap.js +277 -0
  98. package/src/runs/background/subagent-runner-bootstrap.js.map +1 -0
  99. package/src/runs/background/subagent-runner.d.ts +4 -2
  100. package/src/runs/background/subagent-runner.d.ts.map +1 -1
  101. package/src/runs/background/subagent-runner.js +53 -178
  102. package/src/runs/background/subagent-runner.js.map +1 -1
  103. package/src/runs/background/workflow-terminal-proof.d.ts +18 -0
  104. package/src/runs/background/workflow-terminal-proof.d.ts.map +1 -0
  105. package/src/runs/background/workflow-terminal-proof.js +68 -0
  106. package/src/runs/background/workflow-terminal-proof.js.map +1 -0
  107. package/src/runs/foreground/execution.d.ts.map +1 -1
  108. package/src/runs/foreground/execution.js +43 -14
  109. package/src/runs/foreground/execution.js.map +1 -1
  110. package/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  111. package/src/runs/foreground/subagent-executor.js +108 -15
  112. package/src/runs/foreground/subagent-executor.js.map +1 -1
  113. package/src/runs/shared/child-launch.d.ts.map +1 -1
  114. package/src/runs/shared/child-launch.js +3 -0
  115. package/src/runs/shared/child-launch.js.map +1 -1
  116. package/src/runs/shared/child-runtime-config.d.ts +4 -0
  117. package/src/runs/shared/child-runtime-config.d.ts.map +1 -1
  118. package/src/runs/shared/child-runtime-config.js.map +1 -1
  119. package/src/runs/shared/external-cli-runner.d.ts.map +1 -1
  120. package/src/runs/shared/external-cli-runner.js +3 -1
  121. package/src/runs/shared/external-cli-runner.js.map +1 -1
  122. package/src/runs/shared/git-environment.d.ts +3 -0
  123. package/src/runs/shared/git-environment.d.ts.map +1 -0
  124. package/src/runs/shared/git-environment.js +28 -0
  125. package/src/runs/shared/git-environment.js.map +1 -0
  126. package/src/runs/shared/mcp-config-sources.d.ts +3 -0
  127. package/src/runs/shared/mcp-config-sources.d.ts.map +1 -1
  128. package/src/runs/shared/mcp-config-sources.js.map +1 -1
  129. package/src/runs/shared/mcp-direct-tool-allowlist.js +1 -1
  130. package/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -1
  131. package/src/runs/shared/mcp-direct-tool-grant.d.ts +3 -1
  132. package/src/runs/shared/mcp-direct-tool-grant.d.ts.map +1 -1
  133. package/src/runs/shared/mcp-direct-tool-grant.js +19 -5
  134. package/src/runs/shared/mcp-direct-tool-grant.js.map +1 -1
  135. package/src/runs/shared/pi-spawn.d.ts +10 -1
  136. package/src/runs/shared/pi-spawn.d.ts.map +1 -1
  137. package/src/runs/shared/pi-spawn.js +86 -7
  138. package/src/runs/shared/pi-spawn.js.map +1 -1
  139. package/src/runs/shared/single-output.js +1 -1
  140. package/src/runs/shared/single-output.js.map +1 -1
  141. package/src/runs/shared/structured-output.d.ts +7 -0
  142. package/src/runs/shared/structured-output.d.ts.map +1 -1
  143. package/src/runs/shared/structured-output.js +74 -0
  144. package/src/runs/shared/structured-output.js.map +1 -1
  145. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  146. package/src/runs/shared/subagent-prompt-runtime.js +23 -7
  147. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  148. package/src/runs/shared/tool-availability.js +1 -1
  149. package/src/runs/shared/tool-availability.js.map +1 -1
  150. package/src/shared/child-session-name.d.ts.map +1 -1
  151. package/src/shared/child-session-name.js +4 -2
  152. package/src/shared/child-session-name.js.map +1 -1
  153. package/src/shared/fork-context.d.ts +4 -0
  154. package/src/shared/fork-context.d.ts.map +1 -1
  155. package/src/shared/fork-context.js +9 -4
  156. package/src/shared/fork-context.js.map +1 -1
  157. package/src/shared/pruned-fork.d.ts.map +1 -1
  158. package/src/shared/pruned-fork.js +68 -56
  159. package/src/shared/pruned-fork.js.map +1 -1
  160. package/src/shared/types.d.ts +29 -3
  161. package/src/shared/types.d.ts.map +1 -1
  162. package/src/shared/types.js +2 -0
  163. package/src/shared/types.js.map +1 -1
  164. package/src/slash/delegation-adapters.d.ts +7 -1
  165. package/src/slash/delegation-adapters.d.ts.map +1 -1
  166. package/src/slash/delegation-adapters.js +17 -0
  167. package/src/slash/delegation-adapters.js.map +1 -1
  168. package/src/slash/prompt-template-bridge.d.ts.map +1 -1
  169. package/src/slash/prompt-template-bridge.js +14 -1
  170. package/src/slash/prompt-template-bridge.js.map +1 -1
  171. package/src/slash/prompt-workflows.d.ts.map +1 -1
  172. package/src/slash/prompt-workflows.js +16 -2
  173. package/src/slash/prompt-workflows.js.map +1 -1
  174. package/src/slash/slash-commands.d.ts.map +1 -1
  175. package/src/slash/slash-commands.js +4 -250
  176. package/src/slash/slash-commands.js.map +1 -1
  177. package/src/slash/subagent-cost.d.ts +29 -0
  178. package/src/slash/subagent-cost.d.ts.map +1 -0
  179. package/src/slash/subagent-cost.js +271 -0
  180. package/src/slash/subagent-cost.js.map +1 -0
  181. package/src/tui/fleet.d.ts.map +1 -1
  182. package/src/tui/fleet.js +4 -0
  183. package/src/tui/fleet.js.map +1 -1
  184. package/src/tui/render.d.ts.map +1 -1
  185. package/src/tui/render.js +8 -4
  186. package/src/tui/render.js.map +1 -1
  187. package/src/watchdog/diff-tool.d.ts +2 -1
  188. package/src/watchdog/diff-tool.d.ts.map +1 -1
  189. package/src/watchdog/diff-tool.js +9 -3
  190. package/src/watchdog/diff-tool.js.map +1 -1
  191. package/src/watchdog/permission-arbiter.d.ts.map +1 -1
  192. package/src/watchdog/permission-arbiter.js +1 -2
  193. package/src/watchdog/permission-arbiter.js.map +1 -1
  194. package/src/watchdog/register-child.d.ts +3 -1
  195. package/src/watchdog/register-child.d.ts.map +1 -1
  196. package/src/watchdog/register-child.js +12 -3
  197. package/src/watchdog/register-child.js.map +1 -1
  198. package/src/watchdog/review.d.ts +1 -1
  199. package/src/watchdog/review.d.ts.map +1 -1
  200. package/src/watchdog/review.js +1 -2
  201. package/src/watchdog/review.js.map +1 -1
  202. package/src/watchdog/runtime.d.ts +1 -1
  203. package/src/watchdog/runtime.d.ts.map +1 -1
  204. package/src/watchdog/runtime.js +2 -1
  205. package/src/watchdog/runtime.js.map +1 -1
  206. package/src/watchdog/turn-delta.d.ts +5 -1
  207. package/src/watchdog/turn-delta.d.ts.map +1 -1
  208. package/src/watchdog/turn-delta.js +9 -5
  209. package/src/watchdog/turn-delta.js.map +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,53 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.71.0] - 2026-09-23
6
+
7
+ ### Highlights
8
+
9
+ - Other extensions can read subagent spend and follow async workflow progress as data, without scraping terminal output.
10
+ - Workflow status can now confirm that every child process has actually exited.
11
+ - Child sessions keep readable names such as `worker: fix auth refresh` in `/resume` and Herdr.
12
+ - The full `subagent` tool loads only when a request needs it, which keeps unrelated prompts smaller.
13
+ - Background runners, reviewers, and Bun, pnpm, and symlinked installs are more reliable.
14
+
15
+ ### Added
16
+
17
+ - In-process RPC `cost` method. It returns the same parent-plus-child spend that `/subagent-cost` shows, as versioned data (`{ version: 1, parent, children, childTotal, total, unresolvedAsyncChildren }`). `ping.capabilities.cost` advertises `{ version: 1 }`. `/subagent-cost` output is unchanged. Thanks to [@raymondtri](https://github.com/raymondtri) for [#2378](https://github.com/nicobailon/pi-subagents/pull/2378).
18
+ - Async `workflowScript` runs and the children they launch now emit public lifecycle events, so companion UIs can follow them without scraping terminal output. Thanks to [@navidemad](https://github.com/navidemad) for [#2382](https://github.com/nicobailon/pi-subagents/pull/2382).
19
+ - Status for an async workflow now includes `details.workflowTerminalProof`. It reports `observed`, with each child's exit evidence, only after the workflow has stopped launching children and every async child has exited or failed to start. Otherwise it reports `pending` or `unknown` with a reason, including when the saved child list is missing. A finished workflow frees its capacity slot using the same check, so the two always agree. Thanks to [@alexei-led](https://github.com/alexei-led) for [#2436](https://github.com/nicobailon/pi-subagents/issues/2436) and [#2442](https://github.com/nicobailon/pi-subagents/pull/2442).
20
+
21
+ ### Changed
22
+
23
+ - Packaged `worker` agents now start with fresh context instead of forking the parent's conversation. You can still request fork context per call or set it globally. Thanks to [@eduardopicolo-cb](https://github.com/eduardopicolo-cb) for [#2384](https://github.com/nicobailon/pi-subagents/issues/2384).
24
+ - The full `subagent` tool stays hidden until a request activates it through the small `subagents_enable` loader, which keeps unrelated prompt context smaller. Direct commands, RPC, the TUI, and nested children work as before. Thanks to [@Knimoms](https://github.com/Knimoms) for [#2380](https://github.com/nicobailon/pi-subagents/pull/2380).
25
+ - Child sessions keep a readable name (for example `worker: fix auth refresh`) in session lists, `/resume`, and Herdr while the intercom bridge is active. Nested children now reach their supervisor through the child's intercom ID instead of its session name. This needs a pi-intercom version that supports the `intercom:session-identity` claim; with an older pi-intercom, children keep the previous naming so routing still works. Thanks to [@Q-xuan](https://github.com/Q-xuan) for raising the problem in [#2432](https://github.com/nicobailon/pi-subagents/pull/2432).
26
+ - The optional `@earendil-works/pi-ai` peer dependency now requires 0.86.1 or later, matching the oldest supported Pi host. Thanks to [@samuela](https://github.com/samuela) for [#2373](https://github.com/nicobailon/pi-subagents/issues/2373).
27
+ - When a child's `structured_output` call is rejected, the result now includes a short summary of the validation errors. The missing-structured-output error is used only when the child never called the tool. Thanks to [@rtbe](https://github.com/rtbe) for [#2407](https://github.com/nicobailon/pi-subagents/issues/2407).
28
+
29
+ ### Fixed
30
+
31
+ - `subagent` is available again after switching from an inactive session branch to one where it was activated.
32
+ - Background runners and external CLI agents no longer inherit Git's repository variables (`GIT_DIR`, `GIT_WORK_TREE`, `GIT_INDEX_FILE`, `GIT_CONFIG_*`, and the rest of `git rev-parse --local-env-vars`). When Pi was started from a Git hook or with `git --git-dir`, these made a child's Git commands act on the parent's repository instead of the child's working directory. Other variables such as `GIT_AUTHOR_*` still pass through, and an external agent's explicit environment allowlist is unchanged. Thanks to [@alexei-led](https://github.com/alexei-led) for [#2437](https://github.com/nicobailon/pi-subagents/issues/2437) and [#2440](https://github.com/nicobailon/pi-subagents/pull/2440).
33
+ - Retained background runs no longer time out while the packaged runner is still starting. Thanks to [@muermaru](https://github.com/muermaru) for [#2403](https://github.com/nicobailon/pi-subagents/issues/2403), and to [@qsgy-edge](https://github.com/qsgy-edge) for the independent diagnosis and timing evidence in [#2415](https://github.com/nicobailon/pi-subagents/pull/2415).
34
+ - When a background runner exits without writing a result, the failure notice now includes its exit code and signal. Thanks to [@grahama1970](https://github.com/grahama1970) for [#2423](https://github.com/nicobailon/pi-subagents/issues/2423).
35
+ - A child that produced valid structured output keeps it as evidence when a later provider error or abort fails the run. Thanks to [@grahama1970](https://github.com/grahama1970) for [#2411](https://github.com/nicobailon/pi-subagents/issues/2411).
36
+ - Completion notifications are no longer sent twice when the extension is registered more than once for the same session. Thanks to [@hongchu098](https://github.com/hongchu098) for [#2389](https://github.com/nicobailon/pi-subagents/issues/2389).
37
+ - The bundled reviewer works in directories without Git: `watchdog_diff` reports that no baseline is available instead of failing the review. Thanks to [@matthewmathistrellys](https://github.com/matthewmathistrellys) for [#2422](https://github.com/nicobailon/pi-subagents/issues/2422).
38
+ - The bundled reviewer's `watchdog_diff` counts as read-only, so a reviewer given a single output path returns its full report for the runtime to save, as introduced in [#426](https://github.com/nicobailon/pi-subagents/issues/426), with thanks to Alexander Gerdes ([@Avg8888](https://github.com/Avg8888)). Thanks to [@riskywhat](https://github.com/riskywhat) for [#2405](https://github.com/nicobailon/pi-subagents/issues/2405).
39
+ - Watchdog reviews and permission checks work again on the Pi 0.86.1 package layout. Thanks to [@zieglar](https://github.com/zieglar) for the reproduction and version comparison in [#2377](https://github.com/nicobailon/pi-subagents/issues/2377).
40
+ - A workflow child with no `agent` now fails with an error that names it (`Workflow child 'r1' has no agent…`) instead of the generic "Provide exactly one mode" message. Thanks to [@matthewmathistrellys](https://github.com/matthewmathistrellys) for raising the confusing error in [#2422](https://github.com/nicobailon/pi-subagents/issues/2422).
41
+ - `/prompt-workflow` finds prompt files that are symlinks (as installed by dotfile managers such as GNU Stow or homeshick) and skips broken links instead of failing. Thanks to [@nietaki](https://github.com/nietaki) for [#2430](https://github.com/nicobailon/pi-subagents/issues/2430).
42
+ - Completed retained agents can resume even when their own list of allowed child agents excludes them. Parent authority and that restriction both still apply; older retained children without the needed recovery data fail closed. Thanks to [@riskywhat](https://github.com/riskywhat) for [#2379](https://github.com/nicobailon/pi-subagents/issues/2379), building on the allowlist work in [#2338](https://github.com/nicobailon/pi-subagents/pull/2338) credited to [@shkrabov](https://github.com/shkrabov).
43
+ - Guidance now says the list of retained workflow children is not complete: when you know a run's exact id, check its status and try resuming it before falling back to a labeled agent with the same role. Thanks to [@riskywhat](https://github.com/riskywhat) for [#2406](https://github.com/nicobailon/pi-subagents/issues/2406).
44
+ - Skills marked `disable-model-invocation: true` are no longer shown to child agents, even when requested by name, and are no longer suggested to the model. Thanks to [@toRolex](https://github.com/toRolex) for [#2400](https://github.com/nicobailon/pi-subagents/pull/2400).
45
+ - Pi hosts compiled with Bun are found from Pi's package directory or its bundled `share/pi-coding-agent` layout, while unrelated extension dependencies still cannot turn on dynamic tools. Thanks to [@fmoda3](https://github.com/fmoda3) for [#2417](https://github.com/nicobailon/pi-subagents/issues/2417).
46
+ - pnpm installs follow npm-hosted peer aliases through their symlinks to the real package, so the package is not loaded twice. Thanks to [@henriquebastos](https://github.com/henriquebastos) for [#2409](https://github.com/nicobailon/pi-subagents/pull/2409).
47
+ - npm and git installs detect dynamic tool support from the running Pi installation and keep the compact `subagents_enable` loader instead of an always-loaded `subagent` tool. Thanks to [@qsgy-edge](https://github.com/qsgy-edge) for [#2398](https://github.com/nicobailon/pi-subagents/pull/2398).
48
+ - MCP direct tool names now match what pi-mcp-adapter registers, including servers whose tool names already start with the server name, the adapter's `mcp` prefix mode, and per-server `toolPrefix`. Thanks to [@qsgy-edge](https://github.com/qsgy-edge) for [#2395](https://github.com/nicobailon/pi-subagents/pull/2395).
49
+ - Logs from running and failed external CLI agents can be viewed in Fleet, tool status, and the TUI. Thanks to [@Shujakuinkuraudo](https://github.com/Shujakuinkuraudo) for [#2375](https://github.com/nicobailon/pi-subagents/issues/2375).
50
+ - Structured delegation updates report cumulative usage and no longer count missing provider cache numbers as zero. Thanks to [@bioShaun](https://github.com/bioShaun) for [#2374](https://github.com/nicobailon/pi-subagents/pull/2374).
51
+ - Forked sessions keep Pi 0.87 context edits, including replaced content and signed Anthropic thinking blocks.
5
52
  ## [0.70.1] - 2026-09-20
6
53
 
7
54
  ### Highlights
package/README.md CHANGED
@@ -44,7 +44,9 @@ Pi is the parent session. A subagent is a focused child Pi session with its own
44
44
 
45
45
  When you ask for a subagent, Pi starts the child, gives it the task, and brings the result back. Foreground children run as sessions inside the parent Pi process and stream in the conversation. Background children run as sessions inside a detached runner process that keeps working and can be checked later.
46
46
 
47
- Installing the extension does not start an automatic reviewer in the background. It gives Pi a delegation tool. If you want every implementation reviewed, say so in your prompt or project instructions:
47
+ Installing the extension does not start an automatic reviewer in the background. Fresh parent sessions initially expose the small `subagents_enable` loader instead of the full `subagent` schema. When your request or applicable instructions authorize delegation, Pi can call the loader itself; the unchanged `subagent` tool is available on the next model request. Complexity alone does not authorize delegation. `bg_wait` and supervisor replies remain available without activation.
48
+
49
+ If you want every implementation reviewed, say so in your prompt or project instructions:
48
50
 
49
51
  ```text
50
52
  When you finish implementing, run a reviewer subagent before summarizing.
package/agents/worker.md CHANGED
@@ -8,7 +8,7 @@ systemPromptMode: replace
8
8
  inheritProjectContext: true
9
9
  inheritSkills: false
10
10
  tools: read, grep, find, ls, bash, edit, write, contact_supervisor
11
- defaultContext: fork
11
+ defaultContext: fresh
12
12
  defaultReads: context.md, plan.md
13
13
  defaultProgress: true
14
14
  ---
@@ -17,7 +17,7 @@ You are `worker`: the implementation subagent.
17
17
 
18
18
  You are the single writer thread. Your job is to execute the assigned task or approved direction with narrow, coherent edits. The main agent and user remain the decision authority.
19
19
 
20
- Use the provided tools directly. First read the inherited context, supplied files, plan, task paths, and named seams. Then implement carefully and minimally. Use broad search only to verify or expand from that starting point.
20
+ Use the provided tools directly. First read the provided context, supplied files, plan, task paths, and named seams. Then implement carefully and minimally. Use broad search only to verify or expand from that starting point.
21
21
 
22
22
  The builtin worker uses a strict tool allowlist. It does not inherit ambient extension tools from the parent session. To use an extension tool, configure a custom agent with the tool name explicitly listed in `tools` and load its provider through `extensions` or `subagentOnlyExtensions`.
23
23
 
package/docs/agents.md CHANGED
@@ -460,7 +460,7 @@ Examples:
460
460
  - `allowNestedSubagents: true` with `tools` omitted: normal builtin tools (and, for background children, ambient extensions) remain inherited, and the child-safe nested `subagent` runtime is added.
461
461
  - `tools: read, fixture_search` plus `subagentOnlyExtensions: ./tools/fixture-search.ts`: the provider loads only in this agent's child sessions, and the registered `fixture_search` name survives the strict allowlist.
462
462
 
463
- Direct MCP tools require [pi-mcp-adapter](https://github.com/nicobailon/pi-mcp-adapter). Subagents only receive direct MCP tools when `mcp:` entries are listed in their frontmatter; global `directTools: true` in `mcp.json` is not enough by itself. The generic `mcp` proxy tool can still be used for discovery when available. The adapter caches tool metadata at startup, so after connecting a new MCP server for the first time, restart Pi before relying on direct tools. Server `includeTools` and `excludeTools` policies are enforced while resolving cached metadata for children: both accept exact names and `*`/`?` glob patterns against raw, generated-resource, and server/short/none-prefixed names, with `excludeTools` taking precedence. `mcp:` entries must name servers from the adapter's configuration files. A server that exists only in the adapter's runtime snapshot (registered at runtime, not persisted) cannot be provided to a child: children are pi sessions inside the parent or the runner process, not `pi` processes that could receive an MCP config argument, so such a launch fails with an error saying that MCP tools must come from an ambient adapter extension in a background child. An `mcp:` entry named `subagent` does not authorize nested fanout; declare the builtin `subagent` tool or set `allowNestedSubagents: true`. If a resolved direct MCP name is missing from the child registry, pi-subagents keeps the launch failed under the strict allowlist and identifies the condition as a host/pi-mcp-adapter registration problem; verify that the adapter registers the selected tools before child startup.
463
+ Direct MCP tools require [pi-mcp-adapter](https://github.com/nicobailon/pi-mcp-adapter). Subagents only receive direct MCP tools when `mcp:` entries are listed in their frontmatter; global `directTools: true` in `mcp.json` is not enough by itself. The generic `mcp` proxy tool can still be used for discovery when available. The adapter caches tool metadata at startup, so after connecting a new MCP server for the first time, restart Pi before relying on direct tools. Server `includeTools` and `excludeTools` policies are enforced while resolving cached metadata for children: both accept exact names and `*`/`?` glob patterns against raw, generated-resource, and server/short/mcp/none-prefixed names, with `excludeTools` taking precedence. `mcp:` entries must name servers from the adapter's configuration files. A server that exists only in the adapter's runtime snapshot (registered at runtime, not persisted) cannot be provided to a child: children are pi sessions inside the parent or the runner process, not `pi` processes that could receive an MCP config argument, so such a launch fails with an error saying that MCP tools must come from an ambient adapter extension in a background child. An `mcp:` entry named `subagent` does not authorize nested fanout; declare the builtin `subagent` tool or set `allowNestedSubagents: true`. If a resolved direct MCP name is missing from the child registry, pi-subagents keeps the launch failed under the strict allowlist and reports the registration mismatch; check the resolved names against what the host or pi-mcp-adapter actually registers before child startup.
464
464
 
465
465
  `extensions` controls child extension loading:
466
466
 
@@ -76,6 +76,12 @@ For a native Pi `model_verification_failed` where your proxy accepts `claude-hai
76
76
 
77
77
  Replace `YOUR_PROVIDER` with the resolved Pi provider ID. Keep the outgoing model alias unchanged. This native remedy already exists in v0.65.1; it does not infer equivalence from provider prefixes or dates. The built-in external `claude-code` adapter does not invoke this verifier or use this setting. If an external run shows this diagnostic, identify the installed version, resolved runner kind/adapter, and error location before applying a native remedy. Thanks to [sixtus](https://github.com/sixtus) for the concrete request-ID/response-ID example in [#1922](https://github.com/nicobailon/pi-subagents/issues/1922).
78
78
 
79
+ ## Tool activation lifecycle
80
+
81
+ On Pi 0.86.1 or newer, a fresh unrestricted parent starts with `subagents_enable`, `bg_wait`, and `subagent_supervisor` active while `subagent` stays registered but inactive. Calling `subagents_enable({})` preserves unrelated active tools and exposes `subagent` on the next model request. It does not launch a child or infer authority from prompt keywords.
82
+
83
+ The recorded native `subagent` selection is restored on resume, reload, and tree navigation, so an activated session stays activated and a cold session stays cold. Older history without tool-selection records keeps eager `subagent` availability. If Pi's allowlist or exclusions remove the loader, the extension does not hide `subagent`; if they remove `subagent`, the loader reports it unavailable. Hosts older than the verified dynamic-tool baseline keep eager behavior and log one compatibility warning.
84
+
79
85
  ## `toolDescriptionMode`
80
86
 
81
87
  ```json
@@ -412,13 +418,21 @@ Overrides the `pi` command pi-subagents spawns for project panes and the profile
412
418
 
413
419
  Foreground children remain sessions inside the parent. Npm background children retain their Node runner and host-package peer aliases; this variable does not turn npm Pi into a binary-backed runner. See [Standalone background execution](standalone-background.md) for the official tested target.
414
420
 
421
+ ## `PI_PACKAGE_DIR`
422
+
423
+ ```bash
424
+ export PI_PACKAGE_DIR=/path/to/pi-coding-agent-package
425
+ ```
426
+
427
+ Pi's own package/assets root is also authoritative when pi-subagents verifies the running host for dynamic tool activation. Host discovery prefers a package root owned by the real `process.argv[1]`, then a nonblank `PI_PACKAGE_DIR`, then `PI_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT`. For a proven Bun-compiled Pi process with a virtual argv entry, it can finally validate package assets adjacent to the canonical executable or in the installed `<prefix>/share/pi-coding-agent` layout. Every selected root must contain a `package.json` whose name is exactly `@earendil-works/pi-coding-agent`; an invalid explicit root fails closed rather than selecting another installation. Empty or whitespace-only values are ignored.
428
+
415
429
  ## `PI_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT`
416
430
 
417
431
  ```bash
418
432
  export PI_SUBAGENTS_PI_CODING_AGENT_PACKAGE_ROOT=/path/to/pi-coding-agent-package
419
433
  ```
420
434
 
421
- Overrides host-package discovery for spawned children. Foreground CLI resolution uses this root to locate the `pi` CLI script, and the detached background runner uses it for jiti host resolution and peer-package aliases, so both child kinds agree on one host. It is consulted when argv-based automatic discovery cannot identify the host, such as a wrapper install or a non-standard layout. The value must be the root of a canonical `@earendil-works/pi-coding-agent` installation (the directory containing its `package.json`, with that package name); both child kinds still validate the package name and its peer packages from that install tree, so a package whose manifest carries a different name is rejected even with the override set. Empty or whitespace-only values are ignored.
435
+ Overrides host-package discovery for spawned children. Foreground CLI resolution uses this root to locate the `pi` CLI script, and the detached background runner uses it for jiti host resolution and peer-package aliases, so both child kinds agree on one host. For running-host activation verification it follows argv ownership and Pi's own `PI_PACKAGE_DIR`, and precedes inferred Bun image layouts. The value must be the root of a canonical `@earendil-works/pi-coding-agent` installation (the directory containing its `package.json`, with that package name); both child kinds still validate the package name and its peer packages from that install tree, so a package whose manifest carries a different name is rejected even with the override set. Empty or whitespace-only values are ignored.
422
436
 
423
437
  The default in-process child session loader consults the same discovery. Before falling back to a bare `@earendil-works/pi-coding-agent` import, it resolves the host package root (the running pi process's location, then this override, then pi-subagents' own install tree as a last fallback) and imports the host's entry file directly, so children share the host's single SDK instance instead of a second copy. Roots whose `package.json` name is not `@earendil-works/pi-coding-agent` are rejected. When this override is selected, an unimportable root is reported instead of falling back to a bare import from a different tree.
424
438
 
@@ -114,7 +114,7 @@ pi.events.emit("subagents:rpc:v1:request", {
114
114
  });
115
115
  ```
116
116
 
117
- The RPC methods are `ping`, `status`, `manage`, `spawn`, `steer`, `interrupt`, `stop`, and `resume`. `status`, `manage`, `steer`, `interrupt`, and `resume` reuse normal package-owned actions.
117
+ The RPC methods are `ping`, `status`, `manage`, `spawn`, `steer`, `interrupt`, `stop`, `resume`, and `cost`. `status`, `manage`, `steer`, `interrupt`, and `resume` reuse normal package-owned actions.
118
118
 
119
119
  Method notes:
120
120
 
@@ -122,6 +122,7 @@ Method notes:
122
122
  - `spawn` accepts structured single-child execution (`agent`, `task?`), inline `workflowScript`, or `workflowScriptPath` and is async-only: omit `async` or set `async: true`, omit `clarify`, and do not pass management `action` values. Relative script paths resolve against the request `cwd`. It goes through the same executor as the `subagent` tool, so agent discovery, validation, session attribution, configured spawn caps, child-safety depth, artifacts, and async status all behave the same.
123
123
  - `steer` requires an async run `id` (plus optional child `index`) and a non-empty `message`; its reply preserves the normal acknowledged-delivery result. Optional `mode` values are `steer` (default), `follow_up`, and `auto`, and receipts include `deliveryStatus: "delivered" | "queued"`. RPC steering disables the direct tool's pause-and-revive recovery in every mode so an extension keeps authority over the exact child it spawned; `ping.capabilities.nonRecoveringSteer` advertises this guarantee.
124
124
  - `resume` requires a run target and non-empty `message`. It delegates to the existing revival path, which validates current-session ownership, persisted session/recovery metadata, stopped/live state, capability ceilings, and the exclusive session lease before returning the new async run details. Callers may request a `file-only` output path for the revived result without overriding its model, tools, or budgets. `ping.capabilities.resume` advertises this seam.
125
+ - `cost` returns the same parent-plus-child accounting `/subagent-cost` renders, as data: `{ version: 1, parent, children, childTotal, total, unresolvedAsyncChildren }`, where each usage is `{ input, output, cacheRead, cacheWrite, cost, turns }` and each child carries `label`, `agent`, `runId`, `usage`, and `sessionFile` when known. It is read-only and walks the current session branch plus existing run artifacts, so request it on your own turn boundaries (for example after `agent_settled` or an async completion wake), not on a timer. `unresolvedAsyncChildren` counts async children whose metadata could not be read; treat `childTotal` as a lower bound when it is non-zero, exactly as documented for `/subagent-cost` in [observability.md](observability.md). `ping.capabilities.cost` advertises `{ version: 1 }`.
125
126
  - `stop` targets current-session top-level async runs through the stop control channel and records a `stopped` lifecycle instead of reporting a timeout.
126
127
  - `status` keeps targeted and rich requests on the executor-backed path. A request with no `id`, `runId`, `dir`, `index`, `view`, or `lines` may use the restored in-memory projections and a short summary; when the live state is missing, stale, session-mismatched, or not restored, it falls back to normal executor status. Status `view`, `lines`, and `index` are forwarded for targeted transcript/fleet requests. Successful replies retain `text`, `details`, `fleet`, and `asyncSnapshot`; the short summary intentionally omits canonical filesystem details, wait subscriptions, and budget annotations.
127
128
 
@@ -136,6 +137,7 @@ Capability advertisements on `ping`:
136
137
  - `resume` — the revival seam described above.
137
138
  - `statusProjection: { version: 1, untargeted: "in-memory-when-ready", targeted: "executor" }` — untargeted status may use restored bounded projections; targeted or rich status remains executor-backed.
138
139
  - `fleetStatus: { version: 1 }` — successful `status` replies additionally include `data.fleet`.
140
+ - `cost: { version: 1 }` — the `cost` method is available and returns the versioned report shape above.
139
141
 
140
142
  Structured delegation progress updates carry `runId` as soon as foreground execution allocates it, so a caller can retain the package-owned revival target even if its own tool turn is interrupted before the terminal response. Foreground `details.results[]` rows also include a numeric `index` that is unique within the run and stable across partial progress snapshots and the final result; use `(runId, index)` instead of row position to correlate single, counted parallel, and chain children.
141
143
 
@@ -31,7 +31,7 @@ Or ask naturally: "Show me the current async runs."
31
31
 
32
32
  Run `/subagent-cost` for the parent session's combined parent and child token usage and cost. It includes completed async workflow children when their persisted receipts and metadata remain available. Missing child metadata is reported as unavailable when the receipt identifies that child. If the workflow receipt itself is missing, unreadable, invalid, or non-terminal, affected children can be omitted from the total without an unavailable count, so treat the result as a lower bound when run artifacts are unavailable.
33
33
 
34
- Pi's built-in session totals do not automatically include child usage delivered only by an async completion notification. Those notifications are custom messages, and Pi's public custom-message API does not carry accounted usage. `/subagent-cost` is therefore the supported accounting view for async child usage; do not infer child totals from Pi's footer or `/session` alone.
34
+ Pi's built-in session totals do not automatically include child usage delivered only by an async completion notification. Those notifications are custom messages, and Pi's public custom-message API does not carry accounted usage. `/subagent-cost` is therefore the supported accounting view for async child usage; do not infer child totals from Pi's footer or `/session` alone. Other extensions can read the same report as data through the in-process RPC `cost` method (see [extension-api.md](extension-api.md#in-process-event-bus-rpc)) instead of scraping the slash output.
35
35
 
36
36
  The under-editor async widget gives a short view while work runs. Its expand key follows your Pi keybinding:
37
37
 
@@ -206,16 +206,20 @@ Nested fanout status is stored as compact sidecar event/registry metadata and me
206
206
 
207
207
  Consumers should read these JSON files instead of scraping terminal output. Unknown fields and event types should be ignored for forward compatibility.
208
208
 
209
- RPC hosts that need low-latency child-stop UI hints can subscribe to the
210
- `subagent:child-status` event advertised by RPC `ping` as `events.childStatus`.
211
- The payload uses `type: "subagent.child-status"`, `version: 1`, `runId`,
212
- `childId`, `status` (`"stopping"` or `"stopped"`), `ts`, and optional child
213
- metadata such as `stepIndex`, `agent`, `childRunId`, `workflowKey`, `phase`, and
214
- `label`. These events are observer hints only. They can duplicate across RPC and
215
- async replay paths, and they are not replayed after a host restart. Status
216
- snapshots remain authoritative for recovery and final state. Child stop control
217
- still uses the normal `stop` request with `childId`; there is no separate child
218
- stop API.
209
+ Companion UIs and RPC hosts that need low-latency child lifecycle hints can
210
+ subscribe to the `subagent:child-status` event advertised by RPC `ping` as
211
+ `events.childStatus`. The payload uses `type: "subagent.child-status"`,
212
+ `version: 1`, `runId`, `childId`, `status` (`"started"`, `"stopping"`, or
213
+ `"stopped"`), `ts`, and optional child metadata such as `asyncDir`, `stepIndex`,
214
+ `agent`, `childRunId`, `workflowKey`, `phase`, and `label`. Async
215
+ `workflowScript` roots emit `"started"` once the keyed child has a concrete
216
+ launch identity; `childId` and `workflowKey` are the stable workflow key, while
217
+ `stepIndex` is only a convenience projection for the current status snapshot.
218
+ These events are observer hints only. They can duplicate across the live event
219
+ bus and async replay paths, and they are not replayed after a host restart.
220
+ Status snapshots remain authoritative for recovery and final state. Child stop
221
+ control still uses the normal `stop` request with `childId`; there is no separate
222
+ child stop API.
219
223
 
220
224
  ### Status and result fields
221
225
 
@@ -307,7 +311,7 @@ Async events:
307
311
  - `subagent:async-started`
308
312
  - `subagent:async-complete`
309
313
 
310
- The `subagent:async-started` payload includes `task`, the backwards-compatible first child task truncated to 50 characters, and `goal`, the workflow-level caller task truncated to 120 characters (falling back to the first child task). Companion UI extensions can combine `goal`, `workflowGraph`, and the live lifecycle artifacts under `asyncDir` without scraping terminal output.
314
+ For regular async starts, the `subagent:async-started` payload includes redacted `task` and `goal` prompt fields. Async `workflowScript` roots emit the same event with `mode: "workflow"` after their initial `status.json` is durable; workflow roots can omit `task`, and any included prompt fields are redacted. Their keyed children are then announced dynamically through `subagent:child-status`. Companion UI extensions can combine those hints with the authoritative live lifecycle artifacts under `asyncDir` without scraping terminal output.
311
315
 
312
316
  Intercom delivery events:
313
317
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  Parameters and actions for the `subagent` tool. These are what the LLM passes when it calls the tool; most users ask naturally or use slash commands instead.
4
4
 
5
+ In a fresh parent session, `subagents_enable({})` makes the full `subagent` tool available on the immediately following model request without launching work. Pi may call it when delegation is authorized by the current request or applicable instructions, or to manage existing runs. Direct execution remains the default; task complexity does not grant delegation authority. The public `subagent` name and parameters are unchanged after activation.
6
+
5
7
  Call `{ action: "guide", topic: "tool-reference" }` for this reference or `topic: "workflows"` for [workflow recipes](workflows.md). Use `topic: "agents"` for authoring, `topic: "missions"` for missions/schedules, and `topic: "watchdog"` for watchdog controls. Guide reads do not change the schema or grant authority.
6
8
 
7
9
  ## Execution examples
@@ -95,7 +97,7 @@ The complete plain-JSON inventory is validated before the first launch (maximum
95
97
  | `action` | string | - | Offline workflow `validate`, agent management (including `guide`, `children.list`, and `refine`/`refine.show`/`refine.rollback`), lane evidence (`lane.status`, `lane.recordMerge`, `lane.recordSupersession`), mission (`mission.create/list/show/update/resolve-decision/attach-run/close`), Inspect actions (`inspector.command/open/status/close`), Herdr project pane (`project.open/status/close`), status/control, plan-only `worktree.cleanup`, schedule, watchdog, or doctor action. |
96
98
  | `topic` | `overview \| workflows \| agents \| missions \| observability \| tool-reference \| configuration \| models \| watchdog \| extension-api` | `overview` | Packaged guide topic for `action: "guide"`. |
97
99
  | `config` | object/string | - | Agent config for management create/update. |
98
- | `context` | `fresh \| fork \| profile` | global or per-agent default, else `fresh` | Explicit `fresh` or `fork` overrides every workflow child. `profile` requires the selected agent's declared `defaultContext` and ignores config `defaultSubagentContext`; missing agent defaults fail. When omitted, [`defaultSubagentContext`](configuration.md#defaultsubagentcontext) wins over each agent's `defaultContext`; implicit fork falls back to fresh without a persisted parent session and leaf. Explicit fork is strict. Packaged `worker`, `oracle`, and `advisor` default to `fork`. |
100
+ | `context` | `fresh \| fork \| profile` | global or per-agent default, else `fresh` | Explicit `fresh` or `fork` overrides every workflow child. `profile` requires the selected agent's declared `defaultContext` and ignores config `defaultSubagentContext`; missing agent defaults fail. When omitted, [`defaultSubagentContext`](configuration.md#defaultsubagentcontext) wins over each agent's `defaultContext`; implicit fork falls back to fresh without a persisted parent session and leaf. Explicit fork is strict. Packaged `worker` defaults to `fresh`; packaged `oracle` and `advisor` default to `fork`. |
99
101
  | `model` | string | agent default | Call `{action:"models"}` first and copy an exact `provider/id`; bare ids resolve only if unique, and agent names are not model ids. A suffix such as `provider/id:high` (`off/minimal/low/medium/high/xhigh/max`) overrides agent thinking. The `thinking` field is only for `watchdog.configure`, ignored on dispatch. |
100
102
  | `missionId` | string | - | Attach a workflow to an existing project mission instead of creating its default enclosing mission. |
101
103
  | `mission` | object/false | auto-create | Override the default enclosing mission with `{ title \| summary, objective?, goal?, budget?, labels? }`. Set exactly one non-empty `title` or `summary`; `objective` and `labels` are optional. `goal` may only be `true`, requires `budget.tokens`, and enables continuation notices. Pass `false` for an intentionally ephemeral workflow with no mission for it or its children and no `state` global. Explicit mission persistence failures are strict. |
@@ -142,7 +144,7 @@ Explicit `context: "fork"` fails fast when the parent session is not persisted,
142
144
 
143
145
  When the inherited transcript contains signed Anthropic `thinking` / `redacted_thinking` blocks, `pi-subagents` strips those provider-private blocks from the forked child session: a thinking signature is bound to the session that produced it and cannot be replayed into a branch. The child keeps its requested thinking level and reasons fresh from its first turn; sanitizing the inherited transcript is not a downgrade. Explicit `context: "fork"` never silently downgrades to `fresh`.
144
146
 
145
- In workflow runs that omit `context`, each `runs.run` child follows the global `defaultSubagentContext` when set, then its own `defaultContext`. Without the global setting, a fresh-default scout can run fresh beside a fork-default worker. If the parent session file or current leaf is not available yet, implicit fork-default children run fresh. Pass explicit `context: "fork"` or `context: "fresh"` when you intentionally want one context for every child.
147
+ In workflow runs that omit `context`, each `runs.run` child follows the global `defaultSubagentContext` when set, then its own `defaultContext`. Without the global setting, a fresh-default worker can run fresh beside a fork-default oracle. If the parent session file or current leaf is not available yet, implicit fork-default children run fresh. Pass explicit `context: "fork"` or `context: "fresh"` when you intentionally want one context for every child.
146
148
 
147
149
  ### Workflow steering
148
150
 
@@ -179,7 +181,7 @@ Workflows get `await state.get(key)` and `await state.set(key, value)` through t
179
181
 
180
182
  ### Retained children
181
183
 
182
- Completed workflow children from the current parent session stay addressable as retained children. `{ action: "children.list" }` lists up to the last 10 with their run ids and explicit `resumable` or `not resumable` state. Resume only rows reported `resumable`; if no row is resumable, start a same-role fallback challenge and label it as fallback. A later workflow continues a resumable child by passing `resume` instead of `agent`:
184
+ Completed workflow children from the current parent session stay addressable as retained children. `{ action: "children.list" }` lists up to the last 10 with their run ids and explicit `resumable` or `not resumable` state. This workflow-only roster is not an exhaustive list of direct native children. Resume only rows reported `resumable`. When the exact run id of an intended direct child is known, inspect it with `{ action: "status", id: "<run-id>" }`; if status identifies the candidate, attempt `{ action: "resume", id: "<run-id>", message: "..." }`. Resume performs the authoritative eligibility check and may reject the attempt. Start a same-role fallback challenge, labeled as fallback, only when no known candidate exists or resume rejects eligibility. A later workflow continues a resumable child by passing `resume` instead of `agent`:
183
185
 
184
186
  ```js
185
187
  { workflowScript: `
@@ -196,7 +198,7 @@ Each workflow key identifies one result lane. Use a new stable workflow key for
196
198
 
197
199
  Inside `workflowScript`, `await runs.run(key, { resume, task })` waits for the revived child to finish and returns its completed output and new `runId`. Each resume can return a new retained run id, so loops must continue from the latest returned `runId`. Top-level `{ action: "resume" }` remains detached and returns a background-run receipt.
198
200
 
199
- For a simple implementation challenge outside a workflow script, send the challenge through `subagent({ action: "resume", id: "<retained-writer-run>", message: "Reconsider the implementation and make any better current-scope change." })` only when `children.list` reports that retained writer as `resumable`. If no retained writer is resumable, start a same-role fallback challenge and record why it is a fallback. Use workflow `runs.run({ resume })` only when the script must await the revived writer output before the next step. Do not use `steer` as the sole challenge action for a completed retained child; `steer` with `mode: "follow_up"` only queues text for the next `resume`.
201
+ For a simple implementation challenge outside a workflow script, send the challenge through `subagent({ action: "resume", id: "<retained-writer-run>", message: "Reconsider the implementation and make any better current-scope change." })` when `children.list` reports that retained writer as `resumable`, or attempt it after exact-id status inspection identifies a known direct-child candidate. Status is advisory; resume authoritatively checks eligibility and may reject missing recovery requirements. If there is no known candidate or resume rejects eligibility, start a same-role fallback challenge and record why it is a fallback. Use workflow `runs.run({ resume })` only when the script must await the revived writer output before the next step. Do not use `steer` as the sole challenge action for a completed retained child; `steer` with `mode: "follow_up"` only queues text for the next `resume`.
200
202
 
201
203
  `resume` and `agent` are mutually exclusive. The revived child keeps its stored agent, model, and tool contract. `gate` is rejected on retained resume items because resume uses the retained child contract.
202
204
 
package/docs/workflows.md CHANGED
@@ -10,7 +10,7 @@ Use orchestration as parent-agent guidance, not as a runtime workflow mode. For
10
10
  clarify → scout → worker → fresh reviewers → worker
11
11
  ```
12
12
 
13
- Packaged `worker`, `oracle`, and `advisor` default to forked context when a launch omits `context`. If the parent has no persisted session file or current leaf yet, that implicit default falls back to `fresh`. Pass `context: "fresh"` when you intentionally want a fresh child run, or `context: "fork"` when fork must remain strict.
13
+ Packaged `worker` defaults to fresh context so implementation starts from its assigned brief instead of the parent's unfinished conversation. Packaged `oracle` and `advisor` default to forked context; if the parent has no persisted session file or current leaf yet, that implicit default falls back to `fresh`. Explicit `context`, `context: "profile"`, and global `defaultSubagentContext` still override these profile defaults.
14
14
 
15
15
  Child-safety boundaries are enforced at runtime:
16
16
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "pi-subagents",
4
- "version": "0.70.1",
4
+ "version": "0.71.0",
5
5
  "description": "Pi extension for single-agent delegation and scripted multi-agent workflows",
6
6
  "author": "Nico Bailon",
7
7
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@earendil-works/pi-agent-core": "*",
28
- "@earendil-works/pi-ai": ">=0.80.0",
28
+ "@earendil-works/pi-ai": ">=0.86.1",
29
29
  "@earendil-works/pi-coding-agent": "*",
30
30
  "@earendil-works/pi-tui": "*"
31
31
  },
@@ -6,10 +6,13 @@ This file is a detailed reference loaded from `skills/pi-subagents/SKILL.md`.
6
6
 
7
7
  - **Explicit forking requires a persisted parent session.** If the current session
8
8
  does not have a persisted session file or current leaf, explicit `context: "fork"`
9
- fails. An agent-level `defaultContext: fork` is a preference: packaged `worker`,
10
- `oracle`, and `advisor` fall back to `fresh` when those fork preconditions are not
9
+ fails. An agent-level `defaultContext: fork` is a preference: packaged `oracle`
10
+ and `advisor` fall back to `fresh` when those fork preconditions are not
11
11
  met yet. Use `context: "fresh"` when you do not want a fork even after the parent
12
12
  session exists.
13
+ - **Packaged workers start fresh.** `worker` defaults to fresh context so its brief,
14
+ not the parent's unfinished agenda, controls the implementation. Pass explicit
15
+ `context: "fork"` when inherited conversation history is required.
13
16
  - **Forked runs inherit parent history.** They are branched threads, not fresh
14
17
  filtered contexts. Use fresh context for adversarial reviewers unless the user explicitly asks for forked context.
15
18
  - **Default subagent nesting depth is 2.** Deeper recursive delegation is blocked
@@ -103,7 +103,7 @@ For a typed post-run check, pass the object form `gate: { command, output: "json
103
103
 
104
104
  If omitted, acceptance is inferred from role, mode, and risk. Use `level: "checked"` for ordinary writer evidence and `level: "verified"` when the runtime should run explicit validation commands. Independent review is orthogonal: use `review: { required: true, agent: "reviewer" }`; reviewer/read-only calls omit `acceptance`. `review-required` means evidence passed but review is pending; `reviewed` means an independent review found no blockers. Never request `level: "reviewed"`; it is recognized only so preflight can return an actionable correction. Disable gates with `{ level: "none", reason: "..." }`; bare `"none"` is rejected and `false` is only a deprecated shorthand. Child-reported command success is evidence, not runtime verification.
105
105
 
106
- Completed workflow children from this parent session stay addressable as retained children. `subagent({ action: "children.list" })` lists up to the last 10 with run ids and reports each row as `resumable` or `not resumable` with a reason. Resume only rows reported `resumable`. For a retained-child challenge, use `resume` instead of `steer` when the child is complete. If no retained child is resumable, launch a same-role fallback challenge and label it as fallback. A later workflow continues a resumable child with `runs.run(key, { resume: "<run-id>", task: "follow-up" })`. Inside `workflowScript`, awaiting that call waits for the revived child to finish and returns its completed output and new `runId`; top-level `{ action: "resume" }` remains detached. Pass explicit follow-up task text. Assign each returned child result back to the loop variable because every resume can return a new retained `runId`; always resume the latest returned id. `resume` and `agent` are mutually exclusive, the revived child keeps its stored agent/model/tool contract, and `gate` is rejected on retained resume items.
106
+ Completed workflow children from this parent session stay addressable as retained children. `subagent({ action: "children.list" })` lists up to the last 10 with run ids and reports each row as `resumable` or `not resumable` with a reason. This workflow-only roster is not an exhaustive list of direct native children. Resume only rows reported `resumable`. When the exact run id of an intended direct child is known, inspect it with `subagent({ action: "status", id: "<run-id>" })`; if status identifies the candidate, attempt `subagent({ action: "resume", id: "<run-id>", message: "..." })`. Resume performs the authoritative eligibility check and may reject the attempt. For a retained-child challenge, use `resume` instead of `steer` when the child is complete. Launch a same-role fallback challenge, labeled as fallback, only when no known candidate exists or resume rejects eligibility. A later workflow continues a resumable child with `runs.run(key, { resume: "<run-id>", task: "follow-up" })`. Inside `workflowScript`, awaiting that call waits for the revived child to finish and returns its completed output and new `runId`; top-level `{ action: "resume" }` remains detached. Pass explicit follow-up task text. Assign each returned child result back to the loop variable because every resume can return a new retained `runId`; always resume the latest returned id. `resume` and `agent` are mutually exclusive, the revived child keeps its stored agent/model/tool contract, and `gate` is rejected on retained resume items.
107
107
 
108
108
  Each workflow key identifies one result lane: use a new stable workflow key for every distinct retained resume pass; same-key calls are reused only when launch parameters are identical, and incompatible parameters are rejected.
109
109
 
@@ -493,7 +493,7 @@ subagent({
493
493
  workflowScript: `return runs.run("oracle-check", { agent: "oracle", task: "Review my current direction, challenge assumptions, and propose the best next move." })`
494
494
  })
495
495
 
496
- // Implementation only after explicit approval. Worker defaults to forked context.
496
+ // Implementation only after explicit approval. Worker defaults to fresh context.
497
497
  subagent({
498
498
  workflowScript: `return runs.run("implementation", { agent: "worker", task: "Implement the approved approach: ..." })`
499
499
  })
@@ -18,7 +18,7 @@ subagent({ action: "list" })
18
18
  subagent({ action: "children.list" })
19
19
  ```
20
20
 
21
- Lists up to the last 10 retained workflow children from this parent session with explicit `resumable` or `not resumable` rows. Resume only rows reported `resumable`. Send a simple follow-up or implementation challenge with `subagent({ action: "resume", id: "<run-id>", message: "..." })`. Continue one inside a workflow with `runs.run(key, { resume: "<run-id>", task: "follow-up" })`; each workflow key identifies one result lane, so use a new stable workflow key for every distinct retained resume pass. Same-key calls are reused only when launch parameters are identical, and incompatible parameters are rejected. The revived child keeps its stored agent, model, and tool contract. If no resumable child is listed, start a same-role fallback challenge and label it as fallback. `steer` with `mode: "follow_up"` only queues text for the next `resume` when the child has already completed.
21
+ Lists up to the last 10 retained workflow children from this parent session with explicit `resumable` or `not resumable` rows. This workflow-only roster is not an exhaustive list of direct native children. Resume only rows reported `resumable`. When the exact run id of an intended direct child is known, inspect it with `subagent({ action: "status", id: "<run-id>" })`; if status identifies the candidate, attempt `subagent({ action: "resume", id: "<run-id>", message: "..." })`. Resume performs the authoritative eligibility check and may reject the attempt. Continue one inside a workflow with `runs.run(key, { resume: "<run-id>", task: "follow-up" })`; each workflow key identifies one result lane, so use a new stable workflow key for every distinct retained resume pass. Same-key calls are reused only when launch parameters are identical, and incompatible parameters are rejected. The revived child keeps its stored agent, model, and tool contract. Start a same-role fallback challenge, labeled as fallback, only when no known candidate exists or resume rejects eligibility. `steer` with `mode: "follow_up"` only queues text for the next `resume` when the child has already completed.
22
22
 
23
23
  ### Refinement overlays
24
24
 
@@ -158,4 +158,4 @@ Additional user prompt templates can delegate into `pi-subagents` through the na
158
158
 
159
159
  Other Pi extensions can call `pi-subagents` through the in-process event bus. The RPC channels are `subagents:rpc:v1:ready`, `subagents:rpc:v1:request`, and per-request replies at `subagents:rpc:v1:reply:<requestId>`. Envelopes use `{ version: 1, requestId, method, params }`, and replies use `{ version: 1, requestId, success, data | error }`. `ping` advertises the exact process-local async completion event as `events.asyncComplete` for RPC-spawn consumers.
160
160
 
161
- Methods: `ping`, `status`, `spawn`, `steer`, `interrupt`, `resume`, and `stop`. `ping` capability metadata advertises optional projections: `capabilities.fleetStatus: { version: 1 }` adds bounded current-session `data.fleet` records (opaque reconciliation `key`, resolved `agent`, optional `role`, `model`, `effort`, caller-facing `goal`, `startedAt`, split `{ input, output, total }` tokens, plus `totalActive`/`omitted` overflow counts) to successful `status` replies; `capabilities.launchResolvedExtensions` advertises parent-resolved opaque launch-extension identifiers in status details; `capabilities.runtimeAcknowledgedExtensions` advertises the best-effort child-runtime acknowledgement projection fed by cooperating extensions emitting `subagent:acknowledge-extension`. Foreground `details.results[]` rows carry a stable numeric `index`; correlate children by `(runId, index)` rather than row position. Consumers should read status/result artifacts and RPC projections instead of scraping terminal output and must ignore unknown fields. `spawn` requires `workflowScript`, is async-only, and rejects management actions, `async: false`, or `clarify: true`; it reuses the normal executor, so discovery, validation, session attribution, configured spawn caps, child-safety depth, artifacts, and async status are shared with the `subagent` tool. `status`, acknowledged async `steer`, and `interrupt` map to the normal control actions. RPC steer disables pause-and-revive recovery and advertises `capabilities.nonRecoveringSteer`, preserving the caller's authority over the exact spawned child. `resume` requires a target plus non-empty message and delegates to the package-owned revival path; it may set a caller-owned `file-only` output path but cannot override the persisted child model, tools, budgets, session ownership, or exclusive session lease. For retained-child workflows, list children first and resume only rows reported `resumable`; otherwise start a same-role fallback challenge and label it as fallback. `stop` targets running async runs through the existing timeout control channel. `pi.events` is process-local, so separate Pi processes and child subagents need lifecycle artifact files or `pi-intercom` instead.
161
+ Methods: `ping`, `status`, `manage`, `spawn`, `steer`, `interrupt`, `resume`, `stop`, and `cost`. `ping` capability metadata advertises optional projections: `capabilities.fleetStatus: { version: 1 }` adds bounded current-session `data.fleet` records (opaque reconciliation `key`, resolved `agent`, optional `role`, `model`, `effort`, caller-facing `goal`, `startedAt`, split `{ input, output, total }` tokens, plus `totalActive`/`omitted` overflow counts) to successful `status` replies; `capabilities.launchResolvedExtensions` advertises parent-resolved opaque launch-extension identifiers in status details; `capabilities.runtimeAcknowledgedExtensions` advertises the best-effort child-runtime acknowledgement projection fed by cooperating extensions emitting `subagent:acknowledge-extension`; `capabilities.cost: { version: 1 }` advertises parent-plus-child accounting as data. Foreground `details.results[]` rows carry a stable numeric `index`; correlate children by `(runId, index)` rather than row position. Consumers should read status/result artifacts and RPC projections instead of scraping terminal output and must ignore unknown fields. `spawn` accepts either `{ agent, task? }`, an inline `workflowScript`, or `workflowScriptPath`; it is async-only and rejects management actions, `async: false`, or `clarify: true`. It reuses the normal executor, so discovery, validation, session attribution, configured spawn caps, child-safety depth, artifacts, and async status are shared with the `subagent` tool. `manage` accepts only the schedule actions advertised by `ping.capabilities.managementActions`. `status`, acknowledged async `steer`, and `interrupt` map to the normal control actions. RPC steer disables pause-and-revive recovery and advertises `capabilities.nonRecoveringSteer`, preserving the caller's authority over the exact spawned child. `resume` requires a target plus non-empty message and delegates to the package-owned revival path; it may set a caller-owned `file-only` output path but cannot override the persisted child model, tools, budgets, session ownership, or exclusive session lease. For retained-child workflows, resume only roster rows reported `resumable`; because that workflow-only roster is not exhaustive, inspect the exact status of a known direct-run candidate and attempt the authoritative resume when status identifies it. Start a labeled same-role fallback only when there is no known candidate or resume rejects eligibility. `stop` targets running async runs through the existing timeout control channel. `pi.events` is process-local, so separate Pi processes and child subagents need lifecycle artifact files or `pi-intercom` instead.
@@ -17,6 +17,7 @@ export interface ProactiveSkillSubagentRecommendation {
17
17
  export interface AvailableSkill {
18
18
  name: string;
19
19
  description?: string;
20
+ disableModelInvocation?: boolean;
20
21
  }
21
22
  export declare function resolveProactiveSkillSubagentsConfig(config?: ProactiveSkillSubagentsConfig | false): ResolvedProactiveSkillSubagentsConfig;
22
23
  export declare function recommendProactiveSkillSubagents(input: {
@@ -1 +1 @@
1
- {"version":3,"file":"proactive-skills.d.ts","sourceRoot":"","sources":["../../../src/agents/proactive-skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AASxE,MAAM,WAAW,qCAAqC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oCAAoC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAQD,wBAAgB,oCAAoC,CACnD,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,GAC5C,qCAAqC,CAmBvC;AAiDD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACvD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,CAAC;CAC/C,GAAG,oCAAoC,EAAE,CA4CzC;AAED,wBAAgB,2CAA2C,CAC1D,eAAe,EAAE,oCAAoC,EAAE,GACrD,MAAM,EAAE,CAYV;AAED,wBAAgB,8CAA8C,CAAC,KAAK,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,CAAC;IAC/C,uBAAuB,EAAE,MAAM,cAAc,EAAE,CAAC;CAChD,GAAG,MAAM,EAAE,CAcX"}
1
+ {"version":3,"file":"proactive-skills.d.ts","sourceRoot":"","sources":["../../../src/agents/proactive-skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AASxE,MAAM,WAAW,qCAAqC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oCAAoC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC;AAQD,wBAAgB,oCAAoC,CACnD,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,GAC5C,qCAAqC,CAmBvC;AAiDD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACvD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,CAAC;CAC/C,GAAG,oCAAoC,EAAE,CA8CzC;AAED,wBAAgB,2CAA2C,CAC1D,eAAe,EAAE,oCAAoC,EAAE,GACrD,MAAM,EAAE,CAYV;AAED,wBAAgB,8CAA8C,CAAC,KAAK,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,6BAA6B,GAAG,KAAK,CAAC;IAC/C,uBAAuB,EAAE,MAAM,cAAc,EAAE,CAAC;CAChD,GAAG,MAAM,EAAE,CAcX"}
@@ -105,7 +105,9 @@ export function recommendProactiveSkillSubagents(input) {
105
105
  }
106
106
  }
107
107
  return [...counts.entries()]
108
- .filter(([skill, sources]) => sources.size >= config.minReferences && (!availableByName || availableByName.has(skill)))
108
+ // Hidden skills (disable-model-invocation: true) are user-only and must
109
+ // never surface in model-facing proactive recommendations.
110
+ .filter(([skill, sources]) => sources.size >= config.minReferences && (!availableByName || availableByName.has(skill)) && availableByName?.get(skill)?.disableModelInvocation !== true)
109
111
  .map(([skill, sources]) => {
110
112
  const description = availableByName?.get(skill)?.description;
111
113
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"proactive-skills.js","sourceRoot":"","sources":["../../../src/agents/proactive-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proactive-skills.js","sourceRoot":"","sources":["../../../src/agents/proactive-skills.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ interface ResolvedSkill {
8
8
  content: string;
9
9
  description?: string;
10
10
  source: SkillSource;
11
+ disableModelInvocation?: boolean;
11
12
  }
12
13
  export declare function resolveSkillPath(skillName: string, cwd: string): {
13
14
  path: string;
@@ -27,6 +28,7 @@ export declare function discoverAvailableSkills(cwd: string): Array<{
27
28
  name: string;
28
29
  source: SkillSource;
29
30
  description?: string;
31
+ disableModelInvocation?: boolean;
30
32
  }>;
31
33
  export declare function clearSkillCache(): void;
32
34
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/agents/skills.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,MAAM,WAAW,GACpB,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEb,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;CACpB;AAmiBD,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAKnD;AAsCD,wBAAgB,aAAa,CAC5B,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,MAAM,EACX,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAkClD;AAED,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAUlD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAmBnE;AASD,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,GAC5C,MAAM,EAAE,GAAG,KAAK,GAAG,SAAS,CAsB9B;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,CAUD;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/agents/skills.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,MAAM,WAAW,GACpB,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEb,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC;AAyjBD,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAKnD;AAwCD,wBAAgB,aAAa,CAC5B,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,MAAM,EACX,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAkClD;AAED,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAUlD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAwBnE;AASD,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,GAC5C,MAAM,EAAE,GAAG,KAAK,GAAG,SAAS,CAsB9B;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC,CAWD;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}