@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
package/docs/security.md CHANGED
@@ -1,51 +1,52 @@
1
1
  # Security
2
2
 
3
- Pi is a local coding agent. It runs with the permissions of the user account that starts it, and it treats files writable by that user as inside the same local trust boundary.
3
+ Selesai is a local coding agent. It runs with the permissions of the user account that starts it, and it treats files writable by that user as inside the same local trust boundary.
4
4
 
5
5
  ## Project Trust
6
6
 
7
- Project trust controls whether pi loads project-local settings, resources, packages, and extensions. It is not a sandbox and it does not restrict what the model can ask tools to do after you start working in a directory.
7
+ Project trust controls whether selesai loads project-local settings, resources, packages, and extensions. It is not a sandbox and it does not restrict what the model can ask tools to do after you start working in a directory.
8
8
 
9
- Pi considers a project to have resources that require trust when it finds any of these from the current working directory:
9
+ Selesai considers a project to have resources that require trust when it finds any of these from the current working directory:
10
10
 
11
- - `.pi/settings.json`
12
- - `.pi/extensions`, `.pi/skills`, `.pi/prompts`, or `.pi/themes`
13
- - `.pi/SYSTEM.md` or `.pi/APPEND_SYSTEM.md`
11
+ - `.selesai/settings.json`
12
+ - `.selesai/mcp.json`
13
+ - `.selesai/extensions`, `.selesai/skills`, `.selesai/prompts`, or `.selesai/themes`
14
+ - `.selesai/SYSTEM.md` or `.selesai/APPEND_SYSTEM.md`
14
15
  - project `.agents/skills` in the current directory or an ancestor directory
15
16
 
16
- A bare `.pi` directory does not count as a project resource that requires trust.
17
+ A bare `.selesai` directory does not count as a project resource that requires trust.
17
18
 
18
- When an interactive session starts in a project with resources that require trust and no saved decision for the current directory or a parent directory, pi follows `defaultProjectTrust` from global settings. The default value is `"ask"`, which asks whether to trust the project when UI is available. Saved decisions are stored by canonical directory in `~/.pi/agent/trust.json`, and the closest saved decision on the current or parent path applies before the global default.
19
+ When an interactive session starts in a project with resources that require trust and no saved decision for the current directory or a parent directory, selesai follows `defaultProjectTrust` from global settings. The default value is `"ask"`, which asks whether to trust the project when UI is available. Saved decisions are stored by canonical directory in `~/.selesai/agent/trust.json`, and the closest saved decision on the current or parent path applies before the global default.
19
20
 
20
- Trusting a project allows pi to load project resources that require trust, including:
21
+ Trusting a project allows selesai to load project resources that require trust, including:
21
22
 
22
- - `.pi/settings.json`
23
- - `.pi` resources such as extensions, skills, prompt templates, themes, and system prompt files
23
+ - `.selesai/settings.json`
24
+ - `.selesai` resources such as extensions, skills, prompt templates, themes, and system prompt files
24
25
  - missing project packages configured through project settings
25
26
  - project-local extensions and project package-managed extensions
26
27
 
27
- Declining trust skips protected resources. `AGENTS.md` and `CLAUDE.md` context files are loaded regardless of project trust unless context loading is disabled. Before trust is resolved, pi only loads context files, user/global extensions, and CLI `-e` extensions. User/global and CLI extensions can handle the `project_trust` event; the first extension that returns a yes/no decision owns the decision.
28
+ Declining trust skips protected resources. `AGENTS.md` and `CLAUDE.md` context files are loaded regardless of project trust unless context loading is disabled. Before trust is resolved, selesai only loads context files, user/global extensions, and CLI `-e` extensions. User/global and CLI extensions can handle the `project_trust` event; the first extension that returns a yes/no decision owns the decision.
28
29
 
29
30
  Non-interactive modes (`-p`, `--mode json`, and `--mode rpc`) do not show a trust prompt. Without an applicable saved trust decision, `defaultProjectTrust: "ask"` and `"never"` ignore such resources, while `"always"` trusts them. Use `--approve`/`-a` or `--no-approve`/`-na` to override project trust for one run.
30
31
 
31
32
  ## No Built-in Sandbox
32
33
 
33
- Pi does not include a built-in sandbox. Built-in tools can read files, write files, edit files, and run shell commands with the permissions of the pi process. Extensions are TypeScript modules that run with the same permissions. Package installs, shell commands, language servers, test commands, and other developer tools behave as ordinary local processes.
34
+ Selesai does not include a built-in sandbox. Built-in tools can read files, write files, edit files, and run shell commands with the permissions of the selesai process. Extensions are TypeScript modules that run with the same permissions. Package installs, shell commands, language servers, test commands, and other developer tools behave as ordinary local processes.
34
35
 
35
- This is intentional. Pi is designed to operate on local source trees, invoke project toolchains, and integrate with the user's existing development environment. A partial in-process sandbox would be easy to misunderstand as a security boundary while still depending on the host shell, filesystem, package managers, credentials, and extension code. Real isolation needs to come from the operating system or a virtualization/container boundary.
36
+ This is intentional. Selesai is designed to operate on local source trees, invoke project toolchains, and integrate with the user's existing development environment. A partial in-process sandbox would be easy to misunderstand as a security boundary while still depending on the host shell, filesystem, package managers, credentials, and extension code. Real isolation needs to come from the operating system or a virtualization/container boundary.
36
37
 
37
- Project trust is only an input-loading guard. It prevents a repository from silently changing pi's settings or extensions before you approve it. It does not make untrusted code, untrusted prompts, or untrusted model output safe. Prompt injection from repository files, comments, documentation, context files, or build output is expected local-agent risk and cannot be reliably prevented by pi.
38
+ Project trust is only an input-loading guard. It prevents a repository from silently changing selesai's settings or extensions before you approve it. It does not make untrusted code, untrusted prompts, or untrusted model output safe. Prompt injection from repository files, comments, documentation, context files, or build output is expected local-agent risk and cannot be reliably prevented by pi.
38
39
 
39
40
  ## Running Untrusted or Unmonitored Work
40
41
 
41
- For untrusted repositories, generated code you do not intend to monitor closely, or unattended automation, run pi in a contained environment. Use a container, VM, micro-VM, remote sandbox, or policy-controlled sandbox with only the files and credentials required for the task.
42
+ For untrusted repositories, generated code you do not intend to monitor closely, or unattended automation, run selesai in a contained environment. Use a container, VM, micro-VM, remote sandbox, or policy-controlled sandbox with only the files and credentials required for the task.
42
43
 
43
44
  Common patterns are documented in [Containerization](containerization.md):
44
45
 
45
- - run the whole `pi` process inside a container/sandbox
46
- - run host pi while routing built-in tool execution into a Gondolin micro-VM
46
+ - run the whole `selesai` process inside a container/sandbox
47
+ - run host selesai while routing built-in tool execution into a Gondolin micro-VM
47
48
  - mount only the workspace paths the agent should access
48
- - avoid mounting host `~/.pi/agent` unless the container should access host sessions, settings, and credentials
49
+ - avoid mounting host `~/.selesai/agent` unless the container should access host sessions, settings, and credentials
49
50
  - pass the minimum required API keys or use short-lived credentials
50
51
  - restrict network access when the task does not need it
51
52
  - review diffs and outputs before copying results back to trusted systems
@@ -56,4 +57,4 @@ If you bind-mount a host workspace read/write, writes from inside the container
56
57
 
57
58
  To report a security issue, follow the repository [Security Policy](https://github.com/earendil-works/pi-mono/blob/main/SECURITY.md). Do not open a public issue for security-sensitive reports.
58
59
 
59
- Expected local-agent behavior, lack of a built-in sandbox, prompt injection from untrusted content, and behavior of user-installed extensions or skills are generally outside the security boundary unless the report demonstrates a real privilege-boundary bypass or shows how pi grants access that the local user did not already have.
60
+ Expected local-agent behavior, lack of a built-in sandbox, prompt injection from untrusted content, and behavior of user-installed extensions or skills are generally outside the security boundary unless the report demonstrates a real privilege-boundary bypass or shows how selesai grants access that the local user did not already have.
package/docs/settings.md CHANGED
@@ -124,53 +124,24 @@ is an ordinary abstention that leaves the existing memory policy and verificatio
124
124
  }
125
125
  ```
126
126
 
127
- ### Capability Gateway (experimental)
128
-
129
- The bundled `capability-gateway` extension keeps optional extension tools dormant until they are
130
- needed: a compact `capability_catalog` lists them, `capability_discover` activates one for the
131
- current run, and `capability_skill_show` loads one skill's full instructions. Set
132
- `SELESAI_CAPABILITY_GATEWAY=0` to disable the gateway and keep every tool visible.
133
-
134
- Routing has three rungs:
135
-
136
- 1. A deterministic router activates a tool when the prompt uniquely matches its name, alias, or
137
- discovery summary. Skills are never auto-loaded or auto-selected.
138
- 2. Default-on Jev tie-breaking: when the deterministic router returns an ambiguous lexical hint
139
- among optional tools, the Jev decisions model is asked which of two or three hinted tools (or
140
- `none`) should be exposed. Jev sees only the bounded current prompt and each hinted tool's compact
141
- discovery line — never conversation history or tool schemas. A prompt with no
142
- lexical signal, a unique activation, and a skill-only match never reach Jev. Token-In credentials
143
- are required; without them, no Jev request is sent and Selesai prompts you to run `/tokenin add`.
144
- 3. The agent-driven route: `capability_discover` also takes a `job` instead of a name. Tools and
145
- skills are separate decisions — a tool is callable code from an extension or MCP server that the
146
- agent may use many times, a skill is a written procedure it reads once — so one Jev request asks
147
- two questions, each from catalog metadata only (never a schema or skill body), each allowed to
148
- answer `none`. A chosen tool is activated for the run and its parameters are returned; a chosen
149
- skill is named for `capability_skill_show`. Tools are offered first, so only skills can be left out
150
- of an oversized catalog, and a `none` then says how many were not considered. A skill found in
151
- several sources is offered once. While Jev has no credential, the `job` route is left out of the
152
- agent's instructions and the agent is pointed at `capability_catalog` plus an exact `name`.
153
-
154
- All Jev features share one warning per session, shown the first time one of them actually needs the
155
- missing credential; a user without a subscription is not warned just for starting a session.
127
+ ### Tools and skills
156
128
 
157
- | Setting | Type | Default | Description |
158
- |---------|------|---------|-------------|
159
- | `capabilityGateway.routing.jev.enabled` | boolean | `true` | Enable Jev tie-breaking for ambiguous tool hints; toggle it in `/settings` (requires Token-In credentials) |
160
- | `capabilityGateway.routing.jev.provider` | string | `"tokenin"` | Provider serving the Jev decisions deployment |
161
- | `capabilityGateway.routing.jev.model` | string | `"jev-1.13"` | Decisions model the tie-breaker calls |
162
- | `capabilityGateway.routing.jev.baseUrl` | string | inherited | Base URL override; defaults to any registered model of `provider` |
163
- | `capabilityGateway.routing.jev.timeoutMs` | number | `1000` | Pre-turn request timeout (ms); hard-capped at `2000` |
164
- | `capabilityGateway.routing.jev.discoverTimeoutMs` | number | `5000` | Timeout (ms) for `capability_discover({ job })`; hard-capped at `15000` |
165
- | `capabilityGateway.routing.jev.minConfidence` | number | `0.6` | Below this Jev confidence the tie-breaker abstains |
166
- | `capabilityGateway.routing.jev.payloadBytes` | number | `32768` | Hard cap on the serialized decision request; the pre-turn tie-break uses a few hundred bytes of it |
167
-
168
- This area is independent of `jevAdvisory`: gateway routing reads only
169
- `capabilityGateway.routing.jev` and shares just the Jev provider/model deployment identity. A
170
- failure, timeout, invalid answer, low confidence, missing Token-In credentials, or `none` is an
171
- ordinary abstention that leaves deterministic behavior in place. Temporary activations reset when the run settles, and
172
- content-free telemetry on the `capability-gateway` event channel records the route outcome and
173
- whether an activated tool was actually invoked.
129
+ The bundled defaults use `"defaultTools": ["+codemode"]`: keep the normal tool selection and
130
+ add codemode. Plain names replace the selection; `+name`/`-name` adjust it. The same applies to `--tools` for one invocation: `selesai --tools +tool_search` adjusts the resolved defaults, while plain names replace them. On `/reload`, a tool removed with `-name` stays removed. Frequently used
131
+ owned tools remain direct; specialised tools use upstream deferred exposure. Discover deferred
132
+ tools through codemode `searchTools()` or `tool_search` when enabled. Loaded tools remain active
133
+ across settlement and resume; there is no gateway reset or Jev tie-breaking policy.
134
+
135
+ The bundled `skills-index` extension replaces the eager skill listing with compact guidance.
136
+ Use `skill_show` without a name to list eligible skills, `query` to filter their metadata, or an
137
+ exact `name` to load instructions before applying a skill. It never activates tools or chooses
138
+ skills automatically. If `skill_show` is excluded, the ordinary skill index is retained.
139
+ The retired gateway environment variable and settings have no effect in the parent runtime.
140
+
141
+ MCP OAuth uses Selesai-branded dynamic registration or a pre-registered `oauth.clientId`.
142
+ `oauth.clientRegistration: "cimd"` is rejected: Selesai has no hosted client metadata document
143
+ and must not identify itself through upstream Pi's document. OAuth browser page artwork comes
144
+ from the upstream dependency and is unchanged.
174
145
 
175
146
  ### UI & Display
176
147
 
@@ -349,6 +320,7 @@ When multiple sources specify a session directory, precedence is `--session-dir`
349
320
  | Setting | Type | Default | Description |
350
321
  |---------|------|---------|-------------|
351
322
  | `markdown.codeBlockIndent` | string | `" "` | Indentation for code blocks |
323
+ | `markdown.mermaid` | string | `"streaming"` | Render Mermaid fences as Unicode diagrams: `"off"`, `"final"`, or `"streaming"`. Also configurable in `/settings`. Diagrams that cannot render or fit retain their source fence. |
352
324
 
353
325
  ### Resources
354
326
 
@@ -140,3 +140,17 @@ The built-in terminal has limited escape sequence support. Shift+Enter cannot be
140
140
  If you want the hardware cursor visible, set `PI_HARDWARE_CURSOR=1` before running pi (disabled by default for compatibility).
141
141
 
142
142
  Consider using a dedicated terminal emulator for the best experience.
143
+
144
+ ## Program status
145
+
146
+ Selesai reports its state with the [Program Status Protocol (OSC 7501)](https://www.superlogical.com/rex/docs/build/program-status), so terminals and agent dashboards can show whether it is working, waiting for you, done, or failed:
147
+
148
+ | State | When |
149
+ |---|---|
150
+ | `working` | An agent run or compaction is in progress. The message is the session name. |
151
+ | `blocked` | An extension dialog or login waits for you. The message is the dialog title. |
152
+ | `done` | A run finished. The message is the session name. |
153
+ | `error` | A run ended with an error that is not retried. The message is the first line of the error. |
154
+ | `idle` | Selesai started, or you cancelled the run. |
155
+
156
+ Reports never contain prompts or model output. They are sent only after the terminal answers the protocol's support query; tmux and screen do not forward them. Set `PI_PROGRAM_STATUS=1` to send reports without asking, or `PI_PROGRAM_STATUS=0` to turn them off.
@@ -0,0 +1,114 @@
1
+ # Virtual Models
2
+
3
+ A virtual model is a selectable model that picks a physical model for each request. Use one to route by task, cost, or conversation state. For example, a router can send quick questions to a small model and hard problems to a large one, while the user selects a single model.
4
+
5
+ Register virtual models from an [extension](extensions.md). They appear in `/model`, `--model`, scoped models, and settings like any other model. A virtual model can be listed under any provider, including one with physical models, such as `openai-codex/auto`.
6
+
7
+ ## Selection and dispatch
8
+
9
+ A virtual model selects a model and a thinking level. A router maps that pair to a physical pair for each request:
10
+
11
+ ```
12
+ selected (virtual model, virtual level) -> dispatched (physical model, physical level)
13
+ jev/auto:low -> anthropic/claude-sonnet-4-5:high
14
+ ```
15
+
16
+ The virtual thinking level is an input to the router. Its meaning is up to the router; it need not correspond to a reasoning budget.
17
+
18
+ Selesai keeps the two pairs apart:
19
+
20
+ | | Selection | Dispatch |
21
+ |---|---|---|
22
+ | Recorded in | `model_change` and `thinking_level_change` entries | Each assistant message: `provider`, `api`, `model`, `thinkingLevel` |
23
+ | Visible as | `ctx.model`, `ctx.thinkingLevel`, `PI_MODEL`, `PI_REASONING_LEVEL`, `/model` | The assistant message of each response |
24
+
25
+ Providers only receive physical models. Assistant messages name the physical model, so replaying a conversation across different physical models works the same as after a manual model switch. Resuming a session restores the virtual selection from its latest `model_change` entry. If the virtual model is no longer registered, Selesai falls back to the physical model that answered last.
26
+
27
+ In interactive mode, the footer shows the routed model next to the selection, for example `auto • high → gpt-5.6-luna • medium`. `/session` lists the cost for each physical model.
28
+
29
+ Context usage uses the limits of the physical model that produced the latest response, even if that response came before switching to the virtual model. Without such a response, it uses the limits declared on the virtual model, if any. Compaction checks the same limits, and again the limits of the model each request is routed to. If that model's context window is too small for the conversation, Selesai compacts before sending the request; the route stays as the router chose it.
30
+
31
+ ## Register a virtual model
32
+
33
+ ```typescript
34
+ import type { ExtensionAPI } from "@selesai/code";
35
+
36
+ export default function (pi: ExtensionAPI) {
37
+ pi.registerVirtualModel({
38
+ provider: "router",
39
+ id: "auto",
40
+ name: "Auto",
41
+ thinkingLevels: ["low", "high"],
42
+ route(request, ctx) {
43
+ // Tool follow-ups and retries stay on the model that handled the turn.
44
+ const sticky = request.failed ?? request.previous;
45
+ if (request.reason !== "user" && sticky) {
46
+ return { model: sticky.model, thinkingLevel: sticky.thinkingLevel ?? "medium" };
47
+ }
48
+ const id = request.thinkingLevel === "high" ? "claude-sonnet-4-5" : "claude-haiku-4-5";
49
+ return { model: ctx.modelRegistry.find("anthropic", id)!, thinkingLevel: "medium" };
50
+ },
51
+ });
52
+ }
53
+ ```
54
+
55
+ - `provider` is the provider the model is listed under. It can be any provider ID. A provider can list several virtual models next to its physical ones. On a physical provider, the virtual model is available when that provider has credentials. Under an ID that no provider uses, it is always available.
56
+ - `id` must not be the ID of a physical model of that provider. If a catalog refresh later adds a physical model with the same ID, the virtual model hides it.
57
+ - `thinkingLevels` lists the levels offered for selection. It defaults to `["off"]`.
58
+ - `contextWindow` and `maxTokens` are shown before the first response. Unset limits are unknown.
59
+ - `input` lists the input types offered for selection. It defaults to text and images; physical models without image support receive placeholders.
60
+
61
+ Registration follows the same queuing and reload rules as `pi.registerProvider()`. Registering the same provider and ID again replaces the virtual model. `pi.unregisterVirtualModel(provider, id)` removes it; `pi.unregisterProvider()` does not. SDK code can register one without an extension: `modelRuntime.registerVirtualModel(definition)`.
62
+
63
+ ## Route requests
64
+
65
+ `route(request, ctx)` runs before every request made with the virtual model and returns `{ model, thinkingLevel }`. The model can be any physical model in the catalog whose provider has credentials; look it up with `ctx.modelRegistry`. A virtual model cannot route to another virtual model. Selesai clamps the thinking level to the returned model.
66
+
67
+ | Field | Meaning |
68
+ |---|---|
69
+ | `model`, `thinkingLevel` | The selected virtual model and level |
70
+ | `reason` | Why the request is made, see below |
71
+ | `previous` | Physical model and thinking level of the latest successful response in `messages` |
72
+ | `failed` | For `retry`: physical model, thinking level, and assistant `message` of the failed request, which `messages` no longer contains. The message carries `stopReason` and `errorMessage`. Absent when routing itself failed |
73
+ | `state` | Router state last returned on this session branch, see below |
74
+ | `messages` | The conversation for this request, including system messages |
75
+ | `signal` | Abort signal of the request |
76
+
77
+ | `reason` | Request |
78
+ |---|---|
79
+ | `user` | First request after a message the user wrote, including steering and follow-up messages |
80
+ | `continuation` | Any other request in the agent loop, such as after tool results or extension messages |
81
+ | `retry` | Automatic retry after a failed request, including after compaction for a context overflow |
82
+ | `direct` | Request made outside the agent loop, such as a compaction summary or an extension calling `ctx.modelRegistry.streamSimple()` |
83
+
84
+ Returning `previous` for `continuation` and `failed` for `retry` keeps prompt caches and thinking signatures valid. Switching models between turns is allowed but loses the prompt cache. A retry can also switch to another model, for example when `failed.message.errorMessage` reports that a provider is overloaded or the context overflowed.
85
+
86
+ If `route()` throws, or returns a virtual model or a model without credentials, the request ends with an error response.
87
+
88
+ ## Keep routing state
89
+
90
+ `route()` can return `state` next to the model. Selesai stores it on the session branch and passes it back as `request.state` on later requests. Use it for decisions the transcript does not record, such as classifier results or a routing phase:
91
+
92
+ ```typescript
93
+ pi.registerVirtualModel<{ phase: "plan" | "build" }>({
94
+ provider: "router",
95
+ id: "phased",
96
+ name: "Phased",
97
+ route(request, ctx) {
98
+ const state = request.state ?? { phase: "plan" };
99
+ const id = state.phase === "plan" ? "claude-opus-4-5" : "claude-haiku-4-5";
100
+ return { model: ctx.modelRegistry.find("anthropic", id)!, thinkingLevel: "medium", state };
101
+ },
102
+ });
103
+ ```
104
+
105
+ - State must be JSON-serializable. Returning `undefined` or `request.state` itself keeps the current state.
106
+ - Selesai stores any other returned object as new state, before the request is sent, even when it equals the current state. Return a new object only when the state changes. The state stays stored if the request later fails.
107
+ - State follows the session tree, so forks and `/tree` navigation see the state of their branch. It survives compaction.
108
+ - `direct` requests have no state, and Selesai ignores state they return.
109
+
110
+ The transcript already records the selection and every dispatched model, and `ctx.sessionManager.getBranch()` exposes both.
111
+
112
+ Routers can call other models through `ctx.modelRegistry`, for example `ctx.modelRegistry.classify()` with a classifier model from `ctx.modelRegistry.findOfType("classifier", provider, id)`. The call adds latency before the first token of the turn.
113
+
114
+ See [`jev-router.ts`](../examples/extensions/jev-router.ts) for a complete router. It plans on a strong OpenAI Codex model chosen by the Jev classifier, lets that model make the first edit, and then switches once to a cheaper model, accepting a single prompt-cache miss. It keeps the phase as router state.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Jev router - a virtual model that plans on a strong model and implements on a cheap one.
3
+ *
4
+ * Registers `jev/auto`, which routes between three OpenAI Codex models:
5
+ *
6
+ * - Planning: GPT-5.6 Sol for complex work, GPT-5.6 Terra otherwise. The Jev classifier rates the
7
+ * first user message; planning stays on the chosen model.
8
+ * - Implementation: GPT-5.6 Luna.
9
+ *
10
+ * The planning model explores, plans, and makes the first edit. After the first successful `edit`
11
+ * or `write` tool call, the next request of the same turn goes to Luna, and the session stays
12
+ * there. A session therefore switches models once and accepts a single prompt-cache miss.
13
+ *
14
+ * The phase is router state: Selesai stores it on the session branch, so it follows the session tree
15
+ * and survives compaction. The selected thinking level passes through as the reasoning effort of
16
+ * the chosen model. Requests outside the agent loop, such as compaction summaries, go to Luna.
17
+ *
18
+ * Requires TypeSafe credentials (TYPESAFE_API_KEY) and an OpenAI Codex login.
19
+ * Usage: selesai -e ./jev-router.ts --model jev/auto
20
+ */
21
+
22
+ import type { Message } from "@earendil-works/pi-ai";
23
+ import type { ExtensionAPI, ExtensionContext, ModelRoute, ModelRouteRequest } from "@selesai/code";
24
+
25
+ const PROVIDER = "openai-codex";
26
+ const SOL = "gpt-5.6-sol";
27
+ const TERRA = "gpt-5.6-terra";
28
+ const LUNA = "gpt-5.6-luna";
29
+
30
+ /** Tools whose successful result means implementation has started. */
31
+ const EDIT_TOOLS = new Set(["edit", "write"]);
32
+
33
+ interface JevState {
34
+ phase: "planning" | "implementation";
35
+ /** OpenAI Codex model for this phase. */
36
+ model: string;
37
+ }
38
+
39
+ type JevRequest = ModelRouteRequest<JevState>;
40
+
41
+ function routeTo(request: JevRequest, ctx: ExtensionContext, id: string, state?: JevState): ModelRoute<JevState> {
42
+ const model = ctx.modelRegistry.find(PROVIDER, id);
43
+ if (!model) throw new Error(`Model ${PROVIDER}/${id} is not in the catalog`);
44
+ return { model, thinkingLevel: request.thinkingLevel, state };
45
+ }
46
+
47
+ function lastUserText(messages: readonly Message[]): string {
48
+ const content = messages.filter((message) => message.role === "user").at(-1)?.content ?? "";
49
+ if (typeof content === "string") return content;
50
+ return content.flatMap((block) => (block.type === "text" ? [block.text] : [])).join("\n");
51
+ }
52
+
53
+ /** Whether a tool call since the last user message edited a file successfully. */
54
+ function editedThisTurn(messages: readonly Message[]): boolean {
55
+ const lastUser = messages.findLastIndex((message) => message.role === "user");
56
+ return messages
57
+ .slice(lastUser + 1)
58
+ .some((message) => message.role === "toolResult" && EDIT_TOOLS.has(message.toolName) && !message.isError);
59
+ }
60
+
61
+ /** Planning model for a new session: Sol for complex work, Terra otherwise or when Jev is unavailable. */
62
+ async function choosePlanningModel(request: JevRequest, ctx: ExtensionContext): Promise<string> {
63
+ // Keep a planning model the session already uses, so switching to jev/auto costs no cache miss.
64
+ const previous = request.previous?.model;
65
+ if (previous?.provider === PROVIDER && (previous.id === SOL || previous.id === TERRA)) return previous.id;
66
+
67
+ const jev = ctx.modelRegistry.findOfType("classifier", "typesafe", "jev-latest");
68
+ if (!jev) return TERRA;
69
+ const result = await ctx.modelRegistry.classify(
70
+ jev,
71
+ {
72
+ state: { prompt: lastUserText(request.messages).slice(0, 16_000) },
73
+ questions: {
74
+ complexity: {
75
+ type: "choice",
76
+ instructions: "How demanding is the software engineering work requested in `prompt`?",
77
+ criteria: {
78
+ standard: "Ordinary features, fixes, reviews, or questions",
79
+ complex: "Subtle design, cross-cutting changes, or hard debugging",
80
+ },
81
+ },
82
+ },
83
+ },
84
+ { signal: request.signal },
85
+ );
86
+ const answer = result.stopReason === "stop" ? result.answers.complexity : undefined;
87
+ return answer?.type === "choice" && (answer.probabilities.complex ?? 0) >= 0.5 ? SOL : TERRA;
88
+ }
89
+
90
+ export default function (pi: ExtensionAPI) {
91
+ pi.registerVirtualModel<JevState>({
92
+ provider: "jev",
93
+ id: "auto",
94
+ name: "Auto (Jev)",
95
+ thinkingLevels: ["low", "medium", "high", "xhigh"],
96
+ // Shared by all three models; shown before the first response.
97
+ contextWindow: 272_000,
98
+ maxTokens: 128_000,
99
+ async route(request, ctx) {
100
+ if (request.reason === "direct") return routeTo(request, ctx, LUNA);
101
+ const state = request.state;
102
+ if (!state) {
103
+ const model = await choosePlanningModel(request, ctx);
104
+ return routeTo(request, ctx, model, { phase: "planning", model });
105
+ }
106
+ // The planning model made the first edit: hand the rest of the work to Luna.
107
+ if (state.phase === "planning" && editedThisTurn(request.messages)) {
108
+ return routeTo(request, ctx, LUNA, { phase: "implementation", model: LUNA });
109
+ }
110
+ return routeTo(request, ctx, state.model);
111
+ },
112
+ });
113
+ }
@@ -0,0 +1,124 @@
1
+ import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
2
+
3
+ const WIDGET_KEY = "tokenin-usage";
4
+ const REFRESH_MS = 60_000;
5
+ const DEFAULT_BASE_URL = "https://lite.andlet.me/v1";
6
+
7
+ type Balance = {
8
+ available_usd: number;
9
+ fixed_available_usd?: number;
10
+ payg_available_usd?: number;
11
+ debt_usd?: number;
12
+ };
13
+
14
+ type LegacyUsage = {
15
+ spend: number;
16
+ max_budget?: number;
17
+ };
18
+
19
+ function proxyRoot(baseUrl: string): string {
20
+ return baseUrl.replace(/\/+$/, "").replace(/\/v1$/, "");
21
+ }
22
+
23
+ function money(value: number): string {
24
+ return `$${value.toFixed(2)}`;
25
+ }
26
+
27
+ async function requestJson(url: string, apiKey: string): Promise<{ status: number; body?: unknown }> {
28
+ const response = await fetch(url, {
29
+ headers: { Authorization: `Bearer ${apiKey}`, Accept: "application/json" },
30
+ signal: AbortSignal.timeout(5_000),
31
+ });
32
+ let body: unknown;
33
+ try {
34
+ body = await response.json();
35
+ } catch {
36
+ // The status still lets the caller distinguish a missing balance route.
37
+ }
38
+ return { status: response.status, body };
39
+ }
40
+
41
+ function isRecord(value: unknown): value is Record<string, unknown> {
42
+ return !!value && typeof value === "object" && !Array.isArray(value);
43
+ }
44
+
45
+ function readNumber(record: Record<string, unknown>, key: string): number | undefined {
46
+ const value = record[key];
47
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
48
+ }
49
+
50
+ async function getUsageLines(ctx: ExtensionContext): Promise<string[]> {
51
+ const resolved = await ctx.modelRegistry.getProviderAuth("tokenin");
52
+ const apiKey = resolved?.auth.apiKey;
53
+ if (!apiKey) return ["Token-In: not connected (run /tokenin add)"];
54
+
55
+ const provider = ctx.modelRegistry.getProvider("tokenin");
56
+ const baseUrl = resolved.auth.baseUrl ?? provider?.baseUrl ?? DEFAULT_BASE_URL;
57
+ const root = proxyRoot(baseUrl);
58
+ const balanceResponse = await requestJson(`${root}/tokenin/account/me/balance`, apiKey);
59
+
60
+ if (balanceResponse.status >= 200 && balanceResponse.status < 300 && isRecord(balanceResponse.body)) {
61
+ const available = readNumber(balanceResponse.body, "available_usd");
62
+ if (available !== undefined) {
63
+ const balance: Balance = {
64
+ available_usd: available,
65
+ fixed_available_usd: readNumber(balanceResponse.body, "fixed_available_usd"),
66
+ payg_available_usd: readNumber(balanceResponse.body, "payg_available_usd"),
67
+ debt_usd: readNumber(balanceResponse.body, "debt_usd"),
68
+ };
69
+ const debt = balance.debt_usd && balance.debt_usd > 0 ? ` · debt ${money(balance.debt_usd)}` : "";
70
+ return [
71
+ `Token-In available: ${money(balance.available_usd)}`,
72
+ `Plan ${money(balance.fixed_available_usd ?? 0)} · PAYG ${money(balance.payg_available_usd ?? 0)}${debt}`,
73
+ ];
74
+ }
75
+ }
76
+
77
+ // Match /tokenin usage: fall back only when the account balance is absent or unusable.
78
+ if (balanceResponse.status !== 404 && (balanceResponse.status < 200 || balanceResponse.status >= 300)) {
79
+ throw new Error(`balance endpoint returned HTTP ${balanceResponse.status}`);
80
+ }
81
+
82
+ const usageResponse = await requestJson(`${root}/key/info`, apiKey);
83
+ if (usageResponse.status < 200 || usageResponse.status >= 300 || !isRecord(usageResponse.body)) {
84
+ throw new Error(`usage endpoint returned HTTP ${usageResponse.status}`);
85
+ }
86
+ const info = isRecord(usageResponse.body.info) ? usageResponse.body.info : usageResponse.body;
87
+ const spend = readNumber(info, "spend");
88
+ if (spend === undefined) throw new Error("usage endpoint returned an unexpected payload");
89
+ const usage: LegacyUsage = { spend, max_budget: readNumber(info, "max_budget") };
90
+ const remaining = usage.max_budget === undefined ? "no budget limit" : `${money(Math.max(0, usage.max_budget - spend))} remaining`;
91
+ return [`Token-In spent: ${money(spend)}`, remaining];
92
+ }
93
+
94
+ export default function tokenInUsageWidget(pi: ExtensionAPI) {
95
+ let timer: ReturnType<typeof setInterval> | undefined;
96
+ let refreshing = false;
97
+
98
+ pi.on("session_start", async (_event, ctx) => {
99
+ if (!ctx.hasUI) return;
100
+ if (timer) clearInterval(timer);
101
+
102
+ const refresh = async () => {
103
+ if (refreshing) return;
104
+ refreshing = true;
105
+ try {
106
+ ctx.ui.setWidget(WIDGET_KEY, await getUsageLines(ctx), { placement: "belowEditor" });
107
+ } catch (error) {
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ ctx.ui.setWidget(WIDGET_KEY, [`Token-In usage unavailable: ${message}`], { placement: "belowEditor" });
110
+ } finally {
111
+ refreshing = false;
112
+ }
113
+ };
114
+
115
+ await refresh();
116
+ timer = setInterval(() => void refresh(), REFRESH_MS);
117
+ });
118
+
119
+ pi.on("session_shutdown", (_event, ctx) => {
120
+ if (timer) clearInterval(timer);
121
+ timer = undefined;
122
+ if (ctx.hasUI) ctx.ui.setWidget(WIDGET_KEY, undefined);
123
+ });
124
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Run one prompt through a Selesai RPC child process.
3
+ *
4
+ * Build the coding-agent package first, then run:
5
+ * node examples/rpc-client.ts "Explain this repository"
6
+ */
7
+
8
+ import { dirname, join } from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+ import { RpcClient } from "@selesai/code";
11
+
12
+ const exampleDirectory = dirname(fileURLToPath(import.meta.url));
13
+ const prompt = process.argv.slice(2).join(" ") || "Explain this repository in one paragraph.";
14
+
15
+ const client = new RpcClient({
16
+ cliPath: join(exampleDirectory, "../dist/cli.js"),
17
+ args: ["--no-session"],
18
+ });
19
+
20
+ const unsubscribe = client.onEvent((event) => {
21
+ if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
22
+ process.stdout.write(event.assistantMessageEvent.delta);
23
+ } else if (event.type === "tool_execution_start") {
24
+ process.stderr.write(`\n[tool: ${event.toolName}]\n`);
25
+ }
26
+ });
27
+
28
+ try {
29
+ await client.start();
30
+ await client.promptAndWait(prompt);
31
+ process.stdout.write("\n");
32
+ } finally {
33
+ unsubscribe();
34
+ await client.stop();
35
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Codemode, Tool Search, and MCP
3
+ *
4
+ * The CLI loads `codemode`, `tool_search`, and MCP as built-in extensions. SDK sessions add
5
+ * them to the resource loader's extension factories.
6
+ *
7
+ * `codemode` and `tool_search` are registered inactive. Enable them through the `defaultTools` setting
8
+ * (`tools` would also restrict the session to the named tools, which hides MCP tools), or let the
9
+ * MCP extension activate them: `codemode` for servers with `codemode` exposure, `tool_search` for
10
+ * servers with `deferred` exposure.
11
+ */
12
+
13
+ import {
14
+ createAgentSession,
15
+ createCodemodeExtension,
16
+ createMcpExtension,
17
+ createToolSearchExtension,
18
+ DefaultResourceLoader,
19
+ getAgentDir,
20
+ SessionManager,
21
+ SettingsManager,
22
+ } from "@selesai/code";
23
+
24
+ const cwd = process.cwd();
25
+
26
+ const resourceLoader = new DefaultResourceLoader({
27
+ cwd,
28
+ agentDir: getAgentDir(),
29
+ extensionFactories: [
30
+ createCodemodeExtension({ mode: "on" }),
31
+ createToolSearchExtension(),
32
+ // Reads mcp.json from the agent directory and the trusted project, like the CLI.
33
+ createMcpExtension(),
34
+ ],
35
+ });
36
+ await resourceLoader.reload();
37
+
38
+ const settingsManager = SettingsManager.create(cwd);
39
+ // `+name` adds to the configured default tools instead of replacing them.
40
+ settingsManager.applyOverrides({ defaultTools: ["+codemode", "+tool_search"] });
41
+
42
+ const { session } = await createAgentSession({
43
+ resourceLoader,
44
+ settingsManager,
45
+ sessionManager: SessionManager.inMemory(),
46
+ });
47
+
48
+ try {
49
+ // Emits session_start, which connects the MCP servers in the background.
50
+ await session.bindExtensions({});
51
+ console.log("Active tools:", session.getActiveToolNames().join(", "));
52
+ session.subscribe((event) => {
53
+ if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
54
+ process.stdout.write(event.assistantMessageEvent.delta);
55
+ }
56
+ });
57
+ await session.prompt("Use codemode to count the TypeScript files in src/ and list the three largest.");
58
+ console.log();
59
+ } finally {
60
+ try {
61
+ // Hosts emit shutdown before disposal; dispose() itself invalidates the runtime,
62
+ // but does not await session_shutdown handlers that close MCP processes.
63
+ await session.extensionRunner.emit({ type: "session_shutdown", reason: "quit" });
64
+ } finally {
65
+ session.dispose();
66
+ }
67
+ }