@averyyy/pi-coding-agent 0.87.1-piclient.2 → 1.0.0-piclient.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 (765) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/dist/bun/cli.d.ts.map +1 -1
  3. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  4. package/dist/bun/restore-sandbox-env.js.map +1 -1
  5. package/dist/bun/runtime-setup.d.ts.map +1 -1
  6. package/dist/bun/runtime-setup.js +4 -1
  7. package/dist/bun/runtime-setup.js.map +1 -1
  8. package/dist/bun/sandbox-env-setup.d.ts.map +1 -1
  9. package/dist/bundle/chunks/anthropic-messages-UID2PALB.js +6 -0
  10. package/dist/bundle/chunks/anthropic.js +2 -2
  11. package/dist/bundle/chunks/azure-openai-responses-WK37QQ3X.js +2 -0
  12. package/dist/bundle/chunks/bedrock-converse-stream.js +3 -3
  13. package/dist/bundle/chunks/chunk-2LGHNI5Y.js +1553 -0
  14. package/dist/bundle/chunks/chunk-6D7LHLKG.js +2 -0
  15. package/dist/bundle/chunks/chunk-7JGR3GZN.js +11 -0
  16. package/dist/bundle/chunks/{chunk-FUXEF6JQ.js → chunk-CWVWZD3J.js} +2 -2
  17. package/dist/bundle/chunks/chunk-GIUN2MS4.js +16 -0
  18. package/dist/bundle/chunks/chunk-H3QXYIF7.js +31 -0
  19. package/dist/bundle/chunks/chunk-KYK7L7MP.js +127 -0
  20. package/dist/bundle/chunks/chunk-LD2P6SFZ.js +2 -0
  21. package/dist/bundle/chunks/chunk-LDPPAHPJ.js +4 -0
  22. package/dist/bundle/chunks/chunk-NEUJZQL3.js +19 -0
  23. package/dist/bundle/chunks/chunk-OI6YFHHK.js +82 -0
  24. package/dist/bundle/chunks/chunk-OSKPX3Z5.js +2 -0
  25. package/dist/bundle/chunks/{chunk-XDUWOHPL.js → chunk-S3GGRYIO.js} +2 -2
  26. package/dist/bundle/chunks/chunk-SQXKOUF6.js +2 -0
  27. package/dist/bundle/chunks/chunk-UTB4DTYQ.js +2 -0
  28. package/dist/bundle/chunks/chunk-VIV3CWXG.js +2 -0
  29. package/dist/bundle/chunks/chunk-Y5O5BZGX.js +136 -0
  30. package/dist/bundle/chunks/{chunk-UZNGGY6N.js → chunk-Z772OFUN.js} +3 -3
  31. package/dist/bundle/chunks/cli-JE36AHMI.js +51 -0
  32. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NPQN263E.js +2 -0
  33. package/dist/bundle/chunks/codemode-worker.js +354 -0
  34. package/dist/bundle/chunks/execute-UX73LR4F.js +367 -0
  35. package/dist/bundle/chunks/github-copilot.js +1 -1
  36. package/dist/bundle/chunks/google-generative-ai-OHRSHIE7.js +2 -0
  37. package/dist/bundle/chunks/google-vertex-KXEB3MVO.js +2 -0
  38. package/dist/bundle/chunks/{https-proxy-agent-2VXB7436.js → https-proxy-agent-UDEHOBGS.js} +1 -1
  39. package/dist/bundle/chunks/{lib-HGQMNYVT.js → lib-TEDK3E5I.js} +2 -2
  40. package/dist/bundle/chunks/llama-cpp-classify-XT44PI3C.js +22 -0
  41. package/dist/bundle/chunks/mistral-conversations-DKVFNQL6.js +5 -0
  42. package/dist/bundle/chunks/openai-chatgpt.js +75 -0
  43. package/dist/bundle/chunks/{openai-codex-responses-SG7PGUUZ.js → openai-codex-responses-WVERB76N.js} +2 -2
  44. package/dist/bundle/chunks/openai-codex.js +2 -2
  45. package/dist/bundle/chunks/{openai-completions-OBX42CLD.js → openai-completions-JXDDPZ23.js} +2 -2
  46. package/dist/bundle/chunks/openai-responses-WDT74L23.js +3 -0
  47. package/dist/bundle/chunks/{openrouter-images-N4XVVFSD.js → openrouter-images-ZVXWCSIM.js} +1 -1
  48. package/dist/bundle/chunks/openrouter.js +2 -2
  49. package/dist/bundle/chunks/pi-logo-animation-APS4JS6B.js +2 -0
  50. package/dist/bundle/chunks/{pi-messages-GFKBWJHZ.js → pi-messages-TM5SOOIW.js} +2 -2
  51. package/dist/bundle/chunks/radius.js +2 -2
  52. package/dist/bundle/chunks/runtime-MPXPM7VL.js +2 -0
  53. package/dist/bundle/chunks/typesafe-system-one-A4CZTQWZ.js +2 -0
  54. package/dist/bundle/chunks/virtual-modules-XLXFDFIX.js +2 -0
  55. package/dist/bundle/cli-runtime.js +1 -1
  56. package/dist/bundle/index.js +1 -1
  57. package/dist/bundle/rpc-entry.js +1 -1
  58. package/dist/cli/args.d.ts.map +1 -1
  59. package/dist/cli/args.js +6 -5
  60. package/dist/cli/args.js.map +1 -1
  61. package/dist/cli/auth-check.d.ts.map +1 -1
  62. package/dist/cli/auth-check.js.map +1 -1
  63. package/dist/cli/auth-command.d.ts.map +1 -1
  64. package/dist/cli/auth-command.js.map +1 -1
  65. package/dist/cli/config-selector.d.ts.map +1 -1
  66. package/dist/cli/config-selector.js.map +1 -1
  67. package/dist/cli/credential-print.d.ts.map +1 -1
  68. package/dist/cli/credential-print.js.map +1 -1
  69. package/dist/cli/file-processor.d.ts.map +1 -1
  70. package/dist/cli/file-processor.js.map +1 -1
  71. package/dist/cli/initial-message.d.ts +1 -1
  72. package/dist/cli/initial-message.d.ts.map +1 -1
  73. package/dist/cli/initial-message.js.map +1 -1
  74. package/dist/cli/list-models.d.ts.map +1 -1
  75. package/dist/cli/list-models.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts.map +1 -1
  77. package/dist/cli/project-trust.js.map +1 -1
  78. package/dist/cli/session-picker.d.ts.map +1 -1
  79. package/dist/cli/session-picker.js.map +1 -1
  80. package/dist/cli/setup.d.ts.map +1 -1
  81. package/dist/cli/setup.js.map +1 -1
  82. package/dist/cli/startup-ui.d.ts.map +1 -1
  83. package/dist/cli/startup-ui.js +38 -30
  84. package/dist/cli/startup-ui.js.map +1 -1
  85. package/dist/cli.d.ts.map +1 -1
  86. package/dist/config.d.ts +15 -4
  87. package/dist/config.d.ts.map +1 -1
  88. package/dist/config.js +33 -4
  89. package/dist/config.js.map +1 -1
  90. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  91. package/dist/core/agent-session-runtime.js +1 -1
  92. package/dist/core/agent-session-runtime.js.map +1 -1
  93. package/dist/core/agent-session-services.d.ts.map +1 -1
  94. package/dist/core/agent-session-services.js +13 -0
  95. package/dist/core/agent-session-services.js.map +1 -1
  96. package/dist/core/agent-session.d.ts +133 -12
  97. package/dist/core/agent-session.d.ts.map +1 -1
  98. package/dist/core/agent-session.js +598 -297
  99. package/dist/core/agent-session.js.map +1 -1
  100. package/dist/core/auth-guidance.d.ts.map +1 -1
  101. package/dist/core/auth-guidance.js.map +1 -1
  102. package/dist/core/auth-storage.d.ts.map +1 -1
  103. package/dist/core/auth-storage.js.map +1 -1
  104. package/dist/core/bash-executor.d.ts.map +1 -1
  105. package/dist/core/bash-executor.js.map +1 -1
  106. package/dist/core/bug-report-upload.d.ts.map +1 -1
  107. package/dist/core/bug-report-upload.js.map +1 -1
  108. package/dist/core/bug-report.d.ts +1 -1
  109. package/dist/core/bug-report.d.ts.map +1 -1
  110. package/dist/core/bug-report.js +1 -1
  111. package/dist/core/bug-report.js.map +1 -1
  112. package/dist/core/cache-stats.d.ts.map +1 -1
  113. package/dist/core/cache-stats.js.map +1 -1
  114. package/dist/core/cache-warmer.d.ts.map +1 -1
  115. package/dist/core/cache-warmer.js.map +1 -1
  116. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  117. package/dist/core/compaction/branch-summarization.js.map +1 -1
  118. package/dist/core/compaction/compaction.d.ts.map +1 -1
  119. package/dist/core/compaction/compaction.js +1 -22
  120. package/dist/core/compaction/compaction.js.map +1 -1
  121. package/dist/core/compaction/index.d.ts.map +1 -1
  122. package/dist/core/compaction/utils.d.ts +2 -1
  123. package/dist/core/compaction/utils.d.ts.map +1 -1
  124. package/dist/core/compaction/utils.js +25 -18
  125. package/dist/core/compaction/utils.js.map +1 -1
  126. package/dist/core/crash-log.d.ts.map +1 -1
  127. package/dist/core/crash-log.js +2 -1
  128. package/dist/core/crash-log.js.map +1 -1
  129. package/dist/core/defaults.d.ts.map +1 -1
  130. package/dist/core/diagnostics.d.ts.map +1 -1
  131. package/dist/core/event-bus.d.ts.map +1 -1
  132. package/dist/core/event-bus.js.map +1 -1
  133. package/dist/core/exec.d.ts.map +1 -1
  134. package/dist/core/exec.js.map +1 -1
  135. package/dist/core/experimental.d.ts.map +1 -1
  136. package/dist/core/experimental.js.map +1 -1
  137. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  138. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  139. package/dist/core/export-html/index.d.ts.map +1 -1
  140. package/dist/core/export-html/index.js.map +1 -1
  141. package/dist/core/export-html/template.css +10 -0
  142. package/dist/core/export-html/template.js +66 -17
  143. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  144. package/dist/core/export-html/tool-renderer.js.map +1 -1
  145. package/dist/core/extensions/index.d.ts +1 -1
  146. package/dist/core/extensions/index.d.ts.map +1 -1
  147. package/dist/core/extensions/index.js.map +1 -1
  148. package/dist/core/extensions/jiti-loader.d.ts.map +1 -1
  149. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -1
  150. package/dist/core/extensions/loader.d.ts.map +1 -1
  151. package/dist/core/extensions/loader.js +67 -5
  152. package/dist/core/extensions/loader.js.map +1 -1
  153. package/dist/core/extensions/runner.d.ts +18 -1
  154. package/dist/core/extensions/runner.d.ts.map +1 -1
  155. package/dist/core/extensions/runner.js +99 -0
  156. package/dist/core/extensions/runner.js.map +1 -1
  157. package/dist/core/extensions/types.d.ts +301 -22
  158. package/dist/core/extensions/types.d.ts.map +1 -1
  159. package/dist/core/extensions/types.js.map +1 -1
  160. package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
  161. package/dist/core/extensions/wrapper.d.ts +2 -2
  162. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  163. package/dist/core/extensions/wrapper.js +3 -3
  164. package/dist/core/extensions/wrapper.js.map +1 -1
  165. package/dist/core/footer-data-provider.d.ts.map +1 -1
  166. package/dist/core/footer-data-provider.js.map +1 -1
  167. package/dist/core/http-dispatcher.d.ts.map +1 -1
  168. package/dist/core/http-dispatcher.js.map +1 -1
  169. package/dist/core/index.d.ts.map +1 -1
  170. package/dist/core/keybindings.d.ts +1 -1
  171. package/dist/core/keybindings.d.ts.map +1 -1
  172. package/dist/core/keybindings.js +1 -1
  173. package/dist/core/keybindings.js.map +1 -1
  174. package/dist/core/mcp-servers.d.ts +125 -0
  175. package/dist/core/mcp-servers.d.ts.map +1 -0
  176. package/dist/core/mcp-servers.js +198 -0
  177. package/dist/core/mcp-servers.js.map +1 -0
  178. package/dist/core/messages.d.ts.map +1 -1
  179. package/dist/core/messages.js.map +1 -1
  180. package/dist/core/model-config.d.ts.map +1 -1
  181. package/dist/core/model-config.js.map +1 -1
  182. package/dist/core/model-registry.d.ts +15 -1
  183. package/dist/core/model-registry.d.ts.map +1 -1
  184. package/dist/core/model-registry.js +29 -0
  185. package/dist/core/model-registry.js.map +1 -1
  186. package/dist/core/model-resolver.d.ts +2 -2
  187. package/dist/core/model-resolver.d.ts.map +1 -1
  188. package/dist/core/model-resolver.js +5 -5
  189. package/dist/core/model-resolver.js.map +1 -1
  190. package/dist/core/model-runtime.d.ts +47 -3
  191. package/dist/core/model-runtime.d.ts.map +1 -1
  192. package/dist/core/model-runtime.js +189 -35
  193. package/dist/core/model-runtime.js.map +1 -1
  194. package/dist/core/models-store.d.ts.map +1 -1
  195. package/dist/core/models-store.js.map +1 -1
  196. package/dist/core/nested-tool-calls.d.ts +102 -0
  197. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  198. package/dist/core/nested-tool-calls.js +178 -0
  199. package/dist/core/nested-tool-calls.js.map +1 -0
  200. package/dist/core/output-guard.d.ts.map +1 -1
  201. package/dist/core/output-guard.js.map +1 -1
  202. package/dist/core/package-manager.d.ts +4 -0
  203. package/dist/core/package-manager.d.ts.map +1 -1
  204. package/dist/core/package-manager.js +59 -12
  205. package/dist/core/package-manager.js.map +1 -1
  206. package/dist/core/pi-client-cli-adapter.d.ts.map +1 -1
  207. package/dist/core/pi-client-cli-adapter.js.map +1 -1
  208. package/dist/core/pi-client-runtime-update.d.ts.map +1 -1
  209. package/dist/core/pi-client-runtime-update.js.map +1 -1
  210. package/dist/core/pi-manifest.d.ts.map +1 -1
  211. package/dist/core/pi-manifest.js.map +1 -1
  212. package/dist/core/pi-server-client.d.ts.map +1 -1
  213. package/dist/core/pi-server-client.js.map +1 -1
  214. package/dist/core/pi-server-protocol.d.ts.map +1 -1
  215. package/dist/core/pi-server-protocol.js.map +1 -1
  216. package/dist/core/pi-server-request.d.ts.map +1 -1
  217. package/dist/core/pi-server-request.js.map +1 -1
  218. package/dist/core/project-trust.d.ts.map +1 -1
  219. package/dist/core/project-trust.js.map +1 -1
  220. package/dist/core/prompt-templates.d.ts.map +1 -1
  221. package/dist/core/prompt-templates.js.map +1 -1
  222. package/dist/core/provider-attribution.d.ts.map +1 -1
  223. package/dist/core/provider-attribution.js.map +1 -1
  224. package/dist/core/provider-composer.d.ts +40 -21
  225. package/dist/core/provider-composer.d.ts.map +1 -1
  226. package/dist/core/provider-composer.js +92 -40
  227. package/dist/core/provider-composer.js.map +1 -1
  228. package/dist/core/radius.d.ts +2 -0
  229. package/dist/core/radius.d.ts.map +1 -1
  230. package/dist/core/radius.js +2 -0
  231. package/dist/core/radius.js.map +1 -1
  232. package/dist/core/remote-catalog-provider.d.ts +8 -1
  233. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  234. package/dist/core/remote-catalog-provider.js +21 -11
  235. package/dist/core/remote-catalog-provider.js.map +1 -1
  236. package/dist/core/resolve-config-value.d.ts.map +1 -1
  237. package/dist/core/resolve-config-value.js.map +1 -1
  238. package/dist/core/resource-loader.d.ts +7 -1
  239. package/dist/core/resource-loader.d.ts.map +1 -1
  240. package/dist/core/resource-loader.js +161 -35
  241. package/dist/core/resource-loader.js.map +1 -1
  242. package/dist/core/runtime-credentials.d.ts.map +1 -1
  243. package/dist/core/runtime-credentials.js.map +1 -1
  244. package/dist/core/sdk.d.ts +1 -1
  245. package/dist/core/sdk.d.ts.map +1 -1
  246. package/dist/core/sdk.js +25 -6
  247. package/dist/core/sdk.js.map +1 -1
  248. package/dist/core/session-cwd.d.ts.map +1 -1
  249. package/dist/core/session-cwd.js.map +1 -1
  250. package/dist/core/session-export.d.ts.map +1 -1
  251. package/dist/core/session-export.js.map +1 -1
  252. package/dist/core/session-manager.d.ts +9 -0
  253. package/dist/core/session-manager.d.ts.map +1 -1
  254. package/dist/core/session-manager.js +22 -22
  255. package/dist/core/session-manager.js.map +1 -1
  256. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  257. package/dist/core/settings-diagnostics.js.map +1 -1
  258. package/dist/core/settings-manager.d.ts +36 -4
  259. package/dist/core/settings-manager.d.ts.map +1 -1
  260. package/dist/core/settings-manager.js +75 -4
  261. package/dist/core/settings-manager.js.map +1 -1
  262. package/dist/core/skills.d.ts.map +1 -1
  263. package/dist/core/skills.js.map +1 -1
  264. package/dist/core/slash-commands.d.ts.map +1 -1
  265. package/dist/core/source-info.d.ts +8 -0
  266. package/dist/core/source-info.d.ts.map +1 -1
  267. package/dist/core/source-info.js +16 -0
  268. package/dist/core/source-info.js.map +1 -1
  269. package/dist/core/system-prompt.d.ts.map +1 -1
  270. package/dist/core/system-prompt.js +1 -1
  271. package/dist/core/system-prompt.js.map +1 -1
  272. package/dist/core/telemetry.d.ts.map +1 -1
  273. package/dist/core/telemetry.js.map +1 -1
  274. package/dist/core/timings.d.ts.map +1 -1
  275. package/dist/core/timings.js.map +1 -1
  276. package/dist/core/tools/bash.d.ts +12 -0
  277. package/dist/core/tools/bash.d.ts.map +1 -1
  278. package/dist/core/tools/bash.js +33 -2
  279. package/dist/core/tools/bash.js.map +1 -1
  280. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  281. package/dist/core/tools/edit-diff.js.map +1 -1
  282. package/dist/core/tools/edit.d.ts.map +1 -1
  283. package/dist/core/tools/edit.js.map +1 -1
  284. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  285. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  286. package/dist/core/tools/find.d.ts.map +1 -1
  287. package/dist/core/tools/find.js.map +1 -1
  288. package/dist/core/tools/grep.d.ts.map +1 -1
  289. package/dist/core/tools/grep.js.map +1 -1
  290. package/dist/core/tools/index.d.ts.map +1 -1
  291. package/dist/core/tools/index.js.map +1 -1
  292. package/dist/core/tools/ls.d.ts.map +1 -1
  293. package/dist/core/tools/ls.js.map +1 -1
  294. package/dist/core/tools/output-accumulator.d.ts +11 -0
  295. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  296. package/dist/core/tools/output-accumulator.js +36 -0
  297. package/dist/core/tools/output-accumulator.js.map +1 -1
  298. package/dist/core/tools/path-utils.d.ts.map +1 -1
  299. package/dist/core/tools/path-utils.js.map +1 -1
  300. package/dist/core/tools/powershell.d.ts.map +1 -1
  301. package/dist/core/tools/powershell.js.map +1 -1
  302. package/dist/core/tools/read.d.ts.map +1 -1
  303. package/dist/core/tools/read.js.map +1 -1
  304. package/dist/core/tools/render-utils.d.ts +6 -0
  305. package/dist/core/tools/render-utils.d.ts.map +1 -1
  306. package/dist/core/tools/render-utils.js +26 -0
  307. package/dist/core/tools/render-utils.js.map +1 -1
  308. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  309. package/dist/core/tools/renderers/bash.js +11 -32
  310. package/dist/core/tools/renderers/bash.js.map +1 -1
  311. package/dist/core/tools/renderers/edit.d.ts.map +1 -1
  312. package/dist/core/tools/renderers/edit.js.map +1 -1
  313. package/dist/core/tools/renderers/find.d.ts.map +1 -1
  314. package/dist/core/tools/renderers/find.js.map +1 -1
  315. package/dist/core/tools/renderers/grep.d.ts.map +1 -1
  316. package/dist/core/tools/renderers/grep.js.map +1 -1
  317. package/dist/core/tools/renderers/index.d.ts.map +1 -1
  318. package/dist/core/tools/renderers/index.js.map +1 -1
  319. package/dist/core/tools/renderers/ls.d.ts.map +1 -1
  320. package/dist/core/tools/renderers/ls.js.map +1 -1
  321. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  322. package/dist/core/tools/renderers/read.js +3 -2
  323. package/dist/core/tools/renderers/read.js.map +1 -1
  324. package/dist/core/tools/renderers/write.d.ts.map +1 -1
  325. package/dist/core/tools/renderers/write.js.map +1 -1
  326. package/dist/core/tools/tool-definition-wrapper.d.ts +5 -3
  327. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  328. package/dist/core/tools/tool-definition-wrapper.js +3 -1
  329. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  330. package/dist/core/tools/truncate.d.ts +14 -0
  331. package/dist/core/tools/truncate.d.ts.map +1 -1
  332. package/dist/core/tools/truncate.js +29 -0
  333. package/dist/core/tools/truncate.js.map +1 -1
  334. package/dist/core/tools/write.d.ts.map +1 -1
  335. package/dist/core/tools/write.js.map +1 -1
  336. package/dist/core/trust-manager.d.ts.map +1 -1
  337. package/dist/core/trust-manager.js +1 -0
  338. package/dist/core/trust-manager.js.map +1 -1
  339. package/dist/core/usage-totals.d.ts +2 -0
  340. package/dist/core/usage-totals.d.ts.map +1 -1
  341. package/dist/core/usage-totals.js +23 -0
  342. package/dist/core/usage-totals.js.map +1 -1
  343. package/dist/core/virtual-models.d.ts +117 -0
  344. package/dist/core/virtual-models.d.ts.map +1 -0
  345. package/dist/core/virtual-models.js +124 -0
  346. package/dist/core/virtual-models.js.map +1 -0
  347. package/dist/extensions/codemode/execute.d.ts +16 -0
  348. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  349. package/dist/extensions/codemode/execute.js +536 -0
  350. package/dist/extensions/codemode/execute.js.map +1 -0
  351. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  352. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  353. package/dist/extensions/codemode/execute.lazy.js +3 -0
  354. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  355. package/dist/extensions/codemode/index.d.ts +21 -0
  356. package/dist/extensions/codemode/index.d.ts.map +1 -0
  357. package/dist/extensions/codemode/index.js +31 -0
  358. package/dist/extensions/codemode/index.js.map +1 -0
  359. package/dist/extensions/codemode/renderer.d.ts +12 -0
  360. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  361. package/dist/extensions/codemode/renderer.js +137 -0
  362. package/dist/extensions/codemode/renderer.js.map +1 -0
  363. package/dist/extensions/codemode/tool.d.ts +123 -0
  364. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  365. package/dist/extensions/codemode/tool.js +268 -0
  366. package/dist/extensions/codemode/tool.js.map +1 -0
  367. package/dist/extensions/codemode/worker.d.ts +7 -0
  368. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  369. package/dist/extensions/codemode/worker.js +7 -0
  370. package/dist/extensions/codemode/worker.js.map +1 -0
  371. package/dist/extensions/index.d.ts.map +1 -1
  372. package/dist/extensions/index.js +11 -1
  373. package/dist/extensions/index.js.map +1 -1
  374. package/dist/extensions/llama/client.d.ts.map +1 -1
  375. package/dist/extensions/llama/client.js.map +1 -1
  376. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  377. package/dist/extensions/llama/huggingface.js.map +1 -1
  378. package/dist/extensions/llama/index.d.ts.map +1 -1
  379. package/dist/extensions/llama/index.js.map +1 -1
  380. package/dist/extensions/llama/provider.d.ts +1 -1
  381. package/dist/extensions/llama/provider.d.ts.map +1 -1
  382. package/dist/extensions/llama/provider.js +65 -13
  383. package/dist/extensions/llama/provider.js.map +1 -1
  384. package/dist/extensions/llama/ui.d.ts.map +1 -1
  385. package/dist/extensions/llama/ui.js.map +1 -1
  386. package/dist/extensions/mcp/cli.d.ts +21 -0
  387. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  388. package/dist/extensions/mcp/cli.js +500 -0
  389. package/dist/extensions/mcp/cli.js.map +1 -0
  390. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  391. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  392. package/dist/extensions/mcp/cli.lazy.js +3 -0
  393. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  394. package/dist/extensions/mcp/config.d.ts +72 -0
  395. package/dist/extensions/mcp/config.d.ts.map +1 -0
  396. package/dist/extensions/mcp/config.js +158 -0
  397. package/dist/extensions/mcp/config.js.map +1 -0
  398. package/dist/extensions/mcp/index.d.ts +76 -0
  399. package/dist/extensions/mcp/index.d.ts.map +1 -0
  400. package/dist/extensions/mcp/index.js +1066 -0
  401. package/dist/extensions/mcp/index.js.map +1 -0
  402. package/dist/extensions/mcp/log.d.ts +16 -0
  403. package/dist/extensions/mcp/log.d.ts.map +1 -0
  404. package/dist/extensions/mcp/log.js +66 -0
  405. package/dist/extensions/mcp/log.js.map +1 -0
  406. package/dist/extensions/mcp/oauth.d.ts +97 -0
  407. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  408. package/dist/extensions/mcp/oauth.js +358 -0
  409. package/dist/extensions/mcp/oauth.js.map +1 -0
  410. package/dist/extensions/mcp/resources.d.ts +43 -0
  411. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  412. package/dist/extensions/mcp/resources.js +262 -0
  413. package/dist/extensions/mcp/resources.js.map +1 -0
  414. package/dist/extensions/mcp/runtime.d.ts +98 -0
  415. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  416. package/dist/extensions/mcp/runtime.js +395 -0
  417. package/dist/extensions/mcp/runtime.js.map +1 -0
  418. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  419. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  420. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  421. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  422. package/dist/extensions/mcp/tools.d.ts +84 -0
  423. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  424. package/dist/extensions/mcp/tools.js +251 -0
  425. package/dist/extensions/mcp/tools.js.map +1 -0
  426. package/dist/extensions/mcp/ui.d.ts +60 -0
  427. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  428. package/dist/extensions/mcp/ui.js +174 -0
  429. package/dist/extensions/mcp/ui.js.map +1 -0
  430. package/dist/extensions/tool-search/index.d.ts +12 -0
  431. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  432. package/dist/extensions/tool-search/index.js +15 -0
  433. package/dist/extensions/tool-search/index.js.map +1 -0
  434. package/dist/extensions/tool-search/tool.d.ts +73 -0
  435. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  436. package/dist/extensions/tool-search/tool.js +189 -0
  437. package/dist/extensions/tool-search/tool.js.map +1 -0
  438. package/dist/index.d.ts +10 -3
  439. package/dist/index.d.ts.map +1 -1
  440. package/dist/index.js +5 -0
  441. package/dist/index.js.map +1 -1
  442. package/dist/main.d.ts.map +1 -1
  443. package/dist/main.js +16 -0
  444. package/dist/main.js.map +1 -1
  445. package/dist/migrations.d.ts.map +1 -1
  446. package/dist/migrations.js.map +1 -1
  447. package/dist/modes/index.d.ts.map +1 -1
  448. package/dist/modes/interactive/bug-report.d.ts.map +1 -1
  449. package/dist/modes/interactive/bug-report.js.map +1 -1
  450. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -1
  451. package/dist/modes/interactive/chat-viewport.js.map +1 -1
  452. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  453. package/dist/modes/interactive/components/armin.js.map +1 -1
  454. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  455. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  456. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  457. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  458. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  459. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  460. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  461. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  462. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  463. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  464. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  465. package/dist/modes/interactive/components/config-selector.js +13 -3
  466. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  467. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  468. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  469. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  470. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  471. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  472. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  473. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  474. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  475. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  476. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  477. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  478. package/dist/modes/interactive/components/diff.js.map +1 -1
  479. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  480. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  481. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  482. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  483. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  484. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  485. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  486. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  487. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  488. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  489. package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
  490. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  491. package/dist/modes/interactive/components/first-time-setup.js +8 -2
  492. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  493. package/dist/modes/interactive/components/footer.d.ts +7 -0
  494. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  495. package/dist/modes/interactive/components/footer.js +43 -3
  496. package/dist/modes/interactive/components/footer.js.map +1 -1
  497. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  498. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  499. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  500. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  501. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  502. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  503. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  504. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  505. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  506. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  507. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  508. package/dist/modes/interactive/components/oauth-selector.d.ts +8 -2
  509. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/oauth-selector.js +24 -21
  511. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  512. package/dist/modes/interactive/components/pi-logo-animation.d.ts +68 -0
  513. package/dist/modes/interactive/components/pi-logo-animation.d.ts.map +1 -0
  514. package/dist/modes/interactive/components/pi-logo-animation.js +1086 -0
  515. package/dist/modes/interactive/components/pi-logo-animation.js.map +1 -0
  516. package/dist/modes/interactive/components/pi-logo-animation.lazy.d.ts +7 -0
  517. package/dist/modes/interactive/components/pi-logo-animation.lazy.d.ts.map +1 -0
  518. package/dist/modes/interactive/components/pi-logo-animation.lazy.js +12 -0
  519. package/dist/modes/interactive/components/pi-logo-animation.lazy.js.map +1 -0
  520. package/dist/modes/interactive/components/pi-logo.d.ts +19 -0
  521. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  522. package/dist/modes/interactive/components/pi-logo.js +37 -0
  523. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  524. package/dist/modes/interactive/components/radius-login-selector.d.ts +15 -0
  525. package/dist/modes/interactive/components/radius-login-selector.d.ts.map +1 -0
  526. package/dist/modes/interactive/components/radius-login-selector.js +85 -0
  527. package/dist/modes/interactive/components/radius-login-selector.js.map +1 -0
  528. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  530. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  531. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  532. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  534. package/dist/modes/interactive/components/settings-selector.d.ts +6 -4
  535. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  536. package/dist/modes/interactive/components/settings-selector.js +33 -11
  537. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  538. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  539. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  540. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  541. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  542. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  543. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  544. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  546. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  547. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  548. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  549. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  550. package/dist/modes/interactive/components/themed-text.js +29 -0
  551. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  552. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  553. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  554. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  555. package/dist/modes/interactive/components/tool-execution.js +2 -2
  556. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  557. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  558. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  559. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  560. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  561. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  562. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  563. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  564. package/dist/modes/interactive/components/user-message.js +5 -4
  565. package/dist/modes/interactive/components/user-message.js.map +1 -1
  566. package/dist/modes/interactive/components/visual-truncate.d.ts +27 -3
  567. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  568. package/dist/modes/interactive/components/visual-truncate.js +39 -6
  569. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  570. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  571. package/dist/modes/interactive/external-editor.js.map +1 -1
  572. package/dist/modes/interactive/interactive-mode.d.ts +21 -0
  573. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  574. package/dist/modes/interactive/interactive-mode.js +348 -197
  575. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  576. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  577. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  578. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  579. package/dist/modes/interactive/model-search.js.map +1 -1
  580. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  581. package/dist/modes/interactive/session-share.js.map +1 -1
  582. package/dist/modes/interactive/theme/dark.json +59 -72
  583. package/dist/modes/interactive/theme/light.json +57 -69
  584. package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
  585. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  586. package/dist/modes/interactive/theme/system-theme.js +546 -0
  587. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  588. package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
  589. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  590. package/dist/modes/interactive/theme/theme-controller.js +127 -47
  591. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  592. package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
  593. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
  594. package/dist/modes/interactive/theme/theme-json.js +3 -1
  595. package/dist/modes/interactive/theme/theme-json.js.map +1 -1
  596. package/dist/modes/interactive/theme/theme-schema.json +7 -2
  597. package/dist/modes/interactive/theme/theme.d.ts +66 -39
  598. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  599. package/dist/modes/interactive/theme/theme.js +238 -317
  600. package/dist/modes/interactive/theme/theme.js.map +1 -1
  601. package/dist/modes/interactive/tui-renderer.d.ts +2 -1
  602. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  603. package/dist/modes/interactive/tui-renderer.js +1 -0
  604. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  605. package/dist/modes/json-event.d.ts.map +1 -1
  606. package/dist/modes/json-event.js.map +1 -1
  607. package/dist/modes/print-mode.d.ts.map +1 -1
  608. package/dist/modes/print-mode.js.map +1 -1
  609. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  610. package/dist/modes/rpc/jsonl.js.map +1 -1
  611. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  612. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  613. package/dist/modes/rpc/rpc-client.js +12 -8
  614. package/dist/modes/rpc/rpc-client.js.map +1 -1
  615. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  616. package/dist/modes/rpc/rpc-mode.js +7 -9
  617. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  618. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  619. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  620. package/dist/modes/rpc/rpc-types.js.map +1 -1
  621. package/dist/package-manager-cli.d.ts.map +1 -1
  622. package/dist/package-manager-cli.js +6 -2
  623. package/dist/package-manager-cli.js.map +1 -1
  624. package/dist/pi-client-cli.d.ts.map +1 -1
  625. package/dist/pi-client-cli.js.map +1 -1
  626. package/dist/rpc-entry.d.ts.map +1 -1
  627. package/dist/rpc-entry.js.map +1 -1
  628. package/dist/utils/abort.d.ts.map +1 -1
  629. package/dist/utils/abort.js.map +1 -1
  630. package/dist/utils/ansi.d.ts.map +1 -1
  631. package/dist/utils/ansi.js.map +1 -1
  632. package/dist/utils/changelog.d.ts.map +1 -1
  633. package/dist/utils/changelog.js.map +1 -1
  634. package/dist/utils/child-process.d.ts.map +1 -1
  635. package/dist/utils/child-process.js.map +1 -1
  636. package/dist/utils/clipboard-command.d.ts.map +1 -1
  637. package/dist/utils/clipboard-command.js.map +1 -1
  638. package/dist/utils/clipboard-image.d.ts.map +1 -1
  639. package/dist/utils/clipboard-image.js +14 -17
  640. package/dist/utils/clipboard-image.js.map +1 -1
  641. package/dist/utils/clipboard.d.ts +2 -0
  642. package/dist/utils/clipboard.d.ts.map +1 -1
  643. package/dist/utils/clipboard.js +5 -0
  644. package/dist/utils/clipboard.js.map +1 -1
  645. package/dist/utils/deprecation.d.ts.map +1 -1
  646. package/dist/utils/deprecation.js.map +1 -1
  647. package/dist/utils/exif-orientation.d.ts.map +1 -1
  648. package/dist/utils/exif-orientation.js.map +1 -1
  649. package/dist/utils/frontmatter.d.ts.map +1 -1
  650. package/dist/utils/frontmatter.js.map +1 -1
  651. package/dist/utils/fs-watch.d.ts.map +1 -1
  652. package/dist/utils/fs-watch.js.map +1 -1
  653. package/dist/utils/git.d.ts.map +1 -1
  654. package/dist/utils/git.js.map +1 -1
  655. package/dist/utils/html.d.ts.map +1 -1
  656. package/dist/utils/html.js.map +1 -1
  657. package/dist/utils/image-convert.d.ts.map +1 -1
  658. package/dist/utils/image-convert.js.map +1 -1
  659. package/dist/utils/image-process.d.ts.map +1 -1
  660. package/dist/utils/image-process.js.map +1 -1
  661. package/dist/utils/image-resize-core.d.ts.map +1 -1
  662. package/dist/utils/image-resize-core.js.map +1 -1
  663. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  664. package/dist/utils/image-resize-worker.js.map +1 -1
  665. package/dist/utils/image-resize.d.ts.map +1 -1
  666. package/dist/utils/image-resize.js.map +1 -1
  667. package/dist/utils/json.d.ts.map +1 -1
  668. package/dist/utils/json.js.map +1 -1
  669. package/dist/utils/management-http.d.ts.map +1 -1
  670. package/dist/utils/management-http.js.map +1 -1
  671. package/dist/utils/mime.d.ts.map +1 -1
  672. package/dist/utils/mime.js.map +1 -1
  673. package/dist/utils/open-browser.d.ts.map +1 -1
  674. package/dist/utils/open-browser.js.map +1 -1
  675. package/dist/utils/paths.d.ts +3 -3
  676. package/dist/utils/paths.d.ts.map +1 -1
  677. package/dist/utils/paths.js +5 -4
  678. package/dist/utils/paths.js.map +1 -1
  679. package/dist/utils/photon.d.ts.map +1 -1
  680. package/dist/utils/photon.js.map +1 -1
  681. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  682. package/dist/utils/pi-user-agent.js.map +1 -1
  683. package/dist/utils/shell.d.ts +1 -3
  684. package/dist/utils/shell.d.ts.map +1 -1
  685. package/dist/utils/shell.js +3 -30
  686. package/dist/utils/shell.js.map +1 -1
  687. package/dist/utils/sleep.d.ts.map +1 -1
  688. package/dist/utils/sleep.js.map +1 -1
  689. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  690. package/dist/utils/syntax-highlight.js +2 -0
  691. package/dist/utils/syntax-highlight.js.map +1 -1
  692. package/dist/utils/text.d.ts.map +1 -1
  693. package/dist/utils/text.js.map +1 -1
  694. package/dist/utils/tool-result-images.d.ts.map +1 -1
  695. package/dist/utils/tool-result-images.js.map +1 -1
  696. package/dist/utils/tools-manager.d.ts.map +1 -1
  697. package/dist/utils/tools-manager.js.map +1 -1
  698. package/dist/utils/version-check.d.ts.map +1 -1
  699. package/dist/utils/version-check.js.map +1 -1
  700. package/dist/utils/windows-self-update.d.ts.map +1 -1
  701. package/dist/utils/windows-self-update.js.map +1 -1
  702. package/dist/utils/wsl.d.ts.map +1 -1
  703. package/dist/utils/wsl.js.map +1 -1
  704. package/dist/utils/zip.d.ts.map +1 -1
  705. package/dist/utils/zip.js.map +1 -1
  706. package/docs/cli.md +58 -7
  707. package/docs/codemode.md +207 -0
  708. package/docs/configuration.md +2 -0
  709. package/docs/custom-provider.md +43 -4
  710. package/docs/docs.json +13 -1
  711. package/docs/environment-variables.md +2 -2
  712. package/docs/extensions.md +55 -0
  713. package/docs/index.md +1 -1
  714. package/docs/keybindings.md +1 -1
  715. package/docs/llama-cpp.md +13 -0
  716. package/docs/mcp.md +248 -0
  717. package/docs/models.md +57 -1
  718. package/docs/packages.md +4 -2
  719. package/docs/providers.md +19 -6
  720. package/docs/rpc-commands.md +9 -3
  721. package/docs/rpc.md +3 -1
  722. package/docs/sdk.md +8 -3
  723. package/docs/security.md +2 -0
  724. package/docs/session-format.md +5 -1
  725. package/docs/settings.md +24 -5
  726. package/docs/themes.md +33 -7
  727. package/docs/tui.md +18 -0
  728. package/docs/usage.md +1 -1
  729. package/docs/virtual-models.md +114 -0
  730. package/docs/windows.md +2 -0
  731. package/examples/README.md +1 -1
  732. package/examples/extensions/README.md +2 -0
  733. package/examples/extensions/built-in-tool-renderer.ts +16 -40
  734. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  735. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  736. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  737. package/examples/extensions/custom-provider-gitlab-duo/test.ts +5 -5
  738. package/examples/extensions/debug-provider.ts +90 -0
  739. package/examples/extensions/gondolin/package-lock.json +2 -2
  740. package/examples/extensions/gondolin/package.json +1 -1
  741. package/examples/extensions/jev-router.ts +113 -0
  742. package/examples/extensions/minimal-mode.ts +24 -96
  743. package/examples/extensions/sandbox/package-lock.json +2 -2
  744. package/examples/extensions/sandbox/package.json +1 -1
  745. package/examples/extensions/with-deps/package-lock.json +2 -2
  746. package/examples/extensions/with-deps/package.json +1 -1
  747. package/examples/rpc-client.ts +1 -1
  748. package/examples/rpc-extension-ui.ts +1 -1
  749. package/examples/sdk/14-codemode-mcp.ts +61 -0
  750. package/examples/sdk/README.md +2 -1
  751. package/package.json +14 -12
  752. package/dist/bundle/chunks/anthropic-messages-J5WXPPPC.js +0 -6
  753. package/dist/bundle/chunks/azure-openai-responses-QJ7SPP5M.js +0 -2
  754. package/dist/bundle/chunks/chunk-6R7UI4IY.js +0 -2
  755. package/dist/bundle/chunks/chunk-BZKWNWMI.js +0 -2
  756. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  757. package/dist/bundle/chunks/chunk-RCZIEVGO.js +0 -11
  758. package/dist/bundle/chunks/chunk-S7SZN6Z3.js +0 -2
  759. package/dist/bundle/chunks/chunk-X2F52Z34.js +0 -1685
  760. package/dist/bundle/chunks/chunk-XNGRGP62.js +0 -2
  761. package/dist/bundle/chunks/google-generative-ai-IMS5EK2Y.js +0 -2
  762. package/dist/bundle/chunks/google-vertex-O4YJEQUW.js +0 -2
  763. package/dist/bundle/chunks/mistral-conversations-NOSQHBEY.js +0 -5
  764. package/dist/bundle/chunks/openai-responses-AH7QTG23.js +0 -2
  765. package/dist/bundle/chunks/virtual-modules-WWGGM27U.js +0 -2
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- function isProviderError(error){return!(error instanceof Error)||!("status"in error)||!("headers"in error)?!1:(error.status===void 0||typeof error.status=="number")&&(error.headers===void 0||error.headers instanceof Headers)}function isRetryableProviderError(error){let shouldRetry=error.headers?.get("x-should-retry");return shouldRetry==="true"?!0:shouldRetry==="false"?!1:error.status===void 0?!0:error.status===408||error.status===409||error.status===429||typeof error.status=="number"&&error.status>=500}function validateServerRetryDelayMs(delayMs,maxRetryDelayMs,providerErrorMessage){let maxDelayMs=maxRetryDelayMs??6e4;if(maxDelayMs>0&&delayMs>maxDelayMs)throw new Error(`Server requested ${Math.ceil(delayMs/1e3)}s retry delay (max: ${Math.ceil(maxDelayMs/1e3)}s). ${providerErrorMessage}`);return delayMs}function getRetryDelayMs(error,retryIndex,maxRetryDelayMs){let retryAfterMs=error.headers?.get("retry-after-ms");if(retryAfterMs){let value=Number.parseFloat(retryAfterMs);if(!Number.isNaN(value))return validateServerRetryDelayMs(value,maxRetryDelayMs,error.message)}let retryAfter=error.headers?.get("retry-after");if(retryAfter){let seconds=Number.parseFloat(retryAfter),delayMs=Number.isNaN(seconds)?Date.parse(retryAfter)-Date.now():seconds*1e3;return validateServerRetryDelayMs(delayMs,maxRetryDelayMs,error.message)}return Math.min(.5*2**retryIndex,8)*1e3*(1-Math.random()*.25)}function createAbortError(){let error=new Error("Request aborted");return error.name="AbortError",error}function abortableSleep(ms,signal){return new Promise((resolve,reject)=>{if(signal?.aborted){reject(createAbortError());return}let onAbort=()=>{clearTimeout(timeout),reject(createAbortError())},timeout=setTimeout(()=>{signal?.removeEventListener("abort",onAbort),resolve()},Math.max(0,ms));signal?.addEventListener("abort",onAbort,{once:!0})})}async function retryProviderRequest(request,options={}){let maxRetries=options.maxRetries??0,retriesRemaining=maxRetries;for(;;)try{return await request()}catch(error){if(options.signal?.aborted)throw createAbortError();if(retriesRemaining<=0||!isProviderError(error)||!isRetryableProviderError(error))throw error;let retryIndex=maxRetries-retriesRemaining;retriesRemaining--,await abortableSleep(getRetryDelayMs(error,retryIndex,options.maxRetryDelayMs),options.signal)}}export{retryProviderRequest};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{GoogleGenAI,convertMessages,convertTools,getDisabledGoogleThinkingConfig,isThinkingPart,mapStopReason,resolveGoogleFunctionCallingMode,resolveGoogleThinkingLevel,retainThoughtSignature,retryGoogleRequest,supportsGoogleStrictToolSampling,toGoogleSdkThinkingLevel,toGoogleThinkingLevel,usesGoogleThinkingLevel}from"./chunk-FUXEF6JQ.js";import{formatProviderError,normalizeProviderError}from"./chunk-TEPMHNKQ.js";import"./chunk-XNGRGP62.js";import{buildBaseOptions,getPiUserAgent}from"./chunk-S7SZN6Z3.js";import{sanitizeSurrogates}from"./chunk-L2ZPNLYD.js";import{providerHeadersToRecord}from"./chunk-6R7UI4IY.js";import{calculateCost,clampThinkingLevel,collapseSystemMessages,getCurrentTools,getInitialSystemMessage,getSystemMessageText}from"./chunk-RCZIEVGO.js";import{AssistantMessageEventStream}from"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var toolCallCounter=0,stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream,normalizedContext=collapseSystemMessages(context);return(async()=>{let output={role:"assistant",content:[],api:"google-generative-ai",provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{if(options?.fetch&&options.fetch!==globalThis.fetch)throw new Error("Custom fetch is not supported by the Google Generative AI adapter");let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let client=createClient(model,apiKey,options?.headers),params=buildParams(model,normalizedContext,options),nextParams=await options?.onPayload?.(params,model);nextParams!==void 0&&(params=nextParams);let googleStream=await retryGoogleRequest(()=>client.models.generateContentStream(params),options);stream2.push({type:"start",partial:output});let currentBlock=null,blocks=output.content,blockIndex=()=>blocks.length-1;for await(let chunk of googleStream){output.responseId||=chunk.responseId;let candidate=chunk.candidates?.[0];if(candidate?.content?.parts)for(let part of candidate.content.parts){if(part.text!==void 0){let isThinking=isThinkingPart(part);(!currentBlock||isThinking&&currentBlock.type!=="thinking"||!isThinking&&currentBlock.type!=="text")&&(currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blocks.length-1,content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output})),isThinking?(currentBlock={type:"thinking",thinking:"",thinkingSignature:void 0},output.content.push(currentBlock),stream2.push({type:"thinking_start",contentIndex:blockIndex(),partial:output})):(currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output}))),currentBlock.type==="thinking"?(currentBlock.thinking+=part.text,currentBlock.thinkingSignature=retainThoughtSignature(currentBlock.thinkingSignature,part.thoughtSignature),stream2.push({type:"thinking_delta",contentIndex:blockIndex(),delta:part.text,partial:output})):(currentBlock.text+=part.text,currentBlock.textSignature=retainThoughtSignature(currentBlock.textSignature,part.thoughtSignature),stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:part.text,partial:output}))}if(part.functionCall){currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blockIndex(),content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output}),currentBlock=null);let providedId=part.functionCall.id,toolCall={type:"toolCall",id:!providedId||output.content.some(b=>b.type==="toolCall"&&b.id===providedId)?`${part.functionCall.name}_${Date.now()}_${++toolCallCounter}`:providedId,name:part.functionCall.name||"",arguments:part.functionCall.args??{},...part.thoughtSignature&&{thoughtSignature:part.thoughtSignature}};output.content.push(toolCall),stream2.push({type:"toolcall_start",contentIndex:blockIndex(),partial:output}),stream2.push({type:"toolcall_delta",contentIndex:blockIndex(),delta:JSON.stringify(toolCall.arguments),partial:output}),stream2.push({type:"toolcall_end",contentIndex:blockIndex(),toolCall,partial:output})}}candidate?.finishReason&&(output.rawStopReason=candidate.finishReason,output.stopReason=mapStopReason(candidate.finishReason),output.content.some(b=>b.type==="toolCall")&&output.stopReason==="stop"&&(output.stopReason="toolUse")),chunk.usageMetadata&&(output.usage={input:(chunk.usageMetadata.promptTokenCount||0)-(chunk.usageMetadata.cachedContentTokenCount||0),output:(chunk.usageMetadata.candidatesTokenCount||0)+(chunk.usageMetadata.thoughtsTokenCount||0),cacheRead:chunk.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:chunk.usageMetadata.thoughtsTokenCount||0,totalTokens:chunk.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},calculateCost(model,output.usage))}if(currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blockIndex(),content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output})),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("Google stream ended without a finish reason");if(output.stopReason==="aborted"||output.stopReason==="error"){let errorMessage=output.rawStopReason?`Provider stopped with: ${output.rawStopReason}`:"An unknown error occurred";throw new Error(errorMessage)}stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)"index"in block&&delete block.index;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatProviderError(normalizeProviderError(error)),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let base={...buildBaseOptions(model,context,options,apiKey),toolChoice:options?.toolChoice};if(!options?.reasoning)return stream(model,context,{...base,thinking:{enabled:!1}});let clampedReasoning=clampThinkingLevel(model,options.reasoning);if(clampedReasoning==="off")return stream(model,context,{...base,thinking:{enabled:!1}});let resolvedLevel=resolveGoogleThinkingLevel(model,clampedReasoning);return usesGoogleThinkingLevel(model)?stream(model,context,{...base,thinking:{enabled:!0,level:toGoogleThinkingLevel(resolvedLevel)}}):stream(model,context,{...base,thinking:{enabled:!0,budgetTokens:getGoogleBudget(model,resolvedLevel,options.thinkingBudgets)}})};function createClient(model,apiKey,optionsHeaders){let httpOptions={};model.baseUrl&&(httpOptions.baseUrl=model.baseUrl,httpOptions.apiVersion="");let headers=providerHeadersToRecord({"User-Agent":getPiUserAgent(),...model.headers,...optionsHeaders});return headers&&(httpOptions.headers=headers),new GoogleGenAI({apiKey,httpOptions:Object.keys(httpOptions).length>0?httpOptions:void 0})}function buildParams(model,context,options={}){let contents=convertMessages(model,context),initialSystemMessage=getInitialSystemMessage(context.messages),currentTools=getCurrentTools(context.messages),generationConfig={};options.temperature!==void 0&&(generationConfig.temperature=options.temperature),options.maxTokens!==void 0&&(generationConfig.maxOutputTokens=options.maxTokens);let supportsStrictMode=supportsGoogleStrictToolSampling(model.id),functionCallingMode=currentTools.length>0?resolveGoogleFunctionCallingMode(currentTools,options.toolChoice,supportsStrictMode):void 0,systemInstruction=initialSystemMessage?getSystemMessageText(initialSystemMessage):"",config={...Object.keys(generationConfig).length>0&&generationConfig,...systemInstruction&&{systemInstruction:sanitizeSurrogates(systemInstruction)},...currentTools.length>0&&{tools:convertTools(currentTools,!1,supportsStrictMode)},...functionCallingMode!==void 0&&{toolConfig:{functionCallingConfig:{mode:functionCallingMode}}}};if(options.thinking?.enabled&&model.reasoning){let thinkingConfig={includeThoughts:!0};options.thinking.level!==void 0?thinkingConfig.thinkingLevel=toGoogleSdkThinkingLevel(options.thinking.level):options.thinking.budgetTokens!==void 0&&(thinkingConfig.thinkingBudget=options.thinking.budgetTokens),config.thinkingConfig=thinkingConfig}else model.reasoning&&options.thinking&&!options.thinking.enabled&&(config.thinkingConfig=getDisabledGoogleThinkingConfig(model));if(options.signal){if(options.signal.aborted)throw new Error("Request aborted");config.abortSignal=options.signal}return{model:model.id,contents,config}}function getGoogleBudget(model,level,customBudgets){return customBudgets?.[level]!==void 0?customBudgets[level]:model.id.includes("2.5-pro")?{minimal:128,low:2048,medium:8192,high:32768}[level]:model.id.includes("2.5-flash-lite")?{minimal:512,low:2048,medium:8192,high:24576}[level]:model.id.includes("2.5-flash")?{minimal:128,low:2048,medium:8192,high:24576}[level]:-1}export{stream,streamSimple};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{GoogleGenAI,ResourceScope,convertMessages,convertTools,getDisabledGoogleThinkingConfig,isThinkingPart,mapStopReason,resolveGoogleFunctionCallingMode,resolveGoogleThinkingLevel,retainThoughtSignature,retryGoogleRequest,supportsGoogleStrictToolSampling,toGoogleSdkThinkingLevel,toGoogleThinkingLevel,usesGoogleThinkingLevel}from"./chunk-FUXEF6JQ.js";import{formatProviderError,normalizeProviderError}from"./chunk-TEPMHNKQ.js";import"./chunk-XNGRGP62.js";import{buildBaseOptions,getPiUserAgent}from"./chunk-S7SZN6Z3.js";import{sanitizeSurrogates}from"./chunk-L2ZPNLYD.js";import{providerHeadersToRecord}from"./chunk-6R7UI4IY.js";import{getProviderEnvValue}from"./chunk-DRQDKNXA.js";import{calculateCost,clampThinkingLevel,collapseSystemMessages,getCurrentTools,getInitialSystemMessage,getSystemMessageText}from"./chunk-RCZIEVGO.js";import{AssistantMessageEventStream}from"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var API_VERSION="v1",GCP_VERTEX_CREDENTIALS_MARKER="gcp-vertex-credentials",toolCallCounter=0,stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream,normalizedContext=collapseSystemMessages(context);return(async()=>{let output={role:"assistant",content:[],api:"google-vertex",provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{if(options?.fetch&&options.fetch!==globalThis.fetch)throw new Error("Custom fetch is not supported by the Google Vertex adapter");let apiKey=resolveApiKey(options),client=apiKey?createClientWithApiKey(model,apiKey,options?.headers):createClient(model,resolveProject(options),resolveLocation(options),options?.headers,options?.env),params=buildParams(model,normalizedContext,options),nextParams=await options?.onPayload?.(params,model);nextParams!==void 0&&(params=nextParams);let googleStream=await retryGoogleRequest(()=>client.models.generateContentStream(params),options);stream2.push({type:"start",partial:output});let currentBlock=null,blocks=output.content,blockIndex=()=>blocks.length-1;for await(let chunk of googleStream){output.responseId||=chunk.responseId;let candidate=chunk.candidates?.[0];if(candidate?.content?.parts)for(let part of candidate.content.parts){if(part.text!==void 0){let isThinking=isThinkingPart(part);(!currentBlock||isThinking&&currentBlock.type!=="thinking"||!isThinking&&currentBlock.type!=="text")&&(currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blocks.length-1,content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output})),isThinking?(currentBlock={type:"thinking",thinking:"",thinkingSignature:void 0},output.content.push(currentBlock),stream2.push({type:"thinking_start",contentIndex:blockIndex(),partial:output})):(currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output}))),currentBlock.type==="thinking"?(currentBlock.thinking+=part.text,currentBlock.thinkingSignature=retainThoughtSignature(currentBlock.thinkingSignature,part.thoughtSignature),stream2.push({type:"thinking_delta",contentIndex:blockIndex(),delta:part.text,partial:output})):(currentBlock.text+=part.text,currentBlock.textSignature=retainThoughtSignature(currentBlock.textSignature,part.thoughtSignature),stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:part.text,partial:output}))}if(part.functionCall){currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blockIndex(),content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output}),currentBlock=null);let providedId=part.functionCall.id,toolCall={type:"toolCall",id:!providedId||output.content.some(b=>b.type==="toolCall"&&b.id===providedId)?`${part.functionCall.name}_${Date.now()}_${++toolCallCounter}`:providedId,name:part.functionCall.name||"",arguments:part.functionCall.args??{},...part.thoughtSignature&&{thoughtSignature:part.thoughtSignature}};output.content.push(toolCall),stream2.push({type:"toolcall_start",contentIndex:blockIndex(),partial:output}),stream2.push({type:"toolcall_delta",contentIndex:blockIndex(),delta:JSON.stringify(toolCall.arguments),partial:output}),stream2.push({type:"toolcall_end",contentIndex:blockIndex(),toolCall,partial:output})}}candidate?.finishReason&&(output.rawStopReason=candidate.finishReason,output.stopReason=mapStopReason(candidate.finishReason),output.content.some(b=>b.type==="toolCall")&&output.stopReason==="stop"&&(output.stopReason="toolUse")),chunk.usageMetadata&&(output.usage={input:(chunk.usageMetadata.promptTokenCount||0)-(chunk.usageMetadata.cachedContentTokenCount||0),output:(chunk.usageMetadata.candidatesTokenCount||0)+(chunk.usageMetadata.thoughtsTokenCount||0),cacheRead:chunk.usageMetadata.cachedContentTokenCount||0,cacheWrite:0,reasoning:chunk.usageMetadata.thoughtsTokenCount||0,totalTokens:chunk.usageMetadata.totalTokenCount||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},calculateCost(model,output.usage))}if(currentBlock&&(currentBlock.type==="text"?stream2.push({type:"text_end",contentIndex:blockIndex(),content:currentBlock.text,partial:output}):stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:currentBlock.thinking,partial:output})),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("Google Vertex stream ended without a finish reason");if(output.stopReason==="aborted"||output.stopReason==="error"){let errorMessage=output.rawStopReason?`Provider stopped with: ${output.rawStopReason}`:"An unknown error occurred";throw new Error(errorMessage)}stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)"index"in block&&delete block.index;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatProviderError(normalizeProviderError(error)),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{let base={...buildBaseOptions(model,context,options,void 0),toolChoice:options?.toolChoice};if(!options?.reasoning)return stream(model,context,{...base,thinking:{enabled:!1}});let clampedReasoning=clampThinkingLevel(model,options.reasoning);if(clampedReasoning==="off")return stream(model,context,{...base,thinking:{enabled:!1}});let resolvedLevel=resolveGoogleThinkingLevel(model,clampedReasoning);return usesGoogleThinkingLevel(model)?stream(model,context,{...base,thinking:{enabled:!0,level:toGoogleThinkingLevel(resolvedLevel)}}):stream(model,context,{...base,thinking:{enabled:!0,budgetTokens:getGoogleBudget(model,resolvedLevel,options.thinkingBudgets)}})};function createClient(model,project,location,optionsHeaders,env){let googleAuthOptions=buildGoogleAuthOptions(env);return new GoogleGenAI({vertexai:!0,project,location,apiVersion:API_VERSION,...googleAuthOptions?{googleAuthOptions}:{},httpOptions:buildHttpOptions(model,optionsHeaders)})}function createClientWithApiKey(model,apiKey,optionsHeaders){return new GoogleGenAI({vertexai:!0,apiKey,apiVersion:API_VERSION,httpOptions:buildHttpOptions(model,optionsHeaders)})}function buildHttpOptions(model,optionsHeaders){let httpOptions={},baseUrl=resolveCustomBaseUrl(model.baseUrl);baseUrl&&(httpOptions.baseUrl=baseUrl,httpOptions.baseUrlResourceScope=ResourceScope.COLLECTION,baseUrlIncludesApiVersion(baseUrl)&&(httpOptions.apiVersion=""));let headers=providerHeadersToRecord({"User-Agent":getPiUserAgent(),...model.headers,...optionsHeaders});return headers&&(httpOptions.headers=headers),Object.keys(httpOptions).length>0?httpOptions:void 0}function resolveCustomBaseUrl(baseUrl){let trimmed=baseUrl.trim();if(!(!trimmed||trimmed.includes("{location}")))return trimmed}function baseUrlIncludesApiVersion(baseUrl){try{return new URL(baseUrl).pathname.split("/").some(part=>/^v\d+(?:beta\d*)?$/.test(part))}catch{return/(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(baseUrl)}}function buildGoogleAuthOptions(env){let keyFilename=getProviderEnvValue("GOOGLE_APPLICATION_CREDENTIALS",env);return keyFilename?{keyFilename}:void 0}function resolveApiKey(options){let apiKey=options?.apiKey?.trim();if(!(!apiKey||apiKey===GCP_VERTEX_CREDENTIALS_MARKER||isPlaceholderApiKey(apiKey)))return apiKey}function isPlaceholderApiKey(apiKey){return/^<[^>]+>$/.test(apiKey)}function resolveProject(options){let project=options?.project||getProviderEnvValue("GOOGLE_CLOUD_PROJECT",options?.env)||getProviderEnvValue("GCLOUD_PROJECT",options?.env);if(!project)throw new Error("Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.");return project}function resolveLocation(options){let location=options?.location||getProviderEnvValue("GOOGLE_CLOUD_LOCATION",options?.env);if(!location)throw new Error("Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.");return location}function buildParams(model,context,options={}){let contents=convertMessages(model,context),initialSystemMessage=getInitialSystemMessage(context.messages),currentTools=getCurrentTools(context.messages),generationConfig={};options.temperature!==void 0&&(generationConfig.temperature=options.temperature),options.maxTokens!==void 0&&(generationConfig.maxOutputTokens=options.maxTokens);let supportsStrictMode=supportsGoogleStrictToolSampling(model.id),functionCallingMode=currentTools.length>0?resolveGoogleFunctionCallingMode(currentTools,options.toolChoice,supportsStrictMode):void 0,systemInstruction=initialSystemMessage?getSystemMessageText(initialSystemMessage):"",config={...Object.keys(generationConfig).length>0&&generationConfig,...systemInstruction&&{systemInstruction:sanitizeSurrogates(systemInstruction)},...currentTools.length>0&&{tools:convertTools(currentTools,!1,supportsStrictMode)},...functionCallingMode!==void 0&&{toolConfig:{functionCallingConfig:{mode:functionCallingMode}}}};if(options.thinking?.enabled&&model.reasoning){let thinkingConfig={includeThoughts:!0};options.thinking.level!==void 0?thinkingConfig.thinkingLevel=toGoogleSdkThinkingLevel(options.thinking.level):options.thinking.budgetTokens!==void 0&&(thinkingConfig.thinkingBudget=options.thinking.budgetTokens),config.thinkingConfig=thinkingConfig}else model.reasoning&&options.thinking&&!options.thinking.enabled&&(config.thinkingConfig=getDisabledGoogleThinkingConfig(model));if(options.signal){if(options.signal.aborted)throw new Error("Request aborted");config.abortSignal=options.signal}return{model:model.id,contents,config}}function getGoogleBudget(model,level,customBudgets){return customBudgets?.[level]!==void 0?customBudgets[level]:model.id.includes("2.5-pro")?{minimal:128,low:2048,medium:8192,high:32768}[level]:model.id.includes("2.5-flash")?{minimal:128,low:2048,medium:8192,high:24576}[level]:-1}export{stream,streamSimple};
@@ -1,5 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{shortHash}from"./chunk-PJACZCIR.js";import{buildBaseOptions,getJsonSchemaToolParameters,getPiUserAgent,resolveJsonSchemaStrictSampling,transformMessages}from"./chunk-S7SZN6Z3.js";import{sanitizeSurrogates}from"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-6R7UI4IY.js";import{parseStreamingJson}from"./chunk-TRDNDS6A.js";import{calculateCost,clampThinkingLevel,getCurrentTools,getSystemMessageText,renderSystemMessageUpdate,resolveTranscript}from"./chunk-RCZIEVGO.js";import{AssistantMessageEventStream}from"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var MISTRAL_TOOL_CALL_ID_LENGTH=9,MAX_MISTRAL_ERROR_BODY_CHARS=4e3,stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream,normalizedContext=resolveTranscript(context,model.compat?.supportsMidConvoSystemMessages);return(async()=>{let output=createOutput(model);try{let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let normalizeMistralToolCallId=createMistralToolCallIdNormalizer(),transformedMessages=transformMessages(normalizedContext.messages,model,id=>normalizeMistralToolCallId(id)),payload=buildChatPayload(model,normalizedContext,transformedMessages,options),nextPayload=await options?.onPayload?.(payload,model);nextPayload!==void 0&&(payload=nextPayload);let mistralStream=await requestMistralStream(model,payload,apiKey,options);if(stream2.push({type:"start",partial:output}),await consumeChatStream(model,output,stream2,mistralStream),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("Mistral stream ended without a finish reason");if(output.stopReason==="aborted"||output.stopReason==="error")throw new Error(output.errorMessage||"An unknown error occurred");stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)delete block.partialArgs;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatMistralError(error),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let base={...buildBaseOptions(model,context,options,apiKey),toolChoice:options?.toolChoice},clampedReasoning=options?.reasoning?clampThinkingLevel(model,options.reasoning):void 0,reasoning=clampedReasoning==="off"?void 0:clampedReasoning,shouldUseReasoning=model.reasoning&&reasoning!==void 0;return stream(model,context,{...base,promptMode:shouldUseReasoning&&usesPromptModeReasoning(model)?"reasoning":void 0,reasoningEffort:shouldUseReasoning&&usesReasoningEffort(model)?mapReasoningEffort(model,reasoning):void 0})};function createOutput(model){return{role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()}}function createMistralToolCallIdNormalizer(){let idMap=new Map,reverseMap=new Map;return id=>{let existing=idMap.get(id);if(existing)return existing;let attempt=0;for(;;){let candidate=deriveMistralToolCallId(id,attempt),owner=reverseMap.get(candidate);if(!owner||owner===id)return idMap.set(id,candidate),reverseMap.set(candidate,id),candidate;attempt++}}}function deriveMistralToolCallId(id,attempt){let normalized=id.replace(/[^a-zA-Z0-9]/g,"");if(attempt===0&&normalized.length===MISTRAL_TOOL_CALL_ID_LENGTH)return normalized;let seedBase=normalized||id,seed=attempt===0?seedBase:`${seedBase}:${attempt}`;return shortHash(seed).replace(/[^a-zA-Z0-9]/g,"").slice(0,MISTRAL_TOOL_CALL_ID_LENGTH)}function formatMistralError(error){if(error instanceof Error){let httpError=error,statusCode=typeof httpError.statusCode=="number"?httpError.statusCode:void 0,bodyText=typeof httpError.body=="string"?httpError.body.trim():void 0;return statusCode!==void 0&&bodyText?`Mistral API error (${statusCode}): ${truncateErrorText(bodyText,MAX_MISTRAL_ERROR_BODY_CHARS)}`:statusCode!==void 0?`Mistral API error (${statusCode}): ${error.message}`:error.message}return safeJsonStringify(error)}function truncateErrorText(text,maxChars){return text.length<=maxChars?text:`${text.slice(0,maxChars)}... [truncated ${text.length-maxChars} chars]`}function safeJsonStringify(value){try{let serialized=JSON.stringify(value);return serialized===void 0?String(value):serialized}catch{return String(value)}}async function requestMistralStream(model,payload,apiKey,options){let baseUrl=new URL(model.baseUrl);baseUrl.pathname=`${baseUrl.pathname.replace(/\/+$/u,"")}/`;let url=new URL("v1/chat/completions",baseUrl),headers=buildMistralHeaders(model,apiKey,options),timeoutSignal=AbortSignal.timeout(options?.timeoutMs??6e4),signal=options?.signal?AbortSignal.any([options.signal,timeoutSignal]):timeoutSignal,response=await(options?.fetch??globalThis.fetch)(url,{method:"POST",headers,body:JSON.stringify(toMistralWirePayload(payload)),signal});if(await options?.onResponse?.({status:response.status,headers:headersToRecord(response.headers)},model),!response.ok){let body=await response.text();throw new MistralHttpError(response.status,body,response.statusText)}if(!response.body)throw new Error("Mistral response has no body");return readMistralEvents(response.body,signal)}var MistralHttpError=class extends Error{statusCode;body;constructor(statusCode,body,statusText){super(statusText||`Request failed with status ${statusCode}`),this.name="MistralHttpError",this.statusCode=statusCode,this.body=body}};function buildMistralHeaders(model,apiKey,options){let headers=new Headers({"User-Agent":getPiUserAgent(),accept:"text/event-stream",authorization:`Bearer ${apiKey}`,"content-type":"application/json"});applyMistralHeaderOverrides(headers,model.headers),applyMistralHeaderOverrides(headers,options?.headers);let hasExplicitAffinity=hasMistralHeaderOverride(model.headers,"x-affinity")||hasMistralHeaderOverride(options?.headers,"x-affinity");return shouldUsePromptCaching(options)&&!hasExplicitAffinity&&headers.set("x-affinity",options.sessionId),headers}function applyMistralHeaderOverrides(headers,overrides){if(overrides)for(let[name,value]of Object.entries(overrides))value===null?headers.delete(name):headers.set(name,value)}function hasMistralHeaderOverride(overrides,target){return!!overrides&&Object.keys(overrides).some(name=>name.toLowerCase()===target)}function toMistralWirePayload(payload){let wirePayload={...payload};for(let[source,target]of[["topP","top_p"],["maxTokens","max_tokens"],["randomSeed","random_seed"],["responseFormat","response_format"],["toolChoice","tool_choice"],["presencePenalty","presence_penalty"],["frequencyPenalty","frequency_penalty"],["parallelToolCalls","parallel_tool_calls"],["reasoningEffort","reasoning_effort"],["promptMode","prompt_mode"],["promptCacheKey","prompt_cache_key"],["safePrompt","safe_prompt"]])remapMistralProperty(wirePayload,source,target);wirePayload.messages=payload.messages.map(message=>toMistralWireMessage(message));let responseFormat=wirePayload.response_format;if(isMistralRecord(responseFormat)){let wireResponseFormat={...responseFormat};remapMistralProperty(wireResponseFormat,"jsonSchema","json_schema");let jsonSchema=wireResponseFormat.json_schema;if(isMistralRecord(jsonSchema)){let wireJsonSchema={...jsonSchema};remapMistralProperty(wireJsonSchema,"schemaDefinition","schema"),wireResponseFormat.json_schema=wireJsonSchema}wirePayload.response_format=wireResponseFormat}return wirePayload}function toMistralWireMessage(message){let wireMessage={...message};return remapMistralProperty(wireMessage,"toolCalls","tool_calls"),remapMistralProperty(wireMessage,"toolCallId","tool_call_id"),Array.isArray(message.content)&&(wireMessage.content=message.content.map(chunk=>toMistralWireContentChunk(chunk))),wireMessage}function toMistralWireContentChunk(chunk){let wireChunk={...chunk};for(let[source,target]of[["imageUrl","image_url"],["documentUrl","document_url"],["documentName","document_name"],["fileId","file_id"],["referenceIds","reference_ids"],["inputAudio","input_audio"]])remapMistralProperty(wireChunk,source,target);return wireChunk}function remapMistralProperty(record,source,target){source in record&&(record[target]=record[source],delete record[source])}function isMistralRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}var MISTRAL_STREAM_DONE=Symbol("mistral-stream-done");async function*readMistralEvents(body,signal){let reader=body.getReader(),decoder=new TextDecoder,buffer="",onAbort=()=>{reader.cancel().catch(()=>{})};signal.addEventListener("abort",onAbort,{once:!0});try{for(;;){if(signal.aborted)throw signal.reason;let{done,value}=await reader.read();if(signal.aborted)throw signal.reason;buffer+=done?decoder.decode():decoder.decode(value,{stream:!0});let boundary=findMistralEventBoundary(buffer);for(;boundary;){let event=parseMistralEvent(buffer.slice(0,boundary.index));if(buffer=buffer.slice(boundary.index+boundary.length),event===MISTRAL_STREAM_DONE)return;event&&(yield event),boundary=findMistralEventBoundary(buffer)}if(done)break}if(buffer.trim()){let event=parseMistralEvent(buffer);event!==MISTRAL_STREAM_DONE&&event&&(yield event)}}finally{signal.removeEventListener("abort",onAbort);try{await reader.cancel()}catch{}try{reader.releaseLock()}catch{}}}function findMistralEventBoundary(buffer){let match=/\r\n\r\n|\r\n\r|\r\n\n|\r\r\n|\n\r\n|\r\r|\n\r|\n\n/u.exec(buffer);return match?.index===void 0?void 0:{index:match.index,length:match[0].length}}function parseMistralEvent(raw){let data=raw.split(/\r\n|\r|\n/u).filter(line=>line.startsWith("data:")).map(line=>line.slice(5).trimStart()).join(`
3
- `).trim();if(!data)return;if(data==="[DONE]")return MISTRAL_STREAM_DONE;let parsed=JSON.parse(data);if(!isMistralRecord(parsed)||!Array.isArray(parsed.choices))throw new Error("Invalid Mistral streaming event");return{data:parsed}}function buildChatPayload(model,context,messages,options){let payload={model:model.id,stream:!0,messages:toChatMessages(messages,model.input.includes("image"))},currentTools=getCurrentTools(context.messages);return currentTools.length>0&&(payload.tools=toFunctionTools(currentTools)),options?.temperature!==void 0&&(payload.temperature=options.temperature),options?.maxTokens!==void 0&&(payload.maxTokens=options.maxTokens),options?.toolChoice&&(payload.toolChoice=mapToolChoice(options.toolChoice)),options?.promptMode&&(payload.promptMode=options.promptMode),options?.reasoningEffort&&(payload.reasoningEffort=options.reasoningEffort),shouldUsePromptCaching(options)&&(payload.promptCacheKey=options.sessionId),payload}function shouldUsePromptCaching(options){return options?.cacheRetention!=="none"&&!!options?.sessionId}function getMistralCachedPromptTokens(usage,promptTokens){let rawUsage=usage,rawCachedTokens=rawUsage.promptTokensDetails?.cachedTokens??rawUsage.prompt_tokens_details?.cached_tokens??rawUsage.promptTokenDetails?.cachedTokens??rawUsage.prompt_token_details?.cached_tokens??rawUsage.numCachedTokens??rawUsage.num_cached_tokens??0,cachedTokens=typeof rawCachedTokens=="number"&&Number.isFinite(rawCachedTokens)?rawCachedTokens:0;return Math.min(promptTokens,Math.max(0,cachedTokens))}async function consumeChatStream(model,output,stream2,mistralStream){let currentBlock=null,blocks=output.content,blockIndex=()=>blocks.length-1,toolBlocksByKey=new Map,finishCurrentBlock=block=>{if(block){if(block.type==="text"){stream2.push({type:"text_end",contentIndex:blockIndex(),content:block.text,partial:output});return}block.type==="thinking"&&stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:block.thinking,partial:output})}};for await(let event of mistralStream){let chunk=event.data;if(output.responseId||=chunk.id,chunk.usage){let promptTokens=chunk.usage.prompt_tokens||0,cachedPromptTokens=getMistralCachedPromptTokens(chunk.usage,promptTokens);output.usage.input=Math.max(0,promptTokens-cachedPromptTokens),output.usage.output=chunk.usage.completion_tokens||0,output.usage.cacheRead=cachedPromptTokens,output.usage.cacheWrite=0,output.usage.totalTokens=chunk.usage.total_tokens||output.usage.input+output.usage.output+output.usage.cacheRead+output.usage.cacheWrite,calculateCost(model,output.usage)}let choice=chunk.choices[0];if(!choice)continue;if(choice.finish_reason){output.rawStopReason=choice.finish_reason;let stopReasonResult=mapChatStopReason(choice.finish_reason);output.stopReason=stopReasonResult.stopReason,stopReasonResult.errorMessage&&(output.errorMessage=stopReasonResult.errorMessage)}let delta=choice.delta;if(delta.content!==null&&delta.content!==void 0){let contentItems=typeof delta.content=="string"?[delta.content]:delta.content;for(let item of contentItems){if(typeof item=="string"){let textDelta=sanitizeSurrogates(item);(!currentBlock||currentBlock.type!=="text")&&(finishCurrentBlock(currentBlock),currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output})),currentBlock.text+=textDelta,stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:textDelta,partial:output});continue}if(item.type==="thinking"){let deltaText=(item.thinking??[]).map(part=>part.text??"").filter(text=>text.length>0).join(""),thinkingDelta=sanitizeSurrogates(deltaText);if(!thinkingDelta)continue;(!currentBlock||currentBlock.type!=="thinking")&&(finishCurrentBlock(currentBlock),currentBlock={type:"thinking",thinking:""},output.content.push(currentBlock),stream2.push({type:"thinking_start",contentIndex:blockIndex(),partial:output})),currentBlock.thinking+=thinkingDelta,stream2.push({type:"thinking_delta",contentIndex:blockIndex(),delta:thinkingDelta,partial:output});continue}if(item.type==="text"){let textDelta=sanitizeSurrogates(item.text??"");(!currentBlock||currentBlock.type!=="text")&&(finishCurrentBlock(currentBlock),currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output})),currentBlock.text+=textDelta,stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:textDelta,partial:output})}}}let toolCalls=delta.tool_calls||[];for(let toolCall of toolCalls){currentBlock&&(finishCurrentBlock(currentBlock),currentBlock=null);let callId=toolCall.id&&toolCall.id!=="null"?toolCall.id:deriveMistralToolCallId(`toolcall:${toolCall.index??0}`,0),key=toolCall.index??callId,existingIndex=toolBlocksByKey.get(key),block;if(existingIndex!==void 0){let existing=output.content[existingIndex];existing?.type==="toolCall"&&(block=existing)}block||(block={type:"toolCall",id:callId,name:toolCall.function.name,arguments:{},partialArgs:""},output.content.push(block),toolBlocksByKey.set(key,output.content.length-1),stream2.push({type:"toolcall_start",contentIndex:output.content.length-1,partial:output}));let argsDelta=typeof toolCall.function.arguments=="string"?toolCall.function.arguments:JSON.stringify(toolCall.function.arguments||{});block.partialArgs=(block.partialArgs||"")+argsDelta,block.arguments=parseStreamingJson(block.partialArgs),stream2.push({type:"toolcall_delta",contentIndex:toolBlocksByKey.get(key),delta:argsDelta,partial:output})}}finishCurrentBlock(currentBlock);for(let index of toolBlocksByKey.values()){let block=output.content[index];if(block.type!=="toolCall")continue;let toolBlock=block;toolBlock.arguments=parseStreamingJson(toolBlock.partialArgs),delete toolBlock.partialArgs,stream2.push({type:"toolcall_end",contentIndex:index,toolCall:toolBlock,partial:output})}}function toFunctionTools(tools){return tools.map(tool=>{let strict=resolveJsonSchemaStrictSampling(tool,!0);return{type:"function",function:{name:tool.name,description:tool.description,parameters:stripSymbolKeys(getJsonSchemaToolParameters(tool,strict)),strict:strict??!1}}})}function stripSymbolKeys(value){if(Array.isArray(value))return value.map(item=>stripSymbolKeys(item));if(value&&typeof value=="object"){let result={};for(let[key,entry]of Object.entries(value))result[key]=stripSymbolKeys(entry);return result}return value}function toChatMessages(messages,supportsImages){let result=[];for(let[index,msg]of messages.entries()){if(msg.role==="system"){let text=index===0?getSystemMessageText(msg):renderSystemMessageUpdate(msg);text.length>0&&result.push({role:"system",content:sanitizeSurrogates(text)});continue}if(msg.role==="user"){if(typeof msg.content=="string"){result.push({role:"user",content:sanitizeSurrogates(msg.content)});continue}let hadImages=msg.content.some(item=>item.type==="image"),content=msg.content.filter(item=>item.type==="text"||supportsImages).map(item=>item.type==="text"?{type:"text",text:sanitizeSurrogates(item.text)}:{type:"image_url",imageUrl:`data:${item.mimeType};base64,${item.data}`});if(content.length>0){result.push({role:"user",content});continue}hadImages&&!supportsImages&&result.push({role:"user",content:"(image omitted: model does not support images)"});continue}if(msg.role==="assistant"){let contentParts=[],toolCalls=[];for(let block of msg.content){if(block.type==="text"){block.text.trim().length>0&&contentParts.push({type:"text",text:sanitizeSurrogates(block.text)});continue}if(block.type==="thinking"){block.thinking.trim().length>0&&contentParts.push({type:"thinking",thinking:[{type:"text",text:sanitizeSurrogates(block.thinking)}]});continue}toolCalls.push({id:block.id,type:"function",function:{name:block.name,arguments:JSON.stringify(block.arguments||{})},index:0})}let assistantMessage={role:"assistant",prefix:!1};contentParts.length>0&&(assistantMessage.content=contentParts),toolCalls.length>0&&(assistantMessage.toolCalls=toolCalls),(contentParts.length>0||toolCalls.length>0)&&result.push(assistantMessage);continue}let toolContent=[],textResult=msg.content.filter(part=>part.type==="text").map(part=>part.type==="text"?sanitizeSurrogates(part.text):"").join(`
4
- `),hasImages=msg.content.some(part=>part.type==="image"),toolText=buildToolResultText(textResult,hasImages,supportsImages,msg.isError);toolContent.push({type:"text",text:toolText});for(let part of msg.content)supportsImages&&part.type==="image"&&toolContent.push({type:"image_url",imageUrl:`data:${part.mimeType};base64,${part.data}`});result.push({role:"tool",toolCallId:msg.toolCallId,name:msg.toolName,content:toolContent})}return result}function buildToolResultText(text,hasImages,supportsImages,isError){let trimmed=text.trim(),errorPrefix=isError?"[tool error] ":"";return trimmed.length>0?`${errorPrefix}${trimmed}${hasImages&&!supportsImages?`
5
- [tool image omitted: model does not support images]`:""}`:hasImages?supportsImages?isError?"[tool error] (see attached image)":"(see attached image)":isError?"[tool error] (image omitted: model does not support images)":"(image omitted: model does not support images)":isError?"[tool error] (no tool output)":"(no tool output)"}function usesReasoningEffort(model){return model.id==="mistral-small-2603"||model.id==="mistral-small-latest"||model.id.startsWith("mistral-medium-")||model.id==="zai-glm-5-2"}function usesPromptModeReasoning(model){return model.reasoning&&!usesReasoningEffort(model)}function mapReasoningEffort(model,level){return model.thinkingLevelMap?.[level]??"high"}function mapToolChoice(choice){if(choice)return choice==="auto"||choice==="none"||choice==="any"||choice==="required"?choice:{type:"function",function:{name:choice.function.name}}}function mapChatStopReason(reason){if(reason===null)return{stopReason:"stop"};switch(reason){case"stop":return{stopReason:"stop"};case"length":case"model_length":return{stopReason:"length"};case"tool_calls":return{stopReason:"toolUse"};case"error":return{stopReason:"error",errorMessage:"Provider stopped with: error"};default:return{stopReason:"error",errorMessage:`Provider stopped with: ${reason}`}}}export{stream,streamSimple};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{buildCopilotDynamicHeaders,hasCopilotVisionInput}from"./chunk-PGXDEOVV.js";import{convertResponsesMessages,convertResponsesTools,processResponsesStream}from"./chunk-UZNGGY6N.js";import{OpenAI}from"./chunk-NUHFSC37.js";import{clampOpenAIPromptCacheKey}from"./chunk-PRRNXB7S.js";import{formatProviderError,normalizeProviderError}from"./chunk-TEPMHNKQ.js";import"./chunk-PJACZCIR.js";import{retryProviderRequest}from"./chunk-XNGRGP62.js";import{buildBaseOptions,createGrammarToolInputProperties,getPiUserAgent}from"./chunk-S7SZN6Z3.js";import"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-6R7UI4IY.js";import{getProviderEnvValue}from"./chunk-DRQDKNXA.js";import"./chunk-TRDNDS6A.js";import{clampThinkingLevel,getDeclaredTools,resolveTranscript,resolveTranscriptTools}from"./chunk-RCZIEVGO.js";import{AssistantMessageEventStream}from"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var OPENAI_TOOL_CALL_PROVIDERS=new Set(["openai","openai-codex","opencode"]),OPENAI_RESPONSES_MIN_OUTPUT_TOKENS=16;function hasHeader(headers,name){if(!headers)return!1;let expected=name.toLowerCase();for(let[key,value]of Object.entries(headers))if(key.toLowerCase()===expected&&value!==null&&value.trim().length>0)return!0;return!1}function getClientApiKey(provider,apiKey,headers){if(apiKey)return apiKey;if(hasHeader(headers,"authorization")||hasHeader(headers,"cf-aig-authorization"))return"unused";throw new Error(`No API key for provider: ${provider}`)}function detectSessionAffinityFormat(model){return model.provider==="openrouter"||model.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function resolveCacheRetention(cacheRetention,env){return cacheRetention||(getProviderEnvValue("PI_CACHE_RETENTION",env)==="long"?"long":"short")}function getCompat(model){return{supportsDeveloperRole:model.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:model.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:model.compat?.sessionAffinityFormat??detectSessionAffinityFormat(model),supportsLongCacheRetention:model.compat?.supportsLongCacheRetention??!0,supportsStrictMode:model.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:model.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:model.compat?.supportsAdditionalTools??!1,supportsToolSearch:model.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:model.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:model.compat?.supportsMaxOutputTokens??!0}}function getPromptCacheRetention(compat,cacheRetention){return cacheRetention==="long"&&compat.supportsLongCacheRetention&&!compat.supportsExplicitPromptCacheMode?"24h":void 0}function getPromptCacheOptions(compat,cacheRetention){if(compat.supportsExplicitPromptCacheMode){if(cacheRetention==="none")return{mode:"explicit"};if(cacheRetention==="long"&&compat.supportsLongCacheRetention)return{ttl:"30m"}}}var stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream,normalizedContext=resolveTranscript(context,getCompat(model).supportsMidConvoSystemMessages);return(async()=>{let output={role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{let apiKey=getClientApiKey(model.provider,options?.apiKey,options?.headers),cacheSessionId=resolveCacheRetention(options?.cacheRetention,options?.env)==="none"?void 0:options?.sessionId,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages),compat.supportsOpenAIGrammarTools),client=createClient(model,normalizedContext,apiKey,options?.headers,options?.fetch,cacheSessionId),params=buildParams(model,normalizedContext,options,compat,grammarToolInputProperties),nextParams=await options?.onPayload?.(params,model);nextParams!==void 0&&(params=nextParams);let requestOptions={...options?.signal?{signal:options.signal}:{},...options?.timeoutMs!==void 0?{timeout:options.timeoutMs}:{},maxRetries:0},{data:openaiStream,response}=await retryProviderRequest(()=>client.responses.create(params,requestOptions).withResponse(),{maxRetries:options?.maxRetries,maxRetryDelayMs:options?.maxRetryDelayMs,signal:options?.signal});if(await options?.onResponse?.({status:response.status,headers:headersToRecord(response.headers)},model),stream2.push({type:"start",partial:output}),await processResponsesStream(openaiStream,output,stream2,model,{serviceTier:options?.serviceTier,grammarToolInputProperties,applyServiceTierPricing:(usage,serviceTier)=>applyServiceTierPricing(usage,serviceTier,model)}),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("OpenAI Responses stream ended without a stop reason");if(output.stopReason==="aborted"||output.stopReason==="error")throw new Error(output.errorMessage||"An unknown error occurred");stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)delete block.index,delete block.partialJson,delete block.customInput;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatProviderError(normalizeProviderError(error),`${model.provider==="openai"?"OpenAI":model.provider} API error`),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{getClientApiKey(model.provider,options?.apiKey,options?.headers);let base={...buildBaseOptions(model,context,options,options?.apiKey),toolChoice:options?.toolChoice},clampedReasoning=options?.reasoning?clampThinkingLevel(model,options.reasoning):void 0;return stream(model,context,{...base,reasoningEffort:clampedReasoning==="off"?void 0:clampedReasoning})};function createClient(model,context,apiKey,optionsHeaders,fetch,sessionId){let compat=getCompat(model),headers={"User-Agent":getPiUserAgent(),...model.headers};if(model.provider==="github-copilot"){let hasImages=hasCopilotVisionInput(context.messages),copilotHeaders=buildCopilotDynamicHeaders({messages:context.messages,hasImages});Object.assign(headers,copilotHeaders)}return sessionId&&(compat.sessionAffinityFormat==="openrouter"?headers["x-session-id"]=sessionId:(compat.sessionAffinityFormat==="openai"&&(headers.session_id=sessionId),headers["x-client-request-id"]=sessionId)),optionsHeaders&&Object.assign(headers,optionsHeaders),new OpenAI({apiKey,baseURL:model.baseUrl,dangerouslyAllowBrowser:!0,fetch,defaultHeaders:headers})}function buildParams(model,context,options,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(getDeclaredTools(context.messages),compat.supportsOpenAIGrammarTools)){let transcriptTools=resolveTranscriptTools(context.messages,compat.supportsAdditionalTools||compat.supportsToolSearch),messages=convertResponsesMessages(model,context,OPENAI_TOOL_CALL_PROVIDERS,{grammarToolInputProperties,supportsMidConvoSystemMessages:compat.supportsMidConvoSystemMessages,supportsAdditionalTools:compat.supportsAdditionalTools,supportsToolSearch:compat.supportsToolSearch,toolOptions:{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools}}),cacheRetention=resolveCacheRetention(options?.cacheRetention,options?.env),params={model:model.id,input:messages,stream:!0,prompt_cache_key:cacheRetention==="none"?void 0:clampOpenAIPromptCacheKey(options?.sessionId),prompt_cache_retention:getPromptCacheRetention(compat,cacheRetention),prompt_cache_options:getPromptCacheOptions(compat,cacheRetention),store:!1};if(options?.maxTokens&&compat.supportsMaxOutputTokens&&(params.max_output_tokens=Math.max(options.maxTokens,OPENAI_RESPONSES_MIN_OUTPUT_TOKENS)),options?.temperature!==void 0&&(params.temperature=options?.temperature),options?.serviceTier!==void 0&&(params.service_tier=options.serviceTier),transcriptTools.requestTools.length>0&&(params.tools=convertResponsesTools(transcriptTools.requestTools,{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools})),options?.toolChoice!==void 0&&(params.tool_choice=options.toolChoice),model.reasoning){if(options?.reasoningEffort||options?.reasoningSummary){let effort=options?.reasoningEffort?model.thinkingLevelMap?.[options.reasoningEffort]??options.reasoningEffort:"medium";params.reasoning={effort,summary:options?.reasoningSummary||"auto"},params.include=["reasoning.encrypted_content"]}else model.provider!=="github-copilot"&&model.thinkingLevelMap?.off!==null&&(params.reasoning={effort:model.thinkingLevelMap?.off??"none"});model.provider==="xai"&&(params.include=["reasoning.encrypted_content"])}return options?.samplingParams&&Object.assign(params,options.samplingParams),params}function getServiceTierCostMultiplier(model,serviceTier){switch(serviceTier){case"flex":return .5;case"priority":return model.id==="gpt-5.5"?2.5:2;default:return 1}}function applyServiceTierPricing(usage,serviceTier,model){let multiplier=getServiceTierCostMultiplier(model,serviceTier);multiplier!==1&&(usage.cost.input*=multiplier,usage.cost.output*=multiplier,usage.cost.cacheRead*=multiplier,usage.cost.cacheWrite*=multiplier,usage.cost.total=usage.cost.input+usage.cost.output+usage.cost.cacheRead+usage.cost.cacheWrite)}export{stream,streamSimple};
@@ -1,2 +0,0 @@
1
- import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{dist_exports as dist_exports3}from"./chunk-BZKWNWMI.js";import{all_exports,build_exports,compat_exports,compile_exports,dist_exports,dist_exports2,value_exports}from"./chunk-X2F52Z34.js";import"./chunk-XDUWOHPL.js";import"./chunk-USJZMAIR.js";import"./chunk-DRQDKNXA.js";import"./chunk-TRDNDS6A.js";import"./chunk-RCZIEVGO.js";import"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var oauth_exports={};var VIRTUAL_MODULES={typebox:build_exports,"typebox/compile":compile_exports,"typebox/value":value_exports,"@sinclair/typebox":build_exports,"@sinclair/typebox/compile":compile_exports,"@sinclair/typebox/value":value_exports,"@earendil-works/pi-agent-core":dist_exports2,"@earendil-works/pi-tui":dist_exports,"@earendil-works/pi-ai":compat_exports,"@earendil-works/pi-ai/compat":compat_exports,"@earendil-works/pi-ai/oauth":oauth_exports,"@earendil-works/pi-ai/providers/all":all_exports,"@earendil-works/pi-coding-agent":dist_exports3,"@mariozechner/pi-agent-core":dist_exports2,"@mariozechner/pi-tui":dist_exports,"@mariozechner/pi-ai":compat_exports,"@mariozechner/pi-ai/compat":compat_exports,"@mariozechner/pi-ai/oauth":oauth_exports,"@mariozechner/pi-ai/providers/all":all_exports,"@mariozechner/pi-coding-agent":dist_exports3};export{VIRTUAL_MODULES};