sliccy 6.217.0 → 6.218.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 (194) hide show
  1. package/README.md +2 -2
  2. package/dist/node-server/chrome-launch.d.ts +8 -2
  3. package/dist/node-server/chrome-launch.js +35 -27
  4. package/dist/ui/.vite/manifest.json +207 -200
  5. package/dist/ui/assets/{account-store-DEEMsVyJ.js → account-store-DYJJCxJo.js} +1 -1
  6. package/dist/ui/assets/{account-store-BOPuEMqI.js → account-store-D_dPl16L.js} +1 -1
  7. package/dist/ui/assets/{adobe-BJLSWwia.js → adobe-B4MN5_M4.js} +1 -1
  8. package/dist/ui/assets/{adobe-U9X3cRQ7.js → adobe-BYw0VHpu.js} +1 -1
  9. package/dist/ui/assets/{agent-panels-C2-uYlp_.js → agent-panels-C9dRkirO.js} +1 -1
  10. package/dist/ui/assets/{almost-bash-shell-headless-C_6K2YYO.js → almost-bash-shell-headless-DeH8ulQM.js} +526 -526
  11. package/dist/ui/assets/{apply-layout-Dg36cwSk.js → apply-layout-CXJ_8NAT.js} +1 -1
  12. package/dist/ui/assets/approval-decision-BvumWm-U.js +1 -0
  13. package/dist/ui/assets/approval-timeout-CeQbGMnv.js +1 -0
  14. package/dist/ui/assets/{apps-BHKYBwKI.js → apps-VP5mbnB8.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-HHzueyMf.js → azure-openai-DQEwsige.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-BGxf50uQ.js → azure-openai-iU6X70QW.js} +1 -1
  17. package/dist/ui/assets/{backend-hostfs-BjxRqXat.js → backend-hostfs-DLWkun8N.js} +1 -1
  18. package/dist/ui/assets/{boundary-Cp9c_bPu.js → boundary-DjgipyWT.js} +1 -1
  19. package/dist/ui/assets/{capability-BArmeMYf.js → capability-BsxMoeMg.js} +2 -2
  20. package/dist/ui/assets/{cdp-MViMwyXE.js → cdp-BVM0EV0h.js} +1 -1
  21. package/dist/ui/assets/{cerebras-zyC3IFAH.js → cerebras-C-MguQUF.js} +1 -1
  22. package/dist/ui/assets/{cerebras-WhszYDrM.js → cerebras-Dar5RPlL.js} +1 -1
  23. package/dist/ui/assets/{composer-speech-CtQBB9wd.js → composer-speech-d17pZjld.js} +1 -1
  24. package/dist/ui/assets/{connect-surface-DxqdV0pU.js → connect-surface-CzqhHOpk.js} +1 -1
  25. package/dist/ui/assets/directed-approval-CLyy98kZ.js +1 -0
  26. package/dist/ui/assets/emscripten-vfs-hook-Dgp8TEZK.js +1 -0
  27. package/dist/ui/assets/{emscripten-vfs-hook-CEQbJmZa.js → emscripten-vfs-hook-ctdnPZVN.js} +1 -1
  28. package/dist/ui/assets/{ensure-speech-assets-BD8LBQqZ.js → ensure-speech-assets-C12IV4u7.js} +1 -1
  29. package/dist/ui/assets/extension-ops-Ded2__AC.js +1 -0
  30. package/dist/ui/assets/{frozen-archive-writer-CKKM2Jif.js → frozen-archive-writer-BweL88zo.js} +1 -1
  31. package/dist/ui/assets/{fs-BMFVg7cy.js → fs-BvMvRMgl.js} +1 -1
  32. package/dist/ui/assets/{fs-CMiBtw7D.js → fs-Cr6FJg4V.js} +2 -2
  33. package/dist/ui/assets/{gelatiere-store-BiS0OWaH.js → gelatiere-store-CKuvVPdN.js} +1 -1
  34. package/dist/ui/assets/{gelatiere-unit-Cvsx6GjW.js → gelatiere-unit-Cro5t__k.js} +1 -1
  35. package/dist/ui/assets/{github-BB7o_Wpz.js → github-BMVOcdI8.js} +1 -1
  36. package/dist/ui/assets/{github-hpAX34vV.js → github-BiKuW-LL.js} +2 -2
  37. package/dist/ui/assets/{github-auth-3c5S4myF.js → github-auth-B_Ll-Y6P.js} +1 -1
  38. package/dist/ui/assets/{github-copilot-B4_eCJL8.js → github-copilot-Cpy-cNE7.js} +1 -1
  39. package/dist/ui/assets/{github-copilot-BkkYdoJq.js → github-copilot-D15AlMDG.js} +1 -1
  40. package/dist/ui/assets/{github-install-DLy4Fcr_.js → github-install-Q0KoGVpi.js} +1 -1
  41. package/dist/ui/assets/{github-zip-Bvlh8BqL.js → github-zip-Bz2IXLub.js} +1 -1
  42. package/dist/ui/assets/{hear-uDUBW-27.js → hear-DJyelQhP.js} +1 -1
  43. package/dist/ui/assets/{help-CPoBGA_p.js → help-D2h40n15.js} +1 -1
  44. package/dist/ui/assets/{installer-D27U027H.js → installer-BSR8SD5W.js} +1 -1
  45. package/dist/ui/assets/{ipk-mamba-D5JvnQqj.js → ipk-mamba-CUVvtYaQ.js} +1 -1
  46. package/dist/ui/assets/{js-realm-worker-9YVJnX-1.js → js-realm-worker-hsxBVRhi.js} +3 -3
  47. package/dist/ui/assets/{jsh-executor-B7LWgSEg.js → jsh-executor-CZKkf290.js} +2 -2
  48. package/dist/ui/assets/{kernel-worker-CwYO76P1.js → kernel-worker-B4R2PngA.js} +45 -45
  49. package/dist/ui/assets/{lick-ws-bridge-DLi1GXRX.js → lick-ws-bridge-COSKCGDc.js} +1 -1
  50. package/dist/ui/assets/{lick-ws-bridge-DEgEDvro.js → lick-ws-bridge-CWfL-fuc.js} +1 -1
  51. package/dist/ui/assets/{live-session-curation-IeL1i9Kq.js → live-session-curation-CF7-JQNt.js} +1 -1
  52. package/dist/ui/assets/{live-session-snapshot-DMljp105.js → live-session-snapshot-2a2d2niQ.js} +1 -1
  53. package/dist/ui/assets/live-vfs-fs-0VhJ1yJW.js +1 -0
  54. package/dist/ui/assets/{local-llm-C_q1qxQf.js → local-llm-DSc1eBI_.js} +1 -1
  55. package/dist/ui/assets/{local-llm-CEKxQjHM.js → local-llm-Dm67J4Or.js} +1 -1
  56. package/dist/ui/assets/main-B61BvKBb.js +22 -0
  57. package/dist/ui/assets/{main-cherry-ZZUNKpNu.js → main-cherry-BXtTBLP6.js} +1 -1
  58. package/dist/ui/assets/{memory-curation-seam-tmAQXZZh.js → memory-curation-seam-dMRe3LAt.js} +1 -1
  59. package/dist/ui/assets/{memory-health-BcNUYJ1h.js → memory-health-D0VOxGUq.js} +1 -1
  60. package/dist/ui/assets/{memory-write-execute-CZvWcgNO.js → memory-write-execute-B12BlJli.js} +1 -1
  61. package/dist/ui/assets/{merge-folded-cost-into-frozen-CLn1pgXV.js → merge-folded-cost-into-frozen-BJuchBJs.js} +1 -1
  62. package/dist/ui/assets/{mount-IZGjP_Ii.js → mount-C8XxJIcW.js} +3 -3
  63. package/dist/ui/assets/{mount-Bm0uHvq-.js → mount-CdMxbkwV.js} +1 -1
  64. package/dist/ui/assets/new-session-Ck977dr8.js +2 -0
  65. package/dist/ui/assets/{oauth-bootstrap-CqdiSEg6.js → oauth-bootstrap-VagnehHV.js} +2 -2
  66. package/dist/ui/assets/{onboarding-orchestrator-D3WdXuUK.js → onboarding-orchestrator-BlvLR2uv.js} +1 -1
  67. package/dist/ui/assets/{openai-codex-uFXagdsX.js → openai-codex-CgJV38ez.js} +1 -1
  68. package/dist/ui/assets/{openai-codex-CKqwo_3u.js → openai-codex-lx77uf95.js} +1 -1
  69. package/dist/ui/assets/{openrouter-D8XbzRPO.js → openrouter-BYF3f4hE.js} +1 -1
  70. package/dist/ui/assets/{openrouter-D1z7UC50.js → openrouter-FAB81Bs-.js} +1 -1
  71. package/dist/ui/assets/{openrouter-free-CC_KdTm_.js → openrouter-free-C-tzJPNS.js} +1 -1
  72. package/dist/ui/assets/{openrouter-free-DnovGZBZ.js → openrouter-free-C9Jp7Pjg.js} +1 -1
  73. package/dist/ui/assets/{openrouter-oauth-B4l5773C.js → openrouter-oauth-BtfMq4eX.js} +1 -1
  74. package/dist/ui/assets/{openrouter-oauth-CH74pIPL.js → openrouter-oauth-CgPTtO9Z.js} +1 -1
  75. package/dist/ui/assets/{opfs-mount-Cjeki81r.js → opfs-mount-B58s34ro.js} +1 -1
  76. package/dist/ui/assets/page-approval-service-BbEv1dSc.js +1 -0
  77. package/dist/ui/assets/panel-rpc-handlers-CFU49OK-.js +2 -0
  78. package/dist/ui/assets/{panelize-shell-Ca8jU9bz.js → panelize-shell-DG1WSdD6.js} +1 -1
  79. package/dist/ui/assets/{pi-edit-execution-imx0gp05.js → pi-edit-execution-CBxKNy1e.js} +1 -1
  80. package/dist/ui/assets/process-worker-Bm14-oXj.js +3 -0
  81. package/dist/ui/assets/{provider-DbuVBBue.js → provider-DmFA_o6z.js} +2 -2
  82. package/dist/ui/assets/{provider-DLcxXuhZ.js → provider-YkRt54jM.js} +1 -1
  83. package/dist/ui/assets/{provider-settings-C6j__6sI.js → provider-settings-BffwNjqW.js} +1 -1
  84. package/dist/ui/assets/provider-store-access-CiNO5BWB.js +1 -0
  85. package/dist/ui/assets/provider-store-access-DPC_h0n0.js +1 -0
  86. package/dist/ui/assets/{providers-CzioQa6A.js → providers-D91qSZ-7.js} +1 -1
  87. package/dist/ui/assets/{providers-CDCjovrE.js → providers-DniKJDnW.js} +2 -2
  88. package/dist/ui/assets/{py-live-vfs-BB10PxRM.js → py-live-vfs-BCSnlFm0.js} +1 -1
  89. package/dist/ui/assets/py-live-vfs-D_X8Ts9M.js +180 -0
  90. package/dist/ui/assets/{py-realm-worker-COX6g80P.js → py-realm-worker-vN-Y0duM.js} +1 -1
  91. package/dist/ui/assets/{quick-llm-CHkGjtc6.js → quick-llm-CrLkA2_d.js} +1 -1
  92. package/dist/ui/assets/{realm-inprocess-rhXVLUbw.js → realm-inprocess-DKN0ZHJ_.js} +2 -2
  93. package/dist/ui/assets/realm-sync-transport-BD8czJdC.js +1 -0
  94. package/dist/ui/assets/{realm-unhandled-rejections-B3ZSvhl_.js → realm-unhandled-rejections-AiJm7tb8.js} +1 -1
  95. package/dist/ui/assets/{realm-unhandled-rejections-DiL5sSwr.js → realm-unhandled-rejections-CZx2IMUV.js} +1 -1
  96. package/dist/ui/assets/{recovery-screen-rb6SOJ7U.js → recovery-screen-Dif0XJec.js} +1 -1
  97. package/dist/ui/assets/{remote-terminal-view-DKPsFcjB.js → remote-terminal-view-Bogfkp0a.js} +2 -2
  98. package/dist/ui/assets/{require-guards-DKdJuMhY.js → require-guards-jYsd9xiG.js} +1 -1
  99. package/dist/ui/assets/{rest-ops-DDzQA0qH.js → rest-ops-DyAkn44S.js} +1 -1
  100. package/dist/ui/assets/{rest-ops-BMlgdArp.js → rest-ops-d6LSiWDZ.js} +1 -1
  101. package/dist/ui/assets/{restore-l1zQRO1O.js → restore-BuvAnvWO.js} +1 -1
  102. package/dist/ui/assets/{run-CvaoxH-1.js → run-B41YZRab.js} +1 -1
  103. package/dist/ui/assets/{run-D1TXxMmP.js → run-BBBDnSZP.js} +1 -1
  104. package/dist/ui/assets/{run-zJ9eMMQs.js → run-BLIuToUE.js} +2 -2
  105. package/dist/ui/assets/{run-DLsP-0lq.js → run-BQ9HnxuZ.js} +1 -1
  106. package/dist/ui/assets/{run-BG58gE0v.js → run-BTy1lN10.js} +2 -2
  107. package/dist/ui/assets/{run-b5wNaXoy.js → run-C5EU0z0t.js} +1 -1
  108. package/dist/ui/assets/{run-CrySk672.js → run-CYXAZSqv.js} +2 -2
  109. package/dist/ui/assets/{run-Gue_kIPE.js → run-qKtH39R0.js} +8 -7
  110. package/dist/ui/assets/{session-command-memory-BPIfyZMe.js → session-command-memory-Bd4fBxop.js} +2 -2
  111. package/dist/ui/assets/{session-jsonl-DC0przLd.js → session-jsonl-BgfNc5-K.js} +1 -1
  112. package/dist/ui/assets/{session-jsonl-Cxda94qB.js → session-jsonl-BoKaLBjt.js} +1 -1
  113. package/dist/ui/assets/{session-search-index-CEyiMR4z.js → session-search-index-DR3LjlVj.js} +1 -1
  114. package/dist/ui/assets/{setup-feature-flags-remote-CAMyvmIv.js → setup-feature-flags-remote-De-0v4XT.js} +1 -1
  115. package/dist/ui/assets/{setup-model-catalog-nGrUbfNi.js → setup-model-catalog-B6luXfNv.js} +1 -1
  116. package/dist/ui/assets/{signed-fetch-BEGZCYqx.js → signed-fetch-CO-Bnl47.js} +1 -1
  117. package/dist/ui/assets/{silent-renew-backoff-C4Rqfsye.js → silent-renew-backoff-BH-9_m4E.js} +1 -1
  118. package/dist/ui/assets/slicc-version-DEtAf6Eq.js +1 -0
  119. package/dist/ui/assets/{snapshot-BdGz92tf.js → snapshot-C1F-yOO0.js} +1 -1
  120. package/dist/ui/assets/{snapshot-features-p_X3SG7L.js → snapshot-features-CExRojJx.js} +1 -1
  121. package/dist/ui/assets/{soundscape-ClBgC3To.js → soundscape-BOv4ciPN.js} +1 -1
  122. package/dist/ui/assets/{speak-BjsAbkrC.js → speak-CGde-S7y.js} +1 -1
  123. package/dist/ui/assets/{sprinkle-manager-D4Ulyvja.js → sprinkle-manager-Bd6_RBxS.js} +1 -1
  124. package/dist/ui/assets/{sprinkle-renderer-C9DF3FJv.js → sprinkle-renderer-D7GUEjZL.js} +1 -1
  125. package/dist/ui/assets/{ssh-Bs6hnIoe.js → ssh-CO09HVge.js} +1 -1
  126. package/dist/ui/assets/{state-BwzBgXWm.js → state-CPqokSG7.js} +1 -1
  127. package/dist/ui/assets/{store-DEUFR3Ei.js → store-BaNNo1We.js} +1 -1
  128. package/dist/ui/assets/{store-D5JwUJQV.js → store-Bu_WlNqx.js} +1 -1
  129. package/dist/ui/assets/sudo-4tXqhxkX.js +5 -0
  130. package/dist/ui/assets/{sudo-fs-CGjo9awW.js → sudo-fs-mI-V4QkM.js} +1 -1
  131. package/dist/ui/assets/{supervisor-D9goiiYr.js → supervisor-CKUGA1zo.js} +1 -1
  132. package/dist/ui/assets/{sync-dialog-BWpzJbtP.js → sync-dialog-lNuhtsLb.js} +1 -1
  133. package/dist/ui/assets/sync-exec-dispatch-DvIKQEFv.js +1 -0
  134. package/dist/ui/assets/{sync-sab-responder-Bfd9S0pw.js → sync-sab-responder-CKgRMoHC.js} +1 -1
  135. package/dist/ui/assets/{telemetry-CKoAhRMv.js → telemetry-B0sKnLBU.js} +2 -2
  136. package/dist/ui/assets/{transformers-env-5YP8lO1Y.js → transformers-env-SiVQM-3h.js} +1 -1
  137. package/dist/ui/assets/{tray-leader-DBekFKtV.js → tray-leader-DGzx35nP.js} +1 -1
  138. package/dist/ui/assets/{tray-leave-runtime-XU5GNEL4.js → tray-leave-runtime-B1q8KWLf.js} +1 -1
  139. package/dist/ui/assets/{tray-sidecar-D9mLvrWu.js → tray-sidecar-BWndOel0.js} +1 -1
  140. package/dist/ui/assets/types-DSxCdZw6.js +1 -0
  141. package/dist/ui/assets/types-Dj5TU-Qg.js +1 -0
  142. package/dist/ui/assets/types-JfhqX7lD.js +1 -0
  143. package/dist/ui/assets/{upgrade-detection-D9bMYnZE.js → upgrade-detection-DQSTN2sW.js} +1 -1
  144. package/dist/ui/assets/{upskill-lick-skip-DK2aB9YG.js → upskill-lick-skip-DlilF4rc.js} +1 -1
  145. package/dist/ui/assets/{voice-reply-DzLNXqvk.js → voice-reply-CP7WG1rY.js} +1 -1
  146. package/dist/ui/assets/{wc-attach-DtSHOZy3.js → wc-attach-CAnoEIAv.js} +2 -2
  147. package/dist/ui/assets/{wc-browser-Qt4xcbCv.js → wc-browser-CNHm9mOO.js} +1 -1
  148. package/dist/ui/assets/{wc-computers-3ANjZGmC.js → wc-computers-BBq_pLL5.js} +1 -1
  149. package/dist/ui/assets/{wc-detached-Cj7Q39TM.js → wc-detached-CLtrY4dJ.js} +1 -1
  150. package/dist/ui/assets/{wc-extension--4MnugYi.js → wc-extension-DAUjLmyi.js} +2 -2
  151. package/dist/ui/assets/{wc-follower-oauth-CbAR50KX.js → wc-follower-oauth-DJaH6NcY.js} +1 -1
  152. package/dist/ui/assets/{wc-follower-C-wJMGT-.js → wc-follower-rlyd2qoE.js} +3 -3
  153. package/dist/ui/assets/{wc-gelatiere-BTNvLUaJ.js → wc-gelatiere-DBjNosRS.js} +1 -1
  154. package/dist/ui/assets/wc-live-Bv8ygCb1.js +433 -0
  155. package/dist/ui/assets/{wc-nav-xZY0Kn73.js → wc-nav-CEYJqyOP.js} +2 -2
  156. package/dist/ui/assets/{wc-onboarding-CM5CNuAu.js → wc-onboarding-DiVhjaWE.js} +2 -2
  157. package/dist/ui/assets/{wc-permissions-B5BHyVex.js → wc-permissions-BDEnxsRc.js} +2 -2
  158. package/dist/ui/assets/{wc-placeholder-D8_CQqxQ.js → wc-placeholder-BwtwD-4U.js} +3 -3
  159. package/dist/ui/assets/{wc-secret-request-BIEPNN_s.js → wc-secret-request-BqsFJf8J.js} +1 -1
  160. package/dist/ui/assets/{wc-settings--27TP4-c.js → wc-settings-DHJ5-fBJ.js} +3 -3
  161. package/dist/ui/assets/{wc-shell-DNXWncTn.js → wc-shell-C_FnQT_B.js} +3 -3
  162. package/dist/ui/assets/{wc-shortcut-config-Bibkh7Yf.js → wc-shortcut-config-yKU5tM0c.js} +1 -1
  163. package/dist/ui/assets/{wc-sprinkles-DX_H2km2.js → wc-sprinkles-D1qkDv5r.js} +2 -2
  164. package/dist/ui/assets/{wc-transcript-export--kF-Vxt_.js → wc-transcript-export-DRvYtZAz.js} +2 -2
  165. package/dist/ui/assets/wc-tray-Dg5lvLPA.js +5 -0
  166. package/dist/ui/assets/welcome-detection-CYN-rZLL.js +1 -0
  167. package/dist/ui/assets/{whisper-session-3XJkKghL.js → whisper-session-B7DGbMeT.js} +2 -2
  168. package/dist/ui/assets/{xai-grok-B42huSYK.js → xai-grok-BMGn7sDb.js} +1 -1
  169. package/dist/ui/assets/{xai-grok-Bjy2zwFV.js → xai-grok-BknauR83.js} +1 -1
  170. package/dist/ui/index.html +4 -4
  171. package/dist/ui/packages/webapp/index.html +4 -4
  172. package/package.json +1 -1
  173. package/dist/ui/assets/approval-decision-CS9Wwm5B.js +0 -1
  174. package/dist/ui/assets/approval-timeout-BQ29Z0gf.js +0 -1
  175. package/dist/ui/assets/directed-approval-BfoHF_26.js +0 -1
  176. package/dist/ui/assets/emscripten-vfs-hook-DgdMcqyP.js +0 -1
  177. package/dist/ui/assets/extension-ops-i_xfuHy5.js +0 -1
  178. package/dist/ui/assets/live-vfs-fs-DWvmF4OR.js +0 -1
  179. package/dist/ui/assets/main-CrQ4lqof.js +0 -22
  180. package/dist/ui/assets/new-session-CSVzNHeE.js +0 -2
  181. package/dist/ui/assets/page-approval-service-C8ldGtOt.js +0 -1
  182. package/dist/ui/assets/panel-rpc-handlers-D6__UWuk.js +0 -2
  183. package/dist/ui/assets/process-worker-DTdozhx3.js +0 -3
  184. package/dist/ui/assets/provider-store-access-DE9qdrpb.js +0 -1
  185. package/dist/ui/assets/provider-store-access-DOArIKIU.js +0 -1
  186. package/dist/ui/assets/py-live-vfs-CjvQr88H.js +0 -180
  187. package/dist/ui/assets/realm-sync-transport-Bxw8OlvF.js +0 -1
  188. package/dist/ui/assets/slicc-version-Cl3RUQFw.js +0 -1
  189. package/dist/ui/assets/sudo-XWnflknm.js +0 -5
  190. package/dist/ui/assets/sync-exec-dispatch-BwrIjhDd.js +0 -1
  191. package/dist/ui/assets/types-BfwydWt7.js +0 -1
  192. package/dist/ui/assets/wc-live-Bt0oy5Ed.js +0 -433
  193. package/dist/ui/assets/wc-tray-BnsH1nNt.js +0 -5
  194. package/dist/ui/assets/welcome-detection-EPHOljaE.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-CMiBtw7D.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/types-D8gIX-W-.js","assets/path-utils-DNJG-zQf.js","assets/bounded-walk-BjxKWNqp.js","assets/virtual-device-paths-D45tpPP6.js","assets/same-file-identity-DuEcSmPX.js","assets/mount-table-store-dY2IfQ5S.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-B-vKfxAF.js","assets/panel-rpc-D3EPRnmw.js","assets/permissions-surface-registry-CilCRwhh.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{K as n,T as r,f as i}from"./account-store-DEEMsVyJ.js";import{n as a}from"./float-topology-C9GjBEv-.js";import{i as o}from"./providers-CDCjovrE.js";import{t as s}from"./global-db-CbuLl-zx.js";import{n as c,r as l,t as u}from"./bridge-token-required-DMk2va9k.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{t as m}from"./types-D8gIX-W-.js";var h=t(`mcp-store`),g=`/workspace/.mcp/servers.json`,_=1,v=null,y=null;async function b(){return v||=await e(()=>import(`./fs-CMiBtw7D.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),v}async function x(e){if(e)return e;if(y&&y.dbName===`slicc-fs-global`)return y.instance;let{VirtualFS:t}=await b(),n=await t.create({dbName:s});return y={instance:n,dbName:s},n}function S(){return{version:_,servers:{}}}function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function w(e){if(!C(e))return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function T(e){if(!C(e))return S();let t=e,n=typeof t.version==`number`?t.version:_,r={};if(C(t.servers))for(let[e,n]of Object.entries(t.servers)){let t=w(n);t&&(r[e]=t)}return{version:n,servers:r}}async function E(e){try{let t=await(await x(e)).readFile(g,{encoding:`utf-8`});try{return T(JSON.parse(t))}catch(e){return h.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),S()}}catch(e){if(e instanceof m&&e.code===`ENOENT`)return S();throw e}}async function D(e){return(await E(e)).servers}async function O(){let e=await D(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}var k=t(`mcp-oauth`);function A(e,t){let{discoveryPath:n,prmUrl:r,prmReason:i,asmUrl:a,asmReason:o}=t;if(!e)throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}): ${o}.`:`ASM fetch failed: ${o} (${a})`);if(!(e.authorization_endpoint&&e.token_endpoint))throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${a} is missing required endpoints`)}async function j(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;k.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,k.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,k.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let u=null,d=null;k.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?u=await e.json():d=`${e.status} ${e.statusText}`}catch(e){d=e instanceof Error?e.message:String(e)}return A(u,{discoveryPath:l,prmUrl:i,prmReason:o,asmUrl:c,asmReason:d}),{issuer:u.issuer||s,authorizationEndpoint:u.authorization_endpoint,tokenEndpoint:u.token_endpoint,registrationEndpoint:u.registration_endpoint,supportedScopes:u.scopes_supported??a?.scopes_supported,codeChallengeMethods:u.code_challenge_methods_supported,grantTypes:u.grant_types_supported,discoveryPath:l}}function M(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}async function N(e){let t=d();return e===`plain`?{codeVerifier:t,codeChallenge:t,method:e}:{codeVerifier:t,codeChallenge:await p(t),method:e}}function P(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function F(e){let t=await N(M(e.asMetadata.codeChallengeMethods)),n=f(),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=P(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return L({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function I(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function L(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}async function R(e){if(c())throw new u;let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(l(n.status,JSON.stringify(r)))throw new u;if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}var z=`/auth/mcp-callback`;async function B(t){if(t===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(t===`node-rest`){let{getLocalApiBaseUrl:t}=await e(async()=>{let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-Cplb-Tee.js`).then(e=>e.i);return{getLocalApiBaseUrl:e}},__vite__mapDeps([10,1,2,11,12,13,14])),n=t();if(n)return`${n}/auth/callback`}let{getOAuthPageOrigin:n}=await e(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-B-vKfxAF.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([15,2,10,1,11,12,13,14,16,17])),{origin:r}=await n();return`${r}${t===`extension-delegate`?z:`/auth/callback`}`}var V=t(`mcp-provider`),H=`mcp:`;function U(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function W(e){return`${H}${e}`}var G=new Map,K=new Set;async function q(t){if(t)return t;let{createProxiedFetch:n}=await e(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-Cplb-Tee.js`).then(e=>e.i);return{createProxiedFetch:e}},__vite__mapDeps([10,1,2,11,12,13,14])),r=n();return async(e,t)=>{let n=await r(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(n.body);return{ok:n.status>=200&&n.status<300,status:n.status,statusText:n.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>n.headers[e.toLowerCase()]??null}}}}async function J(e){let t=G.get(W(e.name));if(t)return t;let n=await q(e.fetchImpl),r=await j(e.serverUrl,void 0,n);return G.set(W(e.name),r),r}function Y(e){let t=W(e.name),o=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:o?[o]:[],getModelIds:()=>[],onOAuthLogin:async(r,i)=>{let o=e.launcher??r,s=await q(e.fetchImpl),c=await F({asMetadata:await J(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await B(a()),launcher:o,fetchImpl:s});await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),i()},onSilentRenew:async()=>{if(!r(t))return null;let a=i().find(e=>e.providerId===t),o=a?.refreshToken;if(!o)return V.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let r=await J(e),i=r.grantTypes??[];if(i.length>0&&!i.includes(`refresh_token`))return V.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await q(e.fetchImpl),c=await R({tokenEndpoint:r.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return V.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function X(e){let t=W(e.name);if(K.has(t))return;let n=Y(e);o(n),K.add(t),V.debug(`Registered MCP provider`,{id:t})}async function Z(){if(!U())return[];let{readMcpAuthEntries:t}=await e(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-DOArIKIU.js`);return{readMcpAuthEntries:e}},[]),n=await t(),r=[];for(let e of n)X({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),r.push(W(e.name));return r}export{Z as ensureAllMcpProvidersRegistered,O as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-Cr6FJg4V.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/types-D8gIX-W-.js","assets/path-utils-DNJG-zQf.js","assets/bounded-walk-BjxKWNqp.js","assets/virtual-device-paths-D45tpPP6.js","assets/same-file-identity-DuEcSmPX.js","assets/mount-table-store-dY2IfQ5S.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-B-vKfxAF.js","assets/panel-rpc-D3EPRnmw.js","assets/permissions-surface-registry-CilCRwhh.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{K as n,T as r,f as i}from"./account-store-DYJJCxJo.js";import{n as a}from"./float-topology-C9GjBEv-.js";import{i as o}from"./providers-DniKJDnW.js";import{t as s}from"./global-db-CbuLl-zx.js";import{n as c,r as l,t as u}from"./bridge-token-required-DMk2va9k.js";import{n as d,r as f,t as p}from"./pkce-hGf_TEnP.js";import{t as m}from"./types-D8gIX-W-.js";var h=t(`mcp-store`),g=`/workspace/.mcp/servers.json`,_=1,v=null,y=null;async function b(){return v||=await e(()=>import(`./fs-Cr6FJg4V.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),v}async function x(e){if(e)return e;if(y&&y.dbName===`slicc-fs-global`)return y.instance;let{VirtualFS:t}=await b(),n=await t.create({dbName:s});return y={instance:n,dbName:s},n}function S(){return{version:_,servers:{}}}function C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function w(e){if(!C(e))return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function T(e){if(!C(e))return S();let t=e,n=typeof t.version==`number`?t.version:_,r={};if(C(t.servers))for(let[e,n]of Object.entries(t.servers)){let t=w(n);t&&(r[e]=t)}return{version:n,servers:r}}async function E(e){try{let t=await(await x(e)).readFile(g,{encoding:`utf-8`});try{return T(JSON.parse(t))}catch(e){return h.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),S()}}catch(e){if(e instanceof m&&e.code===`ENOENT`)return S();throw e}}async function D(e){return(await E(e)).servers}async function O(){let e=await D(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}var k=t(`mcp-oauth`);function A(e,t){let{discoveryPath:n,prmUrl:r,prmReason:i,asmUrl:a,asmReason:o}=t;if(!e)throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}): ${o}.`:`ASM fetch failed: ${o} (${a})`);if(!(e.authorization_endpoint&&e.token_endpoint))throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${a} is missing required endpoints`)}async function j(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;k.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,k.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,k.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let u=null,d=null;k.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?u=await e.json():d=`${e.status} ${e.statusText}`}catch(e){d=e instanceof Error?e.message:String(e)}return A(u,{discoveryPath:l,prmUrl:i,prmReason:o,asmUrl:c,asmReason:d}),{issuer:u.issuer||s,authorizationEndpoint:u.authorization_endpoint,tokenEndpoint:u.token_endpoint,registrationEndpoint:u.registration_endpoint,supportedScopes:u.scopes_supported??a?.scopes_supported,codeChallengeMethods:u.code_challenge_methods_supported,grantTypes:u.grant_types_supported,discoveryPath:l}}function M(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}async function N(e){let t=d();return e===`plain`?{codeVerifier:t,codeChallenge:t,method:e}:{codeVerifier:t,codeChallenge:await p(t),method:e}}function P(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function F(e){let t=await N(M(e.asMetadata.codeChallengeMethods)),n=f(),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=P(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return L({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function I(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function L(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}async function R(e){if(c())throw new u;let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(l(n.status,JSON.stringify(r)))throw new u;if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return I(r)}var z=`/auth/mcp-callback`;async function B(t){if(t===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(t===`node-rest`){let{getLocalApiBaseUrl:t}=await e(async()=>{let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-Cplb-Tee.js`).then(e=>e.i);return{getLocalApiBaseUrl:e}},__vite__mapDeps([10,1,2,11,12,13,14])),n=t();if(n)return`${n}/auth/callback`}let{getOAuthPageOrigin:n}=await e(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-B-vKfxAF.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([15,2,10,1,11,12,13,14,16,17])),{origin:r}=await n();return`${r}${t===`extension-delegate`?z:`/auth/callback`}`}var V=t(`mcp-provider`),H=`mcp:`;function U(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function W(e){return`${H}${e}`}var G=new Map,K=new Set;async function q(t){if(t)return t;let{createProxiedFetch:n}=await e(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-Cplb-Tee.js`).then(e=>e.i);return{createProxiedFetch:e}},__vite__mapDeps([10,1,2,11,12,13,14])),r=n();return async(e,t)=>{let n=await r(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(n.body);return{ok:n.status>=200&&n.status<300,status:n.status,statusText:n.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>n.headers[e.toLowerCase()]??null}}}}async function J(e){let t=G.get(W(e.name));if(t)return t;let n=await q(e.fetchImpl),r=await j(e.serverUrl,void 0,n);return G.set(W(e.name),r),r}function Y(e){let t=W(e.name),o=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:o?[o]:[],getModelIds:()=>[],onOAuthLogin:async(r,i)=>{let o=e.launcher??r,s=await q(e.fetchImpl),c=await F({asMetadata:await J(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await B(a()),launcher:o,fetchImpl:s});await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),i()},onSilentRenew:async()=>{if(!r(t))return null;let a=i().find(e=>e.providerId===t),o=a?.refreshToken;if(!o)return V.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let r=await J(e),i=r.grantTypes??[];if(i.length>0&&!i.includes(`refresh_token`))return V.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await q(e.fetchImpl),c=await R({tokenEndpoint:r.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await n({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return V.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function X(e){let t=W(e.name);if(K.has(t))return;let n=Y(e);o(n),K.add(t),V.debug(`Registered MCP provider`,{id:t})}async function Z(){if(!U())return[];let{readMcpAuthEntries:t}=await e(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-DPC_h0n0.js`);return{readMcpAuthEntries:e}},[]),n=await t(),r=[];for(let e of n)X({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),r.push(W(e.name));return r}export{Z as ensureAllMcpProvidersRegistered,O as t};
@@ -1 +1 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{_ as t,l as n,r}from"./account-store-BOPuEMqI.js";import{i,s as a,t as o}from"./providers-CzioQa6A.js";import{a as s}from"./core-BOHj4mqw.js";import{t as c}from"./redirect-uri-31pXIMS9.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-D20BEoY6.js";import{n as f}from"./store-D5JwUJQV.js";const p=e(`mcp-provider`);function m(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function h(e){return`mcp:${e}`}const g=new Map,_=new Set;async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-CoZ8jHud.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=g.get(h(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await l(e.serverUrl,void 0,n);return g.set(h(e.name),r),r}function b(e){let i=h(e.name),a=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await v(e.fetchImpl),l=await y(e),u=await d({asMetadata:l,clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await c(s()),launcher:a,fetchImpl:o});await t({providerId:i,accessToken:u.accessToken,refreshToken:u.refreshToken,tokenExpiresAt:u.expiresAt,scopes:u.scope}),r()},onSilentRenew:async()=>{if(!n(i))return null;let a=r().find(e=>e.providerId===i),o=a?.refreshToken;if(!o)return p.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let n=await y(e),r=n.grantTypes??[];if(r.length>0&&!r.includes(`refresh_token`))return p.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let s=await v(e.fetchImpl),c=await u({tokenEndpoint:n.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await t({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return p.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let t=h(e.name);if(_.has(t))return;let n=b(e);i(n),_.add(t),p.debug(`Registered MCP provider`,{id:t})}async function S(e,t={}){let n=h(e);if(_.has(n)&&o(n))return!0;if(!m())return!1;let r=await f(e);return r?(x({name:e,serverUrl:r.serverUrl,auth:r.auth,...t}),!0):!1}async function C(){if(!m())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-DE9qdrpb.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(h(e.name));return n}function w(e){let t=h(e);return _.delete(t),g.delete(t),a(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
1
+ import{t as e}from"./logger-LESFN7Hj.js";import{_ as t,l as n,r}from"./account-store-D_dPl16L.js";import{i,s as a,t as o}from"./providers-D91qSZ-7.js";import{a as s}from"./core-BOHj4mqw.js";import{t as c}from"./redirect-uri-31pXIMS9.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-D20BEoY6.js";import{n as f}from"./store-Bu_WlNqx.js";const p=e(`mcp-provider`);function m(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function h(e){return`mcp:${e}`}const g=new Map,_=new Set;async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-CoZ8jHud.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=g.get(h(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await l(e.serverUrl,void 0,n);return g.set(h(e.name),r),r}function b(e){let i=h(e.name),a=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await v(e.fetchImpl),l=await y(e),u=await d({asMetadata:l,clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await c(s()),launcher:a,fetchImpl:o});await t({providerId:i,accessToken:u.accessToken,refreshToken:u.refreshToken,tokenExpiresAt:u.expiresAt,scopes:u.scope}),r()},onSilentRenew:async()=>{if(!n(i))return null;let a=r().find(e=>e.providerId===i),o=a?.refreshToken;if(!o)return p.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let n=await y(e),r=n.grantTypes??[];if(r.length>0&&!r.includes(`refresh_token`))return p.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let s=await v(e.fetchImpl),c=await u({tokenEndpoint:n.tokenEndpoint,clientId:e.auth.clientId,refreshToken:o,scope:e.auth.scope,fetchImpl:s});return await t({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return p.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let t=h(e.name);if(_.has(t))return;let n=b(e);i(n),_.add(t),p.debug(`Registered MCP provider`,{id:t})}async function S(e,t={}){let n=h(e);if(_.has(n)&&o(n))return!0;if(!m())return!1;let r=await f(e);return r?(x({name:e,serverUrl:r.serverUrl,auth:r.auth,...t}),!0):!1}async function C(){if(!m())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-CiNO5BWB.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(h(e.name));return n}function w(e){let t=h(e);return _.delete(t),g.delete(t),a(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import"./account-store-BOPuEMqI.js";import"./core-BOHj4mqw.js";import"./tray-runtime-config-ConrTcOf.js";var n=e({copyTextToClipboard:()=>r});async function r(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}t(`provider-settings`);export{n as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import"./account-store-D_dPl16L.js";import"./core-BOHj4mqw.js";import"./tray-runtime-config-ConrTcOf.js";var n=e({copyTextToClipboard:()=>r});async function r(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}t(`provider-settings`);export{n as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./store-Bu_WlNqx.js";import"./provider-YkRt54jM.js";export{e as readMcpAuthEntries};
@@ -0,0 +1 @@
1
+ import{t as e}from"./provider-DmFA_o6z.js";export{e as readMcpAuthEntries};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-HHzueyMf.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-DC2y4xqC.js`).then(e=>e.a),"./built-in/bedrock-camp-extra-models.ts":()=>import(`./bedrock-camp-extra-models-BTmBqN9L.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-Bvjec9dO.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-C_q1qxQf.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-BJLSWwia.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-WhszYDrM.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-BkkYdoJq.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BB7o_Wpz.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-CKqwo_3u.js`),"/packages/webapp/providers/openrouter-free.ts":()=>import(`./openrouter-free-CC_KdTm_.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DyyLIGVe.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-B4l5773C.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-D1z7UC50.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-B42huSYK.js`)}),s=new Map;let c=null;function l(){return c===null&&(c=(async()=>{let e=await Promise.all(Object.values(a).map(e=>e()));for(let t of e)t.config&&i(t.config.id)&&(s.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(o).map(e=>e()));for(let e of t)e.config&&(s.set(e.config.id,e.config),e.register?.())})()),c}const u=s;function d(e){return s.get(e)}function f(){return[...s.keys()]}function p(e){s.set(e.id,e)}function m(e){return s.delete(e)}export{l as a,p as i,f as n,i as o,n as r,m as s,d as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-DQEwsige.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-DC2y4xqC.js`).then(e=>e.a),"./built-in/bedrock-camp-extra-models.ts":()=>import(`./bedrock-camp-extra-models-BTmBqN9L.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-Bvjec9dO.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-DSc1eBI_.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-B4MN5_M4.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-Dar5RPlL.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-D15AlMDG.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BMVOcdI8.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-lx77uf95.js`),"/packages/webapp/providers/openrouter-free.ts":()=>import(`./openrouter-free-C-tzJPNS.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DyyLIGVe.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-BtfMq4eX.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-FAB81Bs-.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-BMGn7sDb.js`)}),s=new Map;let c=null;function l(){return c===null&&(c=(async()=>{let e=await Promise.all(Object.values(a).map(e=>e()));for(let t of e)t.config&&i(t.config.id)&&(s.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(o).map(e=>e()));for(let e of t)e.config&&(s.set(e.config.id,e.config),e.register?.())})()),c}const u=s;function d(e){return s.get(e)}function f(){return[...s.keys()]}function p(e){s.set(e.id,e)}function m(e){return s.delete(e)}export{l as a,p as i,f as n,i as o,n as r,m as s,d as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-BGxf50uQ.js","assets/diagnostics-DN_idNHx.js","assets/models-YdybRRvT.js","assets/preload-helper-Czpn1I53.js","assets/compat-Dy2zIWAW.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/openrouter.models-B-zmcypy.js","assets/account-store-DEEMsVyJ.js","assets/core-CbbeQz7g.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-C64_Hwco.js","assets/bedrock-camp-extra-models-Dg0hblqu.js","assets/claude-model-version-DZmbk9E2.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-L-_-pBFh.js","assets/temperature-support-CIu8ekGh.js","assets/local-llm-CEKxQjHM.js","assets/legacy-api-aliases-DoI0tM7F.js","assets/adobe-U9X3cRQ7.js","assets/main-CrQ4lqof.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/bridge-protocol-C52CnDIj.js","assets/telemetry-CKoAhRMv.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/silent-renew-backoff-C4Rqfsye.js","assets/provider-budget-LCzMPlKv.js","assets/oauth-service-B-vKfxAF.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-zyC3IFAH.js","assets/github-copilot-B4_eCJL8.js","assets/github-hpAX34vV.js","assets/global-db-CbuLl-zx.js","assets/bridge-token-required-DMk2va9k.js","assets/openai-codex-uFXagdsX.js","assets/pkce-hGf_TEnP.js","assets/openrouter-free-DnovGZBZ.js","assets/openrouter-models-Cfi7qjq5.js","assets/openrouter-oauth-CH74pIPL.js","assets/openrouter-D8XbzRPO.js","assets/xai-grok-Bjy2zwFV.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-BGxf50uQ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),"./built-in/bedrock-camp-compat.ts":()=>t(()=>import(`./bedrock-camp-compat-C64_Hwco.js`).then(e=>e.a),__vite__mapDeps([26,7])),"./built-in/bedrock-camp-extra-models.ts":()=>t(()=>import(`./bedrock-camp-extra-models-Dg0hblqu.js`).then(e=>e.n),__vite__mapDeps([27,7,26])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-L-_-pBFh.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,26,28,29,31])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-CEKxQjHM.js`),__vite__mapDeps([32,1,4,2,3,5,6,7,8,33,12,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-U9X3cRQ7.js`),__vite__mapDeps([34,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40,41,42,43,44,31,45])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-zyC3IFAH.js`),__vite__mapDeps([46,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-B4_eCJL8.js`),__vite__mapDeps([47,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-hpAX34vV.js`),__vite__mapDeps([48,3,9,7,10,4,2,1,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,43,44,49,50])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-uFXagdsX.js`),__vite__mapDeps([51,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,50,52])),"/packages/webapp/providers/openrouter-free.ts":()=>t(()=>import(`./openrouter-free-DnovGZBZ.js`),__vite__mapDeps([53,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,54,55,52])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-Cfi7qjq5.js`),__vite__mapDeps([54,8])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-CH74pIPL.js`),__vite__mapDeps([55,9,7,10,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,52])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-D8XbzRPO.js`),__vite__mapDeps([56,4,2,1,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,54,55,52])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-Bjy2zwFV.js`),__vite__mapDeps([57,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40,50,52,58]))}),c=new Map,l=null;function u(){return l===null&&(l=(async()=>{let e=await Promise.all(Object.values(o).map(e=>e()));for(let t of e)t.config&&a(t.config.id)&&(c.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(s).map(e=>e()));for(let e of t)e.config&&(c.set(e.config.id,e.config),e.register?.())})()),l}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-iU6X70QW.js","assets/diagnostics-DN_idNHx.js","assets/models-YdybRRvT.js","assets/preload-helper-Czpn1I53.js","assets/compat-Dy2zIWAW.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/openrouter.models-B-zmcypy.js","assets/account-store-DYJJCxJo.js","assets/core-CbbeQz7g.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-Cplb-Tee.js","assets/base64-ELzoYfwP.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-Dm_PZRZx.js","assets/float-topology-C9GjBEv-.js","assets/secrets-bridge-client-CWv2_nw7.js","assets/port-bridge-client-D_erEovW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-C64_Hwco.js","assets/bedrock-camp-extra-models-Dg0hblqu.js","assets/claude-model-version-DZmbk9E2.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-L-_-pBFh.js","assets/temperature-support-CIu8ekGh.js","assets/local-llm-Dm67J4Or.js","assets/legacy-api-aliases-DoI0tM7F.js","assets/adobe-BYw0VHpu.js","assets/main-B61BvKBb.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/bridge-protocol-C52CnDIj.js","assets/telemetry-B0sKnLBU.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/silent-renew-backoff-BH-9_m4E.js","assets/provider-budget-LCzMPlKv.js","assets/oauth-service-B-vKfxAF.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-C-MguQUF.js","assets/github-copilot-Cpy-cNE7.js","assets/github-BiKuW-LL.js","assets/global-db-CbuLl-zx.js","assets/bridge-token-required-DMk2va9k.js","assets/openai-codex-CgJV38ez.js","assets/pkce-hGf_TEnP.js","assets/openrouter-free-C9Jp7Pjg.js","assets/openrouter-models-Cfi7qjq5.js","assets/openrouter-oauth-CgPTtO9Z.js","assets/openrouter-BYF3f4hE.js","assets/xai-grok-BknauR83.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-iU6X70QW.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),"./built-in/bedrock-camp-compat.ts":()=>t(()=>import(`./bedrock-camp-compat-C64_Hwco.js`).then(e=>e.a),__vite__mapDeps([26,7])),"./built-in/bedrock-camp-extra-models.ts":()=>t(()=>import(`./bedrock-camp-extra-models-Dg0hblqu.js`).then(e=>e.n),__vite__mapDeps([27,7,26])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-L-_-pBFh.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,26,28,29,31])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-Dm67J4Or.js`),__vite__mapDeps([32,1,4,2,3,5,6,7,8,33,12,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-BYw0VHpu.js`),__vite__mapDeps([34,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40,41,42,43,44,31,45])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-C-MguQUF.js`),__vite__mapDeps([46,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-Cpy-cNE7.js`),__vite__mapDeps([47,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-BiKuW-LL.js`),__vite__mapDeps([48,3,9,7,10,4,2,1,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,41,43,44,49,50])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-CgJV38ez.js`),__vite__mapDeps([51,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,50,52])),"/packages/webapp/providers/openrouter-free.ts":()=>t(()=>import(`./openrouter-free-C9Jp7Pjg.js`),__vite__mapDeps([53,1,4,2,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,54,55,52])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-Cfi7qjq5.js`),__vite__mapDeps([54,8])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-CgPTtO9Z.js`),__vite__mapDeps([55,9,7,10,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,52])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-BYF3f4hE.js`),__vite__mapDeps([56,4,2,1,3,5,6,7,8,33,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,35,36,37,38,39,40,54,55,52])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-BknauR83.js`),__vite__mapDeps([57,10,7,4,2,1,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,9,25,26,27,28,35,36,37,38,39,40,50,52,58]))}),c=new Map,l=null;function u(){return l===null&&(l=(async()=>{let e=await Promise.all(Object.values(o).map(e=>e()));for(let t of e)t.config&&a(t.config.id)&&(c.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(s).map(e=>e()));for(let e of t)e.config&&(c.set(e.config.id,e.config),e.register?.())})()),l}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t,t as n}from"./live-vfs-fs-DWvmF4OR.js";import{a as r,i,n as a,r as o}from"./realm-sync-transport-Bxw8OlvF.js";function s(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function c(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||!(typeof t.command==`string`||s(t.command)))return null;let n=t.env&&typeof t.env==`object`&&!Array.isArray(t.env)?Object.fromEntries(Object.entries(t.env).filter(e=>typeof e[1]==`string`)):void 0;return{command:t.command,...typeof t.cwd==`string`?{cwd:t.cwd}:{},...n?{env:n}:{},...typeof t.input==`string`?{input:t.input}:{},...typeof t.timeoutMs==`number`?{timeoutMs:t.timeoutMs}:{}}}function l(e){return{run(t){let n=c(t);if(!n)return JSON.stringify({error:`EINVAL`,message:`malformed request`});let r;e.beforeExec();try{r=e.exec.run(n.command,{...n.input===void 0?{}:{input:n.input},...n.cwd===void 0?{}:{cwd:n.cwd},...n.env===void 0?{}:{env:n.env},...n.timeoutMs===void 0?{}:{timeout:n.timeoutMs}})}catch(e){let t=e?.code;r={error:typeof t==`string`?t:`EIO`,message:e instanceof Error?e.message:String(e)}}finally{e.afterExec()}return JSON.stringify(r)}}}const u=String.raw`
1
+ import{n as e,r as t,t as n}from"./live-vfs-fs-0VhJ1yJW.js";import{a as r,i,n as a,r as o}from"./realm-sync-transport-BD8czJdC.js";function s(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function c(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||!(typeof t.command==`string`||s(t.command)))return null;let n=t.env&&typeof t.env==`object`&&!Array.isArray(t.env)?Object.fromEntries(Object.entries(t.env).filter(e=>typeof e[1]==`string`)):void 0;return{command:t.command,...typeof t.cwd==`string`?{cwd:t.cwd}:{},...n?{env:n}:{},...typeof t.input==`string`?{input:t.input}:{},...typeof t.timeoutMs==`number`?{timeoutMs:t.timeoutMs}:{}}}function l(e){return{run(t){let n=c(t);if(!n)return JSON.stringify({error:`EINVAL`,message:`malformed request`});let r;e.beforeExec();try{r=e.exec.run(n.command,{...n.input===void 0?{}:{input:n.input},...n.cwd===void 0?{}:{cwd:n.cwd},...n.env===void 0?{}:{env:n.env},...n.timeoutMs===void 0?{}:{timeout:n.timeoutMs}})}catch(e){let t=e?.code;r={error:typeof t==`string`?t:`EIO`,message:e instanceof Error?e.message:String(e)}}finally{e.afterExec()}return JSON.stringify(r)}}}const u=String.raw`
2
2
  def __slicc_install_subprocess():
3
3
  import errno, io, itertools, json, os, subprocess, sys
4
4
  import _slicc_proc
@@ -0,0 +1,180 @@
1
+ const e={EACCES:2,EBADF:8,EBUSY:10,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ELOOP:32,ENAMETOOLONG:37,ENOENT:44,ENOSPC:51,ENOSYS:52,ENOTDIR:54,ENOTEMPTY:55,EPERM:63,EROFS:69,ETIMEDOUT:73,EXDEV:75},t=4095;function n(t,n){if(n?.errno!==void 0&&n instanceof t.ErrnoError)return n;let r=n?.code,i=typeof r==`string`?e[r]??29:29;return new t.ErrnoError(i)}function r(e){let t=[],n=e;for(;n!==n.mount.root;)t.push(n.name),n=n.parent;let r=e.mount.opts.root.replace(/\/+$/,``);return t.length===0?r||`/`:`${r}/${t.reverse().join(`/`)}`}function i(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&n)+(t>>>0)||1}function a(e){let n=e.isSymbolicLink?40960:e.isDirectory?16384:32768,r=e.isDirectory||e.isSymbolicLink?511:438;return n|((e.mode??r)&t||r)}function o(e){if(e!=null)return e instanceof Date?e.getTime():e}function s(t,i){let o=e=>e.mount.opts.bridge;function s(e){try{return e()}catch(e){throw n(t,e)}}function c(t){try{s(t)}catch(t){if(t.errno!==e.ENOSYS)throw t}}function l(e){return{...e?{stat:e}:{},len:0,loaded:!1,dirty:!1,openCount:0}}function u(e,n,r){let o=t.createNode(e,n,a(r),0);return o.node_ops=i.node,o.stream_ops=i.stream,o.live=l(r),o}function d(e){if(e.live.orphan)return{...e.live.stat,size:e.live.len};if(!e.live.stat){let t=s(()=>o(e).lstat(r(e)));e.live.stat=t,e.mode=a(t)}return e.live.stat}function f(e,t){let n=r(e);return n===`/`?`/${t}`:`${n}/${t}`}function p(e){let t=e.live;if(t.loaded)return;let n=s(()=>o(e).readFile(r(e)));t.data=n,t.len=n.length,t.loaded=!0}function m(e,t){let n=e.live,r=n.data??new Uint8Array;if(r.length>=t)return r;let i=new Uint8Array(Math.max(t,r.length*2,256));return i.set(r.subarray(0,n.len)),n.data=i,i}function h(e){let t=e.live;if(!t.dirty||!t.data||t.orphan)return;let n=t.data.slice(0,t.len);s(()=>o(e).writeFile(r(e),n)),t.dirty=!1,t.stat=void 0}function g(e,t){let n=e.live;if(n.openCount>0){t>0?p(e):n.loaded=!0;let r=m(e,t);t>n.len&&r.fill(0,n.len,t),n.len=t,n.dirty=!0;return}let i=r(e),a=new Uint8Array(t);if(t>0){let n=s(()=>o(e).readFile(i));a.set(n.subarray(0,Math.min(t,n.length)))}s(()=>o(e).writeFile(i,a)),n.stat=void 0}return{Fs:t,bridgeOf:o,call:s,metadataCall:c,makeNode:u,statOf:d,childPath:f,ensureLoaded:p,ensureCapacity:m,flushNode:h,truncate:g}}function c(n){let{Fs:a,bridgeOf:s,call:c,metadataCall:l,makeNode:u,statOf:d,childPath:f,flushNode:p,truncate:m}=n,{ensureLoaded:h}=n;return{getattr(e){let t=d(e),n=e.live,o=a.isDir(e.mode)?4096:n.loaded?n.len:t.size,s=new Date(t.mtimeMs??0);return{dev:1,ino:t.ino??i(r(e)),mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:o,atime:s,mtime:s,ctime:s,blksize:4096,blocks:Math.ceil(o/4096)}},setattr(e,n){if(e.live.orphan){n.mode!==void 0&&n.mode!==null&&(e.mode=e.mode&-4096|n.mode&t),n.size!==void 0&&n.size!==null&&m(e,n.size);return}let i=r(e);if(n.mode!==void 0&&n.mode!==null){let r=n.mode&t;r!==(e.mode&t)&&(l(()=>s(e).chmod(i,r)),e.mode=e.mode&-4096|r)}n.size!==void 0&&n.size!==null&&a.isFile(e.mode)&&m(e,n.size);let c=o(n.mtime)??n.timestamp;if(c!==void 0){let t=o(n.atime)??c;p(e),l(()=>s(e).utimes(i,t,c))}e.live.stat=void 0},lookup(e,t){let n=c(()=>s(e).lstat(f(e,t)));return u(e,t,n)},mknod(t,n,r){let i=f(t,n);if(a.isDir(r))c(()=>s(t).mkdir(i));else if(a.isFile(r))c(()=>s(t).writeFile(i,new Uint8Array));else throw new a.ErrnoError(e.EPERM);let o=u(t,n,{isFile:a.isFile(r),isDirectory:a.isDir(r),isSymbolicLink:!1,size:0,mode:r,mtimeMs:Date.now()});return o.live.stat=void 0,o},rename(e,t,n){let i=r(e),o=f(t,n);p(e),c(()=>s(e).rename(i,o));try{let r=a.lookupNode?.(t,n);r&&r!==e&&a.hashRemoveNode?.(r)}catch{}e.name=n,e.live.stat=void 0},unlink(e,t){let n;try{let r=a.lookupNode?.(e,t);r&&r.live?.openCount>0&&a.isFile(r.mode)&&(n=r)}catch{}n&&(d(n),h(n)),c(()=>s(e).unlink(f(e,t))),n&&(n.live.orphan=!0)},rmdir(e,t){c(()=>s(e).rmdir(f(e,t)))},readdir(e){return[`.`,`..`,...c(()=>s(e).readdir(r(e)))]},symlink(e,t,n){let r=f(e,t);return c(()=>s(e).symlink(n,r)),u(e,t,{isFile:!1,isDirectory:!1,isSymbolicLink:!0,size:n.length})},readlink(t){if(!a.isLink(t.mode))throw new a.ErrnoError(e.EINVAL);return c(()=>s(t).readlink(r(t)))}}}function l(t){let{Fs:n,statOf:r,ensureLoaded:i,ensureCapacity:a,flushNode:o}=t;return{open(e){n.isFile(e.node.mode)&&e.node.live.openCount++},dup(e){n.isFile(e.node.mode)&&e.node.live.openCount++},close(e){let t=e.node;if(!n.isFile(t.mode))return;let r=t.live;if(r.openCount=Math.max(0,r.openCount-1),!(r.openCount>0))try{o(t)}finally{r.data=void 0,r.len=0,r.loaded=!1}},read(t,r,a,o,s){let c=t.node;if(n.isDir(c.mode))throw new n.ErrnoError(e.EISDIR);i(c);let l=c.live;if(s>=l.len||o<=0)return 0;let u=Math.min(o,l.len-s);return new Uint8Array(r.buffer,r.byteOffset+a,u).set(l.data.subarray(s,s+u)),u},write(t,r,o,s,c){let l=t.node;if(n.isDir(l.mode))throw new n.ErrnoError(e.EISDIR);if(s<=0)return 0;i(l);let u=l.live,d=c+s,f=a(l,d);return c>u.len&&f.fill(0,u.len,c),f.set(new Uint8Array(r.buffer,r.byteOffset+o,s),c),u.len=Math.max(u.len,d),u.dirty=!0,s},llseek(t,i,a){let o=i;if(a===1)o+=t.position;else if(a===2&&n.isFile(t.node.mode)){let e=t.node.live;o+=e.loaded?e.len:r(t.node).size}if(o<0)throw new n.ErrnoError(e.EINVAL);return o},fsync(e){o(e.node)}}}function u(t){let n=new Set,r={},i=s(t,r),a=c(i),o=l(i);return r.node=a,r.stream=o,{mounts:n,node_ops:a,stream_ops:o,mount(r){let a=i.call(()=>r.opts.bridge.stat(r.opts.root));if(!a.isDirectory)throw new t.ErrnoError(e.ENOTDIR);let o=i.makeNode(null,`/`,a);return n.add(r),o}}}function d(e,t){return!!t&&e.mounts.has(t.mount)}function f(e,t){for(let i of e.nameTable??[])for(let a=i;a;a=a.name_next??null)if(!(!d(t,a)||!a.live.dirty||!a.live.data))try{let e=a.live.data.slice(0,a.live.len);a.mount.opts.bridge.writeFile(r(a),e),a.live.dirty=!1}catch(t){throw n(e,t)}}function p(e,t){let n=e.nameTable??[],r=[];for(let e of n)for(let n=e;n;n=n.name_next??null){if(!d(t,n))continue;let e=n.live;e.stat=void 0,e.openCount===0?n!==n.mount.root&&r.push(n):e.loaded&&!e.dirty&&(e.data=void 0,e.len=0,e.loaded=!1)}if(e.hashRemoveNode)for(let t of r)e.hashRemoveNode(t)}function m(e){let t=[...new Set(e.map(e=>e.replace(/\/+$/,``)||`/`))].sort();return t.filter(e=>!t.some(t=>t!==e&&(t===`/`||e.startsWith(`${t}/`))))}function h(e){if(e instanceof Error)return e.message;let t=e?.errno;return typeof t==`number`?`errno ${t}`:String(e)}function g(e,t,n,r){let i=e.filesystems.SLICC_LIVE_FS??u(e);e.filesystems.SLICC_LIVE_FS=i;let a=[];for(let o of m(n))if(o!==`/`)try{e.mkdirTree(o),e.mount(i,{root:o,bridge:t},o),a.push(o)}catch(e){r(`live VFS mount of ${o} failed: ${h(e)}`)}return{plugin:i,mounted:a}}function _(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function v(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||!(typeof t.command==`string`||_(t.command)))return null;let n=t.env&&typeof t.env==`object`&&!Array.isArray(t.env)?Object.fromEntries(Object.entries(t.env).filter(e=>typeof e[1]==`string`)):void 0;return{command:t.command,...typeof t.cwd==`string`?{cwd:t.cwd}:{},...n?{env:n}:{},...typeof t.input==`string`?{input:t.input}:{},...typeof t.timeoutMs==`number`?{timeoutMs:t.timeoutMs}:{}}}function y(e){return{run(t){let n=v(t);if(!n)return JSON.stringify({error:`EINVAL`,message:`malformed request`});let r;e.beforeExec();try{r=e.exec.run(n.command,{...n.input===void 0?{}:{input:n.input},...n.cwd===void 0?{}:{cwd:n.cwd},...n.env===void 0?{}:{env:n.env},...n.timeoutMs===void 0?{}:{timeout:n.timeoutMs}})}catch(e){let t=e?.code;r={error:typeof t==`string`?t:`EIO`,message:e instanceof Error?e.message:String(e)}}finally{e.afterExec()}return JSON.stringify(r)}}}const b=String.raw`
2
+ def __slicc_install_subprocess():
3
+ import errno, io, itertools, json, os, subprocess, sys
4
+ import _slicc_proc
5
+
6
+ PIPE, STDOUT, DEVNULL = subprocess.PIPE, subprocess.STDOUT, subprocess.DEVNULL
7
+ pids = itertools.count(1000)
8
+
9
+ def to_str(a):
10
+ a = os.fspath(a)
11
+ return a.decode('utf-8', 'surrogateescape') if isinstance(a, bytes) else a
12
+
13
+ class _StdinPipe(io.BytesIO):
14
+ def __init__(self, proc):
15
+ super().__init__()
16
+ self._proc = proc
17
+ def close(self):
18
+ if not self.closed:
19
+ data = self.getvalue()
20
+ super().close()
21
+ self._proc._start(data)
22
+
23
+ class SliccPopen:
24
+ def __init__(self, args, bufsize=-1, executable=None, stdin=None, stdout=None,
25
+ stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None,
26
+ env=None, universal_newlines=None, startupinfo=None, creationflags=0,
27
+ restore_signals=True, start_new_session=False, pass_fds=(), *,
28
+ user=None, group=None, extra_groups=None, encoding=None, errors=None,
29
+ text=None, umask=-1, pipesize=-1, process_group=None):
30
+ self.args = args
31
+ self.pid = next(pids)
32
+ self.returncode = None
33
+ self.text_mode = bool(text or universal_newlines or encoding or errors)
34
+ self._encoding = encoding or 'utf-8'
35
+ self._errors = errors or 'strict'
36
+ if shell:
37
+ command = to_str(args if isinstance(args, (str, bytes)) else args[0])
38
+ else:
39
+ argv = [args] if isinstance(args, (str, bytes, os.PathLike)) else list(args)
40
+ command = [to_str(a) for a in argv]
41
+ if executable is not None:
42
+ command[0] = to_str(executable)
43
+ self._shell = bool(shell)
44
+ self._command = command
45
+ self._cwd = to_str(cwd) if cwd is not None else os.getcwd()
46
+ self._env = {to_str(k): to_str(v) for k, v in (os.environ if env is None else env).items()}
47
+ self._stdout_to, self._stderr_to = stdout, stderr
48
+ self.stdout = self.stderr = None
49
+ self._out = self._err = b''
50
+ self.stdin = None
51
+ if stdin == PIPE:
52
+ self.stdin = _StdinPipe(self)
53
+ if self.text_mode:
54
+ self.stdin = io.TextIOWrapper(self.stdin, encoding=self._encoding,
55
+ errors=self._errors, write_through=True)
56
+ return
57
+ data = None
58
+ if stdin not in (None, DEVNULL):
59
+ data = os.read(stdin, 1 << 30) if isinstance(stdin, int) else stdin.read()
60
+ if isinstance(data, str):
61
+ data = data.encode(self._encoding, self._errors)
62
+ self._start(data)
63
+
64
+ def _start(self, data, timeout=None):
65
+ if self.returncode is not None:
66
+ return
67
+ req = {'command': self._command, 'cwd': self._cwd, 'env': self._env}
68
+ if data:
69
+ req['input'] = data.decode('utf-8', 'surrogateescape')
70
+ if timeout is not None:
71
+ req['timeoutMs'] = int(timeout * 1000)
72
+ reply = json.loads(_slicc_proc.run(json.dumps(req)))
73
+ if 'error' in reply:
74
+ code = getattr(errno, reply['error'], errno.EIO)
75
+ raise OSError(code, reply.get('message') or os.strerror(code))
76
+ out = reply['stdout'].encode('utf-8', 'surrogateescape')
77
+ err = reply['stderr'].encode('utf-8', 'surrogateescape')
78
+ code = reply['exitCode']
79
+ if (not self._shell and code == 127 and b'command not found' in err):
80
+ raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), self._command[0])
81
+ if self._stderr_to == STDOUT:
82
+ out, err = out + err, b''
83
+ self._out = self._route(out, self._stdout_to, sys.stdout)
84
+ self._err = self._route(err, self._stderr_to, sys.stderr)
85
+ if self._stdout_to == PIPE:
86
+ self.stdout = self._pipe(self._out)
87
+ if self._stderr_to == PIPE:
88
+ self.stderr = self._pipe(self._err)
89
+ self.returncode = code
90
+
91
+ def _route(self, data, target, inherit):
92
+ if target == PIPE:
93
+ return data
94
+ if target is None:
95
+ if data:
96
+ inherit.write(data.decode('utf-8', 'replace'))
97
+ inherit.flush()
98
+ elif target not in (DEVNULL, STDOUT):
99
+ if isinstance(target, int):
100
+ os.write(target, data)
101
+ elif isinstance(target, io.TextIOBase):
102
+ target.write(data.decode('utf-8', 'replace'))
103
+ else:
104
+ target.write(data)
105
+ return b''
106
+
107
+ def _pipe(self, data):
108
+ if self.text_mode:
109
+ return io.StringIO(data.decode(self._encoding, self._errors))
110
+ return io.BytesIO(data)
111
+
112
+ def communicate(self, input=None, timeout=None):
113
+ if self.returncode is None:
114
+ if isinstance(input, str):
115
+ input = input.encode(self._encoding, self._errors)
116
+ if self.stdin is not None and not self.stdin.closed:
117
+ raw = self.stdin.buffer if isinstance(self.stdin, io.TextIOWrapper) else self.stdin
118
+ if input:
119
+ raw.write(input)
120
+ input = raw.getvalue()
121
+ io.BytesIO.close(raw)
122
+ self._start(input, timeout)
123
+ out = self.stdout.read() if self.stdout is not None else None
124
+ err = self.stderr.read() if self.stderr is not None else None
125
+ return out, err
126
+
127
+ def wait(self, timeout=None):
128
+ if self.returncode is None:
129
+ self.communicate(timeout=timeout)
130
+ return self.returncode
131
+
132
+ def poll(self):
133
+ # Never starts work, like CPython: a child still waiting for its
134
+ # stdin=PIPE input has not run yet, so it is "still running".
135
+ # A started child always ran to completion.
136
+ return self.returncode
137
+
138
+ def send_signal(self, sig):
139
+ pass
140
+
141
+ def terminate(self):
142
+ pass
143
+
144
+ def kill(self):
145
+ pass
146
+
147
+ def __enter__(self):
148
+ return self
149
+
150
+ def __exit__(self, *exc):
151
+ for f in (self.stdout, self.stderr, self.stdin):
152
+ if f is not None and not f.closed:
153
+ f.close()
154
+ self.wait()
155
+
156
+ def __repr__(self):
157
+ return f'<SliccPopen: returncode: {self.returncode} args: {self.args!r}>'
158
+
159
+ def system(command):
160
+ code = SliccPopen(command, shell=True).wait()
161
+ return (code & 0xff) << 8
162
+
163
+ def execute(file, args, env=None):
164
+ argv = [to_str(a) for a in args]
165
+ if not argv:
166
+ raise ValueError('exec: argv must not be empty')
167
+ sys.stdout.flush()
168
+ sys.stderr.flush()
169
+ # Never returns, like a real exec: SystemExit skips except Exception.
170
+ raise SystemExit(SliccPopen([to_str(file)] + argv[1:], env=env).wait())
171
+
172
+ subprocess.Popen = SliccPopen
173
+ os.system = system
174
+ # os.execl* call these through the os module, so they follow.
175
+ os.execv = os.execvp = lambda file, args: execute(file, args)
176
+ os.execve = os.execvpe = lambda file, args, env: execute(file, args, env)
177
+
178
+ __slicc_install_subprocess()
179
+ del __slicc_install_subprocess
180
+ `;function x(e,t){e.registerJsModule(`_slicc_proc`,y(t)),e.runPython(b)}const S=`exec`,C=6e5,w=5e3;function T(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function E(e){let t=O(e);if(k(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw T(`EIO`,e.label);A(t,e.label)}function D(e){let t=E(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw T(`EIO`,e.label)}}function O(e){let t=new XMLHttpRequest;try{t.open(e.method,e.url,!1),t.responseType=`arraybuffer`,t.timeout=e.timeoutMs,t.setRequestHeader(`x-slicc-fs-token`,e.token),e.body?t.send(new Uint8Array(e.body)):t.send()}catch{throw T(`EIO`,e.label)}return t}function k(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function A(e,t){throw T(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function j(e){let t=e;return!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`?null:{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size,...typeof t.mode==`number`?{mode:t.mode}:{},...typeof t.mtimeMs==`number`?{mtimeMs:t.mtimeMs}:{},...typeof t.ino==`number`?{ino:t.ino}:{}}}function M(e,t){return T(e,`sync-fs bridge, '${t}'`)}function N(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function P(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:N(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return E(r(`GET`,e))},writeFile(e,t){E(r(`POST`,e,t))},stat(e){let t=j(D(r(`GET`,e,void 0,`stat`)));if(!t)throw M(`EIO`,e);return t},lstat(e){let t=j(D(r(`GET`,e,void 0,`lstat`)));if(!t)throw M(`EIO`,e);return t},readdir(e){let t=D(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw M(`EIO`,e);return t},exists(e){let t=D(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw M(`EIO`,e);return t},mkdir(e){E(r(`POST`,e,void 0,`mkdir`))},rm(e){E(r(`POST`,e,void 0,`rm`))},rename(e,t){E(r(`POST`,e,F({arg2:t}),`rename`))},unlink(e){E(r(`POST`,e,F({}),`unlink`))},rmdir(e){E(r(`POST`,e,F({}),`rmdir`))},symlink(e,t){E(r(`POST`,t,F({arg2:e}),`symlink`))},readlink(e){let t=D(r(`GET`,e,void 0,`readlink`));if(typeof t!=`string`)throw M(`EIO`,e);return t},chmod(e,t){E(r(`POST`,e,F({mode:t}),`chmod`))},utimes(e,t,n){E(r(`POST`,e,F({atimeMs:t,mtimeMs:n}),`utimes`))}}}function F(e){return new TextEncoder().encode(JSON.stringify(e))}function I(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function L(e){return e===void 0||e===0}function R(e,t){return I(e)?Math.min(e,C):Math.min(t,C)}new TextEncoder;const z=new TextDecoder;function B(e,t){switch(e){case 1:return{ok:!0,kind:`bytes`,bytes:t};case 3:return{ok:!0,kind:`void`};case 2:try{return{ok:!0,kind:`json`,json:JSON.parse(z.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(z.decode(t)),n=typeof e.errno==`string`&&/^E[A-Z]+$/.test(e.errno)?e.errno:`EIO`;return{ok:!1,errno:n,message:String(e.message??n)}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed errno payload`}}default:return{ok:!1,errno:`EIO`,message:`sync-sab: unknown status ${e}`}}}function V(e){if(e.byteLength<4160)throw Error(`sync-sab: buffer too small (${e.byteLength} < 4160)`);return{header:new Int32Array(e,0,16),window:new Uint8Array(e,64)}}function H(e,t,n={}){let{header:r,window:i}=V(e),a=n.wait??((e,t,n,r)=>Atomics.wait(e,t,n,r)),o=n.now??(()=>performance.now()),s=0;function c(e,t,n){for(;;){let i=t-o();if(i<=0)throw T(`ETIMEDOUT`,n);if(a(r,0,1,i),Atomics.load(r,0)===2&&Atomics.load(r,1)===e)return;Atomics.load(r,0)===2&&Atomics.store(r,0,1)}}return{call(e,n,a){let l=++s,u=o()+n,d=null,f=0,p=0;try{for(;;){Atomics.store(r,0,1);let n=p===0?{type:`sync-sab-req`,id:l,req:e}:{type:`sync-sab-next`,id:l,offset:p};try{t.postMessage(n)}catch{throw T(`EIO`,a)}c(l,u,a);let o=Atomics.load(r,3),s=Atomics.load(r,4);if(Atomics.load(r,5)!==p||s<0||o<0||p+s>o)throw T(`EIO`,a);if(d===null&&(f=Atomics.load(r,2),d=new Uint8Array(o)),d.set(i.subarray(0,s),p),p+=s,p>=o)break;if(s===0)throw T(`EIO`,a)}}finally{Atomics.store(r,0,0)}return B(f,d)}}}function U(e,t){return T(e,`sync-sab bridge, '${t}'`)}function W(e,t={}){let n=t.timeoutMs??25e3;function r(t,r){let i=e.call(t,n,`sync-sab bridge, '${r}'`);if(!i.ok)throw U(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw U(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw U(`EIO`,t)}return{readFile:e=>i({op:`read`,path:e},e),writeFile:(e,t)=>{r({op:`write`,path:e,body:t},e)},stat:e=>{let t=j(a({op:`stat`,path:e},e));if(!t)throw U(`EIO`,e);return t},lstat:e=>{let t=j(a({op:`lstat`,path:e},e));if(!t)throw U(`EIO`,e);return t},readdir:e=>{let t=a({op:`readdir`,path:e},e);if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw U(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw U(`EIO`,e);return t},mkdir:e=>{r({op:`mkdir`,path:e},e)},rm:e=>{r({op:`rm`,path:e},e)},rename:(e,t)=>{r({op:`rename`,path:e,arg2:t},e)},unlink:e=>{r({op:`unlink`,path:e},e)},rmdir:e=>{r({op:`rmdir`,path:e},e)},symlink:(e,t)=>{r({op:`symlink`,path:t,arg2:e},t)},readlink:e=>{let t=a({op:`readlink`,path:e},e);if(typeof t!=`string`)throw U(`EIO`,e);return t},chmod:(e,t)=>{r({op:`chmod`,path:e,mode:t},e)},utimes:(e,t,n)=>{r({op:`utimes`,path:e,atimeMs:t,mtimeMs:n},e)}}}function G(e){return(t,n,r)=>{let i=e.call({...t,channel:S},n+w,r);if(!i.ok)throw T(i.errno,r);let a=i.kind===`json`?i.json:null;if(!a||typeof a.stdout!=`string`||typeof a.stderr!=`string`||typeof a.exitCode!=`number`)throw T(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}function K(e,t){if(!(!e.syncSab||!q()))return H(e.syncSab,t)}function q(){return typeof Atomics<`u`&&typeof Atomics.wait==`function`}function J(e,t){return t?W(t):e.syncFsToken?P(e.syncFsToken):void 0}function Y(e){return(t,n,r)=>{let i=D({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:S})),timeoutMs:n+w,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw T(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function X(e,t){let n=e.getMutations();for(let e of n.deleted)t.rm(e);for(let e of n.created)e.isDirectory?t.mkdir(e.path):t.writeFile(e.path,e.content);for(let e of n.modified)t.writeFile(e.path,e.content);e.resetBaseline()}function Z(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??Y(e);return{run(e,o={}){let s=r?.wasUsed()===!0&&i!==void 0;s&&X(r,i);let c=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,l=t.noDefaultDeadline===!0&&L(o.timeout),u=l?1/0:R(o.timeout,n),d={command:e,...o.args===void 0?{}:{args:o.args},...o.input===void 0?{}:{stdin:o.input},...o.cwd===void 0?{}:{cwd:o.cwd},...o.env===void 0?{}:{env:o.env},...l?{}:{timeoutMs:u}};try{return a(d,u,c)}finally{s&&r.invalidate()}}}}function Q(e,t,n,r){if(t.env?.SLICC_PY_FS===`opfs`)return;let i=K(t,n),a=J(t,i);if(!a||!t.syncFsToken)return;let o=e.FS,{plugin:s,mounted:c}=g(o,a,t.pyodideMountDirs??[t.cwd,`/tmp`],r);return c.length===0?void 0:(x(e,{exec:Z(t.syncFsToken,{...i?{transport:G(i),noDefaultDeadline:!0}:{}}),beforeExec:()=>f(o,s),afterExec:()=>p(o,s)}),{plugin:s,mounted:c,flush:()=>f(o,s)})}export{Q as mountPyLiveVfs};
@@ -219,7 +219,7 @@ import _slicc_fs_js as _bridge
219
219
  _build_slicc_module(_bridge)
220
220
  del _build_slicc_module
221
221
  del _bridge
222
- `)}const K=ie(`pyodide`,`314.0.6`),me=`https://cdn.jsdelivr.net/pyodide/v${K}/full/`,he=`pyodide is not installed in node_modules: run \`ipk add pyodide@${K}\` (no network fallback)`,q={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function ge(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${q.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${q.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${q.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${q.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function _e(e,t){let n=e+q.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function ve(e,t,n){let r=await ge(n,t);if(!r)throw Error(he);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),o=`slicc-pyodide://local/${crypto.randomUUID()}/`,s=_e(o,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:S(`/workspace/python_wheels/`)})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function ye(e,t,n=()=>import(`./pyodide-BC3toCIx.js`)){let r=[],i=[],a=new de(t),o;try{let t=await n();o=e.pyodideAssetRoot?await ve(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=[],l,u;try{await be(o,a,s,xe(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-CjvQr88H.js`);l=n(o,e,t,s),l||(c=await ke(o,e,s),await Ae(o,e,s)),await De(o,a,e,s),await je(o,a,s);try{o.FS.chdir(e.cwd)}catch{}Ne(o,e,r,i),u=await Ie(o,i),l?Fe(l,s):await Le(c,e,a,s)}catch(e){a.dispose();let n={type:`realm-error`,message:`${e instanceof Error?e.message:String(e)}${i.length?`\n${i.join(``)}`:``}`};t.postMessage(n);return}a.dispose();let d={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:u};t.postMessage(d)}const J=`/workspace/python_wheels`;async function be(e,t,n,r){await Se(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${Q(e)}`)}}function xe(e){return e?`${e}/${q.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const Y=1e4,X=new WeakMap;function Se(e,t,n){let r=X.get(e);if(r!=null)return r;let i=Ce(e,t,n);return X.set(e,i),i}async function Ce(e,t,n){let r;try{if(!await e.call(`vfs`,`exists`,[n]))return;let t=await e.call(`vfs`,`readFile`,[n]),i=JSON.parse(t);for(let[e,t]of Object.entries(i.packages??{}))if(t?.file_name&&f(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${Q(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${J}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await u(we(e),{url:`${me}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:Y});await e.call(`vfs`,`mkdir`,[J]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${Q(e)}`)}}function we(e){return async(t,n)=>{let r={method:n?.method??`GET`,...n?.headers?{headers:n.headers}:{},...n?.body===void 0?{}:{body:n.body}},i=await Te(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??Y,t);return{status:i.status,statusText:i.statusText,headers:i.headers,body:i.body instanceof Uint8Array?i.body:new Uint8Array(i.body),url:i.url}}}function Te(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`request to ${n} timed out after ${t}ms`)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))}function Ee(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function De(e,t,n,r){let i=Ee(t),a;try{a=await ee(i,n.cwd)}catch(e){r(`manifest discovery failed: ${Q(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([y(i,a),b(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${Q(e)}`);return}let c=new Map;for(let e of s)c.set(f(e.name),e);for(let t of o){let{name:n}=p(t);if(!n)continue;let i=c.get(f(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Oe(e,i,r)}}async function Oe(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;case`pypi`:try{let n=`${J}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function ke(e,t,n){if(t.opfsMountDbName===void 0)return[];let r=t.pyodideMountDirs??[t.cwd,`/tmp`],i=t.mountPoints??[],a=new Set(i.map(e=>e.path));try{return(await Be(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${Q(e)}`),[]}}async function Ae(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{G(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${Q(e)}`)}try{await ue(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${Q(e)}`)}}}async function je(e,t,n){try{await pe(e,t)}catch(e){n(`slicc.fs registration failed: ${Q(e)}`)}}function Z(e){let t=new TextDecoder(`utf-8`,{ignoreBOM:!0});return{write:n=>{let r=t.decode(n,{stream:!0});return r&&e.push(r),n.length}}}function Me(e){try{e.runPython(`import sys as __slicc_sys
222
+ `)}const K=ie(`pyodide`,`314.0.6`),me=`https://cdn.jsdelivr.net/pyodide/v${K}/full/`,he=`pyodide is not installed in node_modules: run \`ipk add pyodide@${K}\` (no network fallback)`,q={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function ge(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${q.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${q.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${q.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${q.lockJson}`])]);return{asmJsSource:n,asmWasmBytes:r instanceof Uint8Array?r:new Uint8Array(r),stdlibBytes:i instanceof Uint8Array?i:new Uint8Array(i),lockJsonString:a}}catch{return null}}function _e(e,t){let n=e+q.asmWasm,r=globalThis.fetch,i=!0,a=(e,i)=>(typeof e==`string`?e:e instanceof URL?e.href:e.url)===n?Promise.resolve(new Response(t,{headers:{"Content-Type":`application/wasm`}})):r(e,i);return globalThis.fetch=a,{restore:()=>{i&&(i=!1,globalThis.fetch===a&&(globalThis.fetch=r))}}}async function ve(e,t,n){let r=await ge(n,t);if(!r)throw Error(he);let i=URL.createObjectURL(new Blob([r.asmJsSource],{type:`text/javascript`})),a=URL.createObjectURL(new Blob([r.stdlibBytes],{type:`application/zip`})),o=`slicc-pyodide://local/${crypto.randomUUID()}/`,s=_e(o,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:S(`/workspace/python_wheels/`)})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function ye(e,t,n=()=>import(`./pyodide-BC3toCIx.js`)){let r=[],i=[],a=new de(t),o;try{let t=await n();o=e.pyodideAssetRoot?await ve(t,e.pyodideAssetRoot,a):await t.loadPyodide({indexURL:e.pyodideIndexURL})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e=>{i.push(`Warning: ${e}\n`)},c=[],l,u;try{await be(o,a,s,xe(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-D_X8Ts9M.js`);l=n(o,e,t,s),l||(c=await ke(o,e,s),await Ae(o,e,s)),await De(o,a,e,s),await je(o,a,s);try{o.FS.chdir(e.cwd)}catch{}Ne(o,e,r,i),u=await Ie(o,i),l?Fe(l,s):await Le(c,e,a,s)}catch(e){a.dispose();let n={type:`realm-error`,message:`${e instanceof Error?e.message:String(e)}${i.length?`\n${i.join(``)}`:``}`};t.postMessage(n);return}a.dispose();let d={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:u};t.postMessage(d)}const J=`/workspace/python_wheels`;async function be(e,t,n,r){await Se(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${Q(e)}`)}}function xe(e){return e?`${e}/${q.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const Y=1e4,X=new WeakMap;function Se(e,t,n){let r=X.get(e);if(r!=null)return r;let i=Ce(e,t,n);return X.set(e,i),i}async function Ce(e,t,n){let r;try{if(!await e.call(`vfs`,`exists`,[n]))return;let t=await e.call(`vfs`,`readFile`,[n]),i=JSON.parse(t);for(let[e,t]of Object.entries(i.packages??{}))if(t?.file_name&&f(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${Q(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${J}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await u(we(e),{url:`${me}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:Y});await e.call(`vfs`,`mkdir`,[J]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${Q(e)}`)}}function we(e){return async(t,n)=>{let r={method:n?.method??`GET`,...n?.headers?{headers:n.headers}:{},...n?.body===void 0?{}:{body:n.body}},i=await Te(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??Y,t);return{status:i.status,statusText:i.statusText,headers:i.headers,body:i.body instanceof Uint8Array?i.body:new Uint8Array(i.body),url:i.url}}}function Te(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(`request to ${n} timed out after ${t}ms`)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))}function Ee(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function De(e,t,n,r){let i=Ee(t),a;try{a=await ee(i,n.cwd)}catch(e){r(`manifest discovery failed: ${Q(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([y(i,a),b(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${Q(e)}`);return}let c=new Map;for(let e of s)c.set(f(e.name),e);for(let t of o){let{name:n}=p(t);if(!n)continue;let i=c.get(f(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Oe(e,i,r)}}async function Oe(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;case`pypi`:try{let n=`${J}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${Q(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function ke(e,t,n){if(t.opfsMountDbName===void 0)return[];let r=t.pyodideMountDirs??[t.cwd,`/tmp`],i=t.mountPoints??[],a=new Set(i.map(e=>e.path));try{return(await Be(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${Q(e)}`),[]}}async function Ae(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{G(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${Q(e)}`)}try{await ue(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${Q(e)}`)}}}async function je(e,t,n){try{await pe(e,t)}catch(e){n(`slicc.fs registration failed: ${Q(e)}`)}}function Z(e){let t=new TextDecoder(`utf-8`,{ignoreBOM:!0});return{write:n=>{let r=t.decode(n,{stream:!0});return r&&e.push(r),n.length}}}function Me(e){try{e.runPython(`import sys as __slicc_sys
223
223
  for __slicc_s in (__slicc_sys.stdout, __slicc_sys.stderr):
224
224
  try:
225
225
  __slicc_s.flush()
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./compat-Dy2zIWAW.js";import{t as n}from"./logger-DDBAeTLF.js";import{A as r,D as i,g as a,k as o}from"./account-store-DEEMsVyJ.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{i as c,t as l}from"./icons-dEBJiC8z.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=n(`quick-llm`);async function f(e){let n=a();if(!n)return d.debug(`No API key for active provider — skipping`),null;let i=r(),s=o(),c;if(c=e.modelId?b(i,e.modelId)??b(i,s):_(i,s),!c)return d.debug(`No model available for provider`,{providerId:i}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let r=(await t(c,{systemPrompt:e.system,messages:[l]},{apiKey:n,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return r.length>0?r:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,t){let n=i(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],a=y(r.id),o=n.filter(e=>v(e,r,a));return o.length===0?r:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,t){return i(e).find(e=>e.id===t)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./compat-Dy2zIWAW.js";import{t as n}from"./logger-DDBAeTLF.js";import{A as r,D as i,g as a,k as o}from"./account-store-DYJJCxJo.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{i as c,t as l}from"./icons-dEBJiC8z.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=n(`quick-llm`);async function f(e){let n=a();if(!n)return d.debug(`No API key for active provider — skipping`),null;let i=r(),s=o(),c;if(c=e.modelId?b(i,e.modelId)??b(i,s):_(i,s),!c)return d.debug(`No model available for provider`,{providerId:i}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let r=(await t(c,{systemPrompt:e.system,messages:[l]},{apiKey:n,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return r.length>0?r:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,t){let n=i(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],a=y(r.id),o=n.filter(e=>v(e,r,a));return o.length===0?r:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,t){return i(e).find(e=>e.id===t)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};