@selesai/code 0.13.12 → 0.13.13

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 (1753) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/package.json +1 -1
  3. package/dist/bun/cli.d.ts +0 -2
  4. package/dist/bun/cli.js +0 -10
  5. package/dist/bun/register-bedrock.d.ts +0 -1
  6. package/dist/bun/register-bedrock.js +0 -3
  7. package/dist/bun/restore-sandbox-env.d.ts +0 -16
  8. package/dist/bun/restore-sandbox-env.js +0 -35
  9. package/dist/cli/args.d.ts +0 -59
  10. package/dist/cli/args.js +0 -428
  11. package/dist/cli/args.test.d.ts +0 -1
  12. package/dist/cli/args.test.js +0 -32
  13. package/dist/cli/config-selector.d.ts +0 -15
  14. package/dist/cli/config-selector.js +0 -30
  15. package/dist/cli/credential-print.d.ts +0 -22
  16. package/dist/cli/credential-print.js +0 -116
  17. package/dist/cli/file-processor.d.ts +0 -14
  18. package/dist/cli/file-processor.js +0 -69
  19. package/dist/cli/initial-message.d.ts +0 -17
  20. package/dist/cli/initial-message.js +0 -21
  21. package/dist/cli/list-models.d.ts +0 -8
  22. package/dist/cli/list-models.js +0 -97
  23. package/dist/cli/project-trust.d.ts +0 -9
  24. package/dist/cli/project-trust.js +0 -47
  25. package/dist/cli/session-picker.d.ts +0 -9
  26. package/dist/cli/session-picker.js +0 -35
  27. package/dist/cli/startup-ui.d.ts +0 -22
  28. package/dist/cli/startup-ui.js +0 -172
  29. package/dist/cli.d.ts +0 -2
  30. package/dist/cli.js +0 -17
  31. package/dist/config.d.ts +0 -181
  32. package/dist/config.js +0 -788
  33. package/dist/core/agent-session-auto-handoff.test.d.ts +0 -1
  34. package/dist/core/agent-session-auto-handoff.test.js +0 -183
  35. package/dist/core/agent-session-length-continuation.test.d.ts +0 -1
  36. package/dist/core/agent-session-length-continuation.test.js +0 -107
  37. package/dist/core/agent-session-runtime.d.ts +0 -118
  38. package/dist/core/agent-session-runtime.js +0 -305
  39. package/dist/core/agent-session-services.d.ts +0 -84
  40. package/dist/core/agent-session-services.js +0 -132
  41. package/dist/core/agent-session-skill-block.test.d.ts +0 -1
  42. package/dist/core/agent-session-skill-block.test.js +0 -19
  43. package/dist/core/agent-session.d.ts +0 -713
  44. package/dist/core/agent-session.js +0 -3054
  45. package/dist/core/agents.d.ts +0 -52
  46. package/dist/core/agents.js +0 -237
  47. package/dist/core/auth-guidance.d.ts +0 -4
  48. package/dist/core/auth-guidance.js +0 -20
  49. package/dist/core/auth-storage.d.ts +0 -61
  50. package/dist/core/auth-storage.js +0 -249
  51. package/dist/core/bash-executor.d.ts +0 -31
  52. package/dist/core/bash-executor.js +0 -110
  53. package/dist/core/built-in-extensions.d.ts +0 -2
  54. package/dist/core/built-in-extensions.js +0 -2
  55. package/dist/core/cache-stats.d.ts +0 -48
  56. package/dist/core/cache-stats.js +0 -100
  57. package/dist/core/compaction/branch-summarization.d.ts +0 -97
  58. package/dist/core/compaction/branch-summarization.js +0 -246
  59. package/dist/core/compaction/compaction.d.ts +0 -141
  60. package/dist/core/compaction/compaction.js +0 -659
  61. package/dist/core/compaction/index.d.ts +0 -6
  62. package/dist/core/compaction/index.js +0 -6
  63. package/dist/core/compaction/utils.d.ts +0 -37
  64. package/dist/core/compaction/utils.js +0 -141
  65. package/dist/core/defaults.d.ts +0 -3
  66. package/dist/core/defaults.js +0 -10
  67. package/dist/core/diagnostics.d.ts +0 -15
  68. package/dist/core/diagnostics.js +0 -1
  69. package/dist/core/event-bus.d.ts +0 -8
  70. package/dist/core/event-bus.js +0 -24
  71. package/dist/core/exec.d.ts +0 -28
  72. package/dist/core/exec.js +0 -74
  73. package/dist/core/experimental.d.ts +0 -5
  74. package/dist/core/experimental.js +0 -7
  75. package/dist/core/export-html/ansi-to-html.d.ts +0 -21
  76. package/dist/core/export-html/ansi-to-html.js +0 -248
  77. package/dist/core/export-html/index.d.ts +0 -36
  78. package/dist/core/export-html/index.js +0 -225
  79. package/dist/core/export-html/template.css +0 -1066
  80. package/dist/core/export-html/template.html +0 -55
  81. package/dist/core/export-html/template.js +0 -1864
  82. package/dist/core/export-html/tool-renderer.d.ts +0 -33
  83. package/dist/core/export-html/tool-renderer.js +0 -107
  84. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  85. package/dist/core/export-html/vendor/marked.min.js +0 -78
  86. package/dist/core/extensions/index.d.ts +0 -11
  87. package/dist/core/extensions/index.js +0 -8
  88. package/dist/core/extensions/loader.d.ts +0 -22
  89. package/dist/core/extensions/loader.js +0 -632
  90. package/dist/core/extensions/loader.test.d.ts +0 -1
  91. package/dist/core/extensions/loader.test.js +0 -21
  92. package/dist/core/extensions/runner.d.ts +0 -176
  93. package/dist/core/extensions/runner.js +0 -1016
  94. package/dist/core/extensions/types.d.ts +0 -1313
  95. package/dist/core/extensions/types.js +0 -44
  96. package/dist/core/extensions/wrapper.d.ts +0 -19
  97. package/dist/core/extensions/wrapper.js +0 -40
  98. package/dist/core/footer-data-provider.d.ts +0 -63
  99. package/dist/core/footer-data-provider.js +0 -337
  100. package/dist/core/git-command.d.ts +0 -8
  101. package/dist/core/git-command.js +0 -48
  102. package/dist/core/handoff.d.ts +0 -11
  103. package/dist/core/handoff.js +0 -49
  104. package/dist/core/http-dispatcher.d.ts +0 -21
  105. package/dist/core/http-dispatcher.js +0 -90
  106. package/dist/core/index.d.ts +0 -12
  107. package/dist/core/index.js +0 -12
  108. package/dist/core/keybindings.d.ts +0 -421
  109. package/dist/core/keybindings.js +0 -295
  110. package/dist/core/llama/client.d.ts +0 -66
  111. package/dist/core/llama/client.js +0 -308
  112. package/dist/core/llama/huggingface.d.ts +0 -22
  113. package/dist/core/llama/huggingface.js +0 -140
  114. package/dist/core/llama/index.d.ts +0 -2
  115. package/dist/core/llama/index.js +0 -207
  116. package/dist/core/llama/provider.d.ts +0 -11
  117. package/dist/core/llama/provider.js +0 -143
  118. package/dist/core/llama/ui.d.ts +0 -41
  119. package/dist/core/llama/ui.js +0 -415
  120. package/dist/core/messages.d.ts +0 -76
  121. package/dist/core/messages.js +0 -122
  122. package/dist/core/model-config.d.ts +0 -547
  123. package/dist/core/model-config.js +0 -278
  124. package/dist/core/model-registry.d.ts +0 -45
  125. package/dist/core/model-registry.js +0 -107
  126. package/dist/core/model-resolver.d.ts +0 -122
  127. package/dist/core/model-resolver.js +0 -558
  128. package/dist/core/model-runtime.d.ts +0 -86
  129. package/dist/core/model-runtime.js +0 -472
  130. package/dist/core/models-store.d.ts +0 -16
  131. package/dist/core/models-store.js +0 -44
  132. package/dist/core/output-guard.d.ts +0 -6
  133. package/dist/core/output-guard.js +0 -88
  134. package/dist/core/package-manager.d.ts +0 -221
  135. package/dist/core/package-manager.js +0 -2232
  136. package/dist/core/package-manager.test.d.ts +0 -1
  137. package/dist/core/package-manager.test.js +0 -58
  138. package/dist/core/project-trust.d.ts +0 -14
  139. package/dist/core/project-trust.js +0 -58
  140. package/dist/core/prompt-templates.d.ts +0 -53
  141. package/dist/core/prompt-templates.js +0 -235
  142. package/dist/core/provider-attribution.d.ts +0 -3
  143. package/dist/core/provider-attribution.js +0 -71
  144. package/dist/core/provider-composer.d.ts +0 -54
  145. package/dist/core/provider-composer.js +0 -387
  146. package/dist/core/radius.d.ts +0 -1
  147. package/dist/core/radius.js +0 -1
  148. package/dist/core/remote-catalog-provider.d.ts +0 -4
  149. package/dist/core/remote-catalog-provider.js +0 -119
  150. package/dist/core/resolve-config-value.d.ts +0 -29
  151. package/dist/core/resolve-config-value.js +0 -246
  152. package/dist/core/resource-loader.d.ts +0 -256
  153. package/dist/core/resource-loader.js +0 -974
  154. package/dist/core/runtime-credentials.d.ts +0 -16
  155. package/dist/core/runtime-credentials.js +0 -41
  156. package/dist/core/sdk.d.ts +0 -107
  157. package/dist/core/sdk.js +0 -279
  158. package/dist/core/session-cwd.d.ts +0 -18
  159. package/dist/core/session-cwd.js +0 -37
  160. package/dist/core/session-manager.d.ts +0 -355
  161. package/dist/core/session-manager.js +0 -1339
  162. package/dist/core/settings-manager-auto-handoff.test.d.ts +0 -1
  163. package/dist/core/settings-manager-auto-handoff.test.js +0 -42
  164. package/dist/core/settings-manager.d.ts +0 -350
  165. package/dist/core/settings-manager.js +0 -1076
  166. package/dist/core/skills.d.ts +0 -70
  167. package/dist/core/skills.js +0 -401
  168. package/dist/core/slash-commands.d.ts +0 -14
  169. package/dist/core/slash-commands.js +0 -27
  170. package/dist/core/source-info.d.ts +0 -17
  171. package/dist/core/source-info.js +0 -18
  172. package/dist/core/system-prompt.d.ts +0 -30
  173. package/dist/core/system-prompt.js +0 -129
  174. package/dist/core/system-prompt.test.d.ts +0 -1
  175. package/dist/core/system-prompt.test.js +0 -94
  176. package/dist/core/telemetry.d.ts +0 -2
  177. package/dist/core/telemetry.js +0 -8
  178. package/dist/core/timings.d.ts +0 -9
  179. package/dist/core/timings.js +0 -40
  180. package/dist/core/tools/bash.d.ts +0 -86
  181. package/dist/core/tools/bash.js +0 -409
  182. package/dist/core/tools/edit-diff.d.ts +0 -105
  183. package/dist/core/tools/edit-diff.js +0 -423
  184. package/dist/core/tools/edit.d.ts +0 -50
  185. package/dist/core/tools/edit.js +0 -285
  186. package/dist/core/tools/file-mutation-queue.d.ts +0 -5
  187. package/dist/core/tools/file-mutation-queue.js +0 -51
  188. package/dist/core/tools/find.d.ts +0 -34
  189. package/dist/core/tools/find.js +0 -304
  190. package/dist/core/tools/grep.d.ts +0 -36
  191. package/dist/core/tools/grep.js +0 -303
  192. package/dist/core/tools/index.d.ts +0 -42
  193. package/dist/core/tools/index.js +0 -119
  194. package/dist/core/tools/ls.d.ts +0 -36
  195. package/dist/core/tools/ls.js +0 -166
  196. package/dist/core/tools/output-accumulator.d.ts +0 -51
  197. package/dist/core/tools/output-accumulator.js +0 -183
  198. package/dist/core/tools/path-utils.d.ts +0 -9
  199. package/dist/core/tools/path-utils.js +0 -98
  200. package/dist/core/tools/powershell.d.ts +0 -15
  201. package/dist/core/tools/powershell.js +0 -38
  202. package/dist/core/tools/powershell.test.d.ts +0 -1
  203. package/dist/core/tools/powershell.test.js +0 -20
  204. package/dist/core/tools/read-vision.test.d.ts +0 -1
  205. package/dist/core/tools/read-vision.test.js +0 -122
  206. package/dist/core/tools/read.d.ts +0 -46
  207. package/dist/core/tools/read.js +0 -327
  208. package/dist/core/tools/render-utils.d.ts +0 -23
  209. package/dist/core/tools/render-utils.js +0 -64
  210. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -13
  211. package/dist/core/tools/tool-definition-wrapper.js +0 -35
  212. package/dist/core/tools/truncate.d.ts +0 -69
  213. package/dist/core/tools/truncate.js +0 -214
  214. package/dist/core/tools/write.d.ts +0 -25
  215. package/dist/core/tools/write.js +0 -198
  216. package/dist/core/trust-manager.d.ts +0 -35
  217. package/dist/core/trust-manager.js +0 -201
  218. package/dist/core/usage-totals.d.ts +0 -20
  219. package/dist/core/usage-totals.js +0 -61
  220. package/dist/core/vision-caption.d.ts +0 -30
  221. package/dist/core/vision-caption.js +0 -62
  222. package/dist/defaults/models.json +0 -335
  223. package/dist/defaults/settings.json +0 -61
  224. package/dist/extensions/agent-browser.test.ts +0 -371
  225. package/dist/extensions/agent-browser.ts +0 -160
  226. package/dist/extensions/auto-session-name.test.ts +0 -169
  227. package/dist/extensions/auto-session-name.ts +0 -100
  228. package/dist/extensions/context-compaction-reminder.test.ts +0 -82
  229. package/dist/extensions/context-compaction-reminder.ts +0 -28
  230. package/dist/extensions/copy-turn.test.ts +0 -383
  231. package/dist/extensions/copy-turn.ts +0 -146
  232. package/dist/extensions/cost-reconcile.test.ts +0 -272
  233. package/dist/extensions/cost-reconcile.ts +0 -264
  234. package/dist/extensions/grep-app/index.test.ts +0 -406
  235. package/dist/extensions/grep-app/index.ts +0 -216
  236. package/dist/extensions/handoff-new.test.ts +0 -434
  237. package/dist/extensions/handoff-new.ts +0 -129
  238. package/dist/extensions/herdr-agent-state.ts +0 -310
  239. package/dist/extensions/inline-skills.test.ts +0 -204
  240. package/dist/extensions/inline-skills.ts +0 -102
  241. package/dist/extensions/package.json +0 -32
  242. package/dist/extensions/pi-hermes-memory/CHANGELOG.md +0 -371
  243. package/dist/extensions/pi-hermes-memory/LICENSE +0 -21
  244. package/dist/extensions/pi-hermes-memory/README.md +0 -643
  245. package/dist/extensions/pi-hermes-memory/docs/0.1/TASKS.md +0 -197
  246. package/dist/extensions/pi-hermes-memory/docs/0.2/PLAN.md +0 -290
  247. package/dist/extensions/pi-hermes-memory/docs/0.2/TASKS.md +0 -134
  248. package/dist/extensions/pi-hermes-memory/docs/0.2/TEST-PLAN.md +0 -216
  249. package/dist/extensions/pi-hermes-memory/docs/0.3/PLAN.md +0 -330
  250. package/dist/extensions/pi-hermes-memory/docs/0.3/TASKS.md +0 -125
  251. package/dist/extensions/pi-hermes-memory/docs/0.4/PLAN.md +0 -160
  252. package/dist/extensions/pi-hermes-memory/docs/0.4/TASKS.md +0 -113
  253. package/dist/extensions/pi-hermes-memory/docs/0.6/CHANGELOG.md +0 -57
  254. package/dist/extensions/pi-hermes-memory/docs/0.6/PLAN.md +0 -202
  255. package/dist/extensions/pi-hermes-memory/docs/0.6/TASKS.md +0 -144
  256. package/dist/extensions/pi-hermes-memory/docs/0.7/PLAN.md +0 -349
  257. package/dist/extensions/pi-hermes-memory/docs/0.7/TASKS.md +0 -110
  258. package/dist/extensions/pi-hermes-memory/docs/PUBLISHING.md +0 -149
  259. package/dist/extensions/pi-hermes-memory/docs/ROADMAP.md +0 -468
  260. package/dist/extensions/pi-hermes-memory/docs/images/memory-architecture.svg +0 -1
  261. package/dist/extensions/pi-hermes-memory/docs/images/pi-logo.svg +0 -22
  262. package/dist/extensions/pi-hermes-memory/docs/images/pi_memory.png +0 -0
  263. package/dist/extensions/pi-hermes-memory/docs/images/pi_memory.svg +0 -19
  264. package/dist/extensions/pi-hermes-memory/docs/images/security-flow.svg +0 -1
  265. package/dist/extensions/pi-hermes-memory/docs/images/session-lifecycle.svg +0 -1
  266. package/dist/extensions/pi-hermes-memory/docs/images/source-architecture.svg +0 -1
  267. package/dist/extensions/pi-hermes-memory/docs/mermaid/memory-architecture.mmd +0 -49
  268. package/dist/extensions/pi-hermes-memory/docs/mermaid/security-flow.mmd +0 -40
  269. package/dist/extensions/pi-hermes-memory/docs/mermaid/session-lifecycle.mmd +0 -56
  270. package/dist/extensions/pi-hermes-memory/docs/mermaid/source-architecture.mmd +0 -54
  271. package/dist/extensions/pi-hermes-memory/package-lock.json +0 -3799
  272. package/dist/extensions/pi-hermes-memory/package.json +0 -66
  273. package/dist/extensions/pi-hermes-memory/scripts/check-min-sdk.mjs +0 -99
  274. package/dist/extensions/pi-hermes-memory/scripts/ensure-dev.mjs +0 -57
  275. package/dist/extensions/pi-hermes-memory/src/auto-consolidation-warning.ts +0 -6
  276. package/dist/extensions/pi-hermes-memory/src/config.ts +0 -178
  277. package/dist/extensions/pi-hermes-memory/src/constants.ts +0 -424
  278. package/dist/extensions/pi-hermes-memory/src/extension-root-migration.ts +0 -639
  279. package/dist/extensions/pi-hermes-memory/src/handlers/auto-consolidate.ts +0 -401
  280. package/dist/extensions/pi-hermes-memory/src/handlers/background-review.ts +0 -297
  281. package/dist/extensions/pi-hermes-memory/src/handlers/child-process-watchdog.mjs +0 -90
  282. package/dist/extensions/pi-hermes-memory/src/handlers/correction-detector.ts +0 -300
  283. package/dist/extensions/pi-hermes-memory/src/handlers/index-sessions.ts +0 -86
  284. package/dist/extensions/pi-hermes-memory/src/handlers/insights.ts +0 -78
  285. package/dist/extensions/pi-hermes-memory/src/handlers/interview.ts +0 -37
  286. package/dist/extensions/pi-hermes-memory/src/handlers/learn-memory.ts +0 -186
  287. package/dist/extensions/pi-hermes-memory/src/handlers/message-parts.ts +0 -27
  288. package/dist/extensions/pi-hermes-memory/src/handlers/pi-child-process.ts +0 -485
  289. package/dist/extensions/pi-hermes-memory/src/handlers/preview-context.ts +0 -105
  290. package/dist/extensions/pi-hermes-memory/src/handlers/review-memory-ops.ts +0 -506
  291. package/dist/extensions/pi-hermes-memory/src/handlers/session-backfill.ts +0 -145
  292. package/dist/extensions/pi-hermes-memory/src/handlers/session-flush.ts +0 -151
  293. package/dist/extensions/pi-hermes-memory/src/handlers/session-live-index.ts +0 -94
  294. package/dist/extensions/pi-hermes-memory/src/handlers/skills-command.ts +0 -1334
  295. package/dist/extensions/pi-hermes-memory/src/handlers/standing-pin.ts +0 -111
  296. package/dist/extensions/pi-hermes-memory/src/handlers/switch-project.ts +0 -75
  297. package/dist/extensions/pi-hermes-memory/src/handlers/sync-markdown-memories.ts +0 -266
  298. package/dist/extensions/pi-hermes-memory/src/index.ts +0 -384
  299. package/dist/extensions/pi-hermes-memory/src/lifecycle-timing.ts +0 -54
  300. package/dist/extensions/pi-hermes-memory/src/paths.ts +0 -61
  301. package/dist/extensions/pi-hermes-memory/src/project-context.ts +0 -13
  302. package/dist/extensions/pi-hermes-memory/src/project-memory-migration.ts +0 -93
  303. package/dist/extensions/pi-hermes-memory/src/project.ts +0 -157
  304. package/dist/extensions/pi-hermes-memory/src/prompt-context.ts +0 -55
  305. package/dist/extensions/pi-hermes-memory/src/store/atomic-lock-coordinator.ts +0 -375
  306. package/dist/extensions/pi-hermes-memory/src/store/canonical-storage-path.ts +0 -54
  307. package/dist/extensions/pi-hermes-memory/src/store/content-scanner.ts +0 -101
  308. package/dist/extensions/pi-hermes-memory/src/store/db.ts +0 -1180
  309. package/dist/extensions/pi-hermes-memory/src/store/fts-query.ts +0 -101
  310. package/dist/extensions/pi-hermes-memory/src/store/markdown-mutation-lock.ts +0 -38
  311. package/dist/extensions/pi-hermes-memory/src/store/memory-lookup.ts +0 -24
  312. package/dist/extensions/pi-hermes-memory/src/store/memory-store.ts +0 -1191
  313. package/dist/extensions/pi-hermes-memory/src/store/recovery-maintenance.ts +0 -66
  314. package/dist/extensions/pi-hermes-memory/src/store/schema.ts +0 -118
  315. package/dist/extensions/pi-hermes-memory/src/store/session-anchor-search.ts +0 -472
  316. package/dist/extensions/pi-hermes-memory/src/store/session-indexer.ts +0 -511
  317. package/dist/extensions/pi-hermes-memory/src/store/session-parser.ts +0 -213
  318. package/dist/extensions/pi-hermes-memory/src/store/session-search.ts +0 -234
  319. package/dist/extensions/pi-hermes-memory/src/store/skill-store.ts +0 -950
  320. package/dist/extensions/pi-hermes-memory/src/store/skill-utils.ts +0 -133
  321. package/dist/extensions/pi-hermes-memory/src/store/sqlite-memory-store.ts +0 -1002
  322. package/dist/extensions/pi-hermes-memory/src/store/sqlite-native.ts +0 -241
  323. package/dist/extensions/pi-hermes-memory/src/store/standing-instructions.ts +0 -247
  324. package/dist/extensions/pi-hermes-memory/src/tools/memory-search-tool.ts +0 -95
  325. package/dist/extensions/pi-hermes-memory/src/tools/memory-tool.ts +0 -469
  326. package/dist/extensions/pi-hermes-memory/src/tools/session-search-tool.ts +0 -246
  327. package/dist/extensions/pi-hermes-memory/src/tools/shared-output-view.ts +0 -170
  328. package/dist/extensions/pi-hermes-memory/src/tools/skill-tool.ts +0 -333
  329. package/dist/extensions/pi-hermes-memory/src/tools/tool-result-views.ts +0 -105
  330. package/dist/extensions/pi-hermes-memory/src/types.ts +0 -214
  331. package/dist/extensions/pi-hermes-memory/tests/config.test.ts +0 -434
  332. package/dist/extensions/pi-hermes-memory/tests/extension-root-migration.test.ts +0 -368
  333. package/dist/extensions/pi-hermes-memory/tests/handlers/auto-consolidate.test.ts +0 -984
  334. package/dist/extensions/pi-hermes-memory/tests/handlers/background-review.test.ts +0 -950
  335. package/dist/extensions/pi-hermes-memory/tests/handlers/correction-detector.test.ts +0 -671
  336. package/dist/extensions/pi-hermes-memory/tests/handlers/insights.test.ts +0 -157
  337. package/dist/extensions/pi-hermes-memory/tests/handlers/interview.test.ts +0 -127
  338. package/dist/extensions/pi-hermes-memory/tests/handlers/pi-child-process.test.ts +0 -905
  339. package/dist/extensions/pi-hermes-memory/tests/handlers/preview-context.test.ts +0 -152
  340. package/dist/extensions/pi-hermes-memory/tests/handlers/prompt-context.test.ts +0 -166
  341. package/dist/extensions/pi-hermes-memory/tests/handlers/resources-discover.test.ts +0 -71
  342. package/dist/extensions/pi-hermes-memory/tests/handlers/review-memory-ops.test.ts +0 -614
  343. package/dist/extensions/pi-hermes-memory/tests/handlers/session-backfill.test.ts +0 -192
  344. package/dist/extensions/pi-hermes-memory/tests/handlers/session-flush.test.ts +0 -677
  345. package/dist/extensions/pi-hermes-memory/tests/handlers/session-live-index.test.ts +0 -225
  346. package/dist/extensions/pi-hermes-memory/tests/handlers/skills-command.test.ts +0 -827
  347. package/dist/extensions/pi-hermes-memory/tests/handlers/standing-pin.test.ts +0 -134
  348. package/dist/extensions/pi-hermes-memory/tests/handlers/sync-markdown-memories.test.ts +0 -491
  349. package/dist/extensions/pi-hermes-memory/tests/handlers/system-prompt.test.ts +0 -199
  350. package/dist/extensions/pi-hermes-memory/tests/handlers/thinking-max.test.ts +0 -64
  351. package/dist/extensions/pi-hermes-memory/tests/index.test.ts +0 -30
  352. package/dist/extensions/pi-hermes-memory/tests/integration/flow.test.ts +0 -126
  353. package/dist/extensions/pi-hermes-memory/tests/lifecycle-timing.test.ts +0 -76
  354. package/dist/extensions/pi-hermes-memory/tests/paths.test.ts +0 -23
  355. package/dist/extensions/pi-hermes-memory/tests/project-memory-migration.test.ts +0 -80
  356. package/dist/extensions/pi-hermes-memory/tests/project-rebinding.test.ts +0 -115
  357. package/dist/extensions/pi-hermes-memory/tests/project.test.ts +0 -120
  358. package/dist/extensions/pi-hermes-memory/tests/run-all-timeout.test.ts +0 -107
  359. package/dist/extensions/pi-hermes-memory/tests/run-all.sh +0 -45
  360. package/dist/extensions/pi-hermes-memory/tests/store/atomic-lock-coordinator.test.ts +0 -381
  361. package/dist/extensions/pi-hermes-memory/tests/store/content-scanner.test.ts +0 -388
  362. package/dist/extensions/pi-hermes-memory/tests/store/db.test.ts +0 -1046
  363. package/dist/extensions/pi-hermes-memory/tests/store/markdown-mutation-lock.test.ts +0 -34
  364. package/dist/extensions/pi-hermes-memory/tests/store/memory-store.test.ts +0 -2150
  365. package/dist/extensions/pi-hermes-memory/tests/store/recovery-maintenance.test.ts +0 -170
  366. package/dist/extensions/pi-hermes-memory/tests/store/session-anchor-search.test.ts +0 -210
  367. package/dist/extensions/pi-hermes-memory/tests/store/session-indexer.test.ts +0 -643
  368. package/dist/extensions/pi-hermes-memory/tests/store/session-parser.test.ts +0 -282
  369. package/dist/extensions/pi-hermes-memory/tests/store/session-search.test.ts +0 -287
  370. package/dist/extensions/pi-hermes-memory/tests/store/skill-store.test.ts +0 -678
  371. package/dist/extensions/pi-hermes-memory/tests/store/skill-utils.test.ts +0 -21
  372. package/dist/extensions/pi-hermes-memory/tests/store/sqlite-lazy-load.test.ts +0 -78
  373. package/dist/extensions/pi-hermes-memory/tests/store/sqlite-memory-store.test.ts +0 -543
  374. package/dist/extensions/pi-hermes-memory/tests/store/sqlite-native.test.ts +0 -164
  375. package/dist/extensions/pi-hermes-memory/tests/store/standing-instructions.test.ts +0 -171
  376. package/dist/extensions/pi-hermes-memory/tests/tools/memory-search-tool.test.ts +0 -84
  377. package/dist/extensions/pi-hermes-memory/tests/tools/memory-tool.test.ts +0 -709
  378. package/dist/extensions/pi-hermes-memory/tests/tools/session-search-tool.test.ts +0 -345
  379. package/dist/extensions/pi-hermes-memory/tests/tools/shared-output-view.test.ts +0 -362
  380. package/dist/extensions/pi-hermes-memory/tests/tools/skill-tool.test.ts +0 -478
  381. package/dist/extensions/pi-hermes-memory/tests/tools/tool-result-renderer-wiring.test.ts +0 -40
  382. package/dist/extensions/pi-hermes-memory/tsconfig.json +0 -19
  383. package/dist/extensions/pi-intercom/CHANGELOG.md +0 -321
  384. package/dist/extensions/pi-intercom/LICENSE +0 -21
  385. package/dist/extensions/pi-intercom/README.md +0 -598
  386. package/dist/extensions/pi-intercom/banner.png +0 -0
  387. package/dist/extensions/pi-intercom/broker/broker.ts +0 -1721
  388. package/dist/extensions/pi-intercom/broker/client-liveness.test.ts +0 -173
  389. package/dist/extensions/pi-intercom/broker/client.test.ts +0 -83
  390. package/dist/extensions/pi-intercom/broker/client.ts +0 -793
  391. package/dist/extensions/pi-intercom/broker/extension-state.ts +0 -197
  392. package/dist/extensions/pi-intercom/broker/extension.test.ts +0 -486
  393. package/dist/extensions/pi-intercom/broker/framing.test.ts +0 -114
  394. package/dist/extensions/pi-intercom/broker/framing.ts +0 -115
  395. package/dist/extensions/pi-intercom/broker/paths.test.ts +0 -153
  396. package/dist/extensions/pi-intercom/broker/paths.ts +0 -134
  397. package/dist/extensions/pi-intercom/broker/protocol.ts +0 -208
  398. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +0 -34
  399. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +0 -21
  400. package/dist/extensions/pi-intercom/broker/spawn.test.ts +0 -252
  401. package/dist/extensions/pi-intercom/broker/spawn.ts +0 -420
  402. package/dist/extensions/pi-intercom/config.test.ts +0 -104
  403. package/dist/extensions/pi-intercom/config.ts +0 -163
  404. package/dist/extensions/pi-intercom/cwd.test.ts +0 -40
  405. package/dist/extensions/pi-intercom/cwd.ts +0 -31
  406. package/dist/extensions/pi-intercom/extension-api.ts +0 -84
  407. package/dist/extensions/pi-intercom/format-context.test.ts +0 -31
  408. package/dist/extensions/pi-intercom/format-context.ts +0 -32
  409. package/dist/extensions/pi-intercom/index.ts +0 -2821
  410. package/dist/extensions/pi-intercom/intercom.integration.test.ts +0 -4232
  411. package/dist/extensions/pi-intercom/package.json +0 -49
  412. package/dist/extensions/pi-intercom/project-agent.test.ts +0 -145
  413. package/dist/extensions/pi-intercom/project-agent.ts +0 -324
  414. package/dist/extensions/pi-intercom/reply-tracker.test.ts +0 -239
  415. package/dist/extensions/pi-intercom/reply-tracker.ts +0 -160
  416. package/dist/extensions/pi-intercom/skills/pi-intercom/SKILL.md +0 -452
  417. package/dist/extensions/pi-intercom/test/inline-message.test.ts +0 -184
  418. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +0 -66
  419. package/dist/extensions/pi-intercom/types.ts +0 -165
  420. package/dist/extensions/pi-intercom/ui/compose.ts +0 -143
  421. package/dist/extensions/pi-intercom/ui/inline-message.ts +0 -118
  422. package/dist/extensions/pi-intercom/ui/session-list.ts +0 -166
  423. package/dist/extensions/pi-rewind-hook/README.md +0 -248
  424. package/dist/extensions/pi-rewind-hook/index.ts +0 -1575
  425. package/dist/extensions/pi-rewind-hook/package.json +0 -31
  426. package/dist/extensions/pi-subagents/.github/assets/subagent-fleet-inspector.png +0 -0
  427. package/dist/extensions/pi-subagents/.github/workflows/release.yml +0 -28
  428. package/dist/extensions/pi-subagents/.github/workflows/test.yml +0 -51
  429. package/dist/extensions/pi-subagents/.greptile/config.json +0 -33
  430. package/dist/extensions/pi-subagents/.greptile/files.json +0 -8
  431. package/dist/extensions/pi-subagents/.greptile/rules.md +0 -16
  432. package/dist/extensions/pi-subagents/.oxlintrc.json +0 -43
  433. package/dist/extensions/pi-subagents/AGENTS.md +0 -5
  434. package/dist/extensions/pi-subagents/CHANGELOG.md +0 -2249
  435. package/dist/extensions/pi-subagents/LICENSE +0 -21
  436. package/dist/extensions/pi-subagents/README.md +0 -126
  437. package/dist/extensions/pi-subagents/VISION.md +0 -81
  438. package/dist/extensions/pi-subagents/agents/delegate.md +0 -14
  439. package/dist/extensions/pi-subagents/agents/oracle.md +0 -78
  440. package/dist/extensions/pi-subagents/agents/researcher.md +0 -52
  441. package/dist/extensions/pi-subagents/agents/reviewer.md +0 -89
  442. package/dist/extensions/pi-subagents/agents/scout.md +0 -50
  443. package/dist/extensions/pi-subagents/agents/worker.md +0 -60
  444. package/dist/extensions/pi-subagents/async-retention-discovery-worker.mjs +0 -180
  445. package/dist/extensions/pi-subagents/docs/agents.md +0 -375
  446. package/dist/extensions/pi-subagents/docs/configuration.md +0 -508
  447. package/dist/extensions/pi-subagents/docs/extension-api.md +0 -443
  448. package/dist/extensions/pi-subagents/docs/missions.md +0 -121
  449. package/dist/extensions/pi-subagents/docs/models.md +0 -258
  450. package/dist/extensions/pi-subagents/docs/observability.md +0 -262
  451. package/dist/extensions/pi-subagents/docs/tool-reference.md +0 -482
  452. package/dist/extensions/pi-subagents/docs/watchdog.md +0 -176
  453. package/dist/extensions/pi-subagents/docs/workflows.md +0 -475
  454. package/dist/extensions/pi-subagents/index.ts +0 -10
  455. package/dist/extensions/pi-subagents/inspector-runner.mjs +0 -11
  456. package/dist/extensions/pi-subagents/install.mjs +0 -94
  457. package/dist/extensions/pi-subagents/package-lock.json +0 -1872
  458. package/dist/extensions/pi-subagents/package.json +0 -109
  459. package/dist/extensions/pi-subagents/prompts/council.md +0 -60
  460. package/dist/extensions/pi-subagents/prompts/gather-context-and-clarify.md +0 -13
  461. package/dist/extensions/pi-subagents/prompts/parallel-cleanup.md +0 -59
  462. package/dist/extensions/pi-subagents/prompts/parallel-research.md +0 -50
  463. package/dist/extensions/pi-subagents/prompts/parallel-review.md +0 -58
  464. package/dist/extensions/pi-subagents/prompts/review-loop.md +0 -47
  465. package/dist/extensions/pi-subagents/skills/council-mode/SKILL.md +0 -59
  466. package/dist/extensions/pi-subagents/skills/council-mode/references/pass-contracts.md +0 -150
  467. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +0 -103
  468. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +0 -70
  469. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +0 -539
  470. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +0 -161
  471. package/dist/extensions/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +0 -51
  472. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +0 -295
  473. package/dist/extensions/pi-subagents/skills/pi-subagents/references/review-and-validation.md +0 -73
  474. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +0 -1336
  475. package/dist/extensions/pi-subagents/src/agents/agent-memory.ts +0 -254
  476. package/dist/extensions/pi-subagents/src/agents/agent-refinements.ts +0 -624
  477. package/dist/extensions/pi-subagents/src/agents/agent-scope.ts +0 -6
  478. package/dist/extensions/pi-subagents/src/agents/agent-selection.ts +0 -25
  479. package/dist/extensions/pi-subagents/src/agents/agent-serializer.ts +0 -176
  480. package/dist/extensions/pi-subagents/src/agents/agents.ts +0 -2794
  481. package/dist/extensions/pi-subagents/src/agents/builtin-names.ts +0 -9
  482. package/dist/extensions/pi-subagents/src/agents/chain-serializer.ts +0 -280
  483. package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +0 -153
  484. package/dist/extensions/pi-subagents/src/agents/identity.ts +0 -30
  485. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +0 -194
  486. package/dist/extensions/pi-subagents/src/agents/runtime-agent-events.ts +0 -70
  487. package/dist/extensions/pi-subagents/src/agents/runtime-agent-registry.ts +0 -425
  488. package/dist/extensions/pi-subagents/src/agents/skills.ts +0 -754
  489. package/dist/extensions/pi-subagents/src/api/agents.ts +0 -12
  490. package/dist/extensions/pi-subagents/src/api/background-work.ts +0 -206
  491. package/dist/extensions/pi-subagents/src/api/capability-ceiling.ts +0 -17
  492. package/dist/extensions/pi-subagents/src/api/control-channel.ts +0 -4
  493. package/dist/extensions/pi-subagents/src/api/delegation.ts +0 -112
  494. package/dist/extensions/pi-subagents/src/api/external-job-provider.ts +0 -195
  495. package/dist/extensions/pi-subagents/src/api/external-runs.ts +0 -282
  496. package/dist/extensions/pi-subagents/src/api/intercom-bridge.ts +0 -3
  497. package/dist/extensions/pi-subagents/src/api/pi-args.ts +0 -5
  498. package/dist/extensions/pi-subagents/src/api/preflight.ts +0 -497
  499. package/dist/extensions/pi-subagents/src/api/project-panes.ts +0 -32
  500. package/dist/extensions/pi-subagents/src/api/shared-types.ts +0 -24
  501. package/dist/extensions/pi-subagents/src/extension/config.ts +0 -235
  502. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +0 -58
  503. package/dist/extensions/pi-subagents/src/extension/doctor.ts +0 -278
  504. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +0 -205
  505. package/dist/extensions/pi-subagents/src/extension/index.ts +0 -1093
  506. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +0 -209
  507. package/dist/extensions/pi-subagents/src/extension/rpc.ts +0 -860
  508. package/dist/extensions/pi-subagents/src/extension/schemas.ts +0 -415
  509. package/dist/extensions/pi-subagents/src/extension/steering-notices.ts +0 -35
  510. package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +0 -39
  511. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +0 -204
  512. package/dist/extensions/pi-subagents/src/extension/tool-result.ts +0 -19
  513. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +0 -235
  514. package/dist/extensions/pi-subagents/src/inspectors/herdr/client.ts +0 -130
  515. package/dist/extensions/pi-subagents/src/inspectors/herdr/focus.ts +0 -55
  516. package/dist/extensions/pi-subagents/src/inspectors/herdr/inspector-runner.ts +0 -147
  517. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +0 -730
  518. package/dist/extensions/pi-subagents/src/inspectors/herdr/session-roots-codec.ts +0 -42
  519. package/dist/extensions/pi-subagents/src/inspectors/herdr/shell-command.ts +0 -16
  520. package/dist/extensions/pi-subagents/src/integrations/herdr-status.ts +0 -396
  521. package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +0 -191
  522. package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +0 -812
  523. package/dist/extensions/pi-subagents/src/intercom/result-intercom.ts +0 -423
  524. package/dist/extensions/pi-subagents/src/missions/actions.ts +0 -433
  525. package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +0 -164
  526. package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +0 -367
  527. package/dist/extensions/pi-subagents/src/missions/store.ts +0 -584
  528. package/dist/extensions/pi-subagents/src/missions/types.ts +0 -190
  529. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +0 -260
  530. package/dist/extensions/pi-subagents/src/policy/authority.ts +0 -46
  531. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +0 -662
  532. package/dist/extensions/pi-subagents/src/runs/background/active-async-capacity.ts +0 -498
  533. package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +0 -139
  534. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +0 -2000
  535. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +0 -781
  536. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +0 -627
  537. package/dist/extensions/pi-subagents/src/runs/background/async-retention.ts +0 -903
  538. package/dist/extensions/pi-subagents/src/runs/background/async-status-snapshot.ts +0 -48
  539. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +0 -745
  540. package/dist/extensions/pi-subagents/src/runs/background/auto-drain.ts +0 -68
  541. package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +0 -321
  542. package/dist/extensions/pi-subagents/src/runs/background/chain-root-attachment.ts +0 -270
  543. package/dist/extensions/pi-subagents/src/runs/background/completion-batcher.ts +0 -168
  544. package/dist/extensions/pi-subagents/src/runs/background/completion-dedupe.ts +0 -58
  545. package/dist/extensions/pi-subagents/src/runs/background/completion-replay.ts +0 -287
  546. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +0 -768
  547. package/dist/extensions/pi-subagents/src/runs/background/fleet-view.ts +0 -620
  548. package/dist/extensions/pi-subagents/src/runs/background/index-segment.ts +0 -59
  549. package/dist/extensions/pi-subagents/src/runs/background/inspect-rpc.ts +0 -443
  550. package/dist/extensions/pi-subagents/src/runs/background/notify.ts +0 -594
  551. package/dist/extensions/pi-subagents/src/runs/background/owned-process-tree.ts +0 -104
  552. package/dist/extensions/pi-subagents/src/runs/background/parallel-groups.ts +0 -45
  553. package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +0 -294
  554. package/dist/extensions/pi-subagents/src/runs/background/result-delivery-ownership.ts +0 -45
  555. package/dist/extensions/pi-subagents/src/runs/background/result-files.ts +0 -519
  556. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +0 -792
  557. package/dist/extensions/pi-subagents/src/runs/background/resume-guidance.ts +0 -56
  558. package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +0 -135
  559. package/dist/extensions/pi-subagents/src/runs/background/run-id-query.ts +0 -7
  560. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +0 -175
  561. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +0 -694
  562. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +0 -908
  563. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +0 -410
  564. package/dist/extensions/pi-subagents/src/runs/background/steering.ts +0 -239
  565. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +0 -5626
  566. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +0 -725
  567. package/dist/extensions/pi-subagents/src/runs/background/terminal-run-index.ts +0 -138
  568. package/dist/extensions/pi-subagents/src/runs/background/top-level-async.ts +0 -14
  569. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +0 -196
  570. package/dist/extensions/pi-subagents/src/runs/background/wait-config.ts +0 -50
  571. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +0 -348
  572. package/dist/extensions/pi-subagents/src/runs/background/wait-tool.ts +0 -49
  573. package/dist/extensions/pi-subagents/src/runs/foreground/async-dismiss-action.ts +0 -86
  574. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +0 -262
  575. package/dist/extensions/pi-subagents/src/runs/foreground/async-stop-action.ts +0 -86
  576. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +0 -2430
  577. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-control.ts +0 -153
  578. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +0 -160
  579. package/dist/extensions/pi-subagents/src/runs/foreground/prompt-audit.ts +0 -172
  580. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +0 -6918
  581. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-detach-reconcile.ts +0 -299
  582. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +0 -188
  583. package/dist/extensions/pi-subagents/src/runs/shared/abort-recovery.ts +0 -119
  584. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +0 -1448
  585. package/dist/extensions/pi-subagents/src/runs/shared/agent-contract.ts +0 -38
  586. package/dist/extensions/pi-subagents/src/runs/shared/async-status-projection.ts +0 -597
  587. package/dist/extensions/pi-subagents/src/runs/shared/background-process-options.ts +0 -9
  588. package/dist/extensions/pi-subagents/src/runs/shared/capability-ceiling.ts +0 -209
  589. package/dist/extensions/pi-subagents/src/runs/shared/chain-outputs.ts +0 -116
  590. package/dist/extensions/pi-subagents/src/runs/shared/child-identity.ts +0 -51
  591. package/dist/extensions/pi-subagents/src/runs/shared/child-launch-plan.ts +0 -151
  592. package/dist/extensions/pi-subagents/src/runs/shared/child-protocol.ts +0 -415
  593. package/dist/extensions/pi-subagents/src/runs/shared/completion-evidence.ts +0 -89
  594. package/dist/extensions/pi-subagents/src/runs/shared/completion-guard.ts +0 -252
  595. package/dist/extensions/pi-subagents/src/runs/shared/context-mode.ts +0 -44
  596. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +0 -297
  597. package/dist/extensions/pi-subagents/src/runs/shared/extension-bindings.ts +0 -78
  598. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-contract.ts +0 -138
  599. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-preflight.ts +0 -122
  600. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-runner.ts +0 -429
  601. package/dist/extensions/pi-subagents/src/runs/shared/external-job-bridge.ts +0 -460
  602. package/dist/extensions/pi-subagents/src/runs/shared/external-job-runner.ts +0 -389
  603. package/dist/extensions/pi-subagents/src/runs/shared/fast-mode-extension.ts +0 -10
  604. package/dist/extensions/pi-subagents/src/runs/shared/host-step-status.ts +0 -231
  605. package/dist/extensions/pi-subagents/src/runs/shared/lane-metadata.ts +0 -105
  606. package/dist/extensions/pi-subagents/src/runs/shared/launch-cwd.ts +0 -16
  607. package/dist/extensions/pi-subagents/src/runs/shared/llm-intent-arbiter.ts +0 -302
  608. package/dist/extensions/pi-subagents/src/runs/shared/long-running-guard.ts +0 -221
  609. package/dist/extensions/pi-subagents/src/runs/shared/mcp-config-sources.ts +0 -422
  610. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +0 -483
  611. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-grant.ts +0 -194
  612. package/dist/extensions/pi-subagents/src/runs/shared/model-exclusions.ts +0 -305
  613. package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +0 -578
  614. package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +0 -205
  615. package/dist/extensions/pi-subagents/src/runs/shared/mutation-evidence.ts +0 -199
  616. package/dist/extensions/pi-subagents/src/runs/shared/nested-events.ts +0 -1086
  617. package/dist/extensions/pi-subagents/src/runs/shared/nested-path.ts +0 -52
  618. package/dist/extensions/pi-subagents/src/runs/shared/nested-render.ts +0 -127
  619. package/dist/extensions/pi-subagents/src/runs/shared/orca-progress-tabs.ts +0 -499
  620. package/dist/extensions/pi-subagents/src/runs/shared/parallel-handoff.ts +0 -692
  621. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +0 -279
  622. package/dist/extensions/pi-subagents/src/runs/shared/permissions.ts +0 -99
  623. package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +0 -1044
  624. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +0 -163
  625. package/dist/extensions/pi-subagents/src/runs/shared/process-signal.ts +0 -32
  626. package/dist/extensions/pi-subagents/src/runs/shared/run-fanout-budget.ts +0 -280
  627. package/dist/extensions/pi-subagents/src/runs/shared/run-history.ts +0 -201
  628. package/dist/extensions/pi-subagents/src/runs/shared/runtime-acknowledged-extensions.ts +0 -71
  629. package/dist/extensions/pi-subagents/src/runs/shared/session-lease.ts +0 -293
  630. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +0 -304
  631. package/dist/extensions/pi-subagents/src/runs/shared/spawn-budget.ts +0 -128
  632. package/dist/extensions/pi-subagents/src/runs/shared/structured-output.ts +0 -196
  633. package/dist/extensions/pi-subagents/src/runs/shared/subagent-control.ts +0 -290
  634. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +0 -808
  635. package/dist/extensions/pi-subagents/src/runs/shared/subagent-startup-retry.ts +0 -116
  636. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +0 -197
  637. package/dist/extensions/pi-subagents/src/runs/shared/tool-availability.ts +0 -81
  638. package/dist/extensions/pi-subagents/src/runs/shared/tool-budget.ts +0 -80
  639. package/dist/extensions/pi-subagents/src/runs/shared/tool-timeout.ts +0 -93
  640. package/dist/extensions/pi-subagents/src/runs/shared/usage-budget.ts +0 -65
  641. package/dist/extensions/pi-subagents/src/runs/shared/workflow-graph.ts +0 -225
  642. package/dist/extensions/pi-subagents/src/runs/shared/worktree-cleanup-plan.ts +0 -847
  643. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +0 -802
  644. package/dist/extensions/pi-subagents/src/shared/accessible-dir.ts +0 -47
  645. package/dist/extensions/pi-subagents/src/shared/agent-stream-options.ts +0 -5
  646. package/dist/extensions/pi-subagents/src/shared/artifacts.ts +0 -281
  647. package/dist/extensions/pi-subagents/src/shared/atomic-json.ts +0 -81
  648. package/dist/extensions/pi-subagents/src/shared/capacity-resilient-json.ts +0 -102
  649. package/dist/extensions/pi-subagents/src/shared/child-session-name.ts +0 -46
  650. package/dist/extensions/pi-subagents/src/shared/child-transcript.ts +0 -264
  651. package/dist/extensions/pi-subagents/src/shared/completion-owner.ts +0 -14
  652. package/dist/extensions/pi-subagents/src/shared/display-text.ts +0 -150
  653. package/dist/extensions/pi-subagents/src/shared/extension-context.ts +0 -24
  654. package/dist/extensions/pi-subagents/src/shared/file-coalescer.ts +0 -49
  655. package/dist/extensions/pi-subagents/src/shared/file-system-retry.ts +0 -95
  656. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +0 -305
  657. package/dist/extensions/pi-subagents/src/shared/formatters.ts +0 -146
  658. package/dist/extensions/pi-subagents/src/shared/jsonl-writer.ts +0 -81
  659. package/dist/extensions/pi-subagents/src/shared/launch-contract.ts +0 -135
  660. package/dist/extensions/pi-subagents/src/shared/model-info.ts +0 -101
  661. package/dist/extensions/pi-subagents/src/shared/node-executable.ts +0 -21
  662. package/dist/extensions/pi-subagents/src/shared/post-exit-stdio-guard.ts +0 -85
  663. package/dist/extensions/pi-subagents/src/shared/prompt-resources.ts +0 -11
  664. package/dist/extensions/pi-subagents/src/shared/pruned-fork.ts +0 -450
  665. package/dist/extensions/pi-subagents/src/shared/session-file-trust.ts +0 -19
  666. package/dist/extensions/pi-subagents/src/shared/session-identity.ts +0 -10
  667. package/dist/extensions/pi-subagents/src/shared/session-tokens.ts +0 -55
  668. package/dist/extensions/pi-subagents/src/shared/settings.ts +0 -409
  669. package/dist/extensions/pi-subagents/src/shared/shortcuts.ts +0 -17
  670. package/dist/extensions/pi-subagents/src/shared/status-format.ts +0 -55
  671. package/dist/extensions/pi-subagents/src/shared/thinking-ceiling.ts +0 -52
  672. package/dist/extensions/pi-subagents/src/shared/types.ts +0 -2834
  673. package/dist/extensions/pi-subagents/src/shared/utf8.ts +0 -11
  674. package/dist/extensions/pi-subagents/src/shared/utils.ts +0 -590
  675. package/dist/extensions/pi-subagents/src/shared/watch-strategy.ts +0 -10
  676. package/dist/extensions/pi-subagents/src/shared/workflow-child-permit.ts +0 -207
  677. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +0 -426
  678. package/dist/extensions/pi-subagents/src/slash/delegation-json.ts +0 -108
  679. package/dist/extensions/pi-subagents/src/slash/delegation-request.ts +0 -162
  680. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +0 -419
  681. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +0 -287
  682. package/dist/extensions/pi-subagents/src/slash/selector.ts +0 -147
  683. package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +0 -192
  684. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +0 -1345
  685. package/dist/extensions/pi-subagents/src/slash/slash-live-state.ts +0 -310
  686. package/dist/extensions/pi-subagents/src/slash/subagents-admin.ts +0 -435
  687. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +0 -905
  688. package/dist/extensions/pi-subagents/src/tui/fleet-transcript.ts +0 -536
  689. package/dist/extensions/pi-subagents/src/tui/fleet.ts +0 -1436
  690. package/dist/extensions/pi-subagents/src/tui/render-helpers.ts +0 -111
  691. package/dist/extensions/pi-subagents/src/tui/render.ts +0 -3146
  692. package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +0 -8
  693. package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +0 -260
  694. package/dist/extensions/pi-subagents/src/watchdog/child-status.ts +0 -205
  695. package/dist/extensions/pi-subagents/src/watchdog/emission-guard.ts +0 -123
  696. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +0 -538
  697. package/dist/extensions/pi-subagents/src/watchdog/model-selection.ts +0 -167
  698. package/dist/extensions/pi-subagents/src/watchdog/permission-arbiter.ts +0 -154
  699. package/dist/extensions/pi-subagents/src/watchdog/register-child.ts +0 -117
  700. package/dist/extensions/pi-subagents/src/watchdog/register-main.ts +0 -440
  701. package/dist/extensions/pi-subagents/src/watchdog/render.ts +0 -54
  702. package/dist/extensions/pi-subagents/src/watchdog/review.ts +0 -303
  703. package/dist/extensions/pi-subagents/src/watchdog/runtime.ts +0 -868
  704. package/dist/extensions/pi-subagents/src/watchdog/scope.ts +0 -62
  705. package/dist/extensions/pi-subagents/src/watchdog/settings.ts +0 -568
  706. package/dist/extensions/pi-subagents/src/watchdog/tool-actions.ts +0 -155
  707. package/dist/extensions/pi-subagents/src/watchdog/turn-delta.ts +0 -161
  708. package/dist/extensions/pi-subagents/src/watchdog/types.ts +0 -198
  709. package/dist/extensions/pi-subagents/src/watchdog/warning-format.ts +0 -73
  710. package/dist/extensions/pi-subagents/src/workflows/chat-progress.ts +0 -151
  711. package/dist/extensions/pi-subagents/src/workflows/host-command.ts +0 -235
  712. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +0 -2183
  713. package/dist/extensions/pi-subagents/src/workflows/workflow-child-summary.ts +0 -121
  714. package/dist/extensions/pi-subagents/src/workflows/workflow-preflight.ts +0 -270
  715. package/dist/extensions/pi-subagents/src/workflows/workflow-receipt.ts +0 -330
  716. package/dist/extensions/pi-subagents/src/workflows/workflow-resources.ts +0 -150
  717. package/dist/extensions/pi-subagents/src/workflows/workflow-settlement.ts +0 -246
  718. package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +0 -224
  719. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  720. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  721. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  722. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  723. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  724. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  725. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  726. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  727. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  728. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  729. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  730. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  731. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  732. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  733. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  734. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  735. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  736. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  737. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  738. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  739. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  740. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  741. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  742. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  743. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  744. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  745. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  746. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  747. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  748. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  749. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  750. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  751. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  752. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  753. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  754. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1261
  755. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  756. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  757. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  758. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  759. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  760. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  761. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  762. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  763. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  764. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  765. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  766. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  767. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  768. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  769. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  770. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  771. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  772. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  773. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  774. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  775. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  776. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  777. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  778. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  779. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  780. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  781. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  782. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  783. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  784. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  785. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  786. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  787. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  788. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  789. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  790. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  791. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  792. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  793. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  794. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  795. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  796. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  797. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  798. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  799. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  800. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  801. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  802. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  803. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  804. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +0 -3
  805. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  806. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  807. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  808. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  809. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  810. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  811. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  812. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  813. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  814. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  815. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  816. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  817. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  818. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  819. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  820. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  821. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  822. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  823. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  824. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  825. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  826. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  827. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  828. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  829. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  830. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  831. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  832. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  833. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  834. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  835. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  836. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  837. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  838. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  839. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  840. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  841. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  842. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  843. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  844. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  845. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  846. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  847. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  848. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  849. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  850. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  851. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  852. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  853. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  854. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  855. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  856. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  857. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  858. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  859. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  860. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  861. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  862. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  863. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  864. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  865. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  866. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  867. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  868. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  869. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  870. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  871. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  872. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  873. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  874. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  875. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  876. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  877. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  878. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  879. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  880. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  881. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  882. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  883. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  884. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  885. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  886. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  887. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  888. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  889. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  890. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  891. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  892. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  893. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +0 -3
  894. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/index.mjs +0 -84
  895. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/package.json +0 -14
  896. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +0 -472
  897. package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +0 -6672
  898. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +0 -1997
  899. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +0 -1300
  900. package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +0 -249
  901. package/dist/extensions/pi-subagents/test/integration/doctor-executor.test.ts +0 -128
  902. package/dist/extensions/pi-subagents/test/integration/error-handling.test.ts +0 -281
  903. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +0 -167
  904. package/dist/extensions/pi-subagents/test/integration/foreground-result-size.test.ts +0 -188
  905. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +0 -1352
  906. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +0 -1947
  907. package/dist/extensions/pi-subagents/test/integration/orca-progress-tabs.test.ts +0 -214
  908. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +0 -1408
  909. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +0 -2091
  910. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +0 -2442
  911. package/dist/extensions/pi-subagents/test/integration/session-tokens.test.ts +0 -62
  912. package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +0 -9007
  913. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +0 -1516
  914. package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +0 -166
  915. package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +0 -344
  916. package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +0 -43
  917. package/dist/extensions/pi-subagents/test/support/cursor-smoke-inputs.ts +0 -51
  918. package/dist/extensions/pi-subagents/test/support/helpers.ts +0 -225
  919. package/dist/extensions/pi-subagents/test/support/isolated-temp-root.mjs +0 -9
  920. package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +0 -432
  921. package/dist/extensions/pi-subagents/test/support/mock-pi.ts +0 -159
  922. package/dist/extensions/pi-subagents/test/support/node-command.ts +0 -15
  923. package/dist/extensions/pi-subagents/test/support/real-session-child-cli.mjs +0 -185
  924. package/dist/extensions/pi-subagents/test/support/real-session-runner.ts +0 -311
  925. package/dist/extensions/pi-subagents/test/support/register-loader.mjs +0 -16
  926. package/dist/extensions/pi-subagents/test/support/session-lease-child.mjs +0 -42
  927. package/dist/extensions/pi-subagents/test/support/ts-loader.mjs +0 -100
  928. package/dist/extensions/pi-subagents/test/unit/abort-recovery.test.ts +0 -152
  929. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +0 -1475
  930. package/dist/extensions/pi-subagents/test/unit/accessible-dir.test.ts +0 -82
  931. package/dist/extensions/pi-subagents/test/unit/active-async-capacity.test.ts +0 -415
  932. package/dist/extensions/pi-subagents/test/unit/agent-contract.test.ts +0 -14
  933. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +0 -213
  934. package/dist/extensions/pi-subagents/test/unit/agent-discovery-cache.test.ts +0 -232
  935. package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +0 -343
  936. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +0 -2304
  937. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +0 -1195
  938. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +0 -420
  939. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +0 -1153
  940. package/dist/extensions/pi-subagents/test/unit/agent-refinements.test.ts +0 -178
  941. package/dist/extensions/pi-subagents/test/unit/agent-scope.test.ts +0 -20
  942. package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +0 -88
  943. package/dist/extensions/pi-subagents/test/unit/agent-stream-options.test.ts +0 -14
  944. package/dist/extensions/pi-subagents/test/unit/anti-slop-oxlint.test.ts +0 -98
  945. package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +0 -78
  946. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +0 -254
  947. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +0 -1022
  948. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +0 -100
  949. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +0 -188
  950. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +0 -976
  951. package/dist/extensions/pi-subagents/test/unit/async-retention.test.ts +0 -632
  952. package/dist/extensions/pi-subagents/test/unit/async-status-projection.test.ts +0 -246
  953. package/dist/extensions/pi-subagents/test/unit/async-status-snapshot.test.ts +0 -204
  954. package/dist/extensions/pi-subagents/test/unit/atomic-json.test.ts +0 -176
  955. package/dist/extensions/pi-subagents/test/unit/authority-policy.test.ts +0 -22
  956. package/dist/extensions/pi-subagents/test/unit/auto-drain.test.ts +0 -83
  957. package/dist/extensions/pi-subagents/test/unit/background-process-options.test.ts +0 -17
  958. package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +0 -365
  959. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +0 -102
  960. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-pi-args.test.ts +0 -84
  961. package/dist/extensions/pi-subagents/test/unit/capability-ceiling.test.ts +0 -68
  962. package/dist/extensions/pi-subagents/test/unit/capacity-resilient-json.test.ts +0 -155
  963. package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +0 -283
  964. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +0 -236
  965. package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +0 -229
  966. package/dist/extensions/pi-subagents/test/unit/child-launch-plan.test.ts +0 -94
  967. package/dist/extensions/pi-subagents/test/unit/child-protocol.test.ts +0 -202
  968. package/dist/extensions/pi-subagents/test/unit/child-session-name.test.ts +0 -50
  969. package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +0 -267
  970. package/dist/extensions/pi-subagents/test/unit/close-grace-timer.test.ts +0 -101
  971. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +0 -98
  972. package/dist/extensions/pi-subagents/test/unit/completion-batcher.test.ts +0 -230
  973. package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +0 -35
  974. package/dist/extensions/pi-subagents/test/unit/completion-evidence.test.ts +0 -150
  975. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +0 -715
  976. package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +0 -305
  977. package/dist/extensions/pi-subagents/test/unit/config-dir-runtime.test.ts +0 -107
  978. package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +0 -630
  979. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +0 -110
  980. package/dist/extensions/pi-subagents/test/unit/cursor-smoke-inputs.test.ts +0 -77
  981. package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +0 -219
  982. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +0 -588
  983. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +0 -201
  984. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +0 -219
  985. package/dist/extensions/pi-subagents/test/unit/ensure-accessible-dir.test.ts +0 -125
  986. package/dist/extensions/pi-subagents/test/unit/extension-bindings.test.ts +0 -79
  987. package/dist/extensions/pi-subagents/test/unit/extension-context.test.ts +0 -27
  988. package/dist/extensions/pi-subagents/test/unit/external-cli-runner.test.ts +0 -339
  989. package/dist/extensions/pi-subagents/test/unit/external-job-runner.test.ts +0 -961
  990. package/dist/extensions/pi-subagents/test/unit/external-runs.test.ts +0 -261
  991. package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +0 -88
  992. package/dist/extensions/pi-subagents/test/unit/fast-mode-extension.test.ts +0 -27
  993. package/dist/extensions/pi-subagents/test/unit/file-coalescer.test.ts +0 -83
  994. package/dist/extensions/pi-subagents/test/unit/file-system-retry.test.ts +0 -64
  995. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +0 -1356
  996. package/dist/extensions/pi-subagents/test/unit/fleet-transcript.test.ts +0 -435
  997. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +0 -1773
  998. package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +0 -125
  999. package/dist/extensions/pi-subagents/test/unit/foreground-tool-call-compaction.test.ts +0 -115
  1000. package/dist/extensions/pi-subagents/test/unit/fork-cache-key.test.ts +0 -91
  1001. package/dist/extensions/pi-subagents/test/unit/fork-context.test.ts +0 -588
  1002. package/dist/extensions/pi-subagents/test/unit/formatters.test.ts +0 -14
  1003. package/dist/extensions/pi-subagents/test/unit/get-final-output.test.ts +0 -149
  1004. package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +0 -101
  1005. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +0 -458
  1006. package/dist/extensions/pi-subagents/test/unit/herdr-session-roots-codec.test.ts +0 -63
  1007. package/dist/extensions/pi-subagents/test/unit/herdr-shell-command.test.ts +0 -59
  1008. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +0 -716
  1009. package/dist/extensions/pi-subagents/test/unit/host-command.test.ts +0 -157
  1010. package/dist/extensions/pi-subagents/test/unit/host-peer-runtime-imports.test.ts +0 -157
  1011. package/dist/extensions/pi-subagents/test/unit/host-step-status.test.ts +0 -98
  1012. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +0 -1311
  1013. package/dist/extensions/pi-subagents/test/unit/index-segment.test.ts +0 -96
  1014. package/dist/extensions/pi-subagents/test/unit/inspect-rpc.test.ts +0 -617
  1015. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +0 -220
  1016. package/dist/extensions/pi-subagents/test/unit/jsonl-writer.test.ts +0 -119
  1017. package/dist/extensions/pi-subagents/test/unit/llm-intent-arbiter.test.ts +0 -226
  1018. package/dist/extensions/pi-subagents/test/unit/mcp-direct-tool-grant.test.ts +0 -155
  1019. package/dist/extensions/pi-subagents/test/unit/mission-goal-driver.test.ts +0 -180
  1020. package/dist/extensions/pi-subagents/test/unit/mission-lifecycle.test.ts +0 -300
  1021. package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +0 -470
  1022. package/dist/extensions/pi-subagents/test/unit/mock-pi.test.ts +0 -22
  1023. package/dist/extensions/pi-subagents/test/unit/model-exclusions.test.ts +0 -258
  1024. package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +0 -903
  1025. package/dist/extensions/pi-subagents/test/unit/model-info.test.ts +0 -162
  1026. package/dist/extensions/pi-subagents/test/unit/model-scope-settings.test.ts +0 -101
  1027. package/dist/extensions/pi-subagents/test/unit/model-scope.test.ts +0 -198
  1028. package/dist/extensions/pi-subagents/test/unit/mutation-evidence.test.ts +0 -177
  1029. package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +0 -796
  1030. package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +0 -655
  1031. package/dist/extensions/pi-subagents/test/unit/nested-events.test.ts +0 -492
  1032. package/dist/extensions/pi-subagents/test/unit/node-executable.test.ts +0 -26
  1033. package/dist/extensions/pi-subagents/test/unit/notify.test.ts +0 -751
  1034. package/dist/extensions/pi-subagents/test/unit/orca-progress-tabs.test.ts +0 -545
  1035. package/dist/extensions/pi-subagents/test/unit/owned-process-tree.test.ts +0 -69
  1036. package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +0 -241
  1037. package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +0 -563
  1038. package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +0 -269
  1039. package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +0 -108
  1040. package/dist/extensions/pi-subagents/test/unit/path-resolution.test.ts +0 -103
  1041. package/dist/extensions/pi-subagents/test/unit/permissions.test.ts +0 -46
  1042. package/dist/extensions/pi-subagents/test/unit/pi-args-permission-system.test.ts +0 -437
  1043. package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +0 -2241
  1044. package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +0 -461
  1045. package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +0 -375
  1046. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +0 -958
  1047. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +0 -118
  1048. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +0 -257
  1049. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +0 -372
  1050. package/dist/extensions/pi-subagents/test/unit/project-panes-public-api.test.ts +0 -285
  1051. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +0 -244
  1052. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +0 -167
  1053. package/dist/extensions/pi-subagents/test/unit/pruned-fork.test.ts +0 -214
  1054. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +0 -182
  1055. package/dist/extensions/pi-subagents/test/unit/reads-resolution.test.ts +0 -66
  1056. package/dist/extensions/pi-subagents/test/unit/recursion-guard.test.ts +0 -265
  1057. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +0 -560
  1058. package/dist/extensions/pi-subagents/test/unit/result-delivery-ownership.test.ts +0 -34
  1059. package/dist/extensions/pi-subagents/test/unit/result-files.test.ts +0 -501
  1060. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +0 -258
  1061. package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +0 -191
  1062. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +0 -1124
  1063. package/dist/extensions/pi-subagents/test/unit/run-fanout-budget.test.ts +0 -191
  1064. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +0 -247
  1065. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +0 -1477
  1066. package/dist/extensions/pi-subagents/test/unit/runtime-acknowledged-extensions.test.ts +0 -52
  1067. package/dist/extensions/pi-subagents/test/unit/runtime-agent-registration.test.ts +0 -332
  1068. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +0 -816
  1069. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +0 -67
  1070. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +0 -655
  1071. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +0 -2501
  1072. package/dist/extensions/pi-subagents/test/unit/selector.test.ts +0 -57
  1073. package/dist/extensions/pi-subagents/test/unit/session-lease.test.ts +0 -339
  1074. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +0 -361
  1075. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +0 -709
  1076. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +0 -115
  1077. package/dist/extensions/pi-subagents/test/unit/spawn-budget.test.ts +0 -124
  1078. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +0 -440
  1079. package/dist/extensions/pi-subagents/test/unit/status-format.test.ts +0 -26
  1080. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +0 -435
  1081. package/dist/extensions/pi-subagents/test/unit/steering-notices.test.ts +0 -58
  1082. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +0 -211
  1083. package/dist/extensions/pi-subagents/test/unit/streamed-progress-bounds.test.ts +0 -78
  1084. package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +0 -85
  1085. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +0 -329
  1086. package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +0 -37
  1087. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +0 -1510
  1088. package/dist/extensions/pi-subagents/test/unit/subagent-startup-retry.test.ts +0 -104
  1089. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +0 -1367
  1090. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +0 -126
  1091. package/dist/extensions/pi-subagents/test/unit/temp-paths.test.ts +0 -97
  1092. package/dist/extensions/pi-subagents/test/unit/thinking-ceiling.test.ts +0 -73
  1093. package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +0 -138
  1094. package/dist/extensions/pi-subagents/test/unit/tool-budget.test.ts +0 -67
  1095. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +0 -309
  1096. package/dist/extensions/pi-subagents/test/unit/tool-timeout.test.ts +0 -108
  1097. package/dist/extensions/pi-subagents/test/unit/total-cost.test.ts +0 -61
  1098. package/dist/extensions/pi-subagents/test/unit/ts-loader.test.ts +0 -33
  1099. package/dist/extensions/pi-subagents/test/unit/types-fork-preamble.test.ts +0 -23
  1100. package/dist/extensions/pi-subagents/test/unit/wait-completions.test.ts +0 -76
  1101. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +0 -664
  1102. package/dist/extensions/pi-subagents/test/unit/watch-strategy.test.ts +0 -24
  1103. package/dist/extensions/pi-subagents/test/unit/watchdog-change-signature.test.ts +0 -434
  1104. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +0 -110
  1105. package/dist/extensions/pi-subagents/test/unit/watchdog-emission-guard.test.ts +0 -62
  1106. package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +0 -144
  1107. package/dist/extensions/pi-subagents/test/unit/watchdog-model-selection.test.ts +0 -121
  1108. package/dist/extensions/pi-subagents/test/unit/watchdog-permission-arbiter.test.ts +0 -115
  1109. package/dist/extensions/pi-subagents/test/unit/watchdog-render.test.ts +0 -76
  1110. package/dist/extensions/pi-subagents/test/unit/watchdog-review.test.ts +0 -327
  1111. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +0 -1072
  1112. package/dist/extensions/pi-subagents/test/unit/watchdog-scope.test.ts +0 -33
  1113. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +0 -322
  1114. package/dist/extensions/pi-subagents/test/unit/watchdog-tool-actions.test.ts +0 -91
  1115. package/dist/extensions/pi-subagents/test/unit/watchdog-turn-delta.test.ts +0 -130
  1116. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +0 -171
  1117. package/dist/extensions/pi-subagents/test/unit/windows-hide-spawn.test.ts +0 -49
  1118. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +0 -551
  1119. package/dist/extensions/pi-subagents/test/unit/workflow-detach-reconcile.test.ts +0 -777
  1120. package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +0 -134
  1121. package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +0 -358
  1122. package/dist/extensions/pi-subagents/test/unit/workflow-preflight.test.ts +0 -155
  1123. package/dist/extensions/pi-subagents/test/unit/workflow-receipt.test.ts +0 -461
  1124. package/dist/extensions/pi-subagents/test/unit/workflow-resources.test.ts +0 -98
  1125. package/dist/extensions/pi-subagents/test/unit/workflow-resume-hint.test.ts +0 -365
  1126. package/dist/extensions/pi-subagents/test/unit/worktree-cleanup-plan.test.ts +0 -349
  1127. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +0 -695
  1128. package/dist/extensions/pi-subagents/test/unit/writer-budget-guidance.test.ts +0 -25
  1129. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/effect/index.ts +0 -13
  1130. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/effect/rules/no-service-constructor-imports.ts +0 -52
  1131. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/index.ts +0 -41
  1132. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-chained-type-assertions.ts +0 -77
  1133. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-conditional-empty-object-spread.ts +0 -49
  1134. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-known-value-widening.ts +0 -247
  1135. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-module-mocking.ts +0 -91
  1136. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-object-parameters.ts +0 -126
  1137. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-reflect-apply.ts +0 -28
  1138. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-reflect-get.ts +0 -28
  1139. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-runtime-typeof.ts +0 -67
  1140. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts +0 -39
  1141. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-parameters.ts +0 -83
  1142. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-returns.ts +0 -115
  1143. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unknown-type-aliases.ts +0 -72
  1144. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts +0 -134
  1145. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/no-widen-then-assert.ts +0 -366
  1146. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/rules/require-safety-comment-for-type-assertion.ts +0 -62
  1147. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/dictionary-types.ts +0 -502
  1148. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/lexical-type-parameters.ts +0 -60
  1149. package/dist/extensions/pi-subagents/tools/oxlint/anti-slop/shared/reflect-method.ts +0 -35
  1150. package/dist/extensions/pi-subagents/tsconfig.json +0 -15
  1151. package/dist/extensions/pi-tool-display/CHANGELOG.md +0 -329
  1152. package/dist/extensions/pi-tool-display/LICENSE +0 -21
  1153. package/dist/extensions/pi-tool-display/README.md +0 -417
  1154. package/dist/extensions/pi-tool-display/config/config.example.json +0 -40
  1155. package/dist/extensions/pi-tool-display/index.ts +0 -3
  1156. package/dist/extensions/pi-tool-display/package-lock.json +0 -2555
  1157. package/dist/extensions/pi-tool-display/package.json +0 -86
  1158. package/dist/extensions/pi-tool-display/src/agent-dir.ts +0 -35
  1159. package/dist/extensions/pi-tool-display/src/ansi-utils.ts +0 -116
  1160. package/dist/extensions/pi-tool-display/src/bash-display.ts +0 -213
  1161. package/dist/extensions/pi-tool-display/src/capabilities.ts +0 -88
  1162. package/dist/extensions/pi-tool-display/src/config-modal.ts +0 -541
  1163. package/dist/extensions/pi-tool-display/src/config-store.ts +0 -304
  1164. package/dist/extensions/pi-tool-display/src/debug-logger.ts +0 -150
  1165. package/dist/extensions/pi-tool-display/src/diff-presentation.ts +0 -72
  1166. package/dist/extensions/pi-tool-display/src/diff-renderer.ts +0 -2517
  1167. package/dist/extensions/pi-tool-display/src/disposable.ts +0 -34
  1168. package/dist/extensions/pi-tool-display/src/extension-lifecycle.ts +0 -14
  1169. package/dist/extensions/pi-tool-display/src/index.ts +0 -109
  1170. package/dist/extensions/pi-tool-display/src/line-width-safety.ts +0 -93
  1171. package/dist/extensions/pi-tool-display/src/modal-icons.ts +0 -57
  1172. package/dist/extensions/pi-tool-display/src/pending-diff-preview.ts +0 -370
  1173. package/dist/extensions/pi-tool-display/src/presets.ts +0 -117
  1174. package/dist/extensions/pi-tool-display/src/render-utils.ts +0 -186
  1175. package/dist/extensions/pi-tool-display/src/settings-inspector-modal.ts +0 -475
  1176. package/dist/extensions/pi-tool-display/src/thinking-label.ts +0 -343
  1177. package/dist/extensions/pi-tool-display/src/tool-call-box.ts +0 -181
  1178. package/dist/extensions/pi-tool-display/src/tool-metadata.ts +0 -139
  1179. package/dist/extensions/pi-tool-display/src/tool-overrides.ts +0 -2168
  1180. package/dist/extensions/pi-tool-display/src/types.ts +0 -109
  1181. package/dist/extensions/pi-tool-display/src/user-message-box-markdown.ts +0 -64
  1182. package/dist/extensions/pi-tool-display/src/user-message-box-native.ts +0 -66
  1183. package/dist/extensions/pi-tool-display/src/user-message-box-patch.ts +0 -72
  1184. package/dist/extensions/pi-tool-display/src/user-message-box-renderer.ts +0 -419
  1185. package/dist/extensions/pi-tool-display/src/user-message-box-utils.ts +0 -106
  1186. package/dist/extensions/pi-tool-display/src/write-display-utils.ts +0 -31
  1187. package/dist/extensions/pi-tool-display/src/zellij-modal.ts +0 -1027
  1188. package/dist/extensions/pi-tool-display/tests/active-backlog-red.test.ts +0 -65
  1189. package/dist/extensions/pi-tool-display/tests/ansi-utils.test.ts +0 -345
  1190. package/dist/extensions/pi-tool-display/tests/bash-display.test.ts +0 -442
  1191. package/dist/extensions/pi-tool-display/tests/capabilities-edge.test.ts +0 -360
  1192. package/dist/extensions/pi-tool-display/tests/capabilities.test.ts +0 -54
  1193. package/dist/extensions/pi-tool-display/tests/config-modal.test.ts +0 -360
  1194. package/dist/extensions/pi-tool-display/tests/config-store.test.ts +0 -87
  1195. package/dist/extensions/pi-tool-display/tests/custom-tool-overrides.test.ts +0 -415
  1196. package/dist/extensions/pi-tool-display/tests/debug-logger-edge.test.ts +0 -630
  1197. package/dist/extensions/pi-tool-display/tests/debug-logger.test.ts +0 -62
  1198. package/dist/extensions/pi-tool-display/tests/diff-renderer-ansi.test.ts +0 -55
  1199. package/dist/extensions/pi-tool-display/tests/diff-renderer-edge.test.ts +0 -886
  1200. package/dist/extensions/pi-tool-display/tests/diff-renderer-numbering.test.ts +0 -135
  1201. package/dist/extensions/pi-tool-display/tests/diff-renderer-width.test.ts +0 -454
  1202. package/dist/extensions/pi-tool-display/tests/diff-renderer-wrap.test.ts +0 -169
  1203. package/dist/extensions/pi-tool-display/tests/index-integration.test.ts +0 -354
  1204. package/dist/extensions/pi-tool-display/tests/pending-diff-preview.test.ts +0 -79
  1205. package/dist/extensions/pi-tool-display/tests/presets-edge.test.ts +0 -229
  1206. package/dist/extensions/pi-tool-display/tests/presets.test.ts +0 -26
  1207. package/dist/extensions/pi-tool-display/tests/reload-behavior.test.ts +0 -1241
  1208. package/dist/extensions/pi-tool-display/tests/render-utils.test.ts +0 -710
  1209. package/dist/extensions/pi-tool-display/tests/settings-inspector.test.ts +0 -450
  1210. package/dist/extensions/pi-tool-display/tests/thinking-label-edge.test.ts +0 -904
  1211. package/dist/extensions/pi-tool-display/tests/thinking-label.test.ts +0 -72
  1212. package/dist/extensions/pi-tool-display/tests/tool-call-box.test.ts +0 -105
  1213. package/dist/extensions/pi-tool-display/tests/tool-overrides-config.test.ts +0 -613
  1214. package/dist/extensions/pi-tool-display/tests/tool-overrides-mcp.test.ts +0 -499
  1215. package/dist/extensions/pi-tool-display/tests/tool-overrides-registration.test.ts +0 -315
  1216. package/dist/extensions/pi-tool-display/tests/tool-overrides-write-meta.test.ts +0 -68
  1217. package/dist/extensions/pi-tool-display/tests/tool-ui-utils.test.ts +0 -413
  1218. package/dist/extensions/pi-tool-display/tests/user-message-box-performance-red.test.ts +0 -176
  1219. package/dist/extensions/pi-tool-display/tests/user-message-box.test.ts +0 -908
  1220. package/dist/extensions/pi-tool-display/tests/zellij-modal.test.ts +0 -848
  1221. package/dist/extensions/pi-tool-display/tool-display-api-consumer.d.ts +0 -30
  1222. package/dist/extensions/pi-tool-display/tool-display-api-consumer.js +0 -40
  1223. package/dist/extensions/pi-web-agent/CHANGELOG.md +0 -410
  1224. package/dist/extensions/pi-web-agent/README.md +0 -131
  1225. package/dist/extensions/pi-web-agent/package.json +0 -33
  1226. package/dist/extensions/pi-web-agent/src/backends/config.ts +0 -264
  1227. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +0 -272
  1228. package/dist/extensions/pi-web-agent/src/backends/factory.ts +0 -253
  1229. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +0 -46
  1230. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +0 -28
  1231. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +0 -136
  1232. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +0 -1082
  1233. package/dist/extensions/pi-web-agent/src/extension.ts +0 -163
  1234. package/dist/extensions/pi-web-agent/src/extract/readability.ts +0 -126
  1235. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +0 -199
  1236. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +0 -100
  1237. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +0 -117
  1238. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +0 -67
  1239. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +0 -60
  1240. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +0 -51
  1241. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +0 -29
  1242. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +0 -108
  1243. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +0 -47
  1244. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +0 -28
  1245. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +0 -47
  1246. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +0 -441
  1247. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +0 -71
  1248. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +0 -206
  1249. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +0 -105
  1250. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +0 -81
  1251. package/dist/extensions/pi-web-agent/src/orchestration/url.ts +0 -35
  1252. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +0 -210
  1253. package/dist/extensions/pi-web-agent/src/presentation/config.ts +0 -75
  1254. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +0 -73
  1255. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +0 -54
  1256. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +0 -53
  1257. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +0 -20
  1258. package/dist/extensions/pi-web-agent/src/presentation/types.ts +0 -63
  1259. package/dist/extensions/pi-web-agent/src/readers/github-reader.ts +0 -150
  1260. package/dist/extensions/pi-web-agent/src/readers/limits.ts +0 -3
  1261. package/dist/extensions/pi-web-agent/src/readers/pdf-reader.ts +0 -87
  1262. package/dist/extensions/pi-web-agent/src/readers/resolver.ts +0 -25
  1263. package/dist/extensions/pi-web-agent/src/readers/types.ts +0 -11
  1264. package/dist/extensions/pi-web-agent/src/readers/youtube-reader.ts +0 -79
  1265. package/dist/extensions/pi-web-agent/src/search/brave.ts +0 -114
  1266. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +0 -99
  1267. package/dist/extensions/pi-web-agent/src/search/exa.ts +0 -109
  1268. package/dist/extensions/pi-web-agent/src/search/fanout.ts +0 -154
  1269. package/dist/extensions/pi-web-agent/src/search/searxng.ts +0 -96
  1270. package/dist/extensions/pi-web-agent/src/search/tavily.ts +0 -113
  1271. package/dist/extensions/pi-web-agent/src/search/tokenin.ts +0 -130
  1272. package/dist/extensions/pi-web-agent/src/search/youcom.ts +0 -109
  1273. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +0 -71
  1274. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +0 -31
  1275. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +0 -31
  1276. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +0 -170
  1277. package/dist/extensions/pi-web-agent/src/types.ts +0 -103
  1278. package/dist/extensions/pi-zentui/.editorconfig +0 -12
  1279. package/dist/extensions/pi-zentui/.github/CODEOWNERS +0 -1
  1280. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/bug_report.yml +0 -110
  1281. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/config.yml +0 -8
  1282. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/config_question.yml +0 -56
  1283. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/feature_request.yml +0 -63
  1284. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/rendering_issue.yml +0 -106
  1285. package/dist/extensions/pi-zentui/.github/ISSUE_TEMPLATE/runtime_detection.yml +0 -103
  1286. package/dist/extensions/pi-zentui/.github/dependabot.yml +0 -47
  1287. package/dist/extensions/pi-zentui/.github/pull_request_template.md +0 -34
  1288. package/dist/extensions/pi-zentui/.github/release.yml +0 -18
  1289. package/dist/extensions/pi-zentui/.github/workflows/ci.yml +0 -79
  1290. package/dist/extensions/pi-zentui/.github/workflows/publish.yml +0 -63
  1291. package/dist/extensions/pi-zentui/AGENTS.md +0 -107
  1292. package/dist/extensions/pi-zentui/CONTRIBUTING.md +0 -68
  1293. package/dist/extensions/pi-zentui/LICENSE +0 -21
  1294. package/dist/extensions/pi-zentui/README.md +0 -188
  1295. package/dist/extensions/pi-zentui/SECURITY.md +0 -18
  1296. package/dist/extensions/pi-zentui/assets/main-cover.png +0 -0
  1297. package/dist/extensions/pi-zentui/assets/screenshots/editor-accent-rail.png +0 -0
  1298. package/dist/extensions/pi-zentui/assets/screenshots/editor-minimalist.png +0 -0
  1299. package/dist/extensions/pi-zentui/assets/screenshots/editor-opencode-copy-friendly.png +0 -0
  1300. package/dist/extensions/pi-zentui/assets/screenshots/editor-opencode.png +0 -0
  1301. package/dist/extensions/pi-zentui/assets/screenshots/user-message-compact.png +0 -0
  1302. package/dist/extensions/pi-zentui/assets/screenshots/user-message-framed-copy-friendly.png +0 -0
  1303. package/dist/extensions/pi-zentui/assets/screenshots/user-message-framed.png +0 -0
  1304. package/dist/extensions/pi-zentui/assets/screenshots/user-message-labeled.png +0 -0
  1305. package/dist/extensions/pi-zentui/assets/zentui.png +0 -0
  1306. package/dist/extensions/pi-zentui/biome.json +0 -31
  1307. package/dist/extensions/pi-zentui/docs/configuration.md +0 -509
  1308. package/dist/extensions/pi-zentui/docs/footer-format.md +0 -162
  1309. package/dist/extensions/pi-zentui/extensions/zentui/accent-rail-editor.ts +0 -99
  1310. package/dist/extensions/pi-zentui/extensions/zentui/accent-rail-layout-patch.ts +0 -457
  1311. package/dist/extensions/pi-zentui/extensions/zentui/completion-menu.ts +0 -157
  1312. package/dist/extensions/pi-zentui/extensions/zentui/config.ts +0 -2100
  1313. package/dist/extensions/pi-zentui/extensions/zentui/editor-metadata-format.ts +0 -321
  1314. package/dist/extensions/pi-zentui/extensions/zentui/editor-transfer.ts +0 -73
  1315. package/dist/extensions/pi-zentui/extensions/zentui/extension-status.ts +0 -89
  1316. package/dist/extensions/pi-zentui/extensions/zentui/footer-format.ts +0 -364
  1317. package/dist/extensions/pi-zentui/extensions/zentui/footer-layout.ts +0 -122
  1318. package/dist/extensions/pi-zentui/extensions/zentui/footer.ts +0 -812
  1319. package/dist/extensions/pi-zentui/extensions/zentui/format.ts +0 -620
  1320. package/dist/extensions/pi-zentui/extensions/zentui/git.ts +0 -384
  1321. package/dist/extensions/pi-zentui/extensions/zentui/icons.ts +0 -252
  1322. package/dist/extensions/pi-zentui/extensions/zentui/index.ts +0 -1416
  1323. package/dist/extensions/pi-zentui/extensions/zentui/interaction-summary.ts +0 -1049
  1324. package/dist/extensions/pi-zentui/extensions/zentui/live-context.ts +0 -75
  1325. package/dist/extensions/pi-zentui/extensions/zentui/minimalist-editor.ts +0 -463
  1326. package/dist/extensions/pi-zentui/extensions/zentui/package-version.ts +0 -651
  1327. package/dist/extensions/pi-zentui/extensions/zentui/project-refresh.ts +0 -120
  1328. package/dist/extensions/pi-zentui/extensions/zentui/project-state.ts +0 -59
  1329. package/dist/extensions/pi-zentui/extensions/zentui/prototype-patch-registry.ts +0 -166
  1330. package/dist/extensions/pi-zentui/extensions/zentui/repository-root.ts +0 -98
  1331. package/dist/extensions/pi-zentui/extensions/zentui/runtime.ts +0 -841
  1332. package/dist/extensions/pi-zentui/extensions/zentui/selector-border.ts +0 -93
  1333. package/dist/extensions/pi-zentui/extensions/zentui/session-lifecycle.ts +0 -60
  1334. package/dist/extensions/pi-zentui/extensions/zentui/settings-command.ts +0 -1796
  1335. package/dist/extensions/pi-zentui/extensions/zentui/settings-previews.ts +0 -128
  1336. package/dist/extensions/pi-zentui/extensions/zentui/state.ts +0 -94
  1337. package/dist/extensions/pi-zentui/extensions/zentui/style.ts +0 -424
  1338. package/dist/extensions/pi-zentui/extensions/zentui/telemetry.ts +0 -82
  1339. package/dist/extensions/pi-zentui/extensions/zentui/ui.ts +0 -1290
  1340. package/dist/extensions/pi-zentui/extensions/zentui/user-message-osc.ts +0 -248
  1341. package/dist/extensions/pi-zentui/extensions/zentui/user-message-styles.ts +0 -215
  1342. package/dist/extensions/pi-zentui/extensions/zentui/user-message.ts +0 -206
  1343. package/dist/extensions/pi-zentui/extensions/zentui/working-line-messages.ts +0 -24
  1344. package/dist/extensions/pi-zentui/extensions/zentui/working-line-spinners.ts +0 -54
  1345. package/dist/extensions/pi-zentui/extensions/zentui/working-line.ts +0 -1433
  1346. package/dist/extensions/pi-zentui/package-lock.json +0 -5311
  1347. package/dist/extensions/pi-zentui/package.json +0 -60
  1348. package/dist/extensions/pi-zentui/test/accent-rail-editor.test.ts +0 -232
  1349. package/dist/extensions/pi-zentui/test/accent-rail-layout-patch.test.ts +0 -669
  1350. package/dist/extensions/pi-zentui/test/completion-menu.test.ts +0 -265
  1351. package/dist/extensions/pi-zentui/test/config.test.ts +0 -3119
  1352. package/dist/extensions/pi-zentui/test/editor-metadata-format.test.ts +0 -405
  1353. package/dist/extensions/pi-zentui/test/editor-transfer.test.ts +0 -260
  1354. package/dist/extensions/pi-zentui/test/editor-viewport-indicators.test.ts +0 -1286
  1355. package/dist/extensions/pi-zentui/test/extension-compliance.test.ts +0 -7196
  1356. package/dist/extensions/pi-zentui/test/extension-status.test.ts +0 -182
  1357. package/dist/extensions/pi-zentui/test/fixtures/starship-nerd-font-symbols.toml +0 -172
  1358. package/dist/extensions/pi-zentui/test/footer-format.test.ts +0 -431
  1359. package/dist/extensions/pi-zentui/test/footer-layout.test.ts +0 -113
  1360. package/dist/extensions/pi-zentui/test/footer-repository-path.test.ts +0 -123
  1361. package/dist/extensions/pi-zentui/test/format.test.ts +0 -927
  1362. package/dist/extensions/pi-zentui/test/git.test.ts +0 -212
  1363. package/dist/extensions/pi-zentui/test/icons.test.ts +0 -69
  1364. package/dist/extensions/pi-zentui/test/interaction-summary.test.ts +0 -1402
  1365. package/dist/extensions/pi-zentui/test/live-context-integration.test.ts +0 -378
  1366. package/dist/extensions/pi-zentui/test/live-context.test.ts +0 -139
  1367. package/dist/extensions/pi-zentui/test/minimalist-editor.test.ts +0 -811
  1368. package/dist/extensions/pi-zentui/test/package-version.test.ts +0 -321
  1369. package/dist/extensions/pi-zentui/test/project-refresh.test.ts +0 -250
  1370. package/dist/extensions/pi-zentui/test/project-state.test.ts +0 -159
  1371. package/dist/extensions/pi-zentui/test/repository-root.test.ts +0 -108
  1372. package/dist/extensions/pi-zentui/test/responsive-dependencies.test.ts +0 -825
  1373. package/dist/extensions/pi-zentui/test/runtime.test.ts +0 -183
  1374. package/dist/extensions/pi-zentui/test/session-lifecycle.test.ts +0 -40
  1375. package/dist/extensions/pi-zentui/test/settings-command.test.ts +0 -1381
  1376. package/dist/extensions/pi-zentui/test/settings-previews.test.ts +0 -347
  1377. package/dist/extensions/pi-zentui/test/state.test.ts +0 -84
  1378. package/dist/extensions/pi-zentui/test/telemetry-lifecycle-integration.test.ts +0 -276
  1379. package/dist/extensions/pi-zentui/test/telemetry.test.ts +0 -105
  1380. package/dist/extensions/pi-zentui/test/turn-summary-lifecycle.integration.test.ts +0 -327
  1381. package/dist/extensions/pi-zentui/test/user-message-osc.test.ts +0 -164
  1382. package/dist/extensions/pi-zentui/test/user-message-styles.test.ts +0 -292
  1383. package/dist/extensions/pi-zentui/test/working-line-lifecycle.integration.test.ts +0 -730
  1384. package/dist/extensions/pi-zentui/test/working-line-messages.test.ts +0 -34
  1385. package/dist/extensions/pi-zentui/test/working-line.test.ts +0 -1990
  1386. package/dist/extensions/pi-zentui/tsconfig.json +0 -16
  1387. package/dist/extensions/ponytail/index.js +0 -176
  1388. package/dist/extensions/ponytail/package.json +0 -8
  1389. package/dist/extensions/ponytail/ponytail-config.cjs +0 -151
  1390. package/dist/extensions/ponytail/ponytail-instructions.cjs +0 -112
  1391. package/dist/extensions/ponytail/test/extension.test.js +0 -299
  1392. package/dist/extensions/ponytail/test/helpers.test.js +0 -312
  1393. package/dist/extensions/question/batch.ts +0 -103
  1394. package/dist/extensions/question/constants.ts +0 -31
  1395. package/dist/extensions/question/helpers.ts +0 -58
  1396. package/dist/extensions/question/index.ts +0 -688
  1397. package/dist/extensions/question/navigation.ts +0 -14
  1398. package/dist/extensions/question/package.json +0 -19
  1399. package/dist/extensions/question/question-list.ts +0 -533
  1400. package/dist/extensions/question/row-layout.ts +0 -165
  1401. package/dist/extensions/question/schemas.ts +0 -43
  1402. package/dist/extensions/question/selection-mode.ts +0 -47
  1403. package/dist/extensions/question/shortcuts.ts +0 -44
  1404. package/dist/extensions/question/tests/batch.test.ts +0 -113
  1405. package/dist/extensions/question/tests/exp.test.ts +0 -70
  1406. package/dist/extensions/question/tests/exp2.test.ts +0 -59
  1407. package/dist/extensions/question/tests/exp3.test.ts +0 -47
  1408. package/dist/extensions/question/tests/helpers.test.ts +0 -93
  1409. package/dist/extensions/question/tests/question-list.test.ts +0 -694
  1410. package/dist/extensions/question/tests/row-layout.test.ts +0 -215
  1411. package/dist/extensions/question/tests/schemas.test.ts +0 -53
  1412. package/dist/extensions/question/tests/selection-mode.test.ts +0 -54
  1413. package/dist/extensions/question/tests/shortcuts.test.ts +0 -107
  1414. package/dist/extensions/question/tests/wizard.test.ts +0 -839
  1415. package/dist/extensions/question/tests/zz-ig3.test.ts +0 -20
  1416. package/dist/extensions/question/tests/zz-probe.test.ts +0 -29
  1417. package/dist/extensions/question/types.ts +0 -132
  1418. package/dist/extensions/rtk.test.ts +0 -320
  1419. package/dist/extensions/rtk.ts +0 -123
  1420. package/dist/extensions/test-resolve-hook-impl.mjs +0 -7
  1421. package/dist/extensions/test-resolve-hook.mjs +0 -7
  1422. package/dist/extensions/tokenin-onboarding.ts +0 -883
  1423. package/dist/extensions/tps.test.ts +0 -38
  1424. package/dist/extensions/tps.ts +0 -349
  1425. package/dist/extensions/undo.test.ts +0 -720
  1426. package/dist/extensions/undo.ts +0 -298
  1427. package/dist/extensions/web-agent-onboarding.test.ts +0 -415
  1428. package/dist/extensions/web-agent-onboarding.ts +0 -222
  1429. package/dist/index.d.ts +0 -36
  1430. package/dist/index.js +0 -48
  1431. package/dist/main.d.ts +0 -11
  1432. package/dist/main.js +0 -768
  1433. package/dist/migrations.d.ts +0 -32
  1434. package/dist/migrations.js +0 -280
  1435. package/dist/modes/index.d.ts +0 -8
  1436. package/dist/modes/index.js +0 -7
  1437. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1438. package/dist/modes/interactive/components/armin.d.ts +0 -33
  1439. package/dist/modes/interactive/components/armin.js +0 -332
  1440. package/dist/modes/interactive/components/assistant-message.d.ts +0 -21
  1441. package/dist/modes/interactive/components/assistant-message.js +0 -142
  1442. package/dist/modes/interactive/components/bash-execution.d.ts +0 -33
  1443. package/dist/modes/interactive/components/bash-execution.js +0 -174
  1444. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -15
  1445. package/dist/modes/interactive/components/bordered-loader.js +0 -53
  1446. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -15
  1447. package/dist/modes/interactive/components/branch-summary-message.js +0 -43
  1448. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -15
  1449. package/dist/modes/interactive/components/compaction-summary-message.js +0 -44
  1450. package/dist/modes/interactive/components/config-selector.d.ts +0 -101
  1451. package/dist/modes/interactive/components/config-selector.js +0 -760
  1452. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -13
  1453. package/dist/modes/interactive/components/countdown-timer.js +0 -32
  1454. package/dist/modes/interactive/components/custom-editor.d.ts +0 -20
  1455. package/dist/modes/interactive/components/custom-editor.js +0 -69
  1456. package/dist/modes/interactive/components/custom-entry.d.ts +0 -18
  1457. package/dist/modes/interactive/components/custom-entry.js +0 -51
  1458. package/dist/modes/interactive/components/custom-message.d.ts +0 -21
  1459. package/dist/modes/interactive/components/custom-message.js +0 -86
  1460. package/dist/modes/interactive/components/daxnuts.d.ts +0 -22
  1461. package/dist/modes/interactive/components/daxnuts.js +0 -139
  1462. package/dist/modes/interactive/components/diff.d.ts +0 -11
  1463. package/dist/modes/interactive/components/diff.js +0 -132
  1464. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -14
  1465. package/dist/modes/interactive/components/dynamic-border.js +0 -20
  1466. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -4
  1467. package/dist/modes/interactive/components/earendil-announcement.js +0 -39
  1468. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  1469. package/dist/modes/interactive/components/extension-editor.js +0 -97
  1470. package/dist/modes/interactive/components/extension-input.d.ts +0 -22
  1471. package/dist/modes/interactive/components/extension-input.js +0 -60
  1472. package/dist/modes/interactive/components/extension-selector.d.ts +0 -25
  1473. package/dist/modes/interactive/components/extension-selector.js +0 -82
  1474. package/dist/modes/interactive/components/first-time-setup.d.ts +0 -24
  1475. package/dist/modes/interactive/components/first-time-setup.js +0 -116
  1476. package/dist/modes/interactive/components/footer.d.ts +0 -31
  1477. package/dist/modes/interactive/components/footer.js +0 -221
  1478. package/dist/modes/interactive/components/index.d.ts +0 -33
  1479. package/dist/modes/interactive/components/index.js +0 -34
  1480. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -12
  1481. package/dist/modes/interactive/components/keybinding-hints.js +0 -35
  1482. package/dist/modes/interactive/components/login-dialog.d.ts +0 -51
  1483. package/dist/modes/interactive/components/login-dialog.js +0 -187
  1484. package/dist/modes/interactive/components/model-selector.d.ts +0 -63
  1485. package/dist/modes/interactive/components/model-selector.js +0 -321
  1486. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -32
  1487. package/dist/modes/interactive/components/oauth-selector.js +0 -162
  1488. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -41
  1489. package/dist/modes/interactive/components/scoped-models-selector.js +0 -301
  1490. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -22
  1491. package/dist/modes/interactive/components/session-selector-search.js +0 -154
  1492. package/dist/modes/interactive/components/session-selector.d.ts +0 -94
  1493. package/dist/modes/interactive/components/session-selector.js +0 -866
  1494. package/dist/modes/interactive/components/settings-selector.d.ts +0 -103
  1495. package/dist/modes/interactive/components/settings-selector.js +0 -726
  1496. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -9
  1497. package/dist/modes/interactive/components/show-images-selector.js +0 -38
  1498. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -16
  1499. package/dist/modes/interactive/components/skill-invocation-message.js +0 -46
  1500. package/dist/modes/interactive/components/startup-box.d.ts +0 -38
  1501. package/dist/modes/interactive/components/startup-box.js +0 -90
  1502. package/dist/modes/interactive/components/status-indicator.d.ts +0 -30
  1503. package/dist/modes/interactive/components/status-indicator.js +0 -64
  1504. package/dist/modes/interactive/components/theme-selector.d.ts +0 -10
  1505. package/dist/modes/interactive/components/theme-selector.js +0 -49
  1506. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -10
  1507. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  1508. package/dist/modes/interactive/components/tool-execution.d.ts +0 -62
  1509. package/dist/modes/interactive/components/tool-execution.js +0 -325
  1510. package/dist/modes/interactive/components/tree-selector.d.ts +0 -93
  1511. package/dist/modes/interactive/components/tree-selector.js +0 -1244
  1512. package/dist/modes/interactive/components/trust-selector.d.ts +0 -22
  1513. package/dist/modes/interactive/components/trust-selector.js +0 -90
  1514. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -29
  1515. package/dist/modes/interactive/components/user-message-selector.js +0 -113
  1516. package/dist/modes/interactive/components/user-message.d.ts +0 -13
  1517. package/dist/modes/interactive/components/user-message.js +0 -41
  1518. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -23
  1519. package/dist/modes/interactive/components/visual-truncate.js +0 -32
  1520. package/dist/modes/interactive/external-editor.d.ts +0 -11
  1521. package/dist/modes/interactive/external-editor.js +0 -36
  1522. package/dist/modes/interactive/interactive-mode.d.ts +0 -447
  1523. package/dist/modes/interactive/interactive-mode.js +0 -5489
  1524. package/dist/modes/interactive/model-catalog-refresh.d.ts +0 -6
  1525. package/dist/modes/interactive/model-catalog-refresh.js +0 -33
  1526. package/dist/modes/interactive/model-search.d.ts +0 -11
  1527. package/dist/modes/interactive/model-search.js +0 -14
  1528. package/dist/modes/interactive/theme/dark.json +0 -90
  1529. package/dist/modes/interactive/theme/light.json +0 -89
  1530. package/dist/modes/interactive/theme/theme-controller.d.ts +0 -39
  1531. package/dist/modes/interactive/theme/theme-controller.js +0 -124
  1532. package/dist/modes/interactive/theme/theme-schema.json +0 -348
  1533. package/dist/modes/interactive/theme/theme.d.ts +0 -121
  1534. package/dist/modes/interactive/theme/theme.js +0 -1090
  1535. package/dist/modes/print-mode.d.ts +0 -27
  1536. package/dist/modes/print-mode.js +0 -141
  1537. package/dist/modes/rpc/jsonl.d.ts +0 -16
  1538. package/dist/modes/rpc/jsonl.js +0 -48
  1539. package/dist/modes/rpc/rpc-client.d.ts +0 -438
  1540. package/dist/modes/rpc/rpc-client.js +0 -712
  1541. package/dist/modes/rpc/rpc-mode.d.ts +0 -19
  1542. package/dist/modes/rpc/rpc-mode.js +0 -1459
  1543. package/dist/modes/rpc/rpc-types.d.ts +0 -902
  1544. package/dist/modes/rpc/rpc-types.js +0 -7
  1545. package/dist/package-manager-cli.d.ts +0 -7
  1546. package/dist/package-manager-cli.js +0 -789
  1547. package/dist/rpc-entry.d.ts +0 -2
  1548. package/dist/rpc-entry.js +0 -9
  1549. package/dist/skills/agent-browser/SKILL.md +0 -53
  1550. package/dist/skills/batch-grill-me/SKILL.md +0 -20
  1551. package/dist/skills/brandkit/SKILL.md +0 -800
  1552. package/dist/skills/design-references/SKILL.md +0 -32
  1553. package/dist/skills/design-references/references/clickhouse/DESIGN.md +0 -544
  1554. package/dist/skills/design-taste-frontend/SKILL.md +0 -1208
  1555. package/dist/skills/design-taste-frontend-v1/SKILL.md +0 -228
  1556. package/dist/skills/full-output-enforcement/SKILL.md +0 -51
  1557. package/dist/skills/gpt-taste/SKILL.md +0 -76
  1558. package/dist/skills/grill-me/SKILL.md +0 -11
  1559. package/dist/skills/handoff/SKILL.md +0 -17
  1560. package/dist/skills/handoff-text/SKILL.md +0 -15
  1561. package/dist/skills/high-end-visual-design/SKILL.md +0 -100
  1562. package/dist/skills/image-to-code/SKILL.md +0 -1230
  1563. package/dist/skills/imagegen-frontend-mobile/SKILL.md +0 -1467
  1564. package/dist/skills/imagegen-frontend-web/SKILL.md +0 -989
  1565. package/dist/skills/implanger/SKILL.md +0 -70
  1566. package/dist/skills/improve-codebase/REFERENCE.md +0 -78
  1567. package/dist/skills/improve-codebase/SKILL.md +0 -180
  1568. package/dist/skills/industrial-brutalist-ui/SKILL.md +0 -94
  1569. package/dist/skills/minimalist-ui/SKILL.md +0 -87
  1570. package/dist/skills/pi-subagents/SKILL.md +0 -50
  1571. package/dist/skills/pi-subagents/references/constraints-and-recipes.md +0 -274
  1572. package/dist/skills/pi-subagents/references/execution-controls.md +0 -463
  1573. package/dist/skills/pi-subagents/references/management-authoring-rpc.md +0 -161
  1574. package/dist/skills/pi-subagents/references/multi-lane-orchestration.md +0 -39
  1575. package/dist/skills/pi-subagents/references/prompting-and-roles.md +0 -267
  1576. package/dist/skills/planger/SKILL.md +0 -167
  1577. package/dist/skills/ponytail/SKILL.md +0 -121
  1578. package/dist/skills/ponytail-audit/SKILL.md +0 -42
  1579. package/dist/skills/ponytail-debt/SKILL.md +0 -45
  1580. package/dist/skills/ponytail-gain/SKILL.md +0 -51
  1581. package/dist/skills/ponytail-help/SKILL.md +0 -72
  1582. package/dist/skills/ponytail-review/SKILL.md +0 -58
  1583. package/dist/skills/redesign-existing-projects/SKILL.md +0 -180
  1584. package/dist/skills/selesai-handoff/SKILL.md +0 -21
  1585. package/dist/skills/stitch-design-taste/SKILL.md +0 -186
  1586. package/dist/skills/unlazy/CHANGELOG.md +0 -109
  1587. package/dist/skills/unlazy/CONTRIBUTING.md +0 -63
  1588. package/dist/skills/unlazy/LICENSE +0 -21
  1589. package/dist/skills/unlazy/README.md +0 -228
  1590. package/dist/skills/unlazy/SECURITY.md +0 -60
  1591. package/dist/skills/unlazy/SKILL.md +0 -93
  1592. package/dist/skills/unlazy/package.json +0 -13
  1593. package/dist/skills/unlazy/references/dispatch.md +0 -79
  1594. package/dist/skills/unlazy/references/gates.md +0 -132
  1595. package/dist/skills/unlazy/references/method.md +0 -49
  1596. package/dist/skills/unlazy/references/orchestration.md +0 -98
  1597. package/dist/skills/unlazy/references/parallel.md +0 -111
  1598. package/dist/skills/unlazy/references/token-economy.md +0 -39
  1599. package/dist/skills/unlazy/research/validation-protocol.md +0 -81
  1600. package/dist/skills/unlazy/scripts/dispatch-check.mjs +0 -108
  1601. package/dist/skills/unlazy/scripts/gate-check.mjs +0 -879
  1602. package/dist/skills/unlazy/scripts/gate-lint.mjs +0 -178
  1603. package/dist/skills/unlazy/scripts/lib/check-supervisor.mjs +0 -46
  1604. package/dist/skills/unlazy/scripts/lib/dispatch.mjs +0 -283
  1605. package/dist/skills/unlazy/scripts/lib/gates.mjs +0 -625
  1606. package/dist/skills/unlazy/scripts/lib/process-tree.mjs +0 -161
  1607. package/dist/skills/unlazy/scripts/lib/regex-worker.mjs +0 -9
  1608. package/dist/skills/unlazy/templates/PLAN.md +0 -65
  1609. package/dist/skills/unlazy/templates/gates-leaf.md +0 -51
  1610. package/dist/skills/unlazy/templates/gates-node.md +0 -50
  1611. package/dist/skills/unlazy/tests/contract-tests.mjs +0 -127
  1612. package/dist/skills/unlazy/tests/dispatch-tests.mjs +0 -296
  1613. package/dist/skills/unlazy/tests/hardening-tests.mjs +0 -900
  1614. package/dist/skills/unlazy/tests/lint-tests.mjs +0 -242
  1615. package/dist/skills/unlazy/tests/run-tests.mjs +0 -360
  1616. package/dist/skills/unlazy/tests/self-check.mjs +0 -152
  1617. package/dist/skills/unlazy/tests/stress-tests.mjs +0 -165
  1618. package/dist/skills/web-design-guidelines/SKILL.md +0 -41
  1619. package/dist/skills/workflow/SKILL.md +0 -95
  1620. package/dist/themes/adventure.json +0 -84
  1621. package/dist/themes/adwaita-dark.json +0 -84
  1622. package/dist/themes/arcoiris.json +0 -84
  1623. package/dist/themes/arthur.json +0 -84
  1624. package/dist/themes/atom.json +0 -84
  1625. package/dist/themes/aura.json +0 -84
  1626. package/dist/themes/black-metal-bathory.json +0 -84
  1627. package/dist/themes/black-metal-burzum.json +0 -84
  1628. package/dist/themes/black-metal-khold.json +0 -84
  1629. package/dist/themes/box.json +0 -84
  1630. package/dist/themes/brogrammer.json +0 -84
  1631. package/dist/themes/carbonfox.json +0 -84
  1632. package/dist/themes/catppuccin-mocha.json +0 -84
  1633. package/dist/themes/citruszest.json +0 -84
  1634. package/dist/themes/cursor-dark.json +0 -84
  1635. package/dist/themes/cutie-pro.json +0 -84
  1636. package/dist/themes/dark-modern.json +0 -84
  1637. package/dist/themes/dark-pastel.json +0 -84
  1638. package/dist/themes/dimmed-monokai.json +0 -84
  1639. package/dist/themes/doom-peacock.json +0 -84
  1640. package/dist/themes/dracula-plus.json +0 -84
  1641. package/dist/themes/dracula.json +0 -80
  1642. package/dist/themes/earthsong.json +0 -84
  1643. package/dist/themes/everforest-dark-hard.json +0 -84
  1644. package/dist/themes/everforest-dark.json +0 -80
  1645. package/dist/themes/fahrenheit.json +0 -84
  1646. package/dist/themes/flatland.json +0 -84
  1647. package/dist/themes/flexoki-dark.json +0 -84
  1648. package/dist/themes/front-end-delight.json +0 -84
  1649. package/dist/themes/fun-forrest.json +0 -84
  1650. package/dist/themes/galizur.json +0 -84
  1651. package/dist/themes/github-dark-colorblind.json +0 -84
  1652. package/dist/themes/github-dark-high-contrast.json +0 -84
  1653. package/dist/themes/glacier.json +0 -84
  1654. package/dist/themes/gruber-darker.json +0 -84
  1655. package/dist/themes/gruvbox-dark-hard.json +0 -84
  1656. package/dist/themes/gruvbox-dark.json +0 -84
  1657. package/dist/themes/gruvbox-material.json +0 -84
  1658. package/dist/themes/guezwhoz.json +0 -84
  1659. package/dist/themes/hacktober.json +0 -84
  1660. package/dist/themes/hardcore.json +0 -84
  1661. package/dist/themes/havn-skumring.json +0 -84
  1662. package/dist/themes/ic-orange-ppl.json +0 -84
  1663. package/dist/themes/iterm2-smoooooth.json +0 -84
  1664. package/dist/themes/iterm2-tango-dark.json +0 -84
  1665. package/dist/themes/japanesque.json +0 -84
  1666. package/dist/themes/jellybeans.json +0 -84
  1667. package/dist/themes/kanagawa-wave.json +0 -84
  1668. package/dist/themes/kurokula.json +0 -84
  1669. package/dist/themes/later-this-evening.json +0 -84
  1670. package/dist/themes/lovelace.json +0 -84
  1671. package/dist/themes/material-darker.json +0 -84
  1672. package/dist/themes/matte-black.json +0 -84
  1673. package/dist/themes/mellow.json +0 -84
  1674. package/dist/themes/miasma.json +0 -84
  1675. package/dist/themes/nord.json +0 -80
  1676. package/dist/themes/nvim-dark.json +0 -84
  1677. package/dist/themes/one-dark.json +0 -80
  1678. package/dist/themes/popping-and-locking.json +0 -84
  1679. package/dist/themes/rose-pine.json +0 -80
  1680. package/dist/themes/sea-shells.json +0 -84
  1681. package/dist/themes/sleepy-hollow.json +0 -84
  1682. package/dist/themes/smyck.json +0 -84
  1683. package/dist/themes/solarized-dark.json +0 -80
  1684. package/dist/themes/tokyo-night.json +0 -80
  1685. package/dist/themes/tomorrow-night-bright.json +0 -84
  1686. package/dist/themes/tomorrow-night-burns.json +0 -84
  1687. package/dist/themes/tomorrow-night.json +0 -84
  1688. package/dist/themes/twilight.json +0 -84
  1689. package/dist/themes/vague.json +0 -84
  1690. package/dist/themes/vesper.json +0 -84
  1691. package/dist/themes/xcode-dark-hc.json +0 -84
  1692. package/dist/utils/abort.d.ts +0 -4
  1693. package/dist/utils/abort.js +0 -47
  1694. package/dist/utils/ansi.d.ts +0 -1
  1695. package/dist/utils/ansi.js +0 -51
  1696. package/dist/utils/changelog.d.ts +0 -21
  1697. package/dist/utils/changelog.js +0 -164
  1698. package/dist/utils/child-process.d.ts +0 -17
  1699. package/dist/utils/child-process.js +0 -105
  1700. package/dist/utils/clipboard-image.d.ts +0 -10
  1701. package/dist/utils/clipboard-image.js +0 -250
  1702. package/dist/utils/clipboard-native.d.ts +0 -10
  1703. package/dist/utils/clipboard-native.js +0 -19
  1704. package/dist/utils/clipboard.d.ts +0 -3
  1705. package/dist/utils/clipboard.js +0 -140
  1706. package/dist/utils/deprecation.d.ts +0 -3
  1707. package/dist/utils/deprecation.js +0 -12
  1708. package/dist/utils/exif-orientation.d.ts +0 -4
  1709. package/dist/utils/exif-orientation.js +0 -157
  1710. package/dist/utils/frontmatter.d.ts +0 -7
  1711. package/dist/utils/frontmatter.js +0 -25
  1712. package/dist/utils/fs-watch.d.ts +0 -4
  1713. package/dist/utils/fs-watch.js +0 -24
  1714. package/dist/utils/git.d.ts +0 -25
  1715. package/dist/utils/git.js +0 -194
  1716. package/dist/utils/html.d.ts +0 -6
  1717. package/dist/utils/html.js +0 -39
  1718. package/dist/utils/image-convert.d.ts +0 -9
  1719. package/dist/utils/image-convert.js +0 -44
  1720. package/dist/utils/image-process.d.ts +0 -17
  1721. package/dist/utils/image-process.js +0 -82
  1722. package/dist/utils/image-resize-core.d.ts +0 -29
  1723. package/dist/utils/image-resize-core.js +0 -123
  1724. package/dist/utils/image-resize-worker.d.ts +0 -1
  1725. package/dist/utils/image-resize-worker.js +0 -30
  1726. package/dist/utils/image-resize.d.ts +0 -15
  1727. package/dist/utils/image-resize.js +0 -96
  1728. package/dist/utils/json.d.ts +0 -2
  1729. package/dist/utils/json.js +0 -6
  1730. package/dist/utils/mime.d.ts +0 -2
  1731. package/dist/utils/mime.js +0 -132
  1732. package/dist/utils/open-browser.d.ts +0 -8
  1733. package/dist/utils/open-browser.js +0 -21
  1734. package/dist/utils/paths.d.ts +0 -30
  1735. package/dist/utils/paths.js +0 -91
  1736. package/dist/utils/photon.d.ts +0 -20
  1737. package/dist/utils/photon.js +0 -120
  1738. package/dist/utils/pi-user-agent.d.ts +0 -1
  1739. package/dist/utils/pi-user-agent.js +0 -4
  1740. package/dist/utils/shell.d.ts +0 -33
  1741. package/dist/utils/shell.js +0 -215
  1742. package/dist/utils/sleep.d.ts +0 -4
  1743. package/dist/utils/sleep.js +0 -16
  1744. package/dist/utils/syntax-highlight.d.ts +0 -11
  1745. package/dist/utils/syntax-highlight.js +0 -117
  1746. package/dist/utils/thinking-tags.d.ts +0 -6
  1747. package/dist/utils/thinking-tags.js +0 -62
  1748. package/dist/utils/tools-manager.d.ts +0 -7
  1749. package/dist/utils/tools-manager.js +0 -402
  1750. package/dist/utils/version-check.d.ts +0 -19
  1751. package/dist/utils/version-check.js +0 -72
  1752. package/dist/utils/windows-self-update.d.ts +0 -2
  1753. package/dist/utils/windows-self-update.js +0 -76
@@ -1,1773 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import * as fs from "node:fs";
3
- import * as os from "node:os";
4
- import * as path from "node:path";
5
- import { describe, it } from "node:test";
6
- import { visibleWidth, type MarkdownTheme } from "@earendil-works/pi-tui";
7
- import { EXTERNAL_RUN_REGISTRY_KEY, EXTERNAL_RUN_REGISTRY_VERSION, registerExternalRun } from "../../src/api/external-runs.ts";
8
- import { collectFleetSnapshot, openSubagentFleet, SubagentFleetComponent } from "../../src/tui/fleet.ts";
9
- import { persistForegroundRunHistory, restoreForegroundRunHistory } from "../../src/runs/foreground/foreground-history.ts";
10
- import { FLEET_STATUS_WIDGET_KEY } from "../../src/tui/fleet-status.ts";
11
- import { registerLivePromptAudit, rewritePromptWithGuidance } from "../../src/runs/foreground/prompt-audit.ts";
12
- import { getArtifactPaths, getArtifactsDir, getProjectArtifactsDir } from "../../src/shared/artifacts.ts";
13
- import type { HerdrClient } from "../../src/inspectors/herdr/client.ts";
14
- import type { SubagentState } from "../../src/shared/types.ts";
15
- import { fauxAssistantMessage } from "@earendil-works/pi-ai/providers/faux";
16
- import { createAssistantMessageEventStream } from "@earendil-works/pi-ai";
17
- import { updateActiveRunIndex } from "../../src/runs/background/active-run-index.ts";
18
-
19
- function clearExternalRuns(): void {
20
- delete (globalThis as Record<PropertyKey, unknown>)[Symbol.for(EXTERNAL_RUN_REGISTRY_KEY)];
21
- }
22
-
23
- function stateForTest(): SubagentState {
24
- return {
25
- baseCwd: process.cwd(),
26
- currentSessionId: "session-current",
27
- asyncJobs: new Map(),
28
- foregroundRuns: new Map(),
29
- foregroundControls: new Map(),
30
- lastForegroundControlId: null,
31
- cleanupTimers: new Map(),
32
- lastUiContext: null,
33
- poller: null,
34
- completionSeen: new Map(),
35
- watcher: null,
36
- watcherRestartTimer: null,
37
- resultFileCoalescer: { schedule: () => false, clear: () => {} },
38
- };
39
- }
40
-
41
- function writeAsyncRun(root: string, input: {
42
- id: string;
43
- sessionId?: string;
44
- state?: "running" | "complete" | "failed";
45
- mode?: "single" | "parallel" | "workflow";
46
- lastUpdate?: number;
47
- agents?: string[];
48
- contexts?: Array<"fresh" | "fork">;
49
- models?: string[];
50
- thinking?: string[];
51
- output?: string;
52
- transcript?: Array<Record<string, unknown>>;
53
- }): string {
54
- const asyncDir = path.join(root, input.id);
55
- fs.mkdirSync(asyncDir, { recursive: true });
56
- const agents = input.agents ?? ["worker"];
57
- if (input.output !== undefined) fs.writeFileSync(path.join(asyncDir, "output-0.log"), input.output, "utf-8");
58
- const transcriptPath = input.transcript ? path.join(asyncDir, "transcript-0.jsonl") : undefined;
59
- if (transcriptPath && input.transcript) fs.writeFileSync(transcriptPath, `${input.transcript.map((record) => JSON.stringify(record)).join("\n")}\n`, "utf-8");
60
- const state = input.state ?? "running";
61
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({
62
- runId: input.id,
63
- sessionId: input.sessionId ?? "session-current",
64
- mode: input.mode ?? (agents.length > 1 ? "parallel" : "single"),
65
- state,
66
- startedAt: 100,
67
- lastUpdate: input.lastUpdate ?? 200,
68
- currentStep: 0,
69
- steps: agents.map((agent, index) => ({
70
- agent,
71
- ...(input.contexts?.[index] ? { context: input.contexts[index] } : {}),
72
- ...(input.models?.[index] ? { model: input.models[index] } : {}),
73
- ...(input.thinking?.[index] ? { thinking: input.thinking[index] } : {}),
74
- status: input.state === "complete" ? "complete" : input.state === "failed" ? "failed" : index === 0 ? "running" : "pending",
75
- startedAt: 100,
76
- ...(index === 0 ? { sessionFile: path.join(asyncDir, `${agent}.jsonl`), ...(transcriptPath ? { transcriptPath } : {}) } : {}),
77
- })),
78
- ...(input.output !== undefined ? { outputFile: "output-0.log" } : {}),
79
- }, null, 2));
80
- updateActiveRunIndex(asyncDir, state);
81
- return asyncDir;
82
- }
83
-
84
- const theme = {
85
- fg: (_name: string, text: string) => text,
86
- bold: (text: string) => text,
87
- };
88
-
89
- const markdownTheme: MarkdownTheme = {
90
- heading: (text) => text,
91
- link: (text) => text,
92
- linkUrl: (text) => text,
93
- code: (text) => text,
94
- codeBlock: (text) => text,
95
- codeBlockBorder: (text) => text,
96
- quote: (text) => text,
97
- quoteBorder: (text) => text,
98
- hr: (text) => text,
99
- listBullet: (text) => text,
100
- bold: (text) => text,
101
- italic: (text) => text,
102
- strikethrough: (text) => text,
103
- underline: (text) => text,
104
- };
105
-
106
- describe("native subagent fleet", () => {
107
- it("rewrites an authored prompt from guidance without persistence", async () => {
108
- const calls: unknown[] = [];
109
- const streamFn = (_model: never, context: unknown) => {
110
- calls.push(context);
111
- const stream = createAssistantMessageEventStream();
112
- queueMicrotask(() => stream.push({ type: "done", reason: "stop", message: fauxAssistantMessage("Rewritten task", { stopReason: "stop" }) }));
113
- return stream;
114
- };
115
- const model = { provider: "faux", id: "rewrite", api: "faux", input: ["text"], reasoning: false, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1000, maxTokens: 100 };
116
- const ctx = {
117
- model,
118
- signal: undefined,
119
- modelRegistry: {
120
- async getApiKeyAndHeaders() { return { ok: true as const, apiKey: "test" }; },
121
- getRegisteredProviderConfig() { return { api: "faux", streamSimple: streamFn }; },
122
- },
123
- } as never;
124
- const rewritten = await rewritePromptWithGuidance({
125
- ctx,
126
- authoredTask: "Original task",
127
- runtimeAdditions: "Runtime context",
128
- finalEffectivePrompt: "Runtime context\n\nOriginal task",
129
- guidance: "Make it narrower",
130
- });
131
- assert.equal(rewritten, "Rewritten task");
132
- assert.match(JSON.stringify(calls), /Original task/);
133
- assert.match(JSON.stringify(calls), /Make it narrower/);
134
- });
135
-
136
- it("collects current-session foreground and flattened async children", () => {
137
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-collect-"));
138
- try {
139
- writeAsyncRun(root, { id: "async-current", agents: ["worker", "reviewer"], output: "CURRENT OUTPUT" });
140
- writeAsyncRun(root, { id: "async-other", sessionId: "session-other", output: "OTHER OUTPUT" });
141
- const state = stateForTest();
142
- state.foregroundControls.set("foreground-live", {
143
- runId: "foreground-live",
144
- mode: "chain",
145
- startedAt: 10,
146
- updatedAt: 30,
147
- currentAgent: "scout",
148
- currentIndex: 1,
149
- });
150
- state.foregroundRuns!.set("foreground-recent", {
151
- runId: "foreground-recent",
152
- mode: "single",
153
- cwd: root,
154
- sessionId: "session-current",
155
- updatedAt: 20,
156
- children: [{ agent: "planner", index: 0, status: "completed", finalOutput: "PLAN COMPLETE" }],
157
- });
158
- state.foregroundRuns!.set("foreground-other", {
159
- runId: "foreground-other",
160
- mode: "single",
161
- cwd: root,
162
- sessionId: "session-other",
163
- updatedAt: 20,
164
- children: [{ agent: "outsider", index: 0, status: "completed" }],
165
- });
166
-
167
- const snapshot = collectFleetSnapshot(state, { asyncDirRoot: root, resultsDir: path.join(root, "results") });
168
- assert.deepEqual(snapshot.items.map((item) => item.key), [
169
- "foreground-active:foreground-live:1",
170
- "async:async-current:0",
171
- "async:async-current:1",
172
- "foreground-recent:foreground-recent:0",
173
- ]);
174
- assert.equal(snapshot.error, undefined);
175
- } finally {
176
- fs.rmSync(root, { recursive: true, force: true });
177
- }
178
- });
179
-
180
- it("shows cached external jobs as display-only without reading paths or invoking controls", async () => {
181
- clearExternalRuns();
182
- registerExternalRun({
183
- id: "external-review",
184
- sessionId: "session-current",
185
- source: "interactive-shell",
186
- label: "Dependency review",
187
- state: "completed",
188
- startedAt: 100,
189
- updatedAt: 200,
190
- currentAction: "Inspecting package metadata",
191
- preview: "No dependency blockers found.",
192
- reportPath: "/outside/trusted/roots/report.md",
193
- transcriptPath: "/outside/trusted/roots/transcript.jsonl",
194
- });
195
- const state = stateForTest();
196
- const snapshot = collectFleetSnapshot(state);
197
- assert.equal(snapshot.error, undefined);
198
- assert.deepEqual(snapshot.items.map((item) => ({ key: item.key, kind: item.kind, agent: item.agent })), [{
199
- key: "external:external-review",
200
- kind: "external",
201
- agent: "Dependency review",
202
- }]);
203
- let steerCalls = 0;
204
- let stopCalls = 0;
205
- let inspectCalls = 0;
206
- const component = new SubagentFleetComponent(
207
- { terminal: { rows: 32, columns: 120 }, requestRender() {} } as never,
208
- theme as never,
209
- state,
210
- () => {},
211
- {
212
- refreshMs: 60_000,
213
- markdownTheme,
214
- actions: {
215
- async steer() { steerCalls++; return { text: "unexpected" }; },
216
- stop() { stopCalls++; return { text: "unexpected" }; },
217
- async inspect() { inspectCalls++; return { text: "unexpected" }; },
218
- },
219
- },
220
- );
221
- try {
222
- const initial = component.render(120).join("\n");
223
- assert.match(initial, /Fleet inspector.*external display-only/);
224
- assert.match(initial, /Source: external · display-only/);
225
- assert.match(initial, /Owner: interactive-shell/);
226
- assert.match(initial, /Inspecting package metadata/);
227
- assert.match(initial, /Elapsed: 100ms/);
228
- assert.match(initial, /No dependency blockers found/);
229
- assert.match(initial, /Report path: \/outside\/trusted\/roots\/report\.md/);
230
- assert.match(initial, /Transcript path: \/outside\/trusted\/roots\/transcript\.jsonl/);
231
- assert.doesNotMatch(initial, /Herdr ·|steer ·|stop ·/);
232
- component.handleInput("H");
233
- assert.match(component.render(120).join("\n"), /display-only and have no Herdr controls/);
234
- component.handleInput("s");
235
- assert.match(component.render(120).join("\n"), /display-only and remain controlled/);
236
- component.handleInput("D");
237
- assert.match(component.render(120).join("\n"), /display-only and remain controlled/);
238
- await new Promise((resolve) => setImmediate(resolve));
239
- assert.deepEqual({ steerCalls, stopCalls, inspectCalls }, { steerCalls: 0, stopCalls: 0, inspectCalls: 0 });
240
- } finally {
241
- component.dispose();
242
- clearExternalRuns();
243
- }
244
- });
245
-
246
- it("keeps running external elapsed time live when endedAt is present", () => {
247
- clearExternalRuns();
248
- try {
249
- const startedAt = Date.now() - 5_000;
250
- registerExternalRun({
251
- id: "external-running",
252
- sessionId: "session-current",
253
- source: "interactive-shell",
254
- label: "Running external job",
255
- state: "running",
256
- startedAt,
257
- updatedAt: startedAt + 100,
258
- endedAt: startedAt + 100,
259
- });
260
- const component = new SubagentFleetComponent(
261
- { terminal: { rows: 32, columns: 120 }, requestRender() {} } as never,
262
- theme as never,
263
- stateForTest(),
264
- () => {},
265
- { refreshMs: 60_000, markdownTheme },
266
- );
267
- try {
268
- const rendered = component.render(120).join("\n");
269
- assert.match(rendered, /Elapsed: 5\.0s/);
270
- assert.doesNotMatch(rendered, /Elapsed: 100ms/);
271
- } finally {
272
- component.dispose();
273
- }
274
- } finally {
275
- clearExternalRuns();
276
- }
277
- });
278
-
279
- it("ignores malformed cached external jobs while rendering Fleet", () => {
280
- clearExternalRuns();
281
- const warnings: string[] = [];
282
- const originalWarn = console.warn;
283
- console.warn = (message?: unknown) => warnings.push(String(message));
284
- (globalThis as Record<PropertyKey, unknown>)[Symbol.for(EXTERNAL_RUN_REGISTRY_KEY)] = {
285
- version: EXTERNAL_RUN_REGISTRY_VERSION,
286
- runs: new Map<string, unknown>([[
287
- "session-current\0bad",
288
- { id: "bad", sessionId: "session-current", source: "tool", label: "Bad external", state: "running", startedAt: Number.NaN },
289
- ]]),
290
- };
291
- const state = stateForTest();
292
- const component = new SubagentFleetComponent(
293
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
294
- theme as never,
295
- state,
296
- () => {},
297
- { refreshMs: 60_000, markdownTheme },
298
- );
299
- try {
300
- const snapshot = collectFleetSnapshot(state);
301
- assert.equal(snapshot.error, undefined);
302
- assert.deepEqual(snapshot.items, []);
303
- assert.match(warnings[0]!, /Removed Malformed cached external run/);
304
- assert.match(component.render(100).join("\n"), /No current-session Fleet jobs/);
305
- } finally {
306
- console.warn = originalWarn;
307
- component.dispose();
308
- clearExternalRuns();
309
- }
310
- });
311
-
312
- it("does not crash Fleet render when live prompt audit stores a non-string authored task", () => {
313
- const state = stateForTest();
314
- const control = {
315
- runId: "bad-prompt-run",
316
- sessionId: "session-current",
317
- mode: "single" as const,
318
- startedAt: 10,
319
- updatedAt: 20,
320
- activeChildren: new Map([[0, { index: 0, agent: "worker", startedAt: 10, updatedAt: 20 }]]),
321
- };
322
- state.foregroundControls.set(control.runId, control);
323
- registerLivePromptAudit(control, 0, { nested: "task payload" } as unknown as string, "effective prompt");
324
- const component = new SubagentFleetComponent(
325
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
326
- theme as never,
327
- state,
328
- () => {},
329
- { refreshMs: 60_000, markdownTheme },
330
- );
331
- try {
332
- assert.doesNotThrow(() => component.render(100));
333
- const rendered = component.render(100).join("\n");
334
- assert.doesNotMatch(rendered, /nested|task payload/);
335
- component.handleInput("p");
336
- assert.doesNotThrow(() => component.render(100));
337
- assert.match(component.render(100).join("\n"), /Selected prompt unavailable/);
338
- } finally {
339
- component.dispose();
340
- }
341
- });
342
-
343
- it("shows live prompt summaries and opens Prompt Audit with the authored prompt visible", async () => {
344
- const sentinel = "PROMPT_AUDIT_SENTINEL_1021";
345
- const secondSentinel = "PROMPT_AUDIT_SECOND_CHILD";
346
- const state = stateForTest();
347
- const control = {
348
- runId: "prompt-run",
349
- sessionId: "session-current",
350
- mode: "parallel" as const,
351
- startedAt: 10,
352
- updatedAt: 20,
353
- activeChildren: new Map([
354
- [0, { index: 0, agent: "worker", startedAt: 10, updatedAt: 20 }],
355
- [1, { index: 1, agent: "reviewer", startedAt: 11, updatedAt: 21 }],
356
- ]),
357
- };
358
- state.foregroundControls.set(control.runId, control);
359
- registerLivePromptAudit(control, 0, sentinel, `[Read from: context.md]\n\n${sentinel}\n\n---\nRuntime acceptance`, { rerun: { params: { agent: "worker", task: sentinel } } });
360
- registerLivePromptAudit(control, 1, secondSentinel, secondSentinel);
361
- assert.doesNotMatch(JSON.stringify(control), new RegExp(sentinel), "live prompts must not enter serializable Fleet state");
362
- const clipboardWrites: string[] = [];
363
- const redoCalls: Array<{ runId: string; index: number; guidance: string }> = [];
364
- const component = new SubagentFleetComponent(
365
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
366
- theme as never,
367
- state,
368
- () => {},
369
- {
370
- refreshMs: 60_000,
371
- markdownTheme,
372
- copyText: (text) => { clipboardWrites.push(text); },
373
- actions: {
374
- async steer() { return { text: "unused" }; },
375
- stop() { return { text: "unused" }; },
376
- async redoPrompt(input) {
377
- redoCalls.push(input);
378
- return { text: "Prompt redo started redo-run." };
379
- },
380
- },
381
- },
382
- );
383
- try {
384
- const initialRender = component.render(100).join("\n");
385
- assert.match(initialRender, new RegExp(`Task: ${sentinel}`));
386
- assert.match(initialRender, /Prompt audit: 2 live · 3 views · p opens/);
387
- component.handleInput("p");
388
- assert.doesNotMatch(component.render(100).join("\n"), /Prompt text hidden|Enter reveal|r hide/);
389
- assert.match(component.render(100).join("\n"), new RegExp(sentinel));
390
- component.handleInput("2");
391
- assert.match(component.render(100).join("\n"), /Read from: context\.md/);
392
- component.handleInput("3");
393
- assert.match(component.render(100).join("\n"), /Runtime acceptance/);
394
- component.handleInput("c");
395
- await new Promise((resolve) => setImmediate(resolve));
396
- assert.deepEqual(clipboardWrites, [`[Read from: context.md]\n\n${sentinel}\n\n---\nRuntime acceptance`]);
397
- assert.match(component.render(100).join("\n"), /Copied visible prompt view/);
398
- component.handleInput("g");
399
- for (const char of "make narrower") component.handleInput(char);
400
- component.handleInput("\r");
401
- await new Promise((resolve) => setImmediate(resolve));
402
- assert.deepEqual(redoCalls, [{ runId: "prompt-run", index: 0, guidance: "make narrower", control }]);
403
- assert.match(component.render(100).join("\n"), /Prompt redo started redo-run/);
404
- component.handleInput("j");
405
- assert.match(component.render(100).join("\n"), /Selected: 2\/2/);
406
- assert.match(component.render(100).join("\n"), /Agent: reviewer/);
407
- assert.match(component.render(100).join("\n"), new RegExp(secondSentinel));
408
- component.handleInput("k");
409
- component.handleInput("1");
410
- assert.match(component.render(100).join("\n"), /Selected: 1\/2/);
411
- assert.match(component.render(100).join("\n"), /Agent: worker/);
412
- assert.match(component.render(100).join("\n"), new RegExp(sentinel));
413
- component.handleInput("\x1b");
414
- assert.match(component.render(100).join("\n"), /Prompt audit: 2 live · 3 views · p opens/);
415
- } finally {
416
- component.dispose();
417
- }
418
- });
419
-
420
- it("rejects Prompt Audit for a child owned by another session", () => {
421
- const state = stateForTest();
422
- const control = {
423
- runId: "other-run",
424
- sessionId: "session-other",
425
- mode: "single" as const,
426
- startedAt: 10,
427
- updatedAt: 20,
428
- activeChildren: new Map([[0, { index: 0, agent: "worker", startedAt: 10, updatedAt: 20 }]]),
429
- };
430
- state.foregroundControls.set(control.runId, control);
431
- registerLivePromptAudit(control, 0, "SECRET", "SECRET");
432
- const component = new SubagentFleetComponent(
433
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
434
- theme as never,
435
- state,
436
- () => {},
437
- { refreshMs: 60_000, markdownTheme },
438
- );
439
- try {
440
- component.handleInput("p");
441
- const rendered = component.render(100).join("\n");
442
- assert.match(rendered, /Prompt Audit is available only/);
443
- assert.doesNotMatch(rendered, /SECRET/);
444
- } finally {
445
- component.dispose();
446
- }
447
- });
448
-
449
- it("keeps tracked active workflows ahead of older failed terminal history", () => {
450
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-history-"));
451
- try {
452
- writeAsyncRun(root, { id: "older-failed", state: "failed", lastUpdate: 100 });
453
- writeAsyncRun(root, { id: "newer-complete", state: "complete", lastUpdate: 300 });
454
- const state = stateForTest();
455
- state.fleetJobs = new Map([["active-workflow", {
456
- asyncId: "active-workflow",
457
- asyncDir: path.join(root, "active-workflow"),
458
- sessionId: "session-current",
459
- status: "running",
460
- mode: "workflow",
461
- agents: ["worker"],
462
- startedAt: 100,
463
- updatedAt: 200,
464
- }]]);
465
-
466
- const snapshot = collectFleetSnapshot(state, { asyncDirRoot: root, resultsDir: path.join(root, "results") });
467
- assert.deepEqual(snapshot.items.map((item) => item.runId), ["active-workflow", "newer-complete", "older-failed"]);
468
- } finally {
469
- fs.rmSync(root, { recursive: true, force: true });
470
- }
471
- });
472
-
473
- it("bounds Fleet history status-file reads", () => {
474
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-bounded-history-"));
475
- try {
476
- for (let index = 0; index < 100; index++) {
477
- const asyncDir = writeAsyncRun(root, { id: `recent-${index}`, state: "complete", lastUpdate: index });
478
- fs.utimesSync(path.join(asyncDir, "status.json"), 1_000 + index, 1_000 + index);
479
- }
480
- const oldDir = writeAsyncRun(root, { id: "old-invalid", state: "failed", lastUpdate: 0 });
481
- fs.writeFileSync(path.join(oldDir, "status.json"), "{not-json", "utf8");
482
- fs.utimesSync(path.join(oldDir, "status.json"), 1, 1);
483
-
484
- const snapshot = collectFleetSnapshot(stateForTest(), { asyncDirRoot: root, resultsDir: path.join(root, "results") });
485
- assert.equal(snapshot.error, undefined);
486
- assert.equal(snapshot.items.length, 20);
487
- assert.ok(!snapshot.items.some((item) => item.runId === "old-invalid"));
488
- } finally {
489
- fs.rmSync(root, { recursive: true, force: true });
490
- }
491
- });
492
-
493
- it("shows async model and thinking metadata in the structured header", () => {
494
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-model-thinking-"));
495
- try {
496
- writeAsyncRun(root, {
497
- id: "model-thinking",
498
- state: "running",
499
- models: ["openai-codex/gpt-5.5"],
500
- thinking: ["high"],
501
- });
502
- const component = new SubagentFleetComponent(
503
- { terminal: { rows: 32, columns: 100 }, requestRender() {} } as never,
504
- theme as never,
505
- stateForTest(),
506
- () => {},
507
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000, markdownTheme },
508
- );
509
- try {
510
- assert.ok(component.render(100).some((line) => line.includes("gpt-5.5 · thinking high")));
511
- } finally {
512
- component.dispose();
513
- }
514
- } finally {
515
- fs.rmSync(root, { recursive: true, force: true });
516
- }
517
- });
518
-
519
- it("shows a scripted workflow as one fleet parent instead of unrelated children", () => {
520
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-workflow-parent-"));
521
- try {
522
- const state = stateForTest();
523
- const asyncDir = path.join(root, "workflow-1");
524
- fs.mkdirSync(asyncDir, { recursive: true });
525
- fs.writeFileSync(path.join(asyncDir, "status.json"), JSON.stringify({
526
- runId: "workflow-1",
527
- sessionId: "session-current",
528
- mode: "workflow",
529
- state: "running",
530
- startedAt: 10,
531
- lastUpdate: 20,
532
- steps: [
533
- { agent: "scan", workflowKey: "scan", phase: "Plan", label: "Find seams", status: "completed", index: 0 },
534
- { agent: "review", workflowKey: "review", phase: "Review", status: "running", index: 1, currentTool: "grep" },
535
- ],
536
- }, null, 2));
537
- state.fleetJobs = new Map([["workflow-1", {
538
- asyncId: "workflow-1",
539
- asyncDir,
540
- sessionId: "session-current",
541
- status: "running",
542
- mode: "workflow",
543
- agents: ["scan", "review"],
544
- steps: [
545
- { agent: "scan", workflowKey: "scan", status: "completed", index: 0 },
546
- { agent: "review", workflowKey: "review", status: "running", index: 1 },
547
- ],
548
- workflow: { trace: [], emits: ["reviewing"], console: [] },
549
- startedAt: 10,
550
- updatedAt: 20,
551
- }]]);
552
-
553
- const snapshot = collectFleetSnapshot(state);
554
- assert.deepEqual(snapshot.items.map((item) => item.key), ["async:workflow-1"]);
555
- assert.equal(snapshot.items[0]?.agent, "workflow");
556
-
557
- const component = new SubagentFleetComponent(
558
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
559
- theme as never,
560
- state,
561
- () => {},
562
- { initialKey: "async:workflow-1", refreshMs: 60_000 },
563
- );
564
- try {
565
- const lines = component.render(120).join("\n");
566
- assert.match(lines, /Workflow progress:/);
567
- assert.match(lines, /Plan: scan · Find seams \(scan\) — completed/);
568
- assert.match(lines, /Review: review \(review\) — running · tool grep/);
569
- } finally {
570
- component.dispose();
571
- }
572
- } finally {
573
- fs.rmSync(root, { recursive: true, force: true });
574
- }
575
- });
576
-
577
- it("shows selectable workflow children only when multiple are live", async () => {
578
- const state = stateForTest();
579
- state.asyncJobs.set("workflow-1", {
580
- asyncId: "workflow-1",
581
- asyncDir: "/tmp/workflow-1",
582
- sessionId: "session-current",
583
- status: "running",
584
- mode: "workflow",
585
- startedAt: 10,
586
- updatedAt: 20,
587
- });
588
- state.asyncJobs.set("unrelated", {
589
- asyncId: "unrelated",
590
- asyncDir: "/tmp/unrelated",
591
- sessionId: "session-current",
592
- status: "running",
593
- mode: "single",
594
- startedAt: 5,
595
- updatedAt: 30,
596
- });
597
- state.foregroundControls.set("child-1", {
598
- runId: "child-1",
599
- parentWorkflowRunId: "workflow-1",
600
- workflowKey: "review",
601
- workflowSteeringDir: "/tmp/workflow-1/control/workflow-foreground/child-1",
602
- sessionId: "session-current",
603
- mode: "single",
604
- startedAt: 10,
605
- updatedAt: 20,
606
- activeChildren: new Map([[0, { index: 0, agent: "reviewer", startedAt: 10, updatedAt: 20 }]]),
607
- });
608
- assert.deepEqual(collectFleetSnapshot(state).items.map((item) => item.key), ["async:unrelated", "async:workflow-1"]);
609
- state.foregroundControls.get("child-1")!.activeChildren!.set(1, { index: 1, agent: "writer", startedAt: 11, updatedAt: 21 });
610
- assert.deepEqual(collectFleetSnapshot(state).items.map((item) => item.key), [
611
- "foreground-active:child-1:0",
612
- "foreground-active:child-1:1",
613
- "async:unrelated",
614
- "async:workflow-1",
615
- ]);
616
- state.foregroundControls.get("child-1")!.activeChildren!.delete(1);
617
- state.foregroundControls.set("child-2", {
618
- runId: "child-2",
619
- parentWorkflowRunId: "workflow-1",
620
- workflowKey: "verify",
621
- workflowSteeringDir: "/tmp/workflow-1/control/workflow-foreground/child-2",
622
- sessionId: "session-current",
623
- mode: "single",
624
- startedAt: 11,
625
- updatedAt: 21,
626
- activeChildren: new Map([[0, { index: 0, agent: "verifier", startedAt: 11, updatedAt: 21 }]]),
627
- });
628
- const snapshot = collectFleetSnapshot(state);
629
- assert.deepEqual(snapshot.items.map((item) => item.key), [
630
- "foreground-active:child-2:0",
631
- "foreground-active:child-1:0",
632
- "async:unrelated",
633
- "async:workflow-1",
634
- ]);
635
- const steerCalls: Array<{ runId: string; asyncDir: string; index?: number; message: string; mode: string }> = [];
636
- const inspectCalls: Array<{ runId: string; asyncDir: string; index?: number }> = [];
637
- const component = new SubagentFleetComponent(
638
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
639
- theme as never,
640
- state,
641
- () => {},
642
- {
643
- initialKey: "foreground-active:child-1:0",
644
- refreshMs: 60_000,
645
- actions: {
646
- async steer(input) { steerCalls.push(input); return { text: "Steering queued." }; },
647
- stop() { return { text: "unused" }; },
648
- async inspect(input) { inspectCalls.push(input); return { text: "Inspector opened." }; },
649
- },
650
- },
651
- );
652
- try {
653
- assert.ok(component.render(100).some((line) => line.includes("workflow")));
654
- component.handleInput("s");
655
- for (const char of "check the failure") component.handleInput(char);
656
- component.handleInput("\r");
657
- await new Promise((resolve) => setImmediate(resolve));
658
- assert.deepEqual(steerCalls, [{ runId: "child-1", asyncDir: "/tmp/workflow-1", index: 0, message: "check the failure", mode: "steer" }]);
659
- component.handleInput("H");
660
- await new Promise((resolve) => setImmediate(resolve));
661
- assert.deepEqual(inspectCalls, [{ runId: "workflow-1", asyncDir: "/tmp/workflow-1" }]);
662
- } finally {
663
- component.dispose();
664
- }
665
- });
666
-
667
- it("keeps every active async run ahead of the bounded recent-completion window", () => {
668
- const state = stateForTest();
669
- for (let index = 0; index < 22; index++) {
670
- state.fleetJobs ??= new Map();
671
- state.fleetJobs.set(`terminal-${index}`, {
672
- asyncId: `terminal-${index}`,
673
- asyncDir: path.join(os.tmpdir(), `missing-terminal-${index}`),
674
- sessionId: "session-current",
675
- status: "complete",
676
- mode: "single",
677
- agents: ["worker"],
678
- startedAt: index,
679
- updatedAt: index,
680
- });
681
- }
682
- state.fleetJobs!.set("active-old", {
683
- asyncId: "active-old",
684
- asyncDir: path.join(os.tmpdir(), "missing-active-old"),
685
- sessionId: "session-current",
686
- status: "running",
687
- mode: "single",
688
- agents: ["scout"],
689
- startedAt: 0,
690
- updatedAt: 0,
691
- });
692
-
693
- const snapshot = collectFleetSnapshot(state);
694
- assert.equal(snapshot.items.length, 21);
695
- assert.equal(snapshot.items[0]?.runId, "active-old");
696
- assert.equal(snapshot.items.find((item) => item.runId === "terminal-21")?.state, "complete");
697
- assert.ok(!snapshot.items.some((item) => item.runId === "terminal-0"));
698
- });
699
-
700
- it("accepts default Fleet navigation from Kitty CSI-u input", () => {
701
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-kitty-default-"));
702
- try {
703
- writeAsyncRun(root, { id: "newer", lastUpdate: 300 });
704
- writeAsyncRun(root, { id: "older", lastUpdate: 200 });
705
- const component = new SubagentFleetComponent(
706
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
707
- theme as never,
708
- stateForTest(),
709
- () => {},
710
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000 },
711
- );
712
- try {
713
- const selectedLine = () => component.render(100).find((line) => line.includes("›")) ?? "";
714
- assert.match(selectedLine(), /newer/);
715
- component.handleInput("\x1b[106;1u");
716
- assert.match(selectedLine(), /older/);
717
- } finally {
718
- component.dispose();
719
- }
720
- } finally {
721
- fs.rmSync(root, { recursive: true, force: true });
722
- }
723
- });
724
-
725
- it("uses custom Fleet keybindings without applying them inside modal text input", () => {
726
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-custom-keys-"));
727
- try {
728
- writeAsyncRun(root, { id: "newer", lastUpdate: 300 });
729
- writeAsyncRun(root, { id: "older", lastUpdate: 200 });
730
- const state = stateForTest();
731
- let closed = false;
732
- const component = new SubagentFleetComponent(
733
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
734
- theme as never,
735
- state,
736
- () => { closed = true; },
737
- {
738
- asyncDirRoot: root,
739
- resultsDir: path.join(root, "results"),
740
- refreshMs: 60_000,
741
- fleetKeybindings: {
742
- selectDown: ["n"],
743
- selectUp: ["p"],
744
- steer: ["m"],
745
- close: ["z"],
746
- },
747
- actions: {
748
- async steer() { return { text: "unused" }; },
749
- stop() { return { text: "unused" }; },
750
- },
751
- },
752
- );
753
- try {
754
- const selectedLine = () => component.render(100).find((line) => line.includes("›")) ?? "";
755
- assert.match(selectedLine(), /newer/);
756
- component.handleInput("j");
757
- assert.match(selectedLine(), /newer/, "default j should not move when selectDown is overridden");
758
- component.handleInput("\x1b[110;1u");
759
- assert.match(selectedLine(), /older/, "custom selectDown should accept Kitty CSI-u input");
760
- component.handleInput("p");
761
- assert.match(selectedLine(), /newer/);
762
- component.handleInput("m");
763
- component.handleInput("m");
764
- assert.ok(component.render(100).some((line) => line.includes("Steer message (steer): m")));
765
- component.handleInput("\x1b");
766
- component.handleInput("z");
767
- assert.equal(closed, true);
768
- } finally {
769
- component.dispose();
770
- }
771
- } finally {
772
- fs.rmSync(root, { recursive: true, force: true });
773
- }
774
- });
775
-
776
- it("restores current-session completed foreground history from the compact index", () => {
777
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-foreground-history-"));
778
- try {
779
- const resultsDir = path.join(root, "results");
780
- const cwd = path.join(root, "project");
781
- const artifactsRoot = getProjectArtifactsDir(cwd);
782
- fs.mkdirSync(artifactsRoot, { recursive: true });
783
- const outputPath = path.join(artifactsRoot, "outputs", "restored", "output.md");
784
- fs.mkdirSync(path.dirname(outputPath), { recursive: true });
785
- fs.writeFileSync(outputPath, "restored foreground output", "utf-8");
786
-
787
- const state = stateForTest();
788
- state.artifactDirPreference = "project";
789
- state.foregroundRuns!.set("restored", {
790
- runId: "restored",
791
- mode: "single",
792
- cwd,
793
- sessionId: "session-current",
794
- updatedAt: 200,
795
- children: [{ agent: "worker", index: 0, status: "completed", finalOutput: "do not persist this when an artifact exists", savedOutputPath: outputPath, resumeContract: { outputSchema: { type: "object" }, agentContract: { version: 1 }, acceptance: false, output: false, outputMode: "inline" }, extensionBindings: { "shepherd.dispatch/1": { role: "coder" } } }],
796
- });
797
- state.foregroundRuns!.set("other-session", {
798
- runId: "other-session",
799
- mode: "single",
800
- cwd,
801
- sessionId: "session-other",
802
- updatedAt: 300,
803
- children: [{ agent: "outsider", index: 0, status: "completed", savedOutputPath: outputPath }],
804
- });
805
- persistForegroundRunHistory(state, { resultsDir });
806
- const historyFile = path.join(resultsDir, "foreground-history.json");
807
- if (process.platform !== "win32") assert.equal(fs.statSync(historyFile).mode & 0o777, 0o600);
808
-
809
- const restored = stateForTest();
810
- restored.baseCwd = cwd;
811
- restored.artifactDirPreference = "project";
812
- assert.equal(restoreForegroundRunHistory(restored, { resultsDir }), 1);
813
- assert.deepEqual(restored.foregroundRuns?.get("restored")?.children[0]?.resumeContract, { outputSchema: { type: "object" }, agentContract: { version: 1 }, acceptance: false, output: false, outputMode: "inline" });
814
- assert.deepEqual(restored.foregroundRuns?.get("restored")?.children[0]?.extensionBindings, { "shepherd.dispatch/1": { role: "coder" } });
815
- const snapshot = collectFleetSnapshot(restored);
816
- assert.deepEqual(snapshot.items.map((item) => item.key), ["foreground-recent:restored:0"]);
817
-
818
- const component = new SubagentFleetComponent(
819
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
820
- theme as never,
821
- restored,
822
- () => {},
823
- { refreshMs: 60_000 },
824
- );
825
- try {
826
- const lines = component.render(100);
827
- assert.ok(lines.some((line) => line.includes("restored foreground output")));
828
- assert.ok(!lines.some((line) => line.includes("do not persist")));
829
- } finally {
830
- component.dispose();
831
- }
832
- } finally {
833
- fs.rmSync(root, { recursive: true, force: true });
834
- }
835
- });
836
-
837
- it("does not restore nonterminal foreground history rows", () => {
838
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-foreground-terminal-"));
839
- try {
840
- const resultsDir = path.join(root, "results");
841
- fs.mkdirSync(resultsDir, { recursive: true });
842
- fs.writeFileSync(path.join(resultsDir, "foreground-history.json"), JSON.stringify({
843
- version: 1,
844
- runs: [
845
- {
846
- runId: "stale-running",
847
- mode: "single",
848
- cwd: root,
849
- sessionId: "session-current",
850
- updatedAt: 300,
851
- children: [{ agent: "worker", index: 0, status: "running", currentTool: "bash" }],
852
- },
853
- {
854
- runId: "terminal",
855
- mode: "single",
856
- cwd: root,
857
- sessionId: "session-current",
858
- updatedAt: 200,
859
- children: [{ agent: "reviewer", index: 0, status: "completed", finalOutput: "done" }],
860
- },
861
- ],
862
- }, null, 2), "utf-8");
863
-
864
- const restored = stateForTest();
865
- restored.baseCwd = root;
866
- assert.equal(restoreForegroundRunHistory(restored, { resultsDir }), 1);
867
- assert.deepEqual([...restored.foregroundRuns!.keys()], ["terminal"]);
868
- assert.deepEqual(collectFleetSnapshot(restored).items.map((item) => item.key), ["foreground-recent:terminal:0"]);
869
-
870
- const state = stateForTest();
871
- state.foregroundRuns!.set("stale-running", {
872
- runId: "stale-running",
873
- mode: "single",
874
- cwd: root,
875
- sessionId: "session-current",
876
- updatedAt: 400,
877
- children: [{ agent: "worker", index: 0, status: "running" as never }],
878
- });
879
- persistForegroundRunHistory(state, { resultsDir });
880
- const persisted = JSON.parse(fs.readFileSync(path.join(resultsDir, "foreground-history.json"), "utf-8")) as { runs: Array<{ runId: string }> };
881
- assert.deepEqual(persisted.runs.map((run) => run.runId), ["terminal"]);
882
- } finally {
883
- fs.rmSync(root, { recursive: true, force: true });
884
- }
885
- });
886
-
887
- it("does not restore or persist oversized foreground resume contracts", () => {
888
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-foreground-contract-bound-"));
889
- try {
890
- const resultsDir = path.join(root, "results");
891
- fs.mkdirSync(resultsDir, { recursive: true });
892
- const oversizedContract = { outputSchema: { type: "object", description: "x".repeat(65 * 1024) } };
893
- fs.writeFileSync(path.join(resultsDir, "foreground-history.json"), JSON.stringify({
894
- version: 1,
895
- runs: [{
896
- runId: "oversized",
897
- mode: "single",
898
- cwd: root,
899
- sessionId: "session-current",
900
- updatedAt: 200,
901
- children: [{ agent: "worker", index: 0, status: "completed", resumeContract: oversizedContract }],
902
- }],
903
- }), "utf-8");
904
-
905
- const restored = stateForTest();
906
- assert.equal(restoreForegroundRunHistory(restored, { resultsDir }), 0);
907
- assert.equal(restored.foregroundRuns?.has("oversized"), false);
908
-
909
- const state = stateForTest();
910
- state.foregroundRuns!.set("oversized", {
911
- runId: "oversized",
912
- mode: "single",
913
- cwd: root,
914
- sessionId: "session-current",
915
- updatedAt: 200,
916
- children: [{ agent: "worker", index: 0, status: "completed", resumeContract: oversizedContract }],
917
- });
918
- persistForegroundRunHistory(state, { resultsDir });
919
- const persisted = JSON.parse(fs.readFileSync(path.join(resultsDir, "foreground-history.json"), "utf-8")) as { runs: Array<{ runId: string }> };
920
- assert.deepEqual(persisted.runs, []);
921
- } finally {
922
- fs.rmSync(root, { recursive: true, force: true });
923
- }
924
- });
925
-
926
- it("keeps restored foreground rows when output artifacts are unavailable and bounds history", () => {
927
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-foreground-missing-"));
928
- try {
929
- const resultsDir = path.join(root, "results");
930
- const cwd = path.join(root, "project");
931
- const artifactsRoot = getProjectArtifactsDir(cwd);
932
- const state = stateForTest();
933
- state.artifactDirPreference = "project";
934
- for (let index = 0; index < 3; index++) {
935
- const outputPath = path.join(artifactsRoot, "outputs", `run-${index}`, "output.md");
936
- fs.mkdirSync(path.dirname(outputPath), { recursive: true });
937
- fs.writeFileSync(outputPath, `output ${index}`, "utf-8");
938
- state.foregroundRuns!.set(`run-${index}`, {
939
- runId: `run-${index}`,
940
- mode: "single",
941
- cwd,
942
- sessionId: "session-current",
943
- updatedAt: index,
944
- children: [{ agent: "worker", index: 0, status: "completed", savedOutputPath: outputPath }],
945
- });
946
- }
947
- persistForegroundRunHistory(state, { resultsDir, limit: 2 });
948
- fs.rmSync(path.join(artifactsRoot, "outputs", "run-2", "output.md"), { force: true });
949
-
950
- const restored = stateForTest();
951
- restored.baseCwd = cwd;
952
- restored.artifactDirPreference = "project";
953
- assert.equal(restoreForegroundRunHistory(restored, { resultsDir, limit: 2 }), 2);
954
- assert.deepEqual([...restored.foregroundRuns!.keys()], ["run-2", "run-1"]);
955
-
956
- const component = new SubagentFleetComponent(
957
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
958
- theme as never,
959
- restored,
960
- () => {},
961
- { initialKey: "foreground-recent:run-2:0", refreshMs: 60_000 },
962
- );
963
- try {
964
- assert.ok(component.render(100).some((line) => line.includes("output artifact unavailable")));
965
- } finally {
966
- component.dispose();
967
- }
968
- } finally {
969
- fs.rmSync(root, { recursive: true, force: true });
970
- }
971
- });
972
-
973
- it("uses the full 85% terminal-height budget for the inspector", () => {
974
- const component = new SubagentFleetComponent(
975
- { terminal: { rows: 60, columns: 100 }, requestRender() {} } as never,
976
- theme as never,
977
- stateForTest(),
978
- () => {},
979
- { refreshMs: 60_000 },
980
- );
981
- try {
982
- assert.equal(component.render(100).length, 51);
983
- } finally {
984
- component.dispose();
985
- }
986
- });
987
-
988
- it("renders selectable transcript detail and completed artifact paths within terminal width", () => {
989
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-render-"));
990
- try {
991
- const asyncDir = writeAsyncRun(root, { id: "async-finished", state: "complete", contexts: ["fork"], output: "FINAL ASYNC OUTPUT" });
992
- const state = stateForTest();
993
- let closed = false;
994
- let renderRequests = 0;
995
- const tui = { terminal: { rows: 32, columns: 100 }, requestRender: () => { renderRequests++; } };
996
- const component = new SubagentFleetComponent(
997
- tui as never,
998
- theme as never,
999
- state,
1000
- () => { closed = true; },
1001
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000 },
1002
- );
1003
- try {
1004
- const lines = component.render(100);
1005
- assert.ok(lines.some((line) => line.includes("FINAL ASYNC OUTPUT")));
1006
- assert.ok(lines.some((line) => line.includes("output-0.log")));
1007
- assert.ok(lines.some((line) => line.includes("worker") && line.includes("[fork]")));
1008
- assert.ok(lines.some((line) => line.includes("worker.jsonl")));
1009
- for (const line of lines) assert.ok(visibleWidth(line) <= 100, `line exceeded width: ${line}`);
1010
- tui.terminal.rows = 10;
1011
- assert.ok(component.render(100).length <= 8, "short-terminal render should fit the overlay's 85% height cap");
1012
- component.handleInput("\x1b[6~");
1013
- component.handleInput("r");
1014
- assert.ok(renderRequests >= 2);
1015
- component.handleInput("\x1b");
1016
- assert.equal(closed, true);
1017
- } finally {
1018
- component.dispose();
1019
- }
1020
- } finally {
1021
- fs.rmSync(root, { recursive: true, force: true });
1022
- }
1023
- });
1024
-
1025
- it("passes current-session trusted roots to async session transcript fallback", () => {
1026
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-session-fallback-"));
1027
- try {
1028
- const asyncDir = writeAsyncRun(root, { id: "async-session-fallback" });
1029
- const sessionFile = path.join(asyncDir, "worker.jsonl");
1030
- fs.writeFileSync(sessionFile, `${JSON.stringify({ role: "assistant", content: "TRUSTED SESSION FALLBACK" })}\n`, "utf-8");
1031
- const state = stateForTest();
1032
- state.trustedSessionRoots = [asyncDir];
1033
- const component = new SubagentFleetComponent(
1034
- { terminal: { rows: 32, columns: 100 }, requestRender() {} } as never,
1035
- theme as never,
1036
- state,
1037
- () => {},
1038
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000 },
1039
- );
1040
- try {
1041
- const rendered = component.render(100).join("\n");
1042
- assert.match(rendered, /TRUSTED SESSION FALLBACK/);
1043
- assert.doesNotMatch(rendered, /without a trusted root|Session read failed/);
1044
- } finally {
1045
- component.dispose();
1046
- }
1047
- } finally {
1048
- fs.rmSync(root, { recursive: true, force: true });
1049
- }
1050
- });
1051
-
1052
- it("previews an exact runtime-recorded workflow session under the Pi sessions base", () => {
1053
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-recorded-session-"));
1054
- try {
1055
- const asyncDir = writeAsyncRun(root, { id: "async-recorded-session" });
1056
- const sessionsBase = path.join(root, "sessions");
1057
- const projectDir = path.join(sessionsBase, "project");
1058
- fs.mkdirSync(projectDir, { recursive: true });
1059
- const sessionFile = path.join(projectDir, "workflow-child.jsonl");
1060
- fs.writeFileSync(sessionFile, `${JSON.stringify({ role: "assistant", content: "RECORDED WORKFLOW SESSION" })}\n`, "utf-8");
1061
- const statusPath = path.join(asyncDir, "status.json");
1062
- const status = JSON.parse(fs.readFileSync(statusPath, "utf-8")) as { sessionFile?: string; steps?: Array<{ sessionFile?: string; transcriptPath?: string }> };
1063
- status.sessionFile = sessionFile;
1064
- status.steps![0]!.sessionFile = sessionFile;
1065
- delete status.steps![0]!.transcriptPath;
1066
- fs.writeFileSync(statusPath, JSON.stringify(status, null, 2), "utf-8");
1067
-
1068
- const state = stateForTest();
1069
- state.trustedSessionRoots = [];
1070
- state.trustedSessionFileRoot = sessionsBase;
1071
- const component = new SubagentFleetComponent(
1072
- { terminal: { rows: 32, columns: 100 }, requestRender() {} } as never,
1073
- theme as never,
1074
- state,
1075
- () => {},
1076
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000 },
1077
- );
1078
- try {
1079
- const rendered = component.render(100).join("\n");
1080
- assert.match(rendered, /RECORDED WORKFLOW SESSION/);
1081
- assert.doesNotMatch(rendered, /without a trusted root|Session read failed/);
1082
- } finally {
1083
- component.dispose();
1084
- }
1085
- } finally {
1086
- fs.rmSync(root, { recursive: true, force: true });
1087
- }
1088
- });
1089
-
1090
- it("renders structured tool activity and assistant Markdown when a child transcript is available", () => {
1091
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-structured-"));
1092
- try {
1093
- const longResponse = `## Finding\n\n${Array.from({ length: 40 }, (_, index) => `detail ${index}`).join("\n")}\n\n\`\`\`ts\nconst fleet = true;\n\`\`\``;
1094
- writeAsyncRun(root, {
1095
- id: "async-structured",
1096
- state: "complete",
1097
- output: "RAW FALLBACK SHOULD NOT RENDER",
1098
- transcript: [
1099
- { recordType: "message", sourceEventType: "initial_prompt", role: "user", text: "injected task" },
1100
- { recordType: "tool_start", toolName: "read", argsPreview: "src/tui/fleet.ts" },
1101
- { recordType: "tool_end", toolName: "read" },
1102
- { recordType: "message", role: "toolResult", text: "very large tool payload", message: { toolName: "read", isError: false } },
1103
- { recordType: "message", role: "assistant", model: "test-model", text: longResponse },
1104
- ],
1105
- });
1106
- const state = stateForTest();
1107
- state.baseCwd = root;
1108
- const component = new SubagentFleetComponent(
1109
- { terminal: { rows: 32, columns: 100 }, requestRender() {} } as never,
1110
- theme as never,
1111
- state,
1112
- () => {},
1113
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000, markdownTheme },
1114
- );
1115
- try {
1116
- let lines = component.render(100);
1117
- assert.ok(lines.some((line) => line.includes("Conversation") && line.includes("assistant response")));
1118
- assert.ok(lines.some((line) => line.includes("const fleet = true;")));
1119
- assert.ok(!lines.some((line) => line.includes("very large tool payload")));
1120
- assert.ok(!lines.some((line) => line.includes("RAW FALLBACK SHOULD NOT RENDER")));
1121
- const bottomLines = lines;
1122
- const realDateNow = Date.now;
1123
- const laterNow = realDateNow() + 2_000;
1124
- Date.now = () => laterNow;
1125
- try {
1126
- component.handleInput("K");
1127
- lines = component.render(100);
1128
- assert.notDeepEqual(lines, bottomLines, "Shift+K should scroll the conversation up by one line");
1129
- component.handleInput("J");
1130
- lines = component.render(100);
1131
- assert.deepEqual(lines, bottomLines, "Shift+J should scroll the conversation back down by one line");
1132
- } finally {
1133
- Date.now = realDateNow;
1134
- }
1135
- for (let page = 0; page < 4; page++) component.handleInput("\x1b[5~");
1136
- lines = component.render(100);
1137
- assert.ok(lines.some((line) => line.includes("Conversation") && line.includes("assistant response")), "the conversation header should remain pinned while scrolling");
1138
- assert.ok(lines.some((line) => line.includes("✓ read") && line.includes("src/tui/fleet.ts")), "page up should reveal compact tool activity");
1139
- assert.ok(lines.some((line) => line.includes("Assistant") && line.includes("test-model")), "page up should reveal the rendered assistant message header");
1140
- for (const renderWidth of [60, 80, 100]) {
1141
- for (const line of component.render(renderWidth)) {
1142
- assert.ok(visibleWidth(line) <= renderWidth, `line exceeded ${renderWidth} columns: ${line}`);
1143
- }
1144
- }
1145
- } finally {
1146
- component.dispose();
1147
- }
1148
- } finally {
1149
- fs.rmSync(root, { recursive: true, force: true });
1150
- }
1151
- });
1152
-
1153
- it("uses parent-tracked async state and cwd without rescanning status", () => {
1154
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-async-cwd-"));
1155
- try {
1156
- const asyncDir = path.join(root, "async-custom-cwd");
1157
- const customCwd = path.join(root, "custom-cwd");
1158
- const artifactsRoot = getProjectArtifactsDir(customCwd);
1159
- fs.mkdirSync(asyncDir, { recursive: true });
1160
- fs.mkdirSync(artifactsRoot, { recursive: true });
1161
- const transcriptPath = path.join(artifactsRoot, "async-custom-cwd_worker_transcript.jsonl");
1162
- fs.writeFileSync(transcriptPath, `${JSON.stringify({ recordType: "message", role: "assistant", text: "Custom cwd async result" })}\n`, "utf-8");
1163
- fs.writeFileSync(path.join(asyncDir, "status.json"), "{in-flight status", "utf-8");
1164
- const state = stateForTest();
1165
- state.baseCwd = path.join(root, "parent-cwd");
1166
- state.artifactDirPreference = "project";
1167
- state.asyncJobs.set("async-custom-cwd", {
1168
- asyncId: "async-custom-cwd",
1169
- asyncDir,
1170
- cwd: customCwd,
1171
- sessionId: "session-current",
1172
- status: "running",
1173
- mode: "single",
1174
- startedAt: 100,
1175
- updatedAt: 200,
1176
- steps: [{ agent: "worker", index: 0, status: "running", transcriptPath }],
1177
- });
1178
- const component = new SubagentFleetComponent(
1179
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1180
- theme as never,
1181
- state,
1182
- () => {},
1183
- { refreshMs: 60_000, markdownTheme },
1184
- );
1185
- try {
1186
- assert.ok(component.render(100).some((line) => line.includes("Custom cwd async result")));
1187
- } finally {
1188
- component.dispose();
1189
- }
1190
- } finally {
1191
- fs.rmSync(root, { recursive: true, force: true });
1192
- }
1193
- });
1194
-
1195
- it("toggles bounded tool output expansion with x and Ctrl+O", () => {
1196
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-tool-toggle-"));
1197
- try {
1198
- writeAsyncRun(root, {
1199
- id: "async-tools",
1200
- state: "complete",
1201
- transcript: [
1202
- { recordType: "tool_start", toolCallId: "read-1", toolName: "read", argsPreview: "src/a.ts", argsPayload: JSON.stringify({ path: "src/a.ts" }), ts: 1 },
1203
- { recordType: "tool_end", toolCallId: "read-1", toolName: "read", ts: 2 },
1204
- { recordType: "message", role: "toolResult", toolCallId: "read-1", toolName: "read", text: "alpha\nbeta\ngamma", isError: false, ts: 3 },
1205
- ],
1206
- });
1207
- const state = stateForTest();
1208
- state.baseCwd = root;
1209
- let renderRequests = 0;
1210
- const component = new SubagentFleetComponent(
1211
- { terminal: { rows: 32, columns: 100 }, requestRender() { renderRequests++; } } as never,
1212
- theme as never,
1213
- state,
1214
- () => {},
1215
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000, markdownTheme },
1216
- );
1217
- try {
1218
- let lines = component.render(100);
1219
- assert.ok(lines.some((line) => line.includes("alpha beta gamma") && line.includes("x to expand")));
1220
- component.handleInput("x");
1221
- lines = component.render(100);
1222
- assert.ok(lines.some((line) => line.includes("alpha") && !line.includes("beta")));
1223
- assert.ok(lines.some((line) => line.includes("x to collapse")));
1224
- component.handleInput("\x0f");
1225
- lines = component.render(100);
1226
- assert.ok(lines.some((line) => line.includes("alpha beta gamma") && line.includes("x to expand")));
1227
- fs.appendFileSync(
1228
- path.join(root, "async-tools", "transcript-0.jsonl"),
1229
- `${JSON.stringify({ recordType: "message", role: "assistant", text: "Cache refreshed after append", ts: 4 })}\n`,
1230
- "utf-8",
1231
- );
1232
- lines = component.render(100);
1233
- assert.ok(lines.some((line) => line.includes("Cache refreshed after append")));
1234
- assert.equal(renderRequests, 2);
1235
- } finally {
1236
- component.dispose();
1237
- }
1238
- } finally {
1239
- fs.rmSync(root, { recursive: true, force: true });
1240
- }
1241
- });
1242
-
1243
- it("renders the selected foreground parallel child's structured transcript", () => {
1244
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-foreground-"));
1245
- try {
1246
- const state = stateForTest();
1247
- state.baseCwd = path.join(root, "parent-cwd");
1248
- state.artifactDirPreference = "project";
1249
- const effectiveCwd = path.join(root, "effective-cwd");
1250
- const now = Date.now();
1251
- state.foregroundControls.set("foreground-live", {
1252
- runId: "foreground-live",
1253
- mode: "parallel",
1254
- startedAt: now - 1_000,
1255
- updatedAt: now,
1256
- cwd: effectiveCwd,
1257
- currentAgent: "reviewer",
1258
- currentIndex: 1,
1259
- description: "Review the active task",
1260
- activeChildren: new Map([
1261
- [0, { index: 0, agent: "worker", description: "Implement the active task", startedAt: now - 900, updatedAt: now - 100, tokens: 120, model: "provider/live-model", thinking: "high" }],
1262
- [1, { index: 1, agent: "reviewer", description: "Review the active task", startedAt: now - 800, updatedAt: now, tokens: 240 }],
1263
- ]),
1264
- });
1265
- const artifactsRoot = getProjectArtifactsDir(effectiveCwd);
1266
- fs.mkdirSync(artifactsRoot, { recursive: true });
1267
- const transcriptPath = getArtifactPaths(artifactsRoot, "foreground-live", "worker", 0).transcriptPath;
1268
- fs.writeFileSync(transcriptPath, `${JSON.stringify({ recordType: "message", role: "assistant", model: "test-model", text: "**Worker live result**" })}\n`, "utf-8");
1269
- const component = new SubagentFleetComponent(
1270
- { terminal: { rows: 28, columns: 90 }, requestRender() {} } as never,
1271
- theme as never,
1272
- state,
1273
- () => {},
1274
- { initialKey: "foreground-active:foreground-live:0", refreshMs: 60_000, markdownTheme },
1275
- );
1276
- try {
1277
- const lines = component.render(90);
1278
- assert.ok(lines.some((line) => line.includes("worker")));
1279
- assert.ok(lines.some((line) => line.includes("reviewer")));
1280
- assert.ok(lines.some((line) => line.includes("foreground · live")));
1281
- assert.ok(lines.some((line) => line.includes("live-model · thinking high")));
1282
- assert.ok(lines.every((line) => !line.includes("Implement the active task") && !line.includes("Review the active task")));
1283
- assert.ok(lines.some((line) => line.includes("Conversation") && line.includes("assistant response")));
1284
- assert.ok(lines.some((line) => line.includes("Worker live result")));
1285
- } finally {
1286
- component.dispose();
1287
- }
1288
- } finally {
1289
- fs.rmSync(root, { recursive: true, force: true });
1290
- }
1291
- });
1292
-
1293
- it("renders configured session and temp transcripts for active foreground, completed foreground, and async children", () => {
1294
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-artifact-roots-"));
1295
- const createdTranscriptPaths: string[] = [];
1296
- try {
1297
- for (const preference of ["session", "temp"] as const) {
1298
- const baseCwd = path.join(root, `${preference}-cwd`);
1299
- const sessionFile = path.join(root, `${preference}-session`, "session.jsonl");
1300
- const artifactsRoot = getArtifactsDir(sessionFile, baseCwd, preference);
1301
- const prefix = `${path.basename(root)}-${preference}`;
1302
- fs.mkdirSync(artifactsRoot, { recursive: true });
1303
- const transcript = (runId: string, agent: string, index: number, text: string) => {
1304
- const transcriptPath = getArtifactPaths(artifactsRoot, runId, agent, index).transcriptPath;
1305
- fs.writeFileSync(transcriptPath, `${JSON.stringify({ recordType: "message", role: "assistant", text })}\n`, "utf-8");
1306
- createdTranscriptPaths.push(transcriptPath);
1307
- return transcriptPath;
1308
- };
1309
-
1310
- const activeId = `${prefix}-active`;
1311
- const recentId = `${prefix}-recent`;
1312
- const asyncId = `${prefix}-async`;
1313
- transcript(activeId, "worker", 0, `${preference} active foreground transcript`);
1314
- const recentTranscript = transcript(recentId, "reviewer", 0, `${preference} completed foreground transcript`);
1315
- const asyncTranscript = transcript(asyncId, "scout", 0, `${preference} async transcript`);
1316
-
1317
- const state = stateForTest();
1318
- state.baseCwd = baseCwd;
1319
- state.artifactDirPreference = preference;
1320
- state.parentSessionFile = sessionFile;
1321
- state.foregroundControls.set(activeId, {
1322
- runId: activeId,
1323
- mode: "single",
1324
- cwd: baseCwd,
1325
- startedAt: 100,
1326
- updatedAt: 300,
1327
- currentAgent: "worker",
1328
- currentIndex: 0,
1329
- });
1330
- state.foregroundRuns!.set(recentId, {
1331
- runId: recentId,
1332
- mode: "single",
1333
- cwd: baseCwd,
1334
- sessionId: "session-current",
1335
- updatedAt: 200,
1336
- children: [{ agent: "reviewer", index: 0, status: "completed", transcriptPath: recentTranscript, model: "provider/recent-model", thinking: "xhigh" }],
1337
- });
1338
- state.asyncJobs.set(asyncId, {
1339
- asyncId,
1340
- asyncDir: path.join(root, `${preference}-async-run`),
1341
- cwd: baseCwd,
1342
- sessionId: "session-current",
1343
- status: "complete",
1344
- mode: "single",
1345
- startedAt: 100,
1346
- updatedAt: 250,
1347
- steps: [{ agent: "scout", index: 0, status: "complete", transcriptPath: asyncTranscript }],
1348
- });
1349
-
1350
- for (const [initialKey, expected] of [
1351
- [`foreground-active:${activeId}:0`, `${preference} active foreground transcript`],
1352
- [`foreground-recent:${recentId}:0`, `${preference} completed foreground transcript`],
1353
- [`async:${asyncId}:0`, `${preference} async transcript`],
1354
- ] as const) {
1355
- const component = new SubagentFleetComponent(
1356
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1357
- theme as never,
1358
- state,
1359
- () => {},
1360
- { initialKey, refreshMs: 60_000, markdownTheme },
1361
- );
1362
- try {
1363
- const lines = component.render(100);
1364
- assert.ok(lines.some((line) => line.includes(expected)), `missing ${expected}`);
1365
- if (initialKey.startsWith("foreground-recent:")) {
1366
- assert.ok(lines.some((line) => line.includes("recent-model · thinking xhigh")));
1367
- }
1368
- } finally {
1369
- component.dispose();
1370
- }
1371
- }
1372
- }
1373
- } finally {
1374
- for (const transcriptPath of createdTranscriptPaths) fs.rmSync(transcriptPath, { force: true });
1375
- fs.rmSync(root, { recursive: true, force: true });
1376
- }
1377
- });
1378
-
1379
- it("shows disk-only current-session async runs when the overlay opens", async () => {
1380
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-overlay-reconcile-"));
1381
- try {
1382
- writeAsyncRun(root, { id: "disk-only", agents: ["worker"] });
1383
- const state = stateForTest();
1384
- let rendered = "";
1385
- const ctx = {
1386
- hasUI: true,
1387
- ui: {
1388
- setWidget() {},
1389
- async custom(factory: (tui: unknown, theme: unknown, keybindings: unknown, done: (result: undefined) => void) => SubagentFleetComponent) {
1390
- const component = factory({ terminal: { rows: 32 }, requestRender() {} }, theme, undefined, () => {});
1391
- try {
1392
- rendered = component.render(100).join("\n");
1393
- } finally {
1394
- component.dispose();
1395
- }
1396
- },
1397
- },
1398
- };
1399
-
1400
- await openSubagentFleet(ctx as never, state, { asyncDirRoot: root, resultsDir: path.join(root, "results") });
1401
- assert.match(rendered, /worker/);
1402
- } finally {
1403
- fs.rmSync(root, { recursive: true, force: true });
1404
- }
1405
- });
1406
-
1407
- it("focuses the Herdr pane the operator opens with the inspect key", async () => {
1408
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-inspect-focus-"));
1409
- try {
1410
- const asyncDir = writeAsyncRun(root, { id: "run-focus", agents: ["worker"] });
1411
- const state = stateForTest();
1412
- state.asyncJobs.set("run-focus", {
1413
- asyncId: "run-focus",
1414
- asyncDir,
1415
- status: "running",
1416
- mode: "single",
1417
- agents: ["worker"],
1418
- startedAt: 100,
1419
- updatedAt: 200,
1420
- });
1421
- const calls: string[][] = [];
1422
- const herdrClient: HerdrClient = {
1423
- run: async <T>(args: string[]) => {
1424
- calls.push(args);
1425
- if (args[0] === "--version") return { ok: true, data: "herdr 0.7.5" as T };
1426
- if (args[0] === "pane" && args[1] === "split") return { ok: true, data: { pane: { pane_id: "w1:p9" } } as T };
1427
- return { ok: true, data: {} as T };
1428
- },
1429
- };
1430
- const ctx = {
1431
- hasUI: true,
1432
- ui: {
1433
- setWidget() {},
1434
- async custom(factory: (tui: unknown, theme: unknown, keybindings: unknown, done: (result: undefined) => void) => SubagentFleetComponent) {
1435
- const component = factory({ terminal: { rows: 32, columns: 100 }, requestRender() {} }, theme, undefined, () => {});
1436
- try {
1437
- component.render(100);
1438
- component.handleInput("H");
1439
- for (let attempt = 0; attempt < 500 && !calls.some((args) => args[0] === "pane" && args[1] === "split"); attempt++) {
1440
- await new Promise((resolve) => setImmediate(resolve));
1441
- }
1442
- } finally {
1443
- component.dispose();
1444
- }
1445
- },
1446
- },
1447
- };
1448
-
1449
- await openSubagentFleet(ctx as never, state, { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 60_000, herdrClient });
1450
- const split = calls.find((args) => args[0] === "pane" && args[1] === "split");
1451
- assert.ok(split, `no pane split call: ${JSON.stringify(calls)}`);
1452
- assert.deepEqual(split.slice(-1), ["--focus"]);
1453
- } finally {
1454
- fs.rmSync(root, { recursive: true, force: true });
1455
- }
1456
- });
1457
-
1458
- it("suppresses the status widget for the full inspector lifecycle", async () => {
1459
- const state = stateForTest();
1460
- let hidden = 0;
1461
- let observedOpen = false;
1462
- const ctx = {
1463
- hasUI: true,
1464
- ui: {
1465
- setWidget(key: string, content: unknown) {
1466
- assert.equal(key, FLEET_STATUS_WIDGET_KEY);
1467
- assert.equal(content, undefined);
1468
- hidden++;
1469
- },
1470
- async custom() {
1471
- observedOpen = state.fleetInspectorOpen === true;
1472
- throw new Error("overlay closed");
1473
- },
1474
- },
1475
- };
1476
-
1477
- await assert.rejects(openSubagentFleet(ctx as never, state), /overlay closed/);
1478
- assert.equal(hidden, 1);
1479
- assert.equal(observedOpen, true);
1480
- assert.equal(state.fleetInspectorOpen, false);
1481
- });
1482
-
1483
- it("focuses the selected child and renders raw foreground model details", () => {
1484
- const state = stateForTest();
1485
- state.foregroundControls.set("run-worker", {
1486
- runId: "run-worker",
1487
- mode: "single",
1488
- startedAt: 10,
1489
- updatedAt: 20,
1490
- currentAgent: "worker",
1491
- currentIndex: 0,
1492
- model: "provider/raw-model",
1493
- thinking: "medium",
1494
- });
1495
- state.foregroundControls.set("run-reviewer", {
1496
- runId: "run-reviewer",
1497
- mode: "single",
1498
- startedAt: 11,
1499
- updatedAt: 21,
1500
- currentAgent: "reviewer",
1501
- currentIndex: 0,
1502
- });
1503
- state.foregroundRuns!.set("run-recent", {
1504
- runId: "run-recent",
1505
- mode: "single",
1506
- cwd: process.cwd(),
1507
- sessionId: "session-current",
1508
- updatedAt: 19,
1509
- children: [{ agent: "reviewer", index: 0, status: "completed", model: "provider/recent-raw-model", thinking: "xhigh" }],
1510
- });
1511
- const component = new SubagentFleetComponent(
1512
- { terminal: { rows: 28, columns: 90 }, requestRender() {} } as never,
1513
- theme as never,
1514
- state,
1515
- () => {},
1516
- { initialKey: "foreground-active:run-worker:0", refreshMs: 60_000 },
1517
- );
1518
- try {
1519
- const lines = component.render(90);
1520
- const selectedLine = lines.find((line) => line.includes("›"));
1521
- assert.ok(selectedLine?.includes("run-work"), `unexpected selected row: ${selectedLine}`);
1522
- assert.ok(lines.some((line) => line.includes("Model: raw-model · thinking medium")));
1523
- } finally {
1524
- component.dispose();
1525
- }
1526
-
1527
- const recentComponent = new SubagentFleetComponent(
1528
- { terminal: { rows: 28, columns: 90 }, requestRender() {} } as never,
1529
- theme as never,
1530
- state,
1531
- () => {},
1532
- { initialKey: "foreground-recent:run-recent:0", refreshMs: 60_000 },
1533
- );
1534
- try {
1535
- assert.ok(recentComponent.render(90).some((line) => line.includes("Model: recent-raw-model · thinking xhigh")));
1536
- } finally {
1537
- recentComponent.dispose();
1538
- }
1539
- });
1540
-
1541
- it("steers the selected async child with an inline message", async () => {
1542
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-steer-"));
1543
- try {
1544
- const asyncDir = writeAsyncRun(root, { id: "async-steer", agents: ["worker", "reviewer"] });
1545
- const state = stateForTest();
1546
- const calls: Array<{ runId: string; asyncDir: string; index?: number; message: string; mode: string }> = [];
1547
- const component = new SubagentFleetComponent(
1548
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1549
- theme as never,
1550
- state,
1551
- () => {},
1552
- {
1553
- asyncDirRoot: root,
1554
- resultsDir: path.join(root, "results"),
1555
- initialKey: "async:async-steer:0",
1556
- refreshMs: 60_000,
1557
- actions: {
1558
- async steer(input) {
1559
- calls.push(input);
1560
- return { text: "Steering queued." };
1561
- },
1562
- stop() {
1563
- return { text: "unused" };
1564
- },
1565
- },
1566
- },
1567
- );
1568
- try {
1569
- component.handleInput("s");
1570
- assert.ok(component.render(100).some((line) => line.includes("Steer message (steer):")));
1571
- component.handleInput("\t");
1572
- assert.ok(component.render(100).some((line) => line.includes("Steer message (follow_up):")));
1573
- for (const char of "please continue") component.handleInput(char);
1574
- component.handleInput("\r");
1575
- await new Promise((resolve) => setImmediate(resolve));
1576
- assert.deepEqual(calls, [{ runId: "async-steer", asyncDir, index: 0, message: "please continue", mode: "follow_up" }]);
1577
- assert.ok(component.render(100).some((line) => line.includes("Steering queued.")));
1578
- } finally {
1579
- component.dispose();
1580
- }
1581
- } finally {
1582
- fs.rmSync(root, { recursive: true, force: true });
1583
- }
1584
- });
1585
-
1586
- it("opens the selected async child in a Herdr inspector", async () => {
1587
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-herdr-"));
1588
- try {
1589
- const asyncDir = writeAsyncRun(root, { id: "async-herdr" });
1590
- const calls: Array<{ runId: string; asyncDir: string; index?: number }> = [];
1591
- const component = new SubagentFleetComponent(
1592
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1593
- theme as never,
1594
- stateForTest(),
1595
- () => {},
1596
- {
1597
- asyncDirRoot: root,
1598
- resultsDir: path.join(root, "results"),
1599
- refreshMs: 60_000,
1600
- actions: {
1601
- async steer() { return { text: "unused" }; },
1602
- stop() { return { text: "unused" }; },
1603
- async inspect(input) { calls.push(input); return { text: "Inspector opened." }; },
1604
- },
1605
- },
1606
- );
1607
- try {
1608
- component.handleInput("H");
1609
- await new Promise((resolve) => setImmediate(resolve));
1610
- assert.deepEqual(calls, [{ runId: "async-herdr", asyncDir, index: 0 }]);
1611
- assert.ok(component.render(100).some((line) => line.includes("Inspector opened.")));
1612
- } finally {
1613
- component.dispose();
1614
- }
1615
- } finally {
1616
- fs.rmSync(root, { recursive: true, force: true });
1617
- }
1618
- });
1619
-
1620
- it("confirms stop for the selected async child before calling the action", async () => {
1621
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-stop-"));
1622
- try {
1623
- const asyncDir = writeAsyncRun(root, { id: "async-stop" });
1624
- const state = stateForTest();
1625
- const calls: Array<{ runId: string; asyncDir: string; index?: number }> = [];
1626
- const component = new SubagentFleetComponent(
1627
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1628
- theme as never,
1629
- state,
1630
- () => {},
1631
- {
1632
- asyncDirRoot: root,
1633
- resultsDir: path.join(root, "results"),
1634
- refreshMs: 60_000,
1635
- actions: {
1636
- async steer() {
1637
- return { text: "unused" };
1638
- },
1639
- stop(input) {
1640
- calls.push(input);
1641
- return { text: "Stop requested." };
1642
- },
1643
- },
1644
- },
1645
- );
1646
- try {
1647
- component.handleInput("D");
1648
- assert.ok(component.render(100).some((line) => line.includes("Confirm stop for async run async-stop")));
1649
- component.handleInput("n");
1650
- assert.deepEqual(calls, []);
1651
- component.handleInput("D");
1652
- component.handleInput("y");
1653
- await new Promise((resolve) => setImmediate(resolve));
1654
- assert.deepEqual(calls, [{ runId: "async-stop", asyncDir, index: 0 }]);
1655
- assert.ok(component.render(100).some((line) => line.includes("Stop requested.")));
1656
- } finally {
1657
- component.dispose();
1658
- }
1659
- } finally {
1660
- fs.rmSync(root, { recursive: true, force: true });
1661
- }
1662
- });
1663
-
1664
- it("explains unavailable controls for completed async children", () => {
1665
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-unavailable-"));
1666
- try {
1667
- writeAsyncRun(root, { id: "async-complete", state: "complete" });
1668
- const state = stateForTest();
1669
- const component = new SubagentFleetComponent(
1670
- { terminal: { rows: 28, columns: 100 }, requestRender() {} } as never,
1671
- theme as never,
1672
- state,
1673
- () => {},
1674
- {
1675
- asyncDirRoot: root,
1676
- resultsDir: path.join(root, "results"),
1677
- refreshMs: 60_000,
1678
- actions: {
1679
- async steer() {
1680
- return { text: "unused" };
1681
- },
1682
- stop() {
1683
- return { text: "unused" };
1684
- },
1685
- },
1686
- },
1687
- );
1688
- try {
1689
- component.handleInput("s");
1690
- assert.ok(component.render(100).some((line) => line.includes("Selected child is complete")));
1691
- } finally {
1692
- component.dispose();
1693
- }
1694
- } finally {
1695
- fs.rmSync(root, { recursive: true, force: true });
1696
- }
1697
- });
1698
-
1699
- it("periodically redraws only while the overlay remains open", (t) => {
1700
- t.mock.timers.enable({ apis: ["setTimeout"] });
1701
- const state = stateForTest();
1702
- let renderRequests = 0;
1703
- let closed = false;
1704
- const tui = { terminal: { rows: 28, columns: 90 }, requestRender: () => { renderRequests++; } };
1705
- const component = new SubagentFleetComponent(
1706
- tui as never,
1707
- theme as never,
1708
- state,
1709
- () => { closed = true; },
1710
- { refreshMs: 10 },
1711
- );
1712
- t.mock.timers.tick(249);
1713
- assert.equal(renderRequests, 0, "refresh cadence is bounded away from a hot loop");
1714
- t.mock.timers.tick(1);
1715
- assert.equal(renderRequests, 1);
1716
- component.handleInput("\x1b");
1717
- assert.equal(closed, true);
1718
- t.mock.timers.tick(1_000);
1719
- assert.equal(renderRequests, 1, "closing cancels periodic redraws");
1720
-
1721
- const disposed = new SubagentFleetComponent(
1722
- tui as never,
1723
- theme as never,
1724
- state,
1725
- () => {},
1726
- { refreshMs: 250 },
1727
- );
1728
- disposed.dispose();
1729
- t.mock.timers.tick(1_000);
1730
- assert.equal(renderRequests, 1, "disposing cancels periodic redraws");
1731
- });
1732
-
1733
- it("refreshes the roster while the overlay remains open", async () => {
1734
- const root = fs.mkdtempSync(path.join(os.tmpdir(), "pi-fleet-refresh-"));
1735
- try {
1736
- const state = stateForTest();
1737
- let renderRequests = 0;
1738
- const tui = { terminal: { rows: 28, columns: 90 }, requestRender: () => { renderRequests++; } };
1739
- const component = new SubagentFleetComponent(
1740
- tui as never,
1741
- theme as never,
1742
- state,
1743
- () => {},
1744
- { asyncDirRoot: root, resultsDir: path.join(root, "results"), refreshMs: 250 },
1745
- );
1746
- let invalidations = 0;
1747
- const originalInvalidate = component.invalidate.bind(component);
1748
- component.invalidate = () => {
1749
- invalidations++;
1750
- originalInvalidate();
1751
- };
1752
- try {
1753
- assert.ok(component.render(90).some((line) => line.includes("No tracked children")));
1754
- const initialOutput = Array.from({ length: 40 }, (_, index) => `output line ${index}`).join("\n");
1755
- const asyncDir = writeAsyncRun(root, { id: "appeared-live", output: initialOutput });
1756
- await new Promise((resolve) => setTimeout(resolve, 275));
1757
- let lines = component.render(90);
1758
- assert.ok(lines.some((line) => line.includes("appeared")));
1759
- assert.ok(lines.some((line) => line.includes("output line 39")));
1760
- fs.appendFileSync(path.join(asyncDir, "output-0.log"), "\nLATEST LIVE OUTPUT", "utf-8");
1761
- await new Promise((resolve) => setTimeout(resolve, 35));
1762
- lines = component.render(90);
1763
- assert.ok(lines.some((line) => line.includes("LATEST LIVE OUTPUT")), "live transcript should keep following new output");
1764
- assert.ok(renderRequests > 0);
1765
- assert.ok(invalidations > 0, "live refresh must invalidate cached TUI frames before rendering");
1766
- } finally {
1767
- component.dispose();
1768
- }
1769
- } finally {
1770
- fs.rmSync(root, { recursive: true, force: true });
1771
- }
1772
- });
1773
- });