@astralyn/pi 0.83.0 → 0.84.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 (739) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/bun/cli.d.ts.map +1 -1
  3. package/dist/bun/cli.js.map +1 -1
  4. package/dist/bun/register-bedrock.d.ts.map +1 -1
  5. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  6. package/dist/bun/restore-sandbox-env.js.map +1 -1
  7. package/dist/cli/args.d.ts +2 -0
  8. package/dist/cli/args.d.ts.map +1 -1
  9. package/dist/cli/args.js +19 -0
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/config-selector.d.ts.map +1 -1
  12. package/dist/cli/config-selector.js +2 -2
  13. package/dist/cli/config-selector.js.map +1 -1
  14. package/dist/cli/credential-print.d.ts +1 -1
  15. package/dist/cli/credential-print.d.ts.map +1 -1
  16. package/dist/cli/credential-print.js +6 -5
  17. package/dist/cli/credential-print.js.map +1 -1
  18. package/dist/cli/experimental/auth.d.ts +16 -0
  19. package/dist/cli/experimental/auth.d.ts.map +1 -0
  20. package/dist/cli/experimental/auth.js +13 -0
  21. package/dist/cli/experimental/auth.js.map +1 -0
  22. package/dist/cli/experimental/cli.d.ts +6 -0
  23. package/dist/cli/experimental/cli.d.ts.map +1 -0
  24. package/dist/cli/experimental/cli.js +5 -0
  25. package/dist/cli/experimental/cli.js.map +1 -0
  26. package/dist/cli/experimental/command-options.d.ts +17 -0
  27. package/dist/cli/experimental/command-options.d.ts.map +1 -0
  28. package/dist/cli/experimental/command-options.js +35 -0
  29. package/dist/cli/experimental/command-options.js.map +1 -0
  30. package/dist/cli/experimental/command.d.ts +63 -0
  31. package/dist/cli/experimental/command.d.ts.map +1 -0
  32. package/dist/cli/experimental/command.js +127 -0
  33. package/dist/cli/experimental/command.js.map +1 -0
  34. package/dist/cli/experimental/commands/client.d.ts +13 -0
  35. package/dist/cli/experimental/commands/client.d.ts.map +1 -0
  36. package/dist/cli/experimental/commands/client.js +25 -0
  37. package/dist/cli/experimental/commands/client.js.map +1 -0
  38. package/dist/cli/experimental/commands/pi.d.ts +15 -0
  39. package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
  40. package/dist/cli/experimental/commands/pi.js +28 -0
  41. package/dist/cli/experimental/commands/pi.js.map +1 -0
  42. package/dist/cli/experimental/commands/server.d.ts +13 -0
  43. package/dist/cli/experimental/commands/server.d.ts.map +1 -0
  44. package/dist/cli/experimental/commands/server.js +25 -0
  45. package/dist/cli/experimental/commands/server.js.map +1 -0
  46. package/dist/cli/experimental/transport-address.d.ts +10 -0
  47. package/dist/cli/experimental/transport-address.d.ts.map +1 -0
  48. package/dist/cli/experimental/transport-address.js +38 -0
  49. package/dist/cli/experimental/transport-address.js.map +1 -0
  50. package/dist/cli/file-processor.d.ts.map +1 -1
  51. package/dist/cli/file-processor.js.map +1 -1
  52. package/dist/cli/initial-message.d.ts +1 -1
  53. package/dist/cli/initial-message.d.ts.map +1 -1
  54. package/dist/cli/initial-message.js.map +1 -1
  55. package/dist/cli/list-models.d.ts +1 -1
  56. package/dist/cli/list-models.d.ts.map +1 -1
  57. package/dist/cli/list-models.js +2 -2
  58. package/dist/cli/list-models.js.map +1 -1
  59. package/dist/cli/project-trust.d.ts.map +1 -1
  60. package/dist/cli/project-trust.js.map +1 -1
  61. package/dist/cli/session-picker.d.ts.map +1 -1
  62. package/dist/cli/session-picker.js.map +1 -1
  63. package/dist/cli/startup-ui.d.ts +1 -1
  64. package/dist/cli/startup-ui.d.ts.map +1 -1
  65. package/dist/cli/startup-ui.js +2 -2
  66. package/dist/cli/startup-ui.js.map +1 -1
  67. package/dist/cli.d.ts.map +1 -1
  68. package/dist/cli.js +1 -0
  69. package/dist/cli.js.map +1 -1
  70. package/dist/client/index.d.ts +3 -0
  71. package/dist/client/index.d.ts.map +1 -0
  72. package/dist/client/index.js +3 -0
  73. package/dist/client/index.js.map +1 -0
  74. package/dist/client/remote-session.d.ts +53 -0
  75. package/dist/client/remote-session.d.ts.map +1 -0
  76. package/dist/client/remote-session.js +340 -0
  77. package/dist/client/remote-session.js.map +1 -0
  78. package/dist/client/transcript.d.ts +12 -0
  79. package/dist/client/transcript.d.ts.map +1 -0
  80. package/dist/client/transcript.js +98 -0
  81. package/dist/client/transcript.js.map +1 -0
  82. package/dist/config.d.ts.map +1 -1
  83. package/dist/config.js.map +1 -1
  84. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  85. package/dist/core/agent-session-runtime.js +0 -8
  86. package/dist/core/agent-session-runtime.js.map +1 -1
  87. package/dist/core/agent-session-services.d.ts +1 -0
  88. package/dist/core/agent-session-services.d.ts.map +1 -1
  89. package/dist/core/agent-session-services.js +1 -0
  90. package/dist/core/agent-session-services.js.map +1 -1
  91. package/dist/core/agent-session.d.ts +30 -10
  92. package/dist/core/agent-session.d.ts.map +1 -1
  93. package/dist/core/agent-session.js +177 -187
  94. package/dist/core/agent-session.js.map +1 -1
  95. package/dist/core/auth-guidance.d.ts.map +1 -1
  96. package/dist/core/auth-guidance.js.map +1 -1
  97. package/dist/core/auth-storage.d.ts +15 -9
  98. package/dist/core/auth-storage.d.ts.map +1 -1
  99. package/dist/core/auth-storage.js +159 -41
  100. package/dist/core/auth-storage.js.map +1 -1
  101. package/dist/core/bash-executor.d.ts.map +1 -1
  102. package/dist/core/bash-executor.js.map +1 -1
  103. package/dist/core/cache-stats.d.ts.map +1 -1
  104. package/dist/core/cache-stats.js.map +1 -1
  105. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  106. package/dist/core/compaction/branch-summarization.js.map +1 -1
  107. package/dist/core/compaction/compaction.d.ts.map +1 -1
  108. package/dist/core/compaction/compaction.js.map +1 -1
  109. package/dist/core/compaction/index.d.ts.map +1 -1
  110. package/dist/core/compaction/utils.d.ts.map +1 -1
  111. package/dist/core/compaction/utils.js.map +1 -1
  112. package/dist/core/defaults.d.ts.map +1 -1
  113. package/dist/core/diagnostics.d.ts.map +1 -1
  114. package/dist/core/event-bus.d.ts.map +1 -1
  115. package/dist/core/event-bus.js.map +1 -1
  116. package/dist/core/exec.d.ts.map +1 -1
  117. package/dist/core/exec.js.map +1 -1
  118. package/dist/core/experimental.d.ts.map +1 -1
  119. package/dist/core/experimental.js.map +1 -1
  120. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  121. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  122. package/dist/core/export-html/index.d.ts.map +1 -1
  123. package/dist/core/export-html/index.js.map +1 -1
  124. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  125. package/dist/core/export-html/tool-renderer.js.map +1 -1
  126. package/dist/core/extensions/index.d.ts +1 -1
  127. package/dist/core/extensions/index.d.ts.map +1 -1
  128. package/dist/core/extensions/index.js.map +1 -1
  129. package/dist/core/extensions/loader.d.ts.map +1 -1
  130. package/dist/core/extensions/loader.js +43 -20
  131. package/dist/core/extensions/loader.js.map +1 -1
  132. package/dist/core/extensions/runner.d.ts +2 -1
  133. package/dist/core/extensions/runner.d.ts.map +1 -1
  134. package/dist/core/extensions/runner.js +25 -29
  135. package/dist/core/extensions/runner.js.map +1 -1
  136. package/dist/core/extensions/types.d.ts +21 -3
  137. package/dist/core/extensions/types.d.ts.map +1 -1
  138. package/dist/core/extensions/types.js.map +1 -1
  139. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  140. package/dist/core/extensions/wrapper.js.map +1 -1
  141. package/dist/core/footer-data-provider.d.ts.map +1 -1
  142. package/dist/core/footer-data-provider.js +17 -18
  143. package/dist/core/footer-data-provider.js.map +1 -1
  144. package/dist/core/http-dispatcher.d.ts.map +1 -1
  145. package/dist/core/http-dispatcher.js +5 -0
  146. package/dist/core/http-dispatcher.js.map +1 -1
  147. package/dist/core/index.d.ts.map +1 -1
  148. package/dist/core/keybindings.d.ts +157 -125
  149. package/dist/core/keybindings.d.ts.map +1 -1
  150. package/dist/core/keybindings.js +0 -1
  151. package/dist/core/keybindings.js.map +1 -1
  152. package/dist/core/messages.d.ts.map +1 -1
  153. package/dist/core/messages.js.map +1 -1
  154. package/dist/core/model-config.d.ts +37 -13
  155. package/dist/core/model-config.d.ts.map +1 -1
  156. package/dist/core/model-config.js +4 -2
  157. package/dist/core/model-config.js.map +1 -1
  158. package/dist/core/model-registry.d.ts +5 -3
  159. package/dist/core/model-registry.d.ts.map +1 -1
  160. package/dist/core/model-registry.js +13 -11
  161. package/dist/core/model-registry.js.map +1 -1
  162. package/dist/core/model-resolver.d.ts +4 -3
  163. package/dist/core/model-resolver.d.ts.map +1 -1
  164. package/dist/core/model-resolver.js +41 -10
  165. package/dist/core/model-resolver.js.map +1 -1
  166. package/dist/core/model-runtime.d.ts +28 -13
  167. package/dist/core/model-runtime.d.ts.map +1 -1
  168. package/dist/core/model-runtime.js +239 -91
  169. package/dist/core/model-runtime.js.map +1 -1
  170. package/dist/core/models-store.d.ts +12 -7
  171. package/dist/core/models-store.d.ts.map +1 -1
  172. package/dist/core/models-store.js +84 -16
  173. package/dist/core/models-store.js.map +1 -1
  174. package/dist/core/output-guard.d.ts.map +1 -1
  175. package/dist/core/output-guard.js.map +1 -1
  176. package/dist/core/package-manager.d.ts +4 -1
  177. package/dist/core/package-manager.d.ts.map +1 -1
  178. package/dist/core/package-manager.js +63 -42
  179. package/dist/core/package-manager.js.map +1 -1
  180. package/dist/core/pi-manifest.d.ts +8 -0
  181. package/dist/core/pi-manifest.d.ts.map +1 -0
  182. package/dist/core/pi-manifest.js +25 -0
  183. package/dist/core/pi-manifest.js.map +1 -0
  184. package/dist/core/project-trust.d.ts.map +1 -1
  185. package/dist/core/project-trust.js.map +1 -1
  186. package/dist/core/prompt-templates.d.ts.map +1 -1
  187. package/dist/core/prompt-templates.js.map +1 -1
  188. package/dist/core/provider-attribution.d.ts.map +1 -1
  189. package/dist/core/provider-attribution.js.map +1 -1
  190. package/dist/core/provider-composer.d.ts +4 -1
  191. package/dist/core/provider-composer.d.ts.map +1 -1
  192. package/dist/core/provider-composer.js +36 -15
  193. package/dist/core/provider-composer.js.map +1 -1
  194. package/dist/core/radius.d.ts.map +1 -1
  195. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  196. package/dist/core/remote-catalog-provider.js +73 -67
  197. package/dist/core/remote-catalog-provider.js.map +1 -1
  198. package/dist/core/resolve-config-value.d.ts.map +1 -1
  199. package/dist/core/resolve-config-value.js.map +1 -1
  200. package/dist/core/resource-loader.d.ts.map +1 -1
  201. package/dist/core/resource-loader.js +2 -46
  202. package/dist/core/resource-loader.js.map +1 -1
  203. package/dist/core/runtime-credentials.d.ts +5 -5
  204. package/dist/core/runtime-credentials.d.ts.map +1 -1
  205. package/dist/core/runtime-credentials.js +12 -10
  206. package/dist/core/runtime-credentials.js.map +1 -1
  207. package/dist/core/sdk.d.ts.map +1 -1
  208. package/dist/core/sdk.js.map +1 -1
  209. package/dist/core/session-cwd.d.ts.map +1 -1
  210. package/dist/core/session-cwd.js +0 -1
  211. package/dist/core/session-cwd.js.map +1 -1
  212. package/dist/core/session-manager.d.ts.map +1 -1
  213. package/dist/core/session-manager.js +10 -12
  214. package/dist/core/session-manager.js.map +1 -1
  215. package/dist/core/settings-manager.d.ts +12 -0
  216. package/dist/core/settings-manager.d.ts.map +1 -1
  217. package/dist/core/settings-manager.js +47 -33
  218. package/dist/core/settings-manager.js.map +1 -1
  219. package/dist/core/skills.d.ts.map +1 -1
  220. package/dist/core/skills.js.map +1 -1
  221. package/dist/core/slash-commands.d.ts.map +1 -1
  222. package/dist/core/source-info.d.ts.map +1 -1
  223. package/dist/core/source-info.js.map +1 -1
  224. package/dist/core/system-prompt.d.ts.map +1 -1
  225. package/dist/core/system-prompt.js.map +1 -1
  226. package/dist/core/telemetry.d.ts.map +1 -1
  227. package/dist/core/telemetry.js.map +1 -1
  228. package/dist/core/timings.d.ts.map +1 -1
  229. package/dist/core/timings.js.map +1 -1
  230. package/dist/core/tools/bash.d.ts.map +1 -1
  231. package/dist/core/tools/bash.js +12 -10
  232. package/dist/core/tools/bash.js.map +1 -1
  233. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  234. package/dist/core/tools/edit-diff.js.map +1 -1
  235. package/dist/core/tools/edit.d.ts.map +1 -1
  236. package/dist/core/tools/edit.js +4 -3
  237. package/dist/core/tools/edit.js.map +1 -1
  238. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  239. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  240. package/dist/core/tools/find.d.ts +3 -0
  241. package/dist/core/tools/find.d.ts.map +1 -1
  242. package/dist/core/tools/find.js +13 -16
  243. package/dist/core/tools/find.js.map +1 -1
  244. package/dist/core/tools/grep.d.ts.map +1 -1
  245. package/dist/core/tools/grep.js.map +1 -1
  246. package/dist/core/tools/index.d.ts.map +1 -1
  247. package/dist/core/tools/index.js.map +1 -1
  248. package/dist/core/tools/ls.d.ts.map +1 -1
  249. package/dist/core/tools/ls.js.map +1 -1
  250. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  251. package/dist/core/tools/output-accumulator.js +12 -18
  252. package/dist/core/tools/output-accumulator.js.map +1 -1
  253. package/dist/core/tools/path-utils.d.ts.map +1 -1
  254. package/dist/core/tools/path-utils.js.map +1 -1
  255. package/dist/core/tools/read.d.ts.map +1 -1
  256. package/dist/core/tools/read.js +1 -1
  257. package/dist/core/tools/read.js.map +1 -1
  258. package/dist/core/tools/render-utils.d.ts.map +1 -1
  259. package/dist/core/tools/render-utils.js.map +1 -1
  260. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  261. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  262. package/dist/core/tools/truncate.d.ts.map +1 -1
  263. package/dist/core/tools/truncate.js.map +1 -1
  264. package/dist/core/tools/write.d.ts.map +1 -1
  265. package/dist/core/tools/write.js +0 -1
  266. package/dist/core/tools/write.js.map +1 -1
  267. package/dist/core/trust-manager.d.ts.map +1 -1
  268. package/dist/core/trust-manager.js +0 -1
  269. package/dist/core/trust-manager.js.map +1 -1
  270. package/dist/core/usage-totals.d.ts.map +1 -1
  271. package/dist/core/usage-totals.js.map +1 -1
  272. package/dist/extensions/biu/index.d.ts +19 -0
  273. package/dist/extensions/biu/index.d.ts.map +1 -0
  274. package/dist/extensions/biu/index.js +350 -0
  275. package/dist/extensions/biu/index.js.map +1 -0
  276. package/dist/extensions/biu/prompts.d.ts +26 -0
  277. package/dist/extensions/biu/prompts.d.ts.map +1 -0
  278. package/dist/extensions/biu/prompts.js +260 -0
  279. package/dist/extensions/biu/prompts.js.map +1 -0
  280. package/dist/extensions/biu/workspace.d.ts +122 -0
  281. package/dist/extensions/biu/workspace.d.ts.map +1 -0
  282. package/dist/extensions/biu/workspace.js +404 -0
  283. package/dist/extensions/biu/workspace.js.map +1 -0
  284. package/dist/extensions/deepwiki/client.d.ts.map +1 -1
  285. package/dist/extensions/deepwiki/client.js.map +1 -1
  286. package/dist/extensions/deepwiki/constants.d.ts.map +1 -1
  287. package/dist/extensions/deepwiki/constants.js.map +1 -1
  288. package/dist/extensions/deepwiki/contents.d.ts.map +1 -1
  289. package/dist/extensions/deepwiki/contents.js.map +1 -1
  290. package/dist/extensions/deepwiki/execute.d.ts.map +1 -1
  291. package/dist/extensions/deepwiki/execute.js.map +1 -1
  292. package/dist/extensions/deepwiki/http.d.ts.map +1 -1
  293. package/dist/extensions/deepwiki/http.js.map +1 -1
  294. package/dist/extensions/deepwiki/index.d.ts.map +1 -1
  295. package/dist/extensions/deepwiki/index.js.map +1 -1
  296. package/dist/extensions/deepwiki/render.d.ts.map +1 -1
  297. package/dist/extensions/deepwiki/render.js.map +1 -1
  298. package/dist/extensions/deepwiki/schema.d.ts +1 -1
  299. package/dist/extensions/deepwiki/schema.d.ts.map +1 -1
  300. package/dist/extensions/deepwiki/schema.js.map +1 -1
  301. package/dist/extensions/index.d.ts.map +1 -1
  302. package/dist/extensions/index.js +2 -0
  303. package/dist/extensions/index.js.map +1 -1
  304. package/dist/extensions/llama/client.d.ts.map +1 -1
  305. package/dist/extensions/llama/client.js +0 -2
  306. package/dist/extensions/llama/client.js.map +1 -1
  307. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  308. package/dist/extensions/llama/huggingface.js +0 -2
  309. package/dist/extensions/llama/huggingface.js.map +1 -1
  310. package/dist/extensions/llama/index.d.ts.map +1 -1
  311. package/dist/extensions/llama/index.js +11 -2
  312. package/dist/extensions/llama/index.js.map +1 -1
  313. package/dist/extensions/llama/provider.d.ts.map +1 -1
  314. package/dist/extensions/llama/provider.js +21 -7
  315. package/dist/extensions/llama/provider.js.map +1 -1
  316. package/dist/extensions/llama/ui.d.ts.map +1 -1
  317. package/dist/extensions/llama/ui.js +12 -28
  318. package/dist/extensions/llama/ui.js.map +1 -1
  319. package/dist/extensions/question/constants.d.ts.map +1 -1
  320. package/dist/extensions/question/constants.js.map +1 -1
  321. package/dist/extensions/question/dialog-primitives.d.ts.map +1 -1
  322. package/dist/extensions/question/dialog-primitives.js.map +1 -1
  323. package/dist/extensions/question/dialog.d.ts.map +1 -1
  324. package/dist/extensions/question/dialog.js.map +1 -1
  325. package/dist/extensions/question/index.d.ts.map +1 -1
  326. package/dist/extensions/question/index.js.map +1 -1
  327. package/dist/extensions/question/limits.d.ts.map +1 -1
  328. package/dist/extensions/question/render-cache.d.ts.map +1 -1
  329. package/dist/extensions/question/render-cache.js +3 -4
  330. package/dist/extensions/question/render-cache.js.map +1 -1
  331. package/dist/extensions/question/render.d.ts.map +1 -1
  332. package/dist/extensions/question/render.js.map +1 -1
  333. package/dist/extensions/question/results.d.ts.map +1 -1
  334. package/dist/extensions/question/results.js.map +1 -1
  335. package/dist/extensions/question/schema.d.ts.map +1 -1
  336. package/dist/extensions/question/schema.js.map +1 -1
  337. package/dist/extensions/question/state.d.ts.map +1 -1
  338. package/dist/extensions/question/state.js.map +1 -1
  339. package/dist/extensions/question/types.d.ts.map +1 -1
  340. package/dist/extensions/rewind/anchor.d.ts.map +1 -1
  341. package/dist/extensions/rewind/anchor.js.map +1 -1
  342. package/dist/extensions/rewind/config.d.ts.map +1 -1
  343. package/dist/extensions/rewind/config.js.map +1 -1
  344. package/dist/extensions/rewind/engine.d.ts.map +1 -1
  345. package/dist/extensions/rewind/engine.js.map +1 -1
  346. package/dist/extensions/rewind/gc.d.ts.map +1 -1
  347. package/dist/extensions/rewind/gc.js.map +1 -1
  348. package/dist/extensions/rewind/index.d.ts.map +1 -1
  349. package/dist/extensions/rewind/index.js.map +1 -1
  350. package/dist/extensions/rewind/menu.d.ts.map +1 -1
  351. package/dist/extensions/rewind/menu.js.map +1 -1
  352. package/dist/extensions/rewind/paths.d.ts.map +1 -1
  353. package/dist/extensions/rewind/paths.js.map +1 -1
  354. package/dist/extensions/rewind/restore.d.ts.map +1 -1
  355. package/dist/extensions/rewind/restore.js.map +1 -1
  356. package/dist/extensions/rewind/snapshot.d.ts.map +1 -1
  357. package/dist/extensions/rewind/snapshot.js.map +1 -1
  358. package/dist/extensions/rewind/storage.d.ts.map +1 -1
  359. package/dist/extensions/rewind/storage.js.map +1 -1
  360. package/dist/extensions/rewind/text.d.ts.map +1 -1
  361. package/dist/extensions/rewind/text.js.map +1 -1
  362. package/dist/extensions/rewind/tool-path.d.ts.map +1 -1
  363. package/dist/extensions/rewind/tool-path.js.map +1 -1
  364. package/dist/extensions/router/constants.d.ts +3 -0
  365. package/dist/extensions/router/constants.d.ts.map +1 -1
  366. package/dist/extensions/router/constants.js +3 -0
  367. package/dist/extensions/router/constants.js.map +1 -1
  368. package/dist/extensions/router/dialog.d.ts +14 -7
  369. package/dist/extensions/router/dialog.d.ts.map +1 -1
  370. package/dist/extensions/router/dialog.js +70 -132
  371. package/dist/extensions/router/dialog.js.map +1 -1
  372. package/dist/extensions/router/index.d.ts.map +1 -1
  373. package/dist/extensions/router/index.js.map +1 -1
  374. package/dist/extensions/router/presets.d.ts +8 -3
  375. package/dist/extensions/router/presets.d.ts.map +1 -1
  376. package/dist/extensions/router/presets.js +33 -17
  377. package/dist/extensions/router/presets.js.map +1 -1
  378. package/dist/extensions/router/probe.d.ts.map +1 -1
  379. package/dist/extensions/router/probe.js.map +1 -1
  380. package/dist/extensions/router/register.d.ts +3 -3
  381. package/dist/extensions/router/register.d.ts.map +1 -1
  382. package/dist/extensions/router/register.js.map +1 -1
  383. package/dist/extensions/router/store.d.ts.map +1 -1
  384. package/dist/extensions/router/store.js.map +1 -1
  385. package/dist/extensions/router/stream.d.ts.map +1 -1
  386. package/dist/extensions/router/stream.js.map +1 -1
  387. package/dist/extensions/router/types.d.ts.map +1 -1
  388. package/dist/extensions/router/ui.d.ts +11 -2
  389. package/dist/extensions/router/ui.d.ts.map +1 -1
  390. package/dist/extensions/router/ui.js +316 -171
  391. package/dist/extensions/router/ui.js.map +1 -1
  392. package/dist/extensions/statusline/index.d.ts.map +1 -1
  393. package/dist/extensions/statusline/index.js +17 -9
  394. package/dist/extensions/statusline/index.js.map +1 -1
  395. package/dist/extensions/subagent/activity.d.ts.map +1 -1
  396. package/dist/extensions/subagent/activity.js.map +1 -1
  397. package/dist/extensions/subagent/agents.d.ts.map +1 -1
  398. package/dist/extensions/subagent/agents.js.map +1 -1
  399. package/dist/extensions/subagent/constants.d.ts.map +1 -1
  400. package/dist/extensions/subagent/index.d.ts +3 -0
  401. package/dist/extensions/subagent/index.d.ts.map +1 -1
  402. package/dist/extensions/subagent/index.js +83 -12
  403. package/dist/extensions/subagent/index.js.map +1 -1
  404. package/dist/extensions/subagent/picker.d.ts.map +1 -1
  405. package/dist/extensions/subagent/picker.js +2 -9
  406. package/dist/extensions/subagent/picker.js.map +1 -1
  407. package/dist/extensions/subagent/render.d.ts.map +1 -1
  408. package/dist/extensions/subagent/render.js +33 -9
  409. package/dist/extensions/subagent/render.js.map +1 -1
  410. package/dist/extensions/subagent/resolve.d.ts.map +1 -1
  411. package/dist/extensions/subagent/resolve.js.map +1 -1
  412. package/dist/extensions/subagent/retry.d.ts.map +1 -1
  413. package/dist/extensions/subagent/retry.js.map +1 -1
  414. package/dist/extensions/subagent/runner.d.ts +2 -1
  415. package/dist/extensions/subagent/runner.d.ts.map +1 -1
  416. package/dist/extensions/subagent/runner.js +10 -12
  417. package/dist/extensions/subagent/runner.js.map +1 -1
  418. package/dist/extensions/subagent/schema.d.ts.map +1 -1
  419. package/dist/extensions/subagent/schema.js.map +1 -1
  420. package/dist/extensions/subagent/sdk-runner.d.ts.map +1 -1
  421. package/dist/extensions/subagent/sdk-runner.js +41 -1
  422. package/dist/extensions/subagent/sdk-runner.js.map +1 -1
  423. package/dist/extensions/subagent/settings.d.ts.map +1 -1
  424. package/dist/extensions/subagent/settings.js +46 -36
  425. package/dist/extensions/subagent/settings.js.map +1 -1
  426. package/dist/extensions/subagent/types.d.ts +0 -1
  427. package/dist/extensions/subagent/types.d.ts.map +1 -1
  428. package/dist/extensions/subagent/types.js.map +1 -1
  429. package/dist/extensions/todo/constants.d.ts.map +1 -1
  430. package/dist/extensions/todo/constants.js.map +1 -1
  431. package/dist/extensions/todo/index.d.ts.map +1 -1
  432. package/dist/extensions/todo/index.js.map +1 -1
  433. package/dist/extensions/todo/overlay.d.ts.map +1 -1
  434. package/dist/extensions/todo/overlay.js +6 -10
  435. package/dist/extensions/todo/overlay.js.map +1 -1
  436. package/dist/extensions/todo/schema.d.ts +2 -2
  437. package/dist/extensions/todo/schema.d.ts.map +1 -1
  438. package/dist/extensions/todo/state.d.ts.map +1 -1
  439. package/dist/extensions/todo/state.js.map +1 -1
  440. package/dist/extensions/todo/view.d.ts.map +1 -1
  441. package/dist/extensions/todo/view.js.map +1 -1
  442. package/dist/index.d.ts +4 -4
  443. package/dist/index.d.ts.map +1 -1
  444. package/dist/index.js +1 -1
  445. package/dist/index.js.map +1 -1
  446. package/dist/main.d.ts.map +1 -1
  447. package/dist/main.js +16 -7
  448. package/dist/main.js.map +1 -1
  449. package/dist/migrations.d.ts.map +1 -1
  450. package/dist/migrations.js.map +1 -1
  451. package/dist/modes/index.d.ts +1 -0
  452. package/dist/modes/index.d.ts.map +1 -1
  453. package/dist/modes/index.js.map +1 -1
  454. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  455. package/dist/modes/interactive/components/armin.js +6 -10
  456. package/dist/modes/interactive/components/armin.js.map +1 -1
  457. package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
  458. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  459. package/dist/modes/interactive/components/assistant-message.js +13 -11
  460. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  461. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  462. package/dist/modes/interactive/components/bash-execution.js +4 -10
  463. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  464. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  465. package/dist/modes/interactive/components/bordered-loader.js +0 -3
  466. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  467. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  468. package/dist/modes/interactive/components/branch-summary-message.js +1 -3
  469. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  470. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  471. package/dist/modes/interactive/components/compaction-summary-message.js +1 -3
  472. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  473. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  474. package/dist/modes/interactive/components/config-selector.js +5 -22
  475. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  476. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  477. package/dist/modes/interactive/components/countdown-timer.js +1 -7
  478. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  479. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  480. package/dist/modes/interactive/components/custom-editor.js +8 -8
  481. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  482. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  483. package/dist/modes/interactive/components/custom-entry.js +1 -4
  484. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  485. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  486. package/dist/modes/interactive/components/custom-message.js +1 -7
  487. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  488. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  489. package/dist/modes/interactive/components/daxnuts.js +6 -8
  490. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  491. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  492. package/dist/modes/interactive/components/diff.js.map +1 -1
  493. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  494. package/dist/modes/interactive/components/dynamic-border.js +0 -1
  495. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  496. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  497. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  498. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  499. package/dist/modes/interactive/components/extension-editor.js +1 -7
  500. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  501. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/extension-input.js +2 -8
  503. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  504. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  505. package/dist/modes/interactive/components/extension-selector.js +1 -9
  506. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  507. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  508. package/dist/modes/interactive/components/first-time-setup.js +2 -4
  509. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  510. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  511. package/dist/modes/interactive/components/footer.js +2 -4
  512. package/dist/modes/interactive/components/footer.js.map +1 -1
  513. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  515. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  516. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  517. package/dist/modes/interactive/components/login-dialog.js +3 -9
  518. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  519. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  520. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  521. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  522. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  523. package/dist/modes/interactive/components/mermaid.d.ts +11 -0
  524. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  525. package/dist/modes/interactive/components/mermaid.js +75 -0
  526. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  527. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  528. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/model-selector.js +28 -29
  530. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  531. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  532. package/dist/modes/interactive/components/oauth-selector.js +3 -11
  533. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  534. package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
  535. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  536. package/dist/modes/interactive/components/scoped-models-selector.js +34 -13
  537. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  538. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  539. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  540. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  541. package/dist/modes/interactive/components/session-selector.js +35 -60
  542. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  543. package/dist/modes/interactive/components/settings-selector.d.ts +8 -2
  544. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/settings-selector.js +30 -14
  546. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  547. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  548. package/dist/modes/interactive/components/show-images-selector.js +0 -1
  549. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  550. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  551. package/dist/modes/interactive/components/skill-invocation-message.js +1 -3
  552. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  553. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  554. package/dist/modes/interactive/components/status-indicator.js +0 -2
  555. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  556. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  557. package/dist/modes/interactive/components/theme-selector.js +0 -2
  558. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  559. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  560. package/dist/modes/interactive/components/thinking-selector.js +0 -1
  561. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  562. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  563. package/dist/modes/interactive/components/tool-execution.js +18 -36
  564. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  565. package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
  566. package/dist/modes/interactive/components/tool-group.js +2 -3
  567. package/dist/modes/interactive/components/tool-group.js.map +1 -1
  568. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  569. package/dist/modes/interactive/components/tree-selector.js +19 -39
  570. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  571. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  572. package/dist/modes/interactive/components/trust-selector.js +0 -6
  573. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  574. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  575. package/dist/modes/interactive/components/user-message-selector.js +3 -6
  576. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  577. package/dist/modes/interactive/components/user-message.d.ts +3 -1
  578. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  579. package/dist/modes/interactive/components/user-message.js +8 -5
  580. package/dist/modes/interactive/components/user-message.js.map +1 -1
  581. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  583. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  584. package/dist/modes/interactive/external-editor.js.map +1 -1
  585. package/dist/modes/interactive/interactive-mode.d.ts +46 -4
  586. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  587. package/dist/modes/interactive/interactive-mode.js +518 -269
  588. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  589. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  590. package/dist/modes/interactive/model-search.js.map +1 -1
  591. package/dist/modes/interactive/theme/dark.json +1 -0
  592. package/dist/modes/interactive/theme/light.json +1 -0
  593. package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
  594. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  595. package/dist/modes/interactive/theme/theme-controller.js +11 -8
  596. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  597. package/dist/modes/interactive/theme/theme-schema.json +5 -1
  598. package/dist/modes/interactive/theme/theme.d.ts +4 -4
  599. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  600. package/dist/modes/interactive/theme/theme.js +13 -9
  601. package/dist/modes/interactive/theme/theme.js.map +1 -1
  602. package/dist/modes/json-event.d.ts +28 -0
  603. package/dist/modes/json-event.d.ts.map +1 -0
  604. package/dist/modes/json-event.js +12 -0
  605. package/dist/modes/json-event.js.map +1 -0
  606. package/dist/modes/print-mode.d.ts.map +1 -1
  607. package/dist/modes/print-mode.js +12 -2
  608. package/dist/modes/print-mode.js.map +1 -1
  609. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  610. package/dist/modes/rpc/jsonl.js.map +1 -1
  611. package/dist/modes/rpc/rpc-client.d.ts +5 -4
  612. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  613. package/dist/modes/rpc/rpc-client.js +7 -8
  614. package/dist/modes/rpc/rpc-client.js.map +1 -1
  615. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  616. package/dist/modes/rpc/rpc-mode.js +4 -3
  617. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  618. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  619. package/dist/package-manager-cli.d.ts.map +1 -1
  620. package/dist/package-manager-cli.js +11 -9
  621. package/dist/package-manager-cli.js.map +1 -1
  622. package/dist/rpc-entry.d.ts.map +1 -1
  623. package/dist/rpc-entry.js +1 -0
  624. package/dist/rpc-entry.js.map +1 -1
  625. package/dist/utils/abort.d.ts +5 -0
  626. package/dist/utils/abort.d.ts.map +1 -0
  627. package/dist/utils/abort.js +48 -0
  628. package/dist/utils/abort.js.map +1 -0
  629. package/dist/utils/ansi.d.ts.map +1 -1
  630. package/dist/utils/ansi.js.map +1 -1
  631. package/dist/utils/changelog.d.ts.map +1 -1
  632. package/dist/utils/changelog.js.map +1 -1
  633. package/dist/utils/child-process.d.ts.map +1 -1
  634. package/dist/utils/child-process.js.map +1 -1
  635. package/dist/utils/clipboard-image.d.ts.map +1 -1
  636. package/dist/utils/clipboard-image.js.map +1 -1
  637. package/dist/utils/clipboard-native.d.ts.map +1 -1
  638. package/dist/utils/clipboard-native.js.map +1 -1
  639. package/dist/utils/clipboard.d.ts +1 -1
  640. package/dist/utils/clipboard.d.ts.map +1 -1
  641. package/dist/utils/clipboard.js +22 -2
  642. package/dist/utils/clipboard.js.map +1 -1
  643. package/dist/utils/coalescing-terminal.d.ts +1 -0
  644. package/dist/utils/coalescing-terminal.d.ts.map +1 -1
  645. package/dist/utils/coalescing-terminal.js +16 -8
  646. package/dist/utils/coalescing-terminal.js.map +1 -1
  647. package/dist/utils/deprecation.d.ts.map +1 -1
  648. package/dist/utils/deprecation.js.map +1 -1
  649. package/dist/utils/exif-orientation.d.ts.map +1 -1
  650. package/dist/utils/exif-orientation.js.map +1 -1
  651. package/dist/utils/frontmatter.d.ts.map +1 -1
  652. package/dist/utils/frontmatter.js.map +1 -1
  653. package/dist/utils/fs-watch.d.ts.map +1 -1
  654. package/dist/utils/fs-watch.js.map +1 -1
  655. package/dist/utils/git.d.ts.map +1 -1
  656. package/dist/utils/git.js.map +1 -1
  657. package/dist/utils/html.d.ts.map +1 -1
  658. package/dist/utils/html.js.map +1 -1
  659. package/dist/utils/image-convert.d.ts.map +1 -1
  660. package/dist/utils/image-convert.js.map +1 -1
  661. package/dist/utils/image-process.d.ts.map +1 -1
  662. package/dist/utils/image-process.js.map +1 -1
  663. package/dist/utils/image-resize-core.d.ts.map +1 -1
  664. package/dist/utils/image-resize-core.js.map +1 -1
  665. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  666. package/dist/utils/image-resize-worker.js.map +1 -1
  667. package/dist/utils/image-resize.d.ts.map +1 -1
  668. package/dist/utils/image-resize.js.map +1 -1
  669. package/dist/utils/json.d.ts.map +1 -1
  670. package/dist/utils/json.js.map +1 -1
  671. package/dist/utils/management-http.d.ts +23 -0
  672. package/dist/utils/management-http.d.ts.map +1 -0
  673. package/dist/utils/management-http.js +50 -0
  674. package/dist/utils/management-http.js.map +1 -0
  675. package/dist/utils/mime.d.ts.map +1 -1
  676. package/dist/utils/mime.js.map +1 -1
  677. package/dist/utils/open-browser.d.ts.map +1 -1
  678. package/dist/utils/open-browser.js.map +1 -1
  679. package/dist/utils/paths.d.ts +3 -0
  680. package/dist/utils/paths.d.ts.map +1 -1
  681. package/dist/utils/paths.js +23 -1
  682. package/dist/utils/paths.js.map +1 -1
  683. package/dist/utils/photon.d.ts.map +1 -1
  684. package/dist/utils/photon.js.map +1 -1
  685. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  686. package/dist/utils/pi-user-agent.js.map +1 -1
  687. package/dist/utils/shell.d.ts.map +1 -1
  688. package/dist/utils/shell.js.map +1 -1
  689. package/dist/utils/sleep.d.ts.map +1 -1
  690. package/dist/utils/sleep.js.map +1 -1
  691. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  692. package/dist/utils/syntax-highlight.js.map +1 -1
  693. package/dist/utils/tool-result-images.d.ts +19 -0
  694. package/dist/utils/tool-result-images.d.ts.map +1 -0
  695. package/dist/utils/tool-result-images.js +45 -0
  696. package/dist/utils/tool-result-images.js.map +1 -0
  697. package/dist/utils/tools-manager.d.ts.map +1 -1
  698. package/dist/utils/tools-manager.js +4 -6
  699. package/dist/utils/tools-manager.js.map +1 -1
  700. package/dist/utils/version-check.d.ts +4 -0
  701. package/dist/utils/version-check.d.ts.map +1 -1
  702. package/dist/utils/version-check.js +20 -2
  703. package/dist/utils/version-check.js.map +1 -1
  704. package/dist/utils/windows-self-update.d.ts.map +1 -1
  705. package/dist/utils/windows-self-update.js.map +1 -1
  706. package/docs/bundled/README.md +1 -0
  707. package/docs/bundled/extensions/biu.md +63 -0
  708. package/docs/bundled/extensions/router.md +20 -14
  709. package/docs/bundled/extensions/statusline.md +7 -5
  710. package/docs/custom-provider.md +123 -2
  711. package/docs/development.md +83 -0
  712. package/docs/docs.json +8 -4
  713. package/docs/extensions.md +27 -3
  714. package/docs/json.md +21 -2
  715. package/docs/keybindings.md +38 -10
  716. package/docs/models.md +21 -3
  717. package/docs/providers.md +1 -0
  718. package/docs/quickstart.md +2 -0
  719. package/docs/rpc.md +12 -11
  720. package/docs/sdk.md +46 -0
  721. package/docs/security.md +1 -1
  722. package/docs/settings.md +4 -1
  723. package/docs/themes.md +7 -5
  724. package/docs/usage.md +8 -0
  725. package/examples/extensions/custom-compaction.ts +1 -16
  726. package/examples/extensions/custom-provider-anthropic/index.ts +2 -1
  727. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -1
  728. package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
  729. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  730. package/examples/extensions/handoff.ts +2 -11
  731. package/examples/extensions/qna.ts +3 -7
  732. package/examples/extensions/summarize.ts +8 -18
  733. package/examples/rpc-extension-ui.ts +11 -2
  734. package/examples/sdk/02-custom-model.ts +1 -2
  735. package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
  736. package/examples/sdk/12-full-control.ts +1 -1
  737. package/examples/sdk/README.md +1 -0
  738. package/npm-shrinkwrap.json +193 -264
  739. package/package.json +15 -8
@@ -15,11 +15,12 @@
15
15
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
16
16
  import { basename, dirname } from "node:path";
17
17
  import { contentText } from "@earendil-works/pi-ai";
18
- import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, isRetryableAssistantError, modelsAreEqual, resetApiProviders, streamSimple, } from "@earendil-works/pi-ai/compat";
18
+ import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, isRecoverableLength, isRetryableAssistantError, modelsAreEqual, resetApiProviders, streamSimple, } from "@earendil-works/pi-ai/compat";
19
19
  import { getThemeByName, theme } from "../modes/interactive/theme/theme.js";
20
20
  import { stripFrontmatter } from "../utils/frontmatter.js";
21
21
  import { resolvePath } from "../utils/paths.js";
22
22
  import { sleep } from "../utils/sleep.js";
23
+ import { normalizeToolResultImages } from "../utils/tool-result-images.js";
23
24
  import { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage } from "./auth-guidance.js";
24
25
  import { executeBashWithOperations } from "./bash-executor.js";
25
26
  import { calculateContextTokens, collectEntriesForBranchSummary, compact, estimateContextTokens, estimateTokens, generateBranchSummary, prepareCompaction, shouldCompact, } from "./compaction/index.js";
@@ -79,68 +80,104 @@ const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high"];
79
80
  // AgentSession Class
80
81
  // ============================================================================
81
82
  export class AgentSession {
82
- agent;
83
- sessionManager;
84
- settingsManager;
85
- _scopedModels;
86
- // Event subscription state
87
- _unsubscribeAgent;
88
- _eventListeners = [];
89
- _isAgentRunActive = false;
90
- _idleWaitPromise;
91
- _resolveIdleWait;
92
- /** Tracks pending steering messages for UI display. Removed when delivered. */
93
- _steeringMessages = [];
94
- /** Tracks pending follow-up messages for UI display. Removed when delivered. */
95
- _followUpMessages = [];
96
- /** Messages queued to be included with the next user prompt as context ("asides"). */
97
- _pendingNextTurnMessages = [];
98
- // Compaction state
99
- _compactionAbortController = undefined;
100
- _autoCompactionAbortController = undefined;
101
- _stopAfterTurnRequested = false;
102
- /** An extension cancelled a mid-turn compaction; skip further mid-turn checks this run. */
103
- _midTurnCompactionDeclined = false;
104
- _overflowRecoveryAttempted = false;
105
- // Branch summarization state
106
- _branchSummaryAbortController = undefined;
107
- // Retry state
108
- _retryAbortController = undefined;
109
- _retryAttempt = 0;
110
- // Bash execution state
111
- _bashAbortControllers = new Set();
112
- _pendingBashMessages = [];
113
- // Extension system
114
- _extensionRunner;
115
- _turnIndex = 0;
116
- _resourceLoader;
117
- _customTools;
118
- _baseToolDefinitions = new Map();
119
- _cwd;
120
- _extensionRunnerRef;
121
- _initialActiveToolNames;
122
- _allowedToolNames;
123
- _excludedToolNames;
124
- _baseToolsOverride;
125
- _sessionStartEvent;
126
- _extensionUIContext;
127
- _extensionMode = "print";
128
- _extensionCommandContextActions;
129
- _extensionAbortHandler;
130
- _extensionShutdownHandler;
131
- _extensionErrorListener;
132
- _extensionErrorUnsubscriber;
133
- _modelRuntime;
134
- // Tool registry for extension getTools/setTools
135
- _toolRegistry = new Map();
136
- _toolDefinitions = new Map();
137
- _toolPromptSnippets = new Map();
138
- _toolPromptGuidelines = new Map();
139
- // Base system prompt (without extension appends) - used to apply fresh appends each turn
140
- _baseSystemPrompt = "";
141
- _baseSystemPromptOptions;
142
- _systemPromptOverride;
143
83
  constructor(config) {
84
+ this._eventListeners = [];
85
+ this._isAgentRunActive = false;
86
+ /** Tracks pending steering messages for UI display. Removed when delivered. */
87
+ this._steeringMessages = [];
88
+ /** Tracks pending follow-up messages for UI display. Removed when delivered. */
89
+ this._followUpMessages = [];
90
+ /** Messages queued to be included with the next user prompt as context ("asides"). */
91
+ this._pendingNextTurnMessages = [];
92
+ // Compaction state
93
+ this._compactionAbortController = undefined;
94
+ this._autoCompactionAbortController = undefined;
95
+ this._stopAfterTurnRequested = false;
96
+ /** An extension cancelled a mid-turn compaction; skip further mid-turn checks this run. */
97
+ this._midTurnCompactionDeclined = false;
98
+ this._overflowRecoveryAttempted = false;
99
+ // Branch summarization state
100
+ this._branchSummaryAbortController = undefined;
101
+ // Retry state
102
+ this._retryAbortController = undefined;
103
+ this._retryAttempt = 0;
104
+ // Bash execution state
105
+ this._bashAbortControllers = new Set();
106
+ this._pendingBashMessages = [];
107
+ this._turnIndex = 0;
108
+ this._baseToolDefinitions = new Map();
109
+ this._extensionMode = "print";
110
+ // Tool registry for extension getTools/setTools
111
+ this._toolRegistry = new Map();
112
+ this._toolDefinitions = new Map();
113
+ this._toolPromptSnippets = new Map();
114
+ this._toolPromptGuidelines = new Map();
115
+ // Base system prompt (without extension appends) - used to apply fresh appends each turn
116
+ this._baseSystemPrompt = "";
117
+ // Track last assistant message for auto-compaction check
118
+ this._lastAssistantMessage = undefined;
119
+ /** Internal handler for agent events - shared by subscribe and reconnect */
120
+ this._handleAgentEvent = async (event) => {
121
+ // When a user message starts, check if it's from either queue and remove it BEFORE emitting
122
+ // This ensures the UI sees the updated queue state
123
+ if (event.type === "message_start" && event.message.role === "user") {
124
+ this._overflowRecoveryAttempted = false;
125
+ const messageText = contentText(event.message.content, "");
126
+ if (messageText) {
127
+ // Check steering queue first
128
+ const steeringIndex = this._steeringMessages.indexOf(messageText);
129
+ if (steeringIndex !== -1) {
130
+ this._steeringMessages.splice(steeringIndex, 1);
131
+ this._emitQueueUpdate();
132
+ }
133
+ else {
134
+ // Check follow-up queue
135
+ const followUpIndex = this._followUpMessages.indexOf(messageText);
136
+ if (followUpIndex !== -1) {
137
+ this._followUpMessages.splice(followUpIndex, 1);
138
+ this._emitQueueUpdate();
139
+ }
140
+ }
141
+ }
142
+ }
143
+ // Emit to extensions first
144
+ await this._emitExtensionEvent(event);
145
+ // Notify all listeners
146
+ this._emit(event.type === "agent_end" ? { ...event, willRetry: this._willRetryAfterAgentEnd(event) } : event);
147
+ // Handle session persistence
148
+ if (event.type === "message_end") {
149
+ // Check if this is a custom message from extensions
150
+ if (event.message.role === "custom") {
151
+ // Persist as CustomMessageEntry
152
+ this.sessionManager.appendCustomMessageEntry(event.message.customType, event.message.content, event.message.display, event.message.details);
153
+ }
154
+ else if (event.message.role === "user" ||
155
+ event.message.role === "assistant" ||
156
+ event.message.role === "toolResult") {
157
+ // Regular LLM message - persist as SessionMessageEntry
158
+ this.sessionManager.appendMessage(event.message);
159
+ }
160
+ // Other message types (bashExecution, compactionSummary, branchSummary) are persisted elsewhere
161
+ // Track assistant message for auto-compaction (checked on agent_end)
162
+ if (event.message.role === "assistant") {
163
+ this._lastAssistantMessage = event.message;
164
+ const assistantMsg = event.message;
165
+ if (assistantMsg.stopReason !== "error" && assistantMsg.stopReason !== "length") {
166
+ this._overflowRecoveryAttempted = false;
167
+ }
168
+ // Reset retry counter immediately on successful assistant response
169
+ // This prevents accumulation across multiple LLM calls within a turn
170
+ if (assistantMsg.stopReason !== "error" && this._retryAttempt > 0) {
171
+ this._emit({
172
+ type: "auto_retry_end",
173
+ success: true,
174
+ attempt: this._retryAttempt,
175
+ });
176
+ this._retryAttempt = 0;
177
+ }
178
+ }
179
+ }
180
+ };
144
181
  this.agent = config.agent;
145
182
  this.sessionManager = config.sessionManager;
146
183
  this.settingsManager = config.settingsManager;
@@ -181,7 +218,9 @@ export class AgentSession {
181
218
  throw error;
182
219
  }
183
220
  if (result && (result.auth.apiKey || result.auth.headers)) {
221
+ const requestModel = result.auth.baseUrl ? { ...model, baseUrl: result.auth.baseUrl } : model;
184
222
  return {
223
+ model: requestModel,
185
224
  apiKey: result.auth.apiKey,
186
225
  headers: withoutDeletedHeaders(result.auth.headers),
187
226
  env: result.env,
@@ -201,12 +240,18 @@ export class AgentSession {
201
240
  }
202
241
  try {
203
242
  const result = await this._modelRuntime.getAuth(model);
204
- return result
205
- ? { apiKey: result.auth.apiKey, headers: withoutDeletedHeaders(result.auth.headers), env: result.env }
206
- : {};
243
+ if (!result)
244
+ return { model };
245
+ const requestModel = result.auth.baseUrl ? { ...model, baseUrl: result.auth.baseUrl } : model;
246
+ return {
247
+ model: requestModel,
248
+ apiKey: result.auth.apiKey,
249
+ headers: withoutDeletedHeaders(result.auth.headers),
250
+ env: result.env,
251
+ };
207
252
  }
208
253
  catch {
209
- return {};
254
+ return { model };
210
255
  }
211
256
  }
212
257
  /**
@@ -240,27 +285,31 @@ export class AgentSession {
240
285
  };
241
286
  this.agent.afterToolCall = async ({ toolCall, args, result, isError }) => {
242
287
  const runner = this._extensionRunner;
243
- if (!runner.hasHandlers("tool_result")) {
244
- return undefined;
245
- }
246
- const hookResult = await runner.emitToolResult({
247
- type: "tool_result",
248
- toolName: toolCall.name,
249
- toolCallId: toolCall.id,
250
- input: args,
251
- content: result.content,
252
- details: result.details,
253
- isError,
254
- usage: result.usage,
288
+ const hookResult = runner.hasHandlers("tool_result")
289
+ ? await runner.emitToolResult({
290
+ type: "tool_result",
291
+ toolName: toolCall.name,
292
+ toolCallId: toolCall.id,
293
+ input: args,
294
+ content: result.content,
295
+ details: result.details,
296
+ isError,
297
+ usage: result.usage,
298
+ })
299
+ : undefined;
300
+ const content = hookResult?.content ?? result.content ?? [];
301
+ // Runs after the extension hook so images injected or replaced by extensions are normalized too.
302
+ const normalizedContent = await normalizeToolResultImages(content, {
303
+ autoResizeImages: this.settingsManager.getImageAutoResize(),
255
304
  });
256
- if (!hookResult) {
305
+ if (!hookResult && normalizedContent === content) {
257
306
  return undefined;
258
307
  }
259
308
  return {
260
- content: hookResult.content,
261
- details: hookResult.details,
262
- isError: hookResult.isError ?? isError,
263
- usage: hookResult.usage,
309
+ content: normalizedContent,
310
+ details: hookResult?.details,
311
+ isError: hookResult?.isError ?? isError,
312
+ usage: hookResult?.usage,
264
313
  };
265
314
  };
266
315
  }
@@ -344,70 +393,6 @@ export class AgentSession {
344
393
  this._resolveIdleWaitIfIdle();
345
394
  }
346
395
  }
347
- // Track last assistant message for auto-compaction check
348
- _lastAssistantMessage = undefined;
349
- /** Internal handler for agent events - shared by subscribe and reconnect */
350
- _handleAgentEvent = async (event) => {
351
- // When a user message starts, check if it's from either queue and remove it BEFORE emitting
352
- // This ensures the UI sees the updated queue state
353
- if (event.type === "message_start" && event.message.role === "user") {
354
- this._overflowRecoveryAttempted = false;
355
- const messageText = contentText(event.message.content, "");
356
- if (messageText) {
357
- // Check steering queue first
358
- const steeringIndex = this._steeringMessages.indexOf(messageText);
359
- if (steeringIndex !== -1) {
360
- this._steeringMessages.splice(steeringIndex, 1);
361
- this._emitQueueUpdate();
362
- }
363
- else {
364
- // Check follow-up queue
365
- const followUpIndex = this._followUpMessages.indexOf(messageText);
366
- if (followUpIndex !== -1) {
367
- this._followUpMessages.splice(followUpIndex, 1);
368
- this._emitQueueUpdate();
369
- }
370
- }
371
- }
372
- }
373
- // Emit to extensions first
374
- await this._emitExtensionEvent(event);
375
- // Notify all listeners
376
- this._emit(event.type === "agent_end" ? { ...event, willRetry: this._willRetryAfterAgentEnd(event) } : event);
377
- // Handle session persistence
378
- if (event.type === "message_end") {
379
- // Check if this is a custom message from extensions
380
- if (event.message.role === "custom") {
381
- // Persist as CustomMessageEntry
382
- this.sessionManager.appendCustomMessageEntry(event.message.customType, event.message.content, event.message.display, event.message.details);
383
- }
384
- else if (event.message.role === "user" ||
385
- event.message.role === "assistant" ||
386
- event.message.role === "toolResult") {
387
- // Regular LLM message - persist as SessionMessageEntry
388
- this.sessionManager.appendMessage(event.message);
389
- }
390
- // Other message types (bashExecution, compactionSummary, branchSummary) are persisted elsewhere
391
- // Track assistant message for auto-compaction (checked on agent_end)
392
- if (event.message.role === "assistant") {
393
- this._lastAssistantMessage = event.message;
394
- const assistantMsg = event.message;
395
- if (assistantMsg.stopReason !== "error") {
396
- this._overflowRecoveryAttempted = false;
397
- }
398
- // Reset retry counter immediately on successful assistant response
399
- // This prevents accumulation across multiple LLM calls within a turn
400
- if (assistantMsg.stopReason !== "error" && this._retryAttempt > 0) {
401
- this._emit({
402
- type: "auto_retry_end",
403
- success: true,
404
- attempt: this._retryAttempt,
405
- });
406
- this._retryAttempt = 0;
407
- }
408
- }
409
- }
410
- };
411
396
  _willRetryAfterAgentEnd(event) {
412
397
  const settings = this.settingsManager.getRetrySettings();
413
398
  if (!settings.enabled || this._retryAttempt >= settings.maxRetries) {
@@ -552,26 +537,13 @@ export class AgentSession {
552
537
  }
553
538
  };
554
539
  }
555
- /**
556
- * Temporarily disconnect from agent events.
557
- * User listeners are preserved and will receive events again after resubscribe().
558
- * Used internally during operations that need to pause event processing.
559
- */
540
+ /** Disconnect from agent events during disposal. */
560
541
  _disconnectFromAgent() {
561
542
  if (this._unsubscribeAgent) {
562
543
  this._unsubscribeAgent();
563
544
  this._unsubscribeAgent = undefined;
564
545
  }
565
546
  }
566
- /**
567
- * Reconnect to agent events after _disconnectFromAgent().
568
- * Preserves all existing listeners.
569
- */
570
- _reconnectToAgent() {
571
- if (this._unsubscribeAgent)
572
- return; // Already connected
573
- this._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);
574
- }
575
547
  /**
576
548
  * Remove all listeners and disconnect from agent.
577
549
  * Call this when completely done with the session.
@@ -839,6 +811,9 @@ export class AgentSession {
839
811
  return;
840
812
  }
841
813
  }
814
+ if (this._compactionAbortController !== undefined) {
815
+ throw new Error("Cannot submit a prompt while compaction is in progress. Wait for compaction to finish and retry.");
816
+ }
842
817
  // Emit input event for extension interception (before skill/template expansion)
843
818
  let currentText = text;
844
819
  let currentImages = options?.images;
@@ -1260,11 +1235,8 @@ export class AgentSession {
1260
1235
  return this._cycleAvailableModel(direction);
1261
1236
  }
1262
1237
  async _cycleScopedModel(direction) {
1263
- const checks = await Promise.all(this._scopedModels.map(async (scoped) => ({
1264
- scoped,
1265
- auth: await this._modelRuntime.checkAuth(scoped.model.provider),
1266
- })));
1267
- const scopedModels = checks.filter(({ auth }) => auth !== undefined).map(({ scoped }) => scoped);
1238
+ const availableIds = new Set(this._modelRuntime.getAvailableSnapshot().map((model) => `${model.provider}\0${model.id}`));
1239
+ const scopedModels = this._scopedModels.filter((scoped) => availableIds.has(`${scoped.model.provider}\0${scoped.model.id}`));
1268
1240
  if (scopedModels.length <= 1)
1269
1241
  return undefined;
1270
1242
  const currentModel = this.model;
@@ -1288,7 +1260,7 @@ export class AgentSession {
1288
1260
  return { model: next.model, thinkingLevel: this.thinkingLevel, isScoped: true };
1289
1261
  }
1290
1262
  async _cycleAvailableModel(direction) {
1291
- const availableModels = await this._modelRuntime.getAvailable();
1263
+ const availableModels = this._modelRuntime.getAvailableSnapshot();
1292
1264
  if (availableModels.length <= 1)
1293
1265
  return undefined;
1294
1266
  const currentModel = this.model;
@@ -1408,7 +1380,6 @@ export class AgentSession {
1408
1380
  * @param customInstructions Optional instructions for the compaction summary
1409
1381
  */
1410
1382
  async compact(customInstructions) {
1411
- this._disconnectFromAgent();
1412
1383
  await this.abort();
1413
1384
  this._compactionAbortController = new AbortController();
1414
1385
  this._emit({ type: "compaction_start", reason: "manual" });
@@ -1416,7 +1387,7 @@ export class AgentSession {
1416
1387
  if (!this.model) {
1417
1388
  throw new Error(formatNoModelSelectedMessage());
1418
1389
  }
1419
- const { apiKey, headers, env } = await this._getSummarizationRequestAuth(this.model);
1390
+ const { model: requestModel, apiKey, headers, env } = await this._getSummarizationRequestAuth(this.model);
1420
1391
  const pathEntries = this.sessionManager.getBranch();
1421
1392
  const settings = this.settingsManager.getCompactionSettings();
1422
1393
  const preparation = prepareCompaction(pathEntries, settings);
@@ -1464,7 +1435,7 @@ export class AgentSession {
1464
1435
  }
1465
1436
  else {
1466
1437
  // Generate compaction result
1467
- const result = await compact(preparation, this.model, apiKey, headers, customInstructions, this._compactionAbortController.signal, this.thinkingLevel, this.agent.streamFunction, env, this.settingsManager.getRetrySettings(), this._summarizationRetryCallbacks({ source: "compaction", reason: "manual" }));
1438
+ const result = await compact(preparation, requestModel, apiKey, headers, customInstructions, this._compactionAbortController.signal, this.thinkingLevel, this.agent.streamFunction, env, this.settingsManager.getRetrySettings(), this._summarizationRetryCallbacks({ source: "compaction", reason: "manual" }));
1468
1439
  summary = result.summary;
1469
1440
  firstKeptEntryId = result.firstKeptEntryId;
1470
1441
  tokensBefore = result.tokensBefore;
@@ -1498,6 +1469,8 @@ export class AgentSession {
1498
1469
  usage,
1499
1470
  details,
1500
1471
  };
1472
+ // compaction_end listeners may submit queued prompts, so expose idle state before notifying them.
1473
+ this._compactionAbortController = undefined;
1501
1474
  this._emit({
1502
1475
  type: "compaction_end",
1503
1476
  reason: "manual",
@@ -1510,6 +1483,7 @@ export class AgentSession {
1510
1483
  catch (error) {
1511
1484
  const message = error instanceof Error ? error.message : String(error);
1512
1485
  const aborted = message === "Compaction cancelled" || (error instanceof Error && error.name === "AbortError");
1486
+ this._compactionAbortController = undefined;
1513
1487
  this._emit({
1514
1488
  type: "compaction_end",
1515
1489
  reason: "manual",
@@ -1522,7 +1496,6 @@ export class AgentSession {
1522
1496
  }
1523
1497
  finally {
1524
1498
  this._compactionAbortController = undefined;
1525
- this._reconnectToAgent();
1526
1499
  }
1527
1500
  }
1528
1501
  /**
@@ -1597,7 +1570,8 @@ export class AgentSession {
1597
1570
  * Called after agent_end and before prompt submission.
1598
1571
  *
1599
1572
  * Two cases:
1600
- * 1. Overflow: LLM returned context overflow error, remove error message from agent state, compact, auto-retry
1573
+ * 1. Recoverable failure: LLM returned context overflow or stopped below its desired output limit;
1574
+ * remove the assistant message, compact, and auto-retry once
1601
1575
  * 2. Threshold: Context over threshold, compact, NO auto-retry (user continues manually)
1602
1576
  *
1603
1577
  * @param assistantMessage The assistant message to check
@@ -1624,11 +1598,13 @@ export class AgentSession {
1624
1598
  if (assistantIsFromBeforeCompaction) {
1625
1599
  return false;
1626
1600
  }
1627
- // Case 1: Overflow - LLM returned context overflow error, or reported usage exceeded
1628
- // the configured window. A successful response over the configured window should compact
1629
- // but must not retry: the assistant answer already completed and agent.continue() cannot
1630
- // continue from an assistant message.
1631
- if (sameModel && isContextOverflow(assistantMessage, contextWindow)) {
1601
+ // Case 1: Recoverable failure. Explicit/silent context overflow still uses context metadata.
1602
+ // A length stop is recoverable when output ended below the model's original desired limit,
1603
+ // independent of the configured context size or any context-clamped provider request limit.
1604
+ // A successful response over the configured window should compact but must not retry: the
1605
+ // assistant answer already completed and agent.continue() cannot continue from an assistant.
1606
+ const recoverableLength = sameModel && isRecoverableLength(assistantMessage, this.model?.maxTokens ?? 0);
1607
+ if (sameModel && (isContextOverflow(assistantMessage, contextWindow) || recoverableLength)) {
1632
1608
  const willRetry = assistantMessage.stopReason !== "stop";
1633
1609
  if (!willRetry) {
1634
1610
  return await this._runAutoCompaction("overflow", false, timing);
@@ -1646,8 +1622,8 @@ export class AgentSession {
1646
1622
  return false;
1647
1623
  }
1648
1624
  this._overflowRecoveryAttempted = true;
1649
- // Remove the error message from agent state (it IS saved to session for history,
1650
- // but we don't want it in context for the retry)
1625
+ // Remove the failed or truncated message from agent state. It remains in session history,
1626
+ // but must not be included in the compact-and-retry context.
1651
1627
  const messages = this.agent.state.messages;
1652
1628
  if (messages.length > 0 && messages[messages.length - 1].role === "assistant") {
1653
1629
  this.agent.state.messages = messages.slice(0, -1);
@@ -1781,14 +1757,20 @@ export class AgentSession {
1781
1757
  details = extensionCompaction.details;
1782
1758
  }
1783
1759
  else {
1760
+ let requestModel = model;
1784
1761
  let apiKey;
1785
1762
  let headers;
1786
1763
  let env;
1787
1764
  if (streamFunction === streamSimple) {
1788
- ({ apiKey, headers, env } = await this._getRequiredRequestAuth(model));
1765
+ ({ model: requestModel, apiKey, headers, env } = await this._getRequiredRequestAuth(model));
1789
1766
  }
1790
1767
  else {
1791
- ({ apiKey, headers, env } = await this._getSummarizationRequestAuth(model, streamFunction));
1768
+ ({
1769
+ model: requestModel,
1770
+ apiKey,
1771
+ headers,
1772
+ env,
1773
+ } = await this._getSummarizationRequestAuth(model, streamFunction));
1792
1774
  }
1793
1775
  if (controller.signal.aborted) {
1794
1776
  this._emit({
@@ -1801,7 +1783,7 @@ export class AgentSession {
1801
1783
  return { compacted: false, shouldContinue: false };
1802
1784
  }
1803
1785
  // Generate compaction result
1804
- const compactResult = await compact(preparation, model, apiKey, headers, undefined, controller.signal, thinkingLevel, streamFunction, env, retrySettings, this._summarizationRetryCallbacks({ source: "compaction", reason }));
1786
+ const compactResult = await compact(preparation, requestModel, apiKey, headers, undefined, controller.signal, thinkingLevel, streamFunction, env, retrySettings, this._summarizationRetryCallbacks({ source: "compaction", reason }));
1805
1787
  summary = compactResult.summary;
1806
1788
  firstKeptEntryId = compactResult.firstKeptEntryId;
1807
1789
  tokensBefore = compactResult.tokensBefore;
@@ -1825,7 +1807,13 @@ export class AgentSession {
1825
1807
  if (willRetry) {
1826
1808
  const messages = this.agent.state.messages;
1827
1809
  const lastMsg = messages[messages.length - 1];
1828
- if (lastMsg?.role === "assistant" && lastMsg.stopReason === "error") {
1810
+ // The overflow response was persisted on message_end before _checkCompaction() removed it
1811
+ // from agent state. Rebuilding state from the new compaction can restore that kept entry,
1812
+ // leaving an assistant as the final message. agent.continue() rejects that state, so remove
1813
+ // the retriable error or truncated-length response again before continuing the interrupted turn.
1814
+ if (lastMsg?.role === "assistant" &&
1815
+ (lastMsg.stopReason === "error" ||
1816
+ lastMsg.stopReason === "length")) {
1829
1817
  this.agent.state.messages = messages.slice(0, -1);
1830
1818
  }
1831
1819
  }
@@ -2219,8 +2207,10 @@ export class AgentSession {
2219
2207
  });
2220
2208
  }
2221
2209
  async reload(options) {
2222
- const previousFlagValues = this._extensionRunner.getFlagValues();
2223
- await emitSessionShutdownEvent(this._extensionRunner, { type: "session_shutdown", reason: "reload" });
2210
+ const oldRunner = this._extensionRunner;
2211
+ const previousFlagValues = oldRunner.getFlagValues();
2212
+ await emitSessionShutdownEvent(oldRunner, { type: "session_shutdown", reason: "reload" });
2213
+ oldRunner.invalidate();
2224
2214
  await this.settingsManager.reload();
2225
2215
  this.syncQueueModesFromSettings();
2226
2216
  resetApiProviders();
@@ -2539,10 +2529,10 @@ export class AgentSession {
2539
2529
  let summaryUsage;
2540
2530
  if (options.summarize && entriesToSummarize.length > 0 && !extensionSummary) {
2541
2531
  const model = this.model;
2542
- const { apiKey, headers, env } = await this._getSummarizationRequestAuth(model);
2532
+ const { model: requestModel, apiKey, headers, env } = await this._getSummarizationRequestAuth(model);
2543
2533
  const branchSummarySettings = this.settingsManager.getBranchSummarySettings();
2544
2534
  const result = await generateBranchSummary(entriesToSummarize, {
2545
- model,
2535
+ model: requestModel,
2546
2536
  apiKey,
2547
2537
  headers,
2548
2538
  env,