sliccy 6.7.2 → 6.8.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/dist/node-server/_shared/tray-sync-protocol.d.ts +4 -0
- package/dist/node-server/_shared/tray-sync-protocol.d.ts.map +1 -1
- package/dist/node-server/_shared/tray-sync-protocol.js.map +1 -1
- package/dist/ui/assets/AdobeClean-Regular-CVsq5gF7.otf +0 -0
- package/dist/ui/assets/account-store-DUSlZEzF.js +43 -0
- package/dist/ui/assets/account-store-DhDTX9zd.js +101 -0
- package/dist/ui/assets/adobe-7V016zh-.js +2 -0
- package/dist/ui/assets/adobe-loXjnN_r.js +1 -0
- package/dist/ui/assets/{anthropic-messages-C8dDJE2X.js → anthropic-messages-BbI5c8JA.js} +2 -2
- package/dist/ui/assets/anthropic-messages-BqlIV27l.js +39 -0
- package/dist/ui/assets/{apps-BW3Oz1Y-.js → apps-CuM4GlQ9.js} +1 -1
- package/dist/ui/assets/azure-openai-1tfWxXow.js +1 -0
- package/dist/ui/assets/azure-openai-BlNyP04F.js +1 -0
- package/dist/ui/assets/azure-openai-responses-C1EEdmtw.js +1 -0
- package/dist/ui/assets/azure-openai-responses-DOqakjfa.js +1 -0
- package/dist/ui/assets/bedrock-camp-CHi38ceE.js +1 -0
- package/dist/ui/assets/bedrock-camp-CVX95quY.js +1 -0
- package/dist/ui/assets/cerebras-8oZMzEdi.js +1 -0
- package/dist/ui/assets/cerebras-pWMXfh08.js +1 -0
- package/dist/ui/assets/compat-BhgG-Qr-.js +2 -0
- package/dist/ui/assets/{connect-surface-D4yI8jZH.js → connect-surface-CfPtIx1L.js} +1 -1
- package/dist/ui/assets/{context-compaction-C3e7rcEG.js → context-compaction-gzCxn8vG.js} +1 -1
- package/dist/ui/assets/{event-stream-qbAZIAKV.js → diagnostics-DN_idNHx.js} +1 -1
- package/dist/ui/assets/{dip-BubHLPf_.js → dip-ByAv1QK8.js} +1 -1
- package/dist/ui/assets/error-body-CqsCxuQ4.js +1 -0
- package/dist/ui/assets/{fs-CVsqBODM.js → fs-B-xo85PC.js} +1 -1
- package/dist/ui/assets/fs-MKXdQd34.js +2 -0
- package/dist/ui/assets/github-BhUX6t5B.js +2 -0
- package/dist/ui/assets/{github-nhvWTo1J.js → github-Zr_a3MeC.js} +1 -1
- package/dist/ui/assets/github-copilot-C2boII4t.js +2 -0
- package/dist/ui/assets/github-copilot-CkiL57PB.js +1 -0
- package/dist/ui/assets/google-generative-ai-BjzUffX7.js +1 -0
- package/dist/ui/assets/google-generative-ai-CUyKfom8.js +1 -0
- package/dist/ui/assets/{google-shared-BAKd3aSn.js → google-shared-Bvf-cbUv.js} +1 -1
- package/dist/ui/assets/{google-shared-CCLlnqMF.js → google-shared-Dh_qL7z7.js} +1 -1
- package/dist/ui/assets/google-vertex-Bf_2YfBL.js +1 -0
- package/dist/ui/assets/google-vertex-Dc8m8x5E.js +1 -0
- package/dist/ui/assets/{kernel-worker-B67oBRUh.js → kernel-worker-nX203MeP.js} +645 -627
- package/dist/ui/assets/{legacy-api-aliases-BWm3gxUe.js → legacy-api-aliases-DrEKVikN.js} +1 -1
- package/dist/ui/assets/{legacy-api-aliases-YuuBU-he.js → legacy-api-aliases-MR6kosFL.js} +1 -1
- package/dist/ui/assets/{local-llm-9V2nT_qC.js → local-llm-CX7q6Yli.js} +1 -1
- package/dist/ui/assets/{local-llm-7ddT86qb.js → local-llm-D_j99cTQ.js} +1 -1
- package/dist/ui/assets/{main-BATAIZJP.js → main-DS0A6F7x.js} +3 -3
- package/dist/ui/assets/{mistral-conversations-CIMZoDT4.js → mistral-conversations-CkIx9cg4.js} +3 -3
- package/dist/ui/assets/{mistral-conversations-CKK59QJS.js → mistral-conversations-Ct4-30zw.js} +3 -3
- package/dist/ui/assets/models-DmWu8BeM.js +1 -0
- package/dist/ui/assets/{mount-CQwcMV_F.js → mount-DO4lhFtI.js} +1 -1
- package/dist/ui/assets/{mount-DLFFkSOw.js → mount-IJboS6Gs.js} +2 -2
- package/dist/ui/assets/{mount-recovery-D4LSB-KQ.js → mount-recovery-C8ZE4hoL.js} +1 -1
- package/dist/ui/assets/{new-session-FIXn2nko.js → new-session-CJBZ_8zu.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-CysuVxDa.js → oauth-bootstrap-CQEwwPvA.js} +2 -2
- package/dist/ui/assets/openai-codex-BpsUGh4U.js +1 -0
- package/dist/ui/assets/openai-codex-responses-BdgEOEuS.js +7 -0
- package/dist/ui/assets/openai-codex-responses-CLGX-aTS.js +7 -0
- package/dist/ui/assets/openai-codex-xMkqwST3.js +1 -0
- package/dist/ui/assets/openai-completions-BnbrI3UF.js +5 -0
- package/dist/ui/assets/openai-completions-DgBXkZQB.js +5 -0
- package/dist/ui/assets/openai-responses-BCmB_39F.js +1 -0
- package/dist/ui/assets/openai-responses-ltU_A4Wo.js +1 -0
- package/dist/ui/assets/{openai-responses-shared-IJFiSqdz.js → openai-responses-shared-BhTvPbKN.js} +4 -4
- package/dist/ui/assets/{openai-responses-shared-CiIL52L-.js → openai-responses-shared-ULQmXcCD.js} +4 -4
- package/dist/ui/assets/{openrouter-B7xDa-L5.js → openrouter-BPF_Du_N.js} +1 -1
- package/dist/ui/assets/{openrouter-D80siy_U.js → openrouter-QoFhCA5x.js} +1 -1
- package/dist/ui/assets/openrouter-images-1178rM_U.js +1 -0
- package/dist/ui/assets/openrouter-images-HP0r87fI.js +1 -0
- package/dist/ui/assets/{openrouter-models-Bu1Cy5AD.js → openrouter-models-DmontTTG.js} +1 -1
- package/dist/ui/assets/{openrouter-models-CfnkMx5-.js → openrouter-models-gCCUSdgw.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Bf47JNKK.js → openrouter-oauth-Da9o3C2F.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BFWWLqj4.js → openrouter-oauth-DqUqqCYO.js} +1 -1
- package/dist/ui/assets/openrouter.models-Byp0hyfF.js +1 -0
- package/dist/ui/assets/openrouter.models-C8HitxAG.js +1 -0
- package/dist/ui/assets/{panel-rpc-handlers-DAgL3NAS.js → panel-rpc-handlers-DKpka_10.js} +2 -2
- package/dist/ui/assets/pi-messages-BcCsdrH5.js +7 -0
- package/dist/ui/assets/pi-messages-CrwvmK0e.js +7 -0
- package/dist/ui/assets/{provider-L11hxHeS.js → provider-BA7z134_.js} +2 -2
- package/dist/ui/assets/{provider-BMlQ6-V6.js → provider-sepH36Nw.js} +1 -1
- package/dist/ui/assets/{provider-settings-B4rEHMW6.js → provider-settings-CRF2kKcK.js} +1 -1
- package/dist/ui/assets/{provider-settings-a1nHhD_8.js → provider-settings-D5WKqwpE.js} +1 -1
- package/dist/ui/assets/provider-store-access-B40OdlSt.js +2 -0
- package/dist/ui/assets/provider-store-access-bbQatTup.js +1 -0
- package/dist/ui/assets/providers-BzxrP4Hq.js +2 -0
- package/dist/ui/assets/{providers-CZB0cXRu.js → providers-C26ABraX.js} +1 -1
- package/dist/ui/assets/{quick-llm-DKk9pK8_.js → quick-llm-t2DQRu1Y.js} +1 -1
- package/dist/ui/assets/{redirect-uri-BqBUQdM5.js → redirect-uri-CR_ilbaG.js} +1 -1
- package/dist/ui/assets/{session-freezer-DqAxoGJ_.js → session-freezer-CUKxmO0P.js} +3 -3
- package/dist/ui/assets/{setup-feature-flags-remote-iZXxY35M.js → setup-feature-flags-remote-HN29QXlD.js} +1 -1
- package/dist/ui/assets/{setup-standalone-prelude-y8NGd_3h.js → setup-standalone-prelude-DdcmJUGt.js} +1 -1
- package/dist/ui/assets/setup-sudo-BFwfxRmv.js +2 -0
- package/dist/ui/assets/{skills-BcxxniVN.js → skills-Cujpe9Kq.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-DbCWJGba.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-oLgy--3J.js → sprinkle-renderer-DZ_7mdV4.js} +3 -3
- package/dist/ui/assets/{src-BTviaay1.js → src-CEt1Bu14.js} +190 -233
- package/dist/ui/assets/{store-DKBwY1LO.js → store-D6p4BCww.js} +1 -1
- package/dist/ui/assets/{sudo-B4W1O9pP.js → sudo-zNk3uG8n.js} +1 -1
- package/dist/ui/assets/{theme-C8b_iQ_9.js → theme-BOdTMzQ7.js} +1 -1
- package/dist/ui/assets/theme-engine-BMhxbTGC.js +3 -0
- package/dist/ui/assets/transform-messages-D27pVLZ-.js +1 -0
- package/dist/ui/assets/transform-messages-DgR3h-Ck.js +1 -0
- package/dist/ui/assets/{upgrade-detection-CNBV5I5-.js → upgrade-detection-64-kAIzr.js} +1 -1
- package/dist/ui/assets/{wc-attach-7hrcOh0v.js → wc-attach-Cq2ws1YL.js} +2 -2
- package/dist/ui/assets/{wc-extension-DnoMXsSf.js → wc-extension-CyL1zCEX.js} +2 -2
- package/dist/ui/assets/{wc-follower-CiEV5ftc.js → wc-follower-BpcrgNk2.js} +3 -3
- package/dist/ui/assets/wc-live-D7E7KhSJ.js +8 -0
- package/dist/ui/assets/{wc-nav-4l0__ItF.js → wc-nav-CJNNkXLC.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-BlB3EEKF.js → wc-onboarding-BmBe2z97.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-Dad2TVLF.js → wc-placeholder-5YpXlSbB.js} +2 -2
- package/dist/ui/assets/{wc-settings-Vbh_8eo_.js → wc-settings-bMvADJAg.js} +3 -3
- package/dist/ui/assets/{wc-shell-D-sgt0Jv.js → wc-shell-Z9bBLCqP.js} +4 -4
- package/dist/ui/assets/{wc-sprinkles-BT3nD0Fl.js → wc-sprinkles-CG91alBG.js} +2 -2
- package/dist/ui/assets/wc-tray-BtZWoIdJ.js +2 -0
- package/dist/ui/assets/wc-tray-scoops-DIT9CbNq.js +5 -0
- package/dist/ui/assets/xai-grok-Bkec2E69.js +1 -0
- package/dist/ui/assets/xai-grok-C5JWIQiB.js +1 -0
- package/dist/ui/index.html +13 -13
- package/dist/ui/packages/webapp/index.html +13 -13
- package/package.json +1 -1
- package/dist/ui/assets/account-store-CJEiowvN.js +0 -101
- package/dist/ui/assets/account-store-CysBUUQJ.js +0 -43
- package/dist/ui/assets/adobe-CNFykD03.js +0 -2
- package/dist/ui/assets/adobe-DVg3o99r.js +0 -1
- package/dist/ui/assets/anthropic-messages-BFic5zKY.js +0 -39
- package/dist/ui/assets/azure-openai-Cw8XjNk4.js +0 -1
- package/dist/ui/assets/azure-openai-jOz-FRxG.js +0 -1
- package/dist/ui/assets/azure-openai-responses-B_twhN44.js +0 -1
- package/dist/ui/assets/azure-openai-responses-CzG7X9qb.js +0 -1
- package/dist/ui/assets/bedrock-camp-CJY4i7di.js +0 -1
- package/dist/ui/assets/bedrock-camp-DS0ilb3O.js +0 -1
- package/dist/ui/assets/cerebras-7j_cJCUH.js +0 -1
- package/dist/ui/assets/cerebras-CARI-C52.js +0 -1
- package/dist/ui/assets/compat-CkpNnFQS.js +0 -2
- package/dist/ui/assets/diagnostics-BsVbaNHR.js +0 -1
- package/dist/ui/assets/error-body-C0EnfbdK.js +0 -1
- package/dist/ui/assets/fs-DL8cK1hj.js +0 -2
- package/dist/ui/assets/github--kukodlK.js +0 -2
- package/dist/ui/assets/github-copilot-DlmAfv3i.js +0 -1
- package/dist/ui/assets/github-copilot-KQLyygnx.js +0 -2
- package/dist/ui/assets/google-generative-ai-4YtIu_sJ.js +0 -1
- package/dist/ui/assets/google-generative-ai-DzD1vsXe.js +0 -1
- package/dist/ui/assets/google-vertex-8lUayXF0.js +0 -1
- package/dist/ui/assets/google-vertex-oQOD3HKr.js +0 -1
- package/dist/ui/assets/models-Bnh9VDA1.js +0 -1
- package/dist/ui/assets/openai-codex-DSWCeXF8.js +0 -1
- package/dist/ui/assets/openai-codex-L0P-RVew.js +0 -1
- package/dist/ui/assets/openai-codex-responses-DRR6raXn.js +0 -7
- package/dist/ui/assets/openai-codex-responses-DU5CHdDQ.js +0 -7
- package/dist/ui/assets/openai-completions-B9S6450Q.js +0 -5
- package/dist/ui/assets/openai-completions-DhKgaAgM.js +0 -5
- package/dist/ui/assets/openai-responses-C4_jiYtu.js +0 -1
- package/dist/ui/assets/openai-responses-DmKhLxzV.js +0 -1
- package/dist/ui/assets/openrouter-images-6_MxZkJZ.js +0 -1
- package/dist/ui/assets/openrouter-images-BixC5B6a.js +0 -1
- package/dist/ui/assets/openrouter.models-DS1_VkCm.js +0 -1
- package/dist/ui/assets/openrouter.models-HnnH-abS.js +0 -1
- package/dist/ui/assets/pi-messages-DRdk3sMN.js +0 -7
- package/dist/ui/assets/pi-messages-fKU_b1SK.js +0 -7
- package/dist/ui/assets/provider-store-access-C0EyiLUq.js +0 -1
- package/dist/ui/assets/provider-store-access-CAWGqbUW.js +0 -2
- package/dist/ui/assets/providers-CLGnrQ6p.js +0 -2
- package/dist/ui/assets/setup-sudo-vqSc8pzk.js +0 -2
- package/dist/ui/assets/sprinkle-manager-HaNmX2ye.js +0 -1
- package/dist/ui/assets/theme-engine-jfuTMXZM.js +0 -3
- package/dist/ui/assets/transform-messages-Bp94o3FD.js +0 -1
- package/dist/ui/assets/transform-messages-wECJwtH0.js +0 -1
- package/dist/ui/assets/wc-floatbar-online-B6FIfDc-.js +0 -5
- package/dist/ui/assets/wc-live-B1Iu67p2.js +0 -8
- package/dist/ui/assets/wc-tray-BaxW8xKP.js +0 -2
- package/dist/ui/assets/xai-grok-BjDy3qLc.js +0 -1
- package/dist/ui/assets/xai-grok-C-SdAKKH.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-CUeSRcdV.js","assets/rolldown-runtime-aKtaBQYM.js","assets/port-bridge-client-B64OCgRQ.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/mount-bridge-client-CKo6gJ0u.js","assets/types-idfTVsM8.js","assets/panel-responder-BKgfV-nl.js","assets/speak-CIzzz0pF.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-3dg4iXrc.js","assets/shared-BYVJAPbn.js","assets/mime-types-ugOWOUZ9.js","assets/hear-DvsWQaq8.js","assets/wc-permissions-registry-Blyunq37.js","assets/whisper-session-D-oegf5G.js","assets/providers-
|
|
2
|
-
import{H as e,p as t}from"./account-store-CysBUUQJ.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{o as r,t as i}from"./proxied-fetch-A48etSCh.js";import"./provider-settings-B4rEHMW6.js";import{n as a,r as o}from"./hid-device-registry-DboUgvzI.js";import{a as s,i as c}from"./serial-port-registry-DsPZvGpT.js";import{A as l,C as u,D as d,E as ee,O as te,S as ne,T as re,_ as ie,a as ae,b as oe,c as se,d as ce,f as le,g as ue,h as f,i as p,j as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as O}from"./usb-operations-BQbhk96u.js";import{i as k,r as A}from"./usb-device-registry-BOGfZXgp.js";function j(e={}){let t=new Map;return{...de(),...I(e),...L(),...R(e),...z(),...B(e,t),...V(),...H(e),...fe(e),...pe(e),...F(),...P(),...M(),...N(),...xe()}}function M(){return{"secrets-bridge":async({type:e,payload:t})=>{let{callSecretsBridge:r}=await n(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-CUeSRcdV.js`).then(e=>e.n);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(e,t)}}}}function N(){return{"mount-sign-and-forward":async({type:e,envelope:t})=>{let{callMountBridge:r}=await n(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CKo6gJ0u.js`).then(e=>e.n);return{callMountBridge:e}},__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]));return{response:await r(e,t)}}}}function P(){return{"sudo-request":async({request:e})=>{let{resolveSudoRequest:t}=await n(async()=>{let{resolveSudoRequest:e}=await import(`./panel-responder-BKgfV-nl.js`);return{resolveSudoRequest:e}},__vite__mapDeps([12,4]));return{decision:t(e)}}}}function F(){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-A48etSCh.js`).then(e=>e.a);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 de(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await ve(e,t),r=await n.arrayBuffer(),i=await ye(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-CIzzz0pF.js`);return{speak:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));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-CIzzz0pF.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17])),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-CIzzz0pF.js`);return{kokoroStatus:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));return e()},"speak-warmup":async()=>{let{kokoroWarmup:e}=await n(async()=>{let{kokoroWarmup:e}=await import(`./speak-CIzzz0pF.js`);return{kokoroWarmup:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));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-CIzzz0pF.js`);return{synthesizeToWav:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17])),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 I(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 be(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})=>({redirectUrl:await X(t,e.getPermissionsSurface)}),"capture-camera":async e=>await he(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 L(){return{"hear-capture":async e=>{let{hearCapture:t}=await n(async()=>{let{hearCapture:e}=await import(`./hear-DvsWQaq8.js`);return{hearCapture:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return await t(e??{})},"hear-transcribe":async({bytes:e,lang:t})=>{let{hearTranscribe:r}=await n(async()=>{let{hearTranscribe:e}=await import(`./hear-DvsWQaq8.js`);return{hearTranscribe:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return await r(e,t)},"hear-status":async()=>{let{hearStatus:e}=await n(async()=>{let{hearStatus:e}=await import(`./hear-DvsWQaq8.js`);return{hearStatus:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return e()},"hear-warmup":async()=>{let{hearWarmup:e}=await n(async()=>{let{hearWarmup:e}=await import(`./hear-DvsWQaq8.js`);return{hearWarmup:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return e()}}}function R(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-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-CLGnrQ6p.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([21,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 z(){return{"usb-list":async()=>({devices:await y(U(),W())}),"usb-request":async({filters:e})=>({device:await g(U(),W(),e)}),"usb-device-info":({handle:e})=>({device:ae(U(),e)}),"usb-open":async({handle:e})=>(await S(U(),e),{done:!0}),"usb-close":async({handle:e})=>(await v(U(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await ce(U(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await C(U(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await se(U(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>x(U(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>p(U(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>le(U(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>b(U(),e,t,n),"usb-reset":async({handle:e})=>(await w(U(),e),{done:!0})}}function B(e,t){return{"hid-list":async()=>({devices:await ue(G(),K())}),"hid-request":async({filters:e})=>({devices:await O(G(),K(),e)}),"hid-device-info":({handle:e})=>({device:f(G(),e)}),"hid-open":async({handle:e})=>(await ie(G(),e),{done:!0}),"hid-close":async({handle:e})=>(await _(G(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(G(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await oe(G(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>T(G(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await ne(G(),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 V(){return{"serial-list":async()=>({devices:await ee(q(),J())}),"serial-request":async({filters:e})=>({device:await h(q(),J(),e)}),"serial-device-info":({handle:e})=>({device:E(q(),e)}),"serial-open":async({handle:e,options:t})=>(await d(q(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(q(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(q(),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 m(q(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(q(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(q(),e,t),{done:!0})}}function H(e){return{"esptool-chip-info":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolChipInfo(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-read-mac":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadMac(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolEraseFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadReg(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolFlashId(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolEraseRegion(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolRun(q(),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){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});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=U().register(e.device);a.push({kind:`usb`,handle:t});break}case`hid`:{let t=G().register(e.device);a.push({kind:`hid`,handle:t});break}case`serial`:{let t=q().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-Bs1o43Z5.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([25,1,4,26,8])),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});break}return{grants:a}}}}function U(){return k()}function W(){let e=A();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function G(){return o()}function K(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function q(){return s()}function J(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var me=1500;async function he(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 ge({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(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??me;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 Y(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 ge(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 X(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 _e(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 _e(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 ve(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 ye(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 be(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=5*6e4){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 xe(){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-jfuTMXZM.js`).then(e=>e.p);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([27,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}}}}export{j as createStandalonePanelRpcHandlers};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-CUeSRcdV.js","assets/rolldown-runtime-aKtaBQYM.js","assets/port-bridge-client-B64OCgRQ.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/mount-bridge-client-CKo6gJ0u.js","assets/types-idfTVsM8.js","assets/panel-responder-BKgfV-nl.js","assets/speak-CIzzz0pF.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-3dg4iXrc.js","assets/shared-BYVJAPbn.js","assets/mime-types-ugOWOUZ9.js","assets/hear-DvsWQaq8.js","assets/wc-permissions-registry-Blyunq37.js","assets/whisper-session-D-oegf5G.js","assets/providers-BzxrP4Hq.js","assets/esptool-operations-iCYPdIRA.js","assets/esp8266-CkAPDkuz.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup-Bs1o43Z5.js","assets/picker-popup-BvzmBsGL.js","assets/theme-engine-BMhxbTGC.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{H as e,p as t}from"./account-store-DUSlZEzF.js";import{t as n}from"./preload-helper-Czpn1I53.js";import{o as r,t as i}from"./proxied-fetch-A48etSCh.js";import"./provider-settings-CRF2kKcK.js";import{n as a,r as o}from"./hid-device-registry-DboUgvzI.js";import{a as s,i as c}from"./serial-port-registry-DsPZvGpT.js";import{A as l,C as u,D as d,E as ee,O as te,S as ne,T as re,_ as ie,a as ae,b as oe,c as se,d as ce,f as le,g as ue,h as f,i as p,j as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as O}from"./usb-operations-BQbhk96u.js";import{i as k,r as A}from"./usb-device-registry-BOGfZXgp.js";function j(e={}){let t=new Map;return{...de(),...I(e),...L(),...R(e),...z(),...B(e,t),...V(),...H(e),...fe(e),...pe(e),...F(),...P(),...M(),...N(),...xe()}}function M(){return{"secrets-bridge":async({type:e,payload:t})=>{let{callSecretsBridge:r}=await n(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-CUeSRcdV.js`).then(e=>e.n);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return{response:await r(e,t)}}}}function N(){return{"mount-sign-and-forward":async({type:e,envelope:t})=>{let{callMountBridge:r}=await n(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-CKo6gJ0u.js`).then(e=>e.n);return{callMountBridge:e}},__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]));return{response:await r(e,t)}}}}function P(){return{"sudo-request":async({request:e})=>{let{resolveSudoRequest:t}=await n(async()=>{let{resolveSudoRequest:e}=await import(`./panel-responder-BKgfV-nl.js`);return{resolveSudoRequest:e}},__vite__mapDeps([12,4]));return{decision:t(e)}}}}function F(){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-A48etSCh.js`).then(e=>e.a);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 de(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await ve(e,t),r=await n.arrayBuffer(),i=await ye(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-CIzzz0pF.js`);return{speak:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));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-CIzzz0pF.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17])),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-CIzzz0pF.js`);return{kokoroStatus:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));return e()},"speak-warmup":async()=>{let{kokoroWarmup:e}=await n(async()=>{let{kokoroWarmup:e}=await import(`./speak-CIzzz0pF.js`);return{kokoroWarmup:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17]));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-CIzzz0pF.js`);return{synthesizeToWav:e}},__vite__mapDeps([13,3,4,8,14,15,5,1,6,7,9,16,17])),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 I(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 be(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})=>({redirectUrl:await X(t,e.getPermissionsSurface)}),"capture-camera":async e=>await he(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 L(){return{"hear-capture":async e=>{let{hearCapture:t}=await n(async()=>{let{hearCapture:e}=await import(`./hear-DvsWQaq8.js`);return{hearCapture:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return await t(e??{})},"hear-transcribe":async({bytes:e,lang:t})=>{let{hearTranscribe:r}=await n(async()=>{let{hearTranscribe:e}=await import(`./hear-DvsWQaq8.js`);return{hearTranscribe:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return await r(e,t)},"hear-status":async()=>{let{hearStatus:e}=await n(async()=>{let{hearStatus:e}=await import(`./hear-DvsWQaq8.js`);return{hearStatus:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return e()},"hear-warmup":async()=>{let{hearWarmup:e}=await n(async()=>{let{hearWarmup:e}=await import(`./hear-DvsWQaq8.js`);return{hearWarmup:e}},__vite__mapDeps([18,4,19,1,20,3,15,5,6,7,8,9,16,17]));return e()}}}function R(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-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-BzxrP4Hq.js`).then(e=>e.r);return{getRegisteredProviderConfig:e}},__vite__mapDeps([21,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 z(){return{"usb-list":async()=>({devices:await y(U(),W())}),"usb-request":async({filters:e})=>({device:await g(U(),W(),e)}),"usb-device-info":({handle:e})=>({device:ae(U(),e)}),"usb-open":async({handle:e})=>(await S(U(),e),{done:!0}),"usb-close":async({handle:e})=>(await v(U(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await ce(U(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await C(U(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await se(U(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>x(U(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>p(U(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>le(U(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>b(U(),e,t,n),"usb-reset":async({handle:e})=>(await w(U(),e),{done:!0})}}function B(e,t){return{"hid-list":async()=>({devices:await ue(G(),K())}),"hid-request":async({filters:e})=>({devices:await O(G(),K(),e)}),"hid-device-info":({handle:e})=>({device:f(G(),e)}),"hid-open":async({handle:e})=>(await ie(G(),e),{done:!0}),"hid-close":async({handle:e})=>(await _(G(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(G(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await oe(G(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>T(G(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await ne(G(),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 V(){return{"serial-list":async()=>({devices:await ee(q(),J())}),"serial-request":async({filters:e})=>({device:await h(q(),J(),e)}),"serial-device-info":({handle:e})=>({device:E(q(),e)}),"serial-open":async({handle:e,options:t})=>(await d(q(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(q(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(q(),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 m(q(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(q(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(q(),e,t),{done:!0})}}function H(e){return{"esptool-chip-info":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolChipInfo(q(),t,r,n=>e.emitEvent?.(`esptool-progress`,{handle:t,line:n})),"esptool-read-mac":async({handle:t,baudRate:r})=>(await n(()=>import(`./esptool-operations-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadMac(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolEraseFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadFlash(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolReadReg(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolFlashId(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolEraseRegion(q(),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-iCYPdIRA.js`),__vite__mapDeps([22,1,3,23,24]))).esptoolRun(q(),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){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});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=U().register(e.device);a.push({kind:`usb`,handle:t});break}case`hid`:{let t=G().register(e.device);a.push({kind:`hid`,handle:t});break}case`serial`:{let t=q().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-Bs1o43Z5.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([25,1,4,26,8])),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});break}return{grants:a}}}}function U(){return k()}function W(){let e=A();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function G(){return o()}function K(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function q(){return s()}function J(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var me=1500;async function he(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 ge({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(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??me;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 Y(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 ge(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 X(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 _e(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 _e(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 ve(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 ye(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 be(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=5*6e4){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 xe(){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-BMhxbTGC.js`).then(e=>e.p);return{importTheme:e,saveCustomTheme:t,setActiveTheme:n,clearActiveTheme:r,applyThemeOverrides:i}},__vite__mapDeps([27,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}}}}export{j as createStandalonePanelRpcHandlers};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{i as e,n as t,t as n}from"./diagnostics-DN_idNHx.js";import{n as r}from"./json-parse-rb7sUwcH.js";import{t as i}from"./provider-env-D37PhSJu.js";import{n as a,t as o}from"./headers-CbDaTl3c.js";var s=class extends Error{code;diagnosticDetails;constructor(e,t,n){super(e),this.name=`PiMessagesResponseError`,this.code=t,this.diagnosticDetails=n}};function c(e){try{let t=JSON.parse(e),n=t?.error;return t&&typeof n==`object`&&n&&!Array.isArray(n)?t:void 0}catch{return}}function l(e){let t=8192;return e.length>t?`${e.slice(0,t)}…`:e}function u(e,t,n){let r=typeof n?.error?.message==`string`?n.error.message:void 0,i=typeof n?.error?.code==`string`?n.error.code:void 0,a=r??t,o=i?` (${i})`:``;return`${e.status} ${e.statusText}: ${a}${o}`}function d(e,t,n,r){let i=c(r),a=typeof i?.error?.code==`string`?i.error.code:void 0;return new s(u(n,r,i),a,{version:1,provider:e.provider,model:e.id,url:t.toString(),status:n.status,statusText:n.statusText,error:i?.error,body:i?void 0:l(r),timestampMs:Date.now()})}function f(){return{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}function p(e,t){t&&n(e,{type:`pi_messages_rewrite`,timestamp:Date.now(),details:{...t}})}function m(e){let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:`pending`,timestamp:Date.now()},n=new Map;return e=>{switch(e.type){case`done`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,responseId:e.responseId}),p(t,e.rewrite),{type:`done`,reason:e.reason,message:t};case`error`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,errorMessage:e.errorMessage,responseId:e.responseId}),p(t,e.rewrite),{type:`error`,reason:e.reason,error:t};case`start`:break;case`text_start`:t.content[e.contentIndex]={type:`text`,text:``};break;case`text_delta`:t.content[e.contentIndex].text+=e.delta;break;case`text_end`:Object.assign(t.content[e.contentIndex],{text:e.content,textSignature:e.contentSignature});break;case`thinking_start`:t.content[e.contentIndex]={type:`thinking`,thinking:``};break;case`thinking_delta`:t.content[e.contentIndex].thinking+=e.delta;break;case`thinking_end`:Object.assign(t.content[e.contentIndex],{thinking:e.content,thinkingSignature:e.contentSignature,redacted:e.redacted});break;case`toolcall_start`:t.content[e.contentIndex]={type:`toolCall`,id:e.id,name:e.toolName,arguments:{}},n.set(e.contentIndex,``);break;case`toolcall_delta`:{let i=`${n.get(e.contentIndex)??``}${e.delta}`;n.set(e.contentIndex,i),t.content[e.contentIndex].arguments=r(i);break}case`toolcall_end`:return Object.assign(t.content[e.contentIndex],e.toolCall),n.delete(e.contentIndex),{type:`toolcall_end`,contentIndex:e.contentIndex,toolCall:t.content[e.contentIndex],partial:t}}return{...e,partial:t}}}async function*h(e){let t=new TextDecoder,n=e.getReader(),r=``;try{for(;;){let{done:e,value:i}=await n.read();r+=e?t.decode():t.decode(i,{stream:!0}),r=r.replace(/\r\n/g,`
|
|
2
|
+
`);let a=r.indexOf(`
|
|
3
|
+
|
|
4
|
+
`);for(;a!==-1;){let e=g(r.slice(0,a));e&&(yield e),r=r.slice(a+2),a=r.indexOf(`
|
|
5
|
+
|
|
6
|
+
`)}if(e)break}if(r.trim()){let e=g(r);e&&(yield e)}}finally{n.releaseLock()}}function g(e){let t=e.split(`
|
|
7
|
+
`).find(e=>e.startsWith(`data:`))?.slice(5).trim();return t&&t!==`[DONE]`?JSON.parse(t):void 0}function _(e,r,i){let a=i?`aborted`:`error`,o={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:a,errorMessage:r instanceof Error?r.message:String(r),timestamp:Date.now()};return!i&&r instanceof s&&n(o,t(`pi_messages_response_failure`,r,r.diagnosticDetails)),{type:`error`,reason:a,error:o}}function v(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:void 0)}var y=(t,n,r)=>{let i=new e,s=m(t);return(async()=>{try{let e=r?.apiKey;if(!e)throw Error(`No API key provided for provider "${t.provider}"`);let c=new URL(`${t.baseUrl.replace(/\/+$/u,``)}/messages`);r?.debug&&c.searchParams.set(`debug`,`1`);let l={model:t.id,context:n,options:{temperature:r?.temperature,maxTokens:r?.maxTokens,reasoning:r?.reasoning,cacheRetention:v(r?.cacheRetention,r?.env),sessionId:r?.sessionId,toolChoice:r?.toolChoice}},u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let f=await(r?.fetch??globalThis.fetch)(c,{method:`POST`,headers:{authorization:`Bearer ${e}`,accept:`text/event-stream`,"content-type":`application/json`,...a(r?.headers)},body:JSON.stringify(l),signal:r?.signal});if(await r?.onResponse?.({status:f.status,headers:o(f.headers)},t),!f.ok)throw d(t,c,f,await f.text());if(!f.body)throw Error(`${t.provider} response has no body`);for await(let e of h(f.body)){let t=s(e);if(i.push(t),t.type===`done`||t.type===`error`)return}throw Error(`${t.provider} stream ended without a terminal event`)}catch(e){i.push(_(t,e,r?.signal?.aborted??!1))}})(),i},b=(e,t,n)=>{let r=n;return y(e,t,{...n,reasoning:n?.reasoning,toolChoice:r?.toolChoice,debug:r?.debug})};export{s as PiMessagesResponseError,y as stream,b as streamSimple};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{i as e,n as t,t as n}from"./diagnostics-DN_idNHx.js";import{n as r}from"./json-parse-CpLf0aqK.js";import{t as i}from"./provider-env-DwY8YuMk.js";import{n as a,t as o}from"./headers-CbDaTl3c.js";var s=class extends Error{code;diagnosticDetails;constructor(e,t,n){super(e),this.name=`PiMessagesResponseError`,this.code=t,this.diagnosticDetails=n}};function c(e){try{let t=JSON.parse(e),n=t?.error;return t&&typeof n==`object`&&n&&!Array.isArray(n)?t:void 0}catch{return}}function l(e){let t=8192;return e.length>t?`${e.slice(0,t)}…`:e}function u(e,t,n){let r=typeof n?.error?.message==`string`?n.error.message:void 0,i=typeof n?.error?.code==`string`?n.error.code:void 0,a=r??t,o=i?` (${i})`:``;return`${e.status} ${e.statusText}: ${a}${o}`}function d(e,t,n,r){let i=c(r),a=typeof i?.error?.code==`string`?i.error.code:void 0;return new s(u(n,r,i),a,{version:1,provider:e.provider,model:e.id,url:t.toString(),status:n.status,statusText:n.statusText,error:i?.error,body:i?void 0:l(r),timestampMs:Date.now()})}function f(){return{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}function p(e,t){t&&n(e,{type:`pi_messages_rewrite`,timestamp:Date.now(),details:{...t}})}function m(e){let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:`pending`,timestamp:Date.now()},n=new Map;return e=>{switch(e.type){case`done`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,responseId:e.responseId}),p(t,e.rewrite),{type:`done`,reason:e.reason,message:t};case`error`:return Object.assign(t,{stopReason:e.reason,usage:e.usage,errorMessage:e.errorMessage,responseId:e.responseId}),p(t,e.rewrite),{type:`error`,reason:e.reason,error:t};case`start`:break;case`text_start`:t.content[e.contentIndex]={type:`text`,text:``};break;case`text_delta`:t.content[e.contentIndex].text+=e.delta;break;case`text_end`:Object.assign(t.content[e.contentIndex],{text:e.content,textSignature:e.contentSignature});break;case`thinking_start`:t.content[e.contentIndex]={type:`thinking`,thinking:``};break;case`thinking_delta`:t.content[e.contentIndex].thinking+=e.delta;break;case`thinking_end`:Object.assign(t.content[e.contentIndex],{thinking:e.content,thinkingSignature:e.contentSignature,redacted:e.redacted});break;case`toolcall_start`:t.content[e.contentIndex]={type:`toolCall`,id:e.id,name:e.toolName,arguments:{}},n.set(e.contentIndex,``);break;case`toolcall_delta`:{let i=`${n.get(e.contentIndex)??``}${e.delta}`;n.set(e.contentIndex,i),t.content[e.contentIndex].arguments=r(i);break}case`toolcall_end`:return Object.assign(t.content[e.contentIndex],e.toolCall),n.delete(e.contentIndex),{type:`toolcall_end`,contentIndex:e.contentIndex,toolCall:t.content[e.contentIndex],partial:t}}return{...e,partial:t}}}async function*h(e){let t=new TextDecoder,n=e.getReader(),r=``;try{for(;;){let{done:e,value:i}=await n.read();r+=e?t.decode():t.decode(i,{stream:!0}),r=r.replace(/\r\n/g,`
|
|
2
|
+
`);let a=r.indexOf(`
|
|
3
|
+
|
|
4
|
+
`);for(;a!==-1;){let e=g(r.slice(0,a));e&&(yield e),r=r.slice(a+2),a=r.indexOf(`
|
|
5
|
+
|
|
6
|
+
`)}if(e)break}if(r.trim()){let e=g(r);e&&(yield e)}}finally{n.releaseLock()}}function g(e){let t=e.split(`
|
|
7
|
+
`).find(e=>e.startsWith(`data:`))?.slice(5).trim();return t&&t!==`[DONE]`?JSON.parse(t):void 0}function _(e,r,i){let a=i?`aborted`:`error`,o={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:f(),stopReason:a,errorMessage:r instanceof Error?r.message:String(r),timestamp:Date.now()};return!i&&r instanceof s&&n(o,t(`pi_messages_response_failure`,r,r.diagnosticDetails)),{type:`error`,reason:a,error:o}}function v(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:void 0)}const y=(t,n,r)=>{let i=new e,s=m(t);return(async()=>{try{let e=r?.apiKey;if(!e)throw Error(`No API key provided for provider "${t.provider}"`);let c=new URL(`${t.baseUrl.replace(/\/+$/u,``)}/messages`);r?.debug&&c.searchParams.set(`debug`,`1`);let l={model:t.id,context:n,options:{temperature:r?.temperature,maxTokens:r?.maxTokens,reasoning:r?.reasoning,cacheRetention:v(r?.cacheRetention,r?.env),sessionId:r?.sessionId,toolChoice:r?.toolChoice}},u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let f=await(r?.fetch??globalThis.fetch)(c,{method:`POST`,headers:{authorization:`Bearer ${e}`,accept:`text/event-stream`,"content-type":`application/json`,...a(r?.headers)},body:JSON.stringify(l),signal:r?.signal});if(await r?.onResponse?.({status:f.status,headers:o(f.headers)},t),!f.ok)throw d(t,c,f,await f.text());if(!f.body)throw Error(`${t.provider} response has no body`);for await(let e of h(f.body)){let t=s(e);if(i.push(t),t.type===`done`||t.type===`error`)return}throw Error(`${t.provider} stream ended without a terminal event`)}catch(e){i.push(_(t,e,r?.signal?.aborted??!1))}})(),i},b=(e,t,n)=>{let r=n;return y(e,t,{...n,reasoning:n?.reasoning,toolChoice:r?.toolChoice,debug:r?.debug})};export{s as PiMessagesResponseError,y as stream,b as streamSimple};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/oauth-service-D0NOHMOb.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js","assets/provider-store-access-
|
|
2
|
-
import{S as e,d as t,z as n}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/oauth-service-D0NOHMOb.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js","assets/provider-store-access-B40OdlSt.js","assets/logger-DDBAeTLF.js","assets/global-db-CbuLl-zx.js","assets/types-idfTVsM8.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{S as e,d as t,z as n}from"./account-store-DUSlZEzF.js";import{t as r}from"./preload-helper-Czpn1I53.js";import{t as i}from"./logger-DDBAeTLF.js";import{t as a}from"./secret-topology-CKyE_tTD.js";import{i as o}from"./providers-BzxrP4Hq.js";import{n as s,r as c,t as l}from"./pkce-hGf_TEnP.js";import"./provider-store-access-B40OdlSt.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(){let e=a();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-A48etSCh.js`).then(e=>e.a);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-D0NOHMOb.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-A48etSCh.js`).then(e=>e.a);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),a=(()=>{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:a?[a]:[],getModelIds:()=>[],onOAuthLogin:async(e,t)=>{let a=r.launcher??e,o=await O(r.fetchImpl),s=await g({asMetadata:await k(r),clientId:r.auth.clientId,scope:r.auth.scope,redirectUri:r.auth.redirectUri??await x(),launcher:a,fetchImpl:o});await n({providerId:i,accessToken:s.accessToken,refreshToken:s.refreshToken,tokenExpiresAt:s.expiresAt,scopes:s.scope}),t()},onSilentRenew:async()=>{if(!e(i))return null;let a=t().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 e=await k(r),t=e.grantTypes??[];if(t.length>0&&!t.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:e.tokenEndpoint,clientId:r.auth.clientId,refreshToken:o,scope:r.auth.scope,fetchImpl:s});return await n({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);D.has(t)||(o(A(e)),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-B40OdlSt.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-C26ABraX.js";import{S as i,d as a,z as o}from"./account-store-DhDTX9zd.js";import{t as s}from"./redirect-uri-CR_ilbaG.js";import{discoverAuth as c,refreshAccessToken as l,runAuthFlow as u}from"./oauth-DR6XMm1M.js";import{n as d}from"./store-D6p4BCww.js";import"./provider-store-access-bbQatTup.js";const f=e(`mcp-provider`);function p(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function m(e){return`mcp:${e}`}const h=new Map,g=new Set;async function _(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-GabK83LB.js`).then(e=>e.o),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 v(e){let t=h.get(m(e.name));if(t)return t;let n=await _(e.fetchImpl),r=await c(e.serverUrl,void 0,n);return h.set(m(e.name),r),r}function y(e){let t=m(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,a=await _(e.fetchImpl),c=await u({asMetadata:await v(e),clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await s(),launcher:i,fetchImpl:a});await o({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),r()},onSilentRenew:async()=>{if(!i(t))return null;let n=a().find(e=>e.providerId===t),r=n?.refreshToken;if(!r)return f.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let i=await v(e),a=i.grantTypes??[];if(a.length>0&&!a.includes(`refresh_token`))return f.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await _(e.fetchImpl),c=await l({tokenEndpoint:i.tokenEndpoint,clientId:e.auth.clientId,refreshToken:r,scope:e.auth.scope,fetchImpl:s});return await o({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??r,tokenExpiresAt:c.expiresAt,scopes:c.scope??n.scopes}),c.accessToken}catch(e){return f.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function b(e){let n=m(e.name);g.has(n)||(t(y(e)),g.add(n),f.debug(`Registered MCP provider`,{id:n}))}async function x(e,t={}){let n=m(e);if(g.has(n)&&r(n))return!0;if(!p())return!1;let i=await d(e);return i?(b({name:e,serverUrl:i.serverUrl,auth:i.auth,...t}),!0):!1}async function S(){if(!p())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-bbQatTup.js`),t=await e(),n=[];for(let e of t)b({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(m(e.name));return n}function C(e){let t=m(e);return g.delete(t),h.delete(t),n(t)}export{S as ensureAllMcpProvidersRegistered,x as ensureMcpProviderRegistered,b as registerMcpProvider,C as removeMcpProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-D0NOHMOb.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DmJSNs0I.js","assets/wc-permissions-registry-Blyunq37.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.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,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as ee,d as w,f as T,g as te,h as ne,i as E,j as re,k as D,l as ie,m as ae,n as oe,o as se,p as ce,s as le,t as ue,u as O,v as de,w as fe,x as pe,y as k,z as me}from"./account-store-CysBUUQJ.js";import{t as A}from"./preload-helper-Czpn1I53.js";import{t as he}from"./logger-DDBAeTLF.js";import{l as ge}from"./src-BStYtmHq.js";import{c as _e,f as j}from"./tray-runtime-config-DRqOLcXQ.js";import{n as ve}from"./tray-follower-status-5SqDRLX8.js";import{n as M}from"./clipboard-DuHpK59o.js";import{o as N}from"./telemetry-DqIqVG5n.js";import{n as P}from"./tray-join-url-BIvzbiFR.js";var F=e({ACCOUNTS_KEY:()=>ue,__test__:()=>oe,addAccount:()=>E,applyProviderDefaults:()=>S,clearAllSettings:()=>se,clearApiKey:()=>le,clearBaseUrl:()=>ee,clearSelectedProvider:()=>ie,describeInvalidJoinUrl:()=>P,downloadProviders:()=>R,exportProviders:()=>O,getAccounts:()=>w,getAllAvailableModels:()=>T,getAllExtraOAuthDomains:()=>ce,getApiKey:()=>ae,getApiKeyForProvider:()=>ne,getApiVersionForProvider:()=>te,getAvailableProviders:()=>x,getBaseUrl:()=>de,getBaseUrlForProvider:()=>k,getDeploymentForProvider:()=>C,getExtraOAuthDomains:()=>pe,getOAuthAccountInfo:()=>g,getProviderConfig:()=>r,getProviderModels:()=>fe,getRawApiKeyForProvider:()=>_,getSelectedModelId:()=>a,getSelectedProvider:()=>i,isModelHiddenFromPicker:()=>p,logoutOAuthAccount:()=>D,maskOAuthTokenWithRetry:()=>t,migrateLegacyAuthOnlySelection:()=>re,persistOAuthMaskViaServiceWorker:()=>d,providerOffersLlmModels:()=>f,reloginOAuthAccount:()=>G,removeAccount:()=>m,resolveCurrentModel:()=>o,resolveModelById:()=>l,resolveModelByShorthand:()=>u,resolveModelIdForScoop:()=>h,saveOAuthAccount:()=>me,setApiKey:()=>n,setBaseUrl:()=>y,setExtraOAuthDomains:()=>c,setExtraOAuthDomainsAsync:()=>v,setSelectedModelId:()=>b,setSelectedProvider:()=>s,showProviderSettings:()=>$,testOnlyDispatchTrayJoinWithFailureFeedback:()=>ye}),I=he(`provider-settings`);function ye(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 be(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 xe(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)`):e.userName?t.textContent=e.userName:e.accessToken?t.textContent=`Logged in`:t.textContent=be(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-D0NOHMOb.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 Se(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 Ce(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 we(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 m(t.providerId),K(e)})()}),n}function Te(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(xe(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(Se(e,t)),n.isOAuth&&s.appendChild(Ce(e,t,n)),s.appendChild(we(e,t)),i.appendChild(s),i}function Ee(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=ve(),a=i.state!==`inactive`,o=_e(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(Te(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(Ee(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 De(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)),o=[...x()].sort((e,t)=>r(e).name.localeCompare(r(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!f(t))continue;let i=document.createElement(`option`);i.value=t,i.textContent=r(t).name,n.appendChild(i)}return n}function Oe(e,t){let n=De(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 ke(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 Ae(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}=ke(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 M(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 je(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-D0NOHMOb.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:Ae(t.oauth)})}else if(i.onOAuthLogin){let{createOAuthLauncher:t}=await A(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-D0NOHMOb.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 m(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 Me(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 Ne(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 q(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,Me(e,n),Ne(e,n),q(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 Pe(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=Oe(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{je(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),Pe(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 Fe(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=j(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 Ie(){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(Ie());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=`${ge}/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=j(window.localStorage,t);if(!n){o.textContent=P(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?Fe(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):X(i),n.appendChild(r),document.body.appendChild(n)})}export{$ as n,F as t};
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.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,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as ee,d as w,f as T,g as te,h as ne,i as E,j as re,k as D,l as ie,m as ae,n as oe,o as se,p as ce,s as le,t as ue,u as O,v as de,w as fe,x as pe,y as k,z as me}from"./account-store-DUSlZEzF.js";import{t as A}from"./preload-helper-Czpn1I53.js";import{t as he}from"./logger-DDBAeTLF.js";import{l as ge}from"./src-BStYtmHq.js";import{c as _e,f as j}from"./tray-runtime-config-DRqOLcXQ.js";import{n as ve}from"./tray-follower-status-5SqDRLX8.js";import{n as M}from"./clipboard-DuHpK59o.js";import{o as N}from"./telemetry-DqIqVG5n.js";import{n as P}from"./tray-join-url-BIvzbiFR.js";var F=e({ACCOUNTS_KEY:()=>ue,__test__:()=>oe,addAccount:()=>E,applyProviderDefaults:()=>S,clearAllSettings:()=>se,clearApiKey:()=>le,clearBaseUrl:()=>ee,clearSelectedProvider:()=>ie,describeInvalidJoinUrl:()=>P,downloadProviders:()=>R,exportProviders:()=>O,getAccounts:()=>w,getAllAvailableModels:()=>T,getAllExtraOAuthDomains:()=>ce,getApiKey:()=>ae,getApiKeyForProvider:()=>ne,getApiVersionForProvider:()=>te,getAvailableProviders:()=>x,getBaseUrl:()=>de,getBaseUrlForProvider:()=>k,getDeploymentForProvider:()=>C,getExtraOAuthDomains:()=>pe,getOAuthAccountInfo:()=>g,getProviderConfig:()=>r,getProviderModels:()=>fe,getRawApiKeyForProvider:()=>_,getSelectedModelId:()=>a,getSelectedProvider:()=>i,isModelHiddenFromPicker:()=>p,logoutOAuthAccount:()=>D,maskOAuthTokenWithRetry:()=>t,migrateLegacyAuthOnlySelection:()=>re,persistOAuthMaskViaServiceWorker:()=>d,providerOffersLlmModels:()=>f,reloginOAuthAccount:()=>G,removeAccount:()=>m,resolveCurrentModel:()=>o,resolveModelById:()=>l,resolveModelByShorthand:()=>u,resolveModelIdForScoop:()=>h,saveOAuthAccount:()=>me,setApiKey:()=>n,setBaseUrl:()=>y,setExtraOAuthDomains:()=>c,setExtraOAuthDomainsAsync:()=>v,setSelectedModelId:()=>b,setSelectedProvider:()=>s,showProviderSettings:()=>$,testOnlyDispatchTrayJoinWithFailureFeedback:()=>ye}),I=he(`provider-settings`);function ye(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 be(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 xe(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)`):e.userName?t.textContent=e.userName:e.accessToken?t.textContent=`Logged in`:t.textContent=be(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-D0NOHMOb.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 Se(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 Ce(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 we(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 m(t.providerId),K(e)})()}),n}function Te(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(xe(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(Se(e,t)),n.isOAuth&&s.appendChild(Ce(e,t,n)),s.appendChild(we(e,t)),i.appendChild(s),i}function Ee(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=ve(),a=i.state!==`inactive`,o=_e(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(Te(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(Ee(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 De(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)),o=[...x()].sort((e,t)=>r(e).name.localeCompare(r(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!f(t))continue;let i=document.createElement(`option`);i.value=t,i.textContent=r(t).name,n.appendChild(i)}return n}function Oe(e,t){let n=De(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 ke(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 Ae(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}=ke(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 M(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 je(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-D0NOHMOb.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:Ae(t.oauth)})}else if(i.onOAuthLogin){let{createOAuthLauncher:t}=await A(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-D0NOHMOb.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 m(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 Me(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 Ne(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 q(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,Me(e,n),Ne(e,n),q(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 Pe(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=Oe(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{je(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),Pe(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 Fe(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=j(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 Ie(){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(Ie());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=`${ge}/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=j(window.localStorage,t);if(!n){o.textContent=P(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?Fe(i,e.autoJoinUrl):e?.preferTrayJoin?Q(i):X(i),n.appendChild(r),document.body.appendChild(n)})}export{$ as n,F as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import"./src-BcePBv4G.js";import{C as t,D as n,E as r,F as i,T as a,U as o,_ as s,d as c,h as l,i as u,p as d,w as f,x as p,y as m}from"./account-store-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import"./src-BcePBv4G.js";import{C as t,D as n,E as r,F as i,T as a,U as o,_ as s,d as c,h as l,i as u,p as d,w as f,x as p,y as m}from"./account-store-DhDTX9zd.js";import"./tray-runtime-config-kGqQt9_W.js";e(`provider-settings`);export{u as addAccount,c as getAccounts,d as getAllExtraOAuthDomains,l as getApiKeyForProvider,s as getAvailableProviders,m as getBaseUrlForProvider,p as getExtraOAuthDomains,t as getProviderConfig,f as getProviderModels,a as getRawApiKeyForProvider,r as getSelectedModelId,n as getSelectedProvider,i as resolveCurrentModel,o as setExtraOAuthDomainsAsync};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-MKXdQd34.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/path-utils-DU6QhF_k.js","assets/types-idfTVsM8.js","assets/backend-local-smcj-_Ox.js","assets/tool-ui-DfXu6quJ.js","assets/picker-approval-CdWaB1mR.js","assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/mount-table-store-CfQUN_2R.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-idfTVsM8.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-MKXdQd34.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),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){if(!e||typeof e!=`object`)return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function p(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:o,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){let t=f(n);t&&(r[e]=t)}return{version:n,servers:r}}async function m(e){try{let t=await(await u(e)).readFile(a,{encoding:`utf-8`});try{return p(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 h(e){return(await m(e)).servers}async function g(){let e=await h(),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{g as readMcpAuthEntries};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./store-D6p4BCww.js";export{e as readMcpAuthEntries};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-1tfWxXow.js","assets/account-store-DUSlZEzF.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/compat-BhgG-Qr-.js","assets/models-DmWu8BeM.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-C8HitxAG.js","assets/context-compaction-gzCxn8vG.js","assets/logger-DDBAeTLF.js","assets/src-BStYtmHq.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CKyE_tTD.js","assets/secrets-bridge-client-CUeSRcdV.js","assets/port-bridge-client-B64OCgRQ.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-DwRGZUe_.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CVX95quY.js","assets/transform-messages-DgR3h-Ck.js","assets/openai-BxFF4GUL.js","assets/local-llm-D_j99cTQ.js","assets/legacy-api-aliases-DrEKVikN.js","assets/adobe-7V016zh-.js","assets/provider-settings-CRF2kKcK.js","assets/tray-runtime-config-DRqOLcXQ.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-5SqDRLX8.js","assets/clipboard-DuHpK59o.js","assets/telemetry-DqIqVG5n.js","assets/tray-join-url-BIvzbiFR.js","assets/silent-renew-backoff-HDNNYx7x.js","assets/bridge-launch-params-BUV5qlt9.js","assets/electron-overlay-route-CjT6k9Df.js","assets/oauth-service-D0NOHMOb.js","assets/wc-permissions-registry-Blyunq37.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-pWMXfh08.js","assets/github-copilot-C2boII4t.js","assets/github-BhUX6t5B.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-BpsUGh4U.js","assets/pkce-hGf_TEnP.js","assets/openrouter-models-gCCUSdgw.js","assets/openrouter-oauth-DqUqqCYO.js","assets/openrouter-BPF_Du_N.js","assets/xai-grok-C5JWIQiB.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.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-1tfWxXow.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.ts":()=>t(()=>import(`./bedrock-camp-CVX95quY.js`).then(e=>e.n),__vite__mapDeps([23,2,6,5,3,4,7,8,9,24])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-D_j99cTQ.js`),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-7V016zh-.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,27,29,30,31,32,33,34,35,36,37,38,39,40,41])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-pWMXfh08.js`),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-C2boII4t.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,27,29,30,31,32,33,34,35])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-BhUX6t5B.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,30,31,29,32,33,34,35,36,37,38,39,40,45])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-BpsUGh4U.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,31,32,33,34,35,47])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-gCCUSdgw.js`),__vite__mapDeps([48,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-DqUqqCYO.js`),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,29,30,31,32,33,34,35,47])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-BPF_Du_N.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,27,29,30,31,32,33,34,35,48,49,47])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-C5JWIQiB.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,27,29,30,31,32,33,34,35,47,52]))}),c=new Map,l=null;function u(){return l||(l=(async()=>{for(let[e,t]of Object.entries(o)){let e=await t();e.config&&a(e.config.id)&&(c.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(s)){let e=await t();e.config&&(c.set(e.config.id,e.config),e.register?.())}})(),l)}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.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-aKtaBQYM.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-BlNyP04F.js`),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-CHi38ceE.js`).then(e=>e.n),"./built-in/local-llm.ts":()=>import(`./local-llm-CX7q6Yli.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-loXjnN_r.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-8oZMzEdi.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-CkiL57PB.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-Zr_a3MeC.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-xMkqwST3.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DmontTTG.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-Da9o3C2F.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-QoFhCA5x.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-Bkec2E69.js`)}),s=new Map;let c=null;function l(){return c||(c=(async()=>{for(let[e,t]of Object.entries(a)){let e=await t();e.config&&i(e.config.id)&&(s.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(o)){let e=await 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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{D as t,E as n,m as r,w as i}from"./account-store-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{D as t,E as n,m as r,w as i}from"./account-store-DUSlZEzF.js";import{t as a}from"./compat-BhgG-Qr-.js";import{t as o}from"./logger-DDBAeTLF.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{r as c,t as l}from"./icons-C5g936Qd.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=o(`quick-llm`);async function f(e){let i=r();if(!i)return d.debug(`No API key for active provider — skipping`),null;let o=t(),s=n(),c;if(c=e.modelId?b(o,e.modelId)??b(o,s):_(o,s),!c)return d.debug(`No model available for provider`,{providerId:o}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let t=(await a(c,{systemPrompt:e.system,messages:[l]},{apiKey:i,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return t.length>0?t:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,t){let n=i(e);if(n.length===0)return;let r=n.find(e=>e.id===t)??n[0],a=y(r.id),o=n.filter(e=>v(e,r,a));return o.length===0?r:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,t){return i(e).find(e=>e.id===t)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jn as e}from"./account-store-DhDTX9zd.js";async function t(){let t=e();if(t===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(t===`node-rest`){let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-GabK83LB.js`).then(e=>e.o),t=e();if(t)return`${t}/auth/callback`}let{getOAuthPageOrigin:n}=await import(`./oauth-service-bKcyWLK0.js`),{origin:r}=await n();return`${r}${t===`extension-delegate`?`/auth/mcp-callback`:`/auth/callback`}`}export{t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-
|
|
2
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./compat-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-t2DQRu1Y.js","assets/rolldown-runtime-aKtaBQYM.js","assets/account-store-DUSlZEzF.js","assets/preload-helper-Czpn1I53.js","assets/compat-BhgG-Qr-.js","assets/models-DmWu8BeM.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-C8HitxAG.js","assets/context-compaction-gzCxn8vG.js","assets/logger-DDBAeTLF.js","assets/src-BStYtmHq.js","assets/proxied-fetch-A48etSCh.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CKyE_tTD.js","assets/secrets-bridge-client-CUeSRcdV.js","assets/port-bridge-client-B64OCgRQ.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-DwRGZUe_.js","assets/providers-BzxrP4Hq.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CVX95quY.js","assets/transform-messages-DgR3h-Ck.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./compat-BhgG-Qr-.js";import{t as r}from"./attachments-CByeG2Ru.js";import{n as i,r as a,t as o}from"./context-compaction-gzCxn8vG.js";import{t as s}from"./logger-DDBAeTLF.js";import{t as c}from"./types-idfTVsM8.js";import{t as l}from"./icons-C5g936Qd.js";import{a as u}from"./dictation-priming-DGpw1lUV.js";var d=s(`cone-memory-budget`),ee=4e3,f=2e3,p=1.25,m=`/workspace/CLAUDE.md`,te=`/sessions/index.json`,ne=4096,re=/^## Auto-extracted/m,ie=`Consolidate the auto-extracted memory bullets below into a single tighter set of durable memories.
|
|
3
3
|
|
|
4
4
|
Rules:
|
|
5
5
|
- Output ONLY a single \`## Auto-extracted (consolidated)\` heading followed by markdown bullets.
|
|
@@ -14,7 +14,7 @@ ${r}
|
|
|
14
14
|
`).trim();if(!s)throw Error(`Restructure call returned empty content`);return`${t}${t.length===0||t.endsWith(`
|
|
15
15
|
`)?``:`
|
|
16
16
|
`}${s}\n`}async function _(e){if(!e.model||!e.apiKey)return{restructured:!1,reason:`no-llm`};let t=``;try{let n=await e.vfs.readFile(m,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{return{restructured:!1,reason:`missing-file`}}let n=await h(e.vfs),r=ae(n),i=r*p;if(t.length<=i)return{restructured:!1,reason:`under-threshold`};d.info(`Cone memory over threshold — restructuring`,{size:t.length,budget:r,threshold:i,sessionCount:n});try{let n=await g({currentContent:t,budget:r,model:e.model,apiKey:e.apiKey,headers:e.headers,signal:e.signal});return await e.vfs.writeFile(m,n),d.info(`Cone memory restructured`,{before:t.length,after:n.length}),{restructured:!0}}catch(e){return d.warn(`Cone memory restructure failed — leaving appended content in place`,{error:e instanceof Error?e.message:String(e)}),{restructured:!1,reason:`error`}}}var v=`/sessions`,y=`/sessions/index.json`;async function b(e){try{let t=await e.readFile(y,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function x(e){return`${v}/${e.filename}`}function S(e){let t=e,n=`Untitled`,r={},i=t.match(/^---\n([\s\S]*?)\n---\n+/);if(i){t=t.slice(i[0].length);let e=C(i[1],`cost`),a=C(i[1],`models`);e&&(r.cost=e),a&&(r.models=a);let o=i[1].match(/^title:\s*(.+?)\s*$/m);if(o){let e=o[1].trim();if(e.startsWith(`"`))try{let t=JSON.parse(e);typeof t==`string`&&(n=t)}catch{n=e.replace(/^"|"$/g,``)}else n=e}}let a=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(a){try{let e=a[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t,...r}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:se(t),...r}}function C(e,t){let n=RegExp(`^${t}:\\s*(.+?)\\s*$`,`m`).exec(e)?.[1];if(n)try{return JSON.parse(n)}catch{return}}function se(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}function w(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,i=n.role===`user`?u(n.content):n.content;if(t+=`## ${e}\n${i}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${r(e)}`).join(`
|
|
17
|
-
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var ce=e({SESSIONS_INDEX_PATH:()=>y,enrichPendingSession:()=>X,freezeConeSession:()=>k,markSnapshotUnavailable:()=>$,readSessionsIndex:()=>b}),T=s(`session-freezer`),le=4,E=2048,D=40,O=`${v}/attachments`;async function k(e){let t=await W(e.sessionStore);if(!t||t.messages.length<le)return T.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=G(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await M(e,n,i);let a=await N(e,n,i)||me(t.messages);return await P(e,t,a,r,i?await A(e,a):void 0)}async function A(e,n){try{return j(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-
|
|
17
|
+
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var ce=e({SESSIONS_INDEX_PATH:()=>y,enrichPendingSession:()=>X,freezeConeSession:()=>k,markSnapshotUnavailable:()=>$,readSessionsIndex:()=>b}),T=s(`session-freezer`),le=4,E=2048,D=40,O=`${v}/attachments`;async function k(e){let t=await W(e.sessionStore);if(!t||t.messages.length<le)return T.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=G(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await M(e,n,i);let a=await N(e,n,i)||me(t.messages);return await P(e,t,a,r,i?await A(e,a):void 0)}async function A(e,n){try{return j(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-t2DQRu1Y.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){T.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function j(e){if(e)return l(e)?e:void 0}async function M(e,t,n){if(!n){T.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await a({messages:t,instruction:o,model:e.model,apiKey:e.apiKey,maxTokens:E,headers:e.headers})}catch(e){T.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){T.info(`Memory extraction returned no durable memories`);return}try{await Y(e.vfs,r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),T.info(`Memory extracted and appended on new-session`)}catch(e){T.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function N(e,t,n){if(!n)return``;try{return K(await a({messages:t,instruction:i,model:e.model,apiKey:e.apiKey,maxTokens:D,headers:e.headers}))}catch(e){return T.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function P(e,t,n,r,i){let a=new Date().toISOString(),o=crypto.randomUUID(),s=r===`quick`?`pending-${he()}.md`:`${a.replace(/[:.]/g,`-`)}-${q(n)}.md`,c=F(t.messages),l={filename:s,sessionId:o,title:n,frozenAt:a,messageCount:t.messages.length,...c??{},...i?{icon:i}:{},...r===`quick`?{pendingEnrichment:!0}:{}};try{await J(e.vfs,v);let r=await R(e.vfs,t.messages,s.replace(/\.md$/,``)),i={id:t.id,title:n,frozenAt:a,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:r,...c??{}},o=pe(i);return await e.vfs.writeFile(`${v}/${s}`,o),await ge(e.vfs,l),await e.vfs.flush(),T.info(`Cone session frozen`,{filename:s,title:n,messageCount:t.messages.length}),{...l,archive:i}}catch(e){return T.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}function F(e){let t={total:0,input:0,output:0,cacheRead:0,cacheWrite:0},n=new Map,r=!1;for(let i of e){if(i.role!==`assistant`)continue;let{model:e,usage:a}=i;if(!e||!a||!L(a))return null;let o=a.cost;r=!0,t.total+=o.total,t.input+=o.input,t.output+=o.output,t.cacheRead+=o.cacheRead,t.cacheWrite+=o.cacheWrite;let s=n.get(e)??{model:e,cost:0,turns:0,tokens:0};s.cost+=o.total,s.turns+=1,s.tokens+=a.input+a.output+a.cacheRead+a.cacheWrite,n.set(e,s)}return r?{cost:t,models:[...n.values()].sort((e,t)=>t.cost-e.cost)}:null}function I(e){return typeof e==`number`&&Number.isFinite(e)}function L(e){let{cost:t}=e;return[e.input,e.output,e.cacheRead,e.cacheWrite].every(I)&&[t.input,t.output,t.cacheRead,t.cacheWrite,t.total].every(I)}async function R(e,t,n){let r={vfs:e,archiveDir:`${O}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(V)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await z(r,n));i.push({...e,attachments:t})}return i}async function z(e,t){if(!V(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await B(e.vfs,t.path);if(!r)return U(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await J(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function B(e,t){try{if(!await H(e,t))return null;let n=await e.readFile(t,{encoding:`binary`});if(!(n instanceof Uint8Array))throw Error(`Expected binary attachment content at ${t}`);return n}catch{return null}}function V(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function H(e,t){let n=t.split(`/`).slice(1);if(n.length<2||n[0]!==`tmp`||n.some(e=>!e||e===`.`||e===`..`))return!1;let r=`/`;for(let t=0;t<n.length;t+=1){let i=(await e.readDir(r)).find(e=>e.name===n[t]);if(!i)return!1;if(t===n.length-1)return i.type===`file`;if(i.type!==`directory`)return!1;r=r===`/`?`/${n[t]}`:`${r}/${n[t]}`}return!1}function U(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}async function W(e){try{return await e.load(`session-cone`)}catch(e){return T.warn(`Failed to load session-cone`,{error:e instanceof Error?e.message:String(e)}),null}}function G(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}var ue=`<!-- slicc:session-data
|
|
18
18
|
`,de=`
|
|
19
19
|
-->`;function fe(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),t})}function pe(e){let t=(e.cost?`cost: ${JSON.stringify(e.cost)}\n`:``)+(e.models?`models: ${JSON.stringify(e.models)}\n`:``),n=`---\nid: ${e.id}\ntitle: ${JSON.stringify(e.title)}\nfrozenAt: ${e.frozenAt}\ncreatedAt: ${e.createdAt}\nupdatedAt: ${e.updatedAt}\nmessageCount: ${e.messageCount}\n`+t+`---
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./feature-flags-C6YBr0Cv.js";import{m as t,n,t as r}from"./tray-runtime-config-DRqOLcXQ.js";import{n as i,t as a}from"./main-
|
|
1
|
+
import{t as e}from"./feature-flags-C6YBr0Cv.js";import{m as t,n,t as r}from"./tray-runtime-config-DRqOLcXQ.js";import{n as i,t as a}from"./main-DS0A6F7x.js";var o=3e3;async function s(t,n){let r=a(n.storage);try{let a=new URL(`/api/flags`,`${n.workerBaseUrl.replace(/\/+$/,``)}/`);a.searchParams.set(`float`,t);let s=await c(a.toString(),n.fetchImpl??fetch,n.timeoutMs??o);if(!s)return;i(r,t,s),e(t,s)}catch{}}async function c(e,t,n){let r=new AbortController,i;try{let a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(null)},n)}),o=t(e,{cache:`no-store`,headers:{Accept:`application/json`},signal:r.signal}).then(async e=>e.ok?l(await e.json()):null).catch(()=>null);return await Promise.race([o,a])}catch{return null}finally{i!==void 0&&clearTimeout(i)}}function l(e){return!u(e)||!u(e.flags)||Object.values(e.flags).some(e=>typeof e!=`string`)?null:e.flags}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e,t){return s(e,{workerBaseUrl:f(t),storage:t.storage})}function f(e){let i=p(e.storage),a=t(e.envBaseUrl??null);if(i)return i;if(a)return a;if(!e.isDev)try{let t=new URL(e.locationHref);if(t.protocol===`http:`||t.protocol===`https:`)return t.origin}catch{}return e.isDev?n:r}function p(e){try{return t(e?.getItem(`slicc.trayWorkerBaseUrl`)??null)}catch{return null}}export{d as refreshFeatureFlagsForPage};
|
package/dist/ui/assets/{setup-standalone-prelude-y8NGd_3h.js → setup-standalone-prelude-DdcmJUGt.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/extension-bridge-transport-Dq1Od_T7.js","assets/logger-DDBAeTLF.js","assets/lick-ws-bridge-CVxpKAnP.js","assets/runtime-mode-BP9WrRNO.js","assets/src-BStYtmHq.js","assets/electron-overlay-route-CjT6k9Df.js","assets/messages-BD4p8GuF.js","assets/tray-runtime-config-DRqOLcXQ.js","assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/tray-leader-CftlXLF8.js","assets/db-ysOO0kLr.js","assets/cdp-BbdoN1_1.js","assets/navigation-watcher-murqPsVd.js","assets/handoff-link-Da4o0fy_.js","assets/remote-cdp-transport-CaLf00Hc.js","assets/tray-sync-protocol-CQ9Z94EX.js","assets/main-cherry-ZFxBF0gE.js","assets/synthetic-cdp-transport-CtfKyiws.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{c as n,l as r,s as i}from"./proxied-fetch-A48etSCh.js";import{t as a}from"./runtime-env-DH4NDw4t.js";import{t as o}from"./bridge-launch-params-BUV5qlt9.js";import"./messages-BD4p8GuF.js";import{s,t as c,u as l}from"./tray-runtime-config-DRqOLcXQ.js";import{n as u}from"./runtime-mode-BP9WrRNO.js";import{t as d}from"./setup-sudo-
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{c as n,l as r,s as i}from"./proxied-fetch-A48etSCh.js";import{t as a}from"./runtime-env-DH4NDw4t.js";import{t as o}from"./bridge-launch-params-BUV5qlt9.js";import"./messages-BD4p8GuF.js";import{s,t as c,u as l}from"./tray-runtime-config-DRqOLcXQ.js";import{n as u}from"./runtime-mode-BP9WrRNO.js";import{t as d}from"./setup-sudo-BFwfxRmv.js";t(`stale-asset`);var f=`slicc-stale-asset-reload`;function p(e,t){if(typeof BroadcastChannel!=`function`)return()=>{};let n=new BroadcastChannel(f),r=n=>{let r=n.data;r?.type!==`stale-asset-reload`||r.instanceId!==e||t(r.replayTurn===!0)};return n.addEventListener(`message`,r),()=>{n.removeEventListener(`message`,r),n.close()}}var m=`slicc:stale-asset-reloaded-at`,h=6e4,g=`slicc:stale-asset-replay`;function _(e=window.sessionStorage){try{e.setItem(g,`1`)}catch{}}function v(e=window.sessionStorage){try{return e.getItem(g)===`1`?(e.removeItem(g),!0):!1}catch{return!1}}function y(){return{reload:()=>window.location.reload(),storage:window.sessionStorage,now:()=>Date.now(),windowMs:h,storageKey:m}}function b(e,t,n){return e===null||t-e>=n}function x(e=y()){let t;try{t=e.storage.getItem(e.storageKey)}catch{return!1}let n=t===null?null:Number(t),r=n!==null&&Number.isFinite(n)?n:null,i=e.now();if(!b(r,i,e.windowMs))return!1;try{e.storage.setItem(e.storageKey,String(i))}catch{return!1}return e.reload(),!0}var S=null,C=null;function w(e){S||(C={...y(),...e},S=e=>{x(C)&&e.preventDefault()},window.addEventListener(`vite:preloadError`,S))}var T=null;function E(e){return T||(T=p(e,e=>{e&&_(),x(C??void 0)}),T)}var D=`slicc-cdp-superseded-banner`;function O(e){if(e.getElementById(D))return;let t=e.createElement(`div`);t.id=D,t.setAttribute(`role`,`alert`),t.textContent=`Another SLICC tab or window has taken control of this browser instance. Only one tab can drive the browser per instance — close the other tabs, then reload this page to resume.`,t.style.cssText=[`position:fixed`,`top:0`,`left:0`,`right:0`,`z-index:2147483647`,`padding:10px 16px`,`background:#b3261e`,`color:#fff`,`font:13px/1.4 system-ui,sans-serif`,`text-align:center`,`box-shadow:0 1px 4px rgba(0,0,0,0.3)`].join(`;`),e.body.appendChild(t)}function k(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`slicc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function A(e){let t;try{t=new URLSearchParams(e)}catch{return null}if(t.get(`slicc`)!==`leader`)return null;let n=t.get(`ext`);return n?{extensionId:n}:null}var j=[100,200,400,800,1600];async function M(e,t,n,r=j,i=e=>new Promise(t=>setTimeout(t,e))){let a=r.length+1,o=null;for(let s=0;s<a;s++)try{await e.connect(t),s>0&&n.info(`CDP bridge connect succeeded after retry`,{attempt:s+1});return}catch(e){o=e,s<r.length&&await i(r[s]??0)}n.warn(`Initial CDP connect failed after retries; worker-forwarded commands will retry on demand`,o instanceof Error?o.message:String(o))}async function N(t,n,r){let{ExtensionBridgeTransport:i}=await e(async()=>{let{ExtensionBridgeTransport:e}=await import(`./extension-bridge-transport-Dq1Od_T7.js`);return{ExtensionBridgeTransport:e}},__vite__mapDeps([0,1])),{mapDiscoveryPayloadToLickEvent:a,mapNavigatePayloadToLickEvent:o}=await e(async()=>{let{mapDiscoveryPayloadToLickEvent:e,mapNavigatePayloadToLickEvent:t}=await import(`./lick-ws-bridge-CVxpKAnP.js`);return{mapDiscoveryPayloadToLickEvent:e,mapNavigatePayloadToLickEvent:t}},__vite__mapDeps([2,1,3,4,5,6,7,8,9,10,11,12,13,14,15])),s=null,c=[],l=!1,u=e=>{s=e;for(let t of c)e.sendForwardedLick(t);c.length=0},d=e=>{if(e){if(s){s.sendForwardedLick(e);return}c.length>=50&&(c.shift(),l||(l=!0,r.warn(`extension-bridge lick buffer overflow (cap 50); dropping oldest pending licks until the kernel client attaches`))),c.push(e)}},f=new t(new i({extensionId:n,onLick:e=>{d(o(e))},onDiscovery:e=>{d(a(e))},onOpenSettings:()=>{globalThis.dispatchEvent(new CustomEvent(`slicc:open-settings-from-panel`))}}));return await M(f,void 0,r),{browser:f,attachLickForwardingClient:u}}async function P(t){let{runtimeMode:f,envBaseUrl:p,window:m,log:h}=t,g=f===`electron-overlay`;h.info(`setting up standalone page runtime (BrowserAPI + CDP)`,{runtimeMode:f});let{BrowserAPI:_}=await e(async()=>{let{BrowserAPI:e}=await import(`./cdp-BbdoN1_1.js`);return{BrowserAPI:e}},__vite__mapDeps([16,1,17,18,4,19,20,9]));await d({log:h});let v,y,b,x=null,S=null,C=null,w=null,T,E=f===`cherry`?null:A(m.location.search),D=!!E&&a(),j=f===`cherry`||D?null:o(m.location.search);j?.apiBaseUrl&&(x=j.apiBaseUrl,r(j.apiBaseUrl),S=j.token,i(j.token)),j?.lickWsUrl&&(C=j.lickWsUrl);let P=f===`cherry`||D||j!==null,F=await s(),I=u(f,F!==null)?c:null;if(await l({locationHref:m.location.href,storage:m.localStorage,envBaseUrl:p,defaultWorkerBaseUrl:I,runtimeConfigFetcher:async()=>F}),f===`cherry`){let{setupCherryFollower:t}=await e(async()=>{let{setupCherryFollower:e}=await import(`./main-cherry-ZFxBF0gE.js`);return{setupCherryFollower:e}},__vite__mapDeps([21,1,4,16,17,18,19,20,9,22])),n=await t();v=n.browser,y=n.joinUrl,b=n.transport}else if(E&&a()){h.info(`Routing CDP through the extension bridge (leader tab)`);let e=await N(_,E.extensionId,h);v=e.browser,T=e.attachLickForwardingClient,w=E.extensionId,n(E.extensionId)}else{v=new _,j&&h.info(`Routing CDP through local standalone bridge`,{url:j.url,role:j.role??`(unset)`});let e=j?{url:j.url,protocols:j.subprotocol}:void 0;j?.role===`follower`?(h.info(`Skipping CDP connect for follower overlay tab`),v.primeConnectOptions(e)):(await M(v,e,h),v.setCdpSupersededHandler(()=>O(m.document)))}let L=v.getTransport();return globalThis.__slicc_browser=v,{browser:v,realCdpTransport:L,hasLocalCdpSurface:P,cherryJoinUrl:y,cherryTransport:b,instanceId:k(),isElectronOverlay:g,localApiBaseUrl:x,bridgeToken:S,localLickWsUrl:C,extensionDelegateId:w,attachLickForwardingClient:T}}export{E as a,x as i,P as n,w as o,v as r,A as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo-zNk3uG8n.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-A48etSCh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-BStYtmHq.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/quick-llm-t2DQRu1Y.js","assets/account-store-DUSlZEzF.js","assets/compat-BhgG-Qr-.js","assets/models-DmWu8BeM.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-C8HitxAG.js","assets/context-compaction-gzCxn8vG.js","assets/secret-topology-CKyE_tTD.js","assets/secrets-bridge-client-CUeSRcdV.js","assets/port-bridge-client-B64OCgRQ.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-DwRGZUe_.js","assets/providers-BzxrP4Hq.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CVX95quY.js","assets/transform-messages-DgR3h-Ck.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/panel-responder-BKgfV-nl.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./preload-helper-Czpn1I53.js";var n=e({setupSudoExtension:()=>i,setupSudoStandalone:()=>r});async function r(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo-zNk3uG8n.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]));n()}async function i(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-zNk3uG8n.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]));n()}export{n,r as t};
|