@xopcai/xopc 0.0.119 → 0.0.121

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 (286) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/dashscope/src/image-generation-provider.d.ts +6 -5
  3. package/dist/extensions/dashscope/src/image-generation-provider.js +40 -64
  4. package/dist/extensions/dashscope/src/image-generation-provider.js.map +1 -1
  5. package/dist/extensions/dashscope/src/index.d.ts +1 -1
  6. package/dist/extensions/dashscope/src/index.js +2 -2
  7. package/dist/extensions/dashscope/xopc.extension.json +3 -2
  8. package/dist/extensions/minimax/src/image-generation-provider.d.ts +7 -5
  9. package/dist/extensions/minimax/src/image-generation-provider.js +43 -37
  10. package/dist/extensions/minimax/src/image-generation-provider.js.map +1 -1
  11. package/dist/extensions/minimax/src/index.d.ts +1 -1
  12. package/dist/extensions/minimax/src/index.js +2 -2
  13. package/dist/extensions/minimax/xopc.extension.json +1 -1
  14. package/dist/extensions/telegram/xopc.extension.json +1 -1
  15. package/dist/gateway/static/root/assets/Combination-HAlzriaz.js +41 -0
  16. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CU8J6zou.js → agent-avatar-dicebear-4AW4JgSU.js} +1 -1
  17. package/dist/gateway/static/root/assets/agents-2SVUUPlp.js +2 -0
  18. package/dist/gateway/static/root/assets/{app-management-settings-panel-B9vfYoEr.js → app-management-settings-panel-CE6GkGU2.js} +1 -1
  19. package/dist/gateway/static/root/assets/{appearance-settings-ClOzIO24.js → appearance-settings-BmaUjghw.js} +1 -1
  20. package/dist/gateway/static/root/assets/{apps-page-DU0dz9Zo.js → apps-page-BWeQ1I49.js} +1 -1
  21. package/dist/gateway/static/root/assets/{archive-plugin-BkVIgZzA.js → archive-plugin-CX4_KWut.js} +1 -1
  22. package/dist/gateway/static/root/assets/{attachment-load-CaCMWh1D.js → attachment-load-jf-PIIUU.js} +1 -1
  23. package/dist/gateway/static/root/assets/{automation-suggestion-card-DhGDpKP3.js → automation-suggestion-card-BHk5rtJz.js} +1 -1
  24. package/dist/gateway/static/root/assets/automations-page-QHotl53D.js +1 -0
  25. package/dist/gateway/static/root/assets/{binary-plugins-B4TO_bsn.js → binary-plugins-DG9XQikd.js} +1 -1
  26. package/dist/gateway/static/root/assets/{block-editor-DJRWwWNI.js → block-editor-Up_VIxLJ.js} +6 -6
  27. package/dist/gateway/static/root/assets/browser-settings-page-Cmwi6IIQ.js +8 -0
  28. package/dist/gateway/static/root/assets/{capability-presets-api-Befi89CL.js → capability-presets-api-CGM4OyMw.js} +1 -1
  29. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-_G8eb2vJ.js → capability-presets-settings-panel-CzWt0LBb.js} +1 -1
  30. package/dist/gateway/static/root/assets/{channel-recipient-api-BNSuJb5f.js → channel-recipient-api-BEByL4_o.js} +1 -1
  31. package/dist/gateway/static/root/assets/channels-settings-BOMCUe2J.js +1 -0
  32. package/dist/gateway/static/root/assets/connectors-page-C-Dexk_F.js +2 -0
  33. package/dist/gateway/static/root/assets/dist-Mys7eFJ5.js +1 -0
  34. package/dist/gateway/static/root/assets/dist-wO9a2_ID.js +1 -0
  35. package/dist/gateway/static/root/assets/dreaming-settings-WPEj8pir.js +1 -0
  36. package/dist/gateway/static/root/assets/{extension-debug-page-DYh402XV.js → extension-debug-page-DZxa_j7-.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-page-Cr_TizrN.js → extension-page-CseziW53.js} +1 -1
  38. package/dist/gateway/static/root/assets/extension-settings-page-B_9J-xyo.js +1 -0
  39. package/dist/gateway/static/root/assets/{fetch-Y7AEX4H3.js → fetch-Cs4ck8zA.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-config-api-RbMmAOpX.js → gateway-config-api-Dl223a7r.js} +1 -1
  41. package/dist/gateway/static/root/assets/gateway-settings-DdzbtW9R.js +1 -0
  42. package/dist/gateway/static/root/assets/{gateway-startup-retry-DiD_Tx4N.js → gateway-startup-retry-IvePwjFE.js} +1 -1
  43. package/dist/gateway/static/root/assets/goal-detail-page-Dxldogms.js +1 -0
  44. package/dist/gateway/static/root/assets/{goals-config-api-DqxVi0p5.js → goals-config-api-CUCP6yCl.js} +1 -1
  45. package/dist/gateway/static/root/assets/goals-page-DU5Nd6Xp.js +2 -0
  46. package/dist/gateway/static/root/assets/goals-settings-Dj87qPxv.js +1 -0
  47. package/dist/gateway/static/root/assets/heartbeat-settings-Cgm5JmwH.js +1 -0
  48. package/dist/gateway/static/root/assets/index-BU1pvxmS.js +191 -0
  49. package/dist/gateway/static/root/assets/index-l54WfSqe.css +1 -0
  50. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Dvg53qnd.js → keyboard-shortcuts-settings-DJgYw0nB.js} +1 -1
  51. package/dist/gateway/static/root/assets/{locale-store-DjbfSsfA.js → locale-store-Ba72bFmP.js} +1 -1
  52. package/dist/gateway/static/root/assets/logs-page-C10aS4XO.js +2 -0
  53. package/dist/gateway/static/root/assets/{markdown-split-CpHxbtWJ.js → markdown-split-gnQ_EiGo.js} +1 -1
  54. package/dist/gateway/static/root/assets/{media-plugins-SFPQRSxq.js → media-plugins-CQV-mgJn.js} +1 -1
  55. package/dist/gateway/static/root/assets/messages-C6Kc4Jhf.js +3 -0
  56. package/dist/gateway/static/root/assets/models-hub-panel-B35CAfg6.js +2 -0
  57. package/dist/gateway/static/root/assets/note-detail-page-Brlwse8x.js +2 -0
  58. package/dist/gateway/static/root/assets/{note-image-lightbox-BUYURRgn.js → note-image-lightbox-BthwKjLA.js} +1 -1
  59. package/dist/gateway/static/root/assets/{notes-page-BsIBSFyZ.js → notes-page-CoAwRc7L.js} +1 -1
  60. package/dist/gateway/static/root/assets/{preview-open-alternatives-BHz9iWYA.js → preview-open-alternatives-BPMXC-2u.js} +1 -1
  61. package/dist/gateway/static/root/assets/remote-access-hub-B36RQ05h.js +1 -0
  62. package/dist/gateway/static/root/assets/{save-bar-controls-CefkOlRg.js → save-bar-controls-BEHqwZjz.js} +1 -1
  63. package/dist/gateway/static/root/assets/schedule-field-CMY25m97.js +1 -0
  64. package/dist/gateway/static/root/assets/schema-form-CxjxsFfg.js +1 -0
  65. package/dist/gateway/static/root/assets/sessions-page-73THChnj.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-advanced-gate-CR9VsY-R.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-collapsible-section-BouO6JTi.js → settings-collapsible-section-s-kiLAxP.js} +1 -1
  68. package/dist/gateway/static/root/assets/settings-form-section-CIxIEYxU.js +1 -0
  69. package/dist/gateway/static/root/assets/settings-page-BJ1AhfKI.js +1 -0
  70. package/dist/gateway/static/root/assets/{settings-page-layout-BJ4Gsef5.js → settings-page-layout--6qT7ZJa.js} +1 -1
  71. package/dist/gateway/static/root/assets/{setup-status-panel-CrUjHPQo.js → setup-status-panel-C1TtS1vJ.js} +1 -1
  72. package/dist/gateway/static/root/assets/{share-preview-page-BDy2btRN.js → share-preview-page-BZADSbS1.js} +1 -1
  73. package/dist/gateway/static/root/assets/shares-settings-gqC8Rmhy.js +1 -0
  74. package/dist/gateway/static/root/assets/skill-reload-api-C9P-WYvS.js +1 -0
  75. package/dist/gateway/static/root/assets/skills-page-CEpSvOhF.js +2 -0
  76. package/dist/gateway/static/root/assets/{system-settings-panel-CRngrlnZ.js → system-settings-panel-Czjf0kLJ.js} +1 -1
  77. package/dist/gateway/static/root/assets/{theme-store-CD2wtgZV.js → theme-store-Bt6vAkSB.js} +1 -1
  78. package/dist/gateway/static/root/assets/{typed-models-lib-BltBc0b-.js → typed-models-lib-Cmt8SYdI.js} +1 -1
  79. package/dist/gateway/static/root/assets/{use-channel-catalog-CjN-51e6.js → use-channel-catalog-DyM-ckEQ.js} +1 -1
  80. package/dist/gateway/static/root/assets/user-profile-settings-panel-BygLv8vm.js +1 -0
  81. package/dist/gateway/static/root/assets/{utils-B5M5-YvK.js → utils-CloW8coB.js} +1 -1
  82. package/dist/gateway/static/root/assets/voice-api-key-field-BsoqJba6.js +1 -0
  83. package/dist/gateway/static/root/assets/{voice-player-store-B7ykUlHM.js → voice-player-store-DduWlJYV.js} +1 -1
  84. package/dist/gateway/static/root/assets/workflow-run-setup-panel-CcQeX6l5.js +3 -0
  85. package/dist/gateway/static/root/assets/workflows-page-CeA8A9Ef.js +18 -0
  86. package/dist/gateway/static/root/index.html +9 -10
  87. package/dist/package.js +1 -1
  88. package/dist/src/agent/context/workspace-templates/AGENTS.md +3 -2
  89. package/dist/src/agent/embedded/xopc-auth-storage.d.ts +1 -5
  90. package/dist/src/agent/embedded/xopc-auth-storage.js +2 -8
  91. package/dist/src/agent/embedded/xopc-auth-storage.js.map +1 -1
  92. package/dist/src/agent/embedded/xopc-tools-bridge.js +23 -0
  93. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
  94. package/dist/src/agent/goals/checklist-judge.js +1 -1
  95. package/dist/src/agent/goals/checklist-judge.js.map +1 -1
  96. package/dist/src/agent/goals/judge.js +1 -1
  97. package/dist/src/agent/goals/judge.js.map +1 -1
  98. package/dist/src/agent/image/tool-model-config.d.ts +2 -0
  99. package/dist/src/agent/image/tool-model-config.js +2 -2
  100. package/dist/src/agent/image/tool-model-config.js.map +1 -1
  101. package/dist/src/agent/image/understanding/pi-ai-provider.js +1 -1
  102. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
  103. package/dist/src/agent/memory/builtin-memory-store.d.ts +1 -1
  104. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  105. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  106. package/dist/src/agent/memory/builtin-provider.d.ts +2 -2
  107. package/dist/src/agent/memory/builtin-provider.js +2 -2
  108. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  109. package/dist/src/agent/memory/compaction.d.ts +1 -1
  110. package/dist/src/agent/memory/compaction.js +1 -1
  111. package/dist/src/agent/memory/compaction.js.map +1 -1
  112. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +0 -7
  113. package/dist/src/agent/memory/dreaming/light-sweep.js +16 -277
  114. package/dist/src/agent/memory/dreaming/light-sweep.js.map +1 -1
  115. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +1 -1
  116. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  117. package/dist/src/agent/memory/dreaming/rem-patterns.js.map +1 -1
  118. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +3 -3
  119. package/dist/src/agent/memory/dreaming/short-term-store.js +5 -5
  120. package/dist/src/agent/memory/dreaming/short-term-store.js.map +1 -1
  121. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -2
  122. package/dist/src/agent/memory/dreaming/utils.js +2 -2
  123. package/dist/src/agent/memory/dreaming/utils.js.map +1 -1
  124. package/dist/src/agent/memory/index.d.ts +0 -2
  125. package/dist/src/agent/memory/index.js +1 -2
  126. package/dist/src/agent/middleware/self-verify.d.ts +3 -0
  127. package/dist/src/agent/middleware/self-verify.js +18 -0
  128. package/dist/src/agent/middleware/self-verify.js.map +1 -1
  129. package/dist/src/agent/orchestration/agent-event-handler.js +28 -3
  130. package/dist/src/agent/orchestration/agent-event-handler.js.map +1 -1
  131. package/dist/src/agent/prompt/sections/memory-skills.js +11 -10
  132. package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -1
  133. package/dist/src/agent/prompt/sections/tooling.js +23 -7
  134. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  135. package/dist/src/agent/prompt/service-prompt-builder.js +1 -0
  136. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  137. package/dist/src/agent/prompt/system-prompt.d.ts +1 -0
  138. package/dist/src/agent/prompt/system-prompt.js +13 -1
  139. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  140. package/dist/src/agent/reply/startup-context.js +6 -105
  141. package/dist/src/agent/reply/startup-context.js.map +1 -1
  142. package/dist/src/agent/sandbox/path-policy.js +30 -6
  143. package/dist/src/agent/sandbox/path-policy.js.map +1 -1
  144. package/dist/src/agent/service/btw-query.js +1 -1
  145. package/dist/src/agent/service/btw-query.js.map +1 -1
  146. package/dist/src/agent/service.d.ts +0 -3
  147. package/dist/src/agent/service.js +0 -41
  148. package/dist/src/agent/service.js.map +1 -1
  149. package/dist/src/agent/starter-agents.js +16 -16
  150. package/dist/src/agent/starter-agents.js.map +1 -1
  151. package/dist/src/agent/tools/image-generate-tool.js +12 -1
  152. package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
  153. package/dist/src/agent/tools/memory-tool.js +2 -2
  154. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  155. package/dist/src/agent/tools/session-search-tool.js +1 -1
  156. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  157. package/dist/src/agent/tools/web-extract.js +1 -1
  158. package/dist/src/agent/tools/web-extract.js.map +1 -1
  159. package/dist/src/agent-manifest/index.js +2 -2
  160. package/dist/src/agent-manifest/schema.d.ts +66 -0
  161. package/dist/src/agent-manifest/schema.js +28 -2
  162. package/dist/src/agent-manifest/schema.js.map +1 -1
  163. package/dist/src/automations/draft/automation-draft-service.js +1 -1
  164. package/dist/src/automations/draft/automation-draft-service.js.map +1 -1
  165. package/dist/src/cli/commands/agent.js +2 -2
  166. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  167. package/dist/src/cli/commands/init.js +1 -1
  168. package/dist/src/cli/commands/init.js.map +1 -1
  169. package/dist/src/cli/commands/models.js +1 -1
  170. package/dist/src/cli/commands/onboard/model.js +161 -11
  171. package/dist/src/cli/commands/onboard/model.js.map +1 -1
  172. package/dist/src/cli/commands/onboard.js +1 -1
  173. package/dist/src/cli/commands/profile.js +1 -1
  174. package/dist/src/cli/commands/tunnel.js +1 -1
  175. package/dist/src/cli/commands/update.js +1 -1
  176. package/dist/src/cli/extension-cli-register.js +1 -1
  177. package/dist/src/cli/templates.js +3 -2
  178. package/dist/src/cli/templates.js.map +1 -1
  179. package/dist/src/config/agent-profile.js +1 -1
  180. package/dist/src/config/default-model.d.ts +11 -0
  181. package/dist/src/config/default-model.js +19 -0
  182. package/dist/src/config/default-model.js.map +1 -0
  183. package/dist/src/config/index.js +3 -3
  184. package/dist/src/config/schema.d.ts +73 -13
  185. package/dist/src/config/schema.js +59 -24
  186. package/dist/src/config/schema.js.map +1 -1
  187. package/dist/src/connectors/registries/smithery.js +10 -9
  188. package/dist/src/connectors/registries/smithery.js.map +1 -1
  189. package/dist/src/daemon/install-plan.js +2 -1
  190. package/dist/src/daemon/install-plan.js.map +1 -1
  191. package/dist/src/gateway/agents-admin.js +1 -1
  192. package/dist/src/gateway/global-defaults-admin.js +6 -16
  193. package/dist/src/gateway/global-defaults-admin.js.map +1 -1
  194. package/dist/src/gateway/hono/lib/config-payload.d.ts +24 -0
  195. package/dist/src/gateway/hono/routes/agents.js +1 -79
  196. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  197. package/dist/src/gateway/hono/routes/config-patch/misc.js +4 -1
  198. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
  199. package/dist/src/gateway/hono/routes/models.js +132 -14
  200. package/dist/src/gateway/hono/routes/models.js.map +1 -1
  201. package/dist/src/gateway/hono/routes/voice.js +1 -1
  202. package/dist/src/gateway/hono/routes/voice.js.map +1 -1
  203. package/dist/src/gateway/image-capabilities.d.ts +11 -1
  204. package/dist/src/gateway/image-capabilities.js +32 -43
  205. package/dist/src/gateway/image-capabilities.js.map +1 -1
  206. package/dist/src/gateway/run-loop.js +1 -1
  207. package/dist/src/gateway/workspace-editor-path.js +9 -1
  208. package/dist/src/gateway/workspace-editor-path.js.map +1 -1
  209. package/dist/src/generated/bundled-image-generation-providers.d.ts +4 -2
  210. package/dist/src/generated/bundled-image-generation-providers.js +6 -4
  211. package/dist/src/generated/bundled-image-generation-providers.js.map +1 -1
  212. package/dist/src/infra/update-restart.js +1 -1
  213. package/dist/src/mcp/channel-bridge.js +1 -1
  214. package/dist/src/media/paths.js +3 -4
  215. package/dist/src/media/paths.js.map +1 -1
  216. package/dist/src/notes/service.js +1 -1
  217. package/dist/src/notes/service.js.map +1 -1
  218. package/dist/src/providers/domestic-presets.d.ts +615 -0
  219. package/dist/src/providers/domestic-presets.js +834 -0
  220. package/dist/src/providers/domestic-presets.js.map +1 -0
  221. package/dist/src/providers/env-keys.js +29 -5
  222. package/dist/src/providers/env-keys.js.map +1 -1
  223. package/dist/src/providers/extension-stream-bridge.js +1 -1
  224. package/dist/src/providers/extension-stream-bridge.js.map +1 -1
  225. package/dist/src/providers/index.d.ts +5 -5
  226. package/dist/src/providers/index.js +101 -21
  227. package/dist/src/providers/index.js.map +1 -1
  228. package/dist/src/providers/model-discovery.d.ts +17 -0
  229. package/dist/src/providers/model-discovery.js +61 -0
  230. package/dist/src/providers/model-discovery.js.map +1 -0
  231. package/dist/src/providers/model-registry.d.ts +1 -1
  232. package/dist/src/providers/model-registry.js +1 -1
  233. package/dist/src/providers/model-registry.js.map +1 -1
  234. package/dist/src/providers/presentation.js +185 -14
  235. package/dist/src/providers/presentation.js.map +1 -1
  236. package/dist/src/session/session-title.js +1 -1
  237. package/dist/src/session/session-title.js.map +1 -1
  238. package/dist/src/storage/sqlite/row-mappers.js +3 -1
  239. package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
  240. package/dist/src/tui/backends/embedded-backend.js +1 -2
  241. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  242. package/dist/src/tui/xopc-tui-keybindings.d.ts +1 -1
  243. package/dist/src/voice/tts/summarize.js +1 -1
  244. package/dist/src/voice/tts/summarize.js.map +1 -1
  245. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  246. package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
  247. package/package.json +6 -6
  248. package/dist/gateway/static/root/assets/Combination-BzaXOLd9.js +0 -41
  249. package/dist/gateway/static/root/assets/agents-B0hkpLhP.js +0 -2
  250. package/dist/gateway/static/root/assets/automations-page-CTedroVo.js +0 -1
  251. package/dist/gateway/static/root/assets/browser-settings-page-FCDwOOBK.js +0 -8
  252. package/dist/gateway/static/root/assets/channels-settings-C3d5JBJX.js +0 -1
  253. package/dist/gateway/static/root/assets/connectors-page-yaUNvt5u.js +0 -2
  254. package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
  255. package/dist/gateway/static/root/assets/dist-CkobR7mk.js +0 -1
  256. package/dist/gateway/static/root/assets/dist-DokQNVMQ.js +0 -1
  257. package/dist/gateway/static/root/assets/dreaming-settings-DNrdg1Ve.js +0 -1
  258. package/dist/gateway/static/root/assets/extension-settings-page-BU1KoKRj.js +0 -1
  259. package/dist/gateway/static/root/assets/gateway-settings-C79wkXef.js +0 -1
  260. package/dist/gateway/static/root/assets/goal-detail-page-9paXuHdo.js +0 -1
  261. package/dist/gateway/static/root/assets/goals-page-CS0R-Af2.js +0 -2
  262. package/dist/gateway/static/root/assets/goals-settings-CSuzZ8Ae.js +0 -1
  263. package/dist/gateway/static/root/assets/heartbeat-settings-DXPaYJm3.js +0 -1
  264. package/dist/gateway/static/root/assets/index-BoKafJIZ.js +0 -191
  265. package/dist/gateway/static/root/assets/index-CArhCcYn.css +0 -1
  266. package/dist/gateway/static/root/assets/logs-page-DLXPcksQ.js +0 -2
  267. package/dist/gateway/static/root/assets/messages-CrDHEbss.js +0 -3
  268. package/dist/gateway/static/root/assets/models-hub-panel-BDF2iyRk.js +0 -2
  269. package/dist/gateway/static/root/assets/note-detail-page-CSb_hwig.js +0 -2
  270. package/dist/gateway/static/root/assets/remote-access-hub-CwzSovcS.js +0 -1
  271. package/dist/gateway/static/root/assets/schedule-field-CmTRoOcE.js +0 -1
  272. package/dist/gateway/static/root/assets/schema-form-FMKv1vGu.js +0 -1
  273. package/dist/gateway/static/root/assets/sessions-page-PHmX-NmA.js +0 -1
  274. package/dist/gateway/static/root/assets/settings-advanced-gate-BRAeKJN4.js +0 -1
  275. package/dist/gateway/static/root/assets/settings-form-section-D-4lBl6X.js +0 -1
  276. package/dist/gateway/static/root/assets/settings-page-KKrbFjy8.js +0 -1
  277. package/dist/gateway/static/root/assets/shares-settings-B18OBmH5.js +0 -1
  278. package/dist/gateway/static/root/assets/skill-reload-api-C28-2uKQ.js +0 -1
  279. package/dist/gateway/static/root/assets/skills-page-Bm2ebkwl.js +0 -2
  280. package/dist/gateway/static/root/assets/user-profile-settings-panel-DJ1dKwZy.js +0 -1
  281. package/dist/gateway/static/root/assets/voice-api-key-field-CeEevm7z.js +0 -1
  282. package/dist/gateway/static/root/assets/workflow-run-setup-panel-C4PzUQjB.js +0 -3
  283. package/dist/gateway/static/root/assets/workflows-page-BL84_-Ky.js +0 -18
  284. package/dist/src/agent/memory/memory-flush.d.ts +0 -27
  285. package/dist/src/agent/memory/memory-flush.js +0 -124
  286. package/dist/src/agent/memory/memory-flush.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domestic-presets.js","names":[],"sources":["../../../src/providers/domestic-presets.ts"],"sourcesContent":["import type { ProviderConfig } from '../config/models-json.js';\n\nexport interface DomesticProviderModelPreset {\n id: string;\n name?: string;\n contextWindow?: number;\n maxTokens?: number;\n reasoning?: boolean;\n input?: Array<'text' | 'image'>;\n}\n\nexport interface DomesticProviderBaseUrlPreset {\n id: string;\n label: string;\n baseUrl: string;\n description?: string;\n}\n\nexport interface DomesticProviderPreset {\n id: string;\n displayName: string;\n description: string;\n docsUrl: string;\n apiKeyUrl: string;\n pricingUrl?: string;\n envVars: string[];\n api: NonNullable<ProviderConfig['api']>;\n authHeader?: boolean;\n headers?: Record<string, string>;\n baseUrlPresets: DomesticProviderBaseUrlPreset[];\n defaultBaseUrlPreset: string;\n defaultModel: string;\n models: DomesticProviderModelPreset[];\n aliases: string[];\n quirks?: string[];\n}\n\nconst QWEN_MODELS: DomesticProviderModelPreset[] = [\n { id: 'qwen3.7-max', name: 'Qwen3.7 Max', contextWindow: 1000000, input: ['text', 'image'] },\n { id: 'qwen3.7-plus', name: 'Qwen3.7 Plus', contextWindow: 1000000, input: ['text', 'image'] },\n { id: 'qwen3.6-flash', name: 'Qwen3.6 Flash', contextWindow: 1000000, input: ['text'] },\n];\n\nconst STEPFUN_MODELS: DomesticProviderModelPreset[] = [\n { id: 'step-3.7-flash', name: 'Step 3.7 Flash', contextWindow: 1000000, reasoning: true, input: ['text', 'image'] },\n { id: 'step-3.5-flash-2603', name: 'Step 3.5 Flash 2603', contextWindow: 1000000, reasoning: true, input: ['text', 'image'] },\n { id: 'step-3.5-flash', name: 'Step 3.5 Flash', contextWindow: 1000000, reasoning: true, input: ['text'] },\n];\n\nconst MIMO_MODELS: DomesticProviderModelPreset[] = [\n { id: 'mimo-v2.5-pro', name: 'MiMo V2.5 Pro', contextWindow: 1000000, reasoning: true, input: ['text'] },\n { id: 'mimo-v2.5-pro-ultraspeed', name: 'MiMo V2.5 Pro UltraSpeed', contextWindow: 1000000, reasoning: true, input: ['text'] },\n { id: 'mimo-v2.5', name: 'MiMo V2.5', contextWindow: 1000000, reasoning: true, input: ['text', 'image'] },\n];\n\nconst MINIMAX_MODELS: DomesticProviderModelPreset[] = [\n { id: 'MiniMax-M3', name: 'MiniMax M3', contextWindow: 1000000, reasoning: true, input: ['text', 'image'] },\n { id: 'MiniMax-M2.7-highspeed', name: 'MiniMax M2.7 Highspeed', contextWindow: 204800, input: ['text'] },\n { id: 'MiniMax-M2.7', name: 'MiniMax M2.7', contextWindow: 204800, input: ['text'] },\n];\n\nexport const DOMESTIC_PROVIDER_PRESETS = [\n {\n id: 'dashscope-cn',\n displayName: 'Alibaba Bailian / DashScope China',\n description: 'Alibaba Bailian Qwen models through the China DashScope OpenAI-compatible endpoint.',\n docsUrl: 'https://help.aliyun.com/zh/model-studio/developer-reference/compatibility-of-openai-with-dashscope',\n apiKeyUrl: 'https://dashscope.console.aliyun.com/apiKey',\n pricingUrl: 'https://help.aliyun.com/zh/model-studio/developer-reference/tongyi-thousand-questions-metering-and-billing',\n envVars: ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [\n {\n id: 'cn',\n label: 'China',\n baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n },\n ],\n defaultBaseUrlPreset: 'cn',\n defaultModel: 'qwen3.7-plus',\n models: QWEN_MODELS,\n aliases: ['qwen', 'tongyi', 'aliyun', 'bailian', 'dashscope', 'dashscope cn', '阿里百炼'],\n quirks: ['Some Qwen coding endpoints use different hosts; keep the Base URL editable.'],\n },\n {\n id: 'dashscope-intl',\n displayName: 'Alibaba Bailian / DashScope International',\n description: 'Alibaba Bailian Qwen models through the international DashScope OpenAI-compatible endpoint.',\n docsUrl: 'https://www.alibabacloud.com/help/en/model-studio/compatibility-of-openai-with-dashscope',\n apiKeyUrl: 'https://modelstudio.console.alibabacloud.com/',\n pricingUrl: 'https://www.alibabacloud.com/help/en/model-studio/billing-for-tongyi-qianwen',\n envVars: ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [\n {\n id: 'intl',\n label: 'International',\n baseUrl: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',\n },\n ],\n defaultBaseUrlPreset: 'intl',\n defaultModel: 'qwen3.7-plus',\n models: QWEN_MODELS,\n aliases: ['qwen intl', 'tongyi intl', 'alibaba cloud', 'dashscope intl'],\n quirks: ['Use an international DashScope key for the international endpoint.'],\n },\n {\n id: 'volcengine-ark',\n displayName: 'Volcengine Ark',\n description: 'Volcengine Ark models through the OpenAI-compatible API.',\n docsUrl: 'https://www.volcengine.com/docs/82379/1302008',\n apiKeyUrl: 'https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey',\n envVars: ['ARK_API_KEY', 'VOLCENGINE_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [\n {\n id: 'cn-beijing',\n label: 'China Beijing',\n baseUrl: 'https://ark.cn-beijing.volces.com/api/v3',\n description: 'Model IDs are usually Ark endpoint IDs.',\n },\n ],\n defaultBaseUrlPreset: 'cn-beijing',\n defaultModel: 'ep-your-endpoint-id',\n models: [{ id: 'ep-your-endpoint-id', name: 'Ark endpoint ID', contextWindow: 128000, input: ['text'] }],\n aliases: ['doubao', 'ark', 'volcengine', 'volces', 'bytedance'],\n quirks: ['Use the Ark endpoint id as the model id.'],\n },\n {\n id: 'volcengine-plan',\n displayName: 'Volcengine Doubao Coding Plan',\n description: 'Doubao coding-plan models through Volcengine Ark coding endpoint.',\n docsUrl: 'https://www.volcengine.com/docs/82379/1302008',\n apiKeyUrl: 'https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey',\n envVars: ['ARK_API_KEY', 'VOLCENGINE_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [\n { id: 'cn-beijing-coding', label: 'China Beijing Coding Plan', baseUrl: 'https://ark.cn-beijing.volces.com/api/coding/v3' },\n ],\n defaultBaseUrlPreset: 'cn-beijing-coding',\n defaultModel: 'ark-code-latest',\n models: [\n { id: 'ark-code-latest', name: 'Ark Coding Plan', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-code', name: 'Doubao Seed 2.0 Code', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-pro', name: 'Doubao Seed 2.0 Pro', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-lite', name: 'Doubao Seed 2.0 Lite', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n ],\n aliases: ['doubao coding', 'volcengine plan', 'ark coding plan', '火山方舟 coding'],\n },\n {\n id: 'byteplus-plan',\n displayName: 'BytePlus Doubao Coding Plan',\n description: 'Doubao coding-plan models through the BytePlus international coding endpoint.',\n docsUrl: 'https://docs.byteplus.com/en/docs/ModelArk/OpenAI',\n apiKeyUrl: 'https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey',\n envVars: ['BYTEPLUS_API_KEY', 'ARK_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [\n { id: 'ap-southeast-coding', label: 'Asia Pacific Coding Plan', baseUrl: 'https://ark.ap-southeast.bytepluses.com/api/coding/v3' },\n ],\n defaultBaseUrlPreset: 'ap-southeast-coding',\n defaultModel: 'ark-code-latest',\n models: [\n { id: 'ark-code-latest', name: 'Ark Coding Plan', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-code', name: 'Doubao Seed 2.0 Code', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-pro', name: 'Doubao Seed 2.0 Pro', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n { id: 'doubao-seed-2.0-lite', name: 'Doubao Seed 2.0 Lite', contextWindow: 256000, maxTokens: 4096, input: ['text'] },\n ],\n aliases: ['byteplus', 'byteplus plan', 'doubao coding international'],\n },\n {\n id: 'deepseek',\n displayName: 'DeepSeek',\n description: 'DeepSeek models through the OpenAI-compatible API.',\n docsUrl: 'https://api-docs.deepseek.com/',\n apiKeyUrl: 'https://platform.deepseek.com/api_keys',\n pricingUrl: 'https://api-docs.deepseek.com/quick_start/pricing',\n envVars: ['DEEPSEEK_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'default', label: 'Default', baseUrl: 'https://api.deepseek.com' }],\n defaultBaseUrlPreset: 'default',\n defaultModel: 'deepseek-v4-pro',\n models: [\n { id: 'deepseek-v4-pro', name: 'DeepSeek V4 Pro', contextWindow: 1000000, maxTokens: 393216, reasoning: true, input: ['text'] },\n { id: 'deepseek-v4-flash', name: 'DeepSeek V4 Flash', contextWindow: 1000000, maxTokens: 393216, reasoning: true, input: ['text'] },\n ],\n aliases: ['deep seek', 'deepseek', 'r1'],\n quirks: ['Prefer current catalog models; older chat/reasoner aliases may be deprecated by the provider.'],\n },\n {\n id: 'moonshotai-cn',\n displayName: 'Kimi / Moonshot China',\n description: 'Kimi models through the Moonshot China OpenAI-compatible endpoint.',\n docsUrl: 'https://platform.moonshot.cn/docs',\n apiKeyUrl: 'https://platform.moonshot.cn/console/api-keys',\n pricingUrl: 'https://platform.moonshot.cn/docs/pricing/chat',\n envVars: ['MOONSHOT_API_KEY', 'KIMI_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'cn', label: 'China', baseUrl: 'https://api.moonshot.cn/v1' }],\n defaultBaseUrlPreset: 'cn',\n defaultModel: 'kimi-k2.7-code',\n models: [\n { id: 'kimi-k2.7-code', name: 'Kimi K2.7 Code', contextWindow: 262144, maxTokens: 32768, reasoning: true, input: ['text', 'image'] },\n { id: 'kimi-k2.6', name: 'Kimi K2.6', contextWindow: 128000, input: ['text'] },\n { id: 'kimi-k2.5', name: 'Kimi K2.5', contextWindow: 128000, input: ['text'] },\n ],\n aliases: ['kimi', 'moonshot', 'moonshot cn'],\n quirks: ['Provider-specific thinking and tool-call stream fields may need compatibility handling.'],\n },\n {\n id: 'moonshotai',\n displayName: 'Kimi / Moonshot International',\n description: 'Kimi models through the Moonshot international OpenAI-compatible endpoint.',\n docsUrl: 'https://platform.moonshot.ai/docs',\n apiKeyUrl: 'https://platform.moonshot.ai/console/api-keys',\n pricingUrl: 'https://platform.moonshot.ai/docs/pricing',\n envVars: ['MOONSHOT_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'intl', label: 'International', baseUrl: 'https://api.moonshot.ai/v1' }],\n defaultBaseUrlPreset: 'intl',\n defaultModel: 'kimi-k2.7-code',\n models: [\n { id: 'kimi-k2.7-code', name: 'Kimi K2.7 Code', contextWindow: 262144, maxTokens: 32768, reasoning: true, input: ['text', 'image'] },\n { id: 'kimi-k2.6', name: 'Kimi K2.6', contextWindow: 128000, input: ['text'] },\n { id: 'kimi-k2.5', name: 'Kimi K2.5', contextWindow: 128000, input: ['text'] },\n ],\n aliases: ['kimi intl', 'moonshot intl', 'moonshot ai'],\n quirks: ['Provider-specific thinking and tool-call stream fields may need compatibility handling.'],\n },\n {\n id: 'kimi-coding',\n displayName: 'Kimi Coding',\n description: 'Kimi dedicated coding endpoint with Anthropic-compatible requests.',\n docsUrl: 'https://platform.kimi.com/docs',\n apiKeyUrl: 'https://platform.kimi.com/console/api-keys',\n pricingUrl: 'https://platform.kimi.com/docs/pricing/chat',\n envVars: ['KIMI_API_KEY', 'MOONSHOT_API_KEY'],\n api: 'anthropic-messages',\n headers: { 'User-Agent': 'claude-code/0.1.0' },\n baseUrlPresets: [{ id: 'coding', label: 'Coding endpoint', baseUrl: 'https://api.kimi.com/coding/' }],\n defaultBaseUrlPreset: 'coding',\n defaultModel: 'kimi-k2.7-code',\n models: [\n { id: 'kimi-k2.7-code', name: 'Kimi K2.7 Code', contextWindow: 262144, maxTokens: 32768, reasoning: true, input: ['text', 'image'] },\n { id: 'kimi-for-coding', name: 'Kimi Code', contextWindow: 262144, maxTokens: 32768, reasoning: true, input: ['text', 'image'] },\n ],\n aliases: ['kimi coding', 'kimi code', 'moonshot coding'],\n },\n {\n id: 'stepfun-intl',\n displayName: 'StepFun International',\n description: 'StepFun models through the international OpenAI-compatible API.',\n docsUrl: 'https://platform.stepfun.com/docs',\n apiKeyUrl: 'https://platform.stepfun.com/interface-key',\n envVars: ['STEPFUN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'intl', label: 'International', baseUrl: 'https://api.stepfun.ai/v1' }],\n defaultBaseUrlPreset: 'intl',\n defaultModel: 'step-3.7-flash',\n models: STEPFUN_MODELS,\n aliases: ['step', 'stepfun', 'jieyue', 'stepfun intl'],\n },\n {\n id: 'stepfun-cn',\n displayName: 'StepFun China',\n description: 'StepFun models through the China OpenAI-compatible API.',\n docsUrl: 'https://platform.stepfun.com/docs',\n apiKeyUrl: 'https://platform.stepfun.com/interface-key',\n envVars: ['STEPFUN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'cn', label: 'China', baseUrl: 'https://api.stepfun.com/v1' }],\n defaultBaseUrlPreset: 'cn',\n defaultModel: 'step-3.7-flash',\n models: STEPFUN_MODELS,\n aliases: ['step cn', 'stepfun cn', 'jieyue cn', '阶跃星辰'],\n },\n {\n id: 'stepfun-plan-intl',\n displayName: 'StepFun Step Plan International',\n description: 'StepFun Step Plan international coding/planning endpoint.',\n docsUrl: 'https://platform.stepfun.com/docs',\n apiKeyUrl: 'https://platform.stepfun.com/interface-key',\n envVars: ['STEPFUN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'plan-intl', label: 'Step Plan International', baseUrl: 'https://api.stepfun.ai/step_plan/v1' }],\n defaultBaseUrlPreset: 'plan-intl',\n defaultModel: 'step-3.7-flash',\n models: STEPFUN_MODELS,\n aliases: ['step plan', 'stepfun plan', 'stepfun plan intl'],\n },\n {\n id: 'stepfun-plan-cn',\n displayName: 'StepFun Step Plan China',\n description: 'StepFun Step Plan China coding/planning endpoint.',\n docsUrl: 'https://platform.stepfun.com/docs',\n apiKeyUrl: 'https://platform.stepfun.com/interface-key',\n envVars: ['STEPFUN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'plan-cn', label: 'Step Plan China', baseUrl: 'https://api.stepfun.com/step_plan/v1' }],\n defaultBaseUrlPreset: 'plan-cn',\n defaultModel: 'step-3.7-flash',\n models: STEPFUN_MODELS,\n aliases: ['step plan cn', 'stepfun plan cn', '阶跃 plan'],\n },\n {\n id: 'xiaomi',\n displayName: 'Xiaomi MiMo',\n description: 'Xiaomi MiMo API billing endpoint through OpenAI-compatible requests.',\n docsUrl: 'https://platform.xiaomimimo.com/',\n apiKeyUrl: 'https://platform.xiaomimimo.com/#/console/api-keys',\n pricingUrl: 'https://mimo.mi.com/',\n envVars: ['XIAOMI_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'api', label: 'API billing', baseUrl: 'https://api.xiaomimimo.com/v1' }],\n defaultBaseUrlPreset: 'api',\n defaultModel: 'mimo-v2.5-pro',\n models: MIMO_MODELS,\n aliases: ['xiaomi', 'mimo', 'xiaomimimo'],\n quirks: ['Some MiMo plans document api-key style auth; keep auth header behavior configurable if needed.'],\n },\n {\n id: 'xiaomi-token-plan-cn',\n displayName: 'Xiaomi MiMo Token Plan China',\n description: 'Xiaomi MiMo Token Plan China endpoint.',\n docsUrl: 'https://platform.xiaomimimo.com/',\n apiKeyUrl: 'https://platform.xiaomimimo.com/#/console/api-keys',\n pricingUrl: 'https://mimo.mi.com/',\n envVars: ['XIAOMI_TOKEN_PLAN_CN_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'cn', label: 'China', baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1' }],\n defaultBaseUrlPreset: 'cn',\n defaultModel: 'mimo-v2.5-pro',\n models: MIMO_MODELS,\n aliases: ['xiaomi token plan cn', 'mimo token plan cn'],\n },\n {\n id: 'xiaomi-token-plan-ams',\n displayName: 'Xiaomi MiMo Token Plan Amsterdam',\n description: 'Xiaomi MiMo Token Plan Amsterdam endpoint.',\n docsUrl: 'https://platform.xiaomimimo.com/',\n apiKeyUrl: 'https://platform.xiaomimimo.com/#/console/api-keys',\n pricingUrl: 'https://mimo.mi.com/',\n envVars: ['XIAOMI_TOKEN_PLAN_AMS_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'ams', label: 'Amsterdam', baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1' }],\n defaultBaseUrlPreset: 'ams',\n defaultModel: 'mimo-v2.5-pro',\n models: MIMO_MODELS,\n aliases: ['xiaomi token plan ams', 'mimo token plan ams'],\n },\n {\n id: 'xiaomi-token-plan-sgp',\n displayName: 'Xiaomi MiMo Token Plan Singapore',\n description: 'Xiaomi MiMo Token Plan Singapore endpoint.',\n docsUrl: 'https://platform.xiaomimimo.com/',\n apiKeyUrl: 'https://platform.xiaomimimo.com/#/console/api-keys',\n pricingUrl: 'https://mimo.mi.com/',\n envVars: ['XIAOMI_TOKEN_PLAN_SGP_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'sgp', label: 'Singapore', baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1' }],\n defaultBaseUrlPreset: 'sgp',\n defaultModel: 'mimo-v2.5-pro',\n models: MIMO_MODELS,\n aliases: ['xiaomi token plan sgp', 'mimo token plan sgp'],\n },\n {\n id: 'zhipu-cn',\n displayName: 'Zhipu GLM China',\n description: 'Zhipu GLM models through the BigModel OpenAI-compatible API.',\n docsUrl: 'https://docs.bigmodel.cn/cn/guide/start/model-overview',\n apiKeyUrl: 'https://bigmodel.cn/usercenter/proj-mgmt/apikeys',\n pricingUrl: 'https://bigmodel.cn/pricing',\n envVars: ['ZHIPU_API_KEY', 'BIGMODEL_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'cn', label: 'China', baseUrl: 'https://open.bigmodel.cn/api/paas/v4' }],\n defaultBaseUrlPreset: 'cn',\n defaultModel: 'glm-5.2',\n models: [\n { id: 'glm-5.2', name: 'GLM 5.2', contextWindow: 1000000, maxTokens: 65536, reasoning: true, input: ['text'] },\n ],\n aliases: ['zhipu', 'glm', 'bigmodel', 'zai cn'],\n },\n {\n id: 'zai',\n displayName: 'Zhipu GLM International',\n description: 'Zhipu GLM models through the z.ai OpenAI-compatible endpoint.',\n docsUrl: 'https://docs.z.ai/guides/overview/quick-start',\n apiKeyUrl: 'https://z.ai/manage-apikey/apikey-list',\n pricingUrl: 'https://z.ai/manage-apikey/billing',\n envVars: ['ZAI_API_KEY', 'Z_AI_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'global', label: 'International', baseUrl: 'https://api.z.ai/api/paas/v4' }],\n defaultBaseUrlPreset: 'global',\n defaultModel: 'glm-5.2',\n models: [\n { id: 'glm-5.2', name: 'GLM 5.2', contextWindow: 1000000, maxTokens: 65536, reasoning: true, input: ['text'] },\n ],\n aliases: ['zai', 'z.ai', 'zhipu global', 'glm global'],\n },\n {\n id: 'zai-coding-global',\n displayName: 'Zhipu GLM Coding Plan International',\n description: 'Zhipu GLM coding-plan international endpoint.',\n docsUrl: 'https://docs.z.ai/guides/overview/quick-start',\n apiKeyUrl: 'https://z.ai/manage-apikey/apikey-list',\n pricingUrl: 'https://z.ai/manage-apikey/billing',\n envVars: ['ZAI_API_KEY', 'Z_AI_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'coding-global', label: 'Coding Global', baseUrl: 'https://api.z.ai/api/coding/paas/v4' }],\n defaultBaseUrlPreset: 'coding-global',\n defaultModel: 'glm-5.2',\n models: [\n { id: 'glm-5.2', name: 'GLM 5.2', contextWindow: 1000000, maxTokens: 65536, reasoning: true, input: ['text'] },\n ],\n aliases: ['zai coding', 'zhipu coding global', 'glm coding global'],\n },\n {\n id: 'zhipu-coding-cn',\n displayName: 'Zhipu GLM Coding Plan China',\n description: 'Zhipu GLM coding-plan China endpoint.',\n docsUrl: 'https://docs.bigmodel.cn/cn/guide/start/model-overview',\n apiKeyUrl: 'https://bigmodel.cn/usercenter/proj-mgmt/apikeys',\n pricingUrl: 'https://bigmodel.cn/pricing',\n envVars: ['ZHIPU_API_KEY', 'BIGMODEL_API_KEY', 'ZAI_API_KEY'],\n api: 'openai-completions',\n baseUrlPresets: [{ id: 'coding-cn', label: 'Coding China', baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4' }],\n defaultBaseUrlPreset: 'coding-cn',\n defaultModel: 'glm-5.2',\n models: [\n { id: 'glm-5.2', name: 'GLM 5.2', contextWindow: 1000000, maxTokens: 65536, reasoning: true, input: ['text'] },\n ],\n aliases: ['zhipu coding', 'glm coding cn', '智谱 coding'],\n },\n {\n id: 'minimax',\n displayName: 'MiniMax',\n description: 'MiniMax text models. Anthropic-compatible endpoint is preferred for agent/tool workflows.',\n docsUrl: 'https://platform.minimax.io/docs',\n apiKeyUrl: 'https://platform.minimax.io/user-center/basic-information/interface-key',\n pricingUrl: 'https://platform.minimax.io/docs/guides/models-intro',\n envVars: ['MINIMAX_API_KEY'],\n api: 'anthropic-messages',\n authHeader: true,\n baseUrlPresets: [\n { id: 'intl-anthropic', label: 'International Anthropic-compatible', baseUrl: 'https://api.minimax.io/anthropic' },\n { id: 'intl-openai', label: 'International OpenAI-compatible', baseUrl: 'https://api.minimax.io/v1' },\n ],\n defaultBaseUrlPreset: 'intl-anthropic',\n defaultModel: 'MiniMax-M3',\n models: MINIMAX_MODELS,\n aliases: ['minimax', 'mini max', 'abab'],\n quirks: ['Switch API type to OpenAI-compatible if you select an /v1 endpoint.'],\n },\n {\n id: 'minimax-cn',\n displayName: 'MiniMax China',\n description: 'MiniMax China endpoint. Anthropic-compatible endpoint is preferred for agent/tool workflows.',\n docsUrl: 'https://platform.minimaxi.com/document',\n apiKeyUrl: 'https://platform.minimaxi.com/user-center/basic-information/interface-key',\n pricingUrl: 'https://platform.minimaxi.com/document/Price',\n envVars: ['MINIMAX_CN_API_KEY', 'MINIMAX_API_KEY'],\n api: 'anthropic-messages',\n authHeader: true,\n baseUrlPresets: [\n { id: 'cn-anthropic', label: 'China Anthropic-compatible', baseUrl: 'https://api.minimaxi.com/anthropic' },\n { id: 'cn-openai', label: 'China OpenAI-compatible', baseUrl: 'https://api.minimaxi.com/v1' },\n ],\n defaultBaseUrlPreset: 'cn-anthropic',\n defaultModel: 'MiniMax-M3',\n models: MINIMAX_MODELS,\n aliases: ['minimax cn', 'mini max cn', 'abab cn'],\n quirks: ['Switch API type to OpenAI-compatible if you select an /v1 endpoint.'],\n },\n] as const satisfies readonly DomesticProviderPreset[];\n\nconst PRESET_BY_ID = new Map<string, DomesticProviderPreset>(\n DOMESTIC_PROVIDER_PRESETS.map((preset) => [preset.id, preset]),\n);\n\nexport function getDomesticProviderPreset(id: string): DomesticProviderPreset | undefined {\n return PRESET_BY_ID.get(id);\n}\n\nexport function getDomesticProviderPresetIds(): string[] {\n return DOMESTIC_PROVIDER_PRESETS.map((preset) => preset.id);\n}\n\nexport function getDomesticProviderBaseUrl(preset: DomesticProviderPreset): string {\n return (\n preset.baseUrlPresets.find((entry) => entry.id === preset.defaultBaseUrlPreset)?.baseUrl ??\n preset.baseUrlPresets[0]?.baseUrl ??\n ''\n );\n}\n\nexport function providerConfigFromDomesticPreset(\n preset: DomesticProviderPreset,\n params: { apiKey?: string; baseUrl?: string; modelIds?: string[] } = {},\n): ProviderConfig {\n const ids = params.modelIds?.length ? params.modelIds : preset.models.map((model) => model.id);\n return {\n baseUrl: params.baseUrl ?? getDomesticProviderBaseUrl(preset),\n apiKey: params.apiKey,\n api: preset.api,\n ...(preset.authHeader === undefined ? {} : { authHeader: preset.authHeader }),\n ...(preset.headers ? { headers: preset.headers } : {}),\n models: ids.map((id) => {\n const model = preset.models.find((entry) => entry.id === id);\n return {\n id,\n name: model?.name ?? id,\n api: preset.api,\n ...(model?.contextWindow ? { contextWindow: model.contextWindow } : {}),\n ...(model?.maxTokens ? { maxTokens: model.maxTokens } : {}),\n ...(model?.reasoning ? { reasoning: model.reasoning } : {}),\n input: model?.input ?? ['text'],\n };\n }),\n };\n}\n"],"mappings":";AAqCA,MAAM,cAA6C;CACjD;EAAE,IAAI;EAAe,MAAM;EAAe,eAAe;EAAS,OAAO,CAAC,QAAQ,QAAQ;EAAE;CAC5F;EAAE,IAAI;EAAgB,MAAM;EAAgB,eAAe;EAAS,OAAO,CAAC,QAAQ,QAAQ;EAAE;CAC9F;EAAE,IAAI;EAAiB,MAAM;EAAiB,eAAe;EAAS,OAAO,CAAC,OAAO;EAAE;CACxF;AAED,MAAM,iBAAgD;CACpD;EAAE,IAAI;EAAkB,MAAM;EAAkB,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,QAAQ,QAAQ;EAAE;CACnH;EAAE,IAAI;EAAuB,MAAM;EAAuB,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,QAAQ,QAAQ;EAAE;CAC7H;EAAE,IAAI;EAAkB,MAAM;EAAkB,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,OAAO;EAAE;CAC3G;AAED,MAAM,cAA6C;CACjD;EAAE,IAAI;EAAiB,MAAM;EAAiB,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,OAAO;EAAE;CACxG;EAAE,IAAI;EAA4B,MAAM;EAA4B,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,OAAO;EAAE;CAC9H;EAAE,IAAI;EAAa,MAAM;EAAa,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,QAAQ,QAAQ;EAAE;CAC1G;AAED,MAAM,iBAAgD;CACpD;EAAE,IAAI;EAAc,MAAM;EAAc,eAAe;EAAS,WAAW;EAAM,OAAO,CAAC,QAAQ,QAAQ;EAAE;CAC3G;EAAE,IAAI;EAA0B,MAAM;EAA0B,eAAe;EAAQ,OAAO,CAAC,OAAO;EAAE;CACxG;EAAE,IAAI;EAAgB,MAAM;EAAgB,eAAe;EAAQ,OAAO,CAAC,OAAO;EAAE;CACrF;AAED,MAAa,4BAA4B;CACvC;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,qBAAqB,eAAe;EAC9C,KAAK;EACL,gBAAgB,CACd;GACE,IAAI;GACJ,OAAO;GACP,SAAS;GACV,CACF;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAQ;GAAU;GAAU;GAAW;GAAa;GAAgB;GAAO;EACrF,QAAQ,CAAC,8EAA8E;EACxF;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,qBAAqB,eAAe;EAC9C,KAAK;EACL,gBAAgB,CACd;GACE,IAAI;GACJ,OAAO;GACP,SAAS;GACV,CACF;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAa;GAAe;GAAiB;GAAiB;EACxE,QAAQ,CAAC,qEAAqE;EAC/E;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,eAAe,qBAAqB;EAC9C,KAAK;EACL,gBAAgB,CACd;GACE,IAAI;GACJ,OAAO;GACP,SAAS;GACT,aAAa;GACd,CACF;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ,CAAC;GAAE,IAAI;GAAuB,MAAM;GAAmB,eAAe;GAAQ,OAAO,CAAC,OAAO;GAAE,CAAC;EACxG,SAAS;GAAC;GAAU;GAAO;GAAc;GAAU;GAAY;EAC/D,QAAQ,CAAC,2CAA2C;EACrD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,eAAe,qBAAqB;EAC9C,KAAK;EACL,gBAAgB,CACd;GAAE,IAAI;GAAqB,OAAO;GAA6B,SAAS;GAAmD,CAC5H;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;GACN;IAAE,IAAI;IAAmB,MAAM;IAAmB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GAC3G;IAAE,IAAI;IAAwB,MAAM;IAAwB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACrH;IAAE,IAAI;IAAuB,MAAM;IAAuB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACnH;IAAE,IAAI;IAAwB,MAAM;IAAwB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACtH;EACD,SAAS;GAAC;GAAiB;GAAmB;GAAmB;GAAc;EAChF;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,oBAAoB,cAAc;EAC5C,KAAK;EACL,gBAAgB,CACd;GAAE,IAAI;GAAuB,OAAO;GAA4B,SAAS;GAAyD,CACnI;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;GACN;IAAE,IAAI;IAAmB,MAAM;IAAmB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GAC3G;IAAE,IAAI;IAAwB,MAAM;IAAwB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACrH;IAAE,IAAI;IAAuB,MAAM;IAAuB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACnH;IAAE,IAAI;IAAwB,MAAM;IAAwB,eAAe;IAAQ,WAAW;IAAM,OAAO,CAAC,OAAO;IAAE;GACtH;EACD,SAAS;GAAC;GAAY;GAAiB;GAA8B;EACtE;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,mBAAmB;EAC7B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAW,OAAO;GAAW,SAAS;GAA4B,CAAC;EAC1F,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAmB,MAAM;GAAmB,eAAe;GAAS,WAAW;GAAQ,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,EAC/H;GAAE,IAAI;GAAqB,MAAM;GAAqB,eAAe;GAAS,WAAW;GAAQ,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,CACpI;EACD,SAAS;GAAC;GAAa;GAAY;GAAK;EACxC,QAAQ,CAAC,gGAAgG;EAC1G;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,oBAAoB,eAAe;EAC7C,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAM,OAAO;GAAS,SAAS;GAA8B,CAAC;EACrF,sBAAsB;EACtB,cAAc;EACd,QAAQ;GACN;IAAE,IAAI;IAAkB,MAAM;IAAkB,eAAe;IAAQ,WAAW;IAAO,WAAW;IAAM,OAAO,CAAC,QAAQ,QAAQ;IAAE;GACpI;IAAE,IAAI;IAAa,MAAM;IAAa,eAAe;IAAQ,OAAO,CAAC,OAAO;IAAE;GAC9E;IAAE,IAAI;IAAa,MAAM;IAAa,eAAe;IAAQ,OAAO,CAAC,OAAO;IAAE;GAC/E;EACD,SAAS;GAAC;GAAQ;GAAY;GAAc;EAC5C,QAAQ,CAAC,0FAA0F;EACpG;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,mBAAmB;EAC7B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAQ,OAAO;GAAiB,SAAS;GAA8B,CAAC;EAC/F,sBAAsB;EACtB,cAAc;EACd,QAAQ;GACN;IAAE,IAAI;IAAkB,MAAM;IAAkB,eAAe;IAAQ,WAAW;IAAO,WAAW;IAAM,OAAO,CAAC,QAAQ,QAAQ;IAAE;GACpI;IAAE,IAAI;IAAa,MAAM;IAAa,eAAe;IAAQ,OAAO,CAAC,OAAO;IAAE;GAC9E;IAAE,IAAI;IAAa,MAAM;IAAa,eAAe;IAAQ,OAAO,CAAC,OAAO;IAAE;GAC/E;EACD,SAAS;GAAC;GAAa;GAAiB;GAAc;EACtD,QAAQ,CAAC,0FAA0F;EACpG;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,gBAAgB,mBAAmB;EAC7C,KAAK;EACL,SAAS,EAAE,cAAc,qBAAqB;EAC9C,gBAAgB,CAAC;GAAE,IAAI;GAAU,OAAO;GAAmB,SAAS;GAAgC,CAAC;EACrG,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAkB,MAAM;GAAkB,eAAe;GAAQ,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,QAAQ,QAAQ;GAAE,EACpI;GAAE,IAAI;GAAmB,MAAM;GAAa,eAAe;GAAQ,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,QAAQ,QAAQ;GAAE,CACjI;EACD,SAAS;GAAC;GAAe;GAAa;GAAkB;EACzD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,kBAAkB;EAC5B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAQ,OAAO;GAAiB,SAAS;GAA6B,CAAC;EAC9F,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAQ;GAAW;GAAU;GAAe;EACvD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,kBAAkB;EAC5B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAM,OAAO;GAAS,SAAS;GAA8B,CAAC;EACrF,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAW;GAAc;GAAa;GAAO;EACxD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,kBAAkB;EAC5B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAa,OAAO;GAA2B,SAAS;GAAuC,CAAC;EACvH,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAa;GAAgB;GAAoB;EAC5D;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,SAAS,CAAC,kBAAkB;EAC5B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAW,OAAO;GAAmB,SAAS;GAAwC,CAAC;EAC9G,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAgB;GAAmB;GAAU;EACxD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,iBAAiB;EAC3B,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAO,OAAO;GAAe,SAAS;GAAiC,CAAC;EAC/F,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAU;GAAQ;GAAa;EACzC,QAAQ,CAAC,iGAAiG;EAC3G;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,gCAAgC,4BAA4B;EACtE,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAM,OAAO;GAAS,SAAS;GAA2C,CAAC;EAClG,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS,CAAC,wBAAwB,qBAAqB;EACxD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,iCAAiC,4BAA4B;EACvE,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAO,OAAO;GAAa,SAAS;GAA4C,CAAC;EACxG,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS,CAAC,yBAAyB,sBAAsB;EAC1D;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,iCAAiC,4BAA4B;EACvE,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAO,OAAO;GAAa,SAAS;GAA4C,CAAC;EACxG,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS,CAAC,yBAAyB,sBAAsB;EAC1D;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,iBAAiB,mBAAmB;EAC9C,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAM,OAAO;GAAS,SAAS;GAAwC,CAAC;EAC/F,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAW,MAAM;GAAW,eAAe;GAAS,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,CAC/G;EACD,SAAS;GAAC;GAAS;GAAO;GAAY;GAAS;EAChD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,eAAe,eAAe;EACxC,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAU,OAAO;GAAiB,SAAS;GAAgC,CAAC;EACnG,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAW,MAAM;GAAW,eAAe;GAAS,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,CAC/G;EACD,SAAS;GAAC;GAAO;GAAQ;GAAgB;GAAa;EACvD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,eAAe,eAAe;EACxC,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAiB,OAAO;GAAiB,SAAS;GAAuC,CAAC;EACjH,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAW,MAAM;GAAW,eAAe;GAAS,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,CAC/G;EACD,SAAS;GAAC;GAAc;GAAuB;GAAoB;EACpE;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS;GAAC;GAAiB;GAAoB;GAAc;EAC7D,KAAK;EACL,gBAAgB,CAAC;GAAE,IAAI;GAAa,OAAO;GAAgB,SAAS;GAA+C,CAAC;EACpH,sBAAsB;EACtB,cAAc;EACd,QAAQ,CACN;GAAE,IAAI;GAAW,MAAM;GAAW,eAAe;GAAS,WAAW;GAAO,WAAW;GAAM,OAAO,CAAC,OAAO;GAAE,CAC/G;EACD,SAAS;GAAC;GAAgB;GAAiB;GAAY;EACxD;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,kBAAkB;EAC5B,KAAK;EACL,YAAY;EACZ,gBAAgB,CACd;GAAE,IAAI;GAAkB,OAAO;GAAsC,SAAS;GAAoC,EAClH;GAAE,IAAI;GAAe,OAAO;GAAmC,SAAS;GAA6B,CACtG;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAW;GAAY;GAAO;EACxC,QAAQ,CAAC,sEAAsE;EAChF;CACD;EACE,IAAI;EACJ,aAAa;EACb,aAAa;EACb,SAAS;EACT,WAAW;EACX,YAAY;EACZ,SAAS,CAAC,sBAAsB,kBAAkB;EAClD,KAAK;EACL,YAAY;EACZ,gBAAgB,CACd;GAAE,IAAI;GAAgB,OAAO;GAA8B,SAAS;GAAsC,EAC1G;GAAE,IAAI;GAAa,OAAO;GAA2B,SAAS;GAA+B,CAC9F;EACD,sBAAsB;EACtB,cAAc;EACd,QAAQ;EACR,SAAS;GAAC;GAAc;GAAe;GAAU;EACjD,QAAQ,CAAC,sEAAsE;EAChF;CACF;AAED,MAAM,eAAe,IAAI,IACvB,0BAA0B,KAAK,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC,CAC/D;AAED,SAAgB,0BAA0B,IAAgD;AACxF,QAAO,aAAa,IAAI,GAAG;;AAG7B,SAAgB,+BAAyC;AACvD,QAAO,0BAA0B,KAAK,WAAW,OAAO,GAAG;;AAG7D,SAAgB,2BAA2B,QAAwC;AACjF,QACE,OAAO,eAAe,MAAM,UAAU,MAAM,OAAO,OAAO,qBAAqB,EAAE,WACjF,OAAO,eAAe,IAAI,WAC1B;;AAIJ,SAAgB,iCACd,QACA,SAAqE,EAAE,EACvD;CAChB,MAAM,MAAM,OAAO,UAAU,SAAS,OAAO,WAAW,OAAO,OAAO,KAAK,UAAU,MAAM,GAAG;AAC9F,QAAO;EACL,SAAS,OAAO,WAAW,2BAA2B,OAAO;EAC7D,QAAQ,OAAO;EACf,KAAK,OAAO;EACZ,GAAI,OAAO,eAAe,KAAA,IAAY,EAAE,GAAG,EAAE,YAAY,OAAO,YAAY;EAC5E,GAAI,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,GAAG,EAAE;EACrD,QAAQ,IAAI,KAAK,OAAO;GACtB,MAAM,QAAQ,OAAO,OAAO,MAAM,UAAU,MAAM,OAAO,GAAG;AAC5D,UAAO;IACL;IACA,MAAM,OAAO,QAAQ;IACrB,KAAK,OAAO;IACZ,GAAI,OAAO,gBAAgB,EAAE,eAAe,MAAM,eAAe,GAAG,EAAE;IACtE,GAAI,OAAO,YAAY,EAAE,WAAW,MAAM,WAAW,GAAG,EAAE;IAC1D,GAAI,OAAO,YAAY,EAAE,WAAW,MAAM,WAAW,GAAG,EAAE;IAC1D,OAAO,OAAO,SAAS,CAAC,OAAO;IAChC;IACD;EACH"}
@@ -44,12 +44,12 @@ var init_env_keys = __esmMin((() => {
44
44
  huggingface: ["HF_TOKEN", "HUGGINGFACE_TOKEN"],
45
45
  opencode: ["OPENCODE_API_KEY"],
46
46
  "opencode-go": ["OPENCODE_API_KEY"],
47
- zai: ["ZAI_API_KEY"],
47
+ zai: ["ZAI_API_KEY", "Z_AI_API_KEY"],
48
48
  together: ["TOGETHER_API_KEY"],
49
49
  xiaomi: ["XIAOMI_API_KEY"],
50
- "xiaomi-token-plan-cn": ["XIAOMI_TOKEN_PLAN_CN_API_KEY"],
51
- "xiaomi-token-plan-ams": ["XIAOMI_TOKEN_PLAN_AMS_API_KEY"],
52
- "xiaomi-token-plan-sgp": ["XIAOMI_TOKEN_PLAN_SGP_API_KEY"],
50
+ "xiaomi-token-plan-cn": ["XIAOMI_TOKEN_PLAN_CN_API_KEY", "XIAOMI_TOKEN_PLAN_API_KEY"],
51
+ "xiaomi-token-plan-ams": ["XIAOMI_TOKEN_PLAN_AMS_API_KEY", "XIAOMI_TOKEN_PLAN_API_KEY"],
52
+ "xiaomi-token-plan-sgp": ["XIAOMI_TOKEN_PLAN_SGP_API_KEY", "XIAOMI_TOKEN_PLAN_API_KEY"],
53
53
  "google-gemini-cli": ["GEMINI_CLI_TOKEN", "GOOGLE_TOKEN"],
54
54
  "google-antigravity": ["ANTIGRAVITY_API_KEY"],
55
55
  "vercel-ai-gateway": ["AI_GATEWAY_API_KEY", "VERCEL_AI_GATEWAY_API_KEY"],
@@ -60,7 +60,31 @@ var init_env_keys = __esmMin((() => {
60
60
  "GITHUB_COPILOT_TOKEN"
61
61
  ],
62
62
  /** DashScope HTTP APIs (image gen, STT, TTS) — not an LLM KnownProvider. */
63
- dashscope: ["DASHSCOPE_API_KEY"]
63
+ dashscope: ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
64
+ "dashscope-cn": ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
65
+ "dashscope-intl": ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
66
+ "volcengine-ark": ["ARK_API_KEY", "VOLCENGINE_API_KEY"],
67
+ "volcengine-plan": ["ARK_API_KEY", "VOLCENGINE_API_KEY"],
68
+ "byteplus-plan": ["BYTEPLUS_API_KEY", "ARK_API_KEY"],
69
+ stepfun: ["STEPFUN_API_KEY"],
70
+ "stepfun-cn": ["STEPFUN_API_KEY"],
71
+ "stepfun-intl": ["STEPFUN_API_KEY"],
72
+ "stepfun-plan": ["STEPFUN_API_KEY"],
73
+ "stepfun-plan-cn": ["STEPFUN_API_KEY"],
74
+ "stepfun-plan-intl": ["STEPFUN_API_KEY"],
75
+ "ant-ling": ["ANT_LING_API_KEY", "LING_API_KEY"],
76
+ "zhipu-cn": ["ZHIPU_API_KEY", "BIGMODEL_API_KEY"],
77
+ "zai-coding-cn": [
78
+ "ZHIPU_API_KEY",
79
+ "BIGMODEL_API_KEY",
80
+ "ZAI_API_KEY"
81
+ ],
82
+ "zai-coding-global": ["ZAI_API_KEY", "Z_AI_API_KEY"],
83
+ "zhipu-coding-cn": [
84
+ "ZHIPU_API_KEY",
85
+ "BIGMODEL_API_KEY",
86
+ "ZAI_API_KEY"
87
+ ]
64
88
  };
65
89
  }));
66
90
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"env-keys.js","names":[],"sources":["../../../src/providers/env-keys.ts"],"sourcesContent":["/**\n * Provider → environment variable resolution (no credentials module dependency).\n * Keys align with pi-ai KnownProvider + @earendil-works/pi-ai getEnvApiKey where applicable.\n */\n\nexport const PROVIDER_ENV_MAP: Record<string, string[]> = {\n\topenai: ['OPENAI_API_KEY'],\n\tanthropic: ['ANTHROPIC_OAUTH_TOKEN', 'ANTHROPIC_API_KEY'],\n\tdeepseek: ['DEEPSEEK_API_KEY'],\n\tgoogle: ['GEMINI_API_KEY', 'GOOGLE_API_KEY'],\n\t'google-vertex': ['GOOGLE_CLOUD_API_KEY', 'GOOGLE_CLOUD_PROJECT', 'GOOGLE_CLOUD_LOCATION'],\n\tgroq: ['GROQ_API_KEY'],\n\txai: ['XAI_API_KEY'],\n\tcerebras: ['CEREBRAS_API_KEY'],\n\tmistral: ['MISTRAL_API_KEY'],\n\topenrouter: ['OPENROUTER_API_KEY'],\n\t'azure-openai-responses': ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_BASE_URL'],\n\t'amazon-bedrock': ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION'],\n\t'cloudflare-ai-gateway': ['CLOUDFLARE_API_KEY'],\n\t'cloudflare-workers-ai': ['CLOUDFLARE_API_KEY'],\n\tfireworks: ['FIREWORKS_API_KEY'],\n\tminimax: ['MINIMAX_API_KEY'],\n\t'minimax-cn': ['MINIMAX_CN_API_KEY', 'MINIMAX_API_KEY'],\n\t'kimi-coding': ['KIMI_API_KEY', 'MOONSHOT_API_KEY'],\n\tmoonshotai: ['MOONSHOT_API_KEY'],\n\t'moonshotai-cn': ['MOONSHOT_API_KEY'],\n\thuggingface: ['HF_TOKEN', 'HUGGINGFACE_TOKEN'],\n\topencode: ['OPENCODE_API_KEY'],\n\t'opencode-go': ['OPENCODE_API_KEY'],\n\tzai: ['ZAI_API_KEY'],\n\ttogether: ['TOGETHER_API_KEY'],\n\txiaomi: ['XIAOMI_API_KEY'],\n\t'xiaomi-token-plan-cn': ['XIAOMI_TOKEN_PLAN_CN_API_KEY'],\n\t'xiaomi-token-plan-ams': ['XIAOMI_TOKEN_PLAN_AMS_API_KEY'],\n\t'xiaomi-token-plan-sgp': ['XIAOMI_TOKEN_PLAN_SGP_API_KEY'],\n\t'google-gemini-cli': ['GEMINI_CLI_TOKEN', 'GOOGLE_TOKEN'],\n\t'google-antigravity': ['ANTIGRAVITY_API_KEY'],\n\t'vercel-ai-gateway': ['AI_GATEWAY_API_KEY', 'VERCEL_AI_GATEWAY_API_KEY'],\n\t'github-copilot': ['COPILOT_GITHUB_TOKEN', 'GH_TOKEN', 'GITHUB_TOKEN', 'GITHUB_COPILOT_TOKEN'],\n\t/** DashScope HTTP APIs (image gen, STT, TTS) — not an LLM KnownProvider. */\n\tdashscope: ['DASHSCOPE_API_KEY'],\n};\n\n/**\n * Get API key from environment variables for a provider\n */\nexport function getApiKeyFromEnv(provider: string): string | undefined {\n\tconst envVar = provider.toUpperCase().replace(/-/g, '_') + '_API_KEY';\n\tconst envKey = process.env[envVar];\n\tif (envKey) return envKey;\n\n\tconst keys = PROVIDER_ENV_MAP[provider] || [];\n\tfor (const key of keys) {\n\t\tif (process.env[key]) return process.env[key];\n\t}\n\n\treturn undefined;\n}\n"],"mappings":";;;;;AA8CA,SAAgB,iBAAiB,UAAsC;CACtE,MAAM,SAAS,SAAS,aAAa,CAAC,QAAQ,MAAM,IAAI,GAAG;CAC3D,MAAM,SAAS,QAAQ,IAAI;AAC3B,KAAI,OAAQ,QAAO;CAEnB,MAAM,OAAO,iBAAiB,aAAa,EAAE;AAC7C,MAAK,MAAM,OAAO,KACjB,KAAI,QAAQ,IAAI,KAAM,QAAO,QAAQ,IAAI;;;;AAhD9B,oBAA6C;EACzD,QAAQ,CAAC,iBAAiB;EAC1B,WAAW,CAAC,yBAAyB,oBAAoB;EACzD,UAAU,CAAC,mBAAmB;EAC9B,QAAQ,CAAC,kBAAkB,iBAAiB;EAC5C,iBAAiB;GAAC;GAAwB;GAAwB;GAAwB;EAC1F,MAAM,CAAC,eAAe;EACtB,KAAK,CAAC,cAAc;EACpB,UAAU,CAAC,mBAAmB;EAC9B,SAAS,CAAC,kBAAkB;EAC5B,YAAY,CAAC,qBAAqB;EAClC,0BAA0B,CAAC,wBAAwB,wBAAwB;EAC3E,kBAAkB;GAAC;GAAqB;GAAyB;GAAa;EAC9E,yBAAyB,CAAC,qBAAqB;EAC/C,yBAAyB,CAAC,qBAAqB;EAC/C,WAAW,CAAC,oBAAoB;EAChC,SAAS,CAAC,kBAAkB;EAC5B,cAAc,CAAC,sBAAsB,kBAAkB;EACvD,eAAe,CAAC,gBAAgB,mBAAmB;EACnD,YAAY,CAAC,mBAAmB;EAChC,iBAAiB,CAAC,mBAAmB;EACrC,aAAa,CAAC,YAAY,oBAAoB;EAC9C,UAAU,CAAC,mBAAmB;EAC9B,eAAe,CAAC,mBAAmB;EACnC,KAAK,CAAC,cAAc;EACpB,UAAU,CAAC,mBAAmB;EAC9B,QAAQ,CAAC,iBAAiB;EAC1B,wBAAwB,CAAC,+BAA+B;EACxD,yBAAyB,CAAC,gCAAgC;EAC1D,yBAAyB,CAAC,gCAAgC;EAC1D,qBAAqB,CAAC,oBAAoB,eAAe;EACzD,sBAAsB,CAAC,sBAAsB;EAC7C,qBAAqB,CAAC,sBAAsB,4BAA4B;EACxE,kBAAkB;GAAC;GAAwB;GAAY;GAAgB;GAAuB;;EAE9F,WAAW,CAAC,oBAAoB;EAChC"}
1
+ {"version":3,"file":"env-keys.js","names":[],"sources":["../../../src/providers/env-keys.ts"],"sourcesContent":["/**\n * Provider → environment variable resolution (no credentials module dependency).\n * Keys align with pi-ai KnownProvider + @earendil-works/pi-ai getEnvApiKey where applicable.\n */\n\nexport const PROVIDER_ENV_MAP: Record<string, string[]> = {\n\topenai: ['OPENAI_API_KEY'],\n\tanthropic: ['ANTHROPIC_OAUTH_TOKEN', 'ANTHROPIC_API_KEY'],\n\tdeepseek: ['DEEPSEEK_API_KEY'],\n\tgoogle: ['GEMINI_API_KEY', 'GOOGLE_API_KEY'],\n\t'google-vertex': ['GOOGLE_CLOUD_API_KEY', 'GOOGLE_CLOUD_PROJECT', 'GOOGLE_CLOUD_LOCATION'],\n\tgroq: ['GROQ_API_KEY'],\n\txai: ['XAI_API_KEY'],\n\tcerebras: ['CEREBRAS_API_KEY'],\n\tmistral: ['MISTRAL_API_KEY'],\n\topenrouter: ['OPENROUTER_API_KEY'],\n\t'azure-openai-responses': ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_BASE_URL'],\n\t'amazon-bedrock': ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION'],\n\t'cloudflare-ai-gateway': ['CLOUDFLARE_API_KEY'],\n\t'cloudflare-workers-ai': ['CLOUDFLARE_API_KEY'],\n\tfireworks: ['FIREWORKS_API_KEY'],\n\tminimax: ['MINIMAX_API_KEY'],\n\t'minimax-cn': ['MINIMAX_CN_API_KEY', 'MINIMAX_API_KEY'],\n\t'kimi-coding': ['KIMI_API_KEY', 'MOONSHOT_API_KEY'],\n\tmoonshotai: ['MOONSHOT_API_KEY'],\n\t'moonshotai-cn': ['MOONSHOT_API_KEY'],\n\thuggingface: ['HF_TOKEN', 'HUGGINGFACE_TOKEN'],\n\topencode: ['OPENCODE_API_KEY'],\n\t'opencode-go': ['OPENCODE_API_KEY'],\n\tzai: ['ZAI_API_KEY', 'Z_AI_API_KEY'],\n\ttogether: ['TOGETHER_API_KEY'],\n\txiaomi: ['XIAOMI_API_KEY'],\n\t'xiaomi-token-plan-cn': ['XIAOMI_TOKEN_PLAN_CN_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n\t'xiaomi-token-plan-ams': ['XIAOMI_TOKEN_PLAN_AMS_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n\t'xiaomi-token-plan-sgp': ['XIAOMI_TOKEN_PLAN_SGP_API_KEY', 'XIAOMI_TOKEN_PLAN_API_KEY'],\n\t'google-gemini-cli': ['GEMINI_CLI_TOKEN', 'GOOGLE_TOKEN'],\n\t'google-antigravity': ['ANTIGRAVITY_API_KEY'],\n\t'vercel-ai-gateway': ['AI_GATEWAY_API_KEY', 'VERCEL_AI_GATEWAY_API_KEY'],\n\t'github-copilot': ['COPILOT_GITHUB_TOKEN', 'GH_TOKEN', 'GITHUB_TOKEN', 'GITHUB_COPILOT_TOKEN'],\n\t/** DashScope HTTP APIs (image gen, STT, TTS) — not an LLM KnownProvider. */\n\tdashscope: ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],\n\t'dashscope-cn': ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],\n\t'dashscope-intl': ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],\n\t'volcengine-ark': ['ARK_API_KEY', 'VOLCENGINE_API_KEY'],\n\t'volcengine-plan': ['ARK_API_KEY', 'VOLCENGINE_API_KEY'],\n\t'byteplus-plan': ['BYTEPLUS_API_KEY', 'ARK_API_KEY'],\n\tstepfun: ['STEPFUN_API_KEY'],\n\t'stepfun-cn': ['STEPFUN_API_KEY'],\n\t'stepfun-intl': ['STEPFUN_API_KEY'],\n\t'stepfun-plan': ['STEPFUN_API_KEY'],\n\t'stepfun-plan-cn': ['STEPFUN_API_KEY'],\n\t'stepfun-plan-intl': ['STEPFUN_API_KEY'],\n\t'ant-ling': ['ANT_LING_API_KEY', 'LING_API_KEY'],\n\t'zhipu-cn': ['ZHIPU_API_KEY', 'BIGMODEL_API_KEY'],\n\t'zai-coding-cn': ['ZHIPU_API_KEY', 'BIGMODEL_API_KEY', 'ZAI_API_KEY'],\n\t'zai-coding-global': ['ZAI_API_KEY', 'Z_AI_API_KEY'],\n\t'zhipu-coding-cn': ['ZHIPU_API_KEY', 'BIGMODEL_API_KEY', 'ZAI_API_KEY'],\n};\n\n/**\n * Get API key from environment variables for a provider\n */\nexport function getApiKeyFromEnv(provider: string): string | undefined {\n\tconst envVar = provider.toUpperCase().replace(/-/g, '_') + '_API_KEY';\n\tconst envKey = process.env[envVar];\n\tif (envKey) return envKey;\n\n\tconst keys = PROVIDER_ENV_MAP[provider] || [];\n\tfor (const key of keys) {\n\t\tif (process.env[key]) return process.env[key];\n\t}\n\n\treturn undefined;\n}\n"],"mappings":";;;;;AA8DA,SAAgB,iBAAiB,UAAsC;CACtE,MAAM,SAAS,SAAS,aAAa,CAAC,QAAQ,MAAM,IAAI,GAAG;CAC3D,MAAM,SAAS,QAAQ,IAAI;AAC3B,KAAI,OAAQ,QAAO;CAEnB,MAAM,OAAO,iBAAiB,aAAa,EAAE;AAC7C,MAAK,MAAM,OAAO,KACjB,KAAI,QAAQ,IAAI,KAAM,QAAO,QAAQ,IAAI;;;;AAhE9B,oBAA6C;EACzD,QAAQ,CAAC,iBAAiB;EAC1B,WAAW,CAAC,yBAAyB,oBAAoB;EACzD,UAAU,CAAC,mBAAmB;EAC9B,QAAQ,CAAC,kBAAkB,iBAAiB;EAC5C,iBAAiB;GAAC;GAAwB;GAAwB;GAAwB;EAC1F,MAAM,CAAC,eAAe;EACtB,KAAK,CAAC,cAAc;EACpB,UAAU,CAAC,mBAAmB;EAC9B,SAAS,CAAC,kBAAkB;EAC5B,YAAY,CAAC,qBAAqB;EAClC,0BAA0B,CAAC,wBAAwB,wBAAwB;EAC3E,kBAAkB;GAAC;GAAqB;GAAyB;GAAa;EAC9E,yBAAyB,CAAC,qBAAqB;EAC/C,yBAAyB,CAAC,qBAAqB;EAC/C,WAAW,CAAC,oBAAoB;EAChC,SAAS,CAAC,kBAAkB;EAC5B,cAAc,CAAC,sBAAsB,kBAAkB;EACvD,eAAe,CAAC,gBAAgB,mBAAmB;EACnD,YAAY,CAAC,mBAAmB;EAChC,iBAAiB,CAAC,mBAAmB;EACrC,aAAa,CAAC,YAAY,oBAAoB;EAC9C,UAAU,CAAC,mBAAmB;EAC9B,eAAe,CAAC,mBAAmB;EACnC,KAAK,CAAC,eAAe,eAAe;EACpC,UAAU,CAAC,mBAAmB;EAC9B,QAAQ,CAAC,iBAAiB;EAC1B,wBAAwB,CAAC,gCAAgC,4BAA4B;EACrF,yBAAyB,CAAC,iCAAiC,4BAA4B;EACvF,yBAAyB,CAAC,iCAAiC,4BAA4B;EACvF,qBAAqB,CAAC,oBAAoB,eAAe;EACzD,sBAAsB,CAAC,sBAAsB;EAC7C,qBAAqB,CAAC,sBAAsB,4BAA4B;EACxE,kBAAkB;GAAC;GAAwB;GAAY;GAAgB;GAAuB;;EAE9F,WAAW,CAAC,qBAAqB,eAAe;EAChD,gBAAgB,CAAC,qBAAqB,eAAe;EACrD,kBAAkB,CAAC,qBAAqB,eAAe;EACvD,kBAAkB,CAAC,eAAe,qBAAqB;EACvD,mBAAmB,CAAC,eAAe,qBAAqB;EACxD,iBAAiB,CAAC,oBAAoB,cAAc;EACpD,SAAS,CAAC,kBAAkB;EAC5B,cAAc,CAAC,kBAAkB;EACjC,gBAAgB,CAAC,kBAAkB;EACnC,gBAAgB,CAAC,kBAAkB;EACnC,mBAAmB,CAAC,kBAAkB;EACtC,qBAAqB,CAAC,kBAAkB;EACxC,YAAY,CAAC,oBAAoB,eAAe;EAChD,YAAY,CAAC,iBAAiB,mBAAmB;EACjD,iBAAiB;GAAC;GAAiB;GAAoB;GAAc;EACrE,qBAAqB,CAAC,eAAe,eAAe;EACpD,mBAAmB;GAAC;GAAiB;GAAoB;GAAc;EACvE"}
@@ -2,7 +2,7 @@ import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { getProviderRegistry, init_plugin_registry } from "./plugin-registry.js";
4
4
  import { init_providers } from "./index.js";
5
- import { createAssistantMessageEventStream, streamSimple } from "@earendil-works/pi-ai";
5
+ import { createAssistantMessageEventStream, streamSimple } from "@earendil-works/pi-ai/compat";
6
6
  //#region src/providers/extension-stream-bridge.ts
7
7
  init_plugin_registry();
8
8
  init_providers();
@@ -1 +1 @@
1
- {"version":3,"file":"extension-stream-bridge.js","names":[],"sources":["../../../src/providers/extension-stream-bridge.ts"],"sourcesContent":["import {\n\tstreamSimple,\n\tcreateAssistantMessageEventStream,\n\ttype AssistantMessage,\n\ttype Model,\n\ttype Api,\n\ttype Context,\n\ttype SimpleStreamOptions,\n} from '@earendil-works/pi-ai';\nimport type { StreamFn } from '@earendil-works/pi-agent-core';\nimport type { ProviderStreamParams } from '../extensions/types/providers.js';\nimport { getProviderRegistry } from './plugin-registry.js';\nimport { EXTENSION_PROVIDER_BASE_URL } from './index.js';\nimport { createLogger } from '../utils/logger.js';\n\nconst log = createLogger('ExtensionStreamBridge');\n\nfunction createPartialMessage(model: Model<Api>): AssistantMessage {\n\treturn {\n\t\trole: 'assistant',\n\t\tcontent: [],\n\t\tapi: model.api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: 'stop',\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction parseToolArguments(raw: string | undefined): Record<string, unknown> {\n\tif (!raw?.trim()) return {};\n\ttry {\n\t\treturn JSON.parse(raw) as Record<string, unknown>;\n\t} catch {\n\t\treturn {};\n\t}\n}\n\nfunction collectExtraStreamOptions(options?: SimpleStreamOptions): Record<string, unknown> | undefined {\n\tif (!options) return undefined;\n\tconst knownOptionKeys = new Set([\n\t\t'temperature',\n\t\t'maxTokens',\n\t\t'signal',\n\t\t'apiKey',\n\t\t'transport',\n\t\t'cacheRetention',\n\t\t'sessionId',\n\t\t'onPayload',\n\t\t'onResponse',\n\t\t'headers',\n\t\t'timeoutMs',\n\t\t'maxRetries',\n\t\t'maxRetryDelayMs',\n\t\t'metadata',\n\t\t'reasoning',\n\t\t'thinkingBudgets',\n\t]);\n\tconst entries = Object.entries(options as Record<string, unknown>).filter(([key, value]) => {\n\t\treturn !knownOptionKeys.has(key) && value !== undefined;\n\t});\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\n/** Wraps {@link streamSimple} so extension-registered models use the plugin `createStream()` path. */\nexport function createExtensionAwareStreamFn(): StreamFn {\n\treturn ((model: Model<Api>, context: Context, options?: SimpleStreamOptions) => {\n\t\tif (model.baseUrl !== EXTENSION_PROVIDER_BASE_URL) {\n\t\t\treturn streamSimple(model, context, options);\n\t\t}\n\n\t\tconst plugin = getProviderRegistry().get(model.provider);\n\t\tif (!plugin) {\n\t\t\treturn streamSimple(model, context, options);\n\t\t}\n\n\t\tlog.info({ provider: model.provider, modelId: model.id }, 'Streaming via extension provider');\n\n\t\tconst stream = createAssistantMessageEventStream();\n\n\t\tconst params: ProviderStreamParams = {\n\t\t\tmodel: model.id,\n\t\t\tsystemPrompt: context.systemPrompt,\n\t\t\tmessages: context.messages as unknown as ProviderStreamParams['messages'],\n\t\t\ttools: context.tools as unknown as ProviderStreamParams['tools'],\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t\tapiKey: options?.apiKey,\n\t\t\tsessionId: options?.sessionId,\n\t\t\treasoning: options?.reasoning,\n\t\t\theaders: options?.headers,\n\t\t\ttimeoutMs: options?.timeoutMs,\n\t\t\tmaxRetries: options?.maxRetries,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcacheRetention: options?.cacheRetention,\n\t\t\ttransport: options?.transport,\n\t\t\tthinkingBudgets: options?.thinkingBudgets,\n\t\t\textra: collectExtraStreamOptions(options),\n\t\t\tsignal: options?.signal,\n\t\t};\n\n\t\tvoid (async () => {\n\t\t\tconst partial = createPartialMessage(model);\n\t\t\tlet textContentIndex = -1;\n\t\t\tlet hasStarted = false;\n\n\t\t\ttry {\n\t\t\t\tfor await (const chunk of plugin.createStream(params)) {\n\t\t\t\t\tif (options?.signal?.aborted) {\n\t\t\t\t\t\tpartial.stopReason = 'aborted';\n\t\t\t\t\t\tpartial.errorMessage = 'Request aborted';\n\t\t\t\t\t\tstream.push({ type: 'error', reason: 'aborted', error: partial });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\t\tcase 'text': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (textContentIndex === -1) {\n\t\t\t\t\t\t\t\ttextContentIndex = partial.content.length;\n\t\t\t\t\t\t\t\tpartial.content.push({ type: 'text', text: '' });\n\t\t\t\t\t\t\t\tstream.push({ type: 'text_start', contentIndex: textContentIndex, partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst textContent = partial.content[textContentIndex];\n\t\t\t\t\t\t\tif (textContent?.type === 'text' && chunk.text) {\n\t\t\t\t\t\t\t\ttextContent.text += chunk.text;\n\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\ttype: 'text_delta',\n\t\t\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\t\t\tdelta: chunk.text,\n\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'tool_call': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (textContentIndex !== -1) {\n\t\t\t\t\t\t\t\tconst tc = partial.content[textContentIndex];\n\t\t\t\t\t\t\t\tif (tc?.type === 'text') {\n\t\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\t\ttype: 'text_end',\n\t\t\t\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\t\t\t\tcontent: tc.text,\n\t\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextContentIndex = -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (chunk.toolCall) {\n\t\t\t\t\t\t\t\tconst idx = partial.content.length;\n\t\t\t\t\t\t\t\tconst toolCall = {\n\t\t\t\t\t\t\t\t\ttype: 'toolCall' as const,\n\t\t\t\t\t\t\t\t\tid: chunk.toolCall.id,\n\t\t\t\t\t\t\t\t\tname: chunk.toolCall.name,\n\t\t\t\t\t\t\t\t\targuments: parseToolArguments(chunk.toolCall.arguments),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tpartial.content.push(toolCall);\n\t\t\t\t\t\t\t\tstream.push({ type: 'toolcall_start', contentIndex: idx, partial });\n\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\ttype: 'toolcall_delta',\n\t\t\t\t\t\t\t\t\tcontentIndex: idx,\n\t\t\t\t\t\t\t\t\tdelta: chunk.toolCall.arguments || '{}',\n\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tstream.push({ type: 'toolcall_end', contentIndex: idx, toolCall, partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'usage': {\n\t\t\t\t\t\t\tif (chunk.usage) {\n\t\t\t\t\t\t\t\tconst inputCost = (chunk.usage.input / 1_000_000) * (model.cost?.input ?? 0);\n\t\t\t\t\t\t\t\tconst outputCost = (chunk.usage.output / 1_000_000) * (model.cost?.output ?? 0);\n\t\t\t\t\t\t\t\tpartial.usage = {\n\t\t\t\t\t\t\t\t\tinput: chunk.usage.input,\n\t\t\t\t\t\t\t\t\toutput: chunk.usage.output,\n\t\t\t\t\t\t\t\t\tcacheRead: 0,\n\t\t\t\t\t\t\t\t\tcacheWrite: 0,\n\t\t\t\t\t\t\t\t\ttotalTokens: chunk.usage.total ?? chunk.usage.input + chunk.usage.output,\n\t\t\t\t\t\t\t\t\tcost: {\n\t\t\t\t\t\t\t\t\t\tinput: inputCost,\n\t\t\t\t\t\t\t\t\t\toutput: outputCost,\n\t\t\t\t\t\t\t\t\t\tcacheRead: 0,\n\t\t\t\t\t\t\t\t\t\tcacheWrite: 0,\n\t\t\t\t\t\t\t\t\t\ttotal: inputCost + outputCost,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'error': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpartial.stopReason = 'error';\n\t\t\t\t\t\t\tpartial.errorMessage = chunk.error ?? 'Unknown extension provider error';\n\t\t\t\t\t\t\tstream.push({ type: 'error', reason: 'error', error: partial });\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'done':\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (textContentIndex !== -1) {\n\t\t\t\t\tconst tc = partial.content[textContentIndex];\n\t\t\t\t\tif (tc?.type === 'text') {\n\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\ttype: 'text_end',\n\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\tcontent: tc.text,\n\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!hasStarted) {\n\t\t\t\t\thasStarted = true;\n\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t}\n\n\t\t\t\tconst hasToolCalls = partial.content.some(c => c.type === 'toolCall');\n\t\t\t\tconst stopReason = hasToolCalls ? 'toolUse' : 'stop';\n\t\t\t\tpartial.stopReason = stopReason;\n\t\t\t\tstream.push({ type: 'done', reason: stopReason, message: partial });\n\t\t\t} catch (err) {\n\t\t\t\tif (!hasStarted) stream.push({ type: 'start', partial });\n\t\t\t\tpartial.stopReason = 'error';\n\t\t\t\tpartial.errorMessage = err instanceof Error ? err.message : String(err);\n\t\t\t\tstream.push({ type: 'error', reason: 'error', error: partial });\n\t\t\t}\n\t\t})();\n\n\t\treturn stream;\n\t}) as StreamFn;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extension-stream-bridge.js","names":[],"sources":["../../../src/providers/extension-stream-bridge.ts"],"sourcesContent":["import {\n\tstreamSimple,\n\tcreateAssistantMessageEventStream,\n\ttype AssistantMessage,\n\ttype Model,\n\ttype Api,\n\ttype Context,\n\ttype SimpleStreamOptions,\n} from '@earendil-works/pi-ai/compat';\nimport type { StreamFn } from '@earendil-works/pi-agent-core';\nimport type { ProviderStreamParams } from '../extensions/types/providers.js';\nimport { getProviderRegistry } from './plugin-registry.js';\nimport { EXTENSION_PROVIDER_BASE_URL } from './index.js';\nimport { createLogger } from '../utils/logger.js';\n\nconst log = createLogger('ExtensionStreamBridge');\n\nfunction createPartialMessage(model: Model<Api>): AssistantMessage {\n\treturn {\n\t\trole: 'assistant',\n\t\tcontent: [],\n\t\tapi: model.api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: 'stop',\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction parseToolArguments(raw: string | undefined): Record<string, unknown> {\n\tif (!raw?.trim()) return {};\n\ttry {\n\t\treturn JSON.parse(raw) as Record<string, unknown>;\n\t} catch {\n\t\treturn {};\n\t}\n}\n\nfunction collectExtraStreamOptions(options?: SimpleStreamOptions): Record<string, unknown> | undefined {\n\tif (!options) return undefined;\n\tconst knownOptionKeys = new Set([\n\t\t'temperature',\n\t\t'maxTokens',\n\t\t'signal',\n\t\t'apiKey',\n\t\t'transport',\n\t\t'cacheRetention',\n\t\t'sessionId',\n\t\t'onPayload',\n\t\t'onResponse',\n\t\t'headers',\n\t\t'timeoutMs',\n\t\t'maxRetries',\n\t\t'maxRetryDelayMs',\n\t\t'metadata',\n\t\t'reasoning',\n\t\t'thinkingBudgets',\n\t]);\n\tconst entries = Object.entries(options as Record<string, unknown>).filter(([key, value]) => {\n\t\treturn !knownOptionKeys.has(key) && value !== undefined;\n\t});\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\n/** Wraps {@link streamSimple} so extension-registered models use the plugin `createStream()` path. */\nexport function createExtensionAwareStreamFn(): StreamFn {\n\treturn ((model: Model<Api>, context: Context, options?: SimpleStreamOptions) => {\n\t\tif (model.baseUrl !== EXTENSION_PROVIDER_BASE_URL) {\n\t\t\treturn streamSimple(model, context, options);\n\t\t}\n\n\t\tconst plugin = getProviderRegistry().get(model.provider);\n\t\tif (!plugin) {\n\t\t\treturn streamSimple(model, context, options);\n\t\t}\n\n\t\tlog.info({ provider: model.provider, modelId: model.id }, 'Streaming via extension provider');\n\n\t\tconst stream = createAssistantMessageEventStream();\n\n\t\tconst params: ProviderStreamParams = {\n\t\t\tmodel: model.id,\n\t\t\tsystemPrompt: context.systemPrompt,\n\t\t\tmessages: context.messages as unknown as ProviderStreamParams['messages'],\n\t\t\ttools: context.tools as unknown as ProviderStreamParams['tools'],\n\t\t\ttemperature: options?.temperature,\n\t\t\tmaxTokens: options?.maxTokens,\n\t\t\tapiKey: options?.apiKey,\n\t\t\tsessionId: options?.sessionId,\n\t\t\treasoning: options?.reasoning,\n\t\t\theaders: options?.headers,\n\t\t\ttimeoutMs: options?.timeoutMs,\n\t\t\tmaxRetries: options?.maxRetries,\n\t\t\tmetadata: options?.metadata,\n\t\t\tcacheRetention: options?.cacheRetention,\n\t\t\ttransport: options?.transport,\n\t\t\tthinkingBudgets: options?.thinkingBudgets,\n\t\t\textra: collectExtraStreamOptions(options),\n\t\t\tsignal: options?.signal,\n\t\t};\n\n\t\tvoid (async () => {\n\t\t\tconst partial = createPartialMessage(model);\n\t\t\tlet textContentIndex = -1;\n\t\t\tlet hasStarted = false;\n\n\t\t\ttry {\n\t\t\t\tfor await (const chunk of plugin.createStream(params)) {\n\t\t\t\t\tif (options?.signal?.aborted) {\n\t\t\t\t\t\tpartial.stopReason = 'aborted';\n\t\t\t\t\t\tpartial.errorMessage = 'Request aborted';\n\t\t\t\t\t\tstream.push({ type: 'error', reason: 'aborted', error: partial });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\t\tcase 'text': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (textContentIndex === -1) {\n\t\t\t\t\t\t\t\ttextContentIndex = partial.content.length;\n\t\t\t\t\t\t\t\tpartial.content.push({ type: 'text', text: '' });\n\t\t\t\t\t\t\t\tstream.push({ type: 'text_start', contentIndex: textContentIndex, partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst textContent = partial.content[textContentIndex];\n\t\t\t\t\t\t\tif (textContent?.type === 'text' && chunk.text) {\n\t\t\t\t\t\t\t\ttextContent.text += chunk.text;\n\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\ttype: 'text_delta',\n\t\t\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\t\t\tdelta: chunk.text,\n\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'tool_call': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (textContentIndex !== -1) {\n\t\t\t\t\t\t\t\tconst tc = partial.content[textContentIndex];\n\t\t\t\t\t\t\t\tif (tc?.type === 'text') {\n\t\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\t\ttype: 'text_end',\n\t\t\t\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\t\t\t\tcontent: tc.text,\n\t\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttextContentIndex = -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (chunk.toolCall) {\n\t\t\t\t\t\t\t\tconst idx = partial.content.length;\n\t\t\t\t\t\t\t\tconst toolCall = {\n\t\t\t\t\t\t\t\t\ttype: 'toolCall' as const,\n\t\t\t\t\t\t\t\t\tid: chunk.toolCall.id,\n\t\t\t\t\t\t\t\t\tname: chunk.toolCall.name,\n\t\t\t\t\t\t\t\t\targuments: parseToolArguments(chunk.toolCall.arguments),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tpartial.content.push(toolCall);\n\t\t\t\t\t\t\t\tstream.push({ type: 'toolcall_start', contentIndex: idx, partial });\n\t\t\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\t\t\ttype: 'toolcall_delta',\n\t\t\t\t\t\t\t\t\tcontentIndex: idx,\n\t\t\t\t\t\t\t\t\tdelta: chunk.toolCall.arguments || '{}',\n\t\t\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tstream.push({ type: 'toolcall_end', contentIndex: idx, toolCall, partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'usage': {\n\t\t\t\t\t\t\tif (chunk.usage) {\n\t\t\t\t\t\t\t\tconst inputCost = (chunk.usage.input / 1_000_000) * (model.cost?.input ?? 0);\n\t\t\t\t\t\t\t\tconst outputCost = (chunk.usage.output / 1_000_000) * (model.cost?.output ?? 0);\n\t\t\t\t\t\t\t\tpartial.usage = {\n\t\t\t\t\t\t\t\t\tinput: chunk.usage.input,\n\t\t\t\t\t\t\t\t\toutput: chunk.usage.output,\n\t\t\t\t\t\t\t\t\tcacheRead: 0,\n\t\t\t\t\t\t\t\t\tcacheWrite: 0,\n\t\t\t\t\t\t\t\t\ttotalTokens: chunk.usage.total ?? chunk.usage.input + chunk.usage.output,\n\t\t\t\t\t\t\t\t\tcost: {\n\t\t\t\t\t\t\t\t\t\tinput: inputCost,\n\t\t\t\t\t\t\t\t\t\toutput: outputCost,\n\t\t\t\t\t\t\t\t\t\tcacheRead: 0,\n\t\t\t\t\t\t\t\t\t\tcacheWrite: 0,\n\t\t\t\t\t\t\t\t\t\ttotal: inputCost + outputCost,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'error': {\n\t\t\t\t\t\t\tif (!hasStarted) {\n\t\t\t\t\t\t\t\thasStarted = true;\n\t\t\t\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpartial.stopReason = 'error';\n\t\t\t\t\t\t\tpartial.errorMessage = chunk.error ?? 'Unknown extension provider error';\n\t\t\t\t\t\t\tstream.push({ type: 'error', reason: 'error', error: partial });\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'done':\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (textContentIndex !== -1) {\n\t\t\t\t\tconst tc = partial.content[textContentIndex];\n\t\t\t\t\tif (tc?.type === 'text') {\n\t\t\t\t\t\tstream.push({\n\t\t\t\t\t\t\ttype: 'text_end',\n\t\t\t\t\t\t\tcontentIndex: textContentIndex,\n\t\t\t\t\t\t\tcontent: tc.text,\n\t\t\t\t\t\t\tpartial,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!hasStarted) {\n\t\t\t\t\thasStarted = true;\n\t\t\t\t\tstream.push({ type: 'start', partial });\n\t\t\t\t}\n\n\t\t\t\tconst hasToolCalls = partial.content.some(c => c.type === 'toolCall');\n\t\t\t\tconst stopReason = hasToolCalls ? 'toolUse' : 'stop';\n\t\t\t\tpartial.stopReason = stopReason;\n\t\t\t\tstream.push({ type: 'done', reason: stopReason, message: partial });\n\t\t\t} catch (err) {\n\t\t\t\tif (!hasStarted) stream.push({ type: 'start', partial });\n\t\t\t\tpartial.stopReason = 'error';\n\t\t\t\tpartial.errorMessage = err instanceof Error ? err.message : String(err);\n\t\t\t\tstream.push({ type: 'error', reason: 'error', error: partial });\n\t\t\t}\n\t\t})();\n\n\t\treturn stream;\n\t}) as StreamFn;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Model provider module - integrates built-in models with custom models from models.json
3
3
  */
4
- import { type Model, type Api } from '@earendil-works/pi-ai';
4
+ import { type Model, type Api } from '@earendil-works/pi-ai/compat';
5
5
  import { type Config } from '../config/schema.js';
6
6
  import type { ProviderModelDefinition } from '../extensions/types/providers.js';
7
7
  export { getApiKeyFromEnv, PROVIDER_ENV_MAP } from './env-keys.js';
@@ -45,7 +45,7 @@ export declare function getConfiguredProviders(): Promise<string[]>;
45
45
  export declare function getAllModels(): readonly Model<Api>[];
46
46
  export declare function getAvailableModels(): Promise<readonly Model<Api>[]>;
47
47
  export type { Model, Api } from '@earendil-works/pi-ai';
48
- export type ProviderCategory = 'common' | 'specialty' | 'oauth' | 'enterprise' | 'extension';
48
+ export type ProviderCategory = 'common' | 'domestic' | 'specialty' | 'oauth' | 'enterprise' | 'extension';
49
49
  export interface ProviderMeta {
50
50
  name: string;
51
51
  category: ProviderCategory;
@@ -61,15 +61,15 @@ export declare function providerSupportsApiKey(provider: string): boolean;
61
61
  * Get a default model reference.
62
62
  * Priority:
63
63
  * 1. Effective model inherited from the global default preset / agent presets / agent override
64
- * 2. Empty string when onboarding still needs to choose a global default model
64
+ * 2. Empty string only when no default model is present in the loaded config
65
65
  */
66
66
  export declare function getDefaultModel(config?: Config | null | undefined): Promise<string>;
67
67
  /**
68
68
  * Synchronous default model resolution for constructors and sync code paths.
69
69
  * Uses catalog/registry only (no async credential checks).
70
70
  *
71
- * When no model is explicitly configured, returns an empty string so setup
72
- * flows can prompt for the global default model.
71
+ * When no model is present in the loaded config, returns an empty string so
72
+ * setup flows can prompt for the global default model.
73
73
  */
74
74
  export declare function getDefaultModelSync(config?: Config | null | undefined): string;
75
75
  export { ModelRegistry, getModelRegistry, resetModelRegistry, prewarmModelRegistry } from './model-registry.js';
@@ -5,7 +5,7 @@ import { PROVIDER_ENV_MAP, getApiKeyFromEnv, init_env_keys } from "./env-keys.js
5
5
  import { ModelRegistry, getModelRegistry, init_model_registry, prewarmModelRegistry, resetModelRegistry } from "./model-registry.js";
6
6
  import { CredentialResolver, hasCredentials, init_credentials, resolveApiKey } from "../auth/credentials.js";
7
7
  import { getProviderRegistry, init_plugin_registry } from "./plugin-registry.js";
8
- import { getModel, getModels, getProviders } from "@earendil-works/pi-ai";
8
+ import { getModel, getModels, getProviders } from "@earendil-works/pi-ai/compat";
9
9
  //#region src/providers/index.ts
10
10
  /**
11
11
  * Model provider module - integrates built-in models with custom models from models.json
@@ -238,10 +238,11 @@ function getSortedProviders() {
238
238
  const all = getAllProviders();
239
239
  const catOrder = {
240
240
  common: 0,
241
- specialty: 1,
242
- enterprise: 2,
243
- oauth: 3,
244
- extension: 4
241
+ domestic: 1,
242
+ specialty: 2,
243
+ enterprise: 3,
244
+ oauth: 4,
245
+ extension: 5
245
246
  };
246
247
  const pluginRegistry = getProviderRegistry();
247
248
  return [...all].sort((a, b) => {
@@ -266,7 +267,7 @@ function providerSupportsApiKey(provider) {
266
267
  * Get a default model reference.
267
268
  * Priority:
268
269
  * 1. Effective model inherited from the global default preset / agent presets / agent override
269
- * 2. Empty string when onboarding still needs to choose a global default model
270
+ * 2. Empty string only when no default model is present in the loaded config
270
271
  */
271
272
  async function getDefaultModel(config) {
272
273
  const modelRef = config ? getAgentDefaultModelRef(config) : void 0;
@@ -281,8 +282,8 @@ async function getDefaultModel(config) {
281
282
  * Synchronous default model resolution for constructors and sync code paths.
282
283
  * Uses catalog/registry only (no async credential checks).
283
284
  *
284
- * When no model is explicitly configured, returns an empty string so setup
285
- * flows can prompt for the global default model.
285
+ * When no model is present in the loaded config, returns an empty string so
286
+ * setup flows can prompt for the global default model.
286
287
  */
287
288
  function getDefaultModelSync(config) {
288
289
  const modelRef = config ? getAgentDefaultModelRef(config) : void 0;
@@ -313,7 +314,7 @@ var init_providers = __esmMin((() => {
313
314
  },
314
315
  "deepseek": {
315
316
  name: "DeepSeek",
316
- category: "common",
317
+ category: "domestic",
317
318
  supportsApiKey: true
318
319
  },
319
320
  "google": {
@@ -328,19 +329,19 @@ var init_providers = __esmMin((() => {
328
329
  },
329
330
  "minimax": {
330
331
  name: "MiniMax",
331
- category: "common",
332
+ category: "domestic",
332
333
  supportsApiKey: true,
333
334
  supportsOAuth: true
334
335
  },
335
336
  "minimax-cn": {
336
337
  name: "MiniMax CN",
337
- category: "common",
338
+ category: "domestic",
338
339
  supportsApiKey: true,
339
340
  supportsOAuth: true
340
341
  },
341
342
  "kimi-coding": {
342
343
  name: "Kimi For Coding",
343
- category: "common",
344
+ category: "domestic",
344
345
  supportsApiKey: true,
345
346
  supportsOAuth: true
346
347
  },
@@ -371,12 +372,12 @@ var init_providers = __esmMin((() => {
371
372
  },
372
373
  moonshotai: {
373
374
  name: "Moonshot AI (Kimi · International)",
374
- category: "common",
375
+ category: "domestic",
375
376
  supportsApiKey: true
376
377
  },
377
378
  "moonshotai-cn": {
378
379
  name: "Moonshot AI (Kimi · China)",
379
- category: "common",
380
+ category: "domestic",
380
381
  supportsApiKey: true
381
382
  },
382
383
  fireworks: {
@@ -401,22 +402,22 @@ var init_providers = __esmMin((() => {
401
402
  },
402
403
  xiaomi: {
403
404
  name: "Xiaomi Mimo",
404
- category: "specialty",
405
+ category: "domestic",
405
406
  supportsApiKey: true
406
407
  },
407
408
  "xiaomi-token-plan-cn": {
408
409
  name: "Xiaomi Token Plan (CN)",
409
- category: "specialty",
410
+ category: "domestic",
410
411
  supportsApiKey: true
411
412
  },
412
413
  "xiaomi-token-plan-ams": {
413
414
  name: "Xiaomi Token Plan (AMS)",
414
- category: "specialty",
415
+ category: "domestic",
415
416
  supportsApiKey: true
416
417
  },
417
418
  "xiaomi-token-plan-sgp": {
418
419
  name: "Xiaomi Token Plan (SGP)",
419
- category: "specialty",
420
+ category: "domestic",
420
421
  supportsApiKey: true
421
422
  },
422
423
  "opencode": {
@@ -429,16 +430,95 @@ var init_providers = __esmMin((() => {
429
430
  category: "specialty",
430
431
  supportsApiKey: true
431
432
  },
432
- /** DashScope (Alibaba) — image, speech, STT; not an LLM KnownProvider. */
433
433
  "dashscope": {
434
434
  name: "DashScope (Alibaba)",
435
- category: "specialty",
435
+ category: "domestic",
436
+ supportsApiKey: true
437
+ },
438
+ "dashscope-cn": {
439
+ name: "Alibaba Bailian / DashScope China",
440
+ category: "domestic",
441
+ supportsApiKey: true
442
+ },
443
+ "dashscope-intl": {
444
+ name: "Alibaba Bailian / DashScope International",
445
+ category: "domestic",
446
+ supportsApiKey: true
447
+ },
448
+ "volcengine-ark": {
449
+ name: "Volcengine Ark",
450
+ category: "domestic",
451
+ supportsApiKey: true
452
+ },
453
+ "volcengine-plan": {
454
+ name: "Volcengine Doubao Coding Plan",
455
+ category: "domestic",
456
+ supportsApiKey: true
457
+ },
458
+ "byteplus-plan": {
459
+ name: "BytePlus Doubao Coding Plan",
460
+ category: "domestic",
461
+ supportsApiKey: true
462
+ },
463
+ "stepfun": {
464
+ name: "StepFun",
465
+ category: "domestic",
466
+ supportsApiKey: true
467
+ },
468
+ "stepfun-cn": {
469
+ name: "StepFun China",
470
+ category: "domestic",
471
+ supportsApiKey: true
472
+ },
473
+ "stepfun-intl": {
474
+ name: "StepFun International",
475
+ category: "domestic",
476
+ supportsApiKey: true
477
+ },
478
+ "stepfun-plan": {
479
+ name: "StepFun Step Plan",
480
+ category: "domestic",
481
+ supportsApiKey: true
482
+ },
483
+ "stepfun-plan-cn": {
484
+ name: "StepFun Step Plan China",
485
+ category: "domestic",
486
+ supportsApiKey: true
487
+ },
488
+ "stepfun-plan-intl": {
489
+ name: "StepFun Step Plan International",
490
+ category: "domestic",
491
+ supportsApiKey: true
492
+ },
493
+ "ant-ling": {
494
+ name: "Ant Ling",
495
+ category: "domestic",
496
+ supportsApiKey: true
497
+ },
498
+ "zhipu-cn": {
499
+ name: "Zhipu GLM (China)",
500
+ category: "domestic",
501
+ supportsApiKey: true
502
+ },
503
+ "zai-coding-cn": {
504
+ name: "Zhipu GLM Coding Plan (China)",
505
+ category: "domestic",
506
+ supportsApiKey: true
507
+ },
508
+ "zai-coding-global": {
509
+ name: "Zhipu GLM Coding Plan (International)",
510
+ category: "domestic",
511
+ supportsApiKey: true
512
+ },
513
+ "zhipu-coding-cn": {
514
+ name: "Zhipu GLM Coding Plan (China)",
515
+ category: "domestic",
436
516
  supportsApiKey: true
437
517
  },
438
518
  /** International GLM (api.z.ai). Auth: API key (ZAI_API_KEY); no published OAuth for this HTTP API. */
439
519
  "zai": {
440
520
  name: "Zhipu GLM (International · z.ai)",
441
- category: "common",
521
+ category: "domestic",
442
522
  supportsApiKey: true
443
523
  },
444
524
  "amazon-bedrock": {