@fitchmultz/pi-subagents 0.49.1 → 0.50.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 (999) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/README.md +88 -94
  3. package/dist/agent/contracts.js +122 -0
  4. package/dist/agent/cwd.js +51 -0
  5. package/dist/agent/host.js +82 -0
  6. package/dist/agent/index.js +422 -0
  7. package/dist/agent/journal-tail.js +183 -0
  8. package/dist/agent/launch.js +87 -0
  9. package/dist/agent/legacy.js +141 -0
  10. package/dist/agent/notifications.js +119 -0
  11. package/dist/agent/observe-screen.js +132 -0
  12. package/dist/agent/observe.js +234 -0
  13. package/dist/agent/process.js +173 -0
  14. package/dist/agent/receipts.js +75 -0
  15. package/dist/agent/runner.js +372 -0
  16. package/dist/agent/saved.js +195 -0
  17. package/dist/agent/shell.js +43 -0
  18. package/dist/agent/storage.js +113 -0
  19. package/dist/agent/typebox.js +20 -0
  20. package/dist/agent/usage.js +232 -0
  21. package/dist/agent/view.js +164 -0
  22. package/dist/build-info.js +1 -0
  23. package/dist/index.js +8 -0
  24. package/dist/pi-intercom/bridge-config.js +12 -19
  25. package/dist/pi-intercom/bridge-http.js +1 -2
  26. package/dist/pi-intercom/bridge-mailbox.js +2 -7
  27. package/dist/pi-intercom/bridge-protocol.js +3 -10
  28. package/dist/pi-intercom/bridge-routes.js +15 -186
  29. package/dist/pi-intercom/bridge-session.js +2 -96
  30. package/dist/pi-intercom/bridge.js +12 -35
  31. package/dist/pi-intercom/broker/broker.js +33 -38
  32. package/dist/pi-intercom/broker/client-last.js +48 -0
  33. package/dist/pi-intercom/broker/client.js +41 -1
  34. package/dist/pi-intercom/broker/connection.js +5 -18
  35. package/dist/pi-intercom/broker/last.js +173 -0
  36. package/dist/pi-intercom/broker/paths.js +28 -9
  37. package/dist/pi-intercom/broker/server-connection.js +18 -0
  38. package/dist/pi-intercom/broker/spawn.js +32 -16
  39. package/dist/pi-intercom/broker/targets.js +24 -0
  40. package/dist/pi-intercom/config.js +0 -23
  41. package/dist/pi-intercom/connection.js +30 -70
  42. package/dist/pi-intercom/identity.js +14 -44
  43. package/dist/pi-intercom/inbound-delivery.js +8 -69
  44. package/dist/pi-intercom/inbound-journal.js +3 -68
  45. package/dist/pi-intercom/inbound-record.js +2 -48
  46. package/dist/pi-intercom/inbound.js +6 -53
  47. package/dist/pi-intercom/index.js +8 -47
  48. package/dist/pi-intercom/last-message.js +58 -0
  49. package/dist/pi-intercom/lifecycle.js +8 -33
  50. package/dist/pi-intercom/message-format.js +1 -32
  51. package/dist/pi-intercom/outbound.js +9 -1
  52. package/dist/pi-intercom/reply-tracker.js +2 -12
  53. package/dist/pi-intercom/reply-wait.js +16 -107
  54. package/dist/pi-intercom/runtime-types.js +0 -1
  55. package/dist/pi-intercom/session-events.js +5 -21
  56. package/dist/pi-intercom/tool-arguments.js +4 -0
  57. package/dist/pi-intercom/tool-registration.js +5 -86
  58. package/dist/pi-intercom/tool-schemas.js +12 -52
  59. package/dist/pi-intercom/tools.js +55 -29
  60. package/dist/pi-intercom/types.js +10 -3
  61. package/dist/pi-intercom/ui/session-format.js +3 -3
  62. package/dist/shared/journal-projections.js +0 -31
  63. package/dist/shared/types.js +0 -195
  64. package/docs/code-quality.md +4 -3
  65. package/docs/development.md +57 -95
  66. package/docs/intercom-bridge.md +206 -415
  67. package/docs/intercom.md +142 -593
  68. package/docs/performance.md +109 -192
  69. package/docs/reference.md +139 -1452
  70. package/package.json +12 -19
  71. package/scripts/build.mjs +1 -1
  72. package/scripts/intercom-bridge-credentials.mjs +1 -1
  73. package/scripts/intercom-remote.mjs +55 -272
  74. package/scripts/local-install-smoke.mjs +3 -1
  75. package/scripts/measure-size.mjs +64 -0
  76. package/scripts/native-package-smoke.mjs +267 -109
  77. package/scripts/package-smoke.mjs +120 -363
  78. package/scripts/real-pi-processes.mjs +6 -38
  79. package/scripts/real-pi-smoke.mjs +153 -144
  80. package/scripts/run-tests.mjs +4 -3
  81. package/skills/pi-intercom/SKILL.md +53 -107
  82. package/skills/pi-subagents/SKILL.md +45 -59
  83. package/src/agent/contracts.ts +144 -0
  84. package/src/agent/cwd.ts +69 -0
  85. package/src/agent/host.ts +82 -0
  86. package/src/agent/index.ts +486 -0
  87. package/src/agent/journal-tail.ts +184 -0
  88. package/src/agent/launch.ts +112 -0
  89. package/src/agent/legacy.ts +167 -0
  90. package/src/agent/notifications.ts +131 -0
  91. package/src/agent/observe-screen.ts +167 -0
  92. package/src/agent/observe.ts +240 -0
  93. package/src/agent/process.ts +179 -0
  94. package/src/agent/receipts.ts +88 -0
  95. package/src/agent/runner.ts +417 -0
  96. package/src/agent/saved.ts +220 -0
  97. package/src/agent/shell.ts +56 -0
  98. package/src/agent/storage.ts +123 -0
  99. package/src/agent/typebox.ts +17 -0
  100. package/src/agent/usage.ts +263 -0
  101. package/src/agent/view.ts +246 -0
  102. package/src/index.ts +10 -0
  103. package/src/pi-intercom/bridge-config.ts +13 -24
  104. package/src/pi-intercom/bridge-http.ts +1 -2
  105. package/src/pi-intercom/bridge-mailbox.ts +8 -8
  106. package/src/pi-intercom/bridge-protocol.ts +7 -11
  107. package/src/pi-intercom/bridge-routes.ts +29 -277
  108. package/src/pi-intercom/bridge-session.ts +3 -114
  109. package/src/pi-intercom/bridge.ts +12 -35
  110. package/src/pi-intercom/broker/broker.ts +39 -54
  111. package/src/pi-intercom/broker/client-last.ts +65 -0
  112. package/src/pi-intercom/broker/client.ts +45 -3
  113. package/src/pi-intercom/broker/connection.ts +5 -17
  114. package/src/pi-intercom/broker/last.ts +222 -0
  115. package/src/pi-intercom/broker/paths.ts +31 -9
  116. package/src/pi-intercom/broker/server-connection.ts +38 -0
  117. package/src/pi-intercom/broker/spawn.ts +44 -16
  118. package/src/pi-intercom/broker/targets.ts +42 -0
  119. package/src/pi-intercom/config.ts +0 -27
  120. package/src/pi-intercom/connection.ts +41 -84
  121. package/src/pi-intercom/identity.ts +21 -49
  122. package/src/pi-intercom/inbound-delivery.ts +10 -93
  123. package/src/pi-intercom/inbound-journal.ts +4 -81
  124. package/src/pi-intercom/inbound-record.ts +2 -61
  125. package/src/pi-intercom/inbound.ts +7 -69
  126. package/src/pi-intercom/index.ts +10 -49
  127. package/src/pi-intercom/last-message.ts +73 -0
  128. package/src/pi-intercom/lifecycle.ts +14 -41
  129. package/src/pi-intercom/message-format.ts +1 -34
  130. package/src/pi-intercom/outbound.ts +16 -1
  131. package/src/pi-intercom/reply-tracker.ts +2 -19
  132. package/src/pi-intercom/reply-wait.ts +21 -128
  133. package/src/pi-intercom/runtime-types.ts +5 -58
  134. package/src/pi-intercom/session-events.ts +7 -35
  135. package/src/pi-intercom/tool-arguments.ts +6 -0
  136. package/src/pi-intercom/tool-registration.ts +9 -109
  137. package/src/pi-intercom/tool-schemas.ts +17 -80
  138. package/src/pi-intercom/tools.ts +58 -44
  139. package/src/pi-intercom/transport.ts +1 -0
  140. package/src/pi-intercom/types.ts +45 -6
  141. package/src/pi-intercom/ui/session-format.ts +3 -3
  142. package/src/shared/journal-projections.ts +0 -35
  143. package/src/shared/post-exit-stdio-guard.ts +7 -1
  144. package/src/shared/types.ts +0 -257
  145. package/agents/context-builder.md +0 -115
  146. package/agents/debugger.md +0 -58
  147. package/agents/delegate.md +0 -14
  148. package/agents/fixer.md +0 -40
  149. package/agents/oracle.md +0 -82
  150. package/agents/planner.md +0 -83
  151. package/agents/researcher.md +0 -60
  152. package/agents/reviewer-claude.md +0 -78
  153. package/agents/reviewer-gpt.md +0 -78
  154. package/agents/reviewer-ponytail.md +0 -92
  155. package/agents/reviewer-security.md +0 -92
  156. package/agents/reviewer.md +0 -78
  157. package/agents/scout.md +0 -77
  158. package/agents/ui-designer.md +0 -58
  159. package/agents/watcher.md +0 -27
  160. package/agents/worker.md +0 -52
  161. package/agents/writer.md +0 -39
  162. package/dist/agents/agent-defaults.js +0 -9
  163. package/dist/agents/agent-definition.js +0 -196
  164. package/dist/agents/agent-management.js +0 -88
  165. package/dist/agents/agent-scope.js +0 -9
  166. package/dist/agents/agent-selection.js +0 -13
  167. package/dist/agents/agent-serializer.js +0 -88
  168. package/dist/agents/agents.js +0 -111
  169. package/dist/agents/builtin-overrides.js +0 -218
  170. package/dist/agents/chain-serializer.js +0 -3
  171. package/dist/agents/config-values.js +0 -52
  172. package/dist/agents/discovery-paths.js +0 -91
  173. package/dist/agents/frontmatter.js +0 -31
  174. package/dist/agents/identity.js +0 -46
  175. package/dist/agents/json-chain.js +0 -254
  176. package/dist/agents/management-config.js +0 -332
  177. package/dist/agents/management-format.js +0 -231
  178. package/dist/agents/management-persistence.js +0 -287
  179. package/dist/agents/management-targets.js +0 -136
  180. package/dist/agents/management-warnings.js +0 -81
  181. package/dist/agents/markdown-chain.js +0 -210
  182. package/dist/agents/package-agents.js +0 -154
  183. package/dist/agents/skill-files.js +0 -157
  184. package/dist/agents/skill-search-paths.js +0 -246
  185. package/dist/agents/skill-types.js +0 -1
  186. package/dist/agents/skills.js +0 -125
  187. package/dist/extension/acceptance-schema.js +0 -55
  188. package/dist/extension/build-info.js +0 -1
  189. package/dist/extension/chain-schema.js +0 -196
  190. package/dist/extension/child-runtime.js +0 -237
  191. package/dist/extension/compact-tools.js +0 -183
  192. package/dist/extension/config-schema.js +0 -29
  193. package/dist/extension/config.js +0 -38
  194. package/dist/extension/control-notice-schema.js +0 -37
  195. package/dist/extension/control-notices.js +0 -36
  196. package/dist/extension/delegation-bridges.js +0 -43
  197. package/dist/extension/doctor.js +0 -166
  198. package/dist/extension/everyday-schemas.js +0 -207
  199. package/dist/extension/fanout-child.js +0 -25
  200. package/dist/extension/index.js +0 -28
  201. package/dist/extension/message-renderers.js +0 -225
  202. package/dist/extension/nested-control-inbox.js +0 -154
  203. package/dist/extension/parent-runtime.js +0 -339
  204. package/dist/extension/primary-tool.js +0 -69
  205. package/dist/extension/result-snapshot.js +0 -4
  206. package/dist/extension/runtime-reload.js +0 -62
  207. package/dist/extension/runtime-storage.js +0 -43
  208. package/dist/extension/schema-overrides.js +0 -75
  209. package/dist/extension/schemas.js +0 -345
  210. package/dist/extension/tool-input.js +0 -35
  211. package/dist/extension/tool-result.js +0 -29
  212. package/dist/history/answer-texts.js +0 -57
  213. package/dist/history/canonical-result.js +0 -114
  214. package/dist/history/canonical-selection.js +0 -40
  215. package/dist/history/database-generation.js +0 -82
  216. package/dist/history/database.js +0 -96
  217. package/dist/history/entry-ingestion.js +0 -61
  218. package/dist/history/index.js +0 -344
  219. package/dist/history/ingest.js +0 -314
  220. package/dist/history/output-digests.js +0 -40
  221. package/dist/history/preview.js +0 -210
  222. package/dist/history/prune.js +0 -33
  223. package/dist/history/queries.js +0 -81
  224. package/dist/history/query-scope.js +0 -190
  225. package/dist/history/rows.js +0 -77
  226. package/dist/history/run-projection.js +0 -136
  227. package/dist/history/run-queries.js +0 -153
  228. package/dist/history/schema.js +0 -31
  229. package/dist/history/search-queries.js +0 -169
  230. package/dist/history/selected-record.js +0 -108
  231. package/dist/history/source-file.js +0 -45
  232. package/dist/history/source-watches.js +0 -141
  233. package/dist/history/store.js +0 -243
  234. package/dist/history/text-chunks.js +0 -168
  235. package/dist/history/text.js +0 -35
  236. package/dist/history/transcript-queries.js +0 -183
  237. package/dist/history/types.js +0 -8
  238. package/dist/history/values.js +0 -36
  239. package/dist/history/wire-inputs.js +0 -122
  240. package/dist/history/wire-models.js +0 -38
  241. package/dist/history/worker-runtime.js +0 -441
  242. package/dist/history/worker.js +0 -91
  243. package/dist/intercom/intercom-bridge.js +0 -140
  244. package/dist/intercom/live-intercom.js +0 -151
  245. package/dist/intercom/nested-result-tree.js +0 -163
  246. package/dist/intercom/result-delivery.js +0 -40
  247. package/dist/intercom/result-intercom.js +0 -216
  248. package/dist/pi-intercom/bridge-ask.js +0 -57
  249. package/dist/pi-intercom/bridge-broadcast.js +0 -60
  250. package/dist/pi-intercom/bridge-catalog.js +0 -372
  251. package/dist/pi-intercom/bridge-control.js +0 -104
  252. package/dist/pi-intercom/bridge-groups.js +0 -135
  253. package/dist/pi-intercom/bridge-launch-journal.js +0 -84
  254. package/dist/pi-intercom/bridge-launch-policy.js +0 -154
  255. package/dist/pi-intercom/bridge-launch.js +0 -327
  256. package/dist/pi-intercom/bridge-operations.js +0 -127
  257. package/dist/pi-intercom/bridge-rpc-process.js +0 -292
  258. package/dist/pi-intercom/interview.js +0 -236
  259. package/dist/pi-intercom/native-control-auth.js +0 -80
  260. package/dist/pi-intercom/native-control-protocol.js +0 -111
  261. package/dist/pi-intercom/native-control.js +0 -130
  262. package/dist/pi-intercom/peer-awareness.js +0 -66
  263. package/dist/pi-intercom/saved-transcript.js +0 -135
  264. package/dist/pi-intercom/subagent-events.js +0 -238
  265. package/dist/pi-intercom/subagent-live-events.js +0 -175
  266. package/dist/pi-intercom/supervisor.js +0 -282
  267. package/dist/pi-intercom/topic-actions.js +0 -177
  268. package/dist/pi-intercom/topics.js +0 -242
  269. package/dist/pi-intercom/transcript.js +0 -175
  270. package/dist/pi-intercom/ui/compose-paste.js +0 -93
  271. package/dist/pi-intercom/ui/compose.js +0 -247
  272. package/dist/pi-intercom/ui/inline-message.js +0 -80
  273. package/dist/pi-intercom/ui/message-renderers.js +0 -147
  274. package/dist/pi-intercom/ui/overlay.js +0 -181
  275. package/dist/pi-intercom/ui/session-list.js +0 -157
  276. package/dist/pi-intercom/ui/tool-renderers.js +0 -110
  277. package/dist/pi-intercom/ui/topic-view.js +0 -88
  278. package/dist/runs/background/async-chain-plan.js +0 -265
  279. package/dist/runs/background/async-control.js +0 -171
  280. package/dist/runs/background/async-execution.js +0 -179
  281. package/dist/runs/background/async-job-admission.js +0 -40
  282. package/dist/runs/background/async-job-projection.js +0 -169
  283. package/dist/runs/background/async-job-tracker.js +0 -353
  284. package/dist/runs/background/async-launch.js +0 -216
  285. package/dist/runs/background/async-plan.js +0 -116
  286. package/dist/runs/background/async-result-file.js +0 -82
  287. package/dist/runs/background/async-resume.js +0 -247
  288. package/dist/runs/background/async-run-discovery.js +0 -211
  289. package/dist/runs/background/async-run-location.js +0 -135
  290. package/dist/runs/background/async-run-record.js +0 -1
  291. package/dist/runs/background/async-run-repair.js +0 -223
  292. package/dist/runs/background/async-run-summary.js +0 -1
  293. package/dist/runs/background/async-single-plan.js +0 -105
  294. package/dist/runs/background/async-status-projection.js +0 -155
  295. package/dist/runs/background/async-status-render.js +0 -117
  296. package/dist/runs/background/async-status-validation.js +0 -181
  297. package/dist/runs/background/async-status.js +0 -3
  298. package/dist/runs/background/async-value.js +0 -21
  299. package/dist/runs/background/completion-dedupe.js +0 -42
  300. package/dist/runs/background/completion-delivery.js +0 -251
  301. package/dist/runs/background/completion-receipts.js +0 -237
  302. package/dist/runs/background/legacy-status-acceptance.js +0 -34
  303. package/dist/runs/background/notify.js +0 -111
  304. package/dist/runs/background/parallel-groups.js +0 -72
  305. package/dist/runs/background/result-payload.js +0 -178
  306. package/dist/runs/background/result-watcher.js +0 -435
  307. package/dist/runs/background/run-id-resolver.js +0 -84
  308. package/dist/runs/background/run-schemas.js +0 -189
  309. package/dist/runs/background/run-status-contracts.js +0 -14
  310. package/dist/runs/background/run-status-render.js +0 -270
  311. package/dist/runs/background/run-status.js +0 -274
  312. package/dist/runs/background/runner-attempt-output.js +0 -155
  313. package/dist/runs/background/runner-attempt.js +0 -263
  314. package/dist/runs/background/runner-child-executor.js +0 -166
  315. package/dist/runs/background/runner-child-observer.js +0 -197
  316. package/dist/runs/background/runner-completion-summary.js +0 -71
  317. package/dist/runs/background/runner-completion.js +0 -211
  318. package/dist/runs/background/runner-config.js +0 -1
  319. package/dist/runs/background/runner-contract.js +0 -1
  320. package/dist/runs/background/runner-dynamic.js +0 -121
  321. package/dist/runs/background/runner-finalization.js +0 -149
  322. package/dist/runs/background/runner-graph.js +0 -68
  323. package/dist/runs/background/runner-initial-status.js +0 -60
  324. package/dist/runs/background/runner-lifecycle.js +0 -142
  325. package/dist/runs/background/runner-monitor.js +0 -311
  326. package/dist/runs/background/runner-parallel.js +0 -203
  327. package/dist/runs/background/runner-prepare-step.js +0 -86
  328. package/dist/runs/background/runner-reporting.js +0 -153
  329. package/dist/runs/background/runner-status.js +0 -148
  330. package/dist/runs/background/runner-step-output.js +0 -90
  331. package/dist/runs/background/runner-step-record.js +0 -45
  332. package/dist/runs/background/runner-step.js +0 -112
  333. package/dist/runs/background/runner-streaming.js +0 -173
  334. package/dist/runs/background/runner-workflow.js +0 -213
  335. package/dist/runs/background/stale-run-reconciler.js +0 -198
  336. package/dist/runs/background/subagent-runner-launcher.js +0 -75
  337. package/dist/runs/background/subagent-runner.js +0 -81
  338. package/dist/runs/background/top-level-async.js +0 -6
  339. package/dist/runs/foreground/chain-clarify.js +0 -428
  340. package/dist/runs/foreground/clarification-draft.js +0 -87
  341. package/dist/runs/foreground/clarify-contracts.js +0 -1
  342. package/dist/runs/foreground/clarify-invocation.js +0 -163
  343. package/dist/runs/foreground/clarify-text-editor.js +0 -210
  344. package/dist/runs/foreground/clarify-view.js +0 -167
  345. package/dist/runs/foreground/execution-input.js +0 -296
  346. package/dist/runs/foreground/execution-routing.js +0 -33
  347. package/dist/runs/foreground/execution-timeout.js +0 -81
  348. package/dist/runs/foreground/foreground-control.js +0 -276
  349. package/dist/runs/foreground/foreground-memory.js +0 -99
  350. package/dist/runs/foreground/invocation-context.js +0 -55
  351. package/dist/runs/foreground/invocation-execution.js +0 -331
  352. package/dist/runs/foreground/invocation-expansion.js +0 -48
  353. package/dist/runs/foreground/management-actions.js +0 -295
  354. package/dist/runs/foreground/nested-control.js +0 -179
  355. package/dist/runs/foreground/question-continuation.js +0 -78
  356. package/dist/runs/foreground/question-control.js +0 -193
  357. package/dist/runs/foreground/resume-target.js +0 -221
  358. package/dist/runs/foreground/revival-launch-policy.js +0 -58
  359. package/dist/runs/foreground/run-async-path.js +0 -217
  360. package/dist/runs/foreground/run-interrupt.js +0 -164
  361. package/dist/runs/foreground/run-nudge.js +0 -278
  362. package/dist/runs/foreground/saved-revival.js +0 -251
  363. package/dist/runs/foreground/subagent-executor.js +0 -153
  364. package/dist/runs/foreground/subagent-params.js +0 -202
  365. package/dist/runs/foreground/wait-observation.js +0 -104
  366. package/dist/runs/foreground/wait-registration.js +0 -17
  367. package/dist/runs/foreground/wait-run.js +0 -301
  368. package/dist/runs/shared/acceptance-contract.js +0 -347
  369. package/dist/runs/shared/acceptance-defaults.js +0 -1
  370. package/dist/runs/shared/acceptance-evaluation.js +0 -276
  371. package/dist/runs/shared/acceptance-finalization.js +0 -356
  372. package/dist/runs/shared/acceptance-outcome.js +0 -53
  373. package/dist/runs/shared/acceptance-reports.js +0 -212
  374. package/dist/runs/shared/acceptance-submission.js +0 -167
  375. package/dist/runs/shared/acceptance-verification.js +0 -100
  376. package/dist/runs/shared/acceptance.js +0 -4
  377. package/dist/runs/shared/chain-outputs.js +0 -138
  378. package/dist/runs/shared/child-attempt-types.js +0 -1
  379. package/dist/runs/shared/child-attempt.js +0 -340
  380. package/dist/runs/shared/child-boundaries.js +0 -173
  381. package/dist/runs/shared/child-context-filter.js +0 -44
  382. package/dist/runs/shared/child-event-observer.js +0 -390
  383. package/dist/runs/shared/child-execution-cwd.js +0 -126
  384. package/dist/runs/shared/child-execution-outcome.js +0 -72
  385. package/dist/runs/shared/child-invocation.js +0 -54
  386. package/dist/runs/shared/child-message-validation.js +0 -215
  387. package/dist/runs/shared/child-native-accounting.js +0 -106
  388. package/dist/runs/shared/child-native-observation.js +0 -69
  389. package/dist/runs/shared/child-observation-spool.js +0 -169
  390. package/dist/runs/shared/child-observations.js +0 -195
  391. package/dist/runs/shared/child-presence.js +0 -3
  392. package/dist/runs/shared/child-route-env.js +0 -119
  393. package/dist/runs/shared/child-stream-observer.js +0 -221
  394. package/dist/runs/shared/child-stream-projection.js +0 -137
  395. package/dist/runs/shared/child-structured-tool.js +0 -27
  396. package/dist/runs/shared/claude-code.js +0 -162
  397. package/dist/runs/shared/claude-model.js +0 -42
  398. package/dist/runs/shared/claude-session.js +0 -83
  399. package/dist/runs/shared/claude-types.js +0 -1
  400. package/dist/runs/shared/completion-guard.js +0 -31
  401. package/dist/runs/shared/control-event-policy.js +0 -8
  402. package/dist/runs/shared/control-notification-owner.js +0 -13
  403. package/dist/runs/shared/dynamic-fanout.js +0 -289
  404. package/dist/runs/shared/dynamic-item.js +0 -102
  405. package/dist/runs/shared/history-index.js +0 -98
  406. package/dist/runs/shared/legacy-async-recovery.js +0 -114
  407. package/dist/runs/shared/legacy-output-recovery.js +0 -148
  408. package/dist/runs/shared/mcp-config-schema.js +0 -36
  409. package/dist/runs/shared/mcp-direct-tool-allowlist.js +0 -365
  410. package/dist/runs/shared/model-fallback.js +0 -247
  411. package/dist/runs/shared/mutating-tool-guard.js +0 -210
  412. package/dist/runs/shared/native-finalization-types.js +0 -1
  413. package/dist/runs/shared/native-finalization.js +0 -180
  414. package/dist/runs/shared/native-usage.js +0 -293
  415. package/dist/runs/shared/nested-control-records.js +0 -128
  416. package/dist/runs/shared/nested-events.js +0 -8
  417. package/dist/runs/shared/nested-path.js +0 -52
  418. package/dist/runs/shared/nested-projection.js +0 -155
  419. package/dist/runs/shared/nested-protocol.js +0 -18
  420. package/dist/runs/shared/nested-registry.js +0 -191
  421. package/dist/runs/shared/nested-render.js +0 -156
  422. package/dist/runs/shared/nested-route.js +0 -220
  423. package/dist/runs/shared/nested-validation.js +0 -216
  424. package/dist/runs/shared/owned-child-evidence.js +0 -125
  425. package/dist/runs/shared/owned-run-list.js +0 -146
  426. package/dist/runs/shared/owned-run-observation.js +0 -267
  427. package/dist/runs/shared/owned-run-progress.js +0 -109
  428. package/dist/runs/shared/owned-run-read-state.js +0 -1
  429. package/dist/runs/shared/owned-run-results.js +0 -202
  430. package/dist/runs/shared/owned-run-status.js +0 -180
  431. package/dist/runs/shared/owned-run-view.js +0 -51
  432. package/dist/runs/shared/owned-workflow-details.js +0 -17
  433. package/dist/runs/shared/owner-output.js +0 -43
  434. package/dist/runs/shared/parallel-utils.js +0 -49
  435. package/dist/runs/shared/parent-receipts.js +0 -126
  436. package/dist/runs/shared/parent-usage.js +0 -233
  437. package/dist/runs/shared/pi-args.js +0 -217
  438. package/dist/runs/shared/pi-launch-input.js +0 -1
  439. package/dist/runs/shared/pi-session-launch.js +0 -86
  440. package/dist/runs/shared/pi-spawn.js +0 -66
  441. package/dist/runs/shared/run-history-queries.js +0 -136
  442. package/dist/runs/shared/run-history.js +0 -176
  443. package/dist/runs/shared/run-id-ambiguity.js +0 -4
  444. package/dist/runs/shared/run-metadata-paths.js +0 -14
  445. package/dist/runs/shared/run-metadata.js +0 -158
  446. package/dist/runs/shared/run-persistence.js +0 -131
  447. package/dist/runs/shared/run-records.js +0 -9
  448. package/dist/runs/shared/run-restoration.js +0 -337
  449. package/dist/runs/shared/run-state-owner.js +0 -26
  450. package/dist/runs/shared/session-cwd-preload.js +0 -42
  451. package/dist/runs/shared/single-output.js +0 -297
  452. package/dist/runs/shared/stable-value.js +0 -15
  453. package/dist/runs/shared/streaming-text.js +0 -26
  454. package/dist/runs/shared/structured-output.js +0 -67
  455. package/dist/runs/shared/subagent-control.js +0 -246
  456. package/dist/runs/shared/subagent-prompt-runtime.js +0 -94
  457. package/dist/runs/shared/subagent-tool-loop-guard.js +0 -95
  458. package/dist/runs/shared/supervisor-question-state.js +0 -145
  459. package/dist/runs/shared/supervisor-questions.js +0 -284
  460. package/dist/runs/shared/workflow-graph.js +0 -306
  461. package/dist/runs/shared/workflow-policy.js +0 -157
  462. package/dist/runs/shared/worktree-contract.js +0 -1
  463. package/dist/runs/shared/worktree-hook.js +0 -138
  464. package/dist/runs/shared/worktree-location.js +0 -47
  465. package/dist/runs/shared/worktree-preservation.js +0 -8
  466. package/dist/runs/shared/worktree-process.js +0 -107
  467. package/dist/runs/shared/worktree.js +0 -386
  468. package/dist/shared/agent-context-policy.js +0 -116
  469. package/dist/shared/agent-dir.js +0 -14
  470. package/dist/shared/artifacts.js +0 -114
  471. package/dist/shared/atomic-json.js +0 -16
  472. package/dist/shared/chain-files.js +0 -72
  473. package/dist/shared/concurrency.js +0 -18
  474. package/dist/shared/content-preview.js +0 -115
  475. package/dist/shared/execution-cwd.js +0 -22
  476. package/dist/shared/file-coalescer.js +0 -22
  477. package/dist/shared/fork-context.js +0 -47
  478. package/dist/shared/formatters.js +0 -111
  479. package/dist/shared/journal-reader.js +0 -6
  480. package/dist/shared/lazy-tools.js +0 -43
  481. package/dist/shared/message-output.js +0 -116
  482. package/dist/shared/model-info.js +0 -85
  483. package/dist/shared/native-import.js +0 -20
  484. package/dist/shared/native-session-loader.js +0 -17
  485. package/dist/shared/native-session.js +0 -4
  486. package/dist/shared/native-tui.js +0 -23
  487. package/dist/shared/native-typebox.js +0 -32
  488. package/dist/shared/prompt-sections.js +0 -10
  489. package/dist/shared/session-entries.js +0 -87
  490. package/dist/shared/session-identity.js +0 -16
  491. package/dist/shared/settings.js +0 -121
  492. package/dist/shared/status-format.js +0 -171
  493. package/dist/shared/task-file-policy.js +0 -24
  494. package/dist/shared/temp-root.js +0 -143
  495. package/dist/shared/types/acceptance.js +0 -1
  496. package/dist/shared/types/async.js +0 -1
  497. package/dist/shared/types/config.js +0 -1
  498. package/dist/shared/types/details.js +0 -1
  499. package/dist/shared/types/history.js +0 -1
  500. package/dist/shared/types/inputs.js +0 -1
  501. package/dist/shared/types/intercom.js +0 -1
  502. package/dist/shared/types/launch.js +0 -1
  503. package/dist/shared/types/messages.js +0 -1
  504. package/dist/shared/types/nested.js +0 -1
  505. package/dist/shared/types/owned-runs.js +0 -1
  506. package/dist/shared/types/progress.js +0 -1
  507. package/dist/shared/types/questions.js +0 -1
  508. package/dist/shared/types/results.js +0 -1
  509. package/dist/shared/types/state.js +0 -1
  510. package/dist/shared/types/usage.js +0 -1
  511. package/dist/shared/types/workflow.js +0 -1
  512. package/dist/shared/ui-mode.js +0 -3
  513. package/dist/shared/utils.js +0 -128
  514. package/dist/slash/command-discovery.js +0 -83
  515. package/dist/slash/command-input.js +0 -190
  516. package/dist/slash/prompt-template-bridge.js +0 -122
  517. package/dist/slash/prompt-template-contract.js +0 -77
  518. package/dist/slash/prompt-template-results.js +0 -125
  519. package/dist/slash/request-protocol.js +0 -68
  520. package/dist/slash/result-delivery.js +0 -237
  521. package/dist/slash/saved-chain.js +0 -78
  522. package/dist/slash/slash-bridge.js +0 -150
  523. package/dist/slash/slash-commands.js +0 -136
  524. package/dist/slash/slash-live-state.js +0 -267
  525. package/dist/tui/action-hints.js +0 -103
  526. package/dist/tui/activity-lines.js +0 -32
  527. package/dist/tui/agent-browser.js +0 -290
  528. package/dist/tui/agent-controls.js +0 -289
  529. package/dist/tui/agent-conversation.js +0 -444
  530. package/dist/tui/agent-dock.js +0 -171
  531. package/dist/tui/agent-history.js +0 -50
  532. package/dist/tui/agent-model.js +0 -62
  533. package/dist/tui/agent-picker.js +0 -262
  534. package/dist/tui/agent-view.js +0 -350
  535. package/dist/tui/compact-results.js +0 -193
  536. package/dist/tui/conversation-details.js +0 -190
  537. package/dist/tui/conversation-frame.js +0 -135
  538. package/dist/tui/conversation-history.js +0 -210
  539. package/dist/tui/conversation-menu.js +0 -78
  540. package/dist/tui/conversation-notices.js +0 -79
  541. package/dist/tui/conversation-selection.js +0 -58
  542. package/dist/tui/conversation-viewport.js +0 -129
  543. package/dist/tui/direction-message.js +0 -27
  544. package/dist/tui/display.js +0 -282
  545. package/dist/tui/editor-viewport.js +0 -18
  546. package/dist/tui/expanded-content.js +0 -87
  547. package/dist/tui/expanded-multi.js +0 -170
  548. package/dist/tui/expanded-single.js +0 -65
  549. package/dist/tui/history-cards.js +0 -202
  550. package/dist/tui/history-display.js +0 -238
  551. package/dist/tui/history-json.js +0 -16
  552. package/dist/tui/history-metadata.js +0 -152
  553. package/dist/tui/history-record.js +0 -251
  554. package/dist/tui/history-text.js +0 -34
  555. package/dist/tui/indexed-history.js +0 -116
  556. package/dist/tui/nested-widget.js +0 -120
  557. package/dist/tui/picker-page.js +0 -59
  558. package/dist/tui/render.js +0 -72
  559. package/dist/tui/result-facts.js +0 -64
  560. package/dist/tui/task-observation.js +0 -59
  561. package/dist/tui/task-store.js +0 -366
  562. package/dist/tui/text-values.js +0 -16
  563. package/dist/tui/view-connections.js +0 -47
  564. package/dist/tui/view-model.js +0 -94
  565. package/dist/tui/view-persistence.js +0 -51
  566. package/dist/tui/view-ports.js +0 -1
  567. package/dist/tui/view-session.js +0 -37
  568. package/dist/tui/widget-details.js +0 -144
  569. package/dist/tui/widget-status.js +0 -245
  570. package/dist/tui/widget.js +0 -145
  571. package/dist/tui/workflow-labels.js +0 -223
  572. package/dist/tui/workflow-outcomes.js +0 -124
  573. package/generated/RunValidators.d.ts +0 -28
  574. package/generated/RunValidators.js +0 -2
  575. package/prompts/gather-context-and-clarify.md +0 -14
  576. package/prompts/parallel-cleanup.md +0 -65
  577. package/prompts/parallel-context-build.md +0 -59
  578. package/prompts/parallel-handoff-plan.md +0 -68
  579. package/prompts/parallel-research.md +0 -55
  580. package/prompts/parallel-review.md +0 -61
  581. package/prompts/review-loop.md +0 -44
  582. package/scripts/generate-run-schemas.mjs +0 -210
  583. package/skills/pi-intercom/evals/evals.json +0 -29
  584. package/skills/pi-intercom/evals/trigger-evals.json +0 -47
  585. package/skills/pi-intercom/references/peer-sessions.md +0 -74
  586. package/skills/pi-subagents/evals/evals.json +0 -29
  587. package/skills/pi-subagents/evals/trigger-evals.json +0 -42
  588. package/skills/pi-subagents/references/full-orchestration-guide.md +0 -1005
  589. package/src/agents/agent-defaults.ts +0 -13
  590. package/src/agents/agent-definition.ts +0 -253
  591. package/src/agents/agent-management.ts +0 -120
  592. package/src/agents/agent-scope.ts +0 -11
  593. package/src/agents/agent-selection.ts +0 -22
  594. package/src/agents/agent-serializer.ts +0 -90
  595. package/src/agents/agents.ts +0 -214
  596. package/src/agents/builtin-overrides.ts +0 -297
  597. package/src/agents/chain-serializer.ts +0 -3
  598. package/src/agents/config-values.ts +0 -57
  599. package/src/agents/discovery-paths.ts +0 -134
  600. package/src/agents/frontmatter.ts +0 -39
  601. package/src/agents/identity.ts +0 -61
  602. package/src/agents/json-chain.ts +0 -305
  603. package/src/agents/management-config.ts +0 -342
  604. package/src/agents/management-format.ts +0 -243
  605. package/src/agents/management-persistence.ts +0 -408
  606. package/src/agents/management-targets.ts +0 -260
  607. package/src/agents/management-warnings.ts +0 -115
  608. package/src/agents/markdown-chain.ts +0 -237
  609. package/src/agents/package-agents.ts +0 -231
  610. package/src/agents/skill-files.ts +0 -182
  611. package/src/agents/skill-search-paths.ts +0 -289
  612. package/src/agents/skill-types.ts +0 -31
  613. package/src/agents/skills.ts +0 -179
  614. package/src/extension/acceptance-schema.ts +0 -88
  615. package/src/extension/build-info.ts +0 -2
  616. package/src/extension/chain-schema.ts +0 -276
  617. package/src/extension/child-runtime.ts +0 -302
  618. package/src/extension/compact-tools.ts +0 -271
  619. package/src/extension/config-schema.ts +0 -59
  620. package/src/extension/config.ts +0 -45
  621. package/src/extension/control-notice-schema.ts +0 -55
  622. package/src/extension/control-notices.ts +0 -71
  623. package/src/extension/delegation-bridges.ts +0 -59
  624. package/src/extension/doctor.ts +0 -207
  625. package/src/extension/everyday-schemas.ts +0 -252
  626. package/src/extension/fanout-child.ts +0 -33
  627. package/src/extension/index.ts +0 -31
  628. package/src/extension/message-renderers.ts +0 -334
  629. package/src/extension/nested-control-inbox.ts +0 -196
  630. package/src/extension/parent-runtime.ts +0 -405
  631. package/src/extension/primary-tool.ts +0 -130
  632. package/src/extension/result-snapshot.ts +0 -9
  633. package/src/extension/runtime-reload.ts +0 -72
  634. package/src/extension/runtime-storage.ts +0 -49
  635. package/src/extension/schema-overrides.ts +0 -114
  636. package/src/extension/schemas.ts +0 -477
  637. package/src/extension/tool-input.ts +0 -46
  638. package/src/extension/tool-result.ts +0 -47
  639. package/src/history/answer-texts.ts +0 -74
  640. package/src/history/canonical-result.ts +0 -138
  641. package/src/history/canonical-selection.ts +0 -54
  642. package/src/history/database-generation.ts +0 -86
  643. package/src/history/database.ts +0 -97
  644. package/src/history/entry-ingestion.ts +0 -129
  645. package/src/history/index.ts +0 -434
  646. package/src/history/ingest.ts +0 -387
  647. package/src/history/output-digests.ts +0 -41
  648. package/src/history/preview.ts +0 -235
  649. package/src/history/prune.ts +0 -48
  650. package/src/history/queries.ts +0 -125
  651. package/src/history/query-scope.ts +0 -278
  652. package/src/history/rows.ts +0 -118
  653. package/src/history/run-projection.ts +0 -162
  654. package/src/history/run-queries.ts +0 -199
  655. package/src/history/schema.ts +0 -34
  656. package/src/history/search-queries.ts +0 -223
  657. package/src/history/selected-record.ts +0 -140
  658. package/src/history/source-file.ts +0 -51
  659. package/src/history/source-watches.ts +0 -156
  660. package/src/history/store.ts +0 -332
  661. package/src/history/text-chunks.ts +0 -186
  662. package/src/history/text.ts +0 -43
  663. package/src/history/transcript-queries.ts +0 -257
  664. package/src/history/types.ts +0 -29
  665. package/src/history/values.ts +0 -36
  666. package/src/history/wire-inputs.ts +0 -141
  667. package/src/history/wire-models.ts +0 -51
  668. package/src/history/worker-runtime.ts +0 -502
  669. package/src/history/worker.ts +0 -99
  670. package/src/intercom/intercom-bridge.ts +0 -190
  671. package/src/intercom/live-intercom.ts +0 -209
  672. package/src/intercom/nested-result-tree.ts +0 -213
  673. package/src/intercom/result-delivery.ts +0 -56
  674. package/src/intercom/result-intercom.ts +0 -308
  675. package/src/pi-intercom/bridge-ask.ts +0 -64
  676. package/src/pi-intercom/bridge-broadcast.ts +0 -70
  677. package/src/pi-intercom/bridge-catalog.ts +0 -489
  678. package/src/pi-intercom/bridge-control.ts +0 -179
  679. package/src/pi-intercom/bridge-groups.ts +0 -169
  680. package/src/pi-intercom/bridge-launch-journal.ts +0 -122
  681. package/src/pi-intercom/bridge-launch-policy.ts +0 -190
  682. package/src/pi-intercom/bridge-launch.ts +0 -506
  683. package/src/pi-intercom/bridge-operations.ts +0 -169
  684. package/src/pi-intercom/bridge-rpc-process.ts +0 -330
  685. package/src/pi-intercom/interview.ts +0 -295
  686. package/src/pi-intercom/native-control-auth.ts +0 -89
  687. package/src/pi-intercom/native-control-protocol.ts +0 -180
  688. package/src/pi-intercom/native-control.ts +0 -160
  689. package/src/pi-intercom/peer-awareness.ts +0 -84
  690. package/src/pi-intercom/saved-transcript.ts +0 -175
  691. package/src/pi-intercom/subagent-events.ts +0 -299
  692. package/src/pi-intercom/subagent-live-events.ts +0 -236
  693. package/src/pi-intercom/supervisor.ts +0 -362
  694. package/src/pi-intercom/topic-actions.ts +0 -243
  695. package/src/pi-intercom/topics.ts +0 -271
  696. package/src/pi-intercom/transcript.ts +0 -226
  697. package/src/pi-intercom/ui/compose-paste.ts +0 -109
  698. package/src/pi-intercom/ui/compose.ts +0 -305
  699. package/src/pi-intercom/ui/inline-message.ts +0 -110
  700. package/src/pi-intercom/ui/message-renderers.ts +0 -182
  701. package/src/pi-intercom/ui/overlay.ts +0 -238
  702. package/src/pi-intercom/ui/session-list.ts +0 -222
  703. package/src/pi-intercom/ui/tool-renderers.ts +0 -148
  704. package/src/pi-intercom/ui/topic-view.ts +0 -107
  705. package/src/runs/background/async-chain-plan.ts +0 -451
  706. package/src/runs/background/async-control.ts +0 -219
  707. package/src/runs/background/async-execution.ts +0 -227
  708. package/src/runs/background/async-job-admission.ts +0 -54
  709. package/src/runs/background/async-job-projection.ts +0 -225
  710. package/src/runs/background/async-job-tracker.ts +0 -441
  711. package/src/runs/background/async-launch.ts +0 -319
  712. package/src/runs/background/async-plan.ts +0 -285
  713. package/src/runs/background/async-result-file.ts +0 -104
  714. package/src/runs/background/async-resume.ts +0 -386
  715. package/src/runs/background/async-run-discovery.ts +0 -264
  716. package/src/runs/background/async-run-location.ts +0 -194
  717. package/src/runs/background/async-run-record.ts +0 -14
  718. package/src/runs/background/async-run-repair.ts +0 -307
  719. package/src/runs/background/async-run-summary.ts +0 -71
  720. package/src/runs/background/async-single-plan.ts +0 -168
  721. package/src/runs/background/async-status-projection.ts +0 -188
  722. package/src/runs/background/async-status-render.ts +0 -164
  723. package/src/runs/background/async-status-validation.ts +0 -238
  724. package/src/runs/background/async-status.ts +0 -9
  725. package/src/runs/background/async-value.ts +0 -29
  726. package/src/runs/background/completion-dedupe.ts +0 -65
  727. package/src/runs/background/completion-delivery.ts +0 -321
  728. package/src/runs/background/completion-receipts.ts +0 -309
  729. package/src/runs/background/legacy-status-acceptance.ts +0 -38
  730. package/src/runs/background/notify.ts +0 -174
  731. package/src/runs/background/parallel-groups.ts +0 -102
  732. package/src/runs/background/result-payload.ts +0 -268
  733. package/src/runs/background/result-watcher.ts +0 -520
  734. package/src/runs/background/run-id-resolver.ts +0 -138
  735. package/src/runs/background/run-schemas.ts +0 -240
  736. package/src/runs/background/run-status-contracts.ts +0 -46
  737. package/src/runs/background/run-status-render.ts +0 -364
  738. package/src/runs/background/run-status.ts +0 -366
  739. package/src/runs/background/runner-attempt-output.ts +0 -281
  740. package/src/runs/background/runner-attempt.ts +0 -354
  741. package/src/runs/background/runner-child-executor.ts +0 -232
  742. package/src/runs/background/runner-child-observer.ts +0 -278
  743. package/src/runs/background/runner-completion-summary.ts +0 -106
  744. package/src/runs/background/runner-completion.ts +0 -274
  745. package/src/runs/background/runner-config.ts +0 -52
  746. package/src/runs/background/runner-contract.ts +0 -51
  747. package/src/runs/background/runner-dynamic.ts +0 -185
  748. package/src/runs/background/runner-finalization.ts +0 -203
  749. package/src/runs/background/runner-graph.ts +0 -91
  750. package/src/runs/background/runner-initial-status.ts +0 -72
  751. package/src/runs/background/runner-lifecycle.ts +0 -159
  752. package/src/runs/background/runner-monitor.ts +0 -401
  753. package/src/runs/background/runner-parallel.ts +0 -279
  754. package/src/runs/background/runner-prepare-step.ts +0 -128
  755. package/src/runs/background/runner-reporting.ts +0 -192
  756. package/src/runs/background/runner-status.ts +0 -220
  757. package/src/runs/background/runner-step-output.ts +0 -156
  758. package/src/runs/background/runner-step-record.ts +0 -76
  759. package/src/runs/background/runner-step.ts +0 -150
  760. package/src/runs/background/runner-streaming.ts +0 -220
  761. package/src/runs/background/runner-workflow.ts +0 -284
  762. package/src/runs/background/stale-run-reconciler.ts +0 -312
  763. package/src/runs/background/subagent-runner-launcher.ts +0 -88
  764. package/src/runs/background/subagent-runner.ts +0 -85
  765. package/src/runs/background/top-level-async.ts +0 -15
  766. package/src/runs/foreground/chain-clarify.ts +0 -505
  767. package/src/runs/foreground/clarification-draft.ts +0 -92
  768. package/src/runs/foreground/clarify-contracts.ts +0 -33
  769. package/src/runs/foreground/clarify-invocation.ts +0 -204
  770. package/src/runs/foreground/clarify-text-editor.ts +0 -229
  771. package/src/runs/foreground/clarify-view.ts +0 -222
  772. package/src/runs/foreground/execution-input.ts +0 -401
  773. package/src/runs/foreground/execution-routing.ts +0 -41
  774. package/src/runs/foreground/execution-timeout.ts +0 -92
  775. package/src/runs/foreground/foreground-control.ts +0 -342
  776. package/src/runs/foreground/foreground-memory.ts +0 -132
  777. package/src/runs/foreground/invocation-context.ts +0 -88
  778. package/src/runs/foreground/invocation-execution.ts +0 -465
  779. package/src/runs/foreground/invocation-expansion.ts +0 -58
  780. package/src/runs/foreground/management-actions.ts +0 -360
  781. package/src/runs/foreground/nested-control.ts +0 -248
  782. package/src/runs/foreground/question-continuation.ts +0 -112
  783. package/src/runs/foreground/question-control.ts +0 -309
  784. package/src/runs/foreground/resume-target.ts +0 -330
  785. package/src/runs/foreground/revival-launch-policy.ts +0 -112
  786. package/src/runs/foreground/run-async-path.ts +0 -327
  787. package/src/runs/foreground/run-interrupt.ts +0 -202
  788. package/src/runs/foreground/run-nudge.ts +0 -355
  789. package/src/runs/foreground/saved-revival.ts +0 -356
  790. package/src/runs/foreground/subagent-executor.ts +0 -203
  791. package/src/runs/foreground/subagent-params.ts +0 -392
  792. package/src/runs/foreground/wait-observation.ts +0 -160
  793. package/src/runs/foreground/wait-registration.ts +0 -18
  794. package/src/runs/foreground/wait-run.ts +0 -366
  795. package/src/runs/shared/acceptance-contract.ts +0 -458
  796. package/src/runs/shared/acceptance-defaults.ts +0 -1
  797. package/src/runs/shared/acceptance-evaluation.ts +0 -349
  798. package/src/runs/shared/acceptance-finalization.ts +0 -495
  799. package/src/runs/shared/acceptance-outcome.ts +0 -69
  800. package/src/runs/shared/acceptance-reports.ts +0 -246
  801. package/src/runs/shared/acceptance-submission.ts +0 -251
  802. package/src/runs/shared/acceptance-verification.ts +0 -118
  803. package/src/runs/shared/acceptance.ts +0 -31
  804. package/src/runs/shared/chain-outputs.ts +0 -206
  805. package/src/runs/shared/child-attempt-types.ts +0 -118
  806. package/src/runs/shared/child-attempt.ts +0 -387
  807. package/src/runs/shared/child-boundaries.ts +0 -217
  808. package/src/runs/shared/child-context-filter.ts +0 -53
  809. package/src/runs/shared/child-event-observer.ts +0 -496
  810. package/src/runs/shared/child-execution-cwd.ts +0 -162
  811. package/src/runs/shared/child-execution-outcome.ts +0 -103
  812. package/src/runs/shared/child-invocation.ts +0 -74
  813. package/src/runs/shared/child-message-validation.ts +0 -233
  814. package/src/runs/shared/child-native-accounting.ts +0 -154
  815. package/src/runs/shared/child-native-observation.ts +0 -79
  816. package/src/runs/shared/child-observation-spool.ts +0 -193
  817. package/src/runs/shared/child-observations.ts +0 -229
  818. package/src/runs/shared/child-presence.ts +0 -6
  819. package/src/runs/shared/child-route-env.ts +0 -142
  820. package/src/runs/shared/child-stream-observer.ts +0 -302
  821. package/src/runs/shared/child-stream-projection.ts +0 -160
  822. package/src/runs/shared/child-structured-tool.ts +0 -38
  823. package/src/runs/shared/claude-code.ts +0 -216
  824. package/src/runs/shared/claude-model.ts +0 -67
  825. package/src/runs/shared/claude-session.ts +0 -124
  826. package/src/runs/shared/claude-types.ts +0 -31
  827. package/src/runs/shared/completion-guard.ts +0 -44
  828. package/src/runs/shared/control-event-policy.ts +0 -15
  829. package/src/runs/shared/control-notification-owner.ts +0 -20
  830. package/src/runs/shared/dynamic-fanout.ts +0 -459
  831. package/src/runs/shared/dynamic-item.ts +0 -114
  832. package/src/runs/shared/history-index.ts +0 -130
  833. package/src/runs/shared/legacy-async-recovery.ts +0 -153
  834. package/src/runs/shared/legacy-output-recovery.ts +0 -214
  835. package/src/runs/shared/mcp-config-schema.ts +0 -46
  836. package/src/runs/shared/mcp-direct-tool-allowlist.ts +0 -465
  837. package/src/runs/shared/model-fallback.ts +0 -344
  838. package/src/runs/shared/mutating-tool-guard.ts +0 -295
  839. package/src/runs/shared/native-finalization-types.ts +0 -29
  840. package/src/runs/shared/native-finalization.ts +0 -252
  841. package/src/runs/shared/native-usage.ts +0 -396
  842. package/src/runs/shared/nested-control-records.ts +0 -178
  843. package/src/runs/shared/nested-events.ts +0 -45
  844. package/src/runs/shared/nested-path.ts +0 -65
  845. package/src/runs/shared/nested-projection.ts +0 -230
  846. package/src/runs/shared/nested-protocol.ts +0 -67
  847. package/src/runs/shared/nested-registry.ts +0 -273
  848. package/src/runs/shared/nested-render.ts +0 -217
  849. package/src/runs/shared/nested-route.ts +0 -292
  850. package/src/runs/shared/nested-validation.ts +0 -291
  851. package/src/runs/shared/owned-child-evidence.ts +0 -184
  852. package/src/runs/shared/owned-run-list.ts +0 -187
  853. package/src/runs/shared/owned-run-observation.ts +0 -368
  854. package/src/runs/shared/owned-run-progress.ts +0 -172
  855. package/src/runs/shared/owned-run-read-state.ts +0 -7
  856. package/src/runs/shared/owned-run-results.ts +0 -289
  857. package/src/runs/shared/owned-run-status.ts +0 -239
  858. package/src/runs/shared/owned-run-view.ts +0 -65
  859. package/src/runs/shared/owned-workflow-details.ts +0 -24
  860. package/src/runs/shared/owner-output.ts +0 -73
  861. package/src/runs/shared/parallel-utils.ts +0 -93
  862. package/src/runs/shared/parent-receipts.ts +0 -186
  863. package/src/runs/shared/parent-usage.ts +0 -344
  864. package/src/runs/shared/pi-args.ts +0 -280
  865. package/src/runs/shared/pi-launch-input.ts +0 -48
  866. package/src/runs/shared/pi-session-launch.ts +0 -94
  867. package/src/runs/shared/pi-spawn.ts +0 -76
  868. package/src/runs/shared/run-history-queries.ts +0 -195
  869. package/src/runs/shared/run-history.ts +0 -221
  870. package/src/runs/shared/run-id-ambiguity.ts +0 -8
  871. package/src/runs/shared/run-metadata-paths.ts +0 -17
  872. package/src/runs/shared/run-metadata.ts +0 -240
  873. package/src/runs/shared/run-persistence.ts +0 -181
  874. package/src/runs/shared/run-records.ts +0 -19
  875. package/src/runs/shared/run-restoration.ts +0 -455
  876. package/src/runs/shared/run-state-owner.ts +0 -31
  877. package/src/runs/shared/session-cwd-preload.ts +0 -47
  878. package/src/runs/shared/single-output.ts +0 -416
  879. package/src/runs/shared/stable-value.ts +0 -15
  880. package/src/runs/shared/streaming-text.ts +0 -45
  881. package/src/runs/shared/structured-output.ts +0 -98
  882. package/src/runs/shared/subagent-control.ts +0 -352
  883. package/src/runs/shared/subagent-prompt-runtime.ts +0 -119
  884. package/src/runs/shared/subagent-tool-loop-guard.ts +0 -139
  885. package/src/runs/shared/supervisor-question-state.ts +0 -221
  886. package/src/runs/shared/supervisor-questions.ts +0 -410
  887. package/src/runs/shared/workflow-graph.ts +0 -422
  888. package/src/runs/shared/workflow-policy.ts +0 -260
  889. package/src/runs/shared/worktree-contract.ts +0 -29
  890. package/src/runs/shared/worktree-hook.ts +0 -181
  891. package/src/runs/shared/worktree-location.ts +0 -61
  892. package/src/runs/shared/worktree-preservation.ts +0 -10
  893. package/src/runs/shared/worktree-process.ts +0 -132
  894. package/src/runs/shared/worktree.ts +0 -507
  895. package/src/shared/agent-context-policy.ts +0 -215
  896. package/src/shared/agent-dir.ts +0 -15
  897. package/src/shared/artifacts.ts +0 -126
  898. package/src/shared/atomic-json.ts +0 -19
  899. package/src/shared/chain-files.ts +0 -72
  900. package/src/shared/concurrency.ts +0 -27
  901. package/src/shared/content-preview.ts +0 -117
  902. package/src/shared/execution-cwd.ts +0 -39
  903. package/src/shared/file-coalescer.ts +0 -31
  904. package/src/shared/fork-context.ts +0 -72
  905. package/src/shared/formatters.ts +0 -125
  906. package/src/shared/journal-reader.ts +0 -18
  907. package/src/shared/lazy-tools.ts +0 -85
  908. package/src/shared/message-output.ts +0 -146
  909. package/src/shared/model-info.ts +0 -117
  910. package/src/shared/native-import.ts +0 -25
  911. package/src/shared/native-session-loader.ts +0 -13
  912. package/src/shared/native-session.ts +0 -6
  913. package/src/shared/native-tui.ts +0 -20
  914. package/src/shared/native-typebox.ts +0 -29
  915. package/src/shared/prompt-sections.ts +0 -16
  916. package/src/shared/session-entries.ts +0 -108
  917. package/src/shared/session-identity.ts +0 -25
  918. package/src/shared/settings.ts +0 -196
  919. package/src/shared/status-format.ts +0 -232
  920. package/src/shared/task-file-policy.ts +0 -35
  921. package/src/shared/temp-root.ts +0 -158
  922. package/src/shared/types/acceptance.ts +0 -149
  923. package/src/shared/types/async.ts +0 -247
  924. package/src/shared/types/config.ts +0 -139
  925. package/src/shared/types/details.ts +0 -104
  926. package/src/shared/types/history.ts +0 -217
  927. package/src/shared/types/inputs.ts +0 -4
  928. package/src/shared/types/intercom.ts +0 -57
  929. package/src/shared/types/launch.ts +0 -39
  930. package/src/shared/types/messages.ts +0 -104
  931. package/src/shared/types/nested.ts +0 -153
  932. package/src/shared/types/owned-runs.ts +0 -148
  933. package/src/shared/types/progress.ts +0 -106
  934. package/src/shared/types/questions.ts +0 -103
  935. package/src/shared/types/results.ts +0 -119
  936. package/src/shared/types/state.ts +0 -56
  937. package/src/shared/types/usage.ts +0 -36
  938. package/src/shared/types/workflow.ts +0 -187
  939. package/src/shared/ui-mode.ts +0 -5
  940. package/src/shared/utils.ts +0 -148
  941. package/src/slash/command-discovery.ts +0 -110
  942. package/src/slash/command-input.ts +0 -232
  943. package/src/slash/prompt-template-bridge.ts +0 -161
  944. package/src/slash/prompt-template-contract.ts +0 -152
  945. package/src/slash/prompt-template-results.ts +0 -189
  946. package/src/slash/request-protocol.ts +0 -87
  947. package/src/slash/result-delivery.ts +0 -312
  948. package/src/slash/saved-chain.ts +0 -115
  949. package/src/slash/slash-bridge.ts +0 -224
  950. package/src/slash/slash-commands.ts +0 -195
  951. package/src/slash/slash-live-state.ts +0 -350
  952. package/src/tui/action-hints.ts +0 -155
  953. package/src/tui/activity-lines.ts +0 -40
  954. package/src/tui/agent-browser.ts +0 -354
  955. package/src/tui/agent-controls.ts +0 -355
  956. package/src/tui/agent-conversation.ts +0 -514
  957. package/src/tui/agent-dock.ts +0 -250
  958. package/src/tui/agent-history.ts +0 -68
  959. package/src/tui/agent-model.ts +0 -78
  960. package/src/tui/agent-picker.ts +0 -325
  961. package/src/tui/agent-view.ts +0 -403
  962. package/src/tui/compact-results.ts +0 -342
  963. package/src/tui/conversation-details.ts +0 -206
  964. package/src/tui/conversation-frame.ts +0 -184
  965. package/src/tui/conversation-history.ts +0 -260
  966. package/src/tui/conversation-menu.ts +0 -119
  967. package/src/tui/conversation-notices.ts +0 -116
  968. package/src/tui/conversation-selection.ts +0 -66
  969. package/src/tui/conversation-viewport.ts +0 -169
  970. package/src/tui/direction-message.ts +0 -35
  971. package/src/tui/display.ts +0 -409
  972. package/src/tui/editor-viewport.ts +0 -19
  973. package/src/tui/expanded-content.ts +0 -134
  974. package/src/tui/expanded-multi.ts +0 -264
  975. package/src/tui/expanded-single.ts +0 -92
  976. package/src/tui/history-cards.ts +0 -298
  977. package/src/tui/history-display.ts +0 -334
  978. package/src/tui/history-json.ts +0 -17
  979. package/src/tui/history-metadata.ts +0 -177
  980. package/src/tui/history-record.ts +0 -321
  981. package/src/tui/history-text.ts +0 -34
  982. package/src/tui/indexed-history.ts +0 -149
  983. package/src/tui/nested-widget.ts +0 -192
  984. package/src/tui/picker-page.ts +0 -80
  985. package/src/tui/render.ts +0 -104
  986. package/src/tui/result-facts.ts +0 -99
  987. package/src/tui/task-observation.ts +0 -96
  988. package/src/tui/task-store.ts +0 -432
  989. package/src/tui/text-values.ts +0 -20
  990. package/src/tui/view-connections.ts +0 -64
  991. package/src/tui/view-model.ts +0 -181
  992. package/src/tui/view-persistence.ts +0 -57
  993. package/src/tui/view-ports.ts +0 -55
  994. package/src/tui/view-session.ts +0 -42
  995. package/src/tui/widget-details.ts +0 -220
  996. package/src/tui/widget-status.ts +0 -331
  997. package/src/tui/widget.ts +0 -208
  998. package/src/tui/workflow-labels.ts +0 -340
  999. package/src/tui/workflow-outcomes.ts +0 -150
@@ -1,24 +1,71 @@
1
- import { validateIntercomArguments, toolError, toolText } from "./tool-arguments.js";
1
+ import { resolveConnectedTarget } from "./connection.js";
2
+ import { validateIntercomArguments, toolError } from "./tool-arguments.js";
2
3
  import { errorMessage } from "./validation.js";
4
+ function lastPage(result) {
5
+ const identity = `${result.session.name ?? result.session.id} (${result.session.id})`;
6
+ const page = result.entryId === null
7
+ ? "No completed assistant response."
8
+ : `Entry: ${result.entryId}\nCharacters (UTF-16): ${result.offset}–${result.offset + result.text.length} of ${result.totalLength}`;
9
+ const next = result.nextOffset === undefined
10
+ ? ""
11
+ : `\nNext page: intercom(${JSON.stringify({ action: "last", to: result.session.id, entryId: result.entryId, offset: result.nextOffset })})`;
12
+ return {
13
+ content: [
14
+ { type: "text", text: result.text },
15
+ {
16
+ type: "text",
17
+ text: `Session: ${identity}\nStatus: ${result.session.status ?? "unknown"}\n${page}${next}`,
18
+ },
19
+ ],
20
+ details: { ...result },
21
+ };
22
+ }
3
23
  export class IntercomTools {
4
24
  owners;
5
25
  constructor(owners) {
6
26
  this.owners = owners;
7
27
  }
8
- async dispatch(active, params, signal, ctx) {
9
- const scope = params.scope ?? "project";
28
+ async execute(params, signal, ctx) {
29
+ const invalid = validateIntercomArguments(params);
30
+ if (invalid) {
31
+ return invalid;
32
+ }
33
+ let active;
34
+ try {
35
+ active = await this.owners.connection.ensure();
36
+ }
37
+ catch (error) {
38
+ return toolError(`Intercom not connected: ${errorMessage(error)}`);
39
+ }
40
+ this.owners.connection.syncIdentity(ctx.sessionManager.getSessionId());
41
+ const scope = params.scope ?? "all";
10
42
  switch (params.action) {
11
- case "subscribe":
12
- case "unsubscribe":
13
- case "publish":
14
- case "topics":
15
- return await this.owners.topicActions.execute(active, params, ctx);
16
43
  case "list":
17
44
  return await this.owners.inspection.list(active, scope);
18
45
  case "status":
19
46
  return await this.owners.inspection.status(active, scope, ctx);
20
47
  case "pending":
21
48
  return this.owners.inspection.pending();
49
+ case "last": {
50
+ if (params.to === undefined || params.to === "") {
51
+ return toolError("Missing 'to' parameter");
52
+ }
53
+ try {
54
+ const target = (await resolveConnectedTarget(active, params.to)) ?? params.to;
55
+ const result = await active.last(target, {
56
+ entryId: params.entryId,
57
+ offset: params.offset,
58
+ limit: params.limit,
59
+ });
60
+ if ("error" in result) {
61
+ return toolError(result.error);
62
+ }
63
+ return lastPage(result);
64
+ }
65
+ catch (error) {
66
+ return toolError(`Failed to read last response: ${errorMessage(error)}`);
67
+ }
68
+ }
22
69
  case "send":
23
70
  return await this.owners.outbound.send(active, params, ctx);
24
71
  case "ask":
@@ -27,25 +74,4 @@ export class IntercomTools {
27
74
  return await this.owners.outbound.reply(active, params);
28
75
  }
29
76
  }
30
- async execute(params, signal, ctx) {
31
- let active;
32
- try {
33
- active = await this.owners.connection.ensure("tool");
34
- }
35
- catch (error) {
36
- if (params.action === "topics") {
37
- this.owners.topics.disconnected();
38
- return toolText(`Broker unavailable; last saved records follow.\n${this.owners.topics.inspect(params.topic)}`, { connection: "disconnected" });
39
- }
40
- return toolError(`Intercom not connected: ${errorMessage(error)}`);
41
- }
42
- this.owners.connection.syncIdentity(ctx.sessionManager.getSessionId());
43
- if (!["subscribe", "unsubscribe", "publish", "topics"].includes(params.action)) {
44
- const invalid = validateIntercomArguments(params);
45
- if (invalid) {
46
- return invalid;
47
- }
48
- }
49
- return await this.dispatch(active, params, signal, ctx);
50
- }
51
77
  }
@@ -135,15 +135,22 @@ function validSessionTopics(session) {
135
135
  (session.topics === undefined ||
136
136
  (isUnknownArray(session.topics) && session.topics.every(isTopicUpdate))));
137
137
  }
138
+ function validSessionLineage(value) {
139
+ return (optionalLabel(value.rootSessionId) &&
140
+ optionalLabel(value.parentSessionId) &&
141
+ (value.parentSessionId === undefined || value.rootSessionId === value.parentSessionId));
142
+ }
143
+ function validSessionProject(value) {
144
+ return value === undefined || (typeof value === "string" && /^[a-f0-9]{64}$/.test(value));
145
+ }
138
146
  export function isSessionRegistration(value) {
139
147
  if (!isRecord(value) || !safeLabel(value.cwd) || !safeLabel(value.model)) {
140
148
  return false;
141
149
  }
142
- const validProject = value.projectId === undefined ||
143
- (typeof value.projectId === "string" && /^[a-f0-9]{64}$/.test(value.projectId));
144
150
  return (optionalLabel(value.name) &&
145
151
  optionalLabel(value.status) &&
146
- validProject &&
152
+ validSessionLineage(value) &&
153
+ validSessionProject(value.projectId) &&
147
154
  validSessionHealth(value) &&
148
155
  validSessionTopics(value));
149
156
  }
@@ -6,7 +6,7 @@ function shellQuote(value) {
6
6
  return `'${value.replace(/'/g, `'\\''`)}'`;
7
7
  }
8
8
  function localForkStartCommand() {
9
- return `pi --name worker --extension ${shellQuote(path.join(PACKAGE_ROOT, "src", "pi-intercom", "index.ts"))} --skill ${shellQuote(path.join(PACKAGE_ROOT, "skills", "pi-intercom"))}`;
9
+ return `pi --name worker --extension ${shellQuote(path.join(PACKAGE_ROOT, "src", "index.ts"))}`;
10
10
  }
11
11
  function duplicateNames(sessions) {
12
12
  const names = sessions
@@ -101,7 +101,7 @@ function noPeers(hidden) {
101
101
  }
102
102
  return `No other sessions connected. Start another intercom-enabled session with \`pi --name worker\`, then run \`intercom({ action: "list" })\` again. If you are dogfooding this local fork without installing it, start the peer with \`${localForkStartCommand()}\`.`;
103
103
  }
104
- export function formatSessionListSections(allSessions, id, scope = "project") {
104
+ export function formatSessionListSections(allSessions, id, scope = "all") {
105
105
  const current = allSessions.find((session) => session.id === id);
106
106
  if (!current) {
107
107
  throw new Error("Current session is missing from intercom session list.");
@@ -118,7 +118,7 @@ export function formatSessionListSections(allSessions, id, scope = "project") {
118
118
  const currentSection = `**Current session:**\n${row(current, { ...options, self: true })}`;
119
119
  const otherSection = `**Other sessions:**\n${others.length === 0 ? noPeers(hidden) : others.map((session) => row(session, { ...options, self: false })).join("\n")}`;
120
120
  const hint = hidden > 0
121
- ? `\n\n${hidden} session${hidden === 1 ? "" : "s"} in other projects hidden. Use \`intercom({ action: "list", scope: "all" })\` to show every connected session.`
121
+ ? `\n\n${hidden} session${hidden === 1 ? "" : "s"} in other projects hidden. Use \`intercom({ action: "list", scope: "all" })\` to show every reachable session.`
122
122
  : "";
123
123
  return `${currentSection}\n\n${otherSection}${hint}`;
124
124
  }
@@ -1,35 +1,4 @@
1
1
  import { isUnknownArray, recordAt } from "./unknown.js";
2
- function resultField(path) {
3
- if (path.length === 2) {
4
- return path[0] === "result";
5
- }
6
- if (path.length === 3) {
7
- return path[0] === "results" && typeof path[1] === "number";
8
- }
9
- return (path.length === 4 &&
10
- path[0] === "children" &&
11
- typeof path[1] === "number" &&
12
- path[2] === "result");
13
- }
14
- function summaryField(path) {
15
- return ((path.length === 1 && path[0] === "summary") ||
16
- (path.length === 3 &&
17
- path[0] === "children" &&
18
- typeof path[1] === "number" &&
19
- path[2] === "summary"));
20
- }
21
- export const ownerProjection = (path) => {
22
- const field = path.at(-1);
23
- if (resultField(path)) {
24
- if (field === "messages") {
25
- return false;
26
- }
27
- if (["output", "finalOutput", "initialOutput", "rawOutput"].includes(String(field))) {
28
- return 8192;
29
- }
30
- }
31
- return summaryField(path) ? 8192 : true;
32
- };
33
2
  const entryFields = new Set([
34
3
  "type",
35
4
  "id",
@@ -1,26 +1,5 @@
1
- /** Public compatibility barrel. Domain contracts depend on each other, never on implementation modules. */
2
1
  import * as os from "node:os";
3
2
  import * as path from "node:path";
4
- export const INTERCOM_DETACH_REQUEST_EVENT = "pi-intercom:detach-request";
5
- export const INTERCOM_DETACH_RESPONSE_EVENT = "pi-intercom:detach-response";
6
- export const SUBAGENT_ASYNC_STARTED_EVENT = "subagent:async-started";
7
- export const SUBAGENT_ASYNC_COMPLETE_EVENT = "subagent:async-complete";
8
- export const SUBAGENT_CONTROL_EVENT = "subagent:control-event";
9
- export const SUBAGENT_CONTROL_INTERCOM_EVENT = "subagent:control-intercom";
10
- export const SUBAGENT_RESULT_INTERCOM_EVENT = "subagent:result-intercom";
11
- export const SUBAGENT_RESULT_INTERCOM_DELIVERY_EVENT = "subagent:result-intercom-delivery";
12
- export const SUBAGENT_LIVE_INTERCOM_EVENT = "subagent:live-intercom";
13
- export const SUBAGENT_LIVE_INTERCOM_DELIVERY_EVENT = "subagent:live-intercom-delivery";
14
- export const SUBAGENT_INTERCOM_HEALTH_REQUEST_EVENT = "subagent:intercom-health-request";
15
- export const SUBAGENT_INTERCOM_HEALTH_RESPONSE_EVENT = "subagent:intercom-health-response";
16
- export const SUBAGENT_INTERCOM_IDENTITY_REQUEST_EVENT = "subagent:intercom-identity-request";
17
- export const SUBAGENT_INTERCOM_IDENTITY_RESPONSE_EVENT = "subagent:intercom-identity-response";
18
- // Constants
19
- // ============================================================================
20
- export const DEFAULT_MAX_OUTPUT = {
21
- bytes: 200 * 1024,
22
- lines: 5000,
23
- };
24
3
  function sanitizeTempScopeSegment(value) {
25
4
  const sanitized = value
26
5
  .trim()
@@ -65,8 +44,6 @@ function resolveHomeTempScopeId() {
65
44
  }
66
45
  return "shared";
67
46
  }
68
- const MAX_PARALLEL = 8;
69
- export const MAX_CONCURRENCY = 4;
70
47
  export function resolveTempRootDir(configured = process.env.PI_SUBAGENT_TEMP_ROOT) {
71
48
  const fallback = path.join(os.tmpdir(), `pi-subagents-${resolveTempScopeId()}`);
72
49
  if (configured === undefined || configured.trim().length === 0) {
@@ -78,175 +55,3 @@ export function resolveTempRootDir(configured = process.env.PI_SUBAGENT_TEMP_ROO
78
55
  }
79
56
  return resolved;
80
57
  }
81
- export const TEMP_ROOT_DIR = resolveTempRootDir();
82
- export const RESULTS_DIR = path.join(TEMP_ROOT_DIR, "async-subagent-results");
83
- export const ASYNC_DIR = path.join(TEMP_ROOT_DIR, "async-subagent-runs");
84
- export const RUNNER_ERROR_LOG_FILE = "runner-error.log";
85
- export const CHAIN_RUNS_DIR = path.join(TEMP_ROOT_DIR, "chain-runs");
86
- export const TEMP_ARTIFACTS_DIR = path.join(TEMP_ROOT_DIR, "artifacts");
87
- export const WIDGET_KEY = "subagent-async";
88
- export const SLASH_RESULT_TYPE = "subagent-slash-result";
89
- export const SLASH_SUBAGENT_REQUEST_EVENT = "subagent:slash:request";
90
- export const SLASH_SUBAGENT_STARTED_EVENT = "subagent:slash:started";
91
- export const SLASH_SUBAGENT_RESPONSE_EVENT = "subagent:slash:response";
92
- export const SLASH_SUBAGENT_UPDATE_EVENT = "subagent:slash:update";
93
- export const SLASH_SUBAGENT_CANCEL_EVENT = "subagent:slash:cancel";
94
- export const POLL_INTERVAL_MS = 1000;
95
- export const MAX_WIDGET_JOBS = 4;
96
- export const DEFAULT_SUBAGENT_MAX_DEPTH = 1;
97
- export const SUBAGENT_ACTIONS = [
98
- "list",
99
- "get",
100
- "create",
101
- "update",
102
- "delete",
103
- "status",
104
- "history",
105
- "search",
106
- "interrupt",
107
- "extend",
108
- "resume",
109
- "nudge",
110
- "questions",
111
- "answer",
112
- "review",
113
- "doctor",
114
- ];
115
- export const DEFAULT_FORK_PREAMBLE = "You are a delegated subagent running from a fork of the parent session. " +
116
- "Treat the inherited conversation as reference-only context, not a live thread to continue. " +
117
- "Do not continue or answer prior messages as if they are waiting for a reply. " +
118
- "Your sole job is to execute the task below and return a focused result for that task using your tools.";
119
- function normalizeTopLevelParallelValue(value) {
120
- let parsed = NaN;
121
- if (typeof value === "number") {
122
- parsed = value;
123
- }
124
- else if (typeof value === "string") {
125
- parsed = Number(value);
126
- }
127
- if (!Number.isInteger(parsed) || parsed < 1) {
128
- return undefined;
129
- }
130
- return parsed;
131
- }
132
- export function resolveTopLevelParallelMaxTasks(value) {
133
- return normalizeTopLevelParallelValue(value) ?? MAX_PARALLEL;
134
- }
135
- export function resolveTopLevelParallelConcurrency(override, configValue) {
136
- return (normalizeTopLevelParallelValue(override) ??
137
- normalizeTopLevelParallelValue(configValue) ??
138
- MAX_CONCURRENCY);
139
- }
140
- export function getAsyncConfigPath(suffix) {
141
- return path.join(TEMP_ROOT_DIR, `async-cfg-${suffix}.json`);
142
- }
143
- export function wrapForkTask(task, preamble) {
144
- if (preamble === false) {
145
- return task;
146
- }
147
- const effectivePreamble = preamble ?? DEFAULT_FORK_PREAMBLE;
148
- const wrappedPrefix = `${effectivePreamble}\n\nTask:\n`;
149
- if (task.startsWith(wrappedPrefix)) {
150
- return task;
151
- }
152
- return `${wrappedPrefix}${task}`;
153
- }
154
- // ============================================================================
155
- // Recursion Depth Guard
156
- // ============================================================================
157
- export function normalizeMaxSubagentDepth(value) {
158
- let parsed = NaN;
159
- if (typeof value === "number") {
160
- parsed = value;
161
- }
162
- else if (typeof value === "string") {
163
- parsed = Number(value);
164
- }
165
- if (!Number.isInteger(parsed) || parsed < 0) {
166
- return undefined;
167
- }
168
- return parsed;
169
- }
170
- export function resolveCurrentMaxSubagentDepth(configMaxDepth) {
171
- return (normalizeMaxSubagentDepth(process.env.PI_SUBAGENT_MAX_DEPTH) ??
172
- normalizeMaxSubagentDepth(configMaxDepth) ??
173
- DEFAULT_SUBAGENT_MAX_DEPTH);
174
- }
175
- export function resolveChildMaxSubagentDepth(parentMaxDepth, agentMaxDepth) {
176
- const normalizedParent = normalizeMaxSubagentDepth(parentMaxDepth) ?? DEFAULT_SUBAGENT_MAX_DEPTH;
177
- const normalizedAgent = normalizeMaxSubagentDepth(agentMaxDepth);
178
- return normalizedAgent === undefined
179
- ? normalizedParent
180
- : Math.min(normalizedParent, normalizedAgent);
181
- }
182
- function parseSubagentDepth(value) {
183
- if (value === undefined || value === null || value === "") {
184
- return 0;
185
- }
186
- const depth = Number(value);
187
- return Number.isInteger(depth) && depth >= 0 ? depth : undefined;
188
- }
189
- export function checkSubagentDepth(configMaxDepth) {
190
- const maxDepth = resolveCurrentMaxSubagentDepth(configMaxDepth);
191
- const depth = parseSubagentDepth(process.env.PI_SUBAGENT_DEPTH);
192
- if (depth === undefined) {
193
- return { blocked: true, depth: maxDepth, maxDepth };
194
- }
195
- return { blocked: depth >= maxDepth, depth, maxDepth };
196
- }
197
- export function getSubagentDepthEnv(maxDepth) {
198
- const childMaxDepth = normalizeMaxSubagentDepth(maxDepth) ?? resolveCurrentMaxSubagentDepth();
199
- const parentDepth = parseSubagentDepth(process.env.PI_SUBAGENT_DEPTH);
200
- const nextDepth = parentDepth === undefined ? childMaxDepth : parentDepth + 1;
201
- return {
202
- PI_SUBAGENT_DEPTH: String(nextDepth),
203
- PI_SUBAGENT_MAX_DEPTH: String(childMaxDepth),
204
- };
205
- }
206
- // ============================================================================
207
- // Utility Functions
208
- // ============================================================================
209
- function formatBytes(bytes) {
210
- if (bytes < 1024) {
211
- return `${bytes}B`;
212
- }
213
- if (bytes < 1024 * 1024) {
214
- return `${(bytes / 1024).toFixed(1)}KB`;
215
- }
216
- return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
217
- }
218
- export function truncateOutput(output, config, artifactPath) {
219
- const lines = output.split("\n");
220
- const bytes = Buffer.byteLength(output, "utf-8");
221
- if (bytes <= config.bytes && lines.length <= config.lines) {
222
- return { text: output, truncated: false };
223
- }
224
- let truncatedLines = lines;
225
- if (lines.length > config.lines) {
226
- truncatedLines = lines.slice(0, config.lines);
227
- }
228
- let result = truncatedLines.join("\n");
229
- if (Buffer.byteLength(result, "utf-8") > config.bytes) {
230
- let low = 0;
231
- let high = result.length;
232
- while (low < high) {
233
- const mid = Math.floor((low + high + 1) / 2);
234
- if (Buffer.byteLength(result.slice(0, mid), "utf-8") <= config.bytes) {
235
- low = mid;
236
- }
237
- else {
238
- high = mid - 1;
239
- }
240
- }
241
- result = result.slice(0, low);
242
- }
243
- const keptLines = result.split("\n").length;
244
- const marker = `[TRUNCATED: showing first ${keptLines} of ${lines.length} lines, ${formatBytes(Buffer.byteLength(result))} of ${formatBytes(bytes)}${artifactPath !== undefined && artifactPath.length > 0 ? ` - full output at ${artifactPath}` : ""}]\n`;
245
- return {
246
- text: marker + result,
247
- truncated: true,
248
- originalBytes: bytes,
249
- originalLines: lines.length,
250
- artifactPath,
251
- };
252
- }
@@ -26,7 +26,7 @@ Tests retain complexity 15, depth 4 and parameters 6. Cohesive test suites have
26
26
  no size or statement limits.
27
27
 
28
28
  Formatting uses width 100, two spaces, LF and double quotes. npm owns lockfile
29
- formatting. Generated runtime schemas and build outputs keep their own bytes.
29
+ formatting. Build outputs keep their own bytes.
30
30
  The VS Code Oxc extension uses these same lint and formatting configurations.
31
31
 
32
32
  `npm run ci` runs lint, formatting, TypeScript, package/install smokes and all
@@ -34,5 +34,6 @@ tests. CI separately qualifies the latest official Pi on GitHub-hosted Linux and
34
34
  the maintained fork on Linux and macOS. There is no custom checker build, probe
35
35
  suite or self-hosted runner requirement.
36
36
 
37
- CI's lint job also checks schema/validator drift against the committed dev dependencies,
38
- before qualification substitutes the selected host graph.
37
+ CI's lint job also enforces the production line/byte shrink budget before
38
+ qualification substitutes the selected host graph. The retired workflow schema
39
+ generator and its patching dependency are not part of the new runtime.
@@ -1,99 +1,61 @@
1
- # Development and validation
1
+ # Development
2
2
 
3
- [Getting started](../README.md) · [Subagents reference](reference.md)
4
-
5
- ## Local validation
6
-
7
- See [Code quality](code-quality.md) for the strict Oxlint/Oxfmt rules and commands. `npm run ci` runs lint and formatting before TypeScript, package checks and tests.
8
-
9
- `npm run check:compat` uses the selected host installed in this checkout, never a hidden Pi from PATH. It runs full CI with actual native editor receipts: a supplied clean `PI_EDITOR_RECEIPT_TEST_ROOT` stays read-only, otherwise the owning runner snapshots public `pi-apply-edits` main once in a temporary checkout, records its exact Git SHA, installs only its third-party runtime dependencies, and cleans its owned copy. Repository CI resolves that editor SHA once for all host/platform lanes. It checks host SDK/manifest-bin identity, typechecks, builds, and qualifies both compiled entries with a private Intercom broker through the native SDK and bundled RPC CLI. Official hosts exercise same/different-cwd resume, acceptance, structured output, native result routing/ownership and tool activation. No provider credentials or inference services are used.
10
-
11
- Repository CI resolves latest stable official Pi and maintained fork main once, then freezes that version/SHA across the Linux/macOS lanes and release qualification. Full `npm run ci`, selected-host native contracts, Git production builds and packed-install smokes remain required.
12
-
13
- Fork jobs supply `PI_COMPAT_HOST=fork`, `PI_COMPAT_EXPECTED_VERSION`, `PI_COMPAT_EXPECTED_PACKAGE_DIR`, `PI_HOST_INDEX`, and `PI_HOST_CLI` to verify the selected SDK and CLI. The official job uses the resolved latest stable cohort with `PI_COMPAT_HOST=official`. Both targets use ordinary 1.0 lifecycle and finalized tool-result accounting, without checkpoint, immediate-usage or pending-call APIs. Unsupported hosts fail qualification rather than skip native checks. See [host capabilities](reference.md#host-capabilities-and-result-delivery) and [limitations](intercom.md#limitations).
14
-
15
- For a fresh development worktree, run `npm ci` before launching Pi there: project-local `.pi/extensions` can autoload before dependencies exist. Alternatively launch from a neutral directory and use `change_dir` to enter the owned worktree after startup. Do not disable all extensions or remove project extensions to hide missing dependencies.
16
-
17
- Use an empty HOME outside your real home ancestry and a short temporary directory whose ancestors have no project/package or agent markers. Set HOME, TMPDIR, TMP, TEMP, cache and fixture cwd consistently; never create mutable fixtures beneath the real home or retained evidence directory. Child tests use local fixtures and their own broker/profile. CI runs the latest Node 24 release on Linux and macOS without claiming a full platform-by-host matrix.
18
-
19
- The completion guard recognizes verified `modifiedFiles` receipts from pi-apply-edits v1's `apply_patch`, `replace_text`, and `write_files`, including partial publication errors. Previews and unchanged results do not count as mutations. To exercise the real editor through native SDK events, use an installed v1 editor checkout:
20
-
21
- ```bash
22
- PI_EDITOR_RECEIPT_TEST_ROOT=/absolute/path/to/pi-apply-edits \
23
- node --test test/integration/native-editor-receipts.test.ts
24
- ```
25
-
26
- `PI_EDITOR_RECEIPT_TEST_SDK` selects another installed host package root; `PI_EDITOR_RECEIPT_EVIDENCE_DIR` retains receipts and fixture files. Without an editor checkout, this optional integration test skips.
27
-
28
- ### SDK embeddings of runtime-only installations
29
-
30
- Before loading a pruned package with `DefaultResourceLoader`, set `process.env.PI_PACKAGE_DIR = getPackageDir()` from the **selected SDK**. This is the existing host-location contract for native session APIs and detached runners. Alternatively the host must be discoverable through the extension's dependency graph or an actual Pi executable on PATH. CLI consumers resolve their own host normally.
31
-
32
- Detached history workers need one of those host-location sources to resolve the selected host's terminal-stripping implementation. The parent uses Pi's normal extension-loader imports without loading another runtime. Qualification covers both the explicit-host SDK path and the real bundled CLI with a production-only package.
33
-
34
- To diagnose the full suite against the locked published Pi dependencies:
3
+ Use a dedicated worktree, the committed npm lockfile, and a ready-for-review PR.
4
+ Never edit source or tests while checks run in that checkout. Do not modify an
5
+ active installed copy or reload the user's sessions to test a candidate.
35
6
 
36
7
  ```bash
37
8
  npm ci
38
- npm run ci
39
- ```
40
-
41
- The [host limitations](intercom.md#limitations) include historical official 0.87.1 results. Retain distinct queue and prompt-preparation checks and report their actual results for the selected host; portable qualification does not establish a full-suite pass.
42
-
43
- That command runs TypeScript no-emit checking, package shape smoke checks, an isolated single-package install smoke, and the full unit/integration suite. The bundled agent tests cover the Fitch profile set directly, so validation does not require pi-fitch-kit. `npm test` is intentionally the fast unit-test shortcut (`npm run test:unit`), not the full completion gate.
44
-
45
- For a credential-free Linux gate against committed `HEAD`, Docker and `PI_LINUX_PI_ARCHIVE` are required. Supply an absolute path to a `.tar.gz` containing one top-level `pi/`: a Pi 1.0 source checkout, its Linux `node_modules` (including workspace dependencies), and all built `dist/` output. It must include `pi/packages/coding-agent/dist/index.js` and `pi/packages/coding-agent/dist/bundle/cli.js`.
46
-
47
- Prepare that checkout in a clean Linux build environment matching the image's CPU architecture and Node version. Install locked dependencies and complete Pi's workspace build, including its generated model data, before archiving. Do not copy host `node_modules`, Pi user state, `auth.json`, secret `.env` files, or credential-bearing npm/Git configuration. From the Linux build environment:
48
-
49
- ```bash
50
- tar -czf /absolute/path/native-pi-linux-node24.tar.gz -C /clean/linux-build pi
51
- ```
52
-
53
- Run with an archive matching the image:
54
-
55
- ```bash
56
- PI_LINUX_PI_ARCHIVE=/absolute/path/native-pi-linux-node24.tar.gz \
57
- bash scripts/linux-smoke.sh
58
- ```
59
-
60
- The archive is mounted read-only and extracted to `/native-pi`. The unprivileged `node` user installs locked package dependencies in `/workspace`, points the private CLI link and all SDK overrides at the supplied build, and runs the full, unchanged `npm run ci` gate. No host home, source mount, credentials, or model calls are passed into it. The gate does not patch Pi/Jiti or skip native cases.
61
-
62
- ## Real Pi smoke
63
-
64
- The default local gate includes real SDK reload/reopen and native child-session ownership checks with a controlled CLI and no model calls. Other execution tests stay mock-heavy and deterministic. When you need to verify the actual local file-path Pi package boundary, run the opt-in real smoke:
65
-
66
- ```bash
67
- export PATH="$PWD/node_modules/.bin:$PATH"
68
- node scripts/real-pi-smoke.mjs
69
- ```
70
-
71
- Use direct `node` invocation with the intended `pi` first on `PATH`. npm scripts prepend `node_modules/.bin`.
72
-
73
- It installs this checkout into an isolated temporary Pi home, runs `pi list`, and loads the bundled subagent and intercom extensions. It does not install pi-fitch-kit, publish to npm, or use GitHub Actions.
74
-
75
- Live model-backed subagent paths are intentionally opt-in because they can use provider credentials and tokens:
76
-
77
- ```bash
78
- PI_REAL_SMOKE_MODEL=openai/gpt-6-astra node scripts/real-pi-smoke.mjs --llm
79
- ```
80
-
81
- That mode copies local `auth.json` and `models.json` into the isolated Pi agent dir, then asks a real Pi session to exercise intercom status plus subagent list, waiting execution, background launch, and background completion. Set `PI_REAL_SMOKE_AUTH_AGENT_DIR` if your auth files are not in `~/.pi/agent`.
82
-
83
- For a broader live gate, add `--llm-full`:
84
-
85
- ```bash
86
- PI_REAL_SMOKE_MODEL=openai/gpt-6-astra node scripts/real-pi-smoke.mjs --llm-full
87
- ```
88
-
89
- That also verifies real parallel, chain, file output, and acceptance flows. It checks actual tool calls and native settlement, and audits saved parent/child model identities. The smoke stops its own processes before removing copied credentials or artifacts, including on timeout or handled cancellation. Use `--keep-temp` to preserve noncredential evidence.
90
-
91
- ## Local test watchdog
92
-
93
- `npm test`, `npm run test:unit`, `npm run test:integration`, and `npm run test:all` run through `scripts/run-tests.mjs`, which applies a per-suite local watchdog so hung child-process or worktree tests fail with the command context instead of hanging forever. The default is 300000ms for units and 1200000ms for integration. Override it when debugging slow local runs:
94
-
95
- ```bash
96
- PI_TEST_TIMEOUT_MS=1800000 npm run test:integration
97
- # or
98
- node scripts/run-tests.mjs integration --timeout-ms 1800000
99
- ```
9
+ npm run lint
10
+ npm run format:check
11
+ npm run typecheck
12
+ node scripts/measure-size.mjs
13
+ ```
14
+
15
+ Run narrow owner-boundary tests locally through `scripts/run-tests.mjs`. Full
16
+ `npm run ci` belongs in hosted CI and includes package/install smokes and the
17
+ complete suites. Keep the strict Oxlint/Oxfmt rules; see [code quality](code-quality.md).
18
+
19
+ ## Runtime qualification
20
+
21
+ Qualify the latest stable official Pi and the intended fork revision separately.
22
+ Record the exact package root, revision/build, Node binary, and executed test
23
+ commands. Matching versions do not establish matching runtime behavior.
24
+
25
+ Production-only installs must resolve the selected host's SDK and TypeBox, not
26
+ shadow them with this package's development graph. Exercise the packed single
27
+ entry through the real Pi loader and an actual native child session. Native faux
28
+ providers can test tools, receipts, journals, process lifecycle and output without
29
+ paid model calls; they are not live-model evidence.
30
+
31
+ Real-model acceptance additionally checks that full forked history preserves an
32
+ actual earlier delegation result, and that ordinary main/child sessions discover,
33
+ message, and read last responses across agent directories under the confirmed
34
+ two-level topology. Never publish credentials or private transcripts as evidence.
35
+
36
+ ## Isolation and safety
37
+
38
+ Every test/smoke broker uses a short, explicit `PI_INTERCOM_RUNTIME_DIR` owned by
39
+ the fixture. Do not touch `/tmp/pi-intercom-<uid>` to test namespace behavior on a
40
+ workstation with active sessions. Tests for the default path inspect it without
41
+ starting or deleting the user's broker. Stop owned processes and remove temporary
42
+ resources even on failure or signal cancellation.
43
+
44
+ Preserve native receipt, cold-crash, shutdown, continuation and broker contracts
45
+ at their actual SDK, journal, filesystem or process boundary. Carry distinct
46
+ assertions into the keeper before deleting an old test. Feature retirement is not
47
+ proof that an unrelated safety assertion can disappear. Expected values must be
48
+ independent of production helpers; observe actual readiness/publication before
49
+ negative assertions. A sleep does not prove an owner processed its input.
50
+
51
+ ## Size gate
52
+
53
+ `scripts/measure-size.mjs` counts source, production scripts, generated code and
54
+ schemas, including new untracked files. `--report` prints without enforcing.
55
+ The ceilings are 16,000 source TypeScript lines, 20,000 total production lines,
56
+ and 1 MiB total production bytes. Tests have no deletion quota. Moving machinery
57
+ into generated/minified output does not evade the gate.
58
+
59
+ [The rebuild evidence](single-agent-rebuild.md) records the baseline, confirmed
60
+ design, test-transfer obligations, and exact selected host identities. Update it
61
+ with measured final evidence; do not confuse planned gates with passed checks.