sliccy 6.130.0 → 6.131.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 (329) hide show
  1. package/README.md +2 -2
  2. package/dist/node-server/_shared/agent-wire-types.d.ts +54 -0
  3. package/dist/node-server/_shared/agent-wire-types.d.ts.map +1 -1
  4. package/dist/node-server/_shared/cdp-target-info.d.ts +19 -0
  5. package/dist/node-server/_shared/cdp-target-info.d.ts.map +1 -0
  6. package/dist/node-server/_shared/cdp-target-info.js +9 -0
  7. package/dist/node-server/_shared/cdp-target-info.js.map +1 -0
  8. package/dist/node-server/_shared/discovery-link.d.ts +76 -0
  9. package/dist/node-server/_shared/discovery-link.d.ts.map +1 -0
  10. package/dist/node-server/_shared/discovery-link.js +76 -0
  11. package/dist/node-server/_shared/discovery-link.js.map +1 -0
  12. package/dist/node-server/_shared/extension-bridge-protocol.d.ts +165 -0
  13. package/dist/node-server/_shared/extension-bridge-protocol.d.ts.map +1 -0
  14. package/dist/node-server/_shared/extension-bridge-protocol.js +65 -0
  15. package/dist/node-server/_shared/extension-bridge-protocol.js.map +1 -0
  16. package/dist/node-server/_shared/handoff-link.d.ts +90 -0
  17. package/dist/node-server/_shared/handoff-link.d.ts.map +1 -0
  18. package/dist/node-server/_shared/handoff-link.js +192 -0
  19. package/dist/node-server/_shared/handoff-link.js.map +1 -0
  20. package/dist/node-server/_shared/iframe-repaint.d.ts +51 -0
  21. package/dist/node-server/_shared/iframe-repaint.d.ts.map +1 -0
  22. package/dist/node-server/_shared/iframe-repaint.js +118 -0
  23. package/dist/node-server/_shared/iframe-repaint.js.map +1 -0
  24. package/dist/node-server/_shared/index.d.ts +9 -0
  25. package/dist/node-server/_shared/index.d.ts.map +1 -1
  26. package/dist/node-server/_shared/index.js +9 -0
  27. package/dist/node-server/_shared/index.js.map +1 -1
  28. package/dist/node-server/_shared/leader-ext-id.d.ts +16 -0
  29. package/dist/node-server/_shared/leader-ext-id.d.ts.map +1 -0
  30. package/dist/node-server/_shared/leader-ext-id.js +16 -0
  31. package/dist/node-server/_shared/leader-ext-id.js.map +1 -0
  32. package/dist/node-server/_shared/link-header.d.ts +98 -0
  33. package/dist/node-server/_shared/link-header.d.ts.map +1 -0
  34. package/dist/node-server/_shared/link-header.js +441 -0
  35. package/dist/node-server/_shared/link-header.js.map +1 -0
  36. package/dist/node-server/_shared/proxy-headers.d.ts +46 -0
  37. package/dist/node-server/_shared/proxy-headers.d.ts.map +1 -0
  38. package/dist/node-server/_shared/proxy-headers.js +133 -0
  39. package/dist/node-server/_shared/proxy-headers.js.map +1 -0
  40. package/dist/node-server/_shared/well-known-probe.d.ts +63 -0
  41. package/dist/node-server/_shared/well-known-probe.d.ts.map +1 -0
  42. package/dist/node-server/_shared/well-known-probe.js +104 -0
  43. package/dist/node-server/_shared/well-known-probe.js.map +1 -0
  44. package/dist/node-server/electron-controller.d.ts +51 -0
  45. package/dist/node-server/electron-controller.js +88 -5
  46. package/dist/ui/.vite/manifest.json +414 -488
  47. package/dist/ui/assets/CLAUDE-CWMPcWVI.js +34 -0
  48. package/dist/ui/assets/{CLAUDE-BG8Wfdn_.js → CLAUDE-DM1onrcU.js} +1 -1
  49. package/dist/ui/assets/SKILL--AFE5RE3.js +1 -0
  50. package/dist/ui/assets/{SKILL-DT72j81i.js → SKILL-cpVS35My.js} +1 -1
  51. package/dist/ui/assets/__vite-browser-external-B6A3FtA_.js +1 -0
  52. package/dist/ui/assets/{account-store-EaBcIxhN.js → account-store-DsMvFZgS.js} +3 -3
  53. package/dist/ui/assets/account-store-naVgJKHe.js +1 -0
  54. package/dist/ui/assets/{adobe-B0U_BLCy.js → adobe-BhZB46bT.js} +1 -1
  55. package/dist/ui/assets/{adobe-DSoEAq_f.js → adobe-sRIQnDEl.js} +2 -2
  56. package/dist/ui/assets/{agent-bridge-sbs3wiia.js → agent-bridge-DVqU5-sn.js} +1 -1
  57. package/dist/ui/assets/{agent-message-to-chat-Cnv4uh07.js → agent-message-to-chat-Df4an5Ei.js} +1 -1
  58. package/dist/ui/assets/{agent-message-to-chat-DW2ZZk9R.js → agent-message-to-chat-xGeYopQz.js} +1 -1
  59. package/dist/ui/assets/api-endpoint-DGxXvrur.js +1 -0
  60. package/dist/ui/assets/api-endpoint-Lx_FU5cP.js +1 -0
  61. package/dist/ui/assets/{apply-layout-DvwSioYn.js → apply-layout-dNkV0TEv.js} +1 -1
  62. package/dist/ui/assets/{apps-DFIoDcds.js → apps-tzFQ7_KO.js} +1 -1
  63. package/dist/ui/assets/{auto-mount-table-CEBCZFRF.js → auto-mount-table-0jMTi9rV.js} +1 -1
  64. package/dist/ui/assets/{azure-openai-C_J_i_Uv.js → azure-openai-B9ZeZZ0T.js} +1 -1
  65. package/dist/ui/assets/{azure-openai-DUJebq5R.js → azure-openai-DsmgiFlX.js} +1 -1
  66. package/dist/ui/assets/{backend-hostfs-t651gkrP.js → backend-hostfs-BH8uwRZG.js} +1 -1
  67. package/dist/ui/assets/{backend-hostfs-BQYf7TAS.js → backend-hostfs-BxfjZHzO.js} +1 -1
  68. package/dist/ui/assets/bridge-protocol-06nbmp2X.js +1 -0
  69. package/dist/ui/assets/bridge-protocol-DdqxTTSu.js +1 -0
  70. package/dist/ui/assets/{bsh-watchdog-D97yX3sQ.js → bsh-watchdog-CxyhQHy5.js} +1 -1
  71. package/dist/ui/assets/{capability-Btlr4Wc-.js → capability-Bxl0SE1s.js} +2 -2
  72. package/dist/ui/assets/{cdp-DHIp_AO9.js → cdp-CmXwwigc.js} +1 -1
  73. package/dist/ui/assets/{cerebras-4vCJGBUt.js → cerebras-CsdnfQnc.js} +1 -1
  74. package/dist/ui/assets/{cerebras-CBjabVSb.js → cerebras-Mux-1Uqj.js} +1 -1
  75. package/dist/ui/assets/{client-CjV_9a9h.js → client-C6Cmi9c4.js} +1 -1
  76. package/dist/ui/assets/composer-speech-CElQJ4q_.js +1 -0
  77. package/dist/ui/assets/{connect-surface-DrBGja7c.js → connect-surface-DgrjdeR5.js} +1 -1
  78. package/dist/ui/assets/{context-compaction-huebTevb.js → context-compaction-DRymamfD.js} +3 -3
  79. package/dist/ui/assets/{core-CdPvxBo3.js → core-B8y1Kyh_.js} +2 -2
  80. package/dist/ui/assets/{derive-C_gfjwp6.js → derive-TWFNEJkb.js} +1 -1
  81. package/dist/ui/assets/dip-1TiuHkUR.js +233 -0
  82. package/dist/ui/assets/{directed-approval-cJrhWrrr.js → directed-approval-BDO2wdC5.js} +1 -1
  83. package/dist/ui/assets/{discovery-preference-DFkmIHQo.js → discovery-preference-B9KlkVuR.js} +1 -1
  84. package/dist/ui/assets/ensure-speech-assets-DasC7jBA.js +1 -0
  85. package/dist/ui/assets/{esbuild-wasm-CSKOA492.js → esbuild-wasm-Ew76Vf_V.js} +2 -2
  86. package/dist/ui/assets/export-provider-CqI0pk50.js +1 -0
  87. package/dist/ui/assets/export-spool-CuNzzI8a.js +1 -0
  88. package/dist/ui/assets/{extension-bridge-transport-D3PItLFo.js → extension-bridge-transport-DfRNjx8c.js} +1 -1
  89. package/dist/ui/assets/extension-media-capture-2FcAdcuB.js +1 -0
  90. package/dist/ui/assets/extension-ops-owOXVncP.js +1 -0
  91. package/dist/ui/assets/float-topology-hfgMx1Yq.js +1 -0
  92. package/dist/ui/assets/{follower-navigate-watcher-B9ZostUJ.js → follower-navigate-watcher-JQ0b_cW8.js} +1 -1
  93. package/dist/ui/assets/{fs-C9SJY4sJ.js → fs-CBaQR8Xc.js} +2 -2
  94. package/dist/ui/assets/{fs-n6R6QZv0.js → fs-CDaCMxrL.js} +1 -1
  95. package/dist/ui/assets/github-B7uOq9Q1.js +1 -0
  96. package/dist/ui/assets/{github-copilot-COZvaCzG.js → github-copilot-BeWJoZwD.js} +1 -1
  97. package/dist/ui/assets/{github-copilot-Cai-dPyZ.js → github-copilot-DwKSI23j.js} +1 -1
  98. package/dist/ui/assets/{github-install-DfhMDFC9.js → github-install-DE7dF6r8.js} +1 -1
  99. package/dist/ui/assets/{github-D-fdkiMQ.js → github-qhOhjD2Q.js} +2 -2
  100. package/dist/ui/assets/{github-zip-ZEV5pLGZ.js → github-zip-CuwUOO-U.js} +1 -1
  101. package/dist/ui/assets/{guest-tool-gate-CG9Yw8Kq.js → guest-tool-gate-BxRAm4CU.js} +1 -1
  102. package/dist/ui/assets/{hear-D7MO-jTh.js → hear-CNQSuR1y.js} +1 -1
  103. package/dist/ui/assets/{help-CQHZfeL3.js → help-D66VHlYj.js} +8 -4
  104. package/dist/ui/assets/hid-picker-sFJ8vzUj.js +1 -0
  105. package/dist/ui/assets/host-command-29ain4NA.js +1 -0
  106. package/dist/ui/assets/idle-compaction-B9i1duyd.js +1 -0
  107. package/dist/ui/assets/idle-compaction-settings-1yyApSsQ.js +1 -0
  108. package/dist/ui/assets/image-markers-BFDmhPy4.js +1 -0
  109. package/dist/ui/assets/image-markers-DuyWsic3.js +1 -0
  110. package/dist/ui/assets/{installer-7BWtTgd6.js → installer-C6TqZaGO.js} +3 -3
  111. package/dist/ui/assets/{js-realm-worker-CXI-Ngjy.js → js-realm-worker-Bsb6rmK5.js} +4 -4
  112. package/dist/ui/assets/{jsh-runtime-extensions-Bf9eAUzp.js → jsh-runtime-extensions-Dkujbplu.js} +1 -1
  113. package/dist/ui/assets/kernel-worker-CkZd8Enf.js +4991 -0
  114. package/dist/ui/assets/lick-manager-ULemXDKa.js +2 -0
  115. package/dist/ui/assets/lick-urls-BX4Jyu_T.js +1 -0
  116. package/dist/ui/assets/{lick-ws-bridge-Jk_oJNDM.js → lick-ws-bridge-Bo5sH7lf.js} +1 -1
  117. package/dist/ui/assets/{lick-ws-bridge-ct0HLNad.js → lick-ws-bridge-RFOSPq0w.js} +1 -1
  118. package/dist/ui/assets/{live-session-snapshot-DnNBHXrk.js → live-session-snapshot-BTnyrQCU.js} +1 -1
  119. package/dist/ui/assets/{loader-B90Xxi7L.js → loader-Dw-TPPKt.js} +1 -1
  120. package/dist/ui/assets/{local-llm-Dm5mp8ES.js → local-llm-B-qS5oNT.js} +1 -1
  121. package/dist/ui/assets/{local-llm-CXD-Qof4.js → local-llm-COCS88AU.js} +1 -1
  122. package/dist/ui/assets/{magick-wasm-BEYfJbAX.js → magick-wasm-C7OGcZrJ.js} +2 -2
  123. package/dist/ui/assets/main-CAXbdHY8.js +22 -0
  124. package/dist/ui/assets/main-cherry-DSNvH0CD.js +1 -0
  125. package/dist/ui/assets/{mount-DD8rKTRS.js → mount-BbUBqN71.js} +2 -2
  126. package/dist/ui/assets/{mount-bridge-client-CUPodVo6.js → mount-bridge-client-BejrWSrL.js} +1 -1
  127. package/dist/ui/assets/{mount-bridge-client-BrMqFu_x.js → mount-bridge-client-DGJyqEPG.js} +1 -1
  128. package/dist/ui/assets/{mount-picker-popup-CVvcLs1V.js → mount-picker-popup--ijSfN8u.js} +1 -1
  129. package/dist/ui/assets/{mount-recovery-D6g3iniZ.js → mount-recovery-OxgGejDC.js} +1 -1
  130. package/dist/ui/assets/{mount-C1nMn8bL.js → mount-ysOnJBjr.js} +3 -3
  131. package/dist/ui/assets/navigation-watcher-C8xRyQBd.js +1 -0
  132. package/dist/ui/assets/new-session-JIL4tJ1I.js +2 -0
  133. package/dist/ui/assets/oauth-bootstrap-DP5y5Dy8.js +2 -0
  134. package/dist/ui/assets/oauth-service-Bconf2Pz.js +1 -0
  135. package/dist/ui/assets/oauth-service-t2taQm3p.js +1 -0
  136. package/dist/ui/assets/{openai-codex-BveJezys.js → openai-codex-BZDYkVh6.js} +1 -1
  137. package/dist/ui/assets/{openai-codex-WPOtL2Mf.js → openai-codex-DlFMWNVB.js} +1 -1
  138. package/dist/ui/assets/{openrouter-98Q9mrw8.js → openrouter-BrS9XpJS.js} +1 -1
  139. package/dist/ui/assets/{openrouter-6nEYTdxI.js → openrouter-Dn_iX45f.js} +1 -1
  140. package/dist/ui/assets/{openrouter-oauth-C7w8rKLa.js → openrouter-oauth-CioQlp0x.js} +1 -1
  141. package/dist/ui/assets/{openrouter-oauth-BCNSNHpM.js → openrouter-oauth-D9gZVt7e.js} +1 -1
  142. package/dist/ui/assets/{page-approval-service-DnWfuBVQ.js → page-approval-service-IZdlRu-_.js} +1 -1
  143. package/dist/ui/assets/panel-rpc-handlers-DUN0E_f8.js +2 -0
  144. package/dist/ui/assets/{panelize-shell-C7Ptpa69.js → panelize-shell-KNX1XTnq.js} +1 -1
  145. package/dist/ui/assets/picker-popup-sQtXmfAo.js +1 -0
  146. package/dist/ui/assets/{port-bridge-client-wFmUGeZa.js → port-bridge-client-C1tBBqwu.js} +1 -1
  147. package/dist/ui/assets/{port-bridge-client-BTnhFM03.js → port-bridge-client-CN1cFP4D.js} +1 -1
  148. package/dist/ui/assets/preview-url-r19H6zH1.js +1 -0
  149. package/dist/ui/assets/{provider-1nSAXh4b.js → provider-BfGyOQHs.js} +2 -2
  150. package/dist/ui/assets/{provider-RrpO6cEr.js → provider-DnIZJQjl.js} +1 -1
  151. package/dist/ui/assets/provider-settings-C6uIHjd4.js +1 -0
  152. package/dist/ui/assets/provider-settings-DrWv51sQ.js +2 -0
  153. package/dist/ui/assets/{provider-store-access-kKnmyJjr.js → provider-store-access-BqErJhmB.js} +2 -2
  154. package/dist/ui/assets/provider-store-access-BuQzycZu.js +1 -0
  155. package/dist/ui/assets/{providers-CvD7PECK.js → providers-CF2FF0H2.js} +1 -1
  156. package/dist/ui/assets/providers-CqZKx9qW.js +2 -0
  157. package/dist/ui/assets/proxied-fetch-CiijUcSt.js +2 -0
  158. package/dist/ui/assets/proxied-fetch-DUC7X0GS.js +1 -0
  159. package/dist/ui/assets/{py-realm-worker-DGFMfg27.js → py-realm-worker-BYQkpReo.js} +2 -2
  160. package/dist/ui/assets/{pyodide-BDRAQKP6.js → pyodide-BwD0AtZB.js} +2 -2
  161. package/dist/ui/assets/{quick-llm-I3oLGgvo.js → quick-llm-B9NubAhJ.js} +1 -1
  162. package/dist/ui/assets/{recovery-screen-CBwlz3Qo.js → recovery-screen-cHPORxsj.js} +1 -1
  163. package/dist/ui/assets/{redirect-uri-DZXyVwvI.js → redirect-uri-BKkf61lT.js} +1 -1
  164. package/dist/ui/assets/{remote-terminal-view-Db-9V2n9.js → remote-terminal-view-BHs39pzZ.js} +1 -1
  165. package/dist/ui/assets/request-body-DWn6QJ_H.js +1 -0
  166. package/dist/ui/assets/rest-ops-CLpS_ilI.js +1 -0
  167. package/dist/ui/assets/rest-ops-D2ig8qfG.js +1 -0
  168. package/dist/ui/assets/{run-BBAgk3Ml.js → run-03JeZZol.js} +1 -1
  169. package/dist/ui/assets/{run-COi81T_1.js → run-B5YOTTPD.js} +1 -1
  170. package/dist/ui/assets/run-BOu4zIOZ.js +29 -0
  171. package/dist/ui/assets/{run-DZMSwK6o.js → run-CUXVFhoI.js} +1 -1
  172. package/dist/ui/assets/run-D5Va_gO8.js +81 -0
  173. package/dist/ui/assets/{run-DCeEfqcT.js → run-DZh-18uA.js} +3 -3
  174. package/dist/ui/assets/{secret-env-Cp2Eduxg.js → secret-env-CtpVPUh5.js} +1 -1
  175. package/dist/ui/assets/secret-topology-Yt0aO4Gz.js +1 -0
  176. package/dist/ui/assets/{secrets-bridge-client-CHMeCH4_.js → secrets-bridge-client-BVl0YuB2.js} +1 -1
  177. package/dist/ui/assets/{secrets-bridge-client-CNOtgwnq.js → secrets-bridge-client-C3MaYf_O.js} +1 -1
  178. package/dist/ui/assets/serial-picker-BQF_Eitc.js +1 -0
  179. package/dist/ui/assets/{session-freezer-DVh0_BPO.js → session-freezer-Bltt6zUt.js} +3 -3
  180. package/dist/ui/assets/{setup-feature-flags-remote-DBcwYFl-.js → setup-feature-flags-remote-BkP-HRZt.js} +1 -1
  181. package/dist/ui/assets/setup-standalone-prelude-C2tPUGcI.js +2 -0
  182. package/dist/ui/assets/setup-sudo-BSw__xoN.js +2 -0
  183. package/dist/ui/assets/shared-Djytys1b.js +1 -0
  184. package/dist/ui/assets/shared-Dq_aaG_m.js +4 -0
  185. package/dist/ui/assets/silent-renew-backoff-DIMz5UqB.js +1 -0
  186. package/dist/ui/assets/silent-renew-backoff-SSzHR-oP.js +1 -0
  187. package/dist/ui/assets/{skills-BEEjU5I5.js → skills-wzno5Tj5.js} +1 -1
  188. package/dist/ui/assets/slicc-app-url-B9OxaBDe.js +1 -0
  189. package/dist/ui/assets/slicc-version-HwuyIZfW.js +1 -0
  190. package/dist/ui/assets/{snapshot-CPjJBR4Z.js → snapshot-Bi6QabWh.js} +1 -1
  191. package/dist/ui/assets/{snapshot-features-BZbgnon7.js → snapshot-features-BEPdcWF6.js} +3 -3
  192. package/dist/ui/assets/{speak-Dx2FEQBZ.js → speak-BxNdNjKi.js} +1 -1
  193. package/dist/ui/assets/{sprinkle-bridge-BVfyHi8X.js → sprinkle-bridge-BNzhEsPj.js} +1 -1
  194. package/dist/ui/assets/{sprinkle-manager-Dxc8U2h1.js → sprinkle-manager-CflRWcbq.js} +1 -1
  195. package/dist/ui/assets/{sprinkle-renderer-1C1DNVyK.js → sprinkle-renderer-BnSqYzuY.js} +1 -1
  196. package/dist/ui/assets/{src-kInvzkEg.js → src-Bex_z_yH.js} +583 -148
  197. package/dist/ui/assets/state-DIwkpIaB.js +42 -0
  198. package/dist/ui/assets/{store-BHLq6CyB.js → store-CFx1fIZL.js} +1 -1
  199. package/dist/ui/assets/{store-Dd0aJqlJ.js → store-i7XHN1Er.js} +1 -1
  200. package/dist/ui/assets/{sudo-DBeYNsAF.js → sudo-r7OrTMGT.js} +1 -1
  201. package/dist/ui/assets/sync-dialog-D7Wg49Up.js +1 -0
  202. package/dist/ui/assets/tab-teleport-PAaKnGkm.js +1 -0
  203. package/dist/ui/assets/transcript-export-DP-r8eDz.js +1 -0
  204. package/dist/ui/assets/transformers-env-BmBEKck6.js +1 -0
  205. package/dist/ui/assets/{tray-leader-DTpZEm3l.js → tray-leader-DabyaEs-.js} +1 -1
  206. package/dist/ui/assets/{tray-leave-runtime-BrGJs1g5.js → tray-leave-runtime-VfTj-MHR.js} +1 -1
  207. package/dist/ui/assets/tray-runtime-config-BQL-GPqt.js +1 -0
  208. package/dist/ui/assets/tray-runtime-config-C3Ti4Pik.js +1 -0
  209. package/dist/ui/assets/tray-sidecar-Zx9F34-1.js +2 -0
  210. package/dist/ui/assets/tray-sync-protocol-jKTx-dCF.js +1 -0
  211. package/dist/ui/assets/tray-webrtc-uW6sTyIA.js +1 -0
  212. package/dist/ui/assets/{upgrade-detection-BwiYpjuO.js → upgrade-detection-Cz0eOMYf.js} +1 -1
  213. package/dist/ui/assets/usb-picker-Cbm0jfjl.js +1 -0
  214. package/dist/ui/assets/{voice-reply-BGR2cNZ_.js → voice-reply-B43Nr1Xr.js} +1 -1
  215. package/dist/ui/assets/{wc-attach-BLZapYO1.js → wc-attach-BbT2famN.js} +3 -3
  216. package/dist/ui/assets/wc-browser-Ctsf5Y23.js +1 -0
  217. package/dist/ui/assets/{wc-extension-B_OX4AT5.js → wc-extension-CJ6cvLnw.js} +2 -2
  218. package/dist/ui/assets/{wc-float-label-Ck2cAgp3.js → wc-float-label-CnFnKVLC.js} +1 -1
  219. package/dist/ui/assets/wc-follower-CkrdiOKN.js +17 -0
  220. package/dist/ui/assets/wc-follower-oauth-B6m2XpVI.js +5 -0
  221. package/dist/ui/assets/wc-live-CxoqWHpR.js +8 -0
  222. package/dist/ui/assets/wc-nav-Bnd_bEYw.js +2 -0
  223. package/dist/ui/assets/wc-onboarding-FeHr2fj5.js +2 -0
  224. package/dist/ui/assets/{wc-permissions-iZXqGvtf.js → wc-permissions-CppSymRx.js} +3 -3
  225. package/dist/ui/assets/wc-permissions-providers-BjqCnuQT.js +2 -0
  226. package/dist/ui/assets/wc-placeholder-C79lmtig.js +4 -0
  227. package/dist/ui/assets/wc-settings-DdAeaZhQ.js +59 -0
  228. package/dist/ui/assets/wc-shell-BP3biEU1.js +125 -0
  229. package/dist/ui/assets/{wc-shortcut-config--IseG9bJ.js → wc-shortcut-config-CjOJXjsp.js} +2 -2
  230. package/dist/ui/assets/wc-shortcuts-BDQiHczD.js +41 -0
  231. package/dist/ui/assets/wc-sprinkles-ChlcnDD2.js +2 -0
  232. package/dist/ui/assets/wc-transcript-export-DdEuCfi6.js +2 -0
  233. package/dist/ui/assets/wc-tray-BfoqEbBg.js +5 -0
  234. package/dist/ui/assets/whisper-session-DW7HkDu2.js +2 -0
  235. package/dist/ui/assets/{xai-grok-OLNPEXTT.js → xai-grok-3L0LL1R8.js} +1 -1
  236. package/dist/ui/assets/{xai-grok-C-iHnNxi.js → xai-grok-CKevFY8L.js} +1 -1
  237. package/dist/ui/index.html +15 -17
  238. package/dist/ui/llm-proxy-sw.js +1 -1
  239. package/dist/ui/packages/webapp/index.html +15 -17
  240. package/package.json +5 -4
  241. package/dist/ui/assets/CLAUDE-DhkULx_E.js +0 -1
  242. package/dist/ui/assets/SKILL-DJAvKejL.js +0 -1
  243. package/dist/ui/assets/__vite-browser-external-B19j3y2v.js +0 -1
  244. package/dist/ui/assets/account-store-CCqSr710.js +0 -1
  245. package/dist/ui/assets/api-endpoint-BB41u1PK.js +0 -1
  246. package/dist/ui/assets/api-endpoint-DRYP1Kfj.js +0 -1
  247. package/dist/ui/assets/composer-speech-C8OcijP-.js +0 -1
  248. package/dist/ui/assets/dip-Co-Ga2Ny.js +0 -233
  249. package/dist/ui/assets/ensure-speech-assets-Csum3_gw.js +0 -1
  250. package/dist/ui/assets/export-provider-BunpOA08.js +0 -1
  251. package/dist/ui/assets/export-spool-Bvpvkbul.js +0 -1
  252. package/dist/ui/assets/extension-media-capture-DiCJSgES.js +0 -1
  253. package/dist/ui/assets/extension-ops-CsNT8YjX.js +0 -1
  254. package/dist/ui/assets/float-topology-ey0oewfq.js +0 -1
  255. package/dist/ui/assets/github-BXAKydA_.js +0 -1
  256. package/dist/ui/assets/handoff-link-CGs8AaQW.js +0 -1
  257. package/dist/ui/assets/hid-picker-C4WMZ0dN.js +0 -1
  258. package/dist/ui/assets/host-command-PnmJLRej.js +0 -1
  259. package/dist/ui/assets/idle-compaction-CACtwRU_.js +0 -1
  260. package/dist/ui/assets/idle-compaction-settings-wK6JTbJh.js +0 -1
  261. package/dist/ui/assets/image-markers-DXh8szCT.js +0 -1
  262. package/dist/ui/assets/image-markers-Gur55AOh.js +0 -1
  263. package/dist/ui/assets/kernel-worker-Da1sBAJS.js +0 -4940
  264. package/dist/ui/assets/lick-manager-DtpJc-rA.js +0 -2
  265. package/dist/ui/assets/lick-urls-f41PW9LN.js +0 -1
  266. package/dist/ui/assets/main-BwL0siqZ.js +0 -22
  267. package/dist/ui/assets/main-cherry-D1l6FfCM.js +0 -1
  268. package/dist/ui/assets/navigation-watcher-C3S1JDXr.js +0 -1
  269. package/dist/ui/assets/new-session-DyvxhZfj.js +0 -2
  270. package/dist/ui/assets/oauth-bootstrap-KB9SK_o_.js +0 -2
  271. package/dist/ui/assets/oauth-service-CT-Lvflt.js +0 -1
  272. package/dist/ui/assets/oauth-service-nBlvta_T.js +0 -1
  273. package/dist/ui/assets/panel-rpc-handlers-BPA7Umeo.js +0 -2
  274. package/dist/ui/assets/picker-popup-BjCTzsQH.js +0 -1
  275. package/dist/ui/assets/picker-popup-CFr7T4TJ.js +0 -1
  276. package/dist/ui/assets/preview-url-BvtKejEp.js +0 -1
  277. package/dist/ui/assets/provider-settings-CHQp2onM.js +0 -1
  278. package/dist/ui/assets/provider-settings-Dp2FBrlU.js +0 -2
  279. package/dist/ui/assets/provider-store-access-8IJH8x4u.js +0 -1
  280. package/dist/ui/assets/providers-DuO7vxZy.js +0 -2
  281. package/dist/ui/assets/proxied-fetch-B0SF_J0b.js +0 -1
  282. package/dist/ui/assets/proxied-fetch-CNztWUVW.js +0 -2
  283. package/dist/ui/assets/remote-cdp-transport-BZuQZZe1.js +0 -1
  284. package/dist/ui/assets/request-body-CsruB58l.js +0 -1
  285. package/dist/ui/assets/rest-ops-31ZkM4IG.js +0 -1
  286. package/dist/ui/assets/rest-ops-D6OyHX5S.js +0 -1
  287. package/dist/ui/assets/run-b1PI_1dP.js +0 -81
  288. package/dist/ui/assets/runtime-env-BFnohVwN.js +0 -1
  289. package/dist/ui/assets/runtime-env-Dc36nUmg.js +0 -1
  290. package/dist/ui/assets/runtime-env-NCI8LQob.js +0 -1
  291. package/dist/ui/assets/runtime-env-a_l4ilH_.js +0 -1
  292. package/dist/ui/assets/secret-topology-B8MYKYm6.js +0 -1
  293. package/dist/ui/assets/serial-picker-fzg2DxKj.js +0 -1
  294. package/dist/ui/assets/setup-standalone-prelude-C2jWAIl4.js +0 -2
  295. package/dist/ui/assets/setup-sudo-BK3Rz-OI.js +0 -2
  296. package/dist/ui/assets/shared-BpOmrBY4.js +0 -1
  297. package/dist/ui/assets/shared-CTdWt5ZU.js +0 -4
  298. package/dist/ui/assets/silent-renew-backoff-B8p8Ja1t.js +0 -1
  299. package/dist/ui/assets/silent-renew-backoff-BjF-rXLR.js +0 -1
  300. package/dist/ui/assets/slicc-app-url-DnN_aesz.js +0 -1
  301. package/dist/ui/assets/slicc-version-CUqwa07v.js +0 -1
  302. package/dist/ui/assets/src-DXa5EsFV.js +0 -1
  303. package/dist/ui/assets/src-XLzS9HFL.js +0 -1
  304. package/dist/ui/assets/state-C7WiY9TK.js +0 -42
  305. package/dist/ui/assets/sync-dialog-BZ2j4xTg.js +0 -1
  306. package/dist/ui/assets/tab-teleport-D1Xeuund.js +0 -1
  307. package/dist/ui/assets/transformers-env-DnkszgHP.js +0 -1
  308. package/dist/ui/assets/tray-runtime-config-D9gR_d0I.js +0 -1
  309. package/dist/ui/assets/tray-runtime-config-DCaFjGSS.js +0 -1
  310. package/dist/ui/assets/tray-sidecar-CWqVyj-w.js +0 -2
  311. package/dist/ui/assets/tray-sync-protocol-BNw4_0UD.js +0 -1
  312. package/dist/ui/assets/tray-sync-protocol-BZ5yhJH9.js +0 -1
  313. package/dist/ui/assets/tray-webrtc-De2SkVvZ.js +0 -1
  314. package/dist/ui/assets/usb-picker-B8B4LJT7.js +0 -1
  315. package/dist/ui/assets/wc-browser-AyZY1PPl.js +0 -1
  316. package/dist/ui/assets/wc-follower-CYLEd4rs.js +0 -17
  317. package/dist/ui/assets/wc-follower-oauth-CTgC7D7W.js +0 -5
  318. package/dist/ui/assets/wc-live-s5MA_zAo.js +0 -8
  319. package/dist/ui/assets/wc-nav-DHUiLdz3.js +0 -2
  320. package/dist/ui/assets/wc-onboarding-CX3HBRTZ.js +0 -2
  321. package/dist/ui/assets/wc-permissions-providers-BzoJwkWd.js +0 -2
  322. package/dist/ui/assets/wc-placeholder-BPLzZhYP.js +0 -4
  323. package/dist/ui/assets/wc-settings-tszLzSGm.js +0 -59
  324. package/dist/ui/assets/wc-shell-BBDMmI8N.js +0 -122
  325. package/dist/ui/assets/wc-shortcuts-BWBA9QlD.js +0 -11
  326. package/dist/ui/assets/wc-sprinkles-Cx9Zvx6r.js +0 -2
  327. package/dist/ui/assets/wc-transcript-export-B6x5VMbH.js +0 -2
  328. package/dist/ui/assets/wc-tray-DEV2i60z.js +0 -5
  329. package/dist/ui/assets/whisper-session-i96-W77q.js +0 -2
@@ -1,2 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{c as n}from"./src-DXa5EsFV.js";import{T as r,c as i,f as a,i as o,l as s,p as c,v as l,x as u,y as d}from"./db-DSIYsBgP.js";function ee(e){if(e==null)return null;if(Array.isArray(e)){let t=e.join(`, `).replace(/\n/g,`, `);return t.length===0?null:t}if(typeof e==`string`){let t=e.replace(/\n/g,`, `);return t.length===0?null:t}return null}function te(e,t){let n=e.length,r=t;for(;t<n&&e[t]!==`;`&&e[t]!==`,`&&!re(e[t]);)t++;return{value:e.slice(r,t),end:t}}function ne(e,t){let n=e.length;return t=h(e,t),t>=n||e[t]!==`=`?{value:``,end:t}:(t++,t=h(e,t),t<n&&e[t]===`"`?ie(e,t):te(e,t))}function f(e,t){let n=e.length,r=t;for(;t<n&&_(e.charCodeAt(t));)t++;return t<n&&e[t]===`*`&&t++,r===t?null:{name:e.slice(r,t).toLowerCase(),end:t}}function p(e,t){let n=[],r=e.length,i=t;for(;i<r&&(i=h(e,i),!(i>=r));){if(e[i]===`,`)return{params:n,endIndex:i+1};if(e[i]!==`;`)return{params:n,endIndex:g(e,i)};i++,i=h(e,i);let t=f(e,i);if(!t)return{params:n,endIndex:g(e,i)};let{value:r,end:a}=ne(e,t.end);n.push([t.name,r]),i=a}return{params:n,endIndex:i}}function m(e,t){let n=ee(e);if(n==null)return[];let r=[],i=n.length,a=0;for(;a<i&&(a=h(n,a),!(a>=i));){if(n[a]!==`<`){a=g(n,a);continue}let e=n.indexOf(`>`,a+1);if(e===-1)break;let i=n.slice(a+1,e),{params:o,endIndex:s}=p(n,e+1);a=s;let c=v(i,o,t);c&&r.push(c)}return r}function h(e,t){for(;t<e.length&&(e[t]===` `||e[t]===` `);)t++;return t}function re(e){return e===` `||e===` `}function g(e,t){let n=!1;for(;t<e.length;){let r=e[t];if(n){if(r===`\\`&&t+1<e.length){t+=2;continue}r===`"`&&(n=!1)}else if(r===`"`)n=!0;else if(r===`,`)return t+1;t++}return t}function ie(e,t){t++;let n=``;for(;t<e.length;){let r=e[t];if(r===`\\`)t++,t<e.length&&(n+=e[t],t++);else if(r===`"`)return{value:n,end:t+1};else n+=r,t++}return{value:n,end:t}}function _(e){if(e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122)return!0;switch(e){case 33:case 35:case 36:case 37:case 38:case 39:case 42:case 43:case 45:case 46:case 94:case 95:case 96:case 124:case 126:return!0}return!1}function v(e,t,n){let r={},i={};for(let[e,n]of t){if(e.endsWith(`*`)){let t=b(n);t!=null&&(i[e.slice(0,-1)]=t);continue}e===`rel`&&`rel`in r||(r[e]=n)}for(let[e,t]of Object.entries(i))r[e]=t;let a=y(e,n),o=r.anchor==null?void 0:y(r.anchor,n),s={href:a,rel:(r.rel??``).split(/[ \t]+/).filter(e=>e.length>0),params:r};return o!=null&&(s.anchor=o),r.type!=null&&(s.type=r.type),r.title!=null&&(s.title=r.title),r.hreflang!=null&&(s.hreflang=r.hreflang),s}function y(e,t){if(!t)return e;try{return new URL(e,t).toString()}catch{return e}}function b(e){let t=e.indexOf(`'`);if(t===-1)return null;let n=e.indexOf(`'`,t+1);if(n===-1||e.slice(0,t).toLowerCase()!==`utf-8`)return null;try{return decodeURIComponent(e.slice(n+1))}catch{return null}}function x(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e))n.toLowerCase()===`link`&&typeof r==`string`&&r.length>0&&t.push(r);return t}function S(e){for(let t of e)if(t.rel.includes(`ai-catalog`))return{kind:`ai-catalog`,url:t.href};return null}function C(e){return[e.origin??``,e.kind??``,e.url??``].join(`\0`)}const w=`${n}/rel/handoff`,T=`${n}/rel/upskill`;function E(e){let t=e.replace(/\/+$/,``),n=t.toLowerCase();return n.endsWith(`/skill.md`)?t.slice(0,-9):n===`skill.md`?``:t}const ae=/^[A-Za-z0-9._/-]+$/,oe=/^[A-Za-z0-9._/-]+$/;function D(e){return!(e.length===0||e.length>250||!ae.test(e)||e.startsWith(`-`)||e.startsWith(`/`)||e.endsWith(`/`)||e.includes(`..`)||e.endsWith(`.lock`))}function O(e){return!(e.length===0||e.length>1024||!oe.test(e)||e.startsWith(`-`)||e.startsWith(`/`)||e.includes(`..`))}function se(e,t){let n=t.branch;typeof n==`string`&&D(n)&&(e.branch=n);let r=t.path;if(typeof r==`string`&&r.length>0){let t=E(r);t.length>0&&O(t)&&(e.path=t)}}function k(e){for(let t of e){if(t.rel.includes(w)){let e={verb:`handoff`,target:t.href};return t.title!=null&&t.title.length>0&&(e.instruction=t.title),e}if(t.rel.includes(T)){let e={verb:`upskill`,target:t.href};return t.title!=null&&t.title.length>0&&(e.instruction=t.title),se(e,t.params),e}}return null}function ce(e){return[e.verb,e.target,e.branch??``,e.path??``,e.instruction??``].join(`\0`)}function le(e,t){let n=x(e);if(n.length===0)return{match:null,links:[]};let r=m(n,t);return{match:k(r),links:r}}function A(e){return Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)}function j(e,t){return e.y===t.y&&e.m===t.m&&e.d===t.d&&e.h===t.h&&e.i===t.i&&e.s===t.s}function ue(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`Invalid ISO8601 passed to timezone parser.`);let r=e.substring(9);return r.includes(`Z`)||r.includes(`+`)||r.includes(`-`)?F(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):F(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}function M(e,t,n){return N(ue(e,t),n)}function N(e,t){let n=new Date(A(e)),r=P(n,e.tz),i=A(e)-A(r),a=new Date(n.getTime()+i),o=P(a,e.tz);if(j(o,e)){let t=new Date(a.getTime()-36e5);return j(P(t,e.tz),e)?t:a}let s=new Date(a.getTime()+A(e)-A(o));if(j(P(s,e.tz),e))return s;if(t)throw Error(`Invalid date passed to fromTZ()`);return a.getTime()>s.getTime()?a:s}function P(e,t){let n,r;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`,second:`numeric`,hour12:!1}),r=n.formatToParts(e)}catch(e){let n=e instanceof Error?e.message:String(e);throw RangeError(`toTZ: Invalid timezone '${t}' or date. Please provide a valid IANA timezone (e.g., 'America/New_York', 'Europe/Stockholm'). Original error: ${n}`)}let i={year:0,month:0,day:0,hour:0,minute:0,second:0};for(let e of r)(e.type===`year`||e.type===`month`||e.type===`day`||e.type===`hour`||e.type===`minute`||e.type===`second`)&&(i[e.type]=parseInt(e.value,10));if(isNaN(i.year)||isNaN(i.month)||isNaN(i.day)||isNaN(i.hour)||isNaN(i.minute)||isNaN(i.second))throw Error(`toTZ: Failed to parse all date components from timezone '${t}'. This may indicate an invalid date or timezone configuration. Parsed components: ${JSON.stringify(i)}`);return i.hour===24&&(i.hour=0),{y:i.year,m:i.month,d:i.day,h:i.hour,i:i.minute,s:i.second,tz:t}}function F(e,t,n,r,i,a,o){return{y:e,m:t,d:n,h:r,i,s:a,tz:o}}var I=[1,2,4,8,16],L=class{pattern;timezone;mode;alternativeWeekdays;sloppyRanges;second;minute;hour;day;month;dayOfWeek;year;lastDayOfMonth;lastWeekday;nearestWeekdays;starDOM;starDOW;starYear;useAndLogic;constructor(e,t,n){this.pattern=e,this.timezone=t,this.mode=n?.mode??`auto`,this.alternativeWeekdays=n?.alternativeWeekdays??!1,this.sloppyRanges=n?.sloppyRanges??!1,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.year=Array(1e4).fill(0),this.lastDayOfMonth=!1,this.lastWeekday=!1,this.nearestWeekdays=Array(31).fill(0),this.starDOM=!1,this.starDOW=!1,this.starYear=!1,this.useAndLogic=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.match(/\S+/g)||[``],t=e.length;if(e.length<5||e.length>7)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five, six, or seven space separated parts are required.`);if(this.mode!==`auto`){let e;switch(this.mode){case`5-part`:e=5;break;case`6-part`:e=6;break;case`7-part`:e=7;break;case`5-or-6-parts`:e=[5,6];break;case`6-or-7-parts`:e=[6,7];break;default:e=0}if(!(Array.isArray(e)?e.includes(t):t===e)){let n=Array.isArray(e)?e.join(` or `):e.toString();throw TypeError(`CronPattern: mode '${this.mode}' requires exactly ${n} parts, but pattern '${this.pattern}' has ${t} parts.`)}}if(e.length===5&&e.unshift(`0`),e.length===6&&e.push(`*`),e[3].toUpperCase()===`LW`?(this.lastWeekday=!0,e[3]=``):e[3].toUpperCase().indexOf(`L`)>=0&&(e[3]=e[3].replace(/L/gi,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[6]==`*`&&(this.starYear=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.alternativeWeekdays?this.replaceAlphaDaysQuartz(e[5]):this.replaceAlphaDays(e[5])),e[5].startsWith(`+`)&&(this.useAndLogic=!0,e[5]=e[5].substring(1),e[5]===``))throw TypeError(`CronPattern: Day-of-week field cannot be empty after '+' modifier.`);switch(e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0&&(e[0]=e[0].replace(/\?/g,`*`),e[1]=e[1].replace(/\?/g,`*`),e[2]=e[2].replace(/\?/g,`*`),e[3]=e[3].replace(/\?/g,`*`),e[4]=e[4].replace(/\?/g,`*`),e[5]=e[5].replace(/\?/g,`*`),e[6]&&=e[6].replace(/\?/g,`*`)),this.mode){case`5-part`:e[0]=`0`,e[6]=`*`;break;case`6-part`:e[6]=`*`;break;case`5-or-6-parts`:e[6]=`*`}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1);let n=this.alternativeWeekdays?-1:0;this.partToArray(`dayOfWeek`,e[5],n,63),this.partToArray(`year`,e[6],0,1),!this.alternativeWeekdays&&this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth,o=e===`day`&&this.lastWeekday;if(t===``&&!a&&!o)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let s=t.split(`,`);if(s.length>1)for(let t=0;t<s.length;t++)this.partToArray(e,s[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===3?/[^/*0-9,\-WwLl]+/:t===5?/[^/*0-9,\-#Ll]+/:/[^/*0-9,\-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=e.toUpperCase().includes(`W`);if(t!==`day`&&a)throw TypeError(`CronPattern: Nearest weekday modifier (W) only allowed in day-of-month.`);a&&(t=`nearestWeekdays`);let o=parseInt(i[0],10)+n;if(isNaN(o))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,o,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`||e===`nearestWeekdays`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`){if(t<0||t>=12)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`year`&&(t<1||t>=1e4))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t+` (supported range: 1-9999)`);this[e][t]=n}validateNotNaN(e,t){if(isNaN(e))throw TypeError(t)}validateRange(e,t,n,r,i){if(e>t)throw TypeError(`CronPattern: From value is larger than to value: '`+i+`'`);if(n!==void 0){if(n===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(n>this[r].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[r].length+`)`)}}handleRangeWithStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in ranges with stepping.`);let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);this.validateNotNaN(l,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(u,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateNotNaN(d,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(l,u,d,t,e);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}else if(n.toUpperCase().endsWith(`L`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: L modifier only allowed in day-of-week field (use L alone for day-of-month)`);r=`L`,n=n.slice(0,-1)}return[n,r]}handleRange(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in a range.`);let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;this.validateNotNaN(o,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(s,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateRange(o,s,void 0,t,e);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in parts with stepping.`);let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);if(this.sloppyRanges)a[0]===``&&(a[0]=`*`);else{if(a[0]===``)throw TypeError(`CronPattern: Syntax error, stepping with missing prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`);if(a[0]!==`*`)throw TypeError(`CronPattern: Syntax error, stepping with numeric prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`)}let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);this.validateNotNaN(s,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(0,this[t].length-1,s,t,e);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaDaysQuartz(e){return e.replace(/sun/gi,`1`).replace(/mon/gi,`2`).replace(/tue/gi,`3`).replace(/wed/gi,`4`).replace(/thu/gi,`5`).replace(/fri/gi,`6`).replace(/sat/gi,`7`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();if(t===`@yearly`||t===`@annually`)return`0 0 1 1 *`;if(t===`@monthly`)return`0 0 1 * *`;if(t===`@weekly`)return`0 0 * * 0`;if(t===`@daily`||t===`@midnight`)return`0 0 * * *`;if(t===`@hourly`)return`0 * * * *`;if(t===`@reboot`)throw TypeError(`CronPattern: @reboot is not supported in this environment. This is an event-based trigger that requires system startup detection.`);return e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t.toUpperCase()===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|32;else if(t===63)this.dayOfWeek[e]=63;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|I[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},R=[31,28,31,30,31,30,31,31,30,31,30,31],z=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],B=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date){if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`)}else if(t==null)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}getLastDayOfMonth(e,t){return t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t]}getLastWeekday(e,t){let n=this.getLastDayOfMonth(e,t),r=new Date(Date.UTC(e,t,n)).getUTCDay();return r===0?n-2:r===6?n-1:n}getNearestWeekday(e,t,n){let r=this.getLastDayOfMonth(e,t);if(n>r)return-1;let i=new Date(Date.UTC(e,t,n)).getUTCDay();return i===0?n===r?n-2:n+1:i===6?n===1?n+2:n-1:n}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&63&&I[a-1]&r)return!0;if(r&32){let r=this.getLastDayOfMonth(e,t);for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0){if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else try{let t=P(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}catch(e){let t=e instanceof Error?e.message:String(e);throw TypeError(`CronDate: Failed to convert date to timezone '${this.tz}'. This may happen with invalid timezone names or dates. Original error: ${t}`)}}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.month<0||this.day>R[this.month]||this.day<1||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}return!1}fromString(e){if(typeof this.tz==`number`){let t=M(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(M(e,this.tz))}findNext(e,t,n,r){return this._findMatch(e,t,n,r,1)}_findMatch(e,t,n,r,i){let a=this[t],o;n.lastDayOfMonth&&(o=this.getLastDayOfMonth(this.year,this.month));let s=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0,c=this[t]+r,l=i===1?e=>e<n[t].length:e=>e>=0;for(let u=c;l(u);u+=i){let i=n[t][u];if(t===`day`&&!i){for(let e=0;e<n.nearestWeekdays.length;e++)if(n.nearestWeekdays[e]){let t=this.getNearestWeekday(this.year,this.month,e-r);if(t===-1)continue;if(t===u-r){i=1;break}}}if(t===`day`&&n.lastWeekday){let e=this.getLastWeekday(this.year,this.month);u-r===e&&(i=1)}if(t===`day`&&n.lastDayOfMonth&&u-r==o&&(i=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(s+(u-r-1))%7];if(t&&t&63)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,u-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);n.useAndLogic?i&&=t:!e.domAndDow&&!n.starDOM?i||=t:i&&=t}if(i)return this[t]=u-r,a===this[t]?1:2}return 3}recurse(e,t,n){if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year+1;n<e.year.length&&n<1e4;n++)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=0,this.day=1,this.hour=0,this.minute=0,this.second=0,this.ms=0}if(this.year>=1e4)return null}let r=this.findNext(t,z[n][0],e,z[n][2]);if(r>1){let i=n+1;for(;i<z.length;)this[z[i][0]]=-z[i][2],i++;if(r===3){if(this[z[n][1]]++,this[z[n][0]]=-z[n][2],this.apply(),n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0&&this.year<1e4;)this.year++;if(this.year>=1e4||this.year>=e.year.length)return null}return this.recurse(e,t,0)}if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=z.length?this:(e.starYear?this.year>=3e3:this.year>=1e4)?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}decrement(e,t){return this.second-=t.interval!==void 0&&t.interval>1?t.interval:1,this.ms=0,this.apply(),this.recurseBackward(e,t,0,0)}recurseBackward(e,t,n,r=0){if(r>1e4)return null;if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year-1;n>=0;n--)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=11,this.day=31,this.hour=23,this.minute=59,this.second=59,this.ms=0}if(this.year<0)return null}let i=this.findPrevious(t,z[n][0],e,z[n][2]);if(i>1){let a=n+1;for(;a<z.length;){let t=z[a][0],n=z[a][2],r=this.getMaxPatternValue(t,e,n);this[t]=r,a++}if(i===3){if(this[z[n][1]]--,n===0){let e=this.getLastDayOfMonth(this.year,this.month);this.day>e&&(this.day=e)}if(n===1){if(this.day<=0)this.day=1;else{let e=this.year,t=this.month;for(;t<0;)t+=12,e--;for(;t>11;)t-=12,e++;let n=t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t];this.day>n&&(this.day=n)}}this.apply();let i=z[n][0],a=z[n][2],o=this.getMaxPatternValue(i,e,a);if(i===`day`){let e=this.getLastDayOfMonth(this.year,this.month);this[i]=Math.min(o,e)}else this[i]=o;if(this.apply(),n===0){let t=z[1][2],n=this.getMaxPatternValue(`day`,e,t),r=this.getLastDayOfMonth(this.year,this.month),i=Math.min(n,r);i!==this.day&&(this.day=i,this.hour=this.getMaxPatternValue(`hour`,e,z[2][2]),this.minute=this.getMaxPatternValue(`minute`,e,z[3][2]),this.second=this.getMaxPatternValue(`second`,e,z[4][2]))}if(n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0;)this.year--;if(this.year<0)return null}return this.recurseBackward(e,t,0,r+1)}if(this.apply())return this.recurseBackward(e,t,n-1,r+1)}return n+=1,n>=z.length?this:this.year<0?null:this.recurseBackward(e,t,n,r+1)}getMaxPatternValue(e,t,n){if(e===`day`&&t.lastDayOfMonth||e===`day`&&!t.starDOW)return this.getLastDayOfMonth(this.year,this.month);for(let r=t[e].length-1;r>=0;r--)if(t[e][r])return r-n;return t[e].length-1-n}findPrevious(e,t,n,r){return this._findMatch(e,t,n,r,-1)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):N(F(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}match(e,t){if(!e.starYear&&(this.year<0||this.year>=e.year.length||e.year[this.year]===0))return!1;for(let n=0;n<z.length;n++){let r=z[n][0],i=z[n][2],a=this[r];if(a+i<0||a+i>=e[r].length)return!1;let o=e[r][a+i];if(r===`day`){if(!o){for(let t=0;t<e.nearestWeekdays.length;t++)if(e.nearestWeekdays[t]){let e=this.getNearestWeekday(this.year,this.month,t-i);if(e!==-1&&e===a){o=1;break}}}if(e.lastWeekday&&a===this.getLastWeekday(this.year,this.month)&&(o=1),e.lastDayOfMonth&&a===this.getLastDayOfMonth(this.year,this.month)&&(o=1),!e.starDOW){let n=new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay(),r=e.dayOfWeek[(n+(a-1))%7];r&&r&63&&(r=+!!this.isNthWeekdayOfMonth(this.year,this.month,a,r)),e.useAndLogic?o&&=r:!t.domAndDow&&!e.starDOM?o||=r:o&&=r}}if(!o)return!1}return!0}};function V(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode!==void 0&&e.domAndDow===void 0?e.domAndDow=!e.legacyMode:e.domAndDow===void 0&&(e.domAndDow=!1),e.legacyMode=!e.domAndDow,e.paused=e.paused!==void 0&&e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch!==void 0&&e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.dayOffset=e.dayOffset===void 0?0:parseInt(e.dayOffset.toString(),10),e.unref=e.unref!==void 0&&e.unref,e.mode=e.mode===void 0?`auto`:e.mode,e.alternativeWeekdays=e.alternativeWeekdays!==void 0&&e.alternativeWeekdays,e.sloppyRanges=e.sloppyRanges!==void 0&&e.sloppyRanges,![`auto`,`5-part`,`6-part`,`7-part`,`5-or-6-parts`,`6-or-7-parts`].includes(e.mode))throw Error(`CronOptions: mode must be one of 'auto', '5-part', '6-part', '7-part', '5-or-6-parts', or '6-or-7-parts'.`);if(e.startAt&&(e.startAt=new B(e.startAt,e.timezone)),e.stopAt&&(e.stopAt=new B(e.stopAt,e.timezone)),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);if(e.dayOffset!==void 0&&e.dayOffset!==0&&isNaN(e.dayOffset))throw Error(`CronOptions: Invalid value passed for dayOffset, should be a number representing days to offset.`);return e}function H(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function de(e){return H(e)}function fe(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var U=3e4,W=[],pe=class{name;options;_states;fn;getTz(){return this.options.timezone||this.options.utcOffset}applyDayOffset(e){if(this.options.dayOffset!==void 0&&this.options.dayOffset!==0){let t=this.options.dayOffset*24*60*60*1e3;return new Date(e.getTime()+t)}return e}constructor(e,t,n){let r,i;if(H(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(H(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=V(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new L(`* * * * *`,void 0,{mode:`auto`})},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new B(e,this.getTz()):this._states.pattern=new L(e,this.options.timezone,{mode:this.options.mode,alternativeWeekdays:this.options.alternativeWeekdays,sloppyRanges:this.options.sloppyRanges}),this.name){if(W.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);W.push(this)}return i!==void 0&&de(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?this.applyDayOffset(t.getDate(!1)):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=t||this._states.currentRun||void 0;return this._enumerateRuns(e,n,`next`)}previousRuns(e,t){return this._enumerateRuns(e,t||void 0,`previous`)}_enumerateRuns(e,t,n){let r=[],i=t?new B(t,this.getTz()):null,a=n===`next`?this._next:this._previous;for(;e--;){let e=a.call(this,i);if(!e)break;let t=e.getDate(!1);r.push(this.applyDayOffset(t)),i=e}return r}match(e){if(this._states.once){let t=new B(e,this.getTz());t.ms=0;let n=new B(this._states.once,this.getTz());return n.ms=0,t.getTime()===n.getTime()}let t=new B(e,this.getTz());return t.ms=0,t.match(this._states.pattern,this.options)}getPattern(){if(!this._states.once)return this._states.pattern?this._states.pattern.pattern:void 0}getOnce(){return this._states.once?this._states.once.getDate():null}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof B||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new B(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=W.indexOf(this);e>=0&&W.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>U&&(t=U),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&fe(this._states.currentTimeout),this)}async _trigger(e){this._states.blocking=!0,this._states.currentRun=new B(void 0,this.getTz());try{if(this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){if(H(this.options.catch))try{this.options.catch(e,this)}catch{}}else this.fn!==void 0&&await this.fn(this,this.options.context)}finally{this._states.previousRun=new B(e,this.getTz()),this._states.blocking=!1}}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&H(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new B(e,this.getTz()),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new B(e,this.getTz());return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_previous(e){let t=new B(e,this.getTz());this.options.stopAt&&t.getTime()>this.options.stopAt.getTime()&&(t=this.options.stopAt);let n=new B(t,this.getTz());return this._states.once?this._states.once.getTime()<t.getTime()?this._states.once:null:(n=n.decrement(this._states.pattern,this.options),n===null||this.options.startAt&&n.getTime()<this.options.startAt.getTime()?null:n)}_calculatePreviousRun(e,t){let n=new B(void 0,this.getTz()),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new B(r,this.getTz()).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};function G(e,t){try{return new pe(e.trim(),{domAndDow:!0}).nextRun(t)??null}catch{return null}}var me=e({FORWARDABLE_TO_LEADER:()=>q,LickManager:()=>Y,buildActiveLicksError:()=>Q,getLickManager:()=>ge,lickScoopMatches:()=>X,lickTargetCandidates:()=>Z});const K=t(`lick-manager`),q=new Set([`navigate`,`discovery`]);function J(e){if(typeof e!=`object`||!e)return null;let t=e;return typeof t.verb!=`string`||typeof t.target!=`string`?null:ce({verb:t.verb,target:t.target,branch:typeof t.branch==`string`?t.branch:void 0,path:typeof t.path==`string`?t.path:void 0,instruction:typeof t.instruction==`string`?t.instruction:void 0})}function he(e){return!e.discoveryKind&&!e.discoveryUrl&&!e.discoveryOrigin?null:C({origin:e.discoveryOrigin,kind:e.discoveryKind,url:e.discoveryUrl})}var Y=class{webhooks=new Map;crontasks=new Map;cronInterval=null;eventHandler=null;forwarder=null;seenNavigateFingerprints=new Set;seenDiscoveryFingerprints=new Set;unitRoster=null;discoveryIgnore=null;async init(){await d();let e=await a();for(let t of e)this.webhooks.set(t.id,t);K.info(`Loaded webhooks`,{count:this.webhooks.size});let t=await s();for(let e of t)this.crontasks.set(e.id,e);K.info(`Loaded crontasks`,{count:this.crontasks.size}),await this.reconcileOrphans(),this.cronInterval=setInterval(()=>this.runCronScheduler(),6e4),K.info(`Cron scheduler started`)}setUnitRosterProvider(e){this.unitRoster=e}resolveLickTarget(e){let t=this.unitRoster?.();return t?t.some(t=>X(e,t.name,t.folder))?{status:`resolved`}:{status:`unresolved`,candidates:Z(t)}:{status:`unverifiable`}}setDiscoveryIgnore(e){this.discoveryIgnore=e}isOrphanedLick(e){return e?this.resolveLickTarget(e).status===`unresolved`:!1}async reconcileOrphans(){if(this.unitRoster){for(let e of Array.from(this.webhooks.values()))if(this.isOrphanedLick(e.scoop)){K.warn(`Removing orphaned webhook at init; target scoop no longer exists`,{id:e.id,name:e.name,scoop:e.scoop}),this.webhooks.delete(e.id);try{await i(e.id)}catch(t){K.warn(`Failed to delete orphaned webhook from DB`,{id:e.id,error:t instanceof Error?t.message:String(t)})}}for(let e of Array.from(this.crontasks.values()))if(this.isOrphanedLick(e.scoop)){K.warn(`Removing orphaned cron task at init; target scoop no longer exists`,{id:e.id,name:e.name,scoop:e.scoop}),this.crontasks.delete(e.id);try{await o(e.id)}catch(t){K.warn(`Failed to delete orphaned cron task from DB`,{id:e.id,error:t instanceof Error?t.message:String(t)})}}}}dispose(){this.cronInterval&&=(clearInterval(this.cronInterval),null)}setEventHandler(e){this.eventHandler=e}setForwarder(e){this.forwarder=e}dispatch(e){if(!(e.type===`discovery`&&this.shouldSuppressDiscovery(e))){if(this.forwarder&&q.has(e.type)){this.forwarder(e);return}this.eventHandler?.(e)}}handleForwardedEvent(e){e.type===`discovery`&&this.shouldSuppressDiscovery(e)||this.isDuplicateFingerprint(e)||this.eventHandler?.(e)}emitEvent(e){e.type===`discovery`&&this.shouldSuppressDiscovery(e)||this.isDuplicateFingerprint(e)||(K.info(`External lick event`,{type:e.type,target:e.targetScoop}),this.dispatch(e))}isDuplicateFingerprint(e){let t=null,n,r;if(e.type===`navigate`)t=J(e.body),n=this.seenNavigateFingerprints,r=`navigate`;else if(e.type===`discovery`)t=he(e),n=this.seenDiscoveryFingerprints,r=`discovery`;else return!1;return t===null?!1:n.has(t)?(K.debug(`Suppressing duplicate ${r} lick`,{fingerprint:t}),!0):(n.add(t),!1)}shouldSuppressDiscovery(e){return e.discoverySource===`live-navigation`?this.discoveryIgnore?.(e)?(K.debug(`Suppressing ignored llms.txt discovery`,{origin:e.discoveryOrigin}),!0):!1:(K.debug(`Suppressing discovery without live-navigation provenance`),!0)}async createWebhook(e,t,n){let i=this.generateId(),a={id:i,name:e,createdAt:new Date().toISOString(),filter:n,scoop:t};return n&&this.compileFilter(n,!0),this.webhooks.set(i,a),await r(a),K.info(`Webhook created`,{id:i,name:e,scoop:t}),a}async deleteWebhook(e){return this.webhooks.has(e)?(this.webhooks.delete(e),await i(e),K.info(`Webhook deleted`,{id:e}),!0):await l(e)!==null&&(await i(e),K.info(`Webhook deleted`,{id:e}),!0)}listWebhooks(){return Array.from(this.webhooks.values())}getWebhook(e){return this.webhooks.get(e)}handleWebhookEvent(e,t,n){let r=this.webhooks.get(e);if(!r)return K.warn(`Webhook not found`,{webhookId:e}),`unknown-webhook`;if(this.isOrphanedLick(r.scoop))return K.warn(`Webhook target scoop not found — dropping delivery`,{webhookId:e,name:r.name,scoop:r.scoop}),`unresolved-target`;let i={type:`webhook`,webhookId:e,webhookName:r.name,targetScoop:r.scoop,timestamp:new Date().toISOString(),headers:t,body:n};if(r.filter)try{let t=this.compileFilter(r.filter,!0)(i);if(t===!1)return K.debug(`Webhook event dropped by filter`,{webhookId:e,name:r.name}),`filtered`;typeof t==`object`&&t&&(i=t)}catch(t){K.error(`Webhook filter error`,{webhookId:e,error:t instanceof Error?t.message:String(t)})}return K.info(`Webhook event received`,{webhookId:e,name:r.name,targetScoop:r.scoop}),this.dispatch(i),`delivered`}async createCronTask(e,t,n,r){let i=G(t,new Date);if(!i)throw Error(`Invalid cron expression`);r&&this.compileFilter(r,!1);let a=this.generateId(),o={id:a,name:e,cron:t,scoop:n,filter:r,nextRun:i.toISOString(),lastRun:null,status:`active`,createdAt:new Date().toISOString()};return this.crontasks.set(a,o),await u(o),K.info(`Cron task created`,{id:a,name:e,cron:t,scoop:n}),o}async deleteCronTask(e){return this.crontasks.has(e)?(this.crontasks.delete(e),await o(e),K.info(`Cron task deleted`,{id:e}),!0):await c(e)!==null&&(await o(e),K.info(`Cron task deleted`,{id:e}),!0)}listCronTasks(){return Array.from(this.crontasks.values())}getCronTask(e){return this.crontasks.get(e)}getLicksForScoop(e,t){return{webhooks:Array.from(this.webhooks.values()).filter(n=>X(n.scoop,e,t)),cronTasks:Array.from(this.crontasks.values()).filter(n=>X(n.scoop,e,t))}}async getLicksForScoopFromDb(e,t){let[n,r]=await Promise.all([a(),s()]);return{webhooks:n.filter(n=>X(n.scoop,e,t)),cronTasks:r.filter(n=>X(n.scoop,e,t))}}async deleteIfOrphanedCron(e){if(!this.isOrphanedLick(e.scoop))return!1;K.warn(`Deleting orphaned cron task; target scoop no longer exists`,{id:e.id,name:e.name,scoop:e.scoop}),this.crontasks.delete(e.id);try{await o(e.id)}catch(t){K.warn(`Failed to delete orphaned cron task from DB`,{id:e.id,error:t instanceof Error?t.message:String(t)})}return!0}async runCronScheduler(){let e=new Date;for(let t of this.crontasks.values())await this.deleteIfOrphanedCron(t)||t.status===`active`&&t.nextRun&&(new Date(t.nextRun)>e||await this.runDueCronTask(t,e))}async runDueCronTask(e,t){let n={time:t.toISOString()};if(e.filter)try{let r=this.compileFilter(e.filter,!1)(null);if(r===!1){K.debug(`Cron task skipped by filter`,{id:e.id,name:e.name}),e.nextRun=G(e.cron,t)?.toISOString()??null,e.lastRun=t.toISOString(),await u(e);return}typeof r==`object`&&r&&(n=r)}catch(t){K.error(`Cron filter error`,{id:e.id,error:t instanceof Error?t.message:String(t)})}let r={type:`cron`,cronId:e.id,cronName:e.name,targetScoop:e.scoop,timestamp:t.toISOString(),body:n};K.info(`Cron task running`,{id:e.id,name:e.name}),this.dispatch(r),e.nextRun=G(e.cron,t)?.toISOString()??null,e.lastRun=t.toISOString(),await u(e)}generateId(){let e=``;for(let t=0;t<12;t++)e+=`abcdefghijklmnopqrstuvwxyz0123456789`[Math.floor(Math.random()*36)];return e}compileFilter(e,t){try{return t?Function(`event`,`return (${e})(event);`):Function(`return (${e})();`)}catch(e){throw Error(`Invalid filter function: ${e instanceof Error?e.message:String(e)}`)}}};function X(e,t,n){return e?e===t||e===n||`${e}-scoop`===n:!1}function Z(e){let t=new Set;for(let n of e)t.add(n.folder),n.name&&n.name!==n.folder&&t.add(n.name);return Array.from(t)}function Q(e,t,n){if(t.length===0&&n.length===0)return null;let r=[];t.length>0&&r.push(`${t.length} active webhook${t.length>1?`s`:``}`),n.length>0&&r.push(`${n.length} active cron task${n.length>1?`s`:``}`);let i=[...t.map(e=>` webhook delete ${e.id}`),...n.map(e=>` crontask delete ${e.id}`)].join(`
2
- `);return Error(`Cannot remove scoop '${e}': it has ${r.join(` and `)}. Unregister them first:\n${i}`)}let $=null;function ge(){return $||=new Y,$}export{k as a,O as c,T as i,S as l,me as n,le as o,G as r,D as s,Q as t,m as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import"./tray-runtime-config-DCaFjGSS.js";import"./api-endpoint-DRYP1Kfj.js";const t=`slicc.followerTrayStatus`;function n(e){try{let t=globalThis.localStorage?.getItem(e);if(!t)return null;let n=JSON.parse(t);return typeof n?.state==`string`?n.state:null}catch{return null}}function r(){let e=n(t);return e!==null&&e!==`inactive`?`follower`:n(`slicc.leaderTrayStatus`)===`leader`?`leader`:`standalone`}let i={state:`inactive`,session:null,error:null};function a(){return{...i,session:i.session?{...i.session}:null}}function o(){let e=a();if(e.state!==`inactive`)return e;try{let e=globalThis.localStorage?.getItem(`slicc.leaderTrayStatus`);if(e){let t=JSON.parse(e);if(t?.state&&t.state!==`inactive`)return t}}catch{}return e}const s=new Set;function c(e){return s.add(e),()=>{s.delete(e)}}e(`tray-leader`);function l(e){let t=new URL(e);return`${t.protocol===`https:`?`wss:`:`ws:`}//${t.host}/licks-ws`}function u(e,t){return`${new URL(e).origin}/webhooks/${t}`}function d(e,t){return`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`}export{a,r as c,o as i,d as n,c as o,u as r,t as s,l as t};
@@ -1,22 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-feature-flags-remote-DBcwYFl-.js","assets/tray-runtime-config-D9gR_d0I.js","assets/src-XLzS9HFL.js","assets/proxied-fetch-CNztWUVW.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/messages-BD4p8GuF.js","assets/feature-flags-DaSRRz0w.js","assets/wc-shell-BBDMmI8N.js","assets/logger-DDBAeTLF.js","assets/agent-message-to-chat-Cnv4uh07.js","assets/image-markers-DXh8szCT.js","assets/mime-types-D0xZwlMO.js","assets/telemetry-MJ77Fp1a.js","assets/icons-BJsliYCh.js","assets/preview-url-BvtKejEp.js","assets/runtime-env-a_l4ilH_.js","assets/dictation-priming-CNllGgNq.js","assets/timestamp-preference-sKwBl5I8.js","assets/src-kInvzkEg.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/panel-registry-CJdOibpf.js","assets/layout-schema-m9_VAwOw.js","assets/surface-fullscreen-4YjALjE7.js","assets/trusted-layer-ghPA1ENf.js","assets/wc-shortcuts-BWBA9QlD.js","assets/wc-shell-WkeczD9x.css","assets/wc-follower-CYLEd4rs.js","assets/setup-standalone-prelude-C2jWAIl4.js","assets/runtime-env-NCI8LQob.js","assets/setup-sudo-BK3Rz-OI.js","assets/tray-sync-protocol-BZ5yhJH9.js","assets/wc-live-s5MA_zAo.js","assets/account-store-EaBcIxhN.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/float-topology-ey0oewfq.js","assets/secret-topology-B8MYKYm6.js","assets/secrets-bridge-client-CHMeCH4_.js","assets/port-bridge-client-wFmUGeZa.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-DuO7vxZy.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/tray-follower-status-BAjnN7Ar.js","assets/src-BWaKqLvQ.js","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-DTpZEm3l.js","assets/db-cKsBsMMN.js","assets/record-DOq72weu.js","assets/shared-BpOmrBY4.js","assets/export-provider-BunpOA08.js","assets/dip-Co-Ga2Ny.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-operations-BBXJ4GF8.js","assets/usb-device-registry-CRsCisej.js","assets/sprinkle-renderer-1C1DNVyK.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-BVfyHi8X.js","assets/session-freezer-DVh0_BPO.js","assets/types-Dgm4REV3.js","assets/follower-presentation-DqBw0YiV.js","assets/wc-unit-context-1szdc5sL.js","assets/host-command-PnmJLRej.js","assets/browser-DGwroBSO.js","assets/agent-handle-CNeA3sd0.js","assets/wc-float-label-Ck2cAgp3.js","assets/wc-follower-oauth-CTgC7D7W.js","assets/slicc-app-url-DnN_aesz.js","assets/tray-webrtc-De2SkVvZ.js","assets/remote-cdp-transport-BZuQZZe1.js","assets/pending-request-table-Dgn6qYdL.js","assets/tray-sync-protocol-BNw4_0UD.js","assets/export-spool-Bvpvkbul.js","assets/wc-sprinkles-Cx9Zvx6r.js","assets/wc-attach-BLZapYO1.js","assets/wc-permissions-iZXqGvtf.js","assets/oauth-bootstrap-KB9SK_o_.js","assets/provider-settings-Dp2FBrlU.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/logger-BoSvu4mW.js","assets/legacy-styles-B3nS5QUo.js","assets/connect-surface-DrBGja7c.js","assets/wc-extension-B_OX4AT5.js","assets/wc-detached-B3WCbbZT.js"])))=>i.map(i=>d[i]);
2
- import"./modulepreload-polyfill-P2Xu9kJm.js";import{a as e}from"./account-store-EaBcIxhN.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{c as r,o as i,s as a,t as o}from"./setup-standalone-prelude-C2jWAIl4.js";import{n as s,t as c}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-NCI8LQob.js";import{t as l}from"./telemetry-MJ77Fp1a.js";import{a as u}from"./providers-DuO7vxZy.js";import{n as d}from"./feature-flags-DaSRRz0w.js";import"./provider-settings-Dp2FBrlU.js";var f=`slicc:bridge-config`,p=`slicc:extension-delegate-config`;function m(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.type===`slicc:ext-fetch`&&typeof t.extensionId==`string`&&!!t.request&&typeof t.request==`object`}var h=n(`boot/ext-fetch-delegate`);function g(){let e=globalThis.chrome?.runtime;return e&&typeof e.connect==`function`?e:null}function _(e,t,n){let r=g();if(!r){try{t.postMessage({type:`response-error`,error:`extension-delegate: chrome.runtime.connect unavailable`})}catch{}t.close();return}let i=e.extensionId||n,a;try{a=r.connect(i,{name:`fetch-proxy.fetch`})}catch(e){try{t.postMessage({type:`response-error`,error:`extension-delegate: connect failed — ${e instanceof Error?e.message:String(e)}`})}catch{}t.close();return}let o=!1,s=()=>{o=!0;try{a.disconnect()}catch{}try{t.close()}catch{}};a.onMessage.addListener(e=>{if(o)return;let n=e;try{t.postMessage(n)}catch{}(n.type===`response-end`||n.type===`response-error`)&&s()}),a.onDisconnect.addListener(()=>{if(!o){try{t.postMessage({type:`response-error`,error:`extension-delegate: fetch-proxy port disconnected`})}catch{}s()}}),a.postMessage({type:`request`,...e.request})}function v(e){typeof navigator>`u`||!navigator.serviceWorker||navigator.serviceWorker.addEventListener(`message`,t=>{if(!m(t.data))return;let n=t.ports?.[0];if(!n){h.warn(`delegated fetch envelope arrived without a response port`);return}_(t.data,n,e)})}var y=`slicc_feature_flags_remote`;function b(e){return`${y}:${e}`}function x(e,t){let n=C(t);d(e,w(n,e)??{})}function S(e,t,n){try{e?.setItem(b(t),JSON.stringify(n))}catch{}}function C(e){if(e!==void 0)return e;try{let e=globalThis.localStorage;return typeof e?.getItem!=`function`||typeof e.setItem!=`function`?void 0:e}catch{return}}function w(e,t){try{let n=e?.getItem(b(t));return n?T(JSON.parse(n)):null}catch{return null}}function T(e){return!E(e)||Object.values(e).some(e=>typeof e!=`string`)?null:e}function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function D(e,n){x(e,n.storage),t(async()=>{let{refreshFeatureFlagsForPage:e}=await import(`./setup-feature-flags-remote-DBcwYFl-.js`);return{refreshFeatureFlagsForPage:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])).then(({refreshFeatureFlagsForPage:t})=>t(e,n)).catch(()=>{})}function O(e){let t=a(e.locationHref,e.isExtension,e.storage);return D(t,e),t}function k(){if(s())return;let e=new Blob([`
3
- let lastPong = Date.now();
4
- let frozen = false;
5
- setInterval(() => {
6
- postMessage({ type: 'ping' });
7
- const elapsed = Date.now() - lastPong;
8
- if (elapsed > 5000 && !frozen) {
9
- frozen = true;
10
- postMessage({ type: 'freeze-detected', elapsed });
11
- }
12
- }, 2000);
13
- self.onmessage = (e) => {
14
- if (e.data.type === 'pong') {
15
- lastPong = Date.now();
16
- if (frozen) {
17
- frozen = false;
18
- postMessage({ type: 'freeze-recovered' });
19
- }
20
- }
21
- };
22
- `],{type:`application/javascript`}),t=URL.createObjectURL(e),n=new Worker(t);URL.revokeObjectURL(t),n.onmessage=e=>{if(e.data.type===`ping`)n.postMessage({type:`pong`});else if(e.data.type===`freeze-detected`)console.error(`[freeze-watchdog] Main thread blocked for ${e.data.elapsed}ms — capturing trace on recovery`);else if(e.data.type===`freeze-recovered`){console.error(`[freeze-watchdog] Main thread recovered. Stack trace at recovery point:`),console.trace(`[freeze-watchdog] recovery stack`);let e=performance.getEntriesByType(`longtask`);e.length>0&&console.error(`[freeze-watchdog] Long tasks:`,e.map(e=>({duration:e.duration,startTime:e.startTime,name:e.name})))}},window.addEventListener(`beforeunload`,()=>{n.terminate()},{once:!0})}var A=`slicc-nuke-control`,j=[`slicc:welcome-flow-fired`,`slicc.trayJoinUrl`,`slicc.trayWorkerBaseUrl`];function M(e=()=>location.reload()){if(typeof BroadcastChannel!=`function`)return()=>{};let t=new BroadcastChannel(A),n=t=>{let n=t.data;if(n?.type===`nuke-reload`){if(Array.isArray(n.keysToRemove)){for(let e of n.keysToRemove)if(typeof e==`string`)try{localStorage.removeItem(e)}catch{}}e()}};return t.addEventListener(`message`,n),()=>{t.removeEventListener(`message`,n),t.close()}}var N=null;function P(){return N||(N=M(),N)}var F=n(`storage-persist`);function I(){try{return globalThis.navigator?.storage}catch{return}}async function L(e=I()){try{return typeof e?.persist==`function`?typeof e.persisted==`function`&&await e.persisted()?`already-persisted`:await e.persist()?`granted`:`denied`:`unsupported`}catch(e){return F.warn(`storage persistence check failed`,e),`failed`}}var R=!1;function z(){R||(R=!0,L().then(e=>{switch(e){case`granted`:F.info(`OPFS marked persistent — SLICC data is now exempt from disk-pressure eviction`);break;case`already-persisted`:F.debug(`OPFS already persistent`);break;case`denied`:F.warn(`Browser declined persistent storage — SLICC data can be evicted if the disk fills up`);break;case`unsupported`:F.debug(`navigator.storage.persist() unavailable in this runtime`)}}).catch(()=>{}))}var B=n(`boot/sw-registration`);async function V(e=null,t=null){let n=(()=>{try{return new URL(window.location.href).searchParams.get(`connect`)===`1`}catch{return!1}})();if(`serviceWorker`in navigator&&n&&await W())return`reload-pending`;if(!(`serviceWorker`in navigator)||n)return`ready`;try{if(await navigator.serviceWorker.register(`/preview-sw.js`,{scope:`/preview/`}),B.info(`Preview SW registered`),!s())try{await navigator.serviceWorker.register(`/llm-proxy-sw.js`,{scope:`/`}),B.info(`LLM-proxy SW registered`)}catch(e){B.error(`LLM-proxy SW registration failed — cross-origin LLM calls will hit CORS`,e)}if(navigator.serviceWorker.controller||await Promise.race([new Promise(e=>navigator.serviceWorker.addEventListener(`controllerchange`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,1500))]),!navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-sw-reloaded`))return sessionStorage.setItem(`slicc-sw-reloaded`,`1`),B.info(`Reloading once to gain SW control`),location.reload(),`reload-pending`;sessionStorage.removeItem(`slicc-sw-reloaded`),e&&(H(e),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{H(e)})),t&&(U(t),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{U(t)}))}catch(e){B.error(`Preview SW registration failed — preview feature will not work`,e)}return`ready`}function H(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:f,apiBaseUrl:e.apiBaseUrl,token:e.token};try{t.postMessage(n)}catch(e){B.warn(`LLM-proxy SW bridge-config postMessage failed`,e)}}function U(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:p,extensionId:e.extensionId};try{t.postMessage(n)}catch(e){B.warn(`LLM-proxy SW extension-delegate postMessage failed`,e)}}async function W(){try{let e=await navigator.serviceWorker.getRegistrations();if(await Promise.all(e.map(e=>e.unregister().catch(()=>!1))),navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-connect-sw-cleared`))return sessionStorage.setItem(`slicc-connect-sw-cleared`,`1`),B.info(`connect mode: detaching from service worker (no proxy on worker origin)`),location.reload(),!0;sessionStorage.removeItem(`slicc-connect-sw-cleared`)}catch(e){B.error(`connect-mode SW cleanup failed`,e)}return!1}var G=n(`main`);function K(e){try{return new URL(e).searchParams.has(`ui-fixture`)}catch{return!1}}async function q(){i();let n=document.getElementById(`app`);if(!n)throw Error(`#app element not found`);let a=s(),d=O({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,isDev:!1,isExtension:a});if(K(window.location.href)){let{mountWcUiPreview:e}=await t(async()=>{let{mountWcUiPreview:e}=await import(`./wc-shell-BBDMmI8N.js`).then(e=>e.s);return{mountWcUiPreview:e}},__vite__mapDeps([12,4,5,13,14,15,6,2,16,17,18,19,9,20,21,22,23,24,25,26,27,28,29,30,31]));e(n);return}k(),P(),z(),d!==`connect`&&l({isExtensionRealm:a}).catch(()=>{});let f=r(window.location.search),p=d===`cherry`?null:o(window.location.search),m=!!p&&c();if(await V(f?{apiBaseUrl:f.apiBaseUrl,token:f.token}:null,m&&p?{extensionId:p.extensionId}:null)===`reload-pending`)return;if(!a&&(d===`follower`||d===`cherry`)){let{bootFollowerFloat:e}=await t(async()=>{let{bootFollowerFloat:e}=await import(`./wc-follower-CYLEd4rs.js`);return{bootFollowerFloat:e}},__vite__mapDeps([32,5,13,2,33,3,4,6,7,8,9,1,10,34,20,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,15,50,51,52,53,17,11,54,55,12,14,16,18,19,21,22,23,24,25,26,27,28,29,30,31,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89]));return e(n,G,d)}await u(),e();let{bootstrapOAuthReplicas:h}=await t(async()=>{let{bootstrapOAuthReplicas:e}=await import(`./oauth-bootstrap-KB9SK_o_.js`);return{bootstrapOAuthReplicas:e}},__vite__mapDeps([90,38,4,5,39,40,41,42,43,44,45,13,2,3,6,7,8,9,46,20,47,48,49,15,50,51,52,53,91,1,10,17,54,92,93,94]));if(await Promise.race([h().catch(e=>{G.error(`OAuth bootstrap failed`,e)}),new Promise(e=>setTimeout(e,1e4))]),d===`connect`){globalThis.__slicc_connect_mode=!0;let{loadLegacyStyles:e}=await t(async()=>{let{loadLegacyStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadLegacyStyles:e}},__vite__mapDeps([95,5]));await e();let{mountConnectSurface:r}=await t(async()=>{let{mountConnectSurface:e}=await import(`./connect-surface-DrBGja7c.js`);return{mountConnectSurface:e}},__vite__mapDeps([96,38,4,5,39,40,41,42,43,44,45,13,2,3,6,7,8,9,46,20,47,48,49,15,50,51,52,53,91,1,10,17,54,92,93]));await r(n);return}if(a){let{bootExtensionFloat:e}=await t(async()=>{let{bootExtensionFloat:e}=await import(`./wc-extension-B_OX4AT5.js`);return{bootExtensionFloat:e}},__vite__mapDeps([97,5,37,4,38,39,40,41,42,43,44,45,13,2,3,6,7,8,9,46,20,47,48,49,15,50,51,52,53,33,1,10,34,35,17,11,54,55,12,14,16,18,19,21,22,23,24,25,26,27,28,29,30,31,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,98]));return e(n,G,d===`extension-detached`)}m&&p&&v(p.extensionId);let{bootLeaderFloat:g}=await t(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-s5MA_zAo.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([37,4,38,5,39,40,41,42,43,44,45,13,2,3,6,7,8,9,46,20,47,48,49,15,50,51,52,53,33,1,10,34,35,17,11,54,55,12,14,16,18,19,21,22,23,24,25,26,27,28,29,30,31,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]));return g(n,G,d)}function J(e,t){let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.textContent=`Failed to start`;let i=document.createElement(`p`);i.textContent=t instanceof Error?t.message:String(t);let a=document.createElement(`button`);a.type=`button`,a.textContent=`Reload`,a.addEventListener(`click`,()=>location.reload()),n.append(r,i,a),e.replaceChildren(n)}async function Y(e,n){let r;try{({renderBootRecoveryScreen:r}=await t(()=>import(`./recovery-screen-CBwlz3Qo.js`),[]))}catch{J(e,n);return}if(r(e,n),n instanceof Error&&n.message.includes(`did not signal ready`))try{let{triageModuleWorkerHealth:i}=await t(async()=>{let{triageModuleWorkerHealth:e}=await import(`./worker-triage-BvsMZrdR.js`);return{triageModuleWorkerHealth:e}},[]),a=await i();a===`browser-wedged`&&r(e,n,{verdict:a})}catch{}}q().catch(e=>{G.error(`Fatal error`,e);let t=document.getElementById(`app`);t&&Y(t,e)});export{C as n,S as r,j as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{i as t,r as n}from"./src-XLzS9HFL.js";import{t as r}from"./pending-request-table-Dgn6qYdL.js";import{BrowserAPI as i}from"./cdp-DHIp_AO9.js";import{t as a}from"./synthetic-cdp-transport-Ds83IPjw.js";var o=[2,1],s=new Set([`handshake.hello`,`handshake.welcome`,`handshake.version-mismatch`,`cdp.request`,`cdp.response`,`cdp.event`,`permission.request`,`permission.response`,`host.event`,`slicc.event`,`session.export.request`,`session.export.cancel`,`session.export.progress`,`session.export.response`,`session.export.error`]);function c(e,t=[2]){if(typeof e!=`object`||!e)return!1;let n=e;if(typeof n.cherry!=`number`||!t.includes(n.cherry)||typeof n.channelId!=`string`||typeof n.kind!=`string`||!s.has(n.kind))return!1;let r=n.kind;return!(r===`handshake.version-mismatch`&&typeof n.peerVersion!=`number`||(r===`session.export.request`||r===`session.export.cancel`||r===`session.export.progress`||r===`session.export.response`||r===`session.export.error`)&&(typeof n.requestId!=`string`||n.requestId===``||r===`session.export.progress`&&typeof n.phase!=`string`||r===`session.export.response`&&!(n.blob instanceof Blob)||r===`session.export.error`&&typeof n.code!=`string`))}function l(e,t){return!(!t.allowOrigins.includes(e.origin)||t.expectedSource!==null&&e.source!==t.expectedSource||!c(e.data,t.versions)||t.channelId!==null&&e.data.channelId!==t.channelId)}function u(e,t=[2]){if(typeof e!=`object`||!e)return!1;let n=e;return typeof n.cherry==`number`&&!t.includes(n.cherry)&&typeof n.channelId==`string`&&typeof n.kind==`string`}var d=e(`cherry-transport`),f=3e4;function p(e){let r=e instanceof n||typeof e==`object`&&e&&`code`in e?e.code:void 0;return typeof r==`string`&&t.has(r)?r:`transfer-corrupt`}var m=class extends a{opts;channelId=null;nextId=1;pending=new r;connectResolve=null;connectReject=null;connectTimer=null;_joinUrl=null;_features={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0};_theme=null;_layout=null;_effortLevel=null;_flags=null;negotiatedVersion=2;boundHandler=e=>this.handleMessage(e);onHostEvent=null;onExportRequest=null;pendingHostExports=new Map;constructor(e){super({targetUrl:typeof location<`u`?location.href:`about:blank`,targetOrigin:e.targetOrigin,title:`Cherry Host Page`,ids:{target:`cherry-target`,session:`cherry-session`,frame:`cherry-frame`,loader:`cherry-loader`}}),this.opts=e}get hostOrigin(){return this.opts.targetOrigin}getCurrentUrl(){return typeof location<`u`?location.href:super.getCurrentUrl()}get joinUrl(){return this._joinUrl}get features(){return this._features}get theme(){return this._theme}get layout(){return this._layout}get effortLevel(){return this._effortLevel}get flags(){return this._flags}get negotiatedProtocolVersion(){return this.negotiatedVersion}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);this._state=`connecting`,this.negotiatedVersion=2,this.channelId=`cherry-${crypto.randomUUID()}`,typeof window<`u`&&window.addEventListener(`message`,this.boundHandler);let t=e?.timeout??f;return new Promise((e,n)=>{this.connectResolve=e,this.connectReject=n,this.connectTimer=setTimeout(()=>{this.connectTimer=null,typeof window<`u`&&window.removeEventListener(`message`,this.boundHandler),this._state=`disconnected`,this.channelId=null,this.connectResolve=null,this.connectReject=null,n(Error(`Cherry handshake timed out after ${t}ms — no handshake.welcome from the embedding page (host SDK missing, not listening, or version-skewed; check the host page's console)`))},t);for(let e of o)this.post({cherry:e,channelId:this.channelId,kind:`handshake.hello`,capabilities:this.opts.capabilities??{navigate:!0,screenshot:!0,openUrl:!0}})})}failPendingConnect(e){if(this.connectReject===null)return;this.connectTimer!==null&&(clearTimeout(this.connectTimer),this.connectTimer=null),typeof window<`u`&&window.removeEventListener(`message`,this.boundHandler),this._state=`disconnected`,this.channelId=null;let t=this.connectReject;this.connectResolve=null,this.connectReject=null,t(e)}disconnect(){this.connectTimer!==null&&(clearTimeout(this.connectTimer),this.connectTimer=null),typeof window<`u`&&window.removeEventListener(`message`,this.boundHandler),this.pending.rejectAll(`Cherry transport disconnected`);for(let[,e]of this.pendingHostExports)e.abort();this.pendingHostExports.clear(),this._state=`disconnected`,this.channelId=null}async forward(e,t,n,r=f){let i=this.nextId++,a=this.pending.issue(i,r,`Cherry CDP timed out after ${r}ms: ${e}`);return this.post({cherry:this.negotiatedVersion,channelId:this.channelId,kind:`cdp.request`,id:i,method:e,params:t}),a}testReceive(e){this.handleMessage(e)}emitSliccEventToHost(e,t){if(!this.channelId){d.warn(`Dropping slicc.event before handshake (no channelId yet)`,{name:e});return}this.post({cherry:this.negotiatedVersion,channelId:this.channelId,kind:`slicc.event`,name:e,detail:t})}post(e){this.opts.counterpart.postMessage(e,this.opts.targetOrigin)}handleMessage(e){let t=this._state===`connected`?[this.negotiatedVersion]:o;if(!l(e,{allowOrigins:this.opts.allowOrigins,expectedSource:this.opts.counterpart,channelId:this.channelId,versions:t})){this.diagnoseRejectedMessage(e,t);return}let n=e.data;if(this.negotiatedVersion<2&&n.kind.startsWith(`session.export.`)){d.warn(`Ignoring a v2-only envelope on a v1-negotiated cherry channel`,{kind:n.kind});return}switch(n.kind){case`handshake.welcome`:this.handleWelcome(n);return;case`cdp.response`:n.error?this.pending.reject(n.id,Error(`Cherry CDP error: ${n.error.message} (${n.error.code})`)):this.pending.resolve(n.id,n.result??{});return;case`cdp.event`:this.emit(n.method,{...n.params??{},sessionId:n.sessionId??this.syntheticIds.session});return;case`host.event`:this.onHostEvent?.(n.name,n.detail);return;case`session.export.request`:this.handleExportRequest(n);return;case`session.export.cancel`:{let e=this.pendingHostExports.get(n.requestId);e&&(e.abort(),this.pendingHostExports.delete(n.requestId));return}default:return}}diagnoseRejectedMessage(e,t){u(e.data,t)?(d.warn(`Cherry protocol version mismatch — update the older side`,{peerVersion:e.data.cherry,supportedVersions:[...o],origin:e.origin}),e.data.channelId===this.channelId&&this.opts.allowOrigins.includes(e.origin)&&e.source===this.opts.counterpart&&this.failPendingConnect(Error(`Cherry protocol version mismatch (peer v${e.data.cherry}, ours v2) — update the older side`))):c(e.data,o)&&d.warn(`Rejected a cherry envelope (origin/source/channel mismatch)`,{origin:e.origin,allowOrigins:this.opts.allowOrigins})}handleWelcome(e){this.connectTimer!==null&&(clearTimeout(this.connectTimer),this.connectTimer=null),this._state=`connected`,this.negotiatedVersion=e.cherry,this._joinUrl=e.joinUrl??null,this._theme=e.theme??null,this._layout=e.layout??null,this._effortLevel=e.effortLevel??null,this._flags=e.flags??null,this._features=e.features??{terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0},d.info(`Cherry handshake complete`,{channelId:this.channelId,negotiatedVersion:this.negotiatedVersion}),this.connectResolve?.(),this.connectResolve=null,this.connectReject=null}handleExportRequest(e){let{requestId:t,sessionId:n}=e;if(!this.onExportRequest||!this.channelId){this.postExportError(t,`transfer-aborted`);return}let r=new AbortController;this.pendingHostExports.set(t,r);let i=this.channelId;this.onExportRequest(t,n,r.signal,e=>{this.pendingHostExports.has(t)&&this.post({cherry:this.negotiatedVersion,channelId:i,kind:`session.export.progress`,requestId:t,phase:e.phase,...e.processedBytes===void 0?{}:{processedBytes:e.processedBytes},...e.estimatedBytes===void 0?{}:{estimatedBytes:e.estimatedBytes}})}).then(e=>{this.pendingHostExports.delete(t),this.post({cherry:this.negotiatedVersion,channelId:i,kind:`session.export.response`,requestId:t,blob:e})}).catch(e=>{this.pendingHostExports.delete(t),this.postExportError(t,p(e))})}postExportError(e,t){this.channelId&&this.post({cherry:this.negotiatedVersion,channelId:this.channelId,kind:`session.export.error`,requestId:e,code:t})}},h=e(`cherry-boot`);function g(){let e=location.ancestorOrigins;if(e&&e.length>0){let t=e[0];if(t&&t!==`null`)return t}if(document.referrer)try{return new URL(document.referrer).origin}catch{}return location.origin}async function _(){let e=g(),t=[e],n=e,r=new m({counterpart:window.parent,allowOrigins:t,targetOrigin:n});await r.connect(),h.info(`Cherry transport connected`);let a=r.joinUrl;if(!a)throw Error(`cherry boot: no joinUrl from handshake`);return{transport:r,browser:new i(r),joinUrl:a}}export{_ as setupCherryFollower};
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./handoff-link-CGs8AaQW.js";function n(e){for(let t of e)if(t.rel.includes(`ai-catalog`))return{kind:`ai-catalog`,url:t.href};return null}var r=[{kind:`ai-catalog`,path:`/.well-known/ai-catalog.json`},{kind:`llms-txt`,path:`/llms.txt`}],i=3e3;async function a(e,t,n={}){let a=n.timeoutMs??i,s;try{s=new URL(e).origin}catch{return[]}return(await Promise.all(r.map(e=>o(s,e,t,a)))).filter(e=>e!==null)}async function o(e,t,n,r){let i=e+t.path,a=new AbortController,o=setTimeout(()=>a.abort(Error(`timeout`)),r);try{let e=await n(i,{method:`GET`,signal:a.signal,redirect:`manual`,credentials:`omit`});return e.status!==200||!s(e.headers.get(`content-type`),t.kind)?null:{kind:t.kind,url:i}}catch{return null}finally{clearTimeout(o)}}function s(e,t){if(e==null)return!0;let n=e.toLowerCase();return n.length===0?!0:n.includes(`text/html`)||n.includes(`application/xhtml`)?!1:t===`ai-catalog`?n.includes(`json`)||n.includes(`text/plain`)||n.includes(`octet-stream`):n.includes(`text/plain`)||n.includes(`markdown`)||n.includes(`octet-stream`)}var c=e(`navigation-watcher`);function l(e,n){return t(e,n)}var u=class{transport;onEvent;sessions=new Map;started=!1;onDiscovery;probeFetch;isDiscoveryEnabled;probeTimeoutMs;probedOrigins=new Set;onAttachedToTarget=e=>{this.handleAttachedToTarget(e)};onDetachedFromTarget=e=>{let t=e.sessionId;t&&this.sessions.delete(t)};onTargetInfoChanged=e=>{let t=e.targetInfo;if(t?.targetId)for(let e of this.sessions.values())e.targetId===t.targetId&&(typeof t.title==`string`&&(e.title=t.title),typeof t.url==`string`&&(e.url=t.url))};onTargetCreated=e=>{this.handleTargetCreated(e)};onFrameNavigated=e=>{let t=e,n=t.sessionId;if(!n)return;let r=this.sessions.get(n);if(!r)return;let i=t.frame;i?.id&&(i.parentId||(r.rootFrameId=i.id,typeof i.url==`string`&&(r.url=i.url)))};onResponseReceived=e=>{let t=e,n=t.sessionId;if(!n)return;let r=this.sessions.get(n);if(!r||t.type!==`Document`)return;let i=t.frameId;if(!i||i!==r.rootFrameId)return;let a=t.response;if(!a)return;let o=typeof a.url==`string`&&a.url.length>0?a.url:r.url;if(!o)return;let{match:s,links:c}=l(a.headers,o);if(s){let e={url:o,verb:s.verb,target:s.target,links:c,targetId:r.targetId};s.instruction!=null&&(e.instruction=s.instruction),s.branch!=null&&(e.branch=s.branch),s.path!=null&&(e.path=s.path),r.title!=null&&(e.title=r.title),this.onEvent(e)}this.maybeRunDiscovery(o,c,r.targetId)};constructor(e,t,n={}){this.transport=e,this.onEvent=t,this.onDiscovery=n.onDiscovery,this.probeFetch=n.probeFetch,this.isDiscoveryEnabled=n.isDiscoveryEnabled??(()=>!0),this.probeTimeoutMs=n.probeTimeoutMs}maybeRunDiscovery(e,t,r){if(!this.onDiscovery||!this.isDiscoveryEnabled())return;let i;try{i=new URL(e).origin}catch{return}let a=n(t);a&&this.onDiscovery({origin:i,kind:a.kind,url:a.url,targetId:r}),this.probeFetch&&!this.probedOrigins.has(i)&&(this.probedOrigins.add(i),this.runWellKnownProbe(i,r))}async runWellKnownProbe(e,t){if(!(!this.probeFetch||!this.onDiscovery))try{let n=await a(e,this.probeFetch,{timeoutMs:this.probeTimeoutMs});for(let r of n)this.onDiscovery({origin:e,kind:r.kind,url:r.url,targetId:t})}catch(t){c.debug(`Well-known discovery probe failed`,{origin:e,error:t instanceof Error?t.message:String(t)})}}async start(){if(!this.started){this.transport.on(`Target.attachedToTarget`,this.onAttachedToTarget),this.transport.on(`Target.detachedFromTarget`,this.onDetachedFromTarget),this.transport.on(`Target.targetInfoChanged`,this.onTargetInfoChanged),this.transport.on(`Target.targetCreated`,this.onTargetCreated),this.transport.on(`Page.frameNavigated`,this.onFrameNavigated),this.transport.on(`Network.responseReceived`,this.onResponseReceived);try{await this.transport.send(`Target.setDiscoverTargets`,{discover:!0})}catch(e){c.error(`Failed to enable target discovery`,{error:e instanceof Error?e.message:String(e)}),this.transport.off(`Target.attachedToTarget`,this.onAttachedToTarget),this.transport.off(`Target.detachedFromTarget`,this.onDetachedFromTarget),this.transport.off(`Target.targetInfoChanged`,this.onTargetInfoChanged),this.transport.off(`Target.targetCreated`,this.onTargetCreated),this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.transport.off(`Network.responseReceived`,this.onResponseReceived);return}this.started=!0;try{let e=(await this.transport.send(`Target.getTargets`)).targetInfos??[];for(let t of e){if(t.type!==`page`)continue;let e=t.attached===!0,n=t.targetId;if(!(e||typeof n!=`string`))try{await this.transport.send(`Target.attachToTarget`,{targetId:n,flatten:!0})}catch(e){c.debug(`Failed to attach to preexisting target`,{targetId:n,error:e instanceof Error?e.message:String(e)})}}}catch(e){c.debug(`Failed to enumerate preexisting targets`,{error:e instanceof Error?e.message:String(e)})}}}async stop(){if(this.started){this.started=!1,this.transport.off(`Target.attachedToTarget`,this.onAttachedToTarget),this.transport.off(`Target.detachedFromTarget`,this.onDetachedFromTarget),this.transport.off(`Target.targetInfoChanged`,this.onTargetInfoChanged),this.transport.off(`Target.targetCreated`,this.onTargetCreated),this.transport.off(`Page.frameNavigated`,this.onFrameNavigated),this.transport.off(`Network.responseReceived`,this.onResponseReceived),this.sessions.clear();try{await this.transport.send(`Target.setDiscoverTargets`,{discover:!1})}catch(e){c.debug(`Failed to disable target discovery on stop`,{error:e instanceof Error?e.message:String(e)})}}}async handleTargetCreated(e){let t=e.targetInfo;if(t?.type===`page`&&typeof t.targetId==`string`&&!t.attached)try{await this.transport.send(`Target.attachToTarget`,{targetId:t.targetId,flatten:!0})}catch(e){c.debug(`Failed to attach to discovered target`,{targetId:t.targetId,error:e instanceof Error?e.message:String(e)})}}async handleAttachedToTarget(e){let t=e.sessionId,n=e.targetInfo;if(!(!t||!n||n.type!==`page`||typeof n.targetId!=`string`)){this.sessions.set(t,{targetId:n.targetId,rootFrameId:null,title:n.title,url:n.url});try{await this.transport.send(`Page.enable`,{},t),await this.transport.send(`Network.enable`,{},t);let e=(await this.transport.send(`Page.getFrameTree`,{},t)).frameTree?.frame;if(e?.id&&typeof e.id==`string`){let n=this.sessions.get(t);n&&(n.rootFrameId=e.id)}}catch(e){c.debug(`Failed to enable Page/Network on attached target`,{sessionId:t,error:e instanceof Error?e.message:String(e)})}}}};export{l as n,u as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-I3oLGgvo.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-EaBcIxhN.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/src-XLzS9HFL.js","assets/proxied-fetch-CNztWUVW.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-ey0oewfq.js","assets/runtime-env-a_l4ilH_.js","assets/secret-topology-B8MYKYm6.js","assets/secrets-bridge-client-CHMeCH4_.js","assets/port-bridge-client-wFmUGeZa.js","assets/image-markers-DXh8szCT.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-DuO7vxZy.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-BJsliYCh.js"])))=>i.map(i=>d[i]);
2
- import{L as e,m as t}from"./account-store-EaBcIxhN.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{t as r}from"./logger-DDBAeTLF.js";import{r as i}from"./feature-flags-DaSRRz0w.js";import"./provider-settings-Dp2FBrlU.js";import{t as a}from"./llm-session-id-bZQs6gBN.js";import{t as o}from"./chat-session-store-pWb1-jNp.js";import{a as s,i as c,n as l,r as u,t as d}from"./session-freezer-DVh0_BPO.js";var f=r(`new-session`),p=`ui-new-session`,m=2e4,h=250;async function g(n){try{let r=await n.openVfs(),i=t()??void 0;if(!i)return;let o;try{o=e()}catch{return}let c=o.provider===`adobe`?{"X-Session-Id":a(p)}:void 0;await s({vfs:r,model:o,apiKey:i,headers:c}),n.onComplete?.()}catch(e){f.warn(`Pending session catch-up failed (boot continues)`,{error:e instanceof Error?e.message:String(e)})}}function _(e){(e.schedule??v)(()=>{g(e)})}function v(e){if(typeof globalThis.requestIdleCallback==`function`){globalThis.requestIdleCallback(e,{timeout:5e3});return}setTimeout(e,0)}function y(e){if(i(`agentic-memory`)){if(!e.agenticMemorySpawn){f.info(`Agentic memory enabled but agent bridge unavailable — using legacy enrichment`);return}return e.agenticMemorySpawn}}async function b(e,t,n,r,i,a){let o=await u({sessionStore:t,vfs:e.vfs,mode:`quick`,agenticMemorySpawn:a,cone:e.cone});if(!o)return null;if(e.captureCompleteSnapshot)try{await e.captureCompleteSnapshot(o)}catch(t){let n=t?.code??`unknown`;f.warn(`captureCompleteSnapshot failed`,{code:n}),o.completeSnapshotUnavailable=!0;try{await c(e.vfs,o.filename)}catch{}}return x(e,t,n,r,i,a,o),o}async function x(e,t,r,i,a,o,s){let c=s;try{let t=await l(e.vfs,s,{model:r,apiKey:i,headers:a,skipMemory:!0,pickIcon:e=>n(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-I3oLGgvo.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])).then(({pickLucideIcon:t})=>t(e))});t&&(c={...t,archive:s.archive},e.onBackgroundEnriched?.(t))}catch(e){f.warn(`Agentic title enrichment threw (draft stays pending)`,{filename:s.filename,error:e instanceof Error?e.message:String(e)})}let u=await d({sessionStore:t,vfs:e.vfs,mode:`full`,model:r,apiKey:i,headers:a,agenticMemorySpawn:o,cone:e.cone},c).catch(e=>(f.warn(`Agentic memory curator threw (entry stays pending)`,{filename:c.filename,error:e instanceof Error?e.message:String(e)}),null));f.info(`Agentic memory curator finished`,{filename:c.filename,memoryPending:!u||u.memoryPending===!0}),e.onBackgroundEnriched?.(u)}function S(e){return e?.code===`ENOENT`}function C(e,t){return e===t||t.startsWith(e.endsWith(`/`)?e:`${e}/`)}async function w(e,t,n,r){for(let i of n){let n=`${t}/${i.name}`;if(!r.has(n)){if(i.type===`directory`){let t;try{t=await e.readDir(n)}catch(e){if(S(e))continue;throw e}if(await w(e,n,t,r),[...r].some(e=>e.startsWith(`${n}/`)))continue}try{await e.rm(n)}catch(e){if(!S(e))throw e}}}}async function T(e,t){let n=(await e.listMountPoints()).map(({path:e})=>e);if(n.some(e=>C(e,t)))return;let r=new Set(n.filter(e=>e.startsWith(`${t}/`))),i;try{i=await e.readDir(t)}catch(n){if(n?.code!==`ENOENT`)throw n;await e.mkdir(t,{recursive:!0});return}await w(e,t,i,r),await e.mkdir(t,{recursive:!0})}async function E(r){let i=r.enrichmentRaceMs??m,s=t()??void 0,d;try{d=e()}catch(e){f.info(`No active model — freezing without LLM enrichment`,{error:e instanceof Error?e.message:String(e)})}let h=d?.provider===`adobe`?{"X-Session-Id":a(p)}:void 0,g=new o;try{await g.init()}catch(e){return f.warn(`SessionStore init failed — cannot freeze`,{error:e instanceof Error?e.message:String(e)}),null}let _=s&&d?y(r):void 0;if(_)return await b(r,g,d,s,h,_);let v=await u({sessionStore:g,vfs:r.vfs,mode:`quick`,cone:r.cone});if(!v)return null;if(r.captureCompleteSnapshot)try{await r.captureCompleteSnapshot(v)}catch(e){let t=e?.code??`unknown`;f.warn(`captureCompleteSnapshot failed`,{code:t}),v.completeSnapshotUnavailable=!0;try{await c(r.vfs,v.filename)}catch{}}if(!s||!d)return f.info(`Frozen without enrichment (no LLM credentials) — left pending`,{filename:v.filename}),v;let x=d,S=l(r.vfs,v,{model:x,apiKey:s,headers:h,pickIcon:e=>n(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-I3oLGgvo.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])).then(({pickLucideIcon:t})=>t(e))}).catch(e=>(f.warn(`Single-click enrichment threw (entry stays pending)`,{filename:v.filename,error:e instanceof Error?e.message:String(e)}),null)),C=await D(S,i,r.onProgress);return C.kind===`llm`?C.updated?{...C.updated,archive:v.archive}:v:(S.then(e=>{f.info(`Background enrichment resolved after race window`,{filename:v.filename,enriched:e?.filename??null}),r.onBackgroundEnriched?.(e)}),v)}async function D(e,t,n){let r=Date.now(),i,a;n?.(0),n&&(i=setInterval(()=>{n(Math.min(1,(Date.now()-r)/t))},h));let o=new Promise(e=>{a=setTimeout(()=>e({kind:`timer`}),t)}),s=e.then(e=>({kind:`llm`,updated:e}));try{return await Promise.race([s,o])}finally{i&&clearInterval(i),a&&clearTimeout(a),n?.(null)}}async function O(e){return A(e,void 0)}async function k(e){return A(e,`skip`)}async function A(e,t){let n=new o;try{await n.init()}catch(e){return f.warn(`SessionStore init failed — cannot quick-freeze`,{error:e instanceof Error?e.message:String(e)}),null}let r=await u({sessionStore:n,vfs:e.vfs,mode:`quick`,cone:e.cone,...t?{memory:t}:{}});if(r&&e.captureCompleteSnapshot)try{await e.captureCompleteSnapshot(r)}catch(t){let n=t?.code??`unknown`;f.warn(`captureCompleteSnapshot failed (quick-freeze)`,{code:n}),r.completeSnapshotUnavailable=!0;try{await c(e.vfs,r.filename)}catch{}}return r}export{T as resetNewSessionTmp,k as runNewSessionArchiveOnly,E as runNewSessionFreeze,O as runNewSessionFreezeQuick,_ as schedulePendingSessionCatchup};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-1nSAXh4b.js","assets/account-store-EaBcIxhN.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/src-XLzS9HFL.js","assets/proxied-fetch-CNztWUVW.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-ey0oewfq.js","assets/runtime-env-a_l4ilH_.js","assets/secret-topology-B8MYKYm6.js","assets/secrets-bridge-client-CHMeCH4_.js","assets/port-bridge-client-wFmUGeZa.js","assets/image-markers-DXh8szCT.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-DuO7vxZy.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/pkce-hGf_TEnP.js","assets/provider-store-access-kKnmyJjr.js","assets/global-db-CbuLl-zx.js","assets/types-Dgm4REV3.js"])))=>i.map(i=>d[i]);
2
- import{H as e,d as t}from"./account-store-EaBcIxhN.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{t as r}from"./logger-DDBAeTLF.js";import{t as i}from"./providers-DuO7vxZy.js";import"./provider-settings-Dp2FBrlU.js";import"./logger-BoSvu4mW.js";var a=r(`oauth-bootstrap`),o=6e4;function s(e){return e instanceof Error?e.message:String(e)}async function c(){try{let{ensureAllMcpProvidersRegistered:e}=await n(async()=>{let{ensureAllMcpProvidersRegistered:e}=await import(`./provider-1nSAXh4b.js`);return{ensureAllMcpProvidersRegistered:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31])),t=await e();t.length>0&&a.debug(`Pre-registered MCP providers for OAuth bootstrap`,{count:t.length})}catch(e){a.warn(`Failed to pre-register MCP providers for OAuth bootstrap`,{error:s(e)})}}function l(e){return(e.tokenExpiresAt??1/0)-Date.now()<=o}async function u(e){let t=i(e.providerId);if(!t?.onSilentRenew){a.debug(`Skipping expired account (no silent-renew hook)`,{providerId:e.providerId});return}try{if(await t.onSilentRenew()){a.info(`Silently renewed OAuth token`,{providerId:e.providerId});return}a.warn(`Silent renewal yielded no token; user must re-authenticate`,{providerId:e.providerId})}catch(t){a.warn(`Silent renewal failed`,{providerId:e.providerId,error:s(t)})}}async function d(t,n){try{await e({providerId:t.providerId,accessToken:n,refreshToken:t.refreshToken,tokenExpiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar}),a.debug(`Bootstrapped OAuth replica`,{providerId:t.providerId})}catch(e){a.error(`OAuth bootstrap failed`,{providerId:t.providerId,error:s(e)})}}async function f(e){let t=e.accessToken;if(!t){a.debug(`Skipping account without token`,{providerId:e.providerId});return}if(l(e)){await u(e);return}await d(e,t)}async function p(){await c();let e=t();a.info(`Bootstrap OAuth replicas`,{count:e.length});for(let t of e)await f(t)}export{p as bootstrapOAuthReplicas};
@@ -1 +0,0 @@
1
- import{n as e}from"./panel-rpc-BPwAqRch.js";import{t}from"./runtime-env-DadgceZk.js";import"./proxied-fetch-B0SF_J0b.js";import{a as n,t as r}from"./api-endpoint-DRYP1Kfj.js";import{t as i}from"./permissions-surface-registry-BqPdUk9w.js";import"./runtime-env-Dc36nUmg.js";import{t as a}from"./intercepted-oauth-B0tP4D7f.js";const o=t();var s=class extends Error{constructor(e){super(e),this.name=`OAuthLaunchError`}};async function c(){if(typeof window<`u`)return!1;let t=e();if(!t)return!1;try{return(await t.call(`oauth-route`,{},{timeoutMs:5e3})).delegate===!0}catch{return!1}}function l(){return o?y:typeof window>`u`?p:m}async function u(){let e=await d();return e?a(e):null}async function d(){try{let{getActiveCdpTransport:e}=await import(`./active-transport-BIjzxdwv.js`);return await e()}catch(e){return console.warn(`[oauth-service] could not resolve active CDP transport:`,e instanceof Error?e.message:String(e)),null}}async function f(){if(typeof window<`u`)return{origin:window.location.origin,href:window.location.href};let t=e();if(!t)throw Error(`OAuth from worker context requires the panel-RPC bridge (no page-info available)`);let n=await t.call(`page-info`,void 0);return{origin:n.origin,href:n.href}}async function p(t){let n=e();if(!n)return console.error(`[oauth-service] panel-RPC client unavailable in worker`),null;try{let e=await n.call(`oauth-popup`,{url:t},{timeoutMs:13e4});if(!e.redirectUrl&&e.error)throw new s(e.error);return e.redirectUrl}catch(e){if(e instanceof s)throw e;return console.error(`[oauth-service] oauth-popup RPC failed:`,e instanceof Error?e.message:String(e)),null}}async function m(e){if(h())return g(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let t=i();if(t){let n=await _(t,e);return n===void 0?null:g(n)}return g(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function h(){return(typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0}function g(e){return new Promise(t=>{let i=!1,a=null,o=null,s=()=>{i||(i=!0,window.removeEventListener(`message`,c),clearTimeout(l),a&&clearInterval(a),o&&clearInterval(o))},c=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(s(),n.data.error){console.error(`[oauth-service] CLI OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,c),a=setInterval(async()=>{if(!i)try{let e=await fetch(n(`/api/oauth-result`),{headers:r()});if(e.status===204||!e.ok)return;let a=await e.json();if(i)return;if(s(),a.error){console.error(`[oauth-service] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[oauth-service] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3),e&&(o=setInterval(()=>{e.closed&&(clearInterval(o),o=null,setTimeout(()=>{i||(s(),t(null))},1500))},500));let l=setTimeout(()=>{s();try{e?.close()}catch{}t(null)},12e4)})}async function _(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function v(e,t=18e4){if(typeof window>`u`||o)return;let n=window.open(e,`_blank`,`width=500,height=600,popup=yes`);if(!n){console.warn(`[oauth-service] Could not open IdP logout popup — popups may be blocked`);return}await new Promise(e=>{let r=setTimeout(()=>{clearInterval(i);try{n.close()}catch{}e()},t),i=setInterval(()=>{n.closed&&(clearTimeout(r),clearInterval(i),e())},500)})}async function y(e,t){let n=chrome.runtime;return new Promise(r=>{let i=!1,a=()=>{i||(i=!0,n.onMessage.removeListener(o),clearTimeout(s))},o=e=>{if(typeof e!=`object`||!e)return;let t=e;if(t.source===`service-worker`&&t.payload?.type===`oauth-result`){if(a(),t.payload.error){console.error(`[oauth-service] Extension OAuth error:`,t.payload.error),r(null);return}r(t.payload.redirectUrl??null)}};n.onMessage.addListener(o),n.sendMessage({source:`panel`,payload:{type:`oauth-request`,providerId:`oauth`,authorizeUrl:e,interactive:t?.interactive??!0}}).catch(e=>{console.error(`[oauth-service] Failed to send OAuth request to service worker:`,e)});let s=setTimeout(()=>{a(),r(null)},12e4)})}export{u as createInterceptingOAuthLauncherForCurrentRuntime,l as createOAuthLauncher,f as getOAuthPageOrigin,v as openIdpLogoutUrl,c as resolveOAuthDelegation};
@@ -1 +0,0 @@
1
- import{t as e}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-CNztWUVW.js";import{n as t}from"./runtime-env-Dlaokqg1.js";import{a as n,t as r}from"./api-endpoint-BB41u1PK.js";import"./runtime-env-NCI8LQob.js";import{t as i}from"./panel-rpc-B3MSVImO.js";import{t as a}from"./permissions-surface-registry-CilCRwhh.js";var o=12e4;function s(e){let t=e.requestId,n=e.request;if(typeof t!=`string`||typeof n!=`object`||!n||Array.isArray(n))return null;let r=n;if(typeof r.url!=`string`||typeof r.method!=`string`)return null;let i=typeof r.headers==`object`&&r.headers!==null&&!Array.isArray(r.headers)?r.headers:{};return{requestId:t,request:{url:r.url,method:r.method,headers:i},resourceType:typeof e.resourceType==`string`?e.resourceType:void 0,frameId:typeof e.frameId==`string`?e.frameId:void 0}}function c(e,t){return t.endsWith(`*`)?e.startsWith(t.slice(0,-1)):e===t||e.startsWith(`${t}?`)||e.startsWith(`${t}#`)}function l(e){return e.endsWith(`*`)?e:`${e}*`}function u(e,t){if(!t||t.length===0)return e;let n=e;for(let e of t)if(n.includes(e.match)){if(e.replaceUrl){n=e.replaceUrl;continue}if(e.appendParams)try{let t=new URL(n);for(let[n,r]of Object.entries(e.appendParams))t.searchParams.set(n,r);n=t.toString()}catch{}}return n}function d(e){return async t=>{let n=t.timeoutMs??o,r=t.rewrite??[],i=t.onCapture??`close`,a,d,f=!1,p=null,m=async()=>{if(d){try{await e.send(`Fetch.disable`,{},d)}catch{}try{await e.send(`Target.detachFromTarget`,{sessionId:d})}catch{}}if(a&&i===`close`)try{await e.send(`Target.closeTarget`,{targetId:a})}catch{}};return await new Promise(i=>{let o=async t=>{f||(f=!0,clearTimeout(g),e.off(`Fetch.requestPaused`,h),await m(),i(t))},h=n=>{let i=s(n);if(!i?.request.url||!d||(typeof n.sessionId==`string`?n.sessionId:void 0)!==d)return;if(c(i.request.url,t.redirectUriPattern)){p=i.request.url,e.send(`Fetch.failRequest`,{requestId:i.requestId,errorReason:`Aborted`},d).catch(()=>{}),o(p).catch(()=>{});return}let a=u(i.request.url,r);if(a!==i.request.url){e.send(`Fetch.continueRequest`,{requestId:i.requestId,url:a},d).catch(e=>{console.warn(`[intercepted-oauth] continueRequest (rewrite) failed:`,e instanceof Error?e.message:String(e))});return}e.send(`Fetch.continueRequest`,{requestId:i.requestId},d).catch(()=>{})},g=setTimeout(()=>{o(null).catch(()=>{})},n);(async()=>{a=(await e.send(`Target.createTarget`,{url:`about:blank`})).targetId,d=(await e.send(`Target.attachToTarget`,{targetId:a,flatten:!0})).sessionId,e.on(`Fetch.requestPaused`,h),await e.send(`Fetch.enable`,{patterns:[{urlPattern:l(t.redirectUriPattern),requestStage:`Request`},...r.map(e=>({urlPattern:`*${e.match}*`,requestStage:`Request`}))]},d),await e.send(`Page.navigate`,{url:t.authorizeUrl},d)})().catch(e=>{console.error(`[intercepted-oauth] setup failed:`,e instanceof Error?e.message:String(e)),o(null).catch(()=>{})})})}}var f=t(),p=class extends Error{constructor(e){super(e),this.name=`OAuthLaunchError`}};async function m(){if(typeof window<`u`)return!1;let e=i();if(!e)return!1;try{return(await e.call(`oauth-route`,{},{timeoutMs:5e3})).delegate===!0}catch{return!1}}function h(){return f?T:typeof window>`u`?y:b}async function g(){let e=await _();return e?d(e):null}async function _(){try{let{getActiveCdpTransport:t}=await e(async()=>{let{getActiveCdpTransport:e}=await import(`./active-transport-BIjzxdwv.js`);return{getActiveCdpTransport:e}},[]);return await t()}catch(e){return console.warn(`[oauth-service] could not resolve active CDP transport:`,e instanceof Error?e.message:String(e)),null}}async function v(){if(typeof window<`u`)return{origin:window.location.origin,href:window.location.href};let e=i();if(!e)throw Error(`OAuth from worker context requires the panel-RPC bridge (no page-info available)`);let t=await e.call(`page-info`,void 0);return{origin:t.origin,href:t.href}}async function y(e){let t=i();if(!t)return console.error(`[oauth-service] panel-RPC client unavailable in worker`),null;try{let n=await t.call(`oauth-popup`,{url:e},{timeoutMs:13e4});if(!n.redirectUrl&&n.error)throw new p(n.error);return n.redirectUrl}catch(e){if(e instanceof p)throw e;return console.error(`[oauth-service] oauth-popup RPC failed:`,e instanceof Error?e.message:String(e)),null}}async function b(e){if(x())return S(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let t=a();if(t){let n=await C(t,e);return n===void 0?null:S(n)}return S(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function x(){return(typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0}function S(e){return new Promise(t=>{let i=!1,a=null,o=null,s=()=>{i||(i=!0,window.removeEventListener(`message`,c),clearTimeout(l),a&&clearInterval(a),o&&clearInterval(o))},c=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(s(),n.data.error){console.error(`[oauth-service] CLI OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,c),a=setInterval(async()=>{if(!i)try{let e=await fetch(n(`/api/oauth-result`),{headers:r()});if(e.status===204||!e.ok)return;let a=await e.json();if(i)return;if(s(),a.error){console.error(`[oauth-service] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[oauth-service] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3),e&&(o=setInterval(()=>{e.closed&&(clearInterval(o),o=null,setTimeout(()=>{i||(s(),t(null))},1500))},500));let l=setTimeout(()=>{s();try{e?.close()}catch{}t(null)},12e4)})}async function C(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}async function w(e,t=18e4){if(typeof window>`u`||f)return;let n=window.open(e,`_blank`,`width=500,height=600,popup=yes`);if(!n){console.warn(`[oauth-service] Could not open IdP logout popup — popups may be blocked`);return}await new Promise(e=>{let r=setTimeout(()=>{clearInterval(i);try{n.close()}catch{}e()},t),i=setInterval(()=>{n.closed&&(clearTimeout(r),clearInterval(i),e())},500)})}async function T(e,t){let n=chrome.runtime;return new Promise(r=>{let i=!1,a=()=>{i||(i=!0,n.onMessage.removeListener(o),clearTimeout(s))},o=e=>{if(typeof e!=`object`||!e)return;let t=e;if(t.source===`service-worker`&&t.payload?.type===`oauth-result`){if(a(),t.payload.error){console.error(`[oauth-service] Extension OAuth error:`,t.payload.error),r(null);return}r(t.payload.redirectUrl??null)}};n.onMessage.addListener(o),n.sendMessage({source:`panel`,payload:{type:`oauth-request`,providerId:`oauth`,authorizeUrl:e,interactive:t?.interactive??!0}}).catch(e=>{console.error(`[oauth-service] Failed to send OAuth request to service worker:`,e)});let s=setTimeout(()=>{a(),r(null)},12e4)})}export{g as createInterceptingOAuthLauncherForCurrentRuntime,h as createOAuthLauncher,v as getOAuthPageOrigin,w as openIdpLogoutUrl,m as resolveOAuthDelegation};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-CHMeCH4_.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-wFmUGeZa.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-CNztWUVW.js","assets/base64-DJRlyqZu.js","assets/src-XLzS9HFL.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-BrMqFu_x.js","assets/types-Dgm4REV3.js","assets/page-approval-service-DnWfuBVQ.js","assets/float-topology-ey0oewfq.js","assets/runtime-env-a_l4ilH_.js","assets/speak-Dx2FEQBZ.js","assets/runtime-env-NCI8LQob.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-DnkszgHP.js","assets/shared-BpOmrBY4.js","assets/mime-types-D0xZwlMO.js","assets/preview-url-BvtKejEp.js","assets/hear-D7MO-jTh.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-i96-W77q.js","assets/providers-DuO7vxZy.js","assets/esptool-operations-DEqDNikQ.js","assets/esp8266-BN3fFVWu.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup-CVvcLs1V.js","assets/picker-popup-BjCTzsQH.js","assets/theme-engine-By4GU_Wc.js"])))=>i.map(i=>d[i]);
2
- import{G as e,p as t}from"./account-store-EaBcIxhN.js";import{t as n}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-CNztWUVW.js";import{a as r,t as i}from"./api-endpoint-BB41u1PK.js";import"./provider-settings-Dp2FBrlU.js";import{n as a,r as o}from"./hid-device-registry-B2R-0rNt.js";import{a as s,i as c}from"./serial-port-registry-CCqklAEr.js";import{A as l,C as u,D as d,E as ee,O as f,S as p,T as te,_ as ne,a as re,b as ie,c as ae,d as oe,f as se,g as ce,h as le,i as m,j as h,k as g,l as _,m as v,n as y,o as b,p as x,r as S,s as C,t as w,u as T,v as E,w as D,x as O,y as k}from"./usb-operations-BBXJ4GF8.js";import{i as A,r as j}from"./usb-device-registry-CRsCisej.js";function M(e={}){let t=new Map;return{...L(),...R(e),...z(),...B(e),...ue(e),...V(),...H(e,t),...U(),...de(e),...fe(e),...me(e),...I(),...F(),...N(),...P(),...Ce(),...we()}}function N(){return{"secrets-bridge":async({type:e,payload:t})=>{let{callSecretsBridge:r}=await n(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-CHMeCH4_.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]));return{response:await r(e,t)}}}}function P(){return{"mount-sign-and-forward":async({type:e,envelope:t})=>{let{callMountBridge:r}=await n(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-BrMqFu_x.js`);return{callMountBridge:e}},__vite__mapDeps([11,2,3,4,5,1,6,7,8,9,10,12]));return{response:await r(e,t)}}}}function F(){return{"sudo-request":async({request:e,mode:t})=>{let{resolveSudoApprovalInPage:r}=await n(async()=>{let{resolveSudoApprovalInPage:e}=await import(`./page-approval-service-DnWfuBVQ.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([13,4,14,5,1,3,6,7,8,9,10,15]));return r(e,t??`resolve`)}}}function I(){return{"proxied-fetch":async({url:e,method:t,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await n(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-CNztWUVW.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9,10])),{head:o,body:s}=await a(e,{method:t,headers:r,body:i});return{head:o,body:s}}}}function L(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await be(e,t),r=await n.arrayBuffer(),i=await xe(n);return{bytes:r,width:i.width,height:i.height,mimeType:e}},"speak-text":async({text:e,lang:t,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await n(async()=>{let{speak:e}=await import(`./speak-Dx2FEQBZ.js`);return{speak:e}},__vite__mapDeps([16,3,4,10,17,15,7,18,19,5,1,6,8,9,20,21,22]));return await s({text:e,lang:t,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:e}=await n(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-Dx2FEQBZ.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([16,3,4,10,17,15,7,18,19,5,1,6,8,9,20,21,22])),t=e().map(e=>({name:e.id,lang:e.lang,default:!1,onDevice:e.onDevice}));if(typeof speechSynthesis>`u`){if(t.length>0)return{voices:t};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...t,...r.map(Q)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...t,...i.map(Q)]}},"speak-status":async()=>{let{kokoroStatus:e}=await n(async()=>{let{kokoroStatus:e}=await import(`./speak-Dx2FEQBZ.js`);return{kokoroStatus:e}},__vite__mapDeps([16,3,4,10,17,15,7,18,19,5,1,6,8,9,20,21,22]));return e()},"speak-warmup":async()=>{let{kokoroWarmup:e}=await n(async()=>{let{kokoroWarmup:e}=await import(`./speak-Dx2FEQBZ.js`);return{kokoroWarmup:e}},__vite__mapDeps([16,3,4,10,17,15,7,18,19,5,1,6,8,9,20,21,22]));return e()},"synthesize-to-wav":async({text:e,lang:t,voice:r,rate:i})=>{let{synthesizeToWav:a}=await n(async()=>{let{synthesizeToWav:e}=await import(`./speak-Dx2FEQBZ.js`);return{synthesizeToWav:e}},__vite__mapDeps([16,3,4,10,17,15,7,18,19,5,1,6,8,9,20,21,22])),o=await a({text:e,...t===void 0?{}:{lang:t},...r===void 0?{}:{voice:r},...i===void 0?{}:{rate:i}});return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function R(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await $(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await Se(r),await $(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>{let n=await e.delegateOAuthLogin?.(t);return n?.delegated?{redirectUrl:n.redirectUrl,error:n.error}:{redirectUrl:await ve(t,e.getPermissionsSurface)}},"oauth-route":async()=>({delegate:await e.shouldDelegateOAuth?.()===!0}),"capture-camera":async e=>await ge(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function z(){return{"hear-capture":async e=>{let{hearCapture:t}=await n(async()=>{let{hearCapture:e}=await import(`./hear-D7MO-jTh.js`);return{hearCapture:e}},__vite__mapDeps([23,4,24,25,3,19,5,1,6,7,8,9,10,17,15,20,21,22]));return await t(e??{})},"hear-transcribe":async({bytes:e,lang:t})=>{let{hearTranscribe:r}=await n(async()=>{let{hearTranscribe:e}=await import(`./hear-D7MO-jTh.js`);return{hearTranscribe:e}},__vite__mapDeps([23,4,24,25,3,19,5,1,6,7,8,9,10,17,15,20,21,22]));return await r(e,t)},"hear-status":async()=>{let{hearStatus:e}=await n(async()=>{let{hearStatus:e}=await import(`./hear-D7MO-jTh.js`);return{hearStatus:e}},__vite__mapDeps([23,4,24,25,3,19,5,1,6,7,8,9,10,17,15,20,21,22]));return e()},"hear-warmup":async()=>{let{hearWarmup:e}=await n(async()=>{let{hearWarmup:e}=await import(`./hear-D7MO-jTh.js`);return{hearWarmup:e}},__vite__mapDeps([23,4,24,25,3,19,5,1,6,7,8,9,10,17,15,20,21,22]));return e()}}}function B(r){return{"tray-reset":async()=>{if(!r.resetTray)throw Error(`host reset: no active tray session to reset`);return await r.resetTray()},"tray-open-preview":async e=>{if(!r.mintPreview)throw Error(`serve: no active leader tray; cannot mint preview`);return await r.mintPreview(e)},"tray-revoke-preview":async e=>{if(!r.revokePreview)throw Error(`serve: no active leader tray; cannot revoke preview`);return await r.revokePreview(e)},"tray-list-previews":async()=>{if(!r.listPreviews)throw Error(`serve: no active leader tray; cannot list previews`);return await r.listPreviews()},"tray-mint-biscotto":async e=>{if(!r.mintBiscotto)throw Error(`biscotto: no active leader tray; cannot mint a seat`);return await r.mintBiscotto(e)},"tray-revoke-biscotto":async e=>{if(!r.revokeBiscotto)throw Error(`biscotto revoke: no active leader tray; cannot revoke a seat`);return await r.revokeBiscotto(e)},"tray-list-biscotti":async()=>{if(!r.listBiscotti)throw Error(`biscotti: no active leader tray; cannot list seats`);return await r.listBiscotti()},"tray-preview-logs":async({previewToken:e})=>{if(!r.getPreviewLifecycleRecords)throw Error(`serve --logs: no active leader tray; cannot read preview logs`);return r.getPreviewLifecycleRecords(e)},"tray-preview-truncate":async({previewToken:e})=>{if(!r.truncatePreviewLifecycleRecords)throw Error(`serve --truncate: no active leader tray; cannot truncate preview logs`);return r.truncatePreviewLifecycleRecords(e)},"tray-leave":async({workerBaseUrl:e,requestId:t})=>{if(!r.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await r.leaveTray({workerBaseUrl:e,requestId:t})},"tray-join":async({joinUrl:e,requestId:t})=>{if(!r.joinTray)throw Error(`host join: tray join is not available in this environment`);return await r.joinTray({joinUrl:e,requestId:t})},"cherry-emit":async({runtimeId:e,name:t,detail:n})=>{if(!r.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:r.emitCherrySliccEvent(e,t,n)}},"tray-exec":async e=>{if(!r.execOnRemote)throw Error(`ssh: no active leader tray in this environment`);return await r.execOnRemote(e)},"tray-exec-signal":({execToken:e})=>(r.signalRemoteExec?.({execToken:e}),{ok:!0}),"oauth-extras-set":({providerId:n,domains:r})=>(e(n,r),{storeAfter:t()}),"silent-renew":async({providerId:e})=>{let{getRegisteredProviderConfig:t}=await n(async()=>{let{getRegisteredProviderConfig:e}=await import(`./providers-DuO7vxZy.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([26,1,3])),r=t(e);return r?.onSilentRenew?{accessToken:await r.onSilentRenew()}:{accessToken:null}},"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}function ue(e){let t=new Map,n=()=>{if(!e.sliccSidecar)throw Error(`slicc: sidecar attachments are not available in this environment`);return e.sliccSidecar},r=async(e,r)=>{let i=n(),a=new AbortController;t.set(e,a);try{return await r(i,a.signal)}finally{t.delete(e)}};return{"slicc-attach":async({joinUrl:e,name:t,connectTimeoutMs:r})=>await n().attach({joinUrl:e,name:t,connectTimeoutMs:r}),"slicc-detach":({name:e})=>({detached:n().detach(e)}),"slicc-list":()=>({attachments:n().list()}),"slicc-prompt":async({name:e,text:t,runToken:n,steer:i,timeoutMs:a})=>await r(n,async(n,r)=>await n.prompt(e,t,{steer:i,timeoutMs:a,signal:r})),"slicc-exec":async({name:e,command:t,runToken:n,cwd:i,env:a,timeoutMs:o,stdin:s})=>await r(n,async(n,r)=>await n.exec(e,t,{cwd:i,env:a,timeoutMs:o,stdin:s,signal:r})),"slicc-watch":async({name:e,runToken:t,durationMs:n,scoopJid:i,untilIdle:a})=>await r(t,async(t,r)=>await t.watch(e,{durationMs:n,scoopJid:i,untilIdle:a,signal:r})),"slicc-cancel":({runToken:e})=>(t.get(e)?.abort(),{ok:!0})}}function V(){return{"usb-list":async()=>({devices:await b(W(),G())}),"usb-request":async({filters:e})=>({device:await _(W(),G(),e)}),"usb-device-info":({handle:e})=>({device:re(W(),e)}),"usb-open":async({handle:e})=>(await C(W(),e),{done:!0}),"usb-close":async({handle:e})=>(await y(W(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await oe(W(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await w(W(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await ae(W(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>S(W(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>m(W(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>se(W(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>x(W(),e,t,n),"usb-reset":async({handle:e})=>(await T(W(),e),{done:!0})}}function H(e,t){return{"hid-list":async()=>({devices:await ce(K(),q())}),"hid-request":async({filters:e})=>({devices:await k(K(),q(),e)}),"hid-device-info":({handle:e})=>({device:le(K(),e)}),"hid-open":async({handle:e})=>(await ne(K(),e),{done:!0}),"hid-close":async({handle:e})=>(await v(K(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await O(K(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await ie(K(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>E(K(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await p(K(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function U(){return{"serial-list":async()=>({devices:await ee(J(),Y())}),"serial-request":async({filters:e})=>({device:await g(J(),Y(),e)}),"serial-device-info":({handle:e})=>({device:D(J(),e)}),"serial-open":async({handle:e,options:t})=>(await d(J(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(J(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await f(J(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await h(J(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await te(J(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(J(),e,t),{done:!0})}}function de(e){return{"esptool-chip-info":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolChipInfo(J(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-read-mac":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolReadMac(J(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-erase-flash":async({handle:t,baudRate:r})=>(await(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolEraseFlash(J(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-flash":async({handle:t,baudRate:r,eraseAll:i,segments:a})=>(await(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolFlash(J(),t,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-read-flash":async({handle:t,baudRate:r,address:i,size:a})=>{let o=await(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolReadFlash(J(),t,r,i,a,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:t,baudRate:r,address:i})=>(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolReadReg(J(),t,r,i,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-flash-id":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolFlashId(J(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-erase-region":async({handle:t,baudRate:r,address:i,size:a})=>(await(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolEraseRegion(J(),t,r,i,a,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0}),"esptool-run":async({handle:t,baudRate:r})=>(await(await n(()=>import(`./esptool-operations-DEqDNikQ.js`),__vite__mapDeps([27,1,3,28,29]))).esptoolRun(J(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),{done:!0})}}function fe(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function pe(e,t){return t===void 0?e.length>0&&e.every(e=>e===`camera`||e===`microphone`):t}function me(e){return{"permission-request":async t=>{let r=e.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:t.kinds,description:t.description,heading:t.heading,grantLabel:t.grantLabel,cancelLabel:t.cancelLabel,skipIfGranted:pe(t.kinds,t.skipIfGranted)});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let e of i.grants)switch(e.kind){case`usb`:{let t=W().register(e.device);a.push({kind:`usb`,handle:t});break}case`hid`:{let t=K().register(e.device);a.push({kind:`hid`,handle:t});break}case`serial`:{let t=J().register(e.port);a.push({kind:`serial`,handle:t});break}case`filesystem`:{let{storePendingHandle:t}=await n(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-CVvcLs1V.js`);return{storePendingHandle:e}},__vite__mapDeps([30,4,31,10,15,7])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await t(r,e.handle),a.push({kind:`filesystem`,idbKey:r,dirName:e.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let t of e.stream.getTracks())t.stop();a.push({kind:e.kind,ok:!0})}return{grants:a}}}}function W(){return A()}function G(){let e=j();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function K(){return o()}function q(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function J(){return s()}function Y(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var he=1500;async function ge(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await _e({wantVideo:t,videoDeviceId:t?await X(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await X(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??he;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function X(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function _e(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?!e.audioDeviceId||{deviceId:{exact:e.audioDeviceId}}:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}async function ve(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await ye(n,e);return t===void 0?null:Z(t)}return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function Z(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;(typeof r==`string`||r==null)&&t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function ye(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}function Q(e){return{name:e.name,lang:e.lang,default:e.default,onDevice:!1}}async function be(e,t){if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`screen capture is not supported in this browser`);let n=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let r=document.createElement(`video`);r.srcObject=n,r.muted=!0,r.playsInline=!0,await new Promise((e,t)=>{r.onloadedmetadata=()=>r.play().then(()=>e()).catch(t),r.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100));let i=r.videoWidth,a=r.videoHeight,o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s)throw Error(`Failed to get canvas context`);return s.drawImage(r,0,0,i,a),await new Promise((n,r)=>{o.toBlob(e=>e?n(e):r(Error(`Failed to create image blob`)),e,t)})}finally{n.getTracks().forEach(e=>{e.stop()})}}async function xe(e){let t=URL.createObjectURL(e);try{let e=new Image;return await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to decode capture`)),e.src=t}),{width:e.naturalWidth,height:e.naturalHeight}}finally{URL.revokeObjectURL(t)}}async function Se(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function $(e=3e5){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}function Ce(){return{"theme-apply":async({themeJson:e,action:t})=>{let{importTheme:r,saveCustomTheme:i,setActiveTheme:a,clearActiveTheme:o,applyThemeOverrides:s}=await n(async()=>{let{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}=await import(`./theme-engine-By4GU_Wc.js`).then(e=>e.p);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([32,1,4]));if(t===`reset`)return o(),s(),{applied:null};if(e){let t=r(e);return i(t),a(t.id),s(),{applied:t.id}}return{applied:null}}}}function we(){return{"layout-apply":async e=>{let{getLayoutApplier:t}=await n(async()=>{let{getLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{getLayoutApplier:e}},[]),r=t();return r?await r(e)??{applied:!0}:{applied:!1,error:`no layout is mounted`}}}}export{M as createStandalonePanelRpcHandlers};
@@ -1 +0,0 @@
1
- import{n as e}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-a_l4ilH_.js";var t=(()=>{try{return console}catch{return}})(),n={directory:{width:320,height:120},"usb-device":{width:320,height:120},"serial-port":{width:320,height:120},"hid-device":{width:320,height:120}};function r(){return globalThis.chrome??null}function i(){let t=r();return e()&&typeof t?.windows?.create==`function`}async function a(e,i=[],a=`picker-${Date.now()}-${Math.random().toString(36).slice(2)}`,o={}){let s=r();if(!s?.runtime?.onMessage||!s.windows?.create)throw Error(`picker popup: chrome.windows.create not available`);let c=s.runtime.onMessage,l=s.windows.onRemoved,u=s.runtime.getURL?.bind(s.runtime),d=n[e],f=encodeURIComponent(JSON.stringify(i??[])),p=`kind=${encodeURIComponent(e)}&requestId=${encodeURIComponent(a)}&filters=${f}`,m=u?`${u(`picker-popup.html`)}?${p}`:`picker-popup.html?${p}`;return new Promise(n=>{let r=!1,i,u,f=()=>{try{c.removeListener(h)}catch{}if(l&&g)try{l.removeListener(g)}catch{}i!==void 0&&clearTimeout(i)},p=e=>{r||(r=!0,f(),n(e))},h=t=>{if(r)return;let n=t;if(n?.source!==`picker-popup`||n.kind!==e||n.requestId!==a)return;let{source:i,kind:o,requestId:s,...c}=n;p(c)};c.addListener(h);let g=l?e=>{u!==void 0&&e===u&&p({cancelled:!0})}:void 0;l&&g&&l.addListener(g),o.timeoutMs&&o.timeoutMs>0&&(i=setTimeout(()=>p({cancelled:!0}),o.timeoutMs)),s.windows.create({url:m,type:`popup`,width:d.width,height:d.height,focused:!0}).then(e=>{if(!e?.id){p({error:`failed to open picker window`});return}u=e.id}).catch(e=>{t?.warn?.(`picker popup window.create failed`,e),p({error:e instanceof Error?e.message:String(e)})})})}export{a as n,i as t};
@@ -1 +0,0 @@
1
- import"./picker-popup-BjCTzsQH.js";
@@ -1 +0,0 @@
1
- import{n as e}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-a_l4ilH_.js";function t(t,n){let r=e(),i=`/preview${t}${n?`?projectRoot=${encodeURIComponent(n)}`:``}`;if(r){let e=globalThis.chrome?.runtime?.getURL;if(e)return e(i)}let a=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?a=window.location.origin:typeof self<`u`&&self.location?.origin&&(a=self.location.origin),`${a}${i}`}export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./logger-LESFN7Hj.js";import"./src-DXa5EsFV.js";import"./account-store-CCqSr710.js";import"./tray-runtime-config-DCaFjGSS.js";import"./core-CdPvxBo3.js";e(`provider-settings`);
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-nBlvta_T.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-CNztWUVW.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DJRlyqZu.js","assets/src-XLzS9HFL.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-NCI8LQob.js","assets/runtime-env-a_l4ilH_.js","assets/panel-rpc-B3MSVImO.js","assets/permissions-surface-registry-CilCRwhh.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,R as _,S as v,T as y,U as b,V as x,W as S,_ as C,a as ee,b as te,c as ne,d as w,f as re,g as ie,h as T,i as E,j as ae,k as D,l as oe,m as se,n as ce,o as le,p as ue,q as de,s as fe,t as pe,u as O,v as me,w as he,x as ge,y as k,z as _e}from"./account-store-EaBcIxhN.js";import{t as A}from"./preload-helper-Czpn1I53.js";import{t as ve}from"./logger-DDBAeTLF.js";import{u as ye}from"./src-XLzS9HFL.js";import{o as j,u as M}from"./tray-runtime-config-D9gR_d0I.js";import{o as N}from"./telemetry-MJ77Fp1a.js";import{t as P}from"./tray-follower-status-BAjnN7Ar.js";import{n as be}from"./clipboard-eqmn97SP.js";import{n as F}from"./tray-join-url-BIvzbiFR.js";var xe=e({ACCOUNTS_KEY:()=>pe,__test__:()=>ce,addAccount:()=>E,applyProviderDefaults:()=>ee,clearAllSettings:()=>le,clearApiKey:()=>fe,clearBaseUrl:()=>ne,clearSelectedProvider:()=>oe,describeInvalidJoinUrl:()=>F,downloadProviders:()=>R,exportProviders:()=>O,getAccounts:()=>w,getAllAvailableModels:()=>re,getAllExtraOAuthDomains:()=>ue,getApiKey:()=>se,getApiKeyForProvider:()=>T,getApiVersionForProvider:()=>ie,getAvailableProviders:()=>C,getBaseUrl:()=>me,getBaseUrlForProvider:()=>k,getDeploymentForProvider:()=>te,getExtraOAuthDomains:()=>ge,getOAuthAccountInfo:()=>v,getProviderConfig:()=>r,getProviderModels:()=>he,getRawApiKeyForProvider:()=>y,getSelectedModelId:()=>a,getSelectedProvider:()=>i,isModelHiddenFromPicker:()=>h,logoutOAuthAccount:()=>D,maskOAuthTokenWithRetry:()=>t,migrateLegacyAuthOnlySelection:()=>ae,modelRunsOnProvider:()=>p,persistOAuthMaskViaServiceWorker:()=>m,policyVisible:()=>g,providerOffersLlmModels:()=>o,reloginOAuthAccount:()=>G,removeAccount:()=>l,resolveCurrentModel:()=>f,resolveModelById:()=>_,resolveModelByShorthand:()=>_e,resolveModelIdForScoop:()=>n,resolveModelSelectionForScoop:()=>x,saveOAuthAccount:()=>c,setApiKey:()=>b,setBaseUrl:()=>S,setExtraOAuthDomains:()=>s,setExtraOAuthDomainsAsync:()=>d,setSelectedModelId:()=>de,setSelectedProvider:()=>u,showProviderSettings:()=>$,testOnlyDispatchTrayJoinWithFailureFeedback:()=>Se}),I=ve(`provider-settings`);function Se(e,t){return L(e,t)}function L(e,t){let n=`tray-join-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=!1,i,a=()=>{r||(r=!0,i!==void 0&&clearTimeout(i),window.removeEventListener(`slicc:tray-join-failed`,o))},o=r=>{let i=r.detail;if(i.requestId!==void 0&&i.requestId!==n)return;if(a(),!t.isConnected){I.error(`Tray-join failure arrived after dialog dismissed (UX swallowed half-state)`,{joinUrl:e,error:i.error,requestId:n});return}let o=t.dataset.dismissTimer;if(o){let e=Number(o);Number.isFinite(e)&&clearTimeout(e),delete t.dataset.dismissTimer}t.textContent=`Sync failed: ${i.error}. Reload the page and try again.`,t.style.color=`var(--slicc-cone)`};return window.addEventListener(`slicc:tray-join-failed`,o),i=setTimeout(a,1e4),window.dispatchEvent(new CustomEvent(`slicc:tray-join`,{detail:{joinUrl:e,requestId:n}})),a}function R(){let e=JSON.stringify(O(),null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`providers.json`,r.click(),URL.revokeObjectURL(n)}function Ce(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function z(e){let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`);n.setAttribute(`width`,`14`),n.setAttribute(`height`,`14`),n.setAttribute(`viewBox`,`0 0 20 20`),n.setAttribute(`fill`,`none`),n.setAttribute(`stroke`,`currentColor`),n.setAttribute(`stroke-width`,`1.5`),n.setAttribute(`stroke-linecap`,`round`),n.setAttribute(`stroke-linejoin`,`round`);for(let r of e){let e=document.createElementNS(t,`path`);e.setAttribute(`d`,r),n.appendChild(e)}return n}var B={pen:[`M14.3 3.3a1.5 1.5 0 0 1 2.1 0l.3.3a1.5 1.5 0 0 1 0 2.1L7.7 14.8l-3.2.7.7-3.2z`],trash:[`M4 6h12`,`M8 6V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2`,`M6 6v10a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V6`],logout:[`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,`M16 17l5-5-5-5`,`M21 12H9`],login:[`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,`M10 17l5-5-5-5`,`M15 12H3`]},V=`background: transparent; border: 1px solid var(--s2-border-subtle); color: var(--s2-content-secondary); border-radius: var(--s2-radius-s); padding: 6px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s;`;function H(e,t){e.addEventListener(`mouseenter`,()=>{e.style.color=t,e.style.borderColor=t}),e.addEventListener(`mouseleave`,()=>{e.style.color=`var(--s2-content-secondary)`,e.style.borderColor=`var(--s2-border-subtle)`})}function U(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function W(e){e.options?.startInAddAccount?U(e):K(e)}function we(e){let t=document.createElement(`div`);return t.style.cssText=`font-size: 11px; color: var(--s2-content-disabled); font-family: monospace; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`,e.loggedOut?(t.textContent=e.userName?`Logged out — was ${e.userName}`:`Logged out`,t.style.color=`var(--s2-content-disabled)`):t.textContent=e.userName?e.userName:e.accessToken?`Logged in`:Ce(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function G(e,t){let{createOAuthLauncher:n,createInterceptingOAuthLauncherForCurrentRuntime:r}=await A(async()=>{let{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}=await import(`./oauth-service-nBlvta_T.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),i={forceReauth:!0};if(e.onOAuthLoginIntercepted){let n=await r();n&&await e.onOAuthLoginIntercepted(n,t,i)}else if(e.onOAuthLogin){let r=n();await e.onOAuthLogin(r,t,i)}}function Te(e,t){let n=document.createElement(`button`);return n.style.cssText=V,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(z(B.pen)),H(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>X(e,t)),n}function Ee(e,t,n){let r=document.createElement(`button`);return r.style.cssText=V,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(z(B.login)),H(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{G(n,()=>K(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(z(B.logout)),H(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await D(t.providerId),K(e)})()})),r}function De(e,t){let n=document.createElement(`button`);return n.style.cssText=V,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(z(B.trash)),H(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await l(t.providerId),K(e)})()}),n}function Oe(e,t){let n=r(t.providerId),i=document.createElement(`div`);i.style.cssText=`display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); margin-bottom: 8px; border: 1px solid var(--s2-border-subtle);`;let a=document.createElement(`div`);a.style.cssText=`flex: 1; min-width: 0;`;let o=document.createElement(`div`);o.style.cssText=`font-size: 14px; font-weight: 600; color: var(--s2-content-default);`,o.textContent=n.name,a.appendChild(o),a.appendChild(we(t)),i.appendChild(a);let s=document.createElement(`div`);return s.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,s.appendChild(Te(e,t)),n.isOAuth&&s.appendChild(Ee(e,t,n)),s.appendChild(De(e,t)),i.appendChild(s),i}function ke(e){let t=document.createDocumentFragment(),n=document.createElement(`hr`);n.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-weight: 600; margin-bottom: 8px;`,r.textContent=`Tray`,t.appendChild(r);let i=P(),a=i.state!==`inactive`,o=j(window.localStorage);if(a||o){let e=document.createElement(`div`);e.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px;`,e.textContent=`Follower: ${a?i.state:`configured`}`,i.error&&(e.textContent+=` — ${i.error}`,e.style.color=`var(--slicc-cone)`),t.appendChild(e)}let s=document.createElement(`button`);return s.className=`dialog__btn dialog__btn--secondary`,s.textContent=a||o?`Reconnect to other browser`:`Connect to another browser`,s.addEventListener(`click`,()=>Q(e)),t.appendChild(s),t}function K(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=w();if(r.length===0){let e=document.createElement(`div`);e.className=`dialog__desc`,e.textContent=`No accounts configured.`,t.appendChild(e)}else{let n=document.createElement(`div`);n.style.cssText=`margin-bottom: 16px;`;for(let t of r)n.appendChild(Oe(e,t));t.appendChild(n)}let i=document.createElement(`div`);i.style.cssText=`display: flex; gap: 8px;`;let a=document.createElement(`button`);a.className=r.length>0?`dialog__btn dialog__btn--secondary`:`dialog__btn`,a.style.flex=`1`,a.textContent=`Add Account`,a.addEventListener(`click`,()=>X(e)),i.appendChild(a);let o=document.createElement(`button`);o.className=`dialog__btn dialog__btn--secondary`,o.style.flex=`1`,o.textContent=`Export`,o.addEventListener(`click`,()=>R()),i.appendChild(o),t.appendChild(i),t.appendChild(ke(e));let s=document.createElement(`hr`);s.style.cssText=`border: none; border-top: 1px solid var(--s2-border-subtle); margin: 16px 0;`,t.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Get Started`,c.addEventListener(`click`,()=>U(e)),t.appendChild(c)}function Ae(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=r(t.providerId),i=document.createElement(`option`);return i.value=t.providerId,i.textContent=e.name,n.appendChild(i),n.disabled=!0,n.style.opacity=`0.7`,n}let i=document.createElement(`option`);i.value=``,i.textContent=`Select a provider…`,i.disabled=!0,i.selected=!0,i.hidden=!0,n.appendChild(i);let a=new Set(w().map(e=>e.providerId)),s=[...C()].sort((e,t)=>r(e).name.localeCompare(r(t).name));for(let t of s){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!o(t))continue;let i=document.createElement(`option`);i.value=t,i.textContent=r(t).name,n.appendChild(i)}return n}function je(e,t){let n=Ae(e,t),r=document.createElement(`div`);r.className=`dialog__desc`,r.style.cssText=`font-size: 12px; color: var(--s2-content-tertiary); margin-bottom: 16px; margin-top: -4px;`;let i=document.createElement(`div`);i.style.cssText=`margin-bottom: 16px; display: none;`;let a=document.createElement(`button`);a.className=`dialog__btn`,a.textContent=`Login`,a.style.cssText=`width: 100%; margin-bottom: 8px;`,i.appendChild(a);let o=document.createElement(`div`);o.className=`dialog__desc`,o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); text-align: center;`,i.appendChild(o);let s=document.createElement(`div`),c=document.createElement(`div`);c.className=`dialog__desc`,s.appendChild(c);let l=document.createElement(`input`);l.className=`dialog__input`,l.type=`password`,l.autocomplete=`off`,l.spellcheck=!1,t&&(l.value=t.apiKey),s.appendChild(l);let u=document.createElement(`div`),d=document.createElement(`div`);d.className=`dialog__desc`,d.textContent=`Base URL:`,u.appendChild(d);let f=document.createElement(`input`);f.className=`dialog__input`,f.type=`text`,f.autocomplete=`off`,f.spellcheck=!1,t?.baseUrl&&(f.value=t.baseUrl),u.appendChild(f);let p=document.createElement(`div`);p.className=`dialog__desc`,p.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,u.appendChild(p);let m=document.createElement(`div`);m.style.display=`none`;let h=document.createElement(`div`);h.className=`dialog__desc`,h.textContent=`Deployment:`,m.appendChild(h);let g=document.createElement(`input`);g.className=`dialog__input`,g.type=`text`,g.autocomplete=`off`,g.spellcheck=!1,t?.deployment&&(g.value=t.deployment),m.appendChild(g);let _=document.createElement(`div`);_.className=`dialog__desc`,_.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,m.appendChild(_);let v=document.createElement(`div`);v.style.display=`none`;let y=document.createElement(`div`);y.className=`dialog__desc`,y.textContent=`API Version:`,v.appendChild(y);let b=document.createElement(`input`);b.className=`dialog__input`,b.type=`text`,b.autocomplete=`off`,b.spellcheck=!1,t?.apiVersion&&(b.value=t.apiVersion),v.appendChild(b);let x=document.createElement(`div`);x.className=`dialog__desc`,x.style.cssText=`font-size: 11px; color: var(--s2-content-secondary); margin-top: -12px; margin-bottom: 16px;`,v.appendChild(x);let S=document.createElement(`div`);S.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`;let C=document.createElement(`button`);return C.className=`dialog__btn`,C.textContent=t?`Save`:`Add`,{providerSelect:n,providerDesc:r,oauth:{section:i,loginBtn:a,status:o},apiKeySection:s,apiKeyLabel:c,apiKeyInput:l,baseUrlSection:u,baseUrlInput:f,baseUrlDesc:p,deploymentSection:m,deploymentInput:g,deploymentDesc:_,apiVersionSection:v,apiVersionInput:b,apiVersionDesc:x,errorEl:S,saveBtn:C}}function Me(e){let t=document.createElement(`div`);t.setAttribute(`data-slicc-device-code-prompt`,``),t.style.cssText=`display:flex;flex-direction:column;gap:8px`;let n=document.createElement(`div`);n.className=`dialog__desc`,n.textContent=`Verification code`,n.style.cssText=`font-size: 11px; color: var(--s2-content-tertiary);`;let r=document.createElement(`div`);r.textContent=e,r.style.cssText=[`font: 600 22px ui-monospace, SFMono-Regular, Menlo, monospace`,`letter-spacing: 2px`,`color: var(--s2-content-primary, #e6edf3)`,`background: var(--s2-bg-secondary, #161b22)`,`border: 1px solid var(--s2-border, #30363d)`,`border-radius: 6px`,`padding: 10px 12px`,`text-align: center`,`user-select: all`,`cursor: text`].join(`;`);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.cssText=`font-size: 12px; color: var(--s2-content-secondary);`,i.textContent=`Click Copy & Continue — we will open the GitHub authorization page in a new tab. Paste this code there if it is not already filled in.`;let a=document.createElement(`div`);a.style.cssText=`display:flex;gap:8px;justify-content:flex-end;margin-top:4px`;let o=document.createElement(`button`);o.type=`button`,o.className=`dialog__btn`,o.textContent=`Cancel`;let s=document.createElement(`button`);return s.type=`button`,s.className=`dialog__btn dialog__btn--primary`,s.textContent=`Copy & Continue`,a.appendChild(o),a.appendChild(s),t.appendChild(n),t.appendChild(r),t.appendChild(i),t.appendChild(a),{prompt:t,cancelBtn:o,continueBtn:s}}function Ne(e){return t=>new Promise(n=>{let r=e.loginBtn.style.display,i=e.status.style.display;e.loginBtn.style.display=`none`,e.status.style.display=`none`;let{prompt:a,cancelBtn:o,continueBtn:s}=Me(t.userCode),c=()=>{try{a.remove()}catch{}e.loginBtn.style.display=r,e.status.style.display=i};o.addEventListener(`click`,()=>{c(),n(`cancel`)}),s.addEventListener(`click`,()=>{(async()=>{try{await be(t.userCode)}catch{}c(),e.status.style.display=i,e.status.textContent=`Waiting for you to authorize in the new tab…`,n(`continue`)})()}),e.section.appendChild(a)})}async function q(e,t){let n=t.providerSelect.value;if(!n)return;let i=r(n);if(!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return;let{status:a}=t.oauth,o=w().some(e=>e.providerId===n),s=k(n);if(i.requiresBaseUrl&&!t.baseUrlInput.value.trim()&&!s){a.textContent=`Base URL is required.`,a.style.color=`var(--slicc-cone)`,t.baseUrlInput.focus();return}i.requiresBaseUrl&&t.baseUrlInput.value.trim()&&E(n,``,t.baseUrlInput.value.trim()),a.textContent=`Opening login window...`;try{if(i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await A(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-nBlvta_T.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),r=await n();if(!r)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await i.onOAuthLoginIntercepted(r,()=>W(e),{presentDeviceCode:Ne(t.oauth)})}else if(i.onOAuthLogin){let{createOAuthLauncher:t}=await A(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-nBlvta_T.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),n=t();await i.onOAuthLogin(n,()=>W(e))}}catch(e){if(!o)try{await l(n)}catch{}I.error(`OAuth login failed`,{providerId:n,error:e instanceof Error?e.message:String(e)}),a.textContent=`Login failed: ${e instanceof Error?e.message:String(e)}`}}function Pe(e,t){if(t.isOAuth){e.oauth.section.style.display=``,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,t.requiresBaseUrl&&(e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``),e.oauth.loginBtn.textContent=`Login with ${t.name}`,e.saveBtn.style.display=`none`;return}e.oauth.section.style.display=`none`;let n=t.requiresApiKey?`API Key`:`API Key (optional)`;e.apiKeyLabel.textContent=`${n}${t.apiKeyEnvVar?` (${t.apiKeyEnvVar})`:``}:`,e.apiKeyInput.placeholder=t.apiKeyPlaceholder||`API key`,e.apiKeySection.style.display=t.requiresApiKey||t.optionalApiKey?``:`none`,e.baseUrlInput.placeholder=t.baseUrlPlaceholder||`https://...`,e.baseUrlDesc.textContent=t.baseUrlDescription||``,e.baseUrlSection.style.display=t.requiresBaseUrl?``:`none`,e.saveBtn.style.display=``}function Fe(e,t){t.requiresDeployment?(e.deploymentSection.style.display=``,e.deploymentInput.placeholder=t.deploymentPlaceholder||`deployment-name`,e.deploymentDesc.textContent=t.deploymentDescription||``):e.deploymentSection.style.display=`none`}function Ie(e,t){t.requiresApiVersion?(e.apiVersionSection.style.display=``,!e.apiVersionInput.value&&t.apiVersionDefault&&(e.apiVersionInput.value=t.apiVersionDefault),e.apiVersionInput.placeholder=t.apiVersionDefault||`api-version`,e.apiVersionDesc.textContent=t.apiVersionDescription||``):e.apiVersionSection.style.display=`none`}function J(e){let t=e.providerSelect.value;if(!t){e.providerDesc.textContent=``,e.oauth.section.style.display=`none`,e.apiKeySection.style.display=`none`,e.baseUrlSection.style.display=`none`,e.deploymentSection.style.display=`none`,e.apiVersionSection.style.display=`none`,e.saveBtn.style.display=`none`;return}let n=r(t);e.providerDesc.textContent=n.description,Pe(e,n),Fe(e,n),Ie(e,n)}function Y(e,t){let n=t.providerSelect.value;if(!n)return;let i=r(n),a=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(i.requiresApiKey&&t.apiKeyInput.value.trim().length<5){a(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(i.requiresBaseUrl&&!t.baseUrlInput.value.trim()){a(`Base URL is required for this provider.`,t.baseUrlInput);return}if(i.requiresDeployment&&!t.deploymentInput.value.trim()){a(`Deployment name is required for this provider.`,t.deploymentInput);return}E(n,t.apiKeyInput.value.trim(),t.baseUrlInput.value.trim()||void 0,t.deploymentInput.value.trim()||void 0,t.apiVersionInput.value.trim()||void 0),W(e)}function Le(e,t){let{dialog:n,options:r}=e,i=w().length>0;if(r?.startInAddAccount){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Cancel`,t.addEventListener(`click`,()=>U(e)),n.appendChild(t)}else if(!t&&!i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Connect to another browser`,t.addEventListener(`click`,()=>Q(e)),n.appendChild(t)}else if(i){let t=document.createElement(`button`);t.className=`dialog__btn dialog__btn--secondary`,t.style.marginTop=`8px`,t.textContent=`Back`,t.addEventListener(`click`,()=>K(e)),n.appendChild(t)}}function X(e,t){let{dialog:n}=e;n.innerHTML=``;let i=document.createElement(`div`);i.className=`dialog__title`,i.textContent=t?`Edit Account`:`Add Account`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Provider:`,n.appendChild(a);let o=je(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{q(e,o)}),t?.userName&&(o.oauth.status.textContent=`Logged in as ${t.userName}`,o.oauth.loginBtn.textContent=`Re-login`),n.appendChild(o.oauth.section),n.appendChild(o.apiKeySection),n.appendChild(o.baseUrlSection),n.appendChild(o.deploymentSection),n.appendChild(o.apiVersionSection),n.appendChild(o.errorEl),o.providerSelect.addEventListener(`change`,()=>{o.errorEl.style.display=`none`,J(o)}),J(o),o.saveBtn.addEventListener(`click`,()=>Y(e,o));let s=t=>{t.key===`Enter`&&Y(e,o)};o.apiKeyInput.addEventListener(`keydown`,s),o.baseUrlInput.addEventListener(`keydown`,s),o.deploymentInput.addEventListener(`keydown`,s),o.apiVersionInput.addEventListener(`keydown`,s),n.appendChild(o.saveBtn),Le(e,!!t),requestAnimationFrame(()=>{let e=o.providerSelect.value;if(!e)return;let t=r(e);t.requiresApiKey?o.apiKeyInput.focus():t.requiresBaseUrl&&o.baseUrlInput.focus()})}function Z(e,t,n){L(t,n),n.textContent=`Connecting…`,n.style.display=``,n.style.color=`var(--s2-content-secondary)`;let r=setTimeout(()=>{e.overlay.remove(),e.resolve(!1)},800);n.dataset.dismissTimer=String(r)}function Re(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect this browser?`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`You’ve been invited to mirror another SLICC browser. Click below to start syncing.`,n.appendChild(i);let a=document.createElement(`div`);a.className=`dialog__desc`,a.style.cssText=`font-family: monospace; font-size: 11px; color: var(--s2-content-secondary); word-break: break-all; margin-bottom: 16px; padding: 8px; background: var(--s2-bg-secondary); border-radius: 4px;`,a.textContent=t.length>80?t.slice(0,40)+`…`+t.slice(-37):t,n.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`,n.appendChild(o);let s=document.createElement(`button`);s.className=`dialog__btn`,s.textContent=`Connect`,s.addEventListener(`click`,()=>{let n=M(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}Z(e,n.joinUrl,o)}),n.appendChild(s);let c=document.createElement(`button`);c.className=`dialog__btn dialog__btn--secondary`,c.style.marginTop=`8px`,c.textContent=`Set up an account instead`,c.addEventListener(`click`,()=>X(e)),n.appendChild(c)}function ze(){let e=document.createElement(`details`);e.style.cssText=`margin-bottom: 12px; font-size: 12px; color: var(--s2-content-secondary);`;let t=document.createElement(`summary`);t.style.cssText=`cursor: pointer; user-select: none; color: var(--s2-content-secondary);`,t.textContent=`How do I get the sync URL?`,e.appendChild(t);let n=document.createElement(`div`);n.style.cssText=`margin-top: 8px; padding: 10px 12px; background: var(--s2-bg-layer-2); border-radius: var(--s2-radius-default); border: 1px solid var(--s2-border-subtle); line-height: 1.5;`;let r=document.createElement(`ol`);r.style.cssText=`margin: 0; padding-left: 20px;`;for(let e of[`On the other SLICC, click the avatar (top right).`,`Choose “Enable multi-browser sync” — the URL is copied automatically.`,`Paste it below. Both browsers must be on the same SLICC version.`]){let t=document.createElement(`li`);t.textContent=e,r.appendChild(t)}return n.appendChild(r),e.appendChild(n),e}function Q(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Connect to another browser`,t.appendChild(n);let r=document.createElement(`div`);r.className=`dialog__desc`,r.style.marginBottom=`12px`,r.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,t.appendChild(r),t.appendChild(ze());let i=document.createElement(`div`);i.className=`dialog__desc`,i.textContent=`Sync URL:`,t.appendChild(i);let a=document.createElement(`input`);a.className=`dialog__input`,a.type=`text`,a.autocomplete=`off`,a.spellcheck=!1,a.placeholder=`${ye}/join/<token>`,t.appendChild(a);let o=document.createElement(`div`);o.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,t.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let c=document.createElement(`button`);c.className=`dialog__btn`,c.textContent=`Connect`,c.addEventListener(`click`,()=>{let t=a.value.trim();if(!t){o.textContent=`Paste a sync URL to continue.`,o.style.display=``,a.focus();return}let n=M(window.localStorage,t);if(!n){o.textContent=F(t),o.style.display=``,a.focus();return}Z(e,n.joinUrl,s)}),t.appendChild(c),t.appendChild(s);let l=document.createElement(`button`);l.className=`dialog__btn dialog__btn--secondary`,l.style.marginTop=`8px`,l.textContent=`Back`,l.addEventListener(`click`,()=>X(e)),t.appendChild(l),a.addEventListener(`input`,()=>{o.style.display=`none`}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&c.click()}),requestAnimationFrame(()=>a.focus())}function $(e){return N(`button`),new Promise(t=>{let n=document.createElement(`div`);n.className=`dialog-overlay`;let r=document.createElement(`div`);r.className=`dialog`,r.style.cssText=`max-width: 480px; width: 90vw; padding: 32px;`;let i={overlay:n,dialog:r,options:e,accountsBefore:localStorage.getItem(`slicc_accounts`)??``,resolve:t};e?.startInAddAccount?X(i):w().length>0?K(i):e?.autoJoinUrl?Re(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):X(i),n.appendChild(r),document.body.appendChild(n)})}export{$ as n,xe as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./store-Dd0aJqlJ.js";export{e as readMcpAuthEntries};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-C_J_i_Uv.js","assets/account-store-EaBcIxhN.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/src-XLzS9HFL.js","assets/proxied-fetch-CNztWUVW.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-BB41u1PK.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-ey0oewfq.js","assets/runtime-env-a_l4ilH_.js","assets/secret-topology-B8MYKYm6.js","assets/secrets-bridge-client-CHMeCH4_.js","assets/port-bridge-client-wFmUGeZa.js","assets/image-markers-DXh8szCT.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-Djf-aXdl.js","assets/temperature-support-C046iRqM.js","assets/local-llm-Dm5mp8ES.js","assets/legacy-api-aliases-45zvHmpJ.js","assets/adobe-DSoEAq_f.js","assets/silent-renew-backoff-BjF-rXLR.js","assets/provider-settings-Dp2FBrlU.js","assets/tray-runtime-config-D9gR_d0I.js","assets/messages-BD4p8GuF.js","assets/telemetry-MJ77Fp1a.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/oauth-service-nBlvta_T.js","assets/runtime-env-NCI8LQob.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-4vCJGBUt.js","assets/github-copilot-Cai-dPyZ.js","assets/github-D-fdkiMQ.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-BveJezys.js","assets/pkce-hGf_TEnP.js","assets/openrouter-models-D210d5Hg.js","assets/openrouter-oauth-C7w8rKLa.js","assets/openrouter-6nEYTdxI.js","assets/xai-grok-C-iHnNxi.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-C_J_i_Uv.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),"./built-in/bedrock-camp-compat.ts":()=>t(()=>import(`./bedrock-camp-compat-CgBMwna8.js`).then(e=>e.n),__vite__mapDeps([26,2])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-Djf-aXdl.js`),__vite__mapDeps([28,6,5,3,4,7,8,2,9,27,29])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-Dm5mp8ES.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-DSoEAq_f.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,33,34,35,36,37,38,39,40,41,42,43,29,44])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-4vCJGBUt.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-Cai-dPyZ.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,34,35,36,37,38,39,40])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-D-fdkiMQ.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,35,36,34,37,38,39,40,41,42,43,48])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-BveJezys.js`),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,34,35,36,37,38,39,40,50])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-D210d5Hg.js`),__vite__mapDeps([51,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-C7w8rKLa.js`),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,34,35,36,37,38,39,40,50])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-6nEYTdxI.js`),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,34,35,36,37,38,39,40,51,52,50])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-C-iHnNxi.js`),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,34,35,36,37,38,39,40,50,55]))}),c=new Map,l=null;function u(){return l===null&&(l=(async()=>{let e=await Promise.all(Object.values(o).map(e=>e()));for(let t of e)t.config&&a(t.config.id)&&(c.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(s).map(e=>e()));for(let e of t)e.config&&(c.set(e.config.id,e.config),e.register?.())})()),l}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t,t as n}from"./base64-DzRgusa4.js";import"./src-DXa5EsFV.js";import{t as r}from"./content-type-_QKWY0B2.js";import{n as i,t as a}from"./binary-cache-bSOhqXB1.js";import{r as o}from"./fetch-body-COdvQyTD.js";import{a as s,i as c,n as l,r as u,t as d}from"./api-endpoint-DRYP1Kfj.js";function f(e){return e.headers.get(`x-proxy-error`)===`1`}async function p(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return m(n,t)}function m(e,t){let n;try{n=JSON.parse(e)}catch{return t}if(!n||typeof n!=`object`)return t;let r=n.error;if(typeof r==`string`&&r.length>0)return r;if(r&&typeof r==`object`){let e=r.message;if(typeof e==`string`&&e.length>0)return e;try{return JSON.stringify(r)}catch{return t}}return t}function h(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();e===`cookie`?t[`X-Proxy-Cookie`]=r:e===`origin`?t[`X-Proxy-Origin`]=r:e===`referer`?t[`X-Proxy-Referer`]=r:e.startsWith(`proxy-`)?t[`X-Proxy-${n}`]=r:t[n]=r}return t}function g(e){let t={};for(let[n,r]of Object.entries(e))n.toLowerCase()===`x-proxy-set-cookie`?t[`set-cookie`]=r:t[n]=r;return t}function _(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}function v(e){if(!e)return;if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),Object.keys(t).length===0?void 0:t}if(Array.isArray(e)){let t={};for(let[n,r]of e)t[n]=r;return Object.keys(t).length===0?void 0:t}let t={...e};return Object.keys(t).length===0?void 0:t}var y=e({BINARY_CACHE_BODY_CAP:()=>C,PROXY_CONTENT_LENGTH_HEADER:()=>j,REQUEST_BODY_CAP:()=>b,collectViaExtensionDelegate:()=>W,collectViaExtensionPort:()=>H,createProxiedFetch:()=>G,decodeForbiddenResponseHeaders:()=>I,encodeForbiddenRequestHeaders:()=>F,getLocalApiBaseUrl:()=>c,getResponseBodyCap:()=>S,headersToRecord:()=>A,isTextContentType:()=>r,prepareRequestBody:()=>P,readResponseBody:()=>D,responseTooLargeError:()=>w});const b=33554432;let x=536870912;function S(){return x}const C=33554432;function w(e,t){let n=t===void 0?``:` (${t} bytes)`;return Error(`proxied-fetch: response body for ${e} exceeds the 512 MiB download limit${n}; download it in ranges (curl -r) or from a native float`)}const T=new Set([101,103,204,205,304]);function E(){return s(`/api/fetch-proxy`)}async function D(e,t,n,r){let i=e.headers.get(`content-type`)??``,a=r??M(e.headers);if(a!==void 0&&a>x)throw await e.body?.cancel().catch(()=>void 0),w(t??e.url,a);let o=await k(e,t??e.url,n,a);return O(o,i,t),o}function O(e,t,n){if(r(t)||e.byteLength>33554432)return;if(n){i(n,e);return}let o=``;for(let t=0;t<e.length;t+=32768)o+=String.fromCharCode(...e.subarray(t,t+32768));a(o,e)}async function k(e,t,n,r){if(!e.body)return new Uint8Array(await e.arrayBuffer());let i=e.body.getReader(),a=r!==void 0&&r>0?new Uint8Array(r):null,o=[],s=0;for(;;){let{done:e,value:r}=await i.read();if(e)break;let c=r;if(a?s+c.byteLength<=a.byteLength?a.set(c,s):(o.push(a.subarray(0,s),c),a=null):o.push(c),s+=c.byteLength,s>x)throw await i.cancel().catch(()=>void 0),w(t,void 0);n?.(s)}return a?s===a.byteLength?a:a.slice(0,s):R(o)}const A=_,j=`x-proxy-content-length`;function M(e){let t=t=>e instanceof Headers?e.get(t):Object.entries(e).find(([e])=>e.toLowerCase()===t)?.[1]??null,n=t(`x-proxy-content-length`)??t(`content-length`);if(n==null||!/^\d+$/.test(n))return;let r=Number(n);return Number.isSafeInteger(r)&&r>=0?r:void 0}async function N(e,t,n){if(!e)return n();try{return await n()}finally{e.end(t)}}function P(e,t){if(e==null||e===``)return;if(typeof e!=`string`)return new Blob([e]);let n=Object.entries(t??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;if(n&&!r(n)){let t=o(e);return new Blob([t])}return e}const F=h,I=g,L=n;function R(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function z(e,t,n){let r=new Headers;for(let[t,n]of Object.entries(e.headers))r.set(t,String(n));let i=T.has(e.status)?new Uint8Array:t;return O(i,r.get(`content-type`)??``,n),{status:e.status,statusText:e.statusText,headers:I(e.headers),body:i,url:n}}async function B(e){let n=A(e?.headers),r=e?.method??`GET`,i=e?.body?P(e.body,n):void 0,a=F(n),o,s=!1;if(i!==void 0){let e=i instanceof Uint8Array?i:new Uint8Array(await new Response(i).arrayBuffer());e.byteLength>33554432?s=!0:o=t(e)}return{method:r,transportHeaders:a,bodyBase64:o,requestBodyTooLarge:s}}async function V(e,t,n,r){let{method:i,transportHeaders:a,bodyBase64:o,requestBodyTooLarge:s}=await B(n),c=e();return new Promise((e,n)=>{let l=null,u=!1,d=0,f,p=[],m=e=>{u=!0,p.length=0,n(e),c.disconnect()},h=e=>{if(l={status:e.status,statusText:e.statusText,headers:e.headers},f=M(e.headers),f!==void 0&&f>x){m(w(t,f));return}r?.start(t,f)},g=e=>{if(u)return;let n=L(e.dataBase64);if(d+=n.byteLength,d>x){m(w(t,void 0));return}p.push(n),r?.chunk(t,d,f)},_=()=>{if(!u){if(u=!0,!l){n(Error(`fetch-proxy: response-end before response-head`));return}e({head:l,body:R(p).buffer}),c.disconnect()}};c.onMessage.addListener(e=>{let t=e;t.type===`response-head`?h(t):t.type===`response-chunk`?g(t):t.type===`response-end`?_():t.type===`response-error`&&m(Error(t.error))}),c.onDisconnect.addListener(()=>{u||n(Error(l?`fetch-proxy port disconnected mid-stream`:`fetch-proxy port disconnected before response`))}),c.postMessage({type:`request`,url:t,method:i,headers:a,bodyBase64:o,requestBodyTooLarge:s})})}function H(e,t,n){return V(()=>chrome.runtime.connect({name:`fetch-proxy.fetch`}),e,t,n)}async function U(e,t,n){let{head:r,body:i}=await N(n,e,()=>H(e,t,n));return z(r,new Uint8Array(i),e)}async function W(e,t,n){let r=u();if(!r)throw Error(`proxied-fetch: no extension delegate id configured`);let i=chrome.runtime.connect;return V(()=>i(r,{name:`fetch-proxy.fetch`}),e,t,n)}function G(e={}){let t=e.progress;return l()?(e,n)=>U(e,n,t):typeof chrome<`u`&&typeof chrome?.runtime?.connect==`function`&&u()?async(e,n)=>{let{head:r,body:i}=await N(t,e,()=>W(e,n,t));return z(r,new Uint8Array(i),e)}:typeof chrome>`u`&&u()?async(e,n)=>{let{getPanelRpcClient:r}=await import(`./panel-rpc-BPwAqRch.js`).then(e=>e.i),i=r();if(!i)throw Error(`proxied-fetch: panel-RPC client unavailable in worker realm`);let a=n?.method??`GET`,o=A(n?.headers)??{};t?.start(e,void 0);let{head:s,body:c}=await N(t,e,()=>i.call(`proxied-fetch`,{url:e,method:a,headers:o,body:n?.body},{timeoutMs:12e4}));return z(s,new Uint8Array(c),e)}:async(e,n)=>{let r=n?.method??`GET`,i=A(n?.headers),a=F(i),o=d({...a,"X-Target-URL":e}),s={method:r,headers:o,cache:`no-store`};if(n?.body&&![`GET`,`HEAD`].includes(r)){let e=P(n.body,o);e instanceof Blob&&(o[`X-Slicc-Raw-Body`]=`1`),s.body=e}return N(t,e,async()=>{let n=await fetch(E(),s);if(f(n))throw Error(await p(n));let r=M(n.headers);t?.start(e,r);let i=await D(n,e,t?n=>t.chunk(e,n,r):void 0,r),a={};n.headers.forEach((e,t)=>{a[t]=e});let o=I(a);return{status:n.status,statusText:n.statusText,headers:o,body:i,url:e}})}}export{g as a,y as i,G as n,h as o,S as r,v as s,b as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-B3MSVImO.js","assets/rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";import{r as n,t as r}from"./base64-DJRlyqZu.js";import"./src-XLzS9HFL.js";import{t as i}from"./fetch-body-D2PwksUW.js";import{a,i as o,n as s,r as c,t as l}from"./api-endpoint-BB41u1PK.js";function u(e){if(!e)return!1;let t=e.toLowerCase();return t.startsWith(`text/`)||t.includes(`json`)||t.includes(`xml`)||t.includes(`javascript`)||t.includes(`ecmascript`)||t.includes(`html`)||t.includes(`css`)||t.includes(`svg`)}var d=new Map,f=new Map;function p(e,t){d.set(e,t),setTimeout(()=>d.delete(e),1e4)}function m(e,t){f.set(e,t),setTimeout(()=>f.delete(e),1e4)}function h(e){return e.headers.get(`x-proxy-error`)===`1`}async function g(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return _(n,t)}function _(e,t){let n;try{n=JSON.parse(e)}catch{return t}if(!n||typeof n!=`object`)return t;let r=n.error;if(typeof r==`string`&&r.length>0)return r;if(r&&typeof r==`object`){let e=r.message;if(typeof e==`string`&&e.length>0)return e;try{return JSON.stringify(r)}catch{return t}}return t}function v(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.toLowerCase();e===`cookie`?t[`X-Proxy-Cookie`]=r:e===`origin`?t[`X-Proxy-Origin`]=r:e===`referer`?t[`X-Proxy-Referer`]=r:e.startsWith(`proxy-`)?t[`X-Proxy-${n}`]=r:t[n]=r}return t}function y(e){let t={};for(let[n,r]of Object.entries(e))n.toLowerCase()===`x-proxy-set-cookie`?t[`set-cookie`]=r:t[n]=r;return t}function b(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}var x=e({BINARY_CACHE_BODY_CAP:()=>T,PROXY_CONTENT_LENGTH_HEADER:()=>N,REQUEST_BODY_CAP:()=>S,collectViaExtensionDelegate:()=>K,collectViaExtensionPort:()=>W,createProxiedFetch:()=>q,decodeForbiddenResponseHeaders:()=>R,encodeForbiddenRequestHeaders:()=>L,getLocalApiBaseUrl:()=>o,getResponseBodyCap:()=>w,headersToRecord:()=>M,isTextContentType:()=>u,prepareRequestBody:()=>I,readResponseBody:()=>k,responseTooLargeError:()=>E}),S=33554432,C=536870912;function w(){return C}var T=33554432;function E(e,t){let n=Math.round(C/1048576),r=t===void 0?``:` (${t} bytes)`;return Error(`proxied-fetch: response body for ${e} exceeds the ${n} MiB download limit${r}; download it in ranges (curl -r) or from a native float`)}var D=new Set([101,103,204,205,304]);function O(){return a(`/api/fetch-proxy`)}async function k(e,t,n,r){let i=e.headers.get(`content-type`)??``,a=r??P(e.headers);if(a!==void 0&&a>C)throw await e.body?.cancel().catch(()=>void 0),E(t??e.url,a);let o=await j(e,t??e.url,n,a);return A(o,i,t),o}function A(e,t,n){if(u(t)||e.byteLength>33554432)return;if(n){m(n,e);return}let r=``;for(let t=0;t<e.length;t+=32768)r+=String.fromCharCode(...e.subarray(t,t+32768));p(r,e)}async function j(e,t,n,r){if(!e.body)return new Uint8Array(await e.arrayBuffer());let i=e.body.getReader(),a=r!==void 0&&r>0?new Uint8Array(r):null,o=[],s=0;for(;;){let{done:e,value:r}=await i.read();if(e)break;let c=r;if(a?s+c.byteLength<=a.byteLength?a.set(c,s):(o.push(a.subarray(0,s),c),a=null):o.push(c),s+=c.byteLength,s>C)throw await i.cancel().catch(()=>void 0),E(t,void 0);n?.(s)}return a?s===a.byteLength?a:a.slice(0,s):B(o)}var M=b,N=`x-proxy-content-length`;function P(e){let t=t=>e instanceof Headers?e.get(t):Object.entries(e).find(([e])=>e.toLowerCase()===t)?.[1]??null,n=t(`x-proxy-content-length`)??t(`content-length`);if(n==null||!/^\d+$/.test(n))return;let r=Number(n);return Number.isSafeInteger(r)&&r>=0?r:void 0}async function F(e,t,n){if(!e)return n();try{return await n()}finally{e.end(t)}}function I(e,t){if(e==null||e===``)return;if(typeof e!=`string`)return new Blob([e]);let n=Object.entries(t??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;if(n&&!u(n)){let t=i(e);return new Blob([t])}return e}var L=v,R=y,z=r;function B(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function V(e,t,n){let r=new Headers;for(let[t,n]of Object.entries(e.headers))r.set(t,String(n));let i=D.has(e.status)?new Uint8Array:t;return A(i,r.get(`content-type`)??``,n),{status:e.status,statusText:e.statusText,headers:R(e.headers),body:i,url:n}}async function H(e){let t=M(e?.headers),r=e?.method??`GET`,i=e?.body?I(e.body,t):void 0,a=L(t),o,s=!1;if(i!==void 0){let e=i instanceof Uint8Array?i:new Uint8Array(await new Response(i).arrayBuffer());e.byteLength>33554432?s=!0:o=n(e)}return{method:r,transportHeaders:a,bodyBase64:o,requestBodyTooLarge:s}}async function U(e,t,n,r){let{method:i,transportHeaders:a,bodyBase64:o,requestBodyTooLarge:s}=await H(n),c=e();return new Promise((e,n)=>{let l=null,u=!1,d=0,f,p=[],m=e=>{u=!0,p.length=0,n(e),c.disconnect()},h=e=>{if(l={status:e.status,statusText:e.statusText,headers:e.headers},f=P(e.headers),f!==void 0&&f>C){m(E(t,f));return}r?.start(t,f)},g=e=>{if(u)return;let n=z(e.dataBase64);if(d+=n.byteLength,d>C){m(E(t,void 0));return}p.push(n),r?.chunk(t,d,f)},_=()=>{if(!u){if(u=!0,!l){n(Error(`fetch-proxy: response-end before response-head`));return}e({head:l,body:B(p).buffer}),c.disconnect()}};c.onMessage.addListener(e=>{let t=e;t.type===`response-head`?h(t):t.type===`response-chunk`?g(t):t.type===`response-end`?_():t.type===`response-error`&&m(Error(t.error))}),c.onDisconnect.addListener(()=>{u||n(Error(l?`fetch-proxy port disconnected mid-stream`:`fetch-proxy port disconnected before response`))}),c.postMessage({type:`request`,url:t,method:i,headers:a,bodyBase64:o,requestBodyTooLarge:s})})}function W(e,t,n){return U(()=>chrome.runtime.connect({name:`fetch-proxy.fetch`}),e,t,n)}async function G(e,t,n){let{head:r,body:i}=await F(n,e,()=>W(e,t,n));return V(r,new Uint8Array(i),e)}async function K(e,t,n){let r=c();if(!r)throw Error(`proxied-fetch: no extension delegate id configured`);let i=chrome.runtime.connect;return U(()=>i(r,{name:`fetch-proxy.fetch`}),e,t,n)}function q(e={}){let n=e.progress;return s()?(e,t)=>G(e,t,n):typeof chrome<`u`&&typeof chrome?.runtime?.connect==`function`&&c()?async(e,t)=>{let{head:r,body:i}=await F(n,e,()=>K(e,t,n));return V(r,new Uint8Array(i),e)}:typeof chrome>`u`&&c()?async(e,r)=>{let{getPanelRpcClient:i}=await t(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-B3MSVImO.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1])),a=i();if(!a)throw Error(`proxied-fetch: panel-RPC client unavailable in worker realm`);let o=r?.method??`GET`,s=M(r?.headers)??{};n?.start(e,void 0);let{head:c,body:l}=await F(n,e,()=>a.call(`proxied-fetch`,{url:e,method:o,headers:s,body:r?.body},{timeoutMs:12e4}));return V(c,new Uint8Array(l),e)}:async(e,t)=>{let r=t?.method??`GET`,i=L(M(t?.headers)),a=l({...i,"X-Target-URL":e}),o={method:r,headers:a,cache:`no-store`};if(t?.body&&![`GET`,`HEAD`].includes(r)){let e=I(t.body,a);e instanceof Blob&&(a[`X-Slicc-Raw-Body`]=`1`),o.body=e}return F(n,e,async()=>{let t=await fetch(O(),o);if(h(t))throw Error(await g(t));let r=P(t.headers);n?.start(e,r);let i=await k(t,e,n?t=>n.chunk(e,t,r):void 0,r),a={};t.headers.forEach((e,t)=>{a[t]=e});let s=R(a);return{status:t.status,statusText:t.statusText,headers:s,body:i,url:e}})}}export{y as a,g as c,x as i,u as l,q as n,v as o,w as r,h as s,S as t};
@@ -1 +0,0 @@
1
- import"./src-XLzS9HFL.js";import{d as e}from"./tray-sync-protocol-BZ5yhJH9.js";import{n as t,t as n}from"./pending-request-table-Dgn6qYdL.js";var r=class{sender;timeoutMs;pending=new n;eventListeners=new Map;chunkBuffers=new Map;_state=`connected`;requestCounter=0;constructor(e,t=3e4){this.sender=e,this.timeoutMs=t}get state(){return this._state}async connect(){}disconnect(){this._state=`disconnected`,this.pending.rejectAll(`Transport disconnected`)}async send(e,t,n,r){if(this._state===`disconnected`)throw Error(`Transport disconnected`);let i=`remote-${++this.requestCounter}-${Date.now()}`,a=r??this.timeoutMs,o=this.pending.issue(i,a,`Remote CDP request timed out after ${a}ms: ${e}`);return this.sender.sendCDPRequest(i,e,t,n),o}on(e,t){let n=this.eventListeners.get(e);n||(n=new Set,this.eventListeners.set(e,n)),n.add(t)}off(e,t){this.eventListeners.get(e)?.delete(t)}once(e,n){return t(t=>(this.on(e,t),()=>this.off(e,t)),n??this.timeoutMs,`Remote CDP event timed out: ${e}`)}handleResponse(t,n,r,i,a,o){if(!this.pending.has(t))return;let s=e(this.chunkBuffers,{type:`cdp.response`,requestId:t,result:n,error:r,chunkData:i,chunkIndex:a,totalChunks:o});s&&(s.error?this.pending.reject(t,Error(s.error)):this.pending.resolve(t,s.result??{}))}handleEvent(e,t){let n=this.eventListeners.get(e);if(n)for(let e of n)e(t)}};export{r as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./base64-DzRgusa4.js";import"./src-DXa5EsFV.js";import{t}from"./content-type-_QKWY0B2.js";import{r as n}from"./fetch-body-COdvQyTD.js";const r=new Set([`GET`,`HEAD`]);function i(i){let a=(i.method??`GET`).toUpperCase();if(i.body===void 0||r.has(a))return;if(i.bodyEncoding===`base64`)return e(i.body);let o=Object.entries(i.headers??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;return o&&!t(o)?n(i.body):new TextEncoder().encode(i.body)}export{i as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./base64-DzRgusa4.js";import"./src-DXa5EsFV.js";import{t}from"./content-type-_QKWY0B2.js";import{a as n,o as r,r as i,t as a}from"./proxied-fetch-B0SF_J0b.js";import{a as o,t as s}from"./api-endpoint-DRYP1Kfj.js";import{c,l,s as u}from"./types-BfwydWt7.js";import{n as d,t as f}from"./rest-paths-Dia19u9P.js";import{t as p}from"./request-body-CsruB58l.js";const m=d;function h(e){return e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`)}function g(e,t,n){if(n)return t;let r=AbortSignal.timeout(e);return t&&typeof AbortSignal.any==`function`?AbortSignal.any([r,t]):r}function _(e){let t=e.fetchImpl??((...e)=>globalThis.fetch(...e)),n=e.resolveUrl??o,r=e.headers??s,i=e.controlTimeoutMs??m;async function a(e,r){try{return await t(n(e),r)}catch(e){return e instanceof Error?e:Error(String(e))}}return{headers:r,send:a,async callJson(e,t,n,o){let s=o?.timeoutMs??i,c=g(s,o?.signal,o?.humanPaced===!0),l={method:e,headers:r({"Content-Type":`application/json`}),...c?{signal:c}:{}};n!==void 0&&(l.body=JSON.stringify(n));let u=await a(t,l);if(u instanceof Error)return{status:0,ok:!1,body:{error:h(u)?`no answer within ${s}ms`:u.message}};let d=await u.json().catch(()=>void 0);return{status:u.status,ok:u.ok,body:d}}}}function v(e,t){let n=e.body?.error;return typeof n==`string`&&n.length>0?n:e.status===0?`${t} (transport unreachable)`:`${t} (HTTP ${e.status})`}function y(e){return e.status===0?void 0:e.status}function b(e,t,n,r){return u(e,t,v(n,r),y(n))}async function x(e,t){let n=await e.callJson(`GET`,f.secretsMasked);return n.ok?Array.isArray(n.body)?{ok:!0,value:n.body}:u(`secrets`,t,`masked secrets response is not an array`):b(`secrets`,t,n,`masked secrets request failed`)}function S(e){return{async listMaskedEnv(){let t=await x(e,`listMaskedEnv`);return t.ok?{ok:!0,value:{entries:t.value}}:t},async getMasked(t){let n=await x(e,`getMasked`);if(!n.ok)return n;let r=n.value.find(e=>e.name===t.name);return r?{ok:!0,value:r}:u(`secrets`,`getMasked`,`no secret named "${t.name}"`,404)},async set(t){let n=t.scope===`persisted`,r=n?f.secretsPersisted:f.secretsSession,i=await e.callJson(`POST`,r,{name:t.name,value:t.value,domains:[...t.domains??[]]});return n&&i.status===404?c(`secrets`,`set`,`this server has no persisted-secret write route (upgrade it; the route shipped in #2823), retry with scope: 'session'`):i.ok?{ok:!0,value:void 0}:b(`secrets`,`set`,i,`set secret failed`)},async delete(t){let n=await e.callJson(`DELETE`,`${f.secretsPersisted}/${encodeURIComponent(t.name)}`);if(!n.ok)return b(`secrets`,`delete`,n,`delete secret failed`);let r=n.body;return{ok:!0,value:{removed:r?.removed??!0,fromSession:r?.fromSession===!0}}}}}async function C(o,s){let c={method:s.method??`GET`,headers:o.headers({...r(s.headers),"X-Target-URL":s.url}),cache:`no-store`};s.signal&&(c.signal=s.signal);let l=p(s);if(l!==void 0){if(l.byteLength>33554432)return u(`network`,`crossOriginFetch`,`request body is ${l.byteLength} bytes, over the ${a}-byte proxy limit`);c.body=l}let d=await o.send(f.fetchProxy,c);if(d instanceof Error)return u(`network`,`crossOriginFetch`,h(d)?`request cancelled`:d.message);if(d.headers.get(`x-proxy-error`)===`1`){let e=await d.text().catch(()=>``);return u(`network`,`crossOriginFetch`,e||`fetch-proxy reported an error`,d.status)}let m=i(),g=Number(d.headers.get(`content-length`)??``);if(Number.isFinite(g)&&g>m)return u(`network`,`crossOriginFetch`,`response body is ${g} bytes, over the ${m}-byte download limit`,d.status);let _;try{_=new Uint8Array(await d.arrayBuffer())}catch(e){return u(`network`,`crossOriginFetch`,h(e)?`response body cancelled`:`response body failed: ${e instanceof Error?e.message:String(e)}`,d.status)}if(_.byteLength>m)return u(`network`,`crossOriginFetch`,`response body is ${_.byteLength} bytes, over the ${m}-byte download limit`,d.status);let v={};d.headers.forEach((e,t)=>{v[t]=e});let y=n(v),b=t(y[`content-type`]??``);return{ok:!0,value:{status:d.status,ok:d.ok,statusText:d.statusText,headers:y,body:b?new TextDecoder().decode(_):e(_),bodyEncoding:b?`text`:`base64`,url:s.url}}}async function w(e,t){let n=t.backend===`s3`?f.s3SignAndForward:f.daSignAndForward,r=await e.callJson(`POST`,n,t.envelope,{timeoutMs:12e4}),i=r.body;return i&&typeof i==`object`&&typeof i.ok==`boolean`?{ok:!0,value:i}:b(`mounts`,`signRequest`,r,`sign-and-forward response is not an envelope`)}async function T(e,t){let n=t.suggestedPattern??t.detail,r=await e.callJson(`POST`,f.sudoApprove,{kind:t.kind,detail:t.detail,suggestedPattern:n,...t.requester?{requester:t.requester}:{},...t.approver?{approver:t.approver}:{}},{humanPaced:!0,...t.signal?{signal:t.signal}:{}});return r.ok?{ok:!0,value:l(r.body,n)}:b(`approvals`,`request`,r,`approval endpoint returned non-OK`)}function E(e){let t=_(e);return{crossOriginFetch:e=>C(t,e),secrets:S(t),signRequest:e=>w(t,e),requestApproval:e=>T(t,e)}}export{E as createRestOps};
@@ -1 +0,0 @@
1
- import{r as e,t}from"./base64-DJRlyqZu.js";import"./src-XLzS9HFL.js";import{a as n,l as r,o as i,r as a,t as o}from"./proxied-fetch-CNztWUVW.js";import{t as s}from"./fetch-body-D2PwksUW.js";import{a as c,t as l}from"./api-endpoint-BB41u1PK.js";import{t as u}from"./approval-decision-CS9Wwm5B.js";import{l as d,n as f,t as p,u as m}from"./rest-paths-DJCfupdz.js";var h=new Set([`GET`,`HEAD`]);function g(e){let n=(e.method??`GET`).toUpperCase();if(e.body===void 0||h.has(n))return;if(e.bodyEncoding===`base64`)return t(e.body);let i=Object.entries(e.headers??{}).find(([e])=>e.toLowerCase()===`content-type`)?.[1]??``;return i&&!r(i)?s(e.body):new TextEncoder().encode(e.body)}var _=f,v=12e4;function y(e){return e instanceof Error&&(e.name===`AbortError`||e.name===`TimeoutError`)}function b(e,t,n){if(n)return t;let r=AbortSignal.timeout(e);return t&&typeof AbortSignal.any==`function`?AbortSignal.any([r,t]):r}function x(e){let t=e.fetchImpl??((...e)=>globalThis.fetch(...e)),n=e.resolveUrl??c,r=e.headers??l,i=e.controlTimeoutMs??_;async function a(e,r){try{return await t(n(e),r)}catch(e){return e instanceof Error?e:Error(String(e))}}return{headers:r,send:a,async callJson(e,t,n,o){let s=o?.timeoutMs??i,c=b(s,o?.signal,o?.humanPaced===!0),l={method:e,headers:r({"Content-Type":`application/json`}),...c?{signal:c}:{}};n!==void 0&&(l.body=JSON.stringify(n));let u=await a(t,l);if(u instanceof Error)return{status:0,ok:!1,body:{error:y(u)?`no answer within ${s}ms`:u.message}};let d=await u.json().catch(()=>void 0);return{status:u.status,ok:u.ok,body:d}}}}function S(e,t){let n=e.body?.error;return typeof n==`string`&&n.length>0?n:e.status===0?`${t} (transport unreachable)`:`${t} (HTTP ${e.status})`}function C(e){return e.status===0?void 0:e.status}function w(e,t,n,r){return d(e,t,S(n,r),C(n))}async function T(e,t){let n=await e.callJson(`GET`,p.secretsMasked);return n.ok?Array.isArray(n.body)?{ok:!0,value:n.body}:d(`secrets`,t,`masked secrets response is not an array`):w(`secrets`,t,n,`masked secrets request failed`)}function E(e){return{async listMaskedEnv(){let t=await T(e,`listMaskedEnv`);return t.ok?{ok:!0,value:{entries:t.value}}:t},async getMasked(t){let n=await T(e,`getMasked`);if(!n.ok)return n;let r=n.value.find(e=>e.name===t.name);return r?{ok:!0,value:r}:d(`secrets`,`getMasked`,`no secret named "${t.name}"`,404)},async set(t){let n=t.scope===`persisted`,r=n?p.secretsPersisted:p.secretsSession,i=await e.callJson(`POST`,r,{name:t.name,value:t.value,domains:[...t.domains??[]]});return n&&i.status===404?m(`secrets`,`set`,`this server has no persisted-secret write route (upgrade it; the route shipped in #2823), retry with scope: 'session'`):i.ok?{ok:!0,value:void 0}:w(`secrets`,`set`,i,`set secret failed`)},async delete(t){let n=await e.callJson(`DELETE`,`${p.secretsPersisted}/${encodeURIComponent(t.name)}`);if(!n.ok)return w(`secrets`,`delete`,n,`delete secret failed`);let r=n.body;return{ok:!0,value:{removed:r?.removed??!0,fromSession:r?.fromSession===!0}}}}}async function D(t,s){let c={method:s.method??`GET`,headers:t.headers({...i(s.headers),"X-Target-URL":s.url}),cache:`no-store`};s.signal&&(c.signal=s.signal);let l=g(s);if(l!==void 0){if(l.byteLength>33554432)return d(`network`,`crossOriginFetch`,`request body is ${l.byteLength} bytes, over the ${o}-byte proxy limit`);c.body=l}let u=await t.send(p.fetchProxy,c);if(u instanceof Error)return d(`network`,`crossOriginFetch`,y(u)?`request cancelled`:u.message);if(u.headers.get(`x-proxy-error`)===`1`){let e=await u.text().catch(()=>``);return d(`network`,`crossOriginFetch`,e||`fetch-proxy reported an error`,u.status)}let f=a(),m=Number(u.headers.get(`content-length`)??``);if(Number.isFinite(m)&&m>f)return d(`network`,`crossOriginFetch`,`response body is ${m} bytes, over the ${f}-byte download limit`,u.status);let h;try{h=new Uint8Array(await u.arrayBuffer())}catch(e){return d(`network`,`crossOriginFetch`,y(e)?`response body cancelled`:`response body failed: ${e instanceof Error?e.message:String(e)}`,u.status)}if(h.byteLength>f)return d(`network`,`crossOriginFetch`,`response body is ${h.byteLength} bytes, over the ${f}-byte download limit`,u.status);let _={};u.headers.forEach((e,t)=>{_[t]=e});let v=n(_),b=r(v[`content-type`]??``);return{ok:!0,value:{status:u.status,ok:u.ok,statusText:u.statusText,headers:v,body:b?new TextDecoder().decode(h):e(h),bodyEncoding:b?`text`:`base64`,url:s.url}}}async function O(e,t){let n=t.backend===`s3`?p.s3SignAndForward:p.daSignAndForward,r=await e.callJson(`POST`,n,t.envelope,{timeoutMs:v}),i=r.body;return i&&typeof i==`object`&&typeof i.ok==`boolean`?{ok:!0,value:i}:w(`mounts`,`signRequest`,r,`sign-and-forward response is not an envelope`)}async function k(e,t){let n=t.suggestedPattern??t.detail,r=await e.callJson(`POST`,p.sudoApprove,{kind:t.kind,detail:t.detail,suggestedPattern:n,...t.requester?{requester:t.requester}:{},...t.approver?{approver:t.approver}:{}},{humanPaced:!0,...t.signal?{signal:t.signal}:{}});return r.ok?{ok:!0,value:u(r.body,n)}:w(`approvals`,`request`,r,`approval endpoint returned non-OK`)}function A(e){let t=x(e);return{crossOriginFetch:e=>D(t,e),secrets:E(t),signRequest:e=>O(t,e),requestApproval:e=>k(t,e)}}export{A as createRestOps};