@ashx-j/lunr-dev 0.2.13-dev.7.1 → 0.2.16-dev.9.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 (384) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/dist/builtin-extensions/ashxj-tui.d.ts +14 -0
  3. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  4. package/dist/builtin-extensions/ashxj-tui.js +37 -3
  5. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  6. package/dist/builtin-extensions/index.d.ts +1 -15
  7. package/dist/builtin-extensions/index.d.ts.map +1 -1
  8. package/dist/builtin-extensions/index.js +7 -21
  9. package/dist/builtin-extensions/index.js.map +1 -1
  10. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  11. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +6 -2
  12. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  13. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +4 -0
  14. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +163 -169
  16. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  17. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts +46 -0
  18. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts.map +1 -0
  19. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js +109 -0
  20. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js.map +1 -0
  21. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts +7 -0
  22. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -0
  23. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +211 -0
  24. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -0
  25. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +0 -5
  26. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -1
  27. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +0 -202
  28. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -1
  29. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  30. package/dist/builtin-extensions/pi-mcp-adapter/index.js +251 -94
  31. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  32. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +4 -1
  33. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
  34. package/dist/builtin-extensions/pi-mcp-adapter/init.js +10 -3
  35. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
  36. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -1
  37. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +6 -1
  38. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -1
  39. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
  40. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +2 -1
  41. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
  42. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +1 -1
  43. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
  44. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +1 -1
  45. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +1 -1
  47. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +38 -14
  49. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -1
  51. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -1
  53. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +2 -1
  60. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +2 -1
  64. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
  65. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-web-access/extract.js +105 -54
  67. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
  68. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +1 -1
  69. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -1
  70. package/dist/builtin-extensions/pi-web-access/gemini-search.js +82 -65
  71. package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -1
  72. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
  73. package/dist/builtin-extensions/pi-web-access/github-extract.js +2 -0
  74. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
  75. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  76. package/dist/builtin-extensions/pi-web-access/index.js +167 -77
  77. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  78. package/dist/builtin-extensions/pi-web-access/lazy.d.ts +18 -0
  79. package/dist/builtin-extensions/pi-web-access/lazy.d.ts.map +1 -0
  80. package/dist/builtin-extensions/pi-web-access/lazy.js +19 -0
  81. package/dist/builtin-extensions/pi-web-access/lazy.js.map +1 -0
  82. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +6 -0
  83. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -0
  84. package/dist/builtin-extensions/pi-web-access/session-cleanup.js +17 -0
  85. package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -0
  86. package/dist/catalog/models.json +1 -1
  87. package/dist/catalog/providers/amazon-bedrock.json +1 -1
  88. package/dist/catalog/providers/azure-openai-responses.json +1 -1
  89. package/dist/catalog/providers/fireworks.json +1 -1
  90. package/dist/catalog/providers/github-copilot.json +1 -1
  91. package/dist/catalog/providers/openai-codex.json +1 -1
  92. package/dist/catalog/providers/openai.json +1 -1
  93. package/dist/catalog/providers/opencode.json +1 -1
  94. package/dist/catalog/providers/openrouter.json +1 -1
  95. package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
  96. package/dist/catalog/publication.json +131 -3
  97. package/dist/cli/list-models.d.ts.map +1 -1
  98. package/dist/cli/list-models.js +1 -0
  99. package/dist/cli/list-models.js.map +1 -1
  100. package/dist/cli-runtime.d.ts +3 -0
  101. package/dist/cli-runtime.d.ts.map +1 -0
  102. package/dist/cli-runtime.js +73 -0
  103. package/dist/cli-runtime.js.map +1 -0
  104. package/dist/cli.d.ts.map +1 -1
  105. package/dist/cli.js +14 -53
  106. package/dist/cli.js.map +1 -1
  107. package/dist/config.d.ts +1 -0
  108. package/dist/config.d.ts.map +1 -1
  109. package/dist/config.js +1 -0
  110. package/dist/config.js.map +1 -1
  111. package/dist/core/agent-session.d.ts +3 -0
  112. package/dist/core/agent-session.d.ts.map +1 -1
  113. package/dist/core/agent-session.js +56 -12
  114. package/dist/core/agent-session.js.map +1 -1
  115. package/dist/core/catalog-cache-scope.d.ts +3 -0
  116. package/dist/core/catalog-cache-scope.d.ts.map +1 -0
  117. package/dist/core/catalog-cache-scope.js +12 -0
  118. package/dist/core/catalog-cache-scope.js.map +1 -0
  119. package/dist/core/catalog-merge.d.ts +2 -0
  120. package/dist/core/catalog-merge.d.ts.map +1 -1
  121. package/dist/core/catalog-merge.js +29 -2
  122. package/dist/core/catalog-merge.js.map +1 -1
  123. package/dist/core/catalog-refresh-polling.d.ts +8 -0
  124. package/dist/core/catalog-refresh-polling.d.ts.map +1 -0
  125. package/dist/core/catalog-refresh-polling.js +30 -0
  126. package/dist/core/catalog-refresh-polling.js.map +1 -0
  127. package/dist/core/codex-catalog.d.ts +3 -0
  128. package/dist/core/codex-catalog.d.ts.map +1 -0
  129. package/dist/core/codex-catalog.js +15 -0
  130. package/dist/core/codex-catalog.js.map +1 -0
  131. package/dist/core/compaction/compaction.d.ts.map +1 -1
  132. package/dist/core/compaction/compaction.js +10 -5
  133. package/dist/core/compaction/compaction.js.map +1 -1
  134. package/dist/core/extensions/host-static.d.ts.map +1 -1
  135. package/dist/core/extensions/host-static.js +34 -12
  136. package/dist/core/extensions/host-static.js.map +1 -1
  137. package/dist/core/extensions/loader.d.ts +1 -2
  138. package/dist/core/extensions/loader.d.ts.map +1 -1
  139. package/dist/core/extensions/loader.js +10 -64
  140. package/dist/core/extensions/loader.js.map +1 -1
  141. package/dist/core/extensions/types.d.ts +2 -2
  142. package/dist/core/extensions/types.d.ts.map +1 -1
  143. package/dist/core/extensions/types.js.map +1 -1
  144. package/dist/core/footer-data-provider.d.ts.map +1 -1
  145. package/dist/core/footer-data-provider.js +2 -0
  146. package/dist/core/footer-data-provider.js.map +1 -1
  147. package/dist/core/live-catalog.d.ts +5 -2
  148. package/dist/core/live-catalog.d.ts.map +1 -1
  149. package/dist/core/live-catalog.js +108 -27
  150. package/dist/core/live-catalog.js.map +1 -1
  151. package/dist/core/model-runtime.d.ts +8 -0
  152. package/dist/core/model-runtime.d.ts.map +1 -1
  153. package/dist/core/model-runtime.js +64 -12
  154. package/dist/core/model-runtime.js.map +1 -1
  155. package/dist/core/official-catalog.d.ts +4 -0
  156. package/dist/core/official-catalog.d.ts.map +1 -1
  157. package/dist/core/official-catalog.js +86 -21
  158. package/dist/core/official-catalog.js.map +1 -1
  159. package/dist/core/permissions.d.ts +0 -2
  160. package/dist/core/permissions.d.ts.map +1 -1
  161. package/dist/core/permissions.js +10 -18
  162. package/dist/core/permissions.js.map +1 -1
  163. package/dist/core/sdk.d.ts +1 -1
  164. package/dist/core/sdk.d.ts.map +1 -1
  165. package/dist/core/sdk.js +1 -1
  166. package/dist/core/sdk.js.map +1 -1
  167. package/dist/core/slash-commands.d.ts.map +1 -1
  168. package/dist/core/slash-commands.js +0 -1
  169. package/dist/core/slash-commands.js.map +1 -1
  170. package/dist/core/timings.d.ts +2 -1
  171. package/dist/core/timings.d.ts.map +1 -1
  172. package/dist/core/timings.js +17 -2
  173. package/dist/core/timings.js.map +1 -1
  174. package/dist/gateway/commands.d.ts +1 -1
  175. package/dist/gateway/commands.d.ts.map +1 -1
  176. package/dist/gateway/commands.js +1 -18
  177. package/dist/gateway/commands.js.map +1 -1
  178. package/dist/main.d.ts +2 -2
  179. package/dist/main.d.ts.map +1 -1
  180. package/dist/main.js +66 -48
  181. package/dist/main.js.map +1 -1
  182. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  183. package/dist/modes/interactive/components/model-selector.js +4 -1
  184. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  185. package/dist/modes/interactive/interactive-mode.d.ts +13 -22
  186. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  187. package/dist/modes/interactive/interactive-mode.js +141 -207
  188. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  189. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  190. package/dist/modes/interactive/theme/theme.js +95 -84
  191. package/dist/modes/interactive/theme/theme.js.map +1 -1
  192. package/dist/node-runtime/agent-session-services-IFJMSX7Z.js +36 -0
  193. package/dist/node-runtime/benchmark-request-UC7PD3V3.js +57 -0
  194. package/dist/node-runtime/brave-UWDA3I22.js +143 -0
  195. package/dist/node-runtime/builtin-extensions-LYZ3BFWQ.js +28 -0
  196. package/dist/node-runtime/chunk-2QKLKMKC.js +173 -0
  197. package/dist/node-runtime/chunk-3GHXVUAK.js +21 -0
  198. package/dist/node-runtime/chunk-3RCWXWAY.js +466 -0
  199. package/dist/node-runtime/chunk-3WFAEVKS.js +115 -0
  200. package/dist/node-runtime/chunk-3X3KZKMI.js +49 -0
  201. package/dist/node-runtime/chunk-4HXHDDCF.js +16 -0
  202. package/dist/node-runtime/chunk-4TLO4PO2.js +3427 -0
  203. package/dist/node-runtime/chunk-4ZWGEEAS.js +69 -0
  204. package/dist/node-runtime/chunk-53YJI7JU.js +137 -0
  205. package/dist/node-runtime/chunk-5P7PZMRU.js +610 -0
  206. package/dist/node-runtime/chunk-7N3YHTYF.js +26 -0
  207. package/dist/node-runtime/chunk-7NBZ5P7I.js +24 -0
  208. package/dist/node-runtime/chunk-A2KQXUJD.js +105 -0
  209. package/dist/node-runtime/chunk-AD6VXAO7.js +342 -0
  210. package/dist/node-runtime/chunk-AHSTJBIB.js +64 -0
  211. package/dist/node-runtime/chunk-AJX357CL.js +20211 -0
  212. package/dist/node-runtime/chunk-ARC4KOTI.js +11178 -0
  213. package/dist/node-runtime/chunk-AUXVGBO4.js +19 -0
  214. package/dist/node-runtime/chunk-AY6CAJSL.js +30 -0
  215. package/dist/node-runtime/chunk-BHO7O6E5.js +296 -0
  216. package/dist/node-runtime/chunk-BI3DHYCN.js +8845 -0
  217. package/dist/node-runtime/chunk-BR7YDUKA.js +109 -0
  218. package/dist/node-runtime/chunk-BRJX2PRC.js +53 -0
  219. package/dist/node-runtime/chunk-C4O2RSQQ.js +37 -0
  220. package/dist/node-runtime/chunk-CCZJ3PYY.js +17 -0
  221. package/dist/node-runtime/chunk-CDFZEWPU.js +8388 -0
  222. package/dist/node-runtime/chunk-CGBXPL3E.js +1171 -0
  223. package/dist/node-runtime/chunk-CJECDQKP.js +19 -0
  224. package/dist/node-runtime/chunk-DAPBPCBP.js +53 -0
  225. package/dist/node-runtime/chunk-DDGMHUOW.js +305 -0
  226. package/dist/node-runtime/chunk-DMMTJQMQ.js +43 -0
  227. package/dist/node-runtime/chunk-DVGWF6A2.js +1180 -0
  228. package/dist/node-runtime/chunk-ECD5L7YI.js +1369 -0
  229. package/dist/node-runtime/chunk-EDBJNRSM.js +46 -0
  230. package/dist/node-runtime/chunk-F4VQFJI2.js +1269 -0
  231. package/dist/node-runtime/chunk-FVDOXRUD.js +96 -0
  232. package/dist/node-runtime/chunk-GZQHMEWL.js +126 -0
  233. package/dist/node-runtime/chunk-H2EOZYMP.js +57 -0
  234. package/dist/node-runtime/chunk-HQCKFM2O.js +56 -0
  235. package/dist/node-runtime/chunk-HYHJIRDW.js +19 -0
  236. package/dist/node-runtime/chunk-I6R76AG7.js +22 -0
  237. package/dist/node-runtime/chunk-IPA627GP.js +296 -0
  238. package/dist/node-runtime/chunk-JHYKXIMM.js +378 -0
  239. package/dist/node-runtime/chunk-KKSIVROT.js +88 -0
  240. package/dist/node-runtime/chunk-LZAW4ZX3.js +633 -0
  241. package/dist/node-runtime/chunk-M3LZLQW2.js +98 -0
  242. package/dist/node-runtime/chunk-MGWCVY6Y.js +47 -0
  243. package/dist/node-runtime/chunk-MJQDX3BA.js +72 -0
  244. package/dist/node-runtime/chunk-MKKH27PH.js +8956 -0
  245. package/dist/node-runtime/chunk-MX3GJNXJ.js +986 -0
  246. package/dist/node-runtime/chunk-N77MY65L.js +966 -0
  247. package/dist/node-runtime/chunk-NUIFPZWX.js +209 -0
  248. package/dist/node-runtime/chunk-OBMWP3I5.js +68 -0
  249. package/dist/node-runtime/chunk-OR4L3IB2.js +42 -0
  250. package/dist/node-runtime/chunk-PBC2Y6GS.js +903 -0
  251. package/dist/node-runtime/chunk-PCGNAY2O.js +1324 -0
  252. package/dist/node-runtime/chunk-PCIGF2XK.js +250 -0
  253. package/dist/node-runtime/chunk-PGAJ5MO5.js +7558 -0
  254. package/dist/node-runtime/chunk-PL6JKXWI.js +3622 -0
  255. package/dist/node-runtime/chunk-PVCDKGR6.js +55 -0
  256. package/dist/node-runtime/chunk-Q4Q6D4IY.js +364 -0
  257. package/dist/node-runtime/chunk-Q5ZU2VRT.js +83 -0
  258. package/dist/node-runtime/chunk-QFWG2RVL.js +5477 -0
  259. package/dist/node-runtime/chunk-QH42CDX3.js +9451 -0
  260. package/dist/node-runtime/chunk-RQ2Q5IYR.js +72 -0
  261. package/dist/node-runtime/chunk-RQ5DNUNG.js +429 -0
  262. package/dist/node-runtime/chunk-RRIZE6QQ.js +17 -0
  263. package/dist/node-runtime/chunk-SN6G4OU6.js +4753 -0
  264. package/dist/node-runtime/chunk-SWSN6HAB.js +53 -0
  265. package/dist/node-runtime/chunk-TQNSPERU.js +949 -0
  266. package/dist/node-runtime/chunk-VRB2IYGG.js +53 -0
  267. package/dist/node-runtime/chunk-VSELYKWU.js +772 -0
  268. package/dist/node-runtime/chunk-W3CVH5RX.js +62 -0
  269. package/dist/node-runtime/chunk-WJVFOIB5.js +24921 -0
  270. package/dist/node-runtime/chunk-WOVTOV5P.js +5653 -0
  271. package/dist/node-runtime/chunk-XBWPBZBN.js +125 -0
  272. package/dist/node-runtime/chunk-XTHQ7XR7.js +509 -0
  273. package/dist/node-runtime/chunk-YF63P5ZT.js +864 -0
  274. package/dist/node-runtime/chunk-YSKSB3BJ.js +295 -0
  275. package/dist/node-runtime/chunk-ZCHMJ34K.js +130 -0
  276. package/dist/node-runtime/chunk-ZKMFUD3Q.js +2834 -0
  277. package/dist/node-runtime/cli-runtime.js +81 -0
  278. package/dist/node-runtime/clipboard-OZ63BBC6.js +12 -0
  279. package/dist/node-runtime/clipboard-image-7QR6GXVA.js +13 -0
  280. package/dist/node-runtime/command-L3LAHDIH.js +13 -0
  281. package/dist/node-runtime/commands-RL5YBW5I.js +291 -0
  282. package/dist/node-runtime/config-FMEOZSWE.js +77 -0
  283. package/dist/node-runtime/curator-server-XCM43VEF.js +3816 -0
  284. package/dist/node-runtime/customize-XEXL2DGQ.js +12 -0
  285. package/dist/node-runtime/direct-tool-executor-JVDXTO7A.js +188 -0
  286. package/dist/node-runtime/exa-LL64QZR2.js +329 -0
  287. package/dist/node-runtime/export-html-KR26FOUZ.js +150 -0
  288. package/dist/node-runtime/extension-input-RV5N6APL.js +14 -0
  289. package/dist/node-runtime/extension-selector-CPD5LWDD.js +14 -0
  290. package/dist/node-runtime/extract-XLQSJN4V.js +17 -0
  291. package/dist/node-runtime/file-sync-HCOP2QVF.js +117 -0
  292. package/dist/node-runtime/gateway-X2TI5X7F.js +2484 -0
  293. package/dist/node-runtime/gemini-api-QE7ANVDZ.js +29 -0
  294. package/dist/node-runtime/gemini-search-U7SUMPQA.js +330 -0
  295. package/dist/node-runtime/gemini-url-context-PXWCBQHK.js +103 -0
  296. package/dist/node-runtime/gemini-web-MM446SEH.js +14 -0
  297. package/dist/node-runtime/github-extract-F64RZOEA.js +619 -0
  298. package/dist/node-runtime/goal-CZQ7FFQJ.js +1831 -0
  299. package/dist/node-runtime/index.js +859 -0
  300. package/dist/node-runtime/init-NJV2T55N.js +28 -0
  301. package/dist/node-runtime/install-cli-TH7IJJQQ.js +308 -0
  302. package/dist/node-runtime/interactive-mode-KOM35YF2.js +56 -0
  303. package/dist/node-runtime/interactive-view-U6OILKF3.js +249 -0
  304. package/dist/node-runtime/lsp-manager-3ASUSO4T.js +1104 -0
  305. package/dist/node-runtime/lunr-cron-YJ5UHYRD.js +268 -0
  306. package/dist/node-runtime/main.js +54 -0
  307. package/dist/node-runtime/mcp-auth-flow-QIXHW6QN.js +32 -0
  308. package/dist/node-runtime/mcp-panel-IIGMXQGP.js +501 -0
  309. package/dist/node-runtime/mcp-setup-panel-FEK7663I.js +355 -0
  310. package/dist/node-runtime/memory-cap-3S4XRLNP.js +20 -0
  311. package/dist/node-runtime/model-tiers-NJLHUEGK.js +20 -0
  312. package/dist/node-runtime/openai-search-B3MSNCQA.js +288 -0
  313. package/dist/node-runtime/package-manager-cli-TZZHJCVI.js +749 -0
  314. package/dist/node-runtime/parallel-AI2MNSCU.js +265 -0
  315. package/dist/node-runtime/parser-manager-TQHWYDH7.js +152 -0
  316. package/dist/node-runtime/pdf-extract-IPE6H4HP.js +57 -0
  317. package/dist/node-runtime/perplexity-QVJW3I35.js +12 -0
  318. package/dist/node-runtime/pi-intercom-EEMBGQID.js +2215 -0
  319. package/dist/node-runtime/pi-mcp-adapter-QFB37AVN.js +422 -0
  320. package/dist/node-runtime/pi-ollama-cloud-4VZRMULP.js +1440 -0
  321. package/dist/node-runtime/pi-prompt-template-model-4QT4LLXF.js +3946 -0
  322. package/dist/node-runtime/pi-subagents-7XJ4H53P.js +6023 -0
  323. package/dist/node-runtime/pi-web-access-DPGAVKOA.js +1864 -0
  324. package/dist/node-runtime/print-mode-VWIRFDAC.js +12 -0
  325. package/dist/node-runtime/proxy-modes-HEEFK4KC.js +685 -0
  326. package/dist/node-runtime/rpc-entry.js +62 -0
  327. package/dist/node-runtime/rpc-mode-SJNSOA4G.js +13 -0
  328. package/dist/node-runtime/runtime-bridges-PPHNBFWL.js +14 -0
  329. package/dist/node-runtime/session-manager-MQNBYACL.js +35 -0
  330. package/dist/node-runtime/session-selector-5AZLJS6U.js +14 -0
  331. package/dist/node-runtime/settings-manager-5LF2VQWC.js +21 -0
  332. package/dist/node-runtime/src-Y7JSCK64.js +2407 -0
  333. package/dist/node-runtime/subagent-executor-5RNDEPIJ.js +8483 -0
  334. package/dist/node-runtime/summary-review-YSMXKITO.js +228 -0
  335. package/dist/node-runtime/tavily-WEZFVFP7.js +154 -0
  336. package/dist/node-runtime/timings-UAD5BEAS.js +16 -0
  337. package/dist/node-runtime/tool-renderer-MV5O452K.js +204 -0
  338. package/dist/node-runtime/update-cli-A253SZ7P.js +73 -0
  339. package/dist/node-runtime/v4-5MNC3H7G.js +424 -0
  340. package/dist/node-runtime/video-extract-OYT5WKS5.js +304 -0
  341. package/dist/node-runtime/workspace-index-6DBXSTJ6.js +163 -0
  342. package/dist/node-runtime/youtube-extract-TQYKGFGS.js +264 -0
  343. package/dist/startup/benchmark-request.d.ts +3 -0
  344. package/dist/startup/benchmark-request.d.ts.map +1 -0
  345. package/dist/startup/benchmark-request.js +65 -0
  346. package/dist/startup/benchmark-request.js.map +1 -0
  347. package/dist/startup/interactive-view.d.ts +55 -0
  348. package/dist/startup/interactive-view.d.ts.map +1 -0
  349. package/dist/startup/interactive-view.js +332 -0
  350. package/dist/startup/interactive-view.js.map +1 -0
  351. package/dist/startup/launch-routing.d.ts.map +1 -1
  352. package/dist/startup/launch-routing.js +9 -10
  353. package/dist/startup/launch-routing.js.map +1 -1
  354. package/dist/startup/startup-milestones.d.ts +1 -1
  355. package/dist/startup/startup-milestones.d.ts.map +1 -1
  356. package/dist/startup/startup-milestones.js +3 -2
  357. package/dist/startup/startup-milestones.js.map +1 -1
  358. package/dist/utils/await-with-abort.d.ts +2 -0
  359. package/dist/utils/await-with-abort.d.ts.map +1 -0
  360. package/dist/utils/await-with-abort.js +19 -0
  361. package/dist/utils/await-with-abort.js.map +1 -0
  362. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  363. package/dist/utils/syntax-highlight.js +10 -4
  364. package/dist/utils/syntax-highlight.js.map +1 -1
  365. package/docs/compaction.md +5 -3
  366. package/docs/development.md +5 -1
  367. package/docs/features.md +0 -1
  368. package/docs/interactive-startup.md +98 -0
  369. package/docs/model-catalog.md +29 -0
  370. package/docs/usage.md +0 -1
  371. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  372. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  373. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  374. package/examples/extensions/gondolin/package-lock.json +2 -2
  375. package/examples/extensions/gondolin/package.json +1 -1
  376. package/examples/extensions/sandbox/package-lock.json +2 -2
  377. package/examples/extensions/sandbox/package.json +1 -1
  378. package/examples/extensions/with-deps/package-lock.json +2 -2
  379. package/examples/extensions/with-deps/package.json +1 -1
  380. package/package.json +20 -20
  381. package/dist/core/swarm.d.ts +0 -23
  382. package/dist/core/swarm.d.ts.map +0 -1
  383. package/dist/core/swarm.js +0 -45
  384. package/dist/core/swarm.js.map +0 -1
@@ -0,0 +1,424 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ $brand,
4
+ $input,
5
+ $output,
6
+ NEVER,
7
+ TimePrecision,
8
+ ZodAny,
9
+ ZodArray,
10
+ ZodBase64,
11
+ ZodBase64URL,
12
+ ZodBigInt,
13
+ ZodBigIntFormat,
14
+ ZodBoolean,
15
+ ZodCIDRv4,
16
+ ZodCIDRv6,
17
+ ZodCUID,
18
+ ZodCUID2,
19
+ ZodCatch,
20
+ ZodCustom,
21
+ ZodCustomStringFormat,
22
+ ZodDate,
23
+ ZodDefault,
24
+ ZodDiscriminatedUnion,
25
+ ZodE164,
26
+ ZodEmail,
27
+ ZodEmoji,
28
+ ZodEnum,
29
+ ZodError,
30
+ ZodFile,
31
+ ZodGUID,
32
+ ZodIPv4,
33
+ ZodIPv6,
34
+ ZodISODate,
35
+ ZodISODateTime,
36
+ ZodISODuration,
37
+ ZodISOTime,
38
+ ZodIntersection,
39
+ ZodIssueCode,
40
+ ZodJWT,
41
+ ZodKSUID,
42
+ ZodLazy,
43
+ ZodLiteral,
44
+ ZodMap,
45
+ ZodNaN,
46
+ ZodNanoID,
47
+ ZodNever,
48
+ ZodNonOptional,
49
+ ZodNull,
50
+ ZodNullable,
51
+ ZodNumber,
52
+ ZodNumberFormat,
53
+ ZodObject,
54
+ ZodOptional,
55
+ ZodPipe,
56
+ ZodPrefault,
57
+ ZodPromise,
58
+ ZodReadonly,
59
+ ZodRealError,
60
+ ZodRecord,
61
+ ZodSet,
62
+ ZodString,
63
+ ZodStringFormat,
64
+ ZodSuccess,
65
+ ZodSymbol,
66
+ ZodTemplateLiteral,
67
+ ZodTransform,
68
+ ZodTuple,
69
+ ZodType,
70
+ ZodULID,
71
+ ZodURL,
72
+ ZodUUID,
73
+ ZodUndefined,
74
+ ZodUnion,
75
+ ZodUnknown,
76
+ ZodVoid,
77
+ ZodXID,
78
+ _ZodString,
79
+ _catch,
80
+ _default,
81
+ _endsWith,
82
+ _enum,
83
+ _function,
84
+ _gt,
85
+ _gte,
86
+ _includes,
87
+ _instanceof,
88
+ _length,
89
+ _lowercase,
90
+ _lt,
91
+ _lte,
92
+ _maxLength,
93
+ _maxSize,
94
+ _mime,
95
+ _minLength,
96
+ _minSize,
97
+ _multipleOf,
98
+ _negative,
99
+ _nonnegative,
100
+ _nonpositive,
101
+ _normalize,
102
+ _null,
103
+ _overwrite,
104
+ _positive,
105
+ _property,
106
+ _regex,
107
+ _size,
108
+ _startsWith,
109
+ _toLowerCase,
110
+ _toUpperCase,
111
+ _trim,
112
+ _undefined,
113
+ _uppercase,
114
+ _void,
115
+ any,
116
+ array,
117
+ base64,
118
+ base64url,
119
+ bigint,
120
+ boolean,
121
+ check,
122
+ cidrv4,
123
+ cidrv6,
124
+ clone,
125
+ coerce_exports,
126
+ config,
127
+ core_exports,
128
+ cuid,
129
+ cuid2,
130
+ custom,
131
+ date,
132
+ discriminatedUnion,
133
+ e164,
134
+ email,
135
+ emoji,
136
+ external_exports,
137
+ file,
138
+ flattenError,
139
+ float32,
140
+ float64,
141
+ formatError,
142
+ getErrorMap,
143
+ globalRegistry,
144
+ guid,
145
+ int,
146
+ int32,
147
+ int64,
148
+ intersection,
149
+ ipv4,
150
+ ipv6,
151
+ iso_exports,
152
+ json,
153
+ jwt,
154
+ keyof,
155
+ ksuid,
156
+ lazy,
157
+ literal,
158
+ locales_exports,
159
+ looseObject,
160
+ map,
161
+ nan,
162
+ nanoid,
163
+ nativeEnum,
164
+ never,
165
+ nonoptional,
166
+ nullable,
167
+ nullish,
168
+ number,
169
+ object,
170
+ optional,
171
+ parse,
172
+ parseAsync,
173
+ partialRecord,
174
+ pipe,
175
+ prefault,
176
+ preprocess,
177
+ prettifyError,
178
+ promise,
179
+ readonly,
180
+ record,
181
+ refine,
182
+ regexes_exports,
183
+ registry,
184
+ safeParse2 as safeParse,
185
+ safeParseAsync,
186
+ set,
187
+ setErrorMap,
188
+ strictObject,
189
+ string,
190
+ stringFormat,
191
+ stringbool,
192
+ success,
193
+ superRefine,
194
+ symbol,
195
+ templateLiteral,
196
+ toJSONSchema,
197
+ transform,
198
+ treeifyError,
199
+ tuple,
200
+ uint32,
201
+ uint64,
202
+ ulid,
203
+ union,
204
+ unknown,
205
+ url,
206
+ uuid,
207
+ uuidv4,
208
+ uuidv6,
209
+ uuidv7,
210
+ v4_default,
211
+ xid
212
+ } from "./chunk-BI3DHYCN.js";
213
+ import "./chunk-BRJX2PRC.js";
214
+ export {
215
+ $brand,
216
+ $input,
217
+ $output,
218
+ NEVER,
219
+ TimePrecision,
220
+ ZodAny,
221
+ ZodArray,
222
+ ZodBase64,
223
+ ZodBase64URL,
224
+ ZodBigInt,
225
+ ZodBigIntFormat,
226
+ ZodBoolean,
227
+ ZodCIDRv4,
228
+ ZodCIDRv6,
229
+ ZodCUID,
230
+ ZodCUID2,
231
+ ZodCatch,
232
+ ZodCustom,
233
+ ZodCustomStringFormat,
234
+ ZodDate,
235
+ ZodDefault,
236
+ ZodDiscriminatedUnion,
237
+ ZodE164,
238
+ ZodEmail,
239
+ ZodEmoji,
240
+ ZodEnum,
241
+ ZodError,
242
+ ZodFile,
243
+ ZodGUID,
244
+ ZodIPv4,
245
+ ZodIPv6,
246
+ ZodISODate,
247
+ ZodISODateTime,
248
+ ZodISODuration,
249
+ ZodISOTime,
250
+ ZodIntersection,
251
+ ZodIssueCode,
252
+ ZodJWT,
253
+ ZodKSUID,
254
+ ZodLazy,
255
+ ZodLiteral,
256
+ ZodMap,
257
+ ZodNaN,
258
+ ZodNanoID,
259
+ ZodNever,
260
+ ZodNonOptional,
261
+ ZodNull,
262
+ ZodNullable,
263
+ ZodNumber,
264
+ ZodNumberFormat,
265
+ ZodObject,
266
+ ZodOptional,
267
+ ZodPipe,
268
+ ZodPrefault,
269
+ ZodPromise,
270
+ ZodReadonly,
271
+ ZodRealError,
272
+ ZodRecord,
273
+ ZodSet,
274
+ ZodString,
275
+ ZodStringFormat,
276
+ ZodSuccess,
277
+ ZodSymbol,
278
+ ZodTemplateLiteral,
279
+ ZodTransform,
280
+ ZodTuple,
281
+ ZodType,
282
+ ZodULID,
283
+ ZodURL,
284
+ ZodUUID,
285
+ ZodUndefined,
286
+ ZodUnion,
287
+ ZodUnknown,
288
+ ZodVoid,
289
+ ZodXID,
290
+ _ZodString,
291
+ _default,
292
+ any,
293
+ array,
294
+ base64,
295
+ base64url,
296
+ bigint,
297
+ boolean,
298
+ _catch as catch,
299
+ check,
300
+ cidrv4,
301
+ cidrv6,
302
+ clone,
303
+ coerce_exports as coerce,
304
+ config,
305
+ core_exports as core,
306
+ cuid,
307
+ cuid2,
308
+ custom,
309
+ date,
310
+ v4_default as default,
311
+ discriminatedUnion,
312
+ e164,
313
+ email,
314
+ emoji,
315
+ _endsWith as endsWith,
316
+ _enum as enum,
317
+ file,
318
+ flattenError,
319
+ float32,
320
+ float64,
321
+ formatError,
322
+ _function as function,
323
+ getErrorMap,
324
+ globalRegistry,
325
+ _gt as gt,
326
+ _gte as gte,
327
+ guid,
328
+ _includes as includes,
329
+ _instanceof as instanceof,
330
+ int,
331
+ int32,
332
+ int64,
333
+ intersection,
334
+ ipv4,
335
+ ipv6,
336
+ iso_exports as iso,
337
+ json,
338
+ jwt,
339
+ keyof,
340
+ ksuid,
341
+ lazy,
342
+ _length as length,
343
+ literal,
344
+ locales_exports as locales,
345
+ looseObject,
346
+ _lowercase as lowercase,
347
+ _lt as lt,
348
+ _lte as lte,
349
+ map,
350
+ _maxLength as maxLength,
351
+ _maxSize as maxSize,
352
+ _mime as mime,
353
+ _minLength as minLength,
354
+ _minSize as minSize,
355
+ _multipleOf as multipleOf,
356
+ nan,
357
+ nanoid,
358
+ nativeEnum,
359
+ _negative as negative,
360
+ never,
361
+ _nonnegative as nonnegative,
362
+ nonoptional,
363
+ _nonpositive as nonpositive,
364
+ _normalize as normalize,
365
+ _null as null,
366
+ nullable,
367
+ nullish,
368
+ number,
369
+ object,
370
+ optional,
371
+ _overwrite as overwrite,
372
+ parse,
373
+ parseAsync,
374
+ partialRecord,
375
+ pipe,
376
+ _positive as positive,
377
+ prefault,
378
+ preprocess,
379
+ prettifyError,
380
+ promise,
381
+ _property as property,
382
+ readonly,
383
+ record,
384
+ refine,
385
+ _regex as regex,
386
+ regexes_exports as regexes,
387
+ registry,
388
+ safeParse,
389
+ safeParseAsync,
390
+ set,
391
+ setErrorMap,
392
+ _size as size,
393
+ _startsWith as startsWith,
394
+ strictObject,
395
+ string,
396
+ stringFormat,
397
+ stringbool,
398
+ success,
399
+ superRefine,
400
+ symbol,
401
+ templateLiteral,
402
+ toJSONSchema,
403
+ _toLowerCase as toLowerCase,
404
+ _toUpperCase as toUpperCase,
405
+ transform,
406
+ treeifyError,
407
+ _trim as trim,
408
+ tuple,
409
+ uint32,
410
+ uint64,
411
+ ulid,
412
+ _undefined as undefined,
413
+ union,
414
+ unknown,
415
+ _uppercase as uppercase,
416
+ url,
417
+ uuid,
418
+ uuidv4,
419
+ uuidv6,
420
+ uuidv7,
421
+ _void as void,
422
+ xid,
423
+ external_exports as z
424
+ };
@@ -0,0 +1,304 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ isGeminiWebAvailable,
4
+ queryWithCookies
5
+ } from "./chunk-XTHQ7XR7.js";
6
+ import "./chunk-DMMTJQMQ.js";
7
+ import {
8
+ API_BASE,
9
+ getApiKey,
10
+ queryGeminiApiWithVideo
11
+ } from "./chunk-3WFAEVKS.js";
12
+ import {
13
+ extractHeadingTitle
14
+ } from "./chunk-WJVFOIB5.js";
15
+ import "./chunk-7NBZ5P7I.js";
16
+ import {
17
+ activityMonitor
18
+ } from "./chunk-DAPBPCBP.js";
19
+ import {
20
+ getWebSearchConfigPath,
21
+ mapFfmpegError,
22
+ readExecError,
23
+ trimErrorText
24
+ } from "./chunk-VRB2IYGG.js";
25
+ import "./chunk-BRJX2PRC.js";
26
+
27
+ // packages/coding-agent/dist/builtin-extensions/pi-web-access/video-extract.js
28
+ import { execFileSync } from "node:child_process";
29
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
30
+ import { readFile } from "node:fs/promises";
31
+ import { resolve, extname, basename, join, dirname } from "node:path";
32
+ var CONFIG_PATH = getWebSearchConfigPath(), UPLOAD_BASE = "https://generativelanguage.googleapis.com/upload/v1beta", DEFAULT_VIDEO_PROMPT = `Extract the complete content of this video. Include:
33
+ 1. Video title (infer from content if not explicit), duration
34
+ 2. A brief summary (2-3 sentences)
35
+ 3. Full transcript with timestamps
36
+ 4. Descriptions of any code, terminal commands, diagrams, slides, or UI shown on screen
37
+
38
+ Format as markdown.`, VIDEO_EXTENSIONS = {
39
+ ".mp4": "video/mp4",
40
+ ".mov": "video/quicktime",
41
+ ".webm": "video/webm",
42
+ ".avi": "video/x-msvideo",
43
+ ".mpeg": "video/mpeg",
44
+ ".mpg": "video/mpeg",
45
+ ".wmv": "video/x-ms-wmv",
46
+ ".flv": "video/x-flv",
47
+ ".3gp": "video/3gpp",
48
+ ".3gpp": "video/3gpp"
49
+ };
50
+ function shouldRethrow(err) {
51
+ return (err instanceof Error ? err.message : String(err)).startsWith("Failed to parse ");
52
+ }
53
+ function normalizePreferredModel(value, fallback) {
54
+ if (typeof value != "string")
55
+ return fallback;
56
+ let normalized = value.trim();
57
+ return normalized.length > 0 ? normalized : fallback;
58
+ }
59
+ function normalizeEnabled(value, fallback) {
60
+ return typeof value == "boolean" ? value : fallback;
61
+ }
62
+ function normalizeMaxSizeMB(value, fallback) {
63
+ return typeof value != "number" || !Number.isFinite(value) ? fallback : value > 0 ? value : fallback;
64
+ }
65
+ var VIDEO_CONFIG_DEFAULTS = {
66
+ enabled: !0,
67
+ preferredModel: "gemini-3-flash-preview",
68
+ maxSizeMB: 50
69
+ }, cachedVideoConfig = null;
70
+ function loadVideoConfig() {
71
+ if (cachedVideoConfig)
72
+ return cachedVideoConfig;
73
+ if (!existsSync(CONFIG_PATH))
74
+ return cachedVideoConfig = { ...VIDEO_CONFIG_DEFAULTS }, cachedVideoConfig;
75
+ let rawText = readFileSync(CONFIG_PATH, "utf-8"), raw;
76
+ try {
77
+ raw = JSON.parse(rawText);
78
+ } catch (err) {
79
+ let message = err instanceof Error ? err.message : String(err);
80
+ throw new Error(`Failed to parse ${CONFIG_PATH}: ${message}`);
81
+ }
82
+ let v = raw.video ?? {};
83
+ return cachedVideoConfig = {
84
+ enabled: normalizeEnabled(v.enabled, VIDEO_CONFIG_DEFAULTS.enabled),
85
+ preferredModel: normalizePreferredModel(v.preferredModel, VIDEO_CONFIG_DEFAULTS.preferredModel),
86
+ maxSizeMB: normalizeMaxSizeMB(v.maxSizeMB, VIDEO_CONFIG_DEFAULTS.maxSizeMB)
87
+ }, cachedVideoConfig;
88
+ }
89
+ function isVideoFile(input) {
90
+ let config = loadVideoConfig();
91
+ if (!config.enabled || !(input.startsWith("/") || input.startsWith("./") || input.startsWith("../") || input.startsWith("file://")))
92
+ return null;
93
+ let filePath = input;
94
+ if (input.startsWith("file://"))
95
+ try {
96
+ filePath = decodeURIComponent(new URL(input).pathname);
97
+ } catch {
98
+ return null;
99
+ }
100
+ let ext = extname(filePath).toLowerCase(), mimeType = VIDEO_EXTENSIONS[ext];
101
+ if (!mimeType)
102
+ return null;
103
+ let absolutePath = resolveFilePath(filePath);
104
+ if (!absolutePath)
105
+ return null;
106
+ let stat;
107
+ try {
108
+ stat = statSync(absolutePath);
109
+ } catch {
110
+ return null;
111
+ }
112
+ if (!stat.isFile())
113
+ return null;
114
+ let maxBytes = config.maxSizeMB * 1024 * 1024;
115
+ return stat.size > maxBytes ? null : { absolutePath, mimeType, sizeBytes: stat.size };
116
+ }
117
+ function resolveFilePath(filePath) {
118
+ let absolutePath = resolve(filePath);
119
+ if (existsSync(absolutePath))
120
+ return absolutePath;
121
+ let dir = dirname(absolutePath), base = basename(absolutePath);
122
+ if (!existsSync(dir))
123
+ return null;
124
+ try {
125
+ let normalizedBase = normalizeSpaces(base), match = readdirSync(dir).find((f) => normalizeSpaces(f) === normalizedBase);
126
+ return match ? join(dir, match) : null;
127
+ } catch {
128
+ return null;
129
+ }
130
+ }
131
+ function normalizeSpaces(s) {
132
+ return s.replace(/[\u00A0\u2000-\u200B\u202F\u205F\u3000\uFEFF]/g, " ");
133
+ }
134
+ async function extractVideo(info, signal, options) {
135
+ let config = loadVideoConfig(), effectivePrompt = options?.prompt ?? DEFAULT_VIDEO_PROMPT, effectiveModel = options?.model ?? config.preferredModel, displayName = basename(info.absolutePath), activityId = activityMonitor.logStart({ type: "fetch", url: `video:${displayName}` }), result = await tryVideoGeminiApi(info, effectivePrompt, effectiveModel, signal) ?? await tryVideoGeminiWeb(info, effectivePrompt, effectiveModel, signal);
136
+ if (result) {
137
+ let thumbnail = await extractVideoFrame(info.absolutePath);
138
+ return "error" in thumbnail || (result.thumbnail = thumbnail), activityMonitor.logComplete(activityId, 200), result;
139
+ }
140
+ return signal?.aborted ? (activityMonitor.logComplete(activityId, 0), null) : (activityMonitor.logError(activityId, "all video extraction paths failed"), null);
141
+ }
142
+ function mapFfprobeError(err) {
143
+ let { code, stderr, message } = readExecError(err);
144
+ if (code === "ENOENT")
145
+ return "ffprobe is not installed. Install ffmpeg which includes ffprobe";
146
+ let snippet = trimErrorText(stderr || message);
147
+ return snippet ? `ffprobe failed: ${snippet}` : "ffprobe failed";
148
+ }
149
+ async function extractVideoFrame(filePath, seconds = 1) {
150
+ try {
151
+ let buffer = execFileSync("ffmpeg", [
152
+ "-ss",
153
+ String(seconds),
154
+ "-i",
155
+ filePath,
156
+ "-frames:v",
157
+ "1",
158
+ "-f",
159
+ "image2pipe",
160
+ "-vcodec",
161
+ "mjpeg",
162
+ "pipe:1"
163
+ ], { maxBuffer: 5242880, timeout: 1e4, stdio: ["pipe", "pipe", "pipe"] });
164
+ return buffer.length === 0 ? { error: "ffmpeg failed: empty output" } : { data: buffer.toString("base64"), mimeType: "image/jpeg" };
165
+ } catch (err) {
166
+ return { error: mapFfmpegError(err) };
167
+ }
168
+ }
169
+ async function getLocalVideoDuration(filePath) {
170
+ try {
171
+ let output = execFileSync("ffprobe", [
172
+ "-v",
173
+ "quiet",
174
+ "-show_entries",
175
+ "format=duration",
176
+ "-of",
177
+ "csv=p=0",
178
+ filePath
179
+ ], { timeout: 1e4, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim(), duration = Number.parseFloat(output);
180
+ return Number.isFinite(duration) ? duration : { error: "ffprobe failed: invalid duration output" };
181
+ } catch (err) {
182
+ return { error: mapFfprobeError(err) };
183
+ }
184
+ }
185
+ async function tryVideoGeminiWeb(info, prompt, model, signal) {
186
+ try {
187
+ let cookies = await isGeminiWebAvailable();
188
+ if (!cookies || signal?.aborted)
189
+ return null;
190
+ let text = await queryWithCookies(prompt, cookies, {
191
+ files: [info.absolutePath],
192
+ model,
193
+ signal,
194
+ timeoutMs: 18e4
195
+ });
196
+ return {
197
+ url: info.absolutePath,
198
+ title: extractVideoTitle(text, info.absolutePath),
199
+ content: text,
200
+ error: null
201
+ };
202
+ } catch (err) {
203
+ if (shouldRethrow(err))
204
+ throw err;
205
+ return null;
206
+ }
207
+ }
208
+ async function tryVideoGeminiApi(info, prompt, model, signal) {
209
+ let apiKey = getApiKey();
210
+ if (!apiKey || signal?.aborted)
211
+ return null;
212
+ let fileName = null;
213
+ try {
214
+ let uploaded = await uploadToFilesApi(info, apiKey, signal);
215
+ fileName = uploaded.name, await pollFileState(fileName, apiKey, signal, 12e4);
216
+ let text = await queryGeminiApiWithVideo(prompt, uploaded.uri, {
217
+ model,
218
+ mimeType: info.mimeType,
219
+ signal,
220
+ timeoutMs: 12e4
221
+ });
222
+ return {
223
+ url: info.absolutePath,
224
+ title: extractVideoTitle(text, info.absolutePath),
225
+ content: text,
226
+ error: null
227
+ };
228
+ } catch (err) {
229
+ if (shouldRethrow(err))
230
+ throw err;
231
+ return null;
232
+ } finally {
233
+ fileName && deleteGeminiFile(fileName, apiKey);
234
+ }
235
+ }
236
+ async function uploadToFilesApi(info, apiKey, signal) {
237
+ let displayName = basename(info.absolutePath), initRes = await fetch(`${UPLOAD_BASE}/files`, {
238
+ method: "POST",
239
+ headers: {
240
+ "x-goog-api-key": apiKey,
241
+ "X-Goog-Upload-Protocol": "resumable",
242
+ "X-Goog-Upload-Command": "start",
243
+ "X-Goog-Upload-Header-Content-Length": String(info.sizeBytes),
244
+ "X-Goog-Upload-Header-Content-Type": info.mimeType,
245
+ "Content-Type": "application/json"
246
+ },
247
+ body: JSON.stringify({ file: { display_name: displayName } }),
248
+ signal
249
+ });
250
+ if (!initRes.ok) {
251
+ let text = await initRes.text();
252
+ throw new Error(`File upload init failed: ${initRes.status} (${text.slice(0, 200)})`);
253
+ }
254
+ let uploadUrl = initRes.headers.get("x-goog-upload-url");
255
+ if (!uploadUrl)
256
+ throw new Error("No upload URL in response headers");
257
+ let fileData = await readFile(info.absolutePath), uploadRes = await fetch(uploadUrl, {
258
+ method: "PUT",
259
+ headers: {
260
+ "Content-Length": String(info.sizeBytes),
261
+ "X-Goog-Upload-Offset": "0",
262
+ "X-Goog-Upload-Command": "upload, finalize"
263
+ },
264
+ body: fileData,
265
+ signal
266
+ });
267
+ if (!uploadRes.ok) {
268
+ let text = await uploadRes.text();
269
+ throw new Error(`File upload failed: ${uploadRes.status} (${text.slice(0, 200)})`);
270
+ }
271
+ return (await uploadRes.json()).file;
272
+ }
273
+ async function pollFileState(fileName, apiKey, signal, timeoutMs = 12e4) {
274
+ let deadline = Date.now() + timeoutMs;
275
+ for (; Date.now() < deadline; ) {
276
+ if (signal?.aborted)
277
+ throw new Error("Aborted");
278
+ let res = await fetch(`${API_BASE}/${fileName}?key=${apiKey}`, { signal });
279
+ if (!res.ok)
280
+ throw new Error(`File state check failed: ${res.status}`);
281
+ let data = await res.json();
282
+ if (data.state === "ACTIVE")
283
+ return;
284
+ if (data.state === "FAILED")
285
+ throw new Error("File processing failed");
286
+ await new Promise((r) => setTimeout(r, 5e3));
287
+ }
288
+ throw new Error("File processing timed out");
289
+ }
290
+ function deleteGeminiFile(fileName, apiKey) {
291
+ fetch(`${API_BASE}/${fileName}?key=${apiKey}`, { method: "DELETE" }).catch((err) => {
292
+ let message = err instanceof Error ? err.message : String(err);
293
+ console.error(`Failed to delete Gemini file ${fileName}: ${message}`);
294
+ });
295
+ }
296
+ function extractVideoTitle(text, filePath) {
297
+ return extractHeadingTitle(text) ?? basename(filePath, extname(filePath));
298
+ }
299
+ export {
300
+ extractVideo,
301
+ extractVideoFrame,
302
+ getLocalVideoDuration,
303
+ isVideoFile
304
+ };