sliccy 6.185.0 → 6.186.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 (181) hide show
  1. package/dist/ui/.vite/manifest.json +212 -212
  2. package/dist/ui/assets/{SKILL-wvtABi3i.js → SKILL-nEVBLbup.js} +1 -1
  3. package/dist/ui/assets/__vite-browser-external-dhDtpJGG.js +1 -0
  4. package/dist/ui/assets/{account-store-C41qiTs8.js → account-store-6v1bQDLQ.js} +1 -1
  5. package/dist/ui/assets/{account-store-CdWvtLK5.js → account-store-CcHr-RmX.js} +1 -1
  6. package/dist/ui/assets/{adobe-pJP3L2S1.js → adobe-CuedqrHU.js} +1 -1
  7. package/dist/ui/assets/{adobe-Cuq2cJ2f.js → adobe-bNmHv86x.js} +1 -1
  8. package/dist/ui/assets/{agent-panels-Ca0HA81F.js → agent-panels-Ay3la2gk.js} +1 -1
  9. package/dist/ui/assets/{almost-bash-shell-headless-3-QEOXc2.js → almost-bash-shell-headless-B0d_S9Oq.js} +33 -33
  10. package/dist/ui/assets/{apply-layout-CKuJgZ53.js → apply-layout-Byhwt2rW.js} +1 -1
  11. package/dist/ui/assets/{apps-DZhY4wWQ.js → apps-DgZ3EWPl.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-DR1sAgZg.js → azure-openai-CRm40REo.js} +1 -1
  13. package/dist/ui/assets/{azure-openai-BWRYpShR.js → azure-openai-RJkx-u-g.js} +1 -1
  14. package/dist/ui/assets/{backend-hostfs-Bgb_DsUT.js → backend-hostfs-Cgvl-SCd.js} +1 -1
  15. package/dist/ui/assets/{bunny-probe-DwyMiB71.js → bunny-probe-8V1ePOla.js} +1 -1
  16. package/dist/ui/assets/{bunny-run-COGwXgvg.js → bunny-run-DYRf1zOt.js} +1 -1
  17. package/dist/ui/assets/{cdp-D8ppMyya.js → cdp-BBxx0ATR.js} +1 -1
  18. package/dist/ui/assets/{cerebras-Drhn15WH.js → cerebras-BId3sDRD.js} +1 -1
  19. package/dist/ui/assets/{cerebras-C_6PRb_m.js → cerebras-DDSDu3Od.js} +1 -1
  20. package/dist/ui/assets/{composer-speech-CJ5WxRmi.js → composer-speech-DZ3MG1aE.js} +1 -1
  21. package/dist/ui/assets/{connect-surface-B25ziPK_.js → connect-surface-PX6umLpO.js} +1 -1
  22. package/dist/ui/assets/{directed-approval-CHjy_veK.js → directed-approval-BGA8yp7A.js} +1 -1
  23. package/dist/ui/assets/{dist-BpNPANbz.js → dist-BMDfry7W.js} +1 -1
  24. package/dist/ui/assets/{dist-C-tO1Skg.js → dist-CaPMlUXZ.js} +1 -1
  25. package/dist/ui/assets/{dist-BX7il2y2.js → dist-Djwo0SK2.js} +1 -1
  26. package/dist/ui/assets/{dist-5YOibBa4.js → dist-RJwZ5Bse.js} +1 -1
  27. package/dist/ui/assets/{emscripten-vfs-hook-Dydz8mUS.js → emscripten-vfs-hook-C0ChBXC3.js} +1 -1
  28. package/dist/ui/assets/{emscripten-vfs-hook-BgKVsuWf.js → emscripten-vfs-hook-P-OE6hwk.js} +1 -1
  29. package/dist/ui/assets/{ensure-speech-assets-JOVdeAED.js → ensure-speech-assets-DtFEp33q.js} +1 -1
  30. package/dist/ui/assets/{fast-path-CG_eXz0M.js → fast-path-CriOTZyu.js} +1 -1
  31. package/dist/ui/assets/{frozen-archive-writer-XUf0GMRR.js → frozen-archive-writer-Dh8_Z5_n.js} +1 -1
  32. package/dist/ui/assets/{fs-CfJdpL5x.js → fs-CGiTiKri.js} +1 -1
  33. package/dist/ui/assets/{fs-DyrFPUp2.js → fs-CO_lYoFl.js} +2 -2
  34. package/dist/ui/assets/{gelatiere-store-DCvfmki0.js → gelatiere-store-C5B5_A_I.js} +1 -1
  35. package/dist/ui/assets/{gelatiere-unit-DcQlQ9QA.js → gelatiere-unit-DDoIdKsN.js} +1 -1
  36. package/dist/ui/assets/{github-J3Pos7xW.js → github-DQXgF3NF.js} +2 -2
  37. package/dist/ui/assets/{github-BH0fYYDC.js → github-Dpnp7Zzn.js} +1 -1
  38. package/dist/ui/assets/{github-auth-C0PAZtLa.js → github-auth-BpyLhcfb.js} +1 -1
  39. package/dist/ui/assets/{github-copilot-r7THpGrf.js → github-copilot-CThRDdd8.js} +1 -1
  40. package/dist/ui/assets/{github-copilot-GnnngJgc.js → github-copilot-DP5pe7qj.js} +1 -1
  41. package/dist/ui/assets/{github-install-bXSPtrJ8.js → github-install-BA-6no8b.js} +1 -1
  42. package/dist/ui/assets/{github-zip-CQ8Hranj.js → github-zip-a7OaDnVX.js} +1 -1
  43. package/dist/ui/assets/{hear-vBH6fz6J.js → hear-BZ0-BQlF.js} +1 -1
  44. package/dist/ui/assets/{help-BIRVuAQg.js → help-Pr1ZdIJh.js} +1 -1
  45. package/dist/ui/assets/icons-dEBJiC8z.js +1 -0
  46. package/dist/ui/assets/{installer-BIr2X4ZR.js → installer-CYYRFwXA.js} +1 -1
  47. package/dist/ui/assets/{js-realm-worker-xXM5hNmY.js → js-realm-worker-aPccyhNo.js} +7 -7
  48. package/dist/ui/assets/{jsh-executor-Sq-_s17Z.js → jsh-executor-B9v2eMrF.js} +3 -3
  49. package/dist/ui/assets/{jsh-runtime-extensions-DOE4hLxi.js → jsh-runtime-extensions-DiQ9SvKe.js} +1 -1
  50. package/dist/ui/assets/{kernel-worker-BfQfWWGY.js → kernel-worker-cLHttpvD.js} +10 -10
  51. package/dist/ui/assets/{lick-ws-bridge-1KGk00fU.js → lick-ws-bridge-BYJXmx3P.js} +1 -1
  52. package/dist/ui/assets/{lick-ws-bridge-Cb_x25TH.js → lick-ws-bridge-CDZEfnko.js} +1 -1
  53. package/dist/ui/assets/{live-session-curation-D2302oBw.js → live-session-curation-CEoLLRWg.js} +1 -1
  54. package/dist/ui/assets/{live-session-snapshot-MSEMhtzT.js → live-session-snapshot-BtgL_jlA.js} +1 -1
  55. package/dist/ui/assets/{local-llm-Drx0Pf5F.js → local-llm-BJq2Bcn4.js} +1 -1
  56. package/dist/ui/assets/{local-llm-C1bXK5E_.js → local-llm-Br1qdgFU.js} +1 -1
  57. package/dist/ui/assets/{main-ke7UzEyb.js → main-DGILx2J0.js} +3 -3
  58. package/dist/ui/assets/{main-cherry-DMGXCqlk.js → main-cherry-C38UDlPe.js} +1 -1
  59. package/dist/ui/assets/{memory-curation-seam-BQ0ag4HS.js → memory-curation-seam-CAzXvlEq.js} +1 -1
  60. package/dist/ui/assets/{memory-health-DOBolAoU.js → memory-health-ChAZtjeC.js} +1 -1
  61. package/dist/ui/assets/{memory-write-execute-iB7MTIuf.js → memory-write-execute-ct1TB2H5.js} +1 -1
  62. package/dist/ui/assets/{mount-C8_YWxvL.js → mount-7-ndJ7j_.js} +1 -1
  63. package/dist/ui/assets/{mount-sN1zOOQO.js → mount-Boe1RyV1.js} +3 -3
  64. package/dist/ui/assets/{new-session-Chf2aTIb.js → new-session-DaYVjckX.js} +2 -2
  65. package/dist/ui/assets/{oauth-bootstrap-DhxqRx6M.js → oauth-bootstrap-3Rp69xJf.js} +2 -2
  66. package/dist/ui/assets/{onboarding-orchestrator-CSUMNTNq.js → onboarding-orchestrator-BaNbt51M.js} +1 -1
  67. package/dist/ui/assets/{openai-codex-E3c2zrJK.js → openai-codex-CBECd3Ml.js} +1 -1
  68. package/dist/ui/assets/{openai-codex-LJJS3BN5.js → openai-codex-DRECU62x.js} +1 -1
  69. package/dist/ui/assets/{openrouter-HCWd3_Dv.js → openrouter-B6NE-wjS.js} +1 -1
  70. package/dist/ui/assets/{openrouter-B47ePBty.js → openrouter-BzFndudE.js} +1 -1
  71. package/dist/ui/assets/{openrouter-free-CndCA5W5.js → openrouter-free-BmWaYf2I.js} +1 -1
  72. package/dist/ui/assets/{openrouter-free-DEOSmXMR.js → openrouter-free-DypV34af.js} +1 -1
  73. package/dist/ui/assets/{openrouter-oauth-uaZxqhE3.js → openrouter-oauth-CeOxyshu.js} +1 -1
  74. package/dist/ui/assets/{openrouter-oauth-BN42fHf7.js → openrouter-oauth-H5pX0S04.js} +1 -1
  75. package/dist/ui/assets/{opfs-mount-DmHtfJvm.js → opfs-mount-7AGHXIll.js} +1 -1
  76. package/dist/ui/assets/{panel-rpc-handlers-DxnZUmep.js → panel-rpc-handlers-BC6MoTQL.js} +2 -2
  77. package/dist/ui/assets/{panelize-shell-S-7afGEn.js → panelize-shell-Bg6ZMkim.js} +1 -1
  78. package/dist/ui/assets/{pi-edit-execution-Y4T_bzrT.js → pi-edit-execution-C-LpdIZ8.js} +1 -1
  79. package/dist/ui/assets/{provider-Cz1V2WqO.js → provider-C0S6DmOh.js} +1 -1
  80. package/dist/ui/assets/{provider-DTffpEWN.js → provider-C2XK7sYM.js} +2 -2
  81. package/dist/ui/assets/{provider-settings-CxqviYt8.js → provider-settings-Dbll0xUg.js} +1 -1
  82. package/dist/ui/assets/provider-store-access-BrbtSBpX.js +1 -0
  83. package/dist/ui/assets/provider-store-access-vekyMcol.js +1 -0
  84. package/dist/ui/assets/{providers-jnPvVe9y.js → providers-LZyqU4Ib.js} +1 -1
  85. package/dist/ui/assets/{providers-DRo5rfSc.js → providers-rIBVxdW-.js} +2 -2
  86. package/dist/ui/assets/{py-live-vfs-Dm8bBjqR.js → py-live-vfs-BMEF0ECU.js} +1 -1
  87. package/dist/ui/assets/{py-live-vfs-DMc0LhCg.js → py-live-vfs-CvcPOToj.js} +1 -1
  88. package/dist/ui/assets/{py-realm-worker-BaO89JAR.js → py-realm-worker-CFlFWZqx.js} +1 -1
  89. package/dist/ui/assets/{pyodide-DY17DXNV.js → pyodide-BJoTGv9f.js} +2 -2
  90. package/dist/ui/assets/{quick-llm-DYIT2ufv.js → quick-llm-DDWR41Vn.js} +1 -1
  91. package/dist/ui/assets/{realm-inprocess-JkVFNdN8.js → realm-inprocess-Cwqt5DZc.js} +4 -4
  92. package/dist/ui/assets/realm-sync-transport-QD3YPwXN.js +1 -0
  93. package/dist/ui/assets/{recovery-screen-C_VP_tQT.js → recovery-screen-ci0gn_2f.js} +1 -1
  94. package/dist/ui/assets/{remote-terminal-view-Dhc7yeLL.js → remote-terminal-view-CPIeJDc7.js} +1 -1
  95. package/dist/ui/assets/{require-guards-DPf5QETL.js → require-guards-CHKfdRAj.js} +1 -1
  96. package/dist/ui/assets/{restore-Bc04Ic3P.js → restore-DvPL6e_R.js} +1 -1
  97. package/dist/ui/assets/{run-C1e4W7pJ.js → run-B-b1oASQ.js} +1 -1
  98. package/dist/ui/assets/{run-D-ECpM63.js → run-BXtEkg8U.js} +2 -2
  99. package/dist/ui/assets/{run-DjWLQRmi.js → run-ChZe2ZA3.js} +1 -1
  100. package/dist/ui/assets/{run-L6Ylv9dF.js → run-CvD6Q-4G.js} +1 -1
  101. package/dist/ui/assets/{run-D65zpTOz.js → run-D8WG-d7m.js} +2 -2
  102. package/dist/ui/assets/{run-D4l6XlAu.js → run-DCB_d0xn.js} +2 -2
  103. package/dist/ui/assets/{run-Bd-jYaDM.js → run-DwEWu4jG.js} +2 -2
  104. package/dist/ui/assets/{run-BRPVL491.js → run-LhNhUI2h.js} +1 -1
  105. package/dist/ui/assets/{run-CG3zbaSU.js → run-LzvzEQ4r.js} +1 -1
  106. package/dist/ui/assets/{session-command-memory-Ci1Zf9vr.js → session-command-memory-o34mvSgm.js} +2 -2
  107. package/dist/ui/assets/{session-jsonl-COpl-CLY.js → session-jsonl-BVDdqbYt.js} +1 -1
  108. package/dist/ui/assets/{session-jsonl-BA0osLaK.js → session-jsonl-BmvWBXUE.js} +1 -1
  109. package/dist/ui/assets/{session-search-index-CdHuMIG2.js → session-search-index-BYp76BAQ.js} +1 -1
  110. package/dist/ui/assets/{setup-feature-flags-remote-DtQ886Eg.js → setup-feature-flags-remote-wwQtgwUA.js} +1 -1
  111. package/dist/ui/assets/{setup-model-catalog-CZ582M7C.js → setup-model-catalog-Dp_LwFlS.js} +1 -1
  112. package/dist/ui/assets/{signed-fetch-BR0AMgn_.js → signed-fetch-D_xzSHY9.js} +1 -1
  113. package/dist/ui/assets/{silent-renew-backoff-CYQP7u_w.js → silent-renew-backoff-bHmQ4VIv.js} +1 -1
  114. package/dist/ui/assets/slicc-editor-Bwxbi0cp.js +1 -0
  115. package/dist/ui/assets/slicc-editor-DZXa2pZw.js +23 -0
  116. package/dist/ui/assets/slicc-version-Zk7JuEi9.js +1 -0
  117. package/dist/ui/assets/{snapshot-DkZ54_ve.js → snapshot-BMRjMbaC.js} +1 -1
  118. package/dist/ui/assets/{snapshot-features-tcAtohfL.js → snapshot-features-9wIqroXe.js} +1 -1
  119. package/dist/ui/assets/{soundscape-DxCVDpTl.js → soundscape-CFr9AkiH.js} +1 -1
  120. package/dist/ui/assets/{speak-BqdHQaW1.js → speak-DHMYZvDt.js} +1 -1
  121. package/dist/ui/assets/{sprinkle-manager-BuTuVoeH.js → sprinkle-manager-XUIO_g_c.js} +1 -1
  122. package/dist/ui/assets/{sprinkle-renderer-PPC5klpl.js → sprinkle-renderer-D7mLTT1E.js} +3 -3
  123. package/dist/ui/assets/src-C6UBnSGT.js +575 -0
  124. package/dist/ui/assets/{ssh-9Y3S-Bha.js → ssh-Ca0IyfQK.js} +1 -1
  125. package/dist/ui/assets/{state-4HAkKcwp.js → state-CzWGT6_Z.js} +1 -1
  126. package/dist/ui/assets/{store-DoauiqkB.js → store-CT2H_Utj.js} +1 -1
  127. package/dist/ui/assets/{store-BQov__WY.js → store-jUC9SIV1.js} +1 -1
  128. package/dist/ui/assets/{sudo-ChMUrnDt.js → sudo-D85dIcKO.js} +1 -1
  129. package/dist/ui/assets/{supervisor-B8SqOt_K.js → supervisor-BoHW4rOe.js} +1 -1
  130. package/dist/ui/assets/{sync-dialog-DpyNUkDH.js → sync-dialog-DR-cxxqt.js} +1 -1
  131. package/dist/ui/assets/{sync-exec-dispatch-CEbwf9Az.js → sync-exec-dispatch-D80ElZ8u.js} +1 -1
  132. package/dist/ui/assets/{transformers-env-BENPPudh.js → transformers-env-U4g1z6G9.js} +1 -1
  133. package/dist/ui/assets/{tray-leader-BA4ZTTff.js → tray-leader-Du_rjKF6.js} +1 -1
  134. package/dist/ui/assets/{tray-leave-runtime-CBTb4mlH.js → tray-leave-runtime-S0Z5urne.js} +1 -1
  135. package/dist/ui/assets/{tray-sidecar-CnZgpbOI.js → tray-sidecar-B2M1EFqY.js} +1 -1
  136. package/dist/ui/assets/{upgrade-detection-Dq2MUoOD.js → upgrade-detection-ygU03Y3v.js} +1 -1
  137. package/dist/ui/assets/{upskill-lick-skip-DUIw4OcH.js → upskill-lick-skip-D5zmqLJP.js} +1 -1
  138. package/dist/ui/assets/{voice-reply-CEwRhiYz.js → voice-reply-BUM3xqcQ.js} +1 -1
  139. package/dist/ui/assets/{wc-attach-2TSX-inX.js → wc-attach-pLEPz5YT.js} +2 -2
  140. package/dist/ui/assets/{wc-browser-DJxUV8of.js → wc-browser-CkckI0pE.js} +1 -1
  141. package/dist/ui/assets/{wc-computers-BHu_7f-5.js → wc-computers-CES9Pphl.js} +1 -1
  142. package/dist/ui/assets/{wc-detached-BFnPmR0d.js → wc-detached-BSVjRXLI.js} +1 -1
  143. package/dist/ui/assets/{wc-extension-BYUYa6KS.js → wc-extension-n5iYaURR.js} +2 -2
  144. package/dist/ui/assets/wc-follower-CaoqYR86.js +17 -0
  145. package/dist/ui/assets/{wc-follower-oauth-DHAss7Bl.js → wc-follower-oauth-IaFFbCQS.js} +1 -1
  146. package/dist/ui/assets/{wc-gelatiere-Cr6JuzRn.js → wc-gelatiere-DKzp4XnZ.js} +1 -1
  147. package/dist/ui/assets/{wc-live-qHNanIrf.js → wc-live--Vy3x-eA.js} +5 -5
  148. package/dist/ui/assets/{wc-nav-X6D6V6gK.js → wc-nav-pzcR6z49.js} +2 -2
  149. package/dist/ui/assets/{wc-onboarding-Bt5oCUsn.js → wc-onboarding-CTepvpbC.js} +2 -2
  150. package/dist/ui/assets/{wc-permissions-BisFwUlJ.js → wc-permissions-C3L7ziQi.js} +2 -2
  151. package/dist/ui/assets/{wc-placeholder-mnzIda5e.js → wc-placeholder-aUPxA3ac.js} +3 -3
  152. package/dist/ui/assets/{wc-secret-request-EQCdKc1f.js → wc-secret-request-Ca5k4-UQ.js} +1 -1
  153. package/dist/ui/assets/{wc-settings-DnUvuaLB.js → wc-settings-BRvIAeOQ.js} +3 -3
  154. package/dist/ui/assets/{wc-shell-BtEykt-v.js → wc-shell-DOWfUNbp.js} +193 -193
  155. package/dist/ui/assets/{wc-shortcut-config-BQmt9XFF.js → wc-shortcut-config-CrTfgcob.js} +1 -1
  156. package/dist/ui/assets/wc-sprinkles-Ck7Nd-9D.js +2 -0
  157. package/dist/ui/assets/{wc-transcript-export-Cv0T-WSY.js → wc-transcript-export-CLUiuu3B.js} +2 -2
  158. package/dist/ui/assets/{wc-tray-DXzaLMSR.js → wc-tray-CQ7pP6rg.js} +4 -4
  159. package/dist/ui/assets/{wc-unit-context-CS4hSDi7.js → wc-unit-context-DbQt1MsQ.js} +1 -1
  160. package/dist/ui/assets/welcome-detection-kgddSjS0.js +1 -0
  161. package/dist/ui/assets/{whisper-session-C7baPCyL.js → whisper-session-CIgrXgZA.js} +2 -2
  162. package/dist/ui/assets/{xai-grok-11wZ6TYi.js → xai-grok-83B2QPil.js} +1 -1
  163. package/dist/ui/assets/{xai-grok-pbhR-Op4.js → xai-grok-MDczX8T9.js} +1 -1
  164. package/dist/ui/index.html +3 -3
  165. package/dist/ui/llm-proxy-sw.js +1 -1
  166. package/dist/ui/lucide-icons.js +249 -239
  167. package/dist/ui/packages/webapp/index.html +3 -3
  168. package/dist/ui/slicc-editor.js +1 -1
  169. package/package.json +2 -1
  170. package/dist/ui/assets/__vite-browser-external-CJkRLpJ-.js +0 -1
  171. package/dist/ui/assets/icons-jrIi5FYk.js +0 -1
  172. package/dist/ui/assets/provider-store-access-DVcoprAg.js +0 -1
  173. package/dist/ui/assets/provider-store-access-Des62vG8.js +0 -1
  174. package/dist/ui/assets/realm-sync-transport-Bii99lU6.js +0 -1
  175. package/dist/ui/assets/slicc-editor-BwV9b9S6.js +0 -23
  176. package/dist/ui/assets/slicc-editor-abxGgeUl.js +0 -1
  177. package/dist/ui/assets/slicc-version-idHB6nsN.js +0 -1
  178. package/dist/ui/assets/src-BfoZU01X.js +0 -575
  179. package/dist/ui/assets/wc-follower-BwhkRRX4.js +0 -17
  180. package/dist/ui/assets/wc-sprinkles-CjPNiNB5.js +0 -2
  181. package/dist/ui/assets/welcome-detection-miHs8L-e.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-B_CG-HIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-BiWcfZSc.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-CaHZ1pkb.js","assets/types-D8gIX-W-.js","assets/page-approval-service-DRZEjhrX.js","assets/float-topology-B0_dG7En.js","assets/esptool-operations-CiccBbBW.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-DRo5rfSc.js","assets/speak-BqdHQaW1.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-BENPPudh.js","assets/wc-shell-BtEykt-v.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-C41qiTs8.js","assets/core-Be1yHH6v.js","assets/compat-qQM4gjF_.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/feature-flags-BftQitIZ.js","assets/secret-topology-CZv6A9HW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bedrock-camp-extra-models-WTCIjj5a.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-CKoAhRMv.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-jrIi5FYk.js","assets/wc-shell-WkeczD9x.css","assets/shared-BDXQKitm.js","assets/hear-vBH6fz6J.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-C7baPCyL.js","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/theme-engine-ZV7CeqWw.js","assets/tab-8LaHojfd.js","assets/slicc-app-url-BKHBBuTR.js","assets/scale-D09IlqOK.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-DiXk_XGs.js";import{Y as t,m as n}from"./account-store-C41qiTs8.js";import{s as r,t as i}from"./api-endpoint-DuEQRZ4g.js";import"./main-ke7UzEyb.js";import{n as a,r as o}from"./hid-device-registry-B2R-0rNt.js";import{a as s,i as c}from"./serial-port-registry-CCqklAEr.js";import{_ as l,a as u,c as d,d as f,f as p,g as ee,h as te,i as ne,l as re,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as ue,u as de,v as fe}from"./hid-operations-C97SZtrY.js";import{a as pe,i as me}from"./usb-device-registry--JwKRTYp.js";import{a as he,c as m,d as h,f as g,g as _,h as v,i as y,l as b,m as x,n as S,o as C,p as w,r as T,s as E,t as D,u as O}from"./usb-operations-v1mGAdRY.js";function k(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-B_CG-HIg.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(t,n)}}}}function A(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CaHZ1pkb.js`);return{callMountBridge:e}},__vite__mapDeps([10,2,3,4,5,1,6,7,8,9,11]));return{response:await r(t,n)}}}}function j(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-DRZEjhrX.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([12,4,13,5,1,3,6,7,8,9]));return r(t,n??`resolve`)}}}function M(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function N(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function P(e){return ge(e.emitEvent),{"usb-list":async()=>({devices:await b(R(),V())}),"usb-request":async({filters:e})=>({device:await g(R(),V(),e)}),"usb-device-info":({handle:e})=>({device:E(R(),e)}),"usb-open":async({handle:e})=>(await O(R(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await y(R(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await x(R(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await S(R(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await h(R(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await D(R(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await m(R(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>he(R(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>C(R(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>v(R(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>_(R(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await w(R(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await T(R(),e,t,n),{done:!0})}}function F(e,t){return{"hid-list":async()=>({devices:await ce(H(),U())}),"hid-request":async({filters:e})=>({devices:await oe(H(),U(),e)}),"hid-device-info":({handle:e})=>({device:ae(H(),e)}),"hid-open":async({handle:e})=>(await ne(H(),e),{done:!0}),"hid-close":async({handle:e})=>(await ue(H(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await d(H(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await le(H(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>u(H(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await re(H(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function I(){return{"serial-list":async()=>({devices:await se(W(),G())}),"serial-request":async({filters:e})=>({device:await ee(W(),G(),e)}),"serial-device-info":({handle:e})=>({device:f(W(),e)}),"serial-open":async({handle:e,options:t})=>(await ie(W(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await de(W(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(W(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await fe(W(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await p(W(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(W(),e,t),{done:!0})}}function L(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolChipInfo(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadMac(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseFlash(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlash(W(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadFlash(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadReg(W(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlashId(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseRegion(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolRun(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function R(){return pe()}var z=null,B;function ge(t){B=t,!(z||!t)&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{z||=e.addClaimListener(R(),e=>{B?.(`usb-claim-event`,e)})}),__vite__mapDeps([16,17,1]))}function V(){let e=me();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function H(){return o()}function U(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function W(){return s()}function G(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function _e(r){return{"tray-reset":async()=>{if(!r.resetTray)throw Error(`host reset: no active tray session to reset`);return await r.resetTray()},"tray-webhook-rotate":async()=>{if(!r.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await r.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!r.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await r.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!r.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await r.mintPreview(e)},"tray-revoke-preview":async e=>{if(!r.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await r.revokePreview(e)},"tray-list-previews":async()=>{if(!r.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await r.listPreviews()},"tray-mint-biscotto":async e=>{if(!r.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await r.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!r.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await r.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!r.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await r.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!r.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return r.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!r.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return r.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!r.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await r.leaveTray({workerBaseUrl:e,requestId:t})},"tray-join":async({joinUrl:e,requestId:t})=>{if(!r.joinTray)throw Error(`host join: tray join is not available in this environment`);return await r.joinTray({joinUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!r.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:r.emitCherrySliccEvent(e,t,n)}},"tray-exec":async e=>{if(!r.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await r.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(r.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!r.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await r.computerNative(e)},"oauth-extras-set":({providerId:e,domains:r})=>(t(e,r),{storeAfter:n()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-DRo5rfSc.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([18,1,3])),r=n(t);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}async function ve(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await ye(n,e);return t===void 0?null:K(t)}return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function K(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function ye(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function be(t){let{captureDisplayMedia:n,sessionCaptureRequest:r}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-DWFhjg7x.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:i,quality:a,mode:o,durationMs:s,audio:c,session:l,handle:u,maxWidth:d}=t,f=await n(o===`session`?r({session:l,handle:u,mimeType:i,quality:a,durationMs:s,maxWidth:d}):o===`video`?{mode:`video`,mimeType:i,durationMs:s??5e3,audio:!!c}:{mode:`image`,mimeType:i,quality:a});return{bytes:f.bytes.buffer.slice(f.bytes.byteOffset,f.bytes.byteOffset+f.bytes.byteLength),width:f.width,height:f.height,mimeType:f.mimeType,nativeWidth:f.nativeWidth,nativeHeight:f.nativeHeight,...f.durationMs===void 0?{}:{durationMs:f.durationMs},...f.handle===void 0?{}:{handle:f.handle}}}function xe(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>be(e),"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-BqdHQaW1.js`);return{speak:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-BqdHQaW1.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(X)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(X)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-BqdHQaW1.js`);return{kokoroStatus:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-BqdHQaW1.js`);return{kokoroWarmup:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"synthesize-to-wav":async({text:t,lang:n,voice:r,rate:i})=>{let{synthesizeToWav:a}=await e(async()=>{let{synthesizeToWav:e}=await import(`./speak-BqdHQaW1.js`);return{synthesizeToWav:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),o=await a({text:t,...n===void 0?{}:{lang:n},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function Se(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await Z(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await Oe(r),await Z(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await ve(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await Ee(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function Ce(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-vBH6fz6J.js`);return{hearCapture:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-vBH6fz6J.js`);return{hearTranscribe:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-vBH6fz6J.js`);return{hearStatus:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-vBH6fz6J.js`);return{hearWarmup:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()}}}var q=null,J;function we(t){J=t,!(q||!t)&&e(()=>import(`./screencapture-media-DWFhjg7x.js`).then(e=>{q||=e.displaySessions.onEnded(t=>{J?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var Te=1500;async function Ee(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await De({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??Te;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function De(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function X(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function Oe(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function Z(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function Q(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function ke(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function Ae(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function je(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel,skipIfGranted:Ae(n.kinds,n.skipIfGranted)});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=R().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=H().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=W().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([50,4,51,9])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0})}return{grants:a}}}}function Me(){return{"theme-apply":async({themeJson:t,action:n})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([52,1,4]));if(n===`reset`)return o(),s(),{applied:null};if(t){let e=r(t);return i(e),a(e.id),s(),{applied:e.id}}return{applied:null}}}}function Ne(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function Pe(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-8LaHojfd.js`);return{screenshotTab:e}},__vite__mapDeps([53,54,24,55]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-8LaHojfd.js`);return{inputTab:e}},__vite__mapDeps([53,54,24,55]));return await n($(),t.targetId,t.events),{ok:!0}}}}function Fe(e={}){let t=new Map;return we(e.emitEvent),{...xe(),...Se(e),...Ce(),..._e(e),...Q(e),...P(e),...F(e,t),...I(),...L(e),...ke(e),...je(e),...N(),...j(),...M(),...k(),...A(),...Me(),...Ne(),...Pe()}}export{Fe as createStandalonePanelRpcHandlers};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-B_CG-HIg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-BiWcfZSc.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-CaHZ1pkb.js","assets/types-D8gIX-W-.js","assets/page-approval-service-DRZEjhrX.js","assets/float-topology-B0_dG7En.js","assets/esptool-operations-CiccBbBW.js","assets/rom-eeWiO07Z.js","assets/usb-claim-broker-Dacw2Z3M.js","assets/usb-device-registry--JwKRTYp.js","assets/providers-rIBVxdW-.js","assets/speak-DHMYZvDt.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-U4g1z6G9.js","assets/wc-shell-DOWfUNbp.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-6v1bQDLQ.js","assets/core-Be1yHH6v.js","assets/compat-qQM4gjF_.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/feature-flags-BftQitIZ.js","assets/secret-topology-CZv6A9HW.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bedrock-camp-extra-models-WTCIjj5a.js","assets/claude-model-version-DZmbk9E2.js","assets/telemetry-CKoAhRMv.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-dEBJiC8z.js","assets/wc-shell-WkeczD9x.css","assets/shared-BDXQKitm.js","assets/hear-BZ0-BQlF.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-CIgrXgZA.js","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/theme-engine-ZV7CeqWw.js","assets/tab-8LaHojfd.js","assets/slicc-app-url-BKHBBuTR.js","assets/scale-D09IlqOK.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-DiXk_XGs.js";import{Y as t,m as n}from"./account-store-6v1bQDLQ.js";import{s as r,t as i}from"./api-endpoint-DuEQRZ4g.js";import"./main-DGILx2J0.js";import{n as a,r as o}from"./hid-device-registry-B2R-0rNt.js";import{a as s,i as c}from"./serial-port-registry-CCqklAEr.js";import{_ as l,a as u,c as d,d as f,f as p,g as ee,h as te,i as ne,l as re,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as ue,u as de,v as fe}from"./hid-operations-C97SZtrY.js";import{a as pe,i as me}from"./usb-device-registry--JwKRTYp.js";import{a as he,c as m,d as h,f as g,g as _,h as v,i as y,l as b,m as x,n as S,o as C,p as w,r as T,s as E,t as D,u as O}from"./usb-operations-v1mGAdRY.js";function k(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-B_CG-HIg.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(t,n)}}}}function A(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CaHZ1pkb.js`);return{callMountBridge:e}},__vite__mapDeps([10,2,3,4,5,1,6,7,8,9,11]));return{response:await r(t,n)}}}}function j(){return{"sudo-request":async({request:t,mode:n})=>{let{resolveSudoApprovalInPage:r}=await e(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-DRZEjhrX.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([12,4,13,5,1,3,6,7,8,9]));return r(t,n??`resolve`)}}}function M(){return{"secret-request":async t=>{let{getSecretRequestSurface:n}=await e(async()=>{let{getSecretRequestSurface:e}=await import(`./secret-request-registry-DrOMKR1H.js`);return{getSecretRequestSurface:e}},[]),r=n();return r?r(t):{stored:!1,reason:`unavailable`}}}}function N(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-DiXk_XGs.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function P(e){return ge(e.emitEvent),{"usb-list":async()=>({devices:await b(R(),V())}),"usb-request":async({filters:e})=>({device:await g(R(),V(),e)}),"usb-device-info":({handle:e})=>({device:E(R(),e)}),"usb-open":async({handle:e})=>(await O(R(),e),{done:!0}),"usb-close":async({handle:e,owner:t,force:n})=>(await y(R(),e,{owner:t,force:n}),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await x(R(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t,owner:n,wait:r})=>(await S(R(),e,t,{owner:n,wait:r}),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t,owner:n})=>(await h(R(),e,t,{owner:n}),{done:!0}),"usb-cancel-claim-wait":async({handle:e,interfaceNumber:t,owner:n})=>(await D(R(),e,t,n??`usb`),{done:!0}),"usb-drop-owner":async({owner:e})=>(await m(R(),e),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>he(R(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>C(R(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>v(R(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>_(R(),e,t,n),"usb-reset":async({handle:e,owner:t,force:n})=>(await w(R(),e,{owner:t,force:n}),{done:!0}),"usb-clear-halt":async({handle:e,direction:t,endpointNumber:n})=>(await T(R(),e,t,n),{done:!0})}}function F(e,t){return{"hid-list":async()=>({devices:await ce(H(),U())}),"hid-request":async({filters:e})=>({devices:await oe(H(),U(),e)}),"hid-device-info":({handle:e})=>({device:ae(H(),e)}),"hid-open":async({handle:e})=>(await ne(H(),e),{done:!0}),"hid-close":async({handle:e})=>(await ue(H(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await d(H(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await le(H(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>u(H(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await re(H(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function I(){return{"serial-list":async()=>({devices:await se(W(),G())}),"serial-request":async({filters:e})=>({device:await ee(W(),G(),e)}),"serial-device-info":({handle:e})=>({device:f(W(),e)}),"serial-open":async({handle:e,options:t})=>(await ie(W(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await de(W(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(W(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await fe(W(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await p(W(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(W(),e,t),{done:!0})}}function L(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolChipInfo(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadMac(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseFlash(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlash(W(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadFlash(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolReadReg(W(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolFlashId(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolEraseRegion(W(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiccBbBW.js`),__vite__mapDeps([14,1,3,15]))).esptoolRun(W(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function R(){return pe()}var z=null,B;function ge(t){B=t,!(z||!t)&&e(()=>import(`./usb-claim-broker-Dacw2Z3M.js`).then(e=>{z||=e.addClaimListener(R(),e=>{B?.(`usb-claim-event`,e)})}),__vite__mapDeps([16,17,1]))}function V(){let e=me();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function H(){return o()}function U(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function W(){return s()}function G(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}function _e(r){return{"tray-reset":async()=>{if(!r.resetTray)throw Error(`host reset: no active tray session to reset`);return await r.resetTray()},"tray-webhook-rotate":async()=>{if(!r.rotateWebhook)throw Error(`webhook rotate: no active leader tray`);return await r.rotateWebhook()},"tray-webhook-revoke":async e=>{if(!r.revokeWebhook)throw Error(`webhook delete: no active leader tray`);return await r.revokeWebhook(e.webhookId),{ok:!0}},"tray-open-preview":async e=>{if(!r.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await r.mintPreview(e)},"tray-revoke-preview":async e=>{if(!r.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await r.revokePreview(e)},"tray-list-previews":async()=>{if(!r.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await r.listPreviews()},"tray-mint-biscotto":async e=>{if(!r.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await r.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!r.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await r.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!r.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await r.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!r.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return r.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!r.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return r.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!r.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await r.leaveTray({workerBaseUrl:e,requestId:t})},"tray-join":async({joinUrl:e,requestId:t})=>{if(!r.joinTray)throw Error(`host join: tray join is not available in this environment`);return await r.joinTray({joinUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!r.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:r.emitCherrySliccEvent(e,t,n)}},"tray-exec":async e=>{if(!r.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await r.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(r.signalRemoteExec?.({execToken:e}),{ok:!0}),"tray-computer-native":async e=>{if(!r.computerNative)throw Error(`computer native: no active leader tray in this environment`);return await r.computerNative(e)},"oauth-extras-set":({providerId:e,domains:r})=>(t(e,r),{storeAfter:n()}),"silent-renew":async({providerId:t})=>{let{getRegisteredProviderConfig:n}=await e(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-rIBVxdW-.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([18,1,3])),r=n(t);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}async function ve(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await ye(n,e);return t===void 0?null:K(t)}return K(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function K(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function ye(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function be(t){let{captureDisplayMedia:n,sessionCaptureRequest:r}=await e(async()=>{let{captureDisplayMedia:e,sessionCaptureRequest:t}=await import(`./screencapture-media-DWFhjg7x.js`);return{captureDisplayMedia:e,sessionCaptureRequest:t}},[]),{mimeType:i,quality:a,mode:o,durationMs:s,audio:c,session:l,handle:u,maxWidth:d}=t,f=await n(o===`session`?r({session:l,handle:u,mimeType:i,quality:a,durationMs:s,maxWidth:d}):o===`video`?{mode:`video`,mimeType:i,durationMs:s??5e3,audio:!!c}:{mode:`image`,mimeType:i,quality:a});return{bytes:f.bytes.buffer.slice(f.bytes.byteOffset,f.bytes.byteOffset+f.bytes.byteLength),width:f.width,height:f.height,mimeType:f.mimeType,nativeWidth:f.nativeWidth,nativeHeight:f.nativeHeight,...f.durationMs===void 0?{}:{durationMs:f.durationMs},...f.handle===void 0?{}:{handle:f.handle}}}function xe(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:e=>be(e),"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-DHMYZvDt.js`);return{speak:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-DHMYZvDt.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(X)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(X)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-DHMYZvDt.js`);return{kokoroStatus:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-DHMYZvDt.js`);return{kokoroWarmup:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"synthesize-to-wav":async({text:t,lang:n,voice:r,rate:i})=>{let{synthesizeToWav:a}=await e(async()=>{let{synthesizeToWav:e}=await import(`./speak-DHMYZvDt.js`);return{synthesizeToWav:e}},__vite__mapDeps([19,3,4,9,20,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46])),o=await a({text:t,...n===void 0?{}:{lang:n},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function Se(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await Z(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await Oe(r),await Z(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await ve(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await Ee(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function Ce(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-BZ0-BQlF.js`);return{hearCapture:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-BZ0-BQlF.js`);return{hearTranscribe:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-BZ0-BQlF.js`);return{hearStatus:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-BZ0-BQlF.js`);return{hearWarmup:e}},__vite__mapDeps([47,4,48,49,3,21,22,1,23,6,24,25,26,27,28,29,30,31,32,33,34,5,7,8,9,35,13,0,2,36,37,18,38,39,40,41,42,11,43,44,45,46]));return t()}}}var q=null,J;function we(t){J=t,!(q||!t)&&e(()=>import(`./screencapture-media-DWFhjg7x.js`).then(e=>{q||=e.displaySessions.onEnded(t=>{J?.(e.SCREENCAPTURE_SESSION_ENDED_CHANNEL,{handle:t})})}),[])}var Te=1500;async function Ee(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await De({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??Te;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function De(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function X(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function Oe(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function Z(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function Q(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function ke(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function Ae(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function je(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel,skipIfGranted:Ae(n.kinds,n.skipIfGranted)});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=R().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=H().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=W().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([50,4,51,9])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0})}return{grants:a}}}}function Me(){return{"theme-apply":async({themeJson:t,action:n})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await e(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([52,1,4]));if(n===`reset`)return o(),s(),{applied:null};if(t){let e=r(t);return i(e),a(e.id),s(),{applied:e.id}}return{applied:null}}}}function Ne(){return{"layout-apply":async t=>{let{getLayoutApplier:n}=await e(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=n();return r?await r(t)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}function $(){let e=globalThis;if(!e.__slicc_browser)throw Error(`no browser API on this page`);return e.__slicc_browser}function Pe(){return{"computer-tab-screenshot":async t=>{let{screenshotTab:n}=await e(async()=>{let{screenshotTab:e}=await import(`./tab-8LaHojfd.js`);return{screenshotTab:e}},__vite__mapDeps([53,54,24,55]));return n($(),t.targetId,{maxWidth:t.maxWidth,format:t.format})},"computer-tab-input":async t=>{let{inputTab:n}=await e(async()=>{let{inputTab:e}=await import(`./tab-8LaHojfd.js`);return{inputTab:e}},__vite__mapDeps([53,54,24,55]));return await n($(),t.targetId,t.events),{ok:!0}}}}function Fe(e={}){let t=new Map;return we(e.emitEvent),{...xe(),...Se(e),...Ce(),..._e(e),...Q(e),...P(e),...F(e,t),...I(),...L(e),...ke(e),...je(e),...N(),...j(),...M(),...k(),...A(),...Me(),...Ne(),...Pe()}}export{Fe as createStandalonePanelRpcHandlers};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{F as t,H as n,J as r,K as i,M as a,U as o,V as s,W as c,Y as l,q as u}from"./wc-shell-BtEykt-v.js";import"./virtual-device-paths-D45tpPP6.js";import{r as d}from"./icons-jrIi5FYk.js";import{setLayoutApplier as f}from"./layout-apply-registry-Cw730jao.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function ee(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function te(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function _(e){te(document);let t=document.createElement(`div`);t.className=`slicc-addpanel`;let n=document.createElement(`button`);n.type=`button`,n.className=`slicc-addpanel__btn`,n.title=`Panels and layouts`,n.setAttribute(`aria-label`,`Panels and layouts`);let r=new DOMParser().parseFromString(d(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;n.appendChild(r);let a=document.createElement(`div`);a.className=`slicc-addpanel__menu`,a.setAttribute(`role`,`menu`);let o=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},s=t=>{let n=o(t,!1,()=>e.onLoadLayout(t)),r=document.createElement(`button`);return r.type=`button`,r.className=`slicc-addpanel__del`,r.title=`Delete "${t}"`,r.setAttribute(`aria-label`,`Delete layout ${t}`),r.appendChild(new DOMParser().parseFromString(d(`trash-2`,{size:11}),`image/svg+xml`).documentElement),r.addEventListener(`click`,n=>{n.stopPropagation(),e.onDeleteLayout(t),m()}),n.appendChild(r),n};function c(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=ee(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let l=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},u=i();for(let e of u)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let s=r[i];if(s?.length){n.push(l(a));for(let r of s){let i=t.has(r.meta.id);n.push(o(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,l(`Layouts`));for(let e of t)n.push(s(e));for(let t of r)n.push(o(t,!1,()=>e.onLoadLayout(t)));n.push(o(`Save layout as…`,!1,c))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}a.replaceChildren(...n)}function m(){a.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{t.contains(e.target)||m()};return n.addEventListener(`click`,()=>{if(a.hasAttribute(`open`)){m();return}f().then(()=>{a.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),u.addEventListener(`panel-registry-change`,()=>{a.hasAttribute(`open`)&&f()}),t.append(n,a),t}var v={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},y={[v.chat]:{id:v.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[v.sessionsRail]:{id:v.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[v.dockRail]:{id:v.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[v.scoopSwitcher]:{id:v.scoopSwitcher,title:`Scoops`,icon:`users`},[v.floatbar]:{id:v.floatbar,title:`Runtime`,icon:`activity`},[v.files]:{id:v.files,title:`Files`,icon:`folder`,minWidth:220},[v.term]:{id:v.term,title:`Terminal`,icon:`square-terminal`},[v.memory]:{id:v.memory,title:`Memory`,icon:`brain`},[v.monitor]:{id:v.monitor,title:`Monitor`,icon:`activity`},[v.browser]:{id:v.browser,title:`Browser`,icon:`globe`}};function b(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=y[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function x(){for(let e of Object.values(y))r({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function ne(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function S(){return{when:{maxWidth:700},docks:[],zones:{center:[v.chat]},floating:[]}}function C(){return[{edge:`top`,size:`36px`,panels:[v.scoopSwitcher,v.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[v.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[v.dockRail],locked:!0}]}var w={version:1,id:`default`,title:`Default`,base:{docks:C(),zones:{center:[v.chat]}},variants:[S()]},T={default:w};function E(e){return T[e]??null}function D(){return Object.keys(T)}e(`sudo:sudoers`);var O=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{F as t,H as n,J as r,K as i,M as a,U as o,V as s,W as c,Y as l,q as u}from"./wc-shell-DOWfUNbp.js";import"./virtual-device-paths-D45tpPP6.js";import{r as d}from"./icons-dEBJiC8z.js";import{setLayoutApplier as f}from"./layout-apply-registry-Cw730jao.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function ee(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function te(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function _(e){te(document);let t=document.createElement(`div`);t.className=`slicc-addpanel`;let n=document.createElement(`button`);n.type=`button`,n.className=`slicc-addpanel__btn`,n.title=`Panels and layouts`,n.setAttribute(`aria-label`,`Panels and layouts`);let r=new DOMParser().parseFromString(d(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;n.appendChild(r);let a=document.createElement(`div`);a.className=`slicc-addpanel__menu`,a.setAttribute(`role`,`menu`);let o=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},s=t=>{let n=o(t,!1,()=>e.onLoadLayout(t)),r=document.createElement(`button`);return r.type=`button`,r.className=`slicc-addpanel__del`,r.title=`Delete "${t}"`,r.setAttribute(`aria-label`,`Delete layout ${t}`),r.appendChild(new DOMParser().parseFromString(d(`trash-2`,{size:11}),`image/svg+xml`).documentElement),r.addEventListener(`click`,n=>{n.stopPropagation(),e.onDeleteLayout(t),m()}),n.appendChild(r),n};function c(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=ee(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let l=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},u=i();for(let e of u)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let s=r[i];if(s?.length){n.push(l(a));for(let r of s){let i=t.has(r.meta.id);n.push(o(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,l(`Layouts`));for(let e of t)n.push(s(e));for(let t of r)n.push(o(t,!1,()=>e.onLoadLayout(t)));n.push(o(`Save layout as…`,!1,c))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}a.replaceChildren(...n)}function m(){a.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{t.contains(e.target)||m()};return n.addEventListener(`click`,()=>{if(a.hasAttribute(`open`)){m();return}f().then(()=>{a.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),u.addEventListener(`panel-registry-change`,()=>{a.hasAttribute(`open`)&&f()}),t.append(n,a),t}var v={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},y={[v.chat]:{id:v.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[v.sessionsRail]:{id:v.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[v.dockRail]:{id:v.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[v.scoopSwitcher]:{id:v.scoopSwitcher,title:`Scoops`,icon:`users`},[v.floatbar]:{id:v.floatbar,title:`Runtime`,icon:`activity`},[v.files]:{id:v.files,title:`Files`,icon:`folder`,minWidth:220},[v.term]:{id:v.term,title:`Terminal`,icon:`square-terminal`},[v.memory]:{id:v.memory,title:`Memory`,icon:`brain`},[v.monitor]:{id:v.monitor,title:`Monitor`,icon:`activity`},[v.browser]:{id:v.browser,title:`Browser`,icon:`globe`}};function b(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=y[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function x(){for(let e of Object.values(y))r({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function ne(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function S(){return{when:{maxWidth:700},docks:[],zones:{center:[v.chat]},floating:[]}}function C(){return[{edge:`top`,size:`36px`,panels:[v.scoopSwitcher,v.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[v.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[v.dockRail],locked:!0}]}var w={version:1,id:`default`,title:`Default`,base:{docks:C(),zones:{center:[v.chat]}},variants:[S()]},T={default:w};function E(e){return T[e]??null}function D(){return Object.keys(T)}e(`sudo:sudoers`);var O=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
2
2
  `);var k=e(`layout-store`),A=`/workspace/layouts`,j=[A,O];function M(e,t){return`${t?.protected?O:A}/${e}.json`}async function N(e,t){try{if(!await e.exists(t))return null;let r=await e.readFile(t),i=n(JSON.parse(typeof r==`string`?r:String(r)));return`error`in i?(k.warn(`invalid layout document — ignoring`,{path:t,error:i.error}),null):i}catch(e){return k.warn(`failed to read layout`,{path:t,error:e instanceof Error?e.message:e}),null}}async function P(e,t,n){let r=n?.name??t.id,i=n?.protected?O:A,a=`${i}/${r}.json`;return await e.exists(i)||await e.mkdir(i,{recursive:!0}),await e.writeFile(a,`${JSON.stringify(t,null,2)}\n`),k.info(`layout saved`,{path:a}),a}async function F(e,t,n){let r=M(t,n);return await e.exists(r)?(await e.rm(r),!0):!1}async function I(e){let t=[],n=new Set;for(let r of j){let i;try{if(!await e.exists(r))continue;i=(await e.readDir(r)).filter(e=>e.type===`file`).map(e=>e.name)}catch(e){k.warn(`failed to list layout dir`,{dir:r,error:e});continue}for(let a of i){if(!a.endsWith(`.json`))continue;let i=a.slice(0,-5);if(n.has(i))continue;let o=`${r}/${a}`,s=await N(e,o);s&&(n.add(i),t.push({name:i,path:o,doc:s,protected:r===O}))}}return t}async function L(e,t){for(let n of j){let r=`${n}/${t}.json`,i=await N(e,r);if(i)return{name:t,path:r,doc:i,protected:n===O}}return null}function R(e,n,r){let i=e.getLayout(),a=t(i,e.environment());if(r){let e=a.zones??c(a.center??null);o(e,n)?a.zones||(a.zones=e,a.center=null):(a.zones=s(e,n,`right`),a.center=null)}i.panels={...i.panels,[n]:{...i.panels?.[n],visible:r}},e.setLayout(i)}var z=e(`apply-layout-doc`);function B(e){return{applied:!1,error:`layout ${e} needs a filesystem (unavailable here)`}}function V(e){return[`load`,`save`,`delete`,`docs`,`panels`,`show`,`hide`].includes(e.kind)}async function H(e,t){let n=e.fs?await L(e.fs,t):null;if(n)return e.layout.setLayout(n.doc),{applied:!0,output:`loaded layout "${t}" from ${n.path}`};let r=E(t);return r?(e.layout.setLayout(r),{applied:!0,output:`loaded preset "${t}"`}):{applied:!1,error:`unknown layout "${t}" — try: ${D().join(`, `)}`}}async function U(e,t,n){if(!e.fs)return B(`save`);let r={...e.layout.getLayout(),id:t};try{return{applied:!0,output:`saved layout to ${await P(e.fs,r,{name:t,protected:n})}`}}catch(e){let r=e instanceof Error?e.message:String(e);return z.warn(`layout save failed`,{name:t,protected:n,error:r}),{applied:!1,error:`could not save "${t}": ${r}`}}}async function W(e){let t=e.fs?await I(e.fs):[],n=[];if(t.length>0){n.push(`saved layouts:`);for(let e of t)n.push(` ${e.name}${e.protected?` (protected)`:``} ${e.path}`)}n.push(`presets: ${D().join(`, `)}`);let r=e.layout.getLayout();return n.push(`current: ${r.id}`),{applied:!0,output:n.join(`
3
3
  `)}}function G(e){let t=new Set(e.layout.getPlacedPanelIds()),n={builtin:[],sprinkle:[],agent:[]};for(let e of i()){let r=t.has(e.meta.id)?`*`:` `;(n[e.origin]??=[]).push(` ${r} ${e.meta.id} ${e.meta.title}`)}let r=[];for(let[e,t]of Object.entries(n))t.length!==0&&(r.push(`${e}:`),r.push(...t));return r.push(`(* = currently placed)`),{applied:!0,output:r.join(`
4
4
  `)}}function K(e,t,n){return R(e.layout,t,n),{applied:!0}}async function q(e,t){switch(t.kind){case`load`:return H(e,t.name);case`save`:return U(e,t.name,t.protected);case`delete`:return e.fs?await F(e.fs,t.name)||await F(e.fs,t.name,{protected:!0})?{applied:!0,output:`deleted layout "${t.name}"`}:{applied:!1,error:`no saved layout named "${t.name}"`}:B(`delete`);case`docs`:return W(e);case`panels`:return G(e);case`show`:return K(e,t.panelId,!0);case`hide`:return K(e,t.panelId,!1)}}var J=e(`panelize-shell`),Y=`slicc-panelize-style`,X=[`.wcui-avatar-strip{position:absolute;top:0;right:0;height:var(--barh,36px);`,`display:flex;align-items:center;gap:12px;padding:0 9px 0 14px;box-sizing:border-box;`,`pointer-events:auto;z-index:1;}`,`.wcui-frame slicc-layout{position:relative;z-index:1;}`,`slicc-layout .slicc-layout__dock--left,slicc-layout .slicc-layout__dock--right{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--top,slicc-layout .slicc-layout__dock--bottom{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--left{flex:0 0 auto!important;width:auto!important;}`,`slicc-layout .slicc-layout__dock--right{flex:0 0 auto!important;width:auto!important;}`,`slicc-panel[panel-id="sessions-rail"],slicc-panel[panel-id="dock-rail"]{`,`flex:0 0 auto;height:100%;align-self:stretch;overflow:hidden;}`,`slicc-panel[panel-id="dock-rail"]{width:48px;}`,`slicc-panel[panel-id="sessions-rail"]{width:auto;}`,`slicc-panel[panel-id="sessions-rail"]>*,slicc-panel[panel-id="dock-rail"]>*{`,`height:100%;flex:1 1 auto;min-height:0;}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{`,`height:var(--barh,36px);min-height:var(--barh,36px);max-height:var(--barh,36px);}`,`slicc-panel[panel-id="chat"] slicc-chatpane{flex:1 1 0;width:100%;min-height:0;}`,`slicc-panel[panel-id="chat"] slicc-chat-thread{flex:1 1 0;min-height:0;overflow-y:auto;}`,`slicc-panel[panel-id="chat"] slicc-composer{flex:0 0 auto;}`,`slicc-panel[panel-id="scoop-switcher"]{flex:0 0 auto;justify-content:center;padding-left:14px;}`,`slicc-panel[panel-id="floatbar"]{flex:1 1 auto;align-items:center;justify-content:flex-end;`,`padding-right:var(--avatar-strip-w, 96px);}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{flex-direction:row;}`,`slicc-panel[panel-id="term"][presentation="floating"]{`,`background:var(--term-bg,#0c0c0e);border-color:var(--term-border,#232329);`,`box-shadow:rgba(0,0,0,.35) 0 14px 36px -12px,rgba(0,0,0,.2) 0 4px 10px -4px;}`].join(``);function re(e){if(e.getElementById(Y))return;let t=e.createElement(`style`);t.id=Y,t.textContent=X,(e.head??e.documentElement).appendChild(t)}function Z(e){e.setAttribute(`active`,``),e.style.display=`flex`,e.style.flexDirection=`column`,e.style.position=`relative`,e.style.inset=`auto`,e.style.flex=`1 1 auto`,e.style.minHeight=`0`}var ie=new Set([v.files,v.term,v.memory,v.monitor,v.browser]);function ae(e,t,n,r){let i=(e,i)=>{let a=e.detail?.id;!a||!ie.has(a)||n.has(a)||(e.stopImmediatePropagation(),R(t,a,i),i?r?.onToolPanelActivate?.(a):r?.onToolPanelDeactivate?.(a))};e.addEventListener(`slicc-dock-select`,e=>i(e,!0),!0),e.addEventListener(`slicc-dock-collapse`,e=>i(e,!1),!0)}function oe(e,t){return{hostSprinkleSurface:(n,i)=>{let a=b(n,i);Z(i),t.set(n,a),e.appendChild(a),r({meta:{id:n,title:ne(n)??n},source:{kind:`element`,tag:`slicc-panel`},origin:`sprinkle`}),R(e,n,!0),J.info(`sprinkle panel hosted`,{surfaceId:n})},removeSprinkleSurface:n=>{t.get(n)?.remove(),t.delete(n),l(n);let r=e.getLayout();r.panels={...r.panels,[n]:{visible:!1}},e.setLayout(r)}}}var Q=`slicc-panel-layout:default`;function se(e,t){e.addEventListener(`slicc-layout-change`,t=>{let n=t.detail?.reason;if(n===`rearrange`||n===`resize`)try{localStorage.setItem(Q,JSON.stringify(e.getLayout()))}catch{}});let r=null;try{let e=localStorage.getItem(Q);if(e){let t=n(JSON.parse(e));`error`in t?J.warn(`stored layout rejected — using the default`,{error:t.error}):r=t}}catch(e){J.warn(`stored layout unreadable — using the default`,e)}e.setLayout(r??t)}var $=null;function ce(){return $}function le(e,t=w,n,r){if(e.frame.dataset.sliccPanelized===`1`)return J.warn(`panelizeShell called twice — ignoring the second call`),null;re(document),x();let i=n,o=document.createElement(`slicc-layout`),s=new Map,c=(e,t)=>{if(!t)return;let n=b(e,t);s.set(e,n),o.appendChild(n)};e.freezer.setAttribute(`docked`,``),e.frame.querySelector(`.wcui-appcol`)?.style.setProperty(`--rail-w`,`0px`),c(v.scoopSwitcher,e.switcher),c(v.floatbar,e.floatbar),c(v.sessionsRail,e.freezer),c(v.dockRail,e.dock),c(v.chat,e.chatPane);for(let t of[v.files,v.term,v.memory,v.monitor,v.browser]){let n=e.dockTree.querySelector(`slicc-surface[surface-id="${t}"]`);n instanceof HTMLElement&&(Z(n),c(t,n))}let l=document.createElement(`div`);l.className=`wcui-avatar-strip`,l.appendChild(_({layout:o,onToggle:(e,t)=>{q({layout:o,fs:i},{kind:t?`show`:`hide`,panelId:e})},onLoadLayout:e=>{q({layout:o,fs:i},{kind:`load`,name:e})},onSaveLayout:e=>{q({layout:o,fs:i},{kind:`save`,name:e,protected:!1}).then(t=>{t.error?J.warn(`layout save failed`,{name:e,error:t.error}):J.info(`layout saved`,{name:e,output:t.output})})},onDeleteLayout:e=>{q({layout:o,fs:i},{kind:`delete`,name:e})},listLayoutNames:async()=>({saved:i?(await I(i)).map(e=>e.name):[],presets:D()})})),l.appendChild(e.avatarMenu),a(l,document),e.shell.replaceWith(o),e.frame.querySelector(`slicc-nav`)?.remove(),se(o,t),ae(e.dock,o,e.overlaySurfaces,r),f(e=>V(e)?q({layout:o,fs:i},e):{applied:!1,error:`"${e.kind}" targets the old dock-tree; with panels use: load, save, show, hide, docs, panels`}),e.frame.dataset.sliccPanelized=`1`,J.info(`shell panelized`,{panels:s.size,layout:t.id});let u={layout:o,avatarStrip:l,panels:s,attachFs:e=>{i=e,J.info(`layout store attached`)},...oe(o,s)};return $=u,u}export{Q as PANEL_LAYOUT_STORAGE_KEY,ce as getPanelizedShell,le as panelizeShell};
@@ -1,2 +1,2 @@
1
- import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-CfJdpL5x.js";import{t as i}from"./kernel-worker-BfQfWWGY.js";let a;function o(){return a??=import(`./edit-BnFODSzt.js`).then(({createEditTool:e})=>e()),a}function s(e){return{ok:!0,value:e}}function c(e){return{ok:!1,error:e}}var l=class extends Error{code;path;constructor(e,t,n,r){super(t,r===void 0?void 0:{cause:r}),this.code=e,this.path=n,this.name=`FileError`}},u=class extends Error{code=`shell_unavailable`;constructor(e){super(e),this.name=`ExecutionError`}};function d(e){if(!(e instanceof r))return`unknown`;switch(e.code){case`ENOENT`:return`not_found`;case`EACCES`:return`permission_denied`;case`ENOTDIR`:return`not_directory`;case`EISDIR`:return`is_directory`;case`EINVAL`:case`ELOOP`:return`invalid`;default:return`unknown`}}function f(e,t){if(e instanceof l)return e;let n=e instanceof Error?e:Error(String(e));return new l(d(e),n.message,t,n)}function p(e,t){return e?.aborted?c(new l(`aborted`,`aborted`,t)):null}var m=class{fs;cwd;constructor(e,t){this.fs=e,this.cwd=t}async absolutePath(e,r){return p(r,e)||s(t(e.startsWith(`/`)?e:n(this.cwd,e)))}async canonicalPath(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{return s(await this.fs.realpath(n.value))}catch(e){return c(f(e,n.value))}}async fileInfo(t,n){let r=await this.absolutePath(t,n);if(!r.ok)return r;try{let t=await this.fs.lstat(r.value);return s({name:e(r.value).base,path:r.value,kind:t.type,size:t.size,mtimeMs:t.mtime})}catch(e){return c(f(e,r.value))}}async readTextFile(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{let e=await this.fs.readTextFile(n.value);return p(t,n.value)??s(e)}catch(e){return c(f(e,n.value))}}async writeFile(e,t,n){let r=await this.absolutePath(e,n);if(!r.ok)return r;try{if(await this.fs.writeFile(r.value,t),typeof t==`string`){let e=await i(this.fs,r.value,t);if(e)return c(new l(`unknown`,e,r.value))}return p(n,r.value)??s(void 0)}catch(e){return c(f(e,r.value))}}unsupported(e,t){return c(new l(`not_supported`,`${e} is unavailable to the edit tool`,t))}async joinPath(e){return s(n(...e))}async readTextLines(e,t){let n=await this.readTextFile(e,t?.abortSignal);if(!n.ok)return n;let r=n.value.split(/\r?\n/);return s(t?.maxLines===void 0?r:r.slice(0,t.maxLines))}async readBinaryFile(e){return this.unsupported(`readBinaryFile`,e)}async appendFile(e){return this.unsupported(`appendFile`,e)}async renameFile(e){return this.unsupported(`renameFile`,e)}async listDir(e){return this.unsupported(`listDir`,e)}async exists(e){return this.unsupported(`exists`,e)}async createDir(e){return this.unsupported(`createDir`,e)}async remove(e){return this.unsupported(`remove`,e)}async createTempDir(){return this.unsupported(`createTempDir`)}async createTempFile(){return this.unsupported(`createTempFile`)}async exec(){return c(new u(`Shell is unavailable to the edit tool`))}async cleanup(){}};const h=new WeakMap;function g(e,t){let n=h.get(e);n||h.set(e,n=new Map);let r=n.get(t);return r||n.set(t,r=new m(e,t)),r}async function _(e,t,n,r){return{content:(await(await o()).execute(`slicc-edit`,n,r,void 0,{env:g(e,t)})).content.filter(e=>e.type===`text`).map(e=>e.text).join(`
1
+ import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-CGiTiKri.js";import{t as i}from"./kernel-worker-cLHttpvD.js";let a;function o(){return a??=import(`./edit-BnFODSzt.js`).then(({createEditTool:e})=>e()),a}function s(e){return{ok:!0,value:e}}function c(e){return{ok:!1,error:e}}var l=class extends Error{code;path;constructor(e,t,n,r){super(t,r===void 0?void 0:{cause:r}),this.code=e,this.path=n,this.name=`FileError`}},u=class extends Error{code=`shell_unavailable`;constructor(e){super(e),this.name=`ExecutionError`}};function d(e){if(!(e instanceof r))return`unknown`;switch(e.code){case`ENOENT`:return`not_found`;case`EACCES`:return`permission_denied`;case`ENOTDIR`:return`not_directory`;case`EISDIR`:return`is_directory`;case`EINVAL`:case`ELOOP`:return`invalid`;default:return`unknown`}}function f(e,t){if(e instanceof l)return e;let n=e instanceof Error?e:Error(String(e));return new l(d(e),n.message,t,n)}function p(e,t){return e?.aborted?c(new l(`aborted`,`aborted`,t)):null}var m=class{fs;cwd;constructor(e,t){this.fs=e,this.cwd=t}async absolutePath(e,r){return p(r,e)||s(t(e.startsWith(`/`)?e:n(this.cwd,e)))}async canonicalPath(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{return s(await this.fs.realpath(n.value))}catch(e){return c(f(e,n.value))}}async fileInfo(t,n){let r=await this.absolutePath(t,n);if(!r.ok)return r;try{let t=await this.fs.lstat(r.value);return s({name:e(r.value).base,path:r.value,kind:t.type,size:t.size,mtimeMs:t.mtime})}catch(e){return c(f(e,r.value))}}async readTextFile(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{let e=await this.fs.readTextFile(n.value);return p(t,n.value)??s(e)}catch(e){return c(f(e,n.value))}}async writeFile(e,t,n){let r=await this.absolutePath(e,n);if(!r.ok)return r;try{if(await this.fs.writeFile(r.value,t),typeof t==`string`){let e=await i(this.fs,r.value,t);if(e)return c(new l(`unknown`,e,r.value))}return p(n,r.value)??s(void 0)}catch(e){return c(f(e,r.value))}}unsupported(e,t){return c(new l(`not_supported`,`${e} is unavailable to the edit tool`,t))}async joinPath(e){return s(n(...e))}async readTextLines(e,t){let n=await this.readTextFile(e,t?.abortSignal);if(!n.ok)return n;let r=n.value.split(/\r?\n/);return s(t?.maxLines===void 0?r:r.slice(0,t.maxLines))}async readBinaryFile(e){return this.unsupported(`readBinaryFile`,e)}async appendFile(e){return this.unsupported(`appendFile`,e)}async renameFile(e){return this.unsupported(`renameFile`,e)}async listDir(e){return this.unsupported(`listDir`,e)}async exists(e){return this.unsupported(`exists`,e)}async createDir(e){return this.unsupported(`createDir`,e)}async remove(e){return this.unsupported(`remove`,e)}async createTempDir(){return this.unsupported(`createTempDir`)}async createTempFile(){return this.unsupported(`createTempFile`)}async exec(){return c(new u(`Shell is unavailable to the edit tool`))}async cleanup(){}};const h=new WeakMap;function g(e,t){let n=h.get(e);n||h.set(e,n=new Map);let r=n.get(t);return r||n.set(t,r=new m(e,t)),r}async function _(e,t,n,r){return{content:(await(await o()).execute(`slicc-edit`,n,r,void 0,{env:g(e,t)})).content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
2
  `)}}export{_ as executePiEdit};
@@ -1 +1 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{_ as t,l as n,r}from"./account-store-CdWvtLK5.js";import{i,s as a,t as o}from"./providers-jnPvVe9y.js";import{a as s}from"./core-BfCKeVcE.js";import{t as c}from"./redirect-uri-CBCnYKsl.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-D20BEoY6.js";import{n as f}from"./store-DoauiqkB.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-DXaTHROw.js`).then(e=>e.a),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-DVcoprAg.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-CcHr-RmX.js";import{i,s as a,t as o}from"./providers-LZyqU4Ib.js";import{a as s}from"./core-BfCKeVcE.js";import{t as c}from"./redirect-uri-CBCnYKsl.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-D20BEoY6.js";import{n as f}from"./store-CT2H_Utj.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-DXaTHROw.js`).then(e=>e.a),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-BrbtSBpX.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,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-DyrFPUp2.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-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-_PUd0RqU.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-C41qiTs8.js";import{n as a}from"./float-topology-B0_dG7En.js";import{i as o}from"./providers-DRo5rfSc.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-DyrFPUp2.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-DiXk_XGs.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-_PUd0RqU.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-DiXk_XGs.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-Des62vG8.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-CO_lYoFl.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-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-_PUd0RqU.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-6v1bQDLQ.js";import{n as a}from"./float-topology-B0_dG7En.js";import{i as o}from"./providers-rIBVxdW-.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-CO_lYoFl.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-DiXk_XGs.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-_PUd0RqU.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-DiXk_XGs.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-vekyMcol.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{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import"./account-store-CdWvtLK5.js";import"./core-BfCKeVcE.js";import"./tray-runtime-config-CTm013-K.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-CcHr-RmX.js";import"./core-BfCKeVcE.js";import"./tray-runtime-config-CTm013-K.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-CT2H_Utj.js";import"./provider-C0S6DmOh.js";export{e as readMcpAuthEntries};
@@ -0,0 +1 @@
1
+ import{t as e}from"./provider-C2XK7sYM.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-DR1sAgZg.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-99DjWBHV.js`).then(e=>e.n),"./built-in/bedrock-camp-extra-models.ts":()=>import(`./bedrock-camp-extra-models-B0WH9IRx.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-BQ02i7Bk.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-Drx0Pf5F.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-Cuq2cJ2f.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-C_6PRb_m.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-GnnngJgc.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BH0fYYDC.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-LJJS3BN5.js`),"/packages/webapp/providers/openrouter-free.ts":()=>import(`./openrouter-free-DEOSmXMR.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DyyLIGVe.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-uaZxqhE3.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-HCWd3_Dv.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-pbhR-Op4.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-CRm40REo.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-99DjWBHV.js`).then(e=>e.n),"./built-in/bedrock-camp-extra-models.ts":()=>import(`./bedrock-camp-extra-models-B0WH9IRx.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-BQ02i7Bk.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-BJq2Bcn4.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-bNmHv86x.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-DDSDu3Od.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-DP5pe7qj.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-Dpnp7Zzn.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-DRECU62x.js`),"/packages/webapp/providers/openrouter-free.ts":()=>import(`./openrouter-free-DypV34af.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DyyLIGVe.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-CeOxyshu.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-B6NE-wjS.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-MDczX8T9.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-BWRYpShR.js","assets/diagnostics-DN_idNHx.js","assets/models-BSkXF4T6.js","assets/preload-helper-Czpn1I53.js","assets/compat-qQM4gjF_.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-C41qiTs8.js","assets/core-Be1yHH6v.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-BftQitIZ.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-CZv6A9HW.js","assets/float-topology-B0_dG7En.js","assets/secrets-bridge-client-B_CG-HIg.js","assets/port-bridge-client-BiWcfZSc.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bedrock-camp-extra-models-WTCIjj5a.js","assets/claude-model-version-DZmbk9E2.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-CMYc0nQP.js","assets/temperature-support-Dd00cuZX.js","assets/local-llm-C1bXK5E_.js","assets/legacy-api-aliases-DtQJ5I7w.js","assets/adobe-pJP3L2S1.js","assets/main-ke7UzEyb.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-CYQP7u_w.js","assets/provider-budget-LCzMPlKv.js","assets/oauth-service-_PUd0RqU.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-Drhn15WH.js","assets/github-copilot-r7THpGrf.js","assets/github-J3Pos7xW.js","assets/global-db-CbuLl-zx.js","assets/bridge-token-required-DMk2va9k.js","assets/openai-codex-E3c2zrJK.js","assets/pkce-hGf_TEnP.js","assets/openrouter-free-CndCA5W5.js","assets/openrouter-models-Cfi7qjq5.js","assets/openrouter-oauth-BN42fHf7.js","assets/openrouter-B47ePBty.js","assets/xai-grok-11wZ6TYi.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-BWRYpShR.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-BeCSBUrZ.js`).then(e=>e.n),__vite__mapDeps([26,7])),"./built-in/bedrock-camp-extra-models.ts":()=>t(()=>import(`./bedrock-camp-extra-models-WTCIjj5a.js`).then(e=>e.n),__vite__mapDeps([27,7])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-CMYc0nQP.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,28,29,31])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-C1bXK5E_.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-pJP3L2S1.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-Drhn15WH.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-r7THpGrf.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-J3Pos7xW.js`),__vite__mapDeps([48,3,14,7,15,16,17,18,9,10,4,2,1,5,6,8,11,12,13,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-E3c2zrJK.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-CndCA5W5.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-BN42fHf7.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-B47ePBty.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-11wZ6TYi.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-RJkx-u-g.js","assets/diagnostics-DN_idNHx.js","assets/models-BSkXF4T6.js","assets/preload-helper-Czpn1I53.js","assets/compat-qQM4gjF_.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-6v1bQDLQ.js","assets/core-Be1yHH6v.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/feature-flags-BftQitIZ.js","assets/proxied-fetch-DiXk_XGs.js","assets/base64-ELzoYfwP.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-CZv6A9HW.js","assets/float-topology-B0_dG7En.js","assets/secrets-bridge-client-B_CG-HIg.js","assets/port-bridge-client-BiWcfZSc.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-D3EPRnmw.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bedrock-camp-extra-models-WTCIjj5a.js","assets/claude-model-version-DZmbk9E2.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-CMYc0nQP.js","assets/temperature-support-Dd00cuZX.js","assets/local-llm-Br1qdgFU.js","assets/legacy-api-aliases-DtQJ5I7w.js","assets/adobe-CuedqrHU.js","assets/main-DGILx2J0.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-bHmQ4VIv.js","assets/provider-budget-LCzMPlKv.js","assets/oauth-service-_PUd0RqU.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-BId3sDRD.js","assets/github-copilot-CThRDdd8.js","assets/github-DQXgF3NF.js","assets/global-db-CbuLl-zx.js","assets/bridge-token-required-DMk2va9k.js","assets/openai-codex-CBECd3Ml.js","assets/pkce-hGf_TEnP.js","assets/openrouter-free-BmWaYf2I.js","assets/openrouter-models-Cfi7qjq5.js","assets/openrouter-oauth-H5pX0S04.js","assets/openrouter-BzFndudE.js","assets/xai-grok-83B2QPil.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-RJkx-u-g.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-BeCSBUrZ.js`).then(e=>e.n),__vite__mapDeps([26,7])),"./built-in/bedrock-camp-extra-models.ts":()=>t(()=>import(`./bedrock-camp-extra-models-WTCIjj5a.js`).then(e=>e.n),__vite__mapDeps([27,7])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-CMYc0nQP.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,28,29,31])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-Br1qdgFU.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-CuedqrHU.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-BId3sDRD.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-CThRDdd8.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-DQXgF3NF.js`),__vite__mapDeps([48,3,14,7,15,16,17,18,9,10,4,2,1,5,6,8,11,12,13,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-CBECd3Ml.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-BmWaYf2I.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-H5pX0S04.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-BzFndudE.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-83B2QPil.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};
@@ -177,4 +177,4 @@ def __slicc_install_subprocess():
177
177
 
178
178
  __slicc_install_subprocess()
179
179
  del __slicc_install_subprocess
180
- `;function y(e,t){e.registerJsModule(`_slicc_proc`,_(t)),e.runPython(v)}const b=5e3;function x(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function S(e){let t=w(e);if(T(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw x(`EIO`,e.label);E(t,e.label)}function C(e){let t=S(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw x(`EIO`,e.label)}}function w(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 x(`EIO`,e.label)}return t}function T(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function E(e,t){throw x(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function D(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}:{}}}function O(e,t){return x(e,`sync-fs bridge, '${t}'`)}function k(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function A(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:k(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return S(r(`GET`,e))},writeFile(e,t){S(r(`POST`,e,t))},stat(e){let t=D(C(r(`GET`,e,void 0,`stat`)));if(!t)throw O(`EIO`,e);return t},lstat(e){let t=D(C(r(`GET`,e,void 0,`lstat`)));if(!t)throw O(`EIO`,e);return t},readdir(e){let t=C(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw O(`EIO`,e);return t},exists(e){let t=C(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw O(`EIO`,e);return t},mkdir(e){S(r(`POST`,e,void 0,`mkdir`))},rm(e){S(r(`POST`,e,void 0,`rm`))},rename(e,t){S(r(`POST`,e,j({arg2:t}),`rename`))},unlink(e){S(r(`POST`,e,j({}),`unlink`))},rmdir(e){S(r(`POST`,e,j({}),`rmdir`))},symlink(e,t){S(r(`POST`,t,j({arg2:e}),`symlink`))},readlink(e){let t=C(r(`GET`,e,void 0,`readlink`));if(typeof t!=`string`)throw O(`EIO`,e);return t},chmod(e,t){S(r(`POST`,e,j({mode:t}),`chmod`))},utimes(e,t,n){S(r(`POST`,e,j({atimeMs:t,mtimeMs:n}),`utimes`))}}}function j(e){return new TextEncoder().encode(JSON.stringify(e))}const M=`exec`;function N(e,t){return Math.min(typeof e!=`number`||!Number.isFinite(e)||e<=0?t:e,6e5)}new TextEncoder;const P=new TextDecoder;function F(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(P.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(P.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 I(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 L(e,t,n={}){let{header:r,window:i}=I(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 x(`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 x(`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 x(`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 x(`EIO`,a)}}finally{Atomics.store(r,0,0)}return F(f,d)}}}function R(e,t){return x(e,`sync-sab bridge, '${t}'`)}function z(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 R(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw R(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw R(`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=D(a({op:`stat`,path:e},e));if(!t)throw R(`EIO`,e);return t},lstat:e=>{let t=D(a({op:`lstat`,path:e},e));if(!t)throw R(`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 R(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw R(`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 R(`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 B(e){return(t,n,r)=>{let i=e.call({...t,channel:M},n+b,r);if(!i.ok)throw x(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 x(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}function V(e,t){if(!(!e.syncSab||typeof Atomics>`u`||typeof Atomics.wait!=`function`))return L(e.syncSab,t)}function H(e,t){return t?z(t):e.syncFsToken?A(e.syncFsToken):void 0}function U(e){return(t,n,r)=>{let i=C({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:M})),timeoutMs:n+b,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw x(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function W(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 G(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??U(e);return{run(e,t={}){let o=r?.wasUsed()===!0&&i!==void 0;o&&W(r,i);let s=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,c=N(t.timeout,n),l={command:e,...t.args===void 0?{}:{args:t.args},...t.input===void 0?{}:{stdin:t.input},...t.cwd===void 0?{}:{cwd:t.cwd},...t.env===void 0?{}:{env:t.env},timeoutMs:c};try{return a(l,c,s)}finally{o&&r.invalidate()}}}}function K(e,t,n,r){if(t.env?.SLICC_PY_FS===`opfs`)return;let i=V(t,n),a=H(t,i);if(!a||!t.syncFsToken)return;let o=e.FS,{plugin:s,mounted:c}=m(o,a,t.pyodideMountDirs??[t.cwd,`/tmp`],r);return c.length===0?void 0:(y(e,{exec:G(t.syncFsToken,{...i?{transport:B(i)}:{}}),beforeExec:()=>d(o,s),afterExec:()=>f(o,s)}),{plugin:s,mounted:c,flush:()=>d(o,s)})}export{K as mountPyLiveVfs};
180
+ `;function y(e,t){e.registerJsModule(`_slicc_proc`,_(t)),e.runPython(v)}const b=`exec`,x=5e3;function S(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function C(e){let t=T(e);if(E(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw S(`EIO`,e.label);D(t,e.label)}function w(e){let t=C(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw S(`EIO`,e.label)}}function T(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 S(`EIO`,e.label)}return t}function E(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function D(e,t){throw S(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function O(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}:{}}}function k(e,t){return S(e,`sync-fs bridge, '${t}'`)}function A(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function j(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:A(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return C(r(`GET`,e))},writeFile(e,t){C(r(`POST`,e,t))},stat(e){let t=O(w(r(`GET`,e,void 0,`stat`)));if(!t)throw k(`EIO`,e);return t},lstat(e){let t=O(w(r(`GET`,e,void 0,`lstat`)));if(!t)throw k(`EIO`,e);return t},readdir(e){let t=w(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw k(`EIO`,e);return t},exists(e){let t=w(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw k(`EIO`,e);return t},mkdir(e){C(r(`POST`,e,void 0,`mkdir`))},rm(e){C(r(`POST`,e,void 0,`rm`))},rename(e,t){C(r(`POST`,e,M({arg2:t}),`rename`))},unlink(e){C(r(`POST`,e,M({}),`unlink`))},rmdir(e){C(r(`POST`,e,M({}),`rmdir`))},symlink(e,t){C(r(`POST`,t,M({arg2:e}),`symlink`))},readlink(e){let t=w(r(`GET`,e,void 0,`readlink`));if(typeof t!=`string`)throw k(`EIO`,e);return t},chmod(e,t){C(r(`POST`,e,M({mode:t}),`chmod`))},utimes(e,t,n){C(r(`POST`,e,M({atimeMs:t,mtimeMs:n}),`utimes`))}}}function M(e){return new TextEncoder().encode(JSON.stringify(e))}function N(e,t){return Math.min(typeof e!=`number`||!Number.isFinite(e)||e<=0?t:e,6e5)}new TextEncoder;const P=new TextDecoder;function F(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(P.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(P.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 I(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 L(e,t,n={}){let{header:r,window:i}=I(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 S(`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 S(`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 S(`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 S(`EIO`,a)}}finally{Atomics.store(r,0,0)}return F(f,d)}}}function R(e,t){return S(e,`sync-sab bridge, '${t}'`)}function z(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 R(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw R(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw R(`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=O(a({op:`stat`,path:e},e));if(!t)throw R(`EIO`,e);return t},lstat:e=>{let t=O(a({op:`lstat`,path:e},e));if(!t)throw R(`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 R(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw R(`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 R(`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 B(e){return(t,n,r)=>{let i=e.call({...t,channel:b},n+x,r);if(!i.ok)throw S(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 S(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}function V(e,t){if(!(!e.syncSab||typeof Atomics>`u`||typeof Atomics.wait!=`function`))return L(e.syncSab,t)}function H(e,t){return t?z(t):e.syncFsToken?j(e.syncFsToken):void 0}function U(e){return(t,n,r)=>{let i=w({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:b})),timeoutMs:n+x,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw S(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function W(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 G(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??U(e);return{run(e,t={}){let o=r?.wasUsed()===!0&&i!==void 0;o&&W(r,i);let s=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,c=N(t.timeout,n),l={command:e,...t.args===void 0?{}:{args:t.args},...t.input===void 0?{}:{stdin:t.input},...t.cwd===void 0?{}:{cwd:t.cwd},...t.env===void 0?{}:{env:t.env},timeoutMs:c};try{return a(l,c,s)}finally{o&&r.invalidate()}}}}function K(e,t,n,r){if(t.env?.SLICC_PY_FS===`opfs`)return;let i=V(t,n),a=H(t,i);if(!a||!t.syncFsToken)return;let o=e.FS,{plugin:s,mounted:c}=m(o,a,t.pyodideMountDirs??[t.cwd,`/tmp`],r);return c.length===0?void 0:(y(e,{exec:G(t.syncFsToken,{...i?{transport:B(i)}:{}}),beforeExec:()=>d(o,s),afterExec:()=>f(o,s)}),{plugin:s,mounted:c,flush:()=>d(o,s)})}export{K as mountPyLiveVfs};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t,t as n}from"./live-vfs-fs-DXo5N-ez.js";import{i as r,n as i,r as a,t as o}from"./realm-sync-transport-Bii99lU6.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-DXo5N-ez.js";import{i as r,n as i,r as a,t as o}from"./realm-sync-transport-QD3YPwXN.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
@@ -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 ut=ze(`pyodide`,`314.0.6`),dt=`https://cdn.jsdelivr.net/pyodide/v${ut}/full/`,ft=`pyodide is not installed in node_modules: run \`ipk add pyodide@${ut}\` (no network fallback)`,Z={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function pt(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${Z.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${Z.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 mt(e,t){let n=e+Z.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 ht(e,t,n){let r=await pt(n,t);if(!r)throw Error(ft);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=mt(o,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:Re(`/workspace/python_wheels/`)})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function gt(e,t,n=()=>import(`./pyodide-DY17DXNV.js`)){let r=[],i=[],a=new st(t),o;try{let t=await n();o=e.pyodideAssetRoot?await ht(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 _t(o,a,s,vt(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-Dm8bBjqR.js`);l=n(o,e,t,s),l||(c=await Ot(o,e,s),await kt(o,e,s)),await Et(o,a,e,s),await At(o,a,s);try{o.FS.chdir(e.cwd)}catch{}jt(o,e,r,i),u=await Pt(o,i),l?Nt(l,s):await Ft(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 Q=`/workspace/python_wheels`;async function _t(e,t,n,r){await xt(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${$(e)}`)}}function vt(e){return e?`${e}/${Z.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const yt=1e4,bt=new WeakMap;function xt(e,t,n){let r=bt.get(e);if(r)return r;let i=St(e,t,n);return bt.set(e,i),i}async function St(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&&x(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${$(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${Q}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await ee(Ct(e),{url:`${dt}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:yt});await e.call(`vfs`,`mkdir`,[Q]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${$(e)}`)}}function Ct(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 wt(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??yt,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 wt(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 Tt(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function Et(e,t,n,r){let i=Tt(t),a;try{a=await S(i,n.cwd)}catch(e){r(`manifest discovery failed: ${$(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([ae(i,a),oe(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${$(e)}`);return}let c=new Map;for(let e of s)c.set(x(e.name),e);for(let t of o){let{name:n}=te(t);if(!n)continue;let i=c.get(x(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Dt(e,i,r)}}async function Dt(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;case`pypi`:try{let n=`${Q}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function Ot(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 Rt(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${$(e)}`),[]}}async function kt(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{it(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${$(e)}`)}try{await ot(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${$(e)}`)}}}async function At(e,t,n){try{await lt(e,t)}catch(e){n(`slicc.fs registration failed: ${$(e)}`)}}function jt(e,t,n,r){e.setStdout({batched:e=>n.push(e+`
222
+ `)}const ut=ze(`pyodide`,`314.0.6`),dt=`https://cdn.jsdelivr.net/pyodide/v${ut}/full/`,ft=`pyodide is not installed in node_modules: run \`ipk add pyodide@${ut}\` (no network fallback)`,Z={asmJs:`pyodide.asm.mjs`,asmWasm:`pyodide.asm.wasm`,stdlibZip:`python_stdlib.zip`,lockJson:`pyodide-lock.json`};async function pt(e,t){try{let[n,r,i,a]=await Promise.all([e.call(`vfs`,`readFile`,[`${t}/${Z.asmJs}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.asmWasm}`]),e.call(`vfs`,`readFileBinary`,[`${t}/${Z.stdlibZip}`]),e.call(`vfs`,`readFile`,[`${t}/${Z.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 mt(e,t){let n=e+Z.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 ht(e,t,n){let r=await pt(n,t);if(!r)throw Error(ft);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=mt(o,r.asmWasmBytes);try{let t=await import(i);return await e.loadPyodide({indexURL:o,lockFileContents:r.lockJsonString,stdLibURL:a,createPyodideModule:t.default,packageBaseUrl:Re(`/workspace/python_wheels/`)})}finally{s.restore(),URL.revokeObjectURL(i),URL.revokeObjectURL(a)}}async function gt(e,t,n=()=>import(`./pyodide-BJoTGv9f.js`)){let r=[],i=[],a=new st(t),o;try{let t=await n();o=e.pyodideAssetRoot?await ht(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 _t(o,a,s,vt(e.pyodideAssetRoot));let{mountPyLiveVfs:n}=await import(`./py-live-vfs-BMEF0ECU.js`);l=n(o,e,t,s),l||(c=await Ot(o,e,s),await kt(o,e,s)),await Et(o,a,e,s),await At(o,a,s);try{o.FS.chdir(e.cwd)}catch{}jt(o,e,r,i),u=await Pt(o,i),l?Nt(l,s):await Ft(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 Q=`/workspace/python_wheels`;async function _t(e,t,n,r){await xt(t,n,r);try{await e.loadPackage([`micropip`])}catch(e){n(`micropip preload failed: ${$(e)}`)}}function vt(e){return e?`${e}/${Z.lockJson}`:`/workspace/node_modules/pyodide/pyodide-lock.json`}const yt=1e4,bt=new WeakMap;function xt(e,t,n){let r=bt.get(e);if(r)return r;let i=St(e,t,n);return bt.set(e,i),i}async function St(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&&x(t.name??e)===`micropip`){r=t;break}}catch(e){t(`micropip wheel staging skipped: ${$(e)}`);return}if(!r?.file_name||!r.sha256)return;let i=`${Q}/${r.file_name}`;try{if(await e.call(`vfs`,`exists`,[i]))return;let t=await ee(Ct(e),{url:`${dt}${r.file_name}`,sha256:r.sha256,label:`micropip wheel`,timeoutMs:yt});await e.call(`vfs`,`mkdir`,[Q]),await e.call(`vfs`,`writeFileBinary`,[i,t])}catch(e){t(`micropip wheel staging failed: ${$(e)}`)}}function Ct(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 wt(e.call(`fetch`,`request`,[t,r]),n?.timeoutMs??yt,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 wt(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 Tt(e){return{exists:t=>e.call(`vfs`,`exists`,[t]),readFile:t=>e.call(`vfs`,`readFile`,[t])}}async function Et(e,t,n,r){let i=Tt(t),a;try{a=await S(i,n.cwd)}catch(e){r(`manifest discovery failed: ${$(e)}`);return}if(a===null)return;let o,s;try{let[e,t]=await Promise.all([ae(i,a),oe(i,a)]);o=e.dependencies,s=t}catch(e){r(`manifest read failed: ${$(e)}`);return}let c=new Map;for(let e of s)c.set(x(e.name),e);for(let t of o){let{name:n}=te(t);if(!n)continue;let i=c.get(x(n));if(!i){r(`no integrity pin for \`${n}\`; run \`di sync\` to repair`);continue}await Dt(e,i,r)}}async function Dt(e,t,n){switch(t.source){case`pyodide-cdn`:try{await e.loadPackage([t.name])}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;case`pypi`:try{let n=`${Q}/${t.fileName}`;await e.runPythonAsync(`import micropip; await micropip.install('emfs:${n}')`)}catch(e){n(`activation of \`${t.name}\` failed: ${$(e)}`)}return;default:n(`unknown source \`${t.source}\` for \`${t.name}\`; skipping`)}}async function Ot(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 Rt(e,r,t.opfsMountDbName,n,{skipMountPaths:a})).mounts}catch(e){return n(`VFS→Pyodide OPFS mount failed: ${$(e)}`),[]}}async function kt(e,t,n){let r=t.mountPoints??[];if(r.length!==0){try{it(e.FS,r.map(e=>e.path),n)}catch(e){n(`bomb overlay install failed: ${$(e)}`)}try{await ot(e,r.map(e=>e.path))}catch(e){n(`python mount guard install failed: ${$(e)}`)}}}async function At(e,t,n){try{await lt(e,t)}catch(e){n(`slicc.fs registration failed: ${$(e)}`)}}function jt(e,t,n,r){e.setStdout({batched:e=>n.push(e+`
223
223
  `)}),e.setStderr({batched:e=>r.push(e+`
224
224
  `)});let i=!1;e.setStdin({stdin:()=>i||!t.stdin?null:(i=!0,t.stdin)}),Mt(e,t.env),e.globals.set(`__slicc_code`,t.code),e.globals.set(`__slicc_filename`,t.filename),e.globals.set(`__slicc_argv`,t.argv)}function Mt(e,t){if(!(!t||Object.keys(t).length===0)){e.globals.set(`__slicc_env`,e.toPy(t));try{e.runPython(`import os; os.environ.update(__slicc_env)`)}finally{e.runPython(`del __slicc_env`)}}}function Nt(e,t){try{e.flush()}catch(e){t(`Pyodide→VFS flush failed: ${$(e)}`)}}async function Pt(e,t){let n;try{await e.runPythonAsync(`
225
225
  import sys
@@ -1,3 +1,3 @@
1
- import{n as e,r as t}from"./py-realm-worker-BaO89JAR.js";var n=Object.defineProperty,r=(e,t)=>n(e,`name`,{value:t,configurable:!0}),i=(t=>typeof e<`u`?e:typeof Proxy<`u`?new Proxy(t,{get:(t,n)=>(typeof e<`u`?e:t)[n]}):t)(function(t){if(typeof e<`u`)return e.apply(this,arguments);throw Error(`Dynamic require of "`+t+`" is not supported`)}),a=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})();function o(e){return!isNaN(parseFloat(e))&&isFinite(e)}r(o,`_isNumber`);function s(e){return e.charAt(0).toUpperCase()+e.substring(1)}r(s,`_capitalize`);function c(e){return function(){return this[e]}}r(c,`_getter`);var l=[`isConstructor`,`isEval`,`isNative`,`isToplevel`],u=[`columnNumber`,`lineNumber`],d=[`fileName`,`functionName`,`source`],f=l.concat(u,d,[`args`],[`evalOrigin`]);function p(e){if(e)for(var t=0;t<f.length;t++)e[f[t]]!==void 0&&this[`set`+s(f[t])](e[f[t]])}for(r(p,`StackFrame`),p.prototype={getArgs:r(function(){return this.args},`getArgs`),setArgs:r(function(e){if(Object.prototype.toString.call(e)!==`[object Array]`)throw TypeError(`Args must be an Array`);this.args=e},`setArgs`),getEvalOrigin:r(function(){return this.evalOrigin},`getEvalOrigin`),setEvalOrigin:r(function(e){if(e instanceof p)this.evalOrigin=e;else if(e instanceof Object)this.evalOrigin=new p(e);else throw TypeError(`Eval Origin must be an Object or StackFrame`)},`setEvalOrigin`),toString:r(function(){var e=this.getFileName()||``,t=this.getLineNumber()||``,n=this.getColumnNumber()||``,r=this.getFunctionName()||``;return this.getIsEval()?e?`[eval] (`+e+`:`+t+`:`+n+`)`:`[eval]:`+t+`:`+n:r?r+` (`+e+`:`+t+`:`+n+`)`:e+`:`+t+`:`+n},`toString`)},p.fromString=r(function(e){var t=e.indexOf(`(`),n=e.lastIndexOf(`)`),r=e.substring(0,t),i=e.substring(t+1,n).split(`,`),a=e.substring(n+1);if(a.indexOf(`@`)===0)var o=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a,``),s=o[1],c=o[2],l=o[3];return new p({functionName:r,args:i||void 0,fileName:s,lineNumber:c||void 0,columnNumber:l||void 0})},`StackFrame$$fromString`),m=0;m<l.length;m++)p.prototype[`get`+s(l[m])]=c(l[m]),p.prototype[`set`+s(l[m])]=function(e){return function(t){this[e]=!!t}}(l[m]);var m;for(h=0;h<u.length;h++)p.prototype[`get`+s(u[h])]=c(u[h]),p.prototype[`set`+s(u[h])]=function(e){return function(t){if(!o(t))throw TypeError(e+` must be a Number`);this[e]=Number(t)}}(u[h]);var h;for(g=0;g<d.length;g++)p.prototype[`get`+s(d[g])]=c(d[g]),p.prototype[`set`+s(d[g])]=function(e){return function(t){this[e]=String(t)}}(d[g]);var g,_=p;function v(){var e=/^\s*at .*(\S+:\d+|\(native\))/m,t=/^(eval@)?(\[native code])?$/;return{parse:r(function(t){if(t.stack&&t.stack.match(e))return this.parseV8OrIE(t);if(t.stack)return this.parseFFOrSafari(t);throw Error(`Cannot parse given Error object`)},`ErrorStackParser$$parse`),extractLocation:r(function(e){if(e.indexOf(`:`)===-1)return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,``));return[t[1],t[2]||void 0,t[3]||void 0]},`ErrorStackParser$$extractLocation`),parseV8OrIE:r(function(t){return t.stack.split(`
1
+ import{n as e,r as t}from"./py-realm-worker-CFlFWZqx.js";var n=Object.defineProperty,r=(e,t)=>n(e,`name`,{value:t,configurable:!0}),i=(t=>typeof e<`u`?e:typeof Proxy<`u`?new Proxy(t,{get:(t,n)=>(typeof e<`u`?e:t)[n]}):t)(function(t){if(typeof e<`u`)return e.apply(this,arguments);throw Error(`Dynamic require of "`+t+`" is not supported`)}),a=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return t=>{for(var n=t.length,r=new Uint8Array((n-(t[n-1]==`=`)-(t[n-2]==`=`))*3/4|0),i=0,a=0;i<n;){var o=e[t.charCodeAt(i++)],s=e[t.charCodeAt(i++)],c=e[t.charCodeAt(i++)],l=e[t.charCodeAt(i++)];r[a++]=o<<2|s>>4,r[a++]=s<<4|c>>2,r[a++]=c<<6|l}return r}})();function o(e){return!isNaN(parseFloat(e))&&isFinite(e)}r(o,`_isNumber`);function s(e){return e.charAt(0).toUpperCase()+e.substring(1)}r(s,`_capitalize`);function c(e){return function(){return this[e]}}r(c,`_getter`);var l=[`isConstructor`,`isEval`,`isNative`,`isToplevel`],u=[`columnNumber`,`lineNumber`],d=[`fileName`,`functionName`,`source`],f=l.concat(u,d,[`args`],[`evalOrigin`]);function p(e){if(e)for(var t=0;t<f.length;t++)e[f[t]]!==void 0&&this[`set`+s(f[t])](e[f[t]])}for(r(p,`StackFrame`),p.prototype={getArgs:r(function(){return this.args},`getArgs`),setArgs:r(function(e){if(Object.prototype.toString.call(e)!==`[object Array]`)throw TypeError(`Args must be an Array`);this.args=e},`setArgs`),getEvalOrigin:r(function(){return this.evalOrigin},`getEvalOrigin`),setEvalOrigin:r(function(e){if(e instanceof p)this.evalOrigin=e;else if(e instanceof Object)this.evalOrigin=new p(e);else throw TypeError(`Eval Origin must be an Object or StackFrame`)},`setEvalOrigin`),toString:r(function(){var e=this.getFileName()||``,t=this.getLineNumber()||``,n=this.getColumnNumber()||``,r=this.getFunctionName()||``;return this.getIsEval()?e?`[eval] (`+e+`:`+t+`:`+n+`)`:`[eval]:`+t+`:`+n:r?r+` (`+e+`:`+t+`:`+n+`)`:e+`:`+t+`:`+n},`toString`)},p.fromString=r(function(e){var t=e.indexOf(`(`),n=e.lastIndexOf(`)`),r=e.substring(0,t),i=e.substring(t+1,n).split(`,`),a=e.substring(n+1);if(a.indexOf(`@`)===0)var o=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a,``),s=o[1],c=o[2],l=o[3];return new p({functionName:r,args:i||void 0,fileName:s,lineNumber:c||void 0,columnNumber:l||void 0})},`StackFrame$$fromString`),m=0;m<l.length;m++)p.prototype[`get`+s(l[m])]=c(l[m]),p.prototype[`set`+s(l[m])]=function(e){return function(t){this[e]=!!t}}(l[m]);var m;for(h=0;h<u.length;h++)p.prototype[`get`+s(u[h])]=c(u[h]),p.prototype[`set`+s(u[h])]=function(e){return function(t){if(!o(t))throw TypeError(e+` must be a Number`);this[e]=Number(t)}}(u[h]);var h;for(g=0;g<d.length;g++)p.prototype[`get`+s(d[g])]=c(d[g]),p.prototype[`set`+s(d[g])]=function(e){return function(t){this[e]=String(t)}}(d[g]);var g,_=p;function v(){var e=/^\s*at .*(\S+:\d+|\(native\))/m,t=/^(eval@)?(\[native code])?$/;return{parse:r(function(t){if(t.stack&&t.stack.match(e))return this.parseV8OrIE(t);if(t.stack)return this.parseFFOrSafari(t);throw Error(`Cannot parse given Error object`)},`ErrorStackParser$$parse`),extractLocation:r(function(e){if(e.indexOf(`:`)===-1)return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,``));return[t[1],t[2]||void 0,t[3]||void 0]},`ErrorStackParser$$extractLocation`),parseV8OrIE:r(function(t){return t.stack.split(`
2
2
  `).filter(function(t){return!!t.match(e)},this).map(function(e){e.indexOf(`(eval `)>-1&&(e=e.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));var t=e.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),n=t.match(/ (\(.+\)$)/);t=n?t.replace(n[0],``):t;var r=this.extractLocation(n?n[1]:t);return new _({functionName:n&&t||void 0,fileName:[`eval`,`<anonymous>`].indexOf(r[0])>-1?void 0:r[0],lineNumber:r[1],columnNumber:r[2],source:e})},this)},`ErrorStackParser$$parseV8OrIE`),parseFFOrSafari:r(function(e){return e.stack.split(`
3
- `).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new _({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new _({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}r(v,`ErrorStackParser`);var ee=new v;function y(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:x({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`,IN_WORKERD:typeof navigator==`object`&&navigator.userAgent?.includes(`Cloudflare-Workers`)})}r(y,`getGlobalRuntimeEnv`);var b=y();function x(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof i==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,a=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,o=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;if(o&&S())throw Error(`Classic web workers are not supported`);let s={...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:a,IN_BROWSER_WEB_WORKER:o,IN_NODE_COMMONJS:t,IN_NODE_ESM:n};if(!(s.IN_BROWSER_MAIN_THREAD||s.IN_BROWSER_WEB_WORKER||s.IN_NODE||s.IN_SHELL||s.IN_WORKERD))throw Error(`Cannot determine runtime environment: ${JSON.stringify(s)}`);return s}r(x,`calculateDerivedFlags`);function S(){try{return globalThis.importScripts(`data:text/javascript,`),!0}catch{return!1}}r(S,`isClassicWorker`);var C,w,T,E;async function D(){if(!b.IN_NODE||(C=(await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1))).default,T=await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1)),E=await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1)),(await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1))).default,w=await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1)),j=w.sep,typeof i<`u`))return;let e={fs:T,crypto:await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1)),ws:await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1)),child_process:await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1))};globalThis.require=function(t){return e[t]}}r(D,`initNodeModules`);function O(e,t){return w.resolve(t||`.`,e)}r(O,`node_resolvePath`);function k(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}r(k,`browser_resolvePath`);var A=b.IN_NODE?O:b.IN_SHELL?r(e=>e,`resolvePath`):k,j;b.IN_NODE||(j=`/`);function M(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:E.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}r(M,`node_getBinaryResponse`);function N(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}r(N,`shell_getBinaryResponse`);function P(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}r(P,`browser_getBinaryResponse`);var F=b.IN_NODE?M:b.IN_SHELL?N:P;async function I(e,t){let{response:n,binary:r}=F(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}r(I,`loadBinaryFile`);var te=b.IN_NODE?L:r(async e=>await import(e),`loadScript`);async function L(e){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?await import(e):await import(C.pathToFileURL(e).href)}r(L,`nodeLoadScript`);async function R(e){if(b.IN_NODE){await D();let t=await E.readFile(e,{encoding:`utf8`});return JSON.parse(t)}if(b.IN_SHELL){let t=read(e);return JSON.parse(t)}return await(await fetch(e)).json()}r(R,`loadLockFile`);async function z(){if(b.IN_NODE_COMMONJS)return __dirname;let e;try{throw Error()}catch(t){e=t}let n=ee.parse(e)[0].fileName;if(b.IN_NODE&&!n.startsWith(`file://`)&&(n=`file://${n}`),b.IN_NODE_ESM){let e=await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1));return(await import(`./__vite-browser-external-CJkRLpJ-.js`).then(e=>t(e.default,1))).fileURLToPath(e.dirname(n))}let r=n.lastIndexOf(j);if(r===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return n.slice(0,r)}r(z,`calculateDirname`);function B(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}r(B,`calculateInstallBaseUrl`);function ne(e){let t=e.FS,n=e.FS.filesystems.MEMFS,i=e.PATH,a={DIR_MODE:16895,FILE_MODE:33279,mount:r(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:r(async(e,t,n)=>{try{let r=a.getLocalSet(e),i=await a.getRemoteSet(e),o=t?i:r,s=t?r:i;await a.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:r(e=>{let n=Object.create(null);function a(e){return e!==`.`&&e!==`..`}r(a,`isRealDir`);function o(e){return t=>i.join2(e,t)}r(o,`toAbsolute`);let s=t.readdir(e.mountpoint).filter(a).map(o(e.mountpoint));for(;s.length;){let e=s.pop(),r=t.stat(e);t.isDir(r.mode)&&s.push.apply(s,t.readdir(e).filter(a).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:r(async e=>{let t=Object.create(null),n=await re(e.opts.fileSystemHandle);for(let[r,o]of n)r!==`.`&&(t[i.join2(e.mountpoint,r)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?a.FILE_MODE:a.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:r(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:r((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:r(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:r(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:a.FILE_MODE,timestamp:new Date(t.lastModified)}}if(e.kind===`directory`)return{mode:a.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)},`loadRemoteEntry`),storeRemoteEntry:r(async(e,n,r)=>{let a=e.get(i.dirname(n)),o=t.isFile(r.mode)?await a.getFileHandle(i.basename(n),{create:!0}):await a.getDirectoryHandle(i.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(r.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:r(async(e,t)=>{await e.get(i.dirname(t)).removeEntry(i.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:r(async(e,n,r)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let i=n.entries[e],a=r.entries[e];(!a||t.isFile(i.mode)&&i.timestamp.getTime()>a.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(r.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:r.handles;for(let t of s){let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(r.type===`local`){let e=l.get(n),r=await a.loadRemoteEntry(e);a.storeLocalEntry(t,r)}else{let e=a.loadLocalEntry(t);await a.storeRemoteEntry(l,n,e)}}for(let t of c)if(r.type===`local`)a.removeLocalEntry(t);else{let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);await a.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=a}r(ne,`initializeNativeFS`);var re=r(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}r(n,`collect`),await n(e);let i=new Map;i.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);i.set(t,n)}return i},`getFsHandles`),ie=a(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECBygCE0pzdl9HZXRFcnJvcl9pbXBvcnQAAA5Kc3ZFcnJvcl9DaGVjawABChMCBwD7AQD7GwsJACAA+xr7FAAL`),ae=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(ie);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function V(){let e=await ae;if(e)return e.exports;let t=Symbol(`error marker`);return{Jsv_GetError_import:r(()=>t,`Jsv_GetError_import`),JsvError_Check:r(e=>e===t,`JsvError_Check`)}}r(V,`getJsvErrorImport`);function H(e){let t={config:e,runtimeEnv:b},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:J(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:r(t=>e.indexURL+t,`locateFile`),instantiateWasm:Y(e.indexURL)};return n}r(H,`createSettings`);function U(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}r(U,`createHomeDirectory`);function W(e){return function(t){Object.assign(t.ENV,e)}}r(W,`setEnvironment`);function G(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}r(G,`callFsInitHook`);function K(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}r(K,`computeVersionTuple`);function q(e){let t=I(e);return async e=>{e.API.pyVersionTuple=K(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.FS.mkdirTree(`/lib/python${n}.${r}/lib-dynload`),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}r(q,`installStdlib`);function J(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[q(t),U(e.env.HOME),W(e.env),ne,...G(e.fsInit)]}r(J,`getFileSystemInitializationFuncs`);function Y(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=F(e+`pyodide.asm.wasm`),r=V();return function(e,i){return async function(){let{Jsv_GetError_import:a,JsvError_Check:o}=await r;e.env.Jsv_GetError_import=a,e.env.JsvError_Check=o;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}r(Y,`getInstantiateWasmFunc`);var oe=`314.0.6`;function X(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}r(X,`withTrailingSlash`);var Z=oe;async function Q(e={}){if(await D(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await z();if(t=X(A(t)),e.packageBaseUrl=X(e.packageBaseUrl),e.cdnUrl=X(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v314.0.6/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=R(n),e.packageBaseUrl??=B(n)}e.indexURL=t,e.packageCacheDir&&=X(A(e.packageCacheDir));let n={jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`6f88bdfdf0581f0eab1d84a508b31ab96e83201d2b7fdd1dc653a3079c23a0f5`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}r(Q,`initializeConfiguration`);function $(e){let t=H(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}r($,`createEmscriptenSettings`);async function se(e){return e.createPyodideModule?e.createPyodideModule:(await te(`${e.indexURL}pyodide.asm.mjs`)).default}r(se,`loadWasmScript`);async function ce(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}r(ce,`prepareSnapshot`);async function le(e,t){let n=await e(t);if(t.exitCode!==void 0)throw new n.ExitStatus(t.exitCode);return n}r(le,`instantiatePyodideModule`);function ue(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`314.0.6`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${Z}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}r(ue,`configureAPI`);function de(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}r(de,`bootstrapPyodide`);async function fe(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}r(fe,`finalizeSetup`);async function pe(e={}){let t=await Q(e),n=$(t),r=await se(t),i=await ce(t,n),a=await le(r,n);return ue(a,t),await fe(de(a,i,t),t)}r(pe,`loadPyodide`);export{pe as loadPyodide,Z as version};
3
+ `).filter(function(e){return!e.match(t)},this).map(function(e){if(e.indexOf(` > eval`)>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),e.indexOf(`@`)===-1&&e.indexOf(`:`)===-1)return new _({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,n=e.match(t),r=n&&n[1]?n[1]:void 0,i=this.extractLocation(e.replace(t,``));return new _({functionName:r,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e})},this)},`ErrorStackParser$$parseFFOrSafari`)}}r(v,`ErrorStackParser`);var ee=new v;function y(){return typeof API<`u`&&API!==globalThis.API?API.runtimeEnv:x({IN_BUN:typeof Bun<`u`,IN_DENO:typeof Deno<`u`,IN_NODE:typeof process==`object`&&typeof process.versions==`object`&&typeof process.versions.node==`string`&&!process.browser,IN_SAFARI:typeof navigator==`object`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Chrome`)===-1&&navigator.userAgent.indexOf(`Safari`)>-1,IN_SHELL:typeof read==`function`&&typeof load==`function`,IN_WORKERD:typeof navigator==`object`&&navigator.userAgent?.includes(`Cloudflare-Workers`)})}r(y,`getGlobalRuntimeEnv`);var b=y();function x(e){let t=e.IN_NODE&&typeof module<`u`&&module.exports&&typeof i==`function`&&typeof __dirname==`string`,n=e.IN_NODE&&!t,r=!e.IN_NODE&&!e.IN_DENO&&!e.IN_BUN,a=r&&typeof window<`u`&&typeof window.document<`u`&&typeof document.createElement==`function`&&`sessionStorage`in window&&typeof globalThis.importScripts!=`function`,o=r&&typeof globalThis.WorkerGlobalScope<`u`&&typeof globalThis.self<`u`&&globalThis.self instanceof globalThis.WorkerGlobalScope;if(o&&S())throw Error(`Classic web workers are not supported`);let s={...e,IN_BROWSER:r,IN_BROWSER_MAIN_THREAD:a,IN_BROWSER_WEB_WORKER:o,IN_NODE_COMMONJS:t,IN_NODE_ESM:n};if(!(s.IN_BROWSER_MAIN_THREAD||s.IN_BROWSER_WEB_WORKER||s.IN_NODE||s.IN_SHELL||s.IN_WORKERD))throw Error(`Cannot determine runtime environment: ${JSON.stringify(s)}`);return s}r(x,`calculateDerivedFlags`);function S(){try{return globalThis.importScripts(`data:text/javascript,`),!0}catch{return!1}}r(S,`isClassicWorker`);var C,w,T,E;async function D(){if(!b.IN_NODE||(C=(await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1))).default,T=await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1)),E=await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1)),(await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1))).default,w=await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1)),j=w.sep,typeof i<`u`))return;let e={fs:T,crypto:await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1)),ws:await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1)),child_process:await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1))};globalThis.require=function(t){return e[t]}}r(D,`initNodeModules`);function O(e,t){return w.resolve(t||`.`,e)}r(O,`node_resolvePath`);function k(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}r(k,`browser_resolvePath`);var A=b.IN_NODE?O:b.IN_SHELL?r(e=>e,`resolvePath`):k,j;b.IN_NODE||(j=`/`);function M(e,t){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?{response:fetch(e)}:{binary:E.readFile(e).then(e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}r(M,`node_getBinaryResponse`);function N(e,t){if(e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`))throw Error(`Shell cannot fetch urls`);return{binary:Promise.resolve(new Uint8Array(readbuffer(e)))}}r(N,`shell_getBinaryResponse`);function P(e,t){let n=new URL(e,location);return{response:fetch(n,t?{integrity:t}:{})}}r(P,`browser_getBinaryResponse`);var F=b.IN_NODE?M:b.IN_SHELL?N:P;async function I(e,t){let{response:n,binary:r}=F(e,t);if(r)return r;let i=await n;if(!i.ok)throw Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await i.arrayBuffer())}r(I,`loadBinaryFile`);var te=b.IN_NODE?L:r(async e=>await import(e),`loadScript`);async function L(e){return e.startsWith(`file://`)&&(e=e.slice(7)),e.includes(`://`)?await import(e):await import(C.pathToFileURL(e).href)}r(L,`nodeLoadScript`);async function R(e){if(b.IN_NODE){await D();let t=await E.readFile(e,{encoding:`utf8`});return JSON.parse(t)}if(b.IN_SHELL){let t=read(e);return JSON.parse(t)}return await(await fetch(e)).json()}r(R,`loadLockFile`);async function z(){if(b.IN_NODE_COMMONJS)return __dirname;let e;try{throw Error()}catch(t){e=t}let n=ee.parse(e)[0].fileName;if(b.IN_NODE&&!n.startsWith(`file://`)&&(n=`file://${n}`),b.IN_NODE_ESM){let e=await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1));return(await import(`./__vite-browser-external-dhDtpJGG.js`).then(e=>t(e.default,1))).fileURLToPath(e.dirname(n))}let r=n.lastIndexOf(j);if(r===-1)throw Error(`Could not extract indexURL path from pyodide module location. Please pass the indexURL explicitly to loadPyodide.`);return n.slice(0,r)}r(z,`calculateDirname`);function B(e){return e.substring(0,e.lastIndexOf(`/`)+1)||globalThis.location?.toString()||`.`}r(B,`calculateInstallBaseUrl`);function ne(e){let t=e.FS,n=e.FS.filesystems.MEMFS,i=e.PATH,a={DIR_MODE:16895,FILE_MODE:33279,mount:r(function(e){if(!e.opts.fileSystemHandle)throw Error(`opts.fileSystemHandle is required`);return n.mount.apply(null,arguments)},`mount`),syncfs:r(async(e,t,n)=>{try{let r=a.getLocalSet(e),i=await a.getRemoteSet(e),o=t?i:r,s=t?r:i;await a.reconcile(e,o,s),n(null)}catch(e){n(e)}},`syncfs`),getLocalSet:r(e=>{let n=Object.create(null);function a(e){return e!==`.`&&e!==`..`}r(a,`isRealDir`);function o(e){return t=>i.join2(e,t)}r(o,`toAbsolute`);let s=t.readdir(e.mountpoint).filter(a).map(o(e.mountpoint));for(;s.length;){let e=s.pop(),r=t.stat(e);t.isDir(r.mode)&&s.push.apply(s,t.readdir(e).filter(a).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:`local`,entries:n}},`getLocalSet`),getRemoteSet:r(async e=>{let t=Object.create(null),n=await re(e.opts.fileSystemHandle);for(let[r,o]of n)r!==`.`&&(t[i.join2(e.mountpoint,r)]={timestamp:o.kind===`file`?new Date((await o.getFile()).lastModified):new Date,mode:o.kind===`file`?a.FILE_MODE:a.DIR_MODE});return{type:`remote`,entries:t,handles:n}},`getRemoteSet`),loadLocalEntry:r(e=>{let r=t.lookupPath(e,{}).node,i=t.stat(e);if(t.isDir(i.mode))return{timestamp:i.mtime,mode:i.mode};if(t.isFile(i.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:i.mtime,mode:i.mode,contents:r.contents};throw Error(`node type not supported`)},`loadLocalEntry`),storeLocalEntry:r((e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else if(t.isFile(n.mode))t.writeFile(e,n.contents,{canOwn:!0});else throw Error(`node type not supported`);t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},`storeLocalEntry`),removeLocalEntry:r(e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},`removeLocalEntry`),loadRemoteEntry:r(async e=>{if(e.kind===`file`){let t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:a.FILE_MODE,timestamp:new Date(t.lastModified)}}if(e.kind===`directory`)return{mode:a.DIR_MODE,timestamp:new Date};throw Error(`unknown kind: `+e.kind)},`loadRemoteEntry`),storeRemoteEntry:r(async(e,n,r)=>{let a=e.get(i.dirname(n)),o=t.isFile(r.mode)?await a.getFileHandle(i.basename(n),{create:!0}):await a.getDirectoryHandle(i.basename(n),{create:!0});if(o.kind===`file`){let e=await o.createWritable();await e.write(r.contents),await e.close()}e.set(n,o)},`storeRemoteEntry`),removeRemoteEntry:r(async(e,t)=>{await e.get(i.dirname(t)).removeEntry(i.basename(t)),e.delete(t)},`removeRemoteEntry`),reconcile:r(async(e,n,r)=>{let o=0,s=[];Object.keys(n.entries).forEach(function(e){let i=n.entries[e],a=r.entries[e];(!a||t.isFile(i.mode)&&i.timestamp.getTime()>a.timestamp.getTime())&&(s.push(e),o++)}),s.sort();let c=[];if(Object.keys(r.entries).forEach(function(e){n.entries[e]||(c.push(e),o++)}),c.sort().reverse(),!o)return;let l=n.type===`remote`?n.handles:r.handles;for(let t of s){let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);if(r.type===`local`){let e=l.get(n),r=await a.loadRemoteEntry(e);a.storeLocalEntry(t,r)}else{let e=a.loadLocalEntry(t);await a.storeRemoteEntry(l,n,e)}}for(let t of c)if(r.type===`local`)a.removeLocalEntry(t);else{let n=i.normalize(t.replace(e.mountpoint,`/`)).substring(1);await a.removeRemoteEntry(l,n)}},`reconcile`)};e.FS.filesystems.NATIVEFS_ASYNC=a}r(ne,`initializeNativeFS`);var re=r(async e=>{let t=[];async function n(e){for await(let r of e.values())t.push(r),r.kind===`directory`&&await n(r)}r(n,`collect`),await n(e);let i=new Map;i.set(`.`,e);for(let n of t){let t=(await e.resolve(n)).join(`/`);i.set(t,n)}return i},`getFsHandles`),ie=a(`AGFzbQEAAAABDANfAGAAAW9gAW8BfwMDAgECBygCE0pzdl9HZXRFcnJvcl9pbXBvcnQAAA5Kc3ZFcnJvcl9DaGVjawABChMCBwD7AQD7GwsJACAA+xr7FAAL`),ae=async function(){if(!(globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&typeof navigator.maxTouchPoints<`u`&&navigator.maxTouchPoints>1)))try{let e=await WebAssembly.compile(ie);return await WebAssembly.instantiate(e)}catch(e){if(e instanceof WebAssembly.CompileError)return;throw e}}();async function V(){let e=await ae;if(e)return e.exports;let t=Symbol(`error marker`);return{Jsv_GetError_import:r(()=>t,`Jsv_GetError_import`),JsvError_Check:r(e=>e===t,`JsvError_Check`)}}r(V,`getJsvErrorImport`);function H(e){let t={config:e,runtimeEnv:b},n={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:J(e),print:e.stdout,printErr:e.stderr,onExit(e){n.exitCode=e},thisProgram:e._sysExecutable,arguments:e.args,API:t,locateFile:r(t=>e.indexURL+t,`locateFile`),instantiateWasm:Y(e.indexURL)};return n}r(H,`createSettings`);function U(e){return function(t){try{t.FS.mkdirTree(e)}catch(t){console.error(`Error occurred while making a home directory '${e}':`),console.error(t),console.error(`Using '/' for a home directory instead`),e=`/`}t.FS.chdir(e)}}r(U,`createHomeDirectory`);function W(e){return function(t){Object.assign(t.ENV,e)}}r(W,`setEnvironment`);function G(e){return e?[async t=>{t.addRunDependency(`fsInitHook`);try{await e(t.FS,{sitePackages:t.API.sitePackages})}finally{t.removeRunDependency(`fsInitHook`)}}]:[]}r(G,`callFsInitHook`);function K(e){let t=e.HEAPU32[e._Py_Version>>>2];return[t>>>24&255,t>>>16&255,t>>>8&255]}r(K,`computeVersionTuple`);function q(e){let t=I(e);return async e=>{e.API.pyVersionTuple=K(e);let[n,r]=e.API.pyVersionTuple;e.FS.mkdirTree(`/lib`),e.API.sitePackages=`/lib/python${n}.${r}/site-packages`,e.FS.mkdirTree(e.API.sitePackages),e.FS.mkdirTree(`/lib/python${n}.${r}/lib-dynload`),e.addRunDependency(`install-stdlib`);try{let i=await t;e.FS.writeFile(`/lib/python${n}${r}.zip`,i)}catch(e){console.error(`Error occurred while installing the standard library:`),console.error(e)}finally{e.removeRunDependency(`install-stdlib`)}}}r(q,`installStdlib`);function J(e){let t;return t=e.stdLibURL==null?e.indexURL+`python_stdlib.zip`:e.stdLibURL,[q(t),U(e.env.HOME),W(e.env),ne,...G(e.fsInit)]}r(J,`getFileSystemInitializationFuncs`);function Y(e){if(typeof WasmOffsetConverter<`u`)return;let{binary:t,response:n}=F(e+`pyodide.asm.wasm`),r=V();return function(e,i){return async function(){let{Jsv_GetError_import:a,JsvError_Check:o}=await r;e.env.Jsv_GetError_import=a,e.env.JsvError_Check=o;try{let r;r=n?await WebAssembly.instantiateStreaming(n,e):await WebAssembly.instantiate(await t,e);let{instance:a,module:o}=r;i(a,o)}catch(e){console.warn(`wasm instantiation failed!`),console.warn(e)}}(),{}}}r(Y,`getInstantiateWasmFunc`);var oe=`314.0.6`;function X(e){return e===void 0||e.endsWith(`/`)?e:e+`/`}r(X,`withTrailingSlash`);var Z=oe;async function Q(e={}){if(await D(),e.lockFileContents&&e.lockFileURL)throw Error(`Can't pass both lockFileContents and lockFileURL`);let t=e.indexURL||await z();if(t=X(A(t)),e.packageBaseUrl=X(e.packageBaseUrl),e.cdnUrl=X(e.packageBaseUrl??`https://cdn.jsdelivr.net/pyodide/v314.0.6/full/`),!e.lockFileContents){let n=e.lockFileURL??t+`pyodide-lock.json`;e.lockFileContents=R(n),e.packageBaseUrl??=B(n)}e.indexURL=t,e.packageCacheDir&&=X(A(e.packageCacheDir));let n={jsglobals:globalThis,stdin:globalThis.prompt?()=>globalThis.prompt():void 0,args:[],env:{},packages:[],packageCacheDir:e.packageBaseUrl,enableRunUntilComplete:!0,checkAPIVersion:!0,BUILD_ID:`6f88bdfdf0581f0eab1d84a508b31ab96e83201d2b7fdd1dc653a3079c23a0f5`},r=Object.assign(n,e);return r.env.HOME??=`/home/pyodide`,r.env.PYTHONINSPECT??=`1`,r}r(Q,`initializeConfiguration`);function $(e){let t=H(e),n=t.API;return n.lockFilePromise=Promise.resolve(e.lockFileContents),t}r($,`createEmscriptenSettings`);async function se(e){return e.createPyodideModule?e.createPyodideModule:(await te(`${e.indexURL}pyodide.asm.mjs`)).default}r(se,`loadWasmScript`);async function ce(e,t){if(!e._loadSnapshot)return;let n=await e._loadSnapshot,r=ArrayBuffer.isView(n)?n:new Uint8Array(n);return t.noInitialRun=!0,t.INITIAL_MEMORY=r.length,r}r(ce,`prepareSnapshot`);async function le(e,t){let n=await e(t);if(t.exitCode!==void 0)throw new n.ExitStatus(t.exitCode);return n}r(le,`instantiatePyodideModule`);function ue(e,t){let n=e.API;if(t.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),t.convertNullToNone&&n.setCompatNullToNone(!0),t.toJsLiteralMap&&n.setCompatToJsLiteralMap(!0),n.version!==`314.0.6`&&t.checkAPIVersion)throw Error(`Pyodide version does not match: '${Z}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);e.locateFile=e=>{throw e.endsWith(`.so`)?Error(`Failed to find dynamic library "${e}"`):Error(`Unexpected call to locateFile("${e}")`)}}r(ue,`configureAPI`);function de(e,t,n){let r=e.API,i;return t&&(i=r.restoreSnapshot(t)),r.finalizeBootstrap(i,n._snapshotDeserializer)}r(de,`bootstrapPyodide`);async function fe(e,t){let n=e._api;return n.sys.path.insert(0,``),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(t.stdin,t.stdout,t.stderr),e}r(fe,`finalizeSetup`);async function pe(e={}){let t=await Q(e),n=$(t),r=await se(t),i=await ce(t,n),a=await le(r,n);return ue(a,t),await fe(de(a,i,t),t)}r(pe,`loadPyodide`);export{pe as loadPyodide,Z as version};