@ashx-j/lunr 0.1.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 (2269) hide show
  1. package/CHANGELOG.md +5042 -0
  2. package/README.md +691 -0
  3. package/dist/builtin-extensions/ashxj-spinners.d.ts +3 -0
  4. package/dist/builtin-extensions/ashxj-spinners.d.ts.map +1 -0
  5. package/dist/builtin-extensions/ashxj-spinners.js +271 -0
  6. package/dist/builtin-extensions/ashxj-spinners.js.map +1 -0
  7. package/dist/builtin-extensions/ashxj-thinking.d.ts +65 -0
  8. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -0
  9. package/dist/builtin-extensions/ashxj-thinking.js +308 -0
  10. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -0
  11. package/dist/builtin-extensions/ashxj-tui.d.ts +137 -0
  12. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -0
  13. package/dist/builtin-extensions/ashxj-tui.js +579 -0
  14. package/dist/builtin-extensions/ashxj-tui.js.map +1 -0
  15. package/dist/builtin-extensions/index.d.ts +11 -0
  16. package/dist/builtin-extensions/index.d.ts.map +1 -0
  17. package/dist/builtin-extensions/index.js +62 -0
  18. package/dist/builtin-extensions/index.js.map +1 -0
  19. package/dist/builtin-extensions/lunr-behavior.d.ts +43 -0
  20. package/dist/builtin-extensions/lunr-behavior.d.ts.map +1 -0
  21. package/dist/builtin-extensions/lunr-behavior.js +201 -0
  22. package/dist/builtin-extensions/lunr-behavior.js.map +1 -0
  23. package/dist/builtin-extensions/lunr-cron.d.ts +26 -0
  24. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -0
  25. package/dist/builtin-extensions/lunr-cron.js +346 -0
  26. package/dist/builtin-extensions/lunr-cron.js.map +1 -0
  27. package/dist/builtin-extensions/lunr-local-providers/index.d.ts +20 -0
  28. package/dist/builtin-extensions/lunr-local-providers/index.d.ts.map +1 -0
  29. package/dist/builtin-extensions/lunr-local-providers/index.js +108 -0
  30. package/dist/builtin-extensions/lunr-local-providers/index.js.map +1 -0
  31. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts +51 -0
  32. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -0
  33. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +128 -0
  34. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -0
  35. package/dist/builtin-extensions/lunr-plan-tools.d.ts +25 -0
  36. package/dist/builtin-extensions/lunr-plan-tools.d.ts.map +1 -0
  37. package/dist/builtin-extensions/lunr-plan-tools.js +59 -0
  38. package/dist/builtin-extensions/lunr-plan-tools.js.map +1 -0
  39. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts +12 -0
  40. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts.map +1 -0
  41. package/dist/builtin-extensions/lunr-skill-creator/index.js +18 -0
  42. package/dist/builtin-extensions/lunr-skill-creator/index.js.map +1 -0
  43. package/dist/builtin-extensions/lunr-skill-creator/skills/skill-creator/SKILL.md +68 -0
  44. package/dist/builtin-extensions/lunr-todos.d.ts +52 -0
  45. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -0
  46. package/dist/builtin-extensions/lunr-todos.js +189 -0
  47. package/dist/builtin-extensions/lunr-todos.js.map +1 -0
  48. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts +23 -0
  49. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -0
  50. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +77 -0
  51. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -0
  52. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts +18 -0
  53. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts.map +1 -0
  54. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js +165 -0
  55. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js.map +1 -0
  56. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts +19 -0
  57. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -0
  58. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +495 -0
  59. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -0
  60. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts +10 -0
  61. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -0
  62. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +857 -0
  63. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -0
  64. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts +57 -0
  65. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts.map +1 -0
  66. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js +225 -0
  67. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js.map +1 -0
  68. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts +20 -0
  69. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts.map +1 -0
  70. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js +75 -0
  71. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js.map +1 -0
  72. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts +16 -0
  73. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts.map +1 -0
  74. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js +67 -0
  75. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js.map +1 -0
  76. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts +157 -0
  77. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -0
  78. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +825 -0
  79. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -0
  80. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts +22 -0
  81. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts.map +1 -0
  82. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js +64 -0
  83. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js.map +1 -0
  84. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts +2 -0
  85. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts.map +1 -0
  86. package/dist/builtin-extensions/pi-intercom/broker/broker.js +541 -0
  87. package/dist/builtin-extensions/pi-intercom/broker/broker.js.map +1 -0
  88. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts +39 -0
  89. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts.map +1 -0
  90. package/dist/builtin-extensions/pi-intercom/broker/client.js +484 -0
  91. package/dist/builtin-extensions/pi-intercom/broker/client.js.map +1 -0
  92. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts +14 -0
  93. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts.map +1 -0
  94. package/dist/builtin-extensions/pi-intercom/broker/framing.js +74 -0
  95. package/dist/builtin-extensions/pi-intercom/broker/framing.js.map +1 -0
  96. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts +22 -0
  97. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts.map +1 -0
  98. package/dist/builtin-extensions/pi-intercom/broker/paths.js +88 -0
  99. package/dist/builtin-extensions/pi-intercom/broker/paths.js.map +1 -0
  100. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +27 -0
  101. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -0
  102. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +313 -0
  103. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -0
  104. package/dist/builtin-extensions/pi-intercom/config.d.ts +22 -0
  105. package/dist/builtin-extensions/pi-intercom/config.d.ts.map +1 -0
  106. package/dist/builtin-extensions/pi-intercom/config.js +103 -0
  107. package/dist/builtin-extensions/pi-intercom/config.js.map +1 -0
  108. package/dist/builtin-extensions/pi-intercom/index.d.ts +3 -0
  109. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -0
  110. package/dist/builtin-extensions/pi-intercom/index.js +1800 -0
  111. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -0
  112. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts +27 -0
  113. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts.map +1 -0
  114. package/dist/builtin-extensions/pi-intercom/reply-tracker.js +101 -0
  115. package/dist/builtin-extensions/pi-intercom/reply-tracker.js.map +1 -0
  116. package/dist/builtin-extensions/pi-intercom/types.d.ts +84 -0
  117. package/dist/builtin-extensions/pi-intercom/types.d.ts.map +1 -0
  118. package/dist/builtin-extensions/pi-intercom/types.js +2 -0
  119. package/dist/builtin-extensions/pi-intercom/types.js.map +1 -0
  120. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts +27 -0
  121. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts.map +1 -0
  122. package/dist/builtin-extensions/pi-intercom/ui/compose.js +112 -0
  123. package/dist/builtin-extensions/pi-intercom/ui/compose.js.map +1 -0
  124. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts +15 -0
  125. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts.map +1 -0
  126. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js +86 -0
  127. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js.map +1 -0
  128. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts +18 -0
  129. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts.map +1 -0
  130. package/dist/builtin-extensions/pi-intercom/ui/session-list.js +134 -0
  131. package/dist/builtin-extensions/pi-intercom/ui/session-list.js.map +1 -0
  132. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts +81 -0
  133. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts.map +1 -0
  134. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js +273 -0
  135. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js.map +1 -0
  136. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +13 -0
  137. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -0
  138. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +163 -0
  139. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -0
  140. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts +34 -0
  141. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts.map +1 -0
  142. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js +148 -0
  143. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js.map +1 -0
  144. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts +59 -0
  145. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts.map +1 -0
  146. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js +172 -0
  147. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js.map +1 -0
  148. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +25 -0
  149. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -0
  150. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +521 -0
  151. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -0
  152. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +80 -0
  153. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -0
  154. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +366 -0
  155. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -0
  156. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts +22 -0
  157. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts.map +1 -0
  158. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js +476 -0
  159. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js.map +1 -0
  160. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +141 -0
  161. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -0
  162. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +633 -0
  163. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -0
  164. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts +30 -0
  165. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts.map +1 -0
  166. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js +52 -0
  167. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js.map +1 -0
  168. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts +12 -0
  169. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts.map +1 -0
  170. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js +18 -0
  171. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js.map +1 -0
  172. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts +10 -0
  173. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts.map +1 -0
  174. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js +18 -0
  175. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js.map +1 -0
  176. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts +9 -0
  177. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts.map +1 -0
  178. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js +29 -0
  179. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js.map +1 -0
  180. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts +10 -0
  181. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts.map +1 -0
  182. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js +51 -0
  183. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js.map +1 -0
  184. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts +33 -0
  185. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts.map +1 -0
  186. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js +191 -0
  187. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js.map +1 -0
  188. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts +14 -0
  189. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts.map +1 -0
  190. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js +15 -0
  191. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js.map +1 -0
  192. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts +23 -0
  193. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts.map +1 -0
  194. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js +259 -0
  195. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js.map +1 -0
  196. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts +23 -0
  197. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts.map +1 -0
  198. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js +197 -0
  199. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js.map +1 -0
  200. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +23 -0
  201. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -0
  202. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +131 -0
  203. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -0
  204. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts +18 -0
  205. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts.map +1 -0
  206. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js +87 -0
  207. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js.map +1 -0
  208. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts +34 -0
  209. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts.map +1 -0
  210. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js +347 -0
  211. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js.map +1 -0
  212. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts +20 -0
  213. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts.map +1 -0
  214. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js +166 -0
  215. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js.map +1 -0
  216. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts +22 -0
  217. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts.map +1 -0
  218. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js +228 -0
  219. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js.map +1 -0
  220. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts +19 -0
  221. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts.map +1 -0
  222. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js +143 -0
  223. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js.map +1 -0
  224. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts +20 -0
  225. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts.map +1 -0
  226. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js +98 -0
  227. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js.map +1 -0
  228. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts +22 -0
  229. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts.map +1 -0
  230. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js +150 -0
  231. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js.map +1 -0
  232. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts +18 -0
  233. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts.map +1 -0
  234. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js +211 -0
  235. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js.map +1 -0
  236. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts +44 -0
  237. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts.map +1 -0
  238. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js +188 -0
  239. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js.map +1 -0
  240. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts +58 -0
  241. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts.map +1 -0
  242. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js +260 -0
  243. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js.map +1 -0
  244. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +33 -0
  245. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -0
  246. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +102 -0
  247. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -0
  248. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +38 -0
  249. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -0
  250. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +276 -0
  251. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -0
  252. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts +77 -0
  253. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts.map +1 -0
  254. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js +339 -0
  255. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js.map +1 -0
  256. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts +51 -0
  257. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts.map +1 -0
  258. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js +219 -0
  259. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js.map +1 -0
  260. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts +45 -0
  261. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts.map +1 -0
  262. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js +30 -0
  263. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js.map +1 -0
  264. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts +3 -0
  265. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts.map +1 -0
  266. package/dist/builtin-extensions/pi-mcp-adapter/abort.js +37 -0
  267. package/dist/builtin-extensions/pi-mcp-adapter/abort.js.map +1 -0
  268. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts +3 -0
  269. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts.map +1 -0
  270. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js +22 -0
  271. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js.map +1 -0
  272. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +18 -0
  273. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -0
  274. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +327 -0
  275. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -0
  276. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +79 -0
  277. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -0
  278. package/dist/builtin-extensions/pi-mcp-adapter/config.js +557 -0
  279. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -0
  280. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts +14 -0
  281. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts.map +1 -0
  282. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js +61 -0
  283. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js.map +1 -0
  284. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +11 -0
  285. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -0
  286. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +374 -0
  287. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -0
  288. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts +18 -0
  289. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts.map +1 -0
  290. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js +309 -0
  291. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js.map +1 -0
  292. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts +16 -0
  293. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts.map +1 -0
  294. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js +23 -0
  295. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js.map +1 -0
  296. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts +100 -0
  297. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts.map +1 -0
  298. package/dist/builtin-extensions/pi-mcp-adapter/errors.js +167 -0
  299. package/dist/builtin-extensions/pi-mcp-adapter/errors.js.map +1 -0
  300. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts +10 -0
  301. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts.map +1 -0
  302. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js +77 -0
  303. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js.map +1 -0
  304. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts +17 -0
  305. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -0
  306. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +413 -0
  307. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -0
  308. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts +3 -0
  309. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -0
  310. package/dist/builtin-extensions/pi-mcp-adapter/index.js +334 -0
  311. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -0
  312. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +11 -0
  313. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -0
  314. package/dist/builtin-extensions/pi-mcp-adapter/init.js +296 -0
  315. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -0
  316. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts +30 -0
  317. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts.map +1 -0
  318. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js +80 -0
  319. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js.map +1 -0
  320. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts +52 -0
  321. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts.map +1 -0
  322. package/dist/builtin-extensions/pi-mcp-adapter/logger.js +132 -0
  323. package/dist/builtin-extensions/pi-mcp-adapter/logger.js.map +1 -0
  324. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +86 -0
  325. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -0
  326. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +482 -0
  327. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -0
  328. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts +104 -0
  329. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts.map +1 -0
  330. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js +252 -0
  331. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js.map +1 -0
  332. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +45 -0
  333. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -0
  334. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +305 -0
  335. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -0
  336. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +111 -0
  337. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -0
  338. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +302 -0
  339. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -0
  340. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts +59 -0
  341. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts.map +1 -0
  342. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js +325 -0
  343. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js.map +1 -0
  344. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts +64 -0
  345. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts.map +1 -0
  346. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js +777 -0
  347. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js.map +1 -0
  348. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts +77 -0
  349. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts.map +1 -0
  350. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js +490 -0
  351. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js.map +1 -0
  352. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts +32 -0
  353. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -0
  354. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +160 -0
  355. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -0
  356. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts +7 -0
  357. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts.map +1 -0
  358. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js +388 -0
  359. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js.map +1 -0
  360. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts +19 -0
  361. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts.map +1 -0
  362. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js +53 -0
  363. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js.map +1 -0
  364. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts +13 -0
  365. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts.map +1 -0
  366. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js +58 -0
  367. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js.map +1 -0
  368. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts +17 -0
  369. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts.map +1 -0
  370. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js +17 -0
  371. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js.map +1 -0
  372. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts +14 -0
  373. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -0
  374. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +853 -0
  375. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -0
  376. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts +2 -0
  377. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts.map +1 -0
  378. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js +16 -0
  379. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js.map +1 -0
  380. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts +16 -0
  381. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts.map +1 -0
  382. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js +209 -0
  383. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js.map +1 -0
  384. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +58 -0
  385. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -0
  386. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +403 -0
  387. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -0
  388. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +41 -0
  389. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -0
  390. package/dist/builtin-extensions/pi-mcp-adapter/state.js +2 -0
  391. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -0
  392. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts +11 -0
  393. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts.map +1 -0
  394. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js +178 -0
  395. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js.map +1 -0
  396. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts +11 -0
  397. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts.map +1 -0
  398. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js +66 -0
  399. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js.map +1 -0
  400. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts +35 -0
  401. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts.map +1 -0
  402. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js +107 -0
  403. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js.map +1 -0
  404. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts +286 -0
  405. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts.map +1 -0
  406. package/dist/builtin-extensions/pi-mcp-adapter/types.js +94 -0
  407. package/dist/builtin-extensions/pi-mcp-adapter/types.js.map +1 -0
  408. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts +10 -0
  409. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts.map +1 -0
  410. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js +118 -0
  411. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js.map +1 -0
  412. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts +37 -0
  413. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts.map +1 -0
  414. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js +524 -0
  415. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js.map +1 -0
  416. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts +27 -0
  417. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts.map +1 -0
  418. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js +311 -0
  419. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js.map +1 -0
  420. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts +105 -0
  421. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts.map +1 -0
  422. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js +60 -0
  423. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js.map +1 -0
  424. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts +18 -0
  425. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts.map +1 -0
  426. package/dist/builtin-extensions/pi-mcp-adapter/utils.js +112 -0
  427. package/dist/builtin-extensions/pi-mcp-adapter/utils.js.map +1 -0
  428. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts +3 -0
  429. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts.map +1 -0
  430. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js +15 -0
  431. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js.map +1 -0
  432. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +31 -0
  433. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -0
  434. package/dist/builtin-extensions/pi-ollama-cloud/index.js +120 -0
  435. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -0
  436. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +49 -0
  437. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -0
  438. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts +3 -0
  439. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts.map +1 -0
  440. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js +1135 -0
  441. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js.map +1 -0
  442. package/dist/builtin-extensions/pi-ollama-cloud/models.js +239 -0
  443. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -0
  444. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts +40 -0
  445. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts.map +1 -0
  446. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js +80 -0
  447. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js.map +1 -0
  448. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts +9 -0
  449. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts.map +1 -0
  450. package/dist/builtin-extensions/pi-ollama-cloud/utils.js +52 -0
  451. package/dist/builtin-extensions/pi-ollama-cloud/utils.js.map +1 -0
  452. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts +56 -0
  453. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts.map +1 -0
  454. package/dist/builtin-extensions/pi-prompt-template-model/args.js +555 -0
  455. package/dist/builtin-extensions/pi-prompt-template-model/args.js.map +1 -0
  456. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts +22 -0
  457. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts.map +1 -0
  458. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js +249 -0
  459. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js.map +1 -0
  460. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts +20 -0
  461. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts.map +1 -0
  462. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js +102 -0
  463. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js.map +1 -0
  464. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts +30 -0
  465. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts.map +1 -0
  466. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js +260 -0
  467. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js.map +1 -0
  468. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts +3 -0
  469. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -0
  470. package/dist/builtin-extensions/pi-prompt-template-model/index.js +1403 -0
  471. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -0
  472. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts +8 -0
  473. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts.map +1 -0
  474. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js +164 -0
  475. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js.map +1 -0
  476. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts +22 -0
  477. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts.map +1 -0
  478. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js +82 -0
  479. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js.map +1 -0
  480. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts +6 -0
  481. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts.map +1 -0
  482. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js +21 -0
  483. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js.map +1 -0
  484. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts +24 -0
  485. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts.map +1 -0
  486. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js +56 -0
  487. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js.map +1 -0
  488. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +80 -0
  489. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -0
  490. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +1234 -0
  491. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -0
  492. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts +11 -0
  493. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts.map +1 -0
  494. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js +31 -0
  495. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js.map +1 -0
  496. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts +43 -0
  497. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts.map +1 -0
  498. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js +177 -0
  499. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js.map +1 -0
  500. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts +97 -0
  501. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts.map +1 -0
  502. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js +64 -0
  503. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js.map +1 -0
  504. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts +48 -0
  505. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts.map +1 -0
  506. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js +550 -0
  507. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js.map +1 -0
  508. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts +8 -0
  509. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts.map +1 -0
  510. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js +230 -0
  511. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js.map +1 -0
  512. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts +10 -0
  513. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts.map +1 -0
  514. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js +226 -0
  515. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js.map +1 -0
  516. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +17 -0
  517. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -0
  518. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +201 -0
  519. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -0
  520. package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +46 -0
  521. package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +36 -0
  522. package/dist/builtin-extensions/pi-subagents/agents/delegate.md +12 -0
  523. package/dist/builtin-extensions/pi-subagents/agents/oracle.md +73 -0
  524. package/dist/builtin-extensions/pi-subagents/agents/planner.md +55 -0
  525. package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +37 -0
  526. package/dist/builtin-extensions/pi-subagents/agents/researcher.md +52 -0
  527. package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +79 -0
  528. package/dist/builtin-extensions/pi-subagents/agents/scout.md +50 -0
  529. package/dist/builtin-extensions/pi-subagents/agents/worker.md +55 -0
  530. package/dist/builtin-extensions/pi-subagents/index.d.ts +2 -0
  531. package/dist/builtin-extensions/pi-subagents/index.d.ts.map +1 -0
  532. package/dist/builtin-extensions/pi-subagents/index.js +3 -0
  533. package/dist/builtin-extensions/pi-subagents/index.js.map +1 -0
  534. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +20 -0
  535. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +1 -0
  536. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +1273 -0
  537. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +1 -0
  538. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +49 -0
  539. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +1 -0
  540. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +252 -0
  541. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +1 -0
  542. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +3 -0
  543. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +1 -0
  544. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +6 -0
  545. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +1 -0
  546. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +3 -0
  547. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +1 -0
  548. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +23 -0
  549. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +1 -0
  550. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +8 -0
  551. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +1 -0
  552. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +143 -0
  553. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +1 -0
  554. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +176 -0
  555. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +1 -0
  556. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +1326 -0
  557. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +1 -0
  558. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +7 -0
  559. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +1 -0
  560. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +307 -0
  561. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +1 -0
  562. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts +11 -0
  563. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts.map +1 -0
  564. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js +84 -0
  565. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js.map +1 -0
  566. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +8 -0
  567. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +1 -0
  568. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +30 -0
  569. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +1 -0
  570. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +35 -0
  571. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +1 -0
  572. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +151 -0
  573. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +1 -0
  574. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts +33 -0
  575. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts.map +1 -0
  576. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js +674 -0
  577. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js.map +1 -0
  578. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts +35 -0
  579. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts.map +1 -0
  580. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js +162 -0
  581. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js.map +1 -0
  582. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts +113 -0
  583. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts.map +1 -0
  584. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js +10 -0
  585. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js.map +1 -0
  586. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts +34 -0
  587. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -0
  588. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +125 -0
  589. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -0
  590. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts +6 -0
  591. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts.map +1 -0
  592. package/dist/builtin-extensions/pi-subagents/src/extension/config.js +37 -0
  593. package/dist/builtin-extensions/pi-subagents/src/extension/config.js.map +1 -0
  594. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts +21 -0
  595. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts.map +1 -0
  596. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js +70 -0
  597. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js.map +1 -0
  598. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +33 -0
  599. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -0
  600. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +174 -0
  601. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -0
  602. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts +3 -0
  603. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -0
  604. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +175 -0
  605. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -0
  606. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +17 -0
  607. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -0
  608. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +577 -0
  609. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -0
  610. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts +57 -0
  611. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts.map +1 -0
  612. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js +291 -0
  613. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js.map +1 -0
  614. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +225 -0
  615. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -0
  616. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +301 -0
  617. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -0
  618. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts +15 -0
  619. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts.map +1 -0
  620. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js +23 -0
  621. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js.map +1 -0
  622. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +12 -0
  623. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -0
  624. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +225 -0
  625. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -0
  626. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +35 -0
  627. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -0
  628. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +144 -0
  629. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -0
  630. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +36 -0
  631. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -0
  632. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +626 -0
  633. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -0
  634. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +31 -0
  635. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -0
  636. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +331 -0
  637. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -0
  638. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +131 -0
  639. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +1 -0
  640. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +491 -0
  641. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +1 -0
  642. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +169 -0
  643. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -0
  644. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +1065 -0
  645. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -0
  646. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts +20 -0
  647. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -0
  648. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +500 -0
  649. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -0
  650. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +64 -0
  651. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -0
  652. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +525 -0
  653. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -0
  654. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts +96 -0
  655. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts.map +1 -0
  656. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js +336 -0
  657. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js.map +1 -0
  658. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts +15 -0
  659. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts.map +1 -0
  660. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js +47 -0
  661. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js.map +1 -0
  662. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts +31 -0
  663. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts.map +1 -0
  664. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js +260 -0
  665. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js.map +1 -0
  666. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +35 -0
  667. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -0
  668. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +146 -0
  669. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -0
  670. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts +52 -0
  671. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts.map +1 -0
  672. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js +119 -0
  673. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js.map +1 -0
  674. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts +14 -0
  675. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts.map +1 -0
  676. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js +55 -0
  677. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js.map +1 -0
  678. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts +182 -0
  679. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -0
  680. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js +487 -0
  681. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js.map +1 -0
  682. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts +43 -0
  683. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts.map +1 -0
  684. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js +518 -0
  685. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js.map +1 -0
  686. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +63 -0
  687. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -0
  688. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +202 -0
  689. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -0
  690. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts +4 -0
  691. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts.map +1 -0
  692. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js +47 -0
  693. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js.map +1 -0
  694. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +22 -0
  695. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -0
  696. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +247 -0
  697. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -0
  698. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts +23 -0
  699. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -0
  700. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js +91 -0
  701. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -0
  702. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts +24 -0
  703. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -0
  704. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +453 -0
  705. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -0
  706. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +48 -0
  707. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -0
  708. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +473 -0
  709. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -0
  710. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts +34 -0
  711. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts.map +1 -0
  712. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js +351 -0
  713. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js.map +1 -0
  714. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts +44 -0
  715. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts.map +1 -0
  716. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js +228 -0
  717. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js.map +1 -0
  718. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +2 -0
  719. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -0
  720. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +3513 -0
  721. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -0
  722. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +95 -0
  723. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -0
  724. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +387 -0
  725. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -0
  726. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +8 -0
  727. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -0
  728. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +6 -0
  729. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -0
  730. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts +7 -0
  731. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts.map +1 -0
  732. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js +34 -0
  733. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js.map +1 -0
  734. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +4 -0
  735. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -0
  736. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +24 -0
  737. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -0
  738. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts +23 -0
  739. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts.map +1 -0
  740. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js +230 -0
  741. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js.map +1 -0
  742. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +127 -0
  743. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -0
  744. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js +1161 -0
  745. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -0
  746. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +81 -0
  747. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -0
  748. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +1014 -0
  749. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -0
  750. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +10 -0
  751. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -0
  752. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1374 -0
  753. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -0
  754. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +87 -0
  755. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -0
  756. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +3358 -0
  757. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -0
  758. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +64 -0
  759. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -0
  760. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +1122 -0
  761. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -0
  762. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +19 -0
  763. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -0
  764. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +106 -0
  765. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -0
  766. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts +27 -0
  767. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts.map +1 -0
  768. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js +108 -0
  769. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js.map +1 -0
  770. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +19 -0
  771. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -0
  772. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +51 -0
  773. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -0
  774. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts +49 -0
  775. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -0
  776. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +274 -0
  777. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -0
  778. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts +33 -0
  779. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts.map +1 -0
  780. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js +152 -0
  781. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js.map +1 -0
  782. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts +18 -0
  783. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -0
  784. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js +326 -0
  785. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -0
  786. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +83 -0
  787. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -0
  788. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +291 -0
  789. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -0
  790. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts +49 -0
  791. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts.map +1 -0
  792. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js +98 -0
  793. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js.map +1 -0
  794. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts +121 -0
  795. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -0
  796. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js +881 -0
  797. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js.map +1 -0
  798. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts +11 -0
  799. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts.map +1 -0
  800. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js +50 -0
  801. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js.map +1 -0
  802. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts +19 -0
  803. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts.map +1 -0
  804. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js +109 -0
  805. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js.map +1 -0
  806. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +101 -0
  807. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -0
  808. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +112 -0
  809. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -0
  810. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +80 -0
  811. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -0
  812. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +252 -0
  813. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -0
  814. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts +25 -0
  815. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts.map +1 -0
  816. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js +111 -0
  817. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js.map +1 -0
  818. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts +11 -0
  819. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts.map +1 -0
  820. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js +57 -0
  821. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js.map +1 -0
  822. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts +54 -0
  823. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts.map +1 -0
  824. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js +244 -0
  825. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js.map +1 -0
  826. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts +50 -0
  827. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -0
  828. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js +202 -0
  829. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js.map +1 -0
  830. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts +22 -0
  831. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -0
  832. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js +67 -0
  833. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js.map +1 -0
  834. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +35 -0
  835. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -0
  836. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +187 -0
  837. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -0
  838. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +22 -0
  839. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -0
  840. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +438 -0
  841. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -0
  842. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +35 -0
  843. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -0
  844. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +154 -0
  845. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -0
  846. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts +13 -0
  847. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts.map +1 -0
  848. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js +51 -0
  849. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js.map +1 -0
  850. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts +16 -0
  851. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts.map +1 -0
  852. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js +74 -0
  853. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js.map +1 -0
  854. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts +14 -0
  855. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts.map +1 -0
  856. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js +66 -0
  857. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js.map +1 -0
  858. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts +30 -0
  859. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts.map +1 -0
  860. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js +200 -0
  861. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js.map +1 -0
  862. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts +49 -0
  863. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts.map +1 -0
  864. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js +473 -0
  865. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js.map +1 -0
  866. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts +13 -0
  867. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts.map +1 -0
  868. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js +104 -0
  869. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js.map +1 -0
  870. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts +17 -0
  871. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts.map +1 -0
  872. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js +68 -0
  873. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js.map +1 -0
  874. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts +36 -0
  875. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts.map +1 -0
  876. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js +173 -0
  877. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js.map +1 -0
  878. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts +11 -0
  879. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts.map +1 -0
  880. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js +26 -0
  881. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js.map +1 -0
  882. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts +44 -0
  883. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -0
  884. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +158 -0
  885. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -0
  886. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +34 -0
  887. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -0
  888. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +128 -0
  889. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -0
  890. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts +20 -0
  891. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts.map +1 -0
  892. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js +59 -0
  893. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js.map +1 -0
  894. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts +31 -0
  895. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts.map +1 -0
  896. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js +68 -0
  897. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js.map +1 -0
  898. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts +17 -0
  899. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts.map +1 -0
  900. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js +72 -0
  901. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js.map +1 -0
  902. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts +7 -0
  903. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts.map +1 -0
  904. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js +7 -0
  905. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js.map +1 -0
  906. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +3 -0
  907. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -0
  908. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +49 -0
  909. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -0
  910. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +136 -0
  911. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -0
  912. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +285 -0
  913. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -0
  914. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts +10 -0
  915. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts.map +1 -0
  916. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js +61 -0
  917. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js.map +1 -0
  918. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1101 -0
  919. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -0
  920. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +221 -0
  921. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -0
  922. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +52 -0
  923. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -0
  924. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +562 -0
  925. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -0
  926. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts +149 -0
  927. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -0
  928. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js +321 -0
  929. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -0
  930. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts +11 -0
  931. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts.map +1 -0
  932. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js +102 -0
  933. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js.map +1 -0
  934. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts +25 -0
  935. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts.map +1 -0
  936. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js +200 -0
  937. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js.map +1 -0
  938. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +23 -0
  939. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -0
  940. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +305 -0
  941. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -0
  942. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts +31 -0
  943. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts.map +1 -0
  944. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js +117 -0
  945. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js.map +1 -0
  946. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +51 -0
  947. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -0
  948. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1531 -0
  949. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -0
  950. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts +22 -0
  951. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts.map +1 -0
  952. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js +246 -0
  953. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js.map +1 -0
  954. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts +78 -0
  955. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts.map +1 -0
  956. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js +401 -0
  957. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js.map +1 -0
  958. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts +13 -0
  959. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts.map +1 -0
  960. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js +74 -0
  961. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js.map +1 -0
  962. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +35 -0
  963. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -0
  964. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +1687 -0
  965. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -0
  966. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts +8 -0
  967. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -0
  968. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js +123 -0
  969. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js.map +1 -0
  970. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts +58 -0
  971. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts.map +1 -0
  972. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js +160 -0
  973. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js.map +1 -0
  974. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts +34 -0
  975. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts.map +1 -0
  976. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js +96 -0
  977. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js.map +1 -0
  978. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts +18 -0
  979. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts.map +1 -0
  980. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js +485 -0
  981. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js.map +1 -0
  982. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts +21 -0
  983. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts.map +1 -0
  984. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js +151 -0
  985. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js.map +1 -0
  986. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts +4 -0
  987. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts.map +1 -0
  988. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js +111 -0
  989. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js.map +1 -0
  990. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts +10 -0
  991. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -0
  992. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +407 -0
  993. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -0
  994. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts +12 -0
  995. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts.map +1 -0
  996. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js +55 -0
  997. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js.map +1 -0
  998. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +29 -0
  999. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -0
  1000. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +245 -0
  1001. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -0
  1002. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +141 -0
  1003. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -0
  1004. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +647 -0
  1005. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -0
  1006. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts +30 -0
  1007. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts.map +1 -0
  1008. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js +486 -0
  1009. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js.map +1 -0
  1010. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +18 -0
  1011. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -0
  1012. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +150 -0
  1013. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -0
  1014. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts +10 -0
  1015. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts.map +1 -0
  1016. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js +159 -0
  1017. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js.map +1 -0
  1018. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts +143 -0
  1019. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts.map +1 -0
  1020. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js +31 -0
  1021. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js.map +1 -0
  1022. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts +8 -0
  1023. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts.map +1 -0
  1024. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js +62 -0
  1025. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js.map +1 -0
  1026. package/dist/builtin-extensions/pi-tps.d.ts +3 -0
  1027. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -0
  1028. package/dist/builtin-extensions/pi-tps.js +89 -0
  1029. package/dist/builtin-extensions/pi-tps.js.map +1 -0
  1030. package/dist/builtin-extensions/pi-web-access/activity.d.ts +34 -0
  1031. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -0
  1032. package/dist/builtin-extensions/pi-web-access/activity.js +68 -0
  1033. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -0
  1034. package/dist/builtin-extensions/pi-web-access/brave.d.ts +4 -0
  1035. package/dist/builtin-extensions/pi-web-access/brave.d.ts.map +1 -0
  1036. package/dist/builtin-extensions/pi-web-access/brave.js +185 -0
  1037. package/dist/builtin-extensions/pi-web-access/brave.js.map +1 -0
  1038. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts +9 -0
  1039. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts.map +1 -0
  1040. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js +299 -0
  1041. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js.map +1 -0
  1042. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts +13 -0
  1043. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts.map +1 -0
  1044. package/dist/builtin-extensions/pi-web-access/curator-page.js +3382 -0
  1045. package/dist/builtin-extensions/pi-web-access/curator-page.js.map +1 -0
  1046. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts +71 -0
  1047. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts.map +1 -0
  1048. package/dist/builtin-extensions/pi-web-access/curator-server.js +604 -0
  1049. package/dist/builtin-extensions/pi-web-access/curator-server.js.map +1 -0
  1050. package/dist/builtin-extensions/pi-web-access/exa.d.ts +10 -0
  1051. package/dist/builtin-extensions/pi-web-access/exa.d.ts.map +1 -0
  1052. package/dist/builtin-extensions/pi-web-access/exa.js +391 -0
  1053. package/dist/builtin-extensions/pi-web-access/exa.js.map +1 -0
  1054. package/dist/builtin-extensions/pi-web-access/extract.d.ts +48 -0
  1055. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -0
  1056. package/dist/builtin-extensions/pi-web-access/extract.js +619 -0
  1057. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -0
  1058. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts +21 -0
  1059. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts.map +1 -0
  1060. package/dist/builtin-extensions/pi-web-access/fetch-params.js +44 -0
  1061. package/dist/builtin-extensions/pi-web-access/fetch-params.js.map +1 -0
  1062. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts +18 -0
  1063. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts.map +1 -0
  1064. package/dist/builtin-extensions/pi-web-access/gemini-api.js +120 -0
  1065. package/dist/builtin-extensions/pi-web-access/gemini-api.js.map +1 -0
  1066. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +14 -0
  1067. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -0
  1068. package/dist/builtin-extensions/pi-web-access/gemini-search.js +371 -0
  1069. package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -0
  1070. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts +4 -0
  1071. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts.map +1 -0
  1072. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js +101 -0
  1073. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js.map +1 -0
  1074. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts +4 -0
  1075. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts.map +1 -0
  1076. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js +43 -0
  1077. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js.map +1 -0
  1078. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts +12 -0
  1079. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts.map +1 -0
  1080. package/dist/builtin-extensions/pi-web-access/gemini-web.js +331 -0
  1081. package/dist/builtin-extensions/pi-web-access/gemini-web.js.map +1 -0
  1082. package/dist/builtin-extensions/pi-web-access/github-api.d.ts +7 -0
  1083. package/dist/builtin-extensions/pi-web-access/github-api.d.ts.map +1 -0
  1084. package/dist/builtin-extensions/pi-web-access/github-api.js +161 -0
  1085. package/dist/builtin-extensions/pi-web-access/github-api.js.map +1 -0
  1086. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +13 -0
  1087. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -0
  1088. package/dist/builtin-extensions/pi-web-access/github-extract.js +558 -0
  1089. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -0
  1090. package/dist/builtin-extensions/pi-web-access/index.d.ts +3 -0
  1091. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -0
  1092. package/dist/builtin-extensions/pi-web-access/index.js +2347 -0
  1093. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -0
  1094. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts +13 -0
  1095. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts.map +1 -0
  1096. package/dist/builtin-extensions/pi-web-access/openai-search.js +374 -0
  1097. package/dist/builtin-extensions/pi-web-access/openai-search.js.map +1 -0
  1098. package/dist/builtin-extensions/pi-web-access/parallel.d.ts +12 -0
  1099. package/dist/builtin-extensions/pi-web-access/parallel.d.ts.map +1 -0
  1100. package/dist/builtin-extensions/pi-web-access/parallel.js +316 -0
  1101. package/dist/builtin-extensions/pi-web-access/parallel.js.map +1 -0
  1102. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts +26 -0
  1103. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts.map +1 -0
  1104. package/dist/builtin-extensions/pi-web-access/pdf-extract.js +150 -0
  1105. package/dist/builtin-extensions/pi-web-access/pdf-extract.js.map +1 -0
  1106. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts +20 -0
  1107. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts.map +1 -0
  1108. package/dist/builtin-extensions/pi-web-access/perplexity.js +150 -0
  1109. package/dist/builtin-extensions/pi-web-access/perplexity.js.map +1 -0
  1110. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts +57 -0
  1111. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts.map +1 -0
  1112. package/dist/builtin-extensions/pi-web-access/render-search-error.js +131 -0
  1113. package/dist/builtin-extensions/pi-web-access/render-search-error.js.map +1 -0
  1114. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts +12 -0
  1115. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts.map +1 -0
  1116. package/dist/builtin-extensions/pi-web-access/rsc-extract.js +330 -0
  1117. package/dist/builtin-extensions/pi-web-access/rsc-extract.js.map +1 -0
  1118. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts +24 -0
  1119. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts.map +1 -0
  1120. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js +255 -0
  1121. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js.map +1 -0
  1122. package/dist/builtin-extensions/pi-web-access/storage.d.ts +25 -0
  1123. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -0
  1124. package/dist/builtin-extensions/pi-web-access/storage.js +49 -0
  1125. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -0
  1126. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts +13 -0
  1127. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts.map +1 -0
  1128. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js +86 -0
  1129. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js.map +1 -0
  1130. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts +21 -0
  1131. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts.map +1 -0
  1132. package/dist/builtin-extensions/pi-web-access/summary-review.js +278 -0
  1133. package/dist/builtin-extensions/pi-web-access/summary-review.js.map +1 -0
  1134. package/dist/builtin-extensions/pi-web-access/tavily.d.ts +8 -0
  1135. package/dist/builtin-extensions/pi-web-access/tavily.d.ts.map +1 -0
  1136. package/dist/builtin-extensions/pi-web-access/tavily.js +184 -0
  1137. package/dist/builtin-extensions/pi-web-access/tavily.js.map +1 -0
  1138. package/dist/builtin-extensions/pi-web-access/utils.d.ts +12 -0
  1139. package/dist/builtin-extensions/pi-web-access/utils.d.ts.map +1 -0
  1140. package/dist/builtin-extensions/pi-web-access/utils.js +61 -0
  1141. package/dist/builtin-extensions/pi-web-access/utils.js.map +1 -0
  1142. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts +14 -0
  1143. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts.map +1 -0
  1144. package/dist/builtin-extensions/pi-web-access/video-extract.js +324 -0
  1145. package/dist/builtin-extensions/pi-web-access/video-extract.js.map +1 -0
  1146. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts +27 -0
  1147. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts.map +1 -0
  1148. package/dist/builtin-extensions/pi-web-access/youtube-extract.js +282 -0
  1149. package/dist/builtin-extensions/pi-web-access/youtube-extract.js.map +1 -0
  1150. package/dist/builtin-extensions/simple-pi-memory.d.ts +55 -0
  1151. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -0
  1152. package/dist/builtin-extensions/simple-pi-memory.js +239 -0
  1153. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -0
  1154. package/dist/bun/cli.d.ts +3 -0
  1155. package/dist/bun/cli.d.ts.map +1 -0
  1156. package/dist/bun/cli.js +11 -0
  1157. package/dist/bun/cli.js.map +1 -0
  1158. package/dist/bun/register-bedrock.d.ts +2 -0
  1159. package/dist/bun/register-bedrock.d.ts.map +1 -0
  1160. package/dist/bun/register-bedrock.js +4 -0
  1161. package/dist/bun/register-bedrock.js.map +1 -0
  1162. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  1163. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  1164. package/dist/bun/restore-sandbox-env.js +36 -0
  1165. package/dist/bun/restore-sandbox-env.js.map +1 -0
  1166. package/dist/catalog/models.json +1 -0
  1167. package/dist/catalog/providers/amazon-bedrock.json +1 -0
  1168. package/dist/catalog/providers/ant-ling.json +1 -0
  1169. package/dist/catalog/providers/anthropic.json +1 -0
  1170. package/dist/catalog/providers/azure-openai-responses.json +1 -0
  1171. package/dist/catalog/providers/cerebras.json +1 -0
  1172. package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -0
  1173. package/dist/catalog/providers/cloudflare-workers-ai.json +1 -0
  1174. package/dist/catalog/providers/deepseek.json +1 -0
  1175. package/dist/catalog/providers/fireworks.json +1 -0
  1176. package/dist/catalog/providers/github-copilot.json +1 -0
  1177. package/dist/catalog/providers/google-vertex.json +1 -0
  1178. package/dist/catalog/providers/google.json +1 -0
  1179. package/dist/catalog/providers/groq.json +1 -0
  1180. package/dist/catalog/providers/huggingface.json +1 -0
  1181. package/dist/catalog/providers/kimi-coding.json +1 -0
  1182. package/dist/catalog/providers/minimax-cn.json +1 -0
  1183. package/dist/catalog/providers/minimax.json +1 -0
  1184. package/dist/catalog/providers/mistral.json +1 -0
  1185. package/dist/catalog/providers/moonshotai-cn.json +1 -0
  1186. package/dist/catalog/providers/moonshotai.json +1 -0
  1187. package/dist/catalog/providers/nvidia.json +1 -0
  1188. package/dist/catalog/providers/openai-codex.json +1 -0
  1189. package/dist/catalog/providers/openai.json +1 -0
  1190. package/dist/catalog/providers/opencode-go.json +1 -0
  1191. package/dist/catalog/providers/opencode.json +1 -0
  1192. package/dist/catalog/providers/openrouter.json +1 -0
  1193. package/dist/catalog/providers/qwen-cloud-cn.json +1 -0
  1194. package/dist/catalog/providers/qwen-cloud.json +1 -0
  1195. package/dist/catalog/providers/qwen-token-plan-cn.json +1 -0
  1196. package/dist/catalog/providers/qwen-token-plan.json +1 -0
  1197. package/dist/catalog/providers/together.json +1 -0
  1198. package/dist/catalog/providers/vercel-ai-gateway.json +1 -0
  1199. package/dist/catalog/providers/xai.json +1 -0
  1200. package/dist/catalog/providers/xiaomi-token-plan-ams.json +1 -0
  1201. package/dist/catalog/providers/xiaomi-token-plan-cn.json +1 -0
  1202. package/dist/catalog/providers/xiaomi-token-plan-sgp.json +1 -0
  1203. package/dist/catalog/providers/xiaomi.json +1 -0
  1204. package/dist/catalog/providers/zai-coding-cn.json +1 -0
  1205. package/dist/catalog/providers/zai.json +1 -0
  1206. package/dist/catalog/providers.json +1 -0
  1207. package/dist/catalog/publication.json +6 -0
  1208. package/dist/cli/args.d.ts +57 -0
  1209. package/dist/cli/args.d.ts.map +1 -0
  1210. package/dist/cli/args.js +381 -0
  1211. package/dist/cli/args.js.map +1 -0
  1212. package/dist/cli/config-selector.d.ts +16 -0
  1213. package/dist/cli/config-selector.d.ts.map +1 -0
  1214. package/dist/cli/config-selector.js +31 -0
  1215. package/dist/cli/config-selector.js.map +1 -0
  1216. package/dist/cli/file-processor.d.ts +15 -0
  1217. package/dist/cli/file-processor.d.ts.map +1 -0
  1218. package/dist/cli/file-processor.js +70 -0
  1219. package/dist/cli/file-processor.js.map +1 -0
  1220. package/dist/cli/initial-message.d.ts +18 -0
  1221. package/dist/cli/initial-message.d.ts.map +1 -0
  1222. package/dist/cli/initial-message.js +22 -0
  1223. package/dist/cli/initial-message.js.map +1 -0
  1224. package/dist/cli/install-cli.d.ts +13 -0
  1225. package/dist/cli/install-cli.d.ts.map +1 -0
  1226. package/dist/cli/install-cli.js +352 -0
  1227. package/dist/cli/install-cli.js.map +1 -0
  1228. package/dist/cli/list-models.d.ts +9 -0
  1229. package/dist/cli/list-models.d.ts.map +1 -0
  1230. package/dist/cli/list-models.js +98 -0
  1231. package/dist/cli/list-models.js.map +1 -0
  1232. package/dist/cli/project-trust.d.ts +10 -0
  1233. package/dist/cli/project-trust.d.ts.map +1 -0
  1234. package/dist/cli/project-trust.js +48 -0
  1235. package/dist/cli/project-trust.js.map +1 -0
  1236. package/dist/cli/read-secret.d.ts +6 -0
  1237. package/dist/cli/read-secret.d.ts.map +1 -0
  1238. package/dist/cli/read-secret.js +62 -0
  1239. package/dist/cli/read-secret.js.map +1 -0
  1240. package/dist/cli/session-picker.d.ts +10 -0
  1241. package/dist/cli/session-picker.d.ts.map +1 -0
  1242. package/dist/cli/session-picker.js +36 -0
  1243. package/dist/cli/session-picker.js.map +1 -0
  1244. package/dist/cli/startup-ui.d.ts +20 -0
  1245. package/dist/cli/startup-ui.d.ts.map +1 -0
  1246. package/dist/cli/startup-ui.js +190 -0
  1247. package/dist/cli/startup-ui.js.map +1 -0
  1248. package/dist/cli.d.ts +3 -0
  1249. package/dist/cli.d.ts.map +1 -0
  1250. package/dist/cli.js +18 -0
  1251. package/dist/cli.js.map +1 -0
  1252. package/dist/config.d.ts +84 -0
  1253. package/dist/config.d.ts.map +1 -0
  1254. package/dist/config.js +211 -0
  1255. package/dist/config.js.map +1 -0
  1256. package/dist/core/agent-session-runtime.d.ts +119 -0
  1257. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  1258. package/dist/core/agent-session-runtime.js +306 -0
  1259. package/dist/core/agent-session-runtime.js.map +1 -0
  1260. package/dist/core/agent-session-services.d.ts +85 -0
  1261. package/dist/core/agent-session-services.d.ts.map +1 -0
  1262. package/dist/core/agent-session-services.js +120 -0
  1263. package/dist/core/agent-session-services.js.map +1 -0
  1264. package/dist/core/agent-session.d.ts +650 -0
  1265. package/dist/core/agent-session.d.ts.map +1 -0
  1266. package/dist/core/agent-session.js +2797 -0
  1267. package/dist/core/agent-session.js.map +1 -0
  1268. package/dist/core/auth-guidance.d.ts +5 -0
  1269. package/dist/core/auth-guidance.d.ts.map +1 -0
  1270. package/dist/core/auth-guidance.js +21 -0
  1271. package/dist/core/auth-guidance.js.map +1 -0
  1272. package/dist/core/auth-storage.d.ts +56 -0
  1273. package/dist/core/auth-storage.d.ts.map +1 -0
  1274. package/dist/core/auth-storage.js +229 -0
  1275. package/dist/core/auth-storage.js.map +1 -0
  1276. package/dist/core/bash-executor.d.ts +32 -0
  1277. package/dist/core/bash-executor.d.ts.map +1 -0
  1278. package/dist/core/bash-executor.js +111 -0
  1279. package/dist/core/bash-executor.js.map +1 -0
  1280. package/dist/core/cache-stats.d.ts +49 -0
  1281. package/dist/core/cache-stats.d.ts.map +1 -0
  1282. package/dist/core/cache-stats.js +101 -0
  1283. package/dist/core/cache-stats.js.map +1 -0
  1284. package/dist/core/catalog-merge.d.ts +46 -0
  1285. package/dist/core/catalog-merge.d.ts.map +1 -0
  1286. package/dist/core/catalog-merge.js +128 -0
  1287. package/dist/core/catalog-merge.js.map +1 -0
  1288. package/dist/core/compaction/branch-summarization.d.ts +92 -0
  1289. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  1290. package/dist/core/compaction/branch-summarization.js +249 -0
  1291. package/dist/core/compaction/branch-summarization.js.map +1 -0
  1292. package/dist/core/compaction/compaction.d.ts +121 -0
  1293. package/dist/core/compaction/compaction.d.ts.map +1 -0
  1294. package/dist/core/compaction/compaction.js +600 -0
  1295. package/dist/core/compaction/compaction.js.map +1 -0
  1296. package/dist/core/compaction/index.d.ts +7 -0
  1297. package/dist/core/compaction/index.d.ts.map +1 -0
  1298. package/dist/core/compaction/index.js +7 -0
  1299. package/dist/core/compaction/index.js.map +1 -0
  1300. package/dist/core/compaction/utils.d.ts +38 -0
  1301. package/dist/core/compaction/utils.d.ts.map +1 -0
  1302. package/dist/core/compaction/utils.js +153 -0
  1303. package/dist/core/compaction/utils.js.map +1 -0
  1304. package/dist/core/context-breakdown.d.ts +67 -0
  1305. package/dist/core/context-breakdown.d.ts.map +1 -0
  1306. package/dist/core/context-breakdown.js +116 -0
  1307. package/dist/core/context-breakdown.js.map +1 -0
  1308. package/dist/core/cron/fire-guard.d.ts +16 -0
  1309. package/dist/core/cron/fire-guard.d.ts.map +1 -0
  1310. package/dist/core/cron/fire-guard.js +24 -0
  1311. package/dist/core/cron/fire-guard.js.map +1 -0
  1312. package/dist/core/cron/jobs.d.ts +162 -0
  1313. package/dist/core/cron/jobs.d.ts.map +1 -0
  1314. package/dist/core/cron/jobs.js +545 -0
  1315. package/dist/core/cron/jobs.js.map +1 -0
  1316. package/dist/core/cron/origin-context.d.ts +22 -0
  1317. package/dist/core/cron/origin-context.d.ts.map +1 -0
  1318. package/dist/core/cron/origin-context.js +22 -0
  1319. package/dist/core/cron/origin-context.js.map +1 -0
  1320. package/dist/core/cron/scheduler.d.ts +51 -0
  1321. package/dist/core/cron/scheduler.d.ts.map +1 -0
  1322. package/dist/core/cron/scheduler.js +165 -0
  1323. package/dist/core/cron/scheduler.js.map +1 -0
  1324. package/dist/core/customize.d.ts +31 -0
  1325. package/dist/core/customize.d.ts.map +1 -0
  1326. package/dist/core/customize.js +54 -0
  1327. package/dist/core/customize.js.map +1 -0
  1328. package/dist/core/defaults.d.ts +3 -0
  1329. package/dist/core/defaults.d.ts.map +1 -0
  1330. package/dist/core/defaults.js +2 -0
  1331. package/dist/core/defaults.js.map +1 -0
  1332. package/dist/core/diagnostics.d.ts +15 -0
  1333. package/dist/core/diagnostics.d.ts.map +1 -0
  1334. package/dist/core/diagnostics.js +2 -0
  1335. package/dist/core/diagnostics.js.map +1 -0
  1336. package/dist/core/event-bus.d.ts +9 -0
  1337. package/dist/core/event-bus.d.ts.map +1 -0
  1338. package/dist/core/event-bus.js +25 -0
  1339. package/dist/core/event-bus.js.map +1 -0
  1340. package/dist/core/exec.d.ts +29 -0
  1341. package/dist/core/exec.d.ts.map +1 -0
  1342. package/dist/core/exec.js +75 -0
  1343. package/dist/core/exec.js.map +1 -0
  1344. package/dist/core/experimental.d.ts +2 -0
  1345. package/dist/core/experimental.d.ts.map +1 -0
  1346. package/dist/core/experimental.js +4 -0
  1347. package/dist/core/experimental.js.map +1 -0
  1348. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  1349. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  1350. package/dist/core/export-html/ansi-to-html.js +249 -0
  1351. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  1352. package/dist/core/export-html/index.d.ts +37 -0
  1353. package/dist/core/export-html/index.d.ts.map +1 -0
  1354. package/dist/core/export-html/index.js +226 -0
  1355. package/dist/core/export-html/index.js.map +1 -0
  1356. package/dist/core/export-html/template.css +1066 -0
  1357. package/dist/core/export-html/template.html +55 -0
  1358. package/dist/core/export-html/template.js +1864 -0
  1359. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  1360. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  1361. package/dist/core/export-html/tool-renderer.js +108 -0
  1362. package/dist/core/export-html/tool-renderer.js.map +1 -0
  1363. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  1364. package/dist/core/export-html/vendor/marked.min.js +78 -0
  1365. package/dist/core/extensions/index.d.ts +12 -0
  1366. package/dist/core/extensions/index.d.ts.map +1 -0
  1367. package/dist/core/extensions/index.js +9 -0
  1368. package/dist/core/extensions/index.js.map +1 -0
  1369. package/dist/core/extensions/loader.d.ts +23 -0
  1370. package/dist/core/extensions/loader.d.ts.map +1 -0
  1371. package/dist/core/extensions/loader.js +547 -0
  1372. package/dist/core/extensions/loader.js.map +1 -0
  1373. package/dist/core/extensions/runner.d.ts +170 -0
  1374. package/dist/core/extensions/runner.d.ts.map +1 -0
  1375. package/dist/core/extensions/runner.js +923 -0
  1376. package/dist/core/extensions/runner.js.map +1 -0
  1377. package/dist/core/extensions/types.d.ts +1247 -0
  1378. package/dist/core/extensions/types.d.ts.map +1 -0
  1379. package/dist/core/extensions/types.js +45 -0
  1380. package/dist/core/extensions/types.js.map +1 -0
  1381. package/dist/core/extensions/wrapper.d.ts +20 -0
  1382. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  1383. package/dist/core/extensions/wrapper.js +41 -0
  1384. package/dist/core/extensions/wrapper.js.map +1 -0
  1385. package/dist/core/footer-data-provider.d.ts +54 -0
  1386. package/dist/core/footer-data-provider.d.ts.map +1 -0
  1387. package/dist/core/footer-data-provider.js +338 -0
  1388. package/dist/core/footer-data-provider.js.map +1 -0
  1389. package/dist/core/http-dispatcher.d.ts +22 -0
  1390. package/dist/core/http-dispatcher.d.ts.map +1 -0
  1391. package/dist/core/http-dispatcher.js +91 -0
  1392. package/dist/core/http-dispatcher.js.map +1 -0
  1393. package/dist/core/index.d.ts +13 -0
  1394. package/dist/core/index.d.ts.map +1 -0
  1395. package/dist/core/index.js +13 -0
  1396. package/dist/core/index.js.map +1 -0
  1397. package/dist/core/injected-prompt.d.ts +20 -0
  1398. package/dist/core/injected-prompt.d.ts.map +1 -0
  1399. package/dist/core/injected-prompt.js +64 -0
  1400. package/dist/core/injected-prompt.js.map +1 -0
  1401. package/dist/core/install-features.d.ts +106 -0
  1402. package/dist/core/install-features.d.ts.map +1 -0
  1403. package/dist/core/install-features.js +392 -0
  1404. package/dist/core/install-features.js.map +1 -0
  1405. package/dist/core/install-layout.d.ts +18 -0
  1406. package/dist/core/install-layout.d.ts.map +1 -0
  1407. package/dist/core/install-layout.js +54 -0
  1408. package/dist/core/install-layout.js.map +1 -0
  1409. package/dist/core/keybindings.d.ts +373 -0
  1410. package/dist/core/keybindings.d.ts.map +1 -0
  1411. package/dist/core/keybindings.js +309 -0
  1412. package/dist/core/keybindings.js.map +1 -0
  1413. package/dist/core/live-catalog.d.ts +74 -0
  1414. package/dist/core/live-catalog.d.ts.map +1 -0
  1415. package/dist/core/live-catalog.js +351 -0
  1416. package/dist/core/live-catalog.js.map +1 -0
  1417. package/dist/core/memory-cap.d.ts +27 -0
  1418. package/dist/core/memory-cap.d.ts.map +1 -0
  1419. package/dist/core/memory-cap.js +32 -0
  1420. package/dist/core/memory-cap.js.map +1 -0
  1421. package/dist/core/messages.d.ts +77 -0
  1422. package/dist/core/messages.d.ts.map +1 -0
  1423. package/dist/core/messages.js +123 -0
  1424. package/dist/core/messages.js.map +1 -0
  1425. package/dist/core/model-config-writer.d.ts +24 -0
  1426. package/dist/core/model-config-writer.d.ts.map +1 -0
  1427. package/dist/core/model-config-writer.js +84 -0
  1428. package/dist/core/model-config-writer.js.map +1 -0
  1429. package/dist/core/model-config.d.ts +512 -0
  1430. package/dist/core/model-config.d.ts.map +1 -0
  1431. package/dist/core/model-config.js +243 -0
  1432. package/dist/core/model-config.js.map +1 -0
  1433. package/dist/core/model-registry.d.ts +39 -0
  1434. package/dist/core/model-registry.d.ts.map +1 -0
  1435. package/dist/core/model-registry.js +89 -0
  1436. package/dist/core/model-registry.js.map +1 -0
  1437. package/dist/core/model-resolver.d.ts +121 -0
  1438. package/dist/core/model-resolver.d.ts.map +1 -0
  1439. package/dist/core/model-resolver.js +536 -0
  1440. package/dist/core/model-resolver.js.map +1 -0
  1441. package/dist/core/model-runtime.d.ts +115 -0
  1442. package/dist/core/model-runtime.d.ts.map +1 -0
  1443. package/dist/core/model-runtime.js +640 -0
  1444. package/dist/core/model-runtime.js.map +1 -0
  1445. package/dist/core/model-tiers.d.ts +34 -0
  1446. package/dist/core/model-tiers.d.ts.map +1 -0
  1447. package/dist/core/model-tiers.js +53 -0
  1448. package/dist/core/model-tiers.js.map +1 -0
  1449. package/dist/core/models-store.d.ts +17 -0
  1450. package/dist/core/models-store.d.ts.map +1 -0
  1451. package/dist/core/models-store.js +45 -0
  1452. package/dist/core/models-store.js.map +1 -0
  1453. package/dist/core/official-catalog.d.ts +72 -0
  1454. package/dist/core/official-catalog.d.ts.map +1 -0
  1455. package/dist/core/official-catalog.js +370 -0
  1456. package/dist/core/official-catalog.js.map +1 -0
  1457. package/dist/core/output-guard.d.ts +7 -0
  1458. package/dist/core/output-guard.d.ts.map +1 -0
  1459. package/dist/core/output-guard.js +89 -0
  1460. package/dist/core/output-guard.js.map +1 -0
  1461. package/dist/core/package-manager.d.ts +198 -0
  1462. package/dist/core/package-manager.d.ts.map +1 -0
  1463. package/dist/core/package-manager.js +2005 -0
  1464. package/dist/core/package-manager.js.map +1 -0
  1465. package/dist/core/permission-mode.d.ts +19 -0
  1466. package/dist/core/permission-mode.d.ts.map +1 -0
  1467. package/dist/core/permission-mode.js +26 -0
  1468. package/dist/core/permission-mode.js.map +1 -0
  1469. package/dist/core/permissions.d.ts +99 -0
  1470. package/dist/core/permissions.d.ts.map +1 -0
  1471. package/dist/core/permissions.js +323 -0
  1472. package/dist/core/permissions.js.map +1 -0
  1473. package/dist/core/plan-mode.d.ts +37 -0
  1474. package/dist/core/plan-mode.d.ts.map +1 -0
  1475. package/dist/core/plan-mode.js +388 -0
  1476. package/dist/core/plan-mode.js.map +1 -0
  1477. package/dist/core/process-registry.d.ts +40 -0
  1478. package/dist/core/process-registry.d.ts.map +1 -0
  1479. package/dist/core/process-registry.js +190 -0
  1480. package/dist/core/process-registry.js.map +1 -0
  1481. package/dist/core/project-trust.d.ts +15 -0
  1482. package/dist/core/project-trust.d.ts.map +1 -0
  1483. package/dist/core/project-trust.js +59 -0
  1484. package/dist/core/project-trust.js.map +1 -0
  1485. package/dist/core/prompt-templates.d.ts +53 -0
  1486. package/dist/core/prompt-templates.d.ts.map +1 -0
  1487. package/dist/core/prompt-templates.js +236 -0
  1488. package/dist/core/prompt-templates.js.map +1 -0
  1489. package/dist/core/provider-attribution.d.ts +4 -0
  1490. package/dist/core/provider-attribution.d.ts.map +1 -0
  1491. package/dist/core/provider-attribution.js +31 -0
  1492. package/dist/core/provider-attribution.js.map +1 -0
  1493. package/dist/core/provider-composer.d.ts +55 -0
  1494. package/dist/core/provider-composer.d.ts.map +1 -0
  1495. package/dist/core/provider-composer.js +375 -0
  1496. package/dist/core/provider-composer.js.map +1 -0
  1497. package/dist/core/radius.d.ts +2 -0
  1498. package/dist/core/radius.d.ts.map +1 -0
  1499. package/dist/core/radius.js +2 -0
  1500. package/dist/core/radius.js.map +1 -0
  1501. package/dist/core/resolve-config-value.d.ts +30 -0
  1502. package/dist/core/resolve-config-value.d.ts.map +1 -0
  1503. package/dist/core/resolve-config-value.js +247 -0
  1504. package/dist/core/resolve-config-value.js.map +1 -0
  1505. package/dist/core/resource-loader.d.ts +206 -0
  1506. package/dist/core/resource-loader.d.ts.map +1 -0
  1507. package/dist/core/resource-loader.js +816 -0
  1508. package/dist/core/resource-loader.js.map +1 -0
  1509. package/dist/core/rollback.d.ts +80 -0
  1510. package/dist/core/rollback.d.ts.map +1 -0
  1511. package/dist/core/rollback.js +582 -0
  1512. package/dist/core/rollback.js.map +1 -0
  1513. package/dist/core/runtime-credentials.d.ts +15 -0
  1514. package/dist/core/runtime-credentials.d.ts.map +1 -0
  1515. package/dist/core/runtime-credentials.js +36 -0
  1516. package/dist/core/runtime-credentials.js.map +1 -0
  1517. package/dist/core/sdk.d.ts +106 -0
  1518. package/dist/core/sdk.d.ts.map +1 -0
  1519. package/dist/core/sdk.js +264 -0
  1520. package/dist/core/sdk.js.map +1 -0
  1521. package/dist/core/search-curator.d.ts +23 -0
  1522. package/dist/core/search-curator.d.ts.map +1 -0
  1523. package/dist/core/search-curator.js +34 -0
  1524. package/dist/core/search-curator.js.map +1 -0
  1525. package/dist/core/session-cwd.d.ts +19 -0
  1526. package/dist/core/session-cwd.d.ts.map +1 -0
  1527. package/dist/core/session-cwd.js +38 -0
  1528. package/dist/core/session-cwd.js.map +1 -0
  1529. package/dist/core/session-manager.d.ts +351 -0
  1530. package/dist/core/session-manager.d.ts.map +1 -0
  1531. package/dist/core/session-manager.js +1262 -0
  1532. package/dist/core/session-manager.js.map +1 -0
  1533. package/dist/core/session-retention.d.ts +17 -0
  1534. package/dist/core/session-retention.d.ts.map +1 -0
  1535. package/dist/core/session-retention.js +69 -0
  1536. package/dist/core/session-retention.js.map +1 -0
  1537. package/dist/core/settings-manager.d.ts +355 -0
  1538. package/dist/core/settings-manager.d.ts.map +1 -0
  1539. package/dist/core/settings-manager.js +1064 -0
  1540. package/dist/core/settings-manager.js.map +1 -0
  1541. package/dist/core/skills.d.ts +60 -0
  1542. package/dist/core/skills.d.ts.map +1 -0
  1543. package/dist/core/skills.js +387 -0
  1544. package/dist/core/skills.js.map +1 -0
  1545. package/dist/core/slash-commands.d.ts +15 -0
  1546. package/dist/core/slash-commands.d.ts.map +1 -0
  1547. package/dist/core/slash-commands.js +58 -0
  1548. package/dist/core/slash-commands.js.map +1 -0
  1549. package/dist/core/source-info.d.ts +18 -0
  1550. package/dist/core/source-info.d.ts.map +1 -0
  1551. package/dist/core/source-info.js +19 -0
  1552. package/dist/core/source-info.js.map +1 -0
  1553. package/dist/core/subscriptions.d.ts +64 -0
  1554. package/dist/core/subscriptions.d.ts.map +1 -0
  1555. package/dist/core/subscriptions.js +259 -0
  1556. package/dist/core/subscriptions.js.map +1 -0
  1557. package/dist/core/swarm.d.ts +41 -0
  1558. package/dist/core/swarm.d.ts.map +1 -0
  1559. package/dist/core/swarm.js +81 -0
  1560. package/dist/core/swarm.js.map +1 -0
  1561. package/dist/core/system-prompt.d.ts +28 -0
  1562. package/dist/core/system-prompt.d.ts.map +1 -0
  1563. package/dist/core/system-prompt.js +107 -0
  1564. package/dist/core/system-prompt.js.map +1 -0
  1565. package/dist/core/timings.d.ts +10 -0
  1566. package/dist/core/timings.d.ts.map +1 -0
  1567. package/dist/core/timings.js +41 -0
  1568. package/dist/core/timings.js.map +1 -0
  1569. package/dist/core/tools/bash.d.ts +69 -0
  1570. package/dist/core/tools/bash.d.ts.map +1 -0
  1571. package/dist/core/tools/bash.js +395 -0
  1572. package/dist/core/tools/bash.js.map +1 -0
  1573. package/dist/core/tools/edit-diff.d.ts +106 -0
  1574. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  1575. package/dist/core/tools/edit-diff.js +424 -0
  1576. package/dist/core/tools/edit-diff.js.map +1 -0
  1577. package/dist/core/tools/edit.d.ts +51 -0
  1578. package/dist/core/tools/edit.d.ts.map +1 -0
  1579. package/dist/core/tools/edit.js +293 -0
  1580. package/dist/core/tools/edit.js.map +1 -0
  1581. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  1582. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  1583. package/dist/core/tools/file-mutation-queue.js +52 -0
  1584. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  1585. package/dist/core/tools/find.d.ts +35 -0
  1586. package/dist/core/tools/find.d.ts.map +1 -0
  1587. package/dist/core/tools/find.js +313 -0
  1588. package/dist/core/tools/find.js.map +1 -0
  1589. package/dist/core/tools/grep.d.ts +37 -0
  1590. package/dist/core/tools/grep.d.ts.map +1 -0
  1591. package/dist/core/tools/grep.js +312 -0
  1592. package/dist/core/tools/grep.js.map +1 -0
  1593. package/dist/core/tools/index.d.ts +40 -0
  1594. package/dist/core/tools/index.d.ts.map +1 -0
  1595. package/dist/core/tools/index.js +112 -0
  1596. package/dist/core/tools/index.js.map +1 -0
  1597. package/dist/core/tools/ls.d.ts +37 -0
  1598. package/dist/core/tools/ls.d.ts.map +1 -0
  1599. package/dist/core/tools/ls.js +175 -0
  1600. package/dist/core/tools/ls.js.map +1 -0
  1601. package/dist/core/tools/output-accumulator.d.ts +52 -0
  1602. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  1603. package/dist/core/tools/output-accumulator.js +184 -0
  1604. package/dist/core/tools/output-accumulator.js.map +1 -0
  1605. package/dist/core/tools/path-utils.d.ts +10 -0
  1606. package/dist/core/tools/path-utils.d.ts.map +1 -0
  1607. package/dist/core/tools/path-utils.js +99 -0
  1608. package/dist/core/tools/path-utils.js.map +1 -0
  1609. package/dist/core/tools/read.d.ts +35 -0
  1610. package/dist/core/tools/read.d.ts.map +1 -0
  1611. package/dist/core/tools/read.js +285 -0
  1612. package/dist/core/tools/read.js.map +1 -0
  1613. package/dist/core/tools/render-utils.d.ts +36 -0
  1614. package/dist/core/tools/render-utils.d.ts.map +1 -0
  1615. package/dist/core/tools/render-utils.js +88 -0
  1616. package/dist/core/tools/render-utils.js.map +1 -0
  1617. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  1618. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  1619. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  1620. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  1621. package/dist/core/tools/truncate.d.ts +70 -0
  1622. package/dist/core/tools/truncate.d.ts.map +1 -0
  1623. package/dist/core/tools/truncate.js +215 -0
  1624. package/dist/core/tools/truncate.js.map +1 -0
  1625. package/dist/core/tools/write.d.ts +26 -0
  1626. package/dist/core/tools/write.d.ts.map +1 -0
  1627. package/dist/core/tools/write.js +202 -0
  1628. package/dist/core/tools/write.js.map +1 -0
  1629. package/dist/core/trust-manager.d.ts +36 -0
  1630. package/dist/core/trust-manager.d.ts.map +1 -0
  1631. package/dist/core/trust-manager.js +202 -0
  1632. package/dist/core/trust-manager.js.map +1 -0
  1633. package/dist/core/usage-adapters/kimi-coding.d.ts +11 -0
  1634. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -0
  1635. package/dist/core/usage-adapters/kimi-coding.js +78 -0
  1636. package/dist/core/usage-adapters/kimi-coding.js.map +1 -0
  1637. package/dist/core/usage-adapters/openai-codex.d.ts +4 -0
  1638. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -0
  1639. package/dist/core/usage-adapters/openai-codex.js +180 -0
  1640. package/dist/core/usage-adapters/openai-codex.js.map +1 -0
  1641. package/dist/core/usage-adapters/shared.d.ts +20 -0
  1642. package/dist/core/usage-adapters/shared.d.ts.map +1 -0
  1643. package/dist/core/usage-adapters/shared.js +75 -0
  1644. package/dist/core/usage-adapters/shared.js.map +1 -0
  1645. package/dist/core/usage-adapters/xai.d.ts +21 -0
  1646. package/dist/core/usage-adapters/xai.d.ts.map +1 -0
  1647. package/dist/core/usage-adapters/xai.js +77 -0
  1648. package/dist/core/usage-adapters/xai.js.map +1 -0
  1649. package/dist/core/usage-adapters/zai.d.ts +14 -0
  1650. package/dist/core/usage-adapters/zai.d.ts.map +1 -0
  1651. package/dist/core/usage-adapters/zai.js +67 -0
  1652. package/dist/core/usage-adapters/zai.js.map +1 -0
  1653. package/dist/core/usage-history.d.ts +63 -0
  1654. package/dist/core/usage-history.d.ts.map +1 -0
  1655. package/dist/core/usage-history.js +239 -0
  1656. package/dist/core/usage-history.js.map +1 -0
  1657. package/dist/core/usage-limit.d.ts +17 -0
  1658. package/dist/core/usage-limit.d.ts.map +1 -0
  1659. package/dist/core/usage-limit.js +79 -0
  1660. package/dist/core/usage-limit.js.map +1 -0
  1661. package/dist/core/usage-service.d.ts +33 -0
  1662. package/dist/core/usage-service.d.ts.map +1 -0
  1663. package/dist/core/usage-service.js +56 -0
  1664. package/dist/core/usage-service.js.map +1 -0
  1665. package/dist/core/user-models.d.ts +50 -0
  1666. package/dist/core/user-models.d.ts.map +1 -0
  1667. package/dist/core/user-models.js +192 -0
  1668. package/dist/core/user-models.js.map +1 -0
  1669. package/dist/gateway/adapters/discord.d.ts +251 -0
  1670. package/dist/gateway/adapters/discord.d.ts.map +1 -0
  1671. package/dist/gateway/adapters/discord.js +693 -0
  1672. package/dist/gateway/adapters/discord.js.map +1 -0
  1673. package/dist/gateway/adapters/telegram.d.ts +187 -0
  1674. package/dist/gateway/adapters/telegram.d.ts.map +1 -0
  1675. package/dist/gateway/adapters/telegram.js +581 -0
  1676. package/dist/gateway/adapters/telegram.js.map +1 -0
  1677. package/dist/gateway/agent-bridge.d.ts +143 -0
  1678. package/dist/gateway/agent-bridge.d.ts.map +1 -0
  1679. package/dist/gateway/agent-bridge.js +466 -0
  1680. package/dist/gateway/agent-bridge.js.map +1 -0
  1681. package/dist/gateway/approval.d.ts +34 -0
  1682. package/dist/gateway/approval.d.ts.map +1 -0
  1683. package/dist/gateway/approval.js +152 -0
  1684. package/dist/gateway/approval.js.map +1 -0
  1685. package/dist/gateway/authz.d.ts +21 -0
  1686. package/dist/gateway/authz.d.ts.map +1 -0
  1687. package/dist/gateway/authz.js +61 -0
  1688. package/dist/gateway/authz.js.map +1 -0
  1689. package/dist/gateway/buttons.d.ts +58 -0
  1690. package/dist/gateway/buttons.d.ts.map +1 -0
  1691. package/dist/gateway/buttons.js +269 -0
  1692. package/dist/gateway/buttons.js.map +1 -0
  1693. package/dist/gateway/command.d.ts +8 -0
  1694. package/dist/gateway/command.d.ts.map +1 -0
  1695. package/dist/gateway/command.js +16 -0
  1696. package/dist/gateway/command.js.map +1 -0
  1697. package/dist/gateway/commands.d.ts +43 -0
  1698. package/dist/gateway/commands.d.ts.map +1 -0
  1699. package/dist/gateway/commands.js +642 -0
  1700. package/dist/gateway/commands.js.map +1 -0
  1701. package/dist/gateway/config.d.ts +53 -0
  1702. package/dist/gateway/config.d.ts.map +1 -0
  1703. package/dist/gateway/config.js +136 -0
  1704. package/dist/gateway/config.js.map +1 -0
  1705. package/dist/gateway/cron.d.ts +69 -0
  1706. package/dist/gateway/cron.d.ts.map +1 -0
  1707. package/dist/gateway/cron.js +321 -0
  1708. package/dist/gateway/cron.js.map +1 -0
  1709. package/dist/gateway/index.d.ts +31 -0
  1710. package/dist/gateway/index.d.ts.map +1 -0
  1711. package/dist/gateway/index.js +233 -0
  1712. package/dist/gateway/index.js.map +1 -0
  1713. package/dist/gateway/pairing.d.ts +44 -0
  1714. package/dist/gateway/pairing.d.ts.map +1 -0
  1715. package/dist/gateway/pairing.js +171 -0
  1716. package/dist/gateway/pairing.js.map +1 -0
  1717. package/dist/gateway/router.d.ts +48 -0
  1718. package/dist/gateway/router.d.ts.map +1 -0
  1719. package/dist/gateway/router.js +215 -0
  1720. package/dist/gateway/router.js.map +1 -0
  1721. package/dist/gateway/session-keys.d.ts +18 -0
  1722. package/dist/gateway/session-keys.d.ts.map +1 -0
  1723. package/dist/gateway/session-keys.js +26 -0
  1724. package/dist/gateway/session-keys.js.map +1 -0
  1725. package/dist/gateway/store.d.ts +28 -0
  1726. package/dist/gateway/store.d.ts.map +1 -0
  1727. package/dist/gateway/store.js +93 -0
  1728. package/dist/gateway/store.js.map +1 -0
  1729. package/dist/gateway/stream.d.ts +55 -0
  1730. package/dist/gateway/stream.d.ts.map +1 -0
  1731. package/dist/gateway/stream.js +107 -0
  1732. package/dist/gateway/stream.js.map +1 -0
  1733. package/dist/gateway/text.d.ts +18 -0
  1734. package/dist/gateway/text.d.ts.map +1 -0
  1735. package/dist/gateway/text.js +136 -0
  1736. package/dist/gateway/text.js.map +1 -0
  1737. package/dist/gateway/types.d.ts +95 -0
  1738. package/dist/gateway/types.d.ts.map +1 -0
  1739. package/dist/gateway/types.js +9 -0
  1740. package/dist/gateway/types.js.map +1 -0
  1741. package/dist/index.d.ts +35 -0
  1742. package/dist/index.d.ts.map +1 -0
  1743. package/dist/index.js +47 -0
  1744. package/dist/index.js.map +1 -0
  1745. package/dist/main.d.ts +12 -0
  1746. package/dist/main.d.ts.map +1 -0
  1747. package/dist/main.js +742 -0
  1748. package/dist/main.js.map +1 -0
  1749. package/dist/migrations.d.ts +46 -0
  1750. package/dist/migrations.d.ts.map +1 -0
  1751. package/dist/migrations.js +351 -0
  1752. package/dist/migrations.js.map +1 -0
  1753. package/dist/modes/index.d.ts +9 -0
  1754. package/dist/modes/index.d.ts.map +1 -0
  1755. package/dist/modes/index.js +8 -0
  1756. package/dist/modes/index.js.map +1 -0
  1757. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1758. package/dist/modes/interactive/components/armin.d.ts +34 -0
  1759. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  1760. package/dist/modes/interactive/components/armin.js +333 -0
  1761. package/dist/modes/interactive/components/armin.js.map +1 -0
  1762. package/dist/modes/interactive/components/assistant-message.d.ts +31 -0
  1763. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  1764. package/dist/modes/interactive/components/assistant-message.js +246 -0
  1765. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  1766. package/dist/modes/interactive/components/bash-execution.d.ts +32 -0
  1767. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  1768. package/dist/modes/interactive/components/bash-execution.js +171 -0
  1769. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  1770. package/dist/modes/interactive/components/boot-ascii.d.ts +6 -0
  1771. package/dist/modes/interactive/components/boot-ascii.d.ts.map +1 -0
  1772. package/dist/modes/interactive/components/boot-ascii.js +6 -0
  1773. package/dist/modes/interactive/components/boot-ascii.js.map +1 -0
  1774. package/dist/modes/interactive/components/boot-screen.d.ts +22 -0
  1775. package/dist/modes/interactive/components/boot-screen.d.ts.map +1 -0
  1776. package/dist/modes/interactive/components/boot-screen.js +53 -0
  1777. package/dist/modes/interactive/components/boot-screen.js.map +1 -0
  1778. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  1779. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  1780. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  1781. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  1782. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  1783. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  1784. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  1785. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  1786. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  1787. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  1788. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  1789. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  1790. package/dist/modes/interactive/components/config-selector.d.ts +102 -0
  1791. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  1792. package/dist/modes/interactive/components/config-selector.js +761 -0
  1793. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  1794. package/dist/modes/interactive/components/context-view.d.ts +13 -0
  1795. package/dist/modes/interactive/components/context-view.d.ts.map +1 -0
  1796. package/dist/modes/interactive/components/context-view.js +42 -0
  1797. package/dist/modes/interactive/components/context-view.js.map +1 -0
  1798. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  1799. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  1800. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  1801. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  1802. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  1803. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  1804. package/dist/modes/interactive/components/custom-editor.js +70 -0
  1805. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  1806. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  1807. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  1808. package/dist/modes/interactive/components/custom-entry.js +52 -0
  1809. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  1810. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  1811. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  1812. package/dist/modes/interactive/components/custom-message.js +79 -0
  1813. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  1814. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  1815. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  1816. package/dist/modes/interactive/components/daxnuts.js +140 -0
  1817. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  1818. package/dist/modes/interactive/components/diff.d.ts +12 -0
  1819. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  1820. package/dist/modes/interactive/components/diff.js +133 -0
  1821. package/dist/modes/interactive/components/diff.js.map +1 -0
  1822. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  1823. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  1824. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  1825. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  1826. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  1827. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  1828. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  1829. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  1830. package/dist/modes/interactive/components/exit-card.d.ts +22 -0
  1831. package/dist/modes/interactive/components/exit-card.d.ts.map +1 -0
  1832. package/dist/modes/interactive/components/exit-card.js +69 -0
  1833. package/dist/modes/interactive/components/exit-card.js.map +1 -0
  1834. package/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  1835. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  1836. package/dist/modes/interactive/components/extension-editor.js +128 -0
  1837. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  1838. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  1839. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  1840. package/dist/modes/interactive/components/extension-input.js +61 -0
  1841. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  1842. package/dist/modes/interactive/components/extension-selector.d.ts +30 -0
  1843. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  1844. package/dist/modes/interactive/components/extension-selector.js +106 -0
  1845. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  1846. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  1847. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  1848. package/dist/modes/interactive/components/first-time-setup.js +99 -0
  1849. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  1850. package/dist/modes/interactive/components/footer.d.ts +32 -0
  1851. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  1852. package/dist/modes/interactive/components/footer.js +221 -0
  1853. package/dist/modes/interactive/components/footer.js.map +1 -0
  1854. package/dist/modes/interactive/components/index.d.ts +34 -0
  1855. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  1856. package/dist/modes/interactive/components/index.js +35 -0
  1857. package/dist/modes/interactive/components/index.js.map +1 -0
  1858. package/dist/modes/interactive/components/injected-prompt-message.d.ts +21 -0
  1859. package/dist/modes/interactive/components/injected-prompt-message.d.ts.map +1 -0
  1860. package/dist/modes/interactive/components/injected-prompt-message.js +51 -0
  1861. package/dist/modes/interactive/components/injected-prompt-message.js.map +1 -0
  1862. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  1863. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  1864. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  1865. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  1866. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  1867. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  1868. package/dist/modes/interactive/components/login-dialog.js +188 -0
  1869. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  1870. package/dist/modes/interactive/components/model-selector.d.ts +61 -0
  1871. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  1872. package/dist/modes/interactive/components/model-selector.js +320 -0
  1873. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  1874. package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  1875. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  1876. package/dist/modes/interactive/components/oauth-selector.js +163 -0
  1877. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  1878. package/dist/modes/interactive/components/processes-selector.d.ts +19 -0
  1879. package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -0
  1880. package/dist/modes/interactive/components/processes-selector.js +170 -0
  1881. package/dist/modes/interactive/components/processes-selector.js.map +1 -0
  1882. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  1883. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  1884. package/dist/modes/interactive/components/scoped-models-selector.js +293 -0
  1885. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  1886. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  1887. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  1888. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  1889. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  1890. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  1891. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  1892. package/dist/modes/interactive/components/session-selector.js +857 -0
  1893. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  1894. package/dist/modes/interactive/components/settings-selector.d.ts +139 -0
  1895. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  1896. package/dist/modes/interactive/components/settings-selector.js +1156 -0
  1897. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  1898. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  1899. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  1900. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  1901. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  1902. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  1903. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  1904. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  1905. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  1906. package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  1907. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  1908. package/dist/modes/interactive/components/status-indicator.js +60 -0
  1909. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  1910. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  1911. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  1912. package/dist/modes/interactive/components/theme-selector.js +50 -0
  1913. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  1914. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  1915. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  1916. package/dist/modes/interactive/components/thinking-selector.js +52 -0
  1917. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  1918. package/dist/modes/interactive/components/thinking-summary.d.ts +36 -0
  1919. package/dist/modes/interactive/components/thinking-summary.d.ts.map +1 -0
  1920. package/dist/modes/interactive/components/thinking-summary.js +94 -0
  1921. package/dist/modes/interactive/components/thinking-summary.js.map +1 -0
  1922. package/dist/modes/interactive/components/thinking-tail.d.ts +21 -0
  1923. package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -0
  1924. package/dist/modes/interactive/components/thinking-tail.js +29 -0
  1925. package/dist/modes/interactive/components/thinking-tail.js.map +1 -0
  1926. package/dist/modes/interactive/components/tool-execution.d.ts +67 -0
  1927. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  1928. package/dist/modes/interactive/components/tool-execution.js +340 -0
  1929. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  1930. package/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  1931. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  1932. package/dist/modes/interactive/components/tree-selector.js +1245 -0
  1933. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  1934. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  1935. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  1936. package/dist/modes/interactive/components/trust-selector.js +91 -0
  1937. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  1938. package/dist/modes/interactive/components/usage-view.d.ts +63 -0
  1939. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -0
  1940. package/dist/modes/interactive/components/usage-view.js +189 -0
  1941. package/dist/modes/interactive/components/usage-view.js.map +1 -0
  1942. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  1943. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  1944. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  1945. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  1946. package/dist/modes/interactive/components/user-message.d.ts +16 -0
  1947. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  1948. package/dist/modes/interactive/components/user-message.js +62 -0
  1949. package/dist/modes/interactive/components/user-message.js.map +1 -0
  1950. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  1951. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  1952. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  1953. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  1954. package/dist/modes/interactive/interactive-mode.d.ts +448 -0
  1955. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  1956. package/dist/modes/interactive/interactive-mode.js +6487 -0
  1957. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  1958. package/dist/modes/interactive/model-search.d.ts +12 -0
  1959. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  1960. package/dist/modes/interactive/model-search.js +15 -0
  1961. package/dist/modes/interactive/model-search.js.map +1 -0
  1962. package/dist/modes/interactive/smooth-streaming.d.ts +10 -0
  1963. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -0
  1964. package/dist/modes/interactive/smooth-streaming.js +95 -0
  1965. package/dist/modes/interactive/smooth-streaming.js.map +1 -0
  1966. package/dist/modes/interactive/theme/moon.json +83 -0
  1967. package/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  1968. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  1969. package/dist/modes/interactive/theme/theme-controller.js +97 -0
  1970. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  1971. package/dist/modes/interactive/theme/theme-schema.json +363 -0
  1972. package/dist/modes/interactive/theme/theme.d.ts +128 -0
  1973. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  1974. package/dist/modes/interactive/theme/theme.js +1092 -0
  1975. package/dist/modes/interactive/theme/theme.js.map +1 -0
  1976. package/dist/modes/print-mode.d.ts +28 -0
  1977. package/dist/modes/print-mode.d.ts.map +1 -0
  1978. package/dist/modes/print-mode.js +132 -0
  1979. package/dist/modes/print-mode.js.map +1 -0
  1980. package/dist/modes/rpc/jsonl.d.ts +17 -0
  1981. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  1982. package/dist/modes/rpc/jsonl.js +49 -0
  1983. package/dist/modes/rpc/jsonl.js.map +1 -0
  1984. package/dist/modes/rpc/rpc-client.d.ts +242 -0
  1985. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  1986. package/dist/modes/rpc/rpc-client.js +481 -0
  1987. package/dist/modes/rpc/rpc-client.js.map +1 -0
  1988. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  1989. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  1990. package/dist/modes/rpc/rpc-mode.js +635 -0
  1991. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  1992. package/dist/modes/rpc/rpc-types.d.ts +446 -0
  1993. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1994. package/dist/modes/rpc/rpc-types.js +8 -0
  1995. package/dist/modes/rpc/rpc-types.js.map +1 -0
  1996. package/dist/package-manager-cli.d.ts +8 -0
  1997. package/dist/package-manager-cli.d.ts.map +1 -0
  1998. package/dist/package-manager-cli.js +378 -0
  1999. package/dist/package-manager-cli.js.map +1 -0
  2000. package/dist/rpc-entry.d.ts +3 -0
  2001. package/dist/rpc-entry.d.ts.map +1 -0
  2002. package/dist/rpc-entry.js +10 -0
  2003. package/dist/rpc-entry.js.map +1 -0
  2004. package/dist/utils/ansi.d.ts +2 -0
  2005. package/dist/utils/ansi.d.ts.map +1 -0
  2006. package/dist/utils/ansi.js +52 -0
  2007. package/dist/utils/ansi.js.map +1 -0
  2008. package/dist/utils/child-process.d.ts +18 -0
  2009. package/dist/utils/child-process.d.ts.map +1 -0
  2010. package/dist/utils/child-process.js +106 -0
  2011. package/dist/utils/child-process.js.map +1 -0
  2012. package/dist/utils/clipboard-image.d.ts +11 -0
  2013. package/dist/utils/clipboard-image.d.ts.map +1 -0
  2014. package/dist/utils/clipboard-image.js +300 -0
  2015. package/dist/utils/clipboard-image.js.map +1 -0
  2016. package/dist/utils/clipboard-native.d.ts +11 -0
  2017. package/dist/utils/clipboard-native.d.ts.map +1 -0
  2018. package/dist/utils/clipboard-native.js +20 -0
  2019. package/dist/utils/clipboard-native.js.map +1 -0
  2020. package/dist/utils/clipboard.d.ts +4 -0
  2021. package/dist/utils/clipboard.d.ts.map +1 -0
  2022. package/dist/utils/clipboard.js +130 -0
  2023. package/dist/utils/clipboard.js.map +1 -0
  2024. package/dist/utils/deprecation.d.ts +4 -0
  2025. package/dist/utils/deprecation.d.ts.map +1 -0
  2026. package/dist/utils/deprecation.js +13 -0
  2027. package/dist/utils/deprecation.js.map +1 -0
  2028. package/dist/utils/exif-orientation.d.ts +5 -0
  2029. package/dist/utils/exif-orientation.d.ts.map +1 -0
  2030. package/dist/utils/exif-orientation.js +158 -0
  2031. package/dist/utils/exif-orientation.js.map +1 -0
  2032. package/dist/utils/frontmatter.d.ts +8 -0
  2033. package/dist/utils/frontmatter.d.ts.map +1 -0
  2034. package/dist/utils/frontmatter.js +26 -0
  2035. package/dist/utils/frontmatter.js.map +1 -0
  2036. package/dist/utils/fs-watch.d.ts +5 -0
  2037. package/dist/utils/fs-watch.d.ts.map +1 -0
  2038. package/dist/utils/fs-watch.js +25 -0
  2039. package/dist/utils/fs-watch.js.map +1 -0
  2040. package/dist/utils/git.d.ts +26 -0
  2041. package/dist/utils/git.d.ts.map +1 -0
  2042. package/dist/utils/git.js +195 -0
  2043. package/dist/utils/git.js.map +1 -0
  2044. package/dist/utils/html.d.ts +7 -0
  2045. package/dist/utils/html.d.ts.map +1 -0
  2046. package/dist/utils/html.js +40 -0
  2047. package/dist/utils/html.js.map +1 -0
  2048. package/dist/utils/image-convert.d.ts +10 -0
  2049. package/dist/utils/image-convert.d.ts.map +1 -0
  2050. package/dist/utils/image-convert.js +45 -0
  2051. package/dist/utils/image-convert.js.map +1 -0
  2052. package/dist/utils/image-process.d.ts +18 -0
  2053. package/dist/utils/image-process.d.ts.map +1 -0
  2054. package/dist/utils/image-process.js +83 -0
  2055. package/dist/utils/image-process.js.map +1 -0
  2056. package/dist/utils/image-resize-core.d.ts +30 -0
  2057. package/dist/utils/image-resize-core.d.ts.map +1 -0
  2058. package/dist/utils/image-resize-core.js +124 -0
  2059. package/dist/utils/image-resize-core.js.map +1 -0
  2060. package/dist/utils/image-resize-worker.d.ts +2 -0
  2061. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  2062. package/dist/utils/image-resize-worker.js +31 -0
  2063. package/dist/utils/image-resize-worker.js.map +1 -0
  2064. package/dist/utils/image-resize.d.ts +16 -0
  2065. package/dist/utils/image-resize.d.ts.map +1 -0
  2066. package/dist/utils/image-resize.js +97 -0
  2067. package/dist/utils/image-resize.js.map +1 -0
  2068. package/dist/utils/json.d.ts +3 -0
  2069. package/dist/utils/json.d.ts.map +1 -0
  2070. package/dist/utils/json.js +7 -0
  2071. package/dist/utils/json.js.map +1 -0
  2072. package/dist/utils/mime.d.ts +3 -0
  2073. package/dist/utils/mime.d.ts.map +1 -0
  2074. package/dist/utils/mime.js +110 -0
  2075. package/dist/utils/mime.js.map +1 -0
  2076. package/dist/utils/open-browser.d.ts +9 -0
  2077. package/dist/utils/open-browser.d.ts.map +1 -0
  2078. package/dist/utils/open-browser.js +22 -0
  2079. package/dist/utils/open-browser.js.map +1 -0
  2080. package/dist/utils/paths.d.ts +31 -0
  2081. package/dist/utils/paths.d.ts.map +1 -0
  2082. package/dist/utils/paths.js +92 -0
  2083. package/dist/utils/paths.js.map +1 -0
  2084. package/dist/utils/photon.d.ts +21 -0
  2085. package/dist/utils/photon.d.ts.map +1 -0
  2086. package/dist/utils/photon.js +121 -0
  2087. package/dist/utils/photon.js.map +1 -0
  2088. package/dist/utils/pi-user-agent.d.ts +2 -0
  2089. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  2090. package/dist/utils/pi-user-agent.js +5 -0
  2091. package/dist/utils/pi-user-agent.js.map +1 -0
  2092. package/dist/utils/shell.d.ts +31 -0
  2093. package/dist/utils/shell.d.ts.map +1 -0
  2094. package/dist/utils/shell.js +202 -0
  2095. package/dist/utils/shell.js.map +1 -0
  2096. package/dist/utils/sleep.d.ts +5 -0
  2097. package/dist/utils/sleep.d.ts.map +1 -0
  2098. package/dist/utils/sleep.js +17 -0
  2099. package/dist/utils/sleep.js.map +1 -0
  2100. package/dist/utils/syntax-highlight.d.ts +12 -0
  2101. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  2102. package/dist/utils/syntax-highlight.js +118 -0
  2103. package/dist/utils/syntax-highlight.js.map +1 -0
  2104. package/dist/utils/tools-manager.d.ts +3 -0
  2105. package/dist/utils/tools-manager.d.ts.map +1 -0
  2106. package/dist/utils/tools-manager.js +328 -0
  2107. package/dist/utils/tools-manager.js.map +1 -0
  2108. package/docs/compaction.md +396 -0
  2109. package/docs/containerization.md +111 -0
  2110. package/docs/custom-provider.md +735 -0
  2111. package/docs/development.md +71 -0
  2112. package/docs/docs.json +156 -0
  2113. package/docs/extensions.md +2911 -0
  2114. package/docs/images/doom-extension.png +0 -0
  2115. package/docs/images/exy.png +0 -0
  2116. package/docs/images/interactive-mode.png +0 -0
  2117. package/docs/images/tree-view.png +0 -0
  2118. package/docs/index.md +82 -0
  2119. package/docs/json.md +82 -0
  2120. package/docs/keybindings.md +201 -0
  2121. package/docs/models.md +540 -0
  2122. package/docs/packages.md +228 -0
  2123. package/docs/prompt-templates.md +95 -0
  2124. package/docs/providers.md +294 -0
  2125. package/docs/quickstart.md +165 -0
  2126. package/docs/rpc.md +1480 -0
  2127. package/docs/sdk.md +1183 -0
  2128. package/docs/security.md +59 -0
  2129. package/docs/session-format.md +422 -0
  2130. package/docs/sessions.md +145 -0
  2131. package/docs/settings.md +302 -0
  2132. package/docs/shell-aliases.md +13 -0
  2133. package/docs/skills.md +231 -0
  2134. package/docs/terminal-setup.md +142 -0
  2135. package/docs/termux.md +127 -0
  2136. package/docs/themes.md +297 -0
  2137. package/docs/tmux.md +63 -0
  2138. package/docs/tui.md +927 -0
  2139. package/docs/usage.md +312 -0
  2140. package/docs/windows.md +17 -0
  2141. package/examples/README.md +25 -0
  2142. package/examples/extensions/README.md +213 -0
  2143. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  2144. package/examples/extensions/bash-spawn-hook.ts +30 -0
  2145. package/examples/extensions/bookmark.ts +50 -0
  2146. package/examples/extensions/border-status-editor.ts +150 -0
  2147. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  2148. package/examples/extensions/claude-rules.ts +86 -0
  2149. package/examples/extensions/commands.ts +72 -0
  2150. package/examples/extensions/confirm-destructive.ts +59 -0
  2151. package/examples/extensions/custom-compaction.ts +128 -0
  2152. package/examples/extensions/custom-footer.ts +64 -0
  2153. package/examples/extensions/custom-header.ts +73 -0
  2154. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  2155. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  2156. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  2157. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -0
  2158. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  2159. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  2160. package/examples/extensions/dirty-repo-guard.ts +56 -0
  2161. package/examples/extensions/doom-overlay/README.md +46 -0
  2162. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  2163. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  2164. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  2165. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  2166. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  2167. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  2168. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  2169. package/examples/extensions/doom-overlay/index.ts +74 -0
  2170. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  2171. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  2172. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  2173. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  2174. package/examples/extensions/dynamic-resources/index.ts +15 -0
  2175. package/examples/extensions/dynamic-tools.ts +74 -0
  2176. package/examples/extensions/entry-renderer.ts +41 -0
  2177. package/examples/extensions/event-bus.ts +43 -0
  2178. package/examples/extensions/file-trigger.ts +41 -0
  2179. package/examples/extensions/git-checkpoint.ts +53 -0
  2180. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  2181. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  2182. package/examples/extensions/gondolin/index.ts +531 -0
  2183. package/examples/extensions/gondolin/package-lock.json +185 -0
  2184. package/examples/extensions/gondolin/package.json +19 -0
  2185. package/examples/extensions/handoff.ts +191 -0
  2186. package/examples/extensions/hello.ts +26 -0
  2187. package/examples/extensions/hidden-thinking-label.ts +53 -0
  2188. package/examples/extensions/inline-bash.ts +94 -0
  2189. package/examples/extensions/input-transform-streaming.ts +39 -0
  2190. package/examples/extensions/input-transform.ts +43 -0
  2191. package/examples/extensions/interactive-shell.ts +196 -0
  2192. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  2193. package/examples/extensions/mac-system-theme.ts +47 -0
  2194. package/examples/extensions/message-renderer.ts +59 -0
  2195. package/examples/extensions/minimal-mode.ts +426 -0
  2196. package/examples/extensions/modal-editor.ts +85 -0
  2197. package/examples/extensions/model-status.ts +31 -0
  2198. package/examples/extensions/notify.ts +55 -0
  2199. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  2200. package/examples/extensions/overlay-test.ts +153 -0
  2201. package/examples/extensions/permission-gate.ts +34 -0
  2202. package/examples/extensions/pirate.ts +47 -0
  2203. package/examples/extensions/plan-mode/README.md +66 -0
  2204. package/examples/extensions/plan-mode/index.ts +390 -0
  2205. package/examples/extensions/plan-mode/utils.ts +168 -0
  2206. package/examples/extensions/preset.ts +436 -0
  2207. package/examples/extensions/project-trust.ts +64 -0
  2208. package/examples/extensions/prompt-customizer.ts +97 -0
  2209. package/examples/extensions/protected-paths.ts +30 -0
  2210. package/examples/extensions/provider-payload.ts +18 -0
  2211. package/examples/extensions/qna.ts +122 -0
  2212. package/examples/extensions/question.ts +286 -0
  2213. package/examples/extensions/questionnaire.ts +448 -0
  2214. package/examples/extensions/rainbow-editor.ts +88 -0
  2215. package/examples/extensions/reload-runtime.ts +37 -0
  2216. package/examples/extensions/rpc-demo.ts +118 -0
  2217. package/examples/extensions/sandbox/index.ts +321 -0
  2218. package/examples/extensions/sandbox/package-lock.json +92 -0
  2219. package/examples/extensions/sandbox/package.json +19 -0
  2220. package/examples/extensions/send-user-message.ts +97 -0
  2221. package/examples/extensions/session-name.ts +27 -0
  2222. package/examples/extensions/shutdown-command.ts +63 -0
  2223. package/examples/extensions/snake.ts +343 -0
  2224. package/examples/extensions/space-invaders.ts +560 -0
  2225. package/examples/extensions/ssh.ts +220 -0
  2226. package/examples/extensions/status-line.ts +32 -0
  2227. package/examples/extensions/structured-output.ts +65 -0
  2228. package/examples/extensions/subagent/README.md +175 -0
  2229. package/examples/extensions/subagent/agents/planner.md +37 -0
  2230. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  2231. package/examples/extensions/subagent/agents/scout.md +50 -0
  2232. package/examples/extensions/subagent/agents/worker.md +24 -0
  2233. package/examples/extensions/subagent/agents.ts +126 -0
  2234. package/examples/extensions/subagent/index.ts +1015 -0
  2235. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  2236. package/examples/extensions/subagent/prompts/implement.md +10 -0
  2237. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  2238. package/examples/extensions/summarize.ts +207 -0
  2239. package/examples/extensions/system-prompt-header.ts +17 -0
  2240. package/examples/extensions/tic-tac-toe.ts +1008 -0
  2241. package/examples/extensions/timed-confirm.ts +70 -0
  2242. package/examples/extensions/titlebar-spinner.ts +58 -0
  2243. package/examples/extensions/todo.ts +297 -0
  2244. package/examples/extensions/tool-override.ts +144 -0
  2245. package/examples/extensions/tools.ts +146 -0
  2246. package/examples/extensions/trigger-compact.ts +50 -0
  2247. package/examples/extensions/truncated-tool.ts +195 -0
  2248. package/examples/extensions/widget-placement.ts +9 -0
  2249. package/examples/extensions/with-deps/index.ts +32 -0
  2250. package/examples/extensions/with-deps/package-lock.json +31 -0
  2251. package/examples/extensions/with-deps/package.json +22 -0
  2252. package/examples/extensions/working-indicator.ts +123 -0
  2253. package/examples/extensions/working-message-test.ts +25 -0
  2254. package/examples/rpc-extension-ui.ts +632 -0
  2255. package/examples/sdk/01-minimal.ts +26 -0
  2256. package/examples/sdk/02-custom-model.ts +50 -0
  2257. package/examples/sdk/03-custom-prompt.ts +75 -0
  2258. package/examples/sdk/04-skills.ts +55 -0
  2259. package/examples/sdk/05-tools.ts +48 -0
  2260. package/examples/sdk/06-extensions.ts +99 -0
  2261. package/examples/sdk/07-context-files.ts +47 -0
  2262. package/examples/sdk/08-prompt-templates.ts +51 -0
  2263. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  2264. package/examples/sdk/10-settings.ts +53 -0
  2265. package/examples/sdk/11-sessions.ts +52 -0
  2266. package/examples/sdk/12-full-control.ts +72 -0
  2267. package/examples/sdk/13-session-runtime.ts +67 -0
  2268. package/examples/sdk/README.md +140 -0
  2269. package/package.json +116 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentSession - Core abstraction for agent lifecycle and session management.\n *\n * This class is shared between all run modes (interactive, print, rpc).\n * It encapsulates:\n * - Agent state access\n * - Event subscription with automatic session persistence\n * - Model and thinking level management\n * - Compaction (manual and auto)\n * - Bash execution\n * - Session switching and branching\n *\n * Modes use this class and add their own I/O layer on top.\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport type {\n\tAgent,\n\tAgentEvent,\n\tAgentMessage,\n\tAgentState,\n\tAgentTool,\n\tPrepareNextTurnContext,\n\tThinkingLevel,\n} from \"@earendil-works/pi-agent-core\";\nimport type {\n\tAssistantMessage,\n\tAuthResult,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProviderHeaders,\n\tTextContent,\n} from \"@earendil-works/pi-ai/compat\";\nimport {\n\tclampThinkingLevel,\n\tcleanupSessionResources,\n\tgetSupportedThinkingLevels,\n\tisContextOverflow,\n\tisRetryableAssistantError,\n\tmodelsAreEqual,\n\tresetApiProviders,\n\tstreamSimple,\n} from \"@earendil-works/pi-ai/compat\";\nimport { getAgentDir } from \"../config.ts\";\nimport { getThemeByName, theme } from \"../modes/interactive/theme/theme.ts\";\nimport { stripFrontmatter } from \"../utils/frontmatter.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport { sleep } from \"../utils/sleep.ts\";\nimport { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage } from \"./auth-guidance.ts\";\nimport { type BashResult, executeBashWithOperations } from \"./bash-executor.ts\";\nimport {\n\ttype CompactionResult,\n\tcalculateContextTokens,\n\tcollectEntriesForBranchSummary,\n\tcompact,\n\testimateContextTokens,\n\testimateTokens,\n\tgenerateBranchSummary,\n\tprepareCompaction,\n\tshouldCompact,\n} from \"./compaction/index.ts\";\nimport { DEFAULT_THINKING_LEVEL } from \"./defaults.ts\";\nimport { exportSessionToHtml, type ToolHtmlRenderer } from \"./export-html/index.ts\";\nimport { createToolHtmlRenderer } from \"./export-html/tool-renderer.ts\";\nimport {\n\ttype ContextUsage,\n\ttype ExtensionCommandContextActions,\n\ttype ExtensionErrorListener,\n\ttype ExtensionMode,\n\tExtensionRunner,\n\ttype ExtensionUIContext,\n\ttype InputSource,\n\ttype MessageEndEvent,\n\ttype MessageStartEvent,\n\ttype MessageUpdateEvent,\n\ttype ReplacedSessionContext,\n\ttype SessionBeforeCompactResult,\n\ttype SessionBeforeTreeResult,\n\ttype SessionStartEvent,\n\ttype ShutdownHandler,\n\ttype ToolDefinition,\n\ttype ToolExecutionEndEvent,\n\ttype ToolExecutionStartEvent,\n\ttype ToolExecutionUpdateEvent,\n\ttype ToolInfo,\n\ttype TreePreparation,\n\ttype TurnEndEvent,\n\ttype TurnStartEvent,\n\twrapRegisteredTools,\n} from \"./extensions/index.ts\";\nimport { emitSessionShutdownEvent } from \"./extensions/runner.ts\";\nimport type { BashExecutionMessage, CustomMessage } from \"./messages.ts\";\nimport { ModelRegistry } from \"./model-registry.ts\";\nimport type { ModelRuntime } from \"./model-runtime.ts\";\nimport { gateToolCall } from \"./permissions.ts\";\nimport { expandPromptTemplate, type PromptTemplate } from \"./prompt-templates.ts\";\nimport type { ResourceExtensionPaths, ResourceLoader } from \"./resource-loader.ts\";\nimport { rollbackSnapshotBeforeWrite } from \"./rollback.ts\";\nimport type { BranchSummaryEntry, CompactionEntry, SessionEntry, SessionManager } from \"./session-manager.ts\";\nimport { CURRENT_SESSION_VERSION, getLatestCompactionEntry, type SessionHeader } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport type { SlashCommandInfo } from \"./slash-commands.ts\";\nimport { createSyntheticSourceInfo, type SourceInfo } from \"./source-info.ts\";\nimport { isExplicitSwarmTurn } from \"./swarm.ts\";\nimport { type BuildSystemPromptOptions, buildSystemPrompt } from \"./system-prompt.ts\";\nimport { type BashOperations, createLocalBashOperations } from \"./tools/bash.ts\";\nimport { createAllToolDefinitions } from \"./tools/index.ts\";\nimport { createToolDefinitionFromAgentTool } from \"./tools/tool-definition-wrapper.ts\";\nimport { isAuthInvalidError, isUsageLimitError } from \"./usage-limit.ts\";\n\n// ============================================================================\n// Skill Block Parsing\n// ============================================================================\n\n/** Parsed skill block from a user message */\nexport interface ParsedSkillBlock {\n\tname: string;\n\tlocation: string;\n\tcontent: string;\n\tuserMessage: string | undefined;\n}\n\n/**\n * Parse a skill block from message text.\n * Returns null if the text doesn't contain a skill block.\n */\nexport function parseSkillBlock(text: string): ParsedSkillBlock | null {\n\tconst match = text.match(/^<skill name=\"([^\"]+)\" location=\"([^\"]+)\">\\n([\\s\\S]*?)\\n<\\/skill>(?:\\n\\n([\\s\\S]+))?$/);\n\tif (!match) return null;\n\treturn {\n\t\tname: match[1],\n\t\tlocation: match[2],\n\t\tcontent: match[3],\n\t\tuserMessage: match[4]?.trim() || undefined,\n\t};\n}\n\n/** Session-specific events that extend the core AgentEvent */\nexport type AgentSessionEvent =\n\t| Exclude<AgentEvent, { type: \"agent_end\" }>\n\t| {\n\t\t\ttype: \"agent_end\";\n\t\t\tmessages: AgentMessage[];\n\t\t\twillRetry: boolean;\n\t }\n\t| { type: \"agent_settled\" }\n\t| {\n\t\t\ttype: \"queue_update\";\n\t\t\tsteering: readonly string[];\n\t\t\tfollowUp: readonly string[];\n\t }\n\t| { type: \"compaction_start\"; reason: \"manual\" | \"threshold\" | \"overflow\" }\n\t| { type: \"entry_appended\"; entry: SessionEntry }\n\t| { type: \"session_info_changed\"; name: string | undefined }\n\t| { type: \"thinking_level_changed\"; level: ThinkingLevel }\n\t| {\n\t\t\ttype: \"compaction_end\";\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tresult: CompactionResult | undefined;\n\t\t\taborted: boolean;\n\t\t\twillRetry: boolean;\n\t\t\terrorMessage?: string;\n\t }\n\t| { type: \"auto_retry_start\"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }\n\t| { type: \"auto_retry_end\"; success: boolean; attempt: number; finalError?: string }\n\t// lunr: emitted when a failed run rotates the provider to the next pooled subscription key.\n\t| { type: \"subscription_rotation\"; providerId: string; keyName: string; errorMessage: string };\n\n/** Listener function for agent session events */\nexport type AgentSessionEventListener = (event: AgentSessionEvent) => void;\n\n// ============================================================================\n// Types\n// ============================================================================\n\nfunction withoutDeletedHeaders(headers: ProviderHeaders | undefined): Record<string, string> | undefined {\n\treturn headers\n\t\t? Object.fromEntries(Object.entries(headers).filter((entry): entry is [string, string] => entry[1] !== null))\n\t\t: undefined;\n}\n\nexport interface AgentSessionConfig {\n\tagent: Agent;\n\tsessionManager: SessionManager;\n\tsettingsManager: SettingsManager;\n\tcwd: string;\n\t/** Models to cycle through with Ctrl+P (from --models flag) */\n\tscopedModels?: Array<{ model: Model<any>; thinkingLevel?: ThinkingLevel }>;\n\t/** Resource loader for extensions, skills, prompts, themes, context files, and system prompt */\n\tresourceLoader: ResourceLoader;\n\t/** SDK custom tools registered outside extensions */\n\tcustomTools?: ToolDefinition[];\n\t/** Canonical model/auth runtime used by coding-agent internals. */\n\tmodelRuntime: ModelRuntime;\n\t/** Initial active built-in tool names. Default: [read, bash, edit, write] */\n\tinitialActiveToolNames?: string[];\n\t/** Optional allowlist of tool names. When provided, only these tool names are exposed. */\n\tallowedToolNames?: string[];\n\t/** Optional denylist of tool names. When provided, these tool names are not exposed. */\n\texcludedToolNames?: string[];\n\t/**\n\t * Override base tools (useful for custom runtimes).\n\t *\n\t * These are synthesized into minimal ToolDefinitions internally so AgentSession can keep\n\t * a definition-first registry even when callers provide plain AgentTool instances.\n\t */\n\tbaseToolsOverride?: Record<string, AgentTool>;\n\t/** Mutable ref used by Agent to access the current ExtensionRunner */\n\textensionRunnerRef?: { current?: ExtensionRunner };\n\t/** Session start event metadata emitted when extensions bind to this runtime. */\n\tsessionStartEvent?: SessionStartEvent;\n}\n\nexport interface ExtensionBindings {\n\tuiContext?: ExtensionUIContext;\n\tmode?: ExtensionMode;\n\tcommandContextActions?: ExtensionCommandContextActions;\n\tabortHandler?: () => void;\n\tshutdownHandler?: ShutdownHandler;\n\tonError?: ExtensionErrorListener;\n}\n\n/** Options for AgentSession.prompt() */\nexport interface PromptOptions {\n\t/** Whether to expand file-based prompt templates (default: true) */\n\texpandPromptTemplates?: boolean;\n\t/** Image attachments */\n\timages?: ImageContent[];\n\t/** When streaming, how to queue the message: \"steer\" (interrupt) or \"followUp\" (wait). Required if streaming. */\n\tstreamingBehavior?: \"steer\" | \"followUp\";\n\t/** Source of input for extension input event handlers. Defaults to \"interactive\". */\n\tsource?: InputSource;\n\t/** Internal hook used by RPC mode to observe prompt preflight acceptance or rejection. */\n\tpreflightResult?: (success: boolean) => void;\n}\n\n/** Result from cycleModel() */\nexport interface ModelCycleResult {\n\tmodel: Model<any>;\n\tthinkingLevel: ThinkingLevel;\n\t/** Whether cycling through scoped models (--models flag) or all available */\n\tisScoped: boolean;\n}\n\n/** Session statistics for /session command */\nexport interface SessionStats {\n\tsessionFile: string | undefined;\n\tsessionId: string;\n\tuserMessages: number;\n\tassistantMessages: number;\n\ttoolCalls: number;\n\ttoolResults: number;\n\ttotalMessages: number;\n\ttokens: {\n\t\tinput: number;\n\t\toutput: number;\n\t\tcacheRead: number;\n\t\tcacheWrite: number;\n\t\ttotal: number;\n\t};\n\tcost: number;\n\tcontextUsage?: ContextUsage;\n}\n\ninterface ToolDefinitionEntry {\n\tdefinition: ToolDefinition;\n\tsourceInfo: SourceInfo;\n}\n\n// lunr: core-owned tool-call gate (plan mode). Return { block: true, reason } to prevent\n// execution; the agent loop turns it into an error tool result shown to the model.\nexport interface ToolCallGateResult {\n\tblock: boolean;\n\treason?: string;\n}\nexport type ToolCallGate = (toolName: string, input: Record<string, unknown>) => ToolCallGateResult | undefined;\n\nfunction estimateMessagesTokens(messages: AgentMessage[]): number {\n\tlet tokens = 0;\n\tfor (const message of messages) {\n\t\ttokens += estimateTokens(message);\n\t}\n\treturn tokens;\n}\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/** Standard thinking levels */\nconst THINKING_LEVELS: ThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\"];\n\n// ============================================================================\n// AgentSession Class\n// ============================================================================\n\nexport class AgentSession {\n\treadonly agent: Agent;\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n\n\tprivate _scopedModels: Array<{ model: Model<any>; thinkingLevel?: ThinkingLevel }>;\n\n\t// Event subscription state\n\tprivate _unsubscribeAgent?: () => void;\n\tprivate _eventListeners: AgentSessionEventListener[] = [];\n\tprivate _isAgentRunActive = false;\n\tprivate _idleWaitPromise: Promise<void> | undefined;\n\tprivate _resolveIdleWait: (() => void) | undefined;\n\n\t/** Tracks pending steering messages for UI display. Removed when delivered. */\n\tprivate _steeringMessages: string[] = [];\n\t/** Tracks pending follow-up messages for UI display. Removed when delivered. */\n\tprivate _followUpMessages: string[] = [];\n\t/** Messages queued to be included with the next user prompt as context (\"asides\"). */\n\tprivate _pendingNextTurnMessages: CustomMessage[] = [];\n\n\t// Compaction state\n\tprivate _compactionAbortController: AbortController | undefined = undefined;\n\tprivate _autoCompactionAbortController: AbortController | undefined = undefined;\n\tprivate _overflowRecoveryAttempted = false;\n\n\t// Branch summarization state\n\tprivate _branchSummaryAbortController: AbortController | undefined = undefined;\n\n\t// Retry state\n\tprivate _retryAbortController: AbortController | undefined = undefined;\n\tprivate _retryAttempt = 0;\n\n\t// Bash execution state\n\tprivate _bashAbortController: AbortController | undefined = undefined;\n\tprivate _pendingBashMessages: BashExecutionMessage[] = [];\n\n\t// Extension system\n\tprivate _extensionRunner!: ExtensionRunner;\n\tprivate _turnIndex = 0;\n\n\tprivate _resourceLoader: ResourceLoader;\n\tprivate _customTools: ToolDefinition[];\n\tprivate _baseToolDefinitions: Map<string, ToolDefinition> = new Map();\n\tprivate _cwd: string;\n\tprivate _extensionRunnerRef?: { current?: ExtensionRunner };\n\tprivate _initialActiveToolNames?: string[];\n\tprivate _allowedToolNames?: Set<string>;\n\tprivate _excludedToolNames?: Set<string>;\n\tprivate _baseToolsOverride?: Record<string, AgentTool>;\n\tprivate _sessionStartEvent: SessionStartEvent;\n\tprivate _extensionUIContext?: ExtensionUIContext;\n\tprivate _extensionMode: ExtensionMode = \"print\";\n\tprivate _extensionCommandContextActions?: ExtensionCommandContextActions;\n\tprivate _extensionAbortHandler?: () => void;\n\tprivate _extensionShutdownHandler?: ShutdownHandler;\n\tprivate _extensionErrorListener?: ExtensionErrorListener;\n\tprivate _extensionErrorUnsubscriber?: () => void;\n\n\tprivate _modelRuntime: ModelRuntime;\n\n\t// Tool registry for extension getTools/setTools\n\tprivate _toolRegistry: Map<string, AgentTool> = new Map();\n\tprivate _toolDefinitions: Map<string, ToolDefinitionEntry> = new Map();\n\tprivate _toolPromptSnippets: Map<string, string> = new Map();\n\tprivate _toolPromptGuidelines: Map<string, string[]> = new Map();\n\n\t// Base system prompt (without extension appends) - used to apply fresh appends each turn\n\tprivate _baseSystemPrompt = \"\";\n\tprivate _baseSystemPromptOptions!: BuildSystemPromptOptions;\n\tprivate _systemPromptOverride?: string;\n\t// lunr: core-owned system-prompt append (plan mode addendum) applied on top of base/override\n\tprivate _systemPromptAppend?: string;\n\t// lunr: core-owned tool-call gates (plan mode) checked before extension tool_call handlers\n\tprivate _toolCallGates: ToolCallGate[] = [];\n\n\tconstructor(config: AgentSessionConfig) {\n\t\tthis.agent = config.agent;\n\t\tthis.sessionManager = config.sessionManager;\n\t\tthis.settingsManager = config.settingsManager;\n\t\tthis._scopedModels = config.scopedModels ?? [];\n\t\tthis._resourceLoader = config.resourceLoader;\n\t\tthis._customTools = config.customTools ?? [];\n\t\tthis._cwd = config.cwd;\n\t\tthis._modelRuntime = config.modelRuntime;\n\t\tthis._extensionRunnerRef = config.extensionRunnerRef;\n\t\tthis._initialActiveToolNames = config.initialActiveToolNames;\n\t\tthis._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;\n\t\tthis._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;\n\t\tthis._baseToolsOverride = config.baseToolsOverride;\n\t\tthis._sessionStartEvent = config.sessionStartEvent ?? { type: \"session_start\", reason: \"startup\" };\n\n\t\t// Always subscribe to agent events for internal handling\n\t\t// (session persistence, extensions, auto-compaction, retry logic)\n\t\tthis._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);\n\t\tthis._installAgentToolHooks();\n\t\tthis._installAgentNextTurnRefresh();\n\n\t\tthis._buildRuntime({\n\t\t\tactiveToolNames: this._initialActiveToolNames,\n\t\t\tincludeAllExtensionTools: true,\n\t\t});\n\t}\n\n\tget modelRuntime(): ModelRuntime {\n\t\treturn this._modelRuntime;\n\t}\n\n\tprivate async _getRequiredRequestAuth(model: Model<any>): Promise<{\n\t\tapiKey: string;\n\t\theaders?: Record<string, string>;\n\t\tenv?: Record<string, string>;\n\t}> {\n\t\tlet result: AuthResult | undefined;\n\t\ttry {\n\t\t\tresult = await this._modelRuntime.getAuth(model);\n\t\t} catch (error) {\n\t\t\tconst cause = error instanceof Error ? error.cause : undefined;\n\t\t\tif (cause instanceof Error && cause.message === \"authHeader requires a resolved API key\") {\n\t\t\t\tthrow new Error(formatNoApiKeyFoundMessage(model.provider));\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (result?.auth.apiKey) {\n\t\t\treturn {\n\t\t\t\tapiKey: result.auth.apiKey,\n\t\t\t\theaders: withoutDeletedHeaders(result.auth.headers),\n\t\t\t\tenv: result.env,\n\t\t\t};\n\t\t}\n\n\t\tconst isOAuth = this._modelRuntime.isUsingOAuth(model.provider);\n\t\tif (isOAuth) {\n\t\t\tthrow new Error(\n\t\t\t\t`Authentication failed for \"${model.provider}\". ` +\n\t\t\t\t\t`Credentials may have expired or network is unavailable. ` +\n\t\t\t\t\t`Run '/login ${model.provider}' to re-authenticate.`,\n\t\t\t);\n\t\t}\n\t\tthrow new Error(formatNoApiKeyFoundMessage(model.provider));\n\t}\n\n\tprivate async _getSummarizationRequestAuth(model: Model<any>): Promise<{\n\t\tapiKey?: string;\n\t\theaders?: Record<string, string>;\n\t\tenv?: Record<string, string>;\n\t}> {\n\t\tif (this.agent.streamFn === streamSimple) {\n\t\t\treturn this._getRequiredRequestAuth(model);\n\t\t}\n\n\t\ttry {\n\t\t\tconst result = await this._modelRuntime.getAuth(model);\n\t\t\treturn result\n\t\t\t\t? { apiKey: result.auth.apiKey, headers: withoutDeletedHeaders(result.auth.headers), env: result.env }\n\t\t\t\t: {};\n\t\t} catch {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\t/**\n\t * Install tool hooks once on the Agent instance.\n\t *\n\t * The callbacks read `this._extensionRunner` at execution time, so extension reload swaps in the\n\t * new runner without reinstalling hooks. Extension-specific tool wrappers are still used to adapt\n\t * registered tool execution to the extension context. Tool call and tool result interception now\n\t * happens here instead of in wrappers.\n\t */\n\tprivate _installAgentToolHooks(): void {\n\t\tthis.agent.beforeToolCall = async ({ toolCall, args }) => {\n\t\t\t// lunr: permission gate (async) runs before sync gates — may show an approval dialog.\n\t\t\t// Explicit /swarm turns are pre-approved for the agent-swarm gate: the last\n\t\t\t// user message carries the literal [SWARM MODE] prefix on both TUI and gateway.\n\t\t\tconst explicitSwarmTurn =\n\t\t\t\ttoolCall.name === \"subagent\" ? isExplicitSwarmTurn(this.sessionManager.getBranch()) : undefined;\n\t\t\tconst permBlock = await gateToolCall(\n\t\t\t\ttoolCall.name,\n\t\t\t\targs as Record<string, unknown>,\n\t\t\t\tthis._cwd,\n\t\t\t\tthis.sessionId,\n\t\t\t\t{ explicitSwarmTurn },\n\t\t\t);\n\t\t\tif (permBlock) {\n\t\t\t\treturn { block: true, reason: permBlock.reason };\n\t\t\t}\n\n\t\t\t// lunr: rollback snapshot — capture pre-write content for mutating tools before they run.\n\t\t\ttry {\n\t\t\t\tconst toolName = toolCall.name;\n\t\t\t\tconst argPath =\n\t\t\t\t\targs && typeof args === \"object\" && \"path\" in args\n\t\t\t\t\t\t? resolve(this._cwd, String((args as Record<string, unknown>).path))\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst pathsToSnapshot: string[] = [];\n\t\t\t\tif (toolName === \"edit\" || toolName === \"write\") {\n\t\t\t\t\tif (argPath) pathsToSnapshot.push(argPath);\n\t\t\t\t} else if (toolName === \"behavior_add\" || toolName === \"behavior_remove\") {\n\t\t\t\t\tpathsToSnapshot.push(join(getAgentDir(), \"behavior.md\"));\n\t\t\t\t} else if (toolName === \"memory_add\" || toolName === \"memory_remove\") {\n\t\t\t\t\t// lunr: simple-memory lives next to the lunr agent dir (~/.lunr/simple-memory)\n\t\t\t\t\tpathsToSnapshot.push(join(dirname(getAgentDir()), \"simple-memory\", \"memory.md\"));\n\t\t\t\t} else if (toolName === \"cron\" && args && typeof args === \"object\") {\n\t\t\t\t\tconst action = String((args as Record<string, unknown>).action ?? \"\");\n\t\t\t\t\tif (action === \"create\" || action === \"update\" || action === \"remove\") {\n\t\t\t\t\t\tpathsToSnapshot.push(join(getAgentDir(), \"cron\", \"jobs.json\"));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const p of pathsToSnapshot) {\n\t\t\t\t\trollbackSnapshotBeforeWrite(p, this.sessionId);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// rollback failures must never block the tool call\n\t\t\t}\n\n\t\t\t// lunr: core-owned gates (plan mode) run first, even without extension handlers\n\t\t\tfor (const gate of this._toolCallGates) {\n\t\t\t\tconst gateResult = gate(toolCall.name, args as Record<string, unknown>);\n\t\t\t\tif (gateResult?.block) {\n\t\t\t\t\treturn { block: true, reason: gateResult.reason };\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst runner = this._extensionRunner;\n\t\t\tif (!runner.hasHandlers(\"tool_call\")) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\treturn await runner.emitToolCall({\n\t\t\t\t\ttype: \"tool_call\",\n\t\t\t\t\ttoolName: toolCall.name,\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tif (err instanceof Error) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t\tthrow new Error(`Extension failed, blocking execution: ${String(err)}`);\n\t\t\t}\n\t\t};\n\n\t\tthis.agent.afterToolCall = async ({ toolCall, args, result, isError }) => {\n\t\t\tconst runner = this._extensionRunner;\n\t\t\tif (!runner.hasHandlers(\"tool_result\")) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst hookResult = await runner.emitToolResult({\n\t\t\t\ttype: \"tool_result\",\n\t\t\t\ttoolName: toolCall.name,\n\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\tcontent: result.content,\n\t\t\t\tdetails: result.details,\n\t\t\t\tisError,\n\t\t\t});\n\n\t\t\tif (!hookResult) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontent: hookResult.content,\n\t\t\t\tdetails: hookResult.details,\n\t\t\t\tisError: hookResult.isError ?? isError,\n\t\t\t};\n\t\t};\n\t}\n\n\tprivate _installAgentNextTurnRefresh(): void {\n\t\tconst previousPrepareNextTurnWithContext =\n\t\t\tthis.agent.prepareNextTurnWithContext ??\n\t\t\t(this.agent.prepareNextTurn\n\t\t\t\t? async (_turn: PrepareNextTurnContext, signal?: AbortSignal) => await this.agent.prepareNextTurn?.(signal)\n\t\t\t\t: undefined);\n\t\tthis.agent.prepareNextTurnWithContext = async (turn, signal) => {\n\t\t\tconst previousSnapshot = await previousPrepareNextTurnWithContext?.(turn, signal);\n\t\t\tconst previousContext = previousSnapshot?.context ?? turn.context;\n\n\t\t\treturn {\n\t\t\t\t...previousSnapshot,\n\t\t\t\tcontext: {\n\t\t\t\t\t...previousContext,\n\t\t\t\t\tsystemPrompt: this._withSystemPromptAppend(this._systemPromptOverride ?? this._baseSystemPrompt),\n\t\t\t\t\ttools: this.agent.state.tools.slice(),\n\t\t\t\t},\n\t\t\t\tmodel: this.agent.state.model,\n\t\t\t\tthinkingLevel: this.agent.state.thinkingLevel,\n\t\t\t};\n\t\t};\n\t}\n\n\t// =========================================================================\n\t// Event Subscription\n\t// =========================================================================\n\n\t/** Emit an event to all listeners */\n\tprivate _emit(event: AgentSessionEvent): void {\n\t\tfor (const l of this._eventListeners) {\n\t\t\tl(event);\n\t\t}\n\t}\n\n\tprivate _emitQueueUpdate(): void {\n\t\tthis._emit({\n\t\t\ttype: \"queue_update\",\n\t\t\tsteering: [...this._steeringMessages],\n\t\t\tfollowUp: [...this._followUpMessages],\n\t\t});\n\t}\n\n\tprivate _getIdleWaitPromise(): Promise<void> {\n\t\tif (!this._idleWaitPromise) {\n\t\t\tthis._idleWaitPromise = new Promise((resolve) => {\n\t\t\t\tthis._resolveIdleWait = resolve;\n\t\t\t});\n\t\t}\n\t\treturn this._idleWaitPromise;\n\t}\n\n\tprivate _resolveIdleWaitIfIdle(): void {\n\t\tif (this._isAgentRunActive || !this._resolveIdleWait) {\n\t\t\treturn;\n\t\t}\n\t\tconst resolve = this._resolveIdleWait;\n\t\tthis._idleWaitPromise = undefined;\n\t\tthis._resolveIdleWait = undefined;\n\t\tresolve();\n\t}\n\n\tprivate async _emitAgentSettled(): Promise<void> {\n\t\tthis._isAgentRunActive = false;\n\t\ttry {\n\t\t\tawait this._extensionRunner.emit({ type: \"agent_settled\" });\n\t\t\tthis._emit({ type: \"agent_settled\" });\n\t\t} finally {\n\t\t\tthis._resolveIdleWaitIfIdle();\n\t\t}\n\t}\n\n\t// Track last assistant message for auto-compaction check\n\tprivate _lastAssistantMessage: AssistantMessage | undefined = undefined;\n\n\t/** Internal handler for agent events - shared by subscribe and reconnect */\n\tprivate _handleAgentEvent = async (event: AgentEvent): Promise<void> => {\n\t\t// When a user message starts, check if it's from either queue and remove it BEFORE emitting\n\t\t// This ensures the UI sees the updated queue state\n\t\tif (event.type === \"message_start\" && event.message.role === \"user\") {\n\t\t\tthis._overflowRecoveryAttempted = false;\n\t\t\tconst messageText = this._getUserMessageText(event.message);\n\t\t\tif (messageText) {\n\t\t\t\t// Check steering queue first\n\t\t\t\tconst steeringIndex = this._steeringMessages.indexOf(messageText);\n\t\t\t\tif (steeringIndex !== -1) {\n\t\t\t\t\tthis._steeringMessages.splice(steeringIndex, 1);\n\t\t\t\t\tthis._emitQueueUpdate();\n\t\t\t\t} else {\n\t\t\t\t\t// Check follow-up queue\n\t\t\t\t\tconst followUpIndex = this._followUpMessages.indexOf(messageText);\n\t\t\t\t\tif (followUpIndex !== -1) {\n\t\t\t\t\t\tthis._followUpMessages.splice(followUpIndex, 1);\n\t\t\t\t\t\tthis._emitQueueUpdate();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Emit to extensions first\n\t\tawait this._emitExtensionEvent(event);\n\n\t\t// Notify all listeners\n\t\tthis._emit(event.type === \"agent_end\" ? { ...event, willRetry: this._willRetryAfterAgentEnd(event) } : event);\n\n\t\t// Handle session persistence\n\t\tif (event.type === \"message_end\") {\n\t\t\t// Check if this is a custom message from extensions\n\t\t\tif (event.message.role === \"custom\") {\n\t\t\t\t// Persist as CustomMessageEntry\n\t\t\t\tthis.sessionManager.appendCustomMessageEntry(\n\t\t\t\t\tevent.message.customType,\n\t\t\t\t\tevent.message.content,\n\t\t\t\t\tevent.message.display,\n\t\t\t\t\tevent.message.details,\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tevent.message.role === \"user\" ||\n\t\t\t\tevent.message.role === \"assistant\" ||\n\t\t\t\tevent.message.role === \"toolResult\"\n\t\t\t) {\n\t\t\t\t// Regular LLM message - persist as SessionMessageEntry\n\t\t\t\tthis.sessionManager.appendMessage(event.message);\n\t\t\t}\n\t\t\t// Other message types (bashExecution, compactionSummary, branchSummary) are persisted elsewhere\n\n\t\t\t// Track assistant message for auto-compaction (checked on agent_end)\n\t\t\tif (event.message.role === \"assistant\") {\n\t\t\t\tthis._lastAssistantMessage = event.message;\n\n\t\t\t\tconst assistantMsg = event.message as AssistantMessage;\n\t\t\t\tif (assistantMsg.stopReason !== \"error\") {\n\t\t\t\t\tthis._overflowRecoveryAttempted = false;\n\t\t\t\t}\n\n\t\t\t\t// Reset retry counter immediately on successful assistant response\n\t\t\t\t// This prevents accumulation across multiple LLM calls within a turn\n\t\t\t\tif (assistantMsg.stopReason !== \"error\" && this._retryAttempt > 0) {\n\t\t\t\t\tthis._emit({\n\t\t\t\t\t\ttype: \"auto_retry_end\",\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tattempt: this._retryAttempt,\n\t\t\t\t\t});\n\t\t\t\t\tthis._retryAttempt = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate _willRetryAfterAgentEnd(event: Extract<AgentEvent, { type: \"agent_end\" }>): boolean {\n\t\tconst settings = this.settingsManager.getRetrySettings();\n\t\tif (!settings.enabled || this._retryAttempt >= settings.maxRetries) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = event.messages.length - 1; i >= 0; i--) {\n\t\t\tconst message = event.messages[i];\n\t\t\tif (message.role === \"assistant\") {\n\t\t\t\treturn this._isRetryableError(message as AssistantMessage);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Extract text content from a message */\n\tprivate _getUserMessageText(message: Message): string {\n\t\tif (message.role !== \"user\") return \"\";\n\t\tconst content = message.content;\n\t\tif (typeof content === \"string\") return content;\n\t\tconst textBlocks = content.filter((c) => c.type === \"text\");\n\t\treturn textBlocks.map((c) => (c as TextContent).text).join(\"\");\n\t}\n\n\t/** Find the last assistant message in agent state (including aborted ones) */\n\tprivate _findLastAssistantMessage(): AssistantMessage | undefined {\n\t\tconst messages = this.agent.state.messages;\n\t\tfor (let i = messages.length - 1; i >= 0; i--) {\n\t\t\tconst msg = messages[i];\n\t\t\tif (msg.role === \"assistant\") {\n\t\t\t\treturn msg as AssistantMessage;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate _replaceMessageInPlace(target: AgentMessage, replacement: AgentMessage): void {\n\t\t// Agent-core stores the finalized message object in its state before emitting message_end.\n\t\t// SessionManager persistence happens later in _handleAgentEvent() with event.message.\n\t\t// Mutating this object in place keeps agent state, later turn/agent events, listeners,\n\t\t// and the eventual SessionManager.appendMessage(event.message) persistence in sync.\n\t\tif (target === replacement) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetRecord = target as unknown as Record<string, unknown>;\n\t\tfor (const key of Object.keys(targetRecord)) {\n\t\t\tdelete targetRecord[key];\n\t\t}\n\t\tObject.assign(targetRecord, replacement);\n\t}\n\n\t/** Emit extension events based on agent events */\n\tprivate async _emitExtensionEvent(event: AgentEvent): Promise<void> {\n\t\tif (event.type === \"agent_start\") {\n\t\t\tthis._turnIndex = 0;\n\t\t\tawait this._extensionRunner.emit({ type: \"agent_start\" });\n\t\t} else if (event.type === \"agent_end\") {\n\t\t\tawait this._extensionRunner.emit({ type: \"agent_end\", messages: event.messages });\n\t\t} else if (event.type === \"turn_start\") {\n\t\t\tconst extensionEvent: TurnStartEvent = {\n\t\t\t\ttype: \"turn_start\",\n\t\t\t\tturnIndex: this._turnIndex,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t} else if (event.type === \"turn_end\") {\n\t\t\tconst extensionEvent: TurnEndEvent = {\n\t\t\t\ttype: \"turn_end\",\n\t\t\t\tturnIndex: this._turnIndex,\n\t\t\t\tmessage: event.message,\n\t\t\t\ttoolResults: event.toolResults,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t\tthis._turnIndex++;\n\t\t} else if (event.type === \"message_start\") {\n\t\t\tconst extensionEvent: MessageStartEvent = {\n\t\t\t\ttype: \"message_start\",\n\t\t\t\tmessage: event.message,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t} else if (event.type === \"message_update\") {\n\t\t\tconst extensionEvent: MessageUpdateEvent = {\n\t\t\t\ttype: \"message_update\",\n\t\t\t\tmessage: event.message,\n\t\t\t\tassistantMessageEvent: event.assistantMessageEvent,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t} else if (event.type === \"message_end\") {\n\t\t\tconst extensionEvent: MessageEndEvent = {\n\t\t\t\ttype: \"message_end\",\n\t\t\t\tmessage: event.message,\n\t\t\t};\n\t\t\tconst replacement = await this._extensionRunner.emitMessageEnd(extensionEvent);\n\t\t\tif (replacement) {\n\t\t\t\t// Untyped extension handlers can return messages with null/missing content;\n\t\t\t\t// normalize so it never enters agent state or session history.\n\t\t\t\tconst normalized =\n\t\t\t\t\t(replacement.role === \"user\" ||\n\t\t\t\t\t\treplacement.role === \"assistant\" ||\n\t\t\t\t\t\treplacement.role === \"toolResult\" ||\n\t\t\t\t\t\treplacement.role === \"custom\") &&\n\t\t\t\t\treplacement.content == null\n\t\t\t\t\t\t? ({ ...replacement, content: [] } as AgentMessage)\n\t\t\t\t\t\t: replacement;\n\t\t\t\tthis._replaceMessageInPlace(event.message, normalized);\n\t\t\t}\n\t\t} else if (event.type === \"tool_execution_start\") {\n\t\t\tconst extensionEvent: ToolExecutionStartEvent = {\n\t\t\t\ttype: \"tool_execution_start\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: event.args,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t} else if (event.type === \"tool_execution_update\") {\n\t\t\tconst extensionEvent: ToolExecutionUpdateEvent = {\n\t\t\t\ttype: \"tool_execution_update\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: event.args,\n\t\t\t\tpartialResult: event.partialResult,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t} else if (event.type === \"tool_execution_end\") {\n\t\t\tconst extensionEvent: ToolExecutionEndEvent = {\n\t\t\t\ttype: \"tool_execution_end\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\tresult: event.result,\n\t\t\t\tisError: event.isError,\n\t\t\t};\n\t\t\tawait this._extensionRunner.emit(extensionEvent);\n\t\t}\n\t}\n\n\t/**\n\t * Subscribe to agent events.\n\t * Session persistence is handled internally (saves messages on message_end).\n\t * Multiple listeners can be added. Returns unsubscribe function for this listener.\n\t */\n\tsubscribe(listener: AgentSessionEventListener): () => void {\n\t\tthis._eventListeners.push(listener);\n\n\t\t// Return unsubscribe function for this specific listener\n\t\treturn () => {\n\t\t\tconst index = this._eventListeners.indexOf(listener);\n\t\t\tif (index !== -1) {\n\t\t\t\tthis._eventListeners.splice(index, 1);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Temporarily disconnect from agent events.\n\t * User listeners are preserved and will receive events again after resubscribe().\n\t * Used internally during operations that need to pause event processing.\n\t */\n\tprivate _disconnectFromAgent(): void {\n\t\tif (this._unsubscribeAgent) {\n\t\t\tthis._unsubscribeAgent();\n\t\t\tthis._unsubscribeAgent = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Reconnect to agent events after _disconnectFromAgent().\n\t * Preserves all existing listeners.\n\t */\n\tprivate _reconnectToAgent(): void {\n\t\tif (this._unsubscribeAgent) return; // Already connected\n\t\tthis._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);\n\t}\n\n\t/**\n\t * Remove all listeners and disconnect from agent.\n\t * Call this when completely done with the session.\n\t */\n\tdispose(): void {\n\t\ttry {\n\t\t\tthis.abortRetry();\n\t\t\tthis.abortCompaction();\n\t\t\tthis.abortBranchSummary();\n\t\t\tthis.abortBash();\n\t\t\tthis.agent.abort();\n\t\t} catch {\n\t\t\t// Dispose must succeed even if an abort hook throws.\n\t\t}\n\n\t\tthis._extensionRunner.invalidate(\n\t\t\t\"This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().\",\n\t\t);\n\t\tthis._disconnectFromAgent();\n\t\tthis._eventListeners = [];\n\t\tcleanupSessionResources(this.sessionId);\n\t}\n\n\t// =========================================================================\n\t// Read-only State Access\n\t// =========================================================================\n\n\t/** Full agent state */\n\tget state(): AgentState {\n\t\treturn this.agent.state;\n\t}\n\n\t/** Current model (may be undefined if not yet selected) */\n\tget model(): Model<any> | undefined {\n\t\treturn this.agent.state.model;\n\t}\n\n\t/** Current thinking level */\n\tget thinkingLevel(): ThinkingLevel {\n\t\treturn this.agent.state.thinkingLevel;\n\t}\n\n\t/** Whether the session is currently processing an agent run or post-run continuation. */\n\tget isStreaming(): boolean {\n\t\treturn this._isAgentRunActive;\n\t}\n\n\t/** Whether the session has no active agent run, retry, auto-compaction, or queued continuation. */\n\tget isIdle(): boolean {\n\t\treturn !this._isAgentRunActive;\n\t}\n\n\t/** Current effective system prompt (includes any per-turn extension modifications) */\n\tget systemPrompt(): string {\n\t\treturn this.agent.state.systemPrompt;\n\t}\n\n\t/**\n\t * lunr: register a core-owned tool-call gate (plan mode). Gates run before extension\n\t * tool_call handlers and even when no extension handles tool_call. Returns an\n\t * unsubscribe function.\n\t */\n\taddToolCallGate(gate: ToolCallGate): () => void {\n\t\tthis._toolCallGates.push(gate);\n\t\treturn () => {\n\t\t\tconst index = this._toolCallGates.indexOf(gate);\n\t\t\tif (index >= 0) this._toolCallGates.splice(index, 1);\n\t\t};\n\t}\n\n\t/**\n\t * lunr: append (or clear, with undefined) a core-owned section on the effective system\n\t * prompt. Applied on top of the base prompt and any per-turn extension override.\n\t */\n\tsetSystemPromptAppend(text: string | undefined): void {\n\t\tconst next = text && text.trim().length > 0 ? text : undefined;\n\t\tif (next === this._systemPromptAppend) return;\n\t\tthis._systemPromptAppend = next;\n\t\tthis.agent.state.systemPrompt = this._withSystemPromptAppend(\n\t\t\tthis._systemPromptOverride ?? this._baseSystemPrompt,\n\t\t);\n\t}\n\n\tprivate _withSystemPromptAppend(prompt: string): string {\n\t\treturn this._systemPromptAppend ? `${prompt}\\n\\n${this._systemPromptAppend}` : prompt;\n\t}\n\n\t/** Current retry attempt (0 if not retrying) */\n\tget retryAttempt(): number {\n\t\treturn this._retryAttempt;\n\t}\n\n\t/**\n\t * Get the names of currently active tools.\n\t * Returns the names of tools currently set on the agent.\n\t */\n\tgetActiveToolNames(): string[] {\n\t\treturn this.agent.state.tools.map((t) => t.name);\n\t}\n\n\t/**\n\t * Get all configured tools with name, description, parameter schema, prompt guidelines, and source metadata.\n\t */\n\tgetAllTools(): ToolInfo[] {\n\t\treturn Array.from(this._toolDefinitions.values()).map(({ definition, sourceInfo }) => ({\n\t\t\tname: definition.name,\n\t\t\tdescription: definition.description,\n\t\t\tparameters: definition.parameters,\n\t\t\tpromptGuidelines: definition.promptGuidelines,\n\t\t\tsourceInfo,\n\t\t}));\n\t}\n\n\tgetToolDefinition(name: string): ToolDefinition | undefined {\n\t\treturn this._toolDefinitions.get(name)?.definition;\n\t}\n\n\t/**\n\t * Set active tools by name.\n\t * Only tools in the registry can be enabled. Unknown tool names are ignored.\n\t * Also rebuilds the system prompt to reflect the new tool set.\n\t * Changes take effect on the next agent turn.\n\t */\n\tsetActiveToolsByName(toolNames: string[]): void {\n\t\tconst tools: AgentTool[] = [];\n\t\tconst validToolNames: string[] = [];\n\t\tfor (const name of toolNames) {\n\t\t\tconst tool = this._toolRegistry.get(name);\n\t\t\tif (tool) {\n\t\t\t\ttools.push(tool);\n\t\t\t\tvalidToolNames.push(name);\n\t\t\t}\n\t\t}\n\t\tthis.agent.state.tools = tools;\n\n\t\t// Rebuild base system prompt with new tool set\n\t\tthis._baseSystemPrompt = this._rebuildSystemPrompt(validToolNames);\n\t\tthis.agent.state.systemPrompt = this._withSystemPromptAppend(\n\t\t\tthis._systemPromptOverride ?? this._baseSystemPrompt,\n\t\t);\n\t}\n\n\t/** Whether compaction or branch summarization is currently running */\n\tget isCompacting(): boolean {\n\t\treturn (\n\t\t\tthis._autoCompactionAbortController !== undefined ||\n\t\t\tthis._compactionAbortController !== undefined ||\n\t\t\tthis._branchSummaryAbortController !== undefined\n\t\t);\n\t}\n\n\t/** All messages including custom types like BashExecutionMessage */\n\tget messages(): AgentMessage[] {\n\t\treturn this.agent.state.messages;\n\t}\n\n\t/** Current steering mode */\n\tget steeringMode(): \"all\" | \"one-at-a-time\" {\n\t\treturn this.agent.steeringMode;\n\t}\n\n\t/** Current follow-up mode */\n\tget followUpMode(): \"all\" | \"one-at-a-time\" {\n\t\treturn this.agent.followUpMode;\n\t}\n\n\t/** Current session file path, or undefined if sessions are disabled */\n\tget sessionFile(): string | undefined {\n\t\treturn this.sessionManager.getSessionFile();\n\t}\n\n\t/** Current session ID */\n\tget sessionId(): string {\n\t\treturn this.sessionManager.getSessionId();\n\t}\n\n\t/** Current session display name, if set */\n\tget sessionName(): string | undefined {\n\t\treturn this.sessionManager.getSessionName();\n\t}\n\n\t/** Scoped models for cycling (from --models flag) */\n\tget scopedModels(): ReadonlyArray<{ model: Model<any>; thinkingLevel?: ThinkingLevel }> {\n\t\treturn this._scopedModels;\n\t}\n\n\t/** Update scoped models for cycling */\n\tsetScopedModels(scopedModels: Array<{ model: Model<any>; thinkingLevel?: ThinkingLevel }>): void {\n\t\tthis._scopedModels = scopedModels;\n\t}\n\n\t/** File-based prompt templates */\n\tget promptTemplates(): ReadonlyArray<PromptTemplate> {\n\t\treturn this._resourceLoader.getPrompts().prompts;\n\t}\n\n\tprivate _normalizePromptSnippet(text: string | undefined): string | undefined {\n\t\tif (!text) return undefined;\n\t\tconst oneLine = text\n\t\t\t.replace(/[\\r\\n]+/g, \" \")\n\t\t\t.replace(/\\s+/g, \" \")\n\t\t\t.trim();\n\t\treturn oneLine.length > 0 ? oneLine : undefined;\n\t}\n\n\tprivate _normalizePromptGuidelines(guidelines: string[] | undefined): string[] {\n\t\tif (!guidelines || guidelines.length === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst unique = new Set<string>();\n\t\tfor (const guideline of guidelines) {\n\t\t\tconst normalized = guideline.trim();\n\t\t\tif (normalized.length > 0) {\n\t\t\t\tunique.add(normalized);\n\t\t\t}\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate _rebuildSystemPrompt(toolNames: string[]): string {\n\t\tconst validToolNames = toolNames.filter((name) => this._toolRegistry.has(name));\n\t\tconst toolSnippets: Record<string, string> = {};\n\t\tconst promptGuidelines: string[] = [];\n\t\tfor (const name of validToolNames) {\n\t\t\tconst snippet = this._toolPromptSnippets.get(name);\n\t\t\tif (snippet) {\n\t\t\t\ttoolSnippets[name] = snippet;\n\t\t\t}\n\n\t\t\tconst toolGuidelines = this._toolPromptGuidelines.get(name);\n\t\t\tif (toolGuidelines) {\n\t\t\t\tpromptGuidelines.push(...toolGuidelines);\n\t\t\t}\n\t\t}\n\n\t\tconst loaderSystemPrompt = this._resourceLoader.getSystemPrompt();\n\t\tconst loaderAppendSystemPrompt = this._resourceLoader.getAppendSystemPrompt();\n\t\tconst appendSystemPrompt =\n\t\t\tloaderAppendSystemPrompt.length > 0 ? loaderAppendSystemPrompt.join(\"\\n\\n\") : undefined;\n\t\tconst loadedSkills = this._resourceLoader.getSkills().skills;\n\t\tconst loadedContextFiles = this._resourceLoader.getAgentsFiles().agentsFiles;\n\n\t\tthis._baseSystemPromptOptions = {\n\t\t\tcwd: this._cwd,\n\t\t\tskills: loadedSkills,\n\t\t\tcontextFiles: loadedContextFiles,\n\t\t\tcustomPrompt: loaderSystemPrompt,\n\t\t\tappendSystemPrompt,\n\t\t\tselectedTools: validToolNames,\n\t\t\ttoolSnippets,\n\t\t\tpromptGuidelines,\n\t\t};\n\t\treturn buildSystemPrompt(this._baseSystemPromptOptions);\n\t}\n\n\t// =========================================================================\n\t// Prompting\n\t// =========================================================================\n\n\tprivate async _runAgentPrompt(messages: AgentMessage | AgentMessage[]): Promise<void> {\n\t\tthis._isAgentRunActive = true;\n\t\ttry {\n\t\t\tawait this.agent.prompt(messages);\n\t\t\twhile (await this._handlePostAgentRun()) {\n\t\t\t\tawait this.agent.continue();\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._systemPromptOverride = undefined;\n\t\t\tthis._flushPendingBashMessages();\n\t\t\tawait this._emitAgentSettled();\n\t\t}\n\t}\n\n\tprivate async _handlePostAgentRun(): Promise<boolean> {\n\t\tconst msg = this._lastAssistantMessage;\n\t\tthis._lastAssistantMessage = undefined;\n\t\tif (!msg) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// lunr: quota-dead or auth-invalid keys rotate immediately — same-key backoff\n\t\t// against an exhausted credential is pointless.\n\t\tif (msg.stopReason === \"error\" && this._isRotationError(msg) && (await this._tryRotateSubscriptionKey(msg))) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._isRetryableError(msg) && (await this._prepareRetry(msg))) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// lunr: last-resort rotation for retryable errors once same-key backoff is exhausted.\n\t\tif (msg.stopReason === \"error\" && this._isRetryableError(msg) && (await this._tryRotateSubscriptionKey(msg))) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (msg.stopReason === \"error\" && this._retryAttempt > 0) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"auto_retry_end\",\n\t\t\t\tsuccess: false,\n\t\t\t\tattempt: this._retryAttempt,\n\t\t\t\tfinalError: msg.errorMessage,\n\t\t\t});\n\t\t\tthis._retryAttempt = 0;\n\t\t}\n\n\t\tif (await this._checkCompaction(msg)) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// The agent loop drains both queues before emitting agent_end. Any messages\n\t\t// here were queued by agent_end extension handlers and need a continuation.\n\t\treturn this.agent.hasQueuedMessages();\n\t}\n\n\t/**\n\t * Send a prompt to the agent.\n\t * - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming\n\t * - Expands file-based prompt templates by default\n\t * - During streaming, queues via steer() or followUp() based on streamingBehavior option\n\t * - Validates model and API key before sending (when not streaming)\n\t * @throws Error if streaming and no streamingBehavior specified\n\t * @throws Error if no model selected or no API key available (when not streaming)\n\t */\n\tasync prompt(text: string, options?: PromptOptions): Promise<void> {\n\t\tconst expandPromptTemplates = options?.expandPromptTemplates ?? true;\n\t\tconst preflightResult = options?.preflightResult;\n\t\tlet messages: AgentMessage[] | undefined;\n\n\t\ttry {\n\t\t\t// Handle extension commands first (execute immediately, even during streaming)\n\t\t\t// Extension commands manage their own LLM interaction via pi.sendMessage()\n\t\t\tif (expandPromptTemplates && text.startsWith(\"/\")) {\n\t\t\t\tconst handled = await this._tryExecuteExtensionCommand(text);\n\t\t\t\tif (handled) {\n\t\t\t\t\t// Extension command executed, no prompt to send\n\t\t\t\t\tpreflightResult?.(true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Emit input event for extension interception (before skill/template expansion)\n\t\t\tlet currentText = text;\n\t\t\tlet currentImages = options?.images;\n\t\t\tif (this._extensionRunner.hasHandlers(\"input\")) {\n\t\t\t\tconst inputResult = await this._extensionRunner.emitInput(\n\t\t\t\t\tcurrentText,\n\t\t\t\t\tcurrentImages,\n\t\t\t\t\toptions?.source ?? \"interactive\",\n\t\t\t\t\tthis.isStreaming ? options?.streamingBehavior : undefined,\n\t\t\t\t);\n\t\t\t\tif (inputResult.action === \"handled\") {\n\t\t\t\t\tpreflightResult?.(true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (inputResult.action === \"transform\") {\n\t\t\t\t\tcurrentText = inputResult.text;\n\t\t\t\t\tcurrentImages = inputResult.images ?? currentImages;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Expand skill commands (/skill:name args) and prompt templates (/template args)\n\t\t\tlet expandedText = currentText;\n\t\t\tif (expandPromptTemplates) {\n\t\t\t\texpandedText = this._expandSkillCommand(expandedText);\n\t\t\t\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\t\t\t}\n\n\t\t\t// If streaming, queue via steer() or followUp() based on option\n\t\t\tif (this.isStreaming) {\n\t\t\t\tif (!options?.streamingBehavior) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Agent is already processing. Specify streamingBehavior ('steer' or 'followUp') to queue the message.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (options.streamingBehavior === \"followUp\") {\n\t\t\t\t\tawait this._queueFollowUp(expandedText, currentImages);\n\t\t\t\t} else {\n\t\t\t\t\tawait this._queueSteer(expandedText, currentImages);\n\t\t\t\t}\n\t\t\t\tpreflightResult?.(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Flush any pending bash messages before the new prompt\n\t\t\tthis._flushPendingBashMessages();\n\n\t\t\t// Validate model\n\t\t\tif (!this.model) {\n\t\t\t\tthrow new Error(formatNoModelSelectedMessage());\n\t\t\t}\n\n\t\t\tconst hasConfiguredAuth =\n\t\t\t\tthis._modelRuntime.hasConfiguredAuth(this.model.provider) ||\n\t\t\t\t(await this._modelRuntime.checkAuth(this.model.provider)) !== undefined;\n\t\t\tif (!hasConfiguredAuth) {\n\t\t\t\tconst isOAuth = this._modelRuntime.isUsingOAuth(this.model.provider);\n\t\t\t\tif (isOAuth) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Authentication failed for \"${this.model.provider}\". ` +\n\t\t\t\t\t\t\t`Credentials may have expired or network is unavailable. ` +\n\t\t\t\t\t\t\t`Run '/login ${this.model.provider}' to re-authenticate.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthrow new Error(formatNoApiKeyFoundMessage(this.model.provider));\n\t\t\t}\n\n\t\t\t// Check if we need to compact before sending (catches aborted responses).\n\t\t\t// The user's new prompt is sent below, so do not call agent.continue() here.\n\t\t\tconst lastAssistant = this._findLastAssistantMessage();\n\t\t\tif (lastAssistant) {\n\t\t\t\tawait this._checkCompaction(lastAssistant, false);\n\t\t\t}\n\n\t\t\t// Build messages array (custom message if any, then user message)\n\t\t\tmessages = [];\n\n\t\t\t// Add user message\n\t\t\tconst userContent: (TextContent | ImageContent)[] = [{ type: \"text\", text: expandedText }];\n\t\t\tif (currentImages) {\n\t\t\t\tuserContent.push(...currentImages);\n\t\t\t}\n\t\t\tmessages.push({\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: userContent,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\n\t\t\t// Inject any pending \"nextTurn\" messages as context alongside the user message\n\t\t\tfor (const msg of this._pendingNextTurnMessages) {\n\t\t\t\tmessages.push(msg);\n\t\t\t}\n\t\t\tthis._pendingNextTurnMessages = [];\n\n\t\t\t// Emit before_agent_start extension event\n\t\t\tconst result = await this._extensionRunner.emitBeforeAgentStart(\n\t\t\t\texpandedText,\n\t\t\t\tcurrentImages,\n\t\t\t\tthis._baseSystemPrompt,\n\t\t\t\tthis._baseSystemPromptOptions,\n\t\t\t);\n\t\t\t// Add all custom messages from extensions\n\t\t\tif (result?.messages) {\n\t\t\t\tfor (const msg of result.messages) {\n\t\t\t\t\tmessages.push({\n\t\t\t\t\t\trole: \"custom\",\n\t\t\t\t\t\tcustomType: msg.customType,\n\t\t\t\t\t\t// Untyped extensions can pass null/missing content; normalize at ingestion.\n\t\t\t\t\t\tcontent: msg.content ?? [],\n\t\t\t\t\t\tdisplay: msg.display,\n\t\t\t\t\t\tdetails: msg.details,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Apply extension-modified system prompt, or reset to base\n\t\t\tif (result?.systemPrompt !== undefined) {\n\t\t\t\tthis._systemPromptOverride = result.systemPrompt;\n\t\t\t\tthis.agent.state.systemPrompt = this._withSystemPromptAppend(result.systemPrompt);\n\t\t\t} else {\n\t\t\t\t// Ensure we're using the base prompt (in case previous turn had modifications)\n\t\t\t\tthis._systemPromptOverride = undefined;\n\t\t\t\tthis.agent.state.systemPrompt = this._withSystemPromptAppend(this._baseSystemPrompt);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tpreflightResult?.(false);\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!messages) {\n\t\t\treturn;\n\t\t}\n\n\t\tpreflightResult?.(true);\n\t\tawait this._runAgentPrompt(messages);\n\t}\n\n\t/**\n\t * Try to execute an extension command. Returns true if command was found and executed.\n\t */\n\tprivate async _tryExecuteExtensionCommand(text: string): Promise<boolean> {\n\t\t// Parse command name and args\n\t\tconst spaceIndex = text.indexOf(\" \");\n\t\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\t\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1);\n\n\t\tconst command = this._extensionRunner.getCommand(commandName);\n\t\tif (!command) return false;\n\n\t\t// Get command context from extension runner (includes session control methods)\n\t\tconst ctx = this._extensionRunner.createCommandContext();\n\n\t\ttry {\n\t\t\tawait command.handler(args, ctx);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\t// Emit error via extension runner\n\t\t\tthis._extensionRunner.emitError({\n\t\t\t\textensionPath: `command:${commandName}`,\n\t\t\t\tevent: \"command\",\n\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t/**\n\t * Expand skill commands (/skill:name args) to their full content.\n\t * Returns the expanded text, or the original text if not a skill command or skill not found.\n\t * Emits errors via extension runner if file read fails.\n\t */\n\tprivate _expandSkillCommand(text: string): string {\n\t\tif (!text.startsWith(\"/skill:\")) return text;\n\n\t\tconst spaceIndex = text.indexOf(\" \");\n\t\tconst skillName = spaceIndex === -1 ? text.slice(7) : text.slice(7, spaceIndex);\n\t\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1).trim();\n\n\t\tconst skill = this.resourceLoader.getSkills().skills.find((s) => s.name === skillName);\n\t\tif (!skill) return text; // Unknown skill, pass through\n\n\t\ttry {\n\t\t\tconst content = readFileSync(skill.filePath, \"utf-8\");\n\t\t\tconst body = stripFrontmatter(content).trim();\n\t\t\tconst skillBlock = `<skill name=\"${skill.name}\" location=\"${skill.filePath}\">\\nReferences are relative to ${skill.baseDir}.\\n\\n${body}\\n</skill>`;\n\t\t\treturn args ? `${skillBlock}\\n\\n${args}` : skillBlock;\n\t\t} catch (err) {\n\t\t\t// Emit error like extension commands do\n\t\t\tthis._extensionRunner.emitError({\n\t\t\t\textensionPath: skill.filePath,\n\t\t\t\tevent: \"skill_expansion\",\n\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t});\n\t\t\treturn text; // Return original on error\n\t\t}\n\t}\n\n\t/**\n\t * Queue a steering message while the agent is running.\n\t * Delivered after the current assistant turn finishes executing its tool calls,\n\t * before the next LLM call.\n\t * Expands skill commands and prompt templates. Errors on extension commands.\n\t * @param images Optional image attachments to include with the message\n\t * @throws Error if text is an extension command\n\t */\n\tasync steer(text: string, images?: ImageContent[]): Promise<void> {\n\t\t// Check for extension commands (cannot be queued)\n\t\tif (text.startsWith(\"/\")) {\n\t\t\tthis._throwIfExtensionCommand(text);\n\t\t}\n\n\t\t// Expand skill commands and prompt templates\n\t\tlet expandedText = this._expandSkillCommand(text);\n\t\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\t\tawait this._queueSteer(expandedText, images);\n\t}\n\n\t/**\n\t * Queue a follow-up message to be processed after the agent finishes.\n\t * Delivered only when agent has no more tool calls or steering messages.\n\t * Expands skill commands and prompt templates. Errors on extension commands.\n\t * @param images Optional image attachments to include with the message\n\t * @throws Error if text is an extension command\n\t */\n\tasync followUp(text: string, images?: ImageContent[]): Promise<void> {\n\t\t// Check for extension commands (cannot be queued)\n\t\tif (text.startsWith(\"/\")) {\n\t\t\tthis._throwIfExtensionCommand(text);\n\t\t}\n\n\t\t// Expand skill commands and prompt templates\n\t\tlet expandedText = this._expandSkillCommand(text);\n\t\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\t\tawait this._queueFollowUp(expandedText, images);\n\t}\n\n\t/**\n\t * Internal: Queue a steering message (already expanded, no extension command check).\n\t */\n\tprivate async _queueSteer(text: string, images?: ImageContent[]): Promise<void> {\n\t\tthis._steeringMessages.push(text);\n\t\tthis._emitQueueUpdate();\n\t\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\t\tif (images) {\n\t\t\tcontent.push(...images);\n\t\t}\n\t\tthis.agent.steer({\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\n\t/**\n\t * Internal: Queue a follow-up message (already expanded, no extension command check).\n\t */\n\tprivate async _queueFollowUp(text: string, images?: ImageContent[]): Promise<void> {\n\t\tthis._followUpMessages.push(text);\n\t\tthis._emitQueueUpdate();\n\t\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\t\tif (images) {\n\t\t\tcontent.push(...images);\n\t\t}\n\t\tthis.agent.followUp({\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\n\t/**\n\t * Throw an error if the text is an extension command.\n\t */\n\tprivate _throwIfExtensionCommand(text: string): void {\n\t\tconst spaceIndex = text.indexOf(\" \");\n\t\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\t\tconst command = this._extensionRunner.getCommand(commandName);\n\n\t\tif (command) {\n\t\t\tthrow new Error(\n\t\t\t\t`Extension command \"/${commandName}\" cannot be queued. Use prompt() or execute the command when not streaming.`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Send a custom message to the session. Creates a CustomMessageEntry.\n\t *\n\t * Handles three cases:\n\t * - Streaming: queues message, processed when loop pulls from queue\n\t * - Not streaming + triggerTurn: appends to state/session, starts new turn\n\t * - Not streaming + no trigger: appends to state/session, no turn\n\t *\n\t * @param message Custom message with customType, content, display, details\n\t * @param options.triggerTurn If true and not streaming, triggers a new LLM turn\n\t * @param options.deliverAs Delivery mode: \"steer\", \"followUp\", or \"nextTurn\"\n\t */\n\tasync sendCustomMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: { triggerTurn?: boolean; deliverAs?: \"steer\" | \"followUp\" | \"nextTurn\" },\n\t): Promise<void> {\n\t\tconst appMessage = {\n\t\t\trole: \"custom\" as const,\n\t\t\tcustomType: message.customType,\n\t\t\t// Untyped extensions can pass null/missing content; normalize at ingestion.\n\t\t\tcontent: message.content ?? [],\n\t\t\tdisplay: message.display,\n\t\t\tdetails: message.details,\n\t\t\ttimestamp: Date.now(),\n\t\t} satisfies CustomMessage<T>;\n\t\tif (options?.deliverAs === \"nextTurn\") {\n\t\t\tthis._pendingNextTurnMessages.push(appMessage);\n\t\t} else if (this.isStreaming) {\n\t\t\tif (options?.deliverAs === \"followUp\") {\n\t\t\t\tthis.agent.followUp(appMessage);\n\t\t\t} else {\n\t\t\t\tthis.agent.steer(appMessage);\n\t\t\t}\n\t\t} else if (options?.triggerTurn) {\n\t\t\tawait this._runAgentPrompt(appMessage);\n\t\t} else {\n\t\t\tthis.agent.state.messages.push(appMessage);\n\t\t\tthis.sessionManager.appendCustomMessageEntry(\n\t\t\t\tmessage.customType,\n\t\t\t\tmessage.content,\n\t\t\t\tmessage.display,\n\t\t\t\tmessage.details,\n\t\t\t);\n\t\t\tthis._emit({ type: \"message_start\", message: appMessage });\n\t\t\tthis._emit({ type: \"message_end\", message: appMessage });\n\t\t}\n\t}\n\n\t/**\n\t * Send a user message to the agent. Always triggers a turn.\n\t * When the agent is streaming, use deliverAs to specify how to queue the message.\n\t *\n\t * @param content User message content (string or content array)\n\t * @param options.deliverAs Delivery mode when streaming: \"steer\" or \"followUp\"\n\t */\n\tasync sendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\" },\n\t): Promise<void> {\n\t\t// Normalize content to text string + optional images\n\t\tlet text: string;\n\t\tlet images: ImageContent[] | undefined;\n\n\t\tif (typeof content === \"string\") {\n\t\t\ttext = content;\n\t\t} else {\n\t\t\tconst textParts: string[] = [];\n\t\t\timages = [];\n\t\t\tfor (const part of content) {\n\t\t\t\tif (part.type === \"text\") {\n\t\t\t\t\ttextParts.push(part.text);\n\t\t\t\t} else {\n\t\t\t\t\timages.push(part);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttext = textParts.join(\"\\n\");\n\t\t\tif (images.length === 0) images = undefined;\n\t\t}\n\n\t\t// Use prompt() with expandPromptTemplates: false to skip command handling and template expansion\n\t\tawait this.prompt(text, {\n\t\t\texpandPromptTemplates: false,\n\t\t\tstreamingBehavior: options?.deliverAs,\n\t\t\timages,\n\t\t\tsource: \"extension\",\n\t\t});\n\t}\n\n\t/**\n\t * Clear all queued messages and return them.\n\t * Useful for restoring to editor when user aborts.\n\t * @returns Object with steering and followUp arrays\n\t */\n\tclearQueue(): { steering: string[]; followUp: string[] } {\n\t\tconst steering = [...this._steeringMessages];\n\t\tconst followUp = [...this._followUpMessages];\n\t\tthis._steeringMessages = [];\n\t\tthis._followUpMessages = [];\n\t\tthis.agent.clearAllQueues();\n\t\tthis._emitQueueUpdate();\n\t\treturn { steering, followUp };\n\t}\n\n\t/** Number of pending messages (includes both steering and follow-up) */\n\tget pendingMessageCount(): number {\n\t\treturn this._steeringMessages.length + this._followUpMessages.length;\n\t}\n\n\t/** Get pending steering messages (read-only) */\n\tgetSteeringMessages(): readonly string[] {\n\t\treturn this._steeringMessages;\n\t}\n\n\t/** Get pending follow-up messages (read-only) */\n\tgetFollowUpMessages(): readonly string[] {\n\t\treturn this._followUpMessages;\n\t}\n\n\tget resourceLoader(): ResourceLoader {\n\t\treturn this._resourceLoader;\n\t}\n\n\t/**\n\t * Abort current operation and wait for agent to become idle.\n\t */\n\tasync abort(): Promise<void> {\n\t\tthis.abortRetry();\n\t\tthis.agent.abort();\n\t\tawait this.waitForIdle();\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tif (this.isIdle) {\n\t\t\treturn;\n\t\t}\n\t\tawait this._getIdleWaitPromise();\n\t}\n\n\t// =========================================================================\n\t// Model Management\n\t// =========================================================================\n\n\tprivate async _emitModelSelect(\n\t\tnextModel: Model<any>,\n\t\tpreviousModel: Model<any> | undefined,\n\t\tsource: \"set\" | \"cycle\" | \"restore\",\n\t): Promise<void> {\n\t\tif (modelsAreEqual(previousModel, nextModel)) return;\n\t\tawait this._extensionRunner.emit({\n\t\t\ttype: \"model_select\",\n\t\t\tmodel: nextModel,\n\t\t\tpreviousModel,\n\t\t\tsource,\n\t\t});\n\t}\n\n\t/**\n\t * Set model directly.\n\t * Validates that auth is configured, saves to session and settings.\n\t * @throws Error if no auth is configured for the model\n\t */\n\tasync setModel(model: Model<any>): Promise<void> {\n\t\tif (!(await this._modelRuntime.checkAuth(model.provider))) {\n\t\t\tthrow new Error(`No API key for ${model.provider}/${model.id}`);\n\t\t}\n\n\t\tconst previousModel = this.model;\n\t\tconst thinkingLevel = this._getThinkingLevelForModelSwitch();\n\t\tthis.agent.state.model = model;\n\t\tthis.sessionManager.appendModelChange(model.provider, model.id);\n\t\tthis.settingsManager.setDefaultModelAndProvider(model.provider, model.id);\n\n\t\t// Re-clamp thinking level for new model's capabilities\n\t\tthis.setThinkingLevel(thinkingLevel);\n\n\t\tawait this._emitModelSelect(model, previousModel, \"set\");\n\t}\n\n\t/**\n\t * Cycle to next/previous model.\n\t * Uses scoped models (from --models flag) if available, otherwise all available models.\n\t * @param direction - \"forward\" (default) or \"backward\"\n\t * @returns The new model info, or undefined if only one model available\n\t */\n\tasync cycleModel(direction: \"forward\" | \"backward\" = \"forward\"): Promise<ModelCycleResult | undefined> {\n\t\tif (this._scopedModels.length > 0) {\n\t\t\treturn this._cycleScopedModel(direction);\n\t\t}\n\t\treturn this._cycleAvailableModel(direction);\n\t}\n\n\tprivate async _cycleScopedModel(direction: \"forward\" | \"backward\"): Promise<ModelCycleResult | undefined> {\n\t\tconst checks = await Promise.all(\n\t\t\tthis._scopedModels.map(async (scoped) => ({\n\t\t\t\tscoped,\n\t\t\t\tauth: await this._modelRuntime.checkAuth(scoped.model.provider),\n\t\t\t})),\n\t\t);\n\t\tconst scopedModels = checks.filter(({ auth }) => auth !== undefined).map(({ scoped }) => scoped);\n\t\tif (scopedModels.length <= 1) return undefined;\n\n\t\tconst currentModel = this.model;\n\t\tlet currentIndex = scopedModels.findIndex((sm) => modelsAreEqual(sm.model, currentModel));\n\n\t\tif (currentIndex === -1) currentIndex = 0;\n\t\tconst len = scopedModels.length;\n\t\tconst nextIndex = direction === \"forward\" ? (currentIndex + 1) % len : (currentIndex - 1 + len) % len;\n\t\tconst next = scopedModels[nextIndex];\n\t\tconst thinkingLevel = this._getThinkingLevelForModelSwitch(next.thinkingLevel);\n\n\t\t// Apply model\n\t\tthis.agent.state.model = next.model;\n\t\tthis.sessionManager.appendModelChange(next.model.provider, next.model.id);\n\t\tthis.settingsManager.setDefaultModelAndProvider(next.model.provider, next.model.id);\n\n\t\t// Apply thinking level.\n\t\t// - Explicit scoped model thinking level overrides current session level\n\t\t// - Undefined scoped model thinking level inherits the current session preference\n\t\t// setThinkingLevel clamps to model capabilities.\n\t\tthis.setThinkingLevel(thinkingLevel);\n\n\t\tawait this._emitModelSelect(next.model, currentModel, \"cycle\");\n\n\t\treturn { model: next.model, thinkingLevel: this.thinkingLevel, isScoped: true };\n\t}\n\n\tprivate async _cycleAvailableModel(direction: \"forward\" | \"backward\"): Promise<ModelCycleResult | undefined> {\n\t\tconst availableModels = await this._modelRuntime.getAvailable();\n\t\tif (availableModels.length <= 1) return undefined;\n\n\t\tconst currentModel = this.model;\n\t\tlet currentIndex = availableModels.findIndex((m) => modelsAreEqual(m, currentModel));\n\n\t\tif (currentIndex === -1) currentIndex = 0;\n\t\tconst len = availableModels.length;\n\t\tconst nextIndex = direction === \"forward\" ? (currentIndex + 1) % len : (currentIndex - 1 + len) % len;\n\t\tconst nextModel = availableModels[nextIndex];\n\n\t\tconst thinkingLevel = this._getThinkingLevelForModelSwitch();\n\t\tthis.agent.state.model = nextModel;\n\t\tthis.sessionManager.appendModelChange(nextModel.provider, nextModel.id);\n\t\tthis.settingsManager.setDefaultModelAndProvider(nextModel.provider, nextModel.id);\n\n\t\t// Re-clamp thinking level for new model's capabilities\n\t\tthis.setThinkingLevel(thinkingLevel);\n\n\t\tawait this._emitModelSelect(nextModel, currentModel, \"cycle\");\n\n\t\treturn { model: nextModel, thinkingLevel: this.thinkingLevel, isScoped: false };\n\t}\n\n\t// =========================================================================\n\t// Thinking Level Management\n\t// =========================================================================\n\n\t/**\n\t * Set thinking level.\n\t * Clamps to model capabilities based on available thinking levels.\n\t * Saves to session and settings only if the level actually changes.\n\t */\n\tsetThinkingLevel(level: ThinkingLevel): void {\n\t\tconst availableLevels = this.getAvailableThinkingLevels();\n\t\tconst effectiveLevel = availableLevels.includes(level) ? level : this._clampThinkingLevel(level, availableLevels);\n\n\t\t// Only persist if actually changing\n\t\tconst previousLevel = this.agent.state.thinkingLevel;\n\t\tconst isChanging = effectiveLevel !== previousLevel;\n\n\t\tthis.agent.state.thinkingLevel = effectiveLevel;\n\n\t\tif (isChanging) {\n\t\t\tthis.sessionManager.appendThinkingLevelChange(effectiveLevel);\n\t\t\tif (this.supportsThinking() || effectiveLevel !== \"off\") {\n\t\t\t\tthis.settingsManager.setDefaultThinkingLevel(effectiveLevel);\n\t\t\t}\n\t\t\tthis._emit({ type: \"thinking_level_changed\", level: effectiveLevel });\n\t\t\tvoid this._extensionRunner.emit({\n\t\t\t\ttype: \"thinking_level_select\",\n\t\t\t\tlevel: effectiveLevel,\n\t\t\t\tpreviousLevel,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Cycle to next thinking level.\n\t * @returns New level, or undefined if model doesn't support thinking\n\t */\n\tcycleThinkingLevel(): ThinkingLevel | undefined {\n\t\tif (!this.supportsThinking()) return undefined;\n\n\t\tconst levels = this.getAvailableThinkingLevels();\n\t\tconst currentIndex = levels.indexOf(this.thinkingLevel);\n\t\tconst nextIndex = (currentIndex + 1) % levels.length;\n\t\tconst nextLevel = levels[nextIndex];\n\n\t\tthis.setThinkingLevel(nextLevel);\n\t\treturn nextLevel;\n\t}\n\n\t/**\n\t * Get available thinking levels for current model.\n\t * The provider will clamp to what the specific model supports internally.\n\t */\n\tgetAvailableThinkingLevels(): ThinkingLevel[] {\n\t\tif (!this.model) return THINKING_LEVELS;\n\t\treturn getSupportedThinkingLevels(this.model) as ThinkingLevel[];\n\t}\n\n\t/**\n\t * Check if current model supports thinking/reasoning.\n\t */\n\tsupportsThinking(): boolean {\n\t\treturn !!this.model?.reasoning;\n\t}\n\n\tprivate _getThinkingLevelForModelSwitch(explicitLevel?: ThinkingLevel): ThinkingLevel {\n\t\tif (explicitLevel !== undefined) {\n\t\t\treturn explicitLevel;\n\t\t}\n\t\tif (!this.supportsThinking()) {\n\t\t\treturn this.settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;\n\t\t}\n\t\treturn this.thinkingLevel;\n\t}\n\n\tprivate _clampThinkingLevel(level: ThinkingLevel, _availableLevels: ThinkingLevel[]): ThinkingLevel {\n\t\treturn this.model ? (clampThinkingLevel(this.model, level) as ThinkingLevel) : \"off\";\n\t}\n\n\t// =========================================================================\n\t// Queue Mode Management\n\t// =========================================================================\n\n\tprivate syncQueueModesFromSettings(): void {\n\t\tthis.agent.steeringMode = this.settingsManager.getSteeringMode();\n\t\tthis.agent.followUpMode = this.settingsManager.getFollowUpMode();\n\t}\n\n\t/**\n\t * Set steering message mode.\n\t * Saves to settings.\n\t */\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void {\n\t\tthis.agent.steeringMode = mode;\n\t\tthis.settingsManager.setSteeringMode(mode);\n\t}\n\n\t/**\n\t * Set follow-up message mode.\n\t * Saves to settings.\n\t */\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void {\n\t\tthis.agent.followUpMode = mode;\n\t\tthis.settingsManager.setFollowUpMode(mode);\n\t}\n\n\t// =========================================================================\n\t// Compaction\n\t// =========================================================================\n\n\t/**\n\t * Manually compact the session context.\n\t * Aborts current agent operation first.\n\t * @param customInstructions Optional instructions for the compaction summary\n\t */\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\tthis._disconnectFromAgent();\n\t\tawait this.abort();\n\t\tthis._compactionAbortController = new AbortController();\n\t\tthis._emit({ type: \"compaction_start\", reason: \"manual\" });\n\n\t\ttry {\n\t\t\tif (!this.model) {\n\t\t\t\tthrow new Error(formatNoModelSelectedMessage());\n\t\t\t}\n\n\t\t\tconst { apiKey, headers, env } = await this._getSummarizationRequestAuth(this.model);\n\n\t\t\tconst pathEntries = this.sessionManager.getBranch();\n\t\t\tconst settings = this.settingsManager.getCompactionSettings();\n\n\t\t\tconst preparation = prepareCompaction(pathEntries, settings);\n\t\t\tif (!preparation) {\n\t\t\t\t// Check why we can't compact\n\t\t\t\tconst lastEntry = pathEntries[pathEntries.length - 1];\n\t\t\t\tif (lastEntry?.type === \"compaction\") {\n\t\t\t\t\tthrow new Error(\"Already compacted\");\n\t\t\t\t}\n\t\t\t\tthrow new Error(\"Nothing to compact (session too small)\");\n\t\t\t}\n\n\t\t\tlet extensionCompaction: CompactionResult | undefined;\n\t\t\tlet fromExtension = false;\n\n\t\t\tif (this._extensionRunner.hasHandlers(\"session_before_compact\")) {\n\t\t\t\tconst result = (await this._extensionRunner.emit({\n\t\t\t\t\ttype: \"session_before_compact\",\n\t\t\t\t\tpreparation,\n\t\t\t\t\tbranchEntries: pathEntries,\n\t\t\t\t\tcustomInstructions,\n\t\t\t\t\treason: \"manual\",\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\tsignal: this._compactionAbortController.signal,\n\t\t\t\t})) as SessionBeforeCompactResult | undefined;\n\n\t\t\t\tif (result?.cancel) {\n\t\t\t\t\tthrow new Error(\"Compaction cancelled\");\n\t\t\t\t}\n\n\t\t\t\tif (result?.compaction) {\n\t\t\t\t\textensionCompaction = result.compaction;\n\t\t\t\t\tfromExtension = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet summary: string;\n\t\t\tlet firstKeptEntryId: string;\n\t\t\tlet tokensBefore: number;\n\t\t\tlet details: unknown;\n\n\t\t\tif (extensionCompaction) {\n\t\t\t\t// Extension provided compaction content\n\t\t\t\tsummary = extensionCompaction.summary;\n\t\t\t\tfirstKeptEntryId = extensionCompaction.firstKeptEntryId;\n\t\t\t\ttokensBefore = extensionCompaction.tokensBefore;\n\t\t\t\tdetails = extensionCompaction.details;\n\t\t\t} else {\n\t\t\t\t// Generate compaction result\n\t\t\t\tconst result = await compact(\n\t\t\t\t\tpreparation,\n\t\t\t\t\tthis.model,\n\t\t\t\t\tapiKey,\n\t\t\t\t\theaders,\n\t\t\t\t\tcustomInstructions,\n\t\t\t\t\tthis._compactionAbortController.signal,\n\t\t\t\t\tthis.thinkingLevel,\n\t\t\t\t\tthis.agent.streamFn,\n\t\t\t\t\tenv,\n\t\t\t\t);\n\t\t\t\tsummary = result.summary;\n\t\t\t\tfirstKeptEntryId = result.firstKeptEntryId;\n\t\t\t\ttokensBefore = result.tokensBefore;\n\t\t\t\tdetails = result.details;\n\t\t\t}\n\n\t\t\tif (this._compactionAbortController.signal.aborted) {\n\t\t\t\tthrow new Error(\"Compaction cancelled\");\n\t\t\t}\n\n\t\t\tthis.sessionManager.appendCompaction(summary, firstKeptEntryId, tokensBefore, details, fromExtension);\n\t\t\tconst newEntries = this.sessionManager.getEntries();\n\t\t\tconst sessionContext = this.sessionManager.buildSessionContext();\n\t\t\tthis.agent.state.messages = sessionContext.messages;\n\t\t\tconst estimatedTokensAfter = estimateMessagesTokens(sessionContext.messages);\n\n\t\t\t// Get the saved compaction entry for the extension event\n\t\t\tconst savedCompactionEntry = newEntries.find((e) => e.type === \"compaction\" && e.summary === summary) as\n\t\t\t\t| CompactionEntry\n\t\t\t\t| undefined;\n\n\t\t\tif (this._extensionRunner && savedCompactionEntry) {\n\t\t\t\tawait this._extensionRunner.emit({\n\t\t\t\t\ttype: \"session_compact\",\n\t\t\t\t\tcompactionEntry: savedCompactionEntry,\n\t\t\t\t\tfromExtension,\n\t\t\t\t\treason: \"manual\",\n\t\t\t\t\twillRetry: false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst compactionResult: CompactionResult = {\n\t\t\t\tsummary,\n\t\t\t\tfirstKeptEntryId,\n\t\t\t\ttokensBefore,\n\t\t\t\testimatedTokensAfter,\n\t\t\t\tdetails,\n\t\t\t};\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"manual\",\n\t\t\t\tresult: compactionResult,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t});\n\t\t\treturn compactionResult;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tconst aborted = message === \"Compaction cancelled\" || (error instanceof Error && error.name === \"AbortError\");\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"manual\",\n\t\t\t\tresult: undefined,\n\t\t\t\taborted,\n\t\t\t\twillRetry: false,\n\t\t\t\terrorMessage: aborted ? undefined : `Compaction failed: ${message}`,\n\t\t\t});\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tthis._compactionAbortController = undefined;\n\t\t\tthis._reconnectToAgent();\n\t\t}\n\t}\n\n\t/**\n\t * Cancel in-progress compaction (manual or auto).\n\t */\n\tabortCompaction(): void {\n\t\tthis._compactionAbortController?.abort();\n\t\tthis._autoCompactionAbortController?.abort();\n\t}\n\n\t/**\n\t * Cancel in-progress branch summarization.\n\t */\n\tabortBranchSummary(): void {\n\t\tthis._branchSummaryAbortController?.abort();\n\t}\n\n\t/**\n\t * Check if compaction is needed and run it.\n\t * Called after agent_end and before prompt submission.\n\t *\n\t * Two cases:\n\t * 1. Overflow: LLM returned context overflow error, remove error message from agent state, compact, auto-retry\n\t * 2. Threshold: Context over threshold, compact, NO auto-retry (user continues manually)\n\t *\n\t * @param assistantMessage The assistant message to check\n\t * @param skipAbortedCheck If false, include aborted messages (for pre-prompt check). Default: true\n\t */\n\tprivate async _checkCompaction(assistantMessage: AssistantMessage, skipAbortedCheck = true): Promise<boolean> {\n\t\tconst settings = this.settingsManager.getCompactionSettings();\n\t\tif (!settings.enabled) return false;\n\n\t\t// Skip if message was aborted (user cancelled) - unless skipAbortedCheck is false\n\t\tif (skipAbortedCheck && assistantMessage.stopReason === \"aborted\") return false;\n\n\t\tconst contextWindow = this.model?.contextWindow ?? 0;\n\n\t\t// Skip overflow check if the message came from a different model.\n\t\t// This handles the case where user switched from a smaller-context model (e.g. opus)\n\t\t// to a larger-context model (e.g. codex) - the overflow error from the old model\n\t\t// shouldn't trigger compaction for the new model.\n\t\tconst sameModel =\n\t\t\tthis.model && assistantMessage.provider === this.model.provider && assistantMessage.model === this.model.id;\n\n\t\t// Skip compaction checks if this assistant message is older than the latest\n\t\t// compaction boundary. This prevents a stale pre-compaction usage/error\n\t\t// from retriggering compaction on the first prompt after compaction.\n\t\tconst compactionEntry = getLatestCompactionEntry(this.sessionManager.getBranch());\n\t\tconst assistantIsFromBeforeCompaction =\n\t\t\tcompactionEntry !== null && assistantMessage.timestamp <= new Date(compactionEntry.timestamp).getTime();\n\t\tif (assistantIsFromBeforeCompaction) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Case 1: Overflow - LLM returned context overflow error, or reported usage exceeded\n\t\t// the configured window. A successful response over the configured window should compact\n\t\t// but must not retry: the assistant answer already completed and agent.continue() cannot\n\t\t// continue from an assistant message.\n\t\tif (sameModel && isContextOverflow(assistantMessage, contextWindow)) {\n\t\t\tconst willRetry = assistantMessage.stopReason !== \"stop\";\n\n\t\t\tif (!willRetry) {\n\t\t\t\treturn await this._runAutoCompaction(\"overflow\", false);\n\t\t\t}\n\n\t\t\tif (this._overflowRecoveryAttempted) {\n\t\t\t\tthis._emit({\n\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\treason: \"overflow\",\n\t\t\t\t\tresult: undefined,\n\t\t\t\t\taborted: false,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\t\"Context overflow recovery failed after one compact-and-retry attempt. Try reducing context or switching to a larger-context model.\",\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis._overflowRecoveryAttempted = true;\n\t\t\t// Remove the error message from agent state (it IS saved to session for history,\n\t\t\t// but we don't want it in context for the retry)\n\t\t\tconst messages = this.agent.state.messages;\n\t\t\tif (messages.length > 0 && messages[messages.length - 1].role === \"assistant\") {\n\t\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t\t}\n\t\t\treturn await this._runAutoCompaction(\"overflow\", willRetry);\n\t\t}\n\n\t\t// Case 2: Threshold - context is getting large\n\t\t// For error messages or all-zero usage messages, estimate from the last valid response.\n\t\t// This ensures sessions that hit persistent API errors (e.g. 529) or malformed zero-usage\n\t\t// responses can still compact and do not reset context accounting.\n\t\tlet contextTokens: number;\n\t\tconst directContextTokens = assistantMessage.usage ? calculateContextTokens(assistantMessage.usage) : 0;\n\t\tif (assistantMessage.stopReason === \"error\" || directContextTokens === 0) {\n\t\t\tconst messages = this.agent.state.messages;\n\t\t\tconst estimate = estimateContextTokens(messages);\n\t\t\tif (estimate.lastUsageIndex === null) return false; // No usage data at all\n\t\t\t// Verify the usage source is post-compaction. Kept pre-compaction messages\n\t\t\t// have stale usage reflecting the old (larger) context and would falsely\n\t\t\t// trigger compaction right after one just finished.\n\t\t\tconst usageMsg = messages[estimate.lastUsageIndex];\n\t\t\tif (\n\t\t\t\tcompactionEntry &&\n\t\t\t\tusageMsg.role === \"assistant\" &&\n\t\t\t\t(usageMsg as AssistantMessage).timestamp <= new Date(compactionEntry.timestamp).getTime()\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tcontextTokens = estimate.tokens;\n\t\t} else {\n\t\t\tcontextTokens = directContextTokens;\n\t\t}\n\t\tif (shouldCompact(contextTokens, contextWindow, settings)) {\n\t\t\treturn await this._runAutoCompaction(\"threshold\", false);\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Internal: Run auto-compaction with events.\n\t */\n\tprivate async _runAutoCompaction(reason: \"overflow\" | \"threshold\", willRetry: boolean): Promise<boolean> {\n\t\tconst settings = this.settingsManager.getCompactionSettings();\n\t\tlet started = false;\n\n\t\ttry {\n\t\t\tif (!this.model) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet apiKey: string | undefined;\n\t\t\tlet headers: Record<string, string> | undefined;\n\t\t\tlet env: Record<string, string> | undefined;\n\t\t\tif (this.agent.streamFn === streamSimple) {\n\t\t\t\tconst authResult = await this._modelRuntime.getAuth(this.model);\n\t\t\t\tif (!authResult?.auth.apiKey) return false;\n\t\t\t\tapiKey = authResult.auth.apiKey;\n\t\t\t\theaders = withoutDeletedHeaders(authResult.auth.headers);\n\t\t\t\tenv = authResult.env;\n\t\t\t} else {\n\t\t\t\t({ apiKey, headers, env } = await this._getSummarizationRequestAuth(this.model));\n\t\t\t}\n\n\t\t\tconst pathEntries = this.sessionManager.getBranch();\n\n\t\t\tconst preparation = prepareCompaction(pathEntries, settings);\n\t\t\tif (!preparation) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis._emit({ type: \"compaction_start\", reason });\n\t\t\tthis._autoCompactionAbortController = new AbortController();\n\t\t\tstarted = true;\n\n\t\t\tlet extensionCompaction: CompactionResult | undefined;\n\t\t\tlet fromExtension = false;\n\n\t\t\tif (this._extensionRunner.hasHandlers(\"session_before_compact\")) {\n\t\t\t\tconst extensionResult = (await this._extensionRunner.emit({\n\t\t\t\t\ttype: \"session_before_compact\",\n\t\t\t\t\tpreparation,\n\t\t\t\t\tbranchEntries: pathEntries,\n\t\t\t\t\tcustomInstructions: undefined,\n\t\t\t\t\treason,\n\t\t\t\t\twillRetry,\n\t\t\t\t\tsignal: this._autoCompactionAbortController.signal,\n\t\t\t\t})) as SessionBeforeCompactResult | undefined;\n\n\t\t\t\tif (extensionResult?.cancel) {\n\t\t\t\t\tthis._emit({\n\t\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\t\treason,\n\t\t\t\t\t\tresult: undefined,\n\t\t\t\t\t\taborted: true,\n\t\t\t\t\t\twillRetry: false,\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (extensionResult?.compaction) {\n\t\t\t\t\textensionCompaction = extensionResult.compaction;\n\t\t\t\t\tfromExtension = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet summary: string;\n\t\t\tlet firstKeptEntryId: string;\n\t\t\tlet tokensBefore: number;\n\t\t\tlet details: unknown;\n\n\t\t\tif (extensionCompaction) {\n\t\t\t\t// Extension provided compaction content\n\t\t\t\tsummary = extensionCompaction.summary;\n\t\t\t\tfirstKeptEntryId = extensionCompaction.firstKeptEntryId;\n\t\t\t\ttokensBefore = extensionCompaction.tokensBefore;\n\t\t\t\tdetails = extensionCompaction.details;\n\t\t\t} else {\n\t\t\t\t// Generate compaction result\n\t\t\t\tconst compactResult = await compact(\n\t\t\t\t\tpreparation,\n\t\t\t\t\tthis.model,\n\t\t\t\t\tapiKey,\n\t\t\t\t\theaders,\n\t\t\t\t\tundefined,\n\t\t\t\t\tthis._autoCompactionAbortController.signal,\n\t\t\t\t\tthis.thinkingLevel,\n\t\t\t\t\tthis.agent.streamFn,\n\t\t\t\t\tenv,\n\t\t\t\t);\n\t\t\t\tsummary = compactResult.summary;\n\t\t\t\tfirstKeptEntryId = compactResult.firstKeptEntryId;\n\t\t\t\ttokensBefore = compactResult.tokensBefore;\n\t\t\t\tdetails = compactResult.details;\n\t\t\t}\n\n\t\t\tif (this._autoCompactionAbortController.signal.aborted) {\n\t\t\t\tthis._emit({\n\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\treason,\n\t\t\t\t\tresult: undefined,\n\t\t\t\t\taborted: true,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.sessionManager.appendCompaction(summary, firstKeptEntryId, tokensBefore, details, fromExtension);\n\t\t\tconst newEntries = this.sessionManager.getEntries();\n\t\t\tconst sessionContext = this.sessionManager.buildSessionContext();\n\t\t\tthis.agent.state.messages = sessionContext.messages;\n\t\t\tconst estimatedTokensAfter = estimateMessagesTokens(sessionContext.messages);\n\n\t\t\t// Get the saved compaction entry for the extension event\n\t\t\tconst savedCompactionEntry = newEntries.find((e) => e.type === \"compaction\" && e.summary === summary) as\n\t\t\t\t| CompactionEntry\n\t\t\t\t| undefined;\n\n\t\t\tif (this._extensionRunner && savedCompactionEntry) {\n\t\t\t\tawait this._extensionRunner.emit({\n\t\t\t\t\ttype: \"session_compact\",\n\t\t\t\t\tcompactionEntry: savedCompactionEntry,\n\t\t\t\t\tfromExtension,\n\t\t\t\t\treason,\n\t\t\t\t\twillRetry,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result: CompactionResult = {\n\t\t\t\tsummary,\n\t\t\t\tfirstKeptEntryId,\n\t\t\t\ttokensBefore,\n\t\t\t\testimatedTokensAfter,\n\t\t\t\tdetails,\n\t\t\t};\n\t\t\tthis._emit({ type: \"compaction_end\", reason, result, aborted: false, willRetry });\n\n\t\t\tif (willRetry) {\n\t\t\t\tconst messages = this.agent.state.messages;\n\t\t\t\tconst lastMsg = messages[messages.length - 1];\n\t\t\t\tif (lastMsg?.role === \"assistant\" && (lastMsg as AssistantMessage).stopReason === \"error\") {\n\t\t\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Auto-compaction can complete while follow-up/steering/custom messages are waiting.\n\t\t\t// Continue once so queued messages are delivered.\n\t\t\treturn this.agent.hasQueuedMessages();\n\t\t} catch (error) {\n\t\t\tconst errorMessage = error instanceof Error ? error.message : \"compaction failed\";\n\t\t\tif (started) {\n\t\t\t\tthis._emit({\n\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\treason,\n\t\t\t\t\tresult: undefined,\n\t\t\t\t\taborted: false,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\treason === \"overflow\"\n\t\t\t\t\t\t\t? `Context overflow recovery failed: ${errorMessage}`\n\t\t\t\t\t\t\t: `Auto-compaction failed: ${errorMessage}`,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tthis._autoCompactionAbortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Toggle auto-compaction setting.\n\t */\n\tsetAutoCompactionEnabled(enabled: boolean): void {\n\t\tthis.settingsManager.setCompactionEnabled(enabled);\n\t}\n\n\t/** Whether auto-compaction is enabled */\n\tget autoCompactionEnabled(): boolean {\n\t\treturn this.settingsManager.getCompactionEnabled();\n\t}\n\n\tasync bindExtensions(bindings: ExtensionBindings): Promise<void> {\n\t\tif (bindings.uiContext !== undefined) {\n\t\t\tthis._extensionUIContext = bindings.uiContext;\n\t\t}\n\t\tif (bindings.mode !== undefined) {\n\t\t\tthis._extensionMode = bindings.mode;\n\t\t}\n\t\tif (bindings.commandContextActions !== undefined) {\n\t\t\tthis._extensionCommandContextActions = bindings.commandContextActions;\n\t\t}\n\t\tif (bindings.abortHandler !== undefined) {\n\t\t\tthis._extensionAbortHandler = bindings.abortHandler;\n\t\t}\n\t\tif (bindings.shutdownHandler !== undefined) {\n\t\t\tthis._extensionShutdownHandler = bindings.shutdownHandler;\n\t\t}\n\t\tif (bindings.onError !== undefined) {\n\t\t\tthis._extensionErrorListener = bindings.onError;\n\t\t}\n\n\t\tthis._applyExtensionBindings(this._extensionRunner);\n\t\tawait this._extensionRunner.emit(this._sessionStartEvent);\n\t\tawait this.extendResourcesFromExtensions(this._sessionStartEvent.reason === \"reload\" ? \"reload\" : \"startup\");\n\t}\n\n\tprivate async extendResourcesFromExtensions(reason: \"startup\" | \"reload\"): Promise<void> {\n\t\tif (!this._extensionRunner.hasHandlers(\"resources_discover\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { skillPaths, promptPaths, themePaths } = await this._extensionRunner.emitResourcesDiscover(\n\t\t\tthis._cwd,\n\t\t\treason,\n\t\t);\n\n\t\tif (skillPaths.length === 0 && promptPaths.length === 0 && themePaths.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst extensionPaths: ResourceExtensionPaths = {\n\t\t\tskillPaths: this.buildExtensionResourcePaths(skillPaths),\n\t\t\tpromptPaths: this.buildExtensionResourcePaths(promptPaths),\n\t\t\tthemePaths: this.buildExtensionResourcePaths(themePaths),\n\t\t};\n\n\t\tthis._resourceLoader.extendResources(extensionPaths);\n\t\tthis._baseSystemPrompt = this._rebuildSystemPrompt(this.getActiveToolNames());\n\t\tthis.agent.state.systemPrompt = this._withSystemPromptAppend(this._baseSystemPrompt);\n\t}\n\n\tprivate buildExtensionResourcePaths(entries: Array<{ path: string; extensionPath: string }>): Array<{\n\t\tpath: string;\n\t\tmetadata: { source: string; scope: \"temporary\"; origin: \"top-level\"; baseDir?: string };\n\t}> {\n\t\treturn entries.map((entry) => {\n\t\t\tconst source = this.getExtensionSourceLabel(entry.extensionPath);\n\t\t\tconst baseDir = entry.extensionPath.startsWith(\"<\") ? undefined : dirname(entry.extensionPath);\n\t\t\treturn {\n\t\t\t\tpath: entry.path,\n\t\t\t\tmetadata: {\n\t\t\t\t\tsource,\n\t\t\t\t\tscope: \"temporary\",\n\t\t\t\t\torigin: \"top-level\",\n\t\t\t\t\tbaseDir,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate getExtensionSourceLabel(extensionPath: string): string {\n\t\tif (extensionPath.startsWith(\"<\")) {\n\t\t\treturn `extension:${extensionPath.replace(/[<>]/g, \"\")}`;\n\t\t}\n\t\tconst base = basename(extensionPath);\n\t\tconst name = base.replace(/\\.(ts|js)$/, \"\");\n\t\treturn `extension:${name}`;\n\t}\n\n\tprivate _applyExtensionBindings(runner: ExtensionRunner): void {\n\t\trunner.setUIContext(this._extensionUIContext, this._extensionMode);\n\t\trunner.bindCommandContext(this._extensionCommandContextActions);\n\n\t\tthis._extensionErrorUnsubscriber?.();\n\t\tthis._extensionErrorUnsubscriber = this._extensionErrorListener\n\t\t\t? runner.onError(this._extensionErrorListener)\n\t\t\t: undefined;\n\t}\n\n\tprivate _refreshCurrentModelFromRegistry(): void {\n\t\tconst currentModel = this.model;\n\t\tif (!currentModel) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst refreshedModel = this._modelRuntime.getModel(currentModel.provider, currentModel.id);\n\t\tif (!refreshedModel || refreshedModel === currentModel) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.agent.state.model = refreshedModel;\n\t}\n\n\tprivate _bindExtensionCore(runner: ExtensionRunner): void {\n\t\tconst getCommands = (): SlashCommandInfo[] => {\n\t\t\tconst extensionCommands: SlashCommandInfo[] = runner.getRegisteredCommands().map((command) => ({\n\t\t\t\tname: command.invocationName,\n\t\t\t\tdescription: command.description,\n\t\t\t\tsource: \"extension\",\n\t\t\t\tsourceInfo: command.sourceInfo,\n\t\t\t}));\n\n\t\t\tconst templates: SlashCommandInfo[] = this.promptTemplates.map((template) => ({\n\t\t\t\tname: template.name,\n\t\t\t\tdescription: template.description,\n\t\t\t\tsource: \"prompt\",\n\t\t\t\tsourceInfo: template.sourceInfo,\n\t\t\t}));\n\n\t\t\tconst skills: SlashCommandInfo[] = this._resourceLoader.getSkills().skills.map((skill) => ({\n\t\t\t\tname: `skill:${skill.name}`,\n\t\t\t\tdescription: skill.description,\n\t\t\t\tsource: \"skill\",\n\t\t\t\tsourceInfo: skill.sourceInfo,\n\t\t\t}));\n\n\t\t\treturn [...extensionCommands, ...templates, ...skills];\n\t\t};\n\n\t\trunner.bindCore(\n\t\t\t{\n\t\t\t\tsendMessage: (message, options) => {\n\t\t\t\t\tthis.sendCustomMessage(message, options).catch((err) => {\n\t\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\t\tevent: \"send_message\",\n\t\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tsendUserMessage: (content, options) => {\n\t\t\t\t\tthis.sendUserMessage(content, options).catch((err) => {\n\t\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\t\tevent: \"send_user_message\",\n\t\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tappendEntry: (customType, data) => {\n\t\t\t\t\tconst entryId = this.sessionManager.appendCustomEntry(customType, data);\n\t\t\t\t\tconst entry = this.sessionManager.getEntry(entryId);\n\t\t\t\t\tif (entry) {\n\t\t\t\t\t\tthis._emit({ type: \"entry_appended\", entry });\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsetSessionName: (name) => {\n\t\t\t\t\tthis.setSessionName(name);\n\t\t\t\t},\n\t\t\t\tgetSessionName: () => {\n\t\t\t\t\treturn this.sessionManager.getSessionName();\n\t\t\t\t},\n\t\t\t\tsetLabel: (entryId, label) => {\n\t\t\t\t\tthis.sessionManager.appendLabelChange(entryId, label);\n\t\t\t\t},\n\t\t\t\tgetActiveTools: () => this.getActiveToolNames(),\n\t\t\t\tgetAllTools: () => this.getAllTools(),\n\t\t\t\tsetActiveTools: (toolNames) => this.setActiveToolsByName(toolNames),\n\t\t\t\trefreshTools: () => this._refreshToolRegistry(),\n\t\t\t\tgetCommands,\n\t\t\t\tsetModel: async (model) => {\n\t\t\t\t\tif (!this._modelRuntime.hasConfiguredAuth(model.provider)) return false;\n\t\t\t\t\tawait this.setModel(model);\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tgetThinkingLevel: () => this.thinkingLevel,\n\t\t\t\tsetThinkingLevel: (level) => this.setThinkingLevel(level),\n\t\t\t},\n\t\t\t{\n\t\t\t\tgetModel: () => this.model,\n\t\t\t\tisIdle: () => this.isIdle,\n\t\t\t\tisProjectTrusted: () => this.settingsManager.isProjectTrusted(),\n\t\t\t\tgetSignal: () => this.agent.signal,\n\t\t\t\tabort: () => {\n\t\t\t\t\tif (this._extensionAbortHandler) {\n\t\t\t\t\t\tthis._extensionAbortHandler();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvoid this.abort();\n\t\t\t\t},\n\t\t\t\thasPendingMessages: () => this.pendingMessageCount > 0,\n\t\t\t\tshutdown: () => {\n\t\t\t\t\tthis._extensionShutdownHandler?.();\n\t\t\t\t},\n\t\t\t\tgetContextUsage: () => this.getContextUsage(),\n\t\t\t\tcompact: (options) => {\n\t\t\t\t\tvoid (async () => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst result = await this.compact(options?.customInstructions);\n\t\t\t\t\t\t\toptions?.onComplete?.(result);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconst err = error instanceof Error ? error : new Error(String(error));\n\t\t\t\t\t\t\toptions?.onError?.(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t},\n\t\t\t\tgetSystemPrompt: () => this.systemPrompt,\n\t\t\t\tgetSystemPromptOptions: () => this._baseSystemPromptOptions,\n\t\t\t},\n\t\t\t{\n\t\t\t\tregisterProvider: (name, config) => {\n\t\t\t\t\tthis._modelRuntime.registerProvider(name, config);\n\t\t\t\t\tthis._refreshCurrentModelFromRegistry();\n\t\t\t\t},\n\t\t\t\tunregisterProvider: (name) => {\n\t\t\t\t\tthis._modelRuntime.unregisterProvider(name);\n\t\t\t\t\tthis._refreshCurrentModelFromRegistry();\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate _refreshToolRegistry(options?: { activeToolNames?: string[]; includeAllExtensionTools?: boolean }): void {\n\t\tconst previousRegistryNames = new Set(this._toolRegistry.keys());\n\t\tconst previousActiveToolNames = this.getActiveToolNames();\n\t\tconst allowedToolNames = this._allowedToolNames;\n\t\tconst excludedToolNames = this._excludedToolNames;\n\t\tconst isAllowedTool = (name: string): boolean =>\n\t\t\t(!allowedToolNames || allowedToolNames.has(name)) && !excludedToolNames?.has(name);\n\n\t\tconst registeredTools = this._extensionRunner.getAllRegisteredTools();\n\t\tconst allCustomTools = [\n\t\t\t...registeredTools,\n\t\t\t...this._customTools.map((definition) => ({\n\t\t\t\tdefinition,\n\t\t\t\tsourceInfo: createSyntheticSourceInfo(`<sdk:${definition.name}>`, { source: \"sdk\" }),\n\t\t\t})),\n\t\t].filter((tool) => isAllowedTool(tool.definition.name));\n\t\tconst definitionRegistry = new Map<string, ToolDefinitionEntry>(\n\t\t\tArray.from(this._baseToolDefinitions.entries())\n\t\t\t\t.filter(([name]) => isAllowedTool(name))\n\t\t\t\t.map(([name, definition]) => [\n\t\t\t\t\tname,\n\t\t\t\t\t{\n\t\t\t\t\t\tdefinition,\n\t\t\t\t\t\tsourceInfo: createSyntheticSourceInfo(`<builtin:${name}>`, { source: \"builtin\" }),\n\t\t\t\t\t},\n\t\t\t\t]),\n\t\t);\n\t\tfor (const tool of allCustomTools) {\n\t\t\tdefinitionRegistry.set(tool.definition.name, {\n\t\t\t\tdefinition: tool.definition,\n\t\t\t\tsourceInfo: tool.sourceInfo,\n\t\t\t});\n\t\t}\n\t\tthis._toolDefinitions = definitionRegistry;\n\t\tthis._toolPromptSnippets = new Map(\n\t\t\tArray.from(definitionRegistry.values())\n\t\t\t\t.map(({ definition }) => {\n\t\t\t\t\tconst snippet = this._normalizePromptSnippet(definition.promptSnippet);\n\t\t\t\t\treturn snippet ? ([definition.name, snippet] as const) : undefined;\n\t\t\t\t})\n\t\t\t\t.filter((entry): entry is readonly [string, string] => entry !== undefined),\n\t\t);\n\t\tthis._toolPromptGuidelines = new Map(\n\t\t\tArray.from(definitionRegistry.values())\n\t\t\t\t.map(({ definition }) => {\n\t\t\t\t\tconst guidelines = this._normalizePromptGuidelines(definition.promptGuidelines);\n\t\t\t\t\treturn guidelines.length > 0 ? ([definition.name, guidelines] as const) : undefined;\n\t\t\t\t})\n\t\t\t\t.filter((entry): entry is readonly [string, string[]] => entry !== undefined),\n\t\t);\n\t\tconst runner = this._extensionRunner;\n\t\tconst wrappedExtensionTools = wrapRegisteredTools(allCustomTools, runner);\n\t\tconst wrappedBuiltInTools = wrapRegisteredTools(\n\t\t\tArray.from(this._baseToolDefinitions.values())\n\t\t\t\t.filter((definition) => isAllowedTool(definition.name))\n\t\t\t\t.map((definition) => ({\n\t\t\t\t\tdefinition,\n\t\t\t\t\tsourceInfo: createSyntheticSourceInfo(`<builtin:${definition.name}>`, { source: \"builtin\" }),\n\t\t\t\t})),\n\t\t\trunner,\n\t\t);\n\n\t\tconst toolRegistry = new Map(wrappedBuiltInTools.map((tool) => [tool.name, tool]));\n\t\tfor (const tool of wrappedExtensionTools as AgentTool[]) {\n\t\t\ttoolRegistry.set(tool.name, tool);\n\t\t}\n\t\tthis._toolRegistry = toolRegistry;\n\n\t\tconst nextActiveToolNames = (\n\t\t\toptions?.activeToolNames ? [...options.activeToolNames] : [...previousActiveToolNames]\n\t\t).filter((name) => isAllowedTool(name));\n\n\t\tif (allowedToolNames) {\n\t\t\tfor (const toolName of this._toolRegistry.keys()) {\n\t\t\t\tif (allowedToolNames.has(toolName)) {\n\t\t\t\t\tnextActiveToolNames.push(toolName);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (options?.includeAllExtensionTools) {\n\t\t\tfor (const tool of wrappedExtensionTools) {\n\t\t\t\tnextActiveToolNames.push(tool.name);\n\t\t\t}\n\t\t} else if (!options?.activeToolNames) {\n\t\t\tfor (const toolName of this._toolRegistry.keys()) {\n\t\t\t\tif (!previousRegistryNames.has(toolName)) {\n\t\t\t\t\tnextActiveToolNames.push(toolName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.setActiveToolsByName([...new Set(nextActiveToolNames)]);\n\t}\n\n\tprivate _buildRuntime(options: {\n\t\tactiveToolNames?: string[];\n\t\tflagValues?: Map<string, boolean | string>;\n\t\tincludeAllExtensionTools?: boolean;\n\t}): void {\n\t\tconst autoResizeImages = this.settingsManager.getImageAutoResize();\n\t\tconst shellCommandPrefix = this.settingsManager.getShellCommandPrefix();\n\t\tconst shellPath = this.settingsManager.getShellPath();\n\t\tconst baseToolDefinitions = this._baseToolsOverride\n\t\t\t? Object.fromEntries(\n\t\t\t\t\tObject.entries(this._baseToolsOverride).map(([name, tool]) => [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tcreateToolDefinitionFromAgentTool(tool),\n\t\t\t\t\t]),\n\t\t\t\t)\n\t\t\t: createAllToolDefinitions(this._cwd, {\n\t\t\t\t\tread: { autoResizeImages },\n\t\t\t\t\tbash: { commandPrefix: shellCommandPrefix, shellPath },\n\t\t\t\t});\n\n\t\tthis._baseToolDefinitions = new Map(\n\t\t\tObject.entries(baseToolDefinitions).map(([name, tool]) => [name, tool as ToolDefinition]),\n\t\t);\n\n\t\tconst extensionsResult = this._resourceLoader.getExtensions();\n\t\tif (options.flagValues) {\n\t\t\tfor (const [name, value] of options.flagValues) {\n\t\t\t\textensionsResult.runtime.flagValues.set(name, value);\n\t\t\t}\n\t\t}\n\n\t\tthis._extensionRunner = new ExtensionRunner(\n\t\t\textensionsResult.extensions,\n\t\t\textensionsResult.runtime,\n\t\t\tthis._cwd,\n\t\t\tthis.sessionManager,\n\t\t\tnew ModelRegistry(this._modelRuntime),\n\t\t);\n\t\tif (this._extensionRunnerRef) {\n\t\t\tthis._extensionRunnerRef.current = this._extensionRunner;\n\t\t}\n\t\tthis._bindExtensionCore(this._extensionRunner);\n\t\tthis._applyExtensionBindings(this._extensionRunner);\n\n\t\tconst defaultActiveToolNames = this._baseToolsOverride\n\t\t\t? Object.keys(this._baseToolsOverride)\n\t\t\t: [\"read\", \"bash\", \"edit\", \"write\"];\n\t\tconst baseActiveToolNames = options.activeToolNames ?? defaultActiveToolNames;\n\t\tthis._refreshToolRegistry({\n\t\t\tactiveToolNames: baseActiveToolNames,\n\t\t\tincludeAllExtensionTools: options.includeAllExtensionTools,\n\t\t});\n\t}\n\n\tasync reload(options?: { beforeSessionStart?: () => void | Promise<void> }): Promise<void> {\n\t\tconst previousFlagValues = this._extensionRunner.getFlagValues();\n\t\tawait emitSessionShutdownEvent(this._extensionRunner, { type: \"session_shutdown\", reason: \"reload\" });\n\t\tawait this.settingsManager.reload();\n\t\tthis.syncQueueModesFromSettings();\n\t\tresetApiProviders();\n\t\tawait this._resourceLoader.reload();\n\t\tthis._buildRuntime({\n\t\t\tactiveToolNames: this.getActiveToolNames(),\n\t\t\tflagValues: previousFlagValues,\n\t\t\tincludeAllExtensionTools: true,\n\t\t});\n\n\t\tconst hasBindings =\n\t\t\tthis._extensionUIContext ||\n\t\t\tthis._extensionCommandContextActions ||\n\t\t\tthis._extensionShutdownHandler ||\n\t\t\tthis._extensionErrorListener;\n\t\tif (hasBindings) {\n\t\t\tawait options?.beforeSessionStart?.();\n\t\t\tawait this._extensionRunner.emit({ type: \"session_start\", reason: \"reload\" });\n\t\t\tawait this.extendResourcesFromExtensions(\"reload\");\n\t\t}\n\t}\n\n\t// =========================================================================\n\t// Auto-Retry\n\t// =========================================================================\n\n\t/**\n\t * Check if an error is retryable (overloaded, rate limit, server errors).\n\t * Context overflow errors are NOT retryable (handled by compaction instead).\n\t */\n\tprivate _isRetryableError(message: AssistantMessage): boolean {\n\t\t// Context overflow is handled by compaction, not retry.\n\t\tif (isContextOverflow(message, this.model?.contextWindow ?? 0)) return false;\n\t\treturn isRetryableAssistantError(message);\n\t}\n\n\t/**\n\t * Prepare a retryable error for continuation with exponential backoff.\n\t * @returns true if the caller should continue the agent, false otherwise\n\t */\n\tprivate async _prepareRetry(message: AssistantMessage): Promise<boolean> {\n\t\tconst settings = this.settingsManager.getRetrySettings();\n\t\tif (!settings.enabled) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis._retryAttempt++;\n\n\t\tif (this._retryAttempt > settings.maxRetries) {\n\t\t\t// Preserve the completed attempt count so post-run handling can emit the final failure.\n\t\t\tthis._retryAttempt--;\n\t\t\treturn false;\n\t\t}\n\n\t\tconst delayMs = settings.baseDelayMs * 2 ** (this._retryAttempt - 1);\n\n\t\tthis._emit({\n\t\t\ttype: \"auto_retry_start\",\n\t\t\tattempt: this._retryAttempt,\n\t\t\tmaxAttempts: settings.maxRetries,\n\t\t\tdelayMs,\n\t\t\terrorMessage: message.errorMessage || \"Unknown error\",\n\t\t});\n\n\t\t// Remove error message from agent state (keep in session for history)\n\t\tconst messages = this.agent.state.messages;\n\t\tif (messages.length > 0 && messages[messages.length - 1].role === \"assistant\") {\n\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t}\n\n\t\t// Wait with exponential backoff (abortable)\n\t\tthis._retryAbortController = new AbortController();\n\t\ttry {\n\t\t\tawait sleep(delayMs, this._retryAbortController.signal);\n\t\t} catch {\n\t\t\t// Aborted during sleep - emit end event so UI can clean up\n\t\t\tconst attempt = this._retryAttempt;\n\t\t\tthis._retryAttempt = 0;\n\t\t\tthis._emit({\n\t\t\t\ttype: \"auto_retry_end\",\n\t\t\t\tsuccess: false,\n\t\t\t\tattempt,\n\t\t\t\tfinalError: \"Retry cancelled\",\n\t\t\t});\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tthis._retryAbortController = undefined;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cancel in-progress retry.\n\t */\n\tabortRetry(): void {\n\t\tthis._retryAbortController?.abort();\n\t}\n\n\t/** lunr: errors that mark a subscription key dead — rotate without same-key backoff. */\n\tprivate _isRotationError(message: AssistantMessage): boolean {\n\t\tconst errorMessage = message.errorMessage ?? \"\";\n\t\treturn isUsageLimitError(errorMessage) || isAuthInvalidError(errorMessage);\n\t}\n\n\t/**\n\t * lunr: multi-subscription rotation. When a run is about to fail final, switch\n\t * the provider to the next pooled key (mirrored into the credential store by\n\t * SubscriptionManager) and continue immediately — no backoff sleep. Returns\n\t * false when rotation is impossible, leaving the error as the final message.\n\t */\n\tprivate async _tryRotateSubscriptionKey(message: AssistantMessage): Promise<boolean> {\n\t\tconst model = this.model;\n\t\tif (!model) return false;\n\t\tconst providerId = model.provider;\n\t\t// A runtime --api-key override wins over auth.json in RuntimeCredentials.read(),\n\t\t// so mirroring a rotated key into the store would have no effect — skip rotation.\n\t\tif (this._modelRuntime.hasRuntimeApiKey(providerId)) return false;\n\t\tconst manager = this._modelRuntime.subscriptionManager;\n\t\tif ((await manager.list(providerId)).length < 2) return false;\n\n\t\tconst errorMessage = message.errorMessage ?? \"Unknown error\";\n\t\tconst entry = await manager.rotateOnFailure(providerId, errorMessage);\n\t\tif (!entry) return false;\n\n\t\t// Close out any in-flight retry indicator; a fresh key gets a fresh retry budget.\n\t\tif (this._retryAttempt > 0) {\n\t\t\tthis._emit({ type: \"auto_retry_end\", success: true, attempt: this._retryAttempt });\n\t\t}\n\t\tthis._retryAttempt = 0;\n\n\t\t// Remove error message from agent state (keep in session for history) —\n\t\t// same slice pattern as _prepareRetry.\n\t\tconst messages = this.agent.state.messages;\n\t\tif (messages.length > 0 && messages[messages.length - 1].role === \"assistant\") {\n\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t}\n\n\t\tthis._emit({\n\t\t\ttype: \"subscription_rotation\",\n\t\t\tproviderId,\n\t\t\tkeyName: entry.name,\n\t\t\terrorMessage,\n\t\t});\n\t\treturn true;\n\t}\n\n\t/** Whether auto-retry is currently in progress */\n\tget isRetrying(): boolean {\n\t\treturn this._retryAbortController !== undefined;\n\t}\n\n\t/** Whether auto-retry is enabled */\n\tget autoRetryEnabled(): boolean {\n\t\treturn this.settingsManager.getRetryEnabled();\n\t}\n\n\t/**\n\t * Toggle auto-retry setting.\n\t */\n\tsetAutoRetryEnabled(enabled: boolean): void {\n\t\tthis.settingsManager.setRetryEnabled(enabled);\n\t}\n\n\t// =========================================================================\n\t// Bash Execution\n\t// =========================================================================\n\n\t/**\n\t * Execute a bash command.\n\t * Adds result to agent context and session.\n\t * @param command The bash command to execute\n\t * @param onChunk Optional streaming callback for output\n\t * @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)\n\t * @param options.operations Custom BashOperations for remote execution\n\t */\n\tasync executeBash(\n\t\tcommand: string,\n\t\tonChunk?: (chunk: string) => void,\n\t\toptions?: { excludeFromContext?: boolean; operations?: BashOperations },\n\t): Promise<BashResult> {\n\t\tthis._bashAbortController = new AbortController();\n\n\t\t// Apply command prefix if configured (e.g., \"shopt -s expand_aliases\" for alias support)\n\t\tconst prefix = this.settingsManager.getShellCommandPrefix();\n\t\tconst shellPath = this.settingsManager.getShellPath();\n\t\tconst resolvedCommand = prefix ? `${prefix}\\n${command}` : command;\n\n\t\ttry {\n\t\t\tconst result = await executeBashWithOperations(\n\t\t\t\tresolvedCommand,\n\t\t\t\tthis.sessionManager.getCwd(),\n\t\t\t\toptions?.operations ?? createLocalBashOperations({ shellPath, sessionId: this.sessionId }),\n\t\t\t\t{\n\t\t\t\t\tonChunk,\n\t\t\t\t\tsignal: this._bashAbortController.signal,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.recordBashResult(command, result, options);\n\t\t\treturn result;\n\t\t} finally {\n\t\t\tthis._bashAbortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Record a bash execution result in session history.\n\t * Used by executeBash and by extensions that handle bash execution themselves.\n\t */\n\trecordBashResult(command: string, result: BashResult, options?: { excludeFromContext?: boolean }): void {\n\t\tconst bashMessage: BashExecutionMessage = {\n\t\t\trole: \"bashExecution\",\n\t\t\tcommand,\n\t\t\toutput: result.output,\n\t\t\texitCode: result.exitCode,\n\t\t\tcancelled: result.cancelled,\n\t\t\ttruncated: result.truncated,\n\t\t\tfullOutputPath: result.fullOutputPath,\n\t\t\ttimestamp: Date.now(),\n\t\t\texcludeFromContext: options?.excludeFromContext,\n\t\t};\n\n\t\t// If agent is streaming, defer adding to avoid breaking tool_use/tool_result ordering\n\t\tif (this.isStreaming) {\n\t\t\t// Queue for later - will be flushed on agent_end\n\t\t\tthis._pendingBashMessages.push(bashMessage);\n\t\t} else {\n\t\t\t// Add to agent state immediately\n\t\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t\t// Save to session\n\t\t\tthis.sessionManager.appendMessage(bashMessage);\n\t\t}\n\t}\n\n\t/**\n\t * Cancel running bash command.\n\t */\n\tabortBash(): void {\n\t\tthis._bashAbortController?.abort();\n\t}\n\n\t/** Whether a bash command is currently running */\n\tget isBashRunning(): boolean {\n\t\treturn this._bashAbortController !== undefined;\n\t}\n\n\t/** Whether there are pending bash messages waiting to be flushed */\n\tget hasPendingBashMessages(): boolean {\n\t\treturn this._pendingBashMessages.length > 0;\n\t}\n\n\t/**\n\t * Flush pending bash messages to agent state and session.\n\t * Called after agent turn completes to maintain proper message ordering.\n\t */\n\tprivate _flushPendingBashMessages(): void {\n\t\tif (this._pendingBashMessages.length === 0) return;\n\n\t\tfor (const bashMessage of this._pendingBashMessages) {\n\t\t\t// Add to agent state\n\t\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t\t// Save to session\n\t\t\tthis.sessionManager.appendMessage(bashMessage);\n\t\t}\n\n\t\tthis._pendingBashMessages = [];\n\t}\n\n\t// =========================================================================\n\t// Session Management\n\t// =========================================================================\n\n\t/**\n\t * Set a display name for the current session.\n\t */\n\tsetSessionName(name: string): void {\n\t\tthis.sessionManager.appendSessionInfo(name);\n\t\tconst event = { type: \"session_info_changed\", name: this.sessionManager.getSessionName() } as const;\n\t\tthis._emit(event);\n\t\tvoid this._extensionRunner.emit(event);\n\t}\n\n\t// =========================================================================\n\t// Tree Navigation\n\t// =========================================================================\n\n\t/**\n\t * Navigate to a different node in the session tree.\n\t * Unlike fork() which creates a new session file, this stays in the same file.\n\t *\n\t * @param targetId The entry ID to navigate to\n\t * @param options.summarize Whether user wants to summarize abandoned branch\n\t * @param options.customInstructions Custom instructions for summarizer\n\t * @param options.replaceInstructions If true, customInstructions replaces the default prompt\n\t * @param options.label Label to attach to the branch summary entry\n\t * @returns Result with editorText (if user message) and cancelled status\n\t */\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string } = {},\n\t): Promise<{ editorText?: string; cancelled: boolean; aborted?: boolean; summaryEntry?: BranchSummaryEntry }> {\n\t\tconst oldLeafId = this.sessionManager.getLeafId();\n\n\t\t// No-op if already at target\n\t\tif (targetId === oldLeafId) {\n\t\t\treturn { cancelled: false };\n\t\t}\n\n\t\t// Model required for summarization\n\t\tif (options.summarize && !this.model) {\n\t\t\tthrow new Error(\"No model available for summarization\");\n\t\t}\n\n\t\tconst targetEntry = this.sessionManager.getEntry(targetId);\n\t\tif (!targetEntry) {\n\t\t\tthrow new Error(`Entry ${targetId} not found`);\n\t\t}\n\n\t\t// Collect entries to summarize (from old leaf to common ancestor)\n\t\tconst { entries: entriesToSummarize, commonAncestorId } = collectEntriesForBranchSummary(\n\t\t\tthis.sessionManager,\n\t\t\toldLeafId,\n\t\t\ttargetId,\n\t\t);\n\n\t\t// Prepare event data - mutable so extensions can override\n\t\tlet customInstructions = options.customInstructions;\n\t\tlet replaceInstructions = options.replaceInstructions;\n\t\tlet label = options.label;\n\n\t\tconst preparation: TreePreparation = {\n\t\t\ttargetId,\n\t\t\toldLeafId,\n\t\t\tcommonAncestorId,\n\t\t\tentriesToSummarize,\n\t\t\tuserWantsSummary: options.summarize ?? false,\n\t\t\tcustomInstructions,\n\t\t\treplaceInstructions,\n\t\t\tlabel,\n\t\t};\n\n\t\t// Set up abort controller for summarization\n\t\tthis._branchSummaryAbortController = new AbortController();\n\n\t\ttry {\n\t\t\tlet extensionSummary: { summary: string; details?: unknown } | undefined;\n\t\t\tlet fromExtension = false;\n\n\t\t\t// Emit session_before_tree event\n\t\t\tif (this._extensionRunner.hasHandlers(\"session_before_tree\")) {\n\t\t\t\tconst result = (await this._extensionRunner.emit({\n\t\t\t\t\ttype: \"session_before_tree\",\n\t\t\t\t\tpreparation,\n\t\t\t\t\tsignal: this._branchSummaryAbortController.signal,\n\t\t\t\t})) as SessionBeforeTreeResult | undefined;\n\n\t\t\t\tif (result?.cancel) {\n\t\t\t\t\treturn { cancelled: true };\n\t\t\t\t}\n\n\t\t\t\tif (result?.summary && options.summarize) {\n\t\t\t\t\textensionSummary = result.summary;\n\t\t\t\t\tfromExtension = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow extensions to override instructions and label\n\t\t\t\tif (result?.customInstructions !== undefined) {\n\t\t\t\t\tcustomInstructions = result.customInstructions;\n\t\t\t\t}\n\t\t\t\tif (result?.replaceInstructions !== undefined) {\n\t\t\t\t\treplaceInstructions = result.replaceInstructions;\n\t\t\t\t}\n\t\t\t\tif (result?.label !== undefined) {\n\t\t\t\t\tlabel = result.label;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Run default summarizer if needed\n\t\t\tlet summaryText: string | undefined;\n\t\t\tlet summaryDetails: unknown;\n\t\t\tif (options.summarize && entriesToSummarize.length > 0 && !extensionSummary) {\n\t\t\t\tconst model = this.model!;\n\t\t\t\tconst { apiKey, headers, env } = await this._getSummarizationRequestAuth(model);\n\t\t\t\tconst branchSummarySettings = this.settingsManager.getBranchSummarySettings();\n\t\t\t\tconst result = await generateBranchSummary(entriesToSummarize, {\n\t\t\t\t\tmodel,\n\t\t\t\t\tapiKey,\n\t\t\t\t\theaders,\n\t\t\t\t\tenv,\n\t\t\t\t\tsignal: this._branchSummaryAbortController.signal,\n\t\t\t\t\tcustomInstructions,\n\t\t\t\t\treplaceInstructions,\n\t\t\t\t\treserveTokens: branchSummarySettings.reserveTokens,\n\t\t\t\t\tstreamFn: this.agent.streamFn,\n\t\t\t\t});\n\t\t\t\tif (result.aborted) {\n\t\t\t\t\treturn { cancelled: true, aborted: true };\n\t\t\t\t}\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow new Error(result.error);\n\t\t\t\t}\n\t\t\t\tsummaryText = result.summary;\n\t\t\t\tsummaryDetails = {\n\t\t\t\t\treadFiles: result.readFiles || [],\n\t\t\t\t\tmodifiedFiles: result.modifiedFiles || [],\n\t\t\t\t};\n\t\t\t} else if (extensionSummary) {\n\t\t\t\tsummaryText = extensionSummary.summary;\n\t\t\t\tsummaryDetails = extensionSummary.details;\n\t\t\t}\n\n\t\t\t// Determine the new leaf position based on target type\n\t\t\tlet newLeafId: string | null;\n\t\t\tlet editorText: string | undefined;\n\n\t\t\tif (targetEntry.type === \"message\" && targetEntry.message.role === \"user\") {\n\t\t\t\t// User message: leaf = parent (null if root), text goes to editor\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText = this._extractUserMessageText(targetEntry.message.content);\n\t\t\t} else if (targetEntry.type === \"custom_message\") {\n\t\t\t\t// Custom message: leaf = parent (null if root), text goes to editor\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText =\n\t\t\t\t\ttypeof targetEntry.content === \"string\"\n\t\t\t\t\t\t? targetEntry.content\n\t\t\t\t\t\t: targetEntry.content\n\t\t\t\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t\t\t\t.join(\"\");\n\t\t\t} else {\n\t\t\t\t// Non-user message: leaf = selected node\n\t\t\t\tnewLeafId = targetId;\n\t\t\t}\n\n\t\t\t// Switch leaf (with or without summary)\n\t\t\t// Summary is attached at the navigation target position (newLeafId), not the old branch\n\t\t\tlet summaryEntry: BranchSummaryEntry | undefined;\n\t\t\tif (summaryText) {\n\t\t\t\t// Create summary at target position (can be null for root)\n\t\t\t\tconst summaryId = this.sessionManager.branchWithSummary(\n\t\t\t\t\tnewLeafId,\n\t\t\t\t\tsummaryText,\n\t\t\t\t\tsummaryDetails,\n\t\t\t\t\tfromExtension,\n\t\t\t\t);\n\t\t\t\tsummaryEntry = this.sessionManager.getEntry(summaryId) as BranchSummaryEntry;\n\n\t\t\t\t// Attach label to the summary entry\n\t\t\t\tif (label) {\n\t\t\t\t\tthis.sessionManager.appendLabelChange(summaryId, label);\n\t\t\t\t}\n\t\t\t} else if (newLeafId === null) {\n\t\t\t\t// No summary, navigating to root - reset leaf\n\t\t\t\tthis.sessionManager.resetLeaf();\n\t\t\t} else {\n\t\t\t\t// No summary, navigating to non-root\n\t\t\t\tthis.sessionManager.branch(newLeafId);\n\t\t\t}\n\n\t\t\t// Attach label to target entry when not summarizing (no summary entry to label)\n\t\t\tif (label && !summaryText) {\n\t\t\t\tthis.sessionManager.appendLabelChange(targetId, label);\n\t\t\t}\n\n\t\t\t// Update agent state\n\t\t\tconst sessionContext = this.sessionManager.buildSessionContext();\n\t\t\tthis.agent.state.messages = sessionContext.messages;\n\n\t\t\t// Emit session_tree event\n\t\t\tawait this._extensionRunner.emit({\n\t\t\t\ttype: \"session_tree\",\n\t\t\t\tnewLeafId: this.sessionManager.getLeafId(),\n\t\t\t\toldLeafId,\n\t\t\t\tsummaryEntry,\n\t\t\t\tfromExtension: summaryText ? fromExtension : undefined,\n\t\t\t});\n\n\t\t\t// Emit to custom tools\n\n\t\t\treturn { editorText, cancelled: false, summaryEntry };\n\t\t} finally {\n\t\t\tthis._branchSummaryAbortController = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Get all user messages from session for fork selector.\n\t */\n\tgetUserMessagesForForking(): Array<{ entryId: string; text: string }> {\n\t\tconst entries = this.sessionManager.getEntries();\n\t\tconst result: Array<{ entryId: string; text: string }> = [];\n\n\t\tfor (const entry of entries) {\n\t\t\tif (entry.type !== \"message\") continue;\n\t\t\tif (entry.message.role !== \"user\") continue;\n\n\t\t\tconst text = this._extractUserMessageText(entry.message.content);\n\t\t\tif (text) {\n\t\t\t\tresult.push({ entryId: entry.id, text });\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _extractUserMessageText(content: string | Array<{ type: string; text?: string }>): string {\n\t\tif (typeof content === \"string\") return content;\n\t\tif (Array.isArray(content)) {\n\t\t\treturn content\n\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t.map((c) => c.text)\n\t\t\t\t.join(\"\");\n\t\t}\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Get session statistics. Aggregates over ALL session entries (including\n\t * history that was compacted away), so token/cost totals reflect what was\n\t * actually billed across the session.\n\t */\n\tgetSessionStats(): SessionStats {\n\t\tlet userMessages = 0;\n\t\tlet assistantMessages = 0;\n\t\tlet toolResults = 0;\n\t\tlet totalMessages = 0;\n\t\tlet toolCalls = 0;\n\t\tlet totalInput = 0;\n\t\tlet totalOutput = 0;\n\t\tlet totalCacheRead = 0;\n\t\tlet totalCacheWrite = 0;\n\t\tlet totalCost = 0;\n\n\t\tfor (const entry of this.sessionManager.getEntries()) {\n\t\t\tif (entry.type !== \"message\") continue;\n\t\t\ttotalMessages++;\n\t\t\tconst message = entry.message;\n\t\t\tif (message.role === \"user\") {\n\t\t\t\tuserMessages++;\n\t\t\t} else if (message.role === \"toolResult\") {\n\t\t\t\ttoolResults++;\n\t\t\t} else if (message.role === \"assistant\") {\n\t\t\t\tassistantMessages++;\n\t\t\t\tconst assistantMsg = message as AssistantMessage;\n\t\t\t\tif (Array.isArray(assistantMsg.content)) {\n\t\t\t\t\ttoolCalls += assistantMsg.content.filter((c) => c.type === \"toolCall\").length;\n\t\t\t\t}\n\t\t\t\tconst usage = assistantMsg.usage;\n\t\t\t\ttotalInput += usage.input;\n\t\t\t\ttotalOutput += usage.output;\n\t\t\t\ttotalCacheRead += usage.cacheRead;\n\t\t\t\ttotalCacheWrite += usage.cacheWrite;\n\t\t\t\ttotalCost += usage.cost.total;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsessionFile: this.sessionFile,\n\t\t\tsessionId: this.sessionId,\n\t\t\tuserMessages,\n\t\t\tassistantMessages,\n\t\t\ttoolCalls,\n\t\t\ttoolResults,\n\t\t\ttotalMessages,\n\t\t\ttokens: {\n\t\t\t\tinput: totalInput,\n\t\t\t\toutput: totalOutput,\n\t\t\t\tcacheRead: totalCacheRead,\n\t\t\t\tcacheWrite: totalCacheWrite,\n\t\t\t\ttotal: totalInput + totalOutput + totalCacheRead + totalCacheWrite,\n\t\t\t},\n\t\t\tcost: totalCost,\n\t\t\tcontextUsage: this.getContextUsage(),\n\t\t};\n\t}\n\n\tgetContextUsage(): ContextUsage | undefined {\n\t\tconst model = this.model;\n\t\tif (!model) return undefined;\n\n\t\tconst contextWindow = model.contextWindow ?? 0;\n\t\tif (contextWindow <= 0) return undefined;\n\n\t\t// After compaction, the last assistant usage reflects pre-compaction context size.\n\t\t// We can only trust usage from an assistant that responded after the latest compaction.\n\t\t// If no such assistant exists, context token count is unknown until the next LLM response.\n\t\tconst branchEntries = this.sessionManager.getBranch();\n\t\tconst latestCompaction = getLatestCompactionEntry(branchEntries);\n\n\t\tif (latestCompaction) {\n\t\t\t// Check if there's a valid assistant usage after the compaction boundary\n\t\t\tconst compactionIndex = branchEntries.lastIndexOf(latestCompaction);\n\t\t\tlet hasPostCompactionUsage = false;\n\t\t\tfor (let i = branchEntries.length - 1; i > compactionIndex; i--) {\n\t\t\t\tconst entry = branchEntries[i];\n\t\t\t\tif (entry.type === \"message\" && entry.message.role === \"assistant\") {\n\t\t\t\t\tconst assistant = entry.message;\n\t\t\t\t\tif (assistant.stopReason !== \"aborted\" && assistant.stopReason !== \"error\") {\n\t\t\t\t\t\tconst contextTokens = calculateContextTokens(assistant.usage);\n\t\t\t\t\t\tif (contextTokens > 0) {\n\t\t\t\t\t\t\thasPostCompactionUsage = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!hasPostCompactionUsage) {\n\t\t\t\treturn { tokens: null, contextWindow, percent: null };\n\t\t\t}\n\t\t}\n\n\t\tconst estimate = estimateContextTokens(this.messages);\n\t\tconst percent = (estimate.tokens / contextWindow) * 100;\n\n\t\treturn {\n\t\t\ttokens: estimate.tokens,\n\t\t\tcontextWindow,\n\t\t\tpercent,\n\t\t};\n\t}\n\n\t/**\n\t * Export session to HTML.\n\t * @param outputPath Optional output path (defaults to session directory)\n\t * @returns Path to exported file\n\t */\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\tconst configuredThemeName = this.settingsManager.getTheme();\n\t\tconst themeName = configuredThemeName && getThemeByName(configuredThemeName) ? configuredThemeName : undefined;\n\n\t\t// Create tool renderer if we have an extension runner (for custom tool HTML rendering)\n\t\tconst toolRenderer: ToolHtmlRenderer = createToolHtmlRenderer({\n\t\t\tgetToolDefinition: (name) => this.getToolDefinition(name),\n\t\t\ttheme,\n\t\t\tcwd: this.sessionManager.getCwd(),\n\t\t});\n\n\t\treturn await exportSessionToHtml(this.sessionManager, this.state, {\n\t\t\toutputPath,\n\t\t\tthemeName,\n\t\t\ttoolRenderer,\n\t\t});\n\t}\n\n\t/**\n\t * Export the current session branch to a JSONL file.\n\t * Writes the session header followed by all entries on the current branch path.\n\t * @param outputPath Target file path. If omitted, generates a timestamped file in cwd.\n\t * @returns The resolved output file path.\n\t */\n\texportToJsonl(outputPath?: string): string {\n\t\tconst filePath = resolvePath(\n\t\t\toutputPath ?? `session-${new Date().toISOString().replace(/[:.]/g, \"-\")}.jsonl`,\n\t\t\tprocess.cwd(),\n\t\t);\n\t\tconst dir = dirname(filePath);\n\t\tif (!existsSync(dir)) {\n\t\t\tmkdirSync(dir, { recursive: true });\n\t\t}\n\n\t\tconst header: SessionHeader = {\n\t\t\ttype: \"session\",\n\t\t\tversion: CURRENT_SESSION_VERSION,\n\t\t\tid: this.sessionManager.getSessionId(),\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tcwd: this.sessionManager.getCwd(),\n\t\t};\n\n\t\tconst branchEntries = this.sessionManager.getBranch();\n\t\tconst lines = [JSON.stringify(header)];\n\n\t\t// Re-chain parentIds to form a linear sequence\n\t\tlet prevId: string | null = null;\n\t\tfor (const entry of branchEntries) {\n\t\t\tconst linear = { ...entry, parentId: prevId };\n\t\t\tlines.push(JSON.stringify(linear));\n\t\t\tprevId = entry.id;\n\t\t}\n\n\t\twriteFileSync(filePath, `${lines.join(\"\\n\")}\\n`);\n\t\treturn filePath;\n\t}\n\n\t// =========================================================================\n\t// Utilities\n\t// =========================================================================\n\n\t/**\n\t * Get text content of last assistant message.\n\t * Useful for /copy command.\n\t * @returns Text content, or undefined if no assistant message exists\n\t */\n\tgetLastAssistantText(): string | undefined {\n\t\tconst lastAssistant = this.messages\n\t\t\t.slice()\n\t\t\t.reverse()\n\t\t\t.find((m) => {\n\t\t\t\tif (m.role !== \"assistant\") return false;\n\t\t\t\tconst msg = m as AssistantMessage;\n\t\t\t\t// Skip aborted messages with no content\n\t\t\t\tif (msg.stopReason === \"aborted\" && msg.content.length === 0) return false;\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\tif (!lastAssistant) return undefined;\n\n\t\tlet text = \"\";\n\t\tfor (const content of (lastAssistant as AssistantMessage).content) {\n\t\t\tif (content.type === \"text\") {\n\t\t\t\ttext += content.text;\n\t\t\t}\n\t\t}\n\n\t\treturn text.trim() || undefined;\n\t}\n\n\t// =========================================================================\n\t// Extension System\n\t// =========================================================================\n\n\tcreateReplacedSessionContext(): ReplacedSessionContext {\n\t\tconst context = Object.defineProperties(\n\t\t\t{},\n\t\t\tObject.getOwnPropertyDescriptors(this._extensionRunner.createCommandContext()),\n\t\t) as ReplacedSessionContext;\n\t\tcontext.sendMessage = (message, options) => this.sendCustomMessage(message, options);\n\t\tcontext.sendUserMessage = (content, options) => this.sendUserMessage(content, options);\n\t\treturn context;\n\t}\n\n\t/**\n\t * Check if extensions have handlers for a specific event type.\n\t */\n\thasExtensionHandlers(eventType: string): boolean {\n\t\treturn this._extensionRunner.hasHandlers(eventType);\n\t}\n\n\t/**\n\t * Get the extension runner (for setting UI context and error handlers).\n\t */\n\tget extensionRunner(): ExtensionRunner {\n\t\treturn this._extensionRunner;\n\t}\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function getProviderLoginHelp(): string;
2
+ export declare function formatNoModelsAvailableMessage(): string;
3
+ export declare function formatNoModelSelectedMessage(): string;
4
+ export declare function formatNoApiKeyFoundMessage(provider: string): string;
5
+ //# sourceMappingURL=auth-guidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-guidance.d.ts","sourceRoot":"","sources":["../../src/core/auth-guidance.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnE","sourcesContent":["import { join } from \"node:path\";\nimport { getDocsPath } from \"../config.ts\";\n\nconst UNKNOWN_PROVIDER = \"unknown\";\n\nexport function getProviderLoginHelp(): string {\n\treturn [\n\t\t\"Use /login to log into a provider via OAuth or API key. See:\",\n\t\t` ${join(getDocsPath(), \"providers.md\")}`,\n\t\t` ${join(getDocsPath(), \"models.md\")}`,\n\t].join(\"\\n\");\n}\n\nexport function formatNoModelsAvailableMessage(): string {\n\treturn `No models available. ${getProviderLoginHelp()}`;\n}\n\nexport function formatNoModelSelectedMessage(): string {\n\treturn `No model selected.\\n\\n${getProviderLoginHelp()}\\n\\nThen use /model to select a model.`;\n}\n\nexport function formatNoApiKeyFoundMessage(provider: string): string {\n\tconst providerDisplay = provider === UNKNOWN_PROVIDER ? \"the selected model\" : provider;\n\treturn `No API key found for ${providerDisplay}.\\n\\n${getProviderLoginHelp()}`;\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { join } from "node:path";
2
+ import { getDocsPath } from "../config.js";
3
+ const UNKNOWN_PROVIDER = "unknown";
4
+ export function getProviderLoginHelp() {
5
+ return [
6
+ "Use /login to log into a provider via OAuth or API key. See:",
7
+ ` ${join(getDocsPath(), "providers.md")}`,
8
+ ` ${join(getDocsPath(), "models.md")}`,
9
+ ].join("\n");
10
+ }
11
+ export function formatNoModelsAvailableMessage() {
12
+ return `No models available. ${getProviderLoginHelp()}`;
13
+ }
14
+ export function formatNoModelSelectedMessage() {
15
+ return `No model selected.\n\n${getProviderLoginHelp()}\n\nThen use /model to select a model.`;
16
+ }
17
+ export function formatNoApiKeyFoundMessage(provider) {
18
+ const providerDisplay = provider === UNKNOWN_PROVIDER ? "the selected model" : provider;
19
+ return `No API key found for ${providerDisplay}.\n\n${getProviderLoginHelp()}`;
20
+ }
21
+ //# sourceMappingURL=auth-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-guidance.js","sourceRoot":"","sources":["../../src/core/auth-guidance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,MAAM,UAAU,oBAAoB,GAAW;IAC9C,OAAO;QACN,8DAA8D;QAC9D,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE;QAC1C,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE;KACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CACb;AAED,MAAM,UAAU,8BAA8B,GAAW;IACxD,OAAO,wBAAwB,oBAAoB,EAAE,EAAE,CAAC;AAAA,CACxD;AAED,MAAM,UAAU,4BAA4B,GAAW;IACtD,OAAO,yBAAyB,oBAAoB,EAAE,wCAAwC,CAAC;AAAA,CAC/F;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAU;IACpE,MAAM,eAAe,GAAG,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxF,OAAO,wBAAwB,eAAe,QAAQ,oBAAoB,EAAE,EAAE,CAAC;AAAA,CAC/E","sourcesContent":["import { join } from \"node:path\";\nimport { getDocsPath } from \"../config.ts\";\n\nconst UNKNOWN_PROVIDER = \"unknown\";\n\nexport function getProviderLoginHelp(): string {\n\treturn [\n\t\t\"Use /login to log into a provider via OAuth or API key. See:\",\n\t\t` ${join(getDocsPath(), \"providers.md\")}`,\n\t\t` ${join(getDocsPath(), \"models.md\")}`,\n\t].join(\"\\n\");\n}\n\nexport function formatNoModelsAvailableMessage(): string {\n\treturn `No models available. ${getProviderLoginHelp()}`;\n}\n\nexport function formatNoModelSelectedMessage(): string {\n\treturn `No model selected.\\n\\n${getProviderLoginHelp()}\\n\\nThen use /model to select a model.`;\n}\n\nexport function formatNoApiKeyFoundMessage(provider: string): string {\n\tconst providerDisplay = provider === UNKNOWN_PROVIDER ? \"the selected model\" : provider;\n\treturn `No API key found for ${providerDisplay}.\\n\\n${getProviderLoginHelp()}`;\n}\n"]}