sliccy 6.87.2 → 6.88.0

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 (349) hide show
  1. package/README.md +1 -1
  2. package/dist/node-server/_shared/index.d.ts +1 -0
  3. package/dist/node-server/_shared/index.d.ts.map +1 -1
  4. package/dist/node-server/_shared/index.js +1 -0
  5. package/dist/node-server/_shared/index.js.map +1 -1
  6. package/dist/node-server/_shared/loopback.d.ts +18 -0
  7. package/dist/node-server/_shared/loopback.d.ts.map +1 -0
  8. package/dist/node-server/_shared/loopback.js +41 -0
  9. package/dist/node-server/_shared/loopback.js.map +1 -0
  10. package/dist/node-server/bridge-security.d.ts +4 -1
  11. package/dist/node-server/bridge-security.js +6 -16
  12. package/dist/node-server/cloud-status.d.ts +3 -0
  13. package/dist/node-server/cloud-status.js +6 -2
  14. package/dist/node-server/hostfs.d.ts +58 -0
  15. package/dist/node-server/hostfs.js +257 -0
  16. package/dist/node-server/index.js +10 -0
  17. package/dist/node-server/routes/fetch-proxy.js +3 -18
  18. package/dist/node-server/runtime-flags.d.ts +22 -0
  19. package/dist/node-server/runtime-flags.js +78 -2
  20. package/dist/ui/.vite/manifest.json +508 -437
  21. package/dist/ui/assets/CLAUDE-4LHXSyPA.js +1 -0
  22. package/dist/ui/assets/CLAUDE-Bio4HPGK.js +1 -0
  23. package/dist/ui/assets/MEMORY-6FXnIBfJ.js +135 -0
  24. package/dist/ui/assets/SKILL-BKUxKc7f.js +296 -0
  25. package/dist/ui/assets/SKILL-BKyxMoME.js +1 -0
  26. package/dist/ui/assets/SKILL-BcELX5TL.js +1 -0
  27. package/dist/ui/assets/SKILL-Bd5ykLEh.js +1 -0
  28. package/dist/ui/assets/SKILL-Bt-RhG0L.js +1 -0
  29. package/dist/ui/assets/SKILL-CED8RXQP.js +69 -0
  30. package/dist/ui/assets/SKILL-CNdAIhbb.js +1 -0
  31. package/dist/ui/assets/SKILL-CcMg6eqt.js +1 -0
  32. package/dist/ui/assets/SKILL-Ch-cOl61.js +1 -0
  33. package/dist/ui/assets/SKILL-CkfptFag.js +132 -0
  34. package/dist/ui/assets/SKILL-Ckg2XbSL.js +114 -0
  35. package/dist/ui/assets/SKILL-D40-t9w0.js +57 -0
  36. package/dist/ui/assets/SKILL-DFKKFkzD.js +96 -0
  37. package/dist/ui/assets/SKILL-DJ815vTN.js +62 -0
  38. package/dist/ui/assets/SKILL-DLXzwsY4.js +1 -0
  39. package/dist/ui/assets/SKILL-DXIigmDy.js +35 -0
  40. package/dist/ui/assets/SKILL-DfSluXpV.js +385 -0
  41. package/dist/ui/assets/SKILL-DhKtVqb-.js +1 -0
  42. package/dist/ui/assets/SKILL-FnBxPcDX.js +1 -0
  43. package/dist/ui/assets/SKILL-HEHb9hIB.js +1 -0
  44. package/dist/ui/assets/SKILL-i1NMDKwT.js +1 -0
  45. package/dist/ui/assets/SKILL-oOIS8LAm.js +1 -0
  46. package/dist/ui/assets/{account-store-u5knhoCx.js → account-store-BLu0_ipL.js} +2 -2
  47. package/dist/ui/assets/{account-store-D1f8dn0G.js → account-store-l8BmmoRx.js} +4 -4
  48. package/dist/ui/assets/adobe-Caluo3Vg.js +2 -0
  49. package/dist/ui/assets/adobe-Cj2iYsHq.js +1 -0
  50. package/dist/ui/assets/{angular-html-Cm4-xod0.js → angular-html-aPuBvESs.js} +1 -1
  51. package/dist/ui/assets/{angular-ts-Dopuir71.js → angular-ts-ocjSXnvf.js} +1 -1
  52. package/dist/ui/assets/anthropic-messages-CpSojOI8.js +39 -0
  53. package/dist/ui/assets/anthropic-messages-DbPJ2ji9.js +39 -0
  54. package/dist/ui/assets/api-endpoint-C00IT5T9.js +1 -0
  55. package/dist/ui/assets/api-endpoint-GRCyib6X.js +1 -0
  56. package/dist/ui/assets/{apply-layout-g9ha9fDb.js → apply-layout-lJ2Uyc3p.js} +1 -1
  57. package/dist/ui/assets/{apps-D2giAoeX.js → apps-BRi5S2KV.js} +1 -1
  58. package/dist/ui/assets/{astro-E_b8esPp.js → astro-go1PgQEf.js} +1 -1
  59. package/dist/ui/assets/auto-mount-table-CdyPAwVL.js +1 -0
  60. package/dist/ui/assets/{azure-openai-DYlB7tTf.js → azure-openai-DtPDwGAY.js} +2 -2
  61. package/dist/ui/assets/azure-openai-responses-BcoOaRCx.js +1 -0
  62. package/dist/ui/assets/azure-openai-responses-DUMDrZ29.js +1 -0
  63. package/dist/ui/assets/{azure-openai-CB7Ox9_p.js → azure-openai-xFuHu_hU.js} +2 -2
  64. package/dist/ui/assets/backend-hostfs-Com-zF5W.js +1 -0
  65. package/dist/ui/assets/backend-hostfs-bQQx-S0W.js +1 -0
  66. package/dist/ui/assets/bedrock-camp-BcJEC3Pg.js +1 -0
  67. package/dist/ui/assets/bedrock-camp-LeceEQbU.js +1 -0
  68. package/dist/ui/assets/bedrock-camp-compat-CYnC9BQI.js +1 -0
  69. package/dist/ui/assets/bedrock-camp-compat-CgBMwna8.js +1 -0
  70. package/dist/ui/assets/{blade-mj2TcBTp.js → blade-DPPr6MF0.js} +1 -1
  71. package/dist/ui/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  72. package/dist/ui/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  73. package/dist/ui/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  74. package/dist/ui/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  75. package/dist/ui/assets/cerebras-BKhMaWSl.js +1 -0
  76. package/dist/ui/assets/cerebras-CCLa0xVH.js +1 -0
  77. package/dist/ui/assets/chime-CPc6qSh5.js +1 -0
  78. package/dist/ui/assets/claude-model-version-Csn7RPVg.js +1 -0
  79. package/dist/ui/assets/claude-model-version-DoVrYsKi.js +2 -0
  80. package/dist/ui/assets/{client-BTUV7dbh.js → client-DVC0x03n.js} +1 -1
  81. package/dist/ui/assets/{composer-speech-SNeD5SER.js → composer-speech-Cy4g3lh3.js} +1 -1
  82. package/dist/ui/assets/connect-llm-FevTa-aV.js +561 -0
  83. package/dist/ui/assets/{connect-surface-NkMUeXbQ.js → connect-surface-T7iCJFeB.js} +1 -1
  84. package/dist/ui/assets/cpp-Ct9pQPqT.js +1 -0
  85. package/dist/ui/assets/{css-vJJohHMc.js → css-DlBQoFxe.js} +1 -1
  86. package/dist/ui/assets/discovery-preference-__0HPYJC.js +1 -0
  87. package/dist/ui/assets/dist-B4LJzMVB.js +1547 -0
  88. package/dist/ui/assets/{ensure-speech-assets-DvFwJX-M.js → ensure-speech-assets-CKwQ54O1.js} +1 -1
  89. package/dist/ui/assets/float-topology-DiK91BlA.js +1 -0
  90. package/dist/ui/assets/{follower-navigate-watcher-CNC7ybEv.js → follower-navigate-watcher-Dz-52eZY.js} +1 -1
  91. package/dist/ui/assets/fs-1btyYJVn.js +1 -0
  92. package/dist/ui/assets/fs-BYtJQhvh.js +2 -0
  93. package/dist/ui/assets/github-BHL_hKU_.js +2 -0
  94. package/dist/ui/assets/github-copilot-CZorsYUj.js +1 -0
  95. package/dist/ui/assets/github-copilot-DVmzgGYz.js +2 -0
  96. package/dist/ui/assets/github-fX2kuECo.js +1 -0
  97. package/dist/ui/assets/{github-install-C7YXkDBT.js → github-install-DVzD1asQ.js} +1 -1
  98. package/dist/ui/assets/{github-zip-DVWjYLIh.js → github-zip-5ekKl7Z0.js} +1 -1
  99. package/dist/ui/assets/{go-BJwz_mda.js → go-rLFTqkRN.js} +1 -1
  100. package/dist/ui/assets/google-generative-ai-Dxo91M3n.js +1 -0
  101. package/dist/ui/assets/google-generative-ai-Rjh7hNBV.js +1 -0
  102. package/dist/ui/assets/{google-shared-BMJ_JErv.js → google-shared-CzJgTu-P.js} +3 -3
  103. package/dist/ui/assets/{google-shared-YqcyR4cm.js → google-shared-DQJPCU3d.js} +3 -3
  104. package/dist/ui/assets/google-vertex-61Jj0dk6.js +1 -0
  105. package/dist/ui/assets/google-vertex-DEwkNZJm.js +1 -0
  106. package/dist/ui/assets/{haml-DboNpPfQ.js → haml-Bqgi1Cau.js} +1 -1
  107. package/dist/ui/assets/{handlebars-Bv_jLwHk.js → handlebars-JgcNzdBj.js} +1 -1
  108. package/dist/ui/assets/{hear-D33CHppO.js → hear-BqNAK8-P.js} +1 -1
  109. package/dist/ui/assets/{horizon-bright-Br1oVSNq.js → horizon-bright-DSNQnXHK.js} +1 -1
  110. package/dist/ui/assets/{host-command-G_JIdBPR.js → host-command-C3cIKdbE.js} +1 -1
  111. package/dist/ui/assets/{html-BLkwJ0Yd.js → html-BsvMqTlf.js} +1 -1
  112. package/dist/ui/assets/{html-derivative-B3p5VrMH.js → html-derivative-D9FvRNj4.js} +1 -1
  113. package/dist/ui/assets/icon-example-LUkiEXyS.js +111 -0
  114. package/dist/ui/assets/{jinja-BeFOxtqS.js → jinja-CixBDh_U.js} +1 -1
  115. package/dist/ui/assets/{js-realm-worker-Ymi_bwDP.js → js-realm-worker-iDrigwwJ.js} +1 -1
  116. package/dist/ui/assets/jsh-runtime-extensions-DpVq60Gw.js +1 -0
  117. package/dist/ui/assets/julia-B5NbrcUp.js +1 -0
  118. package/dist/ui/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  119. package/dist/ui/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  120. package/dist/ui/assets/kanagawa-wave-BML5mF2J.js +1 -0
  121. package/dist/ui/assets/{kernel-worker-CJu5HqlT.js → kernel-worker-BdKtpNzV.js} +614 -4395
  122. package/dist/ui/assets/legacy-api-aliases-BnRqMAef.js +1 -0
  123. package/dist/ui/assets/legacy-api-aliases-oJPAvhVV.js +1 -0
  124. package/dist/ui/assets/{lick-urls-AW0BSaf4.js → lick-urls-DcXOqXGm.js} +1 -1
  125. package/dist/ui/assets/{lick-ws-bridge-DiPcVRfN.js → lick-ws-bridge-CnkYvHKI.js} +1 -1
  126. package/dist/ui/assets/{lick-ws-bridge-CWRES2H2.js → lick-ws-bridge-DOJW_mZp.js} +1 -1
  127. package/dist/ui/assets/loader-B23_5sFw.js +4 -0
  128. package/dist/ui/assets/{local-llm-CwFpBJ4H.js → local-llm-BoLsVU6D.js} +1 -1
  129. package/dist/ui/assets/{local-llm-C0c86vuh.js → local-llm-aZ3BO7wK.js} +1 -1
  130. package/dist/ui/assets/loopback-2H1kMO8T.js +1 -0
  131. package/dist/ui/assets/main-CSh1z5qo.js +22 -0
  132. package/dist/ui/assets/{marko-C3klgjEa.js → marko-DYWPPmCl.js} +1 -1
  133. package/dist/ui/assets/mdc-Cno1UUUH.js +1 -0
  134. package/dist/ui/assets/mistral-conversations-BtaPxrK1.js +4 -0
  135. package/dist/ui/assets/mistral-conversations-CDLVw-9i.js +4 -0
  136. package/dist/ui/assets/{transform-messages-DEFauvrq.js → models-4WTk3EBD.js} +1 -1
  137. package/dist/ui/assets/{transform-messages-N_eMsP2M.js → models-BSkXF4T6.js} +1 -1
  138. package/dist/ui/assets/monokai-B_bV9PQ9.js +1 -0
  139. package/dist/ui/assets/mount-BCaA8NF3.js +1 -0
  140. package/dist/ui/assets/mount-ICXjya6b.js +2 -0
  141. package/dist/ui/assets/{mount-bridge-client-4blXuJO1.js → mount-bridge-client-DZE6sHdr.js} +1 -1
  142. package/dist/ui/assets/mount-recovery-CtadSXiq.js +2 -0
  143. package/dist/ui/assets/new-session-CCcPVim0.js +2 -0
  144. package/dist/ui/assets/oauth-bootstrap-CJ7pyk8I.js +2 -0
  145. package/dist/ui/assets/oauth-service-CTntqv0R.js +1 -0
  146. package/dist/ui/assets/oauth-service-Uk8UIb05.js +1 -0
  147. package/dist/ui/assets/openai-codex-C7WXAsyq.js +1 -0
  148. package/dist/ui/assets/openai-codex-DJHh6O0O.js +1 -0
  149. package/dist/ui/assets/openai-codex-responses-CPOJeFUY.js +7 -0
  150. package/dist/ui/assets/openai-codex-responses-jQR19NyX.js +7 -0
  151. package/dist/ui/assets/openai-completions-DGOcowq8.js +5 -0
  152. package/dist/ui/assets/openai-completions-DGZFJo5D.js +5 -0
  153. package/dist/ui/assets/openai-responses-CDTdSIhv.js +1 -0
  154. package/dist/ui/assets/openai-responses-bnETPgx9.js +1 -0
  155. package/dist/ui/assets/{openai-responses-shared-DxcsuzHF.js → openai-responses-shared-ChgvRZ74.js} +5 -5
  156. package/dist/ui/assets/{openai-responses-shared-DhnqxYC9.js → openai-responses-shared-DqJbHrek.js} +5 -5
  157. package/dist/ui/assets/openrouter-CIXJV3ar.js +1 -0
  158. package/dist/ui/assets/openrouter-CbIgawBs.js +1 -0
  159. package/dist/ui/assets/{openrouter-oauth-578SWfOt.js → openrouter-oauth-CfwEmxEv.js} +1 -1
  160. package/dist/ui/assets/{openrouter-oauth-BeOk-ba4.js → openrouter-oauth-ZehYXklO.js} +1 -1
  161. package/dist/ui/assets/{page-approval-service-Bbc3_KdK.js → page-approval-service-BsXoPdFJ.js} +1 -1
  162. package/dist/ui/assets/panel-rpc-handlers-Bg0_q2j9.js +2 -0
  163. package/dist/ui/assets/{panelize-shell-BRldzPxv.js → panelize-shell-DG3fFAS4.js} +1 -1
  164. package/dist/ui/assets/patterns-ChiGbijt.js +171 -0
  165. package/dist/ui/assets/php-m5Ug_San.js +1 -0
  166. package/dist/ui/assets/port-bridge-client-BhmNRlRv.js +2 -0
  167. package/dist/ui/assets/port-bridge-client-Bz2N1tvn.js +1 -0
  168. package/dist/ui/assets/{provider-qCqf7_uc.js → provider-1dH_J0Ky.js} +2 -2
  169. package/dist/ui/assets/{provider-B5MTJuhf.js → provider-CCer_iKN.js} +1 -1
  170. package/dist/ui/assets/{provider-settings-NcM2Npzg.js → provider-settings-DKXi1uSi.js} +1 -1
  171. package/dist/ui/assets/provider-settings-DZxqnVAO.js +2 -0
  172. package/dist/ui/assets/{provider-store-access-BlHUi5MH.js → provider-store-access-BthQZUzO.js} +2 -2
  173. package/dist/ui/assets/provider-store-access-NzVfMvPw.js +1 -0
  174. package/dist/ui/assets/providers-D8GPTe3s.js +2 -0
  175. package/dist/ui/assets/providers-DdfpdKUf.js +1 -0
  176. package/dist/ui/assets/proxied-fetch-BGeNrvQ4.js +2 -0
  177. package/dist/ui/assets/proxied-fetch-Co-pb0x0.js +1 -0
  178. package/dist/ui/assets/{pug-BPcX_o8k.js → pug-B4bk2kWf.js} +1 -1
  179. package/dist/ui/assets/quick-llm-DscHMm6M.js +1 -0
  180. package/dist/ui/assets/r-C5FwQflr.js +1 -0
  181. package/dist/ui/assets/{recovery-screen-CC3JYs-j.js → recovery-screen-CmxX9RlA.js} +1 -1
  182. package/dist/ui/assets/red-DX1BQOs8.js +1 -0
  183. package/dist/ui/assets/{redirect-uri-Cz0-DXMU.js → redirect-uri-CSXbRzUU.js} +1 -1
  184. package/dist/ui/assets/rose-pine-aMsaMD1D.js +1 -0
  185. package/dist/ui/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  186. package/dist/ui/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  187. package/dist/ui/assets/{scss-0nEf0IT-.js → scss-BaZL6t2Y.js} +1 -1
  188. package/dist/ui/assets/secret-env-CjwX7z7b.js +1 -0
  189. package/dist/ui/assets/secret-topology-0AWfFTh5.js +1 -0
  190. package/dist/ui/assets/{secrets-bridge-client-cWDAnFqs.js → secrets-bridge-client-DCQ44RyR.js} +1 -1
  191. package/dist/ui/assets/{session-freezer-DYVYVWZ3.js → session-freezer-cQJKe1j_.js} +3 -3
  192. package/dist/ui/assets/{setup-feature-flags-remote-DtLgZPds.js → setup-feature-flags-remote-BxfewGbb.js} +1 -1
  193. package/dist/ui/assets/setup-standalone-prelude-Bv9X4-V2.js +2 -0
  194. package/dist/ui/assets/setup-sudo-B3tWN6O2.js +2 -0
  195. package/dist/ui/assets/silent-renew-backoff-C_Iv54ZG.js +1 -0
  196. package/dist/ui/assets/silent-renew-backoff-t_Cd4Zw7.js +1 -0
  197. package/dist/ui/assets/{skills-CfaCWaY6.js → skills-C8Ojzeu6.js} +1 -1
  198. package/dist/ui/assets/{slicc-diff-DsGtkf0J.js → slicc-diff-DhGIKKqP.js} +1 -1
  199. package/dist/ui/assets/slicc-version-CaunkoU5.js +1 -0
  200. package/dist/ui/assets/smithy-Dgaz7aur.js +1 -0
  201. package/dist/ui/assets/solarized-dark-UdsmMDCL.js +1 -0
  202. package/dist/ui/assets/solarized-light-C1IUL_tW.js +1 -0
  203. package/dist/ui/assets/{speak-BDT9rGzg.js → speak-BSK3Souh.js} +1 -1
  204. package/dist/ui/assets/{sql-69VAgb2g.js → sql-DvarVTMJ.js} +1 -1
  205. package/dist/ui/assets/{src-DsDPrXOS.js → src-DXdqCrdV.js} +2 -2
  206. package/dist/ui/assets/{store-sdSLaoJp.js → store-BPyCiwPs.js} +1 -1
  207. package/dist/ui/assets/{store-BQWc00Lo.js → store-CGgqI527.js} +1 -1
  208. package/dist/ui/assets/style-guide-Bgzsk7bf.js +821 -0
  209. package/dist/ui/assets/{sudo-BTuTezs4.js → sudo-1gsx4XWx.js} +2 -2
  210. package/dist/ui/assets/{svelte-B4PVQJ-7.js → svelte-D4FIy7cP.js} +1 -1
  211. package/dist/ui/assets/swift-CyEgAFGc.js +1 -0
  212. package/dist/ui/assets/temperature-support-B4x2xaWY.js +1 -0
  213. package/dist/ui/assets/temperature-support-Cpml9LfI.js +1 -0
  214. package/dist/ui/assets/transform-messages-DZg9zDcV.js +1 -0
  215. package/dist/ui/assets/transform-messages-XkZ1QnTb.js +1 -0
  216. package/dist/ui/assets/transformers-env-DPjdc2EQ.js +1 -0
  217. package/dist/ui/assets/tray-leader-CP11I609.js +1 -0
  218. package/dist/ui/assets/{tray-leave-runtime-BGfdX5KF.js → tray-leave-runtime-CN7V9V7O.js} +1 -1
  219. package/dist/ui/assets/{tray-runtime-config-B1LF8Kd4.js → tray-runtime-config-CVoPQrT2.js} +1 -1
  220. package/dist/ui/assets/tray-runtime-config-D7cmCcHJ.js +1 -0
  221. package/dist/ui/assets/ts-tags-C4Ifwy6r.js +1 -0
  222. package/dist/ui/assets/{upgrade-detection-CmsEVCLH.js → upgrade-detection-DHKcwE9c.js} +1 -1
  223. package/dist/ui/assets/vesper-DdrHHSXu.js +1 -0
  224. package/dist/ui/assets/{voice-reply-CnP5wEO_.js → voice-reply-BNX-jA0G.js} +1 -1
  225. package/dist/ui/assets/{vue-Dg0Kv3qp.js → vue-Djeyp8pE.js} +1 -1
  226. package/dist/ui/assets/{vue-vine-DdvC-EE2.js → vue-vine-By_xyXdL.js} +1 -1
  227. package/dist/ui/assets/{wc-attach-DsMfUpx8.js → wc-attach-CPoS-Z-g.js} +2 -2
  228. package/dist/ui/assets/{wc-extension-wBWx11Lq.js → wc-extension-vZctlNTg.js} +2 -2
  229. package/dist/ui/assets/wc-float-label-D7p-4xyd.js +1 -0
  230. package/dist/ui/assets/wc-follower-BgCWId1J.js +17 -0
  231. package/dist/ui/assets/wc-live-leqS7MUz.js +8 -0
  232. package/dist/ui/assets/wc-nav-CO_N4L3V.js +2 -0
  233. package/dist/ui/assets/wc-onboarding-B4o-Pdiq.js +2 -0
  234. package/dist/ui/assets/wc-placeholder-BTbGc9bq.js +4 -0
  235. package/dist/ui/assets/wc-settings-B4hsC2Um.js +51 -0
  236. package/dist/ui/assets/{wc-shell-DrXzWzBs.js → wc-shell-B9UbR2P2.js} +3 -3
  237. package/dist/ui/assets/{wc-sprinkles-Hdy-5FTU.js → wc-sprinkles-Ds-rd0k7.js} +2 -2
  238. package/dist/ui/assets/wc-tray-BQls_HTm.js +2 -0
  239. package/dist/ui/assets/{wc-tray-scoops-B2RP8cgD.js → wc-tray-scoops-D8qwcovR.js} +1 -1
  240. package/dist/ui/assets/welcome-CyCMJDqG.js +621 -0
  241. package/dist/ui/assets/whisper-session-DpDs0sDL.js +2 -0
  242. package/dist/ui/assets/x_search-C-5p00-C.js +131 -0
  243. package/dist/ui/assets/xai-grok-DzMkuuG4.js +1 -0
  244. package/dist/ui/assets/xai-grok-kLSQtmUi.js +1 -0
  245. package/dist/ui/index.html +17 -16
  246. package/dist/ui/llm-proxy-sw.js +1 -1
  247. package/dist/ui/packages/webapp/index.html +17 -16
  248. package/dist/ui/slicc-diff.js +1 -1
  249. package/package.json +1 -1
  250. package/dist/ui/assets/adobe-B034kk8u.js +0 -2
  251. package/dist/ui/assets/adobe-FLVM_96g.js +0 -1
  252. package/dist/ui/assets/anthropic-messages-BX4DpK10.js +0 -39
  253. package/dist/ui/assets/anthropic-messages-C-orWG7m.js +0 -39
  254. package/dist/ui/assets/azure-openai-responses-C2LleG-4.js +0 -1
  255. package/dist/ui/assets/azure-openai-responses-Df9YPxyp.js +0 -1
  256. package/dist/ui/assets/bedrock-camp-B0KF_4RS.js +0 -1
  257. package/dist/ui/assets/bedrock-camp-qpZqnqLa.js +0 -2
  258. package/dist/ui/assets/bridge-launch-params-zrpWWxT3.js +0 -1
  259. package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
  260. package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
  261. package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
  262. package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
  263. package/dist/ui/assets/cerebras-DweKDbE1.js +0 -1
  264. package/dist/ui/assets/cerebras-O8AuH6NY.js +0 -1
  265. package/dist/ui/assets/cpp-CdhRINFH.js +0 -1
  266. package/dist/ui/assets/discovery-preference-fqUhjzeE.js +0 -1
  267. package/dist/ui/assets/dist-Dwa3Gdd4.js +0 -1547
  268. package/dist/ui/assets/float-topology-BgioAcOd.js +0 -1
  269. package/dist/ui/assets/fs-Bov3sJ0L.js +0 -1
  270. package/dist/ui/assets/fs-Drpegy_X.js +0 -2
  271. package/dist/ui/assets/github-CE8SlGEA.js +0 -2
  272. package/dist/ui/assets/github-copilot-DsCq9ehC.js +0 -2
  273. package/dist/ui/assets/github-copilot-ywjopCMn.js +0 -1
  274. package/dist/ui/assets/github-t3RMhkRE.js +0 -1
  275. package/dist/ui/assets/google-generative-ai-C9uw7Zks.js +0 -1
  276. package/dist/ui/assets/google-generative-ai-DHBc1oKV.js +0 -1
  277. package/dist/ui/assets/google-vertex-BaT3InWy.js +0 -1
  278. package/dist/ui/assets/google-vertex-DX8CfGr6.js +0 -1
  279. package/dist/ui/assets/julia-DibC-h6i.js +0 -1
  280. package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
  281. package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +0 -1
  282. package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +0 -1
  283. package/dist/ui/assets/legacy-api-aliases-CsTVszvY.js +0 -1
  284. package/dist/ui/assets/legacy-api-aliases-nSD9C16V.js +0 -1
  285. package/dist/ui/assets/loader-sgPDMLWT.js +0 -4
  286. package/dist/ui/assets/main-BWIUe9mc.js +0 -22
  287. package/dist/ui/assets/mdc-Otire2H_.js +0 -1
  288. package/dist/ui/assets/mistral-conversations-BXo-tb0V.js +0 -4
  289. package/dist/ui/assets/mistral-conversations-Ck257tvp.js +0 -4
  290. package/dist/ui/assets/monokai-CdkpiU2Y.js +0 -1
  291. package/dist/ui/assets/mount-CDH4T-Mp.js +0 -2
  292. package/dist/ui/assets/mount-CE7C-kQS.js +0 -1
  293. package/dist/ui/assets/mount-recovery-h9v3cRpd.js +0 -2
  294. package/dist/ui/assets/new-session-CU8TGRAW.js +0 -2
  295. package/dist/ui/assets/oauth-bootstrap-CRJLIz8V.js +0 -2
  296. package/dist/ui/assets/oauth-service-Bbrrl8Mr.js +0 -1
  297. package/dist/ui/assets/oauth-service-Cy5ngmcU.js +0 -1
  298. package/dist/ui/assets/openai-codex-C2u_j09G.js +0 -1
  299. package/dist/ui/assets/openai-codex-DhoN0DsA.js +0 -1
  300. package/dist/ui/assets/openai-codex-responses-BQzefg3i.js +0 -7
  301. package/dist/ui/assets/openai-codex-responses-JtcU5b3J.js +0 -7
  302. package/dist/ui/assets/openai-completions-D-HjYi8x.js +0 -5
  303. package/dist/ui/assets/openai-completions-QMfwfjiE.js +0 -5
  304. package/dist/ui/assets/openai-responses-BVHnEPuG.js +0 -1
  305. package/dist/ui/assets/openai-responses-Ca0oWhbv.js +0 -1
  306. package/dist/ui/assets/openrouter-DnjFjBY3.js +0 -1
  307. package/dist/ui/assets/openrouter-DvfkEaFA.js +0 -1
  308. package/dist/ui/assets/panel-rpc-handlers-CqcvBRTi.js +0 -2
  309. package/dist/ui/assets/php-BidqsJNR.js +0 -1
  310. package/dist/ui/assets/port-bridge-client-BbVs1yhx.js +0 -2
  311. package/dist/ui/assets/port-bridge-client-DxYLF2-N.js +0 -1
  312. package/dist/ui/assets/provider-settings-DcYK3m1J.js +0 -2
  313. package/dist/ui/assets/provider-store-access-BN6c8KtH.js +0 -1
  314. package/dist/ui/assets/providers-BAjAn8LJ.js +0 -2
  315. package/dist/ui/assets/providers-BYRmRIj_.js +0 -1
  316. package/dist/ui/assets/proxied-fetch-B4g-4VbQ.js +0 -2
  317. package/dist/ui/assets/proxied-fetch-n2pCvcgW.js +0 -1
  318. package/dist/ui/assets/quick-llm-CXBgg2d_.js +0 -1
  319. package/dist/ui/assets/r-Dzep-lPg.js +0 -1
  320. package/dist/ui/assets/red-CJ3rzSJv.js +0 -1
  321. package/dist/ui/assets/rose-pine-BthvhNj6.js +0 -1
  322. package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
  323. package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +0 -1
  324. package/dist/ui/assets/secret-env-q4hxkt7Z.js +0 -1
  325. package/dist/ui/assets/secret-topology-xLmXoozo.js +0 -1
  326. package/dist/ui/assets/setup-standalone-prelude-B5yx5j_i.js +0 -2
  327. package/dist/ui/assets/setup-sudo-CGpFS_H9.js +0 -2
  328. package/dist/ui/assets/silent-renew-backoff-BhyOB6Rq.js +0 -1
  329. package/dist/ui/assets/silent-renew-backoff-BrAZcbzt.js +0 -1
  330. package/dist/ui/assets/slicc-version-ClAVruxy.js +0 -1
  331. package/dist/ui/assets/solarized-dark-DV17i1UV.js +0 -1
  332. package/dist/ui/assets/solarized-light-DSh2HLQt.js +0 -1
  333. package/dist/ui/assets/swift-DonLKvLd.js +0 -1
  334. package/dist/ui/assets/transformers-env-SL0zTs7S.js +0 -1
  335. package/dist/ui/assets/tray-leader-DcRtwWl-.js +0 -1
  336. package/dist/ui/assets/tray-runtime-config-CRGwg9SK.js +0 -1
  337. package/dist/ui/assets/ts-tags-BUIgHz80.js +0 -1
  338. package/dist/ui/assets/vesper-D5bVUKB1.js +0 -1
  339. package/dist/ui/assets/wc-float-label-qqb_uM9y.js +0 -1
  340. package/dist/ui/assets/wc-follower-Di7VVZ0z.js +0 -17
  341. package/dist/ui/assets/wc-live-1OpoOfN1.js +0 -8
  342. package/dist/ui/assets/wc-nav-B8ymo0Vu.js +0 -2
  343. package/dist/ui/assets/wc-onboarding-CMJYjLlt.js +0 -2
  344. package/dist/ui/assets/wc-placeholder-DIOhu2Ac.js +0 -4
  345. package/dist/ui/assets/wc-settings-D2oVzKVs.js +0 -51
  346. package/dist/ui/assets/wc-tray-CfSIy5M0.js +0 -2
  347. package/dist/ui/assets/whisper-session-Cf2gGkoR.js +0 -2
  348. package/dist/ui/assets/xai-grok-B_POoF8K.js +0 -1
  349. package/dist/ui/assets/xai-grok-D__MgEgm.js +0 -1
@@ -0,0 +1,5 @@
1
+ import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-BSkXF4T6.js";import{n as r}from"./json-parse-CgFfIg4Q.js";import{t as i}from"./provider-env-CTOcDKrQ.js";import{t as a}from"./headers-CbDaTl3c.js";import{t as o}from"./provider-retry-C8PJzY_l.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./constrained-sampling-Zzx2ko9x.js";import{n as m,t as h}from"./github-copilot-headers-DRgtIyTm.js";import{i as g,n as _,o as v,t as y}from"./transform-messages-XkZ1QnTb.js";import{n as b}from"./openai-ZcrxEOGB.js";import{n as x,t as S}from"./error-body-pkrba6pf.js";import{t as C}from"./openai-prompt-cache-DXo9f3w5.js";import{t as w}from"./hash-yQufAZII.js";function T(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function E(e,t,n){if(t)return t;if(T(n,`authorization`)||T(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function D(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function O(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function k(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function A(e){return e.type===`text`}function j(e){return e.type===`thinking`}function M(e){return e.type===`toolCall`}function N(e){return e.type===`image`}function P(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function F(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var I=(t,n,i)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=E(t.provider,i?.apiKey,i?.headers),l=$(t),d=u(n.tools,l.supportsOpenAIGrammarTools),f=F(i?.cacheRetention,i?.env),m=f===`none`?void 0:i?.sessionId,h=R(t,n,c,i?.headers,i?.fetch,m,l),g=z(t,n,i,l,f,d),_=await i?.onPayload?.(g,t);_!==void 0&&(g=_);let v={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:y,response:b}=await o(()=>h.chat.completions.create(g,v).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:b.status,headers:a(b.headers)},t),s.push({type:`start`,partial:e});let x=null,S=null,C=!1,w=new Map,T=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=p(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},M=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)s.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)s.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&s.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,s.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},N=()=>(x||(x={type:`text`,text:``},O.push(x),s.push({type:`text_start`,contentIndex:k(x),partial:e})),x),I=t=>(S||(S={type:`thinking`,thinking:``,thinkingSignature:t},O.push(S),s.push({type:`thinking_start`,contentIndex:k(S),partial:e})),S),L=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},B=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:w.get(n);if(!i&&t.id&&(i=T.get(t.id)),!i){let a=t.custom&&!t.function?d.get(r)??`input`:void 0,o=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:o?{[a]:``}:{},partialArgs:o?void 0:``,customInput:o?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&w.set(n,i),t.id&&T.set(t.id,i),O.push(i),s.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,w.set(n,i)),t.id&&T.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=d.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return L(i),i};for await(let n of y){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Q(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=ee(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),C=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=N();t.text+=i.delta.content,s.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,o=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){o=e;break}}if(o){let n=a[o];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&o===`reasoning`?`reasoning_content`:o);r.thinking+=n,s.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=B(t);!n.id&&t.id&&(n.id=t.id,T.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let a=``;t.function?.arguments?(a=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(a=j(n,A(n)+t.custom.input,!1)??``),s.push({type:`toolcall_delta`,contentIndex:k(n),delta:a,partial:e})}let c=i.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(P(e)){let t=JSON.stringify(e),n=T.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)M(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!C&&!l.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(l.supportsFinishReason&&!C||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=S(x(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},L=(e,n,r)=>{E(e.provider,r?.apiKey,r?.headers);let i=g(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a,s=r?.toolChoice;return I(e,n,{...i,reasoningEffort:o,toolChoice:s,thinkingBudgets:r?.thinkingBudgets})};function R(e,t,n,r,i,a,o=$(e)){let s={...e.headers};if(e.provider===`github-copilot`){let e=m(t.messages),n=h({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new b({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function z(e,t,n,r=$(e),i=F(n?.cacheRetention,n?.env),a=u(t.tools,r.supportsOpenAIGrammarTools)){let o=X(e,t,r,{grammarToolInputProperties:a}),s=H(r,i),c={model:e.id,messages:o,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?C(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(c.stream_options={include_usage:!0}),r.supportsStore&&(c.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?c.max_tokens=n.maxTokens:c.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(c.temperature=n.temperature);let l=r.deferredToolsMode===`kimi`?O(t.messages):new Set,d=t.tools?.filter(e=>!l.has(e.name));if(d&&d.length>0?(c.tools=Z(d,r),r.zaiToolStream&&(c.tool_stream=!0)):D(t.messages)&&(c.tools=[]),s&&U(o,c.tools,s),n?.toolChoice&&(c.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=c;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(c.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(c.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)c.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=B(e,n,r.chatTemplateKwargs);t&&(c.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=c,i=B(e,n,r.chatTemplateArgs);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?c.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(c.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(c.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=c;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(c.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=c;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=c;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)c.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(c.reasoning_effort=t)}if(r.supportsThinkingTokenBudget&&n?.reasoningEffort&&e.reasoning){let t=v(n.reasoningEffort),r={minimal:1024,low:2048,medium:8192,high:16384,...n.thinkingBudgets},i=c.max_tokens??c.max_completion_tokens??e.maxTokens,a=Math.min(r[t],Math.max(0,i-_));a>0&&(c.thinking_token_budget=a)}if(e.compat?.openRouterRouting&&(c.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),c.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(c,n.samplingParams),c}function B(e,t,n){let r={};for(let[i,a]of Object.entries(n)){let n=V(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function V(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function H(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function U(e,t,n){W(e,n),K(t,n),G(e,n)}function W(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){q(n,t);return}}function G(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&J(r,t))return}}function K(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function q(e,t){return Y(e,t)}function J(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function X(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=w(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=y(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:s(t.systemPrompt)})}let c=null;for(let a=0;a<o.length;a++){let l=o[a];if(n.requiresAssistantAfterToolResult&&c===`toolResult`&&l.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),l.role===`user`)if(typeof l.content==`string`)i.push({role:`user`,content:s(l.content)});else{let e=l.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(l.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=l.content.filter(A).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=l.content.filter(j).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
2
+
3
+ `)},...a];else{o.length>0&&(t.content=o);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
4
+ `))}else o.length>0&&(t.content=o);let u=l.content.filter(M);if(u.length>0){t.tool_calls=u.map(e=>{let t=r?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:s(f(e.name,e.arguments,t))}}});let e=u.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let d=t.content;if(!(d!=null&&d.length>0)&&!t.tool_calls)continue;i.push(t)}else if(l.role===`toolResult`){let r=[],l=new Set,u=a;for(;u<o.length&&o[u].role===`toolResult`;u++){let t=o[u],a=t.content.filter(A).map(e=>e.text).join(`
5
+ `),c=t.content.some(e=>e.type===`image`),d=a.length>0?a:c?`(see attached image)`:`(no tool output)`,f={role:`tool`,content:s(d),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(f.name=t.toolName),i.push(f),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])l.add(e);if(c&&e.input.includes(`image`))for(let e of t.content)N(e)&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(a=u-1,r.length>0?(n.requiresAssistantAfterToolResult&&i.push({role:`assistant`,content:`I have processed the tool results.`}),i.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...r]}),c=`user`):c=`toolResult`,l.size>0){let e=k(t.tools,l);if(e.length>0){let t={role:`system`,tools:Z(e,n)};i.push(t)}}continue}c=l.role}return i}function Z(e,t){return e.map(e=>{let n=c(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=d(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:l(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Q(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function ee(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function te(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),f=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||d||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,p=n.includes(`chutes.ai`)||d||a||c||i||l||u||r,m=t===`xai`||n.includes(`api.x.ai`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!f,supportsDeveloperRole:h||!f&&!o,supportsReasoningEffort:!m&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:p?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,supportsStrictMode:!a&&!i&&!c&&!l,supportsOpenAIGrammarTools:!1,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=te(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{X as convertMessages,I as stream,L as streamSimple};
@@ -0,0 +1,5 @@
1
+ import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t,t as n}from"./models-4WTk3EBD.js";import{n as r}from"./json-parse-ClXMvBdK.js";import{t as i}from"./provider-env-CILujRmO.js";import{t as a}from"./headers-CbDaTl3c.js";import{t as o}from"./provider-retry-C8PJzY_l.js";import{t as s}from"./sanitize-unicode-DmIE6hZJ.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./constrained-sampling-BNmnoM-i.js";import{n as m,t as h}from"./github-copilot-headers-DRgtIyTm.js";import{i as g,n as _,o as v,t as y}from"./transform-messages-DZg9zDcV.js";import{n as b}from"./openai-CjBvzZcB.js";import{n as x,t as S}from"./error-body-pkrba6pf.js";import{t as C}from"./openai-prompt-cache-DXo9f3w5.js";import{t as w}from"./hash-yQufAZII.js";function T(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function E(e,t,n){if(t)return t;if(T(n,`authorization`)||T(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function D(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function O(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function k(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function A(e){return e.type===`text`}function j(e){return e.type===`thinking`}function M(e){return e.type===`toolCall`}function N(e){return e.type===`image`}function P(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function F(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}const I=(t,n,i)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=E(t.provider,i?.apiKey,i?.headers),l=$(t),d=u(n.tools,l.supportsOpenAIGrammarTools),f=F(i?.cacheRetention,i?.env),m=f===`none`?void 0:i?.sessionId,h=R(t,n,c,i?.headers,i?.fetch,m,l),g=z(t,n,i,l,f,d),_=await i?.onPayload?.(g,t);_!==void 0&&(g=_);let v={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:0},{data:y,response:b}=await o(()=>h.chat.completions.create(g,v).withResponse(),{maxRetries:i?.maxRetries,maxRetryDelayMs:i?.maxRetryDelayMs,signal:i?.signal});await i?.onResponse?.({status:b.status,headers:a(b.headers)},t),s.push({type:`start`,partial:e});let x=null,S=null,C=!1,w=new Map,T=new Map,D=new Map,O=e.content,k=e=>O.indexOf(e),A=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},j=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=p(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},M=t=>{let n=k(t);if(n!==-1){if(t.type===`text`)s.push({type:`text_end`,contentIndex:n,content:t.text,partial:e});else if(t.type===`thinking`)s.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e});else if(t.type===`toolCall`){if(t.customInput){let r=j(t,A(t),!0);r!==void 0&&s.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:e})}else t.arguments=r(t.partialArgs);delete t.partialArgs,delete t.customInput,delete t.streamIndex,s.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})}}},N=()=>(x||(x={type:`text`,text:``},O.push(x),s.push({type:`text_start`,contentIndex:k(x),partial:e})),x),I=t=>(S||(S={type:`thinking`,thinking:``,thinkingSignature:t},O.push(S),s.push({type:`thinking_start`,contentIndex:k(S),partial:e})),S),L=e=>{if(!e.id)return;let t=D.get(e.id);t&&(e.thoughtSignature=t,D.delete(e.id))},B=t=>{let n=typeof t.index==`number`?t.index:void 0,r=t.function?.name??t.custom?.name??``,i=n===void 0?void 0:w.get(n);if(!i&&t.id&&(i=T.get(t.id)),!i){let a=t.custom&&!t.function?d.get(r)??`input`:void 0,o=a!==void 0;i={type:`toolCall`,id:t.id||``,name:r,arguments:o?{[a]:``}:{},partialArgs:o?void 0:``,customInput:o?{property:a,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&w.set(n,i),t.id&&T.set(t.id,i),O.push(i),s.push({type:`toolcall_start`,contentIndex:k(i),partial:e})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,w.set(n,i)),t.id&&T.set(t.id,i),!i.name&&r&&(i.name=r),t.custom&&!t.function&&!i.customInput){let e=d.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return L(i),i};for await(let n of y){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=Q(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=Q(i.usage,t)),i.finish_reason){e.rawStopReason=i.finish_reason;let t=ee(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),C=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=N();t.text+=i.delta.content,s.push({type:`text_delta`,contentIndex:k(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],a=i.delta,o=null;for(let e of n){let t=a[e];if(typeof t==`string`&&t.length>0){o=e;break}}if(o){let n=a[o];if(typeof n==`string`&&n.length>0){let r=I(t.provider===`opencode-go`&&o===`reasoning`?`reasoning_content`:o);r.thinking+=n,s.push({type:`thinking_delta`,contentIndex:k(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=B(t);!n.id&&t.id&&(n.id=t.id,T.set(t.id,n));let i=t.function?.name??t.custom?.name;!n.name&&i&&(n.name=i);let a=``;t.function?.arguments?(a=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)):t.custom?.input&&(a=j(n,A(n)+t.custom.input,!1)??``),s.push({type:`toolcall_delta`,contentIndex:k(n),delta:a,partial:e})}let c=i.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(P(e)){let t=JSON.stringify(e),n=T.get(e.id);n?n.thoughtSignature=t:D.set(e.id,t)}}}}}for(let e of O)M(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(!C&&!l.supportsFinishReason&&(e.stopReason=e.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(l.supportsFinishReason&&!C||e.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.customInput,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=S(x(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},L=(e,n,r)=>{E(e.provider,r?.apiKey,r?.headers);let i=g(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a,s=r?.toolChoice;return I(e,n,{...i,reasoningEffort:o,toolChoice:s,thinkingBudgets:r?.thinkingBudgets})};function R(e,t,n,r,i,a,o=$(e)){let s={...e.headers};if(e.provider===`github-copilot`){let e=m(t.messages),n=h({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new b({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function z(e,t,n,r=$(e),i=F(n?.cacheRetention,n?.env),a=u(t.tools,r.supportsOpenAIGrammarTools)){let o=X(e,t,r,{grammarToolInputProperties:a}),s=H(r,i),c={model:e.id,messages:o,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?C(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(c.stream_options={include_usage:!0}),r.supportsStore&&(c.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?c.max_tokens=n.maxTokens:c.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(c.temperature=n.temperature);let l=r.deferredToolsMode===`kimi`?O(t.messages):new Set,d=t.tools?.filter(e=>!l.has(e.name));if(d&&d.length>0?(c.tools=Z(d,r),r.zaiToolStream&&(c.tool_stream=!0)):D(t.messages)&&(c.tools=[]),s&&U(o,c.tools,s),n?.toolChoice&&(c.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=c;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning){if(c.enable_thinking=!!n?.reasoningEffort,n?.reasoningEffort&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;typeof t==`string`&&(c.reasoning_effort=t)}}else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)c.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=B(e,n,r.chatTemplateKwargs);t&&(c.chat_template_kwargs=t)}else if(r.thinkingFormat===`baseten`&&e.reasoning){let t=c,i=B(e,n,r.chatTemplateArgs);if(i&&(t.chat_template_args=i),r.supportsReasoningEffort){let r=n?.reasoningEffort,i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off,a=i===void 0?r:i;typeof a==`string`&&(t.reasoning_effort=a)}}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?c.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(c.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(c.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=c;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(c.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=c;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=c;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)c.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(c.reasoning_effort=t)}if(r.supportsThinkingTokenBudget&&n?.reasoningEffort&&e.reasoning){let t=v(n.reasoningEffort),r={minimal:1024,low:2048,medium:8192,high:16384,...n.thinkingBudgets},i=c.max_tokens??c.max_completion_tokens??e.maxTokens,a=Math.min(r[t],Math.max(0,i-_));a>0&&(c.thinking_token_budget=a)}if(e.compat?.openRouterRouting&&(c.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),c.providerOptions={gateway:e}}}return n?.samplingParams&&Object.assign(c,n.samplingParams),c}function B(e,t,n){let r={};for(let[i,a]of Object.entries(n)){let n=V(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function V(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function H(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function U(e,t,n){W(e,n),K(t,n),G(e,n)}function W(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){q(n,t);return}}function G(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&J(r,t))return}}function K(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function q(e,t){return Y(e,t)}function J(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?Y(e,t):!1}function Y(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function X(e,t,n,r){let i=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=w(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=y(t.messages,e,e=>a(e));if(t.systemPrompt){let r=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;i.push({role:r,content:s(t.systemPrompt)})}let c=null;for(let a=0;a<o.length;a++){let l=o[a];if(n.requiresAssistantAfterToolResult&&c===`toolResult`&&l.role===`user`&&i.push({role:`assistant`,content:`I have processed the tool results.`}),l.role===`user`)if(typeof l.content==`string`)i.push({role:`user`,content:s(l.content)});else{let e=l.content.map(e=>e.type===`text`?{type:`text`,text:s(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;i.push({role:`user`,content:e})}else if(l.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},a=l.content.filter(A).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:s(e.text)})),o=a.map(e=>e.text).join(``),c=l.content.filter(j).filter(e=>e.thinking.trim().length>0);if(c.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:c.map(e=>s(e.thinking)).join(`
2
+
3
+ `)},...a];else{o.length>0&&(t.content=o);let n=c[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=c.map(e=>e.thinking).join(`
4
+ `))}else o.length>0&&(t.content=o);let u=l.content.filter(M);if(u.length>0){t.tool_calls=u.map(e=>{let t=r?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:s(f(e.name,e.arguments,t))}}});let e=u.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let d=t.content;if(!(d!=null&&d.length>0)&&!t.tool_calls)continue;i.push(t)}else if(l.role===`toolResult`){let r=[],l=new Set,u=a;for(;u<o.length&&o[u].role===`toolResult`;u++){let t=o[u],a=t.content.filter(A).map(e=>e.text).join(`
5
+ `),c=t.content.some(e=>e.type===`image`),d=a.length>0?a:c?`(see attached image)`:`(no tool output)`,f={role:`tool`,content:s(d),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(f.name=t.toolName),i.push(f),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])l.add(e);if(c&&e.input.includes(`image`))for(let e of t.content)N(e)&&r.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(a=u-1,r.length>0?(n.requiresAssistantAfterToolResult&&i.push({role:`assistant`,content:`I have processed the tool results.`}),i.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...r]}),c=`user`):c=`toolResult`,l.size>0){let e=k(t.tools,l);if(e.length>0){let t={role:`system`,tools:Z(e,n)};i.push(t)}}continue}c=l.role}return i}function Z(e,t){return e.map(e=>{let n=c(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=d(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:l(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Q(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function ee(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function te(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),f=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||d||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,p=n.includes(`chutes.ai`)||d||a||c||i||l||u||r,m=t===`xai`||n.includes(`api.x.ai`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!f,supportsDeveloperRole:h||!f&&!o,supportsReasoningEffort:!m&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:p?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:d,thinkingFormat:d?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,supportsStrictMode:!a&&!i&&!c&&!l,supportsOpenAIGrammarTools:!1,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=te(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{X as convertMessages,I as stream,L as streamSimple};
@@ -0,0 +1 @@
1
+ import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t}from"./models-BSkXF4T6.js";import{t as n}from"./provider-env-CTOcDKrQ.js";import{t as r}from"./deferred-tools-C1IEsG5C.js";import{t as i}from"./headers-CbDaTl3c.js";import{t as a}from"./provider-retry-C8PJzY_l.js";import{n as o}from"./constrained-sampling-Zzx2ko9x.js";import{n as s,t as c}from"./github-copilot-headers-DRgtIyTm.js";import{i as l}from"./transform-messages-XkZ1QnTb.js";import{n as u}from"./openai-ZcrxEOGB.js";import{n as d,t as f}from"./error-body-pkrba6pf.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";import{n as m,r as h,t as g}from"./openai-responses-shared-ChgvRZ74.js";var _=new Set([`openai`,`openai-codex`,`opencode`]),v=16;function y(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function b(e,t,n){if(t)return t;if(y(n,`authorization`)||y(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function x(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function S(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function C(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??x(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function w(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function T(e){return f(d(e),`OpenAI API error`)}var E=(t,n,r)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=b(t.provider,r?.apiKey,r?.headers),l=S(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,u=C(t),d=o(n.tools,u.supportsOpenAIGrammarTools),f=O(t,n,c,r?.headers,r?.fetch,l),p=k(t,n,r,u,d),m=await r?.onPayload?.(p,t);m!==void 0&&(p=m);let g={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:0},{data:_,response:v}=await a(()=>f.responses.create(p,g).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:v.status,headers:i(v.headers)},t),s.push({type:`start`,partial:e}),await h(_,e,s,t,{serviceTier:r?.serviceTier,grammarToolInputProperties:d,applyServiceTierPricing:(e,n)=>j(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=T(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},D=(e,n,r)=>{b(e.provider,r?.apiKey,r?.headers);let i=l(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return E(e,n,{...i,reasoningEffort:o})};function O(e,t,n,r,i,a){let o=C(e),l={...e.headers};if(e.provider===`github-copilot`){let e=s(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(l,n)}return a&&(o.sessionAffinityFormat===`openrouter`?l[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(l.session_id=a),l[`x-client-request-id`]=a)),r&&Object.assign(l,r),new u({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:l})}function k(e,t,n,i=C(e),a=o(t.tools,i.supportsOpenAIGrammarTools)){let s=i.supportsAdditionalTools?`additional-tools`:i.supportsToolSearch?`tool-search`:void 0,c=r(t,s!==void 0),l=g(e,t,_,{grammarToolInputProperties:a,deferredTools:c.deferred,deferredToolsMode:s,toolOptions:{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools}}),u=S(n?.cacheRetention,n?.env),d=u===`none`&&i.supportsExplicitPromptCacheMode,f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:p(n?.sessionId),prompt_cache_retention:w(i,u),prompt_cache_options:d?{mode:`explicit`}:void 0,store:!1};return n?.maxTokens&&(f.max_output_tokens=Math.max(n.maxTokens,v)),n?.temperature!==void 0&&(f.temperature=n?.temperature),n?.serviceTier!==void 0&&(f.service_tier=n.serviceTier),c.immediate.length>0&&(f.tools=m(c.immediate,{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools})),n?.toolChoice!==void 0&&(f.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(f.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`])),n?.samplingParams&&Object.assign(f,n.samplingParams),f}function A(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function j(e,t,n){let r=A(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{E as stream,D as streamSimple};
@@ -0,0 +1 @@
1
+ import{i as e}from"./diagnostics-DN_idNHx.js";import{n as t}from"./models-4WTk3EBD.js";import{t as n}from"./provider-env-CILujRmO.js";import{t as r}from"./deferred-tools-DNuoafg8.js";import{t as i}from"./headers-CbDaTl3c.js";import{t as a}from"./provider-retry-C8PJzY_l.js";import{n as o}from"./constrained-sampling-BNmnoM-i.js";import{n as s,t as c}from"./github-copilot-headers-DRgtIyTm.js";import{i as l}from"./transform-messages-DZg9zDcV.js";import{n as u}from"./openai-CjBvzZcB.js";import{n as d,t as f}from"./error-body-pkrba6pf.js";import{t as p}from"./openai-prompt-cache-DXo9f3w5.js";import{n as m,r as h,t as g}from"./openai-responses-shared-DqJbHrek.js";const _=new Set([`openai`,`openai-codex`,`opencode`]);function v(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function y(e,t,n){if(t)return t;if(v(n,`authorization`)||v(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function b(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function x(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function S(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??b(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function C(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function w(e){return f(d(e),`OpenAI API error`)}const T=(t,n,r)=>{let s=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let c=y(t.provider,r?.apiKey,r?.headers),l=x(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,u=S(t),d=o(n.tools,u.supportsOpenAIGrammarTools),f=D(t,n,c,r?.headers,r?.fetch,l),p=O(t,n,r,u,d),m=await r?.onPayload?.(p,t);m!==void 0&&(p=m);let g={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:0},{data:_,response:v}=await a(()=>f.responses.create(p,g).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:v.status,headers:i(v.headers)},t),s.push({type:`start`,partial:e}),await h(_,e,s,t,{serviceTier:r?.serviceTier,grammarToolInputProperties:d,applyServiceTierPricing:(e,n)=>A(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(e.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:e.stopReason,message:e}),s.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson,delete t.customInput;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=w(t),s.push({type:`error`,reason:e.stopReason,error:e}),s.end()}})(),s},E=(e,n,r)=>{y(e.provider,r?.apiKey,r?.headers);let i=l(e,n,r,r?.apiKey),a=r?.reasoning?t(e,r.reasoning):void 0,o=a===`off`?void 0:a;return T(e,n,{...i,reasoningEffort:o})};function D(e,t,n,r,i,a){let o=S(e),l={...e.headers};if(e.provider===`github-copilot`){let e=s(t.messages),n=c({messages:t.messages,hasImages:e});Object.assign(l,n)}return a&&(o.sessionAffinityFormat===`openrouter`?l[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(l.session_id=a),l[`x-client-request-id`]=a)),r&&Object.assign(l,r),new u({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:l})}function O(e,t,n,i=S(e),a=o(t.tools,i.supportsOpenAIGrammarTools)){let s=i.supportsAdditionalTools?`additional-tools`:i.supportsToolSearch?`tool-search`:void 0,c=r(t,s!==void 0),l=g(e,t,_,{grammarToolInputProperties:a,deferredTools:c.deferred,deferredToolsMode:s,toolOptions:{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools}}),u=x(n?.cacheRetention,n?.env),d=u===`none`&&i.supportsExplicitPromptCacheMode,f={model:e.id,input:l,stream:!0,prompt_cache_key:u===`none`?void 0:p(n?.sessionId),prompt_cache_retention:C(i,u),prompt_cache_options:d?{mode:`explicit`}:void 0,store:!1};return n?.maxTokens&&(f.max_output_tokens=Math.max(n.maxTokens,16)),n?.temperature!==void 0&&(f.temperature=n?.temperature),n?.serviceTier!==void 0&&(f.service_tier=n.serviceTier),c.immediate.length>0&&(f.tools=m(c.immediate,{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools})),n?.toolChoice!==void 0&&(f.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(f.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(f.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(f.include=[`reasoning.encrypted_content`])),n?.samplingParams&&Object.assign(f,n.samplingParams),f}function k(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function A(e,t,n){let r=k(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{T as stream,E as streamSimple};
@@ -1,10 +1,10 @@
1
- import{s as e,t}from"./transform-messages-DEFauvrq.js";import{n}from"./json-parse-ClXMvBdK.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{a as i,i as a,o,r as s,t as c}from"./constrained-sampling-BNmnoM-i.js";import{t as l}from"./hash-yQufAZII.js";function u(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function d(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function f(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
- `),i=t.filter(e=>e.type===`image`),a=n.length>0;if(i.length===0||!e.input.includes(`image`))return r(a?n:i.length>0?`(see attached image)`:`(no tool output)`);let o=[];a&&o.push({type:`input_text`,text:r(n)});for(let e of i)o.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return o}function p(e,n,i,a){let o=[],c=new Set,u=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},p=e=>{let t=`fc_${l(e)}`;return t.length>64?t.slice(0,64):t},h=t(n.messages,e,(t,n,r)=>{if(!i.has(e.provider)||!t.includes(`|`))return u(t);let[a,o]=t.split(`|`),s=u(a),c=r.provider!==e.provider||r.api!==e.api?p(o):u(o);return c.startsWith(`fc_`)||(c=u(`fc_${c}`)),`${s}|${c}`});if((a?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;o.push({role:i,content:r(n.systemPrompt)})}let g=0;for(let t of h){if(t.role===`user`)if(typeof t.content==`string`)o.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;o.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],i=t,c=i.provider===e.provider&&i.api===e.api,u=c&&i.model===e.id,f=c&&i.model!==e.id,p=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,i=d(t.textSignature),a=p===0?`msg_pi_${g}`:`msg_pi_${g}_${p}`;p++;let o=i?.id;o?o.length>64&&(o=`msg_${l(o)}`):o=a,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:o,phase:i?.phase})}else if(e.type===`toolCall`){let t=e,[i,o]=t.id.split(`|`),c=a?.grammarToolInputProperties?.get(t.name),l=o;(f&&l?.startsWith(`fc_`)||c===void 0&&!l?.startsWith(`fc_`))&&(l=void 0);let d=u||a?.deferredTools?.has(t.name)===!0;c===void 0?n.push({type:`function_call`,id:l,call_id:i,name:t.name,arguments:JSON.stringify(t.arguments),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}}):n.push({type:`custom_tool_call`,id:l,call_id:i,name:t.name,input:r(s(t.name,t.arguments,c)),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}})}if(n.length===0)continue;o.push(...n)}else if(t.role===`toolResult`){let[n]=t.toolCallId.split(`|`),r=f(e,t.content);a?.grammarToolInputProperties?.has(t.toolName)?o.push({type:`custom_tool_call_output`,call_id:n,output:r}):o.push({type:`function_call_output`,call_id:n,output:r});let i=[];for(let e of t.addedToolNames??[]){let t=a?.deferredTools?.get(e);!t||c.has(e)||(c.add(e),i.push(t))}if(i.length>0&&a?.deferredToolsMode===`additional-tools`)o.push({type:`additional_tools`,role:`developer`,tools:m(i,a.toolOptions)});else if(i.length>0&&a?.deferredToolsMode===`tool-search`){let e=i.map(e=>e.name),n=`pi_tool_load_${l(`${t.toolCallId}:${e.join(`,`)}`)}`;o.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),o.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:m(i,{...a.toolOptions,deferLoading:!0})})}}g++}return o}function m(e,t){let n=t?.strict!==void 0&&t.strict,r=t?.supportsStrictMode??!0,s=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let c=i(e,s);if(c)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:c.format,definition:c.definition},...t?.deferLoading?{defer_loading:!0}:{}};let l=o(e,r)??n,u={type:`function`,name:e.name,description:e.description,parameters:a(e,l===!0),...t?.deferLoading?{defer_loading:!0}:{}};return r&&(u.strict=l),u})}function h(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function g(e,t,n){let r=e.customInput;if(!r)return;let i=c(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function _(t,r,i,a,o){let s=!1,c=new Map,l=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(r.stopReason=`stop`)},f=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},p=(e,t)=>{t!==void 0&&i.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:t,partial:r})},m=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return c.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){d(t);let n={type:`text`,text:``};r.content.push(n);let a={type:`text`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`text_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},...t.namespace===void 0?{}:{namespace:t.namespace},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`custom_tool_call`){let n=o?.grammarToolInputProperties?.get(t.name)??`input`,a=t.input||``,s={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{[n]:a},...t.namespace===void 0?{}:{namespace:t.namespace},customInput:{property:n,jsonBuffer:{input:``,started:!1,closed:!1}}};r.content.push(s);let l={type:`toolCall`,block:s,contentIndex:r.content.length-1};return c.set(e,l),i.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:r}),l}},_=(e,t)=>c.get(e)??m(e,t),y=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},b=t=>{if(s=!0,y(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(a,r.usage),o?.applyServiceTierPricing){let e=o.resolveServiceTier?o.resolveServiceTier(t?.service_tier,o.serviceTier):t?.service_tier??o.serviceTier;o.applyServiceTierPricing(r.usage,e)}let n=t?.status,i=t?.incomplete_details,c=typeof i?.reason==`string`?i.reason:void 0;r.rawStopReason=c?`${n}.${c}`:n;let l=v(n,c);r.stopReason=l.stopReason,r.errorMessage=l.errorMessage,r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of t)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)m(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
1
+ import{t as e}from"./models-BSkXF4T6.js";import{n as t}from"./json-parse-CgFfIg4Q.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";import{a as r,i,o as a,r as o,t as s}from"./constrained-sampling-Zzx2ko9x.js";import{t as c}from"./transform-messages-XkZ1QnTb.js";import{t as l}from"./hash-yQufAZII.js";function u(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function d(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function f(e,t){let r=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
+ `),i=t.filter(e=>e.type===`image`),a=r.length>0;if(i.length===0||!e.input.includes(`image`))return n(a?r:i.length>0?`(see attached image)`:`(no tool output)`);let o=[];a&&o.push({type:`input_text`,text:n(r)});for(let e of i)o.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return o}function p(e,t,r,i){let a=[],s=new Set,u=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},p=e=>{let t=`fc_${l(e)}`;return t.length>64?t.slice(0,64):t},h=c(t.messages,e,(t,n,i)=>{if(!r.has(e.provider)||!t.includes(`|`))return u(t);let[a,o]=t.split(`|`),s=u(a),c=i.provider!==e.provider||i.api!==e.api?p(o):u(o);return c.startsWith(`fc_`)||(c=u(`fc_${c}`)),`${s}|${c}`});if((i?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.compat,i=e.reasoning&&r?.supportsDeveloperRole!==!1?`developer`:`system`;a.push({role:i,content:n(t.systemPrompt)})}let g=0;for(let t of h){if(t.role===`user`)if(typeof t.content==`string`)a.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;a.push({role:`user`,content:e})}else if(t.role===`assistant`){let r=[],s=t,c=s.provider===e.provider&&s.api===e.api,u=c&&s.model===e.id,f=c&&s.model!==e.id,p=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,i=d(t.textSignature),a=p===0?`msg_pi_${g}`:`msg_pi_${g}_${p}`;p++;let o=i?.id;o?o.length>64&&(o=`msg_${l(o)}`):o=a,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:o,phase:i?.phase})}else if(e.type===`toolCall`){let t=e,[a,s]=t.id.split(`|`),c=i?.grammarToolInputProperties?.get(t.name),l=s;(f&&l?.startsWith(`fc_`)||c===void 0&&!l?.startsWith(`fc_`))&&(l=void 0);let d=u||i?.deferredTools?.has(t.name)===!0;c===void 0?r.push({type:`function_call`,id:l,call_id:a,name:t.name,arguments:JSON.stringify(t.arguments),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}}):r.push({type:`custom_tool_call`,id:l,call_id:a,name:t.name,input:n(o(t.name,t.arguments,c)),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}})}if(r.length===0)continue;a.push(...r)}else if(t.role===`toolResult`){let[n]=t.toolCallId.split(`|`),r=f(e,t.content);i?.grammarToolInputProperties?.has(t.toolName)?a.push({type:`custom_tool_call_output`,call_id:n,output:r}):a.push({type:`function_call_output`,call_id:n,output:r});let o=[];for(let e of t.addedToolNames??[]){let t=i?.deferredTools?.get(e);!t||s.has(e)||(s.add(e),o.push(t))}if(o.length>0&&i?.deferredToolsMode===`additional-tools`)a.push({type:`additional_tools`,role:`developer`,tools:m(o,i.toolOptions)});else if(o.length>0&&i?.deferredToolsMode===`tool-search`){let e=o.map(e=>e.name),n=`pi_tool_load_${l(`${t.toolCallId}:${e.join(`,`)}`)}`;a.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),a.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:m(o,{...i.toolOptions,deferLoading:!0})})}}g++}return a}function m(e,t){let n=t?.strict!==void 0&&t.strict,o=t?.supportsStrictMode??!0,s=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let c=r(e,s);if(c)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:c.format,definition:c.definition},...t?.deferLoading?{defer_loading:!0}:{}};let l=a(e,o)??n,u={type:`function`,name:e.name,description:e.description,parameters:i(e,l===!0),...t?.deferLoading?{defer_loading:!0}:{}};return o&&(u.strict=l),u})}function h(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function g(e,t,n){let r=e.customInput;if(!r)return;let i=s(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function _(n,r,i,a,o){let s=!1,c=new Map,l=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(r.stopReason=`stop`)},f=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},p=(e,t)=>{t!==void 0&&i.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:t,partial:r})},m=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return c.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){d(t);let n={type:`text`,text:``};r.content.push(n);let a={type:`text`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`text_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},...t.namespace===void 0?{}:{namespace:t.namespace},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`custom_tool_call`){let n=o?.grammarToolInputProperties?.get(t.name)??`input`,a=t.input||``,s={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{[n]:a},...t.namespace===void 0?{}:{namespace:t.namespace},customInput:{property:n,jsonBuffer:{input:``,started:!1,closed:!1}}};r.content.push(s);let l={type:`toolCall`,block:s,contentIndex:r.content.length-1};return c.set(e,l),i.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:r}),l}},_=(e,t)=>c.get(e)??m(e,t),y=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},b=t=>{if(s=!0,y(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(a,r.usage),o?.applyServiceTierPricing){let e=o.resolveServiceTier?o.resolveServiceTier(t?.service_tier,o.serviceTier):t?.service_tier??o.serviceTier;o.applyServiceTierPricing(r.usage,e)}let n=t?.status,i=t?.incomplete_details,c=typeof i?.reason==`string`?i.reason:void 0;r.rawStopReason=c?`${n}.${c}`:n;let l=v(n,c);r.stopReason=l.stopReason,r.errorMessage=l.errorMessage,r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of n)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)m(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
3
3
 
4
4
  `,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:`
5
5
 
6
- `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let t=f(e.output_index,`toolCall`);if(!t||t.block.partialJson===void 0)continue;t.block.partialJson+=e.delta,t.block.arguments=n(t.block.partialJson),p(t,e.delta)}else if(e.type===`response.function_call_arguments.done`){let t=f(e.output_index,`toolCall`);if(!t||t.block.partialJson===void 0)continue;let r=t.block.partialJson;if(t.block.partialJson=e.arguments,t.block.arguments=n(t.block.partialJson),e.arguments.startsWith(r)){let n=e.arguments.slice(r.length);n.length>0&&p(t,n)}}else if(e.type===`response.custom_tool_call_input.delta`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,h(t.block)+e.delta,!1))}else if(e.type===`response.custom_tool_call_input.done`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,e.input,!0))}else if(e.type===`response.output_item.done`){let t=e.item;d(t);let a=_(e.output_index,t);if(t.type===`reasoning`&&a?.type===`thinking`){let n=t.summary?.map(e=>e.text).join(`
6
+ `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let n=f(e.output_index,`toolCall`);if(!n||n.block.partialJson===void 0)continue;n.block.partialJson+=e.delta,n.block.arguments=t(n.block.partialJson),p(n,e.delta)}else if(e.type===`response.function_call_arguments.done`){let n=f(e.output_index,`toolCall`);if(!n||n.block.partialJson===void 0)continue;let r=n.block.partialJson;if(n.block.partialJson=e.arguments,n.block.arguments=t(n.block.partialJson),e.arguments.startsWith(r)){let t=e.arguments.slice(r.length);t.length>0&&p(n,t)}}else if(e.type===`response.custom_tool_call_input.delta`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,h(t.block)+e.delta,!1))}else if(e.type===`response.custom_tool_call_input.done`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,e.input,!0))}else if(e.type===`response.output_item.done`){let n=e.item;d(n);let a=_(e.output_index,n);if(n.type===`reasoning`&&a?.type===`thinking`){let t=n.summary?.map(e=>e.text).join(`
7
7
 
8
- `)||``,o=t.content?.map(e=>e.text).join(`
8
+ `)||``,o=n.content?.map(e=>e.text).join(`
9
9
 
10
- `)||``;a.block.thinking=n||o||a.block.thinking,a.block.thinkingSignature=JSON.stringify(t),l.set(t.id,a.block),i.push({type:`thinking_end`,contentIndex:a.contentIndex,content:a.block.thinking,partial:r}),c.delete(e.output_index)}else t.type===`message`&&a?.type===`text`?(a.block.text=t.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,a.block.textSignature=u(t.id,t.phase??void 0),i.push({type:`text_end`,contentIndex:a.contentIndex,content:a.block.text,partial:r}),c.delete(e.output_index)):t.type===`function_call`&&a?.type===`toolCall`&&a.block.partialJson!==void 0?(a.block.arguments=n(t.arguments||a.block.partialJson||`{}`),t.namespace!==void 0&&(a.block.namespace=t.namespace),delete a.block.partialJson,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index)):t.type===`custom_tool_call`&&a?.type===`toolCall`&&a.block.customInput&&(p(a,g(a.block,t.input??h(a.block),!0)),t.namespace!==void 0&&(a.block.namespace=t.namespace),delete a.block.customInput,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)b(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){s=!0,r.rawStopReason=e.response?.status;let t=e.response?.error,n=e.response?.incomplete_details,i=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(i)}if(!s)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function v(e,t){if(!e)return{stopReason:`stop`};switch(e){case`completed`:return{stopReason:`stop`};case`incomplete`:return t===`max_output_tokens`?{stopReason:`length`}:{stopReason:`error`,errorMessage:t?`Response incomplete: ${t}`:`Response incomplete without a provider reason`};case`failed`:case`cancelled`:return{stopReason:`error`};case`in_progress`:case`queued`:return{stopReason:`stop`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{m as n,_ as r,p as t};
10
+ `)||``;a.block.thinking=t||o||a.block.thinking,a.block.thinkingSignature=JSON.stringify(n),l.set(n.id,a.block),i.push({type:`thinking_end`,contentIndex:a.contentIndex,content:a.block.thinking,partial:r}),c.delete(e.output_index)}else n.type===`message`&&a?.type===`text`?(a.block.text=n.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,a.block.textSignature=u(n.id,n.phase??void 0),i.push({type:`text_end`,contentIndex:a.contentIndex,content:a.block.text,partial:r}),c.delete(e.output_index)):n.type===`function_call`&&a?.type===`toolCall`&&a.block.partialJson!==void 0?(a.block.arguments=t(n.arguments||a.block.partialJson||`{}`),n.namespace!==void 0&&(a.block.namespace=n.namespace),delete a.block.partialJson,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index)):n.type===`custom_tool_call`&&a?.type===`toolCall`&&a.block.customInput&&(p(a,g(a.block,n.input??h(a.block),!0)),n.namespace!==void 0&&(a.block.namespace=n.namespace),delete a.block.customInput,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)b(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){s=!0,r.rawStopReason=e.response?.status;let t=e.response?.error,n=e.response?.incomplete_details,i=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(i)}if(!s)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function v(e,t){if(!e)return{stopReason:`stop`};switch(e){case`completed`:return{stopReason:`stop`};case`incomplete`:return t===`max_output_tokens`?{stopReason:`length`}:{stopReason:`error`,errorMessage:t?`Response incomplete: ${t}`:`Response incomplete without a provider reason`};case`failed`:case`cancelled`:return{stopReason:`error`};case`in_progress`:case`queued`:return{stopReason:`stop`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{m as n,_ as r,p as t};
@@ -1,10 +1,10 @@
1
- import{s as e,t}from"./transform-messages-N_eMsP2M.js";import{n}from"./json-parse-CgFfIg4Q.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{a as i,i as a,o,r as s,t as c}from"./constrained-sampling-Zzx2ko9x.js";import{t as l}from"./hash-yQufAZII.js";function u(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function d(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function f(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
- `),i=t.filter(e=>e.type===`image`),a=n.length>0;if(i.length===0||!e.input.includes(`image`))return r(a?n:i.length>0?`(see attached image)`:`(no tool output)`);let o=[];a&&o.push({type:`input_text`,text:r(n)});for(let e of i)o.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return o}function p(e,n,i,a){let o=[],c=new Set,u=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},p=e=>{let t=`fc_${l(e)}`;return t.length>64?t.slice(0,64):t},h=t(n.messages,e,(t,n,r)=>{if(!i.has(e.provider)||!t.includes(`|`))return u(t);let[a,o]=t.split(`|`),s=u(a),c=r.provider!==e.provider||r.api!==e.api?p(o):u(o);return c.startsWith(`fc_`)||(c=u(`fc_${c}`)),`${s}|${c}`});if((a?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;o.push({role:i,content:r(n.systemPrompt)})}let g=0;for(let t of h){if(t.role===`user`)if(typeof t.content==`string`)o.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;o.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],i=t,c=i.provider===e.provider&&i.api===e.api,u=c&&i.model===e.id,f=c&&i.model!==e.id,p=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,i=d(t.textSignature),a=p===0?`msg_pi_${g}`:`msg_pi_${g}_${p}`;p++;let o=i?.id;o?o.length>64&&(o=`msg_${l(o)}`):o=a,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:o,phase:i?.phase})}else if(e.type===`toolCall`){let t=e,[i,o]=t.id.split(`|`),c=a?.grammarToolInputProperties?.get(t.name),l=o;(f&&l?.startsWith(`fc_`)||c===void 0&&!l?.startsWith(`fc_`))&&(l=void 0);let d=u||a?.deferredTools?.has(t.name)===!0;c===void 0?n.push({type:`function_call`,id:l,call_id:i,name:t.name,arguments:JSON.stringify(t.arguments),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}}):n.push({type:`custom_tool_call`,id:l,call_id:i,name:t.name,input:r(s(t.name,t.arguments,c)),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}})}if(n.length===0)continue;o.push(...n)}else if(t.role===`toolResult`){let[n]=t.toolCallId.split(`|`),r=f(e,t.content);a?.grammarToolInputProperties?.has(t.toolName)?o.push({type:`custom_tool_call_output`,call_id:n,output:r}):o.push({type:`function_call_output`,call_id:n,output:r});let i=[];for(let e of t.addedToolNames??[]){let t=a?.deferredTools?.get(e);!t||c.has(e)||(c.add(e),i.push(t))}if(i.length>0&&a?.deferredToolsMode===`additional-tools`)o.push({type:`additional_tools`,role:`developer`,tools:m(i,a.toolOptions)});else if(i.length>0&&a?.deferredToolsMode===`tool-search`){let e=i.map(e=>e.name),n=`pi_tool_load_${l(`${t.toolCallId}:${e.join(`,`)}`)}`;o.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),o.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:m(i,{...a.toolOptions,deferLoading:!0})})}}g++}return o}function m(e,t){let n=t?.strict!==void 0&&t.strict,r=t?.supportsStrictMode??!0,s=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let c=i(e,s);if(c)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:c.format,definition:c.definition},...t?.deferLoading?{defer_loading:!0}:{}};let l=o(e,r)??n,u={type:`function`,name:e.name,description:e.description,parameters:a(e,l===!0),...t?.deferLoading?{defer_loading:!0}:{}};return r&&(u.strict=l),u})}function h(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function g(e,t,n){let r=e.customInput;if(!r)return;let i=c(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function _(t,r,i,a,o){let s=!1,c=new Map,l=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(r.stopReason=`stop`)},f=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},p=(e,t)=>{t!==void 0&&i.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:t,partial:r})},m=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return c.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){d(t);let n={type:`text`,text:``};r.content.push(n);let a={type:`text`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`text_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},...t.namespace===void 0?{}:{namespace:t.namespace},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`custom_tool_call`){let n=o?.grammarToolInputProperties?.get(t.name)??`input`,a=t.input||``,s={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{[n]:a},...t.namespace===void 0?{}:{namespace:t.namespace},customInput:{property:n,jsonBuffer:{input:``,started:!1,closed:!1}}};r.content.push(s);let l={type:`toolCall`,block:s,contentIndex:r.content.length-1};return c.set(e,l),i.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:r}),l}},_=(e,t)=>c.get(e)??m(e,t),y=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},b=t=>{if(s=!0,y(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(a,r.usage),o?.applyServiceTierPricing){let e=o.resolveServiceTier?o.resolveServiceTier(t?.service_tier,o.serviceTier):t?.service_tier??o.serviceTier;o.applyServiceTierPricing(r.usage,e)}let n=t?.status,i=t?.incomplete_details,c=typeof i?.reason==`string`?i.reason:void 0;r.rawStopReason=c?`${n}.${c}`:n;let l=v(n,c);r.stopReason=l.stopReason,r.errorMessage=l.errorMessage,r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of t)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)m(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
1
+ import{t as e}from"./models-4WTk3EBD.js";import{n as t}from"./json-parse-ClXMvBdK.js";import{t as n}from"./sanitize-unicode-DmIE6hZJ.js";import{a as r,i,o as a,r as o,t as s}from"./constrained-sampling-BNmnoM-i.js";import{t as c}from"./transform-messages-DZg9zDcV.js";import{t as l}from"./hash-yQufAZII.js";function u(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function d(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function f(e,t){let r=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
+ `),i=t.filter(e=>e.type===`image`),a=r.length>0;if(i.length===0||!e.input.includes(`image`))return n(a?r:i.length>0?`(see attached image)`:`(no tool output)`);let o=[];a&&o.push({type:`input_text`,text:n(r)});for(let e of i)o.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return o}function p(e,t,r,i){let a=[],s=new Set,u=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},p=e=>{let t=`fc_${l(e)}`;return t.length>64?t.slice(0,64):t},h=c(t.messages,e,(t,n,i)=>{if(!r.has(e.provider)||!t.includes(`|`))return u(t);let[a,o]=t.split(`|`),s=u(a),c=i.provider!==e.provider||i.api!==e.api?p(o):u(o);return c.startsWith(`fc_`)||(c=u(`fc_${c}`)),`${s}|${c}`});if((i?.includeSystemPrompt??!0)&&t.systemPrompt){let r=e.compat,i=e.reasoning&&r?.supportsDeveloperRole!==!1?`developer`:`system`;a.push({role:i,content:n(t.systemPrompt)})}let g=0;for(let t of h){if(t.role===`user`)if(typeof t.content==`string`)a.push({role:`user`,content:[{type:`input_text`,text:n(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:n(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;a.push({role:`user`,content:e})}else if(t.role===`assistant`){let r=[],s=t,c=s.provider===e.provider&&s.api===e.api,u=c&&s.model===e.id,f=c&&s.model!==e.id,p=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);r.push(t)}}else if(e.type===`text`){let t=e,i=d(t.textSignature),a=p===0?`msg_pi_${g}`:`msg_pi_${g}_${p}`;p++;let o=i?.id;o?o.length>64&&(o=`msg_${l(o)}`):o=a,r.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:n(t.text),annotations:[]}],status:`completed`,id:o,phase:i?.phase})}else if(e.type===`toolCall`){let t=e,[a,s]=t.id.split(`|`),c=i?.grammarToolInputProperties?.get(t.name),l=s;(f&&l?.startsWith(`fc_`)||c===void 0&&!l?.startsWith(`fc_`))&&(l=void 0);let d=u||i?.deferredTools?.has(t.name)===!0;c===void 0?r.push({type:`function_call`,id:l,call_id:a,name:t.name,arguments:JSON.stringify(t.arguments),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}}):r.push({type:`custom_tool_call`,id:l,call_id:a,name:t.name,input:n(o(t.name,t.arguments,c)),...d&&t.namespace!==void 0?{namespace:t.namespace}:{}})}if(r.length===0)continue;a.push(...r)}else if(t.role===`toolResult`){let[n]=t.toolCallId.split(`|`),r=f(e,t.content);i?.grammarToolInputProperties?.has(t.toolName)?a.push({type:`custom_tool_call_output`,call_id:n,output:r}):a.push({type:`function_call_output`,call_id:n,output:r});let o=[];for(let e of t.addedToolNames??[]){let t=i?.deferredTools?.get(e);!t||s.has(e)||(s.add(e),o.push(t))}if(o.length>0&&i?.deferredToolsMode===`additional-tools`)a.push({type:`additional_tools`,role:`developer`,tools:m(o,i.toolOptions)});else if(o.length>0&&i?.deferredToolsMode===`tool-search`){let e=o.map(e=>e.name),n=`pi_tool_load_${l(`${t.toolCallId}:${e.join(`,`)}`)}`;a.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),a.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:m(o,{...i.toolOptions,deferLoading:!0})})}}g++}return a}function m(e,t){let n=t?.strict!==void 0&&t.strict,o=t?.supportsStrictMode??!0,s=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let c=r(e,s);if(c)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:c.format,definition:c.definition},...t?.deferLoading?{defer_loading:!0}:{}};let l=a(e,o)??n,u={type:`function`,name:e.name,description:e.description,parameters:i(e,l===!0),...t?.deferLoading?{defer_loading:!0}:{}};return o&&(u.strict=l),u})}function h(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function g(e,t,n){let r=e.customInput;if(!r)return;let i=s(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function _(n,r,i,a,o){let s=!1,c=new Map,l=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(r.stopReason=`stop`)},f=(e,t)=>{let n=c.get(e);return n?.type===t?n:void 0},p=(e,t)=>{t!==void 0&&i.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:t,partial:r})},m=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return c.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){d(t);let n={type:`text`,text:``};r.content.push(n);let a={type:`text`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`text_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},...t.namespace===void 0?{}:{namespace:t.namespace},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return c.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}if(t.type===`custom_tool_call`){let n=o?.grammarToolInputProperties?.get(t.name)??`input`,a=t.input||``,s={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{[n]:a},...t.namespace===void 0?{}:{namespace:t.namespace},customInput:{property:n,jsonBuffer:{input:``,started:!1,closed:!1}}};r.content.push(s);let l={type:`toolCall`,block:s,contentIndex:r.content.length-1};return c.set(e,l),i.push({type:`toolcall_start`,contentIndex:l.contentIndex,partial:r}),l}},_=(e,t)=>c.get(e)??m(e,t),y=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=l.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},b=t=>{if(s=!0,y(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(a,r.usage),o?.applyServiceTierPricing){let e=o.resolveServiceTier?o.resolveServiceTier(t?.service_tier,o.serviceTier):t?.service_tier??o.serviceTier;o.applyServiceTierPricing(r.usage,e)}let n=t?.status,i=t?.incomplete_details,c=typeof i?.reason==`string`?i.reason:void 0;r.rawStopReason=c?`${n}.${c}`:n;let l=v(n,c);r.stopReason=l.stopReason,r.errorMessage=l.errorMessage,r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of n)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)m(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
3
3
 
4
4
  `,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:`
5
5
 
6
- `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let t=f(e.output_index,`toolCall`);if(!t||t.block.partialJson===void 0)continue;t.block.partialJson+=e.delta,t.block.arguments=n(t.block.partialJson),p(t,e.delta)}else if(e.type===`response.function_call_arguments.done`){let t=f(e.output_index,`toolCall`);if(!t||t.block.partialJson===void 0)continue;let r=t.block.partialJson;if(t.block.partialJson=e.arguments,t.block.arguments=n(t.block.partialJson),e.arguments.startsWith(r)){let n=e.arguments.slice(r.length);n.length>0&&p(t,n)}}else if(e.type===`response.custom_tool_call_input.delta`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,h(t.block)+e.delta,!1))}else if(e.type===`response.custom_tool_call_input.done`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,e.input,!0))}else if(e.type===`response.output_item.done`){let t=e.item;d(t);let a=_(e.output_index,t);if(t.type===`reasoning`&&a?.type===`thinking`){let n=t.summary?.map(e=>e.text).join(`
6
+ `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let n=f(e.output_index,`toolCall`);if(!n||n.block.partialJson===void 0)continue;n.block.partialJson+=e.delta,n.block.arguments=t(n.block.partialJson),p(n,e.delta)}else if(e.type===`response.function_call_arguments.done`){let n=f(e.output_index,`toolCall`);if(!n||n.block.partialJson===void 0)continue;let r=n.block.partialJson;if(n.block.partialJson=e.arguments,n.block.arguments=t(n.block.partialJson),e.arguments.startsWith(r)){let t=e.arguments.slice(r.length);t.length>0&&p(n,t)}}else if(e.type===`response.custom_tool_call_input.delta`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,h(t.block)+e.delta,!1))}else if(e.type===`response.custom_tool_call_input.done`){let t=f(e.output_index,`toolCall`);if(!t||!t.block.customInput)continue;p(t,g(t.block,e.input,!0))}else if(e.type===`response.output_item.done`){let n=e.item;d(n);let a=_(e.output_index,n);if(n.type===`reasoning`&&a?.type===`thinking`){let t=n.summary?.map(e=>e.text).join(`
7
7
 
8
- `)||``,o=t.content?.map(e=>e.text).join(`
8
+ `)||``,o=n.content?.map(e=>e.text).join(`
9
9
 
10
- `)||``;a.block.thinking=n||o||a.block.thinking,a.block.thinkingSignature=JSON.stringify(t),l.set(t.id,a.block),i.push({type:`thinking_end`,contentIndex:a.contentIndex,content:a.block.thinking,partial:r}),c.delete(e.output_index)}else t.type===`message`&&a?.type===`text`?(a.block.text=t.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,a.block.textSignature=u(t.id,t.phase??void 0),i.push({type:`text_end`,contentIndex:a.contentIndex,content:a.block.text,partial:r}),c.delete(e.output_index)):t.type===`function_call`&&a?.type===`toolCall`&&a.block.partialJson!==void 0?(a.block.arguments=n(t.arguments||a.block.partialJson||`{}`),t.namespace!==void 0&&(a.block.namespace=t.namespace),delete a.block.partialJson,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index)):t.type===`custom_tool_call`&&a?.type===`toolCall`&&a.block.customInput&&(p(a,g(a.block,t.input??h(a.block),!0)),t.namespace!==void 0&&(a.block.namespace=t.namespace),delete a.block.customInput,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)b(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){s=!0,r.rawStopReason=e.response?.status;let t=e.response?.error,n=e.response?.incomplete_details,i=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(i)}if(!s)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function v(e,t){if(!e)return{stopReason:`stop`};switch(e){case`completed`:return{stopReason:`stop`};case`incomplete`:return t===`max_output_tokens`?{stopReason:`length`}:{stopReason:`error`,errorMessage:t?`Response incomplete: ${t}`:`Response incomplete without a provider reason`};case`failed`:case`cancelled`:return{stopReason:`error`};case`in_progress`:case`queued`:return{stopReason:`stop`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{m as n,_ as r,p as t};
10
+ `)||``;a.block.thinking=t||o||a.block.thinking,a.block.thinkingSignature=JSON.stringify(n),l.set(n.id,a.block),i.push({type:`thinking_end`,contentIndex:a.contentIndex,content:a.block.thinking,partial:r}),c.delete(e.output_index)}else n.type===`message`&&a?.type===`text`?(a.block.text=n.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,a.block.textSignature=u(n.id,n.phase??void 0),i.push({type:`text_end`,contentIndex:a.contentIndex,content:a.block.text,partial:r}),c.delete(e.output_index)):n.type===`function_call`&&a?.type===`toolCall`&&a.block.partialJson!==void 0?(a.block.arguments=t(n.arguments||a.block.partialJson||`{}`),n.namespace!==void 0&&(a.block.namespace=n.namespace),delete a.block.partialJson,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index)):n.type===`custom_tool_call`&&a?.type===`toolCall`&&a.block.customInput&&(p(a,g(a.block,n.input??h(a.block),!0)),n.namespace!==void 0&&(a.block.namespace=n.namespace),delete a.block.customInput,i.push({type:`toolcall_end`,contentIndex:a.contentIndex,toolCall:a.block,partial:r}),c.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)b(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){s=!0,r.rawStopReason=e.response?.status;let t=e.response?.error,n=e.response?.incomplete_details,i=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(i)}if(!s)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function v(e,t){if(!e)return{stopReason:`stop`};switch(e){case`completed`:return{stopReason:`stop`};case`incomplete`:return t===`max_output_tokens`?{stopReason:`length`}:{stopReason:`error`,errorMessage:t?`Response incomplete: ${t}`:`Response incomplete without a provider reason`};case`failed`:case`cancelled`:return{stopReason:`error`};case`in_progress`:case`queued`:return{stopReason:`stop`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{m as n,_ as r,p as t};
@@ -0,0 +1 @@
1
+ import{H as e,h as t}from"./account-store-l8BmmoRx.js";import{u as n}from"./claude-model-version-DoVrYsKi.js";import{r,s as i}from"./legacy-api-aliases-BnRqMAef.js";import"./provider-settings-DZxqnVAO.js";import{fetchModels as a,getCatalog as o}from"./openrouter-models-BhgPe74G.js";import{loginIntercepted as s}from"./openrouter-oauth-ZehYXklO.js";var c=`openrouter`,l=`https://openrouter.ai/api/v1`,u=`openai-completions`,d=`${c}-openai`,f={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function p(e){return{...e,baseUrl:l,api:u}}function m(e){return{...e??{},...f}}var h=(e,n,i={})=>r(p(e),n,{...i,apiKey:t(c)??i.apiKey,headers:m(i.headers)}),g=(e,n,r={})=>i(p(e),n,{...r,apiKey:t(c)??r.apiKey,headers:m(r.headers)}),_={id:c,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:o,refreshModels:async()=>{await a()},onOAuthLoginIntercepted:async(e,t,n)=>{await s(e,()=>void 0,n),await a().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:c,accessToken:``})}};function v(){n({api:d,stream:h,streamSimple:g})}export{_ as config,v as register};
@@ -0,0 +1 @@
1
+ import{H as e,h as t}from"./account-store-BLu0_ipL.js";import{u as n}from"./claude-model-version-Csn7RPVg.js";import{r,s as i}from"./legacy-api-aliases-oJPAvhVV.js";import"./provider-settings-DKXi1uSi.js";import{fetchModels as a,getCatalog as o}from"./openrouter-models-DYeJmDu6.js";import{loginIntercepted as s}from"./openrouter-oauth-CfwEmxEv.js";const c=`openrouter`,l=`${c}-openai`,u={"HTTP-Referer":`https://sliccy.ai`,"X-Title":`SLICC`};function d(e){return{...e,baseUrl:`https://openrouter.ai/api/v1`,api:`openai-completions`}}function f(e){return{...e??{},...u}}const p=(e,n,i={})=>r(d(e),n,{...i,apiKey:t(c)??i.apiKey,headers:f(i.headers)}),m=(e,n,r={})=>i(d(e),n,{...r,apiKey:t(c)??r.apiKey,headers:f(r.headers)}),h={id:c,name:`OpenRouter`,description:`Access OpenRouter models with one-click PKCE login. No pasted API key is required.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`anthropic/claude-sonnet-4.6`,oauthTokenDomains:[`openrouter.ai`,`*.openrouter.ai`],getModelIds:o,refreshModels:async()=>{await a()},onOAuthLoginIntercepted:async(e,t,n)=>{await s(e,()=>void 0,n),await a().catch(()=>void 0),t()},onOAuthLogout:async()=>{await e({providerId:c,accessToken:``})}};function g(){n({api:l,stream:p,streamSimple:m})}export{h as config,g as register};
@@ -1 +1 @@
1
- import{H as e}from"./account-store-u5knhoCx.js";import"./provider-settings-NcM2Npzg.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=t(),f=await n(d),p=await s(o(await c({authorizeUrl:a(r,f),redirectUriPattern:i,onCapture:`close`})),d);await e({providerId:`openrouter`,accessToken:p,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
1
+ import{H as e}from"./account-store-BLu0_ipL.js";import"./provider-settings-DKXi1uSi.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=t(),f=await n(d),p=await s(o(await c({authorizeUrl:a(r,f),redirectUriPattern:i,onCapture:`close`})),d);await e({providerId:`openrouter`,accessToken:p,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
@@ -1 +1 @@
1
- import{H as e}from"./account-store-D1f8dn0G.js";import"./provider-settings-DcYK3m1J.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";var r=`https://openrouter.ai/auth`,i=`https://openrouter.ai/api/v1/auth/keys`,a=`https://openrouter.ai/api/v1`,o=`http://127.0.0.1:3000/callback`,s=`http://127.0.0.1:3000/*`;function c(e,t){let n=new URL(r);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function l(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function u(e,t,n=fetch){let r=await n(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let a;try{a=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let o=a&&typeof a==`object`&&typeof a.key==`string`?a.key.trim():``;if(!o)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return o}async function d(r,i,d){let f=t(),p=await u(l(await r({authorizeUrl:c(o,await n(f)),redirectUriPattern:s,onCapture:`close`})),f);await e({providerId:`openrouter`,accessToken:p,tokenExpiresAt:2**53-1,baseUrl:a}),i()}export{o as OPENROUTER_CALLBACK_URL,s as OPENROUTER_REDIRECT_URI_PATTERN,c as buildAuthorizeUrl,n as deriveCodeChallenge,u as exchangeCodeForKey,t as generateCodeVerifier,d as loginIntercepted,l as parseCallbackCode};
1
+ import{H as e}from"./account-store-l8BmmoRx.js";import"./provider-settings-DZxqnVAO.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";var r=`https://openrouter.ai/auth`,i=`https://openrouter.ai/api/v1/auth/keys`,a=`https://openrouter.ai/api/v1`,o=`http://127.0.0.1:3000/callback`,s=`http://127.0.0.1:3000/*`;function c(e,t){let n=new URL(r);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function l(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function u(e,t,n=fetch){let r=await n(i,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let a;try{a=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let o=a&&typeof a==`object`&&typeof a.key==`string`?a.key.trim():``;if(!o)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return o}async function d(r,i,d){let f=t(),p=await u(l(await r({authorizeUrl:c(o,await n(f)),redirectUriPattern:s,onCapture:`close`})),f);await e({providerId:`openrouter`,accessToken:p,tokenExpiresAt:2**53-1,baseUrl:a}),i()}export{o as OPENROUTER_CALLBACK_URL,s as OPENROUTER_REDIRECT_URI_PATTERN,c as buildAuthorizeUrl,n as deriveCodeChallenge,u as exchangeCodeForKey,t as generateCodeVerifier,d as loginIntercepted,l as parseCallbackCode};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-BgioAcOd.js";var n=`sudo-request`,r=`/api/sudo-approve`,i=e(`sudo-panel`),a=typeof globalThis.confirm==`function`?globalThis.confirm.bind(globalThis):void 0,o=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function s(e,t={}){let n=t.confirm??a,r=t.prompt??o;if(!n)return i.warn(`no native confirm available in this realm — denying`),{decision:`deny`};if(!n(`Approve ${e.kind}:\n\n${e.detail}\n\nOK = allow · Cancel = deny`))return{decision:`deny`};let s=e.suggestedPattern?.trim()||e.detail.trim();if(!n(`Always allow actions matching:\n\n${s}\n\nOK = always · Cancel = just this once`))return{decision:`allow`};let c=r?.(`Edit the "Always" allow pattern:`,s);return{decision:`always`,pattern:c&&c.trim().length>0?c.trim():s}}function c(e={}){let t=globalThis.chrome?.runtime?.onMessage;return!t||typeof t.addListener!=`function`?!1:(t.addListener((t,n,r)=>{if(!l(t))return;let a=t.payload.request;try{r({ok:!0,decision:s(a,e)})}catch(e){i.warn(`panel responder threw — denying`,{error:e instanceof Error?e.message:String(e)}),r({ok:!1,decision:{decision:`deny`},error:`panel responder error`})}return!1}),!0)}function l(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.source!==`offscreen`)return!1;let n=t.payload;if(!n||n.type!==`sudo-request`)return!1;let r=n.request;return!!r&&typeof r.kind==`string`&&typeof r.detail==`string`}var u=e(`sudo:page`),d=null;function f(e){d=e}async function p(e){let t=d;if(!t)return null;let n=!1;try{n=t.shouldDelegate()}catch(e){u.warn(`tray delegate probe threw — treating as not delegable`,{error:e instanceof Error?e.message:String(e)})}if(!n)return null;try{return{decision:await t.requestApproval(e),handled:!0}}catch(e){return u.warn(`tray-delegated sudo approval threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function m(e,t){try{return{decision:t(e),handled:!0}}catch(e){return u.warn(`in-page sudo prompt threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function h(e,n=`resolve`,r={}){let i=await p(e);if(i)return i;let a=r.hasLocalNodeServer??t;return n===`tray-first`&&a()?{decision:{decision:`deny`},handled:!1}:m(e,r.nativeResolve??s)}export{n as i,s as n,r,h as resolveSudoApprovalInPage,f as setSudoTrayDelegate,c as t};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-DiK91BlA.js";var n=`sudo-request`,r=`/api/sudo-approve`,i=e(`sudo-panel`),a=typeof globalThis.confirm==`function`?globalThis.confirm.bind(globalThis):void 0,o=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function s(e,t={}){let n=t.confirm??a,r=t.prompt??o;if(!n)return i.warn(`no native confirm available in this realm — denying`),{decision:`deny`};if(!n(`Approve ${e.kind}:\n\n${e.detail}\n\nOK = allow · Cancel = deny`))return{decision:`deny`};let s=e.suggestedPattern?.trim()||e.detail.trim();if(!n(`Always allow actions matching:\n\n${s}\n\nOK = always · Cancel = just this once`))return{decision:`allow`};let c=r?.(`Edit the "Always" allow pattern:`,s);return{decision:`always`,pattern:c&&c.trim().length>0?c.trim():s}}function c(e={}){let t=globalThis.chrome?.runtime?.onMessage;return!t||typeof t.addListener!=`function`?!1:(t.addListener((t,n,r)=>{if(!l(t))return;let a=t.payload.request;try{r({ok:!0,decision:s(a,e)})}catch(e){i.warn(`panel responder threw — denying`,{error:e instanceof Error?e.message:String(e)}),r({ok:!1,decision:{decision:`deny`},error:`panel responder error`})}return!1}),!0)}function l(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.source!==`offscreen`)return!1;let n=t.payload;if(!n||n.type!==`sudo-request`)return!1;let r=n.request;return!!r&&typeof r.kind==`string`&&typeof r.detail==`string`}var u=e(`sudo:page`),d=null;function f(e){d=e}async function p(e){let t=d;if(!t)return null;let n=!1;try{n=t.shouldDelegate()}catch(e){u.warn(`tray delegate probe threw — treating as not delegable`,{error:e instanceof Error?e.message:String(e)})}if(!n)return null;try{return{decision:await t.requestApproval(e),handled:!0}}catch(e){return u.warn(`tray-delegated sudo approval threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function m(e,t){try{return{decision:t(e),handled:!0}}catch(e){return u.warn(`in-page sudo prompt threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function h(e,n=`resolve`,r={}){let i=await p(e);if(i)return i;let a=r.hasLocalNodeServer??t;return n===`tray-first`&&a()?{decision:{decision:`deny`},handled:!1}:m(e,r.nativeResolve??s)}export{n as i,s as n,r,h as resolveSudoApprovalInPage,f as setSudoTrayDelegate,c as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-DCQ44RyR.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-BhmNRlRv.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-BGeNrvQ4.js","assets/base64-DpPqYZJF.js","assets/src-CAWTvdAa.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-GRCyib6X.js","assets/mount-bridge-client-DZE6sHdr.js","assets/types-idfTVsM8.js","assets/page-approval-service-BsXoPdFJ.js","assets/float-topology-DiK91BlA.js","assets/runtime-env-E-i2SW1s.js","assets/speak-BSK3Souh.js","assets/runtime-env-CgsZ7LTp.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-DPjdc2EQ.js","assets/shared-CddfUR6k.js","assets/mime-types-ugOWOUZ9.js","assets/hear-BqNAK8-P.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-DpDs0sDL.js","assets/providers-D8GPTe3s.js","assets/esptool-operations-CbgLIJzi.js","assets/esp8266-BN3fFVWu.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup-Bc3ca2Vl.js","assets/logger-BoSvu4mW.js","assets/picker-popup-Bwcnocm6.js","assets/theme-engine-By4GU_Wc.js"])))=>i.map(i=>d[i]);
2
+ import{G as e,p as t}from"./account-store-l8BmmoRx.js";import{t as n}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-BGeNrvQ4.js";import{i as r,t as i}from"./api-endpoint-GRCyib6X.js";import"./provider-settings-DZxqnVAO.js";import{n as a,r as o}from"./hid-device-registry-B2R-0rNt.js";import{a as s,i as c}from"./serial-port-registry-B3LG5UIy.js";import{A as l,C as u,D as d,E as ee,O as te,S as ne,T as re,_ as ie,a as ae,b as oe,c as se,d as ce,f as le,g as ue,h as f,i as p,j as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as O}from"./usb-operations-Cgk-otz-.js";import{i as k,r as A}from"./usb-device-registry-CRsCisej.js";function j(e={}){let t=new Map;return{...de(),...I(e),...L(),...R(e),...z(),...B(e,t),...V(),...H(e),...fe(e),...pe(e),...F(),...P(),...M(),...N(),...xe(),...Se()}}function M(){return{"secrets-bridge":async({type:e,payload:t})=>{let{callSecretsBridge:r}=await n(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-DCQ44RyR.js`).then(e=>e.n);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]));return{response:await r(e,t)}}}}function N(){return{"mount-sign-and-forward":async({type:e,envelope:t})=>{let{callMountBridge:r}=await n(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-DZE6sHdr.js`).then(e=>e.n);return{callMountBridge:e}},__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10,12]));return{response:await r(e,t)}}}}function P(){return{"sudo-request":async({request:e,mode:t})=>{let{resolveSudoApprovalInPage:r}=await n(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-BsXoPdFJ.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([13,4,14,5,1,3,6,7,8,9,10,15]));return r(e,t??`resolve`)}}}function F(){return{"proxied-fetch":async({url:e,method:t,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await n(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-BGeNrvQ4.js`).then(e=>e.n);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9,10])),{head:o,body:s}=await a(e,{method:t,headers:r,body:i});return{head:o,body:s}}}}function de(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await ve(e,t),r=await n.arrayBuffer(),i=await ye(n);return{bytes:r,width:i.width,height:i.height,mimeType:e}},"speak-text":async({text:e,lang:t,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await n(async()=>{let{speak:e}=await import(`./speak-BSK3Souh.js`);return{speak:e}},__vite__mapDeps([16,3,4,8,17,15,7,18,19,5,1,6,9,10,20,21]));return await s({text:e,lang:t,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:e}=await n(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-BSK3Souh.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([16,3,4,8,17,15,7,18,19,5,1,6,9,10,20,21])),t=e().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(t.length>0)return{voices:t};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...t,...r.map(Q)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...t,...i.map(Q)]}},"speak-status":async()=>{let{kokoroStatus:e}=await n(async()=>{let{kokoroStatus:e}=await import(`./speak-BSK3Souh.js`);return{kokoroStatus:e}},__vite__mapDeps([16,3,4,8,17,15,7,18,19,5,1,6,9,10,20,21]));return e()},"speak-warmup":async()=>{let{kokoroWarmup:e}=await n(async()=>{let{kokoroWarmup:e}=await import(`./speak-BSK3Souh.js`);return{kokoroWarmup:e}},__vite__mapDeps([16,3,4,8,17,15,7,18,19,5,1,6,9,10,20,21]));return e()},"synthesize-to-wav":async({text:e,lang:t,voice:r,rate:i})=>{let{synthesizeToWav:a}=await n(async()=>{let{synthesizeToWav:e}=await import(`./speak-BSK3Souh.js`);return{synthesizeToWav:e}},__vite__mapDeps([16,3,4,8,17,15,7,18,19,5,1,6,9,10,20,21])),o=await a({text:e,...t===void 0?{}:{lang:t},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function I(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await $(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await be(r),await $(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await X(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await he(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function L(){return{"hear-capture":async e=>{let{hearCapture:t}=await n(async()=>{let{hearCapture:e}=await import(`./hear-BqNAK8-P.js`);return{hearCapture:e}},__vite__mapDeps([22,4,23,24,3,19,5,1,6,7,8,9,10,17,15,20,21]));return await t(e??{})},"hear-transcribe":async({bytes:e,lang:t})=>{let{hearTranscribe:r}=await n(async()=>{let{hearTranscribe:e}=await import(`./hear-BqNAK8-P.js`);return{hearTranscribe:e}},__vite__mapDeps([22,4,23,24,3,19,5,1,6,7,8,9,10,17,15,20,21]));return await r(e,t)},"hear-status":async()=>{let{hearStatus:e}=await n(async()=>{let{hearStatus:e}=await import(`./hear-BqNAK8-P.js`);return{hearStatus:e}},__vite__mapDeps([22,4,23,24,3,19,5,1,6,7,8,9,10,17,15,20,21]));return e()},"hear-warmup":async()=>{let{hearWarmup:e}=await n(async()=>{let{hearWarmup:e}=await import(`./hear-BqNAK8-P.js`);return{hearWarmup:e}},__vite__mapDeps([22,4,23,24,3,19,5,1,6,7,8,9,10,17,15,20,21]));return e()}}}function R(r){return{"tray-reset":async()=>{if(!r.resetTray)throw Error(`host reset: no active tray session to reset`);return await r.resetTray()},"tray-open-preview":async e=>{if(!r.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await r.mintPreview(e)},"tray-revoke-preview":async e=>{if(!r.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await r.revokePreview(e)},"tray-list-previews":async()=>{if(!r.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await r.listPreviews()},"tray-preview-logs":async({previewToken:e})=>{if(!r.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return r.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!r.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return r.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!r.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await r.leaveTray({workerBaseUrl:e,requestId:t})},"tray-join":async({joinUrl:e,requestId:t})=>{if(!r.joinTray)throw Error(`host join: tray join is not available in this environment`);return await r.joinTray({joinUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!r.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:r.emitCherrySliccEvent(e,t,n)}},"tray-exec":async e=>{if(!r.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await r.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(r.signalRemoteExec?.({execToken:e}),{ok:!0}),"oauth-extras-set":({providerId:n,domains:r})=>(e(n,r),{storeAfter:t()}),"silent-renew":async({providerId:e})=>{let{getRegisteredProviderConfig:t}=await n(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-D8GPTe3s.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([25,1,3])),r=t(e);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}function z(){return{"usb-list":async()=>({devices:await y(U(),W())}),"usb-request":async({filters:e})=>({device:await g(U(),W(),e)}),"usb-device-info":({handle:e})=>({device:ae(U(),e)}),"usb-open":async({handle:e})=>(await S(U(),e),{done:!0}),"usb-close":async({handle:e})=>(await v(U(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await ce(U(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await C(U(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await se(U(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>x(U(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>p(U(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>le(U(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>b(U(),e,t,n),"usb-reset":async({handle:e})=>(await w(U(),e),{done:!0})}}function B(e,t){return{"hid-list":async()=>({devices:await ue(G(),K())}),"hid-request":async({filters:e})=>({devices:await O(G(),K(),e)}),"hid-device-info":({handle:e})=>({device:f(G(),e)}),"hid-open":async({handle:e})=>(await ie(G(),e),{done:!0}),"hid-close":async({handle:e})=>(await _(G(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(G(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await oe(G(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>T(G(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await ne(G(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function V(){return{"serial-list":async()=>({devices:await ee(q(),J())}),"serial-request":async({filters:e})=>({device:await h(q(),J(),e)}),"serial-device-info":({handle:e})=>({device:E(q(),e)}),"serial-open":async({handle:e,options:t})=>(await d(q(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(q(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(q(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await m(q(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(q(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(q(),e,t),{done:!0})}}function H(e){return{"esptool-chip-info":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolChipInfo(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-read-mac":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolReadMac(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-erase-flash":async({handle:t,baudRate:r})=>(await(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolEraseFlash(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-flash":async({handle:t,baudRate:r,eraseAll:i,segments:a})=>(await(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolFlash(q(),t,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-read-flash":async({handle:t,baudRate:r,address:i,size:a})=>{let o=await(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolReadFlash(q(),t,r,i,a,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:t,baudRate:r,address:i})=>(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolReadReg(q(),t,r,i,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-flash-id":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolFlashId(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-erase-region":async({handle:t,baudRate:r,address:i,size:a})=>(await(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolEraseRegion(q(),t,r,i,a,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-run":async({handle:t,baudRate:r})=>(await(await n(()=>import(`./esptool-operations-CbgLIJzi.js`),__vite__mapDeps([26,1,3,27,28]))).esptoolRun(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0})}}function fe(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function pe(e){return{"permission-request":async t=>{let r=e.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:t.kinds,description:t.description,heading:t.heading,grantLabel:t.grantLabel,cancelLabel:t.cancelLabel});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let e of i.grants)switch(e.kind){case`usb`:{let t=U().register(e.device);a.push({kind:`usb`,handle:t});break}case`hid`:{let t=G().register(e.device);a.push({kind:`hid`,handle:t});break}case`serial`:{let t=q().register(e.port);a.push({kind:`serial`,handle:t});break}case`filesystem`:{let{storePendingHandle:t}=await n(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Bc3ca2Vl.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([29,1,4,30,31,8,17,15,7])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await t(r,e.handle),a.push({kind:`filesystem`,idbKey:r,dirName:e.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let t of e.stream.getTracks())t.stop();a.push({kind:e.kind,ok:!0})}return{grants:a}}}}function U(){return k()}function W(){let e=A();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function G(){return o()}function K(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function q(){return s()}function J(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var me=1500;async function he(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await ge({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??me;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function ge(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}async function X(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await _e(n,e);return t===void 0?null:Z(t)}return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function Z(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function _e(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}function Q(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function ve(e,t){if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`screen capture is not supported in this browser`);let n=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let r=document.createElement(`video`);r.srcObject=n,r.muted=!0,r.playsInline=!0,await new Promise((e,t)=>{r.onloadedmetadata=()=>r.play().then(()=>e()).catch(t),r.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100));let i=r.videoWidth,a=r.videoHeight,o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s)throw Error(`Failed to get canvas context`);return s.drawImage(r,0,0,i,a),await new Promise((n,r)=>{o.toBlob(e=>e?n(e):r(Error(`Failed to create image blob`)),e,t)})}finally{n.getTracks().forEach(e=>{e.stop()})}}async function ye(e){let t=URL.createObjectURL(e);try{let e=new Image;return await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to decode capture`)),e.src=t}),{width:e.naturalWidth,height:e.naturalHeight}}finally{URL.revokeObjectURL(t)}}async function be(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function $(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function xe(){return{"theme-apply":async({themeJson:e,action:t})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await n(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-By4GU_Wc.js`).then(e=>e.p);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([32,1,4]));if(t===`reset`)return o(),s(),{applied:null};if(e){let t=r(e);return i(t),a(t.id),s(),{applied:t.id}}return{applied:null}}}}function Se(){return{"layout-apply":async e=>{let{getLayoutApplier:t}=await n(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=t();return r?await r(e)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}export{j as createStandalonePanelRpcHandlers};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import"./virtual-device-paths-9EXC9iPp.js";import{r as t}from"./icons-ZLR7gmJ4.js";import{a as n}from"./src-DsDPrXOS.js";import{i as r,n as i,r as a,t as o}from"./panel-registry-CJdOibpf.js";import{setLayoutApplier as s}from"./layout-apply-registry-Cw730jao.js";import{c,h as l,l as u,m as d}from"./layout-schema-m9_VAwOw.js";import{r as f}from"./trusted-layer-ghPA1ENf.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function _(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function ee(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function v(e){ee(document);let n=document.createElement(`div`);n.className=`slicc-addpanel`;let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__btn`,r.title=`Panels and layouts`,r.setAttribute(`aria-label`,`Panels and layouts`);let a=new DOMParser().parseFromString(t(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;r.appendChild(a);let s=document.createElement(`div`);s.className=`slicc-addpanel__menu`,s.setAttribute(`role`,`menu`);let c=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},l=n=>{let r=c(n,!1,()=>e.onLoadLayout(n)),i=document.createElement(`button`);return i.type=`button`,i.className=`slicc-addpanel__del`,i.title=`Delete "${n}"`,i.setAttribute(`aria-label`,`Delete layout ${n}`),i.appendChild(new DOMParser().parseFromString(t(`trash-2`,{size:11}),`image/svg+xml`).documentElement),i.addEventListener(`click`,t=>{t.stopPropagation(),e.onDeleteLayout(n),m()}),r.appendChild(i),r};function u(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=_(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let d=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},i=o();for(let e of i)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let o=r[i];if(o?.length){n.push(d(a));for(let r of o){let i=t.has(r.meta.id);n.push(c(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,d(`Layouts`));for(let e of t)n.push(l(e));for(let t of r)n.push(c(t,!1,()=>e.onLoadLayout(t)));n.push(c(`Save layout as…`,!1,u))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}s.replaceChildren(...n)}function m(){s.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{n.contains(e.target)||m()};return r.addEventListener(`click`,()=>{if(s.hasAttribute(`open`)){m();return}f().then(()=>{s.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),i.addEventListener(`panel-registry-change`,()=>{s.hasAttribute(`open`)&&f()}),n.append(r,s),n}var y={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},b={[y.chat]:{id:y.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[y.sessionsRail]:{id:y.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[y.dockRail]:{id:y.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[y.scoopSwitcher]:{id:y.scoopSwitcher,title:`Scoops`,icon:`users`},[y.floatbar]:{id:y.floatbar,title:`Runtime`,icon:`activity`},[y.files]:{id:y.files,title:`Files`,icon:`folder`,minWidth:220},[y.term]:{id:y.term,title:`Terminal`,icon:`square-terminal`},[y.memory]:{id:y.memory,title:`Memory`,icon:`brain`},[y.monitor]:{id:y.monitor,title:`Monitor`,icon:`activity`},[y.browser]:{id:y.browser,title:`Browser`,icon:`globe`}};function x(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=b[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function S(){for(let e of Object.values(b))a({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function C(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function te(){return{when:{maxWidth:700},docks:[],zones:{center:[y.chat]},floating:[]}}function w(){return[{edge:`top`,size:`36px`,panels:[y.scoopSwitcher,y.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[y.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[y.dockRail],locked:!0}]}var T={version:1,id:`default`,title:`Default`,base:{docks:w(),zones:{center:[y.chat]}},variants:[te()]},E={default:T};function D(e){return E[e]??null}function O(){return Object.keys(E)}e(`sudo:sudoers`);var k=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
1
+ import{t as e}from"./logger-DDBAeTLF.js";import"./virtual-device-paths-9EXC9iPp.js";import{r as t}from"./icons-ZLR7gmJ4.js";import{a as n}from"./src-DXdqCrdV.js";import{i as r,n as i,r as a,t as o}from"./panel-registry-CJdOibpf.js";import{setLayoutApplier as s}from"./layout-apply-registry-Cw730jao.js";import{c,h as l,l as u,m as d}from"./layout-schema-m9_VAwOw.js";import{r as f}from"./trusted-layer-ghPA1ENf.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function _(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function ee(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function v(e){ee(document);let n=document.createElement(`div`);n.className=`slicc-addpanel`;let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__btn`,r.title=`Panels and layouts`,r.setAttribute(`aria-label`,`Panels and layouts`);let a=new DOMParser().parseFromString(t(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;r.appendChild(a);let s=document.createElement(`div`);s.className=`slicc-addpanel__menu`,s.setAttribute(`role`,`menu`);let c=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},l=n=>{let r=c(n,!1,()=>e.onLoadLayout(n)),i=document.createElement(`button`);return i.type=`button`,i.className=`slicc-addpanel__del`,i.title=`Delete "${n}"`,i.setAttribute(`aria-label`,`Delete layout ${n}`),i.appendChild(new DOMParser().parseFromString(t(`trash-2`,{size:11}),`image/svg+xml`).documentElement),i.addEventListener(`click`,t=>{t.stopPropagation(),e.onDeleteLayout(n),m()}),r.appendChild(i),r};function u(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=_(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let d=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},i=o();for(let e of i)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let o=r[i];if(o?.length){n.push(d(a));for(let r of o){let i=t.has(r.meta.id);n.push(c(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,d(`Layouts`));for(let e of t)n.push(l(e));for(let t of r)n.push(c(t,!1,()=>e.onLoadLayout(t)));n.push(c(`Save layout as…`,!1,u))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}s.replaceChildren(...n)}function m(){s.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{n.contains(e.target)||m()};return r.addEventListener(`click`,()=>{if(s.hasAttribute(`open`)){m();return}f().then(()=>{s.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),i.addEventListener(`panel-registry-change`,()=>{s.hasAttribute(`open`)&&f()}),n.append(r,s),n}var y={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},b={[y.chat]:{id:y.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[y.sessionsRail]:{id:y.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[y.dockRail]:{id:y.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[y.scoopSwitcher]:{id:y.scoopSwitcher,title:`Scoops`,icon:`users`},[y.floatbar]:{id:y.floatbar,title:`Runtime`,icon:`activity`},[y.files]:{id:y.files,title:`Files`,icon:`folder`,minWidth:220},[y.term]:{id:y.term,title:`Terminal`,icon:`square-terminal`},[y.memory]:{id:y.memory,title:`Memory`,icon:`brain`},[y.monitor]:{id:y.monitor,title:`Monitor`,icon:`activity`},[y.browser]:{id:y.browser,title:`Browser`,icon:`globe`}};function x(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=b[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function S(){for(let e of Object.values(b))a({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function C(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function te(){return{when:{maxWidth:700},docks:[],zones:{center:[y.chat]},floating:[]}}function w(){return[{edge:`top`,size:`36px`,panels:[y.scoopSwitcher,y.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[y.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[y.dockRail],locked:!0}]}var T={version:1,id:`default`,title:`Default`,base:{docks:w(),zones:{center:[y.chat]}},variants:[te()]},E={default:T};function D(e){return E[e]??null}function O(){return Object.keys(E)}e(`sudo:sudoers`);var k=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
2
2
  `);var A=e(`layout-store`),j=`/workspace/layouts`,M=[j,k];function N(e,t){return`${t?.protected?k:j}/${e}.json`}async function P(e,t){try{if(!await e.exists(t))return null;let n=await e.readFile(t),r=u(JSON.parse(typeof n==`string`?n:String(n)));return`error`in r?(A.warn(`invalid layout document — ignoring`,{path:t,error:r.error}),null):r}catch(e){return A.warn(`failed to read layout`,{path:t,error:e instanceof Error?e.message:e}),null}}async function ne(e,t,n){let r=n?.name??t.id,i=n?.protected?k:j,a=`${i}/${r}.json`;return await e.exists(i)||await e.mkdir(i,{recursive:!0}),await e.writeFile(a,`${JSON.stringify(t,null,2)}\n`),A.info(`layout saved`,{path:a}),a}async function F(e,t,n){let r=N(t,n);return await e.exists(r)?(await e.rm(r),!0):!1}async function I(e){let t=[],n=new Set;for(let r of M){let i;try{if(!await e.exists(r))continue;i=(await e.readDir(r)).filter(e=>e.type===`file`).map(e=>e.name)}catch(e){A.warn(`failed to list layout dir`,{dir:r,error:e});continue}for(let a of i){if(!a.endsWith(`.json`))continue;let i=a.slice(0,-5);if(n.has(i))continue;let o=`${r}/${a}`,s=await P(e,o);s&&(n.add(i),t.push({name:i,path:o,doc:s,protected:r===k}))}}return t}async function L(e,t){for(let n of M){let r=`${n}/${t}.json`,i=await P(e,r);if(i)return{name:t,path:r,doc:i,protected:n===k}}return null}function R(e,t,r){let i=e.getLayout(),a=n(i,e.environment());if(r){let e=a.zones??l(a.center??null);d(e,t)?a.zones||(a.zones=e,a.center=null):(a.zones=c(e,t,`right`),a.center=null)}i.panels={...i.panels,[t]:{...i.panels?.[t],visible:r}},e.setLayout(i)}var z=e(`apply-layout-doc`);function B(e){return{applied:!1,error:`layout ${e} needs a filesystem (unavailable here)`}}function V(e){return[`load`,`save`,`delete`,`docs`,`panels`,`show`,`hide`].includes(e.kind)}async function H(e,t){let n=e.fs?await L(e.fs,t):null;if(n)return e.layout.setLayout(n.doc),{applied:!0,output:`loaded layout "${t}" from ${n.path}`};let r=D(t);return r?(e.layout.setLayout(r),{applied:!0,output:`loaded preset "${t}"`}):{applied:!1,error:`unknown layout "${t}" — try: ${O().join(`, `)}`}}async function U(e,t,n){if(!e.fs)return B(`save`);let r={...e.layout.getLayout(),id:t};try{return{applied:!0,output:`saved layout to ${await ne(e.fs,r,{name:t,protected:n})}`}}catch(e){let r=e instanceof Error?e.message:String(e);return z.warn(`layout save failed`,{name:t,protected:n,error:r}),{applied:!1,error:`could not save "${t}": ${r}`}}}async function W(e){let t=e.fs?await I(e.fs):[],n=[];if(t.length>0){n.push(`saved layouts:`);for(let e of t)n.push(` ${e.name}${e.protected?` (protected)`:``} ${e.path}`)}n.push(`presets: ${O().join(`, `)}`);let r=e.layout.getLayout();return n.push(`current: ${r.id}`),{applied:!0,output:n.join(`
3
3
  `)}}function G(e){let t=new Set(e.layout.getPlacedPanelIds()),n={builtin:[],sprinkle:[],agent:[]};for(let e of o()){let r=t.has(e.meta.id)?`*`:` `;(n[e.origin]??=[]).push(` ${r} ${e.meta.id} ${e.meta.title}`)}let r=[];for(let[e,t]of Object.entries(n))t.length!==0&&(r.push(`${e}:`),r.push(...t));return r.push(`(* = currently placed)`),{applied:!0,output:r.join(`
4
4
  `)}}function K(e,t,n){return R(e.layout,t,n),{applied:!0}}async function q(e,t){switch(t.kind){case`load`:return H(e,t.name);case`save`:return U(e,t.name,t.protected);case`delete`:return e.fs?await F(e.fs,t.name)||await F(e.fs,t.name,{protected:!0})?{applied:!0,output:`deleted layout "${t.name}"`}:{applied:!1,error:`no saved layout named "${t.name}"`}:B(`delete`);case`docs`:return W(e);case`panels`:return G(e);case`show`:return K(e,t.panelId,!0);case`hide`:return K(e,t.panelId,!1)}}var J=e(`panelize-shell`),Y=`slicc-panelize-style`,X=[`.wcui-avatar-strip{position:absolute;top:0;right:0;height:var(--barh,36px);`,`display:flex;align-items:center;gap:12px;padding:0 9px 0 14px;box-sizing:border-box;`,`pointer-events:auto;z-index:1;}`,`.wcui-frame slicc-layout{position:relative;z-index:1;}`,`slicc-layout .slicc-layout__dock--left,slicc-layout .slicc-layout__dock--right{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--top,slicc-layout .slicc-layout__dock--bottom{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--left{flex:0 0 auto!important;width:auto!important;}`,`slicc-layout .slicc-layout__dock--right{flex:0 0 auto!important;width:auto!important;}`,`slicc-panel[panel-id="sessions-rail"],slicc-panel[panel-id="dock-rail"]{`,`flex:0 0 auto;height:100%;align-self:stretch;overflow:hidden;}`,`slicc-panel[panel-id="dock-rail"]{width:48px;}`,`slicc-panel[panel-id="sessions-rail"]{width:auto;}`,`slicc-panel[panel-id="sessions-rail"]>*,slicc-panel[panel-id="dock-rail"]>*{`,`height:100%;flex:1 1 auto;min-height:0;}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{`,`height:var(--barh,36px);min-height:var(--barh,36px);max-height:var(--barh,36px);}`,`slicc-panel[panel-id="chat"] slicc-chatpane{flex:1 1 0;width:100%;min-height:0;}`,`slicc-panel[panel-id="chat"] slicc-chat-thread{flex:1 1 0;min-height:0;overflow-y:auto;}`,`slicc-panel[panel-id="chat"] slicc-composer{flex:0 0 auto;}`,`slicc-panel[panel-id="scoop-switcher"]{flex:0 0 auto;justify-content:center;padding-left:14px;}`,`slicc-panel[panel-id="floatbar"]{flex:1 1 auto;align-items:center;justify-content:flex-end;`,`padding-right:var(--avatar-strip-w, 96px);}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{flex-direction:row;}`].join(``);function re(e){if(e.getElementById(Y))return;let t=e.createElement(`style`);t.id=Y,t.textContent=X,(e.head??e.documentElement).appendChild(t)}function Z(e){e.setAttribute(`active`,``),e.style.display=`flex`,e.style.flexDirection=`column`,e.style.position=`relative`,e.style.inset=`auto`,e.style.flex=`1 1 auto`,e.style.minHeight=`0`}var ie=new Set([y.files,y.term,y.memory,y.monitor,y.browser]);function ae(e,t,n,r){let i=(e,i)=>{let a=e.detail?.id;!a||!ie.has(a)||n.has(a)||(e.stopImmediatePropagation(),R(t,a,i),i?r?.onToolPanelActivate?.(a):r?.onToolPanelDeactivate?.(a))};e.addEventListener(`slicc-dock-select`,e=>i(e,!0),!0),e.addEventListener(`slicc-dock-collapse`,e=>i(e,!1),!0)}function oe(e,t){return{hostSprinkleSurface:(n,r)=>{let i=x(n,r);Z(r),t.set(n,i),e.appendChild(i),a({meta:{id:n,title:C(n)??n},source:{kind:`element`,tag:`slicc-panel`},origin:`sprinkle`}),R(e,n,!0),J.info(`sprinkle panel hosted`,{surfaceId:n})},removeSprinkleSurface:n=>{t.get(n)?.remove(),t.delete(n),r(n);let i=e.getLayout();i.panels={...i.panels,[n]:{visible:!1}},e.setLayout(i)}}}var Q=`slicc-panel-layout:default`;function se(e,t){e.addEventListener(`slicc-layout-change`,t=>{let n=t.detail?.reason;if(n===`rearrange`||n===`resize`)try{localStorage.setItem(Q,JSON.stringify(e.getLayout()))}catch{}});let n=null;try{let e=localStorage.getItem(Q);if(e){let t=u(JSON.parse(e));`error`in t?J.warn(`stored layout rejected — using the default`,{error:t.error}):n=t}}catch(e){J.warn(`stored layout unreadable — using the default`,e)}e.setLayout(n??t)}var $=null;function ce(){return $}function le(e,t=T,n,r){if(e.frame.dataset.sliccPanelized===`1`)return J.warn(`panelizeShell called twice — ignoring the second call`),null;re(document),S();let i=n,a=document.createElement(`slicc-layout`),o=new Map,c=(e,t)=>{if(!t)return;let n=x(e,t);o.set(e,n),a.appendChild(n)};e.freezer.setAttribute(`docked`,``),e.frame.querySelector(`.wcui-appcol`)?.style.setProperty(`--rail-w`,`0px`),c(y.scoopSwitcher,e.switcher),c(y.floatbar,e.floatbar),c(y.sessionsRail,e.freezer),c(y.dockRail,e.dock),c(y.chat,e.chatPane);for(let t of[y.files,y.term,y.memory,y.monitor,y.browser]){let n=e.dockTree.querySelector(`slicc-surface[surface-id="${t}"]`);n instanceof HTMLElement&&(Z(n),c(t,n))}let l=document.createElement(`div`);l.className=`wcui-avatar-strip`,l.appendChild(v({layout:a,onToggle:(e,t)=>{q({layout:a,fs:i},{kind:t?`show`:`hide`,panelId:e})},onLoadLayout:e=>{q({layout:a,fs:i},{kind:`load`,name:e})},onSaveLayout:e=>{q({layout:a,fs:i},{kind:`save`,name:e,protected:!1}).then(t=>{t.error?J.warn(`layout save failed`,{name:e,error:t.error}):J.info(`layout saved`,{name:e,output:t.output})})},onDeleteLayout:e=>{q({layout:a,fs:i},{kind:`delete`,name:e})},listLayoutNames:async()=>({saved:i?(await I(i)).map(e=>e.name):[],presets:O()})})),l.appendChild(e.avatarMenu),f(l,document),e.shell.replaceWith(a),e.frame.querySelector(`slicc-nav`)?.remove(),se(a,t),ae(e.dock,a,e.overlaySurfaces,r),s(e=>V(e)?q({layout:a,fs:i},e):{applied:!1,error:`"${e.kind}" targets the old dock-tree; with panels use: load, save, show, hide, docs, panels`}),e.frame.dataset.sliccPanelized=`1`,J.info(`shell panelized`,{panels:o.size,layout:t.id});let u={layout:a,avatarStrip:l,panels:o,attachFs:e=>{i=e,J.info(`layout store attached`)},...oe(a,o)};return $=u,u}export{Q as PANEL_LAYOUT_STORAGE_KEY,ce as getPanelizedShell,le as panelizeShell};