@ashx-j/lunr-dev 0.2.13-dev.8.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 (339) 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/publication.json +12 -12
  87. package/dist/cli-runtime.d.ts +3 -0
  88. package/dist/cli-runtime.d.ts.map +1 -0
  89. package/dist/cli-runtime.js +73 -0
  90. package/dist/cli-runtime.js.map +1 -0
  91. package/dist/cli.d.ts.map +1 -1
  92. package/dist/cli.js +14 -53
  93. package/dist/cli.js.map +1 -1
  94. package/dist/config.d.ts +1 -0
  95. package/dist/config.d.ts.map +1 -1
  96. package/dist/config.js +1 -0
  97. package/dist/config.js.map +1 -1
  98. package/dist/core/agent-session.d.ts +3 -0
  99. package/dist/core/agent-session.d.ts.map +1 -1
  100. package/dist/core/agent-session.js +56 -12
  101. package/dist/core/agent-session.js.map +1 -1
  102. package/dist/core/compaction/compaction.d.ts.map +1 -1
  103. package/dist/core/compaction/compaction.js +10 -5
  104. package/dist/core/compaction/compaction.js.map +1 -1
  105. package/dist/core/extensions/host-static.d.ts.map +1 -1
  106. package/dist/core/extensions/host-static.js +34 -12
  107. package/dist/core/extensions/host-static.js.map +1 -1
  108. package/dist/core/extensions/loader.d.ts +1 -2
  109. package/dist/core/extensions/loader.d.ts.map +1 -1
  110. package/dist/core/extensions/loader.js +10 -64
  111. package/dist/core/extensions/loader.js.map +1 -1
  112. package/dist/core/extensions/types.d.ts +2 -2
  113. package/dist/core/extensions/types.d.ts.map +1 -1
  114. package/dist/core/extensions/types.js.map +1 -1
  115. package/dist/core/footer-data-provider.d.ts.map +1 -1
  116. package/dist/core/footer-data-provider.js +2 -0
  117. package/dist/core/footer-data-provider.js.map +1 -1
  118. package/dist/core/permissions.d.ts +0 -2
  119. package/dist/core/permissions.d.ts.map +1 -1
  120. package/dist/core/permissions.js +10 -18
  121. package/dist/core/permissions.js.map +1 -1
  122. package/dist/core/sdk.d.ts +1 -1
  123. package/dist/core/sdk.d.ts.map +1 -1
  124. package/dist/core/sdk.js +1 -1
  125. package/dist/core/sdk.js.map +1 -1
  126. package/dist/core/slash-commands.d.ts.map +1 -1
  127. package/dist/core/slash-commands.js +0 -1
  128. package/dist/core/slash-commands.js.map +1 -1
  129. package/dist/core/timings.d.ts +2 -1
  130. package/dist/core/timings.d.ts.map +1 -1
  131. package/dist/core/timings.js +17 -2
  132. package/dist/core/timings.js.map +1 -1
  133. package/dist/gateway/commands.d.ts +1 -1
  134. package/dist/gateway/commands.d.ts.map +1 -1
  135. package/dist/gateway/commands.js +1 -18
  136. package/dist/gateway/commands.js.map +1 -1
  137. package/dist/main.d.ts +2 -2
  138. package/dist/main.d.ts.map +1 -1
  139. package/dist/main.js +57 -48
  140. package/dist/main.js.map +1 -1
  141. package/dist/modes/interactive/interactive-mode.d.ts +12 -21
  142. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  143. package/dist/modes/interactive/interactive-mode.js +120 -144
  144. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  145. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  146. package/dist/modes/interactive/theme/theme.js +95 -84
  147. package/dist/modes/interactive/theme/theme.js.map +1 -1
  148. package/dist/node-runtime/agent-session-services-IFJMSX7Z.js +36 -0
  149. package/dist/node-runtime/benchmark-request-UC7PD3V3.js +57 -0
  150. package/dist/node-runtime/brave-UWDA3I22.js +143 -0
  151. package/dist/node-runtime/builtin-extensions-LYZ3BFWQ.js +28 -0
  152. package/dist/node-runtime/chunk-2QKLKMKC.js +173 -0
  153. package/dist/node-runtime/chunk-3GHXVUAK.js +21 -0
  154. package/dist/node-runtime/chunk-3RCWXWAY.js +466 -0
  155. package/dist/node-runtime/chunk-3WFAEVKS.js +115 -0
  156. package/dist/node-runtime/chunk-3X3KZKMI.js +49 -0
  157. package/dist/node-runtime/chunk-4HXHDDCF.js +16 -0
  158. package/dist/node-runtime/chunk-4TLO4PO2.js +3427 -0
  159. package/dist/node-runtime/chunk-4ZWGEEAS.js +69 -0
  160. package/dist/node-runtime/chunk-53YJI7JU.js +137 -0
  161. package/dist/node-runtime/chunk-5P7PZMRU.js +610 -0
  162. package/dist/node-runtime/chunk-7N3YHTYF.js +26 -0
  163. package/dist/node-runtime/chunk-7NBZ5P7I.js +24 -0
  164. package/dist/node-runtime/chunk-A2KQXUJD.js +105 -0
  165. package/dist/node-runtime/chunk-AD6VXAO7.js +342 -0
  166. package/dist/node-runtime/chunk-AHSTJBIB.js +64 -0
  167. package/dist/node-runtime/chunk-AJX357CL.js +20211 -0
  168. package/dist/node-runtime/chunk-ARC4KOTI.js +11178 -0
  169. package/dist/node-runtime/chunk-AUXVGBO4.js +19 -0
  170. package/dist/node-runtime/chunk-AY6CAJSL.js +30 -0
  171. package/dist/node-runtime/chunk-BHO7O6E5.js +296 -0
  172. package/dist/node-runtime/chunk-BI3DHYCN.js +8845 -0
  173. package/dist/node-runtime/chunk-BR7YDUKA.js +109 -0
  174. package/dist/node-runtime/chunk-BRJX2PRC.js +53 -0
  175. package/dist/node-runtime/chunk-C4O2RSQQ.js +37 -0
  176. package/dist/node-runtime/chunk-CCZJ3PYY.js +17 -0
  177. package/dist/node-runtime/chunk-CDFZEWPU.js +8388 -0
  178. package/dist/node-runtime/chunk-CGBXPL3E.js +1171 -0
  179. package/dist/node-runtime/chunk-CJECDQKP.js +19 -0
  180. package/dist/node-runtime/chunk-DAPBPCBP.js +53 -0
  181. package/dist/node-runtime/chunk-DDGMHUOW.js +305 -0
  182. package/dist/node-runtime/chunk-DMMTJQMQ.js +43 -0
  183. package/dist/node-runtime/chunk-DVGWF6A2.js +1180 -0
  184. package/dist/node-runtime/chunk-ECD5L7YI.js +1369 -0
  185. package/dist/node-runtime/chunk-EDBJNRSM.js +46 -0
  186. package/dist/node-runtime/chunk-F4VQFJI2.js +1269 -0
  187. package/dist/node-runtime/chunk-FVDOXRUD.js +96 -0
  188. package/dist/node-runtime/chunk-GZQHMEWL.js +126 -0
  189. package/dist/node-runtime/chunk-H2EOZYMP.js +57 -0
  190. package/dist/node-runtime/chunk-HQCKFM2O.js +56 -0
  191. package/dist/node-runtime/chunk-HYHJIRDW.js +19 -0
  192. package/dist/node-runtime/chunk-I6R76AG7.js +22 -0
  193. package/dist/node-runtime/chunk-IPA627GP.js +296 -0
  194. package/dist/node-runtime/chunk-JHYKXIMM.js +378 -0
  195. package/dist/node-runtime/chunk-KKSIVROT.js +88 -0
  196. package/dist/node-runtime/chunk-LZAW4ZX3.js +633 -0
  197. package/dist/node-runtime/chunk-M3LZLQW2.js +98 -0
  198. package/dist/node-runtime/chunk-MGWCVY6Y.js +47 -0
  199. package/dist/node-runtime/chunk-MJQDX3BA.js +72 -0
  200. package/dist/node-runtime/chunk-MKKH27PH.js +8956 -0
  201. package/dist/node-runtime/chunk-MX3GJNXJ.js +986 -0
  202. package/dist/node-runtime/chunk-N77MY65L.js +966 -0
  203. package/dist/node-runtime/chunk-NUIFPZWX.js +209 -0
  204. package/dist/node-runtime/chunk-OBMWP3I5.js +68 -0
  205. package/dist/node-runtime/chunk-OR4L3IB2.js +42 -0
  206. package/dist/node-runtime/chunk-PBC2Y6GS.js +903 -0
  207. package/dist/node-runtime/chunk-PCGNAY2O.js +1324 -0
  208. package/dist/node-runtime/chunk-PCIGF2XK.js +250 -0
  209. package/dist/node-runtime/chunk-PGAJ5MO5.js +7558 -0
  210. package/dist/node-runtime/chunk-PL6JKXWI.js +3622 -0
  211. package/dist/node-runtime/chunk-PVCDKGR6.js +55 -0
  212. package/dist/node-runtime/chunk-Q4Q6D4IY.js +364 -0
  213. package/dist/node-runtime/chunk-Q5ZU2VRT.js +83 -0
  214. package/dist/node-runtime/chunk-QFWG2RVL.js +5477 -0
  215. package/dist/node-runtime/chunk-QH42CDX3.js +9451 -0
  216. package/dist/node-runtime/chunk-RQ2Q5IYR.js +72 -0
  217. package/dist/node-runtime/chunk-RQ5DNUNG.js +429 -0
  218. package/dist/node-runtime/chunk-RRIZE6QQ.js +17 -0
  219. package/dist/node-runtime/chunk-SN6G4OU6.js +4753 -0
  220. package/dist/node-runtime/chunk-SWSN6HAB.js +53 -0
  221. package/dist/node-runtime/chunk-TQNSPERU.js +949 -0
  222. package/dist/node-runtime/chunk-VRB2IYGG.js +53 -0
  223. package/dist/node-runtime/chunk-VSELYKWU.js +772 -0
  224. package/dist/node-runtime/chunk-W3CVH5RX.js +62 -0
  225. package/dist/node-runtime/chunk-WJVFOIB5.js +24921 -0
  226. package/dist/node-runtime/chunk-WOVTOV5P.js +5653 -0
  227. package/dist/node-runtime/chunk-XBWPBZBN.js +125 -0
  228. package/dist/node-runtime/chunk-XTHQ7XR7.js +509 -0
  229. package/dist/node-runtime/chunk-YF63P5ZT.js +864 -0
  230. package/dist/node-runtime/chunk-YSKSB3BJ.js +295 -0
  231. package/dist/node-runtime/chunk-ZCHMJ34K.js +130 -0
  232. package/dist/node-runtime/chunk-ZKMFUD3Q.js +2834 -0
  233. package/dist/node-runtime/cli-runtime.js +81 -0
  234. package/dist/node-runtime/clipboard-OZ63BBC6.js +12 -0
  235. package/dist/node-runtime/clipboard-image-7QR6GXVA.js +13 -0
  236. package/dist/node-runtime/command-L3LAHDIH.js +13 -0
  237. package/dist/node-runtime/commands-RL5YBW5I.js +291 -0
  238. package/dist/node-runtime/config-FMEOZSWE.js +77 -0
  239. package/dist/node-runtime/curator-server-XCM43VEF.js +3816 -0
  240. package/dist/node-runtime/customize-XEXL2DGQ.js +12 -0
  241. package/dist/node-runtime/direct-tool-executor-JVDXTO7A.js +188 -0
  242. package/dist/node-runtime/exa-LL64QZR2.js +329 -0
  243. package/dist/node-runtime/export-html-KR26FOUZ.js +150 -0
  244. package/dist/node-runtime/extension-input-RV5N6APL.js +14 -0
  245. package/dist/node-runtime/extension-selector-CPD5LWDD.js +14 -0
  246. package/dist/node-runtime/extract-XLQSJN4V.js +17 -0
  247. package/dist/node-runtime/file-sync-HCOP2QVF.js +117 -0
  248. package/dist/node-runtime/gateway-X2TI5X7F.js +2484 -0
  249. package/dist/node-runtime/gemini-api-QE7ANVDZ.js +29 -0
  250. package/dist/node-runtime/gemini-search-U7SUMPQA.js +330 -0
  251. package/dist/node-runtime/gemini-url-context-PXWCBQHK.js +103 -0
  252. package/dist/node-runtime/gemini-web-MM446SEH.js +14 -0
  253. package/dist/node-runtime/github-extract-F64RZOEA.js +619 -0
  254. package/dist/node-runtime/goal-CZQ7FFQJ.js +1831 -0
  255. package/dist/node-runtime/index.js +859 -0
  256. package/dist/node-runtime/init-NJV2T55N.js +28 -0
  257. package/dist/node-runtime/install-cli-TH7IJJQQ.js +308 -0
  258. package/dist/node-runtime/interactive-mode-KOM35YF2.js +56 -0
  259. package/dist/node-runtime/interactive-view-U6OILKF3.js +249 -0
  260. package/dist/node-runtime/lsp-manager-3ASUSO4T.js +1104 -0
  261. package/dist/node-runtime/lunr-cron-YJ5UHYRD.js +268 -0
  262. package/dist/node-runtime/main.js +54 -0
  263. package/dist/node-runtime/mcp-auth-flow-QIXHW6QN.js +32 -0
  264. package/dist/node-runtime/mcp-panel-IIGMXQGP.js +501 -0
  265. package/dist/node-runtime/mcp-setup-panel-FEK7663I.js +355 -0
  266. package/dist/node-runtime/memory-cap-3S4XRLNP.js +20 -0
  267. package/dist/node-runtime/model-tiers-NJLHUEGK.js +20 -0
  268. package/dist/node-runtime/openai-search-B3MSNCQA.js +288 -0
  269. package/dist/node-runtime/package-manager-cli-TZZHJCVI.js +749 -0
  270. package/dist/node-runtime/parallel-AI2MNSCU.js +265 -0
  271. package/dist/node-runtime/parser-manager-TQHWYDH7.js +152 -0
  272. package/dist/node-runtime/pdf-extract-IPE6H4HP.js +57 -0
  273. package/dist/node-runtime/perplexity-QVJW3I35.js +12 -0
  274. package/dist/node-runtime/pi-intercom-EEMBGQID.js +2215 -0
  275. package/dist/node-runtime/pi-mcp-adapter-QFB37AVN.js +422 -0
  276. package/dist/node-runtime/pi-ollama-cloud-4VZRMULP.js +1440 -0
  277. package/dist/node-runtime/pi-prompt-template-model-4QT4LLXF.js +3946 -0
  278. package/dist/node-runtime/pi-subagents-7XJ4H53P.js +6023 -0
  279. package/dist/node-runtime/pi-web-access-DPGAVKOA.js +1864 -0
  280. package/dist/node-runtime/print-mode-VWIRFDAC.js +12 -0
  281. package/dist/node-runtime/proxy-modes-HEEFK4KC.js +685 -0
  282. package/dist/node-runtime/rpc-entry.js +62 -0
  283. package/dist/node-runtime/rpc-mode-SJNSOA4G.js +13 -0
  284. package/dist/node-runtime/runtime-bridges-PPHNBFWL.js +14 -0
  285. package/dist/node-runtime/session-manager-MQNBYACL.js +35 -0
  286. package/dist/node-runtime/session-selector-5AZLJS6U.js +14 -0
  287. package/dist/node-runtime/settings-manager-5LF2VQWC.js +21 -0
  288. package/dist/node-runtime/src-Y7JSCK64.js +2407 -0
  289. package/dist/node-runtime/subagent-executor-5RNDEPIJ.js +8483 -0
  290. package/dist/node-runtime/summary-review-YSMXKITO.js +228 -0
  291. package/dist/node-runtime/tavily-WEZFVFP7.js +154 -0
  292. package/dist/node-runtime/timings-UAD5BEAS.js +16 -0
  293. package/dist/node-runtime/tool-renderer-MV5O452K.js +204 -0
  294. package/dist/node-runtime/update-cli-A253SZ7P.js +73 -0
  295. package/dist/node-runtime/v4-5MNC3H7G.js +424 -0
  296. package/dist/node-runtime/video-extract-OYT5WKS5.js +304 -0
  297. package/dist/node-runtime/workspace-index-6DBXSTJ6.js +163 -0
  298. package/dist/node-runtime/youtube-extract-TQYKGFGS.js +264 -0
  299. package/dist/startup/benchmark-request.d.ts +3 -0
  300. package/dist/startup/benchmark-request.d.ts.map +1 -0
  301. package/dist/startup/benchmark-request.js +65 -0
  302. package/dist/startup/benchmark-request.js.map +1 -0
  303. package/dist/startup/interactive-view.d.ts +55 -0
  304. package/dist/startup/interactive-view.d.ts.map +1 -0
  305. package/dist/startup/interactive-view.js +332 -0
  306. package/dist/startup/interactive-view.js.map +1 -0
  307. package/dist/startup/launch-routing.d.ts.map +1 -1
  308. package/dist/startup/launch-routing.js +9 -10
  309. package/dist/startup/launch-routing.js.map +1 -1
  310. package/dist/startup/startup-milestones.d.ts +1 -1
  311. package/dist/startup/startup-milestones.d.ts.map +1 -1
  312. package/dist/startup/startup-milestones.js +3 -2
  313. package/dist/startup/startup-milestones.js.map +1 -1
  314. package/dist/utils/await-with-abort.d.ts +2 -0
  315. package/dist/utils/await-with-abort.d.ts.map +1 -0
  316. package/dist/utils/await-with-abort.js +19 -0
  317. package/dist/utils/await-with-abort.js.map +1 -0
  318. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  319. package/dist/utils/syntax-highlight.js +10 -4
  320. package/dist/utils/syntax-highlight.js.map +1 -1
  321. package/docs/compaction.md +5 -3
  322. package/docs/development.md +5 -1
  323. package/docs/features.md +0 -1
  324. package/docs/interactive-startup.md +98 -0
  325. package/docs/usage.md +0 -1
  326. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  327. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  328. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  329. package/examples/extensions/gondolin/package-lock.json +2 -2
  330. package/examples/extensions/gondolin/package.json +1 -1
  331. package/examples/extensions/sandbox/package-lock.json +2 -2
  332. package/examples/extensions/sandbox/package.json +1 -1
  333. package/examples/extensions/with-deps/package-lock.json +2 -2
  334. package/examples/extensions/with-deps/package.json +1 -1
  335. package/package.json +20 -20
  336. package/dist/core/swarm.d.ts +0 -23
  337. package/dist/core/swarm.d.ts.map +0 -1
  338. package/dist/core/swarm.js +0 -45
  339. package/dist/core/swarm.js.map +0 -1
@@ -0,0 +1,1440 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ getAgentDir
4
+ } from "./chunk-PCIGF2XK.js";
5
+ import "./chunk-Q4Q6D4IY.js";
6
+ import "./chunk-BRJX2PRC.js";
7
+
8
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/models.generated.js
9
+ var GENERATED_MODELS = [
10
+ {
11
+ id: "deepseek-v3.1:671b",
12
+ name: "deepseek-v3.1:671b",
13
+ compat: {
14
+ maxTokensField: "max_tokens",
15
+ openRouterRouting: {},
16
+ requiresAssistantAfterToolResult: !1,
17
+ requiresReasoningContentOnAssistantMessages: !1,
18
+ requiresThinkingAsText: !1,
19
+ requiresToolResultName: !1,
20
+ sendSessionAffinityHeaders: !1,
21
+ supportsDeveloperRole: !1,
22
+ supportsLongCacheRetention: !1,
23
+ supportsReasoningEffort: !0,
24
+ supportsStore: !1,
25
+ supportsStrictMode: !1,
26
+ supportsUsageInStreaming: !0,
27
+ thinkingFormat: "openai",
28
+ vercelGatewayRouting: {},
29
+ zaiToolStream: !1
30
+ },
31
+ contextWindow: 163840,
32
+ cost: {
33
+ cacheRead: 0,
34
+ cacheWrite: 0,
35
+ input: 0,
36
+ output: 0
37
+ },
38
+ input: ["text"],
39
+ maxTokens: 32768,
40
+ reasoning: !0,
41
+ thinkingLevelMap: {
42
+ high: "high",
43
+ low: "low",
44
+ medium: "medium",
45
+ minimal: null,
46
+ off: "none",
47
+ xhigh: "max"
48
+ }
49
+ },
50
+ {
51
+ id: "deepseek-v3.2",
52
+ name: "deepseek-v3.2",
53
+ compat: {
54
+ maxTokensField: "max_tokens",
55
+ openRouterRouting: {},
56
+ requiresAssistantAfterToolResult: !1,
57
+ requiresReasoningContentOnAssistantMessages: !1,
58
+ requiresThinkingAsText: !1,
59
+ requiresToolResultName: !1,
60
+ sendSessionAffinityHeaders: !1,
61
+ supportsDeveloperRole: !1,
62
+ supportsLongCacheRetention: !1,
63
+ supportsReasoningEffort: !0,
64
+ supportsStore: !1,
65
+ supportsStrictMode: !1,
66
+ supportsUsageInStreaming: !0,
67
+ thinkingFormat: "openai",
68
+ vercelGatewayRouting: {},
69
+ zaiToolStream: !1
70
+ },
71
+ contextWindow: 163840,
72
+ cost: {
73
+ cacheRead: 0,
74
+ cacheWrite: 0,
75
+ input: 0,
76
+ output: 0
77
+ },
78
+ input: ["text"],
79
+ maxTokens: 32768,
80
+ reasoning: !0,
81
+ thinkingLevelMap: {
82
+ high: "high",
83
+ low: "low",
84
+ medium: "medium",
85
+ minimal: null,
86
+ off: "none",
87
+ xhigh: "max"
88
+ }
89
+ },
90
+ {
91
+ id: "deepseek-v4-flash",
92
+ name: "deepseek-v4-flash",
93
+ compat: {
94
+ maxTokensField: "max_tokens",
95
+ openRouterRouting: {},
96
+ requiresAssistantAfterToolResult: !1,
97
+ requiresReasoningContentOnAssistantMessages: !1,
98
+ requiresThinkingAsText: !1,
99
+ requiresToolResultName: !1,
100
+ sendSessionAffinityHeaders: !1,
101
+ supportsDeveloperRole: !1,
102
+ supportsLongCacheRetention: !1,
103
+ supportsReasoningEffort: !0,
104
+ supportsStore: !1,
105
+ supportsStrictMode: !1,
106
+ supportsUsageInStreaming: !0,
107
+ thinkingFormat: "openai",
108
+ vercelGatewayRouting: {},
109
+ zaiToolStream: !1
110
+ },
111
+ contextWindow: 1048576,
112
+ cost: {
113
+ cacheRead: 0,
114
+ cacheWrite: 0,
115
+ input: 0,
116
+ output: 0
117
+ },
118
+ input: ["text"],
119
+ maxTokens: 32768,
120
+ reasoning: !0,
121
+ thinkingLevelMap: {
122
+ high: "high",
123
+ low: "low",
124
+ medium: "medium",
125
+ minimal: null,
126
+ off: "none",
127
+ xhigh: "max"
128
+ }
129
+ },
130
+ {
131
+ id: "deepseek-v4-pro",
132
+ name: "deepseek-v4-pro",
133
+ compat: {
134
+ maxTokensField: "max_tokens",
135
+ openRouterRouting: {},
136
+ requiresAssistantAfterToolResult: !1,
137
+ requiresReasoningContentOnAssistantMessages: !1,
138
+ requiresThinkingAsText: !1,
139
+ requiresToolResultName: !1,
140
+ sendSessionAffinityHeaders: !1,
141
+ supportsDeveloperRole: !1,
142
+ supportsLongCacheRetention: !1,
143
+ supportsReasoningEffort: !0,
144
+ supportsStore: !1,
145
+ supportsStrictMode: !1,
146
+ supportsUsageInStreaming: !0,
147
+ thinkingFormat: "openai",
148
+ vercelGatewayRouting: {},
149
+ zaiToolStream: !1
150
+ },
151
+ contextWindow: 1048576,
152
+ cost: {
153
+ cacheRead: 0,
154
+ cacheWrite: 0,
155
+ input: 0,
156
+ output: 0
157
+ },
158
+ input: ["text"],
159
+ maxTokens: 32768,
160
+ reasoning: !0,
161
+ thinkingLevelMap: {
162
+ high: "high",
163
+ low: "low",
164
+ medium: "medium",
165
+ minimal: null,
166
+ off: "none",
167
+ xhigh: "max"
168
+ }
169
+ },
170
+ {
171
+ id: "devstral-2:123b",
172
+ name: "devstral-2:123b",
173
+ compat: {
174
+ maxTokensField: "max_tokens",
175
+ openRouterRouting: {},
176
+ requiresAssistantAfterToolResult: !1,
177
+ requiresReasoningContentOnAssistantMessages: !1,
178
+ requiresThinkingAsText: !1,
179
+ requiresToolResultName: !1,
180
+ sendSessionAffinityHeaders: !1,
181
+ supportsDeveloperRole: !1,
182
+ supportsLongCacheRetention: !1,
183
+ supportsReasoningEffort: !0,
184
+ supportsStore: !1,
185
+ supportsStrictMode: !1,
186
+ supportsUsageInStreaming: !0,
187
+ thinkingFormat: "openai",
188
+ vercelGatewayRouting: {},
189
+ zaiToolStream: !1
190
+ },
191
+ contextWindow: 262144,
192
+ cost: {
193
+ cacheRead: 0,
194
+ cacheWrite: 0,
195
+ input: 0,
196
+ output: 0
197
+ },
198
+ input: ["text"],
199
+ maxTokens: 32768,
200
+ reasoning: !1
201
+ },
202
+ {
203
+ id: "devstral-small-2:24b",
204
+ name: "devstral-small-2:24b",
205
+ compat: {
206
+ maxTokensField: "max_tokens",
207
+ openRouterRouting: {},
208
+ requiresAssistantAfterToolResult: !1,
209
+ requiresReasoningContentOnAssistantMessages: !1,
210
+ requiresThinkingAsText: !1,
211
+ requiresToolResultName: !1,
212
+ sendSessionAffinityHeaders: !1,
213
+ supportsDeveloperRole: !1,
214
+ supportsLongCacheRetention: !1,
215
+ supportsReasoningEffort: !0,
216
+ supportsStore: !1,
217
+ supportsStrictMode: !1,
218
+ supportsUsageInStreaming: !0,
219
+ thinkingFormat: "openai",
220
+ vercelGatewayRouting: {},
221
+ zaiToolStream: !1
222
+ },
223
+ contextWindow: 262144,
224
+ cost: {
225
+ cacheRead: 0,
226
+ cacheWrite: 0,
227
+ input: 0,
228
+ output: 0
229
+ },
230
+ input: ["text", "image"],
231
+ maxTokens: 32768,
232
+ reasoning: !1
233
+ },
234
+ {
235
+ id: "gemini-3-flash-preview",
236
+ name: "gemini-3-flash-preview",
237
+ compat: {
238
+ maxTokensField: "max_tokens",
239
+ openRouterRouting: {},
240
+ requiresAssistantAfterToolResult: !1,
241
+ requiresReasoningContentOnAssistantMessages: !1,
242
+ requiresThinkingAsText: !1,
243
+ requiresToolResultName: !1,
244
+ sendSessionAffinityHeaders: !1,
245
+ supportsDeveloperRole: !1,
246
+ supportsLongCacheRetention: !1,
247
+ supportsReasoningEffort: !0,
248
+ supportsStore: !1,
249
+ supportsStrictMode: !1,
250
+ supportsUsageInStreaming: !0,
251
+ thinkingFormat: "openai",
252
+ vercelGatewayRouting: {},
253
+ zaiToolStream: !1
254
+ },
255
+ contextWindow: 1048576,
256
+ cost: {
257
+ cacheRead: 0,
258
+ cacheWrite: 0,
259
+ input: 0,
260
+ output: 0
261
+ },
262
+ input: ["text", "image"],
263
+ maxTokens: 32768,
264
+ reasoning: !0,
265
+ thinkingLevelMap: {
266
+ high: "high",
267
+ low: "low",
268
+ medium: "medium",
269
+ minimal: null,
270
+ off: "none",
271
+ xhigh: "max"
272
+ }
273
+ },
274
+ {
275
+ id: "gemma4:31b",
276
+ name: "gemma4:31b",
277
+ compat: {
278
+ maxTokensField: "max_tokens",
279
+ openRouterRouting: {},
280
+ requiresAssistantAfterToolResult: !1,
281
+ requiresReasoningContentOnAssistantMessages: !1,
282
+ requiresThinkingAsText: !1,
283
+ requiresToolResultName: !1,
284
+ sendSessionAffinityHeaders: !1,
285
+ supportsDeveloperRole: !1,
286
+ supportsLongCacheRetention: !1,
287
+ supportsReasoningEffort: !0,
288
+ supportsStore: !1,
289
+ supportsStrictMode: !1,
290
+ supportsUsageInStreaming: !0,
291
+ thinkingFormat: "openai",
292
+ vercelGatewayRouting: {},
293
+ zaiToolStream: !1
294
+ },
295
+ contextWindow: 262144,
296
+ cost: {
297
+ cacheRead: 0,
298
+ cacheWrite: 0,
299
+ input: 0,
300
+ output: 0
301
+ },
302
+ input: ["text", "image"],
303
+ maxTokens: 32768,
304
+ reasoning: !0,
305
+ thinkingLevelMap: {
306
+ high: "high",
307
+ low: "low",
308
+ medium: "medium",
309
+ minimal: null,
310
+ off: "none",
311
+ xhigh: "max"
312
+ }
313
+ },
314
+ {
315
+ id: "glm-4.7",
316
+ name: "glm-4.7",
317
+ compat: {
318
+ maxTokensField: "max_tokens",
319
+ openRouterRouting: {},
320
+ requiresAssistantAfterToolResult: !1,
321
+ requiresReasoningContentOnAssistantMessages: !1,
322
+ requiresThinkingAsText: !1,
323
+ requiresToolResultName: !1,
324
+ sendSessionAffinityHeaders: !1,
325
+ supportsDeveloperRole: !1,
326
+ supportsLongCacheRetention: !1,
327
+ supportsReasoningEffort: !0,
328
+ supportsStore: !1,
329
+ supportsStrictMode: !1,
330
+ supportsUsageInStreaming: !0,
331
+ thinkingFormat: "openai",
332
+ vercelGatewayRouting: {},
333
+ zaiToolStream: !1
334
+ },
335
+ contextWindow: 202752,
336
+ cost: {
337
+ cacheRead: 0,
338
+ cacheWrite: 0,
339
+ input: 0,
340
+ output: 0
341
+ },
342
+ input: ["text"],
343
+ maxTokens: 32768,
344
+ reasoning: !0,
345
+ thinkingLevelMap: {
346
+ high: "high",
347
+ low: "low",
348
+ medium: "medium",
349
+ minimal: null,
350
+ off: "none",
351
+ xhigh: "max"
352
+ }
353
+ },
354
+ {
355
+ id: "glm-5",
356
+ name: "glm-5",
357
+ compat: {
358
+ maxTokensField: "max_tokens",
359
+ openRouterRouting: {},
360
+ requiresAssistantAfterToolResult: !1,
361
+ requiresReasoningContentOnAssistantMessages: !1,
362
+ requiresThinkingAsText: !1,
363
+ requiresToolResultName: !1,
364
+ sendSessionAffinityHeaders: !1,
365
+ supportsDeveloperRole: !1,
366
+ supportsLongCacheRetention: !1,
367
+ supportsReasoningEffort: !0,
368
+ supportsStore: !1,
369
+ supportsStrictMode: !1,
370
+ supportsUsageInStreaming: !0,
371
+ thinkingFormat: "openai",
372
+ vercelGatewayRouting: {},
373
+ zaiToolStream: !1
374
+ },
375
+ contextWindow: 202752,
376
+ cost: {
377
+ cacheRead: 0,
378
+ cacheWrite: 0,
379
+ input: 0,
380
+ output: 0
381
+ },
382
+ input: ["text"],
383
+ maxTokens: 32768,
384
+ reasoning: !0,
385
+ thinkingLevelMap: {
386
+ high: "high",
387
+ low: "low",
388
+ medium: "medium",
389
+ minimal: null,
390
+ off: "none",
391
+ xhigh: "max"
392
+ }
393
+ },
394
+ {
395
+ id: "glm-5.1",
396
+ name: "glm-5.1",
397
+ compat: {
398
+ maxTokensField: "max_tokens",
399
+ openRouterRouting: {},
400
+ requiresAssistantAfterToolResult: !1,
401
+ requiresReasoningContentOnAssistantMessages: !1,
402
+ requiresThinkingAsText: !1,
403
+ requiresToolResultName: !1,
404
+ sendSessionAffinityHeaders: !1,
405
+ supportsDeveloperRole: !1,
406
+ supportsLongCacheRetention: !1,
407
+ supportsReasoningEffort: !0,
408
+ supportsStore: !1,
409
+ supportsStrictMode: !1,
410
+ supportsUsageInStreaming: !0,
411
+ thinkingFormat: "openai",
412
+ vercelGatewayRouting: {},
413
+ zaiToolStream: !1
414
+ },
415
+ contextWindow: 202752,
416
+ cost: {
417
+ cacheRead: 0,
418
+ cacheWrite: 0,
419
+ input: 0,
420
+ output: 0
421
+ },
422
+ input: ["text"],
423
+ maxTokens: 32768,
424
+ reasoning: !0,
425
+ thinkingLevelMap: {
426
+ high: "high",
427
+ low: "low",
428
+ medium: "medium",
429
+ minimal: null,
430
+ off: "none",
431
+ xhigh: "max"
432
+ }
433
+ },
434
+ {
435
+ id: "gpt-oss:120b",
436
+ name: "gpt-oss:120b",
437
+ compat: {
438
+ maxTokensField: "max_tokens",
439
+ openRouterRouting: {},
440
+ requiresAssistantAfterToolResult: !1,
441
+ requiresReasoningContentOnAssistantMessages: !1,
442
+ requiresThinkingAsText: !1,
443
+ requiresToolResultName: !1,
444
+ sendSessionAffinityHeaders: !1,
445
+ supportsDeveloperRole: !1,
446
+ supportsLongCacheRetention: !1,
447
+ supportsReasoningEffort: !0,
448
+ supportsStore: !1,
449
+ supportsStrictMode: !1,
450
+ supportsUsageInStreaming: !0,
451
+ thinkingFormat: "openai",
452
+ vercelGatewayRouting: {},
453
+ zaiToolStream: !1
454
+ },
455
+ contextWindow: 131072,
456
+ cost: {
457
+ cacheRead: 0,
458
+ cacheWrite: 0,
459
+ input: 0,
460
+ output: 0
461
+ },
462
+ input: ["text"],
463
+ maxTokens: 32768,
464
+ reasoning: !0,
465
+ thinkingLevelMap: {
466
+ high: "high",
467
+ low: "low",
468
+ medium: "medium",
469
+ minimal: null,
470
+ off: null,
471
+ xhigh: null
472
+ }
473
+ },
474
+ {
475
+ id: "gpt-oss:20b",
476
+ name: "gpt-oss:20b",
477
+ compat: {
478
+ maxTokensField: "max_tokens",
479
+ openRouterRouting: {},
480
+ requiresAssistantAfterToolResult: !1,
481
+ requiresReasoningContentOnAssistantMessages: !1,
482
+ requiresThinkingAsText: !1,
483
+ requiresToolResultName: !1,
484
+ sendSessionAffinityHeaders: !1,
485
+ supportsDeveloperRole: !1,
486
+ supportsLongCacheRetention: !1,
487
+ supportsReasoningEffort: !0,
488
+ supportsStore: !1,
489
+ supportsStrictMode: !1,
490
+ supportsUsageInStreaming: !0,
491
+ thinkingFormat: "openai",
492
+ vercelGatewayRouting: {},
493
+ zaiToolStream: !1
494
+ },
495
+ contextWindow: 131072,
496
+ cost: {
497
+ cacheRead: 0,
498
+ cacheWrite: 0,
499
+ input: 0,
500
+ output: 0
501
+ },
502
+ input: ["text"],
503
+ maxTokens: 32768,
504
+ reasoning: !0,
505
+ thinkingLevelMap: {
506
+ high: "high",
507
+ low: "low",
508
+ medium: "medium",
509
+ minimal: null,
510
+ off: null,
511
+ xhigh: null
512
+ }
513
+ },
514
+ {
515
+ id: "kimi-k2.5",
516
+ name: "kimi-k2.5",
517
+ compat: {
518
+ maxTokensField: "max_tokens",
519
+ openRouterRouting: {},
520
+ requiresAssistantAfterToolResult: !1,
521
+ requiresReasoningContentOnAssistantMessages: !1,
522
+ requiresThinkingAsText: !1,
523
+ requiresToolResultName: !1,
524
+ sendSessionAffinityHeaders: !1,
525
+ supportsDeveloperRole: !1,
526
+ supportsLongCacheRetention: !1,
527
+ supportsReasoningEffort: !0,
528
+ supportsStore: !1,
529
+ supportsStrictMode: !1,
530
+ supportsUsageInStreaming: !0,
531
+ thinkingFormat: "openai",
532
+ vercelGatewayRouting: {},
533
+ zaiToolStream: !1
534
+ },
535
+ contextWindow: 262144,
536
+ cost: {
537
+ cacheRead: 0,
538
+ cacheWrite: 0,
539
+ input: 0,
540
+ output: 0
541
+ },
542
+ input: ["text", "image"],
543
+ maxTokens: 32768,
544
+ reasoning: !0,
545
+ thinkingLevelMap: {
546
+ high: "high",
547
+ low: "low",
548
+ medium: "medium",
549
+ minimal: null,
550
+ off: "none",
551
+ xhigh: "max"
552
+ }
553
+ },
554
+ {
555
+ id: "kimi-k2.6",
556
+ name: "kimi-k2.6",
557
+ compat: {
558
+ maxTokensField: "max_tokens",
559
+ openRouterRouting: {},
560
+ requiresAssistantAfterToolResult: !1,
561
+ requiresReasoningContentOnAssistantMessages: !1,
562
+ requiresThinkingAsText: !1,
563
+ requiresToolResultName: !1,
564
+ sendSessionAffinityHeaders: !1,
565
+ supportsDeveloperRole: !1,
566
+ supportsLongCacheRetention: !1,
567
+ supportsReasoningEffort: !0,
568
+ supportsStore: !1,
569
+ supportsStrictMode: !1,
570
+ supportsUsageInStreaming: !0,
571
+ thinkingFormat: "openai",
572
+ vercelGatewayRouting: {},
573
+ zaiToolStream: !1
574
+ },
575
+ contextWindow: 262144,
576
+ cost: {
577
+ cacheRead: 0,
578
+ cacheWrite: 0,
579
+ input: 0,
580
+ output: 0
581
+ },
582
+ input: ["text", "image"],
583
+ maxTokens: 32768,
584
+ reasoning: !0,
585
+ thinkingLevelMap: {
586
+ high: "high",
587
+ low: "low",
588
+ medium: "medium",
589
+ minimal: null,
590
+ off: "none",
591
+ xhigh: "max"
592
+ }
593
+ },
594
+ {
595
+ id: "minimax-m2.1",
596
+ name: "minimax-m2.1",
597
+ compat: {
598
+ maxTokensField: "max_tokens",
599
+ openRouterRouting: {},
600
+ requiresAssistantAfterToolResult: !1,
601
+ requiresReasoningContentOnAssistantMessages: !1,
602
+ requiresThinkingAsText: !1,
603
+ requiresToolResultName: !1,
604
+ sendSessionAffinityHeaders: !1,
605
+ supportsDeveloperRole: !1,
606
+ supportsLongCacheRetention: !1,
607
+ supportsReasoningEffort: !0,
608
+ supportsStore: !1,
609
+ supportsStrictMode: !1,
610
+ supportsUsageInStreaming: !0,
611
+ thinkingFormat: "openai",
612
+ vercelGatewayRouting: {},
613
+ zaiToolStream: !1
614
+ },
615
+ contextWindow: 204800,
616
+ cost: {
617
+ cacheRead: 0,
618
+ cacheWrite: 0,
619
+ input: 0,
620
+ output: 0
621
+ },
622
+ input: ["text"],
623
+ maxTokens: 32768,
624
+ reasoning: !0,
625
+ thinkingLevelMap: {
626
+ high: "high",
627
+ low: "low",
628
+ medium: "medium",
629
+ minimal: null,
630
+ off: null,
631
+ xhigh: "max"
632
+ }
633
+ },
634
+ {
635
+ id: "minimax-m2.5",
636
+ name: "minimax-m2.5",
637
+ compat: {
638
+ maxTokensField: "max_tokens",
639
+ openRouterRouting: {},
640
+ requiresAssistantAfterToolResult: !1,
641
+ requiresReasoningContentOnAssistantMessages: !1,
642
+ requiresThinkingAsText: !1,
643
+ requiresToolResultName: !1,
644
+ sendSessionAffinityHeaders: !1,
645
+ supportsDeveloperRole: !1,
646
+ supportsLongCacheRetention: !1,
647
+ supportsReasoningEffort: !0,
648
+ supportsStore: !1,
649
+ supportsStrictMode: !1,
650
+ supportsUsageInStreaming: !0,
651
+ thinkingFormat: "openai",
652
+ vercelGatewayRouting: {},
653
+ zaiToolStream: !1
654
+ },
655
+ contextWindow: 196608,
656
+ cost: {
657
+ cacheRead: 0,
658
+ cacheWrite: 0,
659
+ input: 0,
660
+ output: 0
661
+ },
662
+ input: ["text"],
663
+ maxTokens: 32768,
664
+ reasoning: !0,
665
+ thinkingLevelMap: {
666
+ high: "high",
667
+ low: "low",
668
+ medium: "medium",
669
+ minimal: null,
670
+ off: null,
671
+ xhigh: "max"
672
+ }
673
+ },
674
+ {
675
+ id: "minimax-m2.7",
676
+ name: "minimax-m2.7",
677
+ compat: {
678
+ maxTokensField: "max_tokens",
679
+ openRouterRouting: {},
680
+ requiresAssistantAfterToolResult: !1,
681
+ requiresReasoningContentOnAssistantMessages: !1,
682
+ requiresThinkingAsText: !1,
683
+ requiresToolResultName: !1,
684
+ sendSessionAffinityHeaders: !1,
685
+ supportsDeveloperRole: !1,
686
+ supportsLongCacheRetention: !1,
687
+ supportsReasoningEffort: !0,
688
+ supportsStore: !1,
689
+ supportsStrictMode: !1,
690
+ supportsUsageInStreaming: !0,
691
+ thinkingFormat: "openai",
692
+ vercelGatewayRouting: {},
693
+ zaiToolStream: !1
694
+ },
695
+ contextWindow: 196608,
696
+ cost: {
697
+ cacheRead: 0,
698
+ cacheWrite: 0,
699
+ input: 0,
700
+ output: 0
701
+ },
702
+ input: ["text"],
703
+ maxTokens: 32768,
704
+ reasoning: !0,
705
+ thinkingLevelMap: {
706
+ high: "high",
707
+ low: "low",
708
+ medium: "medium",
709
+ minimal: null,
710
+ off: null,
711
+ xhigh: "max"
712
+ }
713
+ },
714
+ {
715
+ id: "minimax-m3",
716
+ name: "minimax-m3",
717
+ compat: {
718
+ maxTokensField: "max_tokens",
719
+ openRouterRouting: {},
720
+ requiresAssistantAfterToolResult: !1,
721
+ requiresReasoningContentOnAssistantMessages: !1,
722
+ requiresThinkingAsText: !1,
723
+ requiresToolResultName: !1,
724
+ sendSessionAffinityHeaders: !1,
725
+ supportsDeveloperRole: !1,
726
+ supportsLongCacheRetention: !1,
727
+ supportsReasoningEffort: !0,
728
+ supportsStore: !1,
729
+ supportsStrictMode: !1,
730
+ supportsUsageInStreaming: !0,
731
+ thinkingFormat: "openai",
732
+ vercelGatewayRouting: {},
733
+ zaiToolStream: !1
734
+ },
735
+ contextWindow: 524288,
736
+ cost: {
737
+ cacheRead: 0,
738
+ cacheWrite: 0,
739
+ input: 0,
740
+ output: 0
741
+ },
742
+ input: ["text", "image"],
743
+ maxTokens: 32768,
744
+ reasoning: !0,
745
+ thinkingLevelMap: {
746
+ high: "high",
747
+ low: "low",
748
+ medium: "medium",
749
+ minimal: null,
750
+ off: null,
751
+ xhigh: "max"
752
+ }
753
+ },
754
+ {
755
+ id: "ministral-3:14b",
756
+ name: "ministral-3:14b",
757
+ compat: {
758
+ maxTokensField: "max_tokens",
759
+ openRouterRouting: {},
760
+ requiresAssistantAfterToolResult: !1,
761
+ requiresReasoningContentOnAssistantMessages: !1,
762
+ requiresThinkingAsText: !1,
763
+ requiresToolResultName: !1,
764
+ sendSessionAffinityHeaders: !1,
765
+ supportsDeveloperRole: !1,
766
+ supportsLongCacheRetention: !1,
767
+ supportsReasoningEffort: !0,
768
+ supportsStore: !1,
769
+ supportsStrictMode: !1,
770
+ supportsUsageInStreaming: !0,
771
+ thinkingFormat: "openai",
772
+ vercelGatewayRouting: {},
773
+ zaiToolStream: !1
774
+ },
775
+ contextWindow: 262144,
776
+ cost: {
777
+ cacheRead: 0,
778
+ cacheWrite: 0,
779
+ input: 0,
780
+ output: 0
781
+ },
782
+ input: ["text", "image"],
783
+ maxTokens: 32768,
784
+ reasoning: !1
785
+ },
786
+ {
787
+ id: "ministral-3:3b",
788
+ name: "ministral-3:3b",
789
+ compat: {
790
+ maxTokensField: "max_tokens",
791
+ openRouterRouting: {},
792
+ requiresAssistantAfterToolResult: !1,
793
+ requiresReasoningContentOnAssistantMessages: !1,
794
+ requiresThinkingAsText: !1,
795
+ requiresToolResultName: !1,
796
+ sendSessionAffinityHeaders: !1,
797
+ supportsDeveloperRole: !1,
798
+ supportsLongCacheRetention: !1,
799
+ supportsReasoningEffort: !0,
800
+ supportsStore: !1,
801
+ supportsStrictMode: !1,
802
+ supportsUsageInStreaming: !0,
803
+ thinkingFormat: "openai",
804
+ vercelGatewayRouting: {},
805
+ zaiToolStream: !1
806
+ },
807
+ contextWindow: 262144,
808
+ cost: {
809
+ cacheRead: 0,
810
+ cacheWrite: 0,
811
+ input: 0,
812
+ output: 0
813
+ },
814
+ input: ["text", "image"],
815
+ maxTokens: 32768,
816
+ reasoning: !1
817
+ },
818
+ {
819
+ id: "ministral-3:8b",
820
+ name: "ministral-3:8b",
821
+ compat: {
822
+ maxTokensField: "max_tokens",
823
+ openRouterRouting: {},
824
+ requiresAssistantAfterToolResult: !1,
825
+ requiresReasoningContentOnAssistantMessages: !1,
826
+ requiresThinkingAsText: !1,
827
+ requiresToolResultName: !1,
828
+ sendSessionAffinityHeaders: !1,
829
+ supportsDeveloperRole: !1,
830
+ supportsLongCacheRetention: !1,
831
+ supportsReasoningEffort: !0,
832
+ supportsStore: !1,
833
+ supportsStrictMode: !1,
834
+ supportsUsageInStreaming: !0,
835
+ thinkingFormat: "openai",
836
+ vercelGatewayRouting: {},
837
+ zaiToolStream: !1
838
+ },
839
+ contextWindow: 262144,
840
+ cost: {
841
+ cacheRead: 0,
842
+ cacheWrite: 0,
843
+ input: 0,
844
+ output: 0
845
+ },
846
+ input: ["text", "image"],
847
+ maxTokens: 32768,
848
+ reasoning: !1
849
+ },
850
+ {
851
+ id: "mistral-large-3:675b",
852
+ name: "mistral-large-3:675b",
853
+ compat: {
854
+ maxTokensField: "max_tokens",
855
+ openRouterRouting: {},
856
+ requiresAssistantAfterToolResult: !1,
857
+ requiresReasoningContentOnAssistantMessages: !1,
858
+ requiresThinkingAsText: !1,
859
+ requiresToolResultName: !1,
860
+ sendSessionAffinityHeaders: !1,
861
+ supportsDeveloperRole: !1,
862
+ supportsLongCacheRetention: !1,
863
+ supportsReasoningEffort: !0,
864
+ supportsStore: !1,
865
+ supportsStrictMode: !1,
866
+ supportsUsageInStreaming: !0,
867
+ thinkingFormat: "openai",
868
+ vercelGatewayRouting: {},
869
+ zaiToolStream: !1
870
+ },
871
+ contextWindow: 262144,
872
+ cost: {
873
+ cacheRead: 0,
874
+ cacheWrite: 0,
875
+ input: 0,
876
+ output: 0
877
+ },
878
+ input: ["text", "image"],
879
+ maxTokens: 32768,
880
+ reasoning: !1
881
+ },
882
+ {
883
+ id: "nemotron-3-nano:30b",
884
+ name: "nemotron-3-nano:30b",
885
+ compat: {
886
+ maxTokensField: "max_tokens",
887
+ openRouterRouting: {},
888
+ requiresAssistantAfterToolResult: !1,
889
+ requiresReasoningContentOnAssistantMessages: !1,
890
+ requiresThinkingAsText: !1,
891
+ requiresToolResultName: !1,
892
+ sendSessionAffinityHeaders: !1,
893
+ supportsDeveloperRole: !1,
894
+ supportsLongCacheRetention: !1,
895
+ supportsReasoningEffort: !0,
896
+ supportsStore: !1,
897
+ supportsStrictMode: !1,
898
+ supportsUsageInStreaming: !0,
899
+ thinkingFormat: "openai",
900
+ vercelGatewayRouting: {},
901
+ zaiToolStream: !1
902
+ },
903
+ contextWindow: 262144,
904
+ cost: {
905
+ cacheRead: 0,
906
+ cacheWrite: 0,
907
+ input: 0,
908
+ output: 0
909
+ },
910
+ input: ["text"],
911
+ maxTokens: 32768,
912
+ reasoning: !0,
913
+ thinkingLevelMap: {
914
+ high: "high",
915
+ low: "low",
916
+ medium: "medium",
917
+ minimal: null,
918
+ off: "none",
919
+ xhigh: "max"
920
+ }
921
+ },
922
+ {
923
+ id: "nemotron-3-super",
924
+ name: "nemotron-3-super",
925
+ compat: {
926
+ maxTokensField: "max_tokens",
927
+ openRouterRouting: {},
928
+ requiresAssistantAfterToolResult: !1,
929
+ requiresReasoningContentOnAssistantMessages: !1,
930
+ requiresThinkingAsText: !1,
931
+ requiresToolResultName: !1,
932
+ sendSessionAffinityHeaders: !1,
933
+ supportsDeveloperRole: !1,
934
+ supportsLongCacheRetention: !1,
935
+ supportsReasoningEffort: !0,
936
+ supportsStore: !1,
937
+ supportsStrictMode: !1,
938
+ supportsUsageInStreaming: !0,
939
+ thinkingFormat: "openai",
940
+ vercelGatewayRouting: {},
941
+ zaiToolStream: !1
942
+ },
943
+ contextWindow: 262144,
944
+ cost: {
945
+ cacheRead: 0,
946
+ cacheWrite: 0,
947
+ input: 0,
948
+ output: 0
949
+ },
950
+ input: ["text"],
951
+ maxTokens: 32768,
952
+ reasoning: !0,
953
+ thinkingLevelMap: {
954
+ high: "high",
955
+ low: "low",
956
+ medium: "medium",
957
+ minimal: null,
958
+ off: "none",
959
+ xhigh: "max"
960
+ }
961
+ },
962
+ {
963
+ id: "nemotron-3-ultra",
964
+ name: "nemotron-3-ultra",
965
+ compat: {
966
+ maxTokensField: "max_tokens",
967
+ openRouterRouting: {},
968
+ requiresAssistantAfterToolResult: !1,
969
+ requiresReasoningContentOnAssistantMessages: !1,
970
+ requiresThinkingAsText: !1,
971
+ requiresToolResultName: !1,
972
+ sendSessionAffinityHeaders: !1,
973
+ supportsDeveloperRole: !1,
974
+ supportsLongCacheRetention: !1,
975
+ supportsReasoningEffort: !0,
976
+ supportsStore: !1,
977
+ supportsStrictMode: !1,
978
+ supportsUsageInStreaming: !0,
979
+ thinkingFormat: "openai",
980
+ vercelGatewayRouting: {},
981
+ zaiToolStream: !1
982
+ },
983
+ contextWindow: 262144,
984
+ cost: {
985
+ cacheRead: 0,
986
+ cacheWrite: 0,
987
+ input: 0,
988
+ output: 0
989
+ },
990
+ input: ["text"],
991
+ maxTokens: 32768,
992
+ reasoning: !0,
993
+ thinkingLevelMap: {
994
+ high: "high",
995
+ low: "low",
996
+ medium: "medium",
997
+ minimal: null,
998
+ off: "none",
999
+ xhigh: "max"
1000
+ }
1001
+ },
1002
+ {
1003
+ id: "qwen3-coder-next",
1004
+ name: "qwen3-coder-next",
1005
+ compat: {
1006
+ maxTokensField: "max_tokens",
1007
+ openRouterRouting: {},
1008
+ requiresAssistantAfterToolResult: !1,
1009
+ requiresReasoningContentOnAssistantMessages: !1,
1010
+ requiresThinkingAsText: !1,
1011
+ requiresToolResultName: !1,
1012
+ sendSessionAffinityHeaders: !1,
1013
+ supportsDeveloperRole: !1,
1014
+ supportsLongCacheRetention: !1,
1015
+ supportsReasoningEffort: !0,
1016
+ supportsStore: !1,
1017
+ supportsStrictMode: !1,
1018
+ supportsUsageInStreaming: !0,
1019
+ thinkingFormat: "openai",
1020
+ vercelGatewayRouting: {},
1021
+ zaiToolStream: !1
1022
+ },
1023
+ contextWindow: 262144,
1024
+ cost: {
1025
+ cacheRead: 0,
1026
+ cacheWrite: 0,
1027
+ input: 0,
1028
+ output: 0
1029
+ },
1030
+ input: ["text"],
1031
+ maxTokens: 32768,
1032
+ reasoning: !1
1033
+ },
1034
+ {
1035
+ id: "qwen3-coder:480b",
1036
+ name: "qwen3-coder:480b",
1037
+ compat: {
1038
+ maxTokensField: "max_tokens",
1039
+ openRouterRouting: {},
1040
+ requiresAssistantAfterToolResult: !1,
1041
+ requiresReasoningContentOnAssistantMessages: !1,
1042
+ requiresThinkingAsText: !1,
1043
+ requiresToolResultName: !1,
1044
+ sendSessionAffinityHeaders: !1,
1045
+ supportsDeveloperRole: !1,
1046
+ supportsLongCacheRetention: !1,
1047
+ supportsReasoningEffort: !0,
1048
+ supportsStore: !1,
1049
+ supportsStrictMode: !1,
1050
+ supportsUsageInStreaming: !0,
1051
+ thinkingFormat: "openai",
1052
+ vercelGatewayRouting: {},
1053
+ zaiToolStream: !1
1054
+ },
1055
+ contextWindow: 262144,
1056
+ cost: {
1057
+ cacheRead: 0,
1058
+ cacheWrite: 0,
1059
+ input: 0,
1060
+ output: 0
1061
+ },
1062
+ input: ["text"],
1063
+ maxTokens: 32768,
1064
+ reasoning: !1
1065
+ },
1066
+ {
1067
+ id: "qwen3.5:397b",
1068
+ name: "qwen3.5:397b",
1069
+ compat: {
1070
+ maxTokensField: "max_tokens",
1071
+ openRouterRouting: {},
1072
+ requiresAssistantAfterToolResult: !1,
1073
+ requiresReasoningContentOnAssistantMessages: !1,
1074
+ requiresThinkingAsText: !1,
1075
+ requiresToolResultName: !1,
1076
+ sendSessionAffinityHeaders: !1,
1077
+ supportsDeveloperRole: !1,
1078
+ supportsLongCacheRetention: !1,
1079
+ supportsReasoningEffort: !0,
1080
+ supportsStore: !1,
1081
+ supportsStrictMode: !1,
1082
+ supportsUsageInStreaming: !0,
1083
+ thinkingFormat: "openai",
1084
+ vercelGatewayRouting: {},
1085
+ zaiToolStream: !1
1086
+ },
1087
+ contextWindow: 262144,
1088
+ cost: {
1089
+ cacheRead: 0,
1090
+ cacheWrite: 0,
1091
+ input: 0,
1092
+ output: 0
1093
+ },
1094
+ input: ["text", "image"],
1095
+ maxTokens: 32768,
1096
+ reasoning: !0,
1097
+ thinkingLevelMap: {
1098
+ high: null,
1099
+ low: null,
1100
+ medium: "medium",
1101
+ minimal: null,
1102
+ off: "none",
1103
+ xhigh: null
1104
+ }
1105
+ },
1106
+ {
1107
+ id: "rnj-1:8b",
1108
+ name: "rnj-1:8b",
1109
+ compat: {
1110
+ maxTokensField: "max_tokens",
1111
+ openRouterRouting: {},
1112
+ requiresAssistantAfterToolResult: !1,
1113
+ requiresReasoningContentOnAssistantMessages: !1,
1114
+ requiresThinkingAsText: !1,
1115
+ requiresToolResultName: !1,
1116
+ sendSessionAffinityHeaders: !1,
1117
+ supportsDeveloperRole: !1,
1118
+ supportsLongCacheRetention: !1,
1119
+ supportsReasoningEffort: !0,
1120
+ supportsStore: !1,
1121
+ supportsStrictMode: !1,
1122
+ supportsUsageInStreaming: !0,
1123
+ thinkingFormat: "openai",
1124
+ vercelGatewayRouting: {},
1125
+ zaiToolStream: !1
1126
+ },
1127
+ contextWindow: 32768,
1128
+ cost: {
1129
+ cacheRead: 0,
1130
+ cacheWrite: 0,
1131
+ input: 0,
1132
+ output: 0
1133
+ },
1134
+ input: ["text"],
1135
+ maxTokens: 32768,
1136
+ reasoning: !1
1137
+ }
1138
+ ];
1139
+
1140
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/models.js
1141
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
1142
+ import { join } from "node:path";
1143
+
1144
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js
1145
+ var DEFAULT = {
1146
+ off: "none",
1147
+ minimal: null,
1148
+ low: "low",
1149
+ medium: "medium",
1150
+ high: "high",
1151
+ xhigh: "max"
1152
+ }, GPT_OSS = {
1153
+ off: null,
1154
+ minimal: null,
1155
+ low: "low",
1156
+ medium: "medium",
1157
+ high: "high",
1158
+ xhigh: null
1159
+ }, QWEN3 = {
1160
+ off: "none",
1161
+ minimal: null,
1162
+ low: null,
1163
+ medium: "medium",
1164
+ high: null,
1165
+ xhigh: null
1166
+ }, NO_OFF = {
1167
+ off: null,
1168
+ minimal: null,
1169
+ low: "low",
1170
+ medium: "medium",
1171
+ high: "high",
1172
+ xhigh: "max"
1173
+ };
1174
+ function resolve(id, capabilities) {
1175
+ if (capabilities.includes("thinking"))
1176
+ return id.startsWith("gpt-oss") ? GPT_OSS : id.startsWith("qwen3-vl") ? NO_OFF : id.startsWith("qwen3") ? QWEN3 : id === "kimi-k2-thinking" || id.startsWith("minimax") ? NO_OFF : DEFAULT;
1177
+ }
1178
+
1179
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/utils.js
1180
+ async function fetchJsonWithTimeout(url, init, timeoutMs) {
1181
+ let controller = new AbortController(), timeout = setTimeout(() => controller.abort(), timeoutMs);
1182
+ try {
1183
+ let res = await fetch(url, { ...init, signal: controller.signal }), text = await res.text(), data = null;
1184
+ try {
1185
+ data = text ? JSON.parse(text) : null;
1186
+ } catch {
1187
+ }
1188
+ let error = data && typeof data == "object" && "error" in data ? typeof data.error == "object" ? JSON.stringify(data.error) : String(data.error) : text;
1189
+ return { ok: res.ok, status: res.status, data, error: res.ok ? void 0 : error };
1190
+ } catch (error) {
1191
+ return { ok: !1, status: 0, data: null, error: error instanceof Error ? error.message : String(error) };
1192
+ } finally {
1193
+ clearTimeout(timeout);
1194
+ }
1195
+ }
1196
+ async function concurrentMap(items, workers, fn) {
1197
+ let results = new Array(items.length), next = 0;
1198
+ return await Promise.all(Array.from({ length: Math.max(1, workers) }, async () => {
1199
+ for (; next < items.length; ) {
1200
+ let index = next++;
1201
+ try {
1202
+ results[index] = { status: "fulfilled", value: await fn(items[index]) };
1203
+ } catch (reason) {
1204
+ results[index] = { status: "rejected", reason };
1205
+ }
1206
+ }
1207
+ })), results;
1208
+ }
1209
+ function getContextLength(modelInfo) {
1210
+ for (let [key, value] of Object.entries(modelInfo))
1211
+ if (key.endsWith(".context_length") && typeof value == "number")
1212
+ return value;
1213
+ return 128e3;
1214
+ }
1215
+
1216
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/models.js
1217
+ var CACHE_DIR = join(getAgentDir(), "cache"), CACHE_FILE = join(CACHE_DIR, "ollama-cloud-models.json"), CACHE_MAX_AGE_MS = 720 * 60 * 60 * 1e3, FETCH_TIMEOUT_MS = 1e4, OLLAMA_BASE = (process.env.OLLAMA_API_BASE || "https://ollama.com").replace(/\/+$/, "");
1218
+ function buildCompat() {
1219
+ return {
1220
+ // Ollama uses "system" role, not "developer" (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsDeveloperRole).
1221
+ supportsDeveloperRole: !1,
1222
+ // reasoning_effort works (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsReasoningEffort, tested in think-experiment.md).
1223
+ supportsReasoningEffort: !0,
1224
+ // "store" is not a supported field (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsStore).
1225
+ supportsStore: !1,
1226
+ // Ollama lists "max_tokens", not "max_completion_tokens" (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#maxTokensField).
1227
+ maxTokensField: "max_tokens",
1228
+ // stream_options.include_usage is supported (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsUsageInStreaming).
1229
+ supportsUsageInStreaming: !0,
1230
+ // Default: tool results don't need a name field (pi: types.ts#requiresToolResultName).
1231
+ requiresToolResultName: !1,
1232
+ // Default: no assistant message required between tool result and user (pi: types.ts#requiresAssistantAfterToolResult).
1233
+ requiresAssistantAfterToolResult: !1,
1234
+ // Ollama supports native thinking blocks (pi: types.ts#requiresThinkingAsText).
1235
+ requiresThinkingAsText: !1,
1236
+ // DeepSeek-specific, not needed for Ollama (pi: types.ts#requiresReasoningContentOnAssistantMessages).
1237
+ requiresReasoningContentOnAssistantMessages: !1,
1238
+ // reasoning_effort format works (pi: types.ts#thinkingFormat, tested in think-experiment.md).
1239
+ thinkingFormat: "openai",
1240
+ // Ollama does not support tool_choice, so strict mode is unavailable (ollama: docs.ollama.com/api/openai-compatibility, pi: types.ts#supportsStrictMode).
1241
+ supportsStrictMode: !1,
1242
+ // Anthropic cache_control not relevant; Ollama has implicit KV cache only (pi: types.ts#cacheControlFormat).
1243
+ // Explicitly undefined: JSON.stringify drops undefined values, keeping
1244
+ // models.generated.ts structurally consistent with assembleModels() runtime output.
1245
+ // Session affinity headers not relevant for Ollama (pi: types.ts#sendSessionAffinityHeaders).
1246
+ sendSessionAffinityHeaders: !1,
1247
+ // No explicit cache-retention API (pi: types.ts#supportsLongCacheRetention).
1248
+ supportsLongCacheRetention: !1,
1249
+ // Not z.ai (pi: types.ts#zaiToolStream).
1250
+ zaiToolStream: !1,
1251
+ cacheControlFormat: void 0,
1252
+ openRouterRouting: {},
1253
+ vercelGatewayRouting: {}
1254
+ };
1255
+ }
1256
+ function assembleModels(raw) {
1257
+ return Object.entries(raw).filter(([, data]) => data.capabilities?.includes("tools")).map(([id, data]) => ({
1258
+ id,
1259
+ name: id,
1260
+ reasoning: data.capabilities?.includes("thinking") ?? !1,
1261
+ thinkingLevelMap: resolve(id, data.capabilities ?? []),
1262
+ input: data.capabilities?.includes("vision") ? ["text", "image"] : ["text"],
1263
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1264
+ contextWindow: getContextLength(data.model_info ?? {}),
1265
+ // No per-model limit exposed by the API (https://docs.ollama.com/api-reference/show-model-details,
1266
+ // https://github.com/ollama/ollama/issues/7222). 32768 matches most Ollama Cloud context windows.
1267
+ maxTokens: 32768,
1268
+ compat: buildCompat()
1269
+ }));
1270
+ }
1271
+ function createCacheData(models, now = /* @__PURE__ */ new Date()) {
1272
+ return { timestamp: now.getTime(), models };
1273
+ }
1274
+ function readCacheData(path) {
1275
+ try {
1276
+ let data = JSON.parse(readFileSync(path, "utf-8"));
1277
+ return !data.models || Object.keys(data.models).length === 0 ? null : data;
1278
+ } catch {
1279
+ return null;
1280
+ }
1281
+ }
1282
+ function isFreshGeneratedCache(data) {
1283
+ return typeof data.timestamp != "number" || !Number.isFinite(data.timestamp) ? !1 : Date.now() - data.timestamp <= CACHE_MAX_AGE_MS;
1284
+ }
1285
+ function readCacheState() {
1286
+ if (!existsSync(CACHE_FILE))
1287
+ return { status: "missing" };
1288
+ let data = readCacheData(CACHE_FILE);
1289
+ if (!data) {
1290
+ try {
1291
+ rmSync(CACHE_FILE, { force: !0 });
1292
+ } catch {
1293
+ }
1294
+ return { status: "missing" };
1295
+ }
1296
+ return isFreshGeneratedCache(data) ? { status: "fresh", models: data.models } : { status: "stale", models: data.models };
1297
+ }
1298
+ function writeCache(models) {
1299
+ try {
1300
+ mkdirSync(CACHE_DIR, { recursive: !0 }), writeFileSync(CACHE_FILE, JSON.stringify(createCacheData(models), null, 2));
1301
+ } catch {
1302
+ }
1303
+ }
1304
+ function resolveOllamaApiKey() {
1305
+ let envKey = process.env.OLLAMA_API_KEY?.trim();
1306
+ if (envKey)
1307
+ return envKey;
1308
+ try {
1309
+ let raw = readFileSync(join(getAgentDir(), "auth.json"), "utf-8"), cred = JSON.parse(raw)["ollama-cloud"];
1310
+ if (cred?.type === "api_key" && typeof cred.key == "string") {
1311
+ let key = cred.key.trim();
1312
+ if (key)
1313
+ return key;
1314
+ }
1315
+ } catch {
1316
+ }
1317
+ }
1318
+ async function fetchModelIds(timeoutMs = FETCH_TIMEOUT_MS) {
1319
+ let headers = {}, apiKey = resolveOllamaApiKey();
1320
+ apiKey && (headers.Authorization = `Bearer ${apiKey}`);
1321
+ let res = await fetchJsonWithTimeout(`${OLLAMA_BASE}/v1/models`, { headers }, timeoutMs);
1322
+ if (res.status === 429)
1323
+ throw new Error("Ollama Cloud rate limited. Try again shortly.");
1324
+ if (!res.ok || !res.data)
1325
+ throw new Error(`Failed to fetch model list: ${res.status}${res.error ? ` - ${res.error}` : ""}`);
1326
+ return res.data.data.map((m) => m.id);
1327
+ }
1328
+ async function fetchModelDetails(id, timeoutMs = FETCH_TIMEOUT_MS) {
1329
+ let headers = { "Content-Type": "application/json" }, apiKey = resolveOllamaApiKey();
1330
+ apiKey && (headers.Authorization = `Bearer ${apiKey}`);
1331
+ let res = await fetchJsonWithTimeout(`${OLLAMA_BASE}/api/show`, {
1332
+ method: "POST",
1333
+ headers,
1334
+ body: JSON.stringify({ model: id })
1335
+ }, timeoutMs);
1336
+ if (res.status === 429)
1337
+ throw new Error("Ollama Cloud rate limited. Try again shortly.");
1338
+ if (!res.ok || !res.data)
1339
+ throw new Error(`Failed to fetch /api/show for ${id}: ${res.status}${res.error ? ` - ${res.error}` : ""}`);
1340
+ return res.data;
1341
+ }
1342
+ async function refreshOllamaCloudModels(params) {
1343
+ let notify = params.notify ?? (() => {
1344
+ }), onProgress = params.onProgress ?? (() => {
1345
+ });
1346
+ if (!resolveOllamaApiKey())
1347
+ return notify("Ollama Cloud skipped (no API key)"), {};
1348
+ onProgress({ stage: "list", message: "Fetching model list..." });
1349
+ let modelIds = await fetchModelIds();
1350
+ notify(`Found ${modelIds.length} models, fetching details...`), onProgress({ stage: "details", current: 0, total: modelIds.length, failed: 0, message: "Fetching model details" });
1351
+ let detailsDone = 0, detailsFailed = 0, detailResults = await concurrentMap(modelIds, params.workers ?? 8, async (id) => {
1352
+ try {
1353
+ return [id, await fetchModelDetails(id)];
1354
+ } catch (error) {
1355
+ throw detailsFailed++, error;
1356
+ } finally {
1357
+ detailsDone++, onProgress({
1358
+ stage: "details",
1359
+ current: detailsDone,
1360
+ total: modelIds.length,
1361
+ failed: detailsFailed,
1362
+ message: "Fetching model details"
1363
+ });
1364
+ }
1365
+ }), models = {};
1366
+ for (let result of detailResults)
1367
+ if (result.status === "fulfilled") {
1368
+ let [id, data] = result.value;
1369
+ models[id] = data;
1370
+ }
1371
+ let succeeded = Object.keys(models).length;
1372
+ if (succeeded === 0)
1373
+ throw new Error(`Failed to fetch model details${detailsFailed ? ` (${detailsFailed} failed)` : ""}`);
1374
+ return notify(`Fetched ${succeeded} model details${detailsFailed ? ` (${detailsFailed} failed)` : ""}`, "info"), onProgress({
1375
+ stage: "done",
1376
+ current: Object.keys(models).length,
1377
+ total: Object.keys(models).length,
1378
+ message: "Done"
1379
+ }), models;
1380
+ }
1381
+ async function fetchModels(ctx, onProgress) {
1382
+ try {
1383
+ return await refreshOllamaCloudModels({
1384
+ notify: (message, level) => ctx.ui.notify(message, level),
1385
+ onProgress
1386
+ });
1387
+ } catch (error) {
1388
+ return ctx.ui.notify(error instanceof Error ? error.message : String(error), "error"), null;
1389
+ }
1390
+ }
1391
+
1392
+ // packages/coding-agent/dist/builtin-extensions/pi-ollama-cloud/index.js
1393
+ function registerProvider(pi, models) {
1394
+ pi.registerProvider("ollama-cloud", {
1395
+ name: "Ollama Cloud",
1396
+ baseUrl: `${OLLAMA_BASE}/v1`,
1397
+ apiKey: "$OLLAMA_API_KEY",
1398
+ api: "openai-completions",
1399
+ models
1400
+ });
1401
+ }
1402
+ function renderProgressBar(current, total, width = 15) {
1403
+ if (total <= 0)
1404
+ return `[${"\u2591".repeat(width)}]`;
1405
+ let ratio = Math.max(0, Math.min(1, current / total)), filled = Math.round(ratio * width);
1406
+ return `[${"\u2588".repeat(filled)}${"\u2591".repeat(width - filled)}]`;
1407
+ }
1408
+ function createRefreshProgressUi(ctx) {
1409
+ let key = "ollama-cloud-refresh";
1410
+ return {
1411
+ update(progress) {
1412
+ let current = progress.current ?? 0, total = progress.total ?? 0;
1413
+ ctx.ui.setWidget(key, [renderProgressBar(current, total)], { placement: "belowEditor" });
1414
+ },
1415
+ clear() {
1416
+ ctx.ui.setWidget(key, void 0), ctx.ui.setStatus(key, void 0), ctx.ui.setWorkingMessage();
1417
+ }
1418
+ };
1419
+ }
1420
+ async function runRefresh(pi, ctx) {
1421
+ let progressUi = createRefreshProgressUi(ctx);
1422
+ try {
1423
+ progressUi.update({ stage: "list", message: "Starting refresh..." });
1424
+ let raw = await fetchModels(ctx, (progress) => progressUi.update(progress));
1425
+ if (!raw || Object.keys(raw).length === 0)
1426
+ return !1;
1427
+ writeCache(raw);
1428
+ let newModels = assembleModels(raw);
1429
+ return registerProvider(pi, newModels), ctx.ui.notify(`Registered ${newModels.length} Ollama Cloud models`, "info"), !0;
1430
+ } finally {
1431
+ progressUi.clear();
1432
+ }
1433
+ }
1434
+ async function pi_ollama_cloud_default(pi) {
1435
+ let cacheState = readCacheState(), models = cacheState.status === "missing" ? GENERATED_MODELS : assembleModels(cacheState.models);
1436
+ registerProvider(pi, models), globalThis[/* @__PURE__ */ Symbol.for("@lunr/ollama-cloud-refresh")] = (ctx) => runRefresh(pi, ctx);
1437
+ }
1438
+ export {
1439
+ pi_ollama_cloud_default as default
1440
+ };