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.
- package/README.md +2 -2
- package/dist/node-server/_shared/agent-wire-types.d.ts +54 -0
- package/dist/node-server/_shared/agent-wire-types.d.ts.map +1 -1
- package/dist/node-server/_shared/cdp-target-info.d.ts +19 -0
- package/dist/node-server/_shared/cdp-target-info.d.ts.map +1 -0
- package/dist/node-server/_shared/cdp-target-info.js +9 -0
- package/dist/node-server/_shared/cdp-target-info.js.map +1 -0
- package/dist/node-server/_shared/discovery-link.d.ts +76 -0
- package/dist/node-server/_shared/discovery-link.d.ts.map +1 -0
- package/dist/node-server/_shared/discovery-link.js +76 -0
- package/dist/node-server/_shared/discovery-link.js.map +1 -0
- package/dist/node-server/_shared/extension-bridge-protocol.d.ts +165 -0
- package/dist/node-server/_shared/extension-bridge-protocol.d.ts.map +1 -0
- package/dist/node-server/_shared/extension-bridge-protocol.js +65 -0
- package/dist/node-server/_shared/extension-bridge-protocol.js.map +1 -0
- package/dist/node-server/_shared/handoff-link.d.ts +90 -0
- package/dist/node-server/_shared/handoff-link.d.ts.map +1 -0
- package/dist/node-server/_shared/handoff-link.js +192 -0
- package/dist/node-server/_shared/handoff-link.js.map +1 -0
- package/dist/node-server/_shared/iframe-repaint.d.ts +51 -0
- package/dist/node-server/_shared/iframe-repaint.d.ts.map +1 -0
- package/dist/node-server/_shared/iframe-repaint.js +118 -0
- package/dist/node-server/_shared/iframe-repaint.js.map +1 -0
- package/dist/node-server/_shared/index.d.ts +9 -0
- package/dist/node-server/_shared/index.d.ts.map +1 -1
- package/dist/node-server/_shared/index.js +9 -0
- package/dist/node-server/_shared/index.js.map +1 -1
- package/dist/node-server/_shared/leader-ext-id.d.ts +16 -0
- package/dist/node-server/_shared/leader-ext-id.d.ts.map +1 -0
- package/dist/node-server/_shared/leader-ext-id.js +16 -0
- package/dist/node-server/_shared/leader-ext-id.js.map +1 -0
- package/dist/node-server/_shared/link-header.d.ts +98 -0
- package/dist/node-server/_shared/link-header.d.ts.map +1 -0
- package/dist/node-server/_shared/link-header.js +441 -0
- package/dist/node-server/_shared/link-header.js.map +1 -0
- package/dist/node-server/_shared/proxy-headers.d.ts +46 -0
- package/dist/node-server/_shared/proxy-headers.d.ts.map +1 -0
- package/dist/node-server/_shared/proxy-headers.js +133 -0
- package/dist/node-server/_shared/proxy-headers.js.map +1 -0
- package/dist/node-server/_shared/well-known-probe.d.ts +63 -0
- package/dist/node-server/_shared/well-known-probe.d.ts.map +1 -0
- package/dist/node-server/_shared/well-known-probe.js +104 -0
- package/dist/node-server/_shared/well-known-probe.js.map +1 -0
- package/dist/node-server/electron-controller.d.ts +51 -0
- package/dist/node-server/electron-controller.js +88 -5
- package/dist/ui/.vite/manifest.json +414 -488
- package/dist/ui/assets/CLAUDE-CWMPcWVI.js +34 -0
- package/dist/ui/assets/{CLAUDE-BG8Wfdn_.js → CLAUDE-DM1onrcU.js} +1 -1
- package/dist/ui/assets/SKILL--AFE5RE3.js +1 -0
- package/dist/ui/assets/{SKILL-DT72j81i.js → SKILL-cpVS35My.js} +1 -1
- package/dist/ui/assets/__vite-browser-external-B6A3FtA_.js +1 -0
- package/dist/ui/assets/{account-store-EaBcIxhN.js → account-store-DsMvFZgS.js} +3 -3
- package/dist/ui/assets/account-store-naVgJKHe.js +1 -0
- package/dist/ui/assets/{adobe-B0U_BLCy.js → adobe-BhZB46bT.js} +1 -1
- package/dist/ui/assets/{adobe-DSoEAq_f.js → adobe-sRIQnDEl.js} +2 -2
- package/dist/ui/assets/{agent-bridge-sbs3wiia.js → agent-bridge-DVqU5-sn.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-Cnv4uh07.js → agent-message-to-chat-Df4an5Ei.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-DW2ZZk9R.js → agent-message-to-chat-xGeYopQz.js} +1 -1
- package/dist/ui/assets/api-endpoint-DGxXvrur.js +1 -0
- package/dist/ui/assets/api-endpoint-Lx_FU5cP.js +1 -0
- package/dist/ui/assets/{apply-layout-DvwSioYn.js → apply-layout-dNkV0TEv.js} +1 -1
- package/dist/ui/assets/{apps-DFIoDcds.js → apps-tzFQ7_KO.js} +1 -1
- package/dist/ui/assets/{auto-mount-table-CEBCZFRF.js → auto-mount-table-0jMTi9rV.js} +1 -1
- package/dist/ui/assets/{azure-openai-C_J_i_Uv.js → azure-openai-B9ZeZZ0T.js} +1 -1
- package/dist/ui/assets/{azure-openai-DUJebq5R.js → azure-openai-DsmgiFlX.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-t651gkrP.js → backend-hostfs-BH8uwRZG.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-BQYf7TAS.js → backend-hostfs-BxfjZHzO.js} +1 -1
- package/dist/ui/assets/bridge-protocol-06nbmp2X.js +1 -0
- package/dist/ui/assets/bridge-protocol-DdqxTTSu.js +1 -0
- package/dist/ui/assets/{bsh-watchdog-D97yX3sQ.js → bsh-watchdog-CxyhQHy5.js} +1 -1
- package/dist/ui/assets/{capability-Btlr4Wc-.js → capability-Bxl0SE1s.js} +2 -2
- package/dist/ui/assets/{cdp-DHIp_AO9.js → cdp-CmXwwigc.js} +1 -1
- package/dist/ui/assets/{cerebras-4vCJGBUt.js → cerebras-CsdnfQnc.js} +1 -1
- package/dist/ui/assets/{cerebras-CBjabVSb.js → cerebras-Mux-1Uqj.js} +1 -1
- package/dist/ui/assets/{client-CjV_9a9h.js → client-C6Cmi9c4.js} +1 -1
- package/dist/ui/assets/composer-speech-CElQJ4q_.js +1 -0
- package/dist/ui/assets/{connect-surface-DrBGja7c.js → connect-surface-DgrjdeR5.js} +1 -1
- package/dist/ui/assets/{context-compaction-huebTevb.js → context-compaction-DRymamfD.js} +3 -3
- package/dist/ui/assets/{core-CdPvxBo3.js → core-B8y1Kyh_.js} +2 -2
- package/dist/ui/assets/{derive-C_gfjwp6.js → derive-TWFNEJkb.js} +1 -1
- package/dist/ui/assets/dip-1TiuHkUR.js +233 -0
- package/dist/ui/assets/{directed-approval-cJrhWrrr.js → directed-approval-BDO2wdC5.js} +1 -1
- package/dist/ui/assets/{discovery-preference-DFkmIHQo.js → discovery-preference-B9KlkVuR.js} +1 -1
- package/dist/ui/assets/ensure-speech-assets-DasC7jBA.js +1 -0
- package/dist/ui/assets/{esbuild-wasm-CSKOA492.js → esbuild-wasm-Ew76Vf_V.js} +2 -2
- package/dist/ui/assets/export-provider-CqI0pk50.js +1 -0
- package/dist/ui/assets/export-spool-CuNzzI8a.js +1 -0
- package/dist/ui/assets/{extension-bridge-transport-D3PItLFo.js → extension-bridge-transport-DfRNjx8c.js} +1 -1
- package/dist/ui/assets/extension-media-capture-2FcAdcuB.js +1 -0
- package/dist/ui/assets/extension-ops-owOXVncP.js +1 -0
- package/dist/ui/assets/float-topology-hfgMx1Yq.js +1 -0
- package/dist/ui/assets/{follower-navigate-watcher-B9ZostUJ.js → follower-navigate-watcher-JQ0b_cW8.js} +1 -1
- package/dist/ui/assets/{fs-C9SJY4sJ.js → fs-CBaQR8Xc.js} +2 -2
- package/dist/ui/assets/{fs-n6R6QZv0.js → fs-CDaCMxrL.js} +1 -1
- package/dist/ui/assets/github-B7uOq9Q1.js +1 -0
- package/dist/ui/assets/{github-copilot-COZvaCzG.js → github-copilot-BeWJoZwD.js} +1 -1
- package/dist/ui/assets/{github-copilot-Cai-dPyZ.js → github-copilot-DwKSI23j.js} +1 -1
- package/dist/ui/assets/{github-install-DfhMDFC9.js → github-install-DE7dF6r8.js} +1 -1
- package/dist/ui/assets/{github-D-fdkiMQ.js → github-qhOhjD2Q.js} +2 -2
- package/dist/ui/assets/{github-zip-ZEV5pLGZ.js → github-zip-CuwUOO-U.js} +1 -1
- package/dist/ui/assets/{guest-tool-gate-CG9Yw8Kq.js → guest-tool-gate-BxRAm4CU.js} +1 -1
- package/dist/ui/assets/{hear-D7MO-jTh.js → hear-CNQSuR1y.js} +1 -1
- package/dist/ui/assets/{help-CQHZfeL3.js → help-D66VHlYj.js} +8 -4
- package/dist/ui/assets/hid-picker-sFJ8vzUj.js +1 -0
- package/dist/ui/assets/host-command-29ain4NA.js +1 -0
- package/dist/ui/assets/idle-compaction-B9i1duyd.js +1 -0
- package/dist/ui/assets/idle-compaction-settings-1yyApSsQ.js +1 -0
- package/dist/ui/assets/image-markers-BFDmhPy4.js +1 -0
- package/dist/ui/assets/image-markers-DuyWsic3.js +1 -0
- package/dist/ui/assets/{installer-7BWtTgd6.js → installer-C6TqZaGO.js} +3 -3
- package/dist/ui/assets/{js-realm-worker-CXI-Ngjy.js → js-realm-worker-Bsb6rmK5.js} +4 -4
- package/dist/ui/assets/{jsh-runtime-extensions-Bf9eAUzp.js → jsh-runtime-extensions-Dkujbplu.js} +1 -1
- package/dist/ui/assets/kernel-worker-CkZd8Enf.js +4991 -0
- package/dist/ui/assets/lick-manager-ULemXDKa.js +2 -0
- package/dist/ui/assets/lick-urls-BX4Jyu_T.js +1 -0
- package/dist/ui/assets/{lick-ws-bridge-Jk_oJNDM.js → lick-ws-bridge-Bo5sH7lf.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-ct0HLNad.js → lick-ws-bridge-RFOSPq0w.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-DnNBHXrk.js → live-session-snapshot-BTnyrQCU.js} +1 -1
- package/dist/ui/assets/{loader-B90Xxi7L.js → loader-Dw-TPPKt.js} +1 -1
- package/dist/ui/assets/{local-llm-Dm5mp8ES.js → local-llm-B-qS5oNT.js} +1 -1
- package/dist/ui/assets/{local-llm-CXD-Qof4.js → local-llm-COCS88AU.js} +1 -1
- package/dist/ui/assets/{magick-wasm-BEYfJbAX.js → magick-wasm-C7OGcZrJ.js} +2 -2
- package/dist/ui/assets/main-CAXbdHY8.js +22 -0
- package/dist/ui/assets/main-cherry-DSNvH0CD.js +1 -0
- package/dist/ui/assets/{mount-DD8rKTRS.js → mount-BbUBqN71.js} +2 -2
- package/dist/ui/assets/{mount-bridge-client-CUPodVo6.js → mount-bridge-client-BejrWSrL.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-BrMqFu_x.js → mount-bridge-client-DGJyqEPG.js} +1 -1
- package/dist/ui/assets/{mount-picker-popup-CVvcLs1V.js → mount-picker-popup--ijSfN8u.js} +1 -1
- package/dist/ui/assets/{mount-recovery-D6g3iniZ.js → mount-recovery-OxgGejDC.js} +1 -1
- package/dist/ui/assets/{mount-C1nMn8bL.js → mount-ysOnJBjr.js} +3 -3
- package/dist/ui/assets/navigation-watcher-C8xRyQBd.js +1 -0
- package/dist/ui/assets/new-session-JIL4tJ1I.js +2 -0
- package/dist/ui/assets/oauth-bootstrap-DP5y5Dy8.js +2 -0
- package/dist/ui/assets/oauth-service-Bconf2Pz.js +1 -0
- package/dist/ui/assets/oauth-service-t2taQm3p.js +1 -0
- package/dist/ui/assets/{openai-codex-BveJezys.js → openai-codex-BZDYkVh6.js} +1 -1
- package/dist/ui/assets/{openai-codex-WPOtL2Mf.js → openai-codex-DlFMWNVB.js} +1 -1
- package/dist/ui/assets/{openrouter-98Q9mrw8.js → openrouter-BrS9XpJS.js} +1 -1
- package/dist/ui/assets/{openrouter-6nEYTdxI.js → openrouter-Dn_iX45f.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-C7w8rKLa.js → openrouter-oauth-CioQlp0x.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BCNSNHpM.js → openrouter-oauth-D9gZVt7e.js} +1 -1
- package/dist/ui/assets/{page-approval-service-DnWfuBVQ.js → page-approval-service-IZdlRu-_.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-DUN0E_f8.js +2 -0
- package/dist/ui/assets/{panelize-shell-C7Ptpa69.js → panelize-shell-KNX1XTnq.js} +1 -1
- package/dist/ui/assets/picker-popup-sQtXmfAo.js +1 -0
- package/dist/ui/assets/{port-bridge-client-wFmUGeZa.js → port-bridge-client-C1tBBqwu.js} +1 -1
- package/dist/ui/assets/{port-bridge-client-BTnhFM03.js → port-bridge-client-CN1cFP4D.js} +1 -1
- package/dist/ui/assets/preview-url-r19H6zH1.js +1 -0
- package/dist/ui/assets/{provider-1nSAXh4b.js → provider-BfGyOQHs.js} +2 -2
- package/dist/ui/assets/{provider-RrpO6cEr.js → provider-DnIZJQjl.js} +1 -1
- package/dist/ui/assets/provider-settings-C6uIHjd4.js +1 -0
- package/dist/ui/assets/provider-settings-DrWv51sQ.js +2 -0
- package/dist/ui/assets/{provider-store-access-kKnmyJjr.js → provider-store-access-BqErJhmB.js} +2 -2
- package/dist/ui/assets/provider-store-access-BuQzycZu.js +1 -0
- package/dist/ui/assets/{providers-CvD7PECK.js → providers-CF2FF0H2.js} +1 -1
- package/dist/ui/assets/providers-CqZKx9qW.js +2 -0
- package/dist/ui/assets/proxied-fetch-CiijUcSt.js +2 -0
- package/dist/ui/assets/proxied-fetch-DUC7X0GS.js +1 -0
- package/dist/ui/assets/{py-realm-worker-DGFMfg27.js → py-realm-worker-BYQkpReo.js} +2 -2
- package/dist/ui/assets/{pyodide-BDRAQKP6.js → pyodide-BwD0AtZB.js} +2 -2
- package/dist/ui/assets/{quick-llm-I3oLGgvo.js → quick-llm-B9NubAhJ.js} +1 -1
- package/dist/ui/assets/{recovery-screen-CBwlz3Qo.js → recovery-screen-cHPORxsj.js} +1 -1
- package/dist/ui/assets/{redirect-uri-DZXyVwvI.js → redirect-uri-BKkf61lT.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-Db-9V2n9.js → remote-terminal-view-BHs39pzZ.js} +1 -1
- package/dist/ui/assets/request-body-DWn6QJ_H.js +1 -0
- package/dist/ui/assets/rest-ops-CLpS_ilI.js +1 -0
- package/dist/ui/assets/rest-ops-D2ig8qfG.js +1 -0
- package/dist/ui/assets/{run-BBAgk3Ml.js → run-03JeZZol.js} +1 -1
- package/dist/ui/assets/{run-COi81T_1.js → run-B5YOTTPD.js} +1 -1
- package/dist/ui/assets/run-BOu4zIOZ.js +29 -0
- package/dist/ui/assets/{run-DZMSwK6o.js → run-CUXVFhoI.js} +1 -1
- package/dist/ui/assets/run-D5Va_gO8.js +81 -0
- package/dist/ui/assets/{run-DCeEfqcT.js → run-DZh-18uA.js} +3 -3
- package/dist/ui/assets/{secret-env-Cp2Eduxg.js → secret-env-CtpVPUh5.js} +1 -1
- package/dist/ui/assets/secret-topology-Yt0aO4Gz.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client-CHMeCH4_.js → secrets-bridge-client-BVl0YuB2.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-CNOtgwnq.js → secrets-bridge-client-C3MaYf_O.js} +1 -1
- package/dist/ui/assets/serial-picker-BQF_Eitc.js +1 -0
- package/dist/ui/assets/{session-freezer-DVh0_BPO.js → session-freezer-Bltt6zUt.js} +3 -3
- package/dist/ui/assets/{setup-feature-flags-remote-DBcwYFl-.js → setup-feature-flags-remote-BkP-HRZt.js} +1 -1
- package/dist/ui/assets/setup-standalone-prelude-C2tPUGcI.js +2 -0
- package/dist/ui/assets/setup-sudo-BSw__xoN.js +2 -0
- package/dist/ui/assets/shared-Djytys1b.js +1 -0
- package/dist/ui/assets/shared-Dq_aaG_m.js +4 -0
- package/dist/ui/assets/silent-renew-backoff-DIMz5UqB.js +1 -0
- package/dist/ui/assets/silent-renew-backoff-SSzHR-oP.js +1 -0
- package/dist/ui/assets/{skills-BEEjU5I5.js → skills-wzno5Tj5.js} +1 -1
- package/dist/ui/assets/slicc-app-url-B9OxaBDe.js +1 -0
- package/dist/ui/assets/slicc-version-HwuyIZfW.js +1 -0
- package/dist/ui/assets/{snapshot-CPjJBR4Z.js → snapshot-Bi6QabWh.js} +1 -1
- package/dist/ui/assets/{snapshot-features-BZbgnon7.js → snapshot-features-BEPdcWF6.js} +3 -3
- package/dist/ui/assets/{speak-Dx2FEQBZ.js → speak-BxNdNjKi.js} +1 -1
- package/dist/ui/assets/{sprinkle-bridge-BVfyHi8X.js → sprinkle-bridge-BNzhEsPj.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-Dxc8U2h1.js → sprinkle-manager-CflRWcbq.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-1C1DNVyK.js → sprinkle-renderer-BnSqYzuY.js} +1 -1
- package/dist/ui/assets/{src-kInvzkEg.js → src-Bex_z_yH.js} +583 -148
- package/dist/ui/assets/state-DIwkpIaB.js +42 -0
- package/dist/ui/assets/{store-BHLq6CyB.js → store-CFx1fIZL.js} +1 -1
- package/dist/ui/assets/{store-Dd0aJqlJ.js → store-i7XHN1Er.js} +1 -1
- package/dist/ui/assets/{sudo-DBeYNsAF.js → sudo-r7OrTMGT.js} +1 -1
- package/dist/ui/assets/sync-dialog-D7Wg49Up.js +1 -0
- package/dist/ui/assets/tab-teleport-PAaKnGkm.js +1 -0
- package/dist/ui/assets/transcript-export-DP-r8eDz.js +1 -0
- package/dist/ui/assets/transformers-env-BmBEKck6.js +1 -0
- package/dist/ui/assets/{tray-leader-DTpZEm3l.js → tray-leader-DabyaEs-.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-BrGJs1g5.js → tray-leave-runtime-VfTj-MHR.js} +1 -1
- package/dist/ui/assets/tray-runtime-config-BQL-GPqt.js +1 -0
- package/dist/ui/assets/tray-runtime-config-C3Ti4Pik.js +1 -0
- package/dist/ui/assets/tray-sidecar-Zx9F34-1.js +2 -0
- package/dist/ui/assets/tray-sync-protocol-jKTx-dCF.js +1 -0
- package/dist/ui/assets/tray-webrtc-uW6sTyIA.js +1 -0
- package/dist/ui/assets/{upgrade-detection-BwiYpjuO.js → upgrade-detection-Cz0eOMYf.js} +1 -1
- package/dist/ui/assets/usb-picker-Cbm0jfjl.js +1 -0
- package/dist/ui/assets/{voice-reply-BGR2cNZ_.js → voice-reply-B43Nr1Xr.js} +1 -1
- package/dist/ui/assets/{wc-attach-BLZapYO1.js → wc-attach-BbT2famN.js} +3 -3
- package/dist/ui/assets/wc-browser-Ctsf5Y23.js +1 -0
- package/dist/ui/assets/{wc-extension-B_OX4AT5.js → wc-extension-CJ6cvLnw.js} +2 -2
- package/dist/ui/assets/{wc-float-label-Ck2cAgp3.js → wc-float-label-CnFnKVLC.js} +1 -1
- package/dist/ui/assets/wc-follower-CkrdiOKN.js +17 -0
- package/dist/ui/assets/wc-follower-oauth-B6m2XpVI.js +5 -0
- package/dist/ui/assets/wc-live-CxoqWHpR.js +8 -0
- package/dist/ui/assets/wc-nav-Bnd_bEYw.js +2 -0
- package/dist/ui/assets/wc-onboarding-FeHr2fj5.js +2 -0
- package/dist/ui/assets/{wc-permissions-iZXqGvtf.js → wc-permissions-CppSymRx.js} +3 -3
- package/dist/ui/assets/wc-permissions-providers-BjqCnuQT.js +2 -0
- package/dist/ui/assets/wc-placeholder-C79lmtig.js +4 -0
- package/dist/ui/assets/wc-settings-DdAeaZhQ.js +59 -0
- package/dist/ui/assets/wc-shell-BP3biEU1.js +125 -0
- package/dist/ui/assets/{wc-shortcut-config--IseG9bJ.js → wc-shortcut-config-CjOJXjsp.js} +2 -2
- package/dist/ui/assets/wc-shortcuts-BDQiHczD.js +41 -0
- package/dist/ui/assets/wc-sprinkles-ChlcnDD2.js +2 -0
- package/dist/ui/assets/wc-transcript-export-DdEuCfi6.js +2 -0
- package/dist/ui/assets/wc-tray-BfoqEbBg.js +5 -0
- package/dist/ui/assets/whisper-session-DW7HkDu2.js +2 -0
- package/dist/ui/assets/{xai-grok-OLNPEXTT.js → xai-grok-3L0LL1R8.js} +1 -1
- package/dist/ui/assets/{xai-grok-C-iHnNxi.js → xai-grok-CKevFY8L.js} +1 -1
- package/dist/ui/index.html +15 -17
- package/dist/ui/llm-proxy-sw.js +1 -1
- package/dist/ui/packages/webapp/index.html +15 -17
- package/package.json +5 -4
- package/dist/ui/assets/CLAUDE-DhkULx_E.js +0 -1
- package/dist/ui/assets/SKILL-DJAvKejL.js +0 -1
- package/dist/ui/assets/__vite-browser-external-B19j3y2v.js +0 -1
- package/dist/ui/assets/account-store-CCqSr710.js +0 -1
- package/dist/ui/assets/api-endpoint-BB41u1PK.js +0 -1
- package/dist/ui/assets/api-endpoint-DRYP1Kfj.js +0 -1
- package/dist/ui/assets/composer-speech-C8OcijP-.js +0 -1
- package/dist/ui/assets/dip-Co-Ga2Ny.js +0 -233
- package/dist/ui/assets/ensure-speech-assets-Csum3_gw.js +0 -1
- package/dist/ui/assets/export-provider-BunpOA08.js +0 -1
- package/dist/ui/assets/export-spool-Bvpvkbul.js +0 -1
- package/dist/ui/assets/extension-media-capture-DiCJSgES.js +0 -1
- package/dist/ui/assets/extension-ops-CsNT8YjX.js +0 -1
- package/dist/ui/assets/float-topology-ey0oewfq.js +0 -1
- package/dist/ui/assets/github-BXAKydA_.js +0 -1
- package/dist/ui/assets/handoff-link-CGs8AaQW.js +0 -1
- package/dist/ui/assets/hid-picker-C4WMZ0dN.js +0 -1
- package/dist/ui/assets/host-command-PnmJLRej.js +0 -1
- package/dist/ui/assets/idle-compaction-CACtwRU_.js +0 -1
- package/dist/ui/assets/idle-compaction-settings-wK6JTbJh.js +0 -1
- package/dist/ui/assets/image-markers-DXh8szCT.js +0 -1
- package/dist/ui/assets/image-markers-Gur55AOh.js +0 -1
- package/dist/ui/assets/kernel-worker-Da1sBAJS.js +0 -4940
- package/dist/ui/assets/lick-manager-DtpJc-rA.js +0 -2
- package/dist/ui/assets/lick-urls-f41PW9LN.js +0 -1
- package/dist/ui/assets/main-BwL0siqZ.js +0 -22
- package/dist/ui/assets/main-cherry-D1l6FfCM.js +0 -1
- package/dist/ui/assets/navigation-watcher-C3S1JDXr.js +0 -1
- package/dist/ui/assets/new-session-DyvxhZfj.js +0 -2
- package/dist/ui/assets/oauth-bootstrap-KB9SK_o_.js +0 -2
- package/dist/ui/assets/oauth-service-CT-Lvflt.js +0 -1
- package/dist/ui/assets/oauth-service-nBlvta_T.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-BPA7Umeo.js +0 -2
- package/dist/ui/assets/picker-popup-BjCTzsQH.js +0 -1
- package/dist/ui/assets/picker-popup-CFr7T4TJ.js +0 -1
- package/dist/ui/assets/preview-url-BvtKejEp.js +0 -1
- package/dist/ui/assets/provider-settings-CHQp2onM.js +0 -1
- package/dist/ui/assets/provider-settings-Dp2FBrlU.js +0 -2
- package/dist/ui/assets/provider-store-access-8IJH8x4u.js +0 -1
- package/dist/ui/assets/providers-DuO7vxZy.js +0 -2
- package/dist/ui/assets/proxied-fetch-B0SF_J0b.js +0 -1
- package/dist/ui/assets/proxied-fetch-CNztWUVW.js +0 -2
- package/dist/ui/assets/remote-cdp-transport-BZuQZZe1.js +0 -1
- package/dist/ui/assets/request-body-CsruB58l.js +0 -1
- package/dist/ui/assets/rest-ops-31ZkM4IG.js +0 -1
- package/dist/ui/assets/rest-ops-D6OyHX5S.js +0 -1
- package/dist/ui/assets/run-b1PI_1dP.js +0 -81
- package/dist/ui/assets/runtime-env-BFnohVwN.js +0 -1
- package/dist/ui/assets/runtime-env-Dc36nUmg.js +0 -1
- package/dist/ui/assets/runtime-env-NCI8LQob.js +0 -1
- package/dist/ui/assets/runtime-env-a_l4ilH_.js +0 -1
- package/dist/ui/assets/secret-topology-B8MYKYm6.js +0 -1
- package/dist/ui/assets/serial-picker-fzg2DxKj.js +0 -1
- package/dist/ui/assets/setup-standalone-prelude-C2jWAIl4.js +0 -2
- package/dist/ui/assets/setup-sudo-BK3Rz-OI.js +0 -2
- package/dist/ui/assets/shared-BpOmrBY4.js +0 -1
- package/dist/ui/assets/shared-CTdWt5ZU.js +0 -4
- package/dist/ui/assets/silent-renew-backoff-B8p8Ja1t.js +0 -1
- package/dist/ui/assets/silent-renew-backoff-BjF-rXLR.js +0 -1
- package/dist/ui/assets/slicc-app-url-DnN_aesz.js +0 -1
- package/dist/ui/assets/slicc-version-CUqwa07v.js +0 -1
- package/dist/ui/assets/src-DXa5EsFV.js +0 -1
- package/dist/ui/assets/src-XLzS9HFL.js +0 -1
- package/dist/ui/assets/state-C7WiY9TK.js +0 -42
- package/dist/ui/assets/sync-dialog-BZ2j4xTg.js +0 -1
- package/dist/ui/assets/tab-teleport-D1Xeuund.js +0 -1
- package/dist/ui/assets/transformers-env-DnkszgHP.js +0 -1
- package/dist/ui/assets/tray-runtime-config-D9gR_d0I.js +0 -1
- package/dist/ui/assets/tray-runtime-config-DCaFjGSS.js +0 -1
- package/dist/ui/assets/tray-sidecar-CWqVyj-w.js +0 -2
- package/dist/ui/assets/tray-sync-protocol-BNw4_0UD.js +0 -1
- package/dist/ui/assets/tray-sync-protocol-BZ5yhJH9.js +0 -1
- package/dist/ui/assets/tray-webrtc-De2SkVvZ.js +0 -1
- package/dist/ui/assets/usb-picker-B8B4LJT7.js +0 -1
- package/dist/ui/assets/wc-browser-AyZY1PPl.js +0 -1
- package/dist/ui/assets/wc-follower-CYLEd4rs.js +0 -17
- package/dist/ui/assets/wc-follower-oauth-CTgC7D7W.js +0 -5
- package/dist/ui/assets/wc-live-s5MA_zAo.js +0 -8
- package/dist/ui/assets/wc-nav-DHUiLdz3.js +0 -2
- package/dist/ui/assets/wc-onboarding-CX3HBRTZ.js +0 -2
- package/dist/ui/assets/wc-permissions-providers-BzoJwkWd.js +0 -2
- package/dist/ui/assets/wc-placeholder-BPLzZhYP.js +0 -4
- package/dist/ui/assets/wc-settings-tszLzSGm.js +0 -59
- package/dist/ui/assets/wc-shell-BBDMmI8N.js +0 -122
- package/dist/ui/assets/wc-shortcuts-BWBA9QlD.js +0 -11
- package/dist/ui/assets/wc-sprinkles-Cx9Zvx6r.js +0 -2
- package/dist/ui/assets/wc-transcript-export-B6x5VMbH.js +0 -2
- package/dist/ui/assets/wc-tray-DEV2i60z.js +0 -5
- package/dist/ui/assets/whisper-session-i96-W77q.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as e}from"./account-store-
|
|
1
|
+
import{g as e}from"./account-store-naVgJKHe.js";import"./provider-settings-C6uIHjd4.js";import{n as t,t as n}from"./pkce-hGf_TEnP.js";const r=`http://127.0.0.1:3000/callback`,i=`http://127.0.0.1:3000/*`;function a(e,t){let n=new URL(`https://openrouter.ai/auth`);return n.searchParams.set(`callback_url`,e),n.searchParams.set(`code_challenge`,t),n.searchParams.set(`code_challenge_method`,`S256`),n.toString()}function o(e){if(!e)throw Error(`OpenRouter OAuth login was cancelled or timed out`);let t;try{t=new URL(e)}catch{throw Error(`OpenRouter OAuth returned an invalid callback URL`)}let n=t.searchParams.get(`code`);if(!n)throw Error(`OpenRouter OAuth redirect did not include an authorization code`);return n}async function s(e,t,n=fetch){let r=await n(`https://openrouter.ai/api/v1/auth/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:e,code_verifier:t,code_challenge_method:`S256`}),signal:AbortSignal.timeout(3e4)});if(!r.ok){let e=await r.text();throw Error(`OpenRouter key exchange failed (${r.status}): ${e||`(empty response body)`}`)}let i;try{i=await r.json()}catch{throw Error(`OpenRouter key exchange returned invalid JSON`)}let a=i&&typeof i==`object`&&typeof i.key==`string`?i.key.trim():``;if(!a)throw Error(`OpenRouter key exchange returned an empty or invalid API key`);return a}async function c(c,l,u){let d=t(),f=await n(d),p=await s(o(await c({authorizeUrl:a(r,f),redirectUriPattern:i,onCapture:`close`})),d);await e({providerId:`openrouter`,accessToken:p,tokenExpiresAt:2**53-1,baseUrl:`https://openrouter.ai/api/v1`}),l()}export{r as OPENROUTER_CALLBACK_URL,i as OPENROUTER_REDIRECT_URI_PATTERN,a as buildAuthorizeUrl,n as deriveCodeChallenge,s as exchangeCodeForKey,t as generateCodeVerifier,c as loginIntercepted,o as parseCallbackCode};
|
package/dist/ui/assets/{page-approval-service-DnWfuBVQ.js → page-approval-service-IZdlRu-_.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./float-topology-hfgMx1Yq.js";var n=`sudo-request`,r=e(`sudo-panel`),i=typeof globalThis.confirm==`function`?globalThis.confirm.bind(globalThis):void 0,a=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function o(e,t={}){let n=t.confirm??i,o=t.prompt??a;if(!n)return r.warn(`no native confirm available in this realm — denying`),{decision:`deny`};let s=e.requester?`Requested by: ${e.requester}\n\n`:``;if(!n(`Approve ${e.kind}:\n\n${s}${e.detail}\n\nOK = allow · Cancel = deny`))return{decision:`deny`};let c=e.suggestedPattern?.trim()||e.detail.trim();if(!n(`Always allow actions matching:\n\n${c}\n\nOK = always · Cancel = just this once`))return{decision:`allow`};let l=o?.(`Edit the "Always" allow pattern:`,c);return{decision:`always`,pattern:l&&l.trim().length>0?l.trim():c}}function s(e={}){let t=globalThis.chrome?.runtime?.onMessage;return!t||typeof t.addListener!=`function`?!1:(t.addListener((t,n,i)=>{if(!c(t))return;let a=t.payload.request;try{i({ok:!0,decision:o(a,e)})}catch(e){r.warn(`panel responder threw — denying`,{error:e instanceof Error?e.message:String(e)}),i({ok:!1,decision:{decision:`deny`},error:`panel responder error`})}return!1}),!0)}function c(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.source!==`offscreen`)return!1;let n=t.payload;if(!n||n.type!==`sudo-request`)return!1;let r=n.request;return!!r&&typeof r.kind==`string`&&typeof r.detail==`string`}var l=e(`sudo:page`),u=null;function d(e){u=e}async function f(e){let t=u;if(!t)return null;let n=!1;try{n=t.shouldDelegate()}catch(e){l.warn(`tray delegate probe threw — treating as not delegable`,{error:e instanceof Error?e.message:String(e)})}if(!n)return null;try{return{decision:await t.requestApproval(e),handled:!0}}catch(e){return l.warn(`tray-delegated sudo approval threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function p(e,t){try{return{decision:t(e),handled:!0}}catch(e){return l.warn(`in-page sudo prompt threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:{decision:`deny`},handled:!0}}}async function m(e,n=`resolve`,r={}){let i=await f(e);if(i)return i;let a=r.hasLocalNodeServer??t;return n===`tray-first`&&a()?{decision:{decision:`deny`},handled:!1}:p(e,r.nativeResolve??o)}export{o as n,n as r,m as resolveSudoApprovalInPage,d as setSudoTrayDelegate,s as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-BVl0YuB2.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/port-bridge-client-C1tBBqwu.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-CiijUcSt.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/mount-bridge-client-DGJyqEPG.js","assets/types-Dgm4REV3.js","assets/page-approval-service-IZdlRu-_.js","assets/float-topology-hfgMx1Yq.js","assets/speak-BxNdNjKi.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-BmBEKck6.js","assets/shared-Djytys1b.js","assets/mime-types-D0xZwlMO.js","assets/preview-url-r19H6zH1.js","assets/hear-CNQSuR1y.js","assets/permissions-surface-registry-CilCRwhh.js","assets/whisper-session-DW7HkDu2.js","assets/providers-CqZKx9qW.js","assets/esptool-operations-DEqDNikQ.js","assets/esp8266-BN3fFVWu.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup--ijSfN8u.js","assets/picker-popup-sQtXmfAo.js","assets/theme-engine-By4GU_Wc.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{G as e,p as t}from"./account-store-DsMvFZgS.js";import{t as n}from"./preload-helper-Czpn1I53.js";import"./proxied-fetch-CiijUcSt.js";import{a as r,t as i}from"./api-endpoint-DGxXvrur.js";import"./provider-settings-DrWv51sQ.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-BVl0YuB2.js`).then(e=>e.t);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));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-DGJyqEPG.js`);return{callMountBridge:e}},__vite__mapDeps([10,2,3,4,5,1,6,7,8,9,11]));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-IZdlRu-_.js`);return{resolveSudoApprovalInPage:e}},__vite__mapDeps([12,4,13,5,1,3,6,7,8,9]));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-CiijUcSt.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([5,1,3,6,7,8,9])),{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-BxNdNjKi.js`);return{speak:e}},__vite__mapDeps([14,3,4,9,15,16,5,1,6,7,8,17,18,19]));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-BxNdNjKi.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([14,3,4,9,15,16,5,1,6,7,8,17,18,19])),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-BxNdNjKi.js`);return{kokoroStatus:e}},__vite__mapDeps([14,3,4,9,15,16,5,1,6,7,8,17,18,19]));return e()},"speak-warmup":async()=>{let{kokoroWarmup:e}=await n(async()=>{let{kokoroWarmup:e}=await import(`./speak-BxNdNjKi.js`);return{kokoroWarmup:e}},__vite__mapDeps([14,3,4,9,15,16,5,1,6,7,8,17,18,19]));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-BxNdNjKi.js`);return{synthesizeToWav:e}},__vite__mapDeps([14,3,4,9,15,16,5,1,6,7,8,17,18,19])),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-CNQSuR1y.js`);return{hearCapture:e}},__vite__mapDeps([20,4,21,22,3,16,5,1,6,7,8,9,17,18,19]));return await t(e??{})},"hear-transcribe":async({bytes:e,lang:t})=>{let{hearTranscribe:r}=await n(async()=>{let{hearTranscribe:e}=await import(`./hear-CNQSuR1y.js`);return{hearTranscribe:e}},__vite__mapDeps([20,4,21,22,3,16,5,1,6,7,8,9,17,18,19]));return await r(e,t)},"hear-status":async()=>{let{hearStatus:e}=await n(async()=>{let{hearStatus:e}=await import(`./hear-CNQSuR1y.js`);return{hearStatus:e}},__vite__mapDeps([20,4,21,22,3,16,5,1,6,7,8,9,17,18,19]));return e()},"hear-warmup":async()=>{let{hearWarmup:e}=await n(async()=>{let{hearWarmup:e}=await import(`./hear-CNQSuR1y.js`);return{hearWarmup:e}},__vite__mapDeps([20,4,21,22,3,16,5,1,6,7,8,9,17,18,19]));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-CqZKx9qW.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([23,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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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([24,1,3,25,26]))).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--ijSfN8u.js`);return{storePendingHandle:e}},__vite__mapDeps([27,4,28,9])),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([29,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,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import"./virtual-device-paths-D45tpPP6.js";import{r as t}from"./icons-BJsliYCh.js";import{s as n}from"./src-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import"./virtual-device-paths-D45tpPP6.js";import{r as t}from"./icons-BJsliYCh.js";import{s as n}from"./src-Bex_z_yH.js";import{i as r,n as i,r as a,t as o}from"./panel-registry-CJdOibpf.js";import{setLayoutApplier as s}from"./layout-apply-registry-Cw730jao.js";import{c,h as l,l as u,m as d}from"./layout-schema-m9_VAwOw.js";import{r as f}from"./trusted-layer-ghPA1ENf.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function _(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function ee(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function v(e){ee(document);let n=document.createElement(`div`);n.className=`slicc-addpanel`;let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__btn`,r.title=`Panels and layouts`,r.setAttribute(`aria-label`,`Panels and layouts`);let a=new DOMParser().parseFromString(t(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;r.appendChild(a);let s=document.createElement(`div`);s.className=`slicc-addpanel__menu`,s.setAttribute(`role`,`menu`);let c=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},l=n=>{let r=c(n,!1,()=>e.onLoadLayout(n)),i=document.createElement(`button`);return i.type=`button`,i.className=`slicc-addpanel__del`,i.title=`Delete "${n}"`,i.setAttribute(`aria-label`,`Delete layout ${n}`),i.appendChild(new DOMParser().parseFromString(t(`trash-2`,{size:11}),`image/svg+xml`).documentElement),i.addEventListener(`click`,t=>{t.stopPropagation(),e.onDeleteLayout(n),m()}),r.appendChild(i),r};function u(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=_(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let d=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let t=new Set(e.layout.getPlacedPanelIds()),n=[],r={},i=o();for(let e of i)(r[e.origin]??=[]).push(e);for(let[i,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let o=r[i];if(o?.length){n.push(d(a));for(let r of o){let i=t.has(r.meta.id);n.push(c(r.meta.title,i,()=>e.onToggle(r.meta.id,!i)))}}}try{let{saved:t,presets:r}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,n.push(i,d(`Layouts`));for(let e of t)n.push(l(e));for(let t of r)n.push(c(t,!1,()=>e.onLoadLayout(t)));n.push(c(`Save layout as…`,!1,u))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}s.replaceChildren(...n)}function m(){s.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{n.contains(e.target)||m()};return r.addEventListener(`click`,()=>{if(s.hasAttribute(`open`)){m();return}f().then(()=>{s.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),i.addEventListener(`panel-registry-change`,()=>{s.hasAttribute(`open`)&&f()}),n.append(r,s),n}var y={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},b={[y.chat]:{id:y.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[y.sessionsRail]:{id:y.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[y.dockRail]:{id:y.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[y.scoopSwitcher]:{id:y.scoopSwitcher,title:`Scoops`,icon:`users`},[y.floatbar]:{id:y.floatbar,title:`Runtime`,icon:`activity`},[y.files]:{id:y.files,title:`Files`,icon:`folder`,minWidth:220},[y.term]:{id:y.term,title:`Terminal`,icon:`square-terminal`},[y.memory]:{id:y.memory,title:`Memory`,icon:`brain`},[y.monitor]:{id:y.monitor,title:`Monitor`,icon:`activity`},[y.browser]:{id:y.browser,title:`Browser`,icon:`globe`}};function x(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=b[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function S(){for(let e of Object.values(b))a({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function C(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function te(){return{when:{maxWidth:700},docks:[],zones:{center:[y.chat]},floating:[]}}function w(){return[{edge:`top`,size:`36px`,panels:[y.scoopSwitcher,y.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[y.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[y.dockRail],locked:!0}]}var T={version:1,id:`default`,title:`Default`,base:{docks:w(),zones:{center:[y.chat]}},variants:[te()]},E={default:T};function D(e){return E[e]??null}function O(){return Object.keys(E)}e(`sudo:sudoers`);var k=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
|
|
2
2
|
`);var A=e(`layout-store`),j=`/workspace/layouts`,M=[j,k];function N(e,t){return`${t?.protected?k:j}/${e}.json`}async function P(e,t){try{if(!await e.exists(t))return null;let n=await e.readFile(t),r=u(JSON.parse(typeof n==`string`?n:String(n)));return`error`in r?(A.warn(`invalid layout document — ignoring`,{path:t,error:r.error}),null):r}catch(e){return A.warn(`failed to read layout`,{path:t,error:e instanceof Error?e.message:e}),null}}async function ne(e,t,n){let r=n?.name??t.id,i=n?.protected?k:j,a=`${i}/${r}.json`;return await e.exists(i)||await e.mkdir(i,{recursive:!0}),await e.writeFile(a,`${JSON.stringify(t,null,2)}\n`),A.info(`layout saved`,{path:a}),a}async function F(e,t,n){let r=N(t,n);return await e.exists(r)?(await e.rm(r),!0):!1}async function I(e){let t=[],n=new Set;for(let r of M){let i;try{if(!await e.exists(r))continue;i=(await e.readDir(r)).filter(e=>e.type===`file`).map(e=>e.name)}catch(e){A.warn(`failed to list layout dir`,{dir:r,error:e});continue}for(let a of i){if(!a.endsWith(`.json`))continue;let i=a.slice(0,-5);if(n.has(i))continue;let o=`${r}/${a}`,s=await P(e,o);s&&(n.add(i),t.push({name:i,path:o,doc:s,protected:r===k}))}}return t}async function L(e,t){for(let n of M){let r=`${n}/${t}.json`,i=await P(e,r);if(i)return{name:t,path:r,doc:i,protected:n===k}}return null}function R(e,t,r){let i=e.getLayout(),a=n(i,e.environment());if(r){let e=a.zones??l(a.center??null);d(e,t)?a.zones||(a.zones=e,a.center=null):(a.zones=c(e,t,`right`),a.center=null)}i.panels={...i.panels,[t]:{...i.panels?.[t],visible:r}},e.setLayout(i)}var z=e(`apply-layout-doc`);function B(e){return{applied:!1,error:`layout ${e} needs a filesystem (unavailable here)`}}function V(e){return[`load`,`save`,`delete`,`docs`,`panels`,`show`,`hide`].includes(e.kind)}async function H(e,t){let n=e.fs?await L(e.fs,t):null;if(n)return e.layout.setLayout(n.doc),{applied:!0,output:`loaded layout "${t}" from ${n.path}`};let r=D(t);return r?(e.layout.setLayout(r),{applied:!0,output:`loaded preset "${t}"`}):{applied:!1,error:`unknown layout "${t}" — try: ${O().join(`, `)}`}}async function U(e,t,n){if(!e.fs)return B(`save`);let r={...e.layout.getLayout(),id:t};try{return{applied:!0,output:`saved layout to ${await ne(e.fs,r,{name:t,protected:n})}`}}catch(e){let r=e instanceof Error?e.message:String(e);return z.warn(`layout save failed`,{name:t,protected:n,error:r}),{applied:!1,error:`could not save "${t}": ${r}`}}}async function W(e){let t=e.fs?await I(e.fs):[],n=[];if(t.length>0){n.push(`saved layouts:`);for(let e of t)n.push(` ${e.name}${e.protected?` (protected)`:``} ${e.path}`)}n.push(`presets: ${O().join(`, `)}`);let r=e.layout.getLayout();return n.push(`current: ${r.id}`),{applied:!0,output:n.join(`
|
|
3
3
|
`)}}function G(e){let t=new Set(e.layout.getPlacedPanelIds()),n={builtin:[],sprinkle:[],agent:[]};for(let e of o()){let r=t.has(e.meta.id)?`*`:` `;(n[e.origin]??=[]).push(` ${r} ${e.meta.id} ${e.meta.title}`)}let r=[];for(let[e,t]of Object.entries(n))t.length!==0&&(r.push(`${e}:`),r.push(...t));return r.push(`(* = currently placed)`),{applied:!0,output:r.join(`
|
|
4
4
|
`)}}function K(e,t,n){return R(e.layout,t,n),{applied:!0}}async function q(e,t){switch(t.kind){case`load`:return H(e,t.name);case`save`:return U(e,t.name,t.protected);case`delete`:return e.fs?await F(e.fs,t.name)||await F(e.fs,t.name,{protected:!0})?{applied:!0,output:`deleted layout "${t.name}"`}:{applied:!1,error:`no saved layout named "${t.name}"`}:B(`delete`);case`docs`:return W(e);case`panels`:return G(e);case`show`:return K(e,t.panelId,!0);case`hide`:return K(e,t.panelId,!1)}}var J=e(`panelize-shell`),Y=`slicc-panelize-style`,X=[`.wcui-avatar-strip{position:absolute;top:0;right:0;height:var(--barh,36px);`,`display:flex;align-items:center;gap:12px;padding:0 9px 0 14px;box-sizing:border-box;`,`pointer-events:auto;z-index:1;}`,`.wcui-frame slicc-layout{position:relative;z-index:1;}`,`slicc-layout .slicc-layout__dock--left,slicc-layout .slicc-layout__dock--right{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--top,slicc-layout .slicc-layout__dock--bottom{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--left{flex:0 0 auto!important;width:auto!important;}`,`slicc-layout .slicc-layout__dock--right{flex:0 0 auto!important;width:auto!important;}`,`slicc-panel[panel-id="sessions-rail"],slicc-panel[panel-id="dock-rail"]{`,`flex:0 0 auto;height:100%;align-self:stretch;overflow:hidden;}`,`slicc-panel[panel-id="dock-rail"]{width:48px;}`,`slicc-panel[panel-id="sessions-rail"]{width:auto;}`,`slicc-panel[panel-id="sessions-rail"]>*,slicc-panel[panel-id="dock-rail"]>*{`,`height:100%;flex:1 1 auto;min-height:0;}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{`,`height:var(--barh,36px);min-height:var(--barh,36px);max-height:var(--barh,36px);}`,`slicc-panel[panel-id="chat"] slicc-chatpane{flex:1 1 0;width:100%;min-height:0;}`,`slicc-panel[panel-id="chat"] slicc-chat-thread{flex:1 1 0;min-height:0;overflow-y:auto;}`,`slicc-panel[panel-id="chat"] slicc-composer{flex:0 0 auto;}`,`slicc-panel[panel-id="scoop-switcher"]{flex:0 0 auto;justify-content:center;padding-left:14px;}`,`slicc-panel[panel-id="floatbar"]{flex:1 1 auto;align-items:center;justify-content:flex-end;`,`padding-right:var(--avatar-strip-w, 96px);}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{flex-direction:row;}`].join(``);function re(e){if(e.getElementById(Y))return;let t=e.createElement(`style`);t.id=Y,t.textContent=X,(e.head??e.documentElement).appendChild(t)}function Z(e){e.setAttribute(`active`,``),e.style.display=`flex`,e.style.flexDirection=`column`,e.style.position=`relative`,e.style.inset=`auto`,e.style.flex=`1 1 auto`,e.style.minHeight=`0`}var ie=new Set([y.files,y.term,y.memory,y.monitor,y.browser]);function ae(e,t,n,r){let i=(e,i)=>{let a=e.detail?.id;!a||!ie.has(a)||n.has(a)||(e.stopImmediatePropagation(),R(t,a,i),i?r?.onToolPanelActivate?.(a):r?.onToolPanelDeactivate?.(a))};e.addEventListener(`slicc-dock-select`,e=>i(e,!0),!0),e.addEventListener(`slicc-dock-collapse`,e=>i(e,!1),!0)}function oe(e,t){return{hostSprinkleSurface:(n,r)=>{let i=x(n,r);Z(r),t.set(n,i),e.appendChild(i),a({meta:{id:n,title:C(n)??n},source:{kind:`element`,tag:`slicc-panel`},origin:`sprinkle`}),R(e,n,!0),J.info(`sprinkle panel hosted`,{surfaceId:n})},removeSprinkleSurface:n=>{t.get(n)?.remove(),t.delete(n),r(n);let i=e.getLayout();i.panels={...i.panels,[n]:{visible:!1}},e.setLayout(i)}}}var Q=`slicc-panel-layout:default`;function se(e,t){e.addEventListener(`slicc-layout-change`,t=>{let n=t.detail?.reason;if(n===`rearrange`||n===`resize`)try{localStorage.setItem(Q,JSON.stringify(e.getLayout()))}catch{}});let n=null;try{let e=localStorage.getItem(Q);if(e){let t=u(JSON.parse(e));`error`in t?J.warn(`stored layout rejected — using the default`,{error:t.error}):n=t}}catch(e){J.warn(`stored layout unreadable — using the default`,e)}e.setLayout(n??t)}var $=null;function ce(){return $}function le(e,t=T,n,r){if(e.frame.dataset.sliccPanelized===`1`)return J.warn(`panelizeShell called twice — ignoring the second call`),null;re(document),S();let i=n,a=document.createElement(`slicc-layout`),o=new Map,c=(e,t)=>{if(!t)return;let n=x(e,t);o.set(e,n),a.appendChild(n)};e.freezer.setAttribute(`docked`,``),e.frame.querySelector(`.wcui-appcol`)?.style.setProperty(`--rail-w`,`0px`),c(y.scoopSwitcher,e.switcher),c(y.floatbar,e.floatbar),c(y.sessionsRail,e.freezer),c(y.dockRail,e.dock),c(y.chat,e.chatPane);for(let t of[y.files,y.term,y.memory,y.monitor,y.browser]){let n=e.dockTree.querySelector(`slicc-surface[surface-id="${t}"]`);n instanceof HTMLElement&&(Z(n),c(t,n))}let l=document.createElement(`div`);l.className=`wcui-avatar-strip`,l.appendChild(v({layout:a,onToggle:(e,t)=>{q({layout:a,fs:i},{kind:t?`show`:`hide`,panelId:e})},onLoadLayout:e=>{q({layout:a,fs:i},{kind:`load`,name:e})},onSaveLayout:e=>{q({layout:a,fs:i},{kind:`save`,name:e,protected:!1}).then(t=>{t.error?J.warn(`layout save failed`,{name:e,error:t.error}):J.info(`layout saved`,{name:e,output:t.output})})},onDeleteLayout:e=>{q({layout:a,fs:i},{kind:`delete`,name:e})},listLayoutNames:async()=>({saved:i?(await I(i)).map(e=>e.name):[],presets:O()})})),l.appendChild(e.avatarMenu),f(l,document),e.shell.replaceWith(a),e.frame.querySelector(`slicc-nav`)?.remove(),se(a,t),ae(e.dock,a,e.overlaySurfaces,r),s(e=>V(e)?q({layout:a,fs:i},e):{applied:!1,error:`"${e.kind}" targets the old dock-tree; with panels use: load, save, show, hide, docs, panels`}),e.frame.dataset.sliccPanelized=`1`,J.info(`shell panelized`,{panels:o.size,layout:t.id});let u={layout:a,avatarStrip:l,panels:o,attachFs:e=>{i=e,J.info(`layout store attached`)},...oe(a,o)};return $=u,u}export{Q as PANEL_LAYOUT_STORAGE_KEY,ce as getPanelizedShell,le as panelizeShell};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./runtime-env-Dlaokqg1.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,2 +1,2 @@
|
|
|
1
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{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import"./proxied-fetch-
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import"./proxied-fetch-CiijUcSt.js";import{r as n}from"./api-endpoint-DGxXvrur.js";function r(r){let i=t(r.logNamespace),a=null,o=1,s=new Map;function c(e){let t=e;if(typeof t?.id!=`number`)return;let n=s.get(t.id);n&&(s.delete(t.id),clearTimeout(n.timer),n.resolve(t.response))}function l(){a=null;for(let[,e]of s)clearTimeout(e.timer),e.reject(r.makeError(`${r.portName} port disconnected`));s.clear(),i.debug(`${r.portName} port disconnected; pending cleared, will reconnect`)}function u(){if(a)return a;let e=n();if(!e)return i.warn(`cannot open ${r.portName} port: no extension delegate id`),null;if(typeof chrome>`u`||typeof chrome?.runtime?.connect!=`function`)return i.warn(`cannot open ${r.portName} port: chrome.runtime.connect unavailable`),null;let t=chrome.runtime.connect,o=t(e,{name:r.portName});return o.onMessage.addListener(c),o.onDisconnect.addListener(l),a=o,o}function d(e){return r.onUnavailable===`resolve-undefined`?Promise.resolve(void 0):Promise.reject(r.makeError(e))}function f(e){return new Promise((t,n)=>{let c=u();if(!c){d(`${r.portName} transport unavailable`).then(t,n);return}let l=o++,f=setTimeout(()=>{s.delete(l)&&(i.warn(`${r.portName} call timed out`),d(`${r.portName} call timed out`).then(t,n))},r.timeoutMs);s.set(l,{resolve:t,reject:n,timer:f});try{c.postMessage({id:l,...r.toPortMessage(e)})}catch(e){s.delete(l),clearTimeout(f),a=null,n(r.makeError(e instanceof Error?e.message:String(e)))}})}async function p(t){let{getPanelRpcClient:n}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-B3MSVImO.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1])),a=n();return a?(await a.call(r.panelRpcOp,r.toPanelRpcPayload(t),{timeoutMs:r.timeoutMs})).response:(i.warn(`cannot bridge ${r.portName} call: panel-RPC client unavailable`),d(`${r.portName} transport: panel-RPC client unavailable`))}return e=>typeof chrome>`u`&&n()?p(e):f(e)}export{r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import"./proxied-fetch-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import"./proxied-fetch-DUC7X0GS.js";import{r as t}from"./api-endpoint-Lx_FU5cP.js";function n(n){let r=e(n.logNamespace),i=null,a=1,o=new Map;function s(e){let t=e;if(typeof t?.id!=`number`)return;let n=o.get(t.id);n&&(o.delete(t.id),clearTimeout(n.timer),n.resolve(t.response))}function c(){i=null;for(let[,e]of o)clearTimeout(e.timer),e.reject(n.makeError(`${n.portName} port disconnected`));o.clear(),r.debug(`${n.portName} port disconnected; pending cleared, will reconnect`)}function l(){if(i)return i;let e=t();if(!e)return r.warn(`cannot open ${n.portName} port: no extension delegate id`),null;if(typeof chrome>`u`||typeof chrome?.runtime?.connect!=`function`)return r.warn(`cannot open ${n.portName} port: chrome.runtime.connect unavailable`),null;let a=chrome.runtime.connect,o=a(e,{name:n.portName});return o.onMessage.addListener(s),o.onDisconnect.addListener(c),i=o,o}function u(e){return n.onUnavailable===`resolve-undefined`?Promise.resolve(void 0):Promise.reject(n.makeError(e))}function d(e){return new Promise((t,s)=>{let c=l();if(!c){u(`${n.portName} transport unavailable`).then(t,s);return}let d=a++,f=setTimeout(()=>{o.delete(d)&&(r.warn(`${n.portName} call timed out`),u(`${n.portName} call timed out`).then(t,s))},n.timeoutMs);o.set(d,{resolve:t,reject:s,timer:f});try{c.postMessage({id:d,...n.toPortMessage(e)})}catch(e){o.delete(d),clearTimeout(f),i=null,s(n.makeError(e instanceof Error?e.message:String(e)))}})}async function f(e){let{getPanelRpcClient:t}=await import(`./panel-rpc-BPwAqRch.js`).then(e=>e.i),i=t();return i?(await i.call(n.panelRpcOp,n.toPanelRpcPayload(e),{timeoutMs:n.timeoutMs})).response:(r.warn(`cannot bridge ${n.portName} call: panel-RPC client unavailable`),u(`${n.portName} transport: panel-RPC client unavailable`))}return e=>typeof chrome>`u`&&t()?f(e):d(e)}export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./runtime-env-Dlaokqg1.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,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/proxied-fetch-
|
|
2
|
-
import{H as e,S as t,d as n}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/proxied-fetch-CiijUcSt.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-t2taQm3p.js","assets/panel-rpc-B3MSVImO.js","assets/permissions-surface-registry-CilCRwhh.js","assets/provider-store-access-BqErJhmB.js","assets/logger-DDBAeTLF.js","assets/global-db-CbuLl-zx.js","assets/types-Dgm4REV3.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{H as e,S as t,d as n}from"./account-store-DsMvFZgS.js";import{t as r}from"./preload-helper-Czpn1I53.js";import{t as i}from"./logger-DDBAeTLF.js";import{n as a}from"./float-topology-hfgMx1Yq.js";import{i as o}from"./providers-CqZKx9qW.js";import{n as s,r as c,t as l}from"./pkce-hGf_TEnP.js";import"./provider-store-access-BqErJhmB.js";var u=i(`mcp-oauth`);function d(e,t){let{discoveryPath:n,prmUrl:r,prmReason:i,asmUrl:a,asmReason:o}=t;if(!e)throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}): ${o}.`:`ASM fetch failed: ${o} (${a})`);if(!(e.authorization_endpoint&&e.token_endpoint))throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${a} is missing required endpoints`)}async function f(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;u.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,u.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,u.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let f=null,p=null;u.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?f=await e.json():p=`${e.status} ${e.statusText}`}catch(e){p=e instanceof Error?e.message:String(e)}return d(f,{discoveryPath:l,prmUrl:i,prmReason:o,asmUrl:c,asmReason:p}),{issuer:f.issuer||s,authorizationEndpoint:f.authorization_endpoint,tokenEndpoint:f.token_endpoint,registrationEndpoint:f.registration_endpoint,supportedScopes:f.scopes_supported??a?.scopes_supported,codeChallengeMethods:f.code_challenge_methods_supported,grantTypes:f.grant_types_supported,discoveryPath:l}}function p(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}async function m(e){let t=s();return e===`plain`?{codeVerifier:t,codeChallenge:t,method:e}:{codeVerifier:t,codeChallenge:await l(t),method:e}}function h(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function g(e){let t=await m(p(e.asMetadata.codeChallengeMethods)),n=c(),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=h(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return v({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function _(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function v(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return _(r)}async function y(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return _(r)}var b=`/auth/mcp-callback`;async function x(e){if(e===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(e===`node-rest`){let{getLocalApiBaseUrl:e}=await r(async()=>{let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-CiijUcSt.js`).then(e=>e.i);return{getLocalApiBaseUrl:e}},__vite__mapDeps([0,1,2,3,4,5,6])),t=e();if(t)return`${t}/auth/callback`}let{getOAuthPageOrigin:t}=await r(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-t2taQm3p.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([7,2,0,1,3,4,5,6,8,9])),{origin:n}=await t();return`${n}${e===`extension-delegate`?b:`/auth/callback`}`}var S=i(`mcp-provider`),C=`mcp:`;function w(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function T(e){return`${C}${e}`}var E=new Map,D=new Set;async function O(e){if(e)return e;let{createProxiedFetch:t}=await r(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-CiijUcSt.js`).then(e=>e.i);return{createProxiedFetch:e}},__vite__mapDeps([0,1,2,3,4,5,6])),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function k(e){let t=E.get(T(e.name));if(t)return t;let n=await O(e.fetchImpl),r=await f(e.serverUrl,void 0,n);return E.set(T(e.name),r),r}function A(r){let i=T(r.name),o=(()=>{try{return new URL(r.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${r.name}`,description:`MCP server at ${r.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:o?[o]:[],getModelIds:()=>[],onOAuthLogin:async(t,n)=>{let o=r.launcher??t,s=await O(r.fetchImpl),c=await g({asMetadata:await k(r),clientId:r.auth.clientId,scope:r.auth.scope,redirectUri:r.auth.redirectUri??await x(a()),launcher:o,fetchImpl:s});await e({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),n()},onSilentRenew:async()=>{if(!t(i))return null;let a=n().find(e=>e.providerId===i),o=a?.refreshToken;if(!o)return S.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let t=await k(r),n=t.grantTypes??[];if(n.length>0&&!n.includes(`refresh_token`))return S.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let s=await O(r.fetchImpl),c=await y({tokenEndpoint:t.tokenEndpoint,clientId:r.auth.clientId,refreshToken:o,scope:r.auth.scope,fetchImpl:s});return await e({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return S.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function j(e){let t=T(e.name);if(D.has(t))return;let n=A(e);o(n),D.add(t),S.debug(`Registered MCP provider`,{id:t})}async function M(){if(!w())return[];let{readMcpAuthEntries:e}=await r(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-BqErJhmB.js`);return{readMcpAuthEntries:e}},__vite__mapDeps([10,2,11,12,13])),t=await e(),n=[];for(let e of t)j({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(T(e.name));return n}export{M as ensureAllMcpProvidersRegistered};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-CF2FF0H2.js";import{c as i,g as a,n as o}from"./account-store-naVgJKHe.js";import{u as s}from"./core-B8y1Kyh_.js";import{t as c}from"./redirect-uri-BKkf61lT.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-DR6XMm1M.js";import{n as f}from"./store-i7XHN1Er.js";import"./provider-store-access-BuQzycZu.js";const p=e(`mcp-provider`);function m(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function h(e){return`mcp:${e}`}const g=new Map,_=new Set;async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-DUC7X0GS.js`).then(e=>e.i),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=g.get(h(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await l(e.serverUrl,void 0,n);return g.set(h(e.name),r),r}function b(e){let t=h(e.name),n=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:n?[n]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let i=e.launcher??n,o=await v(e.fetchImpl),l=await y(e),u=await d({asMetadata:l,clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await c(s()),launcher:i,fetchImpl:o});await a({providerId:t,accessToken:u.accessToken,refreshToken:u.refreshToken,tokenExpiresAt:u.expiresAt,scopes:u.scope}),r()},onSilentRenew:async()=>{if(!i(t))return null;let n=o().find(e=>e.providerId===t),r=n?.refreshToken;if(!r)return p.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let i=await y(e),o=i.grantTypes??[];if(o.length>0&&!o.includes(`refresh_token`))return p.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await v(e.fetchImpl),c=await u({tokenEndpoint:i.tokenEndpoint,clientId:e.auth.clientId,refreshToken:r,scope:e.auth.scope,fetchImpl:s});return await a({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??r,tokenExpiresAt:c.expiresAt,scopes:c.scope??n.scopes}),c.accessToken}catch(e){return p.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let n=h(e.name);if(_.has(n))return;let r=b(e);t(r),_.add(n),p.debug(`Registered MCP provider`,{id:n})}async function S(e,t={}){let n=h(e);if(_.has(n)&&r(n))return!0;if(!m())return!1;let i=await f(e);return i?(x({name:e,serverUrl:i.serverUrl,auth:i.auth,...t}),!0):!1}async function C(){if(!m())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-BuQzycZu.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(h(e.name));return n}function w(e){let t=h(e);return _.delete(t),g.delete(t),n(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import"./account-store-naVgJKHe.js";import"./core-B8y1Kyh_.js";import"./tray-runtime-config-C3Ti4Pik.js";e(`provider-settings`);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-t2taQm3p.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-CiijUcSt.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.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-DsMvFZgS.js";import{t as A}from"./preload-helper-Czpn1I53.js";import{t as ve}from"./logger-DDBAeTLF.js";import{i as ye}from"./bridge-protocol-06nbmp2X.js";import{o as j,u as M}from"./tray-runtime-config-BQL-GPqt.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-t2taQm3p.js`);return{createOAuthLauncher:e,createInterceptingOAuthLauncherForCurrentRuntime:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),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-t2taQm3p.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),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-t2taQm3p.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),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};
|
package/dist/ui/assets/{provider-store-access-kKnmyJjr.js → provider-store-access-BqErJhmB.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./global-db-CbuLl-zx.js";import{t as r}from"./types-Dgm4REV3.js";var i=t(`mcp-store`),a=`/workspace/.mcp/servers.json`,o=1,s=null,c=null;async function l(){return s||=await e(()=>import(`./fs-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-CBaQR8Xc.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/path-utils-DNJG-zQf.js","assets/bounded-walk-BjxKWNqp.js","assets/types-Dgm4REV3.js","assets/virtual-device-paths-D45tpPP6.js","assets/mount-table-store-dY2IfQ5S.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/sidecar-repair-431vRT2V.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./global-db-CbuLl-zx.js";import{t as r}from"./types-Dgm4REV3.js";var i=t(`mcp-store`),a=`/workspace/.mcp/servers.json`,o=1,s=null,c=null;async function l(){return s||=await e(()=>import(`./fs-CBaQR8Xc.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),r=await t.create({dbName:n});return c={instance:r,dbName:n},r}function d(){return{version:o,servers:{}}}function f(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function p(e){if(!f(e))return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function m(e){if(!f(e))return d();let t=e,n=typeof t.version==`number`?t.version:o,r={};if(f(t.servers))for(let[e,n]of Object.entries(t.servers)){let t=p(n);t&&(r[e]=t)}return{version:n,servers:r}}async function h(e){try{let t=await(await u(e)).readFile(a,{encoding:`utf-8`});try{return m(JSON.parse(t))}catch(e){return i.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof r&&e.code===`ENOENT`||i.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function g(e){return(await h(e)).servers}async function _(){let e=await g(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{_ as readMcpAuthEntries};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./store-i7XHN1Er.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-DsmgiFlX.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-CYnC9BQI.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-H3Byazn0.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-COCS88AU.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-BhZB46bT.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-Mux-1Uqj.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-BeWJoZwD.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-B7uOq9Q1.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-DlFMWNVB.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-C9w8lxkF.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-D9gZVt7e.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-BrS9XpJS.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-3L0LL1R8.js`)}),s=new Map;let c=null;function l(){return c===null&&(c=(async()=>{let e=await Promise.all(Object.values(a).map(e=>e()));for(let t of e)t.config&&i(t.config.id)&&(s.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(o).map(e=>e()));for(let e of t)e.config&&(s.set(e.config.id,e.config),e.register?.())})()),c}const u=s;function d(e){return s.get(e)}function f(){return[...s.keys()]}function p(e){s.set(e.id,e)}function m(e){return s.delete(e)}export{l as a,p as i,f as n,i as o,n as r,m as s,d as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-B9ZeZZ0T.js","assets/account-store-DsMvFZgS.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/proxied-fetch-CiijUcSt.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-hfgMx1Yq.js","assets/secret-topology-Yt0aO4Gz.js","assets/secrets-bridge-client-BVl0YuB2.js","assets/port-bridge-client-C1tBBqwu.js","assets/image-markers-BFDmhPy4.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-B-qS5oNT.js","assets/legacy-api-aliases-45zvHmpJ.js","assets/adobe-sRIQnDEl.js","assets/silent-renew-backoff-SSzHR-oP.js","assets/bridge-protocol-06nbmp2X.js","assets/provider-settings-DrWv51sQ.js","assets/tray-runtime-config-BQL-GPqt.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-t2taQm3p.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-CsdnfQnc.js","assets/github-copilot-DwKSI23j.js","assets/github-qhOhjD2Q.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-BZDYkVh6.js","assets/pkce-hGf_TEnP.js","assets/openrouter-models-D210d5Hg.js","assets/openrouter-oauth-CioQlp0x.js","assets/openrouter-Dn_iX45f.js","assets/xai-grok-CKevFY8L.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-B9ZeZZ0T.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])),"./built-in/bedrock-camp-compat.ts":()=>t(()=>import(`./bedrock-camp-compat-CgBMwna8.js`).then(e=>e.n),__vite__mapDeps([24,2])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-Djf-aXdl.js`),__vite__mapDeps([26,6,5,3,4,7,8,2,9,25,27])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-B-qS5oNT.js`),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-sRIQnDEl.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,29,31,32,33,34,35,36,37,38,39,40,41,27,42])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-CsdnfQnc.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-DwKSI23j.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29,33,32,34,35,36,37,38,39])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-qhOhjD2Q.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,31,32,34,35,33,36,37,38,39,40,41,46])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-BZDYkVh6.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,29,33,32,34,35,36,37,38,39,48])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-D210d5Hg.js`),__vite__mapDeps([49,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-CioQlp0x.js`),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,33,32,34,35,36,37,38,39,48])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-Dn_iX45f.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29,33,32,34,35,36,37,38,39,49,50,48])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-CKevFY8L.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,29,33,32,34,35,36,37,38,39,48,53]))}),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};
|
|
@@ -0,0 +1,2 @@
|
|
|
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{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-DGxXvrur.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`)}function d(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 f(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 p(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}var m=new Map,h=new Map;function g(e,t){m.set(e,t),setTimeout(()=>m.delete(e),1e4)}function _(e,t){h.set(e,t),setTimeout(()=>h.delete(e),1e4)}function v(e){return e.headers.get(`x-proxy-error`)===`1`}async function y(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return b(n,t)}function b(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}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){_(n,e);return}let r=``;for(let t=0;t<e.length;t+=32768)r+=String.fromCharCode(...e.subarray(t,t+32768));g(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=p,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=d,R=f,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(v(t))throw Error(await y(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{v as a,d as c,x as i,u as l,q as n,y as o,w as r,f as s,S as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{r as t,t as n}from"./base64-DzRgusa4.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-Lx_FU5cP.js";function f(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 p(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 m(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return e}}function h(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}function g(e){return e.headers.get(`x-proxy-error`)===`1`}async function _(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return v(n,t)}function v(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}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=m,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=f,I=p,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(g(n))throw Error(await _(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{p as a,y as i,G as n,f as o,S as r,h as s,b as t};
|