sliccy 6.217.0 → 6.218.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/README.md +2 -2
  2. package/dist/node-server/chrome-launch.d.ts +8 -2
  3. package/dist/node-server/chrome-launch.js +35 -27
  4. package/dist/ui/.vite/manifest.json +207 -200
  5. package/dist/ui/assets/{account-store-DEEMsVyJ.js → account-store-DYJJCxJo.js} +1 -1
  6. package/dist/ui/assets/{account-store-BOPuEMqI.js → account-store-D_dPl16L.js} +1 -1
  7. package/dist/ui/assets/{adobe-BJLSWwia.js → adobe-B4MN5_M4.js} +1 -1
  8. package/dist/ui/assets/{adobe-U9X3cRQ7.js → adobe-BYw0VHpu.js} +1 -1
  9. package/dist/ui/assets/{agent-panels-C2-uYlp_.js → agent-panels-C9dRkirO.js} +1 -1
  10. package/dist/ui/assets/{almost-bash-shell-headless-C_6K2YYO.js → almost-bash-shell-headless-DeH8ulQM.js} +526 -526
  11. package/dist/ui/assets/{apply-layout-Dg36cwSk.js → apply-layout-CXJ_8NAT.js} +1 -1
  12. package/dist/ui/assets/approval-decision-BvumWm-U.js +1 -0
  13. package/dist/ui/assets/approval-timeout-CeQbGMnv.js +1 -0
  14. package/dist/ui/assets/{apps-BHKYBwKI.js → apps-VP5mbnB8.js} +1 -1
  15. package/dist/ui/assets/{azure-openai-HHzueyMf.js → azure-openai-DQEwsige.js} +1 -1
  16. package/dist/ui/assets/{azure-openai-BGxf50uQ.js → azure-openai-iU6X70QW.js} +1 -1
  17. package/dist/ui/assets/{backend-hostfs-BjxRqXat.js → backend-hostfs-DLWkun8N.js} +1 -1
  18. package/dist/ui/assets/{boundary-Cp9c_bPu.js → boundary-DjgipyWT.js} +1 -1
  19. package/dist/ui/assets/{capability-BArmeMYf.js → capability-BsxMoeMg.js} +2 -2
  20. package/dist/ui/assets/{cdp-MViMwyXE.js → cdp-BVM0EV0h.js} +1 -1
  21. package/dist/ui/assets/{cerebras-zyC3IFAH.js → cerebras-C-MguQUF.js} +1 -1
  22. package/dist/ui/assets/{cerebras-WhszYDrM.js → cerebras-Dar5RPlL.js} +1 -1
  23. package/dist/ui/assets/{composer-speech-CtQBB9wd.js → composer-speech-d17pZjld.js} +1 -1
  24. package/dist/ui/assets/{connect-surface-DxqdV0pU.js → connect-surface-CzqhHOpk.js} +1 -1
  25. package/dist/ui/assets/directed-approval-CLyy98kZ.js +1 -0
  26. package/dist/ui/assets/emscripten-vfs-hook-Dgp8TEZK.js +1 -0
  27. package/dist/ui/assets/{emscripten-vfs-hook-CEQbJmZa.js → emscripten-vfs-hook-ctdnPZVN.js} +1 -1
  28. package/dist/ui/assets/{ensure-speech-assets-BD8LBQqZ.js → ensure-speech-assets-C12IV4u7.js} +1 -1
  29. package/dist/ui/assets/extension-ops-Ded2__AC.js +1 -0
  30. package/dist/ui/assets/{frozen-archive-writer-CKKM2Jif.js → frozen-archive-writer-BweL88zo.js} +1 -1
  31. package/dist/ui/assets/{fs-BMFVg7cy.js → fs-BvMvRMgl.js} +1 -1
  32. package/dist/ui/assets/{fs-CMiBtw7D.js → fs-Cr6FJg4V.js} +2 -2
  33. package/dist/ui/assets/{gelatiere-store-BiS0OWaH.js → gelatiere-store-CKuvVPdN.js} +1 -1
  34. package/dist/ui/assets/{gelatiere-unit-Cvsx6GjW.js → gelatiere-unit-Cro5t__k.js} +1 -1
  35. package/dist/ui/assets/{github-BB7o_Wpz.js → github-BMVOcdI8.js} +1 -1
  36. package/dist/ui/assets/{github-hpAX34vV.js → github-BiKuW-LL.js} +2 -2
  37. package/dist/ui/assets/{github-auth-3c5S4myF.js → github-auth-B_Ll-Y6P.js} +1 -1
  38. package/dist/ui/assets/{github-copilot-B4_eCJL8.js → github-copilot-Cpy-cNE7.js} +1 -1
  39. package/dist/ui/assets/{github-copilot-BkkYdoJq.js → github-copilot-D15AlMDG.js} +1 -1
  40. package/dist/ui/assets/{github-install-DLy4Fcr_.js → github-install-Q0KoGVpi.js} +1 -1
  41. package/dist/ui/assets/{github-zip-Bvlh8BqL.js → github-zip-Bz2IXLub.js} +1 -1
  42. package/dist/ui/assets/{hear-uDUBW-27.js → hear-DJyelQhP.js} +1 -1
  43. package/dist/ui/assets/{help-CPoBGA_p.js → help-D2h40n15.js} +1 -1
  44. package/dist/ui/assets/{installer-D27U027H.js → installer-BSR8SD5W.js} +1 -1
  45. package/dist/ui/assets/{ipk-mamba-D5JvnQqj.js → ipk-mamba-CUVvtYaQ.js} +1 -1
  46. package/dist/ui/assets/{js-realm-worker-9YVJnX-1.js → js-realm-worker-hsxBVRhi.js} +3 -3
  47. package/dist/ui/assets/{jsh-executor-B7LWgSEg.js → jsh-executor-CZKkf290.js} +2 -2
  48. package/dist/ui/assets/{kernel-worker-CwYO76P1.js → kernel-worker-B4R2PngA.js} +45 -45
  49. package/dist/ui/assets/{lick-ws-bridge-DLi1GXRX.js → lick-ws-bridge-COSKCGDc.js} +1 -1
  50. package/dist/ui/assets/{lick-ws-bridge-DEgEDvro.js → lick-ws-bridge-CWfL-fuc.js} +1 -1
  51. package/dist/ui/assets/{live-session-curation-IeL1i9Kq.js → live-session-curation-CF7-JQNt.js} +1 -1
  52. package/dist/ui/assets/{live-session-snapshot-DMljp105.js → live-session-snapshot-2a2d2niQ.js} +1 -1
  53. package/dist/ui/assets/live-vfs-fs-0VhJ1yJW.js +1 -0
  54. package/dist/ui/assets/{local-llm-C_q1qxQf.js → local-llm-DSc1eBI_.js} +1 -1
  55. package/dist/ui/assets/{local-llm-CEKxQjHM.js → local-llm-Dm67J4Or.js} +1 -1
  56. package/dist/ui/assets/main-B61BvKBb.js +22 -0
  57. package/dist/ui/assets/{main-cherry-ZZUNKpNu.js → main-cherry-BXtTBLP6.js} +1 -1
  58. package/dist/ui/assets/{memory-curation-seam-tmAQXZZh.js → memory-curation-seam-dMRe3LAt.js} +1 -1
  59. package/dist/ui/assets/{memory-health-BcNUYJ1h.js → memory-health-D0VOxGUq.js} +1 -1
  60. package/dist/ui/assets/{memory-write-execute-CZvWcgNO.js → memory-write-execute-B12BlJli.js} +1 -1
  61. package/dist/ui/assets/{merge-folded-cost-into-frozen-CLn1pgXV.js → merge-folded-cost-into-frozen-BJuchBJs.js} +1 -1
  62. package/dist/ui/assets/{mount-IZGjP_Ii.js → mount-C8XxJIcW.js} +3 -3
  63. package/dist/ui/assets/{mount-Bm0uHvq-.js → mount-CdMxbkwV.js} +1 -1
  64. package/dist/ui/assets/new-session-Ck977dr8.js +2 -0
  65. package/dist/ui/assets/{oauth-bootstrap-CqdiSEg6.js → oauth-bootstrap-VagnehHV.js} +2 -2
  66. package/dist/ui/assets/{onboarding-orchestrator-D3WdXuUK.js → onboarding-orchestrator-BlvLR2uv.js} +1 -1
  67. package/dist/ui/assets/{openai-codex-uFXagdsX.js → openai-codex-CgJV38ez.js} +1 -1
  68. package/dist/ui/assets/{openai-codex-CKqwo_3u.js → openai-codex-lx77uf95.js} +1 -1
  69. package/dist/ui/assets/{openrouter-D8XbzRPO.js → openrouter-BYF3f4hE.js} +1 -1
  70. package/dist/ui/assets/{openrouter-D1z7UC50.js → openrouter-FAB81Bs-.js} +1 -1
  71. package/dist/ui/assets/{openrouter-free-CC_KdTm_.js → openrouter-free-C-tzJPNS.js} +1 -1
  72. package/dist/ui/assets/{openrouter-free-DnovGZBZ.js → openrouter-free-C9Jp7Pjg.js} +1 -1
  73. package/dist/ui/assets/{openrouter-oauth-B4l5773C.js → openrouter-oauth-BtfMq4eX.js} +1 -1
  74. package/dist/ui/assets/{openrouter-oauth-CH74pIPL.js → openrouter-oauth-CgPTtO9Z.js} +1 -1
  75. package/dist/ui/assets/{opfs-mount-Cjeki81r.js → opfs-mount-B58s34ro.js} +1 -1
  76. package/dist/ui/assets/page-approval-service-BbEv1dSc.js +1 -0
  77. package/dist/ui/assets/panel-rpc-handlers-CFU49OK-.js +2 -0
  78. package/dist/ui/assets/{panelize-shell-Ca8jU9bz.js → panelize-shell-DG1WSdD6.js} +1 -1
  79. package/dist/ui/assets/{pi-edit-execution-imx0gp05.js → pi-edit-execution-CBxKNy1e.js} +1 -1
  80. package/dist/ui/assets/process-worker-Bm14-oXj.js +3 -0
  81. package/dist/ui/assets/{provider-DbuVBBue.js → provider-DmFA_o6z.js} +2 -2
  82. package/dist/ui/assets/{provider-DLcxXuhZ.js → provider-YkRt54jM.js} +1 -1
  83. package/dist/ui/assets/{provider-settings-C6j__6sI.js → provider-settings-BffwNjqW.js} +1 -1
  84. package/dist/ui/assets/provider-store-access-CiNO5BWB.js +1 -0
  85. package/dist/ui/assets/provider-store-access-DPC_h0n0.js +1 -0
  86. package/dist/ui/assets/{providers-CzioQa6A.js → providers-D91qSZ-7.js} +1 -1
  87. package/dist/ui/assets/{providers-CDCjovrE.js → providers-DniKJDnW.js} +2 -2
  88. package/dist/ui/assets/{py-live-vfs-BB10PxRM.js → py-live-vfs-BCSnlFm0.js} +1 -1
  89. package/dist/ui/assets/py-live-vfs-D_X8Ts9M.js +180 -0
  90. package/dist/ui/assets/{py-realm-worker-COX6g80P.js → py-realm-worker-vN-Y0duM.js} +1 -1
  91. package/dist/ui/assets/{quick-llm-CHkGjtc6.js → quick-llm-CrLkA2_d.js} +1 -1
  92. package/dist/ui/assets/{realm-inprocess-rhXVLUbw.js → realm-inprocess-DKN0ZHJ_.js} +2 -2
  93. package/dist/ui/assets/realm-sync-transport-BD8czJdC.js +1 -0
  94. package/dist/ui/assets/{realm-unhandled-rejections-B3ZSvhl_.js → realm-unhandled-rejections-AiJm7tb8.js} +1 -1
  95. package/dist/ui/assets/{realm-unhandled-rejections-DiL5sSwr.js → realm-unhandled-rejections-CZx2IMUV.js} +1 -1
  96. package/dist/ui/assets/{recovery-screen-rb6SOJ7U.js → recovery-screen-Dif0XJec.js} +1 -1
  97. package/dist/ui/assets/{remote-terminal-view-DKPsFcjB.js → remote-terminal-view-Bogfkp0a.js} +2 -2
  98. package/dist/ui/assets/{require-guards-DKdJuMhY.js → require-guards-jYsd9xiG.js} +1 -1
  99. package/dist/ui/assets/{rest-ops-DDzQA0qH.js → rest-ops-DyAkn44S.js} +1 -1
  100. package/dist/ui/assets/{rest-ops-BMlgdArp.js → rest-ops-d6LSiWDZ.js} +1 -1
  101. package/dist/ui/assets/{restore-l1zQRO1O.js → restore-BuvAnvWO.js} +1 -1
  102. package/dist/ui/assets/{run-CvaoxH-1.js → run-B41YZRab.js} +1 -1
  103. package/dist/ui/assets/{run-D1TXxMmP.js → run-BBBDnSZP.js} +1 -1
  104. package/dist/ui/assets/{run-zJ9eMMQs.js → run-BLIuToUE.js} +2 -2
  105. package/dist/ui/assets/{run-DLsP-0lq.js → run-BQ9HnxuZ.js} +1 -1
  106. package/dist/ui/assets/{run-BG58gE0v.js → run-BTy1lN10.js} +2 -2
  107. package/dist/ui/assets/{run-b5wNaXoy.js → run-C5EU0z0t.js} +1 -1
  108. package/dist/ui/assets/{run-CrySk672.js → run-CYXAZSqv.js} +2 -2
  109. package/dist/ui/assets/{run-Gue_kIPE.js → run-qKtH39R0.js} +8 -7
  110. package/dist/ui/assets/{session-command-memory-BPIfyZMe.js → session-command-memory-Bd4fBxop.js} +2 -2
  111. package/dist/ui/assets/{session-jsonl-DC0przLd.js → session-jsonl-BgfNc5-K.js} +1 -1
  112. package/dist/ui/assets/{session-jsonl-Cxda94qB.js → session-jsonl-BoKaLBjt.js} +1 -1
  113. package/dist/ui/assets/{session-search-index-CEyiMR4z.js → session-search-index-DR3LjlVj.js} +1 -1
  114. package/dist/ui/assets/{setup-feature-flags-remote-CAMyvmIv.js → setup-feature-flags-remote-De-0v4XT.js} +1 -1
  115. package/dist/ui/assets/{setup-model-catalog-nGrUbfNi.js → setup-model-catalog-B6luXfNv.js} +1 -1
  116. package/dist/ui/assets/{signed-fetch-BEGZCYqx.js → signed-fetch-CO-Bnl47.js} +1 -1
  117. package/dist/ui/assets/{silent-renew-backoff-C4Rqfsye.js → silent-renew-backoff-BH-9_m4E.js} +1 -1
  118. package/dist/ui/assets/slicc-version-DEtAf6Eq.js +1 -0
  119. package/dist/ui/assets/{snapshot-BdGz92tf.js → snapshot-C1F-yOO0.js} +1 -1
  120. package/dist/ui/assets/{snapshot-features-p_X3SG7L.js → snapshot-features-CExRojJx.js} +1 -1
  121. package/dist/ui/assets/{soundscape-ClBgC3To.js → soundscape-BOv4ciPN.js} +1 -1
  122. package/dist/ui/assets/{speak-BjsAbkrC.js → speak-CGde-S7y.js} +1 -1
  123. package/dist/ui/assets/{sprinkle-manager-D4Ulyvja.js → sprinkle-manager-Bd6_RBxS.js} +1 -1
  124. package/dist/ui/assets/{sprinkle-renderer-C9DF3FJv.js → sprinkle-renderer-D7GUEjZL.js} +1 -1
  125. package/dist/ui/assets/{ssh-Bs6hnIoe.js → ssh-CO09HVge.js} +1 -1
  126. package/dist/ui/assets/{state-BwzBgXWm.js → state-CPqokSG7.js} +1 -1
  127. package/dist/ui/assets/{store-DEUFR3Ei.js → store-BaNNo1We.js} +1 -1
  128. package/dist/ui/assets/{store-D5JwUJQV.js → store-Bu_WlNqx.js} +1 -1
  129. package/dist/ui/assets/sudo-4tXqhxkX.js +5 -0
  130. package/dist/ui/assets/{sudo-fs-CGjo9awW.js → sudo-fs-mI-V4QkM.js} +1 -1
  131. package/dist/ui/assets/{supervisor-D9goiiYr.js → supervisor-CKUGA1zo.js} +1 -1
  132. package/dist/ui/assets/{sync-dialog-BWpzJbtP.js → sync-dialog-lNuhtsLb.js} +1 -1
  133. package/dist/ui/assets/sync-exec-dispatch-DvIKQEFv.js +1 -0
  134. package/dist/ui/assets/{sync-sab-responder-Bfd9S0pw.js → sync-sab-responder-CKgRMoHC.js} +1 -1
  135. package/dist/ui/assets/{telemetry-CKoAhRMv.js → telemetry-B0sKnLBU.js} +2 -2
  136. package/dist/ui/assets/{transformers-env-5YP8lO1Y.js → transformers-env-SiVQM-3h.js} +1 -1
  137. package/dist/ui/assets/{tray-leader-DBekFKtV.js → tray-leader-DGzx35nP.js} +1 -1
  138. package/dist/ui/assets/{tray-leave-runtime-XU5GNEL4.js → tray-leave-runtime-B1q8KWLf.js} +1 -1
  139. package/dist/ui/assets/{tray-sidecar-D9mLvrWu.js → tray-sidecar-BWndOel0.js} +1 -1
  140. package/dist/ui/assets/types-DSxCdZw6.js +1 -0
  141. package/dist/ui/assets/types-Dj5TU-Qg.js +1 -0
  142. package/dist/ui/assets/types-JfhqX7lD.js +1 -0
  143. package/dist/ui/assets/{upgrade-detection-D9bMYnZE.js → upgrade-detection-DQSTN2sW.js} +1 -1
  144. package/dist/ui/assets/{upskill-lick-skip-DK2aB9YG.js → upskill-lick-skip-DlilF4rc.js} +1 -1
  145. package/dist/ui/assets/{voice-reply-DzLNXqvk.js → voice-reply-CP7WG1rY.js} +1 -1
  146. package/dist/ui/assets/{wc-attach-DtSHOZy3.js → wc-attach-CAnoEIAv.js} +2 -2
  147. package/dist/ui/assets/{wc-browser-Qt4xcbCv.js → wc-browser-CNHm9mOO.js} +1 -1
  148. package/dist/ui/assets/{wc-computers-3ANjZGmC.js → wc-computers-BBq_pLL5.js} +1 -1
  149. package/dist/ui/assets/{wc-detached-Cj7Q39TM.js → wc-detached-CLtrY4dJ.js} +1 -1
  150. package/dist/ui/assets/{wc-extension--4MnugYi.js → wc-extension-DAUjLmyi.js} +2 -2
  151. package/dist/ui/assets/{wc-follower-oauth-CbAR50KX.js → wc-follower-oauth-DJaH6NcY.js} +1 -1
  152. package/dist/ui/assets/{wc-follower-C-wJMGT-.js → wc-follower-rlyd2qoE.js} +3 -3
  153. package/dist/ui/assets/{wc-gelatiere-BTNvLUaJ.js → wc-gelatiere-DBjNosRS.js} +1 -1
  154. package/dist/ui/assets/wc-live-Bv8ygCb1.js +433 -0
  155. package/dist/ui/assets/{wc-nav-xZY0Kn73.js → wc-nav-CEYJqyOP.js} +2 -2
  156. package/dist/ui/assets/{wc-onboarding-CM5CNuAu.js → wc-onboarding-DiVhjaWE.js} +2 -2
  157. package/dist/ui/assets/{wc-permissions-B5BHyVex.js → wc-permissions-BDEnxsRc.js} +2 -2
  158. package/dist/ui/assets/{wc-placeholder-D8_CQqxQ.js → wc-placeholder-BwtwD-4U.js} +3 -3
  159. package/dist/ui/assets/{wc-secret-request-BIEPNN_s.js → wc-secret-request-BqsFJf8J.js} +1 -1
  160. package/dist/ui/assets/{wc-settings--27TP4-c.js → wc-settings-DHJ5-fBJ.js} +3 -3
  161. package/dist/ui/assets/{wc-shell-DNXWncTn.js → wc-shell-C_FnQT_B.js} +3 -3
  162. package/dist/ui/assets/{wc-shortcut-config-Bibkh7Yf.js → wc-shortcut-config-yKU5tM0c.js} +1 -1
  163. package/dist/ui/assets/{wc-sprinkles-DX_H2km2.js → wc-sprinkles-D1qkDv5r.js} +2 -2
  164. package/dist/ui/assets/{wc-transcript-export--kF-Vxt_.js → wc-transcript-export-DRvYtZAz.js} +2 -2
  165. package/dist/ui/assets/wc-tray-Dg5lvLPA.js +5 -0
  166. package/dist/ui/assets/welcome-detection-CYN-rZLL.js +1 -0
  167. package/dist/ui/assets/{whisper-session-3XJkKghL.js → whisper-session-B7DGbMeT.js} +2 -2
  168. package/dist/ui/assets/{xai-grok-B42huSYK.js → xai-grok-BMGn7sDb.js} +1 -1
  169. package/dist/ui/assets/{xai-grok-Bjy2zwFV.js → xai-grok-BknauR83.js} +1 -1
  170. package/dist/ui/index.html +4 -4
  171. package/dist/ui/packages/webapp/index.html +4 -4
  172. package/package.json +1 -1
  173. package/dist/ui/assets/approval-decision-CS9Wwm5B.js +0 -1
  174. package/dist/ui/assets/approval-timeout-BQ29Z0gf.js +0 -1
  175. package/dist/ui/assets/directed-approval-BfoHF_26.js +0 -1
  176. package/dist/ui/assets/emscripten-vfs-hook-DgdMcqyP.js +0 -1
  177. package/dist/ui/assets/extension-ops-i_xfuHy5.js +0 -1
  178. package/dist/ui/assets/live-vfs-fs-DWvmF4OR.js +0 -1
  179. package/dist/ui/assets/main-CrQ4lqof.js +0 -22
  180. package/dist/ui/assets/new-session-CSVzNHeE.js +0 -2
  181. package/dist/ui/assets/page-approval-service-C8ldGtOt.js +0 -1
  182. package/dist/ui/assets/panel-rpc-handlers-D6__UWuk.js +0 -2
  183. package/dist/ui/assets/process-worker-DTdozhx3.js +0 -3
  184. package/dist/ui/assets/provider-store-access-DE9qdrpb.js +0 -1
  185. package/dist/ui/assets/provider-store-access-DOArIKIU.js +0 -1
  186. package/dist/ui/assets/py-live-vfs-CjvQr88H.js +0 -180
  187. package/dist/ui/assets/realm-sync-transport-Bxw8OlvF.js +0 -1
  188. package/dist/ui/assets/slicc-version-Cl3RUQFw.js +0 -1
  189. package/dist/ui/assets/sudo-XWnflknm.js +0 -5
  190. package/dist/ui/assets/sync-exec-dispatch-BwrIjhDd.js +0 -1
  191. package/dist/ui/assets/types-BfwydWt7.js +0 -1
  192. package/dist/ui/assets/wc-live-Bt0oy5Ed.js +0 -433
  193. package/dist/ui/assets/wc-tray-BnsH1nNt.js +0 -5
  194. package/dist/ui/assets/welcome-detection-EPHOljaE.js +0 -1
@@ -1,180 +0,0 @@
1
- const e={EACCES:2,EBADF:8,EBUSY:10,EEXIST:20,EINVAL:28,EIO:29,EISDIR:31,ELOOP:32,ENAMETOOLONG:37,ENOENT:44,ENOSPC:51,ENOSYS:52,ENOTDIR:54,ENOTEMPTY:55,EPERM:63,EROFS:69,ETIMEDOUT:73,EXDEV:75},t=4095;function n(t,n){if(n?.errno!==void 0&&n instanceof t.ErrnoError)return n;let r=n?.code,i=typeof r==`string`?e[r]??29:29;return new t.ErrnoError(i)}function r(e){let t=[],n=e;for(;n!==n.mount.root;)t.push(n.name),n=n.parent;let r=e.mount.opts.root.replace(/\/+$/,``);return t.length===0?r||`/`:`${r}/${t.reverse().join(`/`)}`}function i(e){let n=e.isSymbolicLink?40960:e.isDirectory?16384:32768,r=e.isDirectory||e.isSymbolicLink?511:438;return n|((e.mode??r)&t||r)}function a(e){if(e!=null)return e instanceof Date?e.getTime():e}function o(t,a){let o=e=>e.mount.opts.bridge;function s(e){try{return e()}catch(e){throw n(t,e)}}function c(t){try{s(t)}catch(t){if(t.errno!==e.ENOSYS)throw t}}function l(e){return{...e?{stat:e}:{},len:0,loaded:!1,dirty:!1,openCount:0}}function u(e,n,r){let o=t.createNode(e,n,i(r),0);return o.node_ops=a.node,o.stream_ops=a.stream,o.live=l(r),o}function d(e){if(e.live.orphan)return{...e.live.stat,size:e.live.len};if(!e.live.stat){let t=s(()=>o(e).lstat(r(e)));e.live.stat=t,e.mode=i(t)}return e.live.stat}function f(e,t){let n=r(e);return n===`/`?`/${t}`:`${n}/${t}`}function p(e){let t=e.live;if(t.loaded)return;let n=s(()=>o(e).readFile(r(e)));t.data=n,t.len=n.length,t.loaded=!0}function m(e,t){let n=e.live,r=n.data??new Uint8Array;if(r.length>=t)return r;let i=new Uint8Array(Math.max(t,r.length*2,256));return i.set(r.subarray(0,n.len)),n.data=i,i}function h(e){let t=e.live;if(!t.dirty||!t.data||t.orphan)return;let n=t.data.slice(0,t.len);s(()=>o(e).writeFile(r(e),n)),t.dirty=!1,t.stat=void 0}function g(e,t){let n=e.live;if(n.openCount>0){t>0?p(e):n.loaded=!0;let r=m(e,t);t>n.len&&r.fill(0,n.len,t),n.len=t,n.dirty=!0;return}let i=r(e),a=new Uint8Array(t);if(t>0){let n=s(()=>o(e).readFile(i));a.set(n.subarray(0,Math.min(t,n.length)))}s(()=>o(e).writeFile(i,a)),n.stat=void 0}return{Fs:t,bridgeOf:o,call:s,metadataCall:c,makeNode:u,statOf:d,childPath:f,ensureLoaded:p,ensureCapacity:m,flushNode:h,truncate:g}}function s(n){let{Fs:i,bridgeOf:o,call:s,metadataCall:c,makeNode:l,statOf:u,childPath:d,flushNode:f,truncate:p}=n,{ensureLoaded:m}=n;return{getattr(e){let t=u(e),n=e.live,r=i.isDir(e.mode)?4096:n.loaded?n.len:t.size,a=new Date(t.mtimeMs??0);return{dev:1,ino:e.id,mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:r,atime:a,mtime:a,ctime:a,blksize:4096,blocks:Math.ceil(r/4096)}},setattr(e,n){if(e.live.orphan){n.mode!==void 0&&n.mode!==null&&(e.mode=e.mode&-4096|n.mode&t),n.size!==void 0&&n.size!==null&&p(e,n.size);return}let s=r(e);if(n.mode!==void 0&&n.mode!==null){let r=n.mode&t;r!==(e.mode&t)&&(c(()=>o(e).chmod(s,r)),e.mode=e.mode&-4096|r)}n.size!==void 0&&n.size!==null&&i.isFile(e.mode)&&p(e,n.size);let l=a(n.mtime)??n.timestamp;if(l!==void 0){let t=a(n.atime)??l;f(e),c(()=>o(e).utimes(s,t,l))}e.live.stat=void 0},lookup(e,t){let n=s(()=>o(e).lstat(d(e,t)));return l(e,t,n)},mknod(t,n,r){let a=d(t,n);if(i.isDir(r))s(()=>o(t).mkdir(a));else if(i.isFile(r))s(()=>o(t).writeFile(a,new Uint8Array));else throw new i.ErrnoError(e.EPERM);let c=l(t,n,{isFile:i.isFile(r),isDirectory:i.isDir(r),isSymbolicLink:!1,size:0,mode:r,mtimeMs:Date.now()});return c.live.stat=void 0,c},rename(e,t,n){let a=r(e),c=d(t,n);f(e),s(()=>o(e).rename(a,c));try{let r=i.lookupNode?.(t,n);r&&r!==e&&i.hashRemoveNode?.(r)}catch{}e.name=n,e.live.stat=void 0},unlink(e,t){let n;try{let r=i.lookupNode?.(e,t);r&&r.live?.openCount>0&&i.isFile(r.mode)&&(n=r)}catch{}n&&(u(n),m(n)),s(()=>o(e).unlink(d(e,t))),n&&(n.live.orphan=!0)},rmdir(e,t){s(()=>o(e).rmdir(d(e,t)))},readdir(e){return[`.`,`..`,...s(()=>o(e).readdir(r(e)))]},symlink(e,t,n){let r=d(e,t);return s(()=>o(e).symlink(n,r)),l(e,t,{isFile:!1,isDirectory:!1,isSymbolicLink:!0,size:n.length})},readlink(t){if(!i.isLink(t.mode))throw new i.ErrnoError(e.EINVAL);return s(()=>o(t).readlink(r(t)))}}}function c(t){let{Fs:n,statOf:r,ensureLoaded:i,ensureCapacity:a,flushNode:o}=t;return{open(e){n.isFile(e.node.mode)&&e.node.live.openCount++},dup(e){n.isFile(e.node.mode)&&e.node.live.openCount++},close(e){let t=e.node;if(!n.isFile(t.mode))return;let r=t.live;if(r.openCount=Math.max(0,r.openCount-1),!(r.openCount>0))try{o(t)}finally{r.data=void 0,r.len=0,r.loaded=!1}},read(t,r,a,o,s){let c=t.node;if(n.isDir(c.mode))throw new n.ErrnoError(e.EISDIR);i(c);let l=c.live;if(s>=l.len||o<=0)return 0;let u=Math.min(o,l.len-s);return new Uint8Array(r.buffer,r.byteOffset+a,u).set(l.data.subarray(s,s+u)),u},write(t,r,o,s,c){let l=t.node;if(n.isDir(l.mode))throw new n.ErrnoError(e.EISDIR);if(s<=0)return 0;i(l);let u=l.live,d=c+s,f=a(l,d);return c>u.len&&f.fill(0,u.len,c),f.set(new Uint8Array(r.buffer,r.byteOffset+o,s),c),u.len=Math.max(u.len,d),u.dirty=!0,s},llseek(t,i,a){let o=i;if(a===1)o+=t.position;else if(a===2&&n.isFile(t.node.mode)){let e=t.node.live;o+=e.loaded?e.len:r(t.node).size}if(o<0)throw new n.ErrnoError(e.EINVAL);return o},fsync(e){o(e.node)}}}function l(t){let n=new Set,r={},i=o(t,r),a=s(i),l=c(i);return r.node=a,r.stream=l,{mounts:n,node_ops:a,stream_ops:l,mount(r){let a=i.call(()=>r.opts.bridge.stat(r.opts.root));if(!a.isDirectory)throw new t.ErrnoError(e.ENOTDIR);let o=i.makeNode(null,`/`,a);return n.add(r),o}}}function u(e,t){return!!t&&e.mounts.has(t.mount)}function d(e,t){for(let i of e.nameTable??[])for(let a=i;a;a=a.name_next??null)if(!(!u(t,a)||!a.live.dirty||!a.live.data))try{let e=a.live.data.slice(0,a.live.len);a.mount.opts.bridge.writeFile(r(a),e),a.live.dirty=!1}catch(t){throw n(e,t)}}function f(e,t){let n=e.nameTable??[],r=[];for(let e of n)for(let n=e;n;n=n.name_next??null){if(!u(t,n))continue;let e=n.live;e.stat=void 0,e.openCount===0?n!==n.mount.root&&r.push(n):e.loaded&&!e.dirty&&(e.data=void 0,e.len=0,e.loaded=!1)}if(e.hashRemoveNode)for(let t of r)e.hashRemoveNode(t)}function p(e){let t=[...new Set(e.map(e=>e.replace(/\/+$/,``)||`/`))].sort();return t.filter(e=>!t.some(t=>t!==e&&(t===`/`||e.startsWith(`${t}/`))))}function m(e){if(e instanceof Error)return e.message;let t=e?.errno;return typeof t==`number`?`errno ${t}`:String(e)}function h(e,t,n,r){let i=e.filesystems.SLICC_LIVE_FS??l(e);e.filesystems.SLICC_LIVE_FS=i;let a=[];for(let o of p(n))if(o!==`/`)try{e.mkdirTree(o),e.mount(i,{root:o,bridge:t},o),a.push(o)}catch(e){r(`live VFS mount of ${o} failed: ${m(e)}`)}return{plugin:i,mounted:a}}function g(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function _(e){let t;try{t=JSON.parse(e)}catch{return null}if(!t||!(typeof t.command==`string`||g(t.command)))return null;let n=t.env&&typeof t.env==`object`&&!Array.isArray(t.env)?Object.fromEntries(Object.entries(t.env).filter(e=>typeof e[1]==`string`)):void 0;return{command:t.command,...typeof t.cwd==`string`?{cwd:t.cwd}:{},...n?{env:n}:{},...typeof t.input==`string`?{input:t.input}:{},...typeof t.timeoutMs==`number`?{timeoutMs:t.timeoutMs}:{}}}function v(e){return{run(t){let n=_(t);if(!n)return JSON.stringify({error:`EINVAL`,message:`malformed request`});let r;e.beforeExec();try{r=e.exec.run(n.command,{...n.input===void 0?{}:{input:n.input},...n.cwd===void 0?{}:{cwd:n.cwd},...n.env===void 0?{}:{env:n.env},...n.timeoutMs===void 0?{}:{timeout:n.timeoutMs}})}catch(e){let t=e?.code;r={error:typeof t==`string`?t:`EIO`,message:e instanceof Error?e.message:String(e)}}finally{e.afterExec()}return JSON.stringify(r)}}}const y=String.raw`
2
- def __slicc_install_subprocess():
3
- import errno, io, itertools, json, os, subprocess, sys
4
- import _slicc_proc
5
-
6
- PIPE, STDOUT, DEVNULL = subprocess.PIPE, subprocess.STDOUT, subprocess.DEVNULL
7
- pids = itertools.count(1000)
8
-
9
- def to_str(a):
10
- a = os.fspath(a)
11
- return a.decode('utf-8', 'surrogateescape') if isinstance(a, bytes) else a
12
-
13
- class _StdinPipe(io.BytesIO):
14
- def __init__(self, proc):
15
- super().__init__()
16
- self._proc = proc
17
- def close(self):
18
- if not self.closed:
19
- data = self.getvalue()
20
- super().close()
21
- self._proc._start(data)
22
-
23
- class SliccPopen:
24
- def __init__(self, args, bufsize=-1, executable=None, stdin=None, stdout=None,
25
- stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None,
26
- env=None, universal_newlines=None, startupinfo=None, creationflags=0,
27
- restore_signals=True, start_new_session=False, pass_fds=(), *,
28
- user=None, group=None, extra_groups=None, encoding=None, errors=None,
29
- text=None, umask=-1, pipesize=-1, process_group=None):
30
- self.args = args
31
- self.pid = next(pids)
32
- self.returncode = None
33
- self.text_mode = bool(text or universal_newlines or encoding or errors)
34
- self._encoding = encoding or 'utf-8'
35
- self._errors = errors or 'strict'
36
- if shell:
37
- command = to_str(args if isinstance(args, (str, bytes)) else args[0])
38
- else:
39
- argv = [args] if isinstance(args, (str, bytes, os.PathLike)) else list(args)
40
- command = [to_str(a) for a in argv]
41
- if executable is not None:
42
- command[0] = to_str(executable)
43
- self._shell = bool(shell)
44
- self._command = command
45
- self._cwd = to_str(cwd) if cwd is not None else os.getcwd()
46
- self._env = {to_str(k): to_str(v) for k, v in (os.environ if env is None else env).items()}
47
- self._stdout_to, self._stderr_to = stdout, stderr
48
- self.stdout = self.stderr = None
49
- self._out = self._err = b''
50
- self.stdin = None
51
- if stdin == PIPE:
52
- self.stdin = _StdinPipe(self)
53
- if self.text_mode:
54
- self.stdin = io.TextIOWrapper(self.stdin, encoding=self._encoding,
55
- errors=self._errors, write_through=True)
56
- return
57
- data = None
58
- if stdin not in (None, DEVNULL):
59
- data = os.read(stdin, 1 << 30) if isinstance(stdin, int) else stdin.read()
60
- if isinstance(data, str):
61
- data = data.encode(self._encoding, self._errors)
62
- self._start(data)
63
-
64
- def _start(self, data, timeout=None):
65
- if self.returncode is not None:
66
- return
67
- req = {'command': self._command, 'cwd': self._cwd, 'env': self._env}
68
- if data:
69
- req['input'] = data.decode('utf-8', 'surrogateescape')
70
- if timeout is not None:
71
- req['timeoutMs'] = int(timeout * 1000)
72
- reply = json.loads(_slicc_proc.run(json.dumps(req)))
73
- if 'error' in reply:
74
- code = getattr(errno, reply['error'], errno.EIO)
75
- raise OSError(code, reply.get('message') or os.strerror(code))
76
- out = reply['stdout'].encode('utf-8', 'surrogateescape')
77
- err = reply['stderr'].encode('utf-8', 'surrogateescape')
78
- code = reply['exitCode']
79
- if (not self._shell and code == 127 and b'command not found' in err):
80
- raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), self._command[0])
81
- if self._stderr_to == STDOUT:
82
- out, err = out + err, b''
83
- self._out = self._route(out, self._stdout_to, sys.stdout)
84
- self._err = self._route(err, self._stderr_to, sys.stderr)
85
- if self._stdout_to == PIPE:
86
- self.stdout = self._pipe(self._out)
87
- if self._stderr_to == PIPE:
88
- self.stderr = self._pipe(self._err)
89
- self.returncode = code
90
-
91
- def _route(self, data, target, inherit):
92
- if target == PIPE:
93
- return data
94
- if target is None:
95
- if data:
96
- inherit.write(data.decode('utf-8', 'replace'))
97
- inherit.flush()
98
- elif target not in (DEVNULL, STDOUT):
99
- if isinstance(target, int):
100
- os.write(target, data)
101
- elif isinstance(target, io.TextIOBase):
102
- target.write(data.decode('utf-8', 'replace'))
103
- else:
104
- target.write(data)
105
- return b''
106
-
107
- def _pipe(self, data):
108
- if self.text_mode:
109
- return io.StringIO(data.decode(self._encoding, self._errors))
110
- return io.BytesIO(data)
111
-
112
- def communicate(self, input=None, timeout=None):
113
- if self.returncode is None:
114
- if isinstance(input, str):
115
- input = input.encode(self._encoding, self._errors)
116
- if self.stdin is not None and not self.stdin.closed:
117
- raw = self.stdin.buffer if isinstance(self.stdin, io.TextIOWrapper) else self.stdin
118
- if input:
119
- raw.write(input)
120
- input = raw.getvalue()
121
- io.BytesIO.close(raw)
122
- self._start(input, timeout)
123
- out = self.stdout.read() if self.stdout is not None else None
124
- err = self.stderr.read() if self.stderr is not None else None
125
- return out, err
126
-
127
- def wait(self, timeout=None):
128
- if self.returncode is None:
129
- self.communicate(timeout=timeout)
130
- return self.returncode
131
-
132
- def poll(self):
133
- # Never starts work, like CPython: a child still waiting for its
134
- # stdin=PIPE input has not run yet, so it is "still running".
135
- # A started child always ran to completion.
136
- return self.returncode
137
-
138
- def send_signal(self, sig):
139
- pass
140
-
141
- def terminate(self):
142
- pass
143
-
144
- def kill(self):
145
- pass
146
-
147
- def __enter__(self):
148
- return self
149
-
150
- def __exit__(self, *exc):
151
- for f in (self.stdout, self.stderr, self.stdin):
152
- if f is not None and not f.closed:
153
- f.close()
154
- self.wait()
155
-
156
- def __repr__(self):
157
- return f'<SliccPopen: returncode: {self.returncode} args: {self.args!r}>'
158
-
159
- def system(command):
160
- code = SliccPopen(command, shell=True).wait()
161
- return (code & 0xff) << 8
162
-
163
- def execute(file, args, env=None):
164
- argv = [to_str(a) for a in args]
165
- if not argv:
166
- raise ValueError('exec: argv must not be empty')
167
- sys.stdout.flush()
168
- sys.stderr.flush()
169
- # Never returns, like a real exec: SystemExit skips except Exception.
170
- raise SystemExit(SliccPopen([to_str(file)] + argv[1:], env=env).wait())
171
-
172
- subprocess.Popen = SliccPopen
173
- os.system = system
174
- # os.execl* call these through the os module, so they follow.
175
- os.execv = os.execvp = lambda file, args: execute(file, args)
176
- os.execve = os.execvpe = lambda file, args, env: execute(file, args, env)
177
-
178
- __slicc_install_subprocess()
179
- del __slicc_install_subprocess
180
- `;function b(e,t){e.registerJsModule(`_slicc_proc`,v(t)),e.runPython(y)}const x=`exec`,S=6e5,C=5e3;function w(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function T(e){let t=D(e);if(O(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw w(`EIO`,e.label);k(t,e.label)}function E(e){let t=T(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw w(`EIO`,e.label)}}function D(e){let t=new XMLHttpRequest;try{t.open(e.method,e.url,!1),t.responseType=`arraybuffer`,t.timeout=e.timeoutMs,t.setRequestHeader(`x-slicc-fs-token`,e.token),e.body?t.send(new Uint8Array(e.body)):t.send()}catch{throw w(`EIO`,e.label)}return t}function O(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function k(e,t){throw w(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function A(e){let t=e;return!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`?null:{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size,...typeof t.mode==`number`?{mode:t.mode}:{},...typeof t.mtimeMs==`number`?{mtimeMs:t.mtimeMs}:{}}}function j(e,t){return w(e,`sync-fs bridge, '${t}'`)}function M(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function N(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:M(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return T(r(`GET`,e))},writeFile(e,t){T(r(`POST`,e,t))},stat(e){let t=A(E(r(`GET`,e,void 0,`stat`)));if(!t)throw j(`EIO`,e);return t},lstat(e){let t=A(E(r(`GET`,e,void 0,`lstat`)));if(!t)throw j(`EIO`,e);return t},readdir(e){let t=E(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw j(`EIO`,e);return t},exists(e){let t=E(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw j(`EIO`,e);return t},mkdir(e){T(r(`POST`,e,void 0,`mkdir`))},rm(e){T(r(`POST`,e,void 0,`rm`))},rename(e,t){T(r(`POST`,e,P({arg2:t}),`rename`))},unlink(e){T(r(`POST`,e,P({}),`unlink`))},rmdir(e){T(r(`POST`,e,P({}),`rmdir`))},symlink(e,t){T(r(`POST`,t,P({arg2:e}),`symlink`))},readlink(e){let t=E(r(`GET`,e,void 0,`readlink`));if(typeof t!=`string`)throw j(`EIO`,e);return t},chmod(e,t){T(r(`POST`,e,P({mode:t}),`chmod`))},utimes(e,t,n){T(r(`POST`,e,P({atimeMs:t,mtimeMs:n}),`utimes`))}}}function P(e){return new TextEncoder().encode(JSON.stringify(e))}function F(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function I(e){return e===void 0||e===0}function L(e,t){return F(e)?Math.min(e,S):Math.min(t,S)}new TextEncoder;const R=new TextDecoder;function z(e,t){switch(e){case 1:return{ok:!0,kind:`bytes`,bytes:t};case 3:return{ok:!0,kind:`void`};case 2:try{return{ok:!0,kind:`json`,json:JSON.parse(R.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(R.decode(t)),n=typeof e.errno==`string`&&/^E[A-Z]+$/.test(e.errno)?e.errno:`EIO`;return{ok:!1,errno:n,message:String(e.message??n)}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed errno payload`}}default:return{ok:!1,errno:`EIO`,message:`sync-sab: unknown status ${e}`}}}function B(e){if(e.byteLength<4160)throw Error(`sync-sab: buffer too small (${e.byteLength} < 4160)`);return{header:new Int32Array(e,0,16),window:new Uint8Array(e,64)}}function V(e,t,n={}){let{header:r,window:i}=B(e),a=n.wait??((e,t,n,r)=>Atomics.wait(e,t,n,r)),o=n.now??(()=>performance.now()),s=0;function c(e,t,n){for(;;){let i=t-o();if(i<=0)throw w(`ETIMEDOUT`,n);if(a(r,0,1,i),Atomics.load(r,0)===2&&Atomics.load(r,1)===e)return;Atomics.load(r,0)===2&&Atomics.store(r,0,1)}}return{call(e,n,a){let l=++s,u=o()+n,d=null,f=0,p=0;try{for(;;){Atomics.store(r,0,1);let n=p===0?{type:`sync-sab-req`,id:l,req:e}:{type:`sync-sab-next`,id:l,offset:p};try{t.postMessage(n)}catch{throw w(`EIO`,a)}c(l,u,a);let o=Atomics.load(r,3),s=Atomics.load(r,4);if(Atomics.load(r,5)!==p||s<0||o<0||p+s>o)throw w(`EIO`,a);if(d===null&&(f=Atomics.load(r,2),d=new Uint8Array(o)),d.set(i.subarray(0,s),p),p+=s,p>=o)break;if(s===0)throw w(`EIO`,a)}}finally{Atomics.store(r,0,0)}return z(f,d)}}}function H(e,t){return w(e,`sync-sab bridge, '${t}'`)}function U(e,t={}){let n=t.timeoutMs??25e3;function r(t,r){let i=e.call(t,n,`sync-sab bridge, '${r}'`);if(!i.ok)throw H(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw H(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw H(`EIO`,t)}return{readFile:e=>i({op:`read`,path:e},e),writeFile:(e,t)=>{r({op:`write`,path:e,body:t},e)},stat:e=>{let t=A(a({op:`stat`,path:e},e));if(!t)throw H(`EIO`,e);return t},lstat:e=>{let t=A(a({op:`lstat`,path:e},e));if(!t)throw H(`EIO`,e);return t},readdir:e=>{let t=a({op:`readdir`,path:e},e);if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw H(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw H(`EIO`,e);return t},mkdir:e=>{r({op:`mkdir`,path:e},e)},rm:e=>{r({op:`rm`,path:e},e)},rename:(e,t)=>{r({op:`rename`,path:e,arg2:t},e)},unlink:e=>{r({op:`unlink`,path:e},e)},rmdir:e=>{r({op:`rmdir`,path:e},e)},symlink:(e,t)=>{r({op:`symlink`,path:t,arg2:e},t)},readlink:e=>{let t=a({op:`readlink`,path:e},e);if(typeof t!=`string`)throw H(`EIO`,e);return t},chmod:(e,t)=>{r({op:`chmod`,path:e,mode:t},e)},utimes:(e,t,n)=>{r({op:`utimes`,path:e,atimeMs:t,mtimeMs:n},e)}}}function W(e){return(t,n,r)=>{let i=e.call({...t,channel:x},n+C,r);if(!i.ok)throw w(i.errno,r);let a=i.kind===`json`?i.json:null;if(!a||typeof a.stdout!=`string`||typeof a.stderr!=`string`||typeof a.exitCode!=`number`)throw w(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}function G(e,t){if(!(!e.syncSab||!K()))return V(e.syncSab,t)}function K(){return typeof Atomics<`u`&&typeof Atomics.wait==`function`}function q(e,t){return t?U(t):e.syncFsToken?N(e.syncFsToken):void 0}function J(e){return(t,n,r)=>{let i=E({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:x})),timeoutMs:n+C,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw w(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function Y(e,t){let n=e.getMutations();for(let e of n.deleted)t.rm(e);for(let e of n.created)e.isDirectory?t.mkdir(e.path):t.writeFile(e.path,e.content);for(let e of n.modified)t.writeFile(e.path,e.content);e.resetBaseline()}function X(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??J(e);return{run(e,o={}){let s=r?.wasUsed()===!0&&i!==void 0;s&&Y(r,i);let c=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,l=t.noDefaultDeadline===!0&&I(o.timeout),u=l?1/0:L(o.timeout,n),d={command:e,...o.args===void 0?{}:{args:o.args},...o.input===void 0?{}:{stdin:o.input},...o.cwd===void 0?{}:{cwd:o.cwd},...o.env===void 0?{}:{env:o.env},...l?{}:{timeoutMs:u}};try{return a(d,u,c)}finally{s&&r.invalidate()}}}}function Z(e,t,n,r){if(t.env?.SLICC_PY_FS===`opfs`)return;let i=G(t,n),a=q(t,i);if(!a||!t.syncFsToken)return;let o=e.FS,{plugin:s,mounted:c}=h(o,a,t.pyodideMountDirs??[t.cwd,`/tmp`],r);return c.length===0?void 0:(b(e,{exec:X(t.syncFsToken,{...i?{transport:W(i),noDefaultDeadline:!0}:{}}),beforeExec:()=>d(o,s),afterExec:()=>f(o,s)}),{plugin:s,mounted:c,flush:()=>d(o,s)})}export{Z as mountPyLiveVfs};
@@ -1 +0,0 @@
1
- import{a as e,d as t,s as n,t as r,u as i,v as a,y as o}from"./sync-exec-dispatch-BwrIjhDd.js";import{i as s,n as c,r as l,s as u}from"./sync-sab-wire-D_d0fd3b.js";function d(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function f(e){let t=m(e);if(h(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw d(`EIO`,e.label);g(t,e.label)}function p(e){let t=f(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw d(`EIO`,e.label)}}function m(e){let t=new XMLHttpRequest;try{t.open(e.method,e.url,!1),t.responseType=`arraybuffer`,t.timeout=e.timeoutMs,t.setRequestHeader(o,e.token),e.body?t.send(new Uint8Array(e.body)):t.send()}catch{throw d(`EIO`,e.label)}return t}function h(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function g(e,t){throw d(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function _(e){return(r,a,o)=>{let s=p({method:`POST`,url:i,token:e,body:new TextEncoder().encode(JSON.stringify({...r,channel:n})),timeoutMs:a+t,label:o});if(!s||typeof s.stdout!=`string`||typeof s.stderr!=`string`||typeof s.exitCode!=`number`)throw d(`EIO`,o);return{stdout:s.stdout,stderr:s.stderr,exitCode:s.exitCode}}}function v(e,t){let n=e.getMutations();for(let e of n.deleted)t.rm(e);for(let e of n.created)e.isDirectory?t.mkdir(e.path):t.writeFile(e.path,e.content);for(let e of n.modified)t.writeFile(e.path,e.content);e.resetBaseline()}function y(t,n={}){let i=n.timeoutMs??12e4,{syncFs:a,fsBridge:o}=n,s=n.transport??_(t);return{run(t,c={}){let l=a?.wasUsed()===!0&&o!==void 0;l&&v(a,o);let u=`sync-exec bridge, '${Array.isArray(t)?t.join(` `):t}'`,d=n.noDefaultDeadline===!0&&e(c.timeout),f=d?1/0:r(c.timeout,i),p={command:t,...c.args===void 0?{}:{args:c.args},...c.input===void 0?{}:{stdin:c.input},...c.cwd===void 0?{}:{cwd:c.cwd},...c.env===void 0?{}:{env:c.env},...d?{}:{timeoutMs:f}};try{return s(p,f,u)}finally{l&&a.invalidate()}}}}function b(e){let t=e;return!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`?null:{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size,...typeof t.mode==`number`?{mode:t.mode}:{},...typeof t.mtimeMs==`number`?{mtimeMs:t.mtimeMs}:{}}}function x(e,t){return d(e,`sync-fs bridge, '${t}'`)}function S(e,t){let n=e.startsWith(`/`)?e:`/${e}`,r=a+n.split(`/`).map(encodeURIComponent).join(`/`);return t?`${r}?op=${t}`:r}function C(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:S(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return f(r(`GET`,e))},writeFile(e,t){f(r(`POST`,e,t))},stat(e){let t=b(p(r(`GET`,e,void 0,`stat`)));if(!t)throw x(`EIO`,e);return t},lstat(e){let t=b(p(r(`GET`,e,void 0,`lstat`)));if(!t)throw x(`EIO`,e);return t},readdir(e){let t=p(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw x(`EIO`,e);return t},exists(e){let t=p(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw x(`EIO`,e);return t},mkdir(e){f(r(`POST`,e,void 0,`mkdir`))},rm(e){f(r(`POST`,e,void 0,`rm`))},rename(e,t){f(r(`POST`,e,w({arg2:t}),`rename`))},unlink(e){f(r(`POST`,e,w({}),`unlink`))},rmdir(e){f(r(`POST`,e,w({}),`rmdir`))},symlink(e,t){f(r(`POST`,t,w({arg2:e}),`symlink`))},readlink(e){let t=p(r(`GET`,e,void 0,`readlink`));if(typeof t!=`string`)throw x(`EIO`,e);return t},chmod(e,t){f(r(`POST`,e,w({mode:t}),`chmod`))},utimes(e,t,n){f(r(`POST`,e,w({atimeMs:t,mtimeMs:n}),`utimes`))}}}function w(e){return new TextEncoder().encode(JSON.stringify(e))}function T(e,t,n={}){let{header:r,window:i}=u(e),a=n.wait??((e,t,n,r)=>Atomics.wait(e,t,n,r)),o=n.now??(()=>performance.now()),f=0;function p(e,t,n){for(;;){let i=t-o();if(i<=0)throw d(`ETIMEDOUT`,n);if(a(r,0,1,i),Atomics.load(r,0)===2&&Atomics.load(r,1)===e)return;Atomics.load(r,0)===2&&Atomics.store(r,0,1)}}return{call(e,n,a){let u=++f,m=o()+n,h=null,g=0,_=0;try{for(;;){Atomics.store(r,0,1);let n=_===0?{type:l,id:u,req:e}:{type:c,id:u,offset:_};try{t.postMessage(n)}catch{throw d(`EIO`,a)}p(u,m,a);let o=Atomics.load(r,3),s=Atomics.load(r,4);if(Atomics.load(r,5)!==_||s<0||o<0||_+s>o)throw d(`EIO`,a);if(h===null&&(g=Atomics.load(r,2),h=new Uint8Array(o)),h.set(i.subarray(0,s),_),_+=s,_>=o)break;if(s===0)throw d(`EIO`,a)}}finally{Atomics.store(r,0,0)}return s(g,h)}}}function E(e,t){return d(e,`sync-sab bridge, '${t}'`)}function D(e,t={}){let n=t.timeoutMs??25e3;function r(t,r){let i=e.call(t,n,`sync-sab bridge, '${r}'`);if(!i.ok)throw E(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw E(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw E(`EIO`,t)}return{readFile:e=>i({op:`read`,path:e},e),writeFile:(e,t)=>{r({op:`write`,path:e,body:t},e)},stat:e=>{let t=b(a({op:`stat`,path:e},e));if(!t)throw E(`EIO`,e);return t},lstat:e=>{let t=b(a({op:`lstat`,path:e},e));if(!t)throw E(`EIO`,e);return t},readdir:e=>{let t=a({op:`readdir`,path:e},e);if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw E(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw E(`EIO`,e);return t},mkdir:e=>{r({op:`mkdir`,path:e},e)},rm:e=>{r({op:`rm`,path:e},e)},rename:(e,t)=>{r({op:`rename`,path:e,arg2:t},e)},unlink:e=>{r({op:`unlink`,path:e},e)},rmdir:e=>{r({op:`rmdir`,path:e},e)},symlink:(e,t)=>{r({op:`symlink`,path:t,arg2:e},t)},readlink:e=>{let t=a({op:`readlink`,path:e},e);if(typeof t!=`string`)throw E(`EIO`,e);return t},chmod:(e,t)=>{r({op:`chmod`,path:e,mode:t},e)},utimes:(e,t,n)=>{r({op:`utimes`,path:e,atimeMs:t,mtimeMs:n},e)}}}function O(e){return(r,i,a)=>{let o=e.call({...r,channel:n},i+t,a);if(!o.ok)throw d(o.errno,a);let s=o.kind===`json`?o.json:null;if(!s||typeof s.stdout!=`string`||typeof s.stderr!=`string`||typeof s.exitCode!=`number`)throw d(`EIO`,a);return{stdout:s.stdout,stderr:s.stderr,exitCode:s.exitCode}}}function k(e,t){if(!(!e.syncSab||!A()))return T(e.syncSab,t)}function A(){return typeof Atomics<`u`&&typeof Atomics.wait==`function`}function j(e){return!!e.syncFsToken||!!e.syncSab&&A()}function M(e,t){return t?D(t):e.syncFsToken?C(e.syncFsToken):void 0}export{y as a,O as i,M as n,v as o,k as r,j as t};
@@ -1 +0,0 @@
1
- function e(){return{version:`6.217.0`,releasedAt:`2026-09-29T11:25:06Z`,buildId:`6.217.0-mumlaqtt`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
@@ -1,5 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-D3EPRnmw.js","assets/rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./quick-llm-CHkGjtc6.js";import{t as r}from"./approval-decision-CS9Wwm5B.js";import"./capability-BArmeMYf.js";import{t as i}from"./page-approval-service-C8ldGtOt.js";var a=t(`sudo:timeout`);function o(e=`user-timeout`){return{decision:`deny`,reason:e}}function s(e,t={}){let n=t.timeoutMs??3e5;if(!Number.isFinite(n)||n<=0)return e;let r=t.setTimer??((e,t)=>setTimeout(e,t)),i=t.clearTimer??(e=>clearTimeout(e));return{requestApproval(t,s){return new Promise(c=>{let l=new AbortController,u=()=>l.abort();s?.signal?.addEventListener(`abort`,u,{once:!0});let d=!1,f=e=>{d=!0,s?.signal?.removeEventListener(`abort`,u),c(e)},p=r(()=>{d||(a.warn(`sudo approval timed out — failing closed`,{kind:t.kind,detail:t.detail,timeoutMs:n}),l.abort(),f(o(`user-timeout`)))},n),m=e=>{if(d){a.warn(`sudo decision arrived after timeout — discarded`,{kind:t.kind,detail:t.detail,decision:e.decision});return}i(p),f(e)};e.requestApproval(t,{signal:l.signal}).then(m,e=>{a.warn(`sudo broker threw — denying`,{error:e instanceof Error?e.message:String(e)}),m({decision:`deny`})})})}}}var c=t(`sudo-suggest`),l=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
3
- `),u=[`You generalize a single filesystem path into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the meaningful directory prefix and replace the volatile`,`leaf (and below) with "**". Examples:`,` /workspace/.git/config -> /workspace/.git/**`,` /shared/secrets/openai.key -> /shared/secrets/**`,` /workspace/src/app/main.ts -> /workspace/src/**`].join(`
4
- `);async function d(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let r=e.detail.trim(),i=e.kind===`command`?l:u,a=null;try{a=await n({prompt:r,system:i,maxTokens:40,temperature:0,signal:t})}catch(e){c.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),a=null}return f(a)||r}function f(e){if(!e)return null;let t=(e.split(`
5
- `,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}var p=t(`sudo:capability-gesture`);function m(e,t={}){let n=t.suggest??d;return{async requestApproval(t,i){let a=i?.signal,o;if(t.suggestedPattern)o=t.suggestedPattern;else try{o=await n(t,a)}catch{o=t.detail}if(a?.aborted)return p.warn(`sudo approval aborted before prompting — denying`,{detail:t.detail}),{decision:`deny`};if(!e)return p.warn(`no CapabilityBroker injected for the sudo gesture hop — denying (composition bug, never a guessed transport)`,{detail:t.detail}),{decision:`deny`};let s=await e.approvals.request({kind:t.kind,detail:t.detail,suggestedPattern:o,...t.requester?{requester:t.requester}:{},...t.reason?{reason:t.reason}:{},...t.approver?{approver:t.approver}:{},...a?{signal:a}:{}});return s.ok?r(s.value,o):(p.warn(`capability broker approvals.request failed — denying`,{message:s.message}),{decision:`deny`})}}}var h=t(`sudo:tray-first`),g=6e5;function _(t,n={}){let r=n.suggest??d,i=n.timeoutMs??g,a=n.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-D3EPRnmw.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e,n){if(n?.signal?.aborted)return{decision:`deny`};let o=e.suggestedPattern;if(!o)try{o=await r(e,n?.signal)}catch{o=e.detail}let s={...e,suggestedPattern:o},c=null;try{c=await a()}catch(e){h.debug?.(`panel-RPC client lookup threw — using native broker`,{error:e instanceof Error?e.message:String(e)})}if(c)try{let e=await c.call(`sudo-request`,{request:s,mode:`tray-first`},{timeoutMs:i});if(e?.handled!==!1)return v(e?.decision,o)}catch(e){h.warn(`tray-first sudo probe failed — using native broker`,{error:e instanceof Error?e.message:String(e)})}return t.requestApproval(s,n)}}}function v(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e,r=n.attestation===`biometric`||n.attestation===`passcode`||n.attestation===`none`?n.attestation:void 0;return n.decision===`allow`?{decision:`allow`,...r?{attestation:r}:{}}:n.decision===`always`?{decision:`always`,pattern:typeof n.pattern==`string`&&n.pattern.trim().length>0?n.pattern.trim():t,...r?{attestation:r}:{}}:{decision:`deny`}}var y=t(`sudo`),b=`__slicc_sudo`;function x(e){return s(S(e))}function S(e){let t=m(e);return e?.adapter===`extension-direct`||e?.adapter===`extension-delegate`?t:_(t)}function C(e){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[b]=t,y.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{x as createSudoBroker,i as installPanelSudoResponder,C as installSudoTestHook};
@@ -1 +0,0 @@
1
- const e=new Map,t=new Map;function n(t){let n=crypto.randomUUID();return e.set(n,t),n}function r(t){return e.get(t)??null}function i(n,r){if(!e.has(n))return r.abort(),()=>{};let i=t.get(n);return i||(i=new Set,t.set(n,i)),i.add(r),()=>{let e=t.get(n);e&&(e.delete(r),e.size===0&&t.delete(n))}}function a(n){e.delete(n);let r=t.get(n);if(r){t.delete(n);for(let e of r)e.signal.aborted||e.abort()}}function o(e){let t=e instanceof Error?e.message:String(e),n=e?.code;return typeof n==`string`&&/^E[A-Z]+$/.test(n)?{ok:!1,errno:n,message:t}:{ok:!1,errno:`EIO`,message:t}}async function s(e){let t=r(e.token);if(!t)return{ok:!1,errno:`EACCES`,message:`sync-fs: unknown or revoked token`};let{fs:n,cwd:i}=t;try{let t=n.resolvePath(i,e.path);switch(e.op){case`read`:return{ok:!0,kind:`bytes`,bytes:await n.readFileBuffer(t)};case`write`:return await n.writeFile(t,e.body??new Uint8Array),{ok:!0,kind:`void`};case`exists`:return{ok:!0,kind:`json`,json:await n.exists(t)};case`stat`:return{ok:!0,kind:`json`,json:c(await n.stat(t))};case`lstat`:return{ok:!0,kind:`json`,json:c(await n.lstat(t))};case`readdir`:return{ok:!0,kind:`json`,json:await n.readdir(t)};case`mkdir`:return await n.mkdir(t,{recursive:!0}),{ok:!0,kind:`void`};case`rm`:return await n.rm(t,{recursive:!0}),{ok:!0,kind:`void`};case`rename`:{let r=n.resolvePath(i,e.arg2??``),{renameViaFs:a}=await import(`./rename-via-fs-ckVY1Ljv.js`);return await a(n,t,r),{ok:!0,kind:`void`}}default:return await u(n,t,e)}}catch(e){return o(e)}}function c(e){return{isDirectory:e.isDirectory,isFile:e.isFile,isSymbolicLink:e.isSymbolicLink??!1,size:e.size,mode:e.mode,mtimeMs:e.mtime instanceof Date?e.mtime.getTime():0}}function l(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}async function u(e,t,n){switch(n.op){case`unlink`:if((await e.lstat(t)).isDirectory)throw l(`EISDIR`,t);return await e.rm(t),{ok:!0,kind:`void`};case`rmdir`:if(!(await e.lstat(t)).isDirectory)throw l(`ENOTDIR`,t);if((await e.readdir(t)).length>0)throw l(`ENOTEMPTY`,t);return await e.rm(t,{recursive:!0}),{ok:!0,kind:`void`};case`symlink`:if(!n.arg2)throw l(`EINVAL`,t);return await e.symlink(n.arg2,t),{ok:!0,kind:`void`};case`readlink`:return{ok:!0,kind:`json`,json:await e.readlink(t)};case`chmod`:if(typeof n.mode!=`number`)throw l(`EINVAL`,t);return await e.chmod(t,n.mode),{ok:!0,kind:`void`};case`utimes`:if(typeof n.atimeMs!=`number`||typeof n.mtimeMs!=`number`)throw l(`EINVAL`,t);return await e.utimes(t,new Date(n.atimeMs),new Date(n.mtimeMs)),{ok:!0,kind:`void`};default:return{ok:!1,errno:`EINVAL`,message:`sync-fs: unknown op '${n.op}'`}}}function d(e){return`slicc-sync-fs-`+e}const f=`/__slicc/fs-sync`,p=`/__slicc/exec-sync`,m=`x-slicc-fs-token`,h=`x-slicc-fs-errno`,g=`x-slicc-fs`,_=`sync-fs-req`,v=`sync-fs-ack`,y=`sync-fs-res`,b=`exec`,x=25e3,S=12e4,C=6e5,w=5e3;function T(e){return e.channel===b}function E(e){let{command:t}=e;if(Array.isArray(t)){if(t.length===0||!t.every(e=>typeof e==`string`))return{errno:`EINVAL`,message:`sync-exec: argv must be a non-empty string[]`};let[e,...n]=t;return{cmd:e,args:n}}return typeof t!=`string`||t.length===0?{errno:`EINVAL`,message:`sync-exec: command must be a non-empty string`}:e.args===void 0?{cmd:t}:!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)?{errno:`EINVAL`,message:`sync-exec: args must be a string[]`}:{cmd:t,args:e.args}}async function D(e,t,n){if(n===void 0)return{cwd:t};if(typeof n!=`string`)return{errno:`EINVAL`,message:`sync-exec: cwd must be a string`};if(n.length===0)return{errno:`ENOENT`,message:`sync-exec: cwd is empty`};let r=e.resolvePath(t,n);try{if(!(await e.stat(r)).isDirectory)return{errno:`ENOTDIR`,message:`sync-exec: cwd is not a directory: ${r}`}}catch(e){let t=e?.code;return t===`EACCES`||t===`EPERM`?{errno:t,message:`sync-exec: cwd not accessible: ${r}`}:{errno:`ENOENT`,message:`sync-exec: cwd does not exist: ${r}`}}return{cwd:r}}function O(e){if(e===void 0)return;if(typeof e!=`object`||!e||Array.isArray(e))return{errno:`EINVAL`,message:`sync-exec: env must be an object`};let t={};for(let[n,r]of Object.entries(e))if(r!==void 0){if(typeof r!=`string`)return{errno:`EINVAL`,message:`sync-exec: env[${n}] must be a string`};t[n]=r}return{ok:!0,env:t}}function k(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function A(e){return e===void 0||e===0}function j(e,t){return k(e)?Math.min(e,C):Math.min(t,C)}async function M(e,t={}){let n=r(e.token);if(!n)return{ok:!1,errno:`EACCES`,message:`sync-exec: unknown or revoked token`};if(!n.exec)return{ok:!1,errno:`ENOSYS`,message:`sync-exec: exec is not available`};let a=E(e);if(`errno`in a)return{ok:!1,errno:a.errno,message:a.message};let s=await D(n.fs,n.cwd,e.cwd);if(`errno`in s)return{ok:!1,errno:s.errno,message:s.message};let c=O(e.env);if(c!==void 0&&`errno`in c)return{ok:!1,errno:c.errno,message:c.message};let l=new AbortController,u=!1,d=t.allowNoDeadline&&e.timeoutMs===void 0?void 0:setTimeout(()=>{u=!0,l.abort()},j(e.timeoutMs,C)),f=i(e.token,l);try{let t=await n.exec(a.cmd,{cwd:s.cwd,signal:l.signal,...a.args===void 0?{}:{args:a.args},...e.stdin===void 0?{}:{stdin:e.stdin},...c===void 0?{}:{env:c.env,replaceEnv:!0}});return{ok:!0,kind:`json`,json:{stdout:t.stdout,stderr:t.stderr,exitCode:t.exitCode}}}catch(e){return u?{ok:!1,errno:`ETIMEDOUT`,message:`sync-exec: timed out — ${e instanceof Error?e.message:String(e)}`}:l.signal.aborted?{ok:!1,errno:`ECANCELED`,message:`sync-exec: realm disposed`}:o(e)}finally{clearTimeout(d),f()}}export{r as C,n as S,y as _,A as a,d as b,S as c,w as d,v as f,_ as g,x as h,O as i,C as l,g as m,M as n,D as o,h as p,T as r,b as s,j as t,p as u,f as v,a as w,s as x,m as y};
@@ -1 +0,0 @@
1
- function e(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}const t=[`listTargets`,`createTarget`,`navigate`,`screenshot`,`evaluate`],n=[`localNodeServer`,`crossOriginFetch`,`websocket`],r=[`listMaskedEnv`,`getMasked`,`set`,`delete`],i=[`usbRequest`,`serialRequest`,`hidRequest`],a=[`signRequest`,`pickDirectory`,`recover`],o=[`request`,`resolve`];function s(e,t,n){return{ok:!1,reason:`unavailable`,capability:e,operation:t,message:n}}function c(e,t,n,r){return{ok:!1,reason:`failed`,capability:e,operation:t,message:n,...r===void 0?{}:{status:r}}}export{n as a,s as c,a as i,e as l,t as n,r as o,i as r,c as s,o as t};