sliccy 6.181.0 → 6.182.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 (175) hide show
  1. package/dist/ui/.vite/manifest.json +188 -188
  2. package/dist/ui/assets/__vite-browser-external-CJkRLpJ-.js +1 -0
  3. package/dist/ui/assets/{account-store-J3ybiSNw.js → account-store-BxB3138q.js} +1 -1
  4. package/dist/ui/assets/{account-store-0RMtbmqz.js → account-store-UA_3Tz4g.js} +1 -1
  5. package/dist/ui/assets/{adobe-YOeKKYUk.js → adobe-C5iQ4vVx.js} +1 -1
  6. package/dist/ui/assets/{adobe-DEXpooxf.js → adobe-CGl3cGPR.js} +1 -1
  7. package/dist/ui/assets/{agent-panels-B4hlhzVG.js → agent-panels-DfmjvBS2.js} +1 -1
  8. package/dist/ui/assets/{almost-bash-shell-headless-BR1Hr6tM.js → almost-bash-shell-headless-l1xuiFhc.js} +36 -36
  9. package/dist/ui/assets/{apply-layout-BgFVMSBx.js → apply-layout-Bq6bvrT2.js} +1 -1
  10. package/dist/ui/assets/{apps-oyrUmtWx.js → apps-BX-IbYH9.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-Ytc_MWDd.js → azure-openai-BXvWNypo.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-B6qTFVGv.js → azure-openai-C2dDMpxW.js} +1 -1
  13. package/dist/ui/assets/{backend-hostfs-CEXlx0cW.js → backend-hostfs-DV8kfBUj.js} +1 -1
  14. package/dist/ui/assets/{browser-DG5MjvHF.js → browser-BM_DFzrh.js} +2 -2
  15. package/dist/ui/assets/{bsh-watchdog-DBtF-C4h.js → bsh-watchdog-CmaS7wa9.js} +1 -1
  16. package/dist/ui/assets/{cdp-DVWJozRc.js → cdp-B0aSo4ch.js} +1 -1
  17. package/dist/ui/assets/{cerebras-brHRFUH2.js → cerebras-B2SDJ5pX.js} +1 -1
  18. package/dist/ui/assets/{cerebras-BT44OLPt.js → cerebras-D29ytBVb.js} +1 -1
  19. package/dist/ui/assets/{composer-speech-BZQtz7u1.js → composer-speech-Dt-gM11M.js} +1 -1
  20. package/dist/ui/assets/{connect-surface-D7cq2QI7.js → connect-surface-Cb3XqWWR.js} +1 -1
  21. package/dist/ui/assets/{core-aQUekdF7.js → core-CDo7qjEn.js} +1 -1
  22. package/dist/ui/assets/{cost-command-DZQVtgRS.js → cost-command-CitGzr6C.js} +1 -1
  23. package/dist/ui/assets/{directed-approval-DvAxEX5J.js → directed-approval-BEel8QYA.js} +1 -1
  24. package/dist/ui/assets/{emscripten-vfs-hook-agmT6Hsz.js → emscripten-vfs-hook-bNKkM3Zb.js} +1 -1
  25. package/dist/ui/assets/{ensure-speech-assets-CQ05z2Xw.js → ensure-speech-assets-DnCun_bM.js} +1 -1
  26. package/dist/ui/assets/{esbuild-wasm-DS_YG2EY.js → esbuild-wasm-CeZYVyQ9.js} +1 -1
  27. package/dist/ui/assets/{ffmpeg-wasm-B77gfnB_.js → ffmpeg-wasm-CV1BmGNS.js} +1 -1
  28. package/dist/ui/assets/{frozen-archive-writer-qxZ9jGOV.js → frozen-archive-writer-DWckLPIx.js} +1 -1
  29. package/dist/ui/assets/{fs-Dkh-H6Cd.js → fs-Bl1dGTw7.js} +2 -2
  30. package/dist/ui/assets/{fs-D6FCLu_F.js → fs-Bvj_6WV6.js} +1 -1
  31. package/dist/ui/assets/{gelatiere-store-ChogqkEu.js → gelatiere-store-CslswlOn.js} +1 -1
  32. package/dist/ui/assets/{gelatiere-unit-DxFUh33e.js → gelatiere-unit-DOffAKPD.js} +1 -1
  33. package/dist/ui/assets/{github-D31l6kcK.js → github-DRuWNJ0x.js} +2 -2
  34. package/dist/ui/assets/{github-CrHzeKQ8.js → github-DVquHzS1.js} +1 -1
  35. package/dist/ui/assets/{github-auth-VTbKhlbJ.js → github-auth-C5UPE82y.js} +1 -1
  36. package/dist/ui/assets/{github-copilot-eUb4Djg_.js → github-copilot-DXbnFsoC.js} +1 -1
  37. package/dist/ui/assets/{github-copilot-CVwHDKPD.js → github-copilot-ha5V9jKJ.js} +1 -1
  38. package/dist/ui/assets/{github-install-Dkt1u6HU.js → github-install-z8nzKR56.js} +1 -1
  39. package/dist/ui/assets/{github-zip-B6gHXxqd.js → github-zip-YeBT3Ny7.js} +1 -1
  40. package/dist/ui/assets/{guest-tool-gate-YxkVsl15.js → guest-tool-gate-Dn4Cs-oT.js} +1 -1
  41. package/dist/ui/assets/{hear-BKQjhhNP.js → hear-ClByyjXy.js} +1 -1
  42. package/dist/ui/assets/{help-C7WHd3Ia.js → help-p6vq-7bY.js} +1 -1
  43. package/dist/ui/assets/{host-command-ODKvqvjN.js → host-command-PUA7nfMk.js} +1 -1
  44. package/dist/ui/assets/{installer-D35TzRKw.js → installer-hyWN7t-8.js} +1 -1
  45. package/dist/ui/assets/{interrupted-work-recovery-BK9ZDM7F.js → interrupted-work-recovery-C3eyzaf0.js} +1 -1
  46. package/dist/ui/assets/js-realm-worker-C8L3DYxo.js +53 -0
  47. package/dist/ui/assets/jsh-executor-BRw7B4H0.js +18 -0
  48. package/dist/ui/assets/{kernel-worker-UUfeG-Eg.js → kernel-worker-DJ8FZwqE.js} +9 -9
  49. package/dist/ui/assets/{lick-ws-bridge-DoyPgrSr.js → lick-ws-bridge-AHYpxmrH.js} +1 -1
  50. package/dist/ui/assets/{lick-ws-bridge-DdgwrW91.js → lick-ws-bridge-DjxKrqtY.js} +1 -1
  51. package/dist/ui/assets/{live-session-curation-6O9TA5qM.js → live-session-curation-ChbHqCg_.js} +1 -1
  52. package/dist/ui/assets/{live-session-snapshot-D_7T7FHe.js → live-session-snapshot-CEM9afjE.js} +1 -1
  53. package/dist/ui/assets/{local-llm-BYaSa2xI.js → local-llm-3Pq3W9JZ.js} +1 -1
  54. package/dist/ui/assets/{local-llm-TK4oGrWD.js → local-llm-DSfR5Yt1.js} +1 -1
  55. package/dist/ui/assets/{magick-wasm-DCNZhAyd.js → magick-wasm-KFp97Nzb.js} +1 -1
  56. package/dist/ui/assets/{main-Bgkf5d3Z.js → main-DtPQfxOa.js} +3 -3
  57. package/dist/ui/assets/{main-cherry-BUdIAeG5.js → main-cherry-GQeDS2ns.js} +1 -1
  58. package/dist/ui/assets/{memory-curation-seam-CNOuxuz4.js → memory-curation-seam-COOFWWtR.js} +1 -1
  59. package/dist/ui/assets/{memory-health-BSo0HKQx.js → memory-health-DxPjxnOp.js} +1 -1
  60. package/dist/ui/assets/{memory-write-execute-mQfg-aG4.js → memory-write-execute-CRxpEM2X.js} +1 -1
  61. package/dist/ui/assets/{mount-h-dwh5GL.js → mount-9N6h5nwh.js} +3 -3
  62. package/dist/ui/assets/{mount-BpcQX-Sq.js → mount-Dkwa5rwA.js} +1 -1
  63. package/dist/ui/assets/{new-session-CTx7YRbr.js → new-session-C2Unp_ay.js} +2 -2
  64. package/dist/ui/assets/{oauth-bootstrap-B18nfDG4.js → oauth-bootstrap-3r1LKeNV.js} +2 -2
  65. package/dist/ui/assets/{onboarding-orchestrator-Df3UDgbD.js → onboarding-orchestrator-DagKmKCB.js} +1 -1
  66. package/dist/ui/assets/{openai-codex-Cu1dT_JE.js → openai-codex--tiTbtXj.js} +1 -1
  67. package/dist/ui/assets/{openai-codex-DBUtEEk3.js → openai-codex-CJC7uwBp.js} +1 -1
  68. package/dist/ui/assets/{openrouter-BwrZKpwu.js → openrouter-aXBsdtFI.js} +1 -1
  69. package/dist/ui/assets/{openrouter-free-B_LRYNX8.js → openrouter-free-BeCg7Ecw.js} +1 -1
  70. package/dist/ui/assets/{openrouter-free-CXqUunRn.js → openrouter-free-DqFFRvst.js} +1 -1
  71. package/dist/ui/assets/{openrouter-CrB0BbnV.js → openrouter-mBY_6dIp.js} +1 -1
  72. package/dist/ui/assets/{openrouter-oauth-Bnohq7Ac.js → openrouter-oauth-C7CZ9fp_.js} +1 -1
  73. package/dist/ui/assets/{openrouter-oauth-Bpzo9cvY.js → openrouter-oauth-DQIC6b5R.js} +1 -1
  74. package/dist/ui/assets/{opfs-mount-CmDtZOGy.js → opfs-mount-tiZR34GY.js} +1 -1
  75. package/dist/ui/assets/{panel-rpc-handlers-BFG-ZvfW.js → panel-rpc-handlers-D8NOrxvf.js} +2 -2
  76. package/dist/ui/assets/{panelize-shell-CLHSr5bz.js → panelize-shell-C_Xs3rhf.js} +1 -1
  77. package/dist/ui/assets/{pi-edit-execution-wHbJ4R48.js → pi-edit-execution-kItlGFSm.js} +1 -1
  78. package/dist/ui/assets/{provider-BXK9OD8Z.js → provider-BtTOwLci.js} +2 -2
  79. package/dist/ui/assets/{provider-DyqdvQeZ.js → provider-DuCd6_sr.js} +1 -1
  80. package/dist/ui/assets/{provider-settings-BO6Fedc5.js → provider-settings-PedRbxpK.js} +1 -1
  81. package/dist/ui/assets/provider-store-access-BbD8NSzf.js +1 -0
  82. package/dist/ui/assets/provider-store-access-BvzkUnma.js +1 -0
  83. package/dist/ui/assets/{providers-BvApGkM9.js → providers-BkwBVwkB.js} +2 -2
  84. package/dist/ui/assets/{providers-CAcycJZb.js → providers-CWFcdblf.js} +1 -1
  85. package/dist/ui/assets/{py-live-vfs-Di71Rd2P.js → py-live-vfs-DMc0LhCg.js} +12 -0
  86. package/dist/ui/assets/{py-live-vfs-CJWt_6ye.js → py-live-vfs-Dm8bBjqR.js} +12 -0
  87. package/dist/ui/assets/py-realm-worker-BaO89JAR.js +255 -0
  88. package/dist/ui/assets/{pyodide-W71AWfnt.js → pyodide-DY17DXNV.js} +2 -2
  89. package/dist/ui/assets/{quick-llm-BENSRBxD.js → quick-llm-DKsocfis.js} +1 -1
  90. package/dist/ui/assets/realm-inprocess-CI_Msk8I.js +33 -0
  91. package/dist/ui/assets/{recovery-screen-Tq3wGnmV.js → recovery-screen-HGByYfVb.js} +1 -1
  92. package/dist/ui/assets/{remote-terminal-view-C8LiE7Sl.js → remote-terminal-view-C6Ao0U4O.js} +1 -1
  93. package/dist/ui/assets/{require-guards-DPd9EYEo.js → require-guards-DPf5QETL.js} +14 -3
  94. package/dist/ui/assets/{restore-DVP0SPlY.js → restore-BsViTTTd.js} +1 -1
  95. package/dist/ui/assets/{run-zLr2k5ZP.js → run-BEHokdPX.js} +1 -1
  96. package/dist/ui/assets/{run-BGZP3j5p.js → run-BLi5_vwK.js} +1 -1
  97. package/dist/ui/assets/{run-CKp8YCSO.js → run-BOMvKGOX.js} +1 -1
  98. package/dist/ui/assets/{run-C-OJvA2b.js → run-BP0Pyqp1.js} +1 -1
  99. package/dist/ui/assets/{run-FyOp8GaC.js → run-C0CADtt5.js} +1 -1
  100. package/dist/ui/assets/{run-CX6BUmN-.js → run-C1e4W7pJ.js} +1 -1
  101. package/dist/ui/assets/{run-BV_OY-0v.js → run-CKI507uv.js} +1 -1
  102. package/dist/ui/assets/{run-BKItPKix.js → run-CKdymE5z.js} +3 -3
  103. package/dist/ui/assets/{run-CiUSMP3Y.js → run-DEBWO_VC.js} +2 -2
  104. package/dist/ui/assets/{run-CPT6_R-_.js → run-DgblerTV.js} +2 -2
  105. package/dist/ui/assets/{screencapture-run-BnyfqO9F.js → screencapture-run-Dt7lEfIp.js} +1 -1
  106. package/dist/ui/assets/{session-command-memory-HovmIuMP.js → session-command-memory-D-p81a7P.js} +2 -2
  107. package/dist/ui/assets/{session-jsonl-DK-0Hm8U.js → session-jsonl-C-BZSOHy.js} +1 -1
  108. package/dist/ui/assets/{session-jsonl-PCOch0_B.js → session-jsonl-CXY4TQ4Y.js} +1 -1
  109. package/dist/ui/assets/{session-search-index-BNvhiRLv.js → session-search-index-nhvgyuxV.js} +1 -1
  110. package/dist/ui/assets/{setup-feature-flags-remote-2RQqEGaT.js → setup-feature-flags-remote-CpzgUHLB.js} +1 -1
  111. package/dist/ui/assets/{setup-model-catalog-B911rONc.js → setup-model-catalog-BGx3XYFY.js} +1 -1
  112. package/dist/ui/assets/shared-BDXQKitm.js +1 -0
  113. package/dist/ui/assets/shared-DfMXB1pm.js +4 -0
  114. package/dist/ui/assets/{signed-fetch-gB25Bw53.js → signed-fetch-t5uBcIk_.js} +1 -1
  115. package/dist/ui/assets/{silent-renew-backoff-Brcr76an.js → silent-renew-backoff-Q1A_jbQH.js} +1 -1
  116. package/dist/ui/assets/slicc-version-YnqCI9lq.js +1 -0
  117. package/dist/ui/assets/{snapshot-Ci8jnY_A.js → snapshot-Bb3mZrhI.js} +1 -1
  118. package/dist/ui/assets/{snapshot-features-BYEGCVfZ.js → snapshot-features-D44t7iA7.js} +1 -1
  119. package/dist/ui/assets/{soundscape-CdQvLeB0.js → soundscape-CUzGNWGR.js} +1 -1
  120. package/dist/ui/assets/{speak-BT4Xdlvj.js → speak-B-rF7cd2.js} +1 -1
  121. package/dist/ui/assets/{sprinkle-manager-8T1XJmL3.js → sprinkle-manager-BWdoEwv2.js} +1 -1
  122. package/dist/ui/assets/{sprinkle-renderer-_vOdPt8H.js → sprinkle-renderer-B-1HSkrF.js} +16 -16
  123. package/dist/ui/assets/{ssh-BGtVaOJn.js → ssh-DGBxesfZ.js} +1 -1
  124. package/dist/ui/assets/{state-nnDajRje.js → state-B7Ano9ql.js} +1 -1
  125. package/dist/ui/assets/{store-BxxMrsS7.js → store-B3uS3nQU.js} +1 -1
  126. package/dist/ui/assets/{store-D9XL9aIQ.js → store-DTMATE-h.js} +1 -1
  127. package/dist/ui/assets/{sudo-CnXURhFV.js → sudo-D8OGZd6t.js} +1 -1
  128. package/dist/ui/assets/{supervisor-fOZGoD0G.js → supervisor-Ck1Ryx2i.js} +1 -1
  129. package/dist/ui/assets/{sync-dialog-oh_O9Mv5.js → sync-dialog-C2TF9Y3h.js} +1 -1
  130. package/dist/ui/assets/{transformers-env-zmBF2In6.js → transformers-env-h8uZoLwJ.js} +1 -1
  131. package/dist/ui/assets/{tray-leader-Co-1rs4b.js → tray-leader-BHyMCdCH.js} +1 -1
  132. package/dist/ui/assets/{tray-leave-runtime-PpRt0K76.js → tray-leave-runtime-DR6t2Cuo.js} +1 -1
  133. package/dist/ui/assets/{tray-sidecar-DYuM8Ifi.js → tray-sidecar-BdEGdpUe.js} +1 -1
  134. package/dist/ui/assets/{turn-journal-_Hrn3Aoy.js → turn-journal-B4vV4fDV.js} +1 -1
  135. package/dist/ui/assets/{upgrade-detection-jhAzOLSL.js → upgrade-detection-BXyDgjYd.js} +1 -1
  136. package/dist/ui/assets/{upskill-lick-skip-D1vFOKgN.js → upskill-lick-skip-8Ozx8QGg.js} +1 -1
  137. package/dist/ui/assets/{voice-reply--Z1dXvPT.js → voice-reply-ChDAb3Rf.js} +1 -1
  138. package/dist/ui/assets/{wc-attach-BadBFuc7.js → wc-attach-BN8rykoa.js} +2 -2
  139. package/dist/ui/assets/{wc-browser-DqUJaWcH.js → wc-browser-z1N3wGuK.js} +1 -1
  140. package/dist/ui/assets/{wc-computers-CTPf-95b.js → wc-computers-C1g9iCUj.js} +1 -1
  141. package/dist/ui/assets/{wc-detached-UIVnUZp5.js → wc-detached-DHD--8Tf.js} +1 -1
  142. package/dist/ui/assets/{wc-extension-Bxc7adS3.js → wc-extension-qof5b3tN.js} +2 -2
  143. package/dist/ui/assets/{wc-follower-oauth-DEBzlhDR.js → wc-follower-oauth-Bsskcjc7.js} +1 -1
  144. package/dist/ui/assets/{wc-follower-CcQiy0Ep.js → wc-follower-sKXDjyv-.js} +3 -3
  145. package/dist/ui/assets/{wc-gelatiere-B3T_MsYw.js → wc-gelatiere-D_uq7S-T.js} +1 -1
  146. package/dist/ui/assets/{wc-live-B4gJYGS5.js → wc-live-DWEUEDdK.js} +5 -5
  147. package/dist/ui/assets/{wc-nav-Cc31eRBb.js → wc-nav-DqIdooNV.js} +2 -2
  148. package/dist/ui/assets/{wc-onboarding-A_43Ieo4.js → wc-onboarding-38WwDwrA.js} +2 -2
  149. package/dist/ui/assets/{wc-permissions-C9woviuI.js → wc-permissions-o70pdgUK.js} +2 -2
  150. package/dist/ui/assets/{wc-placeholder-t7YMeS_j.js → wc-placeholder-DMKTZY8P.js} +3 -3
  151. package/dist/ui/assets/{wc-secret-request-Dfm9QvyE.js → wc-secret-request-CmpDh1Bs.js} +1 -1
  152. package/dist/ui/assets/{wc-settings-BD6JONjg.js → wc-settings-7DxLA_ig.js} +3 -3
  153. package/dist/ui/assets/{wc-shell-Ba5uNdmF.js → wc-shell-DFszC8_0.js} +3 -3
  154. package/dist/ui/assets/{wc-shortcut-config-DeU2Q2BU.js → wc-shortcut-config-Co6ONiUg.js} +1 -1
  155. package/dist/ui/assets/{wc-sprinkles-D4sQVRG5.js → wc-sprinkles-zxKMU9ju.js} +2 -2
  156. package/dist/ui/assets/{wc-transcript-export-CsUhlwMo.js → wc-transcript-export-BnOv-hzh.js} +2 -2
  157. package/dist/ui/assets/{wc-tray-CwvVidS8.js → wc-tray-B2w3dtCQ.js} +4 -4
  158. package/dist/ui/assets/welcome-detection-Cik05qcd.js +1 -0
  159. package/dist/ui/assets/{whisper-session-MB0YiZ0q.js → whisper-session-BB92W1rY.js} +2 -2
  160. package/dist/ui/assets/{xai-grok-0BxCS34q.js → xai-grok-Btqu459a.js} +1 -1
  161. package/dist/ui/assets/{xai-grok-rwJAZiuv.js → xai-grok-DsDg76ef.js} +1 -1
  162. package/dist/ui/index.html +3 -3
  163. package/dist/ui/packages/webapp/index.html +3 -3
  164. package/package.json +1 -1
  165. package/dist/ui/assets/__vite-browser-external-BlQ4QU88.js +0 -1
  166. package/dist/ui/assets/js-realm-worker-BIVxi3Fa.js +0 -50
  167. package/dist/ui/assets/jsh-executor-DhdH2_yG.js +0 -18
  168. package/dist/ui/assets/provider-store-access-BFeKOGcv.js +0 -1
  169. package/dist/ui/assets/provider-store-access-C2X0AryS.js +0 -1
  170. package/dist/ui/assets/py-realm-worker-DLb3nkyD.js +0 -244
  171. package/dist/ui/assets/realm-inprocess-BBw2Fa8u.js +0 -30
  172. package/dist/ui/assets/shared-C_68vn79.js +0 -4
  173. package/dist/ui/assets/shared-mBEktoxE.js +0 -1
  174. package/dist/ui/assets/slicc-version-CAje2bW-.js +0 -1
  175. package/dist/ui/assets/welcome-detection-CIDbn0ev.js +0 -1
@@ -1,18 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import{t}from"./content-type-_QKWY0B2.js";import"./proxied-fetch-CNe6icTW.js";import{i as n,r}from"./panel-rpc-DW7W4w6_.js";import{t as i}from"./fetch-body-CuwTaJC_.js";import{a}from"./path-utils-DNJG-zQf.js";import{r as o,t as s}from"./multipart-form-data-DopbgwRR.js";import"./tray-storage-keys-DbThbnIh.js";import"./tray-runtime-config-DBapPARd.js";import{n as c,t as l}from"./picker-popup-B6AyYTBw.js";import{t as u}from"./process-manager-BkhAohXT.js";import{C as d,N as f,b as p,d as m,g as h,p as g,t as ee,x as te,y as _}from"./shared-C_68vn79.js";import{t as ne}from"./require-guards-DPd9EYEo.js";import{n as v}from"./esbuild-wasm-DS_YG2EY.js";import{t as re}from"./wasm-compiler-Ct7QZURL.js";import{a as y,i as ie,n as ae,o as oe,s as se,t as ce}from"./usb-device-registry-DFzxaOky.js";import{C as le,a as ue,b as de,c as fe,i as pe,m as me,o as he,r as ge,x as _e}from"./sync-exec-dispatch-CEbwf9Az.js";import{a as ve,o as ye,s as be}from"./sync-sab-wire-D_d0fd3b.js";import{i as xe}from"./just-bash-compat-B-SPHuh_.js";let b,x;function S(){return async({kind:e,ctx:t})=>{if(e===`py`){if(typeof Worker<`u`)return Ce();if(!x){let{createInProcessPyRealmFactory:e}=await import(`./realm-inprocess-BBw2Fa8u.js`);x=e()}return x({kind:e,ctx:t})}if(typeof Worker<`u`)return Se();if(!b){let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-BBw2Fa8u.js`);b=e()}return b({kind:e,ctx:t})}}function Se(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return we(new Worker(new URL(`/assets/js-realm-worker-BIVxi3Fa.js`,``+import.meta.url),{type:`module`}))}function Ce(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return we(new Worker(new URL(`/assets/py-realm-worker-DLb3nkyD.js`,``+import.meta.url),{type:`module`}))}function we(e){let t={postMessage:(t,n)=>n?e.postMessage(t,n):e.postMessage(t),addEventListener:(t,n)=>e.addEventListener(t,n),removeEventListener:(t,n)=>e.removeEventListener(t,n)},n=!1;return{controlPort:t,isolatedThread:!0,addEventListener:(t,n,r)=>e.addEventListener(t,n,r),removeEventListener:(t,n)=>e.removeEventListener(t,n),terminate(){if(!n){n=!0;try{e.terminate()}catch{}}}}}function Te(){if(g())return decodeURIComponent(h(`pyodide/pyodide.mjs`,`../../../../../node_modules/pyodide/`).pathname)}function Ee(e){let t=e.startsWith(`/`)?e:`/${e}`;return new URL(`file://${t}`).href}function C(e){return e instanceof Error?e.message:String(e)}function De(e){return`${(e&&e.length>0?e:`[eval]`).replace(/\.[^./]+$/,``)}.js`}async function Oe(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:De(n),supported:{"dynamic-import":!1},define:{"import.meta.url":JSON.stringify(r)}})).code}async function ke(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:De(n),supported:{"dynamic-import":!1},...r?{define:{"import.meta.url":JSON.stringify(r)}}:{}})).code}const Ae=/\bimport\s*\.\s*meta\s*\.\s*url\b/g,je=/\bimport\s*\.\s*meta\b/g;function Me(e,t){let n=JSON.stringify(t);return e.replace(Ae,n).replace(je,`({ url: ${n} })`)}async function w(e,t,n,r){let i=await e();return i.transpileModule(Me(t,r),{compilerOptions:{module:i.ModuleKind.CommonJS,target:i.ScriptTarget.ES2020,esModuleInterop:!0},fileName:`${n.replace(/\.[^./]+$/,``)}.ts`}).outputText}function Ne(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>v(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>m(t));return async({source:e,path:t,kind:i})=>{if(i!==`esm`||!p(e))return e;let a=Ee(t),o;try{return await Oe(n,e,t,a)}catch(e){o=e}try{return await w(r,e,t,a)}catch(e){throw Error(`Failed to transpile ESM module '${t}': ${C(o)}; typescript fallback: ${C(e)}`)}}}function T(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>v(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>m(t));return async({source:e,filename:t})=>{if(!p(e)&&!_(e))return e;let i=typeof t==`string`&&t.startsWith(`/`),a=i?Ee(t):void 0,o=i?t:`[eval].js`,s;try{return await ke(n,e,t,a)}catch(e){s=e}try{return await w(r,e,o,a??``)}catch(e){throw Error(`Failed to transpile entry source: ${C(s)}; typescript fallback: ${C(e)}`)}}}function E(e,t){if(!e.startsWith(`#!`))return e;let n=e.indexOf(`
2
- `);if(n===-1)return``;let r=e.slice(n+1);return t?.keepLine?`\n${r}`:r}function Pe(e){return a(e).dir}const D=[`node`,`require`,`default`],O=[`node`,`import`,`default`],Fe=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,Ie=/\bimport\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,Le=/(?:^|[;\n}])\s*import\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,Re=/(?:^|[;\n}])\s*export\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,ze=/(?:^|[;\n}])\s*import\s*(['"])([^'"]+)\1/g;function Be(e,t,n){let r=t[0].indexOf(n);return r<0?!1:e.startsWith(n,t.index+r)}function Ve(e){let t=te(e),n=new Map,r=(r,i,a)=>{r.lastIndex=0;let o;for(;(o=r.exec(e))!==null;){if(!Be(t,o,a))continue;let e=o[2];n.get(e)!==`import`&&n.set(e,i)}};return r(Fe,`require`,`require`),r(Ie,`import`,`import`),r(Le,`import`,`import`),r(Re,`import`,`export`),r(ze,`import`,`import`),[...n].map(([e,t])=>({specifier:e,kind:t}))}async function He(e,t,n,r){if(n===`json`)return`module.exports = JSON.parse(${JSON.stringify(e)});\n`;let i=E(e);if(n===`esm`){if(!r)throw Error(`Cannot load ESM module '${t}': no transpile hook configured (run: ${ee} esbuild-wasm)`);return await r({source:i,path:t,kind:n})}return i}async function Ue(e){let{entrySpecifiers:t,fromDir:n,reader:r,conditions:i,transpile:a}=e,o=e.requireConditions??D,s=e.importConditions??O,c=i??o,l=new Map,u=[],f={},p={};async function m(e,t){if(l.has(e))return;let n=await r.readFile(e),i=await He(n,e,t,a);l.set(e,{path:e,source:n,cjsSource:i,kind:t});let c=Pe(e),h={},g={};for(let{specifier:e,kind:t}of Ve(n)){let n;try{n=await d(e,c,r,{conditions:t===`import`?s:o})}catch(t){g[e]=t instanceof Error?t.message:String(t);continue}n.type===`file`&&(h[e]=n.path,await m(n.path,n.moduleKind))}f[e]=h,Object.keys(g).length>0&&(p[e]=g),u.push(e)}let h={};for(let e of t){let t=await d(e,n,r,{conditions:c});t.type===`file`&&(h[e]=t.path,await m(t.path,t.moduleKind))}return{files:u.map(e=>{let t=l.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return t}),entryMap:h,edges:f,edgeErrors:p}}function We(e){return!(e.startsWith(`sliccy:`)||e.startsWith(`node:`)||f.has(e)||ne.has(e))}function Ge(e,t){for(let[n,r]of Object.entries(t))e[n]={...e[n]??{},...r}}async function Ke(e){let{entryCode:t,fromDir:n,entryFilename:r,reader:i,transpile:a,transpileEntry:o}=e,s=new Map,c=[],l={},u={},d={},f={};for(let{specifier:e,kind:r}of Ve(t))if(We(e))try{let t=await Ue({entrySpecifiers:[e],fromDir:n,reader:i,transpile:a,conditions:r===`import`?O:D,requireConditions:D,importConditions:O});for(let e of t.files)s.has(e.path)||(s.set(e.path,e),c.push(e.path));Object.assign(l,t.entryMap),Ge(u,t.edges),Ge(d,t.edgeErrors)}catch(t){f[e]=t instanceof Error?t.message:String(t)}let m;o&&(p(t)||_(t))&&(m=await o({source:t,filename:r??`[eval]`,fromDir:n}));let h={files:c.map(e=>{let t=s.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return{path:t.path,cjsSource:t.cjsSource,kind:t.kind}}),entryMap:l,edges:u,edgeErrors:d,errors:f};return m!==void 0&&(h.entrySource=m),h}function k(){return globalThis.navigator?.hid??null}function qe(e){let t=e.collections?.[0];return t?`${t.usagePage??``}:${t.usage??``}`:``}function Je(e,t){return e===t||e.vendorId===t.vendorId&&e.productId===t.productId&&(e.productName??``)===(t.productName??``)&&qe(e)===qe(t)&&!!e.productName}var Ye=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(Je(n,e))return this.byHandle.set(t,e),t;let t=`hid${++this.counter}`;return this.byHandle.set(t,e),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,device:t}))}};let Xe=null;function Ze(){return Xe||=new Ye,Xe}const Qe=4194304;function A(e,t){let n=t.collections?.[0];return{handle:e,vendorId:t.vendorId,productId:t.productId,...t.productName?{productName:t.productName}:{},...n?.usagePage===void 0?{}:{usagePage:n.usagePage},...n?.usage===void 0?{}:{usage:n.usage},opened:t.opened}}function j(e,t){let n=e.get(t);if(!n)throw Error(`unknown hid handle '${t}'`);return n}async function M(e){e.opened||await e.open()}function N(e,t){if(e>4194304)throw Error(`${t} exceeds the ${Qe}-byte (4 MiB) v1 limit`)}function P(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t}async function $e(e,t){return(await t.getDevices()).map(t=>A(e.register(t),t))}async function et(e,t,n){let r=await t.requestDevice({filters:n});if(r.length===0)throw Error(`No device selected.`);return r.map(t=>A(e.register(t),t))}function tt(e,t){return A(t,j(e,t))}async function nt(e,t){await j(e,t).open()}async function rt(e,t){await j(e,t).close()}async function it(e,t,n,r){N(r.byteLength,`send report payload`);let i=j(e,t);await M(i),await i.sendReport(n,r)}async function at(e,t,n,r){N(r.byteLength,`send feature report payload`);let i=j(e,t);await M(i),await i.sendFeatureReport(n,r)}async function ot(e,t,n){let r=j(e,t);return await M(r),{reportId:n,bytes:P(await r.receiveFeatureReport(n))}}async function st(e,t,n){let r=j(e,t);await M(r);let i=e=>{n({reportId:e.reportId,bytes:P(e.data)})};return r.addEventListener(`inputreport`,i),()=>r.removeEventListener(`inputreport`,i)}const F=6e4;function ct(){return l()}function lt(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),F);c(`hid-device`,e??[],void 0,{timeoutMs:F}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`hid picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open HID picker`})})})}function I(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var ut=class{registry;constructor(e){this.registry=e}hid(){let e=k();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}list(){return $e(this.registry,this.hid())}async request(e){if(ct()){let t=await lt(e);if(`cancelled`in t)throw Error(`user cancelled the HID picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquireAll(t.info);if(n.length===0)throw Error(`granted device could not be re-acquired`);return n.map(e=>A(this.registry.register(e),e))}return et(this.registry,this.hid(),e)}async reacquireAll(e){return(await this.hid().getDevices()).filter(t=>t.vendorId===e.vendorId&&t.productId===e.productId)}info(e){return Promise.resolve(tt(this.registry,e))}open(e){return nt(this.registry,e)}close(e){return rt(this.registry,e)}sendReport(e,t,n){return it(this.registry,e,t,I(n))}sendFeatureReport(e,t,n){return at(this.registry,e,t,I(n))}async receiveFeatureReport(e,t){let n=await ot(this.registry,e,t);return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){return st(this.registry,e,e=>t({reportId:e.reportId,bytes:new Uint8Array(e.bytes)}))}},dt=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`hid-list`,void 0)).devices}async request(t){return(await this.rpc.call(`hid-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).devices}async info(e){return(await this.rpc.call(`hid-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`hid-open`,{handle:e})}async close(e){await this.rpc.call(`hid-close`,{handle:e})}async sendReport(e,t,n){await this.rpc.call(`hid-send-report`,{handle:e,reportId:t,bytes:I(n)})}async sendFeatureReport(e,t,n){await this.rpc.call(`hid-send-feature-report`,{handle:e,reportId:t,bytes:I(n)})}async receiveFeatureReport(e,t){let n=await this.rpc.call(`hid-receive-feature-report`,{handle:e,reportId:t});return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){let n=this.rpc.onEvent(`hid-input-report`,n=>{let r=n;!r||r.handle!==e||t({reportId:r.reportId,bytes:new Uint8Array(r.bytes)})});try{await this.rpc.call(`hid-subscribe-input-reports`,{handle:e})}catch(e){throw n(),e}return async()=>{n();try{await this.rpc.call(`hid-unsubscribe-input-reports`,{handle:e})}catch{}}}};function L(e,t){return e&&k()?new ut(Ze()):t?new dt(t):null}function ft(e){return async function(t,n){let r=t instanceof Request?t:null,i=pt(t),a=(n?.method??r?.method??`GET`).toUpperCase(),o=ht(r?.headers,n?.headers),s=await _t(n,r,a,o);s.defaultContentType&&!gt(o,`content-type`)&&(o[`Content-Type`]=s.defaultContentType);let c=await e(i,{method:a,headers:o,body:s.body}),l=new Headers;for(let[e,t]of Object.entries(c.headers))try{l.set(e,t)}catch{}let u=c.status===204||c.status===205||c.status===304||!c.body||c.body.byteLength===0?null:c.body,d=new Response(u,{status:c.status,statusText:c.statusText,headers:l});try{Object.defineProperty(d,"url",{value:c.url||i,writable:!1,configurable:!0,enumerable:!1})}catch{}return d}}function pt(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function mt(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}if(Array.isArray(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return{...e}}}function ht(e,t){let n={};e&&e.forEach((e,t)=>{n[t]=e});let r=mt(t);if(r)for(let[e,t]of Object.entries(r))n[e]=t;return n}function gt(e,t){return R(e,t)!==void 0}function R(e,t){let n=t.toLowerCase(),r;for(let[t,i]of Object.entries(e))t.toLowerCase()===n&&(r=i);return r}async function _t(e,n,r,a){if(e&&`body`in e&&e.body!==void 0)return vt(e.body,r);if(n&&r!==`GET`&&r!==`HEAD`){let e=n.body!==null,r=new Uint8Array(await n.arrayBuffer()),o=R(a,`content-type`)??``,s=e&&(!o||!t(o));return{body:r.byteLength===0?void 0:s?i(r):new TextDecoder(`utf-8`).decode(r),defaultContentType:s?`application/octet-stream`:void 0}}return{}}async function vt(e,t){if(o(e)){if(t===`GET`||t===`HEAD`)return{};let n=await s(e);return{body:n.bytes,defaultContentType:n.contentType}}return{body:await yt(e,t),defaultContentType:xt(e,t)}}async function yt(e,t){if(e!=null&&t!==`GET`&&t!==`HEAD`){if(typeof e==`string`)return e;if(e instanceof URLSearchParams)return e.toString();if(e instanceof Uint8Array)return i(e);if(e instanceof ArrayBuffer)return new Uint8Array(e).slice();if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice()}if(typeof Blob<`u`&&e instanceof Blob)return new Uint8Array(await e.arrayBuffer());throw typeof ReadableStream<`u`&&e instanceof ReadableStream?Error(`node fetch shim: ReadableStream request bodies are not supported (collect into a Uint8Array or string before calling fetch)`):Error(`node fetch shim: unsupported request body type (${Object.prototype.toString.call(e)}); use a string, Uint8Array, ArrayBuffer, Blob, FormData, or URLSearchParams`)}}function bt(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob}function xt(e,t){if(e instanceof URLSearchParams)return`application/x-www-form-urlencoded;charset=UTF-8`;if(!(t===`GET`||t===`HEAD`||!bt(e)))return typeof Blob<`u`&&e instanceof Blob&&e.type?e.type:`application/octet-stream`}function z(){return globalThis.navigator?.serial??null}var St=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(n.port===e)return t;let t=`serial${++this.counter}`;return this.byHandle.set(t,{port:e,opened:!1}),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,entry:t}))}retainOnly(e){let t=[];for(let[n,r]of[...this.byHandle])e.includes(r.port)||(this.byHandle.delete(n),t.push({handle:n,entry:r}));return t}};let B=null;function V(){return B||=new St,B}const H=4194304;function U(e,t){let n=t.port.getInfo();return{handle:e,...n.usbVendorId===void 0?{}:{usbVendorId:n.usbVendorId},...n.usbProductId===void 0?{}:{usbProductId:n.usbProductId},opened:t.opened}}function W(e,t){let n=e.get(t);if(!n)throw Error(`unknown serial handle '${t}'`);return n}function Ct(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function wt(e,t,n){if(t.length===0)return-1;outer:for(let r=Math.max(0,n);r+t.length<=e.length;r++){for(let n=0;n<t.length;n++)if(e[r+n]!==t[n])continue outer;return r}return-1}async function G(e){if(e.reader){try{await e.reader.cancel()}catch{}try{e.reader.releaseLock()}catch{}e.reader=void 0}if(e.pendingRead=void 0,e.leftover=void 0,e.writer){try{e.writer.releaseLock()}catch{}e.writer=void 0}}async function Tt(e){if(await G(e),e.opened){try{await e.port.close()}catch{}e.opened=!1}}async function Et(e,t){let n=await t.getPorts();for(let{entry:t}of e.retainOnly(n))await Tt(t);return n.map(t=>{let n=e.register(t);return U(n,e.get(n))})}async function Dt(e,t,n){let r=await t.requestPort(n.length?{filters:n}:{}),i=e.register(r);return U(i,e.get(i))}function Ot(e,t){return U(t,W(e,t))}async function kt(e,t,n){let r=W(e,t);try{await r.port.open(n)}catch(e){throw Error(`${e instanceof Error?e.message:String(e)} (handle '${t}' may be stale after a device reset — re-run 'serial list' to pick up the current handle)`)}r.opened=!0}async function At(e,t){let n=W(e,t);await G(n);try{await n.port.close()}catch(e){if(!jt(e))throw e}n.opened=!1}function jt(e){let t=e instanceof Error?e.message:String(e);return/already closed|not open/i.test(t)}function Mt(e){if(!e.reader){if(!e.port.readable)throw Error(`serial port is not readable (is it open?)`);e.reader=e.port.readable.getReader()}return e.reader}function Nt(e){if(!e.writer){if(!e.port.writable)throw Error(`serial port is not writable (is it open?)`);e.writer=e.port.writable.getWriter()}return e.writer}async function Pt(e,t,n){let r=W(e,t),i=Math.min(n.maxBytes??4194304,H),a=n.until?.length?n.until:void 0,o=n.timeoutMs??1e3,s=Date.now()+Math.max(0,o),c=r.leftover??new Uint8Array;r.leftover=void 0;let l=0,u=()=>{if(a){let e=wt(c,a,Math.max(0,l-(a.length-1)));if(e>=0){let t=e+a.length;return r.leftover=c.slice(t),c.slice(0,t)}}return c.length>=i?(r.leftover=c.slice(i),c.slice(0,i)):null},d=u();if(d)return d;let f=Mt(r);for(;Date.now()<s;){let e=s-Date.now(),t=r.pendingRead??f.read();r.pendingRead=t;let n,i=new Promise(t=>{n=setTimeout(()=>t(`__timeout`),e)}),a;try{a=await Promise.race([t,i])}finally{n&&clearTimeout(n)}if(a===`__timeout`)break;if(r.pendingRead=void 0,a.done){r.reader=void 0;break}if(a.value?.length){l=c.length,c=Ct(c,a.value);let e=u();if(e)return e}}return c}async function Ft(e,t,n){if(n.length>4194304)throw Error(`serial write payload exceeds the ${H}-byte (4 MiB) v1 limit`);return await Nt(W(e,t)).write(n),n.length}async function It(e,t){return W(e,t).port.getSignals()}async function Lt(e,t,n){await W(e,t).port.setSignals(n)}const Rt=6e4;function zt(){return l()}function Bt(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),Rt);c(`serial-port`,e??[],void 0,{timeoutMs:Rt}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`serial picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open serial picker`})})})}function Vt(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var Ht=class{registry;constructor(e){this.registry=e}serial(){let e=z();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}list(){return Et(this.registry,this.serial())}async request(e){if(zt()){let t=await Bt(e);if(`cancelled`in t)throw Error(`user cancelled the serial picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted port could not be re-acquired`);let r=this.registry.register(n);return U(r,this.registry.get(r))}return Dt(this.registry,this.serial(),e)}async reacquire(e){let t=await this.serial().getPorts(),n=t.filter(t=>{let n=t.getInfo();return!(e.usbVendorId!==void 0&&n.usbVendorId!==e.usbVendorId||e.usbProductId!==void 0&&n.usbProductId!==e.usbProductId)}),r=n.length?n:t,i=this.registry.list().map(e=>e.entry.port);return r.find(e=>!i.includes(e))??r[0]??null}info(e){return Promise.resolve(Ot(this.registry,e))}open(e,t){return kt(this.registry,e,t)}close(e){return At(this.registry,e)}read(e,t){return Pt(this.registry,e,t)}write(e,t){return Ft(this.registry,e,t)}getSignals(e){return It(this.registry,e)}setSignals(e,t){return Lt(this.registry,e,t)}},Ut=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;static READ_MARGIN_MS=3e4;async list(){return(await this.rpc.call(`serial-list`,void 0)).devices}async request(t){return(await this.rpc.call(`serial-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`serial-device-info`,{handle:e})).device}async open(e,t){await this.rpc.call(`serial-open`,{handle:e,options:t})}async close(e){await this.rpc.call(`serial-close`,{handle:e})}async read(t,n){let r=(n.timeoutMs??1e3)+e.READ_MARGIN_MS,i=await this.rpc.call(`serial-read`,{handle:t,maxBytes:n.maxBytes,until:n.until?Vt(n.until):void 0,timeoutMs:n.timeoutMs},{timeoutMs:r});return new Uint8Array(i.bytes)}async write(e,t){return(await this.rpc.call(`serial-write`,{handle:e,bytes:Vt(t)})).bytesWritten}async getSignals(e){return(await this.rpc.call(`serial-get-signals`,{handle:e})).signals}async setSignals(e,t){await this.rpc.call(`serial-set-signals`,{handle:e,signals:t})}};function Wt(e,t){return e&&z()?new Ht(V()):t?new Ut(t):null}const Gt=e(`usb`);async function K(){return import(`./usb-claim-broker-C5dFP5bv.js`)}function q(e,t){let n=e.get(t);if(!n)throw Error(`unknown usb handle '${t}'`);return n}function J(e,t){if(e>4194304)throw Error(`${t} exceeds the ${ce}-byte (4 MiB) v1 limit`)}function Kt(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function qt(e,t){return(await t.getDevices()).map(t=>y(e.register(t),t))}async function Jt(e,t,n){let r=await t.requestDevice({filters:n});return y(e.register(r),r)}function Yt(e,t){return y(t,q(e,t))}async function Xt(e,t){await q(e,t).open()}async function Zt(e,t,n){await cn(e,t,`close`,n)}async function Qt(e,t,n){await q(e,t).selectConfiguration(n)}async function $t(e,t,n,r){let i=r?.owner??`usb`,a=q(e,t),o=await K(),s=await o.acquireInterfaceClaim(e,t,n,i,r?.wait??!1,r?.signal),c=()=>o.claimOwner(e,t,n),l=()=>c()===i,u=()=>o.wasGrantCancelled(e,t,n,i),d=async r=>{if(!(l()&&!u())){if(u()||!c()){if(r)try{await a.releaseInterface(n)}catch{}o.settleCancelledGrant(e,t,n,i),o.wakeInterfaceWaiter(e,t,n)}throw o.claimWaitCancelledError(t,n,i)}};try{await d(!1),await a.claimInterface(n),await d(!0)}catch(r){throw s===`acquired`&&(u()?(o.settleCancelledGrant(e,t,n,i),o.wakeInterfaceWaiter(e,t,n)):l()?o.releaseInterfaceClaim(e,t,n,i):c()||o.wakeInterfaceWaiter(e,t,n)),r}finally{o.clearPendingGrant(e,t,n,i)}}async function en(e,t){let n=await K(),r=n.takeOwnerClaims(e,t);for(let t of r){try{await e.get(t.handle)?.releaseInterface(t.interfaceNumber)}catch{}n.wakeInterfaceWaiter(e,t.handle,t.interfaceNumber)}}async function tn(e,t,n,r){let i=r?.owner??`usb`,a=q(e,t),o=await K(),s=o.claimOwner(e,t,n);if(s&&s!==i)throw new ie({handle:t,holder:s,op:`release`,interfaceNumber:n});await a.releaseInterface(n),o.releaseInterfaceClaim(e,t,n,i)}async function nn(e,t,n,r){J(r,`control-in length`);let i=await q(e,t).controlTransferIn(n,r);return{status:i.status??`ok`,bytes:i.data?Kt(i.data):new ArrayBuffer(0)}}async function rn(e,t,n,r){J(r.byteLength,`control-out payload`);let i=await q(e,t).controlTransferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function an(e,t,n,r){J(r,`transfer-in length`);let i=await q(e,t).transferIn(n,r);return{status:i.status??`ok`,bytes:i.data?Kt(i.data):new ArrayBuffer(0)}}async function on(e,t,n,r){J(r.byteLength,`transfer-out payload`);let i=await q(e,t).transferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function sn(e,t,n){await cn(e,t,`reset`,n)}async function cn(e,t,n,r){let i=r?.owner??`usb`,a=r?.force??!1,o=q(e,t),s=await K(),c=s.listClaims(e,t);if(c.length>0){let e=c.map(e=>`${e.interfaceNumber}=${e.owner}`).join(`, `);Gt.warn(`usb ${n} ${t} with claimed interfaces (${e})${a?` [force]`:``}`)}let l=s.assertExclusive(e,t,i,a,n);n===`close`?await o.close():await o.reset(),s.displaceHandle(e,t,{reason:n,displacedBy:i,displaced:l})}async function ln(e,t,n,r){await q(e,t).clearHalt(n,r)}const un=6e4;function dn(){return l()}function fn(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),un);c(`usb-device`,e??[],void 0,{timeoutMs:un}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`usb picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open USB picker`})})})}function Y(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var pn=class{registry;constructor(e){this.registry=e}usb(){let e=oe();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}list(){return qt(this.registry,this.usb())}async request(e){if(dn()){let t=await fn(e);if(`cancelled`in t)throw Error(`user cancelled the USB picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted device could not be re-acquired`);return y(this.registry.register(n),n)}return Jt(this.registry,this.usb(),e)}async reacquire(e){return(await this.usb().getDevices()).find(t=>t.vendorId===e.vendorId&&t.productId===e.productId&&(!e.serialNumber||t.serialNumber===e.serialNumber))??null}info(e){return Promise.resolve(Yt(this.registry,e))}open(e){return Xt(this.registry,e)}close(e,t){return Zt(this.registry,e,X(t))}selectConfig(e,t){return Qt(this.registry,e,t)}claim(e,t,n){return $t(this.registry,e,t,X(n))}release(e,t,n){return tn(this.registry,e,t,X(n))}async controlIn(e,t,n){let r=await nn(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}controlOut(e,t,n){return rn(this.registry,e,t,Y(n))}async transferIn(e,t,n){let r=await an(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}transferOut(e,t,n){return on(this.registry,e,t,Y(n))}clearHalt(e,t,n){return ln(this.registry,e,t,n)}reset(e,t){return sn(this.registry,e,X(t))}subscribeClaimEvents(e){let t,n=import(`./usb-claim-broker-C5dFP5bv.js`).then(n=>{t=n.addClaimListener(this.registry,e)});return()=>{n.then(()=>t?.())}}dropOwner(e){return en(this.registry,e)}};function X(e){return{...e,owner:e?.owner??`shell`}}var mn=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;static CLAIM_WAIT_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`usb-list`,void 0)).devices}async request(t){return(await this.rpc.call(`usb-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`usb-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`usb-open`,{handle:e})}async close(e,t){await this.rpc.call(`usb-close`,{handle:e,owner:t?.owner??`shell`,force:t?.force??!1})}async selectConfig(e,t){await this.rpc.call(`usb-select-configuration`,{handle:e,configurationValue:t})}async claim(t,n,r){let i=r?.owner??`shell`,a=r?.wait??!1;try{await this.rpc.call(`usb-claim-interface`,{handle:t,interfaceNumber:n,owner:i,wait:a},a?{timeoutMs:e.CLAIM_WAIT_TIMEOUT_MS}:void 0)}catch(e){throw a&&await this.rpc.call(`usb-cancel-claim-wait`,{handle:t,interfaceNumber:n,owner:i}).catch(()=>void 0),e}}async release(e,t,n){await this.rpc.call(`usb-release-interface`,{handle:e,interfaceNumber:t,owner:n?.owner??`shell`})}async controlIn(e,t,n){let r=await this.rpc.call(`usb-control-transfer-in`,{handle:e,setup:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async controlOut(e,t,n){return this.rpc.call(`usb-control-transfer-out`,{handle:e,setup:t,bytes:Y(n)})}async transferIn(e,t,n){let r=await this.rpc.call(`usb-transfer-in`,{handle:e,endpointNumber:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async transferOut(e,t,n){return this.rpc.call(`usb-transfer-out`,{handle:e,endpointNumber:t,bytes:Y(n)})}async clearHalt(e,t,n){await this.rpc.call(`usb-clear-halt`,{handle:e,direction:t,endpointNumber:n})}async reset(e,t){await this.rpc.call(`usb-reset`,{handle:e,owner:t?.owner??`shell`,force:t?.force??!1})}subscribeClaimEvents(e){return this.rpc.onEvent(`usb-claim-event`,t=>{e(t)})}async dropOwner(e){await this.rpc.call(`usb-drop-owner`,{owner:e})}};function hn(e,t){return e&&oe()?new pn(se()):t?new mn(t):null}const gn=Math.max(me,fe)+5e3;function _n(e,t,n,r={}){let{header:i,window:a}=be(t),o=new Map,s=!1,c=r.dispatch??(e=>pe(e)?ge(e):de(e));function l(e){let t=o.get(e);t&&(clearTimeout(t.timer),o.delete(e))}function u(e,t,n){let r=Math.min(a.byteLength,t.payload.byteLength-n);r>0&&a.set(t.payload.subarray(n,n+r)),Atomics.store(i,2,t.status),Atomics.store(i,3,t.payload.byteLength),Atomics.store(i,4,r),Atomics.store(i,5,n),Atomics.store(i,1,e),Atomics.store(i,0,2),Atomics.notify(i,0),n+r>=t.payload.byteLength&&l(e)}function d(e,t){if(s)return;let{status:n,payload:r}=ve(t);l(e);let i={status:n,payload:r,timer:setTimeout(()=>l(e),gn)};o.set(e,i),u(e,i,0)}let f=e=>{let t=e.data;if(!t||typeof t.id!=`number`)return;if(t.type===`sync-sab-next`){let e=o.get(t.id),n=t.offset;if(!e||typeof n!=`number`||!Number.isInteger(n)||n<0||n>e.payload.byteLength){d(t.id,{ok:!1,errno:`EIO`,message:`sync-sab: bad continuation`});return}u(t.id,e,n);return}if(t.type!==`sync-sab-req`||!t.req||typeof t.req!=`object`)return;let r=t.id,i={...t.req,token:n},a;try{a=c(i)}catch(e){d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)});return}a.then(e=>d(r,e),e=>d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)}))};return e.addEventListener(`message`,f),{dispose:()=>{if(!s){s=!0,e.removeEventListener(`message`,f);for(let e of[...o.keys()])l(e)}}}}const vn=e(`realm-host`);let yn=0;function bn(e,t,n={}){let r=new Map,i=new Map,a=`${ae}:${++yn}`,o=n.syncFsBridgeEnabled?_e({fs:t.fs,...t.exec?{exec:t.exec}:{},cwd:t.cwd}):void 0,s=!1,c=(t,n=[])=>{if(!s)try{e.postMessage(t,n)}catch{}},l={subscriptions:r,pushEvent:c},u={subscriptions:i,pushEvent:c,owner:a},d=new Map,f={spawns:d,opts:n},p={pushEvent:c,pending:new Map,registered:[],backends:new Map,requestSeq:0,pid:n.ppid??null},m=r=>{if(r.data?.type!==`realm-rpc-req`)return;let i=r.data;xn(e,i,t,n,l,u,f,p)};e.addEventListener(`message`,m);let h=o&&n.syncSab?_n(e,n.syncSab,o):void 0;return e.start?.(),{syncFsToken:o,dispose:()=>{if(!s){s=!0,h?.dispose(),o&&le(o),e.removeEventListener(`message`,m);for(let{controller:e}of d.values())try{e.signal.aborted||e.abort()}catch{}d.clear();for(let e of r.values())try{Promise.resolve(e()).catch(()=>{})}catch{}r.clear(),fr(p);for(let e of i.values())try{Promise.resolve(e()).catch(()=>{})}catch{}i.clear();try{(n.usbBackend??wn(n)).dropOwner?.(a)?.catch(()=>{})}catch{}}}}}async function xn(e,t,n,r,i,a,o,s){try{let c=await Sn(t,n,r,i,a,o,s),l={type:`realm-rpc-res`,id:t.id,result:c},u=hr(c);e.postMessage(l,u)}catch(n){let r=n instanceof Error?n.message:String(n),i={type:`realm-rpc-res`,id:t.id,error:r};e.postMessage(i)}}async function Sn(e,t,n,r,i,a,o){switch(e.channel){case`vfs`:return On(e.op,e.args,t,n.onHostFsMutation);case`exec`:return Vn(e.op,e.args,t,a);case`fetch`:return qn(e.op,e.args,t);case`browser`:return Zn(e.op,e.args,Cn(n),n);case`usb`:return ur(e.op,e.args,wn(n),i);case`serial`:return dr(e.op,e.args,Tn(n));case`hid`:return mr(e.op,e.args,En(n),r);case`computer`:return pr(e.op,e.args,o);case`module`:return Yn(e.op,e.args,t);case`wasm`:return Xn(e.op,e.args,t);default:throw Error(`realm-host: unknown channel '${e.channel}'`)}}function Cn(e){if(e.browser)return e.browser;let t=globalThis;if(t.__slicc_browser)return t.__slicc_browser;throw Error(`browser is not available in this runtime`)}function Z(e){if(e.wsSubscribers)return e.wsSubscribers;let t=globalThis;if(t.__slicc_wsSubscribers)return t.__slicc_wsSubscribers;throw Error(`browser.websocket is not available in this runtime`)}function wn(e){if(e.usbBackend)return e.usbBackend;let t=hn(n(),r());if(!t)throw Error(`usb is not available in this runtime`);return t}function Tn(e){if(e.serialBackend)return e.serialBackend;let t=Wt(n(),r());if(!t)throw Error(`serial is not available in this runtime`);return t}function En(e){if(e.hidBackend)return e.hidBackend;let t=L(n(),r());if(!t)throw Error(`hid is not available in this runtime`);return t}function Dn(e){return[...e.deleted,...e.created.map(e=>e.path),...e.modified.map(e=>e.path)]}async function On(e,t,n,r){let i=typeof t[0]==`string`?t[0]:null,a=i===null?null:n.fs.resolvePath(n.cwd,i);switch(e){case`readFile`:return n.fs.readFile(a);case`readFileBinary`:return n.fs.readFileBuffer(a);case`writeFile`:return await n.fs.writeFile(a,t[1]),a&&r?.([a]),!0;case`writeFileBinary`:return await n.fs.writeFile(a,t[1]),a&&r?.([a]),!0;case`appendFile`:return await n.fs.appendFile(a,t[1]),a&&r?.([a]),!0;case`readDir`:return n.fs.readdir(a);case`exists`:return n.fs.exists(a);case`stat`:{let e=await n.fs.stat(a);return{isDirectory:e.isDirectory,isFile:e.isFile,size:e.size}}case`mkdir`:return await n.fs.mkdir(a,{recursive:!0}),!0;case`rm`:return await n.fs.rm(a,{recursive:!0}),a&&r?.([a]),!0;case`rename`:{let e=n.fs.resolvePath(n.cwd,t[1]),{renameViaFs:i}=await import(`./rename-via-fs-ckVY1Ljv.js`);return await i(n.fs,a,e),r?.(a?[a,e]:[e]),!0}case`resolvePath`:return n.fs.resolvePath(n.cwd,t[0]);case`invalidatePaths`:{let e=t[0],r=n.fs;return r.invalidatePaths&&r.invalidatePaths(e),!0}case`forgetSidecarConsistency`:return await n.fs.forgetSidecarConsistency?.(),!0;case`snapshot`:return Ln(n,typeof t[0]==`string`?t[0]:n.cwd);case`flushWrites`:{let e=t[0];return await Rn(n,e),r?.(Dn(e)),!0}default:throw Error(`realm-host: unknown vfs op '${e}'`)}}const kn=10485760;function An(e){return e.fileCount>=500||e.totalBytes>=kn}function jn(e){return e.entries.length>=2e4}async function Mn(e,t,n,r){r.entries.push({path:t,content:new Uint8Array,isDirectory:!0});let i;try{i=await e.fs.readdir(t)}catch{return}for(let e of i)e!==`node_modules`&&n.push(t===`/`?`/${e}`:`${t}/${e}`)}async function Nn(e,t,n,r){let i=``;try{i=await e.fs.readlink(t)}catch{return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,isSymbolicLink:!0,symlinkTarget:i,size:n})}async function Pn(e,t,n,r,i){if(n>1048576||An(r)||r.totalBytes+n>kn){r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:n});return}let a;try{a=await e.fs.readFileBuffer(t)}catch{await Fn(e,t,i,r);return}r.entries.push({path:t,content:a,isDirectory:!1}),r.fileCount+=1,r.totalBytes+=a.byteLength}async function Fn(e,t,n,r){let i;try{i=await e.fs.stat(t)}catch{return}if(i.isDirectory){await Mn(e,t,n,r);return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:i.size})}async function In(e,t,n){if(jn(n))return;let r=[t];for(;r.length>0;){if(jn(n))return;let t=r.pop(),i;try{i=await e.fs.lstat(t)}catch{}if(i?.isSymbolicLink){await Nn(e,t,i.size,n);continue}let a;try{a=await e.fs.stat(t)}catch{continue}a.isDirectory?await Mn(e,t,r,n):a.isFile&&await Pn(e,t,a.size,n,r)}}async function Ln(e,t){let n={entries:[],totalBytes:0,fileCount:0};return await In(e,t,n),t!==`/tmp`&&await In(e,`/tmp`,n),{entries:n.entries}}async function Rn(e,t){let n=[],r=async(e,t)=>{try{await t()}catch(t){n.push(`${e}: ${t instanceof Error?t.message:String(t)}`)}};for(let n of t.deleted)await r(n,()=>e.fs.rm(n,{recursive:!0}));for(let n of t.created)n.isSymbolicLink?await r(n.path,()=>e.fs.symlink(n.symlinkTarget??``,n.path)):n.isDirectory?await r(n.path,()=>e.fs.mkdir(n.path,{recursive:!0})):await r(n.path,()=>e.fs.writeFile(n.path,n.content));for(let n of t.modified)await r(n.path,()=>e.fs.writeFile(n.path,n.content));if(n.length>0)throw Error(`sync-fs flush failed for ${n.length} path(s): ${n.join(`; `)}`)}const zn=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`,`SIGSTOP`,`SIGCONT`]),Bn=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`]);async function Vn(e,t,n,r){if(!n.exec)throw Error(`exec is not available in this runtime`);if(e===`run`){let e=t[0],r=await n.exec(e,{cwd:n.cwd});return{stdout:r.stdout,stderr:r.stderr,exitCode:r.exitCode}}if(e===`spawn`){let e=t[0];if(!Array.isArray(e)||e.length===0||!e.every(e=>typeof e==`string`))throw Error(`exec.spawn: argv must be a non-empty string[]`);let[r,...i]=e,a=await n.exec(r,{cwd:n.cwd,args:i});return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}if(e===`start`)return Gn(t,n,r);if(e===`kill`)return Kn(t,r);throw Error(`realm-host: unknown exec op '${e}'`)}function Hn(e){if(e.stdin!==void 0&&typeof e.stdin!=`string`)throw Error(`exec.start: stdin must be a string`);if(e.stdinKind!==void 0&&e.stdinKind!==`text`&&e.stdinKind!==`bytes`)throw Error(`exec.start: stdinKind must be 'text' or 'bytes'`);if(e.args!==void 0&&(!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)))throw Error(`exec.start: args must be a string[]`);if(e.cwd!==void 0&&typeof e.cwd!=`string`)throw Error(`exec.start: cwd must be a string`);if(e.env!==void 0){if(e.env===null||typeof e.env!=`object`||Array.isArray(e.env))throw Error(`exec.start: env must be an object`);for(let[t,n]of Object.entries(e.env))if(n!==void 0&&typeof n!=`string`)throw Error(`exec.start: env[${t}] must be a string`)}}function Un(e){throw Object.assign(Error(e.message),{code:e.errno})}async function Wn(e,t){let n=await he(e.fs,e.cwd,t.cwd);`errno`in n&&Un(n);let r=ue(t.env);return r!==void 0&&`errno`in r&&Un(r),{cwd:n.cwd,...r===void 0?{}:{env:r.env}}}async function Gn(e,t,n){let[r,i,a]=e;if(typeof r!=`number`)throw Error(`exec.start: spawnId must be a number`);if(n.spawns.has(r))throw Error(`exec.start: spawnId ${r} is already in use`);let o,s,c;if(Array.isArray(i)){if(i.length===0||!i.every(e=>typeof e==`string`))throw Error(`exec.start: argv must be a non-empty string[]`);[o,...s]=i,c=i.slice()}else if(typeof i==`string`)o=i,c=[i];else throw Error(`exec.start: command must be a string or a non-empty string[]`);let l=a??{};Hn(l);let u=await Wn(t,l),d=new AbortController,{pm:f,owner:p}=n.opts,m=0;f&&p&&(m=f.spawn({kind:`shell`,argv:c,cwd:u.cwd,owner:p,...n.opts.ppid===void 0?{}:{ppid:n.opts.ppid},adoptAbort:d}).pid),n.spawns.set(r,{controller:d,pid:m});let h;try{let e={cwd:u.cwd,signal:d.signal};return l.stdin!==void 0&&(e.stdin=l.stdin),l.stdinKind!==void 0&&(e.stdinKind=l.stdinKind),s===void 0?l.args!==void 0&&(e.args=l.args):e.args=s,u.env!==void 0&&(e.env=u.env,e.replaceEnv=!0),h=await t.exec(o,e),{stdout:h.stdout,stderr:h.stderr,exitCode:h.exitCode}}finally{if(n.spawns.delete(r),f&&m){let e=f.get(m);f.exit(m,e?.terminatedBy?null:h?.exitCode??1)}}}function Kn(e,t){let[n,r]=e,i=t.spawns.get(n);if(!i)return!1;let a=typeof r==`string`&&zn.has(r)?r:`SIGTERM`;Bn.has(a)&&!i.controller.signal.aborted&&i.controller.abort();let{pm:o}=t.opts;return o&&i.pid?o.signal(i.pid,a):!0}async function qn(e,t,n){if(e!==`request`)throw Error(`realm-host: unknown fetch op '${e}'`);let[r,i]=t,a=await(n.fetch?ft(n.fetch):globalThis.fetch.bind(globalThis))(r,i),o={};a.headers.forEach((e,t)=>{o[t]=e});let s=new Uint8Array(await a.arrayBuffer());return{status:a.status,statusText:a.statusText,headers:o,body:s,url:a.url}}function Jn(e){let t=t=>e.fs.resolvePath(e.cwd,t);return{exists:n=>e.fs.exists(t(n)),isDirectory:async n=>{try{return(await e.fs.stat(t(n))).isDirectory}catch{return!1}},readFile:async n=>{let r=await e.fs.readFile(t(n));return typeof r==`string`?r:new TextDecoder().decode(r)}}}async function Yn(e,t,n){if(e!==`buildGraph`)throw Error(`realm-host: unknown module op '${e}'`);let r=typeof t[0]==`string`?t[0]:``,i=typeof t[1]==`string`&&t[1]?t[1]:n.cwd,a=typeof t[2]==`string`?t[2]:``,o=Jn(n),s={reader:o,readBytes:e=>n.fs.readFileBuffer(e),fromDir:i};return Ke({entryCode:r,fromDir:i,entryFilename:a,reader:o,transpile:Ne({ipk:s}),transpileEntry:T({ipk:s})})}async function Xn(e,t,n){if(e!==`compile`)throw Error(`realm-host: unknown wasm op '${e}'`);let r=typeof t[0]==`string`?t[0]:null;if(r===null)throw Error(`realm-host: wasm.compile requires a path argument`);let i=n.fs.resolvePath(n.cwd,r);return re(e=>n.fs.readFileBuffer(e),i)}async function Zn(e,t,n,r){switch(e){case`findTab`:return $n(n,t[0]??{});case`ensureTab`:{let e=t[0];return er(n,e,t[1]??{})}case`openWindow`:{let e=t[0];return tr(n,e,t[1]??{})}case`windowBounds`:{let e=t[0];return n.getWindowBounds(e)}case`setWindowBounds`:{let e=t[0],r=t[1]??{};return n.setWindowBounds(e,r)}case`eval`:{let e=t[0],r=t[1];return nr(n,e,r,!1)}case`evalAsync`:{let e=t[0],r=t[1];return nr(n,e,r,!0)}case`cookie`:{let e=t[0],r=t[1];return or(n,e,r)}case`localStorage`:{let e=t[0],r=t[1];return sr(n,e,r)}case`wsObserve`:{let e={...t[0],scoopJid:r.scoopJid};return await Z(r).observe(e)}case`wsUpdate`:{let e=t[0],n=t[1]??{};return Z(r).update(e,n)}case`wsClose`:{let e=t[0];return Z(r).close(e)}case`wsList`:return Z(r).list();case`createTab`:{let e=t[0];return n.createPage(e)}case`closeTab`:{let e=t[0];return n.closePage(e)}case`setViewport`:{let e=t[0],r=t[1],i=t[2];return n.withTab(e,e=>e.setViewportOverride(r,i))}case`navigateTab`:{let e=t[0],r=t[1];return n.withTab(e,e=>e.navigate(r))}case`screenshotTab`:{let e=t[0],r=t[1];return n.withTab(e,e=>e.screenshot(r))}case`waitForLoadState`:{let e=t[0],r=t[1];return ar(n,e,r)}default:throw Error(`realm-host: unknown browser op '${e}'`)}}function Qn(){try{let e=globalThis.localStorage;return e?!!(e.getItem(`slicc.trayWorkerBaseUrl`)||e.getItem(`slicc.trayJoinUrl`)):!1}catch{return!1}}async function Q(e){if(typeof e.listAllTargets!=`function`)return(await e.listPages()).map(e=>({targetId:e.targetId,url:e.url,title:e.title}));let t=(await e.listAllTargets()).map(e=>({targetId:e.targetId,url:e.url,title:e.title})),n=Qn()?r():null;if(n)try{let{targets:e}=await n.call(`list-remote-targets`,void 0,{timeoutMs:3e3}),r=new Set(t.map(e=>e.targetId));for(let n of e)r.has(n.targetId)||(r.add(n.targetId),t.push({targetId:n.targetId,url:n.url,title:n.title}))}catch(e){vn.debug(`panel-rpc list-remote-targets failed`,{err:String(e)})}return t}async function $n(e,t){let n=await Q(e);if(t.domain){let e=t.domain.toLowerCase();for(let t of n){let n=cr(t.url);if(n&&n.toLowerCase()===e)return t}return null}if(t.urlMatch){let e;try{e=new RegExp(t.urlMatch)}catch(e){throw Error(`browser.findTab: invalid urlMatch regex: ${e instanceof Error?e.message:String(e)}`)}for(let t of n)if(e.test(t.url))return t;return null}throw Error("browser.findTab: query requires `domain` or `urlMatch`")}async function er(e,t,n){let r=await Q(e);if(n.matchUrl){let e;try{e=new RegExp(n.matchUrl)}catch(e){throw Error(`browser.ensureTab: invalid matchUrl regex: ${e instanceof Error?e.message:String(e)}`)}let t=r.find(t=>e.test(t.url));if(t)return t}else{let e=lr(t);if(e){let t=r.find(t=>lr(t.url)===e);if(t)return t}}return{targetId:await e.createPage(t),url:t,title:``}}async function tr(e,t,n){if(typeof e.openWindow!=`function`)throw Error(`browser.openWindow is not available in this runtime`);return{targetId:await e.openWindow(t,n),url:t||`about:blank`,title:``}}async function nr(e,t,n,r){return e.withTab(t,async e=>rr(await e.evaluate(n,{awaitPromise:r,returnByValue:!0})))}function rr(e){if(typeof e!=`string`)return e;let t=ir(e);if(t===void 0)return e;if(typeof t==`object`&&t)return t;if(typeof t==`string`){let e=t.trim();if(e.length>0&&(e[0]===`{`||e[0]===`[`)){let e=ir(t);if(typeof e==`object`&&e)return e}return t}return e}function ir(e){let t=e.trim();if(t.length===0)return;let n=t[0];if(n===`{`||n===`[`||n===`"`||n===`-`||n>=`0`&&n<=`9`||t===`true`||t===`false`||t===`null`)try{return JSON.parse(t)}catch{return}}async function ar(e,t,n){if(n===`networkidle`)return e.withTab(t,async e=>{for(let t=0;t<20;t++)if(await new Promise(e=>setTimeout(e,250)),await e.evaluate(`(function(){
3
- try {
4
- var entries = performance.getEntriesByType('resource');
5
- var now = performance.now();
6
- var recentCutoffMs = 500;
7
- var busy = entries.some(function(e) {
8
- var finished = e.responseEnd || e.startTime;
9
- return (now - finished) < recentCutoffMs;
10
- });
11
- return !busy;
12
- } catch (e) {
13
- return true;
14
- }
15
- })()`,{returnByValue:!0}))return})}async function or(e,t,n){return e.withTab(t,async e=>{let t=((await e.send(`Network.getCookies`)).cookies??[]).find(e=>e.name===n);return t&&typeof t.value==`string`?t.value:null})}async function sr(e,t,n){return e.withTab(t,async e=>{let t=await e.evaluate(`(function(){try{var v=window.localStorage.getItem(${JSON.stringify(n)});return v===null?null:String(v);}catch(e){return null;}})()`,{returnByValue:!0});return t==null?null:typeof t==`string`?t:String(t)})}function cr(e){try{return new URL(e).hostname}catch{return null}}function lr(e){try{return new URL(e).origin}catch{return null}}async function ur(e,t,n,r){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0],{owner:r.owner,force:!!t[1]?.force});case`reset`:return n.reset(t[0],{owner:r.owner,force:!!t[1]?.force});case`clearHalt`:return n.clearHalt(t[0],t[1],t[2]);case`selectConfig`:return n.selectConfig(t[0],t[1]);case`claim`:return n.claim(t[0],t[1],{owner:r.owner,wait:!!t[2]?.wait});case`release`:return n.release(t[0],t[1],{owner:r.owner});case`controlIn`:return n.controlIn(t[0],t[1],t[2]);case`controlOut`:return n.controlOut(t[0],t[1],t[2]);case`transferIn`:return n.transferIn(t[0],t[1],t[2]);case`transferOut`:return n.transferOut(t[0],t[1],t[2]);case`subscribeClaimEvents`:{let e=t[0];if(r.subscriptions.has(e))return!0;let i=n.subscribeClaimEvents;if(!i)return!0;let a=i(t=>{t.handle===e&&r.pushEvent({type:`realm-event`,channel:`usb-claim-event`,payload:t})});return r.subscriptions.set(e,a),!0}case`unsubscribeClaimEvents`:{let e=t[0],n=r.subscriptions.get(e);return!n||(r.subscriptions.delete(e),await n(),!0)}default:throw Error(`realm-host: unknown usb op '${e}'`)}}async function dr(e,t,n){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0],t[1]);case`close`:return n.close(t[0]);case`read`:{let e=t[1]??{};return n.read(t[0],e)}case`write`:return n.write(t[0],t[1]);case`getSignals`:return n.getSignals(t[0]);case`setSignals`:return n.setSignals(t[0],t[1]);default:throw Error(`realm-host: unknown serial op '${e}'`)}}function fr(e){let t=e.registered.splice(0);e.backends.clear(),t.length>0&&import(`./registry-DfuJBCKY.js`).then(({getComputerRegistry:e})=>{let n=e();for(let e of t)n?.unregister(e)});for(let t of e.pending.values())t.reject(Error(`realm disposed`));e.pending.clear()}async function pr(e,t,n){switch(e){case`register`:{let e=t[0],[{JshComputerBackend:r},{getComputerRegistry:i,installComputerRegistry:a}]=await Promise.all([import(`./jsh-BjvyvzNA.js`),import(`./registry-DfuJBCKY.js`)]),o=new r(e,(t,r)=>{let i=`c${++n.requestSeq}`;return new Promise((a,o)=>{n.pending.set(i,{resolve:a,reject:o}),n.pushEvent({type:`realm-event`,channel:`computer-call`,payload:{requestId:i,id:e.id,op:t,args:r}})})});return(i()??a(null)).register(o,{pid:n.pid}),n.registered.push(e.id),n.backends.set(e.id,o),{id:e.id}}case`unregister`:{let e=String(t[0]??``);n.backends.delete(e);let{getComputerRegistry:r}=await import(`./registry-DfuJBCKY.js`);return await r()?.unregister(e),n.registered=n.registered.filter(t=>t!==e),{ok:!0}}case`reply`:{let e=String(t[0]??``),r=t[1],i=n.pending.get(e);if(!i)return{ok:!1};n.pending.delete(e);let a=r?.error;return a?i.reject(Error(a)):i.resolve(r),{ok:!0}}case`frame`:{let e=String(t[0]??``),r=t[1];return n.backends.get(e)?.pushFrame(r),{ok:!0}}default:throw Error(`realm-host: unknown computer op '${e}'`)}}async function mr(e,t,n,r){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0]);case`sendReport`:return n.sendReport(t[0],t[1],t[2]);case`sendFeatureReport`:return n.sendFeatureReport(t[0],t[1],t[2]);case`receiveFeatureReport`:return n.receiveFeatureReport(t[0],t[1]);case`subscribeInputReports`:{let e=t[0];if(r.subscriptions.has(e))return!0;let i=await n.subscribeInputReports(e,t=>{let n=t.bytes instanceof Uint8Array?t.bytes:new Uint8Array(t.bytes),i={type:`realm-event`,channel:`hid-input-report`,payload:{handle:e,reportId:t.reportId,bytes:n}};r.pushEvent(i,[n.buffer])});return r.subscriptions.set(e,i),!0}case`unsubscribeInputReports`:{let e=t[0],n=r.subscriptions.get(e);return!n||(r.subscriptions.delete(e),await n(),!0)}default:throw Error(`realm-host: unknown hid op '${e}'`)}}function hr(e){if(e instanceof Uint8Array)return[e.buffer];if(e&&typeof e==`object`){let t=e;if(t.body instanceof Uint8Array)return[t.body.buffer];if(t.bytes instanceof Uint8Array)return[t.bytes.buffer]}return[]}const gr=65536;function _r(e,t){if(!t)return e;let n=e+t;return n.length<=gr?n:n.slice(n.length-gr)}const vr={SIGKILL:137,SIGINT:130,SIGTERM:143};function yr(e,t){let n=Math.max(0,e)/1e3;return`--- killed after ${n<10?n.toFixed(2).replace(/(\.\d*?)0+$/,`$1`).replace(/\.$/,``):String(Math.round(n))}s (exit ${t}) ---\n`}function br(e,t){for(let n of t)e.pendingByPath.delete(n)}function xr(e,t,n){if(e.type===`realm-output`){let r=e;return r.stream===`stdout`?t.stdout=t.captureOutput?t.stdout+r.chunk:_r(t.stdout,r.chunk):t.stderr=t.captureOutput?t.stderr+r.chunk:_r(t.stderr,r.chunk),n?.(r.chunk,r.stream),`live`}if(e.type===`realm-fs-write`){let n=e;return t.pendingByPath.set(n.path,{op:`write`,path:n.path,bytes:n.bytes}),`live`}if(e.type===`realm-fs-delete`){let n=e;return t.pendingByPath.set(n.path,{op:`delete`,path:n.path}),`live`}return e.type===`realm-done`?`done`:e.type===`realm-error`?`error`:`live`}async function Sr(e,t,n){try{if(t.op===`write`){let n=e.fs?.writeFile?.bind(e.fs);n&&await n(t.path,t.bytes)}else{let n=e.fs?.rm?.bind(e.fs);n&&await n(t.path,{recursive:!0})}}catch(e){let r=e instanceof Error?e.message:String(e),i=t.op===`write`?`write`:`delete`;n.stderr+=`[sync-fs] ERROR: ${i} of ${t.path} was NOT persisted: ${r}\n`}}async function Cr(e,t,n){for(let r of e)await Sr(t,r,n)}function wr(e,t,n){return{type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideAssetRoot:e.pyodideAssetRoot,pyodideMountDirs:e.pyodideMountDirs,opfsMountDbName:e.opfsMountDbName,mountPoints:e.mountPoints,...t.syncFsToken===void 0?{}:{syncFsToken:t.syncFsToken},...n?{syncSab:n}:{},...e.captureOutput===!1?{captureOutput:!1}:{}}}async function Tr(e){let t=e.procKind??`jsh`,n=e.pm.spawn({kind:t,argv:e.argv,cwd:e.cwd,env:e.env,owner:e.owner,ppid:e.ppid});e.onSpawn?.(n);let r;try{r=await e.realmFactory({kind:e.kind,ctx:e.ctx})}catch(t){let r=t instanceof Error?t.message:String(t);return e.pm.exit(n.pid,1),{stdout:``,stderr:`realm-runner: ${r}\n`,exitCode:1}}let i=r.isolatedThread?Er(e.syncSabBytes):void 0,a={stdout:``,stderr:``,pendingByPath:new Map,captureOutput:e.captureOutput!==!1},o=bn(r.controlPort,e.ctx,{...e.owner.scoopJid===void 0?{}:{scoopJid:e.owner.scoopJid},pm:e.pm,owner:e.owner,ppid:n.pid,syncFsBridgeEnabled:!!e.syncFsBridgeEnabled||i!==void 0,...i?{syncSab:i}:{},onHostFsMutation:e=>br(a,e)});return new Promise(t=>{let s=!1,c=!1,l=null,u=null,d=null,f=null,p=()=>{if(!c){c=!0,u&&r.controlPort.removeEventListener(`message`,u),r.removeEventListener&&(d&&r.removeEventListener(`error`,d),f&&r.removeEventListener(`messageerror`,f)),l?.();try{r.terminate()}catch{}}},m=(r,i)=>{p(),o.dispose(),e.pm.exit(n.pid,i),t(r)},h=(e,t)=>{s||(s=!0,Promise.resolve().then(()=>m(e,t)))},g=t=>{s||(s=!0,Promise.resolve().then(()=>{let r=[...a.pendingByPath.values()];a.pendingByPath.clear(),p(),Cr(r,e.ctx,a).finally(()=>{let e=yr(Date.now()-n.startedAt,t);m({stdout:a.stdout,stderr:a.stderr+e,exitCode:t},t)})}))};u=t=>{let n=t.data,r=xr(n,a,e.onOutput);if(r===`done`){let e=t.data;h({stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode},e.exitCode)}else if(r===`error`){let e=t.data;h({stdout:a.stdout,stderr:a.stderr+e.message+`
16
- `,exitCode:1},1)}},d=e=>{let t=e.message??`realm error`;h({stdout:a.stdout,stderr:a.stderr+t+`
17
- `,exitCode:1},1)},f=()=>{h({stdout:a.stdout,stderr:a.stderr+`realm-runner: worker message could not be deserialized
18
- `,exitCode:1},1)},l=e.pm.onSignal((e,t)=>{if(e.pid!==n.pid)return;let r=vr[t];r!==void 0&&g(r)}),r.controlPort.addEventListener(`message`,u),r.addEventListener&&(r.addEventListener(`error`,d),r.addEventListener(`messageerror`,f)),r.controlPort.postMessage(wr(e,o,i))})}function Er(e){if(ye())try{return new SharedArrayBuffer(64+(e??1048576))}catch{return}}let Dr=!1;function Or(e){Dr=e}function kr(){return Dr}const Ar=Object.freeze({anthropic:`ANTHROPIC_API_KEY`,"ant-ling":`ANT_LING_API_KEY`,"qwen-token-plan":`QWEN_TOKEN_PLAN_API_KEY`,"qwen-token-plan-cn":`QWEN_TOKEN_PLAN_CN_API_KEY`,"qwen-token-plan-individual":`QWEN_TOKEN_PLAN_API_KEY`,openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,nvidia:`NVIDIA_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,radius:`RADIUS_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,"zai-coding-cn":`ZAI_CODING_CN_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,together:`TOGETHER_API_KEY`,baseten:`BASETEN_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`});function jr(e){return Ar[e]??null}function Mr(e,t){let n=jr(e);if(!n)return{};let r=t.find(t=>t.providerId===e)?.apiKey?.trim();return r?{[n]:r}:{}}let $=null;function Nr(e){let t=$;return $=e,t}async function Pr(){if(!$)return{};try{return await $()??{}}catch{return{}}}function Fr(){return async()=>{let{getAccounts:e,getSelectedProvider:t}=await import(`./account-store-0RMtbmqz.js`).then(e=>e.t);return Mr(t(),e())}}async function Ir(e,t,n,r,i={}){return await n.fs.exists(e)?Lr(await n.fs.readFile(e),[`node`,e,...t],n,r,{...i,filename:e}):{stdout:``,stderr:`jsh: cannot find script '${e}'\n`,exitCode:127}}async function Lr(e,t,n,r,i={}){let a=i.realmFactory??await Rr(),o=r?.processManager??Vr()??Br(),s=r?.owner??{kind:`system`},c=i.filename??t[1]??`<eval>`;return await Tr({pm:o,realmFactory:a,owner:s,kind:`js`,code:E(e,{keepLine:!0}),argv:t,env:{...s.kind===`scoop`||s.kind===`jshd`?{}:await Pr(),...Object.fromEntries(n.env.entries())},cwd:n.cwd,filename:c,stdin:xe(n.stdin),ctx:n,ppid:r?.getParentPid?.(),syncFsBridgeEnabled:kr(),...i.onSpawn?{onSpawn:e=>i.onSpawn?.(e.pid)}:{},...i.onOutput?{onOutput:i.onOutput}:{},...i.captureOutput===!1?{captureOutput:!1}:{}})}async function Rr(){if(typeof Worker<`u`||typeof document<`u`)return S();let{createInProcessJsRealmFactory:e}=await import(`./realm-inprocess-BBw2Fa8u.js`);return e()}let zr=null;function Br(){return zr||=new u,zr}function Vr(){let e=globalThis.__slicc_pm;return e&&typeof e==`object`&&typeof e.spawn==`function`&&typeof e.onSignal==`function`?e:null}export{Ze as _,kr as a,S as b,hn as c,U as d,z as f,k as g,Qe as h,Nr as i,Wt as l,L as m,Ir as n,Or as o,V as p,Fr as r,Tr as s,Lr as t,H as u,E as v,Te as x,T as y};
@@ -1 +0,0 @@
1
- import{t as e}from"./store-BxxMrsS7.js";import"./provider-DyqdvQeZ.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{t as e}from"./provider-BXK9OD8Z.js";export{e as readMcpAuthEntries};
@@ -1,244 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});function u(e){if(!e||e===`/`)return`/`;e.startsWith(`/`)||(e=`/`+e);let t=e.split(`/`),n=[];for(let e of t)e!==``&&e!==`.`&&(e===`..`?n.pop():n.push(e));return`/`+n.join(`/`)}function d(e){let t=u(e);if(t===`/`)return{dir:`/`,base:``};let n=t.lastIndexOf(`/`);return{dir:n===0?`/`:t.slice(0,n),base:t.slice(n+1)}}function f(...e){return u(e.join(`/`))}new TextDecoder;function p(e){if(typeof e!=`string`)return e;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>255)return new TextEncoder().encode(e);let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}async function m(e){let t=await crypto.subtle.digest(`SHA-256`,e);return Array.from(new Uint8Array(t)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function h(e){try{return new URL(e).protocol===`https:`}catch{return!1}}function g(e){return new Promise(t=>setTimeout(t,e))}async function _(e,t,n){let r;try{r=await e(t.url,{method:`GET`,headers:{Accept:`application/octet-stream`},timeoutMs:n})}catch(e){let n=e instanceof Error?e.message:String(e);return{ok:!1,retriable:!0,error:Error(`${t.label}: network error (${n})`)}}if(r.status>=500&&r.status<600)return{ok:!1,retriable:!0,error:Error(`${t.label}: server error HTTP ${r.status}`)};if(r.status<200||r.status>=300){let e=r.statusText?` ${r.statusText}`:``;return{ok:!1,retriable:!1,error:Error(`${t.label}: HTTP ${r.status}${e}`)}}let i=p(r.body);return!(i instanceof Uint8Array)||i.length===0?{ok:!1,retriable:!1,error:Error(`${t.label}: response body was empty`)}:{ok:!0,bytes:i}}async function v(e,t,n){let r;for(let i=1;i<=3;i++){let a=await _(e,t,n);if(a.ok)return a.bytes;if(r=a.error,!a.retriable||i===3)throw a.error;await g(250*i)}throw r??Error(`${t.label}: download failed`)}async function y(e,t){let n=await m(e);if(n!==t.sha256.toLowerCase())throw Error(`${t.label}: sha256 mismatch (expected ${t.sha256.toLowerCase()}, got ${n})`)}async function ee(e,t){if(!h(t.url))throw Error(`${t.label}: refused to fetch non-https URL '${t.url}'`);let n=await v(e,t,t.timeoutMs??6e4);return await y(n,t),n}const b=`pyproject.toml`;function x(e){return e.trim().toLowerCase().replace(/[-_.]+/g,`-`)}function te(e){let t=e.indexOf(`==`);return t===-1?{name:e.trim(),version:``}:{name:e.slice(0,t).trim(),version:e.slice(t+2).trim()}}async function S(e,t){let n=t?.startsWith(`/`)?t:`/workspace`;for(;;){if(await e.exists(f(n,b)))return n;if(n===`/`)return null;n=d(n).dir}}function C(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i===`'`&&!n)t=!t;else if(i===`"`&&!t)n=!n;else if(i===`#`&&!t&&!n)return e.slice(0,r)}return e}function w(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):null}function T(e,t,n){let r=n,i=t;for(;!r.includes(`]`)&&i+1<e.length;)i+=1,r+=`\n${C(e[i])}`;let a=[];for(let e of r.matchAll(/["']([^"']*)["']/g))e[1].trim()&&a.push(e[1].trim());return{items:a,lastIndex:i}}function ne(e){let t=e.split(`
2
- `),n=``,r=`workspace`,i=`0.1.0`,a=[];for(let e=0;e<t.length;e++){let o=C(t[e]).trim();if(!o)continue;if(o.startsWith(`[`)){n=o;continue}if(n!==`[project]`)continue;let s=o.indexOf(`=`);if(s===-1)continue;let c=o.slice(0,s).trim(),l=o.slice(s+1).trim();if(c===`name`)r=w(l)??r;else if(c===`version`)i=w(l)??i;else if(c===`dependencies`){let n=T(t,e,l);a=n.items,e=n.lastIndex}}return{name:r,version:i,dependencies:a}}const re={name:`name`,version:`version`,source:`source`,file_name:`fileName`,sha256:`sha256`};function E(e,t){t.name&&t.version&&t.source&&t.fileName&&t.sha256&&e.push(t)}function ie(e){let t=[],n=null;for(let r of e.split(`
3
- `)){let e=C(r).trim();if(!e)continue;if(e===`[[package]]`){n&&E(t,n),n={};continue}if(e.startsWith(`[`)){n&&E(t,n),n=null;continue}if(!n)continue;let i=e.indexOf(`=`);if(i===-1)continue;let a=re[e.slice(0,i).trim()];if(!a)continue;let o=w(e.slice(i+1).trim());o!==null&&(a===`source`?n.source=o:n[a]=o)}return n&&E(t,n),t}async function ae(e,t){let n=f(t,b);if(!await e.exists(n))return{name:`workspace`,version:`0.1.0`,dependencies:[]};let r=await e.readFile(n);return{...ne(r),raw:r}}async function oe(e,t){let n=f(t,`uv.lock`);return await e.exists(n)?ie(await e.readFile(n)):[]}const se=new Set([`child_process`,`events`,`fs`,`fs/promises`,`os`,`path`,`stream`,`tty`,`url`,`crypto`,`process`,`buffer`,`assert`,`assert/strict`,`util`,`readline`,`readline/promises`,`module`]);new Set([...new Set(`assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`))].filter(e=>!se.has(e))),[`unpkg`,`com`].join(`.`),[`cdn`,`jsdelivr`,`net`].join(`.`),[`registry`,`npmjs`,`org`].join(`.`);var D=o(((e,t)=>{t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:2**53-1||9007199254740991,RELEASE_TYPES:[`major`,`premajor`,`minor`,`preminor`,`patch`,`prepatch`,`prerelease`],SEMVER_SPEC_VERSION:`2.0.0`,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}})),O=o(((e,t)=>{t.exports=typeof process==`object`&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...e)=>console.error(`SEMVER`,...e):()=>{}})),k=o(((e,t)=>{let{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=D(),a=O();e=t.exports={};let o=e.re=[],s=e.safeRe=[],c=e.src=[],l=e.safeSrc=[],u=e.t={},d=0,f=`[a-zA-Z0-9-]`,p=[[`\\s`,1],[`\\d`,i],[f,r]],m=e=>{for(let[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},h=(e,t,n)=>{let r=m(t),i=d++;a(e,i,t),u[e]=i,c[i]=t,l[i]=r,o[i]=new RegExp(t,n?`g`:void 0),s[i]=new RegExp(r,n?`g`:void 0)};h(`NUMERICIDENTIFIER`,`0|[1-9]\\d*`),h(`NUMERICIDENTIFIERLOOSE`,`\\d+`),h(`NONNUMERICIDENTIFIER`,`\\d*[a-zA-Z-]${f}*`),h(`MAINVERSION`,`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),h(`MAINVERSIONLOOSE`,`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASEIDENTIFIER`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),h(`PRERELEASEIDENTIFIERLOOSE`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASE`,`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),h(`PRERELEASELOOSE`,`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),h(`BUILDIDENTIFIER`,`${f}+`),h(`BUILD`,`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),h(`FULLPLAIN`,`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),h(`FULL`,`^${c[u.FULLPLAIN]}$`),h(`LOOSEPLAIN`,`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),h(`LOOSE`,`^${c[u.LOOSEPLAIN]}$`),h(`GTLT`,`((?:<|>)?=?)`),h(`XRANGEIDENTIFIERLOOSE`,`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h(`XRANGEIDENTIFIER`,`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),h(`XRANGEPLAIN`,`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),h(`XRANGEPLAINLOOSE`,`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),h(`XRANGE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),h(`XRANGELOOSE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),h(`COERCEPLAIN`,`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),h(`COERCE`,`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),h(`COERCEFULL`,c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?(?:${c[u.BUILD]})?(?:$|[^\\d])`),h(`COERCERTL`,c[u.COERCE],!0),h(`COERCERTLFULL`,c[u.COERCEFULL],!0),h(`LONETILDE`,`(?:~>?)`),h(`TILDETRIM`,`(\\s*)${c[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace=`$1~`,h(`TILDE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),h(`TILDELOOSE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),h(`LONECARET`,`(?:\\^)`),h(`CARETTRIM`,`(\\s*)${c[u.LONECARET]}\\s+`,!0),e.caretTrimReplace=`$1^`,h(`CARET`,`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),h(`CARETLOOSE`,`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),h(`COMPARATORLOOSE`,`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),h(`COMPARATOR`,`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),h(`COMPARATORTRIM`,`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace=`$1$2$3`,h(`HYPHENRANGE`,`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),h(`HYPHENRANGELOOSE`,`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),h(`STAR`,`(<|>)?=?\\s*\\*`),h(`GTE0`,`^\\s*>=\\s*0\\.0\\.0\\s*$`),h(`GTE0PRE`,`^\\s*>=\\s*0\\.0\\.0-0\\s*$`)})),A=o(((e,t)=>{let n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),ce=o(((e,t)=>{let n=/^[0-9]+$/,r=(e,t)=>{if(typeof e==`number`&&typeof t==`number`)return e===t?0:e<t?-1:1;let r=n.test(e),i=n.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}})),j=o(((e,t)=>{let n=O(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=D(),{safeRe:a,t:o}=k(),s=A(),{compareIdentifiers:c}=ce(),l=(e,t)=>{let n=t.split(`.`);if(n.length>e.length)return!1;for(let t=0;t<n.length;t++)if(c(e[t],n[t])!==0)return!1;return!0};t.exports=class e{constructor(t,c){if(c=s(c),t instanceof e){if(t.loose===!!c.loose&&t.includePrerelease===!!c.includePrerelease)return t;t=t.version}else if(typeof t!=`string`)throw TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>r)throw TypeError(`version is longer than ${r} characters`);n(`SemVer`,t,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;let l=t.trim().match(c.loose?a[o.LOOSE]:a[o.FULL]);if(!l)throw TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+l[1],this.minor=+l[2],this.patch=+l[3],this.major>i||this.major<0)throw TypeError(`Invalid major version`);if(this.minor>i||this.minor<0)throw TypeError(`Invalid minor version`);if(this.patch>i||this.patch<0)throw TypeError(`Invalid patch version`);this.prerelease=l[4]?l[4].split(`.`).map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t<i)return t}return e}):[],this.build=l[5]?l[5].split(`.`):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(`.`)}`),this.version}toString(){return this.version}compare(t){if(n(`SemVer.compare`,this.version,this.options,t),!(t instanceof e)){if(typeof t==`string`&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:+(this.patch>t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let e=this.prerelease[r],i=t.prerelease[r];if(n(`prerelease compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e!==i)return c(e,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let e=this.build[r],i=t.build[r];if(n(`build compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e!==i)return c(e,i)}while(++r)}inc(e,t,n){if(e.startsWith(`pre`)){if(!t&&n===!1)throw Error(`invalid increment argument: identifier is empty`);if(t){let e=`-${t}`.match(this.options.loose?a[o.PRERELEASELOOSE]:a[o.PRERELEASE]);if(!e||e[1]!==t)throw Error(`invalid identifier: ${t}`)}}switch(e){case`premajor`:this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(`pre`,t,n);break;case`preminor`:this.prerelease.length=0,this.patch=0,this.minor++,this.inc(`pre`,t,n);break;case`prepatch`:this.prerelease.length=0,this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`prerelease`:this.prerelease.length===0&&this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`release`:if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case`major`:(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case`minor`:(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case`patch`:this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case`pre`:{let e=+!!Number(n);if(this.prerelease.length===0)this.prerelease=[e];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]==`number`&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(`.`)&&n===!1)throw Error(`invalid increment argument: identifier already exists`);this.prerelease.push(e)}}if(t){let r=[t,e];if(n===!1&&(r=[t]),l(this.prerelease,t)){let e=this.prerelease[t.split(`.`).length];isNaN(e)&&(this.prerelease=r)}else this.prerelease=r}break}default:throw Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(`.`)}`),this}}})),M=o(((e,t)=>{let n=j();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),le=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),ue=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),de=o(((e,t)=>{let n=j();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),fe=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,null,!0),i=n(t,null,!0),a=r.compare(i);if(a===0)return null;let o=a>0,s=o?r:i,c=o?i:r,l=!!s.prerelease.length;if(c.prerelease.length&&!l){if(!c.patch&&!c.minor)return`major`;if(c.compareMain(s)===0)return c.minor&&!c.patch?`minor`:`patch`}let u=l?`pre`:``;return r.major===i.major?r.minor===i.minor?r.patch===i.patch?`prerelease`:u+`patch`:u+`minor`:u+`major`}})),pe=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).major})),me=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).minor})),he=o(((e,t)=>{let n=j();t.exports=(e,t)=>new n(e,t).patch})),ge=o(((e,t)=>{let n=M();t.exports=(e,t)=>{let r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}})),N=o(((e,t)=>{let n=j();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))})),_e=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(t,e,r)})),ve=o(((e,t)=>{let n=N();t.exports=(e,t)=>n(e,t,!0)})),P=o(((e,t)=>{let n=j();t.exports=(e,t,r)=>{let i=new n(e,r),a=new n(t,r);return i.compare(a)||i.compareBuild(a)}})),ye=o(((e,t)=>{let n=P();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),be=o(((e,t)=>{let n=P();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),F=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)>0})),I=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)<0})),xe=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)===0})),Se=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)!==0})),L=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)>=0})),R=o(((e,t)=>{let n=N();t.exports=(e,t,r)=>n(e,t,r)<=0})),Ce=o(((e,t)=>{let n=xe(),r=Se(),i=F(),a=L(),o=I(),s=R();t.exports=(e,t,c,l)=>{switch(t){case`===`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e===c;case`!==`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e!==c;case``:case`=`:case`==`:return n(e,c,l);case`!=`:return r(e,c,l);case`>`:return i(e,c,l);case`>=`:return a(e,c,l);case`<`:return o(e,c,l);case`<=`:return s(e,c,l);default:throw TypeError(`Invalid operator: ${t}`)}}})),we=o(((e,t)=>{let n=j(),r=M(),{safeRe:i,t:a}=k();t.exports=(e,t)=>{if(e instanceof n)return e;if(typeof e==`number`&&(e=String(e)),typeof e!=`string`)return null;t||={};let o=null;if(!t.rtl)o=e.match(t.includePrerelease?i[a.COERCEFULL]:i[a.COERCE]);else{let n=t.includePrerelease?i[a.COERCERTLFULL]:i[a.COERCERTL],r;for(;(r=n.exec(e))&&(!o||o.index+o[0].length!==e.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1}if(o===null)return null;let s=o[2],c=o[3]||`0`,l=o[4]||`0`,u=t.includePrerelease&&o[5]?`-${o[5]}`:``,d=t.includePrerelease&&o[6]?`+${o[6]}`:``;return r(`${s}.${c}.${l}${u}${d}`,t)}})),Te=o(((e,t)=>{let n=M(),r=D(),i=j(),a=(e,t,n)=>{if(!r.RELEASE_TYPES.includes(t))return null;let i=o(e,n);return i&&s(i,t)},o=(e,t)=>{let r=e instanceof i?e.version:e;return n(r,t)},s=(e,t)=>{if(c(t))return e.version;switch(e.prerelease=[],t){case`major`:e.minor=0,e.patch=0;break;case`minor`:e.patch=0}return e.format()},c=e=>e.startsWith(`pre`);t.exports=a})),Ee=o(((e,t)=>{t.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}})),z=o(((e,t)=>{let n=/\s+/g;t.exports=class e{constructor(t,r){if(r=i(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof a)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(n,` `),this.set=this.raw.split(`||`).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!_(e[0])),this.set.length===0)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(e.length===1&&v(e[0])){this.set=[e];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=``;for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=`||`);let t=this.set[e];for(let e=0;e<t.length;e++)e>0&&(this.formatted+=` `),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){e=e.replace(g,``);let t=((this.options.includePrerelease&&m)|(this.options.loose&&h))+`:`+e,n=r.get(t);if(n)return n;let i=this.options.loose,s=i?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(s,ie(this.options.includePrerelease)),o(`hyphen replace`,e),e=e.replace(c[u.COMPARATORTRIM],d),o(`comparator trim`,e),e=e.replace(c[u.TILDETRIM],f),o(`tilde trim`,e),e=e.replace(c[u.CARETTRIM],p),o(`caret trim`,e);let l=e.split(` `).map(e=>ee(e,this.options)).join(` `).split(/\s+/).map(e=>E(e,this.options));i&&(l=l.filter(e=>(o(`loose invalid filter`,e,this.options),!!e.match(c[u.COMPARATORLOOSE])))),o(`range list`,l);let v=new Map,y=l.map(e=>new a(e,this.options));for(let e of y){if(_(e))return[e];v.set(e.value,e)}v.size>1&&v.has(``)&&v.delete(``);let b=[...v.values()];return r.set(t,b),b}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Range is required`);return this.set.some(e=>y(e,n)&&t.set.some(t=>y(t,n)&&e.every(e=>t.every(t=>e.intersects(t,n)))))}test(e){if(!e)return!1;if(typeof e==`string`)try{e=new s(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(ae(this.set[t],e,this.options))return!0;return!1}};let r=new(Ee()),i=A(),a=B(),o=O(),s=j(),{safeRe:c,src:l,t:u,comparatorTrimReplace:d,tildeTrimReplace:f,caretTrimReplace:p}=k(),{FLAG_INCLUDE_PRERELEASE:m,FLAG_LOOSE:h}=D(),g=new RegExp(l[u.BUILD],`g`),_=e=>e.value===`<0.0.0-0`,v=e=>e.value===``,y=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(e=>i.intersects(e,t)),i=r.pop();return n},ee=(e,t)=>(e=e.replace(c[u.BUILD],``),o(`comp`,e,t),e=C(e,t),o(`caret`,e),e=te(e,t),o(`tildes`,e),e=T(e,t),o(`xrange`,e),e=re(e,t),o(`stars`,e),e),b=e=>!e||e.toLowerCase()===`x`||e===`*`,x=(e,t,n)=>b(e)&&!b(t)||b(t)&&n&&!b(n),te=(e,t)=>e.trim().split(/\s+/).map(e=>S(e,t)).join(` `),S=(e,t)=>{let n=t.loose?c[u.TILDELOOSE]:c[u.TILDE],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`tilde`,e,t,n,i,a,s);let c;return b(n)?c=``:b(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:b(a)?c=`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:s?(o(`replaceTilde pr`,s),c=`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`):c=`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`,o(`tilde return`,c),c})},C=(e,t)=>e.trim().split(/\s+/).map(e=>w(e,t)).join(` `),w=(e,t)=>{o(`caret`,e,t);let n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`caret`,e,t,n,i,a,s);let c;return b(n)?c=``:b(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:b(a)?c=n===`0`?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:s?(o(`replaceCaret pr`,s),c=n===`0`?i===`0`?`>=${n}.${i}.${a}-${s} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${s} <${+n+1}.0.0-0`):(o(`no pr`),c=n===`0`?i===`0`?`>=${n}.${i}.${a} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),o(`caret return`,c),c})},T=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>ne(e,t)).join(` `)),ne=(e,t)=>{e=e.trim();let n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,(n,r,i,a,s,c)=>{if(o(`xRange`,e,n,r,i,a,s,c),x(i,a,s))return e;let l=b(i),u=l||b(a),d=u||b(s),f=d;return r===`=`&&f&&(r=``),c=t.includePrerelease?`-0`:``,l?n=r===`>`||r===`<`?`<0.0.0-0`:`*`:r&&f?(u&&(a=0),s=0,r===`>`?(r=`>=`,u?(i=+i+1,a=0,s=0):(a=+a+1,s=0)):r===`<=`&&(r=`<`,u?i=+i+1:a=+a+1),r===`<`&&(c=`-0`),n=`${r+i}.${a}.${s}${c}`):u?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${c} <${i}.${+a+1}.0-0`),o(`xRange return`,n),n})},re=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[u.STAR],``)),E=(e,t)=>(o(`replaceGTE0`,e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],``)),ie=e=>(t,n,r,i,a,o,s,c,l,u,d,f)=>(n=b(r)?``:b(i)?`>=${r}.0.0${e?`-0`:``}`:b(a)?`>=${r}.${i}.0${e?`-0`:``}`:o?`>=${n}`:`>=${n}${e?`-0`:``}`,c=b(l)?``:b(u)?`<${+l+1}.0.0-0`:b(d)?`<${l}.${+u+1}.0-0`:f?`<=${l}.${u}.${d}-${f}`:e?`<${l}.${u}.${+d+1}-0`:`<=${c}`,`${n} ${c}`.trim()),ae=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(o(e[n].semver),e[n].semver!==a.ANY&&e[n].semver.prerelease.length>0){let r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}})),B=o(((e,t)=>{let n=Symbol(`SemVer ANY`);t.exports=class e{static get ANY(){return n}constructor(t,i){if(i=r(i),t instanceof e){if(t.loose===!!i.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(` `),s(`comparator`,t,i),this.options=i,this.loose=!!i.loose,this.parse(t),this.value=this.semver===n?``:this.operator+this.semver.version,s(`comp`,this)}parse(e){let t=this.options.loose?i[a.COMPARATORLOOSE]:i[a.COMPARATOR],r=e.match(t);if(!r)throw TypeError(`Invalid comparator: ${e}`);this.operator=r[1]===void 0?``:r[1],this.operator===`=`&&(this.operator=``),this.semver=r[2]?new c(r[2],this.options.loose):n}toString(){return this.value}test(e){if(s(`Comparator.test`,e,this.options.loose),this.semver===n||e===n)return!0;if(typeof e==`string`)try{e=new c(e,this.options)}catch{return!1}return o(e,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Comparator is required`);return this.operator===``?this.value===``||new l(t.value,n).test(this.value):t.operator===``?t.value===``||new l(this.value,n).test(t.semver):(n=r(n),n.includePrerelease&&(this.value===`<0.0.0-0`||t.value===`<0.0.0-0`)||!n.includePrerelease&&(this.value.startsWith(`<0.0.0`)||t.value.startsWith(`<0.0.0`))?!1:!!(this.operator.startsWith(`>`)&&t.operator.startsWith(`>`)||this.operator.startsWith(`<`)&&t.operator.startsWith(`<`)||this.semver.version===t.semver.version&&this.operator.includes(`=`)&&t.operator.includes(`=`)||o(this.semver,`<`,t.semver,n)&&this.operator.startsWith(`>`)&&t.operator.startsWith(`<`)||o(this.semver,`>`,t.semver,n)&&this.operator.startsWith(`<`)&&t.operator.startsWith(`>`)))}};let r=A(),{safeRe:i,t:a}=k(),o=Ce(),s=O(),c=j(),l=z()})),V=o(((e,t)=>{let n=z();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),De=o(((e,t)=>{let n=z();t.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(` `).trim().split(` `))})),Oe=o(((e,t)=>{let n=j(),r=z();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===-1)&&(a=e,o=new n(a,i))}),a}})),ke=o(((e,t)=>{let n=j(),r=z();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===1)&&(a=e,o=new n(a,i))}),a}})),Ae=o(((e,t)=>{let n=j(),r=z(),i=F();t.exports=(e,t)=>{e=new r(e,t);let a=new n(`0.0.0`);if(e.test(a)||(a=new n(`0.0.0-0`),e.test(a)))return a;a=null;for(let t=0;t<e.set.length;++t){let r=e.set[t],o=null;r.forEach(e=>{let t=new n(e.semver.version);switch(e.operator){case`>`:t.prerelease.length===0?t.patch++:t.prerelease.push(0),t.raw=t.format();case``:case`>=`:(!o||i(t,o))&&(o=t);break;case`<`:case`<=`:break;default:throw Error(`Unexpected operation: ${e.operator}`)}}),o&&(!a||i(a,o))&&(a=o)}return a&&e.test(a)?a:null}})),je=o(((e,t)=>{let n=z();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),H=o(((e,t)=>{let n=j(),r=B(),{ANY:i}=r,a=z(),o=V(),s=F(),c=I(),l=R(),u=L();t.exports=(e,t,d,f)=>{e=new n(e,f),t=new a(t,f);let p,m,h,g,_;switch(d){case`>`:p=s,m=l,h=c,g=`>`,_=`>=`;break;case`<`:p=c,m=u,h=s,g=`<`,_=`<=`;break;default:throw TypeError(`Must provide a hilo val of "<" or ">"`)}if(o(e,t,f))return!1;for(let n=0;n<t.set.length;++n){let a=t.set[n],o=null,s=null;if(a.forEach(e=>{e.semver===i&&(e=new r(`>=0.0.0`)),o||=e,s||=e,p(e.semver,o.semver,f)?o=e:h(e.semver,s.semver,f)&&(s=e)}),o.operator===g||o.operator===_||(!s.operator||s.operator===g)&&m(e,s.semver)||s.operator===_&&h(e,s.semver))return!1}return!0}})),Me=o(((e,t)=>{let n=H();t.exports=(e,t,r)=>n(e,t,`>`,r)})),Ne=o(((e,t)=>{let n=H();t.exports=(e,t,r)=>n(e,t,`<`,r)})),Pe=o(((e,t)=>{let n=z();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))})),Fe=o(((e,t)=>{let n=V(),r=N();t.exports=(e,t,i)=>{let a=[],o=null,s=null,c=e.sort((e,t)=>r(e,t,i));for(let e of c)n(e,t,i)?(s=e,o||=e):(s&&a.push([o,s]),s=null,o=null);o&&a.push([o,null]);let l=[];for(let[e,t]of a)e===t?l.push(e):!t&&e===c[0]?l.push(`*`):t?e===c[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`);let u=l.join(` || `),d=typeof t.raw==`string`?t.raw:String(t);return u.length<d.length?u:t}})),Ie=o(((e,t)=>{let n=z(),r=B(),{ANY:i}=r,a=V(),o=N(),s=(e,t,r={})=>{if(e===t)return!0;e=new n(e,r),t=new n(t,r);let i=!1;OUTER:for(let n of e.set){for(let e of t.set){let t=u(n,e,r);if(i||=t!==null,t)continue OUTER}if(i)return!1}return!0},c=[new r(`>=0.0.0-0`)],l=[new r(`>=0.0.0`)],u=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===i){if(t.length===1&&t[0].semver===i)return!0;e=n.includePrerelease?c:l}if(t.length===1&&t[0].semver===i){if(n.includePrerelease)return!0;t=l}let r=new Set,s,u;for(let t of e)t.operator===`>`||t.operator===`>=`?s=d(s,t,n):t.operator===`<`||t.operator===`<=`?u=f(u,t,n):r.add(t.semver);if(r.size>1)return null;let p;if(s&&u&&(p=o(s.semver,u.semver,n),p>0||p===0&&(s.operator!==`>=`||u.operator!==`<=`)))return null;for(let e of r){if(s&&!a(e,String(s),n)||u&&!a(e,String(u),n))return null;for(let r of t)if(!a(e,String(r),n))return!1;return!0}let m,h,g,_,v=u&&!n.includePrerelease&&u.semver.prerelease.length?u.semver:!1,y=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;v&&v.prerelease.length===1&&u.operator===`<`&&v.prerelease[0]===0&&(v=!1);for(let e of t){if(_=_||e.operator===`>`||e.operator===`>=`,g=g||e.operator===`<`||e.operator===`<=`,s){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),e.operator===`>`||e.operator===`>=`){if(m=d(s,e,n),m===e&&m!==s)return!1}else if(s.operator===`>=`&&!e.test(s.semver))return!1}if(u){if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),e.operator===`<`||e.operator===`<=`){if(h=f(u,e,n),h===e&&h!==u)return!1}else if(u.operator===`<=`&&!e.test(u.semver))return!1}if(!e.operator&&(u||s)&&p!==0)return!1}return!(s&&g&&!u&&p!==0||u&&_&&!s&&p!==0||y||v)},d=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r>0?e:r<0||t.operator===`>`&&e.operator===`>=`?t:e},f=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r<0?e:r>0||t.operator===`<`&&e.operator===`<=`?t:e};t.exports=s}));o(((e,t)=>{let n=k(),r=D(),i=j(),a=ce();t.exports={parse:M(),valid:le(),clean:ue(),inc:de(),diff:fe(),major:pe(),minor:me(),patch:he(),prerelease:ge(),compare:N(),rcompare:_e(),compareLoose:ve(),compareBuild:P(),sort:ye(),rsort:be(),gt:F(),lt:I(),eq:xe(),neq:Se(),gte:L(),lte:R(),cmp:Ce(),coerce:we(),truncate:Te(),Comparator:B(),Range:z(),satisfies:V(),toComparators:De(),maxSatisfying:Oe(),minSatisfying:ke(),minVersion:Ae(),validRange:je(),outside:H(),gtr:Me(),ltr:Ne(),intersects:Pe(),simplifyRange:Fe(),subset:Ie(),SemVer:i,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}))();function Le(){let e=globalThis.chrome?.runtime?.id;return typeof e==`string`&&e.length>0}function Re(e,t){let n=Le(),r=`/preview${e}${t?`?projectRoot=${encodeURIComponent(t)}`:``}`;if(n){let e=globalThis.chrome?.runtime?.getURL;if(e)return e(r)}let i=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?i=window.location.origin:typeof self<`u`&&self.location?.origin&&(i=self.location.origin),`${i}${r}`}function ze(e,t){if(typeof t!=`string`||!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(t))throw Error(`${e} must use an exact semver version in package.json`);return t}const U={EBADF:8,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ENOENT:44,ENOTDIR:54,ENOTEMPTY:55,EPERM:63},Be=16877;async function Ve(e){let t=new Map;t.set(``,{kind:`directory`,dirHandle:e});async function n(e,r){let i=e;for await(let[e,a]of i){let i=r===``?e:`${r}/${e}`;if(a.kind===`directory`)t.set(i,{kind:`directory`,dirHandle:a}),await n(a,i);else{let e=a,n=await e.getFile();t.set(i,{kind:`file`,fileHandle:e,size:n.size,mtime:n.lastModified})}}}return await n(e,``),{entries:t}}function W(e,t){return e===``?t:`${e}/${t}`}function He(e,t){return{getattr(t){let n=e.isDir(t.mode),r=e.isLink(t.mode)?t.opfs.linkTarget?.length??0:n?4096:t.opfs.size,i=new Date(t.opfs.mtime||t.timestamp);return{dev:1,ino:t.id,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:r,atime:i,mtime:i,ctime:i,blksize:4096,blocks:Math.ceil(r/4096)}},setattr(t,n){if(n.mode!==void 0&&(t.mode=t.mode&61440|n.mode&-61441),n.size!==void 0&&e.isFile(t.mode)){let e=n.size;t.opfs.size=e;let r=e;q(t.mount,async()=>{if(t.opfs.size>r)return;let n=await Xe(t),i=t.mount.opts.sahProvider.acquire(t.opfs.relPath,n);try{i.truncate(e),i.flush()}finally{i.close(),t.mount.opts.sahProvider.release(t.opfs.relPath)}})}if(n.mtime!==void 0){let e=n.mtime.getTime();t.opfs.mtime=e,t.timestamp=e}},lookup(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(U.ENOENT);return r},mknod(n,r,i,a){if(n.opfs.children?.has(r))throw new e.ErrnoError(U.EEXIST);let o=t.createNode(n,r,i,a);return n.opfs.children?.set(r,o),e.isDir(i)?q(n.mount,async()=>{let e=await(await J(n)).getDirectoryHandle(r,{create:!0});o.opfs.dirHandle=e}):e.isFile(i)&&q(n.mount,async()=>{let e=await(await J(n)).getFileHandle(r,{create:!0});o.opfs.fileHandle=e}),o},rename(t,n,r){let i=t.parent,a=t.name;if(a!==r||i!==n){if(n.opfs.children?.has(r))throw new e.ErrnoError(U.EEXIST);i.opfs.children?.delete(a),n.opfs.children?.set(r,t),t.name=r,t.parent=n,Ze(t,W(n.opfs.relPath,r)),e.isFile(t.mode)?q(t.mount,()=>Qe(t,i,a,n,r)):e.isDir(t.mode)&&q(t.mount,()=>$e(t,i,a,n,r))}},unlink(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(U.ENOENT);if(e.isDir(r.mode))throw new e.ErrnoError(U.EISDIR);t.opfs.children?.delete(n),e.isFile(r.mode)&&q(t.mount,async()=>{try{t.mount.opts.sahProvider.release(r.opfs.relPath)}catch{}await(await J(t)).removeEntry(n)})},rmdir(t,n){let r=t.opfs.children?.get(n);if(!r)throw new e.ErrnoError(U.ENOENT);if(!e.isDir(r.mode))throw new e.ErrnoError(U.ENOTDIR);if((r.opfs.children?.size??0)>0)throw new e.ErrnoError(U.ENOTEMPTY);t.opfs.children?.delete(n),q(t.mount,async()=>{await(await J(t)).removeEntry(n)})},readdir(t){if(!e.isDir(t.mode))throw new e.ErrnoError(U.ENOTDIR);let n=[`.`,`..`];for(let e of t.opfs.children?.keys()??[])n.push(e);return n},symlink(n,r,i){if(n.opfs.children?.has(r))throw new e.ErrnoError(U.EEXIST);let a=t.createNode(n,r,41471,0);return a.opfs.linkTarget=i,n.opfs.children?.set(r,a),a},readlink(t){if(!e.isLink(t.mode))throw new e.ErrnoError(U.EINVAL);return t.opfs.linkTarget??``}}}function Ue(e){return{open(t){let n=t.node;if(e.isDir(n.mode)||!e.isFile(n.mode))return;let r=n.mount.opts.sahProvider.acquire(n.opfs.relPath,n.opfs.fileHandle);t.sah=r,t.flags!==void 0&&t.flags&512?(r.truncate(0),n.opfs.size=0):n.opfs.size=r.getSize()},close(e){let t=e.sah;if(t)try{t.flush()}finally{t.close(),e.node.mount.opts.sahProvider.release(e.node.opfs.relPath),e.sah=void 0}},read(t,n,r,i,a){let o=t.sah;if(!o)throw new e.ErrnoError(U.EBADF);let s=new Uint8Array(n.buffer,n.byteOffset+r,i);return o.read(s,{at:a})},write(t,n,r,i,a){let o=t.sah;if(!o)throw new e.ErrnoError(U.EBADF);let s=new Uint8Array(n.buffer,n.byteOffset+r,i),c=o.write(s,{at:a}),l=Math.max(t.node.opfs.size,a+c);return t.node.opfs.size=l,t.node.opfs.mtime=Date.now(),t.node.timestamp=t.node.opfs.mtime,c},llseek(t,n,r){let i=n;if(r===1)i=t.position+n;else if(r===2){let e=t.sah;i=(e?e.getSize():t.node.opfs.size)+n}if(i<0)throw new e.ErrnoError(U.EINVAL);return t.position=i,i}}}function We(e,t,n,r){for(let[i,a]of r.entries){if(i===``)continue;let r=i.split(`/`),o=n;for(let t=0;t<r.length-1;t++){let n=r[t],i=o.opfs.children?.get(n);if(!i)throw new e.ErrnoError(U.EIO);o=i}let s=r[r.length-1];if(a.kind===`directory`){let e=t.createNode(o,s,Be,0);e.opfs.dirHandle=a.dirHandle,e.opfs.children=new Map,o.opfs.children?.set(s,e)}else{let e=t.createNode(o,s,33188,0);e.opfs.fileHandle=a.fileHandle,e.opfs.size=a.size,e.opfs.mtime=a.mtime,e.timestamp=a.mtime,o.opfs.children?.set(s,e)}}}function Ge(e){let t={mount(n){let{prewalk:r}=n.opts,i=r.entries.get(``);if(i?.kind!==`directory`)throw new e.ErrnoError(U.EINVAL);let a=t.createNode(null,`/`,Be,0);return a.mount=n,a.opfs.dirHandle=i.dirHandle,a.opfs.children=new Map,We(e,t,a,r),a},createNode(n,r,i,a=0){if(!e.isDir(i)&&!e.isFile(i)&&!e.isLink(i))throw new e.ErrnoError(U.EINVAL);let o=n===null?``:W(n.opfs?.relPath??``,r),s=e.createNode(n,r,i,a);return s.node_ops=t.node_ops,s.stream_ops=t.stream_ops,s.timestamp=Date.now(),n!==null&&(s.mount=n.mount),s.opfs={relPath:o,size:0,mtime:s.timestamp},e.isDir(i)&&(s.opfs.children=new Map),s},node_ops:void 0,stream_ops:void 0};return t.node_ops=He(e,t),t.stream_ops=Ue(e),t}const G=new WeakMap,K=new WeakMap;function q(e,t){K.set(e,!0);let n=(G.get(e)??Promise.resolve()).then(t,t);G.set(e,n),e.opts.flush||(e.opts.flush=()=>G.get(e)??Promise.resolve())}function Ke(e){return K.get(e)===!0}async function qe(e){let t=G.get(e);for(;t;){let n=t;await n;let r=G.get(e);if(r===n){K.set(e,!1);return}t=r}}var Je=class{backing;onClose;constructor(e,t){this.backing=e,this.onClose=t}read(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=Math.min(this.backing.data.length,n+r.byteLength),a=Math.max(0,i-n);return r.set(this.backing.data.subarray(n,n+a),0),a}write(e,t){let n=t?.at??0,r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=n+r.byteLength;if(i>this.backing.data.length){let e=new Uint8Array(i);e.set(this.backing.data),this.backing.data=e}return this.backing.data.set(r,n),this.backing.dirty=!0,r.byteLength}truncate(e){if(e===this.backing.data.length)return;let t=new Uint8Array(e);t.set(this.backing.data.subarray(0,Math.min(e,this.backing.data.length))),this.backing.data=t,this.backing.dirty=!0}getSize(){return this.backing.data.length}flush(){}close(){this.onClose()}};function Ye(){let e=new Map,t=new Set;return{provider:{acquire(n,r){let i=e.get(n);return i||(i={data:new Uint8Array,dirty:!0},e.set(n,i),t.add(n)),new Je(i,()=>{i.dirty&&t.add(n)})},release(e){}},async preload(t){for(let[n,r]of t.entries){if(r.kind!==`file`)continue;let t=await r.fileHandle.getFile(),i=new Uint8Array(await t.arrayBuffer());e.set(n,{data:i,dirty:!1})}},async flush(t){for(let[n,r]of e){if(!r.dirty)continue;let e=n.split(`/`),i=t;for(let t of e.slice(0,-1))i=await i.getDirectoryHandle(t,{create:!0});let a=await(await i.getFileHandle(e[e.length-1],{create:!0})).createWritable(),o=new ArrayBuffer(r.data.byteLength);new Uint8Array(o).set(r.data),await a.write(o),await a.close(),r.dirty=!1}},getDirtyPaths(){return[...t]}}}async function J(e){if(e.opfs.dirHandle)return e.opfs.dirHandle;let t=e.opfs.relPath.split(`/`).filter(Boolean),n=e.mount.root.opfs.dirHandle;for(let e of t)n=await n.getDirectoryHandle(e,{create:!0});return e.opfs.dirHandle=n,n}async function Xe(e){if(e.opfs.fileHandle)return e.opfs.fileHandle;let t=await(await J(e.parent)).getFileHandle(e.name,{create:!0});return e.opfs.fileHandle=t,t}function Ze(e,t){if(e.opfs.relPath=t,e.opfs.children)for(let[n,r]of e.opfs.children)Ze(r,W(t,n))}async function Qe(e,t,n,r,i){let a=await J(t),o=await J(r),s=await(await a.getFileHandle(n)).getFile(),c=new Uint8Array(await s.arrayBuffer()),l=await o.getFileHandle(i,{create:!0}),u=e.mount.opts.sahProvider.acquire(e.opfs.relPath,l);try{u.truncate(0),c.byteLength>0&&u.write(c,{at:0}),u.flush()}finally{u.close(),e.mount.opts.sahProvider.release(e.opfs.relPath)}await a.removeEntry(n),e.opfs.fileHandle=l}async function $e(e,t,n,r,i){let a=await J(t),o=await J(r),s=await a.getDirectoryHandle(n),c=await o.getDirectoryHandle(i,{create:!0});await et(s,c),await a.removeEntry(n,{recursive:!0}),e.opfs.dirHandle=c}async function et(e,t){let n=e;for await(let[e,r]of n)if(r.kind===`directory`)await et(r,await t.getDirectoryHandle(e,{create:!0}));else{let n=await r.getFile(),i=new Uint8Array(await n.arrayBuffer()),a=await(await t.getFileHandle(e,{create:!0})).createWritable();await a.write(i),await a.close()}}function tt(e){return`slicc: synchronous access to mounted path '${e}' is not supported. Use the async slicc.fs module (e.g. \`await slicc.fs.read_text('${e}')\` or \`await slicc.fs.listdir('${e}')\`), or copy the file into the VFS first (\`await slicc.fs.read_bytes('${e}/<file>')\` then write it under /tmp).`}function Y(e,t){let n=new e.ErrnoError(U.EIO);return n.message=tt(t),n}function nt(e){let t={mount(n){let r=e.createNode(null,`/`,16877,0);return r.node_ops=t.node_ops,r.stream_ops=t.stream_ops,r.mount=n,r},createNode(n,r,i,a=0){let o=e.createNode(n,r,i,a);return o.node_ops=t.node_ops,o.stream_ops=t.stream_ops,n!==null&&(o.mount=n.mount),o},node_ops:{getattr:e=>{throw Y(n(e),X(e))},setattr:e=>{throw Y(n(e),X(e))},lookup:e=>{throw Y(n(e),X(e))},mknod:e=>{throw Y(n(e),X(e))},rename:e=>{throw Y(n(e),X(e))},unlink:e=>{throw Y(n(e),X(e))},rmdir:e=>{throw Y(n(e),X(e))},readdir:e=>{throw Y(n(e),X(e))},symlink:e=>{throw Y(n(e),X(e))},readlink:e=>{throw Y(n(e),X(e))}},stream_ops:{open:e=>{throw Y(n(e.node),X(e.node))},close:()=>{},read:e=>{throw Y(n(e.node),X(e.node))},write:e=>{throw Y(n(e.node),X(e.node))},llseek:e=>{throw Y(n(e.node),X(e.node))}}};function n(t){return e}return t}function X(e){let t=e.mount;return t?.opts?.mountPath??t?.mountpoint??`<unknown mount>`}function rt(e,t){let n=e.MOUNT_BOMB_FS;return n||(n=nt(t),e.MOUNT_BOMB_FS=n),n}function it(e,t,n=()=>{}){if(t.length===0)return;let r=rt(e.filesystems,e);for(let i of t)try{try{e.stat(i)}catch{e.mkdirTree(i)}e.mount(r,{mountPath:i},i)}catch(e){n(`mount '${i}': bomb overlay failed: ${e instanceof Error?e.message:String(e)}`)}}function at(e){return tt(e)}async function ot(e,t){if(t.length===0)return;let n={};for(let e of t)n[e]=at(e);let r=JSON.stringify({prefixes:t,messages:n});e.globals.set(`__slicc_mount_data`,r);try{await e.runPythonAsync(`
4
- import builtins as _slicc_builtins
5
- import io as _slicc_io
6
- import os as _slicc_os
7
- import os.path as _slicc_osp
8
- import errno as _slicc_errno
9
- import json as _slicc_json
10
-
11
- _slicc_data = _slicc_json.loads(__slicc_mount_data)
12
- _slicc_mount_prefixes = list(_slicc_data['prefixes'])
13
- _slicc_mount_messages = dict(_slicc_data['messages'])
14
- del _slicc_data
15
-
16
- def _slicc_match_mount_prefix(path):
17
- if path is None:
18
- return None
19
- if isinstance(path, int):
20
- return None
21
- try:
22
- s = _slicc_os.fspath(path)
23
- except TypeError:
24
- return None
25
- if isinstance(s, bytes):
26
- try:
27
- s = s.decode('utf-8', 'surrogateescape')
28
- except Exception:
29
- return None
30
- if not isinstance(s, str):
31
- return None
32
- try:
33
- resolved = _slicc_osp.abspath(s)
34
- except Exception:
35
- return None
36
- for prefix in _slicc_mount_prefixes:
37
- if resolved == prefix or resolved.startswith(prefix + '/'):
38
- return prefix
39
- return None
40
-
41
- def _slicc_raise_mount_guard(path, prefix):
42
- msg = _slicc_mount_messages.get(prefix)
43
- if not msg:
44
- msg = "slicc: synchronous access to mounted path '" + prefix + "' is not supported; use the async slicc.fs module."
45
- raise OSError(_slicc_errno.EIO, msg, str(path))
46
-
47
- _slicc_orig_builtins_open = _slicc_builtins.open
48
- _slicc_orig_io_open = _slicc_io.open
49
- _slicc_orig_listdir = _slicc_os.listdir
50
- _slicc_orig_scandir = _slicc_os.scandir
51
- _slicc_orig_stat = _slicc_os.stat
52
- _slicc_orig_lstat = _slicc_os.lstat
53
- _slicc_orig_mkdir = _slicc_os.mkdir
54
- _slicc_orig_remove = _slicc_os.remove
55
- _slicc_orig_rename = _slicc_os.rename
56
-
57
- def _slicc_guarded_builtins_open(file, *args, **kwargs):
58
- if isinstance(file, int):
59
- return _slicc_orig_builtins_open(file, *args, **kwargs)
60
- prefix = _slicc_match_mount_prefix(file)
61
- if prefix is not None:
62
- _slicc_raise_mount_guard(file, prefix)
63
- return _slicc_orig_builtins_open(file, *args, **kwargs)
64
-
65
- def _slicc_guarded_io_open(file, *args, **kwargs):
66
- if isinstance(file, int):
67
- return _slicc_orig_io_open(file, *args, **kwargs)
68
- prefix = _slicc_match_mount_prefix(file)
69
- if prefix is not None:
70
- _slicc_raise_mount_guard(file, prefix)
71
- return _slicc_orig_io_open(file, *args, **kwargs)
72
-
73
- def _slicc_make_path_guard(orig):
74
- def _guarded(path, *args, **kwargs):
75
- prefix = _slicc_match_mount_prefix(path)
76
- if prefix is not None:
77
- _slicc_raise_mount_guard(path, prefix)
78
- return orig(path, *args, **kwargs)
79
- return _guarded
80
-
81
- def _slicc_guarded_rename(src, dst, *args, **kwargs):
82
- for p in (src, dst):
83
- prefix = _slicc_match_mount_prefix(p)
84
- if prefix is not None:
85
- _slicc_raise_mount_guard(p, prefix)
86
- return _slicc_orig_rename(src, dst, *args, **kwargs)
87
-
88
- _slicc_builtins.open = _slicc_guarded_builtins_open
89
- _slicc_io.open = _slicc_guarded_io_open
90
- _slicc_os.listdir = _slicc_make_path_guard(_slicc_orig_listdir)
91
- _slicc_os.scandir = _slicc_make_path_guard(_slicc_orig_scandir)
92
- _slicc_os.stat = _slicc_make_path_guard(_slicc_orig_stat)
93
- _slicc_os.lstat = _slicc_make_path_guard(_slicc_orig_lstat)
94
- _slicc_os.mkdir = _slicc_make_path_guard(_slicc_orig_mkdir)
95
- _slicc_os.remove = _slicc_make_path_guard(_slicc_orig_remove)
96
- _slicc_os.rename = _slicc_guarded_rename
97
- `)}finally{try{e.runPython(`del __slicc_mount_data`)}catch{}}}var st=class{port;nextId=1;pending=new Map;eventSubscribers=new Map;progressWaiters=new Set;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{let t=e.data;if(t?.type===`realm-rpc-res`){let t=e.data,n=this.pending.get(t.id);if(!n)return;this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result),this.notifyProgress();return}if(t?.type===`realm-event`){let t=e.data,n=this.eventSubscribers.get(t.channel);if(!n)return;for(let e of[...n])try{e(t.payload)}catch{}}},e.addEventListener(`message`,this.handler),e.start?.()}get pendingCount(){return this.pending.size+this.eventSubscriptionCount}get eventSubscriptionCount(){let e=0;for(let t of this.eventSubscribers.values())e+=t.size;return e}waitForProgress(){return this.pendingCount===0?Promise.resolve():new Promise(e=>{this.progressWaiters.add(e)})}notifyProgress(){if(this.progressWaiters.size===0)return;let e=[...this.progressWaiters];this.progressWaiters.clear();for(let t of e)t()}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}onEvent(e,t){if(this.disposed)return()=>{};let n=this.eventSubscribers.get(e);return n||(n=new Set,this.eventSubscribers.set(e,n)),n.add(t),this.notifyProgress(),()=>{let n=this.eventSubscribers.get(e);n&&(n.delete(t),n.size===0&&this.eventSubscribers.delete(e),this.notifyProgress())}}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear(),this.eventSubscribers.clear(),this.notifyProgress()}};function ct(e){return{listdir(t){return e.call(`vfs`,`readDir`,[t])},async readBytes(t){let n=await e.call(`vfs`,`readFileBinary`,[t]);return n instanceof Uint8Array?n:new Uint8Array(n)},async writeBytes(t,n){await e.call(`vfs`,`writeFileBinary`,[t,n])},stat(t){return e.call(`vfs`,`stat`,[t])},exists(t){return e.call(`vfs`,`exists`,[t])},async mkdir(t){await e.call(`vfs`,`mkdir`,[t])},async remove(t){await e.call(`vfs`,`rm`,[t])}}}async function lt(e,t){let n=ct(t);e.registerJsModule(`_slicc_fs_js`,n),await e.runPythonAsync(`
98
- import sys
99
- import types
100
- import js
101
-
102
- def _build_slicc_module(_bridge):
103
- fs_module = types.ModuleType("slicc.fs")
104
-
105
- async def listdir(path):
106
- result = await _bridge.listdir(path)
107
- return [str(name) for name in result.to_py()] if hasattr(result, "to_py") else [str(name) for name in result]
108
-
109
- async def read_bytes(path):
110
- result = await _bridge.readBytes(path)
111
- # Pyodide returns JS Uint8Array as memoryview; coerce to bytes.
112
- if hasattr(result, "to_bytes"):
113
- return result.to_bytes()
114
- if isinstance(result, memoryview):
115
- return bytes(result)
116
- return bytes(result)
117
-
118
- async def read_text(path, encoding="utf-8"):
119
- data = await read_bytes(path)
120
- return data.decode(encoding)
121
-
122
- async def write_bytes(path, data):
123
- if isinstance(data, str):
124
- raise TypeError("write_bytes expects bytes-like; use write_text for str")
125
- if isinstance(data, (bytes, bytearray, memoryview)):
126
- payload = bytes(data)
127
- else:
128
- payload = bytes(data)
129
- # Convert Python bytes to a real JS Uint8Array before crossing
130
- # the realm RPC boundary. The bridge call ultimately hits
131
- # \`port.postMessage\` (see realm-rpc.ts), which structured-
132
- # clones its argument; a Python \`bytes\` would arrive as a
133
- # PyProxy and trigger DataCloneError. \`js.Uint8Array.new\`
134
- # copies the buffer into a JS typed array that clones cleanly.
135
- await _bridge.writeBytes(path, js.Uint8Array.new(payload))
136
-
137
- async def write_text(path, text, encoding="utf-8"):
138
- if not isinstance(text, str):
139
- raise TypeError("write_text expects str; use write_bytes for bytes")
140
- await write_bytes(path, text.encode(encoding))
141
-
142
- async def stat(path):
143
- result = await _bridge.stat(path)
144
- obj = result.to_py() if hasattr(result, "to_py") else result
145
- if isinstance(obj, dict):
146
- return {
147
- "isDirectory": bool(obj.get("isDirectory", False)),
148
- "isFile": bool(obj.get("isFile", False)),
149
- "size": int(obj.get("size", 0)),
150
- }
151
- return {
152
- "isDirectory": bool(getattr(obj, "isDirectory", False)),
153
- "isFile": bool(getattr(obj, "isFile", False)),
154
- "size": int(getattr(obj, "size", 0)),
155
- }
156
-
157
- async def exists(path):
158
- result = await _bridge.exists(path)
159
- return bool(result)
160
-
161
- async def mkdir(path, parents=False):
162
- # The underlying vfs.mkdir is recursive ({recursive: true} in
163
- # realm-host.ts), matching parents=True semantics. With
164
- # parents=False we raise FileExistsError when the target
165
- # already exists, mirroring pathlib.Path.mkdir(parents=False).
166
- if not parents:
167
- try:
168
- already = await exists(path)
169
- except Exception:
170
- already = False
171
- if already:
172
- raise FileExistsError(path)
173
- await _bridge.mkdir(path)
174
-
175
- async def remove(path):
176
- await _bridge.remove(path)
177
-
178
- async def walk(path):
179
- results = []
180
- async def _visit(current):
181
- names = await listdir(current)
182
- dirnames = []
183
- filenames = []
184
- for name in names:
185
- child = current + "/" + name if current != "/" else "/" + name
186
- try:
187
- st = await stat(child)
188
- except Exception:
189
- continue
190
- if st["isDirectory"]:
191
- dirnames.append(name)
192
- elif st["isFile"]:
193
- filenames.append(name)
194
- results.append((current, dirnames, filenames))
195
- for d in list(dirnames):
196
- child = current + "/" + d if current != "/" else "/" + d
197
- await _visit(child)
198
- await _visit(path)
199
- return results
200
-
201
- fs_module.listdir = listdir
202
- fs_module.read_bytes = read_bytes
203
- fs_module.read_text = read_text
204
- fs_module.write_bytes = write_bytes
205
- fs_module.write_text = write_text
206
- fs_module.stat = stat
207
- fs_module.exists = exists
208
- fs_module.mkdir = mkdir
209
- fs_module.remove = remove
210
- fs_module.walk = walk
211
-
212
- slicc_module = types.ModuleType("slicc")
213
- slicc_module.fs = fs_module
214
- sys.modules["slicc"] = slicc_module
215
- sys.modules["slicc.fs"] = fs_module
216
- return slicc_module
217
-
218
- import _slicc_fs_js as _bridge
219
- _build_slicc_module(_bridge)
220
- del _build_slicc_module
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-W71AWfnt.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-CJWt_6ye.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
- `)}),e.setStderr({batched:e=>r.push(e+`
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
- import sys
226
- import traceback
227
-
228
- __slicc_exit_code = 0
229
- try:
230
- sys.argv = __slicc_argv
231
- exec(compile(__slicc_code, __slicc_filename, "exec"), {"__name__": "__main__", "__file__": __slicc_filename})
232
- except SystemExit as exc:
233
- code = exc.code
234
- if code is None:
235
- __slicc_exit_code = 0
236
- elif isinstance(code, int):
237
- __slicc_exit_code = code
238
- else:
239
- print(code, file=sys.stderr)
240
- __slicc_exit_code = 1
241
- except BaseException:
242
- traceback.print_exc()
243
- __slicc_exit_code = 1
244
- `);let t=e.globals.get(`__slicc_exit_code`);n=typeof t==`number`?t:Number(t??1)}catch(e){let r=e instanceof Error?e.message:String(e);t.push(`${r}\n`),n=1}try{e.runPython(`del __slicc_code, __slicc_filename, __slicc_argv, __slicc_exit_code`)}catch{}return n}async function Ft(e,t,n,r){if(t.opfsMountDbName!==void 0){try{await Ht(e,n)}catch(e){r(`Pyodide→VFS consistency mark clear failed: ${e instanceof Error?e.message:String(e)}`),r(`Pyodide→VFS OPFS flush skipped: clean-boot mark could not be cleared`);return}try{await Ut(e)}catch(e){r(`Pyodide→VFS OPFS flush failed: ${e instanceof Error?e.message:String(e)}`)}try{await Wt(e,n)}catch(e){r(`Pyodide→kernel VFS invalidation failed: ${$(e)}`)}}}const It=new Set([`dev`,`proc`,`lib`,`tmp`,`home`]);function $(e){if(e&&typeof e==`object`){let t=e,n=typeof t.errno==`number`,r=typeof t.code==`string`;if(n||r){let e=typeof t.name==`string`&&t.name?t.name:`Error`,i=typeof t.message==`string`?t.message:``,a=[];n&&a.push(`errno ${t.errno}`),r&&a.push(t.code);let o=a.length?` (${a.join(`, `)})`:``;return i?`${e}: ${i}${o}`:`${e}${o}`}}return e instanceof Error?e.message:String(e)}function Lt(e){let t=e.FS.filesystems,n=t.OPFS_SYNC_FS;return n||(n=Ge(e.FS),t.OPFS_SYNC_FS=n),n}async function Rt(e,t,n,r=()=>{},i={}){let a=[],o=i.skipMountPaths??new Set,s=navigator.storage;if(!s?.getDirectory)return r(`VFS→Pyodide OPFS mount skipped: navigator.storage.getDirectory unavailable`),{mounts:a};let c;try{c=await s.getDirectory()}catch(e){return r(`VFS→Pyodide OPFS mount: getDirectory() failed: ${$(e)}`),{mounts:a}}let l;try{l=await c.getDirectoryHandle(n,{create:!0})}catch(e){return r(`VFS→Pyodide OPFS mount: opening '${n}' failed: ${$(e)}`),{mounts:a}}let u=Lt(e);for(let n of t){if(n===`/`){await zt(e,u,l,o,a,r);continue}if(!o.has(n))try{let t=l;for(let e of n.split(`/`).filter(Boolean))t=await t.getDirectoryHandle(e,{create:!0});await Bt(e,u,n,t,a)}catch(e){r(`VFS→Pyodide OPFS mount '${n}' failed: ${$(e)}`)}}return{mounts:a}}async function zt(e,t,n,r,i,a){try{let o=n;for await(let[n,s]of o){if(s.kind!==`directory`||It.has(n))continue;let o=`/${n}`;if(!r.has(o))try{await Bt(e,t,o,s,i)}catch(e){a(`VFS→Pyodide OPFS mount '${o}' failed: ${$(e)}`)}}}catch(e){a(`VFS→Pyodide OPFS mount '/' failed: ${$(e)}`)}}async function Bt(e,t,n,r,i){try{e.FS.stat(n)}catch{e.FS.mkdirTree(n)}let a=await Ve(r),o=Ye();await o.preload(a);let s={rootHandle:r,prewalk:a,sahProvider:o.provider},c=e.FS.mount(t,s,n),l=c?.mount??{opts:s,mountpoint:n,root:c};i.push({pyPath:n,mount:l,rootHandle:r,flushBuffers:o.flush,getDirtyPaths:o.getDirtyPaths})}function Vt(e){return e.some(e=>e.getDirtyPaths().length>0||Ke(e.mount))}async function Ht(e,t){Vt(e)&&await t.call(`vfs`,`forgetSidecarConsistency`,[])}async function Ut(e){for(let t of e)await qe(t.mount),await t.flushBuffers(t.rootHandle)}async function Wt(e,t){let n=[];for(let t of e)for(let e of t.getDirtyPaths())n.push(t.pyPath===`/`?`/${e}`:`${t.pyPath}/${e}`);n.length>0&&await t.call(`vfs`,`invalidatePaths`,[n])}const Gt={postMessage:(e,t)=>t?self.postMessage(e,t):self.postMessage(e),addEventListener:(e,t)=>self.addEventListener(e,t),removeEventListener:(e,t)=>self.removeEventListener(e,t)};self.addEventListener(`message`,e=>{if(e.data?.type!==`realm-init`)return;let t=e.data;t.kind===`py`&&gt(t,Gt).catch(e=>{let t={type:`realm-error`,message:e instanceof Error?e.message:String(e)};self.postMessage(t)})});export{l as n,c as r,o as t};