sliccy 3.40.1 → 3.40.2

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 (230) hide show
  1. package/README.md +1 -1
  2. package/dist/node-server/_shared/index.d.ts +2 -0
  3. package/dist/node-server/_shared/index.d.ts.map +1 -1
  4. package/dist/node-server/_shared/index.js +2 -0
  5. package/dist/node-server/_shared/index.js.map +1 -1
  6. package/dist/node-server/_shared/sign-and-forward.d.ts +75 -0
  7. package/dist/node-server/_shared/sign-and-forward.d.ts.map +1 -0
  8. package/dist/node-server/_shared/sign-and-forward.js +278 -0
  9. package/dist/node-server/_shared/sign-and-forward.js.map +1 -0
  10. package/dist/node-server/_shared/sigv4.d.ts +26 -0
  11. package/dist/node-server/_shared/sigv4.d.ts.map +1 -0
  12. package/dist/node-server/{secrets/signing-s3.js → _shared/sigv4.js} +8 -16
  13. package/dist/node-server/_shared/sigv4.js.map +1 -0
  14. package/dist/node-server/secrets/sign-and-forward.d.ts +6 -26
  15. package/dist/node-server/secrets/sign-and-forward.js +40 -247
  16. package/dist/ui/assets/__vite-browser-external-CM3Eme-n.js +1 -0
  17. package/dist/ui/assets/adobe-CO3wS_d5.js +2 -0
  18. package/dist/ui/assets/{adobe-BuddmT1_.js → adobe-nHLJpNcu.js} +1 -1
  19. package/dist/ui/assets/agent-bridge-BMD-Yb-z.js +1 -0
  20. package/dist/ui/assets/agent-message-to-chat-C0egGhwm.js +7 -0
  21. package/dist/ui/assets/{anthropic-BgHKqajT.js → anthropic-DOdK4eXe.js} +4 -4
  22. package/dist/ui/assets/{anthropic-CtzKOYSY.js → anthropic-DVQtRZtV.js} +2 -2
  23. package/dist/ui/assets/{apps-DUrh4PEK.js → apps-CWTJXUQ9.js} +2 -2
  24. package/dist/ui/assets/azure-openai-CPku4i7e.js +1 -0
  25. package/dist/ui/assets/azure-openai-DfVwUq3T.js +1 -0
  26. package/dist/ui/assets/azure-openai-responses-DXY_e5sT.js +1 -0
  27. package/dist/ui/assets/azure-openai-responses-KQPM7_wG.js +1 -0
  28. package/dist/ui/assets/backend-local-CMfz45hs.js +9 -0
  29. package/dist/ui/assets/bedrock-camp-CWvhREqw.js +4 -0
  30. package/dist/ui/assets/bedrock-camp-Cg_vY0Xg.js +5 -0
  31. package/dist/ui/assets/biome_wasm-DEjrJMqV.js +1 -0
  32. package/dist/ui/assets/{bsh-watchdog-x1NhC21S.js → bsh-watchdog-BKneSMpK.js} +1 -1
  33. package/dist/ui/assets/{cdp-CIf67Kji.js → cdp-C305jY31.js} +4 -4
  34. package/dist/ui/assets/cdp-ws-page-bridge-D_PY6ku1.js +1 -0
  35. package/dist/ui/assets/chunk-CMxvf4Kt.js +1 -0
  36. package/dist/ui/assets/chunk-aKtaBQYM.js +1 -0
  37. package/dist/ui/assets/clipboard-C2cR8flR.js +1 -0
  38. package/dist/ui/assets/clipboard-DgFtRQbq.js +1 -0
  39. package/dist/ui/assets/common-ewBM5he1.js +1 -0
  40. package/dist/ui/assets/{connect-surface-D4wcacvR.js → connect-surface-BhXK8H17.js} +1 -1
  41. package/dist/ui/assets/cost-command-BuJBbBZk.js +1 -0
  42. package/dist/ui/assets/diagnostics-DRDFDs4d.js +1 -0
  43. package/dist/ui/assets/diagnostics-mI-AnKx_.js +1 -0
  44. package/dist/ui/assets/{dist-CUdWMJvw.js → dist-BLA4hdWf.js} +4 -4
  45. package/dist/ui/assets/{dist-CrZ60vIK.js → dist-Cu5Yqq5d2.js} +1 -1
  46. package/dist/ui/assets/{dist-CXh0a315.js → dist-DbTbRU9p2.js} +4 -4
  47. package/dist/ui/assets/{dist-CU640e2s.js → dist-lE_MdTdg.js} +1 -1
  48. package/dist/ui/assets/{es-BCqpNDbf.js → es-C5RdSFrV.js} +5 -5
  49. package/dist/ui/assets/{esp32-z35G3TbR.js → esp32-BTVUAltJ.js} +1 -1
  50. package/dist/ui/assets/esp32-CatgC_Vd.js +1 -0
  51. package/dist/ui/assets/{esp32c2-gLxOsZif.js → esp32c2-CpROmlB0.js} +1 -1
  52. package/dist/ui/assets/{esp32c2-pl5qy6El.js → esp32c2-Cvhq9547.js} +1 -1
  53. package/dist/ui/assets/{esp32c3-P3fd2u0V.js → esp32c3-D9lOBWYZ.js} +1 -1
  54. package/dist/ui/assets/esp32c3-heViyR1Q.js +1 -0
  55. package/dist/ui/assets/{esp32c5-B1WV7eXo.js → esp32c5-D2poFXyG.js} +1 -1
  56. package/dist/ui/assets/{esp32c5-VtJmrubf.js → esp32c5-KJSqwo2Q.js} +1 -1
  57. package/dist/ui/assets/{esp32c6-B-u1dpSJ.js → esp32c6-BMEnOhZ6.js} +1 -1
  58. package/dist/ui/assets/{esp32c6-roW5XaV9.js → esp32c6-Ct3LxBMw.js} +1 -1
  59. package/dist/ui/assets/{esp32c61-BEqxfS6j.js → esp32c61-BsudQf3e.js} +1 -1
  60. package/dist/ui/assets/{esp32c61-e_DudgN9.js → esp32c61-sRp43nbI.js} +1 -1
  61. package/dist/ui/assets/{esp32h2-BNSoMBaR.js → esp32h2-BKv-WORi.js} +1 -1
  62. package/dist/ui/assets/{esp32h2-DfHWoI2F.js → esp32h2-CPO25efF.js} +1 -1
  63. package/dist/ui/assets/{esp32p4-B28QO5xI.js → esp32p4-GHiT8voO.js} +1 -1
  64. package/dist/ui/assets/{esp32p4-oT03skoL.js → esp32p4-g1tFG0sh.js} +1 -1
  65. package/dist/ui/assets/{esp32s2-PvYKf6wY.js → esp32s2-BE2gO68i.js} +1 -1
  66. package/dist/ui/assets/{esp32s2-B4ccaXVM.js → esp32s2-DrH4e7iJ.js} +1 -1
  67. package/dist/ui/assets/{esp32s3-BEGROUfT.js → esp32s3-BHbeScNz.js} +1 -1
  68. package/dist/ui/assets/{esp32s3-BR5mq9LB.js → esp32s3-CjMu3q4c.js} +1 -1
  69. package/dist/ui/assets/esp8266-BPLrOmN4.js +1 -0
  70. package/dist/ui/assets/esp8266-DNz2CP4r.js +1 -0
  71. package/dist/ui/assets/esptool-operations-CiX8mbpu.js +12 -0
  72. package/dist/ui/assets/{esptool-operations-BmdDP4Te.js → esptool-operations-SV6FPHJC.js} +2 -2
  73. package/dist/ui/assets/{follower-sprinkle-bridge-DhhhEoEw.js → follower-sprinkle-bridge-wXj1EUtA.js} +1 -1
  74. package/dist/ui/assets/fs-DFVTNTSD.js +1 -0
  75. package/dist/ui/assets/github-CYjlIHrw.js +1 -0
  76. package/dist/ui/assets/github-D3seHhWX.js +2 -0
  77. package/dist/ui/assets/github-copilot-BUZeXPF0.js +2 -0
  78. package/dist/ui/assets/github-copilot-BVHrjTl4.js +1 -0
  79. package/dist/ui/assets/google-BbVPHS50.js +1 -0
  80. package/dist/ui/assets/google-Dl6In6_I.js +1 -0
  81. package/dist/ui/assets/google-shared-BgawM9oG.js +11 -0
  82. package/dist/ui/assets/{google-shared-BqepQLFX.js → google-shared-BmpiIO3m.js} +3 -3
  83. package/dist/ui/assets/google-vertex-DGjVDVSA.js +1 -0
  84. package/dist/ui/assets/google-vertex-uZ8N77ah.js +1 -0
  85. package/dist/ui/assets/hid-device-registry-D2LsJCRr.js +1 -0
  86. package/dist/ui/assets/hosted-config-apply-uAym2aS5.js +1 -0
  87. package/dist/ui/assets/intercepted-oauth-tLpKagkf.js +1 -0
  88. package/dist/ui/assets/json-parse-BIGBjpLL.js +3 -0
  89. package/dist/ui/assets/json-parse-BUunmmNl.js +3 -0
  90. package/dist/ui/assets/kernel-worker-DHB5K--r.js +9547 -0
  91. package/dist/ui/assets/lick-ws-bridge-CWcn_Ulj.js +1 -0
  92. package/dist/ui/assets/{local-llm-BSBAbQIB.js → local-llm-BUXYfcTf.js} +2 -2
  93. package/dist/ui/assets/logger-DDBAeTLF.js +1 -0
  94. package/dist/ui/assets/logger-LESFN7Hj.js +1 -0
  95. package/dist/ui/assets/magick-wasm-BOfRlH1E.js +1 -0
  96. package/dist/ui/assets/main-B_dqrorc.js +1813 -0
  97. package/dist/ui/assets/main-cherry-COg9v9ma.js +1 -0
  98. package/dist/ui/assets/migration-run-BJubka_Q.js +1 -0
  99. package/dist/ui/assets/mime-types-B9LIwKG5.js +1 -0
  100. package/dist/ui/assets/mime-types-BG9Gw1bq.js +1 -0
  101. package/dist/ui/assets/{mistral-BgklU_Dp.js → mistral-CMJILYv2.js} +4 -4
  102. package/dist/ui/assets/{mistral-DzTfCccO.js → mistral-DGtcP1BQ.js} +4 -4
  103. package/dist/ui/assets/mount-BUpz4Z5Y.js +1 -0
  104. package/dist/ui/assets/mount-id-nJcx05eu.js +1 -0
  105. package/dist/ui/assets/mount-picker-popup-DncaR5N8.js +1 -0
  106. package/dist/ui/assets/mount-table-store-CQJEV6Ij.js +1 -0
  107. package/dist/ui/assets/nodejs-BQ9Oov1A.js +1 -0
  108. package/dist/ui/assets/{nuke-command-B02fs5G-.js → nuke-command-lusrluat.js} +1 -1
  109. package/dist/ui/assets/oauth-Czw-MuuR.js +1 -0
  110. package/dist/ui/assets/oauth-bootstrap-CR5cHgP4.js +2 -0
  111. package/dist/ui/assets/oauth-service-C1ptERg8.js +1 -0
  112. package/dist/ui/assets/oauth-service-CSJo71ct.js +1 -0
  113. package/dist/ui/assets/offscreen-client-DugfoS_N.js +1 -0
  114. package/dist/ui/assets/onboarding-orchestrator-CdmKvVMp.js +1 -0
  115. package/dist/ui/assets/openai-codex-ClxPqMfK.js +1 -0
  116. package/dist/ui/assets/openai-codex-D2k0MZA6.js +1 -0
  117. package/dist/ui/assets/openai-codex-responses-Dpn8XW3b.js +7 -0
  118. package/dist/ui/assets/openai-codex-responses-bUy20doI.js +7 -0
  119. package/dist/ui/assets/openai-completions-B_5Ph3h0.js +5 -0
  120. package/dist/ui/assets/openai-completions-CoYClIFl.js +5 -0
  121. package/dist/ui/assets/openai-i4HWKCeW.js +16 -0
  122. package/dist/ui/assets/openai-responses-BQOBB5px.js +1 -0
  123. package/dist/ui/assets/openai-responses-DqkDb9a5.js +1 -0
  124. package/dist/ui/assets/{openai-responses-shared-CsK-8CQH.js → openai-responses-shared-CZOJCHE4.js} +4 -4
  125. package/dist/ui/assets/{openai-responses-shared-DYSAljRs.js → openai-responses-shared-D4pZ3bEY.js} +4 -4
  126. package/dist/ui/assets/openrouter-QETwrep8.js +1 -0
  127. package/dist/ui/assets/panel-rpc-Bcvr75SR.js +1 -0
  128. package/dist/ui/assets/panel-rpc-handlers-DBl8woxD.js +2 -0
  129. package/dist/ui/assets/path-utils-DU6QhF_k.js +1 -0
  130. package/dist/ui/assets/picker-approval-tzbkMw-e.js +9 -0
  131. package/dist/ui/assets/preload-helper-zJ_50EbN.js +1 -0
  132. package/dist/ui/assets/provider-BhdEMs7H.js +2 -0
  133. package/dist/ui/assets/provider-Bx8In4Gr.js +1 -0
  134. package/dist/ui/assets/provider-settings-0pRf6SyW.js +99 -0
  135. package/dist/ui/assets/provider-store-access-BeQCwCqF.js +1 -0
  136. package/dist/ui/assets/provider-store-access-C0clpc8W.js +1 -0
  137. package/dist/ui/assets/providers-B7fnyffD.js +1 -0
  138. package/dist/ui/assets/{proxied-fetch-CW9YdsrT.js → proxied-fetch-b3C_y-Sa.js} +1 -1
  139. package/dist/ui/assets/pyodide-BvA4c-59.js +3 -0
  140. package/dist/ui/assets/remote-cache-_bhYZSLy.js +1 -0
  141. package/dist/ui/assets/{remote-terminal-view-ChqlFNm7.js → remote-terminal-view-B39iwPyn.js} +3 -3
  142. package/dist/ui/assets/{remote-vfs-client-Cc4yBMI0.js → remote-vfs-client-BwJhhtIV.js} +1 -1
  143. package/dist/ui/assets/secret-env-DcfTe28K.js +1 -0
  144. package/dist/ui/assets/slicc-editor-BdfBeQCF.js +12 -0
  145. package/dist/ui/assets/{spawn-7Vgp-lrm.js → spawn-BNv0VU_z.js} +1 -1
  146. package/dist/ui/assets/{sql-wasm-BbdRW4or.js → sql-wasm-Cu5Uk_6k.js} +1 -1
  147. package/dist/ui/assets/{src-BV-fJ2mM.js → src-CcMujGBk.js} +2 -2
  148. package/dist/ui/assets/src-CpdsjHiA.js +1 -0
  149. package/dist/ui/assets/store-D1JCoE9c.js +1 -0
  150. package/dist/ui/assets/{sudo-CYttizEB.js → sudo-BuD2RD3I.js} +1 -1
  151. package/dist/ui/assets/tool-ui-N76-EdVc.js +1 -0
  152. package/dist/ui/assets/tool-ui-YOPqzMmL.js +1 -0
  153. package/dist/ui/assets/transform-messages-B3Q-Bwv-.js +1 -0
  154. package/dist/ui/assets/transform-messages-C1X1O3BY.js +1 -0
  155. package/dist/ui/assets/{tray-leave-runtime-BYZH2LNU.js → tray-leave-runtime-CRZEf8YZ.js} +1 -1
  156. package/dist/ui/assets/tray-runtime-config-BRnpyDNS.js +1 -0
  157. package/dist/ui/assets/types-idfTVsM8.js +1 -0
  158. package/dist/ui/assets/{typescript-DY6vxmmv.js → typescript-qBO0Z4wm.js} +15 -15
  159. package/dist/ui/assets/upgrade-detection-DhxJ-jq1.js +1 -0
  160. package/dist/ui/assets/web-BMWiUYJ-.js +1 -0
  161. package/dist/ui/assets/{writable-vfs-client-lsN1qOSV.js → writable-vfs-client-DMYsajEE.js} +1 -1
  162. package/dist/ui/assets/ws-subscribers-Dzuxa2F7.js +1 -0
  163. package/dist/ui/assets/xai-grok-B4ABtgts.js +1 -0
  164. package/dist/ui/assets/xai-grok-CSBJajs9.js +1 -0
  165. package/dist/ui/index.html +15 -1
  166. package/dist/ui/packages/webapp/index.html +15 -1
  167. package/package.json +5 -5
  168. package/dist/node-server/secrets/signing-s3.d.ts +0 -34
  169. package/dist/ui/assets/adobe-DwuDVWKR.js +0 -2
  170. package/dist/ui/assets/agent-bridge-CQ_WHXpS.js +0 -1
  171. package/dist/ui/assets/agent-message-to-chat-Bk83dal6.js +0 -7
  172. package/dist/ui/assets/azure-openai-589UnBaE.js +0 -1
  173. package/dist/ui/assets/azure-openai-BVD3rRyh.js +0 -1
  174. package/dist/ui/assets/azure-openai-responses-DDoPpQfz.js +0 -1
  175. package/dist/ui/assets/azure-openai-responses-DvPlhYRg.js +0 -1
  176. package/dist/ui/assets/biome_wasm-2BIO-fFD.js +0 -1
  177. package/dist/ui/assets/cdp-ws-page-bridge-D48c5VHQ.js +0 -1
  178. package/dist/ui/assets/common-DJglxtI9.js +0 -1
  179. package/dist/ui/assets/cost-command-Dqjx5BJ4.js +0 -1
  180. package/dist/ui/assets/esp32-UFl3lGuU.js +0 -1
  181. package/dist/ui/assets/esp32c3-CtBZCzN8.js +0 -1
  182. package/dist/ui/assets/esp8266-Cg5dZq5p.js +0 -1
  183. package/dist/ui/assets/esp8266-MLobtggU.js +0 -1
  184. package/dist/ui/assets/esptool-operations-PyMOLbEo.js +0 -12
  185. package/dist/ui/assets/github-BmiOv8pZ.js +0 -1
  186. package/dist/ui/assets/github-H8WCUoaG.js +0 -2
  187. package/dist/ui/assets/github-copilot-CFrKRCIh.js +0 -2
  188. package/dist/ui/assets/github-copilot-LZq-2nbm.js +0 -1
  189. package/dist/ui/assets/google-Bwhr3ElU.js +0 -1
  190. package/dist/ui/assets/google-CDEKJo6s.js +0 -1
  191. package/dist/ui/assets/google-shared-DUInnTRv.js +0 -11
  192. package/dist/ui/assets/google-vertex-DOk_o4Vo.js +0 -1
  193. package/dist/ui/assets/google-vertex-Dy07djME.js +0 -1
  194. package/dist/ui/assets/hosted-config-apply-CIYq4OE-.js +0 -1
  195. package/dist/ui/assets/intercepted-oauth-DYoA2kA8.js +0 -1
  196. package/dist/ui/assets/kernel-worker-xMdP33ug.js +0 -9678
  197. package/dist/ui/assets/lick-ws-bridge-DLXsmZ6H.js +0 -1
  198. package/dist/ui/assets/magick-wasm-BpDug9Pm.js +0 -1
  199. package/dist/ui/assets/main-BxzufWem.js +0 -1825
  200. package/dist/ui/assets/main-cherry-CV5ItRlu.js +0 -1
  201. package/dist/ui/assets/migration-run-195D_oov.js +0 -1
  202. package/dist/ui/assets/nodejs-156RsPtl.js +0 -1
  203. package/dist/ui/assets/oauth-DSEOvfNU.js +0 -1
  204. package/dist/ui/assets/oauth-bootstrap-CCTPtyS_.js +0 -2
  205. package/dist/ui/assets/oauth-service-Ctr2_Obu.js +0 -1
  206. package/dist/ui/assets/oauth-service-LEczdutD.js +0 -1
  207. package/dist/ui/assets/offscreen-client-Dswx1Ljm.js +0 -1
  208. package/dist/ui/assets/onboarding-orchestrator-8SmCagx8.js +0 -1
  209. package/dist/ui/assets/openai-codex-CYM3h5BG.js +0 -1
  210. package/dist/ui/assets/openai-codex-D-QWKpWb.js +0 -1
  211. package/dist/ui/assets/openai-codex-responses-CbtdwhQL.js +0 -7
  212. package/dist/ui/assets/openai-codex-responses-CnQXtoLP.js +0 -7
  213. package/dist/ui/assets/openai-completions-CbUcQcuU.js +0 -5
  214. package/dist/ui/assets/openai-responses-DBGxMDFy.js +0 -1
  215. package/dist/ui/assets/openai-responses-DomGQu-u.js +0 -1
  216. package/dist/ui/assets/openrouter-i7KtgZt3.js +0 -1
  217. package/dist/ui/assets/panel-rpc-handlers-BeUo4K-9.js +0 -2
  218. package/dist/ui/assets/provider-CuOCGXmD.js +0 -1
  219. package/dist/ui/assets/provider-U8Br2pQO.js +0 -2
  220. package/dist/ui/assets/provider-store-access-CRMelzXC.js +0 -1
  221. package/dist/ui/assets/provider-store-access-D9JW2Z9f.js +0 -1
  222. package/dist/ui/assets/pyodide-BQVwxCA4.js +0 -3
  223. package/dist/ui/assets/secret-env-mFCaJWuD.js +0 -1
  224. package/dist/ui/assets/slicc-editor-Bn_0-CZl.js +0 -12
  225. package/dist/ui/assets/store-DUcHEhum.js +0 -1
  226. package/dist/ui/assets/upgrade-detection-BmNgOg4g.js +0 -1
  227. package/dist/ui/assets/web-DRaGEaSq.js +0 -1
  228. package/dist/ui/assets/ws-subscribers-CxhSakhG.js +0 -1
  229. package/dist/ui/assets/xai-grok-C0UPkvUi.js +0 -1
  230. package/dist/ui/assets/xai-grok-DEapxZue.js +0 -1
@@ -0,0 +1 @@
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{BrowserAPI as t}from"./cdp-C305jY31.js";var n=new Set([`handshake.hello`,`handshake.welcome`,`cdp.request`,`cdp.response`,`cdp.event`,`permission.request`,`permission.response`,`host.event`,`slicc.event`]);function r(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.cherry===1&&typeof t.channelId==`string`&&typeof t.kind==`string`&&n.has(t.kind)}function i(e,t){return!(!t.allowOrigins.includes(e.origin)||t.expectedSource!==null&&e.source!==t.expectedSource||!r(e.data)||t.channelId!==null&&e.data.channelId!==t.channelId)}var a=e(`cherry-transport`),o=`cherry-session`,s=`cherry-target`,c=`cherry-frame`,l=3e4,u=class{opts;channelId=null;nextId=1;_state=`disconnected`;pending=new Map;listeners=new Map;connectResolve=null;connectTimer=null;_joinUrl=null;boundHandler=e=>this.handleMessage(e);onHostEvent=null;constructor(e){this.opts=e}get state(){return this._state}get joinUrl(){return this._joinUrl}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);this._state=`connecting`,this.channelId=`cherry-${crypto.randomUUID()}`,typeof window<`u`&&window.addEventListener(`message`,this.boundHandler);let t=e?.timeout??l;return new Promise((e,n)=>{this.connectResolve=e,this.connectTimer=setTimeout(()=>{this.connectTimer=null,typeof window<`u`&&window.removeEventListener(`message`,this.boundHandler),this._state=`disconnected`,this.channelId=null,this.connectResolve=null,n(Error(`Cherry handshake timed out after ${t}ms`))},t),this.post({cherry:1,channelId:this.channelId,kind:`handshake.hello`,capabilities:this.opts.capabilities??{navigate:!0,screenshot:!0,openUrl:!0}})})}disconnect(){this.connectTimer!==null&&(clearTimeout(this.connectTimer),this.connectTimer=null),typeof window<`u`&&window.removeEventListener(`message`,this.boundHandler);for(let[,e]of this.pending)e.reject(Error(`Cherry transport disconnected`));this.pending.clear(),this._state=`disconnected`,this.channelId=null}async send(e,t,n,r=3e4){if(this._state!==`connected`)throw Error(`Cherry transport is not connected`);let i=this.handleSynthetic(e,t);if(i)return i;let a=this.nextId++,o=await new Promise((n,i)=>{let o=setTimeout(()=>{this.pending.delete(a),i(Error(`Cherry CDP timed out after ${r}ms: ${e}`))},r);this.pending.set(a,{resolve:e=>{clearTimeout(o),n(e)},reject:e=>{clearTimeout(o),i(e)}}),this.post({cherry:1,channelId:this.channelId,kind:`cdp.request`,id:a,method:e,params:t})});return e===`Page.navigate`&&this.synthesizeNavigationLifecycle(o,t?.url),o}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return new Promise((n,r)=>{let i=setTimeout(()=>{this.off(e,a),r(Error(`Timed out waiting for event: ${e}`))},t),a=t=>{clearTimeout(i),this.off(e,a),n(t)};this.on(e,a)})}__test_receive(e){this.handleMessage(e)}emitSliccEventToHost(e,t){if(!this.channelId){a.warn(`Dropping slicc.event before handshake (no channelId yet)`,{name:e});return}this.post({cherry:1,channelId:this.channelId,kind:`slicc.event`,name:e,detail:t})}post(e){this.opts.counterpart.postMessage(e,this.opts.targetOrigin)}emit(e,t){let n=this.listeners.get(e);if(n)for(let e of n)try{e(t)}catch{}}handleSynthetic(e,t){switch(e){case`Target.getTargets`:return Promise.resolve({targetInfos:[{targetId:s,type:`page`,title:`Cherry Host Page`,url:typeof location<`u`?location.href:`about:blank`,attached:!0}]});case`Target.attachToTarget`:return Promise.resolve({sessionId:o});case`Target.detachFromTarget`:case`Target.closeTarget`:return Promise.resolve({success:!0});case`Page.enable`:case`Runtime.enable`:case`DOM.enable`:case`Page.bringToFront`:return Promise.resolve({});case`Page.getFrameTree`:return Promise.resolve({frameTree:{frame:{id:c,loaderId:`cherry-loader`,url:typeof location<`u`?location.href:`about:blank`,securityOrigin:this.opts.targetOrigin,mimeType:`text/html`},childFrames:[]}});case`Runtime.createIsolatedWorld`:return Promise.resolve({executionContextId:1});default:return null}}synthesizeNavigationLifecycle(e,t){let n=e.frameId??c,r=t??(typeof location<`u`?location.href:`about:blank`);this.emit(`Page.frameNavigated`,{frame:{id:n,loaderId:`cherry-loader`,url:r,securityOrigin:this.opts.targetOrigin,mimeType:`text/html`},sessionId:o}),this.emit(`Page.loadEventFired`,{timestamp:Date.now()/1e3,sessionId:o})}handleMessage(e){if(!i(e,{allowOrigins:this.opts.allowOrigins,expectedSource:this.opts.counterpart,channelId:this.channelId})){r(e.data)&&a.warn(`Rejected a cherry envelope (origin/source/channel mismatch)`,{origin:e.origin,allowOrigins:this.opts.allowOrigins});return}let t=e.data;switch(t.kind){case`handshake.welcome`:this.connectTimer!==null&&(clearTimeout(this.connectTimer),this.connectTimer=null),this._state=`connected`,this._joinUrl=t.joinUrl??null,a.info(`Cherry handshake complete`,{channelId:this.channelId}),this.connectResolve?.(),this.connectResolve=null;return;case`cdp.response`:{let e=this.pending.get(t.id);if(!e)return;this.pending.delete(t.id),t.error?e.reject(Error(`Cherry CDP error: ${t.error.message} (${t.error.code})`)):e.resolve(t.result??{});return}case`cdp.event`:this.emit(t.method,{...t.params??{},sessionId:t.sessionId??o});return;case`host.event`:this.onHostEvent?.(t.name,t.detail);return;default:return}}},d=e(`cherry-boot`);async function f(){let e=[document.referrer?new URL(document.referrer).origin:location.origin],n=e[0],r=new u({counterpart:window.parent,allowOrigins:e,targetOrigin:n});await r.connect(),d.info(`Cherry transport connected`);let i=r.joinUrl;if(!i)throw Error(`cherry boot: no joinUrl from handshake`);return{transport:r,browser:new t(r),joinUrl:i}}export{f as setupCherryFollower};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-CMxvf4Kt.js";import{t}from"./logger-LESFN7Hj.js";import{a as n,o as r}from"./kernel-worker-DHB5K--r.js";const i=`/.slicc-migrated`;async function a(e){let{manifest:t,source:n,target:r,logger:i}=e,a={fileCount:t.fileCount,totalBytes:t.totalBytes},c=t.entries.filter(e=>e.type===`dir`).sort((e,t)=>o(e.path)-o(t.path)),l=t.entries.filter(e=>e.type===`file`),u=t.entries.filter(e=>e.type===`symlink`);for(let e of c)try{await r.mkdir(e.path)}catch(e){return i?.warn?.(`[migration] mkdir failed during C2 copy`,{copiedFiles:0,stage:`mkdir`,code:s(e)}),{kind:`copy-error`,expected:a,copiedFiles:0,stage:`mkdir`}}let d=0;try{e.onProgress?.({copied:0,total:a.fileCount})}catch{}for(let t of l){if(t.type!==`file`)continue;let o;try{o=await n.readFile(t.path)}catch(e){return i?.warn?.(`[migration] legacy read failed during C2 copy`,{copiedFiles:d,stage:`read`,code:s(e)}),{kind:`copy-error`,expected:a,copiedFiles:d,stage:`read`}}try{await r.writeFile(t.path,o)}catch(e){return i?.warn?.(`[migration] OPFS write failed during C2 copy`,{copiedFiles:d,stage:`writeFile`,code:s(e)}),{kind:`copy-error`,expected:a,copiedFiles:d,stage:`writeFile`}}d++;try{e.onProgress?.({copied:d,total:a.fileCount})}catch{}}let f=0;for(let e of u)if(e.type===`symlink`)try{await r.symlink(e.target,e.path)}catch(e){if(s(e)===`EEXIST`){f++;continue}return i?.warn?.(`[migration] symlink failed during C2 copy`,{copiedFiles:d,stage:`symlink`,code:s(e)}),{kind:`copy-error`,expected:a,copiedFiles:d,stage:`symlink`}}if(f>0&&i?.info?.(`[migration] tolerated pre-existing symlinks during C2 re-run`,{skipped:f,symlinks:t.symlinkCount}),e.flushBeforeSentinel)try{await e.flushBeforeSentinel()}catch(e){return i?.warn?.(`[migration] sidecar flush failed before parity`,{code:s(e)}),{kind:`copy-error`,expected:a,copiedFiles:d,stage:`writeFile`}}let p=await e.countOpfsFiles(),m=p.totalBytes-a.totalBytes;return p.fileCount===a.fileCount?(m!==0&&i?.info?.(`[migration] byte drift tolerated (count parity matched)`,{expectedBytes:a.totalBytes,actualBytes:p.totalBytes,byteDelta:m}),await e.writeSentinel(),i?.info?.(`[migration] C2 copy complete, sentinel written`,{files:p.fileCount,totalBytes:p.totalBytes,expectedBytes:a.totalBytes,byteDelta:m,symlinks:t.symlinkCount,dirs:t.dirCount}),{kind:`success`,fileCount:p.fileCount,totalBytes:p.totalBytes}):(i?.warn?.(`[migration] parity mismatch — sentinel NOT written`,{expectedFiles:a.fileCount,actualFiles:p.fileCount,expectedBytes:a.totalBytes,actualBytes:p.totalBytes,byteDelta:m}),{kind:`parity-mismatch`,expected:a,actual:p})}function o(e){if(e===`/`)return 0;let t=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===47&&t++;return t}function s(e){let t=e?.code;return typeof t==`string`?t:void 0}const c=t(`migration-guard`);function l(){let e=globalThis;return{hasExtensionRuntime:typeof e.chrome?.runtime?.id==`string`,hasDocument:e.document!==void 0,pathname:e.window?.location?.pathname??``}}function u(e){return!e.hasExtensionRuntime||!e.hasDocument?!1:!/offscreen\.html$/.test(e.pathname)}var d=class extends Error{constructor(e){super(`runLegacyMigrationFromVfs invoked from the chrome extension side panel (pathname='${e.pathname}'). Migration must run only in the offscreen document; the panel should wait on the kernel-ready RPC (OffscreenClient.onReady).`),this.name=`MigrationFromSidePanelError`}};function f(e=l()){if(u(e)){let t=new d(e);throw c.error(t.message),t}}async function p(e,t={}){f(t.callerEnv);let n=t.logger,o=await r({sentinelExists:async()=>{try{return await e.stat(i),!0}catch{return!1}},probeLegacyDbExists:t.probeLegacyDbExists??y,lfsFactory:t.legacyLfsFactory??v,logger:n});if(o.kind===`sentinel-present`)return{kind:`sentinel-present`};if(o.kind===`legacy-absent`)return{kind:`legacy-absent`};let s=await(t.legacyReaderFactory??_)(),c=m(e);return{kind:`copied`,result:await a({manifest:o.manifest,source:s,target:c,countOpfsFiles:()=>g(e,o.manifest),flushBeforeSentinel:()=>e.flush().catch(()=>{}),writeSentinel:async()=>{await e.writeFile(i,``),await e.flush().catch(()=>{})},onProgress:t.onProgress,logger:n})}}function m(e){return{mkdir:async t=>{await e.mkdir(t,{recursive:!0})},writeFile:async(t,n)=>{await e.writeFile(t,n)},symlink:async(t,n)=>{try{await e.symlink(t,n);return}catch(e){if(h(e)!==`EEXIST`)throw e}let r;try{r=await e.readlink(n)}catch{}r!==t&&(await e.rm(n,{recursive:!0}),await e.symlink(t,n))}}}function h(e){let t=e?.code;return typeof t==`string`?t:void 0}async function g(e,t){let n=0,r=0;for(let i of t.entries){if(i.type!==`file`)continue;let t;try{t=await e.lstat(i.path)}catch{continue}t.type===`file`&&(n++,r+=t.size??0)}return{fileCount:n,totalBytes:r}}async function _(){let t=(await import(`./src-CcMujGBk.js`).then(t=>e(t.default,1))).default,r=new t(n).promises;return{readFile:async e=>{let t=await r.readFile(e);return t instanceof Uint8Array?t:new TextEncoder().encode(String(t))}}}async function v(){let t=(await import(`./src-CcMujGBk.js`).then(t=>e(t.default,1))).default;return new t(n).promises}async function y(){try{let e=globalThis.indexedDB;if(!e)return!1;let t=e.databases;return typeof t==`function`?(await t.call(e)).some(e=>e.name===n):!0}catch{return!0}}export{p as runLegacyMigrationFromVfs};
@@ -0,0 +1 @@
1
+ var e={html:`text/html`,htm:`text/html`,css:`text/css`,js:`application/javascript`,mjs:`application/javascript`,json:`application/json`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,avif:`image/avif`,apng:`image/apng`,bmp:`image/bmp`,ico:`image/x-icon`,woff:`font/woff`,woff2:`font/woff2`,ttf:`font/ttf`,mp3:`audio/mpeg`,mp4:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,m4v:`video/x-m4v`,ogv:`video/ogg`,pdf:`application/pdf`,txt:`text/plain`,xml:`application/xml`,wasm:`application/wasm`};function t(t){return e[t.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function n(e){return e.startsWith(`image/`)}function r(e){return e.startsWith(`video/`)}function i(e){return n(e)||r(e)}function a(e){return i(t(e))}export{a as n,t};
@@ -0,0 +1 @@
1
+ const e={html:`text/html`,htm:`text/html`,css:`text/css`,js:`application/javascript`,mjs:`application/javascript`,json:`application/json`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,avif:`image/avif`,apng:`image/apng`,bmp:`image/bmp`,ico:`image/x-icon`,woff:`font/woff`,woff2:`font/woff2`,ttf:`font/ttf`,mp3:`audio/mpeg`,mp4:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,m4v:`video/x-m4v`,ogv:`video/ogg`,pdf:`application/pdf`,txt:`text/plain`,xml:`application/xml`,wasm:`application/wasm`};function t(t){return e[t.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function n(e){return e.startsWith(`image/`)}function r(e){return e.startsWith(`video/`)}function i(e){return n(e)||r(e)}export{i as n,t};