pi-subagents 0.78.0 → 0.79.1

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 (188) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/docs/agents.md +4 -2
  3. package/docs/configuration.md +4 -4
  4. package/docs/extension-api.md +4 -0
  5. package/docs/observability.md +11 -3
  6. package/docs/tool-reference.md +12 -1
  7. package/docs/workflows.md +6 -4
  8. package/package.json +1 -1
  9. package/skills/pi-subagents/SKILL.md +1 -0
  10. package/skills/pi-subagents/references/execution-controls.md +2 -0
  11. package/src/extension/declaration-pinning.d.ts.map +1 -1
  12. package/src/extension/declaration-pinning.js +15 -1
  13. package/src/extension/declaration-pinning.js.map +1 -1
  14. package/src/extension/index.d.ts.map +1 -1
  15. package/src/extension/index.js +19 -4
  16. package/src/extension/index.js.map +1 -1
  17. package/src/extension/public-execution.d.ts +1 -0
  18. package/src/extension/public-execution.d.ts.map +1 -1
  19. package/src/extension/public-execution.js +3 -0
  20. package/src/extension/public-execution.js.map +1 -1
  21. package/src/extension/rpc.d.ts.map +1 -1
  22. package/src/extension/rpc.js +5 -3
  23. package/src/extension/rpc.js.map +1 -1
  24. package/src/extension/schemas.d.ts +2 -0
  25. package/src/extension/schemas.d.ts.map +1 -1
  26. package/src/extension/schemas.js +1 -0
  27. package/src/extension/schemas.js.map +1 -1
  28. package/src/extension/tool-activation.d.ts +1 -0
  29. package/src/extension/tool-activation.d.ts.map +1 -1
  30. package/src/extension/tool-activation.js +57 -18
  31. package/src/extension/tool-activation.js.map +1 -1
  32. package/src/extension/upgrade-notice.d.ts.map +1 -1
  33. package/src/extension/upgrade-notice.js +7 -1
  34. package/src/extension/upgrade-notice.js.map +1 -1
  35. package/src/intercom/native-supervisor-channel.d.ts +2 -1
  36. package/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  37. package/src/intercom/native-supervisor-channel.js +117 -9
  38. package/src/intercom/native-supervisor-channel.js.map +1 -1
  39. package/src/runs/background/async-execution.d.ts.map +1 -1
  40. package/src/runs/background/async-execution.js +13 -16
  41. package/src/runs/background/async-execution.js.map +1 -1
  42. package/src/runs/background/async-job-tracker.d.ts.map +1 -1
  43. package/src/runs/background/async-job-tracker.js +8 -0
  44. package/src/runs/background/async-job-tracker.js.map +1 -1
  45. package/src/runs/background/async-resume.d.ts.map +1 -1
  46. package/src/runs/background/async-resume.js +2 -1
  47. package/src/runs/background/async-resume.js.map +1 -1
  48. package/src/runs/background/async-status-snapshot.d.ts.map +1 -1
  49. package/src/runs/background/async-status-snapshot.js +4 -2
  50. package/src/runs/background/async-status-snapshot.js.map +1 -1
  51. package/src/runs/background/async-status.d.ts.map +1 -1
  52. package/src/runs/background/async-status.js +16 -8
  53. package/src/runs/background/async-status.js.map +1 -1
  54. package/src/runs/background/inspect-rpc.d.ts +5 -0
  55. package/src/runs/background/inspect-rpc.d.ts.map +1 -1
  56. package/src/runs/background/inspect-rpc.js +20 -3
  57. package/src/runs/background/inspect-rpc.js.map +1 -1
  58. package/src/runs/background/result-delivery-ownership.d.ts +0 -2
  59. package/src/runs/background/result-delivery-ownership.d.ts.map +1 -1
  60. package/src/runs/background/result-delivery-ownership.js +5 -21
  61. package/src/runs/background/result-delivery-ownership.js.map +1 -1
  62. package/src/runs/background/result-files.d.ts +5 -3
  63. package/src/runs/background/result-files.d.ts.map +1 -1
  64. package/src/runs/background/result-files.js +10 -6
  65. package/src/runs/background/result-files.js.map +1 -1
  66. package/src/runs/background/result-watcher.d.ts.map +1 -1
  67. package/src/runs/background/result-watcher.js +15 -8
  68. package/src/runs/background/result-watcher.js.map +1 -1
  69. package/src/runs/background/resume-guidance.d.ts.map +1 -1
  70. package/src/runs/background/resume-guidance.js +3 -2
  71. package/src/runs/background/resume-guidance.js.map +1 -1
  72. package/src/runs/background/run-child-session.d.ts.map +1 -1
  73. package/src/runs/background/run-child-session.js +7 -4
  74. package/src/runs/background/run-child-session.js.map +1 -1
  75. package/src/runs/background/run-status.d.ts.map +1 -1
  76. package/src/runs/background/run-status.js +11 -4
  77. package/src/runs/background/run-status.js.map +1 -1
  78. package/src/runs/background/stale-run-reconciler.d.ts.map +1 -1
  79. package/src/runs/background/stale-run-reconciler.js +53 -5
  80. package/src/runs/background/stale-run-reconciler.js.map +1 -1
  81. package/src/runs/background/subagent-runner.d.ts.map +1 -1
  82. package/src/runs/background/subagent-runner.js +15 -5
  83. package/src/runs/background/subagent-runner.js.map +1 -1
  84. package/src/runs/background/workflow-terminal-proof.d.ts +18 -1
  85. package/src/runs/background/workflow-terminal-proof.d.ts.map +1 -1
  86. package/src/runs/background/workflow-terminal-proof.js +27 -0
  87. package/src/runs/background/workflow-terminal-proof.js.map +1 -1
  88. package/src/runs/foreground/async-dismiss-action.d.ts.map +1 -1
  89. package/src/runs/foreground/async-dismiss-action.js +2 -1
  90. package/src/runs/foreground/async-dismiss-action.js.map +1 -1
  91. package/src/runs/foreground/async-steering-action.d.ts.map +1 -1
  92. package/src/runs/foreground/async-steering-action.js +3 -2
  93. package/src/runs/foreground/async-steering-action.js.map +1 -1
  94. package/src/runs/foreground/async-stop-action.d.ts +1 -0
  95. package/src/runs/foreground/async-stop-action.d.ts.map +1 -1
  96. package/src/runs/foreground/async-stop-action.js +3 -1
  97. package/src/runs/foreground/async-stop-action.js.map +1 -1
  98. package/src/runs/foreground/command-action.d.ts.map +1 -1
  99. package/src/runs/foreground/command-action.js +2 -1
  100. package/src/runs/foreground/command-action.js.map +1 -1
  101. package/src/runs/foreground/execution.d.ts.map +1 -1
  102. package/src/runs/foreground/execution.js +18 -7
  103. package/src/runs/foreground/execution.js.map +1 -1
  104. package/src/runs/foreground/subagent-executor.d.ts +2 -0
  105. package/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  106. package/src/runs/foreground/subagent-executor.js +98 -32
  107. package/src/runs/foreground/subagent-executor.js.map +1 -1
  108. package/src/runs/shared/async-status-projection.d.ts +4 -0
  109. package/src/runs/shared/async-status-projection.d.ts.map +1 -1
  110. package/src/runs/shared/async-status-projection.js +23 -1
  111. package/src/runs/shared/async-status-projection.js.map +1 -1
  112. package/src/runs/shared/child-commands.d.ts +2 -0
  113. package/src/runs/shared/child-commands.d.ts.map +1 -1
  114. package/src/runs/shared/child-commands.js +4 -0
  115. package/src/runs/shared/child-commands.js.map +1 -1
  116. package/src/runs/shared/child-runtime-config.d.ts +6 -0
  117. package/src/runs/shared/child-runtime-config.d.ts.map +1 -1
  118. package/src/runs/shared/child-runtime-config.js +6 -0
  119. package/src/runs/shared/child-runtime-config.js.map +1 -1
  120. package/src/runs/shared/child-session.d.ts +6 -6
  121. package/src/runs/shared/child-session.d.ts.map +1 -1
  122. package/src/runs/shared/child-session.js +111 -51
  123. package/src/runs/shared/child-session.js.map +1 -1
  124. package/src/runs/shared/long-running-guard.d.ts +3 -1
  125. package/src/runs/shared/long-running-guard.d.ts.map +1 -1
  126. package/src/runs/shared/long-running-guard.js +75 -17
  127. package/src/runs/shared/long-running-guard.js.map +1 -1
  128. package/src/runs/shared/model-resolution.d.ts +5 -1
  129. package/src/runs/shared/model-resolution.d.ts.map +1 -1
  130. package/src/runs/shared/model-resolution.js +8 -1
  131. package/src/runs/shared/model-resolution.js.map +1 -1
  132. package/src/runs/shared/nested-events.d.ts.map +1 -1
  133. package/src/runs/shared/nested-events.js +2 -0
  134. package/src/runs/shared/nested-events.js.map +1 -1
  135. package/src/runs/shared/pi-spawn.d.ts +5 -1
  136. package/src/runs/shared/pi-spawn.d.ts.map +1 -1
  137. package/src/runs/shared/pi-spawn.js +86 -30
  138. package/src/runs/shared/pi-spawn.js.map +1 -1
  139. package/src/runs/shared/run-ownership.d.ts +4 -0
  140. package/src/runs/shared/run-ownership.d.ts.map +1 -0
  141. package/src/runs/shared/run-ownership.js +9 -0
  142. package/src/runs/shared/run-ownership.js.map +1 -0
  143. package/src/runs/shared/subagent-control.d.ts +1 -0
  144. package/src/runs/shared/subagent-control.d.ts.map +1 -1
  145. package/src/runs/shared/subagent-control.js +2 -1
  146. package/src/runs/shared/subagent-control.js.map +1 -1
  147. package/src/runs/shared/subagent-prompt-runtime.d.ts +45 -18
  148. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  149. package/src/runs/shared/subagent-prompt-runtime.js +160 -59
  150. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  151. package/src/shared/file-lease.d.ts +7 -1
  152. package/src/shared/file-lease.d.ts.map +1 -1
  153. package/src/shared/file-lease.js +8 -2
  154. package/src/shared/file-lease.js.map +1 -1
  155. package/src/shared/fork-context.d.ts +3 -1
  156. package/src/shared/fork-context.d.ts.map +1 -1
  157. package/src/shared/fork-context.js +23 -13
  158. package/src/shared/fork-context.js.map +1 -1
  159. package/src/shared/session-succession.d.ts +5 -0
  160. package/src/shared/session-succession.d.ts.map +1 -0
  161. package/src/shared/session-succession.js +25 -0
  162. package/src/shared/session-succession.js.map +1 -0
  163. package/src/shared/types.d.ts +15 -1
  164. package/src/shared/types.d.ts.map +1 -1
  165. package/src/shared/types.js +3 -0
  166. package/src/shared/types.js.map +1 -1
  167. package/src/shared/utils.d.ts +11 -0
  168. package/src/shared/utils.d.ts.map +1 -1
  169. package/src/shared/utils.js +17 -0
  170. package/src/shared/utils.js.map +1 -1
  171. package/src/slash/slash-commands.d.ts.map +1 -1
  172. package/src/slash/slash-commands.js +2 -2
  173. package/src/slash/slash-commands.js.map +1 -1
  174. package/src/watchdog/register-main.js +2 -2
  175. package/src/watchdog/register-main.js.map +1 -1
  176. package/src/watchdog/runtime.d.ts.map +1 -1
  177. package/src/watchdog/runtime.js +3 -5
  178. package/src/watchdog/runtime.js.map +1 -1
  179. package/src/workflows/scripted-workflow.d.ts +1 -1
  180. package/src/workflows/scripted-workflow.d.ts.map +1 -1
  181. package/src/workflows/workflow-child-summary.d.ts +5 -0
  182. package/src/workflows/workflow-child-summary.d.ts.map +1 -1
  183. package/src/workflows/workflow-child-summary.js +10 -0
  184. package/src/workflows/workflow-child-summary.js.map +1 -1
  185. package/src/workflows/workflow-reuse.d.ts +6 -1
  186. package/src/workflows/workflow-reuse.d.ts.map +1 -1
  187. package/src/workflows/workflow-reuse.js +22 -1
  188. package/src/workflows/workflow-reuse.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pi-spawn.js","sourceRoot":"","sources":["../../../../src/runs/shared/pi-spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-spawn.js","sourceRoot":"","sources":["../../../../src/runs/shared/pi-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAEjE,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAE/D,CAAC;YACF,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB;gBAAE,OAAO,GAAG,CAAC;QACtD,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC5C,IAAI,CAAC;QACJ,OAAO,0BAA0B,CAChC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAC3D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACJ,OAAO,KAAK;YACX,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACR,4FAA4F;QAC5F,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,kCAAkC,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACJ,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,SAAS,CAAC;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;QACrE,IAAI,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,+FAA+F;YAC/F,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,KAAK,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,GAAG;gBAAE,OAAO,SAAS,CAAC;YACrC,GAAG,GAAG,MAAM,CAAC;YACb,SAAS;QACV,CAAC;QACD,+EAA+E;QAC/E,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,OAAO,aAAa,CAAC;IACtB,CAAC;AACF,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,wBAAwB,CAAC,OAAoB,EAAE;IAC9D,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACpC,CAAC;AAgBD,0FAA0F;AAC1F,MAAM,UAAU,sBAAsB,CAAC,OAAoB,EAAE;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtF,CAAC;AAYD,SAAS,gBAAgB,CAAC,QAAgB;IACzC,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oBAAoB,CAC5B,QAAgB,EAChB,UAAyC;IAEzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB;IACjD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACrD,OAAO,iBAAiB,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CACzB,eAAuB,EACvB,eAAgE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE3H,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,eAAe,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,gCAAgC,eAAe,0BAA0B,CAAC,CAAC;IAC5F,CAAC;IACD,IAAK,GAAqB,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,gCAAgC,eAAe,eAAe,uBAAuB,GAAG,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,GAAoB,CAAC;AAC7B,CAAC;AAMD,oGAAoG;AACpG,SAAS,eAAe,CAAC,IAAiB;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAEpC,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,iBAAiB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC;oBAC/D,CAAC,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7D,IAAI,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACR,8EAA8E;YAC/E,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;WAClD,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;WAC5D,oBAAoB,CAAC,KAAK,CAAC;WAC3B,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAEnI,oFAAoF;IACpF,MAAM,qBAAqB,GAAoC,EAAE,CAAC;IAClE,IAAI,IAAI,CAAC,kBAAkB;QAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjF,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB;YAC3C,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxD,CAAC,CAAC,6BAA6B,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;QAC1D,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe;gBAAE,SAAS;YAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAC1I,CAAC;QAAC,MAAM,CAAC;YACR,4EAA4E;QAC7E,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAoB,EAAE;IACxD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,WAAW,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC;IACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,IAAI,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC;QAAE,OAAO,GAAG,CAAC;IACnF,IAAI,SAAS,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,CAAC,IAAI,6BAA6B,CAAC,CAAC;IACpH,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,IAAc,EACd,OAAoB,EAAE;IAEtB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,QAAQ,KAAK,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO;gBACN,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;gBAC1C,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;aACzB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACf,OAAO;YACN,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;SAC1B,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACd,gDAAgD,yBAAyB,cAAc,uBAAuB,gBAAgB,CAC9H,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** The sessions whose runs sessionId owns: itself and the sessions this process replaced on the way to it. */
2
+ export declare function ownerSessionIds(sessionId: string): ReadonlySet<string | undefined>;
3
+ export declare function ownsRun(currentSessionId: string | null | undefined, runSessionId: string | undefined): boolean;
4
+ //# sourceMappingURL=run-ownership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-ownership.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/run-ownership.ts"],"names":[],"mappings":"AAEA,8GAA8G;AAC9G,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAElF;AAED,wBAAgB,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9G"}
@@ -0,0 +1,9 @@
1
+ import { inheritedSessionIds } from "../../shared/session-succession.js";
2
+ /** The sessions whose runs sessionId owns: itself and the sessions this process replaced on the way to it. */
3
+ export function ownerSessionIds(sessionId) {
4
+ return new Set([sessionId, ...inheritedSessionIds(sessionId)]);
5
+ }
6
+ export function ownsRun(currentSessionId, runSessionId) {
7
+ return currentSessionId ? ownerSessionIds(currentSessionId).has(runSessionId) : false;
8
+ }
9
+ //# sourceMappingURL=run-ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-ownership.js","sourceRoot":"","sources":["../../../../src/runs/shared/run-ownership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,8GAA8G;AAC9G,MAAM,UAAU,eAAe,CAAC,SAAiB;IAChD,OAAO,IAAI,GAAG,CAAqB,CAAC,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,gBAA2C,EAAE,YAAgC;IACpG,OAAO,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvF,CAAC"}
@@ -32,6 +32,7 @@ export declare function buildControlEvent(input: {
32
32
  toolCount?: number;
33
33
  currentTool?: string;
34
34
  toolCallId?: string;
35
+ hasCommandController?: boolean;
35
36
  currentToolDurationMs?: number;
36
37
  currentPath?: string;
37
38
  elapsedMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-control.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-control.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC1B,MAAM,uBAAuB,CAAC;AAS/B,eAAO,MAAM,sBAAsB,EAAE,qBAQpC,CAAC;AAgBF,wBAAgB,oBAAoB,CACnC,YAAY,CAAC,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,aAAa,GACtB,qBAAqB,CAqCvB;AAiBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,aAAa,GAAG,SAAS,CAM5B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IAClD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAKV;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACxC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,YAAY,CAkCf;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAEpG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAMzJ;AAaD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAS9D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAoDpG;AAGD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAatG"}
1
+ {"version":3,"file":"subagent-control.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-control.ts"],"names":[],"mappings":"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"}
@@ -123,6 +123,7 @@ export function buildControlEvent(input) {
123
123
  ...(input.toolCount !== undefined ? { toolCount: input.toolCount } : {}),
124
124
  ...(input.currentTool ? { currentTool: input.currentTool } : {}),
125
125
  ...(input.toolCallId ? { toolCallId: input.toolCallId } : {}),
126
+ ...(input.hasCommandController !== undefined ? { hasCommandController: input.hasCommandController } : {}),
126
127
  ...(input.currentToolDurationMs !== undefined ? { currentToolDurationMs: input.currentToolDurationMs } : {}),
127
128
  ...(input.currentPath ? { currentPath: input.currentPath } : {}),
128
129
  ...(elapsedMs !== undefined ? { elapsedMs } : {}),
@@ -210,7 +211,7 @@ export function formatControlNoticeMessage(event, childIntercomTarget) {
210
211
  ...head("Subagent needs attention"),
211
212
  "Hint: Inspect the running command and recent output before nudging. A queued steer does not cancel an in-flight bash call. A dev server or watch command may intentionally never return. Elapsed time alone does not prove the command is stuck.",
212
213
  "Recovery: For a local Pi child explicitly granted subagent_command, yield a needed persistent command or cancel the exact incorrect command, then steer the child. Query command.status to confirm the result. If command controls are unavailable, inspect partial changes and interruption scope before interrupt/resume; interrupt is run-scoped and may affect siblings.",
213
- ...(event.toolCallId ? [command("Command", "command.status"), command("Yield", "command.yield"), command("Cancel", "command.cancel")] : []),
214
+ ...(event.toolCallId && event.hasCommandController ? [command("Command", "command.status"), command("Yield", "command.yield"), command("Cancel", "command.cancel")] : []),
214
215
  status,
215
216
  `Transcript: subagent({ action: "status", id: "${runTarget}", options: { view: "transcript"${event.index !== undefined ? `, index: ${event.index}` : ""} } })`,
216
217
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-control.ts"],"names":[],"mappings":"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"}
@@ -21,29 +21,56 @@ type ChildBoundaryOptions = {
21
21
  export declare function rewriteSubagentPrompt(prompt: string, options: InheritedPromptOptions & ChildBoundaryOptions): string;
22
22
  /** Installed after every other extension: a returned prompt freezes out sections added after it. */
23
23
  export declare function registerSubagentPromptBoundary(pi: ExtensionAPI, config: ChildRuntimeConfig): void;
24
- type DeclaredTool = {
25
- name: string;
24
+ /** The system messages older than `forkedAt`: the prompt and tool state a fork inherited. */
25
+ export declare function systemMessagesBefore<T extends {
26
+ role: string;
27
+ }>(messages: readonly T[], forkedAt: number): T[];
28
+ /** The model that wrote a fork's inherited history. */
29
+ export type InheritedModel = {
30
+ provider: string;
31
+ api: string;
32
+ model: string;
26
33
  };
27
- /** The tools the system messages older than `forkedAt` declare, replayed in order as Pi does. */
28
- export declare function toolsDeclaredBefore(messages: readonly {
34
+ /** The provider, API and model of the last assistant message older than `forkedAt`. */
35
+ export declare function modelBefore(messages: readonly {
29
36
  role: string;
30
- }[], forkedAt: number): DeclaredTool[];
37
+ }[], forkedAt: number): InheritedModel | undefined;
31
38
  /**
32
- * A forked child starts with its parent's history, whose system messages declare the parent's
33
- * tools, and its own first system message removes the tools this child may not use. Providers
34
- * cache the tool list before everything else, so that removal made every request of a fork miss
35
- * the parent's prompt cache. Requests now keep declaring every `inherited` tool, in its order,
36
- * before the tools the child adds: the child's own system messages (written at or after
37
- * `forkedAt`) lose their removals of those tools. When a `context` handler changed the
38
- * conversation, Pi sends one leading system message holding the current tools instead, and that
39
- * message's tools are set to the same list. The child still does not register the tools it may
40
- * not use, so a call to one gets Pi's "not found" error and runs nothing. Only what a request
41
- * sends changes; the session keeps Pi's own record. Once a compaction in the child left no
42
- * inherited message in the request, there is no parent prefix to match, and nothing changes.
39
+ * A forked child starts with its parent's history, and Anthropic-style providers cache a request
40
+ * as one prefix: tools, then the system prompt, then the messages. The child's own prompt (its
41
+ * role, tool list and boundary) and its own tools changed that prefix right after the tools, so
42
+ * every fork re-read the parent's whole conversation without the prompt cache.
43
+ *
44
+ * A fork's request now starts exactly as its parent's last one did:
45
+ * - The system messages it inherited (`inherited`, older than `forkedAt`) are sent as they are,
46
+ * and the child's own ones are dropped. When a `context` handler made Pi collapse the request
47
+ * into one leading system message, that message is rebuilt from `inherited`.
48
+ * - Every tool the parent declared stays declared, with the parent's definition. A tool only the
49
+ * child has, or one the child defines differently under the parent's name (a `structured_output`
50
+ * with its own schema, for example), is declared by one system message at the fork point, so the
51
+ * model sees the definition the child's tool checks.
52
+ * - The child's instructions (its role sections, the boundary, the tools it can call) go first in
53
+ * its first own user message, after the inherited history.
54
+ *
55
+ * Only what a request sends changes; the session keeps Pi's own record. Once a compaction in the
56
+ * child left no inherited message, there is no parent prefix to match: the child's own prompt is
57
+ * sent, with the boundary added as a section.
43
58
  */
44
- export declare function keepInheritedToolDeclarations<T extends {
59
+ export declare function projectForkRequest<T extends {
45
60
  role: string;
46
- }>(messages: T[], inherited: readonly DeclaredTool[], forkedAt: number): T[];
61
+ }>(messages: T[], inherited: readonly T[], forkedAt: number, options?: {
62
+ boundary?: string;
63
+ }): T[];
64
+ /**
65
+ * Pi sends the session id in a session-affinity header to Anthropic-style endpoints that ask for
66
+ * one (`compat.sendSessionAffinityHeaders`), and routers use it to keep a session on the upstream
67
+ * that holds its prompt cache. A fork's request starts with its parent's whole cached prefix, so it
68
+ * names its parent's session to be routed to that cache; otherwise a router with several upstreams
69
+ * may send it to one that never saw the parent. Only the header Pi itself sends is changed, and only
70
+ * when the child runs on the model that wrote its inherited history (`parentModel`, the last
71
+ * inherited assistant message): any other model holds no cache of that prefix.
72
+ */
73
+ export declare function applyForkSessionAffinity(headers: Record<string, string | null | undefined> | undefined, model: ExtensionContext["model"] | undefined, parentSessionId: string | undefined, parentModel: InheritedModel | undefined): void;
47
74
  export declare function rewriteForkCacheProviderRequest(event: BeforeProviderRequestEvent, ctx: Pick<ExtensionContext, "model"> | undefined, forkCacheKey: string | undefined): unknown;
48
75
  /**
49
76
  * `inheritedBefore`, set in a forked child to the fork's time, keeps the history the child
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-prompt-runtime.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-prompt-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-prompt-runtime.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/subagent-prompt-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import * as fs from "node:fs";
3
3
  import * as path from "node:path";
4
+ import { declarationsEqual, getCurrentSystemMessage, getCurrentTools } from "@earendil-works/pi-ai";
4
5
  import { registerNativeSupervisorClient } from "../../intercom/native-supervisor-channel.js";
5
6
  import { permissionDecision } from "./permissions.js";
6
7
  import { RUNTIME_EXTENSION_ACK_EVENT, isRuntimeAcknowledgedExtensionId } from "./runtime-acknowledged-extensions.js";
@@ -200,11 +201,13 @@ function stripInheritedPromptText(prompt, options) {
200
201
  }
201
202
  return stripChildBoundaryInstructions(stripSubagentOrchestrationSkill(rewritten));
202
203
  }
203
- function appendChildBoundary(prompt, options) {
204
+ function childBoundary(options) {
204
205
  const boundary = options.fanoutChild ? CHILD_FANOUT_BOUNDARY_INSTRUCTIONS : CHILD_SUBAGENT_BOUNDARY_INSTRUCTIONS;
205
- const structured = options.structuredOutput ? `\n\n${STRUCTURED_OUTPUT_INSTRUCTIONS}` : "";
206
+ return options.structuredOutput ? `${boundary}\n\n${STRUCTURED_OUTPUT_INSTRUCTIONS}` : boundary;
207
+ }
208
+ function appendChildBoundary(prompt, options) {
206
209
  // Pi's base prompt stays first so providers that recognize it by its opening still do.
207
- return `${stripChildBoundaryInstructions(prompt)}\n\n${boundary}${structured}`;
210
+ return `${stripChildBoundaryInstructions(prompt)}\n\n${childBoundary(options)}`;
208
211
  }
209
212
  export function rewriteSubagentPrompt(prompt, options) {
210
213
  return appendChildBoundary(stripInheritedPromptText(prompt, options), options);
@@ -229,6 +232,11 @@ function rewritesChildPrompt(config) {
229
232
  export function registerSubagentPromptBoundary(pi, config) {
230
233
  if (!rewritesChildPrompt(config))
231
234
  return;
235
+ // A returned prompt replaces the whole system prompt of every request. A fork must send its
236
+ // parent's prompt unchanged to reuse its prompt cache, so its boundary goes in its task
237
+ // message instead (see projectForkRequest).
238
+ if (config.forkCacheKey)
239
+ return;
232
240
  pi.on("before_agent_start", (event) => {
233
241
  const finalized = appendChildBoundary(event.systemPrompt, { fanoutChild: config.fanoutChild, structuredOutput: Boolean(config.structuredOutput) });
234
242
  return finalized === event.systemPrompt ? undefined : { systemPrompt: finalized };
@@ -265,57 +273,137 @@ const PROMPT_CACHE_KEY_APIS = new Set([
265
273
  "openai-responses",
266
274
  ]);
267
275
  const isSystemMessage = (message) => message.role === "system";
268
- const writtenSince = (message, forkedAt) => typeof message.timestamp === "number" && message.timestamp >= forkedAt;
269
- /** The tools the system messages older than `forkedAt` declare, replayed in order as Pi does. */
270
- export function toolsDeclaredBefore(messages, forkedAt) {
271
- const tools = new Map();
272
- for (const message of messages) {
273
- if (!isSystemMessage(message) || writtenSince(message, forkedAt))
276
+ const writtenBefore = (message, forkedAt) => typeof message.timestamp === "number" && message.timestamp < forkedAt;
277
+ const promptText = (message) => typeof message?.content === "string" ? message.content : (message?.content ?? []).map((block) => block.text).join("");
278
+ /** The system messages older than `forkedAt`: the prompt and tool state a fork inherited. */
279
+ export function systemMessagesBefore(messages, forkedAt) {
280
+ return messages.filter((message) => isSystemMessage(message) && writtenBefore(message, forkedAt));
281
+ }
282
+ /** The provider, API and model of the last assistant message older than `forkedAt`. */
283
+ export function modelBefore(messages, forkedAt) {
284
+ for (let index = messages.length - 1; index >= 0; index--) {
285
+ const message = messages[index];
286
+ if (message.role !== "assistant" || !writtenBefore(message, forkedAt))
274
287
  continue;
275
- for (const tool of message.toolsRemoved ?? [])
276
- tools.delete(tool.name);
277
- for (const tool of message.toolsAdded ?? [])
278
- tools.set(tool.name, tool);
288
+ if (typeof message.provider !== "string" || typeof message.api !== "string" || typeof message.model !== "string")
289
+ return undefined;
290
+ return { provider: message.provider, api: message.api, model: message.model };
279
291
  }
280
- return [...tools.values()];
292
+ return undefined;
281
293
  }
282
294
  /**
283
- * A forked child starts with its parent's history, whose system messages declare the parent's
284
- * tools, and its own first system message removes the tools this child may not use. Providers
285
- * cache the tool list before everything else, so that removal made every request of a fork miss
286
- * the parent's prompt cache. Requests now keep declaring every `inherited` tool, in its order,
287
- * before the tools the child adds: the child's own system messages (written at or after
288
- * `forkedAt`) lose their removals of those tools. When a `context` handler changed the
289
- * conversation, Pi sends one leading system message holding the current tools instead, and that
290
- * message's tools are set to the same list. The child still does not register the tools it may
291
- * not use, so a call to one gets Pi's "not found" error and runs nothing. Only what a request
292
- * sends changes; the session keeps Pi's own record. Once a compaction in the child left no
293
- * inherited message in the request, there is no parent prefix to match, and nothing changes.
295
+ * Sections that describe what a session has (tools, skills, agents, docs, project files) rather
296
+ * than who it is. A fork is told which tools it can call, and it inherited the rest with the
297
+ * parent's prompt, so its own versions of these sections are not repeated in its task message.
294
298
  */
295
- export function keepInheritedToolDeclarations(messages, inherited, forkedAt) {
296
- const older = (message) => typeof message.timestamp === "number" && message.timestamp < forkedAt;
297
- if (inherited.length === 0 || !messages.some(older))
298
- return messages;
299
- const names = new Set(inherited.map((tool) => tool.name));
300
- let changed = false;
301
- let next = messages.map((message) => {
302
- if (!isSystemMessage(message) || !writtenSince(message, forkedAt) || !message.toolsRemoved?.some((tool) => names.has(tool.name)))
303
- return message;
304
- changed = true;
305
- const { toolsRemoved, ...rest } = message;
306
- const kept = toolsRemoved.filter((tool) => !names.has(tool.name));
307
- return (kept.length > 0 ? { ...rest, toolsRemoved: kept } : rest);
308
- });
309
- const declared = new Map(toolsDeclaredBefore(next, Number.POSITIVE_INFINITY).map((tool) => [tool.name, tool]));
310
- const wanted = [...inherited.map((tool) => declared.get(tool.name) ?? tool), ...[...declared.values()].filter((tool) => !names.has(tool.name))];
311
- const order = [...declared.keys()];
312
- const head = next[0];
313
- if (head && isSystemMessage(head) && wanted.some((tool, index) => order[index] !== tool.name)) {
314
- changed = true;
315
- const { toolsRemoved: _removed, ...rest } = head;
316
- next = [{ ...rest, toolsAdded: wanted }, ...next.slice(1)];
299
+ const LOADOUT_SECTIONS = new Set(["tools", "rules", "docs", "skills", "advertised_subagents", "mcp_servers", "project_context"]);
300
+ /**
301
+ * The child's own instructions, which a fork sends in its task message instead of its system
302
+ * prompt: the text its own system messages (`own`) add, the sections it changed except the loadout
303
+ * ones, the tools it can call, and its boundary. `parent` is the inherited system messages and
304
+ * `child` the whole request.
305
+ */
306
+ function forkInstructions(input) {
307
+ const parent = getCurrentSystemMessage(input.parent);
308
+ const child = getCurrentSystemMessage(input.child);
309
+ const parts = [
310
+ "The system prompt and tool list of this conversation are the parent session's, sent unchanged so this request reuses the parent's prompt cache. The instructions below are yours and take precedence over the parent's role.",
311
+ `Tools you can call: ${getCurrentTools(input.child).map((tool) => tool.name).join(", ") || "none"}. Any other declared tool belongs to the parent session and fails if called.`,
312
+ ];
313
+ const ownPrompt = promptText(getCurrentSystemMessage(input.own));
314
+ if (ownPrompt.length > 0)
315
+ parts.push(ownPrompt);
316
+ for (const [name, value] of Object.entries(child?.sections ?? {})) {
317
+ if (!LOADOUT_SECTIONS.has(name) && value && parent?.sections?.[name] !== value)
318
+ parts.push(value);
319
+ }
320
+ if (input.boundary)
321
+ parts.push(input.boundary);
322
+ return `<subagent_instructions>\n${parts.join("\n\n")}\n</subagent_instructions>`;
323
+ }
324
+ function prependText(message, text) {
325
+ const content = message.content;
326
+ if (typeof content === "string")
327
+ return { ...message, content: `${text}\n\n${content}` };
328
+ if (Array.isArray(content))
329
+ return { ...message, content: [{ type: "text", text }, ...content] };
330
+ return message;
331
+ }
332
+ /**
333
+ * A forked child starts with its parent's history, and Anthropic-style providers cache a request
334
+ * as one prefix: tools, then the system prompt, then the messages. The child's own prompt (its
335
+ * role, tool list and boundary) and its own tools changed that prefix right after the tools, so
336
+ * every fork re-read the parent's whole conversation without the prompt cache.
337
+ *
338
+ * A fork's request now starts exactly as its parent's last one did:
339
+ * - The system messages it inherited (`inherited`, older than `forkedAt`) are sent as they are,
340
+ * and the child's own ones are dropped. When a `context` handler made Pi collapse the request
341
+ * into one leading system message, that message is rebuilt from `inherited`.
342
+ * - Every tool the parent declared stays declared, with the parent's definition. A tool only the
343
+ * child has, or one the child defines differently under the parent's name (a `structured_output`
344
+ * with its own schema, for example), is declared by one system message at the fork point, so the
345
+ * model sees the definition the child's tool checks.
346
+ * - The child's instructions (its role sections, the boundary, the tools it can call) go first in
347
+ * its first own user message, after the inherited history.
348
+ *
349
+ * Only what a request sends changes; the session keeps Pi's own record. Once a compaction in the
350
+ * child left no inherited message, there is no parent prefix to match: the child's own prompt is
351
+ * sent, with the boundary added as a section.
352
+ */
353
+ export function projectForkRequest(messages, inherited, forkedAt, options = {}) {
354
+ const own = (message) => !writtenBefore(message, forkedAt);
355
+ if (inherited.length === 0 || !messages.some((message) => !isSystemMessage(message) && !own(message))) {
356
+ if (!options.boundary)
357
+ return messages;
358
+ const at = messages.findIndex((message) => !isSystemMessage(message));
359
+ const section = { role: "system", content: "", sections: { subagent_boundary: `<subagent_boundary>\n${options.boundary}\n</subagent_boundary>` }, timestamp: forkedAt };
360
+ return at === -1 ? [...messages, section] : [...messages.slice(0, at), section, ...messages.slice(at)];
317
361
  }
318
- return changed ? next : messages;
362
+ const instructions = forkInstructions({ parent: inherited, child: messages, own: messages.filter((message) => isSystemMessage(message) && own(message)), boundary: options.boundary });
363
+ const parentTools = new Map(getCurrentTools(inherited).map((tool) => [tool.name, tool]));
364
+ const childTools = getCurrentTools(messages).filter((tool) => {
365
+ const parentTool = parentTools.get(tool.name);
366
+ return !parentTool || !declarationsEqual(parentTool, tool);
367
+ });
368
+ const redefined = childTools.filter((tool) => parentTools.has(tool.name)).map((tool) => ({ name: tool.name }));
369
+ const sentInherited = messages.filter((message) => isSystemMessage(message) && !own(message));
370
+ const uncollapsed = sentInherited.length === inherited.length && sentInherited.every((message, index) => JSON.stringify(message) === JSON.stringify(inherited[index]));
371
+ const conversation = messages.filter((message) => !isSystemMessage(message));
372
+ const head = getCurrentSystemMessage(inherited);
373
+ const next = uncollapsed
374
+ ? messages.filter((message) => !isSystemMessage(message) || !own(message))
375
+ : [...(head ? [head] : []), ...conversation];
376
+ const firstOwn = next.findIndex((message) => !isSystemMessage(message) && own(message));
377
+ const task = next.findIndex((message) => message.role === "user" && own(message));
378
+ const additions = [];
379
+ if (childTools.length > 0)
380
+ additions.push({ role: "system", content: "", ...(redefined.length > 0 ? { toolsRemoved: redefined } : {}), toolsAdded: childTools, timestamp: forkedAt });
381
+ if (task === -1)
382
+ additions.push({ role: "system", content: "", sections: { subagent_instructions: instructions }, timestamp: forkedAt });
383
+ else
384
+ next[task] = prependText(next[task], instructions);
385
+ const at = firstOwn === -1 ? next.length : firstOwn;
386
+ return [...next.slice(0, at), ...additions, ...next.slice(at)];
387
+ }
388
+ /**
389
+ * Pi sends the session id in a session-affinity header to Anthropic-style endpoints that ask for
390
+ * one (`compat.sendSessionAffinityHeaders`), and routers use it to keep a session on the upstream
391
+ * that holds its prompt cache. A fork's request starts with its parent's whole cached prefix, so it
392
+ * names its parent's session to be routed to that cache; otherwise a router with several upstreams
393
+ * may send it to one that never saw the parent. Only the header Pi itself sends is changed, and only
394
+ * when the child runs on the model that wrote its inherited history (`parentModel`, the last
395
+ * inherited assistant message): any other model holds no cache of that prefix.
396
+ */
397
+ export function applyForkSessionAffinity(headers, model, parentSessionId, parentModel) {
398
+ const parent = parentSessionId?.trim();
399
+ if (!headers || !parent || model?.api !== "anthropic-messages")
400
+ return;
401
+ if (!parentModel || parentModel.provider !== model.provider || parentModel.api !== model.api || parentModel.model !== model.id)
402
+ return;
403
+ const compat = model.compat;
404
+ if (!compat?.sendSessionAffinityHeaders)
405
+ return;
406
+ headers[compat.sessionAffinityFormat === "openrouter" ? "x-session-id" : "x-session-affinity"] = parent;
319
407
  }
320
408
  export function rewriteForkCacheProviderRequest(event, ctx, forkCacheKey) {
321
409
  const key = forkCacheKey?.trim();
@@ -566,8 +654,9 @@ export default function registerSubagentPromptRuntime(pi, config, drainObservati
566
654
  resultFileCoalescer: { schedule: () => false, clear: () => { } },
567
655
  };
568
656
  const nestedRootRunId = inheritedNestedRouteOf(config)?.rootRunId;
657
+ // fanout-child assigns config.hasPendingSupervisorRequest after this hook registers, so read it per wait.
569
658
  if (typeof pi.registerTool === "function")
570
- registerWaitTool(pi, waitState, config.waitTool.enabled, undefined, config.waitTool.defaultTimeoutMs, { nestedRootRunId });
659
+ registerWaitTool(pi, waitState, config.waitTool.enabled, undefined, config.waitTool.defaultTimeoutMs, { nestedRootRunId }, () => config.hasPendingSupervisorRequest?.() === true);
571
660
  const supervisorMetadata = childSupervisorMetadata(config);
572
661
  let nativeSupervisorClientRegistered = false;
573
662
  const registerNativeSupervisorClientOnce = () => {
@@ -616,21 +705,33 @@ export default function registerSubagentPromptRuntime(pi, config, drainObservati
616
705
  // A fork launch sets forkCacheKey. Pi writes the fork's session header when it copies the
617
706
  // parent's branch, so every inherited message is older and every message this child writes,
618
707
  // also after a resume, is not.
619
- // The inherited declarations are read from the session once: a request may hold only Pi's
620
- // collapsed leading message, and what came before the fork never changes.
621
- let inheritedTools;
708
+ // The inherited system messages and model are read from the session once: a request may hold
709
+ // only Pi's collapsed leading message, and what came before the fork never changes.
710
+ let inherited;
711
+ const readInherited = (ctx) => {
712
+ const header = ctx?.sessionManager?.getHeader();
713
+ if (!header)
714
+ return undefined;
715
+ if (inherited?.session !== header.id) {
716
+ const forkedAt = Date.parse(header.timestamp);
717
+ const messages = Number.isFinite(forkedAt) ? ctx.sessionManager.buildSessionProjection().messages : [];
718
+ inherited = { session: header.id, forkedAt, system: systemMessagesBefore(messages, forkedAt), model: modelBefore(messages, forkedAt) };
719
+ }
720
+ return Number.isFinite(inherited.forkedAt) ? inherited : undefined;
721
+ };
722
+ const boundary = rewritesChildPrompt(config) ? childBoundary({ fanoutChild: config.fanoutChild, structuredOutput: Boolean(config.structuredOutput) }) : undefined;
723
+ if (config.forkCacheKey)
724
+ onRuntimeEvent("before_provider_headers", (event, ctx) => {
725
+ applyForkSessionAffinity(event?.headers, ctx?.model, config.parentSessionId, readInherited(ctx)?.model);
726
+ });
622
727
  if (config.forkCacheKey)
623
728
  onRuntimeEvent("context_with_system", (event, ctx) => {
624
729
  if (!event || typeof event !== "object" || !("messages" in event) || !Array.isArray(event.messages))
625
730
  return undefined;
626
- const header = ctx?.sessionManager?.getHeader();
627
- if (!header)
731
+ const fork = readInherited(ctx);
732
+ if (!fork)
628
733
  return undefined;
629
- if (inheritedTools?.session !== header.id) {
630
- const forkedAt = Date.parse(header.timestamp);
631
- inheritedTools = { session: header.id, forkedAt, tools: Number.isFinite(forkedAt) ? toolsDeclaredBefore(ctx.sessionManager.buildSessionProjection().messages, forkedAt) : [] };
632
- }
633
- const messages = keepInheritedToolDeclarations(event.messages, inheritedTools.tools, inheritedTools.forkedAt);
734
+ const messages = projectForkRequest(event.messages, fork.system, fork.forkedAt, { boundary });
634
735
  return messages === event.messages ? undefined : { messages };
635
736
  });
636
737
  onRuntimeEvent("context", (event, ctx) => {