sliccy 6.2.0 → 6.3.1
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/ui/assets/{account-store-CDRkjM3_.js → account-store-BJ4CKJUZ.js} +3 -3
- package/dist/ui/assets/{account-store-Dlc9jV2R.js → account-store-CgzAP2cI.js} +2 -2
- package/dist/ui/assets/adobe-CMqgjOIH.js +2 -0
- package/dist/ui/assets/adobe-DofhOXLG.js +1 -0
- package/dist/ui/assets/{apps-AV5a8hlw.js → apps-DqEHADpE.js} +1 -1
- package/dist/ui/assets/{azure-openai-DpLTmXne.js → azure-openai-CpmHAEfb.js} +1 -1
- package/dist/ui/assets/{azure-openai-hoDjHOa_.js → azure-openai-DYnOV8go.js} +1 -1
- package/dist/ui/assets/{bridge-launch-params-QY3l_LbM.js → bridge-launch-params-BUV5qlt9.js} +1 -1
- package/dist/ui/assets/{cdp-BEmpfM7z.js → cdp-BbdoN1_1.js} +1 -1
- package/dist/ui/assets/{cerebras-77dHJa1T.js → cerebras-BPSo-bdX.js} +1 -1
- package/dist/ui/assets/{cerebras-BCrkgtqg.js → cerebras-CbL-lMus.js} +1 -1
- package/dist/ui/assets/clipboard-Bd1Wp2vH.js +1 -0
- package/dist/ui/assets/{composer-speech-FeteaFpi.js → composer-speech-RdAxri_8.js} +1 -1
- package/dist/ui/assets/{connect-surface-BD3PjqRC.js → connect-surface-BOBkt0Af.js} +1 -1
- package/dist/ui/assets/{discovery-preference-C0L_79z7.js → discovery-preference-iXjdZZE6.js} +1 -1
- package/dist/ui/assets/{export-provider-B6K_eHX_.js → export-provider-CBnhvTR9.js} +1 -1
- package/dist/ui/assets/{export-spool-DCxGPg43.js → export-spool-Crzaptz9.js} +1 -1
- package/dist/ui/assets/feature-flags-C6YBr0Cv.js +1 -0
- package/dist/ui/assets/{follower-navigate-watcher-DgusZOpY.js → follower-navigate-watcher-DiTsLLuL.js} +1 -1
- package/dist/ui/assets/{fs-B4YCvr-4.js → fs-C9yAgwEy.js} +2 -2
- package/dist/ui/assets/{fs-C5eoK5vJ.js → fs-yVzVouRM.js} +1 -1
- package/dist/ui/assets/{github-CNTidRtv.js → github-CPyZxUW_.js} +1 -1
- package/dist/ui/assets/{github-DFg_eiN4.js → github-D27tR3WW.js} +2 -2
- package/dist/ui/assets/{github-copilot-DXnF0Yve.js → github-copilot-De7Gka4b.js} +1 -1
- package/dist/ui/assets/{github-copilot-D1_1ZjYe.js → github-copilot-Dv8qXo-e.js} +1 -1
- package/dist/ui/assets/{handoff-link-Dmaaww5x.js → handoff-link-Da4o0fy_.js} +1 -1
- package/dist/ui/assets/{hear-CRBq5mEX.js → hear-DvsWQaq8.js} +1 -1
- package/dist/ui/assets/{kernel-worker-BmsF-WnR.js → kernel-worker-BCA2k8WK.js} +628 -618
- package/dist/ui/assets/{lick-ws-bridge-eytKxVOP.js → lick-ws-bridge-B21s2Gwz.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-yMljNHwr.js → lick-ws-bridge-CVxpKAnP.js} +1 -1
- package/dist/ui/assets/{local-llm-BVGC0MAD.js → local-llm-BSOdeNR3.js} +1 -1
- package/dist/ui/assets/{local-llm-CR8EIJHr.js → local-llm-BSk80jqa.js} +1 -1
- package/dist/ui/assets/main-CArUPrkz.js +22 -0
- package/dist/ui/assets/{main-cherry-DCIO_2RP.js → main-cherry-ZFxBF0gE.js} +1 -1
- package/dist/ui/assets/{mount-v_oY16gF.js → mount-CV-eCoi0.js} +1 -1
- package/dist/ui/assets/{mount-CBFBuDIW.js → mount-DN4cwvyy.js} +2 -2
- package/dist/ui/assets/{mount-bridge-client-BWPRzAQ5.js → mount-bridge-client-CKo6gJ0u.js} +1 -1
- package/dist/ui/assets/{mount-recovery-5zqnhxot.js → mount-recovery-DG09t8f-.js} +1 -1
- package/dist/ui/assets/{navigation-watcher-DkN9hU8i.js → navigation-watcher-murqPsVd.js} +1 -1
- package/dist/ui/assets/{new-session-CsQeu7Qk.js → new-session-BJHSCNlI.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-CB7ndbim.js → oauth-bootstrap-BNFHfgFu.js} +2 -2
- package/dist/ui/assets/{oauth-service-Dk3L2UWh.js → oauth-service-D0NOHMOb.js} +1 -1
- package/dist/ui/assets/openai-codex-CePa1BUn.js +1 -0
- package/dist/ui/assets/{openai-codex-DEOmNWfV.js → openai-codex-D2g219kd.js} +1 -1
- package/dist/ui/assets/{openrouter-B-FHk7OK.js → openrouter-2JamN-35.js} +1 -1
- package/dist/ui/assets/{openrouter-6UAJeUSD.js → openrouter-CN9GjUrA.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-xwzAaTC4.js → openrouter-oauth-B9fXtkdY.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Da_pZO2U.js → openrouter-oauth-DWdroAg_.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-Tt8MAppa.js → panel-rpc-handlers-BQb272h2.js} +2 -2
- package/dist/ui/assets/{port-bridge-client-DdolH4cw.js → port-bridge-client-B64OCgRQ.js} +1 -1
- package/dist/ui/assets/{provider-BFnnJUNc.js → provider-D6bNzob3.js} +1 -1
- package/dist/ui/assets/{provider-RPw9sIKU.js → provider-DcXYco-N.js} +2 -2
- package/dist/ui/assets/{provider-settings-D-M19QHq.js → provider-settings-DqhBHRop.js} +2 -2
- package/dist/ui/assets/provider-settings-mNNUwiAQ.js +1 -0
- package/dist/ui/assets/provider-store-access-CNUvIh1y.js +1 -0
- package/dist/ui/assets/{provider-store-access-CXo7Ch15.js → provider-store-access-CSU6MaeD.js} +2 -2
- package/dist/ui/assets/{providers-BQA1bDUC.js → providers-BBiY1hsB.js} +2 -2
- package/dist/ui/assets/{providers-CfZWac9Z.js → providers-XDzbc9ma.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-CfcFb0B0.js → proxied-fetch-A48etSCh.js} +1 -1
- package/dist/ui/assets/{quick-llm-CPncKgAM.js → quick-llm-ZbV4-IEP.js} +1 -1
- package/dist/ui/assets/{remote-cdp-transport-BWNdvwP2.js → remote-cdp-transport-CaLf00Hc.js} +1 -1
- package/dist/ui/assets/{runtime-mode-BweZnYql.js → runtime-mode-BP9WrRNO.js} +1 -1
- package/dist/ui/assets/{runtime-mode-BT9Lswtn.js → runtime-mode-jkSDrVfl.js} +1 -1
- package/dist/ui/assets/{secret-env-Cn-GSA1R.js → secret-env-Cd-AGGPM.js} +1 -1
- package/dist/ui/assets/{secret-topology-Baeul5rD.js → secret-topology-CKyE_tTD.js} +1 -1
- package/dist/ui/assets/{secrets-bridge-client-CLRo0NLf.js → secrets-bridge-client-CUeSRcdV.js} +1 -1
- package/dist/ui/assets/{session-freezer-DsxMGo7G.js → session-freezer-D37cB651.js} +2 -2
- package/dist/ui/assets/setup-feature-flags-remote-8KTEF9Th.js +1 -0
- package/dist/ui/assets/setup-standalone-prelude-XIRaYxKS.js +2 -0
- package/dist/ui/assets/{setup-sudo-P6vrIqoV.js → setup-sudo-CSr9ziUc.js} +2 -2
- package/dist/ui/assets/{silent-renew-backoff-CqD4WRin.js → silent-renew-backoff-HDNNYx7x.js} +1 -1
- package/dist/ui/assets/{skills-Pt9eJlYW.js → skills-Coji6um3.js} +1 -1
- package/dist/ui/assets/{speak-wEvzUJ_4.js → speak-CIzzz0pF.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-DwLCgrU9.js → sprinkle-manager-HaNmX2ye.js} +1 -1
- package/dist/ui/assets/src-BStYtmHq.js +1 -0
- package/dist/ui/assets/{store-CwkA0GJk.js → store-BOo1lzxl.js} +1 -1
- package/dist/ui/assets/{sudo-B09269RM.js → sudo-COv44TwU.js} +1 -1
- package/dist/ui/assets/{telemetry-C8rZr13D.js → telemetry-DqIqVG5n.js} +3 -3
- package/dist/ui/assets/{tool-result-images-BFdAnBEq.js → tool-result-images-DwRGZUe_.js} +1 -1
- package/dist/ui/assets/{transformers-env-DKadceXA.js → transformers-env-3dg4iXrc.js} +1 -1
- package/dist/ui/assets/{tray-leader-BDMuV-1a.js → tray-leader-CftlXLF8.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-DuZ41JQ-.js → tray-leave-runtime-DaD_0DSt.js} +1 -1
- package/dist/ui/assets/tray-runtime-config-DRqOLcXQ.js +1 -0
- package/dist/ui/assets/{tray-runtime-config-C9Kq7Hrh.js → tray-runtime-config-kGqQt9_W.js} +1 -1
- package/dist/ui/assets/{tray-sync-protocol-DdoErB3E.js → tray-sync-protocol-CQ9Z94EX.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Bjglwm5C.js → upgrade-detection-EWTeZNAw.js} +1 -1
- package/dist/ui/assets/{voice-reply-CkYr1oSF.js → voice-reply-vgvKOdr1.js} +1 -1
- package/dist/ui/assets/{wc-attach-KYdIYwcc.js → wc-attach-7hrcOh0v.js} +1 -1
- package/dist/ui/assets/{wc-extension-D1tE42E-.js → wc-extension-CaoiaYRE.js} +2 -2
- package/dist/ui/assets/{wc-float-label-yV3hzRXJ.js → wc-float-label-hGSM71eZ.js} +1 -1
- package/dist/ui/assets/{wc-floatbar-online-B6M0vf6K.js → wc-floatbar-online-B6FIfDc-.js} +1 -1
- package/dist/ui/assets/{wc-follower-D6e9PX3w.js → wc-follower-B_7kvaR_.js} +3 -3
- package/dist/ui/assets/wc-live-Ya2XppqR.js +8 -0
- package/dist/ui/assets/wc-nav-P5OMbnYZ.js +2 -0
- package/dist/ui/assets/{wc-onboarding-2wHtUgoB.js → wc-onboarding-C5N70nDz.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CA_SE_LC.js → wc-placeholder-C238StpC.js} +2 -2
- package/dist/ui/assets/wc-settings-9VOrHsnV.js +51 -0
- package/dist/ui/assets/{wc-shell-CjsAYvKl.js → wc-shell-BkB7LWnh.js} +21 -21
- package/dist/ui/assets/{wc-sprinkles-BFlNkrlx.js → wc-sprinkles-DfwGR54h.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-B3p8LhYu.js → wc-transcript-export-C4O9AKQ6.js} +2 -2
- package/dist/ui/assets/{wc-tray-Co3Os5si.js → wc-tray-B_oRWKxy.js} +2 -2
- package/dist/ui/assets/{whisper-session-W-6_Qa-h.js → whisper-session-D-oegf5G.js} +2 -2
- package/dist/ui/assets/xai-grok-CloaJlQ9.js +1 -0
- package/dist/ui/assets/xai-grok-DX9uz3aF.js +1 -0
- package/dist/ui/index.html +17 -16
- package/dist/ui/llm-proxy-sw.js +1 -1
- package/dist/ui/packages/webapp/index.html +17 -16
- package/package.json +1 -1
- package/dist/ui/assets/adobe-CYrtTdaC.js +0 -1
- package/dist/ui/assets/adobe-F2awatTI.js +0 -2
- package/dist/ui/assets/main-gaC2EacM.js +0 -22
- package/dist/ui/assets/openai-codex-BzUnyNvd.js +0 -1
- package/dist/ui/assets/provider-settings-FRENlwq7.js +0 -1
- package/dist/ui/assets/provider-store-access-C3_H4fyM.js +0 -1
- package/dist/ui/assets/setup-standalone-prelude-COfiDKSZ.js +0 -2
- package/dist/ui/assets/src-DoFhVmQT.js +0 -1
- package/dist/ui/assets/tray-follower-status-B191H1LK.js +0 -3
- package/dist/ui/assets/tray-runtime-config-9kTxza5l.js +0 -1
- package/dist/ui/assets/wc-live-BlT_fwYf.js +0 -8
- package/dist/ui/assets/wc-nav-Druc6cr1.js +0 -2
- package/dist/ui/assets/wc-settings-Cnb1vMs-.js +0 -51
- package/dist/ui/assets/xai-grok-B1m1bhTe.js +0 -1
- package/dist/ui/assets/xai-grok-CsHv0jp4.js +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>slicc</title>
|
|
7
7
|
<link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/main-
|
|
8
|
+
<script type="module" crossorigin src="/assets/main-CArUPrkz.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
|
|
@@ -17,33 +17,34 @@
|
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/compat-CkpNnFQS.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/assets/logger-DDBAeTLF.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/context-compaction-C3e7rcEG.js">
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/src-
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/src-BStYtmHq.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="/assets/base64-DpPqYZJF.js">
|
|
22
22
|
<link rel="modulepreload" crossorigin href="/assets/runtime-env-DH4NDw4t.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/fetch-body-D2PwksUW.js">
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/proxied-fetch-
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/secret-topology-
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/port-bridge-client-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/proxied-fetch-A48etSCh.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/secret-topology-CKyE_tTD.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/port-bridge-client-B64OCgRQ.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-CUeSRcdV.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/tool-result-images-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/providers-
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/tool-result-images-DwRGZUe_.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/providers-BBiY1hsB.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/panel-rpc-DmJSNs0I.js">
|
|
32
32
|
<link rel="modulepreload" crossorigin href="/assets/transform-messages-wECJwtH0.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-CJY4i7di.js">
|
|
34
|
-
<link rel="modulepreload" crossorigin href="/assets/account-store-
|
|
34
|
+
<link rel="modulepreload" crossorigin href="/assets/account-store-BJ4CKJUZ.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/electron-overlay-route-CjT6k9Df.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/bridge-launch-params-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/bridge-launch-params-BUV5qlt9.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="/assets/feature-flags-C6YBr0Cv.js">
|
|
37
38
|
<link rel="modulepreload" crossorigin href="/assets/messages-BD4p8GuF.js">
|
|
38
|
-
<link rel="modulepreload" crossorigin href="/assets/tray-runtime-config-
|
|
39
|
-
<link rel="modulepreload" crossorigin href="/assets/runtime-mode-
|
|
40
|
-
<link rel="modulepreload" crossorigin href="/assets/setup-sudo-
|
|
41
|
-
<link rel="modulepreload" crossorigin href="/assets/setup-standalone-prelude-
|
|
42
|
-
<link rel="modulepreload" crossorigin href="/assets/telemetry-
|
|
39
|
+
<link rel="modulepreload" crossorigin href="/assets/tray-runtime-config-DRqOLcXQ.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-mode-BP9WrRNO.js">
|
|
41
|
+
<link rel="modulepreload" crossorigin href="/assets/setup-sudo-CSr9ziUc.js">
|
|
42
|
+
<link rel="modulepreload" crossorigin href="/assets/setup-standalone-prelude-XIRaYxKS.js">
|
|
43
|
+
<link rel="modulepreload" crossorigin href="/assets/telemetry-DqIqVG5n.js">
|
|
43
44
|
<link rel="modulepreload" crossorigin href="/assets/tray-follower-status-5SqDRLX8.js">
|
|
44
45
|
<link rel="modulepreload" crossorigin href="/assets/clipboard-DuHpK59o.js">
|
|
45
46
|
<link rel="modulepreload" crossorigin href="/assets/tray-join-url-BIvzbiFR.js">
|
|
46
|
-
<link rel="modulepreload" crossorigin href="/assets/provider-settings-
|
|
47
|
+
<link rel="modulepreload" crossorigin href="/assets/provider-settings-DqhBHRop.js">
|
|
47
48
|
</head>
|
|
48
49
|
<body>
|
|
49
50
|
<div id="app"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./panel-rpc-CjFVE0nK.js";import{K as t,d as n,y as r,z as i}from"./account-store-Dlc9jV2R.js";import{n as a}from"./event-stream-qbAZIAKV.js";import{a as o,d as s,f as c,i as l,o as u,p as d,s as f}from"./bedrock-camp-DS0ilb3O.js";import{a as p,r as m,s as h,t as g}from"./legacy-api-aliases-YuuBU-he.js";import{n as _}from"./llm-session-id-ZObKEXzb.js";import{n as v,t as ee}from"./silent-renew-backoff-Chq7fPuc.js";import{getOAuthPageOrigin as te}from"./oauth-service-bKcyWLK0.js";import"./provider-settings-FRENlwq7.js";var ne={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function re(e,t){return o(e,t)}function y(e,t,n){return e!==`xhigh`||!t?e:f(t,n)?`xhigh`:u(t,n)?`max`:`high`}function ie(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return y((()=>{if(typeof n==`string`)return n;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`xhigh`:return`xhigh`;default:return`high`}})(),t?.id,t?.name)}function ae(e,t){return async(n,r)=>{let i=t?await t(n,r)??n:n,a=i.thinking;return a&&a.type===`enabled`&&(i.thinking={type:`adaptive`,...a.display===void 0?{}:{display:a.display}},i.output_config={...i.output_config??{},effort:e}),i}}function b(e,t){if(!re(e.id,e.name))return t;let n=t,r=y(n.effort??ie(n.reasoning,e),e.id,e.name);return{...t,onPayload:ae(r,n.onPayload)}}function oe(e,t){let n={id:e.id,name:e.name??e.id},r=t?.api??e.api,i=t?.context_window??e.context_window,a=t?.max_tokens??e.max_tokens,o=t?.reasoning??e.reasoning,s=t?.input??e.input;r&&(n.api=r),i!==void 0&&(n.context_window=i),a!==void 0&&(n.max_tokens=a),o!==void 0&&(n.reasoning=o),s&&(n.input=s);let c=t?.cost??e.cost;return c&&(n.cost=c),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),/sonnet-5\b/i.test(e.id)&&!n.thinkingLevelMap&&(n.thinkingLevelMap={xhigh:`xhigh`}),n}const x=Object.assign({"/packages/webapp/providers/adobe-config.json":ne})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function S(){let e=r(`adobe`);if(e)return e.replace(/\/$/,``);if(x.proxyEndpoint)return x.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}const C=new Map,w=new Map,T=`slicc-adobe-models`;function E(e){try{localStorage.setItem(T,JSON.stringify(e))}catch{}}async function D(e){let t=C.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`,{headers:{[W]:`6.2.0`}});if(t.ok){let n=await t.json();return C.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}return{}}function O(e){let t=e.clientId||x.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function k(e){return e.scopes||x.scopes}function A(e){return e.imsEnvironment||x.imsEnvironment||`prod`}const j={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function M(e){return j[e??x.imsEnvironment??`prod`]??j.prod}const N=typeof chrome<`u`&&!!chrome?.runtime?.id;function P(){return n().find(e=>e.providerId===`adobe`)}async function se(e,t){try{let n=await fetch(`${M(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function F(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}const I={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!x.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,oauthTokenDomains:[`ims-na1.adobelogin.com`,`ims-na1-stg1.adobelogin.com`,`*.adobelogin.com`,`*.adobe.io`,`firefall.adobe.io`,`admin.hlx.page`,`admin.hlx.live`,`admin.aem.page`,`admin.aem.live`],getModelIds:()=>{let e=e=>oe(e,w.get(e.id));for(let t of Q.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id,reasoning:t.reasoning,input:t.input,cost:t.cost}));return E(n),n}for(let t of C.values())if(t.models?.length)return t.models.map(t=>e(t));try{let e=localStorage.getItem(T);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t,n)=>{let r=S(),a=await D(r),o=O(a),s=k(a),c=A(a),l=N?null:await te(),u=N?null:v({pageHref:l.href,pageOrigin:l.origin,configuredRedirectUri:x.redirectUri},()=>crypto.randomUUID()),d=N?x.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:u.redirectUri,f=u?.oauthState,p=u?.expectedNonce??null,m=new URLSearchParams({client_id:o,scope:s,response_type:`token`,redirect_uri:d});f&&m.set(`state`,f),n?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${M(c)}/ims/authorize/v2?${m}`);if(!h)return;if(p&&h)try{if(new URL(h).searchParams.get(`nonce`)!==p){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let g=F(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let _=await se(g.accessToken,c);await i({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:_.name,userAvatar:_.avatar,baseUrl:x.proxyEndpoint?void 0:r}),await $().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=P();if(e?.accessToken)try{let t=C.values().next().value??{},n=t.clientId||x.clientId,r=A(t);if(n){let t=await fetch(`${M(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}await i({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>P()?.accessToken?z():null,refreshModels:async e=>{await $(e);let t=I.getModelIds?.();t?.length&&E(t)}};let L=null;const ce=ee();async function R(){let e=P();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);let t=await ce.run(()=>z());if(t)return t;let n=P();if((n?.tokenExpiresAt??0)-Date.now()>0&&n?.accessToken)return n.accessToken;throw Error(`Adobe session expired — please log in again`)}function le(){let e=P();return!e?.tokenExpiresAt||Date.now()>e.tokenExpiresAt-6e4}async function z(){if(typeof window>`u`){let t=e();if(!t)return null;try{let{accessToken:e}=await t.call(`silent-renew`,{providerId:`adobe`},{timeoutMs:13e4});return e}catch(e){return console.warn(`[adobe] worker→page silent-renew bridge failed:`,e instanceof Error?e.message:String(e)),null}}return L||(L=U().finally(()=>{L=null}),L)}function B(e,t){let n=O(t),r=k(t),i=A(t),a=N?null:v({pageHref:window.location.href,pageOrigin:window.location.origin,configuredRedirectUri:x.redirectUri},()=>crypto.randomUUID()),o=N?x.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:a.redirectUri,s=a?.oauthState,c=a?.expectedNonce??null,l=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:o,prompt:`none`});return s&&l.set(`state`,s),{authorizeUrl:`${M(i)}/ims/authorize/v2?${l}`,expectedNonce:c,proxyEndpoint:e}}function V(e,t){if(!t)return!0;try{if(new URL(e).searchParams.get(`nonce`)!==t)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),!1}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}return!0}async function H(e,t){let n=P();await i({providerId:`adobe`,accessToken:e.accessToken,tokenExpiresAt:Date.now()+e.expiresIn*1e3,userName:n?.userName,userAvatar:n?.userAvatar,baseUrl:x.proxyEndpoint?void 0:t})}async function U(){try{let e=S(),{authorizeUrl:t,expectedNonce:n}=B(e,await D(e)),{createOAuthLauncher:r}=await import(`./oauth-service-bKcyWLK0.js`),i=await r()(t,{interactive:!1});if(!i||!V(i,n))return null;let a=F(i);return a?(await H(a,e),console.log(`[adobe] Token renewed silently`),await $().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),a.accessToken):null}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}}const W=`X-Slicc-Version`;function G(e){let t={};if(e.headers)for(let[n,r]of Object.entries(e.headers))n.toLowerCase()!==`x-slicc-version`&&(t[n]=r);return t[W]=`6.2.0`,{...e,headers:t}}const K=new Set;function q(e,t){if(e.headers){for(let[t,n]of Object.entries(e.headers))if(t.toLowerCase()===`x-session-id`&&n!=null)return e}return K.has(t)||(K.add(t),console.warn(`[adobe] Missing X-Session-Id from ${t} — using daily fallback. Attach an X-Session-Id header at the call site (see scoop-context.ts streamWithSessionId or docs/pitfalls.md).`)),{...e,headers:{...e.headers??{},"X-Session-Id":_(`adobe-provider-fallback`)}}}function ue(){K.clear()}function J(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}const Y=(e,t,n={})=>{let r=a();return(async()=>{try{let i=await R();if(String(e.api).includes(`openai`)){let a=m({...e,baseUrl:`${S()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...n,apiKey:i},`streamAdobe[openai]`)));for await(let e of a)r.push(e)}else{let a=g({...e,baseUrl:S(),api:`anthropic-messages`},t,G(q(b(e,l(e.id,e.name,{...n,apiKey:i})),`streamAdobe[anthropic]`)));for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r},X=(e,t,n)=>{let r=a();return(async()=>{try{let i=await R();if(String(e.api).includes(`openai`)){let a=h({...e,baseUrl:`${S()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...n,apiKey:i},`streamSimpleAdobe[openai]`)));for await(let e of a)r.push(e)}else{let a=p({...e,baseUrl:S(),api:`anthropic-messages`},t,G(q(b(e,l(e.id,e.name,{...n,apiKey:i})),`streamSimpleAdobe[anthropic]`)));for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r};function Z(e){let t={id:e.id,name:e.name};return e.api!==void 0&&(t.api=e.api),e.context_window!==void 0&&(t.context_window=e.context_window),e.max_tokens!==void 0&&(t.max_tokens=e.max_tokens),e.reasoning!==void 0&&(t.reasoning=e.reasoning),e.input!==void 0&&(t.input=e.input),t}function de(){let e=new Map;for(let t of c())try{for(let n of s(t))e.set(n.id,n)}catch{}return e}function fe(e,n,r){let i=`adobe-${e.api===`openai`?`openai`:`anthropic`}`,a=r.get(e.id);if(a)return{...a,provider:`adobe`,api:i};let o=t(e.id,r);return{id:e.id,name:e.name??e.id,provider:`adobe`,api:i,baseUrl:n,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:o,inputCost:o.input,outputCost:o.output,cacheReadCost:o.cacheRead,cacheWriteCost:o.cacheWrite,reasoning:!0}}function pe(e,t){for(let t of e)w.set(t.id,Z(t));let n=de();return e.map(e=>fe(e,t,n))}async function me(e){try{let t=e??await R(),n=S(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[W]:`6.2.0`}});if(!r.ok)console.warn(`[adobe] Proxy /v1/models returned ${r.status}, falling back to Anthropic models`);else{let e=await r.json();if(e.data?.length)return pe(e.data,n)}}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return null}const Q=new Map;function he(){return s(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}async function $(e){let t=S(),n=Q.get(t);if(n)return n;let r=await me(e);return r?(Q.set(t,r),r):he()}function ge(){d({api:`adobe-anthropic`,stream:Y,streamSimple:X}),d({api:`adobe-openai`,stream:Y,streamSimple:X})}export{ue as __resetAdobeSessionIdWarningCacheForTests,I as config,$ as getAdobeModels,R as getValidAccessToken,le as isTokenExpired,ge as register};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-Dk3L2UWh.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-CfcFb0B0.js","assets/rolldown-runtime-aKtaBQYM.js","assets/base64-DpPqYZJF.js","assets/src-DoFhVmQT.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{K as e,d as t,y as n,z as r}from"./account-store-CDRkjM3_.js";import{n as i}from"./event-stream-qbAZIAKV.js";import{t as a}from"./preload-helper-Czpn1I53.js";import{a as o,i as s,r as c}from"./compat-CkpNnFQS.js";import{a as l,r as u,s as d,t as f}from"./legacy-api-aliases-BWm3gxUe.js";import{t as p}from"./panel-rpc-DmJSNs0I.js";import{a as m,i as h,o as g,s as _}from"./bedrock-camp-CJY4i7di.js";import"./provider-settings-D-M19QHq.js";import{n as v,t as ee}from"./silent-renew-backoff-CqD4WRin.js";import{getOAuthPageOrigin as te}from"./oauth-service-Dk3L2UWh.js";import{t as ne}from"./llm-session-id-bZQs6gBN.js";var re={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function y(e,t){return m(e,t)}function b(e,t,n){return e!==`xhigh`||!t?e:_(t,n)?`xhigh`:g(t,n)?`max`:`high`}function ie(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return b((()=>{if(typeof n==`string`)return n;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`xhigh`:return`xhigh`;default:return`high`}})(),t?.id,t?.name)}function ae(e,t){return async(n,r)=>{let i=t?await t(n,r)??n:n,a=i.thinking;return a&&a.type===`enabled`&&(i.thinking={type:`adaptive`,...a.display===void 0?{}:{display:a.display}},i.output_config={...i.output_config??{},effort:e}),i}}function x(e,t){if(!y(e.id,e.name))return t;let n=t,r=b(n.effort??ie(n.reasoning,e),e.id,e.name);return{...t,onPayload:ae(r,n.onPayload)}}function oe(e,t){let n={id:e.id,name:e.name??e.id},r=t?.api??e.api,i=t?.context_window??e.context_window,a=t?.max_tokens??e.max_tokens,o=t?.reasoning??e.reasoning,s=t?.input??e.input;r&&(n.api=r),i!==void 0&&(n.context_window=i),a!==void 0&&(n.max_tokens=a),o!==void 0&&(n.reasoning=o),s&&(n.input=s);let c=t?.cost??e.cost;return c&&(n.cost=c),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),/sonnet-5\b/i.test(e.id)&&!n.thinkingLevelMap&&(n.thinkingLevelMap={xhigh:`xhigh`}),n}var S=Object.assign({"/packages/webapp/providers/adobe-config.json":re})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function C(){let e=n(`adobe`);if(e)return e.replace(/\/$/,``);if(S.proxyEndpoint)return S.proxyEndpoint.replace(/\/$/,``);throw Error(`Adobe proxy endpoint not configured — set it in Settings or adobe-config.json`)}var w=new Map,T=new Map,E=`slicc-adobe-models`;function D(e){try{localStorage.setItem(E,JSON.stringify(e))}catch{}}async function O(e){let t=w.get(e);if(t)return t;try{let t=await fetch(`${e}/v1/config`,{headers:{[W]:`6.2.0`}});if(t.ok){let n=await t.json();return w.set(e,n),n}console.warn(`[adobe] Proxy /v1/config returned ${t.status}, falling back to build-time config`)}catch(e){console.warn(`[adobe] Failed to fetch proxy config:`,e instanceof Error?e.message:String(e))}return{}}function k(e){let t=e.clientId||S.clientId;if(!t)throw Error(`Could not determine IMS client ID — proxy /v1/config did not return one and adobe-config.json is empty`);return t}function A(e){return e.scopes||S.scopes}function j(e){return e.imsEnvironment||S.imsEnvironment||`prod`}var M={prod:`https://ims-na1.adobelogin.com`,stg1:`https://ims-na1-stg1.adobelogin.com`};function N(e){return M[e??S.imsEnvironment??`prod`]??M.prod}var P=typeof chrome<`u`&&!!chrome?.runtime?.id;function F(){return t().find(e=>e.providerId===`adobe`)}async function se(e,t){try{let n=await fetch(`${N(t)}/ims/userinfo/v2`,{headers:{Authorization:`Bearer ${e}`}});if(n.ok){let e=await n.json();return{name:e.displayName||e.name||e.email,avatar:e.picture||e.avatar_url}}console.warn(`[adobe] User profile fetch returned ${n.status}, account will have no display name`)}catch(e){console.warn(`[adobe] Failed to fetch user profile:`,e instanceof Error?e.message:String(e))}return{}}function I(e){let t=e.indexOf(`#`);if(t<0)return null;let n=new URLSearchParams(e.slice(t+1)),r=n.get(`access_token`);return r?{accessToken:r,expiresIn:parseInt(n.get(`expires_in`)??`86400`,10)}:null}var L={id:`adobe`,name:`Adobe`,description:`Claude via Adobe — login with your Adobe ID`,requiresApiKey:!1,requiresBaseUrl:!S.proxyEndpoint,baseUrlPlaceholder:`https://your-proxy.example.com`,baseUrlDescription:`Anthropic-compatible proxy endpoint`,isOAuth:!0,defaultModelId:`sonnet`,oauthTokenDomains:[`ims-na1.adobelogin.com`,`ims-na1-stg1.adobelogin.com`,`*.adobelogin.com`,`*.adobe.io`,`firefall.adobe.io`,`admin.hlx.page`,`admin.hlx.live`,`admin.aem.page`,`admin.aem.live`],getModelIds:()=>{let e=e=>oe(e,T.get(e.id));for(let t of Q.values())if(t.length){let n=t.map(t=>e({id:t.id,name:t.name??t.id,reasoning:t.reasoning,input:t.input,cost:t.cost}));return D(n),n}for(let t of w.values())if(t.models?.length)return t.models.map(t=>e(t));try{let e=localStorage.getItem(E);if(e){let t=JSON.parse(e);if(t.length)return t}}catch{}return[{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`}]},onOAuthLogin:async(e,t,n)=>{let i=C(),a=await O(i),o=k(a),s=A(a),c=j(a),l=P?null:await te(),u=P?null:v({pageHref:l.href,pageOrigin:l.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),d=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:u.redirectUri,f=u?.oauthState,p=u?.expectedNonce??null,m=new URLSearchParams({client_id:o,scope:s,response_type:`token`,redirect_uri:d});f&&m.set(`state`,f),n?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${N(c)}/ims/authorize/v2?${m}`);if(!h)return;if(p&&h)try{if(new URL(h).searchParams.get(`nonce`)!==p){console.error(`[adobe] OAuth nonce mismatch — possible CSRF`);return}}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}let g=I(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let _=await se(g.accessToken,c);await r({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:_.name,userAvatar:_.avatar,baseUrl:S.proxyEndpoint?void 0:i}),await $().catch(e=>console.warn(`[adobe] Failed to fetch models after login:`,e instanceof Error?e.message:String(e))),t()},onOAuthLogout:async()=>{let e=F();if(e?.accessToken)try{let t=w.values().next().value??{},n=t.clientId||S.clientId,r=j(t);if(n){let t=await fetch(`${N(r)}/ims/revoke`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({token:e.accessToken,token_type_hint:`access_token`,client_id:n})});t.ok||console.warn(`[adobe] Token revocation returned ${t.status}, token may still be valid server-side`)}}catch(e){console.warn(`[adobe] Failed to revoke token:`,e instanceof Error?e.message:String(e))}await r({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>F()?.accessToken?B():null,refreshModels:async e=>{await $(e);let t=L.getModelIds?.();t?.length&&D(t)}},R=null,ce=ee();async function z(){let e=F();if(!e?.accessToken)throw Error(`Not logged in to Adobe — please log in first`);if((e.tokenExpiresAt??0)-Date.now()>6e4)return e.accessToken;console.log(`[adobe] Token expired or expiring soon, attempting silent renewal...`);let t=await ce.run(()=>B());if(t)return t;let n=F();if((n?.tokenExpiresAt??0)-Date.now()>0&&n?.accessToken)return n.accessToken;throw Error(`Adobe session expired — please log in again`)}function le(){let e=F();return!e?.tokenExpiresAt||Date.now()>e.tokenExpiresAt-6e4}async function B(){if(typeof window>`u`){let e=p();if(!e)return null;try{let{accessToken:t}=await e.call(`silent-renew`,{providerId:`adobe`},{timeoutMs:13e4});return t}catch(e){return console.warn(`[adobe] worker→page silent-renew bridge failed:`,e instanceof Error?e.message:String(e)),null}}return R||(R=ue().finally(()=>{R=null}),R)}function V(e,t){let n=k(t),r=A(t),i=j(t),a=P?null:v({pageHref:window.location.href,pageOrigin:window.location.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),o=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:a.redirectUri,s=a?.oauthState,c=a?.expectedNonce??null,l=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:o,prompt:`none`});return s&&l.set(`state`,s),{authorizeUrl:`${N(i)}/ims/authorize/v2?${l}`,expectedNonce:c,proxyEndpoint:e}}function H(e,t){if(!t)return!0;try{if(new URL(e).searchParams.get(`nonce`)!==t)return console.error(`[adobe] OAuth nonce mismatch — possible CSRF`),!1}catch(e){console.warn(`[adobe] Nonce check skipped (URL parse failed):`,e instanceof Error?e.message:String(e))}return!0}async function U(e,t){let n=F();await r({providerId:`adobe`,accessToken:e.accessToken,tokenExpiresAt:Date.now()+e.expiresIn*1e3,userName:n?.userName,userAvatar:n?.userAvatar,baseUrl:S.proxyEndpoint?void 0:t})}async function ue(){try{let e=C(),{authorizeUrl:t,expectedNonce:n}=V(e,await O(e)),{createOAuthLauncher:r}=await a(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-Dk3L2UWh.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),i=await r()(t,{interactive:!1});if(!i||!H(i,n))return null;let o=I(i);return o?(await U(o,e),console.log(`[adobe] Token renewed silently`),await $().catch(e=>console.warn(`[adobe] Failed to refresh models after silent renewal:`,e instanceof Error?e.message:String(e))),o.accessToken):null}catch(e){return console.warn(`[adobe] Silent renewal error:`,e instanceof Error?e.message:String(e)),null}}var W=`X-Slicc-Version`;function G(e){let t={},n=W.toLowerCase();if(e.headers)for(let[r,i]of Object.entries(e.headers))r.toLowerCase()!==n&&(t[r]=i);return t[W]=`6.2.0`,{...e,headers:t}}var de=`adobe-provider-fallback`,K=new Set;function q(e,t){if(e.headers){for(let[t,n]of Object.entries(e.headers))if(t.toLowerCase()===`x-session-id`&&n!=null)return e}return K.has(t)||(K.add(t),console.warn(`[adobe] Missing X-Session-Id from ${t} — using daily fallback. Attach an X-Session-Id header at the call site (see scoop-context.ts streamWithSessionId or docs/pitfalls.md).`)),{...e,headers:{...e.headers??{},"X-Session-Id":ne(de)}}}function fe(){K.clear()}function J(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:`adobe-anthropic`,provider:`adobe`,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var Y=(e,t,n={})=>{let r=i();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a=u({...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...n,apiKey:i},`streamAdobe[openai]`)));for await(let e of a)r.push(e)}else{let a=f({...e,baseUrl:C(),api:`anthropic-messages`},t,G(q(x(e,h(e.id,e.name,{...n,apiKey:i})),`streamAdobe[anthropic]`)));for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r},X=(e,t,n)=>{let r=i();return(async()=>{try{let i=await z();if(String(e.api).includes(`openai`)){let a=d({...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...n,apiKey:i},`streamSimpleAdobe[openai]`)));for await(let e of a)r.push(e)}else{let a=l({...e,baseUrl:C(),api:`anthropic-messages`},t,G(q(x(e,h(e.id,e.name,{...n,apiKey:i})),`streamSimpleAdobe[anthropic]`)));for await(let e of a)r.push(e)}r.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),r.push(J(e,t)),r.end()}})(),r};function pe(e){let t={id:e.id,name:e.name};return e.api!==void 0&&(t.api=e.api),e.context_window!==void 0&&(t.context_window=e.context_window),e.max_tokens!==void 0&&(t.max_tokens=e.max_tokens),e.reasoning!==void 0&&(t.reasoning=e.reasoning),e.input!==void 0&&(t.input=e.input),t}function me(){let e=new Map;for(let t of s())try{for(let n of c(t))e.set(n.id,n)}catch{}return e}function he(t,n,r){let i=`adobe-${t.api===`openai`?`openai`:`anthropic`}`,a=r.get(t.id);if(a)return{...a,provider:`adobe`,api:i};let o=e(t.id,r);return{id:t.id,name:t.name??t.id,provider:`adobe`,api:i,baseUrl:n,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:o,inputCost:o.input,outputCost:o.output,cacheReadCost:o.cacheRead,cacheWriteCost:o.cacheWrite,reasoning:!0}}function ge(e,t){for(let t of e)T.set(t.id,pe(t));let n=me();return e.map(e=>he(e,t,n))}async function Z(e){try{let t=e??await z(),n=C(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[W]:`6.2.0`}});if(!r.ok)console.warn(`[adobe] Proxy /v1/models returned ${r.status}, falling back to Anthropic models`);else{let e=await r.json();if(e.data?.length)return ge(e.data,n)}}catch(e){console.warn(`[adobe] Failed to fetch proxy models:`,e instanceof Error?e.message:String(e))}return null}var Q=new Map;function _e(){return c(`anthropic`).map(e=>({...e,provider:`adobe`,api:`adobe-anthropic`}))}async function $(e){let t=C(),n=Q.get(t);if(n)return n;let r=await Z(e);return r?(Q.set(t,r),r):_e()}function ve(){o({api:`adobe-anthropic`,stream:Y,streamSimple:X}),o({api:`adobe-openai`,stream:Y,streamSimple:X})}export{fe as __resetAdobeSessionIdWarningCacheForTests,L as config,$ as getAdobeModels,z as getValidAccessToken,le as isTokenExpired,ve as register};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-CjsAYvKl.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-Czpn1I53.js","assets/src-DoFhVmQT.js","assets/tool-result-images-BFdAnBEq.js","assets/logger-DDBAeTLF.js","assets/telemetry-C8rZr13D.js","assets/runtime-env-DH4NDw4t.js","assets/icons-C5g936Qd.js","assets/dictation-priming-DGpw1lUV.js","assets/timestamp-preference-DgrTvVNx.js","assets/src-BTviaay1.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-scoop-color-CByZNEJo.js","assets/wc-shell-WkeczD9x.css","assets/wc-follower-D6e9PX3w.js","assets/tray-sync-protocol-DdoErB3E.js","assets/wc-live-BlT_fwYf.js","assets/account-store-CDRkjM3_.js","assets/compat-CkpNnFQS.js","assets/models-Bnh9VDA1.js","assets/event-stream-qbAZIAKV.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-DS1_VkCm.js","assets/context-compaction-C3e7rcEG.js","assets/proxied-fetch-CfcFb0B0.js","assets/base64-DpPqYZJF.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-Baeul5rD.js","assets/secrets-bridge-client-CLRo0NLf.js","assets/port-bridge-client-DdolH4cw.js","assets/tool-ui-DfXu6quJ.js","assets/providers-BQA1bDUC.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CJY4i7di.js","assets/transform-messages-wECJwtH0.js","assets/setup-standalone-prelude-COfiDKSZ.js","assets/bridge-launch-params-QY3l_LbM.js","assets/electron-overlay-route-CjT6k9Df.js","assets/messages-BD4p8GuF.js","assets/tray-runtime-config-9kTxza5l.js","assets/runtime-mode-BweZnYql.js","assets/setup-sudo-P6vrIqoV.js","assets/tray-follower-status-5SqDRLX8.js","assets/sha256-DmK25X5D.js","assets/chat-session-store-DQztDoVa.js","assets/tray-leader-BDMuV-1a.js","assets/db-ysOO0kLr.js","assets/shared-BYVJAPbn.js","assets/mime-types-ugOWOUZ9.js","assets/export-provider-B6K_eHX_.js","assets/dip-BubHLPf_.js","assets/wc-permissions-registry-Blyunq37.js","assets/hid-device-registry-DboUgvzI.js","assets/serial-port-registry-DsPZvGpT.js","assets/usb-operations-BQbhk96u.js","assets/usb-device-registry-BOGfZXgp.js","assets/sprinkle-renderer-oLgy--3J.js","assets/theme-C8b_iQ_9.js","assets/theme-engine-jfuTMXZM.js","assets/sprinkle-bridge-DziYRsuS.js","assets/session-freezer-DsxMGo7G.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/leader-session-events-m7I5BMZy.js","assets/wc-attach-KYdIYwcc.js","assets/wc-floatbar-online-B6M0vf6K.js","assets/remote-cdp-transport-BWNdvwP2.js","assets/export-spool-DCxGPg43.js","assets/wc-sprinkles-BFlNkrlx.js","assets/oauth-bootstrap-CB7ndbim.js","assets/provider-settings-D-M19QHq.js","assets/clipboard-DuHpK59o.js","assets/tray-join-url-BIvzbiFR.js","assets/legacy-styles-DcRu2WCJ.js","assets/connect-surface-BD3PjqRC.js","assets/wc-extension-D1tE42E-.js","assets/wc-detached-B3WCbbZT.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import"./modulepreload-polyfill-Dezn_h7o.js";import{a as e}from"./account-store-CDRkjM3_.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{n as r,t as i}from"./runtime-env-DH4NDw4t.js";import{a}from"./providers-BQA1bDUC.js";import{t as o}from"./bridge-launch-params-QY3l_LbM.js";import{o as s,t as c}from"./setup-standalone-prelude-COfiDKSZ.js";import{t as l}from"./runtime-mode-BweZnYql.js";import{t as u}from"./telemetry-C8rZr13D.js";import"./provider-settings-D-M19QHq.js";var d=`slicc-nuke-control`,f=[`slicc:welcome-flow-fired`,`slicc.trayJoinUrl`,`slicc.trayWorkerBaseUrl`];function p(e=()=>location.reload()){if(typeof BroadcastChannel!=`function`)return()=>{};let t=new BroadcastChannel(d),n=t=>{let n=t.data;if(n?.type===`nuke-reload`){if(Array.isArray(n.keysToRemove)){for(let e of n.keysToRemove)if(typeof e==`string`)try{localStorage.removeItem(e)}catch{}}e()}};return t.addEventListener(`message`,n),()=>{t.removeEventListener(`message`,n),t.close()}}async function m(){try{let e=await navigator.serviceWorker?.getRegistrations?.();e&&await Promise.all(e.map(e=>e.unregister().catch(()=>!1)))}catch{}try{let e=await indexedDB.databases();await Promise.all(e.filter(e=>!!e.name).map(e=>new Promise(t=>{let n=indexedDB.deleteDatabase(e.name);n.onsuccess=()=>t(),n.onerror=()=>t(),n.onblocked=()=>t()})))}catch{}try{let e=navigator.storage;if(typeof e?.getDirectory==`function`){let t=await e.getDirectory(),n=[];for await(let e of t.keys())n.push(e);await Promise.all(n.map(e=>t.removeEntry(e,{recursive:!0}).catch(()=>{})))}}catch{}}function h(e,t,n={}){let r=n.wipe??m,i=n.reload??(()=>location.reload()),a=t instanceof Error?t.message:String(t),o=document.createElement(`div`);o.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let s=document.createElement(`h1`);s.style.color=`var(--s2-negative, #e34850)`,s.textContent=`Failed to start`;let c=document.createElement(`p`);c.style.color=`var(--s2-content-tertiary, #717171)`,c.textContent=a;let l=document.createElement(`div`);l.style.cssText=`display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem;`;let u=document.createElement(`button`);u.type=`button`,u.textContent=`Reset local data & reload`,u.style.cssText=`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-negative, #e34850);background:var(--s2-negative, #e34850);color:#fff;border-radius:4px;`;let d=document.createElement(`button`);for(d.type=`button`,d.textContent=`Reload`,d.style.cssText=`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-content-tertiary, #717171);background:transparent;color:inherit;border-radius:4px;`,u.addEventListener(`click`,()=>{u.disabled=!0,d.disabled=!0,u.textContent=`Resetting…`,(async()=>{try{await r()}catch{}for(let e of f)try{localStorage.removeItem(e)}catch{}i()})()}),d.addEventListener(`click`,()=>{i()}),l.append(u,d),o.append(s,c,l);e.firstChild;)e.removeChild(e.firstChild);e.appendChild(o)}var g=`slicc:bridge-config`,_=`slicc:extension-delegate-config`;function v(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.type===`slicc:ext-fetch`&&typeof t.extensionId==`string`&&!!t.request&&typeof t.request==`object`}var y=n(`boot/ext-fetch-delegate`);function b(){let e=globalThis.chrome?.runtime;return e&&typeof e.connect==`function`?e:null}function x(e,t,n){let r=b();if(!r){try{t.postMessage({type:`response-error`,error:`extension-delegate: chrome.runtime.connect unavailable`})}catch{}t.close();return}let i=e.extensionId||n,a;try{a=r.connect(i,{name:`fetch-proxy.fetch`})}catch(e){try{t.postMessage({type:`response-error`,error:`extension-delegate: connect failed — ${e instanceof Error?e.message:String(e)}`})}catch{}t.close();return}let o=!1,s=()=>{o=!0;try{a.disconnect()}catch{}try{t.close()}catch{}};a.onMessage.addListener(e=>{if(o)return;let n=e;try{t.postMessage(n)}catch{}(n.type===`response-end`||n.type===`response-error`)&&s()}),a.onDisconnect.addListener(()=>{if(!o){try{t.postMessage({type:`response-error`,error:`extension-delegate: fetch-proxy port disconnected`})}catch{}s()}}),a.postMessage({type:`request`,...e.request})}function S(e){typeof navigator>`u`||!navigator.serviceWorker||navigator.serviceWorker.addEventListener(`message`,t=>{if(!v(t.data))return;let n=t.ports?.[0];if(!n){y.warn(`delegated fetch envelope arrived without a response port`);return}x(t.data,n,e)})}function C(){if(r())return;let e=new Blob([`
|
|
3
|
-
let lastPong = Date.now();
|
|
4
|
-
let frozen = false;
|
|
5
|
-
setInterval(() => {
|
|
6
|
-
postMessage({ type: 'ping' });
|
|
7
|
-
const elapsed = Date.now() - lastPong;
|
|
8
|
-
if (elapsed > 5000 && !frozen) {
|
|
9
|
-
frozen = true;
|
|
10
|
-
postMessage({ type: 'freeze-detected', elapsed });
|
|
11
|
-
}
|
|
12
|
-
}, 2000);
|
|
13
|
-
self.onmessage = (e) => {
|
|
14
|
-
if (e.data.type === 'pong') {
|
|
15
|
-
lastPong = Date.now();
|
|
16
|
-
if (frozen) {
|
|
17
|
-
frozen = false;
|
|
18
|
-
postMessage({ type: 'freeze-recovered' });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
`],{type:`application/javascript`}),t=URL.createObjectURL(e),n=new Worker(t);URL.revokeObjectURL(t),n.onmessage=e=>{if(e.data.type===`ping`)n.postMessage({type:`pong`});else if(e.data.type===`freeze-detected`)console.error(`[freeze-watchdog] Main thread blocked for ${e.data.elapsed}ms — capturing trace on recovery`);else if(e.data.type===`freeze-recovered`){console.error(`[freeze-watchdog] Main thread recovered. Stack trace at recovery point:`),console.trace(`[freeze-watchdog] recovery stack`);let e=performance.getEntriesByType(`longtask`);e.length>0&&console.error(`[freeze-watchdog] Long tasks:`,e.map(e=>({duration:e.duration,startTime:e.startTime,name:e.name})))}},window.addEventListener(`beforeunload`,()=>{n.terminate()},{once:!0})}var w=null;function T(){return w||(w=p(),w)}var E=n(`boot/sw-registration`);async function D(e=null,t=null){let n=(()=>{try{return new URL(window.location.href).searchParams.get(`connect`)===`1`}catch{return!1}})();if(`serviceWorker`in navigator&&n&&await A())return`reload-pending`;if(!(`serviceWorker`in navigator)||n)return`ready`;try{if(await navigator.serviceWorker.register(`/preview-sw.js`,{scope:`/preview/`}),E.info(`Preview SW registered`),!r())try{await navigator.serviceWorker.register(`/llm-proxy-sw.js`,{scope:`/`}),E.info(`LLM-proxy SW registered`)}catch(e){E.error(`LLM-proxy SW registration failed — cross-origin LLM calls will hit CORS`,e)}if(navigator.serviceWorker.controller||await Promise.race([new Promise(e=>navigator.serviceWorker.addEventListener(`controllerchange`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,1500))]),!navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-sw-reloaded`))return sessionStorage.setItem(`slicc-sw-reloaded`,`1`),E.info(`Reloading once to gain SW control`),location.reload(),`reload-pending`;sessionStorage.removeItem(`slicc-sw-reloaded`),e&&(O(e),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{O(e)})),t&&(k(t),navigator.serviceWorker.addEventListener(`controllerchange`,()=>{k(t)}))}catch(e){E.error(`Preview SW registration failed — preview feature will not work`,e)}return`ready`}function O(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:g,apiBaseUrl:e.apiBaseUrl,token:e.token};try{t.postMessage(n)}catch(e){E.warn(`LLM-proxy SW bridge-config postMessage failed`,e)}}function k(e){let t=navigator.serviceWorker.controller;if(!t)return;let n={type:_,extensionId:e.extensionId};try{t.postMessage(n)}catch(e){E.warn(`LLM-proxy SW extension-delegate postMessage failed`,e)}}async function A(){try{let e=await navigator.serviceWorker.getRegistrations();if(await Promise.all(e.map(e=>e.unregister().catch(()=>!1))),navigator.serviceWorker.controller&&!sessionStorage.getItem(`slicc-connect-sw-cleared`))return sessionStorage.setItem(`slicc-connect-sw-cleared`,`1`),E.info(`connect mode: detaching from service worker (no proxy on worker origin)`),location.reload(),!0;sessionStorage.removeItem(`slicc-connect-sw-cleared`)}catch(e){E.error(`connect-mode SW cleanup failed`,e)}return!1}var j=n(`main`);function M(e){try{return new URL(e).searchParams.has(`ui-fixture`)}catch{return!1}}async function N(){s();let n=document.getElementById(`app`);if(!n)throw Error(`#app element not found`);let d=r(),f=l(window.location.href,d);if(M(window.location.href)){let{mountWcUiPreview:e}=await t(async()=>{let{mountWcUiPreview:e}=await import(`./wc-shell-CjsAYvKl.js`).then(e=>e.o);return{mountWcUiPreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]));e(n);return}C(),T(),f!==`connect`&&u().catch(()=>{});let p=o(window.location.search),m=f===`cherry`?null:c(window.location.search),h=!!m&&i();if(await D(p?{apiBaseUrl:p.apiBaseUrl,token:p.token}:null,h&&m?{extensionId:m.extensionId}:null)===`reload-pending`)return;if(!d&&(f===`follower`||f===`cherry`)){let{mountWcUiFollower:e}=await t(async()=>{let{mountWcUiFollower:e}=await import(`./wc-follower-D6e9PX3w.js`);return{mountWcUiFollower:e}},__vite__mapDeps([16,2,5,3,17,1,18,19,20,21,22,23,24,25,26,27,28,7,29,30,31,32,33,4,34,35,36,37,38,39,40,41,42,43,44,45,6,46,47,48,49,50,51,9,52,53,54,55,56,57,58,59,60,61,62,63,64,65,8,0,10,11,12,13,14,15,66,67,68,69,70,71]));return e(n,j,f)}await a(),e();let{bootstrapOAuthReplicas:g}=await t(async()=>{let{bootstrapOAuthReplicas:e}=await import(`./oauth-bootstrap-CB7ndbim.js`);return{bootstrapOAuthReplicas:e}},__vite__mapDeps([72,19,1,2,20,21,22,23,24,25,26,5,3,27,28,7,29,30,31,32,33,4,34,35,36,37,73,42,41,45,74,6,75]));if(await Promise.race([g().catch(e=>{j.error(`OAuth bootstrap failed`,e)}),new Promise(e=>setTimeout(e,1e4))]),f===`connect`){globalThis.__slicc_connect_mode=!0;let{loadLegacyStyles:e}=await t(async()=>{let{loadLegacyStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadLegacyStyles:e}},__vite__mapDeps([76,2]));await e();let{mountConnectSurface:r}=await t(async()=>{let{mountConnectSurface:e}=await import(`./connect-surface-BD3PjqRC.js`);return{mountConnectSurface:e}},__vite__mapDeps([77,19,1,2,20,21,22,23,24,25,26,5,3,27,28,7,29,30,31,32,33,4,34,35,36,37,73,42,41,45,74,6,75]));await r(n);return}if(d){let{mountWcUiExtension:e}=await t(async()=>{let{mountWcUiExtension:e}=await import(`./wc-extension-D1tE42E-.js`);return{mountWcUiExtension:e}},__vite__mapDeps([78,2,18,1,19,20,21,22,23,24,25,26,5,3,27,28,7,29,30,31,32,33,4,34,35,36,37,38,39,40,41,42,43,44,45,6,46,47,48,49,50,51,9,52,53,54,55,56,57,58,59,60,61,62,63,64,65,8,0,10,11,12,13,14,15,66,79]));return e(n,j,f===`extension-detached`)}h&&m&&S(m.extensionId);let{mountWcUiLive:_}=await t(async()=>{let{mountWcUiLive:e}=await import(`./wc-live-BlT_fwYf.js`).then(e=>e.i);return{mountWcUiLive:e}},__vite__mapDeps([18,1,19,2,20,21,22,23,24,25,26,5,3,27,28,7,29,30,31,32,33,4,34,35,36,37,38,39,40,41,42,43,44,45,6,46,47,48,49,50,51,9,52,53,54,55,56,57,58,59,60,61,62,63,64,65,8,0,10,11,12,13,14,15,66]));return _(n,j,f)}N().catch(e=>{j.error(`Fatal error`,e);let t=document.getElementById(`app`);t&&h(t,e)});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,z as t}from"./account-store-Dlc9jV2R.js";import{n}from"./event-stream-qbAZIAKV.js";import{p as r}from"./bedrock-camp-DS0ilb3O.js";import{n as i,o as a}from"./legacy-api-aliases-YuuBU-he.js";import"./provider-settings-FRENlwq7.js";import{n as o,r as s,t as c}from"./pkce-hGf_TEnP.js";const l=`openai-codex`,u=`app_EMoamEEZ73f0CkXaXp7hrann`,d=`https://auth.openai.com/oauth/token`,f=`http://localhost:1455/auth/callback`,p=`https://chatgpt.com/backend-api`,m=`openai-codex-responses`,h=`${l}-openai`,g={xhigh:`xhigh`,minimal:`low`},_=[{id:`gpt-5.5`,name:`GPT-5.5`,input:[`text`,`image`]},{id:`gpt-5.4`,name:`GPT-5.4`,input:[`text`,`image`]},{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,input:[`text`,`image`]},{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,input:[`text`,`image`]},{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,input:[`text`]},{id:`gpt-5.2`,name:`GPT-5.2`,input:[`text`,`image`]}].map(e=>({...e,api:`openai`,reasoning:!0,context_window:272e3,max_tokens:128e3,thinkingLevelMap:g}));async function v(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,client_id:u,code:e,code_verifier:t,redirect_uri:f}),r=await fetch(d,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw Error(`OpenAI Codex token exchange failed: ${r.status} ${await r.text()}`);let i=await r.json();if(!i.access_token)throw Error(`OpenAI Codex token exchange did not return access_token.`);return i}async function y(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:u}),n=await fetch(d,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[openai-codex] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[openai-codex] refresh error:`,e instanceof Error?e.message:String(e)),null}}function b(e){try{let t=e.split(`.`);if(t.length!==3)return;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);return n.length%4&&(n+=`=`.repeat(4-n.length%4)),JSON.parse(atob(n))}catch{return}}function x(e){let t=b(e)?.[`https://api.openai.com/profile`];return typeof t?.email==`string`?t.email:void 0}function S(e){let t=b(e)?.[`https://api.openai.com/auth`],n=x(e),r=typeof t?.chatgpt_plan_type==`string`?t.chatgpt_plan_type:void 0,i=r?r.charAt(0).toUpperCase()+r.slice(1):void 0;if(n&&i)return`${n} (${i})`;if(n)return n;if(i)return`ChatGPT ${i}`}async function C(e){let t=x(e);if(t)try{let e=t.trim().toLowerCase(),n=new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)));return`https://www.gravatar.com/avatar/${Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}?s=128&d=404`}catch{return}}function w(){return e().find(e=>e.providerId===l)}async function T(){let e=w();if(!e?.accessToken)throw Error("Not signed in to OpenAI Codex — run `oauth-token openai-codex` or /login");let n=e.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return e.accessToken;if(e.refreshToken){let n=await y(e.refreshToken);if(n?.access_token)return await t({providerId:l,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??3600)*1e3,baseUrl:p,userName:S(n.access_token),userAvatar:await C(n.access_token)}),n.access_token}return e.accessToken}function E(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:h,provider:l,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}const D=(e,t,r={})=>{let a=n();return(async()=>{try{let n=await T(),o=i({...e,baseUrl:p,api:m},t,{...r,apiKey:n,transport:`sse`});for await(let e of o)a.push(e);a.end()}catch(t){console.error(`[openai-codex] Stream error:`,t instanceof Error?t.message:String(t)),a.push(E(e,t)),a.end()}})(),a},O=(e,t,r)=>{let i=n();return(async()=>{try{let n=await T(),o=a({...e,baseUrl:p,api:m},t,{...r,apiKey:n,transport:`sse`});for await(let e of o)i.push(e);i.end()}catch(t){console.error(`[openai-codex] Stream error:`,t instanceof Error?t.message:String(t)),i.push(E(e,t)),i.end()}})(),i},k={id:l,name:`OpenAI Codex (ChatGPT Subscription)`,description:`GPT-5 Codex via your ChatGPT Plus/Pro/Business subscription — OAuth login, no API key needed. Default model is GPT-5.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-5.5`,oauthTokenDomains:[`chatgpt.com`,`*.chatgpt.com`,`auth.openai.com`,`api.openai.com`],getModelIds:()=>_,onOAuthLoginIntercepted:async(e,n,r)=>{let i=o(),a=await c(i),d=s(),m=new URL(`https://auth.openai.com/oauth/authorize`);m.searchParams.set(`response_type`,`code`),m.searchParams.set(`client_id`,u),m.searchParams.set(`redirect_uri`,f),m.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access`),m.searchParams.set(`code_challenge`,a),m.searchParams.set(`code_challenge_method`,`S256`),m.searchParams.set(`state`,d),m.searchParams.set(`id_token_add_organizations`,`true`),m.searchParams.set(`codex_cli_simplified_flow`,`true`),m.searchParams.set(`originator`,`pi`);let h=await e({authorizeUrl:m.toString(),redirectUriPattern:`http://localhost:1455/auth/callback*`,onCapture:`close`});if(!h)throw Error(`OpenAI Codex OAuth login was cancelled or timed out`);let g=new URL(h),_=g.searchParams.get(`code`),y=g.searchParams.get(`state`);if(!_)throw Error(`OpenAI Codex OAuth redirect did not include a code`);if(y!==d)throw Error(`OpenAI Codex OAuth state mismatch — possible CSRF, aborting`);let b=await v(_,i);await t({providerId:l,accessToken:b.access_token,refreshToken:b.refresh_token,tokenExpiresAt:Date.now()+(b.expires_in??3600)*1e3,baseUrl:p,userName:S(b.access_token),userAvatar:await C(b.access_token)}),n()},onOAuthLogout:async()=>{await t({providerId:l,accessToken:``})},onSilentRenew:async()=>{let e=w();if(!e?.refreshToken)return null;let n=await y(e.refreshToken);return n?.access_token?(await t({providerId:l,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??3600)*1e3,baseUrl:p,userName:S(n.access_token),userAvatar:await C(n.access_token)}),n.access_token):null}};function A(){r({api:h,stream:D,streamSimple:O})}export{k as config,A as register};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{s as t}from"./src-BcePBv4G.js";import{A as n,B as r,C as i,D as a,E as o,F as s,G as c,H as l,I as u,L as d,M as f,N as p,O as m,P as h,R as g,S as _,T as v,U as y,V as b,W as x,_ as S,a as C,b as ee,c as w,d as T,f as te,g as ne,h as re,i as E,j as ie,k as D,l as ae,m as oe,n as se,o as ce,p as le,s as O,t as k,u as A,v as j,w as M,x as ue,y as N,z as de}from"./account-store-Dlc9jV2R.js";import{a as fe,n as pe}from"./tray-follower-status-B191H1LK.js";import{i as me,o as P}from"./tray-runtime-config-C9Kq7Hrh.js";import{n as F}from"./clipboard-DuHpK59o.js";function I(e){let t=e.trim();if(!t)return`Paste a sync URL to continue.`;let n=null;try{n=new URL(t)}catch{return`That doesn’t look like a URL. Paste the full https://… link from the other browser.`}return n.protocol!==`https:`&&n.protocol!==`http:`?`Sync URLs must start with https://.`:n.pathname.includes(`/join/`)?`That sync URL is malformed. Re-copy it from the other browser and try again.`:`This URL is missing the /join/… capability. Use “Enable multi-browser sync” on the other browser.`}const L=e(`provider-settings`);function R(e,t){return z(e,t)}function z(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){L.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 B(){let e=JSON.stringify(A(),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 he(e){return e.length<=10?`****`:e.slice(0,4)+`...`+e.slice(-4)}function V(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}const H={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`]},U=`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 W(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 G(e){e.overlay.remove(),e.resolve((localStorage.getItem(`slicc_accounts`)??``)!==e.accountsBefore)}function K(e){e.options?.startInAddAccount?G(e):J(e)}function ge(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=he(e.apiKey),e.baseUrl&&(t.textContent+=` • `+e.baseUrl),t}async function q(e,t){let{createOAuthLauncher:n,createInterceptingOAuthLauncherForCurrentRuntime:r}=await import(`./oauth-service-bKcyWLK0.js`),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 _e(e,t){let n=document.createElement(`button`);return n.style.cssText=U,n.setAttribute(`aria-label`,`Edit account`),n.appendChild(V(H.pen)),W(n,`var(--s2-accent)`),n.addEventListener(`click`,()=>Z(e,t)),n}function ve(e,t,n){let r=document.createElement(`button`);return r.style.cssText=U,t.loggedOut===!0?(r.setAttribute(`aria-label`,`Log in`),r.setAttribute(`title`,`Log in`),r.appendChild(V(H.login)),W(r,`var(--s2-accent)`),r.addEventListener(`click`,()=>{q(n,()=>J(e))})):(r.setAttribute(`aria-label`,`Log out`),r.setAttribute(`title`,`Log out`),r.appendChild(V(H.logout)),W(r,`var(--s2-warning, #f59e0b)`),r.addEventListener(`click`,()=>{(async()=>{await D(t.providerId),J(e)})()})),r}function ye(e,t){let n=document.createElement(`button`);return n.style.cssText=U,n.setAttribute(`aria-label`,`Remove account`),n.appendChild(V(H.trash)),W(n,`var(--s2-negative)`),n.addEventListener(`click`,()=>{(async()=>{await h(t.providerId),J(e)})()}),n}function be(e,t){let n=i(t.providerId),r=document.createElement(`div`);r.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(ge(t)),r.appendChild(a);let s=document.createElement(`div`);return s.style.cssText=`display: flex; gap: 4px; margin-left: 12px; flex-shrink: 0;`,s.appendChild(_e(e,t)),n.isOAuth&&s.appendChild(ve(e,t,n)),s.appendChild(ye(e,t)),r.appendChild(s),r}function xe(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=pe(),a=i.state!==`inactive`,o=me(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`,()=>$(e)),t.appendChild(s),t}function J(e){let{dialog:t}=e;t.innerHTML=``;let n=document.createElement(`div`);n.className=`dialog__title`,n.textContent=`Accounts`,t.appendChild(n);let r=T();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(be(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`,()=>Z(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`,()=>B()),i.appendChild(o),t.appendChild(i),t.appendChild(xe(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`,()=>G(e)),t.appendChild(c)}function Se(e,t){let n=document.createElement(`select`);if(n.className=`dialog__input`,n.style.marginBottom=`8px`,t){let e=i(t.providerId),r=document.createElement(`option`);return r.value=t.providerId,r.textContent=e.name,n.appendChild(r),n.disabled=!0,n.style.opacity=`0.7`,n}let r=document.createElement(`option`);r.value=``,r.textContent=`Select a provider…`,r.disabled=!0,r.selected=!0,r.hidden=!0,n.appendChild(r);let a=new Set(T().map(e=>e.providerId)),o=[...S()].sort((e,t)=>i(e).name.localeCompare(i(t).name));for(let t of o){if(a.has(t))continue;if(e?.providerFilter){if(!e.providerFilter(t))continue}else if(!p(t))continue;let r=document.createElement(`option`);r.value=t,r.textContent=i(t).name,n.appendChild(r)}return n}function Ce(e,t){let n=Se(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 we(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 Te(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}=we(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 F(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 Ee(e,t){let n=t.providerSelect.value;if(!n)return;let r=i(n);if(!r.onOAuthLogin&&!r.onOAuthLoginIntercepted)return;let{status:a}=t.oauth,o=T().some(e=>e.providerId===n),s=N(n);if(r.requiresBaseUrl&&!t.baseUrlInput.value.trim()&&!s){a.textContent=`Base URL is required.`,a.style.color=`var(--slicc-cone)`,t.baseUrlInput.focus();return}r.requiresBaseUrl&&t.baseUrlInput.value.trim()&&E(n,``,t.baseUrlInput.value.trim()),a.textContent=`Opening login window...`;try{if(r.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-bKcyWLK0.js`),i=await n();if(!i)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await r.onOAuthLoginIntercepted(i,()=>K(e),{presentDeviceCode:Te(t.oauth)})}else if(r.onOAuthLogin){let{createOAuthLauncher:t}=await import(`./oauth-service-bKcyWLK0.js`),n=t();await r.onOAuthLogin(n,()=>K(e))}}catch(e){if(!o)try{await h(n)}catch{}L.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 De(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 Oe(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 ke(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 Y(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=i(t);e.providerDesc.textContent=n.description,De(e,n),Oe(e,n),ke(e,n)}function X(e,t){let n=t.providerSelect.value;if(!n)return;let r=i(n),a=(e,n)=>{t.errorEl.textContent=e,t.errorEl.style.display=``,n.focus()};if(r.requiresApiKey&&t.apiKeyInput.value.trim().length<5){a(`API key is required (at least 5 characters).`,t.apiKeyInput);return}if(r.requiresBaseUrl&&!t.baseUrlInput.value.trim()){a(`Base URL is required for this provider.`,t.baseUrlInput);return}if(r.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),K(e)}function Ae(e,t){let{dialog:n,options:r}=e,i=T().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`,()=>G(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`,()=>$(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`,()=>J(e)),n.appendChild(t)}}function Z(e,t){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=t?`Edit Account`:`Add Account`,n.appendChild(r);let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Provider:`,n.appendChild(a);let o=Ce(e.options,t);n.appendChild(o.providerSelect),n.appendChild(o.providerDesc),o.oauth.loginBtn.addEventListener(`click`,()=>{Ee(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`,Y(o)}),Y(o),o.saveBtn.addEventListener(`click`,()=>X(e,o));let s=t=>{t.key===`Enter`&&X(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),Ae(e,!!t),requestAnimationFrame(()=>{let e=o.providerSelect.value;if(!e)return;let t=i(e);t.requiresApiKey?o.apiKeyInput.focus():t.requiresBaseUrl&&o.baseUrlInput.focus()})}function Q(e,t,n){z(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 je(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=P(window.localStorage,t);if(!n){o.textContent=`Invalid sync URL.`,o.style.display=``,o.style.color=`var(--slicc-cone)`;return}Q(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`,()=>Z(e)),n.appendChild(c)}function Me(){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 $(e){let{dialog:n}=e;n.innerHTML=``;let r=document.createElement(`div`);r.className=`dialog__title`,r.textContent=`Connect to another browser`,n.appendChild(r);let i=document.createElement(`div`);i.className=`dialog__desc`,i.style.marginBottom=`12px`,i.textContent=`Paste a multi-browser sync URL to mirror another SLICC browser.`,n.appendChild(i),n.appendChild(Me());let a=document.createElement(`div`);a.className=`dialog__desc`,a.textContent=`Sync URL:`,n.appendChild(a);let o=document.createElement(`input`);o.className=`dialog__input`,o.type=`text`,o.autocomplete=`off`,o.spellcheck=!1,o.placeholder=`${t}/join/<token>`,n.appendChild(o);let s=document.createElement(`div`);s.style.cssText=`color: var(--slicc-cone); font-size: 12px; margin-bottom: 8px; display: none;`,n.appendChild(s);let c=document.createElement(`div`);c.style.cssText=`font-size: 12px; color: var(--s2-content-secondary); margin-bottom: 8px; display: none;`;let l=document.createElement(`button`);l.className=`dialog__btn`,l.textContent=`Connect`,l.addEventListener(`click`,()=>{let t=o.value.trim();if(!t){s.textContent=`Paste a sync URL to continue.`,s.style.display=``,o.focus();return}let n=P(window.localStorage,t);if(!n){s.textContent=I(t),s.style.display=``,o.focus();return}Q(e,n.joinUrl,c)}),n.appendChild(l),n.appendChild(c);let u=document.createElement(`button`);u.className=`dialog__btn dialog__btn--secondary`,u.style.marginTop=`8px`,u.textContent=`Back`,u.addEventListener(`click`,()=>Z(e)),n.appendChild(u),o.addEventListener(`input`,()=>{s.style.display=`none`}),o.addEventListener(`keydown`,e=>{e.key===`Enter`&&l.click()}),requestAnimationFrame(()=>o.focus())}function Ne(e){return fe(`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?Z(i):T().length>0?J(i):e?.autoJoinUrl?je(i,e.autoJoinUrl):e?.preferTrayJoin?$(i):Z(i),n.appendChild(r),document.body.appendChild(n)})}export{k as ACCOUNTS_KEY,se as __test__,E as addAccount,C as applyProviderDefaults,ce as clearAllSettings,O as clearApiKey,w as clearBaseUrl,ae as clearSelectedProvider,I as describeInvalidJoinUrl,B as downloadProviders,A as exportProviders,T as getAccounts,te as getAllAvailableModels,le as getAllExtraOAuthDomains,oe as getApiKey,re as getApiKeyForProvider,ne as getApiVersionForProvider,S as getAvailableProviders,j as getBaseUrl,N as getBaseUrlForProvider,ee as getDeploymentForProvider,ue as getExtraOAuthDomains,_ as getOAuthAccountInfo,i as getProviderConfig,M as getProviderModels,v as getRawApiKeyForProvider,o as getSelectedModelId,a as getSelectedProvider,m as isModelHiddenFromPicker,D as logoutOAuthAccount,n as maskOAuthTokenWithRetry,ie as migrateLegacyAuthOnlySelection,f as persistOAuthMaskViaServiceWorker,p as providerOffersLlmModels,q as reloginOAuthAccount,h as removeAccount,s as resolveCurrentModel,u as resolveModelById,d as resolveModelByShorthand,g as resolveModelIdForScoop,de as saveOAuthAccount,r as setApiKey,b as setBaseUrl,l as setExtraOAuthDomains,y as setExtraOAuthDomainsAsync,x as setSelectedModelId,c as setSelectedProvider,Ne as showProviderSettings,R as testOnlyDispatchTrayJoinWithFailureFeedback};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-CwkA0GJk.js";export{e as readMcpAuthEntries};
|
|
@@ -1,2 +0,0 @@
|
|
|
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-yMljNHwr.js","assets/runtime-mode-BweZnYql.js","assets/src-DoFhVmQT.js","assets/electron-overlay-route-CjT6k9Df.js","assets/messages-BD4p8GuF.js","assets/tray-runtime-config-9kTxza5l.js","assets/proxied-fetch-CfcFb0B0.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-BDMuV-1a.js","assets/db-ysOO0kLr.js","assets/cdp-BEmpfM7z.js","assets/navigation-watcher-DkN9hU8i.js","assets/handoff-link-Dmaaww5x.js","assets/remote-cdp-transport-BWNdvwP2.js","assets/tray-sync-protocol-DdoErB3E.js","assets/main-cherry-DCIO_2RP.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-CfcFb0B0.js";import{t as a}from"./runtime-env-DH4NDw4t.js";import{t as o}from"./bridge-launch-params-QY3l_LbM.js";import"./messages-BD4p8GuF.js";import{l as s,o as c,t as l}from"./tray-runtime-config-9kTxza5l.js";import{n as u}from"./runtime-mode-BweZnYql.js";import{t as d}from"./setup-sudo-P6vrIqoV.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-yMljNHwr.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-BEmpfM7z.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 c(),I=u(f,F!==null)?l:null;if(await s({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-DCIO_2RP.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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`https://www.sliccy.ai`,t=`slicc.bridge.v1.`,n=`bridgeToken`,r=`bridge`;new URL(e).hostname,[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);var i=`slicc-transcript`,a=[`canonical-agent-history-unavailable`,`tool-data-may-be-truncated`,`model-metadata-unavailable`,`scoop-history-unavailable`,`attachment-file-missing`,`attachment-association-unavailable`,`complete-snapshot-unavailable`],o=new Set([`permission-denied`,`redaction-unavailable`,`session-not-found`,`transfer-aborted`,`transfer-corrupt`,`schema-invalid`,`attachment-unreadable`]),s=class extends Error{code;constructor(e){super(e),this.code=e,this.name=`TranscriptExportError`}},c=new Set(a),l=/^[0-9a-fA-F]{64}$/,u=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;function d(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ee(e){return typeof e==`string`&&l.test(e)}function te(e){return u.test(e)&&Number.isFinite(Date.parse(e))}function f(e,t){let n=t.map(e=>`"${e}"`),r=n[n.length-1];return n.length===2?`${e} must be ${n[0]} or ${r}`:`${e} must be ${n.slice(0,-1).join(`, `)}, or ${r}`}function p(e,t,n){return typeof e!=`string`||!t.includes(e)?{ok:!1,error:f(n,t)}:{ok:!0}}function m(e,t,n){for(let r=0;r<e.length;r++){let i=t(e[r],`${n}[${r}]`);if(!i.ok)return i}return{ok:!0}}function h(e,t){let n=e.type;if(n===`text`){if(typeof e.text!=`string`)return{ok:!1,error:`${t}.text must be a string`}}else if(n===`tool-call`){if(typeof e.id!=`string`||e.id===``)return{ok:!1,error:`${t}.id must be a non-empty string`};if(typeof e.name!=`string`||e.name===``)return{ok:!1,error:`${t}.name must be a non-empty string`};if(!(`input`in e))return{ok:!1,error:`${t}.input must be present`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function g(e,t){if(!d(e))return{ok:!1,error:`${t} must be a non-null object`};let n=p(e.type,[`text`,`tool-call`,`attachment-ref`],`${t}.type`);return n.ok?h(e,t):n}function _(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isInteger(r)||r<0)return{ok:!1,error:`${t}.${n} must be a non-negative integer`}}return{ok:!0}}function v(e,t){for(let n of[`input`,`output`,`cacheRead`,`cacheWrite`,`total`]){let r=e[n];if(typeof r!=`number`)return{ok:!1,error:`${t}.${n} must be a number`};if(!Number.isFinite(r)||r<0)return{ok:!1,error:`${t}.${n} must be a finite non-negative number`}}return{ok:!0}}function y(e,t){let n=_(e,t);if(!n.ok)return n;let r=e.cost;return d(r)?v(r,`${t}.cost`):{ok:!1,error:`${t}.cost must be a non-null object`}}function b(e,t){if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.sequence!=`number`)return{ok:!1,error:`${t}.sequence must be a number`};let n=e.sequence;return!Number.isInteger(n)||n<1?{ok:!1,error:`${t}.sequence must be a positive integer`}:typeof e.timestamp==`string`?te(e.timestamp)?{ok:!0}:{ok:!1,error:`${t}.timestamp must be a valid ISO 8601 date-time string`}:{ok:!1,error:`${t}.timestamp must be a string`}}function x(e,t){let n=e.toolCallId;return typeof n!=`string`||n===``?{ok:!1,error:`${t}.toolCallId must be a non-empty string for tool-result messages`}:{ok:!0}}function S(e,t){let n=e.usage;return n===void 0?{ok:!0}:d(n)?y(n,`${t}.usage`):{ok:!1,error:`${t}.usage must be a non-null object`}}function C(e,t){if(!d(e))return{ok:!1,error:`${t} must be a non-null object`};let n=p(e.role,[`user`,`assistant`,`tool-result`],`${t}.role`);if(!n.ok)return n;if(e.role===`tool-result`){let n=x(e,t);if(!n.ok)return n}let r=b(e,t);if(!r.ok)return r;let i=e.content;if(!Array.isArray(i))return{ok:!1,error:`${t}.content must be an array`};let a=m(i,g,`${t}.content`);return a.ok?S(e,t):a}function w(e,t){if(!d(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.name!=`string`)return{ok:!1,error:`${t}.name must be a string`};let n=p(e.kind,[`cone`,`scoop`],`${t}.kind`);if(!n.ok)return n;let r=e.messages;return Array.isArray(r)?m(r,C,`${t}.messages`):{ok:!1,error:`${t}.messages must be an array`}}function T(e,t){for(let n of[`id`,`path`,`originalName`,`mimeType`,`sha256`,`sourceConversationId`,`sourceMessageId`])if(typeof e[n]!=`string`)return{ok:!1,error:`${t}.${n} must be a string`};return{ok:!0}}function E(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?{ok:!1,error:`${t}.path must be non-empty when present`}:ee(r)?!Number.isInteger(i)||i<0?{ok:!1,error:`${t}.byteLength must be a non-negative integer when present`}:e.missingReason===void 0?{ok:!0}:{ok:!1,error:`${t}.missingReason must be absent when present is true`}:{ok:!1,error:`${t}.sha256 must be a 64-char hex string when present`}}var D=[`attachment-file-missing`,`attachment-association-unavailable`];function O(e,t){let n=e.path,r=e.sha256,i=e.byteLength;return n===``?r===``?i===0?p(e.missingReason,D,`${t}.missingReason`):{ok:!1,error:`${t}.byteLength must be zero when not present`}:{ok:!1,error:`${t}.sha256 must be empty when not present`}:{ok:!1,error:`${t}.path must be empty when not present`}}function k(e,t){return e.present?E(e,t):O(e,t)}function A(e,t){if(!d(e))return{ok:!1,error:`${t} must be a non-null object`};let n=T(e,t);if(!n.ok)return n;if(typeof e.byteLength!=`number`)return{ok:!1,error:`${t}.byteLength must be a number`};if(typeof e.present!=`boolean`)return{ok:!1,error:`${t}.present must be a boolean`};let r=p(e.handling,[`text-redacted`,`binary-unchanged`],`${t}.handling`);return r.ok?k(e,t):r}function j(e,t){let n=p(e.kind,[`json`,`attachment`],`${t}.kind`);if(!n.ok)return n;if(e.kind===`json`){if(typeof e.pointer!=`string`)return{ok:!1,error:`${t}.pointer must be a string`};let n=e.pointer;if(n!==``&&!n.startsWith(`/`))return{ok:!1,error:`${t}.pointer must be a valid RFC 6901 JSON pointer`}}else if(typeof e.attachmentId!=`string`||e.attachmentId===``)return{ok:!1,error:`${t}.attachmentId must be a non-empty string`};return{ok:!0}}function M(e,t){if(!d(e))return{ok:!1,error:`${t} must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`${t}.id must be a string`};if(typeof e.category!=`string`)return{ok:!1,error:`${t}.category must be a string`};let n=p(e.detector,[`known-secret`,`credential-pattern`,`pre-obfuscated`],`${t}.detector`);if(!n.ok)return n;let r=e.target;return d(r)?j(r,`${t}.target`):{ok:!1,error:`${t}.target must be a non-null object`}}function N(e,t){return d(e)?typeof e.sourceConversationId==`string`?typeof e.targetConversationId==`string`?{ok:!0}:{ok:!1,error:`${t}.targetConversationId must be a string`}:{ok:!1,error:`${t}.sourceConversationId must be a string`}:{ok:!1,error:`${t} must be a non-null object`}}function P(e,t){return typeof e!=`string`||!c.has(e)?{ok:!1,error:`${t} is not a valid completeness reason`}:{ok:!0}}function F(e){if(!d(e))return{ok:!1,error:`export must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`export.id must be a string`};if(typeof e.generatedAt!=`string`)return{ok:!1,error:`export.generatedAt must be a string`};if(e.format!==`slicc-transcript`)return{ok:!1,error:`export.format must equal "slicc-transcript"`};let t=e.producer;return d(t)?t.application===`slicc`?typeof t.version==`string`?{ok:!0}:{ok:!1,error:`export.producer.version must be a string`}:{ok:!1,error:`export.producer.application must equal "slicc"`}:{ok:!1,error:`export.producer must be a non-null object`}}function I(e){if(!d(e))return{ok:!1,error:`session.completeness must be a non-null object`};let t=p(e.status,[`complete`,`partial`],`session.completeness.status`);return t.ok?Array.isArray(e.missing)?m(e.missing,P,`session.completeness.missing`):{ok:!1,error:`session.completeness.missing must be an array`}:t}function L(e){if(!d(e))return{ok:!1,error:`session must be a non-null object`};if(typeof e.id!=`string`)return{ok:!1,error:`session.id must be a string`};if(typeof e.title!=`string`)return{ok:!1,error:`session.title must be a string`};let t=p(e.state,[`active`,`frozen`],`session.state`);return t.ok?I(e.completeness):t}function R(e){if(!d(e))return{ok:!1,error:`privacy must be a non-null object`};if(e.reasoningExcluded!==!0)return{ok:!1,error:`privacy.reasoningExcluded must be true`};let t=e.excludedReasoningBlocks;if(typeof t!=`number`)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a number`};if(!Number.isInteger(t)||t<0)return{ok:!1,error:`privacy.excludedReasoningBlocks must be a non-negative integer`};if(e.binaryAttachments!==`included-unchanged`)return{ok:!1,error:`privacy.binaryAttachments must equal "included-unchanged"`};if(!d(e.redactionCounts))return{ok:!1,error:`privacy.redactionCounts must be a non-null object`};let n=e.redactions;return Array.isArray(n)?m(n,M,`privacy.redactions`):{ok:!1,error:`privacy.redactions must be an array`}}function ne(e){let t=e.conversations;if(!Array.isArray(t))return{ok:!1,error:`conversations must be an array`};let n=m(t,w,`conversations`);if(!n.ok)return n;let r=e.delegations;if(!Array.isArray(r))return{ok:!1,error:`delegations must be an array`};let i=m(r,N,`delegations`);if(!i.ok)return i;let a=e.attachments;return Array.isArray(a)?m(a,A,`attachments`):{ok:!1,error:`attachments must be an array`}}function z(e){let t=new Set,n=new Set;for(let r of e){if(!d(r)||typeof r.id!=`string`)continue;if(t.has(r.id))return{ok:!1,error:`duplicate conversation id "${r.id}"`};t.add(r.id);let e=r.messages;if(Array.isArray(e)){for(let t of e)if(!(!d(t)||typeof t.id!=`string`)){if(n.has(t.id))return{ok:!1,error:`duplicate message id "${t.id}"`};n.add(t.id)}}}return{ok:!0}}function B(e){for(let t of e){if(!d(t))continue;let e=t.messages;if(!Array.isArray(e))continue;let n=typeof t.id==`string`?t.id:`?`,r=0;for(let t of e){if(!d(t)||typeof t.sequence!=`number`)continue;let e=t.sequence;if(e<=r)return{ok:!1,error:`sequences in conversation "${n}" must be strictly increasing`};r=e}}return{ok:!0}}function V(e){let t=[];for(let n of e){if(!d(n))continue;let e=n.content;if(Array.isArray(e))for(let n of e)d(n)&&n.type===`tool-call`&&typeof n.id==`string`&&t.push(n.id)}return t}function H(e){let t=new Set;for(let n of e){if(!d(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of V(e))t.add(n)}return t}function U(e,t){for(let n of e){if(!d(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!d(n)||n.role!==`tool-result`)continue;let e=n.toolCallId;if(!(typeof e!=`string`||e===``)&&!t.has(e))return{ok:!1,error:`tool-result message references unknown toolCallId "${e}"`}}}return{ok:!0}}function W(e){return U(e,H(e))}function G(e,t){for(let n of e){if(!d(n)||n.type!==`attachment-ref`)continue;let e=n.attachmentId;if(typeof e!=`string`||!t.has(e))return{ok:!1,error:`attachment-ref references unknown attachmentId "${e}"`}}return{ok:!0}}function K(e,t){for(let n of e){if(!d(n))continue;let e=n.messages;if(Array.isArray(e))for(let n of e){if(!d(n))continue;let e=n.content;if(!Array.isArray(e))continue;let r=G(e,t);if(!r.ok)return r}}return{ok:!0}}function q(e,t){let n=new Set;for(let e of t)d(e)&&typeof e.id==`string`&&n.add(e.id);return K(e,n)}function J(e){let t=new Map;for(let n of e){if(!d(n)||typeof n.id!=`string`)continue;let e=new Set,r=n.messages;if(Array.isArray(r))for(let t of r)d(t)&&typeof t.id==`string`&&e.add(t.id);t.set(n.id,e)}return t}function Y(e,t){let n=J(t);for(let t=0;t<e.length;t++){let r=e[t];if(!d(r))continue;let i=r.sourceConversationId,a=r.sourceMessageId;if(typeof i!=`string`||typeof a!=`string`)continue;let o=n.get(i);if(!o)return{ok:!1,error:`attachments[${t}].sourceConversationId "${i}" does not exist`};if(!o.has(a))return{ok:!1,error:`attachments[${t}].sourceMessageId "${a}" does not exist in conversation "${i}"`}}return{ok:!0}}function X(e){let t=new Map;for(let n of e){if(!d(n)||typeof n.id!=`string`)continue;let e=Array.isArray(n.messages)?n.messages:[];t.set(n.id,new Set(V(e)))}return t}function Z(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];if(!d(i))continue;let a=i.sourceConversationId,o=i.targetConversationId;if(typeof a!=`string`||!t.has(a))return{ok:!1,error:`delegations[${r}].sourceConversationId "${a}" does not exist`};if(typeof o!=`string`||!t.has(o))return{ok:!1,error:`delegations[${r}].targetConversationId "${o}" does not exist`};let s=i.toolCallId;if(typeof s==`string`&&s!==``&&!n.get(a)?.has(s))return{ok:!1,error:`delegations[${r}].toolCallId "${s}" does not exist in source conversation "${a}"`}}return{ok:!0}}function re(e,t){let n=new Set;for(let e of t)d(e)&&typeof e.id==`string`&&n.add(e.id);return Z(e,n,X(t))}function ie(e,t,n){if(e.kind!==`attachment`)return{ok:!0};let r=e.attachmentId;return typeof r!=`string`||!t.has(r)?{ok:!1,error:`${n}.attachmentId "${r}" does not reference a known attachment`}:{ok:!0}}function ae(e,t){let n=new Set;for(let e of t)d(e)&&typeof e.id==`string`&&n.add(e.id);for(let t=0;t<e.length;t++){let r=e[t];if(!d(r))continue;let i=r.target;if(!d(i))continue;let a=ie(i,n,`privacy.redactions[${t}].target`);if(!a.ok)return a}return{ok:!0}}function oe(e){let t=e.conversations,n=e.attachments,r=e.delegations,i=e.privacy,a=Array.isArray(i?.redactions)?i.redactions:[],o=z(t);if(!o.ok)return o;let s=B(t);if(!s.ok)return s;let c=W(t);if(!c.ok)return c;let l=q(t,n);if(!l.ok)return l;let u=Y(n,t);if(!u.ok)return u;let d=re(r,t);return d.ok?ae(a,n):d}function se(e){let t=ne(e);return t.ok?oe(e):t}function Q(e){if(!d(e))return{ok:!1,error:`document must be a non-null object`};if(e.schemaVersion!==1)return{ok:!1,error:`schemaVersion must equal 1`};let t=F(e.export);if(!t.ok)return t;let n=L(e.session);if(!n.ok)return n;let r=R(e.privacy);return r.ok?se(e):r}var ce=[{category:`jwt`,source:String.raw`ey[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+`,flags:`g`},{category:`private-key`,source:`-----BEGIN [A-Z ]* PRIVATE KEY-----`+String.raw`[\s\S]*?`+`-----END [A-Z ]* PRIVATE KEY-----`,flags:`g`},{category:`bearer-token`,source:`Bearer [A-Za-z0-9._~+/=!-]+`,flags:`gi`},{category:`api-key`,source:`(?:sk-(?:live|test|prod|proj)-[A-Za-z0-9]{8,}|sk-ant-[A-Za-z0-9-]{8,}|xoxb-[A-Za-z0-9-]{10,}|xoxp-[A-Za-z0-9-]{10,}|AKIA[A-Z0-9]{16}|ghp_[A-Za-z0-9]{36}|hf_[A-Za-z0-9]{34})`,flags:`g`},{category:`password`,source:String.raw`\b(?:password|passwd|token|secret|api_key)\s*[=:]\s*\S+`,flags:`gi`}],le=`⟦REDACTED:[^⟧]*⟧`;function $(e,t){return e.start<t.end&&t.start<e.end}function ue(e){let t=[];for(let n of e.matchAll(new RegExp(le,`g`))){let e=n.index;e!==void 0&&t.push({start:e,end:e+n[0].length})}return t}function de(e,t,n=1){let r=ue(e),i=[],a=n;for(let{category:n,source:o,flags:s}of ce)for(let c of e.matchAll(new RegExp(o,s))){let e=c.index;if(e===void 0)continue;let o={start:e,end:e+c[0].length};r.some(e=>$(e,o))||i.some(e=>$(e,o))||i.push({...o,id:`${t}${a++}`,category:n})}i.sort((e,t)=>e.start-t.start);let o=``,s=0;for(let{start:t,end:n,id:r,category:a}of i)o+=e.slice(s,t),o+=`⟦REDACTED:${a}:${r}⟧`,s=n;return o+=e.slice(s),{text:o,matches:i.map(({id:e,category:t})=>({id:e,category:t})),nextId:a}}export{Q as a,r as c,o as i,e as l,i as n,t as o,s as r,n as s,de as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./runtime-env-byAg9ij-.js";let t=null;function n(e){t=e}function r(e,n){t?.(e,n)}let i=null;function a(e){i=e}function o(e,t,n){i?.(e,t,n)}let s=null;function c(e){s=e}function l(e){s?.(e)}function u(e){return typeof e==`string`&&e.startsWith(`No API key configured`)}function d(e){if(!e)return!1;let t=e.toLowerCase();return t.includes(`the provided model identifier is invalid`)||t.includes(`model not allowed`)}function f(e){return e?e.toLowerCase().includes(`please log in again`):!1}function p(e){return u(e)||d(e)||f(e)}let m=null,h=!1;function g(){return typeof window>`u`||typeof document>`u`||document?.documentElement===void 0||typeof localStorage?.getItem!=`function`}function _(){return g()?`standalone-worker`:e()?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function v(){if(!h&&!(typeof localStorage<`u`&&typeof localStorage?.getItem==`function`&&localStorage.getItem(`telemetry-disabled`)===`true`)){c(y),a(S),n(b);try{let e=_();e!==`standalone-worker`&&typeof window<`u`?window.RUM_GENERATION=`slicc-${e}`:globalThis.RUM_GENERATION=`slicc-${e}`,e===`standalone-worker`?(m=(await import(`./rum-worker-CwmNSpjO.js`)).default,self.addEventListener(`error`,e=>{let t=e;b(`js`,t.error?.message??t.message??``)}),self.addEventListener(`unhandledrejection`,e=>{let t=e.reason;b(`js`,t instanceof Error?t.message:String(t))})):e===`extension`?(m=(await import(`./rum-DW84CvBs.js`)).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{let t=e;b(`js`,t.error?.message??t.message??``)}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;b(`js`,t instanceof Error?t.message:String(t))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),O(),m=(await import(`./src-C9oNvq2b.js`)).sampleRUM),h=!0,m&&m(`navigate`,{source:typeof document<`u`?document.referrer:``,target:e})}catch{}}}function y(e){m?.(`fill`,{source:e})}function b(e,t){let n=t;if(typeof n==`string`){if(p(n))return;let e=w(n);if(e===null)return;n=e}m?.(`error`,{source:e,target:n})}function x(e){m?.(`signup`,{source:e})}function S(e,t,n){if(e===`error`){let e=n;if(typeof e==`string`){if(p(e))return;let t=w(e);if(t===null)return;e=t}m?.(`error`,{source:`scoop:${t}`,target:e});return}m?.(e===`spawn`?`enter`:e===`feed`?`convert`:`leave`,{source:t,target:`scoop-${e}`})}function C(e){return e.includes(`@vite/client`)||e.includes(`@vite/env`)||e.includes(`[vite]`)||/https?:\/\/localhost:\d+\/@vite\//.test(e)||/\/__vite_ping/.test(e)}function w(e){let t=e??``;if(t.includes(`@vite/`)||t.includes(`[vite]`)||t.includes(`__vite_ping`)){let e=t.split(`
|
|
2
|
-
`).filter(e=>!C(e)).join(`
|
|
3
|
-
`).trim();return e?e.slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`):null}return t.slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}const T=Symbol.for(`slicc.telemetry.sendBeacon.wrapped`);function E(e){if(typeof e!=`string`)return{kind:`absent`};let t=w(e);return t===null?{kind:`noise`}:{kind:`kept`,value:t,mutated:t!==e}}function D(e){let t=E(e.source),n=E(e.target),r=t.kind!==`kept`,i=n.kind!==`kept`;if((t.kind!==`absent`||n.kind!==`absent`)&&r&&i)return!0;let a=!1;return t.kind===`kept`?t.mutated&&(e.source=t.value,a=!0):t.kind===`noise`&&(e.source=``,a=!0),n.kind===`kept`?n.mutated&&(e.target=n.value,a=!0):n.kind===`noise`&&(e.target=``,a=!0),a?JSON.stringify(e):null}function O(){if(typeof navigator>`u`||typeof navigator.sendBeacon!=`function`)return;let e=navigator.sendBeacon;if(e[T])return;let t=e.bind(navigator),n=((e,n)=>{try{let r=typeof n==`string`?n:n instanceof ArrayBuffer?new TextDecoder().decode(n):null;if(r&&r.length>0&&r.charCodeAt(0)===123){let n=JSON.parse(r);if(n?.checkpoint===`error`){let r=D(n);if(r===!0)return!0;if(r!==null)return t(e,r)}}}catch{}return t(e,n)});n[T]=!0,navigator.sendBeacon=n}let k={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function A(){return{...k}}function j(){let e=A();if(e.state!==`inactive`)return e;try{let e=globalThis.localStorage?.getItem(`slicc.followerTrayStatus`);if(e){let t=JSON.parse(e);if(t?.state&&t.state!==`inactive`)return t}}catch{}return e}const M=new Set;function N(e){return M.add(e),()=>{M.delete(e)}}export{x as a,r as c,v as i,A as n,l as o,N as r,o as s,j as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./src-DoFhVmQT.js";import{o as t,t as n}from"./proxied-fetch-CfcFb0B0.js";import"./messages-BD4p8GuF.js";var r=`tray`,i=`trayWorkerUrl`,a=`lead`;function o(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function s(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.toString(),r=t.pathname.split(`/`).filter(Boolean);if(r.length<2||r.at(-2)!==`join`)return null;let[i,a,...s]=decodeURIComponent(r.at(-1)).split(`.`);if(!i||!a||s.length>0)return null;r.splice(-2,2),t.pathname=r.length>0?`/${r.join(`/`)}`:`/`;let c=o(t.toString());return c?{workerBaseUrl:c,trayId:i,joinUrl:n}:null}catch{return null}}function c(e,t){let n=new URL(e);return n.searchParams.delete(i),n.searchParams.delete(a),n.searchParams.set(r,t),n.toString()}var l=`slicc.trayWorkerBaseUrl`,u=`slicc.trayJoinUrl`,d=e;function f(e,t){let n=o(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t.replace(/^\/+/,``);return new URL(r,`${n}/`).toString()}function p(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=null;if(n.length>=2&&n.at(-2)===`tray`)r=decodeURIComponent(n.at(-1)),n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`;else if(n.length>=2&&n.at(-2)===`join`)return s(t.toString());let i=o(t.toString());return i?{workerBaseUrl:i,trayId:r,joinUrl:null}:null}catch{return null}}function m(e){let t=p(e);return t?.joinUrl?t:null}function h(e,t){let n=m(t);return n?(e.setItem(u,n.joinUrl),e.setItem(l,n.workerBaseUrl),n):null}function g(e){return!!m(e?.getItem(`slicc.trayJoinUrl`)??null)}function _(e,t){let n=!1;try{let t=new URL(e),i=t.searchParams.get(r);if(i!==null){n=!0;let e=p(i);if(e?.joinUrl)return e.joinUrl}t.searchParams.get(`slicc`)===`leader`&&(n=!0)}catch{}let i=p(e);return i?.joinUrl?i.joinUrl:(i?.trayId&&(n=!0),n?null:m(t?.getItem(`slicc.trayJoinUrl`)??null)?.joinUrl??null)}function v(e){try{let t=new URL(e);t.searchParams.delete(r);let n=t.pathname.split(`/`).filter(Boolean);return n.length>=2&&n.at(-2)===`join`&&(n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`),t.toString()}catch{return e}}function y(e,t){let n=o(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let r=t?.trim();return r?new URL(`tray/${encodeURIComponent(r)}`,`${n}/`).toString():n}function b(e,t,n){return c(e,y(t,n))}async function x(e){let t=w(e.locationHref);if(t)return e.storage&&(t.joinUrl&&e.storage.setItem(u,t.joinUrl),e.storage.setItem(l,t.workerBaseUrl)),t;let n=m(e.storage?.getItem(`slicc.trayJoinUrl`)??null);if(n)return e.storage&&e.storage.setItem(l,n.workerBaseUrl),n;let r=e.runtimeConfigFetcher?await T(e.runtimeConfigFetcher):null;if(r?.joinConfig)return e.storage&&(e.storage.setItem(u,r.joinConfig.joinUrl),e.storage.setItem(l,r.joinConfig.workerBaseUrl)),r.joinConfig;let i=r?.workerBaseUrl??null,a=o(e.storage?.getItem(`slicc.trayWorkerBaseUrl`)??null),s=o(e.envBaseUrl??null),c=o(e.defaultWorkerBaseUrl??null),d=i??a??s??c;return d?(e.storage&&e.storage.setItem(l,d),{workerBaseUrl:d,trayId:null,joinUrl:null}):null}async function S(e){return(await x(e))?.workerBaseUrl??null}async function C(e=fetch){try{let r=await e(t(`/api/runtime-config`),{cache:`no-store`,headers:n()});return r.ok?await r.json():null}catch{return null}}function w(e){try{let t=new URL(e),n=p(t.searchParams.get(r));if(n)return n;let c=p(t.searchParams.get(a));if(c)return c;let l=o(t.searchParams.get(i));return l?{workerBaseUrl:l,trayId:null,joinUrl:null}:s(e)||null}catch{return null}}async function T(e){let t=await e();if(!t)return null;let n=m(t.trayJoinUrl??null);return{workerBaseUrl:o(t.trayWorkerBaseUrl??null),joinConfig:n}}export{f as a,_ as c,h as d,v as f,b as i,x as l,u as n,C as o,l as r,g as s,d as t,S as u};
|