@selesai/code 0.13.39 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1401) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/bun/runtime-setup.js +4 -1
  3. package/dist/cli/args.d.ts +3 -1
  4. package/dist/cli/args.js +76 -33
  5. package/dist/cli/auth-check.d.ts +18 -0
  6. package/dist/cli/auth-check.js +49 -0
  7. package/dist/cli/credential-print.d.ts +5 -15
  8. package/dist/cli/credential-print.js +42 -82
  9. package/dist/cli/file-processor.d.ts +1 -1
  10. package/dist/cli/file-processor.js +2 -1
  11. package/dist/cli/list-models.d.ts +1 -1
  12. package/dist/cli/list-models.js +2 -2
  13. package/dist/cli/startup-ui.js +38 -30
  14. package/dist/config.d.ts +35 -6
  15. package/dist/config.js +95 -17
  16. package/dist/core/agent-session-custom-tools.test.js +64 -0
  17. package/dist/core/agent-session-length-continuation.test.js +7 -3
  18. package/dist/core/agent-session-runtime.js +2 -2
  19. package/dist/core/agent-session-services.d.ts +1 -0
  20. package/dist/core/agent-session-services.js +14 -0
  21. package/dist/core/agent-session.d.ts +180 -40
  22. package/dist/core/agent-session.js +1061 -485
  23. package/dist/core/auth-storage.d.ts +25 -15
  24. package/dist/core/auth-storage.js +242 -66
  25. package/dist/core/bash-executor.js +42 -52
  26. package/dist/core/bug-report.js +1 -1
  27. package/dist/core/cache-warmer.d.ts +1 -0
  28. package/dist/core/cache-warmer.js +15 -1
  29. package/dist/core/compaction/branch-summarization.js +3 -0
  30. package/dist/core/compaction/compaction.d.ts +3 -1
  31. package/dist/core/compaction/compaction.js +156 -79
  32. package/dist/core/compaction/utils.d.ts +2 -1
  33. package/dist/core/compaction/utils.js +25 -18
  34. package/dist/core/crash-log.d.ts +5 -0
  35. package/dist/core/crash-log.js +69 -0
  36. package/dist/core/defaults.d.ts +1 -1
  37. package/dist/core/defaults.js +1 -1
  38. package/dist/core/export-html/template.css +10 -0
  39. package/dist/core/export-html/template.js +72 -18
  40. package/dist/core/export-html/tool-renderer.d.ts +3 -3
  41. package/dist/core/export-html/tool-renderer.js +5 -3
  42. package/dist/core/extensions/index.d.ts +2 -2
  43. package/dist/core/extensions/index.js +1 -1
  44. package/dist/core/extensions/loader.js +138 -55
  45. package/dist/core/extensions/runner.d.ts +38 -5
  46. package/dist/core/extensions/runner.js +220 -7
  47. package/dist/core/extensions/types.d.ts +438 -51
  48. package/dist/core/extensions/types.js +3 -0
  49. package/dist/core/extensions/virtual-modules.js +6 -0
  50. package/dist/core/extensions/wrapper.d.ts +2 -2
  51. package/dist/core/extensions/wrapper.js +3 -3
  52. package/dist/core/footer-data-provider.d.ts +1 -1
  53. package/dist/core/footer-data-provider.js +1 -1
  54. package/dist/core/handoff.d.ts +0 -1
  55. package/dist/core/handoff.js +0 -1
  56. package/dist/core/http-dispatcher.js +5 -0
  57. package/dist/core/index.d.ts +1 -1
  58. package/dist/core/intercom-rpc.d.ts +135 -0
  59. package/dist/core/intercom-rpc.js +64 -0
  60. package/dist/core/keybindings.d.ts +25 -24
  61. package/dist/core/keybindings.js +27 -6
  62. package/dist/core/mcp-servers.d.ts +134 -0
  63. package/dist/core/mcp-servers.js +223 -0
  64. package/dist/core/model-config.d.ts +122 -5
  65. package/dist/core/model-config.js +35 -1
  66. package/dist/core/model-registry.d.ts +23 -15
  67. package/dist/core/model-registry.js +46 -22
  68. package/dist/core/model-resolver.d.ts +6 -5
  69. package/dist/core/model-resolver.js +51 -21
  70. package/dist/core/model-runtime.d.ts +73 -14
  71. package/dist/core/model-runtime.js +398 -104
  72. package/dist/core/models-store.d.ts +12 -7
  73. package/dist/core/models-store.js +85 -15
  74. package/dist/core/nested-tool-calls.d.ts +102 -0
  75. package/dist/core/nested-tool-calls.js +178 -0
  76. package/dist/core/package-manager.d.ts +8 -1
  77. package/dist/core/package-manager.js +144 -61
  78. package/dist/core/package-manager.test.js +5 -5
  79. package/dist/core/pi-manifest.d.ts +9 -0
  80. package/dist/core/pi-manifest.js +25 -0
  81. package/dist/core/prompt-templates.d.ts +6 -1
  82. package/dist/core/prompt-templates.js +61 -35
  83. package/dist/core/provider-composer.d.ts +44 -19
  84. package/dist/core/provider-composer.js +166 -64
  85. package/dist/core/radius.d.ts +2 -0
  86. package/dist/core/radius.js +2 -0
  87. package/dist/core/release-rpc.d.ts +137 -0
  88. package/dist/core/release-rpc.js +77 -0
  89. package/dist/core/remote-catalog-provider.d.ts +8 -1
  90. package/dist/core/remote-catalog-provider.js +25 -13
  91. package/dist/core/resource-loader.d.ts +12 -1
  92. package/dist/core/resource-loader.js +180 -45
  93. package/dist/core/runtime-credentials.d.ts +5 -5
  94. package/dist/core/runtime-credentials.js +11 -8
  95. package/dist/core/sdk.d.ts +16 -7
  96. package/dist/core/sdk.js +57 -24
  97. package/dist/core/session-manager.d.ts +45 -9
  98. package/dist/core/session-manager.js +124 -31
  99. package/dist/core/settings-diagnostics.d.ts +8 -0
  100. package/dist/core/settings-diagnostics.js +20 -0
  101. package/dist/core/settings-manager.d.ts +62 -32
  102. package/dist/core/settings-manager.js +147 -69
  103. package/dist/core/skills.d.ts +5 -2
  104. package/dist/core/skills.js +58 -35
  105. package/dist/core/slash-commands.js +2 -1
  106. package/dist/core/source-info.d.ts +8 -0
  107. package/dist/core/source-info.js +16 -0
  108. package/dist/core/subagent-rpc.d.ts +110 -0
  109. package/dist/core/subagent-rpc.js +60 -0
  110. package/dist/core/system-prompt.d.ts +9 -3
  111. package/dist/core/system-prompt.js +9 -12
  112. package/dist/core/system-prompt.test.js +2 -7
  113. package/dist/core/tools/bash.d.ts +12 -0
  114. package/dist/core/tools/bash.js +33 -2
  115. package/dist/core/tools/edit-diff.d.ts +0 -5
  116. package/dist/core/tools/edit-diff.js +2 -5
  117. package/dist/core/tools/edit.d.ts +4 -0
  118. package/dist/core/tools/edit.js +31 -11
  119. package/dist/core/tools/find.d.ts +7 -0
  120. package/dist/core/tools/find.js +16 -19
  121. package/dist/core/tools/grep.d.ts +4 -0
  122. package/dist/core/tools/grep.js +5 -1
  123. package/dist/core/tools/index.d.ts +1 -1
  124. package/dist/core/tools/index.js +11 -2
  125. package/dist/core/tools/ls.d.ts +4 -0
  126. package/dist/core/tools/ls.js +5 -1
  127. package/dist/core/tools/output-accumulator.d.ts +11 -0
  128. package/dist/core/tools/output-accumulator.js +40 -10
  129. package/dist/core/tools/read.d.ts +17 -2
  130. package/dist/core/tools/read.js +23 -2
  131. package/dist/core/tools/render-utils.d.ts +6 -0
  132. package/dist/core/tools/render-utils.js +26 -0
  133. package/dist/core/tools/renderers/bash.js +19 -35
  134. package/dist/core/tools/renderers/edit.js +5 -4
  135. package/dist/core/tools/renderers/index.d.ts +2 -2
  136. package/dist/core/tools/renderers/read.js +3 -2
  137. package/dist/core/tools/tool-definition-wrapper.d.ts +5 -3
  138. package/dist/core/tools/tool-definition-wrapper.js +3 -1
  139. package/dist/core/tools/truncate.d.ts +14 -0
  140. package/dist/core/tools/truncate.js +29 -0
  141. package/dist/core/tools/write.d.ts +4 -0
  142. package/dist/core/tools/write.js +6 -2
  143. package/dist/core/trust-manager.js +3 -1
  144. package/dist/core/usage-totals.d.ts +2 -0
  145. package/dist/core/usage-totals.js +23 -0
  146. package/dist/core/virtual-models.d.ts +116 -0
  147. package/dist/core/virtual-models.js +123 -0
  148. package/dist/defaults/models.json +32 -0
  149. package/dist/defaults/settings.json +1 -9
  150. package/dist/extensions/agent-browser.ts +9 -0
  151. package/dist/extensions/codemode/execute.d.ts +15 -0
  152. package/dist/extensions/codemode/execute.js +633 -0
  153. package/dist/extensions/codemode/execute.lazy.d.ts +2 -0
  154. package/dist/extensions/codemode/execute.lazy.js +2 -0
  155. package/dist/extensions/codemode/index.d.ts +20 -0
  156. package/dist/extensions/codemode/index.js +31 -0
  157. package/dist/extensions/codemode/renderer.d.ts +11 -0
  158. package/dist/extensions/codemode/renderer.js +136 -0
  159. package/dist/extensions/codemode/tool.d.ts +129 -0
  160. package/dist/extensions/codemode/tool.js +275 -0
  161. package/dist/extensions/context-compaction-reminder.ts +1 -1
  162. package/dist/extensions/grep-app/index.ts +2 -10
  163. package/dist/extensions/herdr-agent-state.ts +1 -1
  164. package/dist/extensions/{pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts → index.d.ts} +0 -1
  165. package/dist/extensions/index.js +12 -0
  166. package/dist/extensions/jev/classifier-context.ts +54 -0
  167. package/dist/extensions/jev/classifier.test.ts +85 -0
  168. package/dist/extensions/jev/classifier.ts +105 -0
  169. package/dist/extensions/jev/decisions.test.ts +35 -47
  170. package/dist/extensions/jev/decisions.ts +58 -104
  171. package/dist/extensions/jev/test-support.ts +33 -38
  172. package/dist/extensions/jev-advisory-lifecycle.test.ts +12 -12
  173. package/dist/extensions/jev-advisory-memory.test.ts +9 -9
  174. package/dist/extensions/jev-advisory-recommendations.test.ts +8 -8
  175. package/dist/extensions/jev-ask-tool.test.ts +41 -45
  176. package/dist/extensions/jev-ask-tool.ts +10 -38
  177. package/dist/extensions/jev-find-source.test.ts +26 -0
  178. package/dist/extensions/jev-find-source.ts +58 -19
  179. package/dist/{core → extensions}/llama/client.d.ts +2 -0
  180. package/dist/{core → extensions}/llama/client.js +7 -3
  181. package/dist/{core → extensions}/llama/index.js +13 -2
  182. package/dist/{core → extensions}/llama/provider.d.ts +1 -1
  183. package/dist/extensions/llama/provider.js +235 -0
  184. package/dist/extensions/mcp/cli.d.ts +20 -0
  185. package/dist/extensions/mcp/cli.js +496 -0
  186. package/dist/extensions/mcp/cli.lazy.d.ts +2 -0
  187. package/dist/extensions/mcp/cli.lazy.js +2 -0
  188. package/dist/extensions/mcp/config.d.ts +83 -0
  189. package/dist/extensions/mcp/config.js +193 -0
  190. package/dist/extensions/mcp/index.d.ts +78 -0
  191. package/dist/extensions/mcp/index.js +1201 -0
  192. package/dist/extensions/mcp/log.d.ts +15 -0
  193. package/dist/extensions/mcp/log.js +65 -0
  194. package/dist/extensions/mcp/oauth.d.ts +97 -0
  195. package/dist/extensions/mcp/oauth.js +401 -0
  196. package/dist/extensions/mcp/resources.d.ts +41 -0
  197. package/dist/extensions/mcp/resources.js +260 -0
  198. package/dist/extensions/mcp/runtime.d.ts +96 -0
  199. package/dist/extensions/mcp/runtime.js +412 -0
  200. package/dist/extensions/mcp/runtime.lazy.d.ts +2 -0
  201. package/dist/extensions/mcp/runtime.lazy.js +2 -0
  202. package/dist/extensions/mcp/tools.d.ts +86 -0
  203. package/dist/extensions/mcp/tools.js +252 -0
  204. package/dist/extensions/mcp/ui.d.ts +59 -0
  205. package/dist/extensions/mcp/ui.js +185 -0
  206. package/dist/extensions/package.json +1 -1
  207. package/dist/extensions/pi-graft/tools.ts +6 -0
  208. package/dist/extensions/pi-hermes-memory/CHANGELOG.md +25 -0
  209. package/dist/extensions/pi-hermes-memory/README.md +140 -4
  210. package/dist/extensions/pi-hermes-memory/package-lock.json +624 -2720
  211. package/dist/extensions/pi-hermes-memory/package.json +9 -7
  212. package/dist/extensions/pi-hermes-memory/scripts/benchmark-memory-startup.mjs +72 -0
  213. package/dist/extensions/pi-hermes-memory/scripts/check-production-install.mjs +107 -0
  214. package/dist/extensions/pi-hermes-memory/src/auto-consolidation-warning.ts +2 -1
  215. package/dist/extensions/pi-hermes-memory/src/config.ts +35 -0
  216. package/dist/extensions/pi-hermes-memory/src/constants.ts +62 -15
  217. package/dist/extensions/pi-hermes-memory/src/handlers/auto-consolidate.ts +374 -50
  218. package/dist/extensions/pi-hermes-memory/src/handlers/background-review.ts +7 -4
  219. package/dist/extensions/pi-hermes-memory/src/handlers/correction-detector.ts +19 -14
  220. package/dist/extensions/pi-hermes-memory/src/handlers/insights.ts +75 -1
  221. package/dist/extensions/pi-hermes-memory/src/handlers/review-memory-ops.ts +322 -22
  222. package/dist/extensions/pi-hermes-memory/src/handlers/session-backfill.ts +8 -0
  223. package/dist/extensions/pi-hermes-memory/src/handlers/session-flush.ts +193 -54
  224. package/dist/extensions/pi-hermes-memory/src/handlers/skills-command.ts +6 -2
  225. package/dist/extensions/pi-hermes-memory/src/handlers/sync-markdown-memories.ts +33 -5
  226. package/dist/extensions/pi-hermes-memory/src/index.ts +116 -47
  227. package/dist/extensions/pi-hermes-memory/src/memory-initialization.ts +101 -0
  228. package/dist/extensions/pi-hermes-memory/src/store/atomic-lock-coordinator.ts +10 -2
  229. package/dist/extensions/pi-hermes-memory/src/store/db.ts +34 -9
  230. package/dist/extensions/pi-hermes-memory/src/store/memory-store.ts +44 -8
  231. package/dist/extensions/pi-hermes-memory/src/store/schema.ts +3 -1
  232. package/dist/extensions/pi-hermes-memory/src/store/sqlite-memory-store.ts +141 -0
  233. package/dist/extensions/pi-hermes-memory/src/store/standing-instructions.ts +17 -6
  234. package/dist/extensions/pi-hermes-memory/src/tools/memory-search-tool.ts +20 -10
  235. package/dist/extensions/pi-hermes-memory/src/tools/memory-tool.ts +1 -17
  236. package/dist/extensions/pi-hermes-memory/src/tools/session-search-tool.ts +2 -10
  237. package/dist/extensions/pi-hermes-memory/src/tools/skill-tool.ts +4 -8
  238. package/dist/extensions/pi-hermes-memory/src/types.ts +48 -0
  239. package/dist/extensions/pi-hermes-memory/tests/config.test.ts +108 -0
  240. package/dist/extensions/pi-hermes-memory/tests/handlers/auto-consolidate.test.ts +1185 -42
  241. package/dist/extensions/pi-hermes-memory/tests/handlers/insights.test.ts +57 -1
  242. package/dist/extensions/pi-hermes-memory/tests/handlers/lazy-memory-hooks.test.ts +128 -0
  243. package/dist/extensions/pi-hermes-memory/tests/handlers/review-memory-ops.test.ts +844 -1
  244. package/dist/extensions/pi-hermes-memory/tests/handlers/session-backfill.test.ts +16 -0
  245. package/dist/extensions/pi-hermes-memory/tests/handlers/session-flush.test.ts +512 -3
  246. package/dist/extensions/pi-hermes-memory/tests/handlers/skills-command.test.ts +38 -0
  247. package/dist/extensions/pi-hermes-memory/tests/handlers/sync-markdown-memories.test.ts +183 -2
  248. package/dist/extensions/pi-hermes-memory/tests/handlers/system-prompt.test.ts +1 -3
  249. package/dist/extensions/pi-hermes-memory/tests/index.test.ts +17 -0
  250. package/dist/extensions/pi-hermes-memory/tests/integration/corruption-recovery-integration.test.ts +21 -0
  251. package/dist/extensions/pi-hermes-memory/tests/lazy-startup.test.ts +313 -0
  252. package/dist/extensions/pi-hermes-memory/tests/memory-initialization.test.ts +182 -0
  253. package/dist/extensions/pi-hermes-memory/tests/prompt-injection.test.ts +184 -0
  254. package/dist/extensions/pi-hermes-memory/tests/skill-discovery-contract.test.ts +60 -0
  255. package/dist/extensions/pi-hermes-memory/tests/store/atomic-lock-lazy-probe.test.ts +80 -0
  256. package/dist/extensions/pi-hermes-memory/tests/store/db.test.ts +2 -0
  257. package/dist/extensions/pi-hermes-memory/tests/store/memory-store.test.ts +79 -0
  258. package/dist/extensions/pi-hermes-memory/tests/store/sqlite-memory-store.test.ts +268 -0
  259. package/dist/extensions/pi-hermes-memory/tests/store/standing-instructions.test.ts +29 -0
  260. package/dist/extensions/pi-hermes-memory/tests/store/usage-tracking.test.ts +170 -0
  261. package/dist/extensions/pi-hermes-memory/tests/tools/memory-search-tool.test.ts +80 -1
  262. package/dist/extensions/pi-hermes-memory/tests/tools/skill-tool.test.ts +51 -0
  263. package/dist/extensions/pi-intercom/CHANGELOG.md +66 -0
  264. package/dist/extensions/pi-intercom/README.md +115 -12
  265. package/dist/extensions/pi-intercom/broker/broker.ts +304 -24
  266. package/dist/extensions/pi-intercom/broker/client.ts +9 -2
  267. package/dist/extensions/pi-intercom/broker/cross-machine-provenance.test.ts +63 -0
  268. package/dist/extensions/pi-intercom/broker/mailbox-persistence.test.ts +523 -0
  269. package/dist/extensions/pi-intercom/broker/paths.test.ts +4 -4
  270. package/dist/extensions/pi-intercom/broker/paths.ts +4 -2
  271. package/dist/extensions/pi-intercom/broker/protocol.ts +64 -0
  272. package/dist/extensions/pi-intercom/broker/spawn.test.ts +58 -169
  273. package/dist/extensions/pi-intercom/broker/spawn.ts +40 -87
  274. package/dist/extensions/pi-intercom/cli.mjs +6 -0
  275. package/dist/extensions/pi-intercom/cli.test.ts +428 -0
  276. package/dist/extensions/pi-intercom/cli.ts +343 -0
  277. package/dist/extensions/pi-intercom/config.test.ts +61 -1
  278. package/dist/extensions/pi-intercom/config.ts +53 -2
  279. package/dist/extensions/pi-intercom/cross-machine-discovery.test.ts +218 -0
  280. package/dist/extensions/pi-intercom/cross-machine-discovery.ts +140 -0
  281. package/dist/extensions/pi-intercom/cross-machine-envelope.test.ts +106 -0
  282. package/dist/extensions/pi-intercom/cross-machine-envelope.ts +92 -0
  283. package/dist/extensions/pi-intercom/cross-machine-integration.test.ts +25 -0
  284. package/dist/extensions/pi-intercom/cross-machine-transport.test.ts +106 -0
  285. package/dist/extensions/pi-intercom/cross-machine-transport.ts +110 -0
  286. package/dist/extensions/pi-intercom/extension-api.ts +24 -0
  287. package/dist/extensions/pi-intercom/handover.test.ts +88 -0
  288. package/dist/extensions/pi-intercom/handover.ts +115 -0
  289. package/dist/extensions/pi-intercom/herdr-location.test.ts +173 -0
  290. package/dist/extensions/pi-intercom/herdr-location.ts +137 -0
  291. package/dist/extensions/pi-intercom/human-priority.pi.test.ts +489 -0
  292. package/dist/extensions/pi-intercom/index.ts +770 -172
  293. package/dist/extensions/pi-intercom/intercom.integration.test.ts +869 -21
  294. package/dist/extensions/pi-intercom/package.json +12 -2
  295. package/dist/extensions/pi-intercom/project-agent.ts +1 -1
  296. package/dist/extensions/pi-intercom/release-readiness.test.ts +116 -0
  297. package/dist/extensions/pi-intercom/release-readiness.ts +93 -0
  298. package/dist/extensions/pi-intercom/skills/pi-intercom/SKILL.md +26 -2
  299. package/dist/extensions/pi-intercom/test/handover-picker.test.ts +134 -0
  300. package/dist/extensions/pi-intercom/test/inline-message.test.ts +43 -0
  301. package/dist/extensions/pi-intercom/types.d.ts +247 -0
  302. package/dist/extensions/pi-intercom/types.js +2 -0
  303. package/dist/extensions/pi-intercom/types.ts +39 -1
  304. package/dist/extensions/pi-intercom/ui/handover-picker.ts +318 -0
  305. package/dist/extensions/pi-intercom/ui/inline-message.ts +10 -3
  306. package/dist/extensions/pi-intercom/ui/session-list.ts +28 -15
  307. package/dist/extensions/pi-subagents/.github/workflows/release.yml +5 -1
  308. package/dist/extensions/pi-subagents/.github/workflows/test.yml +188 -18
  309. package/dist/extensions/pi-subagents/CHANGELOG.md +514 -1
  310. package/dist/extensions/pi-subagents/README.md +7 -5
  311. package/dist/extensions/pi-subagents/VISION.md +6 -0
  312. package/dist/extensions/pi-subagents/agents/reviewer.md +7 -5
  313. package/dist/extensions/pi-subagents/agents/worker.md +1 -1
  314. package/dist/extensions/pi-subagents/docs/agents.md +75 -35
  315. package/dist/extensions/pi-subagents/docs/configuration.md +156 -25
  316. package/dist/extensions/pi-subagents/docs/extension-api.md +121 -29
  317. package/dist/extensions/pi-subagents/docs/missions.md +46 -14
  318. package/dist/extensions/pi-subagents/docs/models.md +22 -84
  319. package/dist/extensions/pi-subagents/docs/observability.md +57 -24
  320. package/dist/extensions/pi-subagents/docs/standalone-background.md +59 -0
  321. package/dist/extensions/pi-subagents/docs/tool-reference.md +167 -116
  322. package/dist/extensions/pi-subagents/docs/watchdog.md +41 -10
  323. package/dist/extensions/pi-subagents/docs/workflows.md +239 -163
  324. package/dist/extensions/pi-subagents/examples/typed-gate/.pi/agents/classifier.md +14 -0
  325. package/dist/extensions/pi-subagents/examples/typed-gate/README.md +42 -0
  326. package/dist/extensions/pi-subagents/examples/typed-gate/classify +38 -0
  327. package/dist/extensions/pi-subagents/examples/typed-gate/workflow.js +32 -0
  328. package/dist/extensions/pi-subagents/index.ts +11 -3
  329. package/dist/extensions/pi-subagents/inspector-runner.mjs +3 -3
  330. package/dist/extensions/pi-subagents/package-lock.json +517 -1129
  331. package/dist/extensions/pi-subagents/package.json +22 -11
  332. package/dist/extensions/pi-subagents/prompts/council.md +7 -4
  333. package/dist/extensions/pi-subagents/prompts/parallel-review.md +2 -2
  334. package/dist/extensions/pi-subagents/prompts/review-loop.md +2 -2
  335. package/dist/extensions/pi-subagents/runner-peer-loader.mjs +21 -0
  336. package/dist/extensions/pi-subagents/runner-peer-preload.mjs +30 -0
  337. package/dist/extensions/pi-subagents/scripts/build-package.mjs +79 -0
  338. package/dist/extensions/pi-subagents/skills/council-mode/SKILL.md +2 -2
  339. package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +46 -27
  340. package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +11 -7
  341. package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +78 -73
  342. package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +4 -5
  343. package/dist/extensions/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +10 -2
  344. package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +69 -67
  345. package/dist/extensions/pi-subagents/skills/pi-subagents/references/review-and-validation.md +3 -3
  346. package/dist/extensions/pi-subagents/src/agents/advertised-agent-prompt.ts +21 -10
  347. package/dist/extensions/pi-subagents/src/agents/agent-management.ts +113 -113
  348. package/dist/extensions/pi-subagents/src/agents/agent-memory.ts +91 -4
  349. package/dist/extensions/pi-subagents/src/agents/agent-serializer.ts +15 -9
  350. package/dist/extensions/pi-subagents/src/agents/agents.ts +432 -193
  351. package/dist/extensions/pi-subagents/src/agents/chain-serializer.ts +6 -1
  352. package/dist/extensions/pi-subagents/src/agents/global-npm-root.ts +58 -0
  353. package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +5 -2
  354. package/dist/extensions/pi-subagents/src/agents/runtime-agent-registry.ts +22 -18
  355. package/dist/extensions/pi-subagents/src/agents/skills.ts +43 -10
  356. package/dist/extensions/pi-subagents/src/api/delegation.ts +20 -1
  357. package/dist/extensions/pi-subagents/src/api/inspectors.ts +27 -0
  358. package/dist/extensions/pi-subagents/src/api/preflight.ts +140 -62
  359. package/dist/extensions/pi-subagents/src/api/required-child-extensions.ts +6 -0
  360. package/dist/extensions/pi-subagents/src/api/shared-types.ts +2 -0
  361. package/dist/extensions/pi-subagents/src/extension/config.ts +24 -40
  362. package/dist/extensions/pi-subagents/src/extension/control-notices.ts +4 -1
  363. package/dist/extensions/pi-subagents/src/extension/doctor.ts +18 -15
  364. package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +87 -13
  365. package/dist/extensions/pi-subagents/src/extension/herdr-pi-bridge.ts +162 -0
  366. package/dist/extensions/pi-subagents/src/extension/index.ts +331 -269
  367. package/dist/extensions/pi-subagents/src/extension/observability.ts +164 -0
  368. package/dist/extensions/pi-subagents/src/extension/public-execution.ts +76 -37
  369. package/dist/extensions/pi-subagents/src/extension/release-readiness.ts +367 -0
  370. package/dist/extensions/pi-subagents/src/extension/reply-workflow-script.ts +67 -0
  371. package/dist/extensions/pi-subagents/src/extension/rpc.ts +42 -12
  372. package/dist/extensions/pi-subagents/src/extension/schemas.ts +116 -205
  373. package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +13 -5
  374. package/dist/extensions/pi-subagents/src/extension/tool-activation.ts +146 -0
  375. package/dist/extensions/pi-subagents/src/extension/tool-description.ts +77 -90
  376. package/dist/extensions/pi-subagents/src/extension/upgrade-notice.ts +40 -0
  377. package/dist/extensions/pi-subagents/src/inspectors/actions.ts +148 -0
  378. package/dist/extensions/pi-subagents/src/inspectors/ghostty/actions.ts +74 -0
  379. package/dist/extensions/pi-subagents/src/inspectors/ghostty/plugin.ts +29 -0
  380. package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +100 -180
  381. package/dist/extensions/pi-subagents/src/inspectors/herdr/plugin.ts +20 -0
  382. package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +2 -2
  383. package/dist/extensions/pi-subagents/src/inspectors/{herdr/inspector-runner.ts → inspector-runner.ts} +13 -13
  384. package/dist/extensions/pi-subagents/src/inspectors/plugins.ts +75 -0
  385. package/dist/extensions/pi-subagents/src/inspectors/{herdr/session-roots-codec.ts → session-roots-codec.ts} +4 -15
  386. package/dist/extensions/pi-subagents/src/inspectors/{herdr/shell-command.ts → shell-command.ts} +1 -1
  387. package/dist/extensions/pi-subagents/src/inspectors/types.ts +51 -0
  388. package/dist/extensions/pi-subagents/src/integrations/herdr-status.ts +38 -53
  389. package/dist/extensions/pi-subagents/src/integrations/pi-web-session-liveness.ts +7 -1
  390. package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +53 -9
  391. package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +69 -55
  392. package/dist/extensions/pi-subagents/src/intercom/result-intercom.ts +7 -2
  393. package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +45 -32
  394. package/dist/extensions/pi-subagents/src/missions/store.ts +11 -2
  395. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +1 -44
  396. package/dist/extensions/pi-subagents/src/policy/authority.ts +5 -1
  397. package/dist/extensions/pi-subagents/src/profiles/profiles.ts +30 -18
  398. package/dist/extensions/pi-subagents/src/runs/background/active-async-capacity.ts +59 -9
  399. package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +18 -2
  400. package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +463 -248
  401. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +112 -66
  402. package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +33 -20
  403. package/dist/extensions/pi-subagents/src/runs/background/async-retention.ts +47 -17
  404. package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +18 -5
  405. package/dist/extensions/pi-subagents/src/runs/background/auto-drain.ts +24 -11
  406. package/dist/extensions/pi-subagents/src/runs/background/await-async-run.ts +78 -0
  407. package/dist/extensions/pi-subagents/src/runs/background/binary-bootstrap.ts +66 -0
  408. package/dist/extensions/pi-subagents/src/runs/background/calendar-schedule.ts +90 -0
  409. package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +2 -2
  410. package/dist/extensions/pi-subagents/src/runs/background/chain-root-attachment.ts +19 -38
  411. package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +62 -3
  412. package/dist/extensions/pi-subagents/src/runs/background/fleet-view.ts +82 -10
  413. package/dist/extensions/pi-subagents/src/runs/background/notify.ts +272 -24
  414. package/dist/extensions/pi-subagents/src/runs/background/owned-process-tree.ts +30 -3
  415. package/dist/extensions/pi-subagents/src/runs/background/pid-namespace.ts +18 -0
  416. package/dist/extensions/pi-subagents/src/runs/background/process-terminal-candidate.ts +98 -0
  417. package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +18 -97
  418. package/dist/extensions/pi-subagents/src/runs/background/result-delivery-ownership.ts +269 -7
  419. package/dist/extensions/pi-subagents/src/runs/background/result-files.ts +14 -5
  420. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +77 -22
  421. package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +4 -3
  422. package/dist/extensions/pi-subagents/src/runs/background/retained-nested-route-tracker.ts +15 -3
  423. package/dist/extensions/pi-subagents/src/runs/background/run-child-session.ts +126 -45
  424. package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +11 -6
  425. package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +18 -7
  426. package/dist/extensions/pi-subagents/src/runs/background/runner-aliases.ts +43 -51
  427. package/dist/extensions/pi-subagents/src/runs/background/runner-child-launch.ts +8 -1
  428. package/dist/extensions/pi-subagents/src/runs/background/runner-child-sessions.ts +5 -4
  429. package/dist/extensions/pi-subagents/src/runs/background/runner-http-dispatcher.ts +119 -0
  430. package/dist/extensions/pi-subagents/src/runs/background/runner-startup-failure.ts +56 -0
  431. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +297 -69
  432. package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +67 -16
  433. package/dist/extensions/pi-subagents/src/runs/background/steering.ts +21 -3
  434. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner-bootstrap.ts +276 -0
  435. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +660 -578
  436. package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +177 -29
  437. package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +77 -28
  438. package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +10 -4
  439. package/dist/extensions/pi-subagents/src/runs/background/wait-tool.ts +7 -13
  440. package/dist/extensions/pi-subagents/src/runs/background/workflow-terminal-proof.ts +41 -23
  441. package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +19 -8
  442. package/dist/extensions/pi-subagents/src/runs/foreground/async-stop-action.ts +130 -7
  443. package/dist/extensions/pi-subagents/src/runs/foreground/command-action.ts +41 -0
  444. package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +267 -385
  445. package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +4 -2
  446. package/dist/extensions/pi-subagents/src/runs/foreground/prompt-audit.ts +6 -10
  447. package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +1158 -413
  448. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-detach-reconcile.ts +3 -1
  449. package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +2 -1
  450. package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +200 -74
  451. package/dist/extensions/pi-subagents/src/runs/shared/async-status-projection.ts +133 -34
  452. package/dist/extensions/pi-subagents/src/runs/shared/capability-ceiling.ts +6 -1
  453. package/dist/extensions/pi-subagents/src/runs/shared/child-commands.ts +228 -0
  454. package/dist/extensions/pi-subagents/src/runs/shared/child-hooks.ts +18 -18
  455. package/dist/extensions/pi-subagents/src/runs/shared/child-launch-plan.ts +16 -4
  456. package/dist/extensions/pi-subagents/src/runs/shared/child-launch.ts +55 -12
  457. package/dist/extensions/pi-subagents/src/runs/shared/child-lifecycle.ts +6 -3
  458. package/dist/extensions/pi-subagents/src/runs/shared/child-runtime-config.ts +11 -1
  459. package/dist/extensions/pi-subagents/src/runs/shared/child-session.ts +367 -74
  460. package/dist/extensions/pi-subagents/src/runs/shared/child-tool-plan.ts +50 -86
  461. package/dist/extensions/pi-subagents/src/runs/shared/claude-code-adapter.ts +288 -0
  462. package/dist/extensions/pi-subagents/src/runs/shared/codex-exec-adapter.ts +129 -0
  463. package/dist/extensions/pi-subagents/src/runs/shared/cursor-agent-adapter.ts +114 -0
  464. package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +5 -5
  465. package/dist/extensions/pi-subagents/src/runs/shared/effective-system-prompt.ts +33 -0
  466. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-contract.ts +49 -10
  467. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-preflight.ts +61 -9
  468. package/dist/extensions/pi-subagents/src/runs/shared/external-cli-runner.ts +16 -9
  469. package/dist/extensions/pi-subagents/src/runs/shared/external-job-bridge.ts +55 -1
  470. package/dist/extensions/pi-subagents/src/runs/shared/git-environment.ts +1 -1
  471. package/dist/extensions/pi-subagents/src/runs/shared/herdr-connection.ts +134 -0
  472. package/dist/extensions/pi-subagents/src/runs/shared/herdr-external-adapters.ts +169 -0
  473. package/dist/extensions/pi-subagents/src/runs/shared/herdr-machine.ts +279 -0
  474. package/dist/extensions/pi-subagents/src/runs/shared/herdr-pi-protocol.ts +59 -0
  475. package/dist/extensions/pi-subagents/src/runs/shared/herdr-placed-run.ts +263 -0
  476. package/dist/extensions/pi-subagents/src/runs/shared/mcp-config-sources.ts +6 -2
  477. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +108 -13
  478. package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-grant.ts +23 -7
  479. package/dist/extensions/pi-subagents/src/runs/shared/model-resolution-diagnostic.ts +76 -0
  480. package/dist/extensions/pi-subagents/src/runs/shared/{model-fallback.ts → model-resolution.ts} +65 -245
  481. package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +30 -11
  482. package/dist/extensions/pi-subagents/src/runs/shared/nested-events.ts +24 -3
  483. package/dist/extensions/pi-subagents/src/runs/shared/orca-progress-tabs.ts +5 -4
  484. package/dist/extensions/pi-subagents/src/runs/shared/parallel-handoff.ts +55 -7
  485. package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +14 -4
  486. package/dist/extensions/pi-subagents/src/runs/shared/partial-output.ts +48 -0
  487. package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +12 -4
  488. package/dist/extensions/pi-subagents/src/runs/shared/run-history.ts +88 -1
  489. package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +12 -3
  490. package/dist/extensions/pi-subagents/src/runs/shared/structured-output.ts +160 -9
  491. package/dist/extensions/pi-subagents/src/runs/shared/subagent-control.ts +49 -35
  492. package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +58 -19
  493. package/dist/extensions/pi-subagents/src/runs/shared/tool-availability.ts +2 -2
  494. package/dist/extensions/pi-subagents/src/runs/shared/tool-budget.ts +21 -0
  495. package/dist/extensions/pi-subagents/src/runs/shared/usage-reconciliation.ts +73 -0
  496. package/dist/extensions/pi-subagents/src/runs/shared/workflow-async-child-guidance.ts +18 -0
  497. package/dist/extensions/pi-subagents/src/runs/shared/worktree-cleanup-apply.ts +160 -0
  498. package/dist/extensions/pi-subagents/src/runs/shared/worktree-cleanup-plan.ts +42 -20
  499. package/dist/extensions/pi-subagents/src/runs/shared/worktree-lock.ts +29 -0
  500. package/dist/extensions/pi-subagents/src/runs/shared/worktree-setup-command.ts +27 -4
  501. package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +94 -26
  502. package/dist/extensions/pi-subagents/src/shared/child-cache-retention.ts +43 -0
  503. package/dist/extensions/pi-subagents/src/shared/child-session-name.ts +5 -3
  504. package/dist/extensions/pi-subagents/src/shared/disabled-features.ts +123 -0
  505. package/dist/extensions/pi-subagents/src/shared/extension-context.ts +14 -1
  506. package/dist/extensions/pi-subagents/src/shared/file-lease.ts +74 -0
  507. package/dist/extensions/pi-subagents/src/shared/fork-context.ts +27 -77
  508. package/dist/extensions/pi-subagents/src/shared/launch-contract.ts +70 -10
  509. package/dist/extensions/pi-subagents/src/shared/model-info.ts +10 -1
  510. package/dist/extensions/pi-subagents/src/shared/opencode-session-headers.ts +30 -0
  511. package/dist/extensions/pi-subagents/src/shared/owner-record.ts +107 -0
  512. package/dist/extensions/pi-subagents/src/shared/package-version.ts +17 -0
  513. package/dist/extensions/pi-subagents/src/shared/parent-wake.ts +66 -0
  514. package/dist/extensions/pi-subagents/src/shared/process-identity.ts +87 -0
  515. package/dist/extensions/pi-subagents/src/shared/pruned-fork.ts +71 -58
  516. package/dist/extensions/pi-subagents/src/shared/required-child-extensions.ts +115 -0
  517. package/dist/extensions/pi-subagents/src/shared/settings-file-lease.ts +36 -0
  518. package/dist/extensions/pi-subagents/src/shared/settings.ts +7 -4
  519. package/dist/extensions/pi-subagents/src/shared/shortcuts.ts +1 -5
  520. package/dist/extensions/pi-subagents/src/shared/types.ts +155 -48
  521. package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +28 -2
  522. package/dist/extensions/pi-subagents/src/slash/delegation-request.ts +15 -1
  523. package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +19 -4
  524. package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +13 -2
  525. package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +15 -15
  526. package/dist/extensions/pi-subagents/src/slash/subagent-cost.ts +46 -9
  527. package/dist/extensions/pi-subagents/src/slash/subagents-admin.ts +29 -16
  528. package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +201 -26
  529. package/dist/extensions/pi-subagents/src/tui/fleet.ts +33 -16
  530. package/dist/extensions/pi-subagents/src/tui/render.ts +334 -103
  531. package/dist/extensions/pi-subagents/src/tui/running-tone.ts +28 -0
  532. package/dist/extensions/pi-subagents/src/watchdog/child-status.ts +27 -28
  533. package/dist/extensions/pi-subagents/src/watchdog/diff-tool.ts +47 -12
  534. package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +2 -2
  535. package/dist/extensions/pi-subagents/src/watchdog/model-selection.ts +22 -2
  536. package/dist/extensions/pi-subagents/src/watchdog/permission-arbiter.ts +17 -17
  537. package/dist/extensions/pi-subagents/src/watchdog/register-child.ts +24 -8
  538. package/dist/extensions/pi-subagents/src/watchdog/register-main.ts +43 -39
  539. package/dist/extensions/pi-subagents/src/watchdog/render.ts +2 -2
  540. package/dist/extensions/pi-subagents/src/watchdog/review.ts +127 -78
  541. package/dist/extensions/pi-subagents/src/watchdog/rules.ts +1 -1
  542. package/dist/extensions/pi-subagents/src/watchdog/runtime.ts +107 -31
  543. package/dist/extensions/pi-subagents/src/watchdog/scope.ts +1 -1
  544. package/dist/extensions/pi-subagents/src/watchdog/settings.ts +22 -14
  545. package/dist/extensions/pi-subagents/src/watchdog/tool-actions.ts +14 -13
  546. package/dist/extensions/pi-subagents/src/watchdog/turn-delta.ts +35 -6
  547. package/dist/extensions/pi-subagents/src/watchdog/types.ts +6 -4
  548. package/dist/extensions/pi-subagents/src/watchdog/warning-format.ts +2 -2
  549. package/dist/extensions/pi-subagents/src/workflows/chat-progress.ts +3 -3
  550. package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +500 -65
  551. package/dist/extensions/pi-subagents/src/workflows/structured-workflow-scripts.ts +177 -0
  552. package/dist/extensions/pi-subagents/src/workflows/workflow-checklist.ts +8 -2
  553. package/dist/extensions/pi-subagents/src/workflows/workflow-child-summary.ts +5 -3
  554. package/dist/extensions/pi-subagents/src/workflows/workflow-receipt.ts +70 -10
  555. package/dist/extensions/pi-subagents/src/workflows/workflow-resources.ts +57 -18
  556. package/dist/extensions/pi-subagents/src/workflows/workflow-reuse.ts +120 -0
  557. package/dist/extensions/pi-subagents/src/workflows/workflow-revival.ts +123 -0
  558. package/dist/extensions/pi-subagents/src/workflows/workflow-settlement.ts +5 -2
  559. package/dist/extensions/pi-subagents/test/fixtures/cwd-workflow-child.ts +37 -0
  560. package/dist/extensions/pi-subagents/test/fixtures/herdr-allocation-lock-child.ts +16 -0
  561. package/dist/extensions/pi-subagents/test/fixtures/herdr-provision-child.ts +15 -0
  562. package/dist/extensions/pi-subagents/test/fixtures/native-nested-wait-provider.ts +76 -0
  563. package/dist/extensions/pi-subagents/test/fixtures/runner-bootstrap-harness.ts +36 -0
  564. package/dist/extensions/pi-subagents/test/fixtures/schedule-history-writer.mjs +48 -0
  565. package/dist/extensions/pi-subagents/test/fixtures/settings-race-writer.mjs +57 -0
  566. package/dist/extensions/pi-subagents/test/fixtures/workflow-cwd-access-failure.ts +33 -0
  567. package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +40 -7
  568. package/dist/extensions/pi-subagents/test/integration/async-attention-clearing.test.ts +192 -0
  569. package/dist/extensions/pi-subagents/test/integration/async-execution.part-1.test.ts +435 -276
  570. package/dist/extensions/pi-subagents/test/integration/async-execution.part-2.test.ts +435 -397
  571. package/dist/extensions/pi-subagents/test/integration/async-execution.part-3.test.ts +918 -497
  572. package/dist/extensions/pi-subagents/test/integration/async-execution.part-4.test.ts +264 -17
  573. package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +185 -22
  574. package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +3 -2
  575. package/dist/extensions/pi-subagents/test/integration/claude-code-dispatch.test.ts +127 -0
  576. package/dist/extensions/pi-subagents/test/integration/deadline-checkpoint.test.ts +126 -0
  577. package/dist/extensions/pi-subagents/test/integration/doctor-executor.test.ts +29 -1
  578. package/dist/extensions/pi-subagents/test/integration/error-handling.test.ts +88 -0
  579. package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +450 -13
  580. package/dist/extensions/pi-subagents/test/integration/foreign-workflow-steering.test.ts +10 -6
  581. package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +105 -86
  582. package/dist/extensions/pi-subagents/test/integration/in-process-child.test.ts +403 -18
  583. package/dist/extensions/pi-subagents/test/integration/inline-workflow-visibility.test.ts +351 -0
  584. package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +195 -10
  585. package/dist/extensions/pi-subagents/test/integration/model-resolution-diagnostic.test.ts +108 -0
  586. package/dist/extensions/pi-subagents/test/integration/nested-async-wait.test.ts +61 -0
  587. package/dist/extensions/pi-subagents/test/integration/orca-progress-tabs.test.ts +5 -4
  588. package/dist/extensions/pi-subagents/test/integration/recovered-assistant-error.test.ts +1 -1
  589. package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +6 -4
  590. package/dist/extensions/pi-subagents/test/integration/render-widget-mouse.test.ts +84 -0
  591. package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +242 -16
  592. package/dist/extensions/pi-subagents/test/integration/result-publication.test.ts +2 -2
  593. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +221 -4
  594. package/dist/extensions/pi-subagents/test/integration/single-execution.part-1.test.ts +1435 -248
  595. package/dist/extensions/pi-subagents/test/integration/single-execution.part-2.test.ts +454 -515
  596. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +140 -21
  597. package/dist/extensions/pi-subagents/test/integration/stop-all-background.test.ts +142 -0
  598. package/dist/extensions/pi-subagents/test/integration/structured-workflows.test.ts +105 -0
  599. package/dist/extensions/pi-subagents/test/integration/workflow-result-publication.test.ts +90 -11
  600. package/dist/extensions/pi-subagents/test/integration/workflow-steer-inbox.test.ts +18 -15
  601. package/dist/extensions/pi-subagents/test/integration/workflow-worktree-admission.test.ts +100 -0
  602. package/dist/extensions/pi-subagents/test/smoke/clean-install.mjs +106 -0
  603. package/dist/extensions/pi-subagents/test/smoke/npm-background.mjs +43 -0
  604. package/dist/extensions/pi-subagents/test/smoke/packed-runner-selection.mjs +42 -0
  605. package/dist/extensions/pi-subagents/test/smoke/runner-loader-capability.mjs +50 -0
  606. package/dist/extensions/pi-subagents/test/smoke/sdk-child.ts +57 -0
  607. package/dist/extensions/pi-subagents/test/smoke/{pi085-extension.ts → sdk-extension.ts} +2 -2
  608. package/dist/extensions/pi-subagents/test/smoke/standalone-background.mjs +140 -0
  609. package/dist/extensions/pi-subagents/test/smoke/standalone-fault.ts +43 -0
  610. package/dist/extensions/pi-subagents/test/smoke/standalone-matrix.mjs +65 -0
  611. package/dist/extensions/pi-subagents/test/smoke/standalone-observer.ts +8 -0
  612. package/dist/extensions/pi-subagents/test/smoke/standalone-parent.ts +220 -0
  613. package/dist/extensions/pi-subagents/test/smoke/standalone-provider.ts +58 -0
  614. package/dist/extensions/pi-subagents/test/smoke/standalone-release.json +8 -0
  615. package/dist/extensions/pi-subagents/test/smoke/standalone-revival.ts +109 -0
  616. package/dist/extensions/pi-subagents/test/smoke/standalone-shared.ts +79 -0
  617. package/dist/extensions/pi-subagents/test/smoke/tool-activation.test.ts +128 -0
  618. package/dist/extensions/pi-subagents/test/support/async-execution-fixture.ts +6 -25
  619. package/dist/extensions/pi-subagents/test/support/async-result-timeout-evidence.ts +61 -0
  620. package/dist/extensions/pi-subagents/test/support/fake-child-session.ts +130 -9
  621. package/dist/extensions/pi-subagents/test/support/foreign-workflow-steer-host.mjs +15 -7
  622. package/dist/extensions/pi-subagents/test/support/helpers.ts +11 -14
  623. package/dist/extensions/pi-subagents/test/support/isolated-temp-root.mjs +21 -3
  624. package/dist/extensions/pi-subagents/test/support/native-peer-loader.mjs +15 -0
  625. package/dist/extensions/pi-subagents/test/support/node-command.ts +29 -6
  626. package/dist/extensions/pi-subagents/test/support/notify-diagnostics-fixture.ts +5 -3
  627. package/dist/extensions/pi-subagents/test/support/single-execution-fixture.ts +7 -15
  628. package/dist/extensions/pi-subagents/test/support/watchdog-stable-host-loader.mjs +23 -0
  629. package/dist/extensions/pi-subagents/test/unit/acceptance-compaction.test.ts +3 -3
  630. package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +158 -155
  631. package/dist/extensions/pi-subagents/test/unit/active-async-capacity.test.ts +52 -1
  632. package/dist/extensions/pi-subagents/test/unit/advertised-agent-prompt.test.ts +21 -17
  633. package/dist/extensions/pi-subagents/test/unit/advertised-agent-refresh.test.ts +105 -36
  634. package/dist/extensions/pi-subagents/test/unit/advertisement-barrier.test.ts +151 -0
  635. package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +1 -2
  636. package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +33 -3
  637. package/dist/extensions/pi-subagents/test/unit/agent-end-auto-drain.test.ts +149 -0
  638. package/dist/extensions/pi-subagents/test/unit/agent-exclude-dirs.test.ts +246 -0
  639. package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +62 -87
  640. package/dist/extensions/pi-subagents/test/unit/agent-global-root-override.test.ts +86 -0
  641. package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +398 -48
  642. package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +126 -1
  643. package/dist/extensions/pi-subagents/test/unit/agent-name-resolution.test.ts +75 -0
  644. package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +94 -42
  645. package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +73 -3
  646. package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +428 -2
  647. package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +4 -4
  648. package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +112 -1
  649. package/dist/extensions/pi-subagents/test/unit/async-result-timeout-evidence.test.ts +53 -0
  650. package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +92 -4
  651. package/dist/extensions/pi-subagents/test/unit/async-retention.test.ts +58 -6
  652. package/dist/extensions/pi-subagents/test/unit/async-run-history.test.ts +123 -0
  653. package/dist/extensions/pi-subagents/test/unit/async-spawn-package-dir.test.ts +203 -0
  654. package/dist/extensions/pi-subagents/test/unit/async-spawn-preload.test.ts +26 -35
  655. package/dist/extensions/pi-subagents/test/unit/async-status-projection.test.ts +185 -0
  656. package/dist/extensions/pi-subagents/test/unit/authority-policy.test.ts +9 -1
  657. package/dist/extensions/pi-subagents/test/unit/auto-drain.test.ts +106 -1
  658. package/dist/extensions/pi-subagents/test/unit/await-async-run.test.ts +202 -0
  659. package/dist/extensions/pi-subagents/test/unit/binary-async-spawn.test.ts +115 -0
  660. package/dist/extensions/pi-subagents/test/unit/binary-pi-spawn.test.ts +27 -0
  661. package/dist/extensions/pi-subagents/test/unit/calendar-schedule.test.ts +70 -0
  662. package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +38 -0
  663. package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +10 -2
  664. package/dist/extensions/pi-subagents/test/unit/changelog-format.test.ts +11 -0
  665. package/dist/extensions/pi-subagents/test/unit/child-cache-retention.test.ts +87 -0
  666. package/dist/extensions/pi-subagents/test/unit/child-commands.test.ts +243 -0
  667. package/dist/extensions/pi-subagents/test/unit/child-external-job-bridge.test.ts +126 -0
  668. package/dist/extensions/pi-subagents/test/unit/child-launch-plan.test.ts +12 -1
  669. package/dist/extensions/pi-subagents/test/unit/child-lifecycle.test.ts +36 -0
  670. package/dist/extensions/pi-subagents/test/unit/child-runtime-config.test.ts +24 -0
  671. package/dist/extensions/pi-subagents/test/unit/child-session-commands.test.ts +162 -0
  672. package/dist/extensions/pi-subagents/test/unit/child-session-host-sdk.test.ts +226 -0
  673. package/dist/extensions/pi-subagents/test/unit/child-session-parent-providers.test.ts +200 -0
  674. package/dist/extensions/pi-subagents/test/unit/child-session-queued.test.ts +260 -0
  675. package/dist/extensions/pi-subagents/test/unit/child-tool-plan-permission-system.test.ts +3 -98
  676. package/dist/extensions/pi-subagents/test/unit/child-tool-plan.test.ts +222 -1
  677. package/dist/extensions/pi-subagents/test/unit/claude-code-adapter.test.ts +314 -0
  678. package/dist/extensions/pi-subagents/test/unit/claude-code-dispatch.test.ts +182 -0
  679. package/dist/extensions/pi-subagents/test/unit/codex-exec-adapter.test.ts +157 -0
  680. package/dist/extensions/pi-subagents/test/unit/command-action.test.ts +50 -0
  681. package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +25 -11
  682. package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +3 -1
  683. package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +18 -0
  684. package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +7 -1
  685. package/dist/extensions/pi-subagents/test/unit/cursor-agent-adapter.test.ts +220 -0
  686. package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +104 -32
  687. package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +138 -1
  688. package/dist/extensions/pi-subagents/test/unit/disabled-features.test.ts +227 -0
  689. package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +48 -9
  690. package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +7 -4
  691. package/dist/extensions/pi-subagents/test/unit/extension-lazy-loading.test.ts +21 -0
  692. package/dist/extensions/pi-subagents/test/unit/extension-maintenance-lifecycle.test.ts +66 -0
  693. package/dist/extensions/pi-subagents/test/unit/extension-module-preload.test.ts +49 -0
  694. package/dist/extensions/pi-subagents/test/unit/external-cli-runner.test.ts +104 -3
  695. package/dist/extensions/pi-subagents/test/unit/file-lease.test.ts +17 -0
  696. package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +316 -0
  697. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +58 -7
  698. package/dist/extensions/pi-subagents/test/unit/fork-context.test.ts +25 -96
  699. package/dist/extensions/pi-subagents/test/unit/ghostty-inspector.test.ts +92 -0
  700. package/dist/extensions/pi-subagents/test/unit/global-npm-root.test.ts +108 -0
  701. package/dist/extensions/pi-subagents/test/unit/herdr-connection.test.ts +43 -0
  702. package/dist/extensions/pi-subagents/test/unit/herdr-external-adapters.test.ts +89 -0
  703. package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +11 -20
  704. package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +113 -19
  705. package/dist/extensions/pi-subagents/test/unit/herdr-machine.test.ts +161 -0
  706. package/dist/extensions/pi-subagents/test/unit/herdr-native-placement.test.ts +187 -0
  707. package/dist/extensions/pi-subagents/test/unit/herdr-session-roots-codec.test.ts +7 -12
  708. package/dist/extensions/pi-subagents/test/unit/herdr-shell-command.test.ts +2 -2
  709. package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +182 -87
  710. package/dist/extensions/pi-subagents/test/unit/host-peer-runtime-imports.test.ts +68 -49
  711. package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +295 -135
  712. package/dist/extensions/pi-subagents/test/unit/inspect-rpc.test.ts +3 -3
  713. package/dist/extensions/pi-subagents/test/unit/inspector-authority-policy.test.ts +144 -0
  714. package/dist/extensions/pi-subagents/test/unit/inspector-registration.test.ts +128 -0
  715. package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +49 -1
  716. package/dist/extensions/pi-subagents/test/unit/mcp-direct-tool-grant.test.ts +74 -1
  717. package/dist/extensions/pi-subagents/test/unit/mcp-direct-tool-resolution.test.ts +112 -0
  718. package/dist/extensions/pi-subagents/test/unit/mission-global-projection.test.ts +215 -0
  719. package/dist/extensions/pi-subagents/test/unit/mission-goal-driver.test.ts +65 -1
  720. package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +2 -1
  721. package/dist/extensions/pi-subagents/test/unit/model-resolution-diagnostic.test.ts +78 -0
  722. package/dist/extensions/pi-subagents/test/unit/model-resolution.test.ts +153 -0
  723. package/dist/extensions/pi-subagents/test/unit/model-scope.test.ts +43 -1
  724. package/dist/extensions/pi-subagents/test/unit/mutation-evidence.test.ts +1 -21
  725. package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +279 -2
  726. package/dist/extensions/pi-subagents/test/unit/nested-control-fanout.test.ts +73 -0
  727. package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +297 -3
  728. package/dist/extensions/pi-subagents/test/unit/notify-diagnostics.test.ts +1 -1
  729. package/dist/extensions/pi-subagents/test/unit/notify.test.ts +431 -23
  730. package/dist/extensions/pi-subagents/test/unit/observability.test.ts +198 -0
  731. package/dist/extensions/pi-subagents/test/unit/opencode-session-headers.test.ts +32 -0
  732. package/dist/extensions/pi-subagents/test/unit/orca-progress-tabs.test.ts +89 -21
  733. package/dist/extensions/pi-subagents/test/unit/owned-process-tree.test.ts +31 -1
  734. package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +18 -24
  735. package/dist/extensions/pi-subagents/test/unit/parent-wake.test.ts +206 -0
  736. package/dist/extensions/pi-subagents/test/unit/partial-output.test.ts +53 -0
  737. package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +216 -32
  738. package/dist/extensions/pi-subagents/test/unit/pi-spawn-host-root.test.ts +82 -0
  739. package/dist/extensions/pi-subagents/test/unit/pi-subagents-policy-guidance.test.ts +28 -0
  740. package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +193 -104
  741. package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +16 -1
  742. package/dist/extensions/pi-subagents/test/unit/process-identity.test.ts +75 -0
  743. package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +17 -1
  744. package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +89 -9
  745. package/dist/extensions/pi-subagents/test/unit/prompt-audit-optional-peers.test.ts +6 -0
  746. package/dist/extensions/pi-subagents/test/unit/prompt-audit-provider-routing.test.ts +69 -0
  747. package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +2 -2
  748. package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +23 -1
  749. package/dist/extensions/pi-subagents/test/unit/pruned-fork.test.ts +117 -3
  750. package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +35 -14
  751. package/dist/extensions/pi-subagents/test/unit/readonly-drain-observation.test.ts +3 -2
  752. package/dist/extensions/pi-subagents/test/unit/release-readiness.test.ts +715 -0
  753. package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +261 -9
  754. package/dist/extensions/pi-subagents/test/unit/reply-workflow-script.test.ts +37 -0
  755. package/dist/extensions/pi-subagents/test/unit/required-child-extensions.test.ts +114 -0
  756. package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +11 -1
  757. package/dist/extensions/pi-subagents/test/unit/result-takeover.test.ts +332 -0
  758. package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +22 -2
  759. package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +125 -18
  760. package/dist/extensions/pi-subagents/test/unit/run-child-session.test.ts +230 -0
  761. package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +50 -1
  762. package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +301 -4
  763. package/dist/extensions/pi-subagents/test/unit/runner-bootstrap.test.ts +182 -0
  764. package/dist/extensions/pi-subagents/test/unit/runner-http-dispatcher.test.ts +136 -0
  765. package/dist/extensions/pi-subagents/test/unit/runner-peer-loader.test.ts +68 -0
  766. package/dist/extensions/pi-subagents/test/unit/runner-peer-symlinks.test.ts +50 -0
  767. package/dist/extensions/pi-subagents/test/unit/running-tone.test.ts +13 -0
  768. package/dist/extensions/pi-subagents/test/unit/runtime-agent-registration.test.ts +155 -4
  769. package/dist/extensions/pi-subagents/test/unit/schedule-claim-initialization.test.ts +71 -0
  770. package/dist/extensions/pi-subagents/test/unit/schedule-claim-preservation.test.ts +98 -0
  771. package/dist/extensions/pi-subagents/test/unit/schedule-history-transactions.test.ts +201 -0
  772. package/dist/extensions/pi-subagents/test/unit/scheduled-mission.test.ts +317 -0
  773. package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +412 -11
  774. package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +2 -8
  775. package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +70 -71
  776. package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +748 -5
  777. package/dist/extensions/pi-subagents/test/unit/session-liveness-delivery.test.ts +337 -0
  778. package/dist/extensions/pi-subagents/test/unit/settings-atomic-save.test.ts +419 -0
  779. package/dist/extensions/pi-subagents/test/unit/settings-transactions.test.ts +88 -0
  780. package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +13 -1
  781. package/dist/extensions/pi-subagents/test/unit/skills-disable-model-invocation.test.ts +164 -0
  782. package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +35 -2
  783. package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +2 -2
  784. package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +334 -9
  785. package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +170 -0
  786. package/dist/extensions/pi-subagents/test/unit/steering.test.ts +34 -5
  787. package/dist/extensions/pi-subagents/test/unit/structured-output-validation.test.ts +199 -0
  788. package/dist/extensions/pi-subagents/test/unit/structured-workflow-resources.test.ts +241 -0
  789. package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +47 -38
  790. package/dist/extensions/pi-subagents/test/unit/subagent-cost.test.ts +97 -0
  791. package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +10 -0
  792. package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +343 -44
  793. package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +410 -11
  794. package/dist/extensions/pi-subagents/test/unit/supervisor-ask-registration.test.ts +459 -22
  795. package/dist/extensions/pi-subagents/test/unit/temp-paths.test.ts +43 -3
  796. package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +11 -1
  797. package/dist/extensions/pi-subagents/test/unit/tool-activation-stale-peer.test.ts +32 -0
  798. package/dist/extensions/pi-subagents/test/unit/tool-activation.test.ts +313 -0
  799. package/dist/extensions/pi-subagents/test/unit/tool-budget.test.ts +14 -0
  800. package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +76 -89
  801. package/dist/extensions/pi-subagents/test/unit/typed-gate-output.test.ts +141 -0
  802. package/dist/extensions/pi-subagents/test/unit/upgrade-notice.test.ts +31 -0
  803. package/dist/extensions/pi-subagents/test/unit/usage-reconciliation-owners.test.ts +66 -0
  804. package/dist/extensions/pi-subagents/test/unit/usage-reconciliation.test.ts +23 -0
  805. package/dist/extensions/pi-subagents/test/unit/wait-completions.test.ts +195 -1
  806. package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +3 -1
  807. package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +48 -45
  808. package/dist/extensions/pi-subagents/test/unit/watchdog-compaction-scope.test.ts +94 -0
  809. package/dist/extensions/pi-subagents/test/unit/watchdog-diff-tool.test.ts +48 -3
  810. package/dist/extensions/pi-subagents/test/unit/watchdog-native-scheduling.test.ts +107 -0
  811. package/dist/extensions/pi-subagents/test/unit/watchdog-permission-arbiter.test.ts +95 -7
  812. package/dist/extensions/pi-subagents/test/unit/watchdog-register-child.test.ts +79 -0
  813. package/dist/extensions/pi-subagents/test/unit/watchdog-render.test.ts +7 -4
  814. package/dist/extensions/pi-subagents/test/unit/watchdog-review.test.ts +111 -24
  815. package/dist/extensions/pi-subagents/test/unit/watchdog-rules.test.ts +1 -1
  816. package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +283 -2
  817. package/dist/extensions/pi-subagents/test/unit/watchdog-scope.test.ts +3 -0
  818. package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +12 -1
  819. package/dist/extensions/pi-subagents/test/unit/watchdog-stable-host-layout.test.ts +23 -0
  820. package/dist/extensions/pi-subagents/test/unit/watchdog-tool-actions.test.ts +30 -0
  821. package/dist/extensions/pi-subagents/test/unit/watchdog-turn-delta.test.ts +39 -2
  822. package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +18 -1
  823. package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +8 -4
  824. package/dist/extensions/pi-subagents/test/unit/workflow-child-summary.test.ts +10 -0
  825. package/dist/extensions/pi-subagents/test/unit/workflow-detach-reconcile.test.ts +6 -3
  826. package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +44 -1
  827. package/dist/extensions/pi-subagents/test/unit/workflow-receipt.test.ts +28 -1
  828. package/dist/extensions/pi-subagents/test/unit/workflow-revival.test.ts +85 -0
  829. package/dist/extensions/pi-subagents/test/unit/workflow-scripts-feature.test.ts +177 -0
  830. package/dist/extensions/pi-subagents/test/unit/workflow-terminal-proof.test.ts +8 -0
  831. package/dist/extensions/pi-subagents/test/unit/workflow-worktree-admission.test.ts +29 -0
  832. package/dist/extensions/pi-subagents/test/unit/worktree-cleanup-plan.test.ts +343 -4
  833. package/dist/extensions/pi-subagents/test/unit/worktree-lock.test.ts +123 -0
  834. package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +252 -22
  835. package/dist/extensions/pi-subagents/tsconfig.build.json +13 -0
  836. package/dist/extensions/pi-tool-display/tests/custom-tool-overrides.test.ts +1 -1
  837. package/dist/extensions/pi-tool-display/tests/tool-overrides-config.test.ts +1 -1
  838. package/dist/extensions/pi-tool-display/tests/tool-overrides-mcp.test.ts +24 -1
  839. package/dist/extensions/pi-tool-display/tests/tool-overrides-registration.test.ts +6 -2
  840. package/dist/extensions/pi-web-agent/src/extension.ts +1 -5
  841. package/dist/extensions/pi-zentui/.github/workflows/ci.yml +67 -4
  842. package/dist/extensions/pi-zentui/AGENTS.md +3 -2
  843. package/dist/extensions/pi-zentui/README.md +60 -32
  844. package/dist/extensions/pi-zentui/docs/configuration.md +662 -51
  845. package/dist/extensions/pi-zentui/docs/footer-format.md +174 -5
  846. package/dist/extensions/pi-zentui/extensions/zentui/accent-rail-editor.ts +15 -4
  847. package/dist/extensions/pi-zentui/extensions/zentui/average-token-rate.ts +146 -0
  848. package/dist/extensions/pi-zentui/extensions/zentui/codex-quota-display.ts +34 -0
  849. package/dist/extensions/pi-zentui/extensions/zentui/codex-quota.ts +298 -0
  850. package/dist/extensions/pi-zentui/extensions/zentui/component-colors.ts +172 -0
  851. package/dist/extensions/pi-zentui/extensions/zentui/component-settings.ts +243 -0
  852. package/dist/extensions/pi-zentui/extensions/zentui/config.ts +851 -114
  853. package/dist/extensions/pi-zentui/extensions/zentui/custom-value-colors.ts +93 -0
  854. package/dist/extensions/pi-zentui/extensions/zentui/custom-variable-demand.ts +61 -0
  855. package/dist/extensions/pi-zentui/extensions/zentui/custom-variable-format.ts +80 -0
  856. package/dist/extensions/pi-zentui/extensions/zentui/custom-variables.ts +152 -0
  857. package/dist/extensions/pi-zentui/extensions/zentui/editor-metadata-format.ts +138 -23
  858. package/dist/extensions/pi-zentui/extensions/zentui/editor-mouse.ts +89 -0
  859. package/dist/extensions/pi-zentui/extensions/zentui/extension-status-controller.ts +148 -0
  860. package/dist/extensions/pi-zentui/extensions/zentui/extension-status-settings.ts +40 -0
  861. package/dist/extensions/pi-zentui/extensions/zentui/extension-status.ts +109 -1
  862. package/dist/extensions/pi-zentui/extensions/zentui/footer-format.ts +203 -23
  863. package/dist/extensions/pi-zentui/extensions/zentui/footer-layout.ts +80 -3
  864. package/dist/extensions/pi-zentui/extensions/zentui/footer-text.ts +1 -1
  865. package/dist/extensions/pi-zentui/extensions/zentui/footer.ts +432 -125
  866. package/dist/extensions/pi-zentui/extensions/zentui/format.ts +92 -4
  867. package/dist/extensions/pi-zentui/extensions/zentui/git.ts +47 -30
  868. package/dist/extensions/pi-zentui/extensions/zentui/github-status.ts +575 -0
  869. package/dist/extensions/pi-zentui/extensions/zentui/host-project-changes.ts +25 -0
  870. package/dist/extensions/pi-zentui/extensions/zentui/host-template-values.ts +29 -0
  871. package/dist/extensions/pi-zentui/extensions/zentui/icons.ts +53 -13
  872. package/dist/extensions/pi-zentui/extensions/zentui/index.ts +778 -258
  873. package/dist/extensions/pi-zentui/extensions/zentui/interaction-summary.ts +70 -5
  874. package/dist/extensions/pi-zentui/extensions/zentui/layered-editor.ts +55 -0
  875. package/dist/extensions/pi-zentui/extensions/zentui/live-context.ts +6 -1
  876. package/dist/extensions/pi-zentui/extensions/zentui/live-metadata-demand.ts +72 -0
  877. package/dist/extensions/pi-zentui/extensions/zentui/live-metadata-display.ts +21 -0
  878. package/dist/extensions/pi-zentui/extensions/zentui/live-metadata.ts +255 -0
  879. package/dist/extensions/pi-zentui/extensions/zentui/minimalist-editor.ts +476 -36
  880. package/dist/extensions/pi-zentui/extensions/zentui/minimalist-settings.ts +118 -0
  881. package/dist/extensions/pi-zentui/extensions/zentui/minimalist-template.ts +177 -0
  882. package/dist/extensions/pi-zentui/extensions/zentui/omp-editor-frame.ts +148 -0
  883. package/dist/extensions/pi-zentui/extensions/zentui/omp-statusline.ts +569 -0
  884. package/dist/extensions/pi-zentui/extensions/zentui/omp-template-lookups.ts +344 -0
  885. package/dist/extensions/pi-zentui/extensions/zentui/omp-template-metrics.ts +91 -0
  886. package/dist/extensions/pi-zentui/extensions/zentui/omp-template-modes.ts +323 -0
  887. package/dist/extensions/pi-zentui/extensions/zentui/omp-ui.ts +210 -0
  888. package/dist/extensions/pi-zentui/extensions/zentui/package-version.ts +30 -12
  889. package/dist/extensions/pi-zentui/extensions/zentui/project-demand.ts +46 -0
  890. package/dist/extensions/pi-zentui/extensions/zentui/project-discovery.ts +58 -0
  891. package/dist/extensions/pi-zentui/extensions/zentui/project-refresh.ts +10 -3
  892. package/dist/extensions/pi-zentui/extensions/zentui/project-state.ts +37 -0
  893. package/dist/extensions/pi-zentui/extensions/zentui/repository-root.ts +1 -0
  894. package/dist/extensions/pi-zentui/extensions/zentui/runtime.ts +119 -43
  895. package/dist/extensions/pi-zentui/extensions/zentui/selector-border.ts +40 -29
  896. package/dist/extensions/pi-zentui/extensions/zentui/settings-command.ts +1268 -722
  897. package/dist/extensions/pi-zentui/extensions/zentui/settings-keys.ts +59 -0
  898. package/dist/extensions/pi-zentui/extensions/zentui/settings-list-selection.ts +13 -0
  899. package/dist/extensions/pi-zentui/extensions/zentui/settings-previews.ts +11 -4
  900. package/dist/extensions/pi-zentui/extensions/zentui/state.ts +24 -11
  901. package/dist/extensions/pi-zentui/extensions/zentui/style.ts +6 -0
  902. package/dist/extensions/pi-zentui/extensions/zentui/telemetry.ts +113 -11
  903. package/dist/extensions/pi-zentui/extensions/zentui/thinking-experimental.ts +234 -46
  904. package/dist/extensions/pi-zentui/extensions/zentui/thinking-steps.ts +20 -5
  905. package/dist/extensions/pi-zentui/extensions/zentui/token-rate.ts +313 -0
  906. package/dist/extensions/pi-zentui/extensions/zentui/turn-summary-format.ts +59 -0
  907. package/dist/extensions/pi-zentui/extensions/zentui/turn-summary-rate.ts +52 -0
  908. package/dist/extensions/pi-zentui/extensions/zentui/ui.ts +640 -172
  909. package/dist/extensions/pi-zentui/extensions/zentui/user-message-styles.ts +72 -34
  910. package/dist/extensions/pi-zentui/extensions/zentui/user-message.ts +219 -34
  911. package/dist/extensions/pi-zentui/extensions/zentui/working-line.ts +495 -119
  912. package/dist/extensions/pi-zentui/omp.ts +157 -0
  913. package/dist/extensions/pi-zentui/package-lock.json +3762 -1507
  914. package/dist/extensions/pi-zentui/package.json +50 -12
  915. package/dist/extensions/pi-zentui/test/accent-rail-editor.test.ts +13 -2
  916. package/dist/extensions/pi-zentui/test/average-token-rate.test.ts +297 -0
  917. package/dist/extensions/pi-zentui/test/behavior-compatibility.mjs +89 -0
  918. package/dist/extensions/pi-zentui/test/codex-quota-lifecycle.test.ts +284 -0
  919. package/dist/extensions/pi-zentui/test/codex-quota-rendering.test.ts +466 -0
  920. package/dist/extensions/pi-zentui/test/codex-quota.test.ts +440 -0
  921. package/dist/extensions/pi-zentui/test/component-colors.test.ts +554 -0
  922. package/dist/extensions/pi-zentui/test/component-settings.test.ts +364 -0
  923. package/dist/extensions/pi-zentui/test/config-component-independence.test.ts +402 -0
  924. package/dist/extensions/pi-zentui/test/config-extension-status-choice.test.ts +233 -0
  925. package/dist/extensions/pi-zentui/test/config-hidden-extension-status-colors.test.ts +118 -0
  926. package/dist/extensions/pi-zentui/test/config-hidden-extension-status-placement.test.ts +142 -0
  927. package/dist/extensions/pi-zentui/test/config-minimalist-templates.test.ts +240 -0
  928. package/dist/extensions/pi-zentui/test/config-template-variables.test.ts +85 -0
  929. package/dist/extensions/pi-zentui/test/config.test.ts +80 -17
  930. package/dist/extensions/pi-zentui/test/custom-value-colors-integration.test.ts +453 -0
  931. package/dist/extensions/pi-zentui/test/custom-value-colors.test.ts +399 -0
  932. package/dist/extensions/pi-zentui/test/custom-variable-alias-prototypes.test.ts +177 -0
  933. package/dist/extensions/pi-zentui/test/custom-variable-consumers.test.ts +194 -0
  934. package/dist/extensions/pi-zentui/test/custom-variable-demand.test.ts +169 -0
  935. package/dist/extensions/pi-zentui/test/custom-variable-probe-reservation.test.ts +141 -0
  936. package/dist/extensions/pi-zentui/test/custom-variables-lifecycle.integration.test.ts +365 -0
  937. package/dist/extensions/pi-zentui/test/custom-variables.test.ts +330 -0
  938. package/dist/extensions/pi-zentui/test/editor-metadata-format.test.ts +121 -0
  939. package/dist/extensions/pi-zentui/test/editor-mouse.test.ts +507 -0
  940. package/dist/extensions/pi-zentui/test/editor-viewport-indicators.test.ts +247 -20
  941. package/dist/extensions/pi-zentui/test/extension-compliance.test.ts +204 -260
  942. package/dist/extensions/pi-zentui/test/extension-status-controller.test.ts +323 -0
  943. package/dist/extensions/pi-zentui/test/extension-status-lifecycle.integration.test.ts +466 -0
  944. package/dist/extensions/pi-zentui/test/extension-status-settings.test.ts +79 -0
  945. package/dist/extensions/pi-zentui/test/footer-alignment.test.ts +135 -0
  946. package/dist/extensions/pi-zentui/test/footer-authority.test.ts +69 -0
  947. package/dist/extensions/pi-zentui/test/footer-auto-compaction.test.ts +148 -0
  948. package/dist/extensions/pi-zentui/test/footer-format-cache.test.ts +186 -0
  949. package/dist/extensions/pi-zentui/test/footer-format.test.ts +154 -4
  950. package/dist/extensions/pi-zentui/test/footer-hidden.test.ts +312 -0
  951. package/dist/extensions/pi-zentui/test/footer-hyperlink.test.ts +22 -0
  952. package/dist/extensions/pi-zentui/test/footer-layout.test.ts +80 -0
  953. package/dist/extensions/pi-zentui/test/footer-thinking-level.test.ts +123 -0
  954. package/dist/extensions/pi-zentui/test/format.test.ts +75 -1
  955. package/dist/extensions/pi-zentui/test/git-probes.test.ts +182 -0
  956. package/dist/extensions/pi-zentui/test/github-status.test.ts +931 -0
  957. package/dist/extensions/pi-zentui/test/host-template-surfaces.test.ts +287 -0
  958. package/dist/extensions/pi-zentui/test/icons.test.ts +86 -16
  959. package/dist/extensions/pi-zentui/test/layered-editor.test.ts +53 -0
  960. package/dist/extensions/pi-zentui/test/live-context-integration.test.ts +154 -7
  961. package/dist/extensions/pi-zentui/test/live-context.test.ts +45 -0
  962. package/dist/extensions/pi-zentui/test/live-metadata-lifecycle.integration.test.ts +963 -0
  963. package/dist/extensions/pi-zentui/test/live-metadata.test.ts +767 -0
  964. package/dist/extensions/pi-zentui/test/minimalist-cache-hit-colors.test.ts +183 -0
  965. package/dist/extensions/pi-zentui/test/minimalist-editor.test.ts +222 -4
  966. package/dist/extensions/pi-zentui/test/minimalist-settings.test.ts +103 -0
  967. package/dist/extensions/pi-zentui/test/minimalist-templates.test.ts +489 -0
  968. package/dist/extensions/pi-zentui/test/omp-editor-composers.test.ts +324 -0
  969. package/dist/extensions/pi-zentui/test/omp-statusline.test.ts +579 -0
  970. package/dist/extensions/pi-zentui/test/omp-template-lookups.test.ts +630 -0
  971. package/dist/extensions/pi-zentui/test/omp-template-metrics.test.ts +72 -0
  972. package/dist/extensions/pi-zentui/test/omp-template-modes.test.ts +557 -0
  973. package/dist/extensions/pi-zentui/test/omp-ui.test.ts +93 -0
  974. package/dist/extensions/pi-zentui/test/package-contents.mjs +1 -0
  975. package/dist/extensions/pi-zentui/test/pi-version-policy.test.ts +37 -0
  976. package/dist/extensions/pi-zentui/test/project-demand-integration.test.ts +542 -0
  977. package/dist/extensions/pi-zentui/test/project-discovery.test.ts +412 -0
  978. package/dist/extensions/pi-zentui/test/project-refresh.test.ts +44 -0
  979. package/dist/extensions/pi-zentui/test/project-state.test.ts +38 -1
  980. package/dist/extensions/pi-zentui/test/responsive-dependencies.test.ts +7 -7
  981. package/dist/extensions/pi-zentui/test/runtime.test.ts +127 -2
  982. package/dist/extensions/pi-zentui/test/selesai-v030-gate.json +939 -0
  983. package/dist/extensions/pi-zentui/test/settings-command.test.ts +1330 -82
  984. package/dist/extensions/pi-zentui/test/settings-keys.test.ts +41 -0
  985. package/dist/extensions/pi-zentui/test/settings-list-selection.test.ts +88 -0
  986. package/dist/extensions/pi-zentui/test/settings-previews.test.ts +4 -1
  987. package/dist/extensions/pi-zentui/test/state.test.ts +15 -1
  988. package/dist/extensions/pi-zentui/test/telemetry-lifecycle-integration.test.ts +214 -12
  989. package/dist/extensions/pi-zentui/test/telemetry-snapshot.test.ts +246 -0
  990. package/dist/extensions/pi-zentui/test/thinking-experimental-cache.test.ts +246 -0
  991. package/dist/extensions/pi-zentui/test/thinking-experimental-rows.test.ts +22 -0
  992. package/dist/extensions/pi-zentui/test/thinking-experimental-tui.mjs +113 -51
  993. package/dist/extensions/pi-zentui/test/thinking-experimental.test.ts +576 -76
  994. package/dist/extensions/pi-zentui/test/thinking-steps.test.ts +23 -0
  995. package/dist/extensions/pi-zentui/test/token-rate.test.ts +450 -0
  996. package/dist/extensions/pi-zentui/test/turn-summary-format.test.ts +207 -0
  997. package/dist/extensions/pi-zentui/test/turn-summary-lifecycle.integration.test.ts +72 -5
  998. package/dist/extensions/pi-zentui/test/turn-summary-rate.test.ts +158 -0
  999. package/dist/extensions/pi-zentui/test/usage-lifecycle-integration.test.ts +421 -0
  1000. package/dist/extensions/pi-zentui/test/usage-snapshot.test.ts +154 -0
  1001. package/dist/extensions/pi-zentui/test/user-message-cache.test.ts +239 -0
  1002. package/dist/extensions/pi-zentui/test/user-message-native-reduced-capabilities.test.ts +61 -0
  1003. package/dist/extensions/pi-zentui/test/user-message-native.test.ts +447 -0
  1004. package/dist/extensions/pi-zentui/test/user-message-styles.test.ts +2 -2
  1005. package/dist/extensions/pi-zentui/test/working-line-editor-placement.test.ts +317 -0
  1006. package/dist/extensions/pi-zentui/test/working-line-generation-cache.test.ts +238 -0
  1007. package/dist/extensions/pi-zentui/test/working-line-lifecycle.integration.test.ts +674 -179
  1008. package/dist/extensions/pi-zentui/test/working-line-message-ownership.test.ts +239 -0
  1009. package/dist/extensions/pi-zentui/test/working-line-metric-animation.test.ts +284 -0
  1010. package/dist/extensions/pi-zentui/test/working-line-placement.test.ts +298 -0
  1011. package/dist/extensions/pi-zentui/test/working-line.test.ts +386 -18
  1012. package/dist/extensions/pi-zentui/test/wrapped-editor-consumers.integration.test.ts +579 -0
  1013. package/dist/extensions/pi-zentui/test/wrapped-editor-usage.integration.test.ts +298 -0
  1014. package/dist/extensions/pi-zentui/tsconfig.json +1 -1
  1015. package/dist/extensions/pi-zentui/vitest.host.config.ts +33 -0
  1016. package/dist/extensions/question/index.ts +1 -5
  1017. package/dist/extensions/rtk.test.ts +28 -15
  1018. package/dist/extensions/rtk.ts +22 -22
  1019. package/dist/extensions/skills-index/index.test.ts +99 -0
  1020. package/dist/extensions/skills-index/index.ts +105 -0
  1021. package/dist/extensions/skills-index/package.json +9 -0
  1022. package/dist/extensions/tokenin-onboarding.ts +52 -210
  1023. package/dist/extensions/tool-search/index.d.ts +11 -0
  1024. package/dist/extensions/tool-search/index.js +14 -0
  1025. package/dist/extensions/tool-search/tool.d.ts +72 -0
  1026. package/dist/extensions/tool-search/tool.js +188 -0
  1027. package/dist/index.d.ts +21 -9
  1028. package/dist/index.js +17 -5
  1029. package/dist/main.d.ts +10 -0
  1030. package/dist/main.js +107 -43
  1031. package/dist/migrations.js +4 -3
  1032. package/dist/modes/index.d.ts +2 -1
  1033. package/dist/modes/interactive/bug-report.js +4 -0
  1034. package/dist/modes/interactive/components/armin.d.ts +3 -0
  1035. package/dist/modes/interactive/components/armin.js +7 -5
  1036. package/dist/modes/interactive/components/assistant-message.js +1 -1
  1037. package/dist/modes/interactive/components/auth-url.d.ts +13 -0
  1038. package/dist/modes/interactive/components/auth-url.js +36 -0
  1039. package/dist/modes/interactive/components/bash-execution.d.ts +5 -1
  1040. package/dist/modes/interactive/components/bash-execution.js +17 -14
  1041. package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -1
  1042. package/dist/modes/interactive/components/branch-summary-message.js +5 -2
  1043. package/dist/modes/interactive/components/compaction-summary-message.d.ts +2 -1
  1044. package/dist/modes/interactive/components/compaction-summary-message.js +5 -2
  1045. package/dist/modes/interactive/components/config-selector.js +13 -3
  1046. package/dist/modes/interactive/components/custom-editor.js +7 -0
  1047. package/dist/modes/interactive/components/custom-entry.d.ts +3 -1
  1048. package/dist/modes/interactive/components/custom-entry.js +8 -2
  1049. package/dist/modes/interactive/components/custom-message.js +1 -0
  1050. package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
  1051. package/dist/modes/interactive/components/first-time-setup.js +8 -2
  1052. package/dist/modes/interactive/components/footer.d.ts +7 -0
  1053. package/dist/modes/interactive/components/footer.js +44 -4
  1054. package/dist/modes/interactive/components/index.d.ts +0 -1
  1055. package/dist/modes/interactive/components/index.js +0 -1
  1056. package/dist/modes/interactive/components/login-dialog.d.ts +2 -0
  1057. package/dist/modes/interactive/components/login-dialog.js +11 -5
  1058. package/dist/modes/interactive/components/mermaid.d.ts +10 -0
  1059. package/dist/modes/interactive/components/mermaid.js +74 -0
  1060. package/dist/modes/interactive/components/model-selector.d.ts +14 -9
  1061. package/dist/modes/interactive/components/model-selector.js +79 -31
  1062. package/dist/modes/interactive/components/oauth-selector.d.ts +8 -2
  1063. package/dist/modes/interactive/components/oauth-selector.js +24 -21
  1064. package/dist/modes/interactive/components/pi-logo.d.ts +18 -0
  1065. package/dist/modes/interactive/components/pi-logo.js +36 -0
  1066. package/dist/modes/interactive/components/radius-login-selector.d.ts +14 -0
  1067. package/dist/modes/interactive/components/radius-login-selector.js +84 -0
  1068. package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
  1069. package/dist/modes/interactive/components/scoped-models-selector.js +26 -0
  1070. package/dist/modes/interactive/components/settings-selector.d.ts +8 -11
  1071. package/dist/modes/interactive/components/settings-selector.js +60 -102
  1072. package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -1
  1073. package/dist/modes/interactive/components/skill-invocation-message.js +5 -2
  1074. package/dist/modes/interactive/components/themed-text.d.ts +16 -0
  1075. package/dist/modes/interactive/components/themed-text.js +28 -0
  1076. package/dist/modes/interactive/components/tool-execution.d.ts +11 -18
  1077. package/dist/modes/interactive/components/tool-execution.js +34 -47
  1078. package/dist/modes/interactive/components/tree-selector.js +7 -0
  1079. package/dist/modes/interactive/components/user-message.d.ts +3 -1
  1080. package/dist/modes/interactive/components/user-message.js +14 -6
  1081. package/dist/modes/interactive/components/visual-truncate.d.ts +27 -3
  1082. package/dist/modes/interactive/components/visual-truncate.js +39 -6
  1083. package/dist/modes/interactive/external-editor.js +2 -1
  1084. package/dist/modes/interactive/interactive-mode.d.ts +41 -8
  1085. package/dist/modes/interactive/interactive-mode.js +854 -492
  1086. package/dist/modes/interactive/program-status-reporter.d.ts +33 -0
  1087. package/dist/modes/interactive/program-status-reporter.js +109 -0
  1088. package/dist/modes/interactive/theme/dark.json +59 -72
  1089. package/dist/modes/interactive/theme/light.json +57 -69
  1090. package/dist/modes/interactive/theme/system-theme.d.ts +54 -0
  1091. package/dist/modes/interactive/theme/system-theme.js +545 -0
  1092. package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
  1093. package/dist/modes/interactive/theme/theme-controller.js +127 -47
  1094. package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
  1095. package/dist/modes/interactive/theme/theme-json.js +3 -1
  1096. package/dist/modes/interactive/theme/theme-schema.json +7 -2
  1097. package/dist/modes/interactive/theme/theme.d.ts +66 -39
  1098. package/dist/modes/interactive/theme/theme.js +243 -320
  1099. package/dist/modes/interactive/tui-renderer.d.ts +2 -1
  1100. package/dist/modes/interactive/tui-renderer.js +1 -0
  1101. package/dist/modes/json-event.d.ts +33 -0
  1102. package/dist/modes/json-event.js +28 -0
  1103. package/dist/modes/print-mode.js +12 -2
  1104. package/dist/modes/rpc/intercom-bridge.d.ts +14 -0
  1105. package/dist/modes/rpc/intercom-bridge.js +75 -0
  1106. package/dist/modes/rpc/intercom-bridge.test.js +65 -0
  1107. package/dist/modes/rpc/release-bridge.d.ts +35 -0
  1108. package/dist/modes/rpc/release-bridge.js +159 -0
  1109. package/dist/modes/rpc/release-bridge.test.d.ts +1 -0
  1110. package/dist/modes/rpc/release-bridge.test.js +347 -0
  1111. package/dist/modes/rpc/rpc-client.d.ts +43 -27
  1112. package/dist/modes/rpc/rpc-client.js +97 -37
  1113. package/dist/modes/rpc/rpc-intercom-transport.test.d.ts +1 -0
  1114. package/dist/modes/rpc/rpc-intercom-transport.test.js +85 -0
  1115. package/dist/modes/rpc/rpc-mode.d.ts +1 -13
  1116. package/dist/modes/rpc/rpc-mode.js +250 -34
  1117. package/dist/modes/rpc/rpc-release-transport.test.d.ts +1 -0
  1118. package/dist/modes/rpc/rpc-release-transport.test.js +329 -0
  1119. package/dist/modes/rpc/rpc-subagent-transport.test.d.ts +1 -0
  1120. package/dist/modes/rpc/rpc-subagent-transport.test.js +60 -0
  1121. package/dist/modes/rpc/rpc-types.d.ts +22 -23
  1122. package/dist/modes/rpc/rpc-types.js +0 -6
  1123. package/dist/modes/rpc/subagent-bridge.d.ts +23 -0
  1124. package/dist/modes/rpc/subagent-bridge.js +93 -0
  1125. package/dist/modes/rpc/test-fixtures/intercom-host.d.ts +1 -0
  1126. package/dist/modes/rpc/test-fixtures/intercom-host.js +13 -0
  1127. package/dist/package-manager-cli.js +16 -5
  1128. package/dist/rpc-entry.js +1 -0
  1129. package/dist/skills/pi-subagents/SKILL.md +109 -35
  1130. package/dist/skills/pi-subagents/references/constraints-and-recipes.md +38 -238
  1131. package/dist/skills/pi-subagents/references/execution-controls.md +181 -83
  1132. package/dist/skills/pi-subagents/references/management-authoring-rpc.md +9 -9
  1133. package/dist/skills/pi-subagents/references/multi-lane-orchestration.md +24 -2
  1134. package/dist/skills/pi-subagents/references/prompting-and-roles.md +121 -91
  1135. package/dist/skills/pi-subagents/references/review-and-validation.md +73 -0
  1136. package/dist/utils/ansi.d.ts +8 -0
  1137. package/dist/utils/ansi.js +30 -11
  1138. package/dist/utils/clipboard-image.js +14 -17
  1139. package/dist/utils/clipboard.d.ts +2 -0
  1140. package/dist/utils/clipboard.js +17 -11
  1141. package/dist/utils/frontmatter.js +2 -1
  1142. package/dist/utils/image-convert.d.ts +12 -0
  1143. package/dist/utils/image-convert.js +45 -6
  1144. package/dist/utils/image-resize-core.d.ts +12 -0
  1145. package/dist/utils/image-resize-core.js +5 -0
  1146. package/dist/utils/image-resize-worker.js +3 -2
  1147. package/dist/utils/image-resize.js +9 -10
  1148. package/dist/utils/mime.js +1 -1
  1149. package/dist/utils/output-files.d.ts +14 -0
  1150. package/dist/utils/output-files.js +29 -0
  1151. package/dist/utils/paths.d.ts +6 -3
  1152. package/dist/utils/paths.js +28 -5
  1153. package/dist/utils/shell.d.ts +1 -3
  1154. package/dist/utils/shell.js +3 -30
  1155. package/dist/utils/syntax-highlight.d.ts +1 -0
  1156. package/dist/utils/syntax-highlight.js +68 -2
  1157. package/dist/utils/tool-result-images.d.ts +20 -0
  1158. package/dist/utils/tool-result-images.js +47 -0
  1159. package/dist/utils/tools-manager.d.ts +5 -0
  1160. package/dist/utils/tools-manager.js +6 -6
  1161. package/dist/utils/version-check.d.ts +4 -0
  1162. package/dist/utils/version-check.js +20 -2
  1163. package/docs/cli-integration.md +104 -0
  1164. package/docs/cli.md +333 -0
  1165. package/docs/codemode.md +230 -0
  1166. package/docs/configuration.md +47 -0
  1167. package/docs/environment-variables.md +5 -0
  1168. package/docs/extensions.md +107 -30
  1169. package/docs/json.md +8 -4
  1170. package/docs/keybindings.md +10 -10
  1171. package/docs/mcp.md +262 -0
  1172. package/docs/models.md +104 -3
  1173. package/docs/providers.md +20 -2
  1174. package/docs/rpc-subagent.schema.json +491 -0
  1175. package/docs/rpc.md +223 -13
  1176. package/docs/sdk.md +41 -33
  1177. package/docs/security.md +21 -20
  1178. package/docs/settings.md +18 -46
  1179. package/docs/terminal-setup.md +14 -0
  1180. package/docs/virtual-models.md +114 -0
  1181. package/examples/extensions/jev-router.ts +113 -0
  1182. package/examples/extensions/tokenin-usage-widget.ts +124 -0
  1183. package/examples/rpc-client.ts +35 -0
  1184. package/examples/sdk/14-codemode-mcp.ts +67 -0
  1185. package/package.json +16 -8
  1186. package/dist/core/agent-session-auto-handoff.test.js +0 -195
  1187. package/dist/core/built-in-extensions.d.ts +0 -2
  1188. package/dist/core/built-in-extensions.js +0 -2
  1189. package/dist/core/llama/provider.js +0 -143
  1190. package/dist/core/settings-manager-auto-handoff.test.js +0 -53
  1191. package/dist/extensions/capability-gateway/catalog.ts +0 -177
  1192. package/dist/extensions/capability-gateway/index.test.ts +0 -226
  1193. package/dist/extensions/capability-gateway/index.ts +0 -669
  1194. package/dist/extensions/capability-gateway/integration.test.ts +0 -803
  1195. package/dist/extensions/capability-gateway/package.json +0 -16
  1196. package/dist/extensions/capability-gateway/routing.test.ts +0 -574
  1197. package/dist/extensions/capability-gateway/routing.ts +0 -403
  1198. package/dist/extensions/pi-subagents/runner-server-preload.mjs +0 -13
  1199. package/dist/extensions/pi-subagents/src/runs/shared/completion-evidence.ts +0 -89
  1200. package/dist/extensions/pi-subagents/src/runs/shared/completion-guard.ts +0 -259
  1201. package/dist/extensions/pi-subagents/src/runs/shared/llm-intent-arbiter.ts +0 -312
  1202. package/dist/extensions/pi-subagents/src/runs/shared/model-exclusions.ts +0 -374
  1203. package/dist/extensions/pi-subagents/src/runs/shared/readonly-model-continuation.ts +0 -69
  1204. package/dist/extensions/pi-subagents/src/runs/shared/readonly-session-evidence.ts +0 -307
  1205. package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +0 -211
  1206. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  1207. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  1208. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  1209. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  1210. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  1211. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  1212. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  1213. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  1214. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  1215. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  1216. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  1217. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  1218. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  1219. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  1220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  1221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  1222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  1223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  1224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  1225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  1226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  1227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  1228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  1229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  1230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  1231. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  1232. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  1233. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  1234. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  1235. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  1236. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  1237. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  1238. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  1239. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  1240. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  1241. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1261
  1242. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  1243. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  1244. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  1245. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  1246. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  1247. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  1248. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  1249. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  1250. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  1251. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  1252. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  1253. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  1254. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  1255. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  1256. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  1257. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  1258. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  1259. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  1260. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  1261. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  1262. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  1263. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  1264. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  1265. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  1266. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  1267. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  1268. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  1269. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  1270. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  1271. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  1272. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  1273. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  1274. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  1275. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  1276. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  1277. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  1278. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  1279. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  1280. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  1281. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  1282. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  1283. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  1284. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  1285. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  1286. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  1287. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  1288. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  1289. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  1290. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  1291. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  1292. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  1293. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  1294. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  1295. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  1296. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  1297. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  1298. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  1299. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  1300. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  1301. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  1302. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  1303. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  1304. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  1305. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  1306. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  1307. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  1308. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  1309. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  1310. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  1311. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  1312. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  1313. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  1314. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  1315. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  1316. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  1317. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  1318. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  1319. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  1320. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  1321. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  1322. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  1323. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  1324. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  1325. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  1326. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  1327. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  1328. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  1329. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  1330. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  1331. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  1332. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  1333. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  1334. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  1335. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  1336. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  1337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  1338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  1339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  1340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  1341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  1342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  1343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  1344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  1345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  1346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  1347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  1348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  1349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  1350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  1351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  1352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  1353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  1354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  1355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  1356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  1357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  1358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  1359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  1360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  1361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  1362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  1363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  1364. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  1365. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  1366. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  1367. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  1368. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  1369. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  1370. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  1371. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  1372. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  1373. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  1374. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  1375. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  1376. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  1377. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  1378. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  1379. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +0 -3
  1380. package/dist/extensions/pi-subagents/test/smoke/pi085-child.ts +0 -31
  1381. package/dist/extensions/pi-subagents/test/smoke/pi085-clean-install.mjs +0 -74
  1382. package/dist/extensions/pi-subagents/test/unit/completion-evidence.test.ts +0 -150
  1383. package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +0 -766
  1384. package/dist/extensions/pi-subagents/test/unit/llm-intent-arbiter.test.ts +0 -327
  1385. package/dist/extensions/pi-subagents/test/unit/model-exclusions.test.ts +0 -309
  1386. package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +0 -1093
  1387. package/dist/extensions/pi-subagents/test/unit/readonly-model-continuation.test.ts +0 -94
  1388. package/dist/extensions/pi-subagents/test/unit/readonly-session-evidence.test.ts +0 -1329
  1389. package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +0 -153
  1390. package/dist/extensions/pi-zentui/extensions/zentui/accent-rail-layout-patch.ts +0 -457
  1391. package/dist/extensions/pi-zentui/test/accent-rail-layout-patch.test.ts +0 -669
  1392. package/dist/extensions/pi-zentui/test/thinking-experimental-docs.test.ts +0 -51
  1393. package/dist/modes/interactive/components/daxnuts.d.ts +0 -22
  1394. package/dist/modes/interactive/components/daxnuts.js +0 -139
  1395. /package/dist/core/{agent-session-auto-handoff.test.d.ts → agent-session-custom-tools.test.d.ts} +0 -0
  1396. /package/dist/{core → extensions}/llama/huggingface.d.ts +0 -0
  1397. /package/dist/{core → extensions}/llama/huggingface.js +0 -0
  1398. /package/dist/{core → extensions}/llama/index.d.ts +0 -0
  1399. /package/dist/{core → extensions}/llama/ui.d.ts +0 -0
  1400. /package/dist/{core → extensions}/llama/ui.js +0 -0
  1401. /package/dist/{core/settings-manager-auto-handoff.test.d.ts → modes/rpc/intercom-bridge.test.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import type { Credential, CredentialInfo, CredentialStore } from "@earendil-works/pi-ai";
1
+ import type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from "@earendil-works/pi-ai";
2
2
  /** Async credential store overlay for non-persistent runtime API keys. */
3
3
  export declare class RuntimeCredentials implements CredentialStore {
4
4
  private readonly store;
@@ -9,8 +9,8 @@ export declare class RuntimeCredentials implements CredentialStore {
9
9
  hasRuntimeApiKey(providerId: string): boolean;
10
10
  getStore(): CredentialStore;
11
11
  reload(): void;
12
- read(providerId: string): Promise<Credential | undefined>;
13
- list(): Promise<readonly CredentialInfo[]>;
14
- modify(providerId: string, fn: (current: Credential | undefined) => Promise<Credential | undefined>): Promise<Credential | undefined>;
15
- delete(providerId: string): Promise<void>;
12
+ read(providerId: string, options?: AuthOperationOptions): Promise<Credential | undefined>;
13
+ list(options?: AuthOperationOptions): Promise<readonly CredentialInfo[]>;
14
+ modify(providerId: string, fn: (current: Credential | undefined) => Promise<Credential | undefined>, options?: AuthOperationOptions): Promise<Credential | undefined>;
15
+ delete(providerId: string, options?: AuthOperationOptions): Promise<void>;
16
16
  }
@@ -20,22 +20,25 @@ export class RuntimeCredentials {
20
20
  reload() {
21
21
  this.store.reload?.();
22
22
  }
23
- async read(providerId) {
23
+ async read(providerId, options) {
24
+ options?.signal?.throwIfAborted();
24
25
  const override = this.overrides.get(providerId);
25
- return override ? { type: "api_key", key: override } : this.store.read(providerId);
26
+ return override ? { type: "api_key", key: override } : this.store.read(providerId, options);
26
27
  }
27
- async list() {
28
- const entries = new Map((await this.store.list()).map((entry) => [entry.providerId, entry]));
28
+ async list(options) {
29
+ const entries = new Map((await this.store.list(options)).map((entry) => [entry.providerId, entry]));
30
+ options?.signal?.throwIfAborted();
29
31
  for (const providerId of this.overrides.keys()) {
30
32
  entries.set(providerId, { providerId, type: "api_key" });
31
33
  }
32
34
  return [...entries.values()];
33
35
  }
34
- modify(providerId, fn) {
35
- return this.store.modify(providerId, fn);
36
+ modify(providerId, fn, options) {
37
+ return this.store.modify(providerId, fn, options);
36
38
  }
37
- async delete(providerId) {
39
+ async delete(providerId, options) {
40
+ options?.signal?.throwIfAborted();
41
+ await this.store.delete(providerId, options);
38
42
  this.overrides.delete(providerId);
39
- await this.store.delete(providerId);
40
43
  }
41
44
  }
@@ -32,16 +32,25 @@ export interface CreateAgentSessionOptions {
32
32
  */
33
33
  noTools?: "all" | "builtin";
34
34
  /**
35
- * Optional allowlist of tool names.
35
+ * Optional allowlist of tool names or patterns, where `*` matches any characters.
36
36
  *
37
- * When omitted, pi uses the `defaultTools` setting for the initial built-in
37
+ * When omitted, pi uses the resolved `defaultTools` setting for the initial
38
38
  * selection when configured. Otherwise it enables the default built-in tools
39
- * (read, bash, edit, write, grep, find, ls). Extension/custom tools are inactive by default;
40
- * `noTools: "builtin"` enables them instead. When provided, only the listed
41
- * tool names are enabled.
39
+ * (read, bash, edit, write, grep, find, ls). Extension/custom tools use their
40
+ * declared exposure/defaultActive; `noTools: "builtin"` enables extension/custom tools. When provided, only matching tools are
41
+ * enabled. MCP tools stay registered for codemode and tool search unless an
42
+ * entry starts with `mcp__`; then only matching MCP tools are kept. An empty
43
+ * list, like `noTools: "all"`, disables MCP tools too.
44
+ *
45
+ * A list of only `+name` and `-name` entries is not an allowlist: it adds tools
46
+ * to or removes them from the default selection, like the `defaultTools` setting.
47
+ * These entries take exact names. Mixing them with plain entries throws.
42
48
  */
43
49
  tools?: string[];
44
- /** Optional denylist of tool names to disable. Applies after `tools` when both are provided. */
50
+ /**
51
+ * Optional denylist of tool names or patterns to disable. Applies after `tools` when both are
52
+ * provided, MCP tools included.
53
+ */
45
54
  excludeTools?: string[];
46
55
  /** Custom tools to register (in addition to built-in tools). */
47
56
  customTools?: ToolDefinition[];
@@ -68,7 +77,7 @@ export type { ExtensionAPI, ExtensionCommandContext, ExtensionContext, Extension
68
77
  export type { PromptTemplate } from "./prompt-templates.ts";
69
78
  export type { Skill } from "./skills.ts";
70
79
  export type { Tool } from "./tools/index.ts";
71
- export { withFileMutationQueue, createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createPowerShellTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, };
80
+ export { withFileMutationQueue, createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, createPowerShellTool, };
72
81
  /**
73
82
  * Create an AgentSession with the specified options.
74
83
  *
package/dist/core/sdk.js CHANGED
@@ -7,15 +7,17 @@ import { AgentSession } from "./agent-session.js";
7
7
  import { formatNoModelsAvailableMessage } from "./auth-guidance.js";
8
8
  import { CacheWarmer } from "./cache-warmer.js";
9
9
  import { DEFAULT_THINKING_LEVEL } from "./defaults.js";
10
+ import { createToolNameMatcher } from "./mcp-servers.js";
10
11
  import { convertToLlm } from "./messages.js";
11
12
  import { findInitialModel } from "./model-resolver.js";
12
13
  import { ModelRuntime } from "./model-runtime.js";
13
14
  import { mergeProviderAttributionHeaders } from "./provider-attribution.js";
14
15
  import { DefaultResourceLoader } from "./resource-loader.js";
15
16
  import { getDefaultSessionDir, SessionManager } from "./session-manager.js";
16
- import { SettingsManager } from "./settings-manager.js";
17
+ import { applyToolModifiers, DEFAULT_TOOL_NAMES, getToolListError, isToolModifier, SettingsManager, } from "./settings-manager.js";
17
18
  import { time } from "./timings.js";
18
19
  import { createBashTool, createCodingTools, createEditTool, createFindTool, createGrepTool, createLsTool, createPowerShellTool, createReadOnlyTools, createReadTool, createWriteTool, withFileMutationQueue, } from "./tools/index.js";
20
+ import { getBranchSelection } from "./virtual-models.js";
19
21
  // Preserve the pre-0.81 fallback for extensions that construct Agent instances
20
22
  // or invoke low-level agent loops without supplying streamFn. Agent core remains
21
23
  // provider-agnostic and does not import pi-ai/compat itself.
@@ -24,7 +26,7 @@ setDefaultStreamFn(streamSimple);
24
26
  export * from "./agent-session-runtime.js";
25
27
  export { withFileMutationQueue,
26
28
  // Tool factories (for custom cwd)
27
- createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createPowerShellTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, };
29
+ createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, createPowerShellTool, };
28
30
  // Helper Functions
29
31
  function getDefaultAgentDir() {
30
32
  return getAgentDir();
@@ -84,14 +86,17 @@ export async function createAgentSession(options = {}) {
84
86
  const hasThinkingEntry = sessionManager.getBranch().some((entry) => entry.type === "thinking_level_change");
85
87
  let model = options.model;
86
88
  let modelFallbackMessage;
89
+ // Assistant messages name the physical model that answered, so a virtual selection is only in
90
+ // model_change entries.
91
+ const sessionModel = getBranchSelection(sessionManager.getBranch(), (provider, modelId) => modelRuntime.getModel(provider, modelId));
87
92
  // If session has data, try to restore model from it
88
- if (!model && hasExistingSession && existingSession.model) {
89
- const restoredModel = modelRuntime.getModel(existingSession.model.provider, existingSession.model.modelId);
93
+ if (!model && hasExistingSession && sessionModel) {
94
+ const restoredModel = modelRuntime.getModel(sessionModel.provider, sessionModel.modelId);
90
95
  if (restoredModel && modelRuntime.hasConfiguredAuth(restoredModel.provider)) {
91
96
  model = restoredModel;
92
97
  }
93
98
  if (!model) {
94
- modelFallbackMessage = `Could not restore model ${existingSession.model.provider}/${existingSession.model.modelId}`;
99
+ modelFallbackMessage = `Could not restore model ${sessionModel.provider}/${sessionModel.modelId}`;
95
100
  }
96
101
  }
97
102
  // If still no model, use findInitialModel (checks settings default, then provider defaults)
@@ -120,9 +125,12 @@ export async function createAgentSession(options = {}) {
120
125
  ? existingSession.thinkingLevel
121
126
  : (settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL);
122
127
  }
123
- // Fall back to the selected model's override, then settings default
128
+ // Fall back to per-model override, then global default
124
129
  if (thinkingLevel === undefined && model) {
125
- thinkingLevel = settingsManager.getModelThinkingLevel(model.provider, model.id);
130
+ const perModel = settingsManager.getModelThinkingLevel(model.provider, model.id);
131
+ if (perModel) {
132
+ thinkingLevel = perModel;
133
+ }
126
134
  }
127
135
  if (thinkingLevel === undefined) {
128
136
  thinkingLevel = settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
@@ -134,21 +142,29 @@ export async function createAgentSession(options = {}) {
134
142
  else {
135
143
  thinkingLevel = clampThinkingLevel(model, thinkingLevel);
136
144
  }
137
- const defaultActiveToolNames = ["read", "bash", "edit", "write", "grep", "find", "ls"];
138
- const configuredDefaultToolNames = settingsManager.getDefaultTools();
139
- const allowedToolNames = options.tools ?? (options.noTools === "all" ? [] : undefined);
145
+ const toolListError = options.tools ? getToolListError(options.tools) : undefined;
146
+ if (toolListError)
147
+ throw new Error(`Invalid tools option: ${toolListError}`);
148
+ const defaultToolNames = options.noTools === "builtin"
149
+ ? [
150
+ ...resourceLoader.getExtensions().extensions.flatMap((extension) => Array.from(extension.tools.keys())),
151
+ ...(options.customTools?.map((tool) => tool.name) ?? []),
152
+ ]
153
+ : options.noTools
154
+ ? []
155
+ : (settingsManager.getDefaultTools() ?? DEFAULT_TOOL_NAMES);
156
+ // A `tools` list of only `+name`/`-name` entries changes the default selection instead of
157
+ // replacing it, like the `defaultTools` setting.
158
+ const toolModifiers = options.tools?.some(isToolModifier) ? options.tools : undefined;
159
+ const selectedToolNames = toolModifiers ? applyToolModifiers(defaultToolNames, toolModifiers) : options.tools;
160
+ const allowedToolNames = toolModifiers
161
+ ? options.noTools === "all"
162
+ ? selectedToolNames
163
+ : undefined
164
+ : (options.tools ?? (options.noTools === "all" ? [] : undefined));
140
165
  const excludedToolNames = options.excludeTools;
141
- const excludedToolNameSet = excludedToolNames ? new Set(excludedToolNames) : undefined;
142
- const initialActiveToolNames = (options.tools ??
143
- (options.noTools === "builtin"
144
- ? [
145
- ...resourceLoader.getExtensions().extensions.flatMap((extension) => Array.from(extension.tools.keys())),
146
- ...(options.customTools?.map((tool) => tool.name) ?? []),
147
- ]
148
- : options.noTools
149
- ? []
150
- : (configuredDefaultToolNames ?? defaultActiveToolNames))).filter((name) => !excludedToolNameSet?.has(name));
151
- let agent;
166
+ const isExcludedTool = excludedToolNames ? createToolNameMatcher(excludedToolNames) : undefined;
167
+ const initialActiveToolNames = (selectedToolNames ?? defaultToolNames).filter((name) => !isExcludedTool?.(name));
152
168
  // Create convertToLlm wrapper that filters images if blockImages is enabled (defense-in-depth)
153
169
  const convertToLlmWithBlockImages = (messages) => {
154
170
  const converted = convertToLlm(messages);
@@ -200,6 +216,8 @@ export async function createAgentSession(options = {}) {
200
216
  },
201
217
  };
202
218
  };
219
+ // Warm only requests for the selected model. Requests a virtual selection routed, or that an
220
+ // extension redirected, may not be repeated by the next request, so warming them could be wasted.
203
221
  const cacheContextIsCurrent = (requestModel) => {
204
222
  const messages = agent.state.messages;
205
223
  return () => {
@@ -227,12 +245,25 @@ export async function createAgentSession(options = {}) {
227
245
  headers: response.headers,
228
246
  });
229
247
  };
230
- agent = new Agent({
248
+ const handleProviderStreamEvent = async (data, model) => {
249
+ const runner = extensionRunnerRef.current;
250
+ if (!runner?.hasHandlers("provider_stream_event"))
251
+ return;
252
+ await runner.emit({
253
+ data,
254
+ type: "provider_stream_event",
255
+ provider: model.provider,
256
+ api: model.api,
257
+ model: model.id,
258
+ });
259
+ };
260
+ const agent = new Agent({
231
261
  initialState: {
232
262
  systemPrompt: "",
233
263
  model,
234
264
  thinkingLevel,
235
265
  tools: [],
266
+ messages: existingSession.messages,
236
267
  },
237
268
  convertToLlm: convertToLlmWithBlockImages,
238
269
  streamFn: async (model, context, options) => {
@@ -249,6 +280,7 @@ export async function createAgentSession(options = {}) {
249
280
  },
250
281
  onPayload: transformProviderPayload,
251
282
  onResponse: handleProviderResponse,
283
+ onProviderStreamEvent: handleProviderStreamEvent,
252
284
  sessionId: sessionManager.getSessionId(),
253
285
  transformContext: async (messages) => {
254
286
  const runner = extensionRunnerRef.current;
@@ -262,9 +294,8 @@ export async function createAgentSession(options = {}) {
262
294
  thinkingBudgets: settingsManager.getThinkingBudgets(),
263
295
  maxRetryDelayMs: settingsManager.getProviderRetrySettings().maxRetryDelayMs,
264
296
  });
265
- // Restore messages if session has existing data
297
+ // Restore missing settings metadata for older sessions.
266
298
  if (hasExistingSession) {
267
- agent.state.messages = existingSession.messages;
268
299
  if (!hasThinkingEntry) {
269
300
  sessionManager.appendThinkingLevelChange(thinkingLevel);
270
301
  }
@@ -287,6 +318,8 @@ export async function createAgentSession(options = {}) {
287
318
  modelRuntime,
288
319
  cacheWarmer,
289
320
  initialActiveToolNames,
321
+ usesDefaultTools: (options.tools === undefined || toolModifiers !== undefined) && !options.noTools,
322
+ defaultToolModifiers: toolModifiers,
290
323
  allowedToolNames,
291
324
  excludedToolNames,
292
325
  extensionRunnerRef,
@@ -1,5 +1,5 @@
1
1
  import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
- import { type ImageContent, type Message, type SystemMessage, type TextContent, type Usage } from "@earendil-works/pi-ai";
2
+ import { type AssistantMessage, type ImageContent, type Message, type SystemMessage, type TextContent, type ToolResultMessage, type Usage, type UserMessage } from "@earendil-works/pi-ai";
3
3
  import { type BashExecutionMessage, type CustomMessage } from "./messages.ts";
4
4
  export declare const CURRENT_SESSION_VERSION = 3;
5
5
  export interface SessionHeader {
@@ -113,8 +113,19 @@ export interface CustomMessageEntry<T = unknown> extends SessionEntryBase {
113
113
  details?: T;
114
114
  display: boolean;
115
115
  }
116
+ /** Content that an append-only context edit may replace without changing message metadata. */
117
+ export type ContextEditableContent = UserMessage["content"] | AssistantMessage["content"] | ToolResultMessage["content"] | CustomMessage["content"];
118
+ /** Append-only change to one earlier entry's contribution to model context. */
119
+ export interface ContextEditEntry extends SessionEntryBase {
120
+ type: "context_edit";
121
+ targetId: string;
122
+ /** Null omits the target from model context. A value replaces only its content. */
123
+ replacement: {
124
+ content: ContextEditableContent;
125
+ } | null;
126
+ }
116
127
  /** Session entry - has id/parentId for tree structure (returned by "read" methods in SessionManager) */
117
- export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | UsageEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry;
128
+ export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | UsageEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | ContextEditEntry | LabelEntry | SessionInfoEntry;
118
129
  /** Raw file entry (includes header) */
119
130
  export type FileEntry = SessionHeader | SessionEntry;
120
131
  /** Tree node for getTree() - defensive copy of session structure */
@@ -126,6 +137,21 @@ export interface SessionTreeNode {
126
137
  /** Timestamp of the latest label change for this entry, if any */
127
138
  labelTimestamp?: string;
128
139
  }
140
+ export interface ProjectedSessionEntry {
141
+ /** Raw append-only entry that owns this projected contribution. */
142
+ sourceEntry: SessionEntry;
143
+ /** Model-visible messages after context edits. Empty for state-only entries and omissions. */
144
+ messages: AgentMessage[];
145
+ }
146
+ export interface SessionProjection {
147
+ entries: ProjectedSessionEntry[];
148
+ messages: AgentMessage[];
149
+ thinkingLevel: string;
150
+ model: {
151
+ provider: string;
152
+ modelId: string;
153
+ } | null;
154
+ }
129
155
  export interface SessionContext {
130
156
  messages: AgentMessage[];
131
157
  thinkingLevel: string;
@@ -149,7 +175,7 @@ export interface SessionInfo {
149
175
  firstMessage: string;
150
176
  allMessagesText: string;
151
177
  }
152
- export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "buildContextEntries" | "getHeader" | "getEntries" | "getTree" | "getSessionName">;
178
+ export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "buildContextEntries" | "buildSessionProjection" | "getHeader" | "getEntries" | "getTree" | "getSessionName">;
153
179
  export declare function assertValidSessionId(id: string): void;
154
180
  /** Exported for testing */
155
181
  export declare function migrateSessionEntries(entries: FileEntry[]): void;
@@ -170,11 +196,9 @@ export declare function sessionEntryToContextMessages(entry: SessionEntry): Agen
170
196
  * compaction entry. Older summarized entries are omitted.
171
197
  */
172
198
  export declare function buildContextEntries(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionEntry[];
173
- /**
174
- * Build the session context from entries using tree traversal.
175
- * If leafId is provided, walks from that entry to root.
176
- * Handles compaction and branch summaries along the path.
177
- */
199
+ /** Build provenance-preserving, compaction-aware model context. */
200
+ export declare function buildSessionProjection(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionProjection;
201
+ /** Build the finalized model context from the canonical session projection. */
178
202
  export declare function buildSessionContext(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionContext;
179
203
  export declare function getDefaultSessionDir(cwd: string, agentDir?: string): string;
180
204
  /** Exported for testing */
@@ -221,6 +245,13 @@ export declare class SessionManager {
221
245
  usesDefaultSessionDir(): boolean;
222
246
  getSessionId(): string;
223
247
  getSessionFile(): string | undefined;
248
+ /**
249
+ * A new session file is created only once the session contains a user or assistant message.
250
+ * Setup entries alone (model, thinking level, system prompt) stay in memory so opening and
251
+ * closing pi without chatting leaves no file behind. Starting at the user message (not the
252
+ * first assistant reply) keeps the prompt on disk if the first turn never completes (#10000).
253
+ */
254
+ private _hasConversation;
224
255
  _persist(entry: SessionEntry): void;
225
256
  private _appendEntry;
226
257
  /** Append a message as child of current leaf, then advance leaf. Returns entry id.
@@ -237,7 +268,7 @@ export declare class SessionManager {
237
268
  /** Append model-attributed usage that does not participate in LLM context. Returns the appended entry. */
238
269
  appendUsage(kind: string, provider: string, model: string, usage: Usage, note?: string): UsageEntry;
239
270
  /** Append a compaction summary as child of current leaf, then advance leaf. Returns entry id. */
240
- appendCompaction<T = unknown>(summary: string, firstKeptEntryId: string, tokensBefore: number, details?: T, fromHook?: boolean, usage?: Usage): string;
271
+ appendCompaction<T = unknown>(summary: string, firstKeptEntryId: string | null, tokensBefore: number, details?: T, fromHook?: boolean, usage?: Usage): string;
241
272
  /** Append a custom entry (for extensions) as child of current leaf, then advance leaf. Returns entry id. */
242
273
  appendCustomEntry(customType: string, data?: unknown): string;
243
274
  /** Append a session info entry (e.g., display name). Returns entry id. */
@@ -253,6 +284,8 @@ export declare class SessionManager {
253
284
  * @returns Entry id
254
285
  */
255
286
  appendCustomMessageEntry<T = unknown>(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details?: T): string;
287
+ /** Append a branch-local edit to an earlier model-visible entry. */
288
+ appendContextEdit(targetId: string, replacement: ContextEditEntry["replacement"]): string;
256
289
  getLeafId(): string | null;
257
290
  getLeafEntry(): SessionEntry | undefined;
258
291
  getEntry(id: string): SessionEntry | undefined;
@@ -285,11 +318,14 @@ export declare class SessionManager {
285
318
  * Build the session context (what gets sent to the LLM).
286
319
  * Uses tree traversal from current leaf.
287
320
  */
321
+ buildSessionProjection(): SessionProjection;
288
322
  buildSessionContext(): SessionContext;
289
323
  /**
290
324
  * Get session header.
291
325
  */
292
326
  getHeader(): SessionHeader | null;
327
+ /** Number of session entries (excludes header), without copying them like `getEntries()`. */
328
+ getEntryCount(): number;
293
329
  /**
294
330
  * Get all session entries (excludes header). Returns a shallow copy.
295
331
  * The session is append-only: use appendXXX() to add entries, branch() to
@@ -232,10 +232,55 @@ export function buildContextEntries(entries, leafId, byId) {
232
232
  * If leafId is provided, walks from that entry to root.
233
233
  * Handles compaction and branch summaries along the path.
234
234
  */
235
- export function buildSessionContext(entries, leafId, byId) {
235
+ function projectContextEntry(entry, edit) {
236
+ const messages = sessionEntryToContextMessages(entry);
237
+ if (!edit)
238
+ return messages;
239
+ const replacement = edit.replacement;
240
+ if (replacement === null)
241
+ return [];
242
+ return messages.map((message) => {
243
+ if (message.role !== "user" &&
244
+ message.role !== "assistant" &&
245
+ message.role !== "toolResult" &&
246
+ message.role !== "custom") {
247
+ return message;
248
+ }
249
+ const content = (message.role === "assistant" || message.role === "toolResult") && typeof replacement.content === "string"
250
+ ? [{ type: "text", text: replacement.content }]
251
+ : replacement.content;
252
+ return { ...message, content };
253
+ });
254
+ }
255
+ /** Build provenance-preserving, compaction-aware model context. */
256
+ export function buildSessionProjection(entries, leafId, byId) {
236
257
  const path = buildSessionPath(entries, leafId, byId);
237
258
  const { thinkingLevel, model } = getSessionContextSettings(path);
238
- const messages = buildContextEntries(entries, leafId, byId).flatMap(sessionEntryToContextMessages);
259
+ const contextEntries = buildContextEntries(entries, leafId, byId);
260
+ const edits = new Map();
261
+ for (const entry of contextEntries) {
262
+ if (entry.type === "context_edit")
263
+ edits.set(entry.targetId, entry);
264
+ }
265
+ const projectedEntries = contextEntries.map((sourceEntry, index) => ({
266
+ sourceEntry,
267
+ // buildContextEntries() may retain an older compaction entry because its
268
+ // raw ID lies inside the newest retained range. Only the newest compaction
269
+ // at index zero contributes a checkpoint and summary.
270
+ messages: sourceEntry.type === "compaction" && index > 0
271
+ ? []
272
+ : projectContextEntry(sourceEntry, edits.get(sourceEntry.id)),
273
+ }));
274
+ return {
275
+ entries: projectedEntries,
276
+ messages: projectedEntries.flatMap((entry) => entry.messages),
277
+ thinkingLevel,
278
+ model,
279
+ };
280
+ }
281
+ /** Build the finalized model context from the canonical session projection. */
282
+ export function buildSessionContext(entries, leafId, byId) {
283
+ const { messages, thinkingLevel, model } = buildSessionProjection(entries, leafId, byId);
239
284
  return { messages, thinkingLevel, model };
240
285
  }
241
286
  /**
@@ -737,21 +782,21 @@ export class SessionManager {
737
782
  getSessionFile() {
738
783
  return this.sessionFile;
739
784
  }
785
+ /**
786
+ * A new session file is created only once the session contains a user or assistant message.
787
+ * Setup entries alone (model, thinking level, system prompt) stay in memory so opening and
788
+ * closing pi without chatting leaves no file behind. Starting at the user message (not the
789
+ * first assistant reply) keeps the prompt on disk if the first turn never completes (#10000).
790
+ */
791
+ _hasConversation() {
792
+ return this.fileEntries.some((e) => e.type === "message" && (e.message.role === "user" || e.message.role === "assistant"));
793
+ }
740
794
  _persist(entry) {
741
795
  if (!this.persist || !this.sessionFile)
742
796
  return;
743
- const hasAssistant = this.fileEntries.some((e) => e.type === "message" && e.message.role === "assistant");
744
- if (!hasAssistant) {
745
- if (this.flushed) {
746
- appendFileSync(this.sessionFile, `${JSON.stringify(entry)}\n`);
747
- }
748
- else {
749
- // Mark as not flushed so when assistant arrives, all entries get written
750
- this.flushed = false;
751
- }
752
- return;
753
- }
754
797
  if (!this.flushed) {
798
+ if (!this._hasConversation())
799
+ return;
755
800
  const fd = openSync(this.sessionFile, "wx");
756
801
  try {
757
802
  for (const e of this.fileEntries) {
@@ -834,14 +879,15 @@ export class SessionManager {
834
879
  /** Append a compaction summary as child of current leaf, then advance leaf. Returns entry id. */
835
880
  appendCompaction(summary, firstKeptEntryId, tokensBefore, details, fromHook, usage) {
836
881
  const timestamp = new Date().toISOString();
837
- const systemMessage = getCurrentSystemMessage(this.buildSessionContext().messages);
882
+ const systemMessage = getCurrentSystemMessage(this.buildSessionProjection().messages);
883
+ const id = generateId(this.byId);
838
884
  const entry = {
839
885
  type: "compaction",
840
- id: generateId(this.byId),
886
+ id,
841
887
  parentId: this.leafId,
842
888
  timestamp,
843
889
  summary,
844
- firstKeptEntryId,
890
+ firstKeptEntryId: firstKeptEntryId ?? id,
845
891
  tokensBefore,
846
892
  details,
847
893
  usage,
@@ -880,10 +926,10 @@ export class SessionManager {
880
926
  /** Get the current session name from the latest session_info entry, if any. */
881
927
  getSessionName() {
882
928
  // Walk entries in reverse to find the latest session_info entry.
883
- // Empty names explicitly clear the session title.
884
- const entries = this.getEntries();
885
- for (let i = entries.length - 1; i >= 0; i--) {
886
- const entry = entries[i];
929
+ // Empty names explicitly clear the session title. Reads fileEntries directly: the footer
930
+ // calls this on every frame, and getEntries() copies the whole session.
931
+ for (let i = this.fileEntries.length - 1; i >= 0; i--) {
932
+ const entry = this.fileEntries[i];
887
933
  if (entry.type === "session_info") {
888
934
  return entry.name?.trim() || undefined;
889
935
  }
@@ -912,6 +958,44 @@ export class SessionManager {
912
958
  this._appendEntry(entry);
913
959
  return entry.id;
914
960
  }
961
+ /** Append a branch-local edit to an earlier model-visible entry. */
962
+ appendContextEdit(targetId, replacement) {
963
+ if (replacement !== null &&
964
+ (typeof replacement !== "object" ||
965
+ !("content" in replacement) ||
966
+ (typeof replacement.content !== "string" && !Array.isArray(replacement.content)))) {
967
+ throw new Error("Context edit replacement must be null or contain string/array content");
968
+ }
969
+ const target = this.byId.get(targetId);
970
+ if (!target)
971
+ throw new Error(`Entry ${targetId} not found`);
972
+ if (!this.getBranch().some((entry) => entry.id === targetId)) {
973
+ throw new Error(`Entry ${targetId} is not on the active branch`);
974
+ }
975
+ const editable = target.type === "custom_message" ||
976
+ (target.type === "message" &&
977
+ (target.message.role === "user" ||
978
+ target.message.role === "assistant" ||
979
+ target.message.role === "toolResult"));
980
+ if (!editable)
981
+ throw new Error(`Entry ${targetId} does not contribute editable model content`);
982
+ const targetRole = target.type === "message" ? target.message.role : "custom";
983
+ const normalizedReplacement = replacement !== null &&
984
+ (targetRole === "assistant" || targetRole === "toolResult") &&
985
+ typeof replacement.content === "string"
986
+ ? { content: [{ type: "text", text: replacement.content }] }
987
+ : replacement;
988
+ const entry = {
989
+ type: "context_edit",
990
+ id: generateId(this.byId),
991
+ parentId: this.leafId,
992
+ timestamp: new Date().toISOString(),
993
+ targetId,
994
+ replacement: normalizedReplacement,
995
+ };
996
+ this._appendEntry(entry);
997
+ return entry.id;
998
+ }
915
999
  // =========================================================================
916
1000
  // Tree Traversal
917
1001
  // =========================================================================
@@ -997,8 +1081,12 @@ export class SessionManager {
997
1081
  * Build the session context (what gets sent to the LLM).
998
1082
  * Uses tree traversal from current leaf.
999
1083
  */
1084
+ buildSessionProjection() {
1085
+ return buildSessionProjection(this.getEntries(), this.leafId, this.byId);
1086
+ }
1000
1087
  buildSessionContext() {
1001
- return buildSessionContext(this.getEntries(), this.leafId, this.byId);
1088
+ const { messages, thinkingLevel, model } = this.buildSessionProjection();
1089
+ return { messages, thinkingLevel, model };
1002
1090
  }
1003
1091
  /**
1004
1092
  * Get session header.
@@ -1007,6 +1095,10 @@ export class SessionManager {
1007
1095
  const h = this.fileEntries.find((e) => e.type === "session");
1008
1096
  return h ? h : null;
1009
1097
  }
1098
+ /** Number of session entries (excludes header), without copying them like `getEntries()`. */
1099
+ getEntryCount() {
1100
+ return this.byId.size;
1101
+ }
1010
1102
  /**
1011
1103
  * Get all session entries (excludes header). Returns a shallow copy.
1012
1104
  * The session is append-only: use appendXXX() to add entries, branch() to
@@ -1089,13 +1181,14 @@ export class SessionManager {
1089
1181
  if (branchFromId !== null && !this.byId.has(branchFromId)) {
1090
1182
  throw new Error(`Entry ${branchFromId} not found`);
1091
1183
  }
1184
+ const fromId = this.leafId ?? "root";
1092
1185
  this.leafId = branchFromId;
1093
1186
  const entry = {
1094
1187
  type: "branch_summary",
1095
1188
  id: generateId(this.byId),
1096
1189
  parentId: branchFromId,
1097
1190
  timestamp: new Date().toISOString(),
1098
- fromId: branchFromId ?? "root",
1191
+ fromId,
1099
1192
  summary,
1100
1193
  details,
1101
1194
  usage,
@@ -1135,7 +1228,9 @@ export class SessionManager {
1135
1228
  ? {
1136
1229
  ...entry,
1137
1230
  parentId: pathParentId,
1138
- firstKeptEntryId: replacementByLabelId.get(entry.firstKeptEntryId) ?? entry.firstKeptEntryId,
1231
+ firstKeptEntryId: entry.firstKeptEntryId === entry.id
1232
+ ? entry.id
1233
+ : (replacementByLabelId.get(entry.firstKeptEntryId) ?? entry.firstKeptEntryId),
1139
1234
  }
1140
1235
  : { ...entry, parentId: pathParentId });
1141
1236
  pathParentId = entry.id;
@@ -1182,13 +1277,9 @@ export class SessionManager {
1182
1277
  this.sessionId = newSessionId;
1183
1278
  this.sessionFile = newSessionFile;
1184
1279
  this._buildIndex();
1185
- // Only write the file now if it contains an assistant message.
1186
- // Otherwise defer to _persist(), which creates the file on the
1187
- // first assistant response, matching the newSession() contract
1188
- // and avoiding the duplicate-header bug when _persist()'s
1189
- // no-assistant guard later resets flushed to false.
1190
- const hasAssistant = this.fileEntries.some((e) => e.type === "message" && e.message.role === "assistant");
1191
- if (hasAssistant) {
1280
+ // Use the same rule as _persist(): write now if the branched path already
1281
+ // has a conversation, otherwise let _persist() create the file later.
1282
+ if (this._hasConversation()) {
1192
1283
  this._rewriteFile();
1193
1284
  this.flushed = true;
1194
1285
  }
@@ -1385,7 +1476,9 @@ export class SessionManager {
1385
1476
  if (!existsSync(sessionsDir))
1386
1477
  return [];
1387
1478
  const entries = await readdir(sessionsDir, { withFileTypes: true });
1388
- const dirs = entries.filter((e) => e.isDirectory()).map((e) => join(sessionsDir, e.name));
1479
+ const dirs = entries
1480
+ .filter((entry) => entry.isDirectory() || entry.isSymbolicLink())
1481
+ .map((entry) => join(sessionsDir, entry.name));
1389
1482
  const dirFiles = await mapWithConcurrency(dirs, MAX_CONCURRENT_SESSION_DISCOVERY_LOADS, async (dir) => {
1390
1483
  try {
1391
1484
  return (await readdir(dir)).filter((file) => file.endsWith(".jsonl")).map((file) => join(dir, file));
@@ -0,0 +1,8 @@
1
+ import type { AgentSessionRuntimeDiagnostic } from "./agent-session-services.ts";
2
+ import type { SettingsManager } from "./settings-manager.ts";
3
+ export declare function collectSettingsDiagnostics(settingsManager: SettingsManager): AgentSessionRuntimeDiagnostic[];
4
+ /**
5
+ * Remove duplicate type/message diagnostics while preserving their first occurrence.
6
+ * Startup and runtime settings managers can report the same file error.
7
+ */
8
+ export declare function deduplicateDiagnostics(diagnostics: readonly AgentSessionRuntimeDiagnostic[]): AgentSessionRuntimeDiagnostic[];