@ashx-j/lunr-dev 0.2.13-dev.1.1

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 (2280) hide show
  1. package/CHANGELOG.md +5055 -0
  2. package/README.md +25 -0
  3. package/dist/builtin-extensions/ashxj-spinners.d.ts +7 -0
  4. package/dist/builtin-extensions/ashxj-spinners.d.ts.map +1 -0
  5. package/dist/builtin-extensions/ashxj-spinners.js +282 -0
  6. package/dist/builtin-extensions/ashxj-spinners.js.map +1 -0
  7. package/dist/builtin-extensions/ashxj-thinking.d.ts +66 -0
  8. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -0
  9. package/dist/builtin-extensions/ashxj-thinking.js +321 -0
  10. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -0
  11. package/dist/builtin-extensions/ashxj-tui.d.ts +148 -0
  12. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -0
  13. package/dist/builtin-extensions/ashxj-tui.js +679 -0
  14. package/dist/builtin-extensions/ashxj-tui.js.map +1 -0
  15. package/dist/builtin-extensions/index.d.ts +34 -0
  16. package/dist/builtin-extensions/index.d.ts.map +1 -0
  17. package/dist/builtin-extensions/index.js +81 -0
  18. package/dist/builtin-extensions/index.js.map +1 -0
  19. package/dist/builtin-extensions/lunr-cron.d.ts +26 -0
  20. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -0
  21. package/dist/builtin-extensions/lunr-cron.js +351 -0
  22. package/dist/builtin-extensions/lunr-cron.js.map +1 -0
  23. package/dist/builtin-extensions/lunr-local-providers/index.d.ts +20 -0
  24. package/dist/builtin-extensions/lunr-local-providers/index.d.ts.map +1 -0
  25. package/dist/builtin-extensions/lunr-local-providers/index.js +130 -0
  26. package/dist/builtin-extensions/lunr-local-providers/index.js.map +1 -0
  27. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts +51 -0
  28. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -0
  29. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +130 -0
  30. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -0
  31. package/dist/builtin-extensions/lunr-plan-tools.d.ts +25 -0
  32. package/dist/builtin-extensions/lunr-plan-tools.d.ts.map +1 -0
  33. package/dist/builtin-extensions/lunr-plan-tools.js +59 -0
  34. package/dist/builtin-extensions/lunr-plan-tools.js.map +1 -0
  35. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts +12 -0
  36. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts.map +1 -0
  37. package/dist/builtin-extensions/lunr-skill-creator/index.js +18 -0
  38. package/dist/builtin-extensions/lunr-skill-creator/index.js.map +1 -0
  39. package/dist/builtin-extensions/lunr-skill-creator/skills/skill-creator/SKILL.md +68 -0
  40. package/dist/builtin-extensions/lunr-todos.d.ts +50 -0
  41. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -0
  42. package/dist/builtin-extensions/lunr-todos.js +210 -0
  43. package/dist/builtin-extensions/lunr-todos.js.map +1 -0
  44. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts +23 -0
  45. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -0
  46. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +77 -0
  47. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -0
  48. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts +18 -0
  49. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts.map +1 -0
  50. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js +165 -0
  51. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js.map +1 -0
  52. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts +19 -0
  53. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -0
  54. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +499 -0
  55. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -0
  56. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts +10 -0
  57. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -0
  58. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +885 -0
  59. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -0
  60. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts +57 -0
  61. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts.map +1 -0
  62. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js +225 -0
  63. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js.map +1 -0
  64. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts +20 -0
  65. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts.map +1 -0
  66. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js +75 -0
  67. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js.map +1 -0
  68. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts +16 -0
  69. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts.map +1 -0
  70. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js +67 -0
  71. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js.map +1 -0
  72. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts +158 -0
  73. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -0
  74. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +835 -0
  75. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -0
  76. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts +22 -0
  77. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts.map +1 -0
  78. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js +64 -0
  79. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js.map +1 -0
  80. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts +2 -0
  81. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts.map +1 -0
  82. package/dist/builtin-extensions/pi-intercom/broker/broker.js +541 -0
  83. package/dist/builtin-extensions/pi-intercom/broker/broker.js.map +1 -0
  84. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts +39 -0
  85. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts.map +1 -0
  86. package/dist/builtin-extensions/pi-intercom/broker/client.js +484 -0
  87. package/dist/builtin-extensions/pi-intercom/broker/client.js.map +1 -0
  88. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts +14 -0
  89. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts.map +1 -0
  90. package/dist/builtin-extensions/pi-intercom/broker/framing.js +74 -0
  91. package/dist/builtin-extensions/pi-intercom/broker/framing.js.map +1 -0
  92. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts +22 -0
  93. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts.map +1 -0
  94. package/dist/builtin-extensions/pi-intercom/broker/paths.js +88 -0
  95. package/dist/builtin-extensions/pi-intercom/broker/paths.js.map +1 -0
  96. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +27 -0
  97. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -0
  98. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +313 -0
  99. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -0
  100. package/dist/builtin-extensions/pi-intercom/config.d.ts +22 -0
  101. package/dist/builtin-extensions/pi-intercom/config.d.ts.map +1 -0
  102. package/dist/builtin-extensions/pi-intercom/config.js +103 -0
  103. package/dist/builtin-extensions/pi-intercom/config.js.map +1 -0
  104. package/dist/builtin-extensions/pi-intercom/index.d.ts +3 -0
  105. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -0
  106. package/dist/builtin-extensions/pi-intercom/index.js +1800 -0
  107. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -0
  108. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts +27 -0
  109. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts.map +1 -0
  110. package/dist/builtin-extensions/pi-intercom/reply-tracker.js +101 -0
  111. package/dist/builtin-extensions/pi-intercom/reply-tracker.js.map +1 -0
  112. package/dist/builtin-extensions/pi-intercom/types.d.ts +84 -0
  113. package/dist/builtin-extensions/pi-intercom/types.d.ts.map +1 -0
  114. package/dist/builtin-extensions/pi-intercom/types.js +2 -0
  115. package/dist/builtin-extensions/pi-intercom/types.js.map +1 -0
  116. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts +27 -0
  117. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts.map +1 -0
  118. package/dist/builtin-extensions/pi-intercom/ui/compose.js +112 -0
  119. package/dist/builtin-extensions/pi-intercom/ui/compose.js.map +1 -0
  120. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts +15 -0
  121. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts.map +1 -0
  122. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js +86 -0
  123. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js.map +1 -0
  124. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts +18 -0
  125. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts.map +1 -0
  126. package/dist/builtin-extensions/pi-intercom/ui/session-list.js +134 -0
  127. package/dist/builtin-extensions/pi-intercom/ui/session-list.js.map +1 -0
  128. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts +81 -0
  129. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts.map +1 -0
  130. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js +273 -0
  131. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js.map +1 -0
  132. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +13 -0
  133. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -0
  134. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +163 -0
  135. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -0
  136. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts +34 -0
  137. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts.map +1 -0
  138. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js +148 -0
  139. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js.map +1 -0
  140. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts +59 -0
  141. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts.map +1 -0
  142. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js +172 -0
  143. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js.map +1 -0
  144. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +25 -0
  145. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -0
  146. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +521 -0
  147. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -0
  148. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +80 -0
  149. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -0
  150. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +366 -0
  151. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -0
  152. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts +22 -0
  153. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts.map +1 -0
  154. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js +476 -0
  155. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js.map +1 -0
  156. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +141 -0
  157. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -0
  158. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +633 -0
  159. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -0
  160. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts +30 -0
  161. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts.map +1 -0
  162. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js +52 -0
  163. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js.map +1 -0
  164. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts +12 -0
  165. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts.map +1 -0
  166. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js +18 -0
  167. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js.map +1 -0
  168. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts +10 -0
  169. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts.map +1 -0
  170. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js +18 -0
  171. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js.map +1 -0
  172. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts +9 -0
  173. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts.map +1 -0
  174. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js +29 -0
  175. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js.map +1 -0
  176. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts +10 -0
  177. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts.map +1 -0
  178. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js +51 -0
  179. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js.map +1 -0
  180. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts +33 -0
  181. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts.map +1 -0
  182. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js +191 -0
  183. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js.map +1 -0
  184. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts +14 -0
  185. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts.map +1 -0
  186. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js +15 -0
  187. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js.map +1 -0
  188. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts +23 -0
  189. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts.map +1 -0
  190. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js +259 -0
  191. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js.map +1 -0
  192. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts +23 -0
  193. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts.map +1 -0
  194. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js +197 -0
  195. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js.map +1 -0
  196. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +23 -0
  197. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -0
  198. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +131 -0
  199. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -0
  200. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts +18 -0
  201. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts.map +1 -0
  202. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js +87 -0
  203. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js.map +1 -0
  204. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts +34 -0
  205. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts.map +1 -0
  206. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js +347 -0
  207. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js.map +1 -0
  208. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts +20 -0
  209. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts.map +1 -0
  210. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js +166 -0
  211. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js.map +1 -0
  212. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts +22 -0
  213. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts.map +1 -0
  214. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js +228 -0
  215. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js.map +1 -0
  216. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts +19 -0
  217. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts.map +1 -0
  218. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js +143 -0
  219. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js.map +1 -0
  220. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts +20 -0
  221. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts.map +1 -0
  222. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js +98 -0
  223. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js.map +1 -0
  224. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts +22 -0
  225. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts.map +1 -0
  226. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js +150 -0
  227. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js.map +1 -0
  228. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts +18 -0
  229. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts.map +1 -0
  230. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js +211 -0
  231. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js.map +1 -0
  232. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts +44 -0
  233. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts.map +1 -0
  234. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js +188 -0
  235. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js.map +1 -0
  236. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts +58 -0
  237. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts.map +1 -0
  238. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js +260 -0
  239. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js.map +1 -0
  240. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +33 -0
  241. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -0
  242. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +102 -0
  243. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -0
  244. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +38 -0
  245. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -0
  246. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +276 -0
  247. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -0
  248. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts +77 -0
  249. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts.map +1 -0
  250. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js +339 -0
  251. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js.map +1 -0
  252. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts +51 -0
  253. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts.map +1 -0
  254. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js +219 -0
  255. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js.map +1 -0
  256. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts +45 -0
  257. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts.map +1 -0
  258. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js +30 -0
  259. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js.map +1 -0
  260. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts +3 -0
  261. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts.map +1 -0
  262. package/dist/builtin-extensions/pi-mcp-adapter/abort.js +37 -0
  263. package/dist/builtin-extensions/pi-mcp-adapter/abort.js.map +1 -0
  264. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts +3 -0
  265. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts.map +1 -0
  266. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js +22 -0
  267. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js.map +1 -0
  268. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +18 -0
  269. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -0
  270. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +327 -0
  271. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -0
  272. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +79 -0
  273. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -0
  274. package/dist/builtin-extensions/pi-mcp-adapter/config.js +557 -0
  275. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -0
  276. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts +14 -0
  277. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts.map +1 -0
  278. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js +61 -0
  279. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js.map +1 -0
  280. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +11 -0
  281. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -0
  282. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +374 -0
  283. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -0
  284. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts +18 -0
  285. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts.map +1 -0
  286. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js +309 -0
  287. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js.map +1 -0
  288. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts +16 -0
  289. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts.map +1 -0
  290. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js +23 -0
  291. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js.map +1 -0
  292. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts +100 -0
  293. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts.map +1 -0
  294. package/dist/builtin-extensions/pi-mcp-adapter/errors.js +167 -0
  295. package/dist/builtin-extensions/pi-mcp-adapter/errors.js.map +1 -0
  296. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts +10 -0
  297. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts.map +1 -0
  298. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js +77 -0
  299. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js.map +1 -0
  300. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts +17 -0
  301. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -0
  302. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +413 -0
  303. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -0
  304. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts +3 -0
  305. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -0
  306. package/dist/builtin-extensions/pi-mcp-adapter/index.js +334 -0
  307. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -0
  308. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +11 -0
  309. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -0
  310. package/dist/builtin-extensions/pi-mcp-adapter/init.js +296 -0
  311. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -0
  312. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts +30 -0
  313. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts.map +1 -0
  314. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js +80 -0
  315. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js.map +1 -0
  316. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts +52 -0
  317. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts.map +1 -0
  318. package/dist/builtin-extensions/pi-mcp-adapter/logger.js +132 -0
  319. package/dist/builtin-extensions/pi-mcp-adapter/logger.js.map +1 -0
  320. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +86 -0
  321. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -0
  322. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +482 -0
  323. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -0
  324. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts +104 -0
  325. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts.map +1 -0
  326. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js +252 -0
  327. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js.map +1 -0
  328. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +45 -0
  329. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -0
  330. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +305 -0
  331. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -0
  332. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +111 -0
  333. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -0
  334. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +302 -0
  335. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -0
  336. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts +59 -0
  337. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts.map +1 -0
  338. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js +325 -0
  339. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js.map +1 -0
  340. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts +64 -0
  341. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts.map +1 -0
  342. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js +777 -0
  343. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js.map +1 -0
  344. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts +77 -0
  345. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts.map +1 -0
  346. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js +490 -0
  347. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js.map +1 -0
  348. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts +32 -0
  349. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -0
  350. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +160 -0
  351. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -0
  352. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts +7 -0
  353. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts.map +1 -0
  354. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js +388 -0
  355. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js.map +1 -0
  356. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts +19 -0
  357. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts.map +1 -0
  358. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js +53 -0
  359. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js.map +1 -0
  360. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts +13 -0
  361. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts.map +1 -0
  362. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js +58 -0
  363. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js.map +1 -0
  364. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts +17 -0
  365. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts.map +1 -0
  366. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js +17 -0
  367. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js.map +1 -0
  368. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts +14 -0
  369. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -0
  370. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +853 -0
  371. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -0
  372. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts +2 -0
  373. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts.map +1 -0
  374. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js +16 -0
  375. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js.map +1 -0
  376. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts +16 -0
  377. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts.map +1 -0
  378. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js +209 -0
  379. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js.map +1 -0
  380. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +58 -0
  381. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -0
  382. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +403 -0
  383. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -0
  384. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +41 -0
  385. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -0
  386. package/dist/builtin-extensions/pi-mcp-adapter/state.js +2 -0
  387. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -0
  388. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts +11 -0
  389. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts.map +1 -0
  390. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js +178 -0
  391. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js.map +1 -0
  392. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts +11 -0
  393. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts.map +1 -0
  394. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js +66 -0
  395. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js.map +1 -0
  396. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts +35 -0
  397. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts.map +1 -0
  398. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js +107 -0
  399. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js.map +1 -0
  400. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts +286 -0
  401. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts.map +1 -0
  402. package/dist/builtin-extensions/pi-mcp-adapter/types.js +94 -0
  403. package/dist/builtin-extensions/pi-mcp-adapter/types.js.map +1 -0
  404. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts +10 -0
  405. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts.map +1 -0
  406. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js +118 -0
  407. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js.map +1 -0
  408. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts +37 -0
  409. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts.map +1 -0
  410. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js +524 -0
  411. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js.map +1 -0
  412. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts +27 -0
  413. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts.map +1 -0
  414. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js +311 -0
  415. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js.map +1 -0
  416. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts +105 -0
  417. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts.map +1 -0
  418. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js +60 -0
  419. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js.map +1 -0
  420. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts +18 -0
  421. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts.map +1 -0
  422. package/dist/builtin-extensions/pi-mcp-adapter/utils.js +112 -0
  423. package/dist/builtin-extensions/pi-mcp-adapter/utils.js.map +1 -0
  424. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts +3 -0
  425. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts.map +1 -0
  426. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js +15 -0
  427. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js.map +1 -0
  428. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +30 -0
  429. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -0
  430. package/dist/builtin-extensions/pi-ollama-cloud/index.js +99 -0
  431. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -0
  432. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +49 -0
  433. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -0
  434. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts +3 -0
  435. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts.map +1 -0
  436. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js +1135 -0
  437. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js.map +1 -0
  438. package/dist/builtin-extensions/pi-ollama-cloud/models.js +239 -0
  439. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -0
  440. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts +40 -0
  441. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts.map +1 -0
  442. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js +80 -0
  443. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js.map +1 -0
  444. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts +9 -0
  445. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts.map +1 -0
  446. package/dist/builtin-extensions/pi-ollama-cloud/utils.js +52 -0
  447. package/dist/builtin-extensions/pi-ollama-cloud/utils.js.map +1 -0
  448. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts +56 -0
  449. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts.map +1 -0
  450. package/dist/builtin-extensions/pi-prompt-template-model/args.js +555 -0
  451. package/dist/builtin-extensions/pi-prompt-template-model/args.js.map +1 -0
  452. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts +22 -0
  453. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts.map +1 -0
  454. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js +249 -0
  455. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js.map +1 -0
  456. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts +20 -0
  457. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts.map +1 -0
  458. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js +102 -0
  459. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js.map +1 -0
  460. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts +30 -0
  461. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts.map +1 -0
  462. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js +260 -0
  463. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js.map +1 -0
  464. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts +3 -0
  465. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -0
  466. package/dist/builtin-extensions/pi-prompt-template-model/index.js +1403 -0
  467. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -0
  468. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts +8 -0
  469. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts.map +1 -0
  470. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js +164 -0
  471. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js.map +1 -0
  472. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts +22 -0
  473. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts.map +1 -0
  474. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js +82 -0
  475. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js.map +1 -0
  476. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts +6 -0
  477. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts.map +1 -0
  478. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js +21 -0
  479. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js.map +1 -0
  480. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts +24 -0
  481. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts.map +1 -0
  482. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js +56 -0
  483. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js.map +1 -0
  484. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +80 -0
  485. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -0
  486. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +1234 -0
  487. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -0
  488. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts +11 -0
  489. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts.map +1 -0
  490. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js +31 -0
  491. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js.map +1 -0
  492. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts +43 -0
  493. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts.map +1 -0
  494. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js +177 -0
  495. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js.map +1 -0
  496. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts +97 -0
  497. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts.map +1 -0
  498. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js +64 -0
  499. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js.map +1 -0
  500. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts +48 -0
  501. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts.map +1 -0
  502. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js +550 -0
  503. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js.map +1 -0
  504. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts +8 -0
  505. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts.map +1 -0
  506. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js +230 -0
  507. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js.map +1 -0
  508. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts +10 -0
  509. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts.map +1 -0
  510. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js +226 -0
  511. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js.map +1 -0
  512. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +17 -0
  513. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -0
  514. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +201 -0
  515. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -0
  516. package/dist/builtin-extensions/pi-subagents/index.d.ts +2 -0
  517. package/dist/builtin-extensions/pi-subagents/index.d.ts.map +1 -0
  518. package/dist/builtin-extensions/pi-subagents/index.js +3 -0
  519. package/dist/builtin-extensions/pi-subagents/index.js.map +1 -0
  520. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts +11 -0
  521. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts.map +1 -0
  522. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js +84 -0
  523. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js.map +1 -0
  524. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts +33 -0
  525. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts.map +1 -0
  526. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js +674 -0
  527. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js.map +1 -0
  528. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts +35 -0
  529. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts.map +1 -0
  530. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js +162 -0
  531. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js.map +1 -0
  532. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts +113 -0
  533. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts.map +1 -0
  534. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js +10 -0
  535. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js.map +1 -0
  536. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts +34 -0
  537. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -0
  538. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +125 -0
  539. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -0
  540. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts +6 -0
  541. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts.map +1 -0
  542. package/dist/builtin-extensions/pi-subagents/src/extension/config.js +37 -0
  543. package/dist/builtin-extensions/pi-subagents/src/extension/config.js.map +1 -0
  544. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts +21 -0
  545. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts.map +1 -0
  546. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js +70 -0
  547. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js.map +1 -0
  548. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +31 -0
  549. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -0
  550. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +152 -0
  551. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -0
  552. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts +3 -0
  553. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -0
  554. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +174 -0
  555. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -0
  556. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +17 -0
  557. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -0
  558. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +565 -0
  559. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -0
  560. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts +57 -0
  561. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts.map +1 -0
  562. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js +291 -0
  563. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js.map +1 -0
  564. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +228 -0
  565. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -0
  566. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +305 -0
  567. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -0
  568. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts +15 -0
  569. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts.map +1 -0
  570. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js +23 -0
  571. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js.map +1 -0
  572. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +12 -0
  573. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -0
  574. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +209 -0
  575. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -0
  576. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +35 -0
  577. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -0
  578. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +144 -0
  579. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -0
  580. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +36 -0
  581. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -0
  582. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +626 -0
  583. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -0
  584. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +31 -0
  585. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -0
  586. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +331 -0
  587. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -0
  588. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +166 -0
  589. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -0
  590. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +1049 -0
  591. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -0
  592. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts +20 -0
  593. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -0
  594. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +500 -0
  595. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -0
  596. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +65 -0
  597. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -0
  598. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +512 -0
  599. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -0
  600. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts +96 -0
  601. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts.map +1 -0
  602. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js +336 -0
  603. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js.map +1 -0
  604. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts +15 -0
  605. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts.map +1 -0
  606. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js +47 -0
  607. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js.map +1 -0
  608. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts +31 -0
  609. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts.map +1 -0
  610. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js +260 -0
  611. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js.map +1 -0
  612. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +35 -0
  613. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -0
  614. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +146 -0
  615. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -0
  616. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts +52 -0
  617. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts.map +1 -0
  618. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js +119 -0
  619. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js.map +1 -0
  620. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts +14 -0
  621. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts.map +1 -0
  622. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js +55 -0
  623. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js.map +1 -0
  624. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts +182 -0
  625. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -0
  626. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js +487 -0
  627. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js.map +1 -0
  628. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts +43 -0
  629. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts.map +1 -0
  630. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js +518 -0
  631. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js.map +1 -0
  632. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +63 -0
  633. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -0
  634. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +202 -0
  635. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -0
  636. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts +4 -0
  637. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts.map +1 -0
  638. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js +47 -0
  639. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js.map +1 -0
  640. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +22 -0
  641. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -0
  642. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +247 -0
  643. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -0
  644. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts +23 -0
  645. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -0
  646. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js +91 -0
  647. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -0
  648. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts +24 -0
  649. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -0
  650. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +453 -0
  651. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -0
  652. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +52 -0
  653. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -0
  654. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +473 -0
  655. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -0
  656. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts +34 -0
  657. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts.map +1 -0
  658. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js +351 -0
  659. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js.map +1 -0
  660. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts +44 -0
  661. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts.map +1 -0
  662. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js +228 -0
  663. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js.map +1 -0
  664. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +2 -0
  665. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -0
  666. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +3534 -0
  667. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -0
  668. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +95 -0
  669. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -0
  670. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +387 -0
  671. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -0
  672. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +8 -0
  673. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -0
  674. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +6 -0
  675. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -0
  676. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts +7 -0
  677. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts.map +1 -0
  678. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js +34 -0
  679. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js.map +1 -0
  680. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +4 -0
  681. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -0
  682. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +24 -0
  683. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -0
  684. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts +23 -0
  685. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts.map +1 -0
  686. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js +230 -0
  687. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js.map +1 -0
  688. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +127 -0
  689. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -0
  690. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js +1161 -0
  691. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -0
  692. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +82 -0
  693. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -0
  694. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +1042 -0
  695. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -0
  696. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +10 -0
  697. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -0
  698. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1439 -0
  699. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -0
  700. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +85 -0
  701. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -0
  702. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +3468 -0
  703. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -0
  704. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +65 -0
  705. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -0
  706. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +1113 -0
  707. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -0
  708. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +19 -0
  709. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -0
  710. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +106 -0
  711. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -0
  712. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts +27 -0
  713. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts.map +1 -0
  714. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js +108 -0
  715. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js.map +1 -0
  716. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +25 -0
  717. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -0
  718. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +51 -0
  719. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -0
  720. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +19 -0
  721. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -0
  722. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +51 -0
  723. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -0
  724. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts +49 -0
  725. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -0
  726. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +291 -0
  727. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -0
  728. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts +33 -0
  729. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts.map +1 -0
  730. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js +152 -0
  731. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js.map +1 -0
  732. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts +18 -0
  733. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -0
  734. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js +326 -0
  735. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -0
  736. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +83 -0
  737. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -0
  738. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +299 -0
  739. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -0
  740. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts +49 -0
  741. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts.map +1 -0
  742. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js +98 -0
  743. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js.map +1 -0
  744. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts +121 -0
  745. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -0
  746. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js +881 -0
  747. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js.map +1 -0
  748. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts +11 -0
  749. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts.map +1 -0
  750. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js +50 -0
  751. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js.map +1 -0
  752. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts +19 -0
  753. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts.map +1 -0
  754. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js +109 -0
  755. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js.map +1 -0
  756. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +106 -0
  757. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -0
  758. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +112 -0
  759. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -0
  760. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +87 -0
  761. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -0
  762. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +260 -0
  763. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -0
  764. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts +25 -0
  765. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts.map +1 -0
  766. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js +111 -0
  767. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js.map +1 -0
  768. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts +11 -0
  769. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts.map +1 -0
  770. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js +57 -0
  771. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js.map +1 -0
  772. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts +54 -0
  773. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts.map +1 -0
  774. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js +244 -0
  775. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js.map +1 -0
  776. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts +50 -0
  777. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -0
  778. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js +202 -0
  779. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js.map +1 -0
  780. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts +22 -0
  781. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -0
  782. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js +67 -0
  783. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js.map +1 -0
  784. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +35 -0
  785. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -0
  786. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +187 -0
  787. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -0
  788. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +22 -0
  789. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -0
  790. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +438 -0
  791. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -0
  792. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +35 -0
  793. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -0
  794. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +157 -0
  795. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -0
  796. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts +13 -0
  797. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts.map +1 -0
  798. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js +51 -0
  799. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js.map +1 -0
  800. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts +16 -0
  801. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts.map +1 -0
  802. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js +74 -0
  803. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js.map +1 -0
  804. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts +14 -0
  805. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts.map +1 -0
  806. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js +66 -0
  807. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js.map +1 -0
  808. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts +30 -0
  809. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts.map +1 -0
  810. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js +200 -0
  811. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js.map +1 -0
  812. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts +49 -0
  813. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts.map +1 -0
  814. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js +473 -0
  815. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js.map +1 -0
  816. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts +13 -0
  817. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts.map +1 -0
  818. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js +104 -0
  819. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js.map +1 -0
  820. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts +17 -0
  821. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts.map +1 -0
  822. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js +68 -0
  823. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js.map +1 -0
  824. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +70 -0
  825. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -0
  826. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +153 -0
  827. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -0
  828. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts +36 -0
  829. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts.map +1 -0
  830. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js +173 -0
  831. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js.map +1 -0
  832. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts +11 -0
  833. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts.map +1 -0
  834. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js +26 -0
  835. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js.map +1 -0
  836. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts +44 -0
  837. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -0
  838. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +158 -0
  839. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -0
  840. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +34 -0
  841. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -0
  842. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +128 -0
  843. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -0
  844. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts +20 -0
  845. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts.map +1 -0
  846. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js +59 -0
  847. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js.map +1 -0
  848. package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.d.ts +21 -0
  849. package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.d.ts.map +1 -0
  850. package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.js +22 -0
  851. package/dist/builtin-extensions/pi-subagents/src/shared/lunr-child-context.js.map +1 -0
  852. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts +31 -0
  853. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts.map +1 -0
  854. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js +68 -0
  855. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js.map +1 -0
  856. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts +17 -0
  857. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts.map +1 -0
  858. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js +72 -0
  859. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js.map +1 -0
  860. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts +7 -0
  861. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts.map +1 -0
  862. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js +7 -0
  863. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js.map +1 -0
  864. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +3 -0
  865. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -0
  866. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +49 -0
  867. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -0
  868. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +141 -0
  869. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -0
  870. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +254 -0
  871. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -0
  872. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts +10 -0
  873. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts.map +1 -0
  874. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js +61 -0
  875. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js.map +1 -0
  876. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1166 -0
  877. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -0
  878. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +229 -0
  879. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -0
  880. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +52 -0
  881. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -0
  882. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +562 -0
  883. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -0
  884. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts +149 -0
  885. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -0
  886. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js +321 -0
  887. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -0
  888. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts +11 -0
  889. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts.map +1 -0
  890. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js +102 -0
  891. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js.map +1 -0
  892. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts +25 -0
  893. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts.map +1 -0
  894. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js +200 -0
  895. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js.map +1 -0
  896. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +23 -0
  897. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -0
  898. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +294 -0
  899. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -0
  900. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts +31 -0
  901. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts.map +1 -0
  902. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js +117 -0
  903. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js.map +1 -0
  904. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +52 -0
  905. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -0
  906. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1097 -0
  907. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -0
  908. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts +22 -0
  909. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts.map +1 -0
  910. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js +246 -0
  911. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js.map +1 -0
  912. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts +78 -0
  913. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts.map +1 -0
  914. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js +401 -0
  915. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js.map +1 -0
  916. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts +13 -0
  917. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts.map +1 -0
  918. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js +74 -0
  919. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js.map +1 -0
  920. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +45 -0
  921. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -0
  922. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +1715 -0
  923. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -0
  924. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts +8 -0
  925. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -0
  926. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js +123 -0
  927. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js.map +1 -0
  928. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts +58 -0
  929. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts.map +1 -0
  930. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js +160 -0
  931. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js.map +1 -0
  932. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts +34 -0
  933. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts.map +1 -0
  934. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js +96 -0
  935. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js.map +1 -0
  936. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts +18 -0
  937. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts.map +1 -0
  938. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js +485 -0
  939. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js.map +1 -0
  940. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts +21 -0
  941. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts.map +1 -0
  942. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js +151 -0
  943. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js.map +1 -0
  944. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts +4 -0
  945. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts.map +1 -0
  946. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js +111 -0
  947. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js.map +1 -0
  948. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts +10 -0
  949. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -0
  950. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +407 -0
  951. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -0
  952. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts +12 -0
  953. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts.map +1 -0
  954. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js +55 -0
  955. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js.map +1 -0
  956. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +29 -0
  957. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -0
  958. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +245 -0
  959. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -0
  960. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +142 -0
  961. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -0
  962. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +648 -0
  963. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -0
  964. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts +30 -0
  965. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts.map +1 -0
  966. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js +486 -0
  967. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js.map +1 -0
  968. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +18 -0
  969. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -0
  970. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +150 -0
  971. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -0
  972. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts +10 -0
  973. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts.map +1 -0
  974. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js +159 -0
  975. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js.map +1 -0
  976. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts +143 -0
  977. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts.map +1 -0
  978. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js +31 -0
  979. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js.map +1 -0
  980. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts +8 -0
  981. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts.map +1 -0
  982. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js +62 -0
  983. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js.map +1 -0
  984. package/dist/builtin-extensions/pi-tps.d.ts +3 -0
  985. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -0
  986. package/dist/builtin-extensions/pi-tps.js +89 -0
  987. package/dist/builtin-extensions/pi-tps.js.map +1 -0
  988. package/dist/builtin-extensions/pi-web-access/activity.d.ts +34 -0
  989. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -0
  990. package/dist/builtin-extensions/pi-web-access/activity.js +68 -0
  991. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -0
  992. package/dist/builtin-extensions/pi-web-access/brave.d.ts +4 -0
  993. package/dist/builtin-extensions/pi-web-access/brave.d.ts.map +1 -0
  994. package/dist/builtin-extensions/pi-web-access/brave.js +185 -0
  995. package/dist/builtin-extensions/pi-web-access/brave.js.map +1 -0
  996. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts +9 -0
  997. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts.map +1 -0
  998. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js +299 -0
  999. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js.map +1 -0
  1000. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts +13 -0
  1001. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts.map +1 -0
  1002. package/dist/builtin-extensions/pi-web-access/curator-page.js +3382 -0
  1003. package/dist/builtin-extensions/pi-web-access/curator-page.js.map +1 -0
  1004. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts +71 -0
  1005. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts.map +1 -0
  1006. package/dist/builtin-extensions/pi-web-access/curator-server.js +604 -0
  1007. package/dist/builtin-extensions/pi-web-access/curator-server.js.map +1 -0
  1008. package/dist/builtin-extensions/pi-web-access/exa.d.ts +10 -0
  1009. package/dist/builtin-extensions/pi-web-access/exa.d.ts.map +1 -0
  1010. package/dist/builtin-extensions/pi-web-access/exa.js +391 -0
  1011. package/dist/builtin-extensions/pi-web-access/exa.js.map +1 -0
  1012. package/dist/builtin-extensions/pi-web-access/extract.d.ts +48 -0
  1013. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -0
  1014. package/dist/builtin-extensions/pi-web-access/extract.js +619 -0
  1015. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -0
  1016. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts +21 -0
  1017. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts.map +1 -0
  1018. package/dist/builtin-extensions/pi-web-access/fetch-params.js +44 -0
  1019. package/dist/builtin-extensions/pi-web-access/fetch-params.js.map +1 -0
  1020. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts +18 -0
  1021. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts.map +1 -0
  1022. package/dist/builtin-extensions/pi-web-access/gemini-api.js +120 -0
  1023. package/dist/builtin-extensions/pi-web-access/gemini-api.js.map +1 -0
  1024. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +14 -0
  1025. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -0
  1026. package/dist/builtin-extensions/pi-web-access/gemini-search.js +371 -0
  1027. package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -0
  1028. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts +4 -0
  1029. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts.map +1 -0
  1030. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js +101 -0
  1031. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js.map +1 -0
  1032. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts +4 -0
  1033. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts.map +1 -0
  1034. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js +43 -0
  1035. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js.map +1 -0
  1036. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts +12 -0
  1037. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts.map +1 -0
  1038. package/dist/builtin-extensions/pi-web-access/gemini-web.js +331 -0
  1039. package/dist/builtin-extensions/pi-web-access/gemini-web.js.map +1 -0
  1040. package/dist/builtin-extensions/pi-web-access/github-api.d.ts +7 -0
  1041. package/dist/builtin-extensions/pi-web-access/github-api.d.ts.map +1 -0
  1042. package/dist/builtin-extensions/pi-web-access/github-api.js +161 -0
  1043. package/dist/builtin-extensions/pi-web-access/github-api.js.map +1 -0
  1044. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +13 -0
  1045. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -0
  1046. package/dist/builtin-extensions/pi-web-access/github-extract.js +558 -0
  1047. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -0
  1048. package/dist/builtin-extensions/pi-web-access/index.d.ts +3 -0
  1049. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -0
  1050. package/dist/builtin-extensions/pi-web-access/index.js +2165 -0
  1051. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -0
  1052. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts +13 -0
  1053. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts.map +1 -0
  1054. package/dist/builtin-extensions/pi-web-access/openai-search.js +374 -0
  1055. package/dist/builtin-extensions/pi-web-access/openai-search.js.map +1 -0
  1056. package/dist/builtin-extensions/pi-web-access/parallel.d.ts +12 -0
  1057. package/dist/builtin-extensions/pi-web-access/parallel.d.ts.map +1 -0
  1058. package/dist/builtin-extensions/pi-web-access/parallel.js +316 -0
  1059. package/dist/builtin-extensions/pi-web-access/parallel.js.map +1 -0
  1060. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts +26 -0
  1061. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts.map +1 -0
  1062. package/dist/builtin-extensions/pi-web-access/pdf-extract.js +150 -0
  1063. package/dist/builtin-extensions/pi-web-access/pdf-extract.js.map +1 -0
  1064. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts +20 -0
  1065. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts.map +1 -0
  1066. package/dist/builtin-extensions/pi-web-access/perplexity.js +150 -0
  1067. package/dist/builtin-extensions/pi-web-access/perplexity.js.map +1 -0
  1068. package/dist/builtin-extensions/pi-web-access/render-search-chrome.d.ts +37 -0
  1069. package/dist/builtin-extensions/pi-web-access/render-search-chrome.d.ts.map +1 -0
  1070. package/dist/builtin-extensions/pi-web-access/render-search-chrome.js +107 -0
  1071. package/dist/builtin-extensions/pi-web-access/render-search-chrome.js.map +1 -0
  1072. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts +57 -0
  1073. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts.map +1 -0
  1074. package/dist/builtin-extensions/pi-web-access/render-search-error.js +131 -0
  1075. package/dist/builtin-extensions/pi-web-access/render-search-error.js.map +1 -0
  1076. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts +12 -0
  1077. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts.map +1 -0
  1078. package/dist/builtin-extensions/pi-web-access/rsc-extract.js +330 -0
  1079. package/dist/builtin-extensions/pi-web-access/rsc-extract.js.map +1 -0
  1080. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts +24 -0
  1081. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts.map +1 -0
  1082. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js +255 -0
  1083. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js.map +1 -0
  1084. package/dist/builtin-extensions/pi-web-access/storage.d.ts +25 -0
  1085. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -0
  1086. package/dist/builtin-extensions/pi-web-access/storage.js +49 -0
  1087. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -0
  1088. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts +13 -0
  1089. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts.map +1 -0
  1090. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js +86 -0
  1091. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js.map +1 -0
  1092. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts +21 -0
  1093. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts.map +1 -0
  1094. package/dist/builtin-extensions/pi-web-access/summary-review.js +278 -0
  1095. package/dist/builtin-extensions/pi-web-access/summary-review.js.map +1 -0
  1096. package/dist/builtin-extensions/pi-web-access/tavily.d.ts +8 -0
  1097. package/dist/builtin-extensions/pi-web-access/tavily.d.ts.map +1 -0
  1098. package/dist/builtin-extensions/pi-web-access/tavily.js +184 -0
  1099. package/dist/builtin-extensions/pi-web-access/tavily.js.map +1 -0
  1100. package/dist/builtin-extensions/pi-web-access/utils.d.ts +12 -0
  1101. package/dist/builtin-extensions/pi-web-access/utils.d.ts.map +1 -0
  1102. package/dist/builtin-extensions/pi-web-access/utils.js +61 -0
  1103. package/dist/builtin-extensions/pi-web-access/utils.js.map +1 -0
  1104. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts +14 -0
  1105. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts.map +1 -0
  1106. package/dist/builtin-extensions/pi-web-access/video-extract.js +324 -0
  1107. package/dist/builtin-extensions/pi-web-access/video-extract.js.map +1 -0
  1108. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts +27 -0
  1109. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts.map +1 -0
  1110. package/dist/builtin-extensions/pi-web-access/youtube-extract.js +282 -0
  1111. package/dist/builtin-extensions/pi-web-access/youtube-extract.js.map +1 -0
  1112. package/dist/builtin-extensions/simple-pi-memory.d.ts +55 -0
  1113. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -0
  1114. package/dist/builtin-extensions/simple-pi-memory.js +263 -0
  1115. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -0
  1116. package/dist/bun/cli.d.ts +3 -0
  1117. package/dist/bun/cli.d.ts.map +1 -0
  1118. package/dist/bun/cli.js +12 -0
  1119. package/dist/bun/cli.js.map +1 -0
  1120. package/dist/bun/register-bedrock.d.ts +2 -0
  1121. package/dist/bun/register-bedrock.d.ts.map +1 -0
  1122. package/dist/bun/register-bedrock.js +4 -0
  1123. package/dist/bun/register-bedrock.js.map +1 -0
  1124. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  1125. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  1126. package/dist/bun/restore-sandbox-env.js +36 -0
  1127. package/dist/bun/restore-sandbox-env.js.map +1 -0
  1128. package/dist/catalog/models.json +1 -0
  1129. package/dist/catalog/providers/amazon-bedrock.json +1 -0
  1130. package/dist/catalog/providers/ant-ling.json +1 -0
  1131. package/dist/catalog/providers/anthropic.json +1 -0
  1132. package/dist/catalog/providers/azure-openai-responses.json +1 -0
  1133. package/dist/catalog/providers/cerebras.json +1 -0
  1134. package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -0
  1135. package/dist/catalog/providers/cloudflare-workers-ai.json +1 -0
  1136. package/dist/catalog/providers/deepseek.json +1 -0
  1137. package/dist/catalog/providers/fireworks.json +1 -0
  1138. package/dist/catalog/providers/github-copilot.json +1 -0
  1139. package/dist/catalog/providers/google-vertex.json +1 -0
  1140. package/dist/catalog/providers/google.json +1 -0
  1141. package/dist/catalog/providers/groq.json +1 -0
  1142. package/dist/catalog/providers/huggingface.json +1 -0
  1143. package/dist/catalog/providers/kimi-coding.json +1 -0
  1144. package/dist/catalog/providers/minimax-cn.json +1 -0
  1145. package/dist/catalog/providers/minimax.json +1 -0
  1146. package/dist/catalog/providers/mistral.json +1 -0
  1147. package/dist/catalog/providers/moonshotai-cn.json +1 -0
  1148. package/dist/catalog/providers/moonshotai.json +1 -0
  1149. package/dist/catalog/providers/nvidia.json +1 -0
  1150. package/dist/catalog/providers/openai-codex.json +1 -0
  1151. package/dist/catalog/providers/openai.json +1 -0
  1152. package/dist/catalog/providers/opencode-go.json +1 -0
  1153. package/dist/catalog/providers/opencode.json +1 -0
  1154. package/dist/catalog/providers/openrouter.json +1 -0
  1155. package/dist/catalog/providers/qwen-cloud-cn.json +1 -0
  1156. package/dist/catalog/providers/qwen-cloud.json +1 -0
  1157. package/dist/catalog/providers/qwen-token-plan-cn.json +1 -0
  1158. package/dist/catalog/providers/qwen-token-plan.json +1 -0
  1159. package/dist/catalog/providers/together.json +1 -0
  1160. package/dist/catalog/providers/vercel-ai-gateway.json +1 -0
  1161. package/dist/catalog/providers/xai.json +1 -0
  1162. package/dist/catalog/providers/xiaomi-token-plan-ams.json +1 -0
  1163. package/dist/catalog/providers/xiaomi-token-plan-cn.json +1 -0
  1164. package/dist/catalog/providers/xiaomi-token-plan-sgp.json +1 -0
  1165. package/dist/catalog/providers/xiaomi.json +1 -0
  1166. package/dist/catalog/providers/zai-coding-cn.json +1 -0
  1167. package/dist/catalog/providers/zai.json +1 -0
  1168. package/dist/catalog/providers.json +1 -0
  1169. package/dist/catalog/publication.json +6 -0
  1170. package/dist/cli/args.d.ts +57 -0
  1171. package/dist/cli/args.d.ts.map +1 -0
  1172. package/dist/cli/args.js +381 -0
  1173. package/dist/cli/args.js.map +1 -0
  1174. package/dist/cli/config-selector.d.ts +16 -0
  1175. package/dist/cli/config-selector.d.ts.map +1 -0
  1176. package/dist/cli/config-selector.js +31 -0
  1177. package/dist/cli/config-selector.js.map +1 -0
  1178. package/dist/cli/file-processor.d.ts +15 -0
  1179. package/dist/cli/file-processor.d.ts.map +1 -0
  1180. package/dist/cli/file-processor.js +70 -0
  1181. package/dist/cli/file-processor.js.map +1 -0
  1182. package/dist/cli/initial-message.d.ts +18 -0
  1183. package/dist/cli/initial-message.d.ts.map +1 -0
  1184. package/dist/cli/initial-message.js +22 -0
  1185. package/dist/cli/initial-message.js.map +1 -0
  1186. package/dist/cli/install-cli.d.ts +13 -0
  1187. package/dist/cli/install-cli.d.ts.map +1 -0
  1188. package/dist/cli/install-cli.js +352 -0
  1189. package/dist/cli/install-cli.js.map +1 -0
  1190. package/dist/cli/list-models.d.ts +9 -0
  1191. package/dist/cli/list-models.d.ts.map +1 -0
  1192. package/dist/cli/list-models.js +98 -0
  1193. package/dist/cli/list-models.js.map +1 -0
  1194. package/dist/cli/project-trust.d.ts +10 -0
  1195. package/dist/cli/project-trust.d.ts.map +1 -0
  1196. package/dist/cli/project-trust.js +48 -0
  1197. package/dist/cli/project-trust.js.map +1 -0
  1198. package/dist/cli/read-secret.d.ts +6 -0
  1199. package/dist/cli/read-secret.d.ts.map +1 -0
  1200. package/dist/cli/read-secret.js +62 -0
  1201. package/dist/cli/read-secret.js.map +1 -0
  1202. package/dist/cli/session-picker.d.ts +10 -0
  1203. package/dist/cli/session-picker.d.ts.map +1 -0
  1204. package/dist/cli/session-picker.js +36 -0
  1205. package/dist/cli/session-picker.js.map +1 -0
  1206. package/dist/cli/startup-ui.d.ts +20 -0
  1207. package/dist/cli/startup-ui.d.ts.map +1 -0
  1208. package/dist/cli/startup-ui.js +190 -0
  1209. package/dist/cli/startup-ui.js.map +1 -0
  1210. package/dist/cli/update-cli.d.ts +18 -0
  1211. package/dist/cli/update-cli.d.ts.map +1 -0
  1212. package/dist/cli/update-cli.js +87 -0
  1213. package/dist/cli/update-cli.js.map +1 -0
  1214. package/dist/cli.d.ts +3 -0
  1215. package/dist/cli.d.ts.map +1 -0
  1216. package/dist/cli.js +57 -0
  1217. package/dist/cli.js.map +1 -0
  1218. package/dist/config.d.ts +85 -0
  1219. package/dist/config.d.ts.map +1 -0
  1220. package/dist/config.js +212 -0
  1221. package/dist/config.js.map +1 -0
  1222. package/dist/core/agent-session-runtime.d.ts +119 -0
  1223. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  1224. package/dist/core/agent-session-runtime.js +306 -0
  1225. package/dist/core/agent-session-runtime.js.map +1 -0
  1226. package/dist/core/agent-session-services.d.ts +85 -0
  1227. package/dist/core/agent-session-services.d.ts.map +1 -0
  1228. package/dist/core/agent-session-services.js +127 -0
  1229. package/dist/core/agent-session-services.js.map +1 -0
  1230. package/dist/core/agent-session.d.ts +670 -0
  1231. package/dist/core/agent-session.d.ts.map +1 -0
  1232. package/dist/core/agent-session.js +2933 -0
  1233. package/dist/core/agent-session.js.map +1 -0
  1234. package/dist/core/auth-guidance.d.ts +5 -0
  1235. package/dist/core/auth-guidance.d.ts.map +1 -0
  1236. package/dist/core/auth-guidance.js +21 -0
  1237. package/dist/core/auth-guidance.js.map +1 -0
  1238. package/dist/core/auth-storage.d.ts +56 -0
  1239. package/dist/core/auth-storage.d.ts.map +1 -0
  1240. package/dist/core/auth-storage.js +261 -0
  1241. package/dist/core/auth-storage.js.map +1 -0
  1242. package/dist/core/bash-executor.d.ts +32 -0
  1243. package/dist/core/bash-executor.d.ts.map +1 -0
  1244. package/dist/core/bash-executor.js +111 -0
  1245. package/dist/core/bash-executor.js.map +1 -0
  1246. package/dist/core/cache-stats.d.ts +49 -0
  1247. package/dist/core/cache-stats.d.ts.map +1 -0
  1248. package/dist/core/cache-stats.js +101 -0
  1249. package/dist/core/cache-stats.js.map +1 -0
  1250. package/dist/core/catalog-merge.d.ts +46 -0
  1251. package/dist/core/catalog-merge.d.ts.map +1 -0
  1252. package/dist/core/catalog-merge.js +138 -0
  1253. package/dist/core/catalog-merge.js.map +1 -0
  1254. package/dist/core/compaction/branch-summarization.d.ts +92 -0
  1255. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  1256. package/dist/core/compaction/branch-summarization.js +249 -0
  1257. package/dist/core/compaction/branch-summarization.js.map +1 -0
  1258. package/dist/core/compaction/compaction.d.ts +121 -0
  1259. package/dist/core/compaction/compaction.d.ts.map +1 -0
  1260. package/dist/core/compaction/compaction.js +600 -0
  1261. package/dist/core/compaction/compaction.js.map +1 -0
  1262. package/dist/core/compaction/index.d.ts +7 -0
  1263. package/dist/core/compaction/index.d.ts.map +1 -0
  1264. package/dist/core/compaction/index.js +7 -0
  1265. package/dist/core/compaction/index.js.map +1 -0
  1266. package/dist/core/compaction/utils.d.ts +38 -0
  1267. package/dist/core/compaction/utils.d.ts.map +1 -0
  1268. package/dist/core/compaction/utils.js +153 -0
  1269. package/dist/core/compaction/utils.js.map +1 -0
  1270. package/dist/core/context-breakdown.d.ts +89 -0
  1271. package/dist/core/context-breakdown.d.ts.map +1 -0
  1272. package/dist/core/context-breakdown.js +175 -0
  1273. package/dist/core/context-breakdown.js.map +1 -0
  1274. package/dist/core/cron/fire-guard.d.ts +16 -0
  1275. package/dist/core/cron/fire-guard.d.ts.map +1 -0
  1276. package/dist/core/cron/fire-guard.js +24 -0
  1277. package/dist/core/cron/fire-guard.js.map +1 -0
  1278. package/dist/core/cron/jobs.d.ts +162 -0
  1279. package/dist/core/cron/jobs.d.ts.map +1 -0
  1280. package/dist/core/cron/jobs.js +545 -0
  1281. package/dist/core/cron/jobs.js.map +1 -0
  1282. package/dist/core/cron/origin-context.d.ts +22 -0
  1283. package/dist/core/cron/origin-context.d.ts.map +1 -0
  1284. package/dist/core/cron/origin-context.js +22 -0
  1285. package/dist/core/cron/origin-context.js.map +1 -0
  1286. package/dist/core/cron/scheduler.d.ts +51 -0
  1287. package/dist/core/cron/scheduler.d.ts.map +1 -0
  1288. package/dist/core/cron/scheduler.js +165 -0
  1289. package/dist/core/cron/scheduler.js.map +1 -0
  1290. package/dist/core/customize.d.ts +37 -0
  1291. package/dist/core/customize.d.ts.map +1 -0
  1292. package/dist/core/customize.js +72 -0
  1293. package/dist/core/customize.js.map +1 -0
  1294. package/dist/core/defaults.d.ts +3 -0
  1295. package/dist/core/defaults.d.ts.map +1 -0
  1296. package/dist/core/defaults.js +2 -0
  1297. package/dist/core/defaults.js.map +1 -0
  1298. package/dist/core/diagnostics.d.ts +15 -0
  1299. package/dist/core/diagnostics.d.ts.map +1 -0
  1300. package/dist/core/diagnostics.js +2 -0
  1301. package/dist/core/diagnostics.js.map +1 -0
  1302. package/dist/core/event-bus.d.ts +9 -0
  1303. package/dist/core/event-bus.d.ts.map +1 -0
  1304. package/dist/core/event-bus.js +25 -0
  1305. package/dist/core/event-bus.js.map +1 -0
  1306. package/dist/core/exec.d.ts +29 -0
  1307. package/dist/core/exec.d.ts.map +1 -0
  1308. package/dist/core/exec.js +75 -0
  1309. package/dist/core/exec.js.map +1 -0
  1310. package/dist/core/experimental.d.ts +2 -0
  1311. package/dist/core/experimental.d.ts.map +1 -0
  1312. package/dist/core/experimental.js +4 -0
  1313. package/dist/core/experimental.js.map +1 -0
  1314. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  1315. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  1316. package/dist/core/export-html/ansi-to-html.js +249 -0
  1317. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  1318. package/dist/core/export-html/index.d.ts +37 -0
  1319. package/dist/core/export-html/index.d.ts.map +1 -0
  1320. package/dist/core/export-html/index.js +226 -0
  1321. package/dist/core/export-html/index.js.map +1 -0
  1322. package/dist/core/export-html/template.css +1066 -0
  1323. package/dist/core/export-html/template.html +55 -0
  1324. package/dist/core/export-html/template.js +1864 -0
  1325. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  1326. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  1327. package/dist/core/export-html/tool-renderer.js +108 -0
  1328. package/dist/core/export-html/tool-renderer.js.map +1 -0
  1329. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  1330. package/dist/core/export-html/vendor/marked.min.js +78 -0
  1331. package/dist/core/extensions/host-static.d.ts +2 -0
  1332. package/dist/core/extensions/host-static.d.ts.map +1 -0
  1333. package/dist/core/extensions/host-static.js +15 -0
  1334. package/dist/core/extensions/host-static.js.map +1 -0
  1335. package/dist/core/extensions/index.d.ts +12 -0
  1336. package/dist/core/extensions/index.d.ts.map +1 -0
  1337. package/dist/core/extensions/index.js +9 -0
  1338. package/dist/core/extensions/index.js.map +1 -0
  1339. package/dist/core/extensions/loader.d.ts +33 -0
  1340. package/dist/core/extensions/loader.d.ts.map +1 -0
  1341. package/dist/core/extensions/loader.js +588 -0
  1342. package/dist/core/extensions/loader.js.map +1 -0
  1343. package/dist/core/extensions/runner.d.ts +172 -0
  1344. package/dist/core/extensions/runner.d.ts.map +1 -0
  1345. package/dist/core/extensions/runner.js +935 -0
  1346. package/dist/core/extensions/runner.js.map +1 -0
  1347. package/dist/core/extensions/types.d.ts +1263 -0
  1348. package/dist/core/extensions/types.d.ts.map +1 -0
  1349. package/dist/core/extensions/types.js +45 -0
  1350. package/dist/core/extensions/types.js.map +1 -0
  1351. package/dist/core/extensions/wrapper.d.ts +20 -0
  1352. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  1353. package/dist/core/extensions/wrapper.js +41 -0
  1354. package/dist/core/extensions/wrapper.js.map +1 -0
  1355. package/dist/core/footer-data-provider.d.ts +64 -0
  1356. package/dist/core/footer-data-provider.d.ts.map +1 -0
  1357. package/dist/core/footer-data-provider.js +373 -0
  1358. package/dist/core/footer-data-provider.js.map +1 -0
  1359. package/dist/core/grok-cli-auth.d.ts +42 -0
  1360. package/dist/core/grok-cli-auth.d.ts.map +1 -0
  1361. package/dist/core/grok-cli-auth.js +327 -0
  1362. package/dist/core/grok-cli-auth.js.map +1 -0
  1363. package/dist/core/http-dispatcher.d.ts +22 -0
  1364. package/dist/core/http-dispatcher.d.ts.map +1 -0
  1365. package/dist/core/http-dispatcher.js +91 -0
  1366. package/dist/core/http-dispatcher.js.map +1 -0
  1367. package/dist/core/index.d.ts +13 -0
  1368. package/dist/core/index.d.ts.map +1 -0
  1369. package/dist/core/index.js +13 -0
  1370. package/dist/core/index.js.map +1 -0
  1371. package/dist/core/injected-prompt.d.ts +20 -0
  1372. package/dist/core/injected-prompt.d.ts.map +1 -0
  1373. package/dist/core/injected-prompt.js +64 -0
  1374. package/dist/core/injected-prompt.js.map +1 -0
  1375. package/dist/core/install-features.d.ts +106 -0
  1376. package/dist/core/install-features.d.ts.map +1 -0
  1377. package/dist/core/install-features.js +392 -0
  1378. package/dist/core/install-features.js.map +1 -0
  1379. package/dist/core/install-layout.d.ts +18 -0
  1380. package/dist/core/install-layout.d.ts.map +1 -0
  1381. package/dist/core/install-layout.js +54 -0
  1382. package/dist/core/install-layout.js.map +1 -0
  1383. package/dist/core/keybindings.d.ts +373 -0
  1384. package/dist/core/keybindings.d.ts.map +1 -0
  1385. package/dist/core/keybindings.js +309 -0
  1386. package/dist/core/keybindings.js.map +1 -0
  1387. package/dist/core/live-catalog.d.ts +74 -0
  1388. package/dist/core/live-catalog.d.ts.map +1 -0
  1389. package/dist/core/live-catalog.js +351 -0
  1390. package/dist/core/live-catalog.js.map +1 -0
  1391. package/dist/core/memory-cap.d.ts +23 -0
  1392. package/dist/core/memory-cap.d.ts.map +1 -0
  1393. package/dist/core/memory-cap.js +32 -0
  1394. package/dist/core/memory-cap.js.map +1 -0
  1395. package/dist/core/messages.d.ts +77 -0
  1396. package/dist/core/messages.d.ts.map +1 -0
  1397. package/dist/core/messages.js +123 -0
  1398. package/dist/core/messages.js.map +1 -0
  1399. package/dist/core/model-config-writer.d.ts +24 -0
  1400. package/dist/core/model-config-writer.d.ts.map +1 -0
  1401. package/dist/core/model-config-writer.js +84 -0
  1402. package/dist/core/model-config-writer.js.map +1 -0
  1403. package/dist/core/model-config.d.ts +512 -0
  1404. package/dist/core/model-config.d.ts.map +1 -0
  1405. package/dist/core/model-config.js +243 -0
  1406. package/dist/core/model-config.js.map +1 -0
  1407. package/dist/core/model-registry.d.ts +39 -0
  1408. package/dist/core/model-registry.d.ts.map +1 -0
  1409. package/dist/core/model-registry.js +89 -0
  1410. package/dist/core/model-registry.js.map +1 -0
  1411. package/dist/core/model-resolver.d.ts +121 -0
  1412. package/dist/core/model-resolver.d.ts.map +1 -0
  1413. package/dist/core/model-resolver.js +536 -0
  1414. package/dist/core/model-resolver.js.map +1 -0
  1415. package/dist/core/model-runtime.d.ts +135 -0
  1416. package/dist/core/model-runtime.d.ts.map +1 -0
  1417. package/dist/core/model-runtime.js +696 -0
  1418. package/dist/core/model-runtime.js.map +1 -0
  1419. package/dist/core/model-tiers.d.ts +43 -0
  1420. package/dist/core/model-tiers.d.ts.map +1 -0
  1421. package/dist/core/model-tiers.js +78 -0
  1422. package/dist/core/model-tiers.js.map +1 -0
  1423. package/dist/core/models-store.d.ts +17 -0
  1424. package/dist/core/models-store.d.ts.map +1 -0
  1425. package/dist/core/models-store.js +57 -0
  1426. package/dist/core/models-store.js.map +1 -0
  1427. package/dist/core/official-catalog.d.ts +79 -0
  1428. package/dist/core/official-catalog.d.ts.map +1 -0
  1429. package/dist/core/official-catalog.js +404 -0
  1430. package/dist/core/official-catalog.js.map +1 -0
  1431. package/dist/core/output-guard.d.ts +7 -0
  1432. package/dist/core/output-guard.d.ts.map +1 -0
  1433. package/dist/core/output-guard.js +89 -0
  1434. package/dist/core/output-guard.js.map +1 -0
  1435. package/dist/core/package-manager.d.ts +201 -0
  1436. package/dist/core/package-manager.d.ts.map +1 -0
  1437. package/dist/core/package-manager.js +2035 -0
  1438. package/dist/core/package-manager.js.map +1 -0
  1439. package/dist/core/permission-mode-control.d.ts +27 -0
  1440. package/dist/core/permission-mode-control.d.ts.map +1 -0
  1441. package/dist/core/permission-mode-control.js +39 -0
  1442. package/dist/core/permission-mode-control.js.map +1 -0
  1443. package/dist/core/permission-mode.d.ts +19 -0
  1444. package/dist/core/permission-mode.d.ts.map +1 -0
  1445. package/dist/core/permission-mode.js +26 -0
  1446. package/dist/core/permission-mode.js.map +1 -0
  1447. package/dist/core/permissions.d.ts +110 -0
  1448. package/dist/core/permissions.d.ts.map +1 -0
  1449. package/dist/core/permissions.js +438 -0
  1450. package/dist/core/permissions.js.map +1 -0
  1451. package/dist/core/plan-mode.d.ts +39 -0
  1452. package/dist/core/plan-mode.d.ts.map +1 -0
  1453. package/dist/core/plan-mode.js +429 -0
  1454. package/dist/core/plan-mode.js.map +1 -0
  1455. package/dist/core/process-registry.d.ts +40 -0
  1456. package/dist/core/process-registry.d.ts.map +1 -0
  1457. package/dist/core/process-registry.js +190 -0
  1458. package/dist/core/process-registry.js.map +1 -0
  1459. package/dist/core/project-trust.d.ts +15 -0
  1460. package/dist/core/project-trust.d.ts.map +1 -0
  1461. package/dist/core/project-trust.js +59 -0
  1462. package/dist/core/project-trust.js.map +1 -0
  1463. package/dist/core/prompt-templates.d.ts +53 -0
  1464. package/dist/core/prompt-templates.d.ts.map +1 -0
  1465. package/dist/core/prompt-templates.js +236 -0
  1466. package/dist/core/prompt-templates.js.map +1 -0
  1467. package/dist/core/provider-attribution.d.ts +4 -0
  1468. package/dist/core/provider-attribution.d.ts.map +1 -0
  1469. package/dist/core/provider-attribution.js +31 -0
  1470. package/dist/core/provider-attribution.js.map +1 -0
  1471. package/dist/core/provider-composer.d.ts +55 -0
  1472. package/dist/core/provider-composer.d.ts.map +1 -0
  1473. package/dist/core/provider-composer.js +375 -0
  1474. package/dist/core/provider-composer.js.map +1 -0
  1475. package/dist/core/radius.d.ts +2 -0
  1476. package/dist/core/radius.d.ts.map +1 -0
  1477. package/dist/core/radius.js +2 -0
  1478. package/dist/core/radius.js.map +1 -0
  1479. package/dist/core/resolve-config-value.d.ts +30 -0
  1480. package/dist/core/resolve-config-value.d.ts.map +1 -0
  1481. package/dist/core/resolve-config-value.js +247 -0
  1482. package/dist/core/resolve-config-value.js.map +1 -0
  1483. package/dist/core/resource-loader.d.ts +211 -0
  1484. package/dist/core/resource-loader.d.ts.map +1 -0
  1485. package/dist/core/resource-loader.js +848 -0
  1486. package/dist/core/resource-loader.js.map +1 -0
  1487. package/dist/core/rollback.d.ts +80 -0
  1488. package/dist/core/rollback.d.ts.map +1 -0
  1489. package/dist/core/rollback.js +659 -0
  1490. package/dist/core/rollback.js.map +1 -0
  1491. package/dist/core/runtime-credentials.d.ts +15 -0
  1492. package/dist/core/runtime-credentials.d.ts.map +1 -0
  1493. package/dist/core/runtime-credentials.js +36 -0
  1494. package/dist/core/runtime-credentials.js.map +1 -0
  1495. package/dist/core/sdk.d.ts +106 -0
  1496. package/dist/core/sdk.d.ts.map +1 -0
  1497. package/dist/core/sdk.js +264 -0
  1498. package/dist/core/sdk.js.map +1 -0
  1499. package/dist/core/search-curator.d.ts +23 -0
  1500. package/dist/core/search-curator.d.ts.map +1 -0
  1501. package/dist/core/search-curator.js +34 -0
  1502. package/dist/core/search-curator.js.map +1 -0
  1503. package/dist/core/session-cwd.d.ts +19 -0
  1504. package/dist/core/session-cwd.d.ts.map +1 -0
  1505. package/dist/core/session-cwd.js +38 -0
  1506. package/dist/core/session-cwd.js.map +1 -0
  1507. package/dist/core/session-manager.d.ts +352 -0
  1508. package/dist/core/session-manager.d.ts.map +1 -0
  1509. package/dist/core/session-manager.js +1319 -0
  1510. package/dist/core/session-manager.js.map +1 -0
  1511. package/dist/core/session-retention.d.ts +17 -0
  1512. package/dist/core/session-retention.d.ts.map +1 -0
  1513. package/dist/core/session-retention.js +69 -0
  1514. package/dist/core/session-retention.js.map +1 -0
  1515. package/dist/core/settings-manager.d.ts +392 -0
  1516. package/dist/core/settings-manager.d.ts.map +1 -0
  1517. package/dist/core/settings-manager.js +1165 -0
  1518. package/dist/core/settings-manager.js.map +1 -0
  1519. package/dist/core/skills.d.ts +60 -0
  1520. package/dist/core/skills.d.ts.map +1 -0
  1521. package/dist/core/skills.js +387 -0
  1522. package/dist/core/skills.js.map +1 -0
  1523. package/dist/core/slash-commands.d.ts +15 -0
  1524. package/dist/core/slash-commands.d.ts.map +1 -0
  1525. package/dist/core/slash-commands.js +54 -0
  1526. package/dist/core/slash-commands.js.map +1 -0
  1527. package/dist/core/source-info.d.ts +18 -0
  1528. package/dist/core/source-info.d.ts.map +1 -0
  1529. package/dist/core/source-info.js +19 -0
  1530. package/dist/core/source-info.js.map +1 -0
  1531. package/dist/core/subagent-permission-inherit.d.ts +50 -0
  1532. package/dist/core/subagent-permission-inherit.d.ts.map +1 -0
  1533. package/dist/core/subagent-permission-inherit.js +67 -0
  1534. package/dist/core/subagent-permission-inherit.js.map +1 -0
  1535. package/dist/core/subscriptions.d.ts +64 -0
  1536. package/dist/core/subscriptions.d.ts.map +1 -0
  1537. package/dist/core/subscriptions.js +259 -0
  1538. package/dist/core/subscriptions.js.map +1 -0
  1539. package/dist/core/swarm.d.ts +54 -0
  1540. package/dist/core/swarm.d.ts.map +1 -0
  1541. package/dist/core/swarm.js +119 -0
  1542. package/dist/core/swarm.js.map +1 -0
  1543. package/dist/core/system-prompt.d.ts +30 -0
  1544. package/dist/core/system-prompt.d.ts.map +1 -0
  1545. package/dist/core/system-prompt.js +97 -0
  1546. package/dist/core/system-prompt.js.map +1 -0
  1547. package/dist/core/timings.d.ts +11 -0
  1548. package/dist/core/timings.d.ts.map +1 -0
  1549. package/dist/core/timings.js +46 -0
  1550. package/dist/core/timings.js.map +1 -0
  1551. package/dist/core/tools/bash.d.ts +69 -0
  1552. package/dist/core/tools/bash.d.ts.map +1 -0
  1553. package/dist/core/tools/bash.js +403 -0
  1554. package/dist/core/tools/bash.js.map +1 -0
  1555. package/dist/core/tools/edit-diff.d.ts +106 -0
  1556. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  1557. package/dist/core/tools/edit-diff.js +424 -0
  1558. package/dist/core/tools/edit-diff.js.map +1 -0
  1559. package/dist/core/tools/edit.d.ts +51 -0
  1560. package/dist/core/tools/edit.d.ts.map +1 -0
  1561. package/dist/core/tools/edit.js +303 -0
  1562. package/dist/core/tools/edit.js.map +1 -0
  1563. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  1564. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  1565. package/dist/core/tools/file-mutation-queue.js +52 -0
  1566. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  1567. package/dist/core/tools/find.d.ts +35 -0
  1568. package/dist/core/tools/find.d.ts.map +1 -0
  1569. package/dist/core/tools/find.js +325 -0
  1570. package/dist/core/tools/find.js.map +1 -0
  1571. package/dist/core/tools/grep.d.ts +37 -0
  1572. package/dist/core/tools/grep.d.ts.map +1 -0
  1573. package/dist/core/tools/grep.js +324 -0
  1574. package/dist/core/tools/grep.js.map +1 -0
  1575. package/dist/core/tools/index.d.ts +40 -0
  1576. package/dist/core/tools/index.d.ts.map +1 -0
  1577. package/dist/core/tools/index.js +112 -0
  1578. package/dist/core/tools/index.js.map +1 -0
  1579. package/dist/core/tools/ls.d.ts +37 -0
  1580. package/dist/core/tools/ls.d.ts.map +1 -0
  1581. package/dist/core/tools/ls.js +185 -0
  1582. package/dist/core/tools/ls.js.map +1 -0
  1583. package/dist/core/tools/output-accumulator.d.ts +52 -0
  1584. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  1585. package/dist/core/tools/output-accumulator.js +184 -0
  1586. package/dist/core/tools/output-accumulator.js.map +1 -0
  1587. package/dist/core/tools/path-utils.d.ts +10 -0
  1588. package/dist/core/tools/path-utils.d.ts.map +1 -0
  1589. package/dist/core/tools/path-utils.js +99 -0
  1590. package/dist/core/tools/path-utils.js.map +1 -0
  1591. package/dist/core/tools/read.d.ts +35 -0
  1592. package/dist/core/tools/read.d.ts.map +1 -0
  1593. package/dist/core/tools/read.js +289 -0
  1594. package/dist/core/tools/read.js.map +1 -0
  1595. package/dist/core/tools/render-utils.d.ts +74 -0
  1596. package/dist/core/tools/render-utils.d.ts.map +1 -0
  1597. package/dist/core/tools/render-utils.js +150 -0
  1598. package/dist/core/tools/render-utils.js.map +1 -0
  1599. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  1600. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  1601. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  1602. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  1603. package/dist/core/tools/truncate.d.ts +70 -0
  1604. package/dist/core/tools/truncate.d.ts.map +1 -0
  1605. package/dist/core/tools/truncate.js +215 -0
  1606. package/dist/core/tools/truncate.js.map +1 -0
  1607. package/dist/core/tools/write.d.ts +26 -0
  1608. package/dist/core/tools/write.d.ts.map +1 -0
  1609. package/dist/core/tools/write.js +219 -0
  1610. package/dist/core/tools/write.js.map +1 -0
  1611. package/dist/core/trust-manager.d.ts +36 -0
  1612. package/dist/core/trust-manager.d.ts.map +1 -0
  1613. package/dist/core/trust-manager.js +202 -0
  1614. package/dist/core/trust-manager.js.map +1 -0
  1615. package/dist/core/update-check.d.ts +35 -0
  1616. package/dist/core/update-check.d.ts.map +1 -0
  1617. package/dist/core/update-check.js +117 -0
  1618. package/dist/core/update-check.js.map +1 -0
  1619. package/dist/core/usage-adapters/kimi-coding.d.ts +11 -0
  1620. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -0
  1621. package/dist/core/usage-adapters/kimi-coding.js +78 -0
  1622. package/dist/core/usage-adapters/kimi-coding.js.map +1 -0
  1623. package/dist/core/usage-adapters/openai-codex.d.ts +4 -0
  1624. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -0
  1625. package/dist/core/usage-adapters/openai-codex.js +185 -0
  1626. package/dist/core/usage-adapters/openai-codex.js.map +1 -0
  1627. package/dist/core/usage-adapters/shared.d.ts +20 -0
  1628. package/dist/core/usage-adapters/shared.d.ts.map +1 -0
  1629. package/dist/core/usage-adapters/shared.js +75 -0
  1630. package/dist/core/usage-adapters/shared.js.map +1 -0
  1631. package/dist/core/usage-adapters/xai.d.ts +21 -0
  1632. package/dist/core/usage-adapters/xai.d.ts.map +1 -0
  1633. package/dist/core/usage-adapters/xai.js +81 -0
  1634. package/dist/core/usage-adapters/xai.js.map +1 -0
  1635. package/dist/core/usage-adapters/zai.d.ts +14 -0
  1636. package/dist/core/usage-adapters/zai.d.ts.map +1 -0
  1637. package/dist/core/usage-adapters/zai.js +67 -0
  1638. package/dist/core/usage-adapters/zai.js.map +1 -0
  1639. package/dist/core/usage-history.d.ts +63 -0
  1640. package/dist/core/usage-history.d.ts.map +1 -0
  1641. package/dist/core/usage-history.js +239 -0
  1642. package/dist/core/usage-history.js.map +1 -0
  1643. package/dist/core/usage-limit.d.ts +17 -0
  1644. package/dist/core/usage-limit.d.ts.map +1 -0
  1645. package/dist/core/usage-limit.js +79 -0
  1646. package/dist/core/usage-limit.js.map +1 -0
  1647. package/dist/core/usage-service.d.ts +75 -0
  1648. package/dist/core/usage-service.d.ts.map +1 -0
  1649. package/dist/core/usage-service.js +180 -0
  1650. package/dist/core/usage-service.js.map +1 -0
  1651. package/dist/core/user-models.d.ts +50 -0
  1652. package/dist/core/user-models.d.ts.map +1 -0
  1653. package/dist/core/user-models.js +192 -0
  1654. package/dist/core/user-models.js.map +1 -0
  1655. package/dist/dev-cli.d.ts +3 -0
  1656. package/dist/dev-cli.d.ts.map +1 -0
  1657. package/dist/dev-cli.js +5 -0
  1658. package/dist/dev-cli.js.map +1 -0
  1659. package/dist/gateway/adapters/discord.d.ts +251 -0
  1660. package/dist/gateway/adapters/discord.d.ts.map +1 -0
  1661. package/dist/gateway/adapters/discord.js +693 -0
  1662. package/dist/gateway/adapters/discord.js.map +1 -0
  1663. package/dist/gateway/adapters/telegram.d.ts +187 -0
  1664. package/dist/gateway/adapters/telegram.d.ts.map +1 -0
  1665. package/dist/gateway/adapters/telegram.js +581 -0
  1666. package/dist/gateway/adapters/telegram.js.map +1 -0
  1667. package/dist/gateway/agent-bridge.d.ts +144 -0
  1668. package/dist/gateway/agent-bridge.d.ts.map +1 -0
  1669. package/dist/gateway/agent-bridge.js +477 -0
  1670. package/dist/gateway/agent-bridge.js.map +1 -0
  1671. package/dist/gateway/approval.d.ts +34 -0
  1672. package/dist/gateway/approval.d.ts.map +1 -0
  1673. package/dist/gateway/approval.js +152 -0
  1674. package/dist/gateway/approval.js.map +1 -0
  1675. package/dist/gateway/authz.d.ts +21 -0
  1676. package/dist/gateway/authz.d.ts.map +1 -0
  1677. package/dist/gateway/authz.js +61 -0
  1678. package/dist/gateway/authz.js.map +1 -0
  1679. package/dist/gateway/buttons.d.ts +58 -0
  1680. package/dist/gateway/buttons.d.ts.map +1 -0
  1681. package/dist/gateway/buttons.js +269 -0
  1682. package/dist/gateway/buttons.js.map +1 -0
  1683. package/dist/gateway/command.d.ts +8 -0
  1684. package/dist/gateway/command.d.ts.map +1 -0
  1685. package/dist/gateway/command.js +17 -0
  1686. package/dist/gateway/command.js.map +1 -0
  1687. package/dist/gateway/commands.d.ts +43 -0
  1688. package/dist/gateway/commands.d.ts.map +1 -0
  1689. package/dist/gateway/commands.js +644 -0
  1690. package/dist/gateway/commands.js.map +1 -0
  1691. package/dist/gateway/config.d.ts +53 -0
  1692. package/dist/gateway/config.d.ts.map +1 -0
  1693. package/dist/gateway/config.js +136 -0
  1694. package/dist/gateway/config.js.map +1 -0
  1695. package/dist/gateway/cron.d.ts +72 -0
  1696. package/dist/gateway/cron.d.ts.map +1 -0
  1697. package/dist/gateway/cron.js +331 -0
  1698. package/dist/gateway/cron.js.map +1 -0
  1699. package/dist/gateway/index.d.ts +31 -0
  1700. package/dist/gateway/index.d.ts.map +1 -0
  1701. package/dist/gateway/index.js +233 -0
  1702. package/dist/gateway/index.js.map +1 -0
  1703. package/dist/gateway/pairing.d.ts +44 -0
  1704. package/dist/gateway/pairing.d.ts.map +1 -0
  1705. package/dist/gateway/pairing.js +171 -0
  1706. package/dist/gateway/pairing.js.map +1 -0
  1707. package/dist/gateway/router.d.ts +48 -0
  1708. package/dist/gateway/router.d.ts.map +1 -0
  1709. package/dist/gateway/router.js +215 -0
  1710. package/dist/gateway/router.js.map +1 -0
  1711. package/dist/gateway/session-keys.d.ts +18 -0
  1712. package/dist/gateway/session-keys.d.ts.map +1 -0
  1713. package/dist/gateway/session-keys.js +26 -0
  1714. package/dist/gateway/session-keys.js.map +1 -0
  1715. package/dist/gateway/store.d.ts +28 -0
  1716. package/dist/gateway/store.d.ts.map +1 -0
  1717. package/dist/gateway/store.js +93 -0
  1718. package/dist/gateway/store.js.map +1 -0
  1719. package/dist/gateway/stream.d.ts +55 -0
  1720. package/dist/gateway/stream.d.ts.map +1 -0
  1721. package/dist/gateway/stream.js +107 -0
  1722. package/dist/gateway/stream.js.map +1 -0
  1723. package/dist/gateway/text.d.ts +18 -0
  1724. package/dist/gateway/text.d.ts.map +1 -0
  1725. package/dist/gateway/text.js +136 -0
  1726. package/dist/gateway/text.js.map +1 -0
  1727. package/dist/gateway/types.d.ts +95 -0
  1728. package/dist/gateway/types.d.ts.map +1 -0
  1729. package/dist/gateway/types.js +9 -0
  1730. package/dist/gateway/types.js.map +1 -0
  1731. package/dist/index.d.ts +35 -0
  1732. package/dist/index.d.ts.map +1 -0
  1733. package/dist/index.js +47 -0
  1734. package/dist/index.js.map +1 -0
  1735. package/dist/main.d.ts +22 -0
  1736. package/dist/main.d.ts.map +1 -0
  1737. package/dist/main.js +861 -0
  1738. package/dist/main.js.map +1 -0
  1739. package/dist/migrations.d.ts +48 -0
  1740. package/dist/migrations.d.ts.map +1 -0
  1741. package/dist/migrations.js +375 -0
  1742. package/dist/migrations.js.map +1 -0
  1743. package/dist/modes/index.d.ts +9 -0
  1744. package/dist/modes/index.d.ts.map +1 -0
  1745. package/dist/modes/index.js +8 -0
  1746. package/dist/modes/index.js.map +1 -0
  1747. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1748. package/dist/modes/interactive/components/armin.d.ts +34 -0
  1749. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  1750. package/dist/modes/interactive/components/armin.js +333 -0
  1751. package/dist/modes/interactive/components/armin.js.map +1 -0
  1752. package/dist/modes/interactive/components/assistant-message.d.ts +41 -0
  1753. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  1754. package/dist/modes/interactive/components/assistant-message.js +333 -0
  1755. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  1756. package/dist/modes/interactive/components/bash-execution.d.ts +32 -0
  1757. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  1758. package/dist/modes/interactive/components/bash-execution.js +171 -0
  1759. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  1760. package/dist/modes/interactive/components/boot-ascii.d.ts +6 -0
  1761. package/dist/modes/interactive/components/boot-ascii.d.ts.map +1 -0
  1762. package/dist/modes/interactive/components/boot-ascii.js +6 -0
  1763. package/dist/modes/interactive/components/boot-ascii.js.map +1 -0
  1764. package/dist/modes/interactive/components/boot-screen.d.ts +22 -0
  1765. package/dist/modes/interactive/components/boot-screen.d.ts.map +1 -0
  1766. package/dist/modes/interactive/components/boot-screen.js +53 -0
  1767. package/dist/modes/interactive/components/boot-screen.js.map +1 -0
  1768. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  1769. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  1770. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  1771. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  1772. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  1773. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  1774. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  1775. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  1776. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  1777. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  1778. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  1779. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  1780. package/dist/modes/interactive/components/config-selector.d.ts +102 -0
  1781. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  1782. package/dist/modes/interactive/components/config-selector.js +761 -0
  1783. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  1784. package/dist/modes/interactive/components/context-view.d.ts +13 -0
  1785. package/dist/modes/interactive/components/context-view.d.ts.map +1 -0
  1786. package/dist/modes/interactive/components/context-view.js +44 -0
  1787. package/dist/modes/interactive/components/context-view.js.map +1 -0
  1788. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  1789. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  1790. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  1791. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  1792. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  1793. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  1794. package/dist/modes/interactive/components/custom-editor.js +70 -0
  1795. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  1796. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  1797. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  1798. package/dist/modes/interactive/components/custom-entry.js +52 -0
  1799. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  1800. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  1801. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  1802. package/dist/modes/interactive/components/custom-message.js +79 -0
  1803. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  1804. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  1805. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  1806. package/dist/modes/interactive/components/daxnuts.js +140 -0
  1807. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  1808. package/dist/modes/interactive/components/diff.d.ts +12 -0
  1809. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  1810. package/dist/modes/interactive/components/diff.js +133 -0
  1811. package/dist/modes/interactive/components/diff.js.map +1 -0
  1812. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  1813. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  1814. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  1815. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  1816. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  1817. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  1818. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  1819. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  1820. package/dist/modes/interactive/components/exit-card.d.ts +22 -0
  1821. package/dist/modes/interactive/components/exit-card.d.ts.map +1 -0
  1822. package/dist/modes/interactive/components/exit-card.js +69 -0
  1823. package/dist/modes/interactive/components/exit-card.js.map +1 -0
  1824. package/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  1825. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  1826. package/dist/modes/interactive/components/extension-editor.js +128 -0
  1827. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  1828. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  1829. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  1830. package/dist/modes/interactive/components/extension-input.js +61 -0
  1831. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  1832. package/dist/modes/interactive/components/extension-selector.d.ts +30 -0
  1833. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  1834. package/dist/modes/interactive/components/extension-selector.js +106 -0
  1835. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  1836. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  1837. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  1838. package/dist/modes/interactive/components/first-time-setup.js +99 -0
  1839. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  1840. package/dist/modes/interactive/components/footer.d.ts +30 -0
  1841. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  1842. package/dist/modes/interactive/components/footer.js +230 -0
  1843. package/dist/modes/interactive/components/footer.js.map +1 -0
  1844. package/dist/modes/interactive/components/index.d.ts +34 -0
  1845. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  1846. package/dist/modes/interactive/components/index.js +35 -0
  1847. package/dist/modes/interactive/components/index.js.map +1 -0
  1848. package/dist/modes/interactive/components/injected-prompt-message.d.ts +21 -0
  1849. package/dist/modes/interactive/components/injected-prompt-message.d.ts.map +1 -0
  1850. package/dist/modes/interactive/components/injected-prompt-message.js +51 -0
  1851. package/dist/modes/interactive/components/injected-prompt-message.js.map +1 -0
  1852. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  1853. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  1854. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  1855. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  1856. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  1857. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  1858. package/dist/modes/interactive/components/login-dialog.js +188 -0
  1859. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  1860. package/dist/modes/interactive/components/model-selector.d.ts +61 -0
  1861. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  1862. package/dist/modes/interactive/components/model-selector.js +320 -0
  1863. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  1864. package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  1865. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  1866. package/dist/modes/interactive/components/oauth-selector.js +163 -0
  1867. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  1868. package/dist/modes/interactive/components/plan-message.d.ts +17 -0
  1869. package/dist/modes/interactive/components/plan-message.d.ts.map +1 -0
  1870. package/dist/modes/interactive/components/plan-message.js +43 -0
  1871. package/dist/modes/interactive/components/plan-message.js.map +1 -0
  1872. package/dist/modes/interactive/components/processes-selector.d.ts +20 -0
  1873. package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -0
  1874. package/dist/modes/interactive/components/processes-selector.js +175 -0
  1875. package/dist/modes/interactive/components/processes-selector.js.map +1 -0
  1876. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  1877. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  1878. package/dist/modes/interactive/components/scoped-models-selector.js +293 -0
  1879. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  1880. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  1881. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  1882. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  1883. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  1884. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  1885. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  1886. package/dist/modes/interactive/components/session-selector.js +857 -0
  1887. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  1888. package/dist/modes/interactive/components/settings-selector.d.ts +157 -0
  1889. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  1890. package/dist/modes/interactive/components/settings-selector.js +1273 -0
  1891. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  1892. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  1893. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  1894. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  1895. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  1896. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  1897. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  1898. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  1899. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  1900. package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  1901. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  1902. package/dist/modes/interactive/components/status-indicator.js +60 -0
  1903. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  1904. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  1905. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  1906. package/dist/modes/interactive/components/theme-selector.js +50 -0
  1907. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  1908. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  1909. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  1910. package/dist/modes/interactive/components/thinking-selector.js +52 -0
  1911. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  1912. package/dist/modes/interactive/components/thinking-summary.d.ts +36 -0
  1913. package/dist/modes/interactive/components/thinking-summary.d.ts.map +1 -0
  1914. package/dist/modes/interactive/components/thinking-summary.js +96 -0
  1915. package/dist/modes/interactive/components/thinking-summary.js.map +1 -0
  1916. package/dist/modes/interactive/components/thinking-tail.d.ts +22 -0
  1917. package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -0
  1918. package/dist/modes/interactive/components/thinking-tail.js +27 -0
  1919. package/dist/modes/interactive/components/thinking-tail.js.map +1 -0
  1920. package/dist/modes/interactive/components/tool-execution.d.ts +81 -0
  1921. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  1922. package/dist/modes/interactive/components/tool-execution.js +473 -0
  1923. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  1924. package/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  1925. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  1926. package/dist/modes/interactive/components/tree-selector.js +1245 -0
  1927. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  1928. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  1929. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  1930. package/dist/modes/interactive/components/trust-selector.js +91 -0
  1931. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  1932. package/dist/modes/interactive/components/usage-view.d.ts +42 -0
  1933. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -0
  1934. package/dist/modes/interactive/components/usage-view.js +140 -0
  1935. package/dist/modes/interactive/components/usage-view.js.map +1 -0
  1936. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  1937. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  1938. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  1939. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  1940. package/dist/modes/interactive/components/user-message.d.ts +17 -0
  1941. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  1942. package/dist/modes/interactive/components/user-message.js +63 -0
  1943. package/dist/modes/interactive/components/user-message.js.map +1 -0
  1944. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  1945. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  1946. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  1947. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  1948. package/dist/modes/interactive/interactive-mode.d.ts +508 -0
  1949. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  1950. package/dist/modes/interactive/interactive-mode.js +6867 -0
  1951. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  1952. package/dist/modes/interactive/model-search.d.ts +12 -0
  1953. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  1954. package/dist/modes/interactive/model-search.js +15 -0
  1955. package/dist/modes/interactive/model-search.js.map +1 -0
  1956. package/dist/modes/interactive/skill-tag-autocomplete.d.ts +13 -0
  1957. package/dist/modes/interactive/skill-tag-autocomplete.d.ts.map +1 -0
  1958. package/dist/modes/interactive/skill-tag-autocomplete.js +72 -0
  1959. package/dist/modes/interactive/skill-tag-autocomplete.js.map +1 -0
  1960. package/dist/modes/interactive/smooth-streaming.d.ts +43 -0
  1961. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -0
  1962. package/dist/modes/interactive/smooth-streaming.js +182 -0
  1963. package/dist/modes/interactive/smooth-streaming.js.map +1 -0
  1964. package/dist/modes/interactive/theme/moon.json +83 -0
  1965. package/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  1966. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  1967. package/dist/modes/interactive/theme/theme-controller.js +97 -0
  1968. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  1969. package/dist/modes/interactive/theme/theme-schema.json +363 -0
  1970. package/dist/modes/interactive/theme/theme.d.ts +128 -0
  1971. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  1972. package/dist/modes/interactive/theme/theme.js +1092 -0
  1973. package/dist/modes/interactive/theme/theme.js.map +1 -0
  1974. package/dist/modes/print-mode.d.ts +28 -0
  1975. package/dist/modes/print-mode.d.ts.map +1 -0
  1976. package/dist/modes/print-mode.js +132 -0
  1977. package/dist/modes/print-mode.js.map +1 -0
  1978. package/dist/modes/rpc/jsonl.d.ts +17 -0
  1979. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  1980. package/dist/modes/rpc/jsonl.js +49 -0
  1981. package/dist/modes/rpc/jsonl.js.map +1 -0
  1982. package/dist/modes/rpc/rpc-client.d.ts +242 -0
  1983. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  1984. package/dist/modes/rpc/rpc-client.js +481 -0
  1985. package/dist/modes/rpc/rpc-client.js.map +1 -0
  1986. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  1987. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  1988. package/dist/modes/rpc/rpc-mode.js +635 -0
  1989. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  1990. package/dist/modes/rpc/rpc-types.d.ts +446 -0
  1991. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1992. package/dist/modes/rpc/rpc-types.js +8 -0
  1993. package/dist/modes/rpc/rpc-types.js.map +1 -0
  1994. package/dist/package-manager-cli.d.ts +8 -0
  1995. package/dist/package-manager-cli.d.ts.map +1 -0
  1996. package/dist/package-manager-cli.js +378 -0
  1997. package/dist/package-manager-cli.js.map +1 -0
  1998. package/dist/rpc-entry.d.ts +3 -0
  1999. package/dist/rpc-entry.d.ts.map +1 -0
  2000. package/dist/rpc-entry.js +10 -0
  2001. package/dist/rpc-entry.js.map +1 -0
  2002. package/dist/startup/interactive-shell.d.ts +55 -0
  2003. package/dist/startup/interactive-shell.d.ts.map +1 -0
  2004. package/dist/startup/interactive-shell.js +263 -0
  2005. package/dist/startup/interactive-shell.js.map +1 -0
  2006. package/dist/startup/launch-routing.d.ts +8 -0
  2007. package/dist/startup/launch-routing.d.ts.map +1 -0
  2008. package/dist/startup/launch-routing.js +30 -0
  2009. package/dist/startup/launch-routing.js.map +1 -0
  2010. package/dist/startup/startup-milestones.d.ts +4 -0
  2011. package/dist/startup/startup-milestones.d.ts.map +1 -0
  2012. package/dist/startup/startup-milestones.js +13 -0
  2013. package/dist/startup/startup-milestones.js.map +1 -0
  2014. package/dist/utils/ansi.d.ts +2 -0
  2015. package/dist/utils/ansi.d.ts.map +1 -0
  2016. package/dist/utils/ansi.js +52 -0
  2017. package/dist/utils/ansi.js.map +1 -0
  2018. package/dist/utils/child-process.d.ts +18 -0
  2019. package/dist/utils/child-process.d.ts.map +1 -0
  2020. package/dist/utils/child-process.js +106 -0
  2021. package/dist/utils/child-process.js.map +1 -0
  2022. package/dist/utils/clipboard-image.d.ts +11 -0
  2023. package/dist/utils/clipboard-image.d.ts.map +1 -0
  2024. package/dist/utils/clipboard-image.js +304 -0
  2025. package/dist/utils/clipboard-image.js.map +1 -0
  2026. package/dist/utils/clipboard-native.d.ts +11 -0
  2027. package/dist/utils/clipboard-native.d.ts.map +1 -0
  2028. package/dist/utils/clipboard-native.js +20 -0
  2029. package/dist/utils/clipboard-native.js.map +1 -0
  2030. package/dist/utils/clipboard.d.ts +4 -0
  2031. package/dist/utils/clipboard.d.ts.map +1 -0
  2032. package/dist/utils/clipboard.js +130 -0
  2033. package/dist/utils/clipboard.js.map +1 -0
  2034. package/dist/utils/deprecation.d.ts +4 -0
  2035. package/dist/utils/deprecation.d.ts.map +1 -0
  2036. package/dist/utils/deprecation.js +13 -0
  2037. package/dist/utils/deprecation.js.map +1 -0
  2038. package/dist/utils/exif-orientation.d.ts +5 -0
  2039. package/dist/utils/exif-orientation.d.ts.map +1 -0
  2040. package/dist/utils/exif-orientation.js +158 -0
  2041. package/dist/utils/exif-orientation.js.map +1 -0
  2042. package/dist/utils/frontmatter.d.ts +8 -0
  2043. package/dist/utils/frontmatter.d.ts.map +1 -0
  2044. package/dist/utils/frontmatter.js +26 -0
  2045. package/dist/utils/frontmatter.js.map +1 -0
  2046. package/dist/utils/fs-watch.d.ts +5 -0
  2047. package/dist/utils/fs-watch.d.ts.map +1 -0
  2048. package/dist/utils/fs-watch.js +25 -0
  2049. package/dist/utils/fs-watch.js.map +1 -0
  2050. package/dist/utils/git.d.ts +26 -0
  2051. package/dist/utils/git.d.ts.map +1 -0
  2052. package/dist/utils/git.js +195 -0
  2053. package/dist/utils/git.js.map +1 -0
  2054. package/dist/utils/html.d.ts +7 -0
  2055. package/dist/utils/html.d.ts.map +1 -0
  2056. package/dist/utils/html.js +40 -0
  2057. package/dist/utils/html.js.map +1 -0
  2058. package/dist/utils/image-convert.d.ts +10 -0
  2059. package/dist/utils/image-convert.d.ts.map +1 -0
  2060. package/dist/utils/image-convert.js +45 -0
  2061. package/dist/utils/image-convert.js.map +1 -0
  2062. package/dist/utils/image-process.d.ts +18 -0
  2063. package/dist/utils/image-process.d.ts.map +1 -0
  2064. package/dist/utils/image-process.js +83 -0
  2065. package/dist/utils/image-process.js.map +1 -0
  2066. package/dist/utils/image-resize-core.d.ts +30 -0
  2067. package/dist/utils/image-resize-core.d.ts.map +1 -0
  2068. package/dist/utils/image-resize-core.js +124 -0
  2069. package/dist/utils/image-resize-core.js.map +1 -0
  2070. package/dist/utils/image-resize-worker.d.ts +2 -0
  2071. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  2072. package/dist/utils/image-resize-worker.js +31 -0
  2073. package/dist/utils/image-resize-worker.js.map +1 -0
  2074. package/dist/utils/image-resize.d.ts +16 -0
  2075. package/dist/utils/image-resize.d.ts.map +1 -0
  2076. package/dist/utils/image-resize.js +97 -0
  2077. package/dist/utils/image-resize.js.map +1 -0
  2078. package/dist/utils/json.d.ts +3 -0
  2079. package/dist/utils/json.d.ts.map +1 -0
  2080. package/dist/utils/json.js +7 -0
  2081. package/dist/utils/json.js.map +1 -0
  2082. package/dist/utils/mime.d.ts +3 -0
  2083. package/dist/utils/mime.d.ts.map +1 -0
  2084. package/dist/utils/mime.js +110 -0
  2085. package/dist/utils/mime.js.map +1 -0
  2086. package/dist/utils/open-browser.d.ts +9 -0
  2087. package/dist/utils/open-browser.d.ts.map +1 -0
  2088. package/dist/utils/open-browser.js +22 -0
  2089. package/dist/utils/open-browser.js.map +1 -0
  2090. package/dist/utils/paths.d.ts +31 -0
  2091. package/dist/utils/paths.d.ts.map +1 -0
  2092. package/dist/utils/paths.js +92 -0
  2093. package/dist/utils/paths.js.map +1 -0
  2094. package/dist/utils/photon.d.ts +21 -0
  2095. package/dist/utils/photon.d.ts.map +1 -0
  2096. package/dist/utils/photon.js +121 -0
  2097. package/dist/utils/photon.js.map +1 -0
  2098. package/dist/utils/pi-user-agent.d.ts +2 -0
  2099. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  2100. package/dist/utils/pi-user-agent.js +5 -0
  2101. package/dist/utils/pi-user-agent.js.map +1 -0
  2102. package/dist/utils/shell.d.ts +31 -0
  2103. package/dist/utils/shell.d.ts.map +1 -0
  2104. package/dist/utils/shell.js +202 -0
  2105. package/dist/utils/shell.js.map +1 -0
  2106. package/dist/utils/sleep.d.ts +5 -0
  2107. package/dist/utils/sleep.d.ts.map +1 -0
  2108. package/dist/utils/sleep.js +17 -0
  2109. package/dist/utils/sleep.js.map +1 -0
  2110. package/dist/utils/syntax-highlight.d.ts +12 -0
  2111. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  2112. package/dist/utils/syntax-highlight.js +118 -0
  2113. package/dist/utils/syntax-highlight.js.map +1 -0
  2114. package/dist/utils/tools-manager.d.ts +3 -0
  2115. package/dist/utils/tools-manager.d.ts.map +1 -0
  2116. package/dist/utils/tools-manager.js +328 -0
  2117. package/dist/utils/tools-manager.js.map +1 -0
  2118. package/docs/compaction.md +396 -0
  2119. package/docs/containerization.md +111 -0
  2120. package/docs/custom-provider.md +735 -0
  2121. package/docs/development.md +104 -0
  2122. package/docs/docs.json +160 -0
  2123. package/docs/extensions.md +2913 -0
  2124. package/docs/features.md +102 -0
  2125. package/docs/images/doom-extension.png +0 -0
  2126. package/docs/images/exy.png +0 -0
  2127. package/docs/images/interactive-mode.png +0 -0
  2128. package/docs/images/tree-view.png +0 -0
  2129. package/docs/index.md +88 -0
  2130. package/docs/json.md +82 -0
  2131. package/docs/keybindings.md +202 -0
  2132. package/docs/models.md +540 -0
  2133. package/docs/packages.md +224 -0
  2134. package/docs/prompt-templates.md +95 -0
  2135. package/docs/providers.md +308 -0
  2136. package/docs/quickstart.md +200 -0
  2137. package/docs/rpc.md +1474 -0
  2138. package/docs/sdk.md +1185 -0
  2139. package/docs/security.md +59 -0
  2140. package/docs/session-format.md +422 -0
  2141. package/docs/sessions.md +146 -0
  2142. package/docs/settings.md +341 -0
  2143. package/docs/shell-aliases.md +13 -0
  2144. package/docs/skills.md +241 -0
  2145. package/docs/terminal-setup.md +155 -0
  2146. package/docs/termux.md +127 -0
  2147. package/docs/themes.md +295 -0
  2148. package/docs/tmux.md +63 -0
  2149. package/docs/tui.md +927 -0
  2150. package/docs/usage.md +337 -0
  2151. package/docs/windows.md +25 -0
  2152. package/examples/README.md +27 -0
  2153. package/examples/extensions/README.md +213 -0
  2154. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  2155. package/examples/extensions/bash-spawn-hook.ts +30 -0
  2156. package/examples/extensions/bookmark.ts +50 -0
  2157. package/examples/extensions/border-status-editor.ts +150 -0
  2158. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  2159. package/examples/extensions/claude-rules.ts +86 -0
  2160. package/examples/extensions/commands.ts +72 -0
  2161. package/examples/extensions/confirm-destructive.ts +59 -0
  2162. package/examples/extensions/custom-compaction.ts +128 -0
  2163. package/examples/extensions/custom-footer.ts +64 -0
  2164. package/examples/extensions/custom-header.ts +73 -0
  2165. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  2166. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  2167. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  2168. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -0
  2169. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  2170. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  2171. package/examples/extensions/dirty-repo-guard.ts +56 -0
  2172. package/examples/extensions/doom-overlay/README.md +46 -0
  2173. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  2174. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  2175. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  2176. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  2177. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  2178. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  2179. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  2180. package/examples/extensions/doom-overlay/index.ts +74 -0
  2181. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  2182. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  2183. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  2184. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  2185. package/examples/extensions/dynamic-resources/index.ts +15 -0
  2186. package/examples/extensions/dynamic-tools.ts +74 -0
  2187. package/examples/extensions/entry-renderer.ts +41 -0
  2188. package/examples/extensions/event-bus.ts +43 -0
  2189. package/examples/extensions/file-trigger.ts +41 -0
  2190. package/examples/extensions/git-checkpoint.ts +53 -0
  2191. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  2192. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  2193. package/examples/extensions/gondolin/index.ts +531 -0
  2194. package/examples/extensions/gondolin/package-lock.json +185 -0
  2195. package/examples/extensions/gondolin/package.json +19 -0
  2196. package/examples/extensions/handoff.ts +191 -0
  2197. package/examples/extensions/hello.ts +26 -0
  2198. package/examples/extensions/hidden-thinking-label.ts +53 -0
  2199. package/examples/extensions/inline-bash.ts +94 -0
  2200. package/examples/extensions/input-transform-streaming.ts +39 -0
  2201. package/examples/extensions/input-transform.ts +43 -0
  2202. package/examples/extensions/interactive-shell.ts +196 -0
  2203. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  2204. package/examples/extensions/mac-system-theme.ts +47 -0
  2205. package/examples/extensions/message-renderer.ts +59 -0
  2206. package/examples/extensions/minimal-mode.ts +426 -0
  2207. package/examples/extensions/modal-editor.ts +85 -0
  2208. package/examples/extensions/model-status.ts +31 -0
  2209. package/examples/extensions/notify.ts +55 -0
  2210. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  2211. package/examples/extensions/overlay-test.ts +153 -0
  2212. package/examples/extensions/permission-gate.ts +34 -0
  2213. package/examples/extensions/pirate.ts +47 -0
  2214. package/examples/extensions/plan-mode/README.md +68 -0
  2215. package/examples/extensions/plan-mode/index.ts +390 -0
  2216. package/examples/extensions/plan-mode/utils.ts +168 -0
  2217. package/examples/extensions/preset.ts +436 -0
  2218. package/examples/extensions/project-trust.ts +64 -0
  2219. package/examples/extensions/prompt-customizer.ts +97 -0
  2220. package/examples/extensions/protected-paths.ts +30 -0
  2221. package/examples/extensions/provider-payload.ts +18 -0
  2222. package/examples/extensions/qna.ts +122 -0
  2223. package/examples/extensions/question.ts +286 -0
  2224. package/examples/extensions/questionnaire.ts +448 -0
  2225. package/examples/extensions/rainbow-editor.ts +88 -0
  2226. package/examples/extensions/reload-runtime.ts +37 -0
  2227. package/examples/extensions/rpc-demo.ts +118 -0
  2228. package/examples/extensions/sandbox/index.ts +321 -0
  2229. package/examples/extensions/sandbox/package-lock.json +92 -0
  2230. package/examples/extensions/sandbox/package.json +19 -0
  2231. package/examples/extensions/send-user-message.ts +97 -0
  2232. package/examples/extensions/session-name.ts +27 -0
  2233. package/examples/extensions/shutdown-command.ts +63 -0
  2234. package/examples/extensions/snake.ts +343 -0
  2235. package/examples/extensions/space-invaders.ts +560 -0
  2236. package/examples/extensions/ssh.ts +220 -0
  2237. package/examples/extensions/status-line.ts +32 -0
  2238. package/examples/extensions/structured-output.ts +65 -0
  2239. package/examples/extensions/subagent/README.md +177 -0
  2240. package/examples/extensions/subagent/agents/planner.md +37 -0
  2241. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  2242. package/examples/extensions/subagent/agents/scout.md +50 -0
  2243. package/examples/extensions/subagent/agents/worker.md +24 -0
  2244. package/examples/extensions/subagent/agents.ts +126 -0
  2245. package/examples/extensions/subagent/index.ts +1015 -0
  2246. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  2247. package/examples/extensions/subagent/prompts/implement.md +10 -0
  2248. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  2249. package/examples/extensions/summarize.ts +207 -0
  2250. package/examples/extensions/system-prompt-header.ts +17 -0
  2251. package/examples/extensions/tic-tac-toe.ts +1008 -0
  2252. package/examples/extensions/timed-confirm.ts +70 -0
  2253. package/examples/extensions/titlebar-spinner.ts +58 -0
  2254. package/examples/extensions/todo.ts +298 -0
  2255. package/examples/extensions/tool-override.ts +144 -0
  2256. package/examples/extensions/tools.ts +146 -0
  2257. package/examples/extensions/trigger-compact.ts +50 -0
  2258. package/examples/extensions/truncated-tool.ts +195 -0
  2259. package/examples/extensions/widget-placement.ts +9 -0
  2260. package/examples/extensions/with-deps/index.ts +32 -0
  2261. package/examples/extensions/with-deps/package-lock.json +31 -0
  2262. package/examples/extensions/with-deps/package.json +22 -0
  2263. package/examples/extensions/working-indicator.ts +123 -0
  2264. package/examples/extensions/working-message-test.ts +25 -0
  2265. package/examples/rpc-extension-ui.ts +632 -0
  2266. package/examples/sdk/01-minimal.ts +26 -0
  2267. package/examples/sdk/02-custom-model.ts +50 -0
  2268. package/examples/sdk/03-custom-prompt.ts +75 -0
  2269. package/examples/sdk/04-skills.ts +55 -0
  2270. package/examples/sdk/05-tools.ts +48 -0
  2271. package/examples/sdk/06-extensions.ts +99 -0
  2272. package/examples/sdk/07-context-files.ts +47 -0
  2273. package/examples/sdk/08-prompt-templates.ts +51 -0
  2274. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  2275. package/examples/sdk/10-settings.ts +53 -0
  2276. package/examples/sdk/11-sessions.ts +52 -0
  2277. package/examples/sdk/12-full-control.ts +72 -0
  2278. package/examples/sdk/13-session-runtime.ts +67 -0
  2279. package/examples/sdk/README.md +144 -0
  2280. package/package.json +115 -0
@@ -0,0 +1,2165 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import { Box, Text, truncateToWidth } from "@ashx-j/lunr-tui";
10
+ import { Type } from "typebox";
11
+ import { StringEnum, complete } from "@ashx-j/lunr-ai/compat";
12
+ import { fetchAllContent } from "./extract.js";
13
+ import { normalizeFetchContentParams } from "./fetch-params.js";
14
+ import { clearCloneCache } from "./github-extract.js";
15
+ import { search } from "./gemini-search.js";
16
+ import { getWebSearchConfigDir, getWebSearchConfigPath } from "./utils.js";
17
+ import { clearResults, deleteResult, generateId, getAllResults, getResult, restoreFromSession, storeResult, } from "./storage.js";
18
+ import { activityMonitor } from "./activity.js";
19
+ import { startCuratorServer } from "./curator-server.js";
20
+ import { buildDeterministicSummary, generateSummaryDraft, } from "./summary-review.js";
21
+ import { randomUUID } from "node:crypto";
22
+ import { execFileSync } from "node:child_process";
23
+ import { createRequire } from "node:module";
24
+ import { platform } from "node:os";
25
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
26
+ import { join } from "node:path";
27
+ import { isPerplexityAvailable } from "./perplexity.js";
28
+ import { isExaAvailable } from "./exa.js";
29
+ import { isGeminiApiAvailable } from "./gemini-api.js";
30
+ import { getActiveGoogleEmail, isGeminiWebAvailable } from "./gemini-web.js";
31
+ import { isBrowserCookieAccessAllowed } from "./gemini-web-config.js";
32
+ import { isBraveAvailable } from "./brave.js";
33
+ import { isOpenAISearchAvailable } from "./openai-search.js";
34
+ import { isParallelAvailable } from "./parallel.js";
35
+ import { isTavilyAvailable } from "./tavily.js";
36
+ import { buildSearchErrorPlan } from "./render-search-error.js";
37
+ import { collectFetchUrls, collectSearchQueries, formatFetchCallTitle, formatFetchChrome, formatFetchDetail, formatSearchCallTitle, formatSearchChrome, formatSearchDetail, } from "./render-search-chrome.js";
38
+ import { formatGroupedCall, toolGroupTree, toolStatusDotFromContext } from "../../core/tools/render-utils.js";
39
+ import { loadEnabledModelPatterns, modelMatchesEnabledPatterns } from "./summary-model-scope.js";
40
+ const WEB_SEARCH_CONFIG_PATH = getWebSearchConfigPath();
41
+ /** Shared collapsed/expanded renderer for an error/cancel plan produced by
42
+ * buildSearchErrorPlan(). Used by every tool renderResult's error branch so
43
+ * Ctrl+O (app.tools.expand) reveals diagnostics instead of a dead-end single line. */
44
+ function renderSearchErrorPlan(plan, expanded, theme) {
45
+ if (expanded) {
46
+ return new Text(plan.expanded.map((l, i) => i === 0 ? theme.fg("error", l) : theme.fg("toolOutput", l)).join("\n"), 0, 0);
47
+ }
48
+ const box = new Box(1, 0, (t) => theme.bg("toolErrorBg", t));
49
+ box.addChild(new Text(theme.fg("error", plan.expanded[0]), 0, 0));
50
+ for (const line of plan.collapsed) {
51
+ box.addChild(new Text(theme.fg("dim", line), 0, 0));
52
+ }
53
+ if (plan.expandHint) {
54
+ box.addChild(new Text(theme.fg("muted", plan.expandHint), 0, 0));
55
+ }
56
+ return box;
57
+ }
58
+ function loadConfig() {
59
+ if (!existsSync(WEB_SEARCH_CONFIG_PATH))
60
+ return {};
61
+ const raw = readFileSync(WEB_SEARCH_CONFIG_PATH, "utf-8");
62
+ try {
63
+ return JSON.parse(raw);
64
+ }
65
+ catch (err) {
66
+ const message = err instanceof Error ? err.message : String(err);
67
+ throw new Error(`Failed to parse ${WEB_SEARCH_CONFIG_PATH}: ${message}`);
68
+ }
69
+ }
70
+ function saveConfig(updates) {
71
+ let config = {};
72
+ if (existsSync(WEB_SEARCH_CONFIG_PATH)) {
73
+ const raw = readFileSync(WEB_SEARCH_CONFIG_PATH, "utf-8");
74
+ try {
75
+ config = JSON.parse(raw);
76
+ }
77
+ catch (err) {
78
+ const message = err instanceof Error ? err.message : String(err);
79
+ throw new Error(`Failed to parse ${WEB_SEARCH_CONFIG_PATH}: ${message}`);
80
+ }
81
+ }
82
+ Object.assign(config, updates);
83
+ const dir = getWebSearchConfigDir();
84
+ if (!existsSync(dir))
85
+ mkdirSync(dir, { recursive: true });
86
+ writeFileSync(WEB_SEARCH_CONFIG_PATH, JSON.stringify(config, null, 2) + "\n");
87
+ }
88
+ const DEFAULT_SHORTCUTS = { curate: "ctrl+shift+s", activity: "ctrl+shift+w" };
89
+ const DEFAULT_CURATOR_TIMEOUT_SECONDS = 20;
90
+ const MAX_CURATOR_TIMEOUT_SECONDS = 600;
91
+ function loadConfigForExtensionInit() {
92
+ try {
93
+ return loadConfig();
94
+ }
95
+ catch (err) {
96
+ const message = err instanceof Error ? err.message : String(err);
97
+ console.error(`[pi-web-access] ${message}`);
98
+ return {};
99
+ }
100
+ }
101
+ function normalizeProviderInput(value) {
102
+ if (value === undefined)
103
+ return undefined;
104
+ if (typeof value !== "string")
105
+ return "auto";
106
+ const normalized = value.trim().toLowerCase();
107
+ const valid = ["auto", "openai", "brave", "parallel", "tavily", "exa", "perplexity", "gemini"];
108
+ return valid.includes(normalized) ? normalized : "auto";
109
+ }
110
+ function normalizeCuratorTimeoutSeconds(value) {
111
+ if (typeof value !== "number" || !Number.isFinite(value))
112
+ return undefined;
113
+ const normalized = Math.floor(value);
114
+ if (normalized < 1)
115
+ return undefined;
116
+ return Math.min(normalized, MAX_CURATOR_TIMEOUT_SECONDS);
117
+ }
118
+ function resolveWorkflow(input, hasUI) {
119
+ const normalized = typeof input === "string" ? input.trim().toLowerCase() : "";
120
+ if (normalized === "auto-summary")
121
+ return "auto-summary";
122
+ if (!hasUI)
123
+ return "none";
124
+ if (normalized === "none")
125
+ return "none";
126
+ return "summary-review";
127
+ }
128
+ function normalizeQueryList(queryList) {
129
+ return collectSearchQueries({ queries: queryList });
130
+ }
131
+ function getCuratorTimeoutSeconds() {
132
+ const source = loadConfig();
133
+ return normalizeCuratorTimeoutSeconds(source.curatorTimeoutSeconds) ?? DEFAULT_CURATOR_TIMEOUT_SECONDS;
134
+ }
135
+ async function getProviderAvailability(ctx) {
136
+ const geminiWebAvail = await isGeminiWebAvailable();
137
+ return {
138
+ openai: await isOpenAISearchAvailable(ctx),
139
+ brave: isBraveAvailable(),
140
+ parallel: isParallelAvailable(),
141
+ tavily: isTavilyAvailable(),
142
+ perplexity: isPerplexityAvailable(),
143
+ exa: isExaAvailable(),
144
+ gemini: isGeminiApiAvailable() || !!geminiWebAvail,
145
+ };
146
+ }
147
+ function shouldPreferOpenAI(options) {
148
+ if (!options)
149
+ return true;
150
+ if (options.recencyFilter)
151
+ return false;
152
+ if (typeof options.numResults === "number" && Number.isFinite(options.numResults) && Math.floor(options.numResults) !== 5) {
153
+ return false;
154
+ }
155
+ return true;
156
+ }
157
+ async function loadCuratorBootstrap(requestedProvider, ctx, options) {
158
+ const availableProviders = await getProviderAvailability(ctx);
159
+ return {
160
+ availableProviders,
161
+ defaultProvider: resolveProvider(requestedProvider, availableProviders, options),
162
+ timeoutSeconds: getCuratorTimeoutSeconds(),
163
+ };
164
+ }
165
+ function firstAvailableProvider(available, preferOpenAI, fallback) {
166
+ if (preferOpenAI && available.openai)
167
+ return "openai";
168
+ if (available.exa)
169
+ return "exa";
170
+ if (available.brave)
171
+ return "brave";
172
+ if (available.parallel)
173
+ return "parallel";
174
+ if (available.tavily)
175
+ return "tavily";
176
+ if (available.perplexity)
177
+ return "perplexity";
178
+ if (available.gemini)
179
+ return "gemini";
180
+ return fallback;
181
+ }
182
+ function resolveProvider(requested, available, options) {
183
+ const provider = normalizeProviderInput(requested ?? loadConfig().provider ?? "auto") ?? "auto";
184
+ const preferOpenAI = shouldPreferOpenAI(options);
185
+ if (provider === "auto") {
186
+ return firstAvailableProvider(available, preferOpenAI, "exa");
187
+ }
188
+ if (provider === "openai" && !available.openai) {
189
+ return firstAvailableProvider(available, false, "openai");
190
+ }
191
+ if (provider === "brave" && !available.brave) {
192
+ return firstAvailableProvider(available, preferOpenAI, "brave");
193
+ }
194
+ if (provider === "parallel" && !available.parallel) {
195
+ return firstAvailableProvider(available, preferOpenAI, "parallel");
196
+ }
197
+ if (provider === "tavily" && !available.tavily) {
198
+ return firstAvailableProvider(available, preferOpenAI, "tavily");
199
+ }
200
+ if (provider === "exa" && !available.exa) {
201
+ return firstAvailableProvider(available, preferOpenAI, "exa");
202
+ }
203
+ if (provider === "perplexity" && !available.perplexity) {
204
+ return firstAvailableProvider(available, preferOpenAI, "perplexity");
205
+ }
206
+ if (provider === "gemini" && !available.gemini) {
207
+ return firstAvailableProvider(available, preferOpenAI, "gemini");
208
+ }
209
+ return provider;
210
+ }
211
+ const pendingFetches = new Map();
212
+ let sessionActive = false;
213
+ let widgetVisible = false;
214
+ let widgetUnsubscribe = null;
215
+ const pendingCurates = new Map();
216
+ const activeCurators = new Map();
217
+ const glimpseWins = new Map();
218
+ const MAX_INLINE_CONTENT = 30000; // Content returned directly to agent
219
+ function stripThumbnails(results) {
220
+ return results.map(({ thumbnail, frames, ...rest }) => rest);
221
+ }
222
+ function formatSearchSummary(results, answer) {
223
+ let output = answer ? `${answer}\n\n---\n\n**Sources:**\n` : "";
224
+ output += results.map((r, i) => `${i + 1}. ${r.title}\n ${r.url}`).join("\n\n");
225
+ return output;
226
+ }
227
+ function duplicateQuerySet(results) {
228
+ const counts = new Map();
229
+ for (const result of results) {
230
+ counts.set(result.query, (counts.get(result.query) ?? 0) + 1);
231
+ }
232
+ const duplicates = new Set();
233
+ for (const [query, count] of counts) {
234
+ if (count > 1)
235
+ duplicates.add(query);
236
+ }
237
+ return duplicates;
238
+ }
239
+ function formatQueryHeader(query, provider, duplicateQueries) {
240
+ const suffix = duplicateQueries.has(query) && provider ? ` (${provider})` : "";
241
+ return `## Query: "${query}"${suffix}\n\n`;
242
+ }
243
+ function hasFullInlineCoverage(urls, inlineContent) {
244
+ if (!inlineContent || inlineContent.length === 0)
245
+ return false;
246
+ const coveredUrls = new Set(inlineContent.map(c => c.url));
247
+ return urls.every(url => coveredUrls.has(url));
248
+ }
249
+ function formatFullResults(queryData) {
250
+ let output = `## Results for: "${queryData.query}"\n\n`;
251
+ if (queryData.answer) {
252
+ output += `${queryData.answer}\n\n---\n\n`;
253
+ }
254
+ for (const r of queryData.results) {
255
+ output += `### ${r.title}\n${r.url}\n\n`;
256
+ }
257
+ return output;
258
+ }
259
+ function abortPendingFetches() {
260
+ for (const controller of pendingFetches.values()) {
261
+ controller.abort();
262
+ }
263
+ pendingFetches.clear();
264
+ }
265
+ function closeCurator(callId) {
266
+ if (callId !== undefined) {
267
+ const win = glimpseWins.get(callId);
268
+ glimpseWins.delete(callId);
269
+ try {
270
+ win?.close();
271
+ }
272
+ catch { }
273
+ pendingCurates.get(callId)?.cancel("stale");
274
+ pendingCurates.delete(callId);
275
+ const curator = activeCurators.get(callId);
276
+ activeCurators.delete(callId);
277
+ try {
278
+ curator?.close();
279
+ }
280
+ catch { }
281
+ return;
282
+ }
283
+ for (const win of glimpseWins.values()) {
284
+ try {
285
+ win.close();
286
+ }
287
+ catch { }
288
+ }
289
+ glimpseWins.clear();
290
+ for (const pc of pendingCurates.values()) {
291
+ try {
292
+ pc.cancel("stale");
293
+ }
294
+ catch { }
295
+ }
296
+ pendingCurates.clear();
297
+ for (const curator of activeCurators.values()) {
298
+ try {
299
+ curator.close();
300
+ }
301
+ catch { }
302
+ }
303
+ activeCurators.clear();
304
+ }
305
+ async function openInBrowser(pi, url) {
306
+ const plat = platform();
307
+ const result = plat === "darwin"
308
+ ? await pi.exec("open", [url])
309
+ : plat === "win32"
310
+ ? await pi.exec("cmd", ["/c", "start", "", url])
311
+ : await pi.exec("xdg-open", [url]);
312
+ if (result.code !== 0) {
313
+ throw new Error(result.stderr || `Failed to open browser (exit code ${result.code})`);
314
+ }
315
+ }
316
+ let glimpseOpen;
317
+ function findGlimpseMjs() {
318
+ try {
319
+ const req = createRequire(import.meta.url);
320
+ return req.resolve("glimpseui");
321
+ }
322
+ catch {
323
+ // Optional dependency.
324
+ }
325
+ try {
326
+ const globalRoot = execFileSync("npm", ["root", "-g"], { encoding: "utf-8" }).trim();
327
+ const entry = join(globalRoot, "glimpseui", "src", "glimpse.mjs");
328
+ if (existsSync(entry))
329
+ return entry;
330
+ }
331
+ catch {
332
+ // npm may be unavailable.
333
+ }
334
+ return null;
335
+ }
336
+ async function getGlimpseOpen() {
337
+ if (glimpseOpen !== undefined)
338
+ return glimpseOpen;
339
+ const resolved = findGlimpseMjs();
340
+ if (resolved) {
341
+ try {
342
+ glimpseOpen = (await import(__rewriteRelativeImportExtension(resolved))).open;
343
+ return glimpseOpen;
344
+ }
345
+ catch { }
346
+ }
347
+ glimpseOpen = null;
348
+ return glimpseOpen;
349
+ }
350
+ function openInGlimpse(open, url, title) {
351
+ const shellHTML = `<!DOCTYPE html>
352
+ <html>
353
+ <head><meta charset="UTF-8"><title>${title}</title></head>
354
+ <body style="margin:0; background:#1a1a2e;">
355
+ <script>window.location.replace(${JSON.stringify(url)});</script>
356
+ </body>
357
+ </html>`;
358
+ const win = open(shellHTML, {
359
+ width: 800,
360
+ height: 900,
361
+ title,
362
+ });
363
+ let maxHeight = 1200;
364
+ win.on("ready", (info) => {
365
+ const visibleHeight = info?.screen?.visibleHeight;
366
+ if (typeof visibleHeight === "number" && visibleHeight > 0) {
367
+ maxHeight = Math.floor(visibleHeight * 0.85);
368
+ }
369
+ });
370
+ win.on("message", (data) => {
371
+ if (!data || typeof data !== "object")
372
+ return;
373
+ const msg = data;
374
+ if (msg.type !== "resize" || typeof msg.height !== "number")
375
+ return;
376
+ const clamped = Math.max(400, Math.min(Math.round(msg.height), maxHeight));
377
+ win._write({ type: "resize", width: 800, height: clamped });
378
+ });
379
+ return win;
380
+ }
381
+ function extractDomain(url) {
382
+ try {
383
+ return new URL(url).hostname;
384
+ }
385
+ catch {
386
+ return url;
387
+ }
388
+ }
389
+ function updateWidget(ctx) {
390
+ const theme = ctx.ui.theme;
391
+ const entries = activityMonitor.getEntries();
392
+ const lines = [];
393
+ lines.push(theme.fg("accent", "─── Web Search Activity " + "─".repeat(36)));
394
+ if (entries.length === 0) {
395
+ lines.push(theme.fg("muted", " No activity yet"));
396
+ }
397
+ else {
398
+ for (const e of entries) {
399
+ lines.push(" " + formatEntryLine(e, theme));
400
+ }
401
+ }
402
+ lines.push(theme.fg("accent", "─".repeat(60)));
403
+ const rateInfo = activityMonitor.getRateLimitInfo();
404
+ const resetMs = rateInfo.oldestTimestamp ? Math.max(0, rateInfo.oldestTimestamp + rateInfo.windowMs - Date.now()) : 0;
405
+ const resetSec = Math.ceil(resetMs / 1000);
406
+ lines.push(theme.fg("muted", `Rate: ${rateInfo.used}/${rateInfo.max}`) +
407
+ (resetMs > 0 ? theme.fg("dim", ` (resets in ${resetSec}s)`) : ""));
408
+ ctx.ui.setWidget("web-activity", new Text(lines.join("\n"), 0, 0));
409
+ }
410
+ function formatEntryLine(entry, theme) {
411
+ const typeStr = entry.type === "api" ? "API" : "GET";
412
+ const target = entry.type === "api"
413
+ ? `"${truncateToWidth(entry.query || "", 28, "")}"`
414
+ : truncateToWidth(entry.url?.replace(/^https?:\/\//, "") || "", 30, "");
415
+ const duration = entry.endTime
416
+ ? `${((entry.endTime - entry.startTime) / 1000).toFixed(1)}s`
417
+ : `${((Date.now() - entry.startTime) / 1000).toFixed(1)}s`;
418
+ let statusStr;
419
+ let indicator;
420
+ if (entry.error) {
421
+ statusStr = "err";
422
+ indicator = theme.fg("error", "✗");
423
+ }
424
+ else if (entry.status === null) {
425
+ statusStr = "...";
426
+ indicator = theme.fg("warning", "⋯");
427
+ }
428
+ else if (entry.status === 0) {
429
+ statusStr = "abort";
430
+ indicator = theme.fg("muted", "○");
431
+ }
432
+ else {
433
+ statusStr = String(entry.status);
434
+ indicator = entry.status >= 200 && entry.status < 300 ? theme.fg("success", "✓") : theme.fg("error", "✗");
435
+ }
436
+ return `${typeStr.padEnd(4)} ${target.padEnd(32)} ${statusStr.padStart(5)} ${duration.padStart(5)} ${indicator}`;
437
+ }
438
+ function handleSessionChange(ctx) {
439
+ abortPendingFetches();
440
+ closeCurator();
441
+ clearCloneCache();
442
+ sessionActive = true;
443
+ restoreFromSession(ctx);
444
+ // Unsubscribe before clear() to avoid callback with stale ctx
445
+ widgetUnsubscribe?.();
446
+ widgetUnsubscribe = null;
447
+ activityMonitor.clear();
448
+ if (widgetVisible) {
449
+ // Re-subscribe with new ctx
450
+ widgetUnsubscribe = activityMonitor.onUpdate(() => updateWidget(ctx));
451
+ updateWidget(ctx);
452
+ }
453
+ }
454
+ export default function (pi) {
455
+ const initConfig = loadConfigForExtensionInit();
456
+ const curateKey = initConfig.shortcuts?.curate || DEFAULT_SHORTCUTS.curate;
457
+ const activityKey = initConfig.shortcuts?.activity || DEFAULT_SHORTCUTS.activity;
458
+ // lunr: expose curator workflow state to core (/settings "Extensions" submenu)
459
+ // so the /settings toggle writes through the same web-search.json saveConfig
460
+ // path as /curator — single source of truth, no forked state.
461
+ globalThis[Symbol.for("@lunr/search-curator")] = {
462
+ getWorkflow() {
463
+ return resolveWorkflow(loadConfigForExtensionInit().workflow, true);
464
+ },
465
+ setWorkflow(workflow) {
466
+ saveConfig({ workflow });
467
+ },
468
+ };
469
+ function startBackgroundFetch(urls) {
470
+ if (urls.length === 0)
471
+ return null;
472
+ const fetchId = generateId();
473
+ const controller = new AbortController();
474
+ pendingFetches.set(fetchId, controller);
475
+ fetchAllContent(urls, controller.signal)
476
+ .then((fetched) => {
477
+ if (!sessionActive || !pendingFetches.has(fetchId))
478
+ return;
479
+ const data = {
480
+ id: fetchId,
481
+ type: "fetch",
482
+ timestamp: Date.now(),
483
+ urls: stripThumbnails(fetched),
484
+ };
485
+ storeResult(fetchId, data);
486
+ pi.appendEntry("web-search-results", data);
487
+ const ok = fetched.filter(f => !f.error).length;
488
+ pi.sendMessage({
489
+ customType: "web-search-content-ready",
490
+ content: `Content fetched for ${ok}/${fetched.length} URLs [${fetchId}]. Full page content now available.`,
491
+ display: true,
492
+ }, { triggerTurn: true });
493
+ })
494
+ .catch((err) => {
495
+ if (!sessionActive || !pendingFetches.has(fetchId))
496
+ return;
497
+ const message = err instanceof Error ? err.message : String(err);
498
+ const isAbort = (err instanceof Error && err.name === "AbortError") || message.toLowerCase().includes("abort");
499
+ if (!isAbort) {
500
+ pi.sendMessage({
501
+ customType: "web-search-error",
502
+ content: `Content fetch failed [${fetchId}]: ${message}`,
503
+ display: true,
504
+ }, { triggerTurn: false });
505
+ }
506
+ })
507
+ .finally(() => { pendingFetches.delete(fetchId); });
508
+ return fetchId;
509
+ }
510
+ function storeAndPublishSearch(results) {
511
+ const id = generateId();
512
+ const data = {
513
+ id, type: "search", timestamp: Date.now(), queries: results,
514
+ };
515
+ storeResult(id, data);
516
+ pi.appendEntry("web-search-results", data);
517
+ return id;
518
+ }
519
+ function normalizeSummaryMeta(meta, summaryText) {
520
+ const normalizedText = summaryText.trim();
521
+ if (!meta) {
522
+ return {
523
+ model: null,
524
+ durationMs: 0,
525
+ tokenEstimate: normalizedText.length > 0 ? Math.max(1, Math.ceil(normalizedText.length / 4)) : 0,
526
+ fallbackUsed: false,
527
+ edited: false,
528
+ };
529
+ }
530
+ return {
531
+ model: meta.model,
532
+ durationMs: Number.isFinite(meta.durationMs) && meta.durationMs >= 0 ? meta.durationMs : 0,
533
+ tokenEstimate: Number.isFinite(meta.tokenEstimate) && meta.tokenEstimate >= 0
534
+ ? meta.tokenEstimate
535
+ : (normalizedText.length > 0 ? Math.max(1, Math.ceil(normalizedText.length / 4)) : 0),
536
+ fallbackUsed: meta.fallbackUsed === true,
537
+ fallbackReason: meta.fallbackReason,
538
+ edited: meta.edited === true,
539
+ };
540
+ }
541
+ function buildCurationCancelledReturn(reason, partial) {
542
+ const message = `Search curation cancelled (${reason}).`;
543
+ const cancelledQueries = partial?.queries?.length
544
+ ? partial.queries.map(q => ({
545
+ query: q.query,
546
+ provider: q.provider ?? null,
547
+ error: q.error,
548
+ resultCount: q.results?.length ?? 0,
549
+ }))
550
+ : undefined;
551
+ const extraLines = [];
552
+ if (partial?.curatorUrl)
553
+ extraLines.push(`curator: ${partial.curatorUrl}`);
554
+ if (partial?.browserOpenError)
555
+ extraLines.push(`browser open error: ${partial.browserOpenError}`);
556
+ return {
557
+ content: [{ type: "text", text: message }],
558
+ details: {
559
+ error: message,
560
+ cancelled: true,
561
+ cancelReason: reason,
562
+ browserConnected: partial?.browserConnected,
563
+ lastHeartbeatAgeMs: partial?.lastHeartbeatAgeMs,
564
+ queryCount: partial?.queryCount,
565
+ cancelledQueries,
566
+ extraLines: extraLines.length > 0 ? extraLines : undefined,
567
+ },
568
+ };
569
+ }
570
+ async function resolveFirstAvailableModel(ctx, candidates) {
571
+ const enabledModelPatterns = loadEnabledModelPatterns(ctx);
572
+ for (const { provider, id } of candidates) {
573
+ const model = ctx.modelRegistry.find(provider, id);
574
+ if (!model || !modelMatchesEnabledPatterns(model, enabledModelPatterns))
575
+ continue;
576
+ const auth = await ctx.modelRegistry.getApiKeyAndHeaders(model);
577
+ if (auth.ok && auth.apiKey)
578
+ return { model, apiKey: auth.apiKey, headers: auth.headers };
579
+ }
580
+ throw new Error(`No enabled model available: ${candidates.map(c => `${c.provider}/${c.id}`).join(", ")}`);
581
+ }
582
+ async function rewriteSearchQuery(query, ctx, signal) {
583
+ const { model, apiKey, headers } = await resolveFirstAvailableModel(ctx, [
584
+ { provider: "anthropic", id: "claude-haiku-4-5" },
585
+ { provider: "google", id: "gemini-2.5-flash" },
586
+ { provider: "openai", id: "gpt-4.1-mini" },
587
+ ]);
588
+ const response = await complete(model, {
589
+ messages: [{
590
+ role: "user",
591
+ content: [{ type: "text", text: `Rewrite this web search query to get better, more specific results. Add relevant year qualifiers, precise technical terms, and specificity. Return ONLY the improved query text, nothing else.\n\nQuery: ${query}` }],
592
+ timestamp: Date.now(),
593
+ }],
594
+ }, { apiKey, headers, signal });
595
+ if (response.stopReason === "aborted")
596
+ throw new Error("Aborted");
597
+ const contentParts = Array.isArray(response.content) ? response.content : [];
598
+ const text = contentParts
599
+ .map(p => {
600
+ if (!p || typeof p !== "object")
601
+ return "";
602
+ const part = p;
603
+ return typeof part.text === "string" ? part.text : "";
604
+ })
605
+ .join("")
606
+ .trim();
607
+ if (!text)
608
+ throw new Error("Rewrite returned empty response");
609
+ return text;
610
+ }
611
+ async function generateSummaryForSelectedIndices(selectedQueryIndices, resultsByIndex, summaryContext, signal, modelOverride, feedback) {
612
+ const selectedResults = [];
613
+ for (const qi of selectedQueryIndices) {
614
+ const result = resultsByIndex.get(qi);
615
+ if (result)
616
+ selectedResults.push(result);
617
+ }
618
+ if (selectedResults.length === 0) {
619
+ throw new Error("No selected results available for summary generation");
620
+ }
621
+ try {
622
+ return await generateSummaryDraft(selectedResults, summaryContext, signal, modelOverride, feedback);
623
+ }
624
+ catch (err) {
625
+ const isEmptyResponse = err instanceof Error && err.message.includes("Summary model returned empty response");
626
+ if (!isEmptyResponse)
627
+ throw err;
628
+ const deterministic = buildDeterministicSummary(selectedResults);
629
+ return {
630
+ summary: deterministic.summary,
631
+ meta: {
632
+ ...deterministic.meta,
633
+ fallbackReason: "summary-model-empty-response",
634
+ },
635
+ };
636
+ }
637
+ }
638
+ async function loadSummaryModelChoices(summaryContext) {
639
+ const summaryModels = [];
640
+ const seen = new Set();
641
+ const availableValues = new Set();
642
+ const addModel = (provider, id) => {
643
+ const value = `${provider}/${id}`;
644
+ if (seen.has(value))
645
+ return;
646
+ seen.add(value);
647
+ summaryModels.push({ value, label: value });
648
+ };
649
+ let enabledModelPatterns = null;
650
+ let scopeLoaded = true;
651
+ try {
652
+ enabledModelPatterns = loadEnabledModelPatterns(summaryContext);
653
+ const availableModels = summaryContext.modelRegistry.getAvailable();
654
+ for (const model of availableModels) {
655
+ if (!modelMatchesEnabledPatterns(model, enabledModelPatterns))
656
+ continue;
657
+ const value = `${model.provider}/${model.id}`;
658
+ availableValues.add(value);
659
+ addModel(model.provider, model.id);
660
+ }
661
+ }
662
+ catch (err) {
663
+ scopeLoaded = false;
664
+ const message = err instanceof Error ? err.message : String(err);
665
+ console.error(`Failed to load summary models: ${message}`);
666
+ }
667
+ const currentModelValue = summaryContext.model
668
+ ? `${summaryContext.model.provider}/${summaryContext.model.id}`
669
+ : null;
670
+ if (scopeLoaded && summaryContext.model && currentModelValue && !seen.has(currentModelValue) && modelMatchesEnabledPatterns(summaryContext.model, enabledModelPatterns)) {
671
+ addModel(summaryContext.model.provider, summaryContext.model.id);
672
+ }
673
+ const config = loadConfig();
674
+ const configuredSummaryModel = typeof config.summaryModel === "string" ? config.summaryModel.trim() : "";
675
+ const preferredDefaults = [
676
+ "anthropic/claude-haiku-4-5",
677
+ "openai-codex/gpt-5.3-codex-spark",
678
+ ];
679
+ let defaultSummaryModel = null;
680
+ if (configuredSummaryModel.length > 0 && availableValues.has(configuredSummaryModel)) {
681
+ defaultSummaryModel = configuredSummaryModel;
682
+ }
683
+ if (!defaultSummaryModel) {
684
+ for (const preferred of preferredDefaults) {
685
+ if (availableValues.has(preferred)) {
686
+ defaultSummaryModel = preferred;
687
+ break;
688
+ }
689
+ }
690
+ }
691
+ return { summaryModels, defaultSummaryModel };
692
+ }
693
+ function resolveSummaryForSubmit(payload, resultsByIndex) {
694
+ const submittedSummary = typeof payload.summary === "string" ? payload.summary.trim() : "";
695
+ if (submittedSummary.length > 0) {
696
+ return {
697
+ approvedSummary: submittedSummary,
698
+ summaryMeta: normalizeSummaryMeta(payload.summaryMeta, submittedSummary),
699
+ };
700
+ }
701
+ const selected = filterByQueryIndices(payload.selectedQueryIndices, resultsByIndex).results;
702
+ const fallbackResults = selected.length > 0 ? selected : [...resultsByIndex.values()];
703
+ const deterministic = buildDeterministicSummary(fallbackResults);
704
+ return {
705
+ approvedSummary: deterministic.summary,
706
+ summaryMeta: deterministic.meta,
707
+ };
708
+ }
709
+ function buildSearchReturn(opts) {
710
+ const sc = opts.results.filter(r => !r.error).length;
711
+ const tr = opts.results.reduce((sum, r) => sum + r.results.length, 0);
712
+ const hasApprovedSummary = typeof opts.approvedSummary === "string" && opts.approvedSummary.trim().length > 0;
713
+ let output = "";
714
+ if (hasApprovedSummary) {
715
+ output = opts.approvedSummary.trim();
716
+ }
717
+ else {
718
+ if (opts.curated) {
719
+ output += "[These results were manually curated by the user in the browser. Use them as-is — do not re-search or discard.]\n\n";
720
+ }
721
+ const duplicateQueries = opts.curated ? duplicateQuerySet(opts.results) : new Set();
722
+ for (const { query, answer, results, error, provider } of opts.results) {
723
+ if (opts.queryList.length > 1) {
724
+ output += opts.curated
725
+ ? formatQueryHeader(query, provider, duplicateQueries)
726
+ : `## Query: "${query}"\n\n`;
727
+ }
728
+ if (error)
729
+ output += `Error: ${error}\n\n`;
730
+ else if (results.length === 0)
731
+ output += "No results found.\n\n";
732
+ else
733
+ output += formatSearchSummary(results, answer) + "\n\n";
734
+ }
735
+ }
736
+ const hasInlineReady = hasFullInlineCoverage(opts.urls, opts.inlineContent);
737
+ let fetchId = null;
738
+ if (hasInlineReady && opts.inlineContent) {
739
+ fetchId = generateId();
740
+ const data = {
741
+ id: fetchId,
742
+ type: "fetch",
743
+ timestamp: Date.now(),
744
+ urls: opts.inlineContent,
745
+ };
746
+ storeResult(fetchId, data);
747
+ pi.appendEntry("web-search-results", data);
748
+ if (!hasApprovedSummary) {
749
+ output += `---\nFull content for ${opts.inlineContent.length} sources available [${fetchId}].`;
750
+ }
751
+ }
752
+ else if (opts.includeContent) {
753
+ fetchId = startBackgroundFetch(opts.urls);
754
+ if (fetchId && !hasApprovedSummary) {
755
+ output += `---\nContent fetching in background [${fetchId}]. Will notify when ready.`;
756
+ }
757
+ }
758
+ const searchId = storeAndPublishSearch(opts.results);
759
+ const isBackgroundFetch = fetchId !== null && !hasInlineReady;
760
+ return {
761
+ content: [{ type: "text", text: output.trim() }],
762
+ details: {
763
+ queries: opts.queryList,
764
+ queryCount: opts.queryList.length,
765
+ successfulQueries: sc,
766
+ totalResults: tr,
767
+ includeContent: opts.includeContent,
768
+ fetchId,
769
+ fetchUrls: isBackgroundFetch ? opts.urls : undefined,
770
+ searchId,
771
+ ...(opts.curated ? {
772
+ curated: true,
773
+ curatedFrom: opts.curatedFrom,
774
+ curatedQueries: opts.results.map(r => ({
775
+ query: r.query,
776
+ provider: r.provider || null,
777
+ answer: r.answer || null,
778
+ sources: r.results.map(s => ({ title: s.title, url: s.url })),
779
+ error: r.error,
780
+ })),
781
+ } : {}),
782
+ ...((opts.workflow && hasApprovedSummary)
783
+ ? {
784
+ summary: {
785
+ text: opts.approvedSummary.trim(),
786
+ workflow: opts.workflow,
787
+ model: opts.summaryMeta?.model ?? null,
788
+ durationMs: opts.summaryMeta?.durationMs ?? 0,
789
+ tokenEstimate: opts.summaryMeta?.tokenEstimate ?? 0,
790
+ fallbackUsed: opts.summaryMeta?.fallbackUsed === true,
791
+ fallbackReason: opts.summaryMeta?.fallbackReason,
792
+ edited: opts.summaryMeta?.edited === true,
793
+ },
794
+ }
795
+ : {}),
796
+ },
797
+ };
798
+ }
799
+ function filterByQueryIndices(selectedQueryIndices, results) {
800
+ const filteredResults = [];
801
+ const filteredUrls = [];
802
+ for (const qi of selectedQueryIndices) {
803
+ const r = results.get(qi);
804
+ if (r) {
805
+ filteredResults.push(r);
806
+ for (const res of r.results) {
807
+ if (!filteredUrls.includes(res.url))
808
+ filteredUrls.push(res.url);
809
+ }
810
+ }
811
+ }
812
+ return { results: filteredResults, urls: filteredUrls };
813
+ }
814
+ function collectAllResultsAndUrls(resultsByIndex) {
815
+ const results = [...resultsByIndex.values()];
816
+ const urls = [];
817
+ for (const result of results) {
818
+ for (const source of result.results) {
819
+ if (!urls.includes(source.url))
820
+ urls.push(source.url);
821
+ }
822
+ }
823
+ return { results, urls };
824
+ }
825
+ async function openCuratorBrowser(callId, pc, searchesComplete = true) {
826
+ if (pendingCurates.get(callId) !== pc)
827
+ return;
828
+ let handle = null;
829
+ try {
830
+ pc.phase = "curating";
831
+ const searchAbort = new AbortController();
832
+ const addSearchSignal = pc.signal
833
+ ? AbortSignal.any([pc.signal, searchAbort.signal])
834
+ : searchAbort.signal;
835
+ const sessionToken = randomUUID();
836
+ handle = await startCuratorServer({
837
+ queries: pc.queryList,
838
+ sessionToken,
839
+ timeout: pc.timeoutSeconds,
840
+ availableProviders: pc.availableProviders,
841
+ defaultProvider: pc.defaultProvider,
842
+ searchProvider: pc.searchProvider,
843
+ summaryModels: pc.summaryModels,
844
+ defaultSummaryModel: pc.defaultSummaryModel,
845
+ }, {
846
+ async onSummarize(selectedQueryIndices, summarizeSignal, model, feedback) {
847
+ if (pendingCurates.get(callId) !== pc)
848
+ throw new Error("Curator session is no longer active.");
849
+ pc.onUpdate?.({
850
+ content: [{ type: "text", text: "Generating summary draft..." }],
851
+ details: { phase: "generating-summary", progress: 0.9, curatorUrl: pc.curatorUrl, timeoutSeconds: pc.timeoutSeconds, shortcut: curateKey },
852
+ });
853
+ const draft = await generateSummaryForSelectedIndices(selectedQueryIndices, pc.searchResults, pc.summaryContext, summarizeSignal, model, feedback);
854
+ if (pendingCurates.get(callId) !== pc)
855
+ throw new Error("Curator session is no longer active.");
856
+ pc.onUpdate?.({
857
+ content: [{ type: "text", text: "Summary draft ready — waiting for approval..." }],
858
+ details: { phase: "waiting-for-approval", progress: 1, curatorUrl: pc.curatorUrl, timeoutSeconds: pc.timeoutSeconds, shortcut: curateKey },
859
+ });
860
+ return draft;
861
+ },
862
+ onSubmit(payload) {
863
+ if (pendingCurates.get(callId) !== pc)
864
+ return;
865
+ searchAbort.abort();
866
+ const filtered = payload.selectedQueryIndices.length > 0
867
+ ? filterByQueryIndices(payload.selectedQueryIndices, pc.searchResults)
868
+ : collectAllResultsAndUrls(pc.searchResults);
869
+ const filteredInline = pc.allInlineContent.filter(c => filtered.urls.includes(c.url));
870
+ const base = {
871
+ queryList: filtered.results.map(r => r.query),
872
+ results: filtered.results,
873
+ urls: filtered.urls,
874
+ includeContent: pc.includeContent,
875
+ inlineContent: filteredInline.length > 0 ? filteredInline : undefined,
876
+ curated: true,
877
+ curatedFrom: pc.searchResults.size,
878
+ };
879
+ if (!payload.rawResults) {
880
+ const resolvedSummary = resolveSummaryForSubmit(payload, pc.searchResults);
881
+ base.workflow = pc.workflow;
882
+ base.approvedSummary = resolvedSummary.approvedSummary;
883
+ base.summaryMeta = resolvedSummary.summaryMeta;
884
+ }
885
+ pc.finish(buildSearchReturn(base));
886
+ closeCurator(callId);
887
+ },
888
+ onCancel(reason) {
889
+ if (pendingCurates.get(callId) !== pc)
890
+ return;
891
+ searchAbort.abort();
892
+ if (reason === "timeout") {
893
+ const resolvedSummary = resolveSummaryForSubmit({ selectedQueryIndices: [], summary: undefined, summaryMeta: undefined }, pc.searchResults);
894
+ const all = collectAllResultsAndUrls(pc.searchResults);
895
+ const filteredInline = pc.allInlineContent.filter(c => all.urls.includes(c.url));
896
+ pc.finish(buildSearchReturn({
897
+ queryList: all.results.map(r => r.query),
898
+ results: all.results,
899
+ urls: all.urls,
900
+ includeContent: pc.includeContent,
901
+ inlineContent: filteredInline.length > 0 ? filteredInline : undefined,
902
+ curated: true,
903
+ curatedFrom: pc.searchResults.size,
904
+ workflow: pc.workflow,
905
+ approvedSummary: resolvedSummary.approvedSummary,
906
+ summaryMeta: resolvedSummary.summaryMeta,
907
+ }));
908
+ }
909
+ else {
910
+ const conn = activeCurators.get(callId)?.getConnectionState();
911
+ pc.finish(buildCurationCancelledReturn(reason, {
912
+ queries: Array.from(pc.searchResults.values()),
913
+ queryCount: pc.queryList.length,
914
+ browserConnected: conn?.browserConnected,
915
+ lastHeartbeatAgeMs: conn?.lastHeartbeatAgeMs,
916
+ curatorUrl: pc.curatorUrl,
917
+ browserOpenError: pc.browserOpenError,
918
+ }));
919
+ }
920
+ closeCurator(callId);
921
+ },
922
+ onProviderChange(provider) {
923
+ if (pendingCurates.get(callId) !== pc)
924
+ return;
925
+ const normalized = normalizeProviderInput(provider);
926
+ if (!normalized || normalized === "auto")
927
+ return;
928
+ pc.defaultProvider = normalized;
929
+ pc.searchProvider = normalized;
930
+ try {
931
+ saveConfig({ provider: normalized });
932
+ }
933
+ catch (err) {
934
+ const message = err instanceof Error ? err.message : String(err);
935
+ console.error(`Failed to persist default provider: ${message}`);
936
+ }
937
+ },
938
+ async onAddSearch(query, queryIndex, provider) {
939
+ if (pendingCurates.get(callId) !== pc)
940
+ throw new Error("Curator session is no longer active.");
941
+ const normalizedProvider = normalizeProviderInput(provider);
942
+ const requestedProvider = !normalizedProvider || normalizedProvider === "auto"
943
+ ? pc.searchProvider
944
+ : normalizedProvider;
945
+ try {
946
+ const { answer, results, inlineContent, provider: actualProvider } = await search(query, {
947
+ provider: requestedProvider,
948
+ numResults: pc.numResults,
949
+ recencyFilter: pc.recencyFilter,
950
+ domainFilter: pc.domainFilter,
951
+ includeContent: pc.includeContent,
952
+ signal: addSearchSignal,
953
+ extensionContext: ctx,
954
+ });
955
+ if (pendingCurates.get(callId) !== pc)
956
+ throw new Error("Curator session is no longer active.");
957
+ pc.searchResults.set(queryIndex, { query, answer, results, error: null, provider: actualProvider });
958
+ if (inlineContent)
959
+ pc.allInlineContent.push(...inlineContent);
960
+ return {
961
+ answer,
962
+ results: results.map(r => ({ title: r.title, url: r.url, domain: extractDomain(r.url) })),
963
+ provider: actualProvider,
964
+ };
965
+ }
966
+ catch (err) {
967
+ const message = err instanceof Error ? err.message : String(err);
968
+ if (pendingCurates.get(callId) === pc) {
969
+ pc.searchResults.set(queryIndex, { query, answer: "", results: [], error: message, provider: requestedProvider });
970
+ }
971
+ throw err;
972
+ }
973
+ },
974
+ async onRewriteQuery(query, rewriteSignal) {
975
+ if (pendingCurates.get(callId) !== pc)
976
+ throw new Error("Curator session is no longer active.");
977
+ return rewriteSearchQuery(query, pc.summaryContext, rewriteSignal);
978
+ },
979
+ });
980
+ if (pendingCurates.get(callId) !== pc) {
981
+ handle.close();
982
+ return;
983
+ }
984
+ activeCurators.set(callId, handle);
985
+ pc.curatorUrl = handle.url;
986
+ for (const [qi, data] of pc.searchResults) {
987
+ if (data.error) {
988
+ handle.pushError(qi, data.error, data.provider);
989
+ }
990
+ else {
991
+ handle.pushResult(qi, {
992
+ answer: data.answer,
993
+ results: data.results.map(r => ({ title: r.title, url: r.url, domain: extractDomain(r.url) })),
994
+ provider: data.provider || pc.defaultProvider,
995
+ });
996
+ }
997
+ }
998
+ if (searchesComplete)
999
+ handle.searchesDone();
1000
+ const sendCuratorFallbackUpdate = (message) => {
1001
+ pc.onUpdate?.({
1002
+ content: [{ type: "text", text: `${message}\nOpen manually: ${handle.url}` }],
1003
+ details: {
1004
+ phase: "curator-fallback",
1005
+ progress: searchesComplete ? 1 : 0.5,
1006
+ curatorUrl: handle.url,
1007
+ timeoutSeconds: pc.timeoutSeconds,
1008
+ shortcut: curateKey,
1009
+ browserOpenError: pc.browserOpenError,
1010
+ },
1011
+ });
1012
+ };
1013
+ pc.onUpdate?.({
1014
+ content: [{ type: "text", text: searchesComplete ? "Waiting for summary approval in browser..." : "Searches streaming to browser..." }],
1015
+ details: {
1016
+ phase: "curating",
1017
+ progress: searchesComplete ? 1 : 0.5,
1018
+ curatorUrl: handle.url,
1019
+ timeoutSeconds: pc.timeoutSeconds,
1020
+ shortcut: curateKey,
1021
+ },
1022
+ });
1023
+ const open = platform() === "darwin" ? await getGlimpseOpen() : null;
1024
+ if (open) {
1025
+ try {
1026
+ const win = openInGlimpse(open, handle.url, "Search Curator");
1027
+ glimpseWins.set(callId, win);
1028
+ win.on("closed", () => {
1029
+ if (glimpseWins.get(callId) === win) {
1030
+ glimpseWins.delete(callId);
1031
+ closeCurator(callId);
1032
+ }
1033
+ });
1034
+ return;
1035
+ }
1036
+ catch (err) {
1037
+ const message = err instanceof Error ? err.message : String(err);
1038
+ console.error(`Failed to open Glimpse curator window: ${message}`);
1039
+ glimpseWins.delete(callId);
1040
+ }
1041
+ }
1042
+ await openInBrowser(pi, handle.url);
1043
+ }
1044
+ catch (err) {
1045
+ const message = err instanceof Error ? err.message : String(err);
1046
+ console.error(`Failed to open curator UI: ${message}`);
1047
+ if (handle && activeCurators.get(callId) === handle && pendingCurates.get(callId) === pc) {
1048
+ pc.browserOpenError = message;
1049
+ sendCuratorFallbackUpdate("Search curator is running, but the browser did not open automatically.");
1050
+ }
1051
+ else if (pendingCurates.get(callId) === pc || (handle && activeCurators.get(callId) === handle)) {
1052
+ closeCurator(callId);
1053
+ }
1054
+ }
1055
+ }
1056
+ pi.registerShortcut(curateKey, {
1057
+ description: "Review search results",
1058
+ handler: async (ctx) => {
1059
+ const entries = [...pendingCurates.entries()];
1060
+ if (entries.length === 0)
1061
+ return;
1062
+ const [callId, pc] = entries[entries.length - 1];
1063
+ if (pc.phase === "searching") {
1064
+ pc.browserPromise = openCuratorBrowser(callId, pc, false);
1065
+ ctx.ui.notify("Opening curator — remaining searches will stream in", "info");
1066
+ return;
1067
+ }
1068
+ },
1069
+ });
1070
+ pi.registerShortcut(activityKey, {
1071
+ description: "Toggle web search activity",
1072
+ handler: async (ctx) => {
1073
+ widgetVisible = !widgetVisible;
1074
+ if (widgetVisible) {
1075
+ widgetUnsubscribe = activityMonitor.onUpdate(() => updateWidget(ctx));
1076
+ updateWidget(ctx);
1077
+ }
1078
+ else {
1079
+ widgetUnsubscribe?.();
1080
+ widgetUnsubscribe = null;
1081
+ ctx.ui.setWidget("web-activity", undefined);
1082
+ }
1083
+ },
1084
+ });
1085
+ pi.on("session_start", async (_event, ctx) => handleSessionChange(ctx));
1086
+ pi.on("session_tree", async (_event, ctx) => handleSessionChange(ctx));
1087
+ pi.on("session_shutdown", () => {
1088
+ sessionActive = false;
1089
+ abortPendingFetches();
1090
+ closeCurator();
1091
+ clearCloneCache();
1092
+ clearResults();
1093
+ // Unsubscribe before clear() to avoid callback with stale ctx
1094
+ widgetUnsubscribe?.();
1095
+ widgetUnsubscribe = null;
1096
+ activityMonitor.clear();
1097
+ widgetVisible = false;
1098
+ });
1099
+ if (initConfig.webSearch?.enabled !== false)
1100
+ pi.registerTool({
1101
+ name: "web_search",
1102
+ label: "Web Search",
1103
+ description: `Search the web using OpenAI, Brave, Parallel, Tavily, Exa, Perplexity, or Gemini. Returns an AI-synthesized answer with source citations. OpenAI web_search uses a Codex subscription or OpenAI API key. For comprehensive research, prefer queries (plural) with 2-4 varied angles over a single query — each query gets its own synthesized answer, so varying phrasing and scope gives much broader coverage. When includeContent is true, full page content is fetched in the background. Searches auto-open the interactive browser curator and stream results live; set workflow to "none" to skip curation or "auto-summary" for a model-generated summary without the browser curator. Provider auto-selects: OpenAI when suitable and available, then Exa, Brave, Parallel, Tavily, Perplexity, Gemini API, then Gemini Web.`,
1104
+ promptSnippet: "Use for web research questions. Prefer {queries:[...]} with 2-4 varied angles over a single query for broader coverage.",
1105
+ parameters: Type.Object({
1106
+ query: Type.Optional(Type.String({ description: "Single search query. For research tasks, prefer 'queries' with multiple varied angles instead." })),
1107
+ queries: Type.Optional(Type.Array(Type.String(), { description: "Multiple queries searched in sequence, each returning its own synthesized answer. Prefer this for research — vary phrasing, scope, and angle across 2-4 queries to maximize coverage. Good: ['React vs Vue performance benchmarks 2026', 'React vs Vue developer experience comparison', 'React ecosystem size vs Vue ecosystem']. Bad: ['React vs Vue', 'React vs Vue comparison', 'React vs Vue review'] (too similar, redundant results)." })),
1108
+ numResults: Type.Optional(Type.Number({ description: "Results per query (default: 5, max: 20)" })),
1109
+ includeContent: Type.Optional(Type.Boolean({ description: "Fetch full page content (async)" })),
1110
+ recencyFilter: Type.Optional(StringEnum(["day", "week", "month", "year"], { description: "Filter by recency" })),
1111
+ domainFilter: Type.Optional(Type.Array(Type.String(), { description: "Limit to domains (prefix with - to exclude)" })),
1112
+ provider: Type.Optional(StringEnum(["auto", "openai", "brave", "parallel", "tavily", "exa", "perplexity", "gemini"], { description: "Search provider (default: auto)" })),
1113
+ workflow: Type.Optional(StringEnum(["none", "summary-review", "auto-summary"], {
1114
+ description: "Search workflow mode: none = no curator, summary-review = open curator with auto summary draft (default), auto-summary = generate summary without opening curator",
1115
+ })),
1116
+ }),
1117
+ async execute(callId, params, signal, onUpdate, ctx) {
1118
+ const rawQueryList = Array.isArray(params.queries)
1119
+ ? params.queries
1120
+ : (params.query !== undefined ? [params.query] : []);
1121
+ const queryList = normalizeQueryList(rawQueryList);
1122
+ const configWorkflow = loadConfigForExtensionInit().workflow;
1123
+ const workflow = resolveWorkflow(params.workflow ?? configWorkflow, ctx?.hasUI !== false);
1124
+ const shouldCurate = workflow === "summary-review";
1125
+ if (queryList.length === 0) {
1126
+ return {
1127
+ content: [{ type: "text", text: "Error: No query provided. Use 'query' or 'queries' parameter." }],
1128
+ details: { error: "No query provided" },
1129
+ };
1130
+ }
1131
+ if (shouldCurate && !ctx) {
1132
+ return {
1133
+ content: [{ type: "text", text: "Error: Curation requires an active extension context." }],
1134
+ details: { error: "Missing extension context" },
1135
+ };
1136
+ }
1137
+ if (shouldCurate) {
1138
+ closeCurator(callId);
1139
+ let resolvePromise = () => { };
1140
+ const promise = new Promise((resolve) => {
1141
+ resolvePromise = resolve;
1142
+ });
1143
+ const includeContent = params.includeContent ?? false;
1144
+ const searchResults = new Map();
1145
+ const allInlineContent = [];
1146
+ const searchAbort = new AbortController();
1147
+ const searchSignal = signal
1148
+ ? AbortSignal.any([signal, searchAbort.signal])
1149
+ : searchAbort.signal;
1150
+ let cancelled = false;
1151
+ const bootstrap = await loadCuratorBootstrap(params.provider, ctx, {
1152
+ numResults: params.numResults,
1153
+ recencyFilter: params.recencyFilter,
1154
+ });
1155
+ const availableProviders = bootstrap.availableProviders;
1156
+ const defaultProvider = bootstrap.defaultProvider;
1157
+ const rawSearchProvider = normalizeProviderInput(params.provider ?? loadConfig().provider ?? "auto") ?? "auto";
1158
+ const searchProvider = rawSearchProvider === "auto" ? "auto" : defaultProvider;
1159
+ const curatorTimeoutSeconds = bootstrap.timeoutSeconds;
1160
+ const curatorWorkflow = "summary-review";
1161
+ const summaryContext = {
1162
+ model: ctx.model,
1163
+ modelRegistry: ctx.modelRegistry,
1164
+ cwd: ctx.cwd,
1165
+ isProjectTrusted: () => ctx.isProjectTrusted(),
1166
+ };
1167
+ const summaryModelChoices = await loadSummaryModelChoices(summaryContext);
1168
+ const pc = {
1169
+ phase: "searching",
1170
+ workflow: curatorWorkflow,
1171
+ summaryContext,
1172
+ searchResults,
1173
+ allInlineContent,
1174
+ queryList,
1175
+ includeContent,
1176
+ numResults: params.numResults,
1177
+ recencyFilter: params.recencyFilter,
1178
+ domainFilter: params.domainFilter,
1179
+ availableProviders,
1180
+ defaultProvider,
1181
+ searchProvider,
1182
+ summaryModels: summaryModelChoices.summaryModels,
1183
+ defaultSummaryModel: summaryModelChoices.defaultSummaryModel,
1184
+ timeoutSeconds: curatorTimeoutSeconds,
1185
+ onUpdate: onUpdate,
1186
+ signal,
1187
+ abortSearches: () => {
1188
+ if (!searchAbort.signal.aborted)
1189
+ searchAbort.abort();
1190
+ },
1191
+ finish: () => { },
1192
+ cancel: () => { },
1193
+ };
1194
+ const finish = (value) => {
1195
+ if (cancelled)
1196
+ return;
1197
+ cancelled = true;
1198
+ pc.abortSearches();
1199
+ signal?.removeEventListener("abort", onAbort);
1200
+ pendingCurates.delete(callId);
1201
+ resolvePromise(value);
1202
+ };
1203
+ const cancel = (reason = "stale") => {
1204
+ if (cancelled)
1205
+ return;
1206
+ const conn = activeCurators.get(callId)?.getConnectionState();
1207
+ finish(buildCurationCancelledReturn(reason, {
1208
+ queries: Array.from(searchResults.values()),
1209
+ queryCount: queryList.length,
1210
+ browserConnected: conn?.browserConnected,
1211
+ lastHeartbeatAgeMs: conn?.lastHeartbeatAgeMs,
1212
+ curatorUrl: pc.curatorUrl,
1213
+ browserOpenError: pc.browserOpenError,
1214
+ }));
1215
+ };
1216
+ pc.finish = finish;
1217
+ pc.cancel = cancel;
1218
+ const onAbort = () => closeCurator(callId);
1219
+ pendingCurates.set(callId, pc);
1220
+ signal?.addEventListener("abort", onAbort, { once: true });
1221
+ pc.browserPromise = openCuratorBrowser(callId, pc, false);
1222
+ for (let qi = 0; qi < queryList.length; qi++) {
1223
+ if (signal?.aborted || cancelled || searchAbort.signal.aborted)
1224
+ break;
1225
+ onUpdate?.({
1226
+ content: [{ type: "text", text: `Searching ${qi + 1}/${queryList.length}: "${queryList[qi]}"...` }],
1227
+ details: { phase: "searching", progress: qi / queryList.length, currentQuery: queryList[qi] },
1228
+ });
1229
+ const requestedProvider = pc.searchProvider;
1230
+ try {
1231
+ const { answer, results, inlineContent, provider } = await search(queryList[qi], {
1232
+ provider: requestedProvider,
1233
+ numResults: params.numResults,
1234
+ recencyFilter: params.recencyFilter,
1235
+ domainFilter: params.domainFilter,
1236
+ includeContent: params.includeContent,
1237
+ signal: searchSignal,
1238
+ extensionContext: ctx,
1239
+ });
1240
+ if (signal?.aborted || cancelled || searchAbort.signal.aborted)
1241
+ break;
1242
+ searchResults.set(qi, { query: queryList[qi], answer, results, error: null, provider });
1243
+ if (inlineContent)
1244
+ allInlineContent.push(...inlineContent);
1245
+ const curator = activeCurators.get(callId);
1246
+ if (curator) {
1247
+ curator.pushResult(qi, {
1248
+ answer,
1249
+ results: results.map(r => ({ title: r.title, url: r.url, domain: extractDomain(r.url) })),
1250
+ provider,
1251
+ });
1252
+ }
1253
+ }
1254
+ catch (err) {
1255
+ if (signal?.aborted || cancelled || searchAbort.signal.aborted)
1256
+ break;
1257
+ const message = err instanceof Error ? err.message : String(err);
1258
+ searchResults.set(qi, { query: queryList[qi], answer: "", results: [], error: message, provider: requestedProvider });
1259
+ const curator = activeCurators.get(callId);
1260
+ if (curator) {
1261
+ curator.pushError(qi, message, requestedProvider);
1262
+ }
1263
+ }
1264
+ }
1265
+ if (signal?.aborted || cancelled || searchAbort.signal.aborted) {
1266
+ cancel();
1267
+ return promise;
1268
+ }
1269
+ await pc.browserPromise;
1270
+ const curator = activeCurators.get(callId);
1271
+ if (curator && !cancelled) {
1272
+ curator.searchesDone();
1273
+ if (pc.browserOpenError) {
1274
+ pc.onUpdate?.({
1275
+ content: [{ type: "text", text: `All searches complete. Open the curator manually: ${pc.curatorUrl}` }],
1276
+ details: {
1277
+ phase: "curator-fallback",
1278
+ progress: 1,
1279
+ curatorUrl: pc.curatorUrl,
1280
+ timeoutSeconds: pc.timeoutSeconds,
1281
+ shortcut: curateKey,
1282
+ browserOpenError: pc.browserOpenError,
1283
+ },
1284
+ });
1285
+ }
1286
+ else {
1287
+ pc.onUpdate?.({
1288
+ content: [{ type: "text", text: "All searches complete — waiting for summary approval in browser..." }],
1289
+ details: {
1290
+ phase: "curating",
1291
+ progress: 1,
1292
+ curatorUrl: pc.curatorUrl,
1293
+ timeoutSeconds: pc.timeoutSeconds,
1294
+ shortcut: curateKey,
1295
+ },
1296
+ });
1297
+ }
1298
+ }
1299
+ return promise;
1300
+ }
1301
+ const searchResults = [];
1302
+ const allUrls = [];
1303
+ const allInlineContent = [];
1304
+ const resolvedProvider = normalizeProviderInput(params.provider ?? loadConfig().provider);
1305
+ for (let i = 0; i < queryList.length; i++) {
1306
+ const query = queryList[i];
1307
+ onUpdate?.({
1308
+ content: [{ type: "text", text: `Searching ${i + 1}/${queryList.length}: "${query}"...` }],
1309
+ details: { phase: "search", progress: i / queryList.length, currentQuery: query },
1310
+ });
1311
+ try {
1312
+ const { answer, results, inlineContent, provider } = await search(query, {
1313
+ provider: resolvedProvider,
1314
+ numResults: params.numResults,
1315
+ recencyFilter: params.recencyFilter,
1316
+ domainFilter: params.domainFilter,
1317
+ includeContent: params.includeContent,
1318
+ signal,
1319
+ extensionContext: ctx,
1320
+ });
1321
+ searchResults.push({ query, answer, results, error: null, provider });
1322
+ for (const r of results) {
1323
+ if (!allUrls.includes(r.url)) {
1324
+ allUrls.push(r.url);
1325
+ }
1326
+ }
1327
+ if (inlineContent)
1328
+ allInlineContent.push(...inlineContent);
1329
+ }
1330
+ catch (err) {
1331
+ const message = err instanceof Error ? err.message : String(err);
1332
+ const requestedProvider = typeof resolvedProvider === "string" && resolvedProvider !== "auto"
1333
+ ? resolvedProvider
1334
+ : undefined;
1335
+ searchResults.push({ query, answer: "", results: [], error: message, provider: requestedProvider });
1336
+ }
1337
+ }
1338
+ let approvedSummary;
1339
+ let summaryMeta;
1340
+ if (workflow === "auto-summary") {
1341
+ if (!ctx) {
1342
+ return {
1343
+ content: [{ type: "text", text: "Error: Auto-summary requires an active extension context." }],
1344
+ details: { error: "Missing extension context" },
1345
+ };
1346
+ }
1347
+ onUpdate?.({
1348
+ content: [{ type: "text", text: "Generating summary..." }],
1349
+ details: { phase: "generating-summary", progress: 1 },
1350
+ });
1351
+ const summaryContext = {
1352
+ model: ctx.model,
1353
+ modelRegistry: ctx.modelRegistry,
1354
+ cwd: ctx.cwd,
1355
+ isProjectTrusted: () => ctx.isProjectTrusted(),
1356
+ };
1357
+ const summaryModelChoices = await loadSummaryModelChoices(summaryContext);
1358
+ const generated = await generateSummaryDraft(searchResults, summaryContext, signal, summaryModelChoices.defaultSummaryModel ?? undefined);
1359
+ approvedSummary = generated.summary;
1360
+ summaryMeta = generated.meta;
1361
+ }
1362
+ return buildSearchReturn({
1363
+ queryList,
1364
+ results: searchResults,
1365
+ urls: allUrls,
1366
+ includeContent: params.includeContent ?? false,
1367
+ inlineContent: allInlineContent.length > 0 ? allInlineContent : undefined,
1368
+ workflow: workflow === "auto-summary" ? "auto-summary" : undefined,
1369
+ approvedSummary,
1370
+ summaryMeta,
1371
+ });
1372
+ },
1373
+ renderCall(args, theme, context) {
1374
+ // lunr: collapsed header is one line (title · count). Query list lives in expanded renderResult.
1375
+ const queryList = collectSearchQueries(args);
1376
+ const compact = Boolean(context && !context.isPartial && !context.expanded && !context.isError);
1377
+ const call = formatSearchCallTitle(queryList);
1378
+ if (call.empty) {
1379
+ return new Text(theme.fg("toolTitle", theme.bold("search ")) + theme.fg("error", "(no query)"), 0, 0);
1380
+ }
1381
+ const detail = formatSearchDetail(queryList, compact ? context?.result?.details : undefined);
1382
+ return new Text(formatGroupedCall({
1383
+ role: context?.groupRole ?? "singleton",
1384
+ compact,
1385
+ tree: context ? toolGroupTree(context) : false,
1386
+ dot: context ? toolStatusDotFromContext(context, theme) : theme.fg("success", "●"),
1387
+ title: theme.fg("toolTitle", theme.bold("search")),
1388
+ detail: theme.fg("accent", detail),
1389
+ }), 0, 0);
1390
+ },
1391
+ renderResult(result, { expanded, isPartial }, theme, context) {
1392
+ const details = result.details;
1393
+ if (isPartial) {
1394
+ if (details?.phase === "curator-fallback") {
1395
+ const lines = [theme.fg("warning", "Open the search curator manually:")];
1396
+ if (details?.curatorUrl)
1397
+ lines.push(theme.fg("muted", ` ${details.curatorUrl}`));
1398
+ if (details?.browserOpenError)
1399
+ lines.push(theme.fg("dim", ` auto-open failed: ${details.browserOpenError}`));
1400
+ const timeout = typeof details?.timeoutSeconds === "number" ? details.timeoutSeconds : undefined;
1401
+ const shortcut = typeof details?.shortcut === "string" ? details.shortcut : curateKey;
1402
+ lines.push(theme.fg("dim", timeout ? ` auto-submits after ${timeout}s idle; ${shortcut} reopens` : ` ${shortcut} reopens`));
1403
+ return new Text(lines.join("\n"), 0, 0);
1404
+ }
1405
+ if (details?.phase === "curating" || details?.phase === "waiting-for-approval" || details?.phase === "generating-summary") {
1406
+ const phaseText = details?.phase === "generating-summary"
1407
+ ? "generating summary draft..."
1408
+ : details?.phase === "waiting-for-approval"
1409
+ ? "summary draft ready; approve in browser..."
1410
+ : "waiting for summary approval in browser...";
1411
+ const lines = [theme.fg("accent", phaseText)];
1412
+ if (details?.curatorUrl) {
1413
+ lines.push(theme.fg("muted", ` ${details.curatorUrl}`));
1414
+ }
1415
+ const timeout = typeof details?.timeoutSeconds === "number" ? details.timeoutSeconds : undefined;
1416
+ const shortcut = typeof details?.shortcut === "string" ? details.shortcut : curateKey;
1417
+ if (timeout) {
1418
+ lines.push(theme.fg("dim", ` auto-submits after ${timeout}s idle; ${shortcut} reopens`));
1419
+ }
1420
+ else {
1421
+ lines.push(theme.fg("dim", ` ${shortcut} reopens`));
1422
+ }
1423
+ return new Text(lines.join("\n"), 0, 0);
1424
+ }
1425
+ if (details?.phase === "searching") {
1426
+ const progress = details?.progress ?? 0;
1427
+ const bar = "\u2588".repeat(Math.floor(progress * 10)) + "\u2591".repeat(10 - Math.floor(progress * 10));
1428
+ const query = details?.currentQuery || "";
1429
+ const display = query.length > 40 ? query.slice(0, 37) + "..." : query;
1430
+ return new Text(theme.fg("accent", `[${bar}] ${display}`), 0, 0);
1431
+ }
1432
+ const progress = details?.progress ?? 0;
1433
+ const bar = "\u2588".repeat(Math.floor(progress * 10)) + "\u2591".repeat(10 - Math.floor(progress * 10));
1434
+ return new Text(theme.fg("accent", `[${bar}] ${details?.phase || "searching"}`), 0, 0);
1435
+ }
1436
+ if (details?.error) {
1437
+ // Expandable Ctrl+O diagnostics: which queries completed, per-query errors,
1438
+ // browser connection state, cancel reason. See render-search-error.ts.
1439
+ const plan = buildSearchErrorPlan(details);
1440
+ if (plan)
1441
+ return renderSearchErrorPlan(plan, expanded, theme);
1442
+ return new Text(theme.fg("error", `Error: ${details.error}`), 0, 0);
1443
+ }
1444
+ // lunr: collapsed = status/count only. Expanded = query list, no answers/sources/summary.
1445
+ const queryList = collectSearchQueries(context?.args);
1446
+ const fallbackQueries = (details?.curatedQueries ?? []).map((cq) => cq.query).filter(Boolean);
1447
+ const chrome = formatSearchChrome({
1448
+ queries: queryList.length > 0 ? queryList : fallbackQueries,
1449
+ details,
1450
+ expanded,
1451
+ });
1452
+ const statusColor = expanded ? "accent" : "success";
1453
+ return new Text(chrome.result.map((line) => theme.fg(statusColor, line)).join("\n"), 0, 0);
1454
+ },
1455
+ });
1456
+ pi.registerTool({
1457
+ name: "fetch_content",
1458
+ label: "Fetch Content",
1459
+ description: "Fetch URL(s) and extract readable content as markdown. Supports YouTube video transcripts (with thumbnail), GitHub repository contents, and local video files (with frame thumbnail). Video frames can be extracted via timestamp/range or sampled across the entire video with frames alone. Falls back to Gemini for pages that block bots or fail Readability extraction. For YouTube and video files: ALWAYS pass the user's specific question via the prompt parameter — this directs the AI to focus on that aspect of the video, producing much better results than a generic extraction. Content is always stored and can be retrieved with get_search_content.",
1460
+ promptSnippet: "Use to extract readable content from URL(s), YouTube, GitHub repos, or local videos. For video questions, pass the user's exact question in prompt.",
1461
+ parameters: Type.Object({
1462
+ url: Type.Optional(Type.String({ description: "Single URL to fetch" })),
1463
+ urls: Type.Optional(Type.Array(Type.String(), { description: "Multiple URLs (parallel)" })),
1464
+ forceClone: Type.Optional(Type.Boolean({
1465
+ description: "Force cloning large GitHub repositories that exceed the size threshold",
1466
+ })),
1467
+ prompt: Type.Optional(Type.String({
1468
+ description: "Question or instruction for video analysis (YouTube and video files). Pass the user's specific question here — e.g. 'describe the book shown at the advice for beginners section'. Without this, a generic transcript extraction is used which may miss what the user is asking about.",
1469
+ })),
1470
+ timestamp: Type.Optional(Type.String({
1471
+ description: "Extract video frame(s) at a timestamp or time range. Single: '1:23:45', '23:45', or '85' (seconds). Range: '23:41-25:00' extracts evenly-spaced frames across that span (default 6). Use frames with ranges to control density; single+frames uses a fixed 5s interval. YouTube requires yt-dlp + ffmpeg; local videos require ffmpeg. Use a range when you know the approximate area but not the exact moment — you'll get a contact sheet to visually identify the right frame.",
1472
+ })),
1473
+ frames: Type.Optional(Type.Integer({
1474
+ minimum: 1,
1475
+ maximum: 12,
1476
+ description: "Number of frames to extract. Use with timestamp range for custom density, with single timestamp to get N frames at 5s intervals, or alone to sample across the entire video. Requires yt-dlp + ffmpeg for YouTube, ffmpeg for local video.",
1477
+ })),
1478
+ model: Type.Optional(Type.String({
1479
+ description: "Override the Gemini model for video/YouTube analysis (e.g. 'gemini-2.5-flash', 'gemini-3-flash-preview'). Defaults to config or gemini-3-flash-preview.",
1480
+ })),
1481
+ }),
1482
+ async execute(_toolCallId, params, signal, onUpdate) {
1483
+ const { urlList, options } = normalizeFetchContentParams(params);
1484
+ if (urlList.length === 0) {
1485
+ return {
1486
+ content: [{ type: "text", text: "Error: No URL provided." }],
1487
+ details: { error: "No URL provided" },
1488
+ };
1489
+ }
1490
+ onUpdate?.({
1491
+ content: [{ type: "text", text: `Fetching ${urlList.length} URL(s)...` }],
1492
+ details: { phase: "fetch", progress: 0 },
1493
+ });
1494
+ const fetchResults = await fetchAllContent(urlList, signal, options);
1495
+ const successful = fetchResults.filter((r) => !r.error).length;
1496
+ const totalChars = fetchResults.reduce((sum, r) => sum + r.content.length, 0);
1497
+ // ALWAYS store results (even for single URL)
1498
+ const responseId = generateId();
1499
+ const data = {
1500
+ id: responseId,
1501
+ type: "fetch",
1502
+ timestamp: Date.now(),
1503
+ urls: stripThumbnails(fetchResults),
1504
+ };
1505
+ storeResult(responseId, data);
1506
+ pi.appendEntry("web-search-results", data);
1507
+ // Single URL: return content directly (possibly truncated) with responseId
1508
+ if (urlList.length === 1) {
1509
+ const result = fetchResults[0];
1510
+ if (result.error) {
1511
+ return {
1512
+ content: [{ type: "text", text: `Error: ${result.error}` }],
1513
+ details: { urls: urlList, urlCount: 1, successful: 0, error: result.error, responseId, prompt: params.prompt, timestamp: params.timestamp, frames: params.frames },
1514
+ };
1515
+ }
1516
+ const fullLength = result.content.length;
1517
+ const truncated = fullLength > MAX_INLINE_CONTENT;
1518
+ let output = truncated
1519
+ ? result.content.slice(0, MAX_INLINE_CONTENT) + "\n\n[Content truncated...]"
1520
+ : result.content;
1521
+ if (truncated) {
1522
+ output += `\n\n---\nShowing ${MAX_INLINE_CONTENT} of ${fullLength} chars. ` +
1523
+ `Use get_search_content({ responseId: "${responseId}", urlIndex: 0 }) for full content.`;
1524
+ }
1525
+ const content = [];
1526
+ if (result.frames?.length) {
1527
+ for (const frame of result.frames) {
1528
+ content.push({ type: "image", data: frame.data, mimeType: frame.mimeType });
1529
+ content.push({ type: "text", text: `Frame at ${frame.timestamp}` });
1530
+ }
1531
+ }
1532
+ else if (result.thumbnail) {
1533
+ content.push({ type: "image", data: result.thumbnail.data, mimeType: result.thumbnail.mimeType });
1534
+ }
1535
+ content.push({ type: "text", text: output });
1536
+ const imageCount = (result.frames?.length ?? 0) + (result.thumbnail ? 1 : 0);
1537
+ return {
1538
+ content,
1539
+ details: {
1540
+ urls: urlList,
1541
+ urlCount: 1,
1542
+ successful: 1,
1543
+ totalChars: fullLength,
1544
+ title: result.title,
1545
+ responseId,
1546
+ truncated,
1547
+ hasImage: imageCount > 0,
1548
+ imageCount,
1549
+ prompt: params.prompt,
1550
+ timestamp: params.timestamp,
1551
+ frames: params.frames,
1552
+ duration: result.duration,
1553
+ },
1554
+ };
1555
+ }
1556
+ // Multi-URL: existing behavior (summary + responseId)
1557
+ let output = "## Fetched URLs\n\n";
1558
+ for (const { url, title, content, error } of fetchResults) {
1559
+ if (error) {
1560
+ output += `- ${url}: Error - ${error}\n`;
1561
+ }
1562
+ else {
1563
+ output += `- ${title || url} (${content.length} chars)\n`;
1564
+ }
1565
+ }
1566
+ output += `\n---\nUse get_search_content({ responseId: "${responseId}", urlIndex: 0 }) to retrieve full content.`;
1567
+ return {
1568
+ content: [{ type: "text", text: output }],
1569
+ details: { urls: urlList, urlCount: urlList.length, successful, totalChars, responseId },
1570
+ };
1571
+ },
1572
+ renderCall(args, theme, context) {
1573
+ // lunr: collapsed header is one line (title · count). URL list lives in expanded renderResult.
1574
+ const urlList = collectFetchUrls(args);
1575
+ const compact = Boolean(context && !context.isPartial && !context.expanded && !context.isError);
1576
+ const call = formatFetchCallTitle(urlList);
1577
+ if (call.empty) {
1578
+ return new Text(theme.fg("toolTitle", theme.bold("fetch ")) + theme.fg("error", "(no URL)"), 0, 0);
1579
+ }
1580
+ const detail = formatFetchDetail(urlList, compact ? context?.result?.details : undefined);
1581
+ return new Text(formatGroupedCall({
1582
+ role: context?.groupRole ?? "singleton",
1583
+ compact,
1584
+ tree: context ? toolGroupTree(context) : false,
1585
+ dot: context ? toolStatusDotFromContext(context, theme) : theme.fg("success", "●"),
1586
+ title: theme.fg("toolTitle", theme.bold("fetch")),
1587
+ detail: theme.fg("accent", detail),
1588
+ }), 0, 0);
1589
+ },
1590
+ renderResult(result, { expanded, isPartial }, theme, context) {
1591
+ const details = result.details;
1592
+ if (isPartial) {
1593
+ const progress = details?.progress ?? 0;
1594
+ const bar = "\u2588".repeat(Math.floor(progress * 10)) + "\u2591".repeat(10 - Math.floor(progress * 10));
1595
+ return new Text(theme.fg("accent", `[${bar}] ${details?.phase || "fetching"}`), 0, 0);
1596
+ }
1597
+ if (details?.error) {
1598
+ const fd = details;
1599
+ const extras = [];
1600
+ if (typeof fd.urlCount === "number" || typeof fd.successful === "number") {
1601
+ extras.push(`urls: ${fd.successful ?? 0}/${fd.urlCount ?? 0} succeeded`);
1602
+ }
1603
+ if (fd.responseId)
1604
+ extras.push(`response id: ${fd.responseId}`);
1605
+ if (fd.urls && fd.urls.length > 0) {
1606
+ for (const u of fd.urls.slice(0, 8))
1607
+ extras.push(` \u25b8 ${u}`);
1608
+ if (fd.urls.length > 8)
1609
+ extras.push(` ... and ${fd.urls.length - 8} more`);
1610
+ }
1611
+ const plan = buildSearchErrorPlan({ error: details.error, extraLines: extras });
1612
+ if (plan)
1613
+ return renderSearchErrorPlan(plan, expanded, theme);
1614
+ return new Text(theme.fg("error", `Error: ${details.error}`), 0, 0);
1615
+ }
1616
+ // lunr: collapsed = count/status only. Expanded = URL list, no markdown/prompt/frames.
1617
+ const urlList = collectFetchUrls(context?.args);
1618
+ const fallbackUrls = Array.isArray(details?.urls)
1619
+ ? details.urls
1620
+ : [];
1621
+ const chrome = formatFetchChrome({
1622
+ urls: urlList.length > 0 ? urlList : fallbackUrls,
1623
+ details,
1624
+ expanded,
1625
+ });
1626
+ const statusColor = expanded ? "accent" : ((details?.successful ?? 0) > 0 || details?.urlCount === 1 ? "success" : "error");
1627
+ return new Text(chrome.result.map((line) => theme.fg(statusColor, line)).join("\n"), 0, 0);
1628
+ },
1629
+ });
1630
+ pi.registerTool({
1631
+ name: "get_search_content",
1632
+ label: "Get Search Content",
1633
+ description: "Retrieve full content from a previous web_search or fetch_content call.",
1634
+ promptSnippet: "Use after web_search/fetch_content when full stored content is needed via responseId plus query/url selectors.",
1635
+ parameters: Type.Object({
1636
+ responseId: Type.String({ description: "The responseId from web_search or fetch_content" }),
1637
+ query: Type.Optional(Type.String({ description: "Get content for this query (web_search)" })),
1638
+ queryIndex: Type.Optional(Type.Number({ description: "Get content for query at index" })),
1639
+ url: Type.Optional(Type.String({ description: "Get content for this URL" })),
1640
+ urlIndex: Type.Optional(Type.Number({ description: "Get content for URL at index" })),
1641
+ }),
1642
+ async execute(_toolCallId, params) {
1643
+ const data = getResult(params.responseId);
1644
+ if (!data) {
1645
+ return {
1646
+ content: [{ type: "text", text: `Error: No stored results for "${params.responseId}"` }],
1647
+ details: { error: "Not found", responseId: params.responseId },
1648
+ };
1649
+ }
1650
+ if (data.type === "search" && data.queries) {
1651
+ let queryData;
1652
+ if (params.query !== undefined) {
1653
+ queryData = data.queries.find((q) => q.query === params.query);
1654
+ if (!queryData) {
1655
+ const available = data.queries.map((q) => `"${q.query}"`).join(", ");
1656
+ return {
1657
+ content: [{ type: "text", text: `Query "${params.query}" not found. Available: ${available}` }],
1658
+ details: { error: "Query not found" },
1659
+ };
1660
+ }
1661
+ }
1662
+ else if (params.queryIndex !== undefined) {
1663
+ queryData = data.queries[params.queryIndex];
1664
+ if (!queryData) {
1665
+ return {
1666
+ content: [{ type: "text", text: `Index ${params.queryIndex} out of range (0-${data.queries.length - 1})` }],
1667
+ details: { error: "Index out of range" },
1668
+ };
1669
+ }
1670
+ }
1671
+ else {
1672
+ const available = data.queries.map((q, i) => `${i}: "${q.query}"`).join(", ");
1673
+ return {
1674
+ content: [{ type: "text", text: `Specify query or queryIndex. Available: ${available}` }],
1675
+ details: { error: "No query specified" },
1676
+ };
1677
+ }
1678
+ if (queryData.error) {
1679
+ return {
1680
+ content: [{ type: "text", text: `Error for "${queryData.query}": ${queryData.error}` }],
1681
+ details: { error: queryData.error, query: queryData.query },
1682
+ };
1683
+ }
1684
+ return {
1685
+ content: [{ type: "text", text: formatFullResults(queryData) }],
1686
+ details: { query: queryData.query, resultCount: queryData.results.length },
1687
+ };
1688
+ }
1689
+ if (data.type === "fetch" && data.urls) {
1690
+ let urlData;
1691
+ if (params.url !== undefined) {
1692
+ urlData = data.urls.find((u) => u.url === params.url);
1693
+ if (!urlData) {
1694
+ const available = data.urls.map((u) => u.url).join("\n ");
1695
+ return {
1696
+ content: [{ type: "text", text: `URL not found. Available:\n ${available}` }],
1697
+ details: { error: "URL not found" },
1698
+ };
1699
+ }
1700
+ }
1701
+ else if (params.urlIndex !== undefined) {
1702
+ urlData = data.urls[params.urlIndex];
1703
+ if (!urlData) {
1704
+ return {
1705
+ content: [{ type: "text", text: `Index ${params.urlIndex} out of range (0-${data.urls.length - 1})` }],
1706
+ details: { error: "Index out of range" },
1707
+ };
1708
+ }
1709
+ }
1710
+ else {
1711
+ const available = data.urls.map((u, i) => `${i}: ${u.url}`).join("\n ");
1712
+ return {
1713
+ content: [{ type: "text", text: `Specify url or urlIndex. Available:\n ${available}` }],
1714
+ details: { error: "No URL specified" },
1715
+ };
1716
+ }
1717
+ if (urlData.error) {
1718
+ return {
1719
+ content: [{ type: "text", text: `Error for ${urlData.url}: ${urlData.error}` }],
1720
+ details: { error: urlData.error, url: urlData.url },
1721
+ };
1722
+ }
1723
+ return {
1724
+ content: [{ type: "text", text: `# ${urlData.title}\n\n${urlData.content}` }],
1725
+ details: { url: urlData.url, title: urlData.title, contentLength: urlData.content.length },
1726
+ };
1727
+ }
1728
+ return {
1729
+ content: [{ type: "text", text: "Invalid stored data format" }],
1730
+ details: { error: "Invalid data" },
1731
+ };
1732
+ },
1733
+ renderCall(args, theme) {
1734
+ const { responseId, query, queryIndex, url, urlIndex } = args;
1735
+ let target = "";
1736
+ if (query)
1737
+ target = `query="${query}"`;
1738
+ else if (queryIndex !== undefined)
1739
+ target = `queryIndex=${queryIndex}`;
1740
+ else if (url)
1741
+ target = url.length > 30 ? url.slice(0, 27) + "..." : url;
1742
+ else if (urlIndex !== undefined)
1743
+ target = `urlIndex=${urlIndex}`;
1744
+ return new Text(theme.fg("toolTitle", theme.bold("get_content ")) + theme.fg("accent", target || responseId.slice(0, 8)), 0, 0);
1745
+ },
1746
+ renderResult(result, { expanded }, theme) {
1747
+ const details = result.details;
1748
+ if (details?.error) {
1749
+ const extras = [];
1750
+ if (details.query)
1751
+ extras.push(`query: ${details.query}`);
1752
+ if (details.url)
1753
+ extras.push(`url: ${details.url}`);
1754
+ else if (details.title)
1755
+ extras.push(`resource: ${details.title}`);
1756
+ const plan = buildSearchErrorPlan({ error: details.error, extraLines: extras });
1757
+ if (plan)
1758
+ return renderSearchErrorPlan(plan, expanded, theme);
1759
+ return new Text(theme.fg("error", `Error: ${details.error}`), 0, 0);
1760
+ }
1761
+ let statusLine;
1762
+ if (details?.query) {
1763
+ statusLine = theme.fg("success", `"${details.query}"`) + theme.fg("muted", ` (${details.resultCount} results)`);
1764
+ }
1765
+ else {
1766
+ statusLine = theme.fg("success", details?.title || "Content") + theme.fg("muted", ` (${details?.contentLength ?? 0} chars)`);
1767
+ }
1768
+ if (!expanded) {
1769
+ return new Text(statusLine, 0, 0);
1770
+ }
1771
+ const textContent = result.content.find((c) => c.type === "text")?.text || "";
1772
+ const preview = textContent.length > 500 ? textContent.slice(0, 500) + "..." : textContent;
1773
+ return new Text(statusLine + "\n" + theme.fg("dim", preview), 0, 0);
1774
+ },
1775
+ });
1776
+ pi.registerCommand("websearch", {
1777
+ description: "Open web search curator",
1778
+ handler: async (args, ctx) => {
1779
+ const sessionToken = randomUUID();
1780
+ const commandCallId = `cmd:${sessionToken}`;
1781
+ closeCurator(commandCallId);
1782
+ const raw = args.trim();
1783
+ const queries = raw.length > 0
1784
+ ? normalizeQueryList(raw.split(","))
1785
+ : [];
1786
+ let bootstrap;
1787
+ try {
1788
+ bootstrap = await loadCuratorBootstrap(undefined, ctx);
1789
+ }
1790
+ catch (err) {
1791
+ const message = err instanceof Error ? err.message : String(err);
1792
+ ctx.ui.notify(`Failed to load web search config: ${message}`, "error");
1793
+ return;
1794
+ }
1795
+ const availableProviders = bootstrap.availableProviders;
1796
+ const initialProvider = bootstrap.defaultProvider;
1797
+ const curatorTimeoutSeconds = bootstrap.timeoutSeconds;
1798
+ let currentProvider = initialProvider;
1799
+ const rawSearchProvider = normalizeProviderInput(loadConfig().provider ?? "auto") ?? "auto";
1800
+ let currentSearchProvider = rawSearchProvider === "auto" ? "auto" : initialProvider;
1801
+ const summaryContext = {
1802
+ model: ctx.model,
1803
+ modelRegistry: ctx.modelRegistry,
1804
+ cwd: ctx.cwd,
1805
+ isProjectTrusted: () => ctx.isProjectTrusted(),
1806
+ };
1807
+ const summaryModelChoices = await loadSummaryModelChoices(summaryContext);
1808
+ ctx.ui.notify("Opening web search curator...", "info");
1809
+ const collected = new Map();
1810
+ const searchAbort = new AbortController();
1811
+ let aborted = false;
1812
+ let commandHandle = null;
1813
+ const isCommandActive = () => commandHandle !== null && activeCurators.get(commandCallId) === commandHandle;
1814
+ function sendFollowUpFromReturn(payload) {
1815
+ pi.sendMessage({
1816
+ customType: "web-search-results",
1817
+ content: payload.content,
1818
+ display: true,
1819
+ details: payload.details,
1820
+ }, { triggerTurn: true, deliverAs: "followUp" });
1821
+ }
1822
+ try {
1823
+ const handle = await startCuratorServer({
1824
+ queries,
1825
+ sessionToken,
1826
+ timeout: curatorTimeoutSeconds,
1827
+ availableProviders,
1828
+ defaultProvider: initialProvider,
1829
+ searchProvider: currentSearchProvider,
1830
+ summaryModels: summaryModelChoices.summaryModels,
1831
+ defaultSummaryModel: summaryModelChoices.defaultSummaryModel,
1832
+ }, {
1833
+ async onSummarize(selectedQueryIndices, summarizeSignal, model, feedback) {
1834
+ if (commandHandle && !isCommandActive()) {
1835
+ throw new Error("Curator session is no longer active.");
1836
+ }
1837
+ return generateSummaryForSelectedIndices(selectedQueryIndices, collected, summaryContext, summarizeSignal, model, feedback);
1838
+ },
1839
+ onSubmit(payload) {
1840
+ if (commandHandle && !isCommandActive())
1841
+ return;
1842
+ aborted = true;
1843
+ searchAbort.abort();
1844
+ const filtered = payload.selectedQueryIndices.length > 0
1845
+ ? filterByQueryIndices(payload.selectedQueryIndices, collected)
1846
+ : collectAllResultsAndUrls(collected);
1847
+ const base = {
1848
+ queryList: filtered.results.map(r => r.query),
1849
+ results: filtered.results,
1850
+ urls: filtered.urls,
1851
+ includeContent: false,
1852
+ curated: true,
1853
+ curatedFrom: collected.size,
1854
+ };
1855
+ if (!payload.rawResults) {
1856
+ const resolvedSummary = resolveSummaryForSubmit(payload, collected);
1857
+ base.workflow = "summary-review";
1858
+ base.approvedSummary = resolvedSummary.approvedSummary;
1859
+ base.summaryMeta = resolvedSummary.summaryMeta;
1860
+ }
1861
+ sendFollowUpFromReturn(buildSearchReturn(base));
1862
+ closeCurator(commandCallId);
1863
+ },
1864
+ onCancel(reason) {
1865
+ if (commandHandle && !isCommandActive())
1866
+ return;
1867
+ aborted = true;
1868
+ searchAbort.abort();
1869
+ if (reason === "timeout") {
1870
+ const all = collectAllResultsAndUrls(collected);
1871
+ const resolvedSummary = resolveSummaryForSubmit({ selectedQueryIndices: [], summary: undefined, summaryMeta: undefined }, collected);
1872
+ sendFollowUpFromReturn(buildSearchReturn({
1873
+ queryList: all.results.map(r => r.query),
1874
+ results: all.results,
1875
+ urls: all.urls,
1876
+ includeContent: false,
1877
+ curated: true,
1878
+ curatedFrom: collected.size,
1879
+ workflow: "summary-review",
1880
+ approvedSummary: resolvedSummary.approvedSummary,
1881
+ summaryMeta: resolvedSummary.summaryMeta,
1882
+ }));
1883
+ }
1884
+ closeCurator(commandCallId);
1885
+ },
1886
+ onProviderChange(provider) {
1887
+ if (commandHandle && !isCommandActive())
1888
+ return;
1889
+ const normalized = normalizeProviderInput(provider);
1890
+ if (!normalized || normalized === "auto")
1891
+ return;
1892
+ currentProvider = normalized;
1893
+ currentSearchProvider = normalized;
1894
+ try {
1895
+ saveConfig({ provider: normalized });
1896
+ }
1897
+ catch (err) {
1898
+ const message = err instanceof Error ? err.message : String(err);
1899
+ console.error(`Failed to persist default provider: ${message}`);
1900
+ }
1901
+ },
1902
+ async onAddSearch(query, queryIndex, provider) {
1903
+ if (commandHandle && !isCommandActive()) {
1904
+ throw new Error("Curator session is no longer active.");
1905
+ }
1906
+ const normalizedProvider = normalizeProviderInput(provider);
1907
+ const requestedProvider = !normalizedProvider || normalizedProvider === "auto"
1908
+ ? currentSearchProvider
1909
+ : normalizedProvider;
1910
+ try {
1911
+ const { answer, results, provider: actualProvider } = await search(query, {
1912
+ provider: requestedProvider,
1913
+ signal: searchAbort.signal,
1914
+ extensionContext: ctx,
1915
+ });
1916
+ if (commandHandle && !isCommandActive()) {
1917
+ throw new Error("Curator session is no longer active.");
1918
+ }
1919
+ collected.set(queryIndex, { query, answer, results, error: null, provider: actualProvider });
1920
+ return {
1921
+ answer,
1922
+ results: results.map(r => ({ title: r.title, url: r.url, domain: extractDomain(r.url) })),
1923
+ provider: actualProvider,
1924
+ };
1925
+ }
1926
+ catch (err) {
1927
+ const message = err instanceof Error ? err.message : String(err);
1928
+ if (!commandHandle || isCommandActive()) {
1929
+ collected.set(queryIndex, { query, answer: "", results: [], error: message, provider: requestedProvider });
1930
+ }
1931
+ throw err;
1932
+ }
1933
+ },
1934
+ async onRewriteQuery(query, rewriteSignal) {
1935
+ if (commandHandle && !isCommandActive()) {
1936
+ throw new Error("Curator session is no longer active.");
1937
+ }
1938
+ return rewriteSearchQuery(query, summaryContext, rewriteSignal);
1939
+ },
1940
+ });
1941
+ commandHandle = handle;
1942
+ activeCurators.set(commandCallId, handle);
1943
+ const open = platform() === "darwin" ? await getGlimpseOpen() : null;
1944
+ let browserOpenError = null;
1945
+ if (open) {
1946
+ try {
1947
+ const win = openInGlimpse(open, handle.url, "Search Curator");
1948
+ glimpseWins.set(commandCallId, win);
1949
+ win.on("closed", () => {
1950
+ if (glimpseWins.get(commandCallId) === win) {
1951
+ glimpseWins.delete(commandCallId);
1952
+ closeCurator(commandCallId);
1953
+ }
1954
+ });
1955
+ }
1956
+ catch (err) {
1957
+ const message = err instanceof Error ? err.message : String(err);
1958
+ console.error(`Failed to open Glimpse curator window: ${message}`);
1959
+ glimpseWins.delete(commandCallId);
1960
+ try {
1961
+ await openInBrowser(pi, handle.url);
1962
+ }
1963
+ catch (browserErr) {
1964
+ browserOpenError = browserErr instanceof Error ? browserErr.message : String(browserErr);
1965
+ }
1966
+ }
1967
+ }
1968
+ else {
1969
+ try {
1970
+ await openInBrowser(pi, handle.url);
1971
+ }
1972
+ catch (browserErr) {
1973
+ browserOpenError = browserErr instanceof Error ? browserErr.message : String(browserErr);
1974
+ }
1975
+ }
1976
+ if (browserOpenError) {
1977
+ console.error(`Failed to open curator UI: ${browserOpenError}`);
1978
+ ctx.ui.notify(`Search curator is running, but the browser did not open automatically. Open manually: ${handle.url}`, "info");
1979
+ }
1980
+ if (queries.length > 0) {
1981
+ (async () => {
1982
+ for (let qi = 0; qi < queries.length; qi++) {
1983
+ if (aborted || !isCommandActive())
1984
+ break;
1985
+ const requestedProvider = currentSearchProvider;
1986
+ try {
1987
+ const { answer, results, provider } = await search(queries[qi], {
1988
+ provider: requestedProvider,
1989
+ signal: searchAbort.signal,
1990
+ extensionContext: ctx,
1991
+ });
1992
+ if (aborted || !isCommandActive())
1993
+ break;
1994
+ handle.pushResult(qi, {
1995
+ answer,
1996
+ results: results.map(r => ({ title: r.title, url: r.url, domain: extractDomain(r.url) })),
1997
+ provider,
1998
+ });
1999
+ collected.set(qi, { query: queries[qi], answer, results, error: null, provider });
2000
+ }
2001
+ catch (err) {
2002
+ if (aborted || !isCommandActive())
2003
+ break;
2004
+ const message = err instanceof Error ? err.message : String(err);
2005
+ handle.pushError(qi, message, requestedProvider);
2006
+ collected.set(qi, { query: queries[qi], answer: "", results: [], error: message, provider: requestedProvider });
2007
+ }
2008
+ }
2009
+ if (!aborted && isCommandActive())
2010
+ handle.searchesDone();
2011
+ })();
2012
+ }
2013
+ else {
2014
+ if (isCommandActive())
2015
+ handle.searchesDone();
2016
+ }
2017
+ }
2018
+ catch (err) {
2019
+ closeCurator(commandCallId);
2020
+ const message = err instanceof Error ? err.message : String(err);
2021
+ ctx.ui.notify(`Failed to open curator: ${message}`, "error");
2022
+ }
2023
+ },
2024
+ });
2025
+ pi.registerCommand("curator", {
2026
+ description: "Toggle or configure the search curator workflow",
2027
+ handler: async (args, ctx) => {
2028
+ const arg = args.trim().toLowerCase();
2029
+ let newWorkflow;
2030
+ if (arg.length === 0) {
2031
+ const current = resolveWorkflow(loadConfigForExtensionInit().workflow, true);
2032
+ newWorkflow = current === "none" ? "summary-review" : "none";
2033
+ }
2034
+ else if (arg === "on") {
2035
+ newWorkflow = "summary-review";
2036
+ }
2037
+ else if (arg === "off") {
2038
+ newWorkflow = "none";
2039
+ }
2040
+ else if (arg === "none" || arg === "summary-review" || arg === "auto-summary") {
2041
+ newWorkflow = arg;
2042
+ }
2043
+ else {
2044
+ ctx.ui.notify(`Unknown option: ${arg}. Use on, off, summary-review, or auto-summary.`, "error");
2045
+ return;
2046
+ }
2047
+ try {
2048
+ saveConfig({ workflow: newWorkflow });
2049
+ }
2050
+ catch (err) {
2051
+ const message = err instanceof Error ? err.message : String(err);
2052
+ ctx.ui.notify(`Failed to save config: ${message}`, "error");
2053
+ return;
2054
+ }
2055
+ const label = newWorkflow === "none"
2056
+ ? "Curator disabled — web_search will return raw results"
2057
+ : newWorkflow === "auto-summary"
2058
+ ? "Auto-summary enabled — web_search will generate a summary without opening the curator"
2059
+ : "Curator enabled — web_search will open curator and auto-generate a summary draft";
2060
+ pi.sendMessage({
2061
+ customType: "curator-config",
2062
+ content: [{ type: "text", text: label }],
2063
+ display: true,
2064
+ details: { workflow: newWorkflow },
2065
+ }, { triggerTurn: false, deliverAs: "followUp" });
2066
+ },
2067
+ });
2068
+ pi.registerCommand("google-account", {
2069
+ description: "Show the active Google account for Gemini Web",
2070
+ handler: async () => {
2071
+ if (!isBrowserCookieAccessAllowed()) {
2072
+ pi.sendMessage({
2073
+ customType: "google-account",
2074
+ content: [{ type: "text", text: `Gemini Web browser cookie access is disabled. Set allowBrowserCookies: true in ${WEB_SEARCH_CONFIG_PATH} to enable it.` }],
2075
+ display: true,
2076
+ details: { available: false, cookieAccessAllowed: false },
2077
+ }, { triggerTurn: true, deliverAs: "followUp" });
2078
+ return;
2079
+ }
2080
+ const cookies = await isGeminiWebAvailable();
2081
+ if (!cookies) {
2082
+ pi.sendMessage({
2083
+ customType: "google-account",
2084
+ content: [{ type: "text", text: "Gemini Web is unavailable. Sign into gemini.google.com in a supported Chromium-based browser." }],
2085
+ display: true,
2086
+ details: { available: false, cookieAccessAllowed: true },
2087
+ }, { triggerTurn: true, deliverAs: "followUp" });
2088
+ return;
2089
+ }
2090
+ const email = await getActiveGoogleEmail(cookies);
2091
+ const text = email
2092
+ ? `Active Google account: ${email}`
2093
+ : "Gemini Web is available, but the active Google account could not be determined.";
2094
+ pi.sendMessage({
2095
+ customType: "google-account",
2096
+ content: [{ type: "text", text }],
2097
+ display: true,
2098
+ details: { available: true, email: email ?? null },
2099
+ }, { triggerTurn: true, deliverAs: "followUp" });
2100
+ },
2101
+ });
2102
+ pi.registerCommand("search", {
2103
+ description: "Browse stored web search results",
2104
+ handler: async (_args, ctx) => {
2105
+ const results = getAllResults();
2106
+ if (results.length === 0) {
2107
+ ctx.ui.notify("No stored search results", "info");
2108
+ return;
2109
+ }
2110
+ const options = results.map((r) => {
2111
+ const age = Math.floor((Date.now() - r.timestamp) / 60000);
2112
+ const ageStr = age < 60 ? `${age}m ago` : `${Math.floor(age / 60)}h ago`;
2113
+ if (r.type === "search" && r.queries) {
2114
+ const query = r.queries[0]?.query || "unknown";
2115
+ return `[${r.id.slice(0, 6)}] "${query}" (${r.queries.length} queries) - ${ageStr}`;
2116
+ }
2117
+ if (r.type === "fetch" && r.urls) {
2118
+ return `[${r.id.slice(0, 6)}] ${r.urls.length} URLs fetched - ${ageStr}`;
2119
+ }
2120
+ return `[${r.id.slice(0, 6)}] ${r.type} - ${ageStr}`;
2121
+ });
2122
+ const choice = await ctx.ui.select("Stored Search Results", options);
2123
+ if (!choice)
2124
+ return;
2125
+ const match = choice.match(/^\[([a-z0-9]+)\]/);
2126
+ if (!match)
2127
+ return;
2128
+ const selected = results.find((r) => r.id.startsWith(match[1]));
2129
+ if (!selected)
2130
+ return;
2131
+ const actions = ["View details", "Delete"];
2132
+ const action = await ctx.ui.select(`Result ${selected.id.slice(0, 6)}`, actions);
2133
+ if (action === "Delete") {
2134
+ deleteResult(selected.id);
2135
+ ctx.ui.notify(`Deleted ${selected.id.slice(0, 6)}`, "info");
2136
+ }
2137
+ else if (action === "View details") {
2138
+ let info = `ID: ${selected.id}\nType: ${selected.type}\nAge: ${Math.floor((Date.now() - selected.timestamp) / 60000)}m\n\n`;
2139
+ if (selected.type === "search" && selected.queries) {
2140
+ info += "Queries:\n";
2141
+ const queries = selected.queries.slice(0, 10);
2142
+ for (const q of queries) {
2143
+ info += `- "${q.query}" (${q.results.length} results)\n`;
2144
+ }
2145
+ if (selected.queries.length > 10) {
2146
+ info += `... and ${selected.queries.length - 10} more\n`;
2147
+ }
2148
+ }
2149
+ if (selected.type === "fetch" && selected.urls) {
2150
+ info += "URLs:\n";
2151
+ const urls = selected.urls.slice(0, 10);
2152
+ for (const u of urls) {
2153
+ const urlDisplay = u.url.length > 50 ? u.url.slice(0, 47) + "..." : u.url;
2154
+ info += `- ${urlDisplay} (${u.error || `${u.content.length} chars`})\n`;
2155
+ }
2156
+ if (selected.urls.length > 10) {
2157
+ info += `... and ${selected.urls.length - 10} more\n`;
2158
+ }
2159
+ }
2160
+ ctx.ui.notify(info, "info");
2161
+ }
2162
+ },
2163
+ });
2164
+ }
2165
+ //# sourceMappingURL=index.js.map