sliccy 5.8.2 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/assets/{account-store-DijjUUOO.js → account-store-BwyITiA-.js} +2 -2
- package/dist/ui/assets/{account-store-B-s6jYj8.js → account-store-FpbxpH9l.js} +2 -2
- package/dist/ui/assets/adobe-DVP_PpVZ.js +2 -0
- package/dist/ui/assets/adobe-Ia0Tw858.js +1 -0
- package/dist/ui/assets/{adobe-oauth-state-DKPFiT3Z.js → adobe-oauth-state-C5CvRw3D.js} +1 -1
- package/dist/ui/assets/{agent-message-to-chat-vs9VtDPM.js → agent-message-to-chat-C2HxC1av.js} +1 -1
- package/dist/ui/assets/{apps-Cnkk0H7i.js → apps-BC_uzGPk.js} +1 -1
- package/dist/ui/assets/{azure-openai-CKqTGpmc.js → azure-openai-CeyHnOWV.js} +1 -1
- package/dist/ui/assets/{azure-openai-CuOEj0Ax.js → azure-openai-DhWqRuHj.js} +1 -1
- package/dist/ui/assets/composer-speech-BVc9a9eb.js +1 -0
- package/dist/ui/assets/{connect-surface-DdLRPagY.js → connect-surface-i04RiVzm.js} +1 -1
- package/dist/ui/assets/dip-DafTK_vn.js +1 -0
- package/dist/ui/assets/{dist-CozeEmvE.js → dist-BLEzW5r9.js} +1 -1
- package/dist/ui/assets/{dist-Cn0Bok2z.js → dist-BitLfk9F.js} +1 -1
- package/dist/ui/assets/ensure-speech-assets-BUpIrjiI.js +1 -0
- package/dist/ui/assets/esp8266-CbbvJJBN.js +1 -0
- package/dist/ui/assets/{esptool-operations-BmT5_Q7J.js → esptool-operations-7rkaEUJC.js} +2 -2
- package/dist/ui/assets/{fs-BIsgCzpU.js → fs--t-CTZ8z.js} +2 -2
- package/dist/ui/assets/{fs-CYNNv-jh.js → fs-DBM0MxFX.js} +1 -1
- package/dist/ui/assets/{github-Cwn8X524.js → github-DDrcHPbM.js} +1 -1
- package/dist/ui/assets/{github-DinBASrq.js → github-IFQwPHJe.js} +2 -2
- package/dist/ui/assets/{github-copilot-CKjbn4MG.js → github-copilot-Cyt04Yrm.js} +1 -1
- package/dist/ui/assets/{github-copilot-DX-NSluH.js → github-copilot-DISy7HPn.js} +1 -1
- package/dist/ui/assets/{hear-CbGiJcVU.js → hear-BEB1nGGC.js} +1 -1
- package/dist/ui/assets/{hear-ybxAwUCG.js → hear-BxIJ679h.js} +1 -1
- package/dist/ui/assets/{kernel-worker-B_1Ffk8R.js → kernel-worker-BFkhrRz8.js} +456 -452
- package/dist/ui/assets/kokoro-engine-Ck12MVoU.js +2 -0
- package/dist/ui/assets/{lick-ws-bridge-Cbn8aJsV.js → lick-ws-bridge-CH66z40P.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-DPsVQbc5.js → lick-ws-bridge-DCvSQxqb.js} +1 -1
- package/dist/ui/assets/{local-llm-DkJfAK0f.js → local-llm-CMh8kjVF.js} +1 -1
- package/dist/ui/assets/{main-Cpp7tV6a.js → main-D8DiFd3K.js} +4 -4
- package/dist/ui/assets/{mount-B90cuHjv.js → mount-BVGQ0h1F.js} +2 -2
- package/dist/ui/assets/{mount-DuC3uw-z.js → mount-Cli7dQgX.js} +1 -1
- package/dist/ui/assets/{new-session-BzbCIMnn.js → new-session-BeETIJD6.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-DK0ygb8i.js → oauth-bootstrap-DAZnzRGo.js} +2 -2
- package/dist/ui/assets/{openai-codex-BUZzAFfG.js → openai-codex-ByB5C8WH.js} +1 -1
- package/dist/ui/assets/{openai-codex-DAHequYJ.js → openai-codex-CZmdY-O0.js} +1 -1
- package/dist/ui/assets/{page-follower-tray-SlSFevrj.js → page-follower-tray-a0R3hcUF.js} +1 -1
- package/dist/ui/assets/panel-rpc-handlers-muBAii9k.js +2 -0
- package/dist/ui/assets/preview-vfs-responder-Dhck1Brc.js +1 -0
- package/dist/ui/assets/{provider-n2qshMFm.js → provider-BcaFySUk.js} +1 -1
- package/dist/ui/assets/{provider-C8xe-70U.js → provider-DYETVGJi.js} +2 -2
- package/dist/ui/assets/provider-store-access-DUD-E6-t.js +1 -0
- package/dist/ui/assets/provider-store-access-X7UiGCJx.js +1 -0
- package/dist/ui/assets/{providers-BhyWu6gj.js → providers-Cfi3--kj.js} +1 -1
- package/dist/ui/assets/{quick-llm-Bi695Wk0.js → quick-llm-DVcyufyG.js} +1 -1
- package/dist/ui/assets/session-freezer-Dumn28Jf.js +1 -0
- package/dist/ui/assets/speak-BhvC2qYp.js +1 -0
- package/dist/ui/assets/speak-BsaTiJJa.js +3 -0
- package/dist/ui/assets/{sprinkle-manager-CBGqrwdQ.js → sprinkle-manager-BB7m7Qov.js} +1 -1
- package/dist/ui/assets/{store-Cq9QOKw9.js → store-CfsRJWtN.js} +1 -1
- package/dist/ui/assets/{sudo-CLapBdR8.js → sudo-CYG1BGX3.js} +1 -1
- package/dist/ui/assets/transformers-env-CXsaPfh5.js +1 -0
- package/dist/ui/assets/transformers-env-kQIH3cLT.js +1 -0
- package/dist/ui/assets/{tray-leader-3bjg_x2I.js → tray-leader-C3KIAdU7.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-BbpFS2yf.js → tray-leave-runtime-pnaCUWfN.js} +1 -1
- package/dist/ui/assets/upgrade-detection-CWYyBGAq.js +1 -0
- package/dist/ui/assets/{voice-reply-CPoLpDd6.js → voice-reply-CrSNABF9.js} +1 -1
- package/dist/ui/assets/{wc-attach-6PMPmK82.js → wc-attach-B2_AM4gP.js} +2 -2
- package/dist/ui/assets/{wc-detached-CXYUzkHR.js → wc-detached-DU0RLPTf.js} +1 -1
- package/dist/ui/assets/{wc-extension-BSXCYp1e.js → wc-extension-DEyrI6Ix.js} +2 -2
- package/dist/ui/assets/{wc-follower-Dvo8U-F4.js → wc-follower-DS3p2bj2.js} +2 -2
- package/dist/ui/assets/{wc-live-lalpLNlt.js → wc-live-Bp6DKmco.js} +5 -5
- package/dist/ui/assets/{wc-nav-7cwFSOwU.js → wc-nav-DqS1Hc_h.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CEvWb5JF.js → wc-onboarding-OxBvGa7X.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-B3tJ_jXA.js → wc-placeholder-BpWcadri.js} +3 -3
- package/dist/ui/assets/{wc-settings-W5jahn4m.js → wc-settings-DH22_hzK.js} +2 -2
- package/dist/ui/assets/{wc-shell-DysTJV3i.js → wc-shell-Dd7nFJy9.js} +268 -113
- package/dist/ui/assets/{wc-sprinkles-BIOW2tA5.js → wc-sprinkles-BdiX5uLy.js} +2 -2
- package/dist/ui/assets/{wc-tray-C-21Xqwm.js → wc-tray-D-uZFss3.js} +2 -2
- package/dist/ui/assets/whisper-engine-C4duA1kw.js +1 -0
- package/dist/ui/assets/whisper-session-3Uq6Hk8f.js +2 -0
- package/dist/ui/assets/{xai-grok-DHY2d1Ir.js → xai-grok-ByaWtL3e.js} +1 -1
- package/dist/ui/assets/{xai-grok-C2cVcyuH.js → xai-grok-DBY6Y3JN.js} +1 -1
- package/dist/ui/electron-overlay-entry.js +255 -100
- package/dist/ui/index.html +2 -2
- package/dist/ui/packages/webapp/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/adobe-CcTwlHLF.js +0 -1
- package/dist/ui/assets/adobe-DCYaJqd5.js +0 -2
- package/dist/ui/assets/composer-speech-D1okaecE.js +0 -1
- package/dist/ui/assets/dip-BTVYrmRp.js +0 -1
- package/dist/ui/assets/ensure-speech-assets-DOxe5v73.js +0 -1
- package/dist/ui/assets/esp8266-CNfOtb_T.js +0 -1
- package/dist/ui/assets/kokoro-engine-BzARcGnj.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-DB8ON_RI.js +0 -2
- package/dist/ui/assets/preview-vfs-responder-CSDC7Oy2.js +0 -1
- package/dist/ui/assets/provider-store-access-CTe-ZnV2.js +0 -1
- package/dist/ui/assets/provider-store-access-CcAXUNyH.js +0 -1
- package/dist/ui/assets/session-freezer-RiPIfWKq.js +0 -1
- package/dist/ui/assets/speak-D7I9w_gp.js +0 -2
- package/dist/ui/assets/speak-Dkn6R1A7.js +0 -1
- package/dist/ui/assets/transformers-env-BLIAM-E9.js +0 -1
- package/dist/ui/assets/transformers-env-C_bZFy25.js +0 -1
- package/dist/ui/assets/upgrade-detection-DuOeJLTL.js +0 -1
- package/dist/ui/assets/whisper-engine-Cse3NwZz.js +0 -1
- package/dist/ui/assets/whisper-session-DmSNDpbR.js +0 -2
package/dist/ui/index.html
CHANGED
|
@@ -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-D8DiFd3K.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-aKtaBQYM.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/transform-messages-DzB_lMo-.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-9-QEmC9Z.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/account-store-
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/account-store-BwyITiA-.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/clipboard-DgFtRQbq.js">
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
|
@@ -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-D8DiFd3K.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-aKtaBQYM.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/transform-messages-DzB_lMo-.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/bedrock-camp-9-QEmC9Z.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/account-store-
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/account-store-BwyITiA-.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/clipboard-DgFtRQbq.js">
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,b as t,f as n,g as r,i,m as a,o,s,v as c}from"./bedrock-camp-C1lmRgcD.js";import{d as l,o as u,u as d}from"./transform-messages-BjP6vDPY.js";import{O as f,i as p,u as m}from"./account-store-B-s6jYj8.js";import{v as h}from"./kernel-worker-B_1Ffk8R.js";import{t as ee}from"./adobe-oauth-state---RmeoFk.js";import{getOAuthPageOrigin as te}from"./oauth-service-D-lmxdpH.js";var g={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function _(t,n){return e(t,n)}function v(e,t,n){return e!==`xhigh`||!t?e:s(t,n)?`xhigh`:o(t,n)?`max`:`high`}function y(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return v((()=>{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 b(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(!_(e.id,e.name))return t;let n=t,r=v(n.effort??y(n.reasoning,e),e.id,e.name);return{...t,onPayload:b(r,n.onPayload)}}function ne(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;return 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),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),n}function re(e=3e5){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}const S=Object.assign({"/packages/webapp/providers/adobe-config.json":g})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function C(){let e=m(`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`)}const 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]:`5.8.2`}});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))}let n={};return w.set(e,n),n}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`}const 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}const P=typeof chrome<`u`&&!!chrome?.runtime?.id;function F(){return p().find(e=>e.providerId===`adobe`)}async function I(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 L(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 R={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=>ne(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}));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 r=C(),i=await O(r),a=k(i),o=A(i),s=j(i),c=P?null:await te(),l=P?null:ee({pageHref:c.href,pageOrigin:c.origin,configuredRedirectUri:S.redirectUri},()=>crypto.randomUUID()),u=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:l.redirectUri,d=l?.oauthState,p=l?.expectedNonce??null,m=new URLSearchParams({client_id:a,scope:o,response_type:`token`,redirect_uri:u});d&&m.set(`state`,d),n?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${N(s)}/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=L(h);if(!g){console.error(`[adobe] Could not extract token from redirect URL`);return}let _=await I(g.accessToken,s);await f({providerId:`adobe`,accessToken:g.accessToken,tokenExpiresAt:Date.now()+g.expiresIn*1e3,userName:_.name,userAvatar:_.avatar,baseUrl:S.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=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 f({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>F()?.accessToken?V():null,refreshModels:async e=>{await $(e);let t=R.getModelIds?.();t?.length&&D(t)}};let z=null;const ie=re();async function B(){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 ie.run(()=>V());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 ae(){let e=F();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function V(){return typeof window>`u`?null:z||(z=U().finally(()=>{z=null}),z)}function oe(e,t){let n=k(t),r=A(t),i=j(t),a=P?S.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:S.redirectUri??`${window.location.origin}/auth/callback`,o=P?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),s=o?JSON.parse(atob(o)).nonce:null,c=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:a,prompt:`none`});return o&&c.set(`state`,o),{authorizeUrl:`${N(i)}/ims/authorize/v2?${c}`,expectedNonce:s,proxyEndpoint:e}}function se(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=F();await f({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 U(){try{let e=C(),{authorizeUrl:t,expectedNonce:n}=oe(e,await O(e)),{createOAuthLauncher:r}=await import(`./oauth-service-D-lmxdpH.js`),i=await r()(t,{interactive:!1});if(!i||!se(i,n))return null;let a=L(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]=`5.8.2`,{...e,headers:t}}const K=new Set;function q(e,t){if(e.headers){for(let t of Object.keys(e.headers))if(t.toLowerCase()===`x-session-id`)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":h(`adobe-provider-fallback`)}}}function ce(){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,r={})=>{let o=u();return(async()=>{try{let s=await B();if(String(e.api).includes(`openai`)){let n=a({...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...r,apiKey:s},`streamAdobe[openai]`)));for await(let e of n)o.push(e)}else{let a=n({...e,baseUrl:C(),api:`anthropic-messages`},t,G(q(x(e,i(e.id,e.name,{...r,apiKey:s})),`streamAdobe[anthropic]`)));for await(let e of a)o.push(e)}o.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),o.push(J(e,t)),o.end()}})(),o},X=(e,t,n)=>{let a=u();return(async()=>{try{let o=await B();if(String(e.api).includes(`openai`)){let r=c({...e,baseUrl:`${C()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},t,G(q({...n,apiKey:o},`streamSimpleAdobe[openai]`)));for await(let e of r)a.push(e)}else{let s=r({...e,baseUrl:C(),api:`anthropic-messages`},t,G(q(x(e,i(e.id,e.name,{...n,apiKey:o})),`streamSimpleAdobe[anthropic]`)));for await(let e of s)a.push(e)}a.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),a.push(J(e,t)),a.end()}})(),a};function le(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 ue(){let e=new Map;for(let t of l())try{for(let n of d(t))e.set(n.id,n)}catch{}return e}function Z(e,t,n){let r=`adobe-${e.api===`openai`?`openai`:`anthropic`}`,i=n.get(e.id);return i?{...i,provider:`adobe`,api:r}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:r,baseUrl:t,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0}}function de(e,t){for(let t of e)T.set(t.id,le(t));let n=ue();return e.map(e=>Z(e,t,n))}async function fe(e){try{let t=e??await B(),n=C(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[W]:`5.8.2`}});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 de(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 pe(){return d(`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 fe(e);return r?(Q.set(t,r),r):pe()}function me(){t({api:`adobe-anthropic`,stream:Y,streamSimple:X}),t({api:`adobe-openai`,stream:Y,streamSimple:X})}export{ce as __resetAdobeSessionIdWarningCacheForTests,R as config,$ as getAdobeModels,B as getValidAccessToken,ae as isTokenExpired,me as register};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-ahaKd8Mt.js","assets/preload-helper-zJ_50EbN.js","assets/proxied-fetch-B5vr_AP8.js","assets/chunk-aKtaBQYM.js","assets/src-x0cJ68Fe.js","assets/fetch-body-D2PwksUW.js","assets/panel-rpc-DqT2FG7c.js","assets/wc-permissions-registry-CR1rTd2H.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as e,i as t,n,o as r,u as i}from"./dist-BmWy99kl.js";import{t as a}from"./preload-helper-zJ_50EbN.js";import{n as o,o as s,s as c}from"./event-stream-BJI_nGaK.js";import{R as l,d as u,y as d}from"./account-store-DijjUUOO.js";import{a as f,i as p,o as m,s as h}from"./bedrock-camp-9-QEmC9Z.js";import"./main-Cpp7tV6a.js";import{t as ee}from"./adobe-oauth-state-DKPFiT3Z.js";import{getOAuthPageOrigin as te}from"./oauth-service-ahaKd8Mt.js";import{t as g}from"./llm-session-id-DVmZ9C2t.js";var _={proxyEndpoint:`https://adobe-llm-proxy.paolo-moz.workers.dev`,redirectUri:`https://www.sliccy.ai/auth/callback`,extensionRedirectUri:`https://akjjllgokmbgpbdbmafpiefnhidlmbgf.chromiumapp.org/adobe`};function ne(e,t){return f(e,t)}function v(e,t,n){return e!==`xhigh`||!t?e:h(t,n)?`xhigh`:m(t,n)?`max`:`high`}function re(e,t){let n=e?t?.thinkingLevelMap?.[e]:void 0;return v((()=>{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 y(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(!ne(e.id,e.name))return t;let n=t,r=v(n.effort??re(n.reasoning,e),e.id,e.name);return{...t,onPayload:y(r,n.onPayload)}}function ie(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;return 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),/haiku/i.test(e.id)&&(n.compat={supportsEagerToolInputStreaming:!1}),n}var ae=5*6e4;function oe(e=ae){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}var x=Object.assign({"/packages/webapp/providers/adobe-config.json":_})[`/packages/webapp/providers/adobe-config.json`]??{clientId:``,proxyEndpoint:``,scopes:`openid,profile,email`};function S(){let e=d(`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`)}var 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:{[G]:`5.8.2`}});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))}let n={};return C.set(e,n),n}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`}var 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}var N=typeof chrome<`u`&&!!chrome?.runtime?.id;function P(){return u().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}var 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=>ie(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}));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(),i=await D(r),a=O(i),o=k(i),s=A(i),c=N?null:await te(),u=N?null:ee({pageHref:c.href,pageOrigin:c.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:a,scope:o,response_type:`token`,redirect_uri:d});f&&m.set(`state`,f),n?.forceReauth&&m.set(`prompt`,`login`);let h=await e(`${M(s)}/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,s);await l({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 l({providerId:`adobe`,accessToken:``})},onSilentRenew:async()=>P()?.accessToken?B():null,refreshModels:async e=>{await $(e);let t=I.getModelIds?.();t?.length&&E(t)}},L=null,ce=oe();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(()=>B());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 z(){let e=P();return e?.tokenExpiresAt?Date.now()>e.tokenExpiresAt-6e4:!0}async function B(){return typeof window>`u`?null:L||(L=W().finally(()=>{L=null}),L)}function V(e,t){let n=O(t),r=k(t),i=A(t),a=N?x.extensionRedirectUri??`https://${chrome.runtime.id}.chromiumapp.org/`:x.redirectUri??`${window.location.origin}/auth/callback`,o=N?void 0:btoa(JSON.stringify({port:parseInt(new URL(window.location.href).port||`5710`,10),path:`/auth/callback`,nonce:crypto.randomUUID()})),s=o?JSON.parse(atob(o)).nonce:null,c=new URLSearchParams({client_id:n,scope:r,response_type:`token`,redirect_uri:a,prompt:`none`});return o&&c.set(`state`,o),{authorizeUrl:`${M(i)}/ims/authorize/v2?${c}`,expectedNonce:s,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=P();await l({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 W(){try{let e=S(),{authorizeUrl:t,expectedNonce:n}=V(e,await D(e)),{createOAuthLauncher:r}=await a(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-ahaKd8Mt.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])),i=await r()(t,{interactive:!1});if(!i||!H(i,n))return null;let o=F(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 G=`X-Slicc-Version`;function K(e){let t={},n=G.toLowerCase();if(e.headers)for(let[r,i]of Object.entries(e.headers))r.toLowerCase()!==n&&(t[r]=i);return t[G]=`5.8.2`,{...e,headers:t}}var le=`adobe-provider-fallback`,q=new Set;function J(e,t){if(e.headers){for(let t of Object.keys(e.headers))if(t.toLowerCase()===`x-session-id`)return e}return q.has(t)||(q.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":g(le)}}}function ue(){q.clear()}function Y(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 X=(e,r,i={})=>{let a=o();return(async()=>{try{let o=await R();if(String(e.api).includes(`openai`)){let n=t({...e,baseUrl:`${S()}/v1`,api:`openai-completions`,compat:{...e.compat,supportsStore:!1,supportsDeveloperRole:!1}},r,K(J({...i,apiKey:o},`streamAdobe[openai]`)));for await(let e of n)a.push(e)}else{let t=n({...e,baseUrl:S(),api:`anthropic-messages`},r,K(J(b(e,p(e.id,e.name,{...i,apiKey:o})),`streamAdobe[anthropic]`)));for await(let e of t)a.push(e)}a.end()}catch(t){console.error(`[adobe] Stream error:`,t instanceof Error?t.message:String(t)),a.push(Y(e,t)),a.end()}})(),a},Z=(t,n,i)=>{let a=o();return(async()=>{try{let o=await R();if(String(t.api).includes(`openai`)){let r=e({...t,baseUrl:`${S()}/v1`,api:`openai-completions`,compat:{...t.compat,supportsStore:!1,supportsDeveloperRole:!1}},n,K(J({...i,apiKey:o},`streamSimpleAdobe[openai]`)));for await(let e of r)a.push(e)}else{let e=r({...t,baseUrl:S(),api:`anthropic-messages`},n,K(J(b(t,p(t.id,t.name,{...i,apiKey:o})),`streamSimpleAdobe[anthropic]`)));for await(let t of e)a.push(t)}a.end()}catch(e){console.error(`[adobe] Stream error:`,e instanceof Error?e.message:String(e)),a.push(Y(t,e)),a.end()}})(),a};function de(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 fe(){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 pe(e,t,n){let r=`adobe-${e.api===`openai`?`openai`:`anthropic`}`,i=n.get(e.id);return i?{...i,provider:`adobe`,api:r}:{id:e.id,name:e.name??e.id,provider:`adobe`,api:r,baseUrl:t,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0}}function me(e,t){for(let t of e)w.set(t.id,de(t));let n=fe();return e.map(e=>pe(e,t,n))}async function he(e){try{let t=e??await R(),n=S(),r=await fetch(`${n}/v1/models`,{headers:{Authorization:`Bearer ${t}`,[G]:`5.8.2`}});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 me(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 ge(){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 he(e);return r?(Q.set(t,r),r):ge()}function _e(){i({api:`adobe-anthropic`,stream:X,streamSimple:Z}),i({api:`adobe-openai`,stream:X,streamSimple:Z})}export{ue as __resetAdobeSessionIdWarningCacheForTests,I as config,$ as getAdobeModels,R as getValidAccessToken,z as isTokenExpired,_e as register};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./wc-permissions-registry-CR1rTd2H.js";import{t as n}from"./speech-CqQdPtyQ.js";import{t as r}from"./speech-assets-bridge-B8NqCAE8.js";import{r as i}from"./transformers-env-BLIAM-E9.js";import{i as a,t as o}from"./whisper-session-DmSNDpbR.js";var s=e(`speech:composer`),c=5e3,l=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),u=class{#e;#t;#n;#r;#i;#a=null;#o=!1;#s={engine:`builtin`,state:`idle`};#c=i();#l=new Set;#u=null;constructor(e={}){this.#e=e.builtin??n(),this.#t=e.loadWhisper??a,this.#n=e.startSession??o,this.#r=e.getPermissionSurface??d,this.#i=e.ensureAssets??_}permission(){return this.#e.permission()}async requestPermission(){let e=this.#r();if(e)try{let t=await e.request(`microphone`);return t?(this.#p(t.stream),!0):!1}catch(e){return s.warn(`permission surface microphone request failed`,e),!1}return this.#e.requestPermission()}microphones(){return this.#e.microphones()}status(){return this.#s}onStatus(e){return this.#l.add(e),e(this.#s),()=>this.#l.delete(e)}warmup(){this.#o||(this.#o=!0,this.#c=i(),this.#_({engine:`builtin`,state:`downloading`}),this.#d().then(e=>{this.#a=e,this.#_({engine:`enhanced`,state:`ready`})},e=>{this.#o=!1,this.#_({engine:`builtin`,state:`unavailable`,message:p(e)}),s.warn(`enhanced speech engine unavailable`,e)}))}async#d(){let e=null;try{await this.#i(e=>this.#h(e))}catch(t){e=t,s.warn(`speech asset staging failed; trying already-present assets`,t)}try{return await this.#t(e=>this.#g(e))}catch(t){throw e??t}}async start(e){let t=this.#a;if(t){let n=null;try{return n=await this.#f(e.deviceId),await this.#n(t,{deviceId:e.deviceId,lang:e.lang,onPartial:e.onPartial,onError:e.onError,stream:n??void 0})}catch(e){if(n)for(let e of n.getTracks())e.stop();s.warn(`whisper session failed to start; falling back to builtin`,e)}}return this.#e.start(e)}async#f(e){let t=e&&e!=="default"?e:void 0,n=this.#m();if(n){if(!t&&f(n))return n;for(let e of n.getTracks())e.stop()}let r=this.#r();if(!r)return null;let i={audio:t?{deviceId:{exact:t}}:!0},a=await l(r.request(`microphone`,{constraints:i}),c,`microphone capture`);if(!a)throw Error(`microphone permission denied`);return a.stream}#p(e){if(this.#u&&this.#u!==e)for(let e of this.#u.getTracks())e.stop();this.#u=e}#m(){let e=this.#u;return this.#u=null,e}get enhancedReady(){return this.#a!==null}#h(e){if(this.#s.state!==`downloading`)return;(e.bytesTotal!=null||e.bytesLoaded!=null)&&this.#c.update(e.asset,e.bytesLoaded??0,e.bytesTotal??0);let t=this.#c.snapshot();t.total<=0||this.#_({engine:`builtin`,state:`downloading`,download:{loaded:t.loaded,total:t.total,etaSeconds:t.etaSeconds}})}#g(e){this.#s.state===`downloading`&&this.#_({engine:`builtin`,state:`downloading`,download:{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}})}#_(e){this.#s=e;for(let t of this.#l)t(e)}};function d(){let e=t();return e?{async request(t,n){let r=await e.request(t,n);return r?.kind===`microphone`?{kind:`microphone`,stream:r.stream}:null}}:null}function f(e){let t=e.getTracks();return t.length>0&&t.some(e=>e.readyState!==`ended`)}function p(e){return`Enhanced speech unavailable: ${e instanceof Error?e.message:String(e)}`}var m=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,h;function g(e){h=e}function _(e){return m()?Promise.resolve():r({instanceId:h,onProgress:e})}var v=null;function y(){return v??=new u,v}export{y as getComposerSpeech,g as setComposerSpeechInstanceId};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as e}from"./wc-live-lalpLNlt.js";export{e as setDipExecHandler};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{a as t,o as n,s as r}from"./kernel-worker-B_1Ffk8R.js";import{n as i}from"./transformers-env-C_bZFy25.js";import"./kokoro-engine-BzARcGnj.js";import"./whisper-engine-Cse3NwZz.js";const a=e(`speech:ensure-assets`),o=`onnxruntime-web`,s=`/workspace`,c=()=>typeof chrome<`u`&&!!chrome?.runtime?.id;async function l(e,n){if((await Promise.all(i.map(t=>e.fs.exists(`/workspace/node_modules/onnxruntime-web/dist/${t}`)))).every(Boolean))return n?.({asset:o,phase:`present`}),!1;n?.({asset:o,phase:`staging`});let{errors:r}=await t([o],{fs:e.fs,fetch:e.fetch,cwd:s});if(r.length>0)throw Error(`failed to stage ${o} wasm runtime: ${r[0].error.message}`);return n?.({asset:o,phase:`done`}),!0}async function u(e,t,i){let a=r(t,null,s),o=0,c=await n({fetch:e.fetch,fs:e.fs,repo:t,targetDir:a,progress:{onListed:({files:e,totalBytes:n})=>i?.({asset:t,phase:`listing`,filesLoaded:0,filesTotal:e.length,bytesLoaded:0,bytesTotal:n}),onFile:e=>{o+=e.bytes,i?.({asset:t,phase:e.status,file:e.file,filesLoaded:e.index,filesTotal:e.total,bytesLoaded:o})}}});return i?.({asset:t,phase:`done`,filesLoaded:c.files.length,filesTotal:c.files.length,bytesLoaded:o,bytesTotal:o}),{repo:t,downloaded:c.downloaded,skipped:c.skipped}}async function d(e,t){if(c())return{skipped:!0,ortStaged:!1,repos:[]};let n=await l(e,t),r=e.repos??[`onnx-community/whisper-tiny`,`onnx-community/Kokoro-82M-v1.0-ONNX`],i=[];for(let n of r)i.push(await u(e,n,t));return a.info(`speech assets staged`,{ortStaged:n,repos:i.length}),{skipped:!1,ortStaged:n,repos:i}}export{d as ensureSpeechAssetsStaged};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./esptool-operations-BmT5_Q7J.js";export{e as ESP8266ROM};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{a as t,i as n,r}from"./transformers-env-C_bZFy25.js";const i=e(`speech:kokoro`),a=`onnx-community/Kokoro-82M-v1.0-ONNX`;function o(e){return Object.entries(e).map(([e,t])=>({id:e,name:t.name||e,lang:t.language===`en-gb`||e.startsWith(`b`)?`en-GB`:`en-US`,...t.gender?{gender:t.gender}:{}}))}const s=`style_text_to_speech_2`,c=`StyleTextToSpeech2Model`;function l(e){return e?.model_type===s&&(!Array.isArray(e.architectures)||e.architectures.length===0)&&(e.architectures=[c]),e}const u=Symbol.for(`slicc.kokoro.style-tts2-arch-shim`);function d(e){let t=e?.AutoConfig,n=t?.from_pretrained;if(!t||typeof n!=`function`){i.debug(`style_text_to_speech_2 shim skipped: AutoConfig.from_pretrained unavailable`);return}if(n[u])return;let r=async(...e)=>{let r=await n.apply(t,e),a=r?.model_type===s&&(!Array.isArray(r.architectures)||r.architectures.length===0);return l(r),a&&i.debug(`style_text_to_speech_2 architectures injected for "${String(e[0])}": [${c}]`),r};r[u]=!0,t.from_pretrained=r,i.debug(`style_text_to_speech_2 architecture shim installed on AutoConfig.from_pretrained`)}let f=null,p=`idle`,m=null,h=null;function g(){return p}function _(){return m}function v(){return h}function y(e){return f||=(p=`loading`,b(e).then(e=>(p=`ready`,h=e,e),e=>{throw p=`failed`,f=null,i.error(`kokoro load failed`,e),e})),f}async function b(e){let s=await import(`./transformers.web-BxHOGVSB.js`);n(s.env),d(s),await r(a);let{KokoroTTS:c,TextSplitterStream:l}=await import(`./kokoro-BdpwC7DT.js`),u=t(),f=typeof navigator<`u`&&`gpu`in navigator,p=await c.from_pretrained(a,{device:f?`webgpu`:`wasm`,dtype:f?`fp32`:`q8`,progress_callback:t=>{if(t?.file){if(t.status===`progress`)u.update(t.file,t.loaded??0,t.total??0);else if(t.status===`done`)u.complete(t.file);else return;m=u.snapshot(),e?.(m)}}});i.info(`kokoro ready`,{model:a,device:f?`webgpu`:`wasm`});let h=o(p.voices);return{async synthesize(e,t){let n=await p.generate(e,{...t?.voice?{voice:t.voice}:{},...t?.speed?{speed:t.speed}:{}});return{audio:n.audio,sampleRate:n.sampling_rate}},async*synthesizeStream(e,t){let n={...t?.voice?{voice:t.voice}:{},...t?.speed?{speed:t.speed}:{}},r=new l;if(t?.splitPattern){let n=e.split(t.splitPattern).map(e=>e.trim()).filter(e=>e.length>0);r.push(...n)}else r.push(e);r.close();for await(let e of p.stream(r,n))yield{audio:e.audio.audio,sampleRate:e.audio.sampling_rate}},voices:()=>h}}export{g as a,v as i,y as n,_ as r,a as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/secrets-bridge-client-DXw32cXb.js","assets/chunk-aKtaBQYM.js","assets/preload-helper-zJ_50EbN.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-B5vr_AP8.js","assets/src-x0cJ68Fe.js","assets/fetch-body-D2PwksUW.js","assets/mount-bridge-client-tEnjiHyh.js","assets/types-idfTVsM8.js","assets/panel-responder-BKgfV-nl.js","assets/speak-D7I9w_gp.js","assets/speech-assets-bridge-B8NqCAE8.js","assets/transformers-env-BLIAM-E9.js","assets/shared-Bn9ltvMZ.js","assets/mime-types-ugOWOUZ9.js","assets/path-utils-DU6QhF_k.js","assets/hear-CbGiJcVU.js","assets/whisper-session-DmSNDpbR.js","assets/wc-permissions-registry-CR1rTd2H.js","assets/esptool-operations-CiX8mbpu.js","assets/rom-eeWiO07Z.js","assets/mount-picker-popup-Hrvzr69c.js","assets/picker-popup-CpulHQsi.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{V as t,p as n}from"./account-store-DijjUUOO.js";import{a as r,t as i}from"./proxied-fetch-B5vr_AP8.js";import"./main-Cpp7tV6a.js";import{n as a,r as o}from"./hid-device-registry-D2LsJCRr.js";import{a as s,i as c}from"./serial-port-registry-Bc4wlwED.js";import{A as l,C as u,D as d,E as ee,O as te,S as ne,T as re,_ as ie,a as ae,b as oe,c as se,d as ce,f as le,g as ue,h as f,i as p,j as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as O}from"./usb-operations-CkcrNzZw.js";import{i as k,r as A}from"./usb-device-registry-BP58Vi0S.js";function j(e={}){let t=new Map;return{...de(),...I(e),...L(),...R(e),...z(),...B(e,t),...V(),...H(e),...fe(e),...pe(e),...F(),...P(),...M(),...N()}}function M(){return{"secrets-bridge":async({type:t,payload:n})=>{let{callSecretsBridge:r}=await e(async()=>{let{callSecretsBridge:e}=await import(`./secrets-bridge-client-DXw32cXb.js`).then(e=>e.n);return{callSecretsBridge:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return{response:await r(t,n)}}}}function N(){return{"mount-sign-and-forward":async({type:t,envelope:n})=>{let{callMountBridge:r}=await e(async()=>{let{callMountBridge:e}=await import(`./mount-bridge-client-tEnjiHyh.js`).then(e=>e.n);return{callMountBridge:e}},__vite__mapDeps([7,1,2,3,4,5,6,8]));return{reply:await r(t,n)}}}}function P(){return{"sudo-request":async({request:t})=>{let{resolveSudoRequest:n}=await e(async()=>{let{resolveSudoRequest:e}=await import(`./panel-responder-BKgfV-nl.js`);return{resolveSudoRequest:e}},__vite__mapDeps([9,3]));return{decision:n(t)}}}}function F(){return{"proxied-fetch":async({url:t,method:n,headers:r,body:i})=>{let{collectViaExtensionDelegate:a}=await e(async()=>{let{collectViaExtensionDelegate:e}=await import(`./proxied-fetch-B5vr_AP8.js`).then(e=>e.i);return{collectViaExtensionDelegate:e}},__vite__mapDeps([4,1,2,5,6])),{head:o,body:s}=await a(t,{method:n,headers:r,body:i});return{head:o,body:s}}}}function de(){return{"page-info":()=>({origin:window.location.origin,href:window.location.href,title:document.title||``}),screencapture:async({mimeType:e,quality:t})=>{let n=await ve(e,t),r=await n.arrayBuffer(),i=await ye(n);return{bytes:r,width:i.width,height:i.height,mimeType:e}},"speak-text":async({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o})=>{let{speak:s}=await e(async()=>{let{speak:e}=await import(`./speak-D7I9w_gp.js`);return{speak:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14,15]));return await s({text:t,lang:n,voice:r,rate:i,pitch:a,volume:o}),{done:!0}},"list-voices":async()=>{let{kokoroVoicesIfReady:t}=await e(async()=>{let{kokoroVoicesIfReady:e}=await import(`./speak-D7I9w_gp.js`);return{kokoroVoicesIfReady:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14,15])),n=t().map(e=>({name:e.id,lang:e.lang,default:!1}));if(typeof speechSynthesis>`u`){if(n.length>0)return{voices:n};throw Error(`speechSynthesis is unavailable in this page`)}let r=speechSynthesis.getVoices();if(r.length>0)return{voices:[...n,...r.map(Q)]};let i=await new Promise(e=>{let t=()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener(`voiceschanged`,t),setTimeout(()=>{speechSynthesis.removeEventListener(`voiceschanged`,t),e(speechSynthesis.getVoices())},1e3)});return{voices:[...n,...i.map(Q)]}},"speak-status":async()=>{let{kokoroStatus:t}=await e(async()=>{let{kokoroStatus:e}=await import(`./speak-D7I9w_gp.js`);return{kokoroStatus:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14,15]));return t()},"speak-warmup":async()=>{let{kokoroWarmup:t}=await e(async()=>{let{kokoroWarmup:e}=await import(`./speak-D7I9w_gp.js`);return{kokoroWarmup:e}},__vite__mapDeps([10,2,3,11,12,4,1,5,6,13,14,15]));return t()},"play-audio":async({bytes:e,volume:t})=>{if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let n=new AudioContext;try{let r=await n.decodeAudioData(e.slice(0)),i=n.createBufferSource();if(i.buffer=r,t!==void 0){let e=n.createGain();e.gain.value=Math.max(0,Math.min(1,t)),i.connect(e),e.connect(n.destination)}else i.connect(n.destination);await new Promise(e=>{i.onended=()=>e(),i.start()})}finally{try{await n.close()}catch{}}return{done:!0}},"play-chime":async({tone:e})=>{let t={success:[880,1320],error:[440,220],notify:[660,660]},[n,r]=t[e??`notify`]??t.notify;if(typeof AudioContext>`u`)throw Error(`Web Audio API is unavailable in this page`);let i=new AudioContext;try{let e=i.currentTime;for(let[t,a]of[n,r].entries()){let n=i.createOscillator();n.type=`sine`,n.frequency.value=a;let r=i.createGain();r.gain.setValueAtTime(1e-4,e+t*.18),r.gain.exponentialRampToValueAtTime(.2,e+t*.18+.02),r.gain.exponentialRampToValueAtTime(1e-4,e+t*.18+.18),n.connect(r),r.connect(i.destination),n.start(e+t*.18),n.stop(e+t*.18+.2)}await new Promise(e=>setTimeout(e,450))}finally{try{await i.close()}catch{}}return{done:!0}}}}function I(e={}){return{"clipboard-read-text":async()=>{if(!navigator.clipboard?.readText)throw Error(`clipboard API unavailable`);return{text:await navigator.clipboard.readText()}},"clipboard-write-text":async({text:e})=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard API unavailable`);return await $(),await navigator.clipboard.writeText(e),{done:!0}},"clipboard-write-image":async({bytes:e,mimeType:t})=>{if(!navigator.clipboard?.write||typeof ClipboardItem>`u`)throw Error(`clipboard image API unavailable`);let n,r=new Blob([e],{type:t});return n=t===`image/png`?r:await be(r),await $(),await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),{done:!0}},"window-open":async({url:e,target:t,features:n})=>({opened:window.open(e,t??`_blank`,n??`noopener,noreferrer`)!==null}),"oauth-popup":async({url:t})=>({redirectUrl:await X(t,e.getPermissionsSurface)}),"capture-camera":async e=>await he(e),"enumerate-media-devices":async()=>{if(!navigator.mediaDevices?.enumerateDevices)throw Error(`enumerateDevices is not supported in this browser`);let e=await navigator.mediaDevices.enumerateDevices(),t=e=>({deviceId:e.deviceId,label:e.label||``,...e.groupId?{groupId:e.groupId}:{}});return{videoinputs:e.filter(e=>e.kind===`videoinput`).map(t),audioinputs:e.filter(e=>e.kind===`audioinput`).map(t)}}}}function L(){return{"hear-capture":async t=>{let{hearCapture:n}=await e(async()=>{let{hearCapture:e}=await import(`./hear-CbGiJcVU.js`);return{hearCapture:e}},__vite__mapDeps([16,3,17,2,12,4,1,5,6,13,14,15,18]));return await n(t??{})},"hear-transcribe":async({bytes:t,lang:n})=>{let{hearTranscribe:r}=await e(async()=>{let{hearTranscribe:e}=await import(`./hear-CbGiJcVU.js`);return{hearTranscribe:e}},__vite__mapDeps([16,3,17,2,12,4,1,5,6,13,14,15,18]));return await r(t,n)},"hear-status":async()=>{let{hearStatus:t}=await e(async()=>{let{hearStatus:e}=await import(`./hear-CbGiJcVU.js`);return{hearStatus:e}},__vite__mapDeps([16,3,17,2,12,4,1,5,6,13,14,15,18]));return t()},"hear-warmup":async()=>{let{hearWarmup:t}=await e(async()=>{let{hearWarmup:e}=await import(`./hear-CbGiJcVU.js`);return{hearWarmup:e}},__vite__mapDeps([16,3,17,2,12,4,1,5,6,13,14,15,18]));return t()}}}function R(e){return{"tray-reset":async()=>{if(!e.resetTray)throw Error(`host reset: no active tray session to reset`);return await e.resetTray()},"tray-leave":async({workerBaseUrl:t,requestId:n})=>{if(!e.leaveTray)throw Error(`host leave: tray leave is not available in this environment`);return await e.leaveTray({workerBaseUrl:t,requestId:n})},"tray-join":async({joinUrl:t,requestId:n})=>{if(!e.joinTray)throw Error(`host join: tray join is not available in this environment`);return await e.joinTray({joinUrl:t,requestId:n})},"cherry-emit":async({runtimeId:t,name:n,detail:r})=>{if(!e.emitCherrySliccEvent)throw Error(`cherry-emit: not available in this environment`);return{delivered:e.emitCherrySliccEvent(t,n,r)}},"oauth-extras-set":({providerId:e,domains:r})=>(t(e,r),{storeAfter:n()}),"save-oauth-accounts":({accountsJson:e})=>(localStorage.setItem(`slicc_accounts`,e),{storedJson:localStorage.getItem(`slicc_accounts`)??e})}}function z(){return{"usb-list":async()=>({devices:await y(U(),W())}),"usb-request":async({filters:e})=>({device:await g(U(),W(),e)}),"usb-device-info":({handle:e})=>({device:ae(U(),e)}),"usb-open":async({handle:e})=>(await S(U(),e),{done:!0}),"usb-close":async({handle:e})=>(await v(U(),e),{done:!0}),"usb-select-configuration":async({handle:e,configurationValue:t})=>(await ce(U(),e,t),{done:!0}),"usb-claim-interface":async({handle:e,interfaceNumber:t})=>(await C(U(),e,t),{done:!0}),"usb-release-interface":async({handle:e,interfaceNumber:t})=>(await se(U(),e,t),{done:!0}),"usb-control-transfer-in":async({handle:e,setup:t,length:n})=>x(U(),e,t,n),"usb-control-transfer-out":async({handle:e,setup:t,bytes:n})=>p(U(),e,t,n),"usb-transfer-in":async({handle:e,endpointNumber:t,length:n})=>le(U(),e,t,n),"usb-transfer-out":async({handle:e,endpointNumber:t,bytes:n})=>b(U(),e,t,n),"usb-reset":async({handle:e})=>(await w(U(),e),{done:!0})}}function B(e,t){return{"hid-list":async()=>({devices:await ue(G(),K())}),"hid-request":async({filters:e})=>({devices:await O(G(),K(),e)}),"hid-device-info":({handle:e})=>({device:f(G(),e)}),"hid-open":async({handle:e})=>(await ie(G(),e),{done:!0}),"hid-close":async({handle:e})=>(await _(G(),e),{done:!0}),"hid-send-report":async({handle:e,reportId:t,bytes:n})=>(await D(G(),e,t,n),{done:!0}),"hid-send-feature-report":async({handle:e,reportId:t,bytes:n})=>(await oe(G(),e,t,n),{done:!0}),"hid-receive-feature-report":async({handle:e,reportId:t})=>T(G(),e,t),"hid-subscribe-input-reports":async({handle:n})=>{t.get(n)?.();let r=await ne(G(),n,t=>{e.emitEvent?.(`hid-input-report`,{handle:n,reportId:t.reportId,bytes:t.bytes})});return t.set(n,r),{done:!0}},"hid-unsubscribe-input-reports":({handle:e})=>(t.get(e)?.(),t.delete(e),{done:!0})}}function V(){return{"serial-list":async()=>({devices:await ee(q(),J())}),"serial-request":async({filters:e})=>({device:await h(q(),J(),e)}),"serial-device-info":({handle:e})=>({device:E(q(),e)}),"serial-open":async({handle:e,options:t})=>(await d(q(),e,t),{done:!0}),"serial-close":async({handle:e})=>(await u(q(),e),{done:!0}),"serial-read":async({handle:e,maxBytes:t,until:n,timeoutMs:r})=>{let i=await te(q(),e,{maxBytes:t,until:n?new Uint8Array(n):void 0,timeoutMs:r});return{bytes:i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}},"serial-write":async({handle:e,bytes:t})=>({bytesWritten:await m(q(),e,new Uint8Array(t))}),"serial-get-signals":async({handle:e})=>({signals:await re(q(),e)}),"serial-set-signals":async({handle:e,signals:t})=>(await l(q(),e,t),{done:!0})}}function H(t){return{"esptool-chip-info":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolChipInfo(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-read-mac":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadMac(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-flash":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolEraseFlash(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-flash":async({handle:n,baudRate:r,eraseAll:i,segments:a})=>(await(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolFlash(q(),n,r,i,a.map(e=>({address:e.address,data:new Uint8Array(e.bytes)})),e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-read-flash":async({handle:n,baudRate:r,address:i,size:a})=>{let o=await(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadFlash(q(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e}));return{bytes:o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength)}},"esptool-read-reg":async({handle:n,baudRate:r,address:i})=>(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolReadReg(q(),n,r,i,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-flash-id":async({handle:n,baudRate:r})=>(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolFlashId(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),"esptool-erase-region":async({handle:n,baudRate:r,address:i,size:a})=>(await(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolEraseRegion(q(),n,r,i,a,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0}),"esptool-run":async({handle:n,baudRate:r})=>(await(await e(()=>import(`./esptool-operations-CiX8mbpu.js`),__vite__mapDeps([19,1,2,20]))).esptoolRun(q(),n,r,e=>t.emitEvent?.(`esptool-progress`,{handle:n,line:e})),{done:!0})}}function fe(e){return{"list-remote-targets":async()=>e.listRemoteTargets?{targets:(await e.listRemoteTargets()).filter(e=>e.targetId.includes(`:`)).map(e=>({targetId:e.targetId,title:e.title,url:e.url}))}:{targets:[]},"remote-cdp-send":async({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.send({runtimeId:t,localTargetId:n,method:r,params:i,sessionId:a,timeout:o})},"remote-cdp-subscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.subscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-unsubscribe":async({runtimeId:t,localTargetId:n,event:r})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.unsubscribe({runtimeId:t,localTargetId:n,event:r})},"remote-cdp-detach":async({runtimeId:t,localTargetId:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.detach({runtimeId:t,localTargetId:n})},"remote-open-tab":async({runtimeId:t,url:n})=>{if(!e.remoteCdp)throw Error(`remote-cdp bridge not available`);return e.remoteCdp.openTab({runtimeId:t,url:n})}}}function pe(t){return{"permission-request":async n=>{let r=t.getPermissionsSurface?.()??null;if(!r)throw Error(`permission-request: permission surface unavailable`);let i=await r.prompt({kinds:n.kinds,description:n.description,heading:n.heading,grantLabel:n.grantLabel,cancelLabel:n.cancelLabel});if(i.status!==`granted`){let e=i.message?`: ${i.message}`:``;throw Error(`permission-request: ${i.reason??i.status}${e}`)}let a=[];for(let t of i.grants)switch(t.kind){case`usb`:{let e=U().register(t.device);a.push({kind:`usb`,handle:e});break}case`hid`:{let e=G().register(t.device);a.push({kind:`hid`,handle:e});break}case`serial`:{let e=q().register(t.port);a.push({kind:`serial`,handle:e});break}case`filesystem`:{let{storePendingHandle:n}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Hrvzr69c.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([21,1,3,22])),r=`pendingMount:rpc-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;await n(r,t.handle),a.push({kind:`filesystem`,idbKey:r,dirName:t.handle.name});break}case`camera`:case`microphone`:case`screenshare`:for(let e of t.stream.getTracks())e.stop();a.push({kind:t.kind,ok:!0});break}return{grants:a}}}}function U(){return k()}function W(){let e=A();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}function G(){return o()}function K(){let e=a();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}function q(){return s()}function J(){let e=c();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}var me=1500;async function he(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await ge({wantVideo:t,videoDeviceId:t?await Y(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Y(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??me;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>{e.stop()})}}async function Y(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function ge(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?e.audioDeviceId?{deviceId:{exact:e.audioDeviceId}}:!0:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}async function X(e,t){if((typeof navigator<`u`?navigator.userActivation:void 0)?.isActive===!0)return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`));let n=t?.()??null;if(n){let t=await _e(n,e);return t===void 0?null:Z(t)}return Z(window.open(e,`_blank`,`width=500,height=700,popup=yes`))}function Z(e){return new Promise(t=>{let n=!1,a=null,o=()=>{n||(n=!0,window.removeEventListener(`message`,s),clearTimeout(c),a&&clearInterval(a))},s=n=>{if(n.data?.type!==`oauth-callback`||n.origin!==window.location.origin||e&&n.source!==e)return;if(o(),n.data.error){console.error(`[panel-rpc:oauth-popup] OAuth error:`,n.data.error),t(null);return}let r=n.data.redirectUrl;typeof r!=`string`&&r!=null||t(r??null)};window.addEventListener(`message`,s),a=setInterval(async()=>{if(!n)try{let e=await fetch(r(`/api/oauth-result`),{headers:i()});if(e.status===204||!e.ok)return;let a=await e.json();if(n)return;if(o(),a.error){console.error(`[panel-rpc:oauth-popup] Server relay OAuth error:`,a.error),t(null);return}t(a.redirectUrl??null)}catch(e){console.warn(`[panel-rpc:oauth-popup] Poll failed:`,e instanceof Error?e.message:String(e))}},1e3);let c=setTimeout(()=>{o();try{e?.close()}catch{}t(null)},12e4)})}async function _e(e,t){let n=await e.prompt({kinds:[`popup`],description:`Continue to sign in. A new window will open to the provider.`,grantLabel:`Continue`,requestOptions:{popup:{url:t}}});if(n.status!==`granted`)return;let r=n.grants.find(e=>e.kind===`popup`);return r&&r.kind===`popup`?r.window:null}function Q(e){return{name:e.name,lang:e.lang,default:e.default}}async function ve(e,t){if(!navigator.mediaDevices?.getDisplayMedia)throw Error(`screen capture is not supported in this browser`);let n=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let r=document.createElement(`video`);r.srcObject=n,r.muted=!0,r.playsInline=!0,await new Promise((e,t)=>{r.onloadedmetadata=()=>r.play().then(()=>e()).catch(t),r.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100));let i=r.videoWidth,a=r.videoHeight,o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s)throw Error(`Failed to get canvas context`);return s.drawImage(r,0,0,i,a),await new Promise((n,r)=>{o.toBlob(e=>e?n(e):r(Error(`Failed to create image blob`)),e,t)})}finally{n.getTracks().forEach(e=>{e.stop()})}}async function ye(e){let t=URL.createObjectURL(e);try{let e=new Image;return await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to decode capture`)),e.src=t}),{width:e.naturalWidth,height:e.naturalHeight}}finally{URL.revokeObjectURL(t)}}async function be(e){let t=URL.createObjectURL(e);try{let e=new Image;await new Promise((n,r)=>{e.onload=()=>n(),e.onerror=()=>r(Error(`Failed to load image for clipboard conversion`)),e.src=t});let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)throw Error(`Failed to get canvas context`);return r.drawImage(e,0,0),await new Promise((e,t)=>{n.toBlob(n=>n?e(n):t(Error(`PNG re-encode failed`)),`image/png`)})}finally{URL.revokeObjectURL(t)}}async function $(e=5*6e4){typeof document>`u`||typeof document.hasFocus==`function`&&(document.hasFocus()||await new Promise((t,n)=>{let r=()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,a),clearTimeout(o)},i=()=>{document.hasFocus()&&(r(),t())},a=()=>{document.visibilityState===`visible`&&document.hasFocus()&&(r(),t())},o=setTimeout(()=>{r(),n(Error(`timed out waiting for window focus`))},e);window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,a)}))}export{j as createStandalonePanelRpcHandlers};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){let{channel:t,getReader:n,logger:r}=e,i=e=>{let i=e.data;if(i?.type!==`preview-vfs-read`)return;let{id:a,path:o,asText:s}=i;t.postMessage({type:`preview-vfs-ack`,id:a}),(async()=>{try{let e=s?`utf-8`:`binary`,r=await n().readFile(o,{encoding:e});t.postMessage({type:`preview-vfs-response`,id:a,content:r})}catch(e){let n=e instanceof Error?e.message:String(e);n.includes(`ENOENT`)||r?.error(`Preview VFS read failed`,{path:o,error:n}),t.postMessage({type:`preview-vfs-response`,id:a,error:n})}})()};return t.addEventListener(`message`,i),{dispose:()=>t.removeEventListener(`message`,i)}}export{e as installPreviewVfsResponder};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-Cq9QOKw9.js";import"./provider-n2qshMFm.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./provider-C8xe-70U.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./wc-live-lalpLNlt.js";export{e as readSessionsIndex};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/transformers.web-CuUo4MLm.js","assets/chunk-aKtaBQYM.js","assets/preload-helper-zJ_50EbN.js","assets/kokoro-B5jJ2WUJ.js","assets/__vite-browser-external-C7iut881.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{t}from"./logger-DDBAeTLF.js";import{t as n}from"./speech-assets-bridge-B8NqCAE8.js";import{n as r,r as i,t as a}from"./transformers-env-BLIAM-E9.js";var o=t(`speech:kokoro`),s=`onnx-community/Kokoro-82M-v1.0-ONNX`;function c(e){return Object.entries(e).map(([e,t])=>({id:e,name:t.name||e,lang:t.language===`en-gb`||e.startsWith(`b`)?`en-GB`:`en-US`,...t.gender?{gender:t.gender}:{}}))}var l=`style_text_to_speech_2`,u=`StyleTextToSpeech2Model`;function d(e){return e?.model_type===l&&(!Array.isArray(e.architectures)||e.architectures.length===0)&&(e.architectures=[u]),e}var f=Symbol.for(`slicc.kokoro.style-tts2-arch-shim`);function p(e){let t=e?.AutoConfig,n=t?.from_pretrained;if(!t||typeof n!=`function`){o.debug(`style_text_to_speech_2 shim skipped: AutoConfig.from_pretrained unavailable`);return}if(n[f])return;let r=async(...e)=>{let r=await n.apply(t,e),i=r?.model_type===l&&(!Array.isArray(r.architectures)||r.architectures.length===0);return d(r),i&&o.debug(`style_text_to_speech_2 architectures injected for "${String(e[0])}": [${u}]`),r};r[f]=!0,t.from_pretrained=r,o.debug(`style_text_to_speech_2 architecture shim installed on AutoConfig.from_pretrained`)}var m=null,h=`idle`,g=null,_=null;function v(){return h}function y(){return g}function b(){return _}function x(e){return m||=(h=`loading`,S(e).then(e=>(h=`ready`,_=e,e),e=>{throw h=`failed`,m=null,o.error(`kokoro load failed`,e),e})),m}async function S(t){let n=await e(()=>import(`./transformers.web-CuUo4MLm.js`),__vite__mapDeps([0,1,2]));r(n.env),p(n),await a(s);let{KokoroTTS:l,TextSplitterStream:u}=await e(async()=>{let{KokoroTTS:e,TextSplitterStream:t}=await import(`./kokoro-B5jJ2WUJ.js`);return{KokoroTTS:e,TextSplitterStream:t}},__vite__mapDeps([3,1,0,2,4])),d=i(),f=typeof navigator<`u`&&`gpu`in navigator,m=await l.from_pretrained(s,{device:f?`webgpu`:`wasm`,dtype:f?`fp32`:`q8`,progress_callback:e=>{if(e?.file){if(e.status===`progress`)d.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)d.complete(e.file);else return;g=d.snapshot(),t?.(g)}}});o.info(`kokoro ready`,{model:s,device:f?`webgpu`:`wasm`});let h=c(m.voices);return{async synthesize(e,t){let n=await m.generate(e,{...t?.voice?{voice:t.voice}:{},...t?.speed?{speed:t.speed}:{}});return{audio:n.audio,sampleRate:n.sampling_rate}},async*synthesizeStream(e,t){let n={...t?.voice?{voice:t.voice}:{},...t?.speed?{speed:t.speed}:{}},r=new u;if(t?.splitPattern){let n=e.split(t.splitPattern).map(e=>e.trim()).filter(e=>e.length>0);r.push(...n)}else r.push(e);r.close();for await(let e of m.stream(r,n))yield{audio:e.audio.audio,sampleRate:e.audio.sampling_rate}},voices:()=>h}}var C=t(`speech:speak`),w=2e4;function T(e,t){return e.voice?t.ready&&t.voiceIds.includes(e.voice)?`kokoro`:`webspeech`:e.lang&&!e.lang.toLowerCase().startsWith(`en`)?`webspeech`:t.ready?`kokoro`:`webspeech`}var E=48;function D(e){let t=e;return t=t.replace(/```[\s\S]*?```/g,` `),t=t.replace(/~~~[\s\S]*?~~~/g,` `),t=t.replace(/(?:```|~~~)[\s\S]*$/,` `),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`),t=t.replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`),t=t.replace(/`([^`]*)`/g,(e,t)=>t.length>E?` `:t),t=t.replace(/<[^>\n]+>/g,` `),t=t.replace(/^[ \t]{0,3}#{1,6}[ \t]+/gm,``),t=t.replace(/^[ \t]*>[ \t]?/gm,``),t=t.replace(/^[ \t]*(?:[-*+]|\d+[.)])[ \t]+/gm,``),t=t.replace(/[*_~]{1,3}([^*_~]+)[*_~]{1,3}/g,`$1`),t=t.replace(/\s+/g,` `).trim(),t.length>w&&(t=`${t.slice(0,w).replace(/\s+\S*$/,``)}…`),t}function O(){return b()?.voices()??[]}var k=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,A;function j(e){A=e}function M(){let e=y();return{state:v(),...e?{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}:{}}}async function N(){try{k()||await n({instanceId:A})}catch(e){C.warn(`kokoro asset staging failed; trying already-present weights`,e)}try{await x()}catch(e){C.warn(`kokoro warmup load failed`,e)}}function P(){return N(),M()}var F=null;function I(){return(!F||F.state===`closed`)&&(F=new AudioContext),F}async function L(e,t,n=1){let r=I();r.state===`suspended`&&await r.resume();let i=r.createBuffer(1,e.length,t);i.copyToChannel(new Float32Array(e),0);let a=r.createBufferSource();a.buffer=i;let o=r.createGain();o.gain.value=n,a.connect(o),o.connect(r.destination),await new Promise(e=>{a.onended=()=>e(),a.start()})}function R(e){return typeof speechSynthesis>`u`?Promise.reject(Error(`speechSynthesis is unavailable in this realm`)):new Promise((t,n)=>{let r=new SpeechSynthesisUtterance(e.text);if(e.lang!==void 0&&(r.lang=e.lang),e.rate!==void 0&&(r.rate=e.rate),e.pitch!==void 0&&(r.pitch=e.pitch),e.volume!==void 0&&(r.volume=e.volume),e.voice){let t=speechSynthesis.getVoices().find(t=>t.name===e.voice);t&&(r.voice=t)}r.onend=()=>t(),r.onerror=e=>n(Error(`speak: ${e.error||`utterance failed`}`)),speechSynthesis.speak(r)})}async function z(e){let t=b();if(T(e,{ready:t!==null,voiceIds:t?.voices().map(e=>e.id)??[]})===`kokoro`&&t){let n=0;try{let r=t.synthesizeStream(e.text,{...e.voice?{voice:e.voice}:{},...e.rate?{speed:e.rate}:{}});for await(let t of r)await L(t.audio,t.sampleRate,e.volume),n++;return{engine:`kokoro`}}catch(e){if(n>0)return C.warn(`kokoro stream failed mid-playback; stopping`,e),{engine:`kokoro`};C.warn(`kokoro synthesis failed; falling back to webspeech`,e)}}return await R(e),{engine:`webspeech`}}export{M as kokoroStatus,O as kokoroVoicesIfReady,P as kokoroWarmup,j as setSpeakAssetsInstanceId,z as speak,D as speechTextFromMarkdown};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{callEnsureSpeechAssets as t}from"./speech-assets-bridge-BUDIvdid.js";import{a as n,i as r,n as i,r as a}from"./kokoro-engine-BzARcGnj.js";const o=e(`speech:speak`);function s(e,t){return e.voice?t.ready&&t.voiceIds.includes(e.voice)?`kokoro`:`webspeech`:e.lang&&!e.lang.toLowerCase().startsWith(`en`)?`webspeech`:t.ready?`kokoro`:`webspeech`}function c(){return r()?.voices()??[]}const l=()=>typeof chrome<`u`&&!!chrome?.runtime?.id;function u(){let e=a();return{state:n(),...e?{loaded:e.loaded,total:e.total,etaSeconds:e.etaSeconds}:{}}}async function d(){try{l()||await t({instanceId:void 0})}catch(e){o.warn(`kokoro asset staging failed; trying already-present weights`,e)}try{await i()}catch(e){o.warn(`kokoro warmup load failed`,e)}}function f(){return d(),u()}let p=null;function m(){return(!p||p.state===`closed`)&&(p=new AudioContext),p}async function h(e,t,n=1){let r=m();r.state===`suspended`&&await r.resume();let i=r.createBuffer(1,e.length,t);i.copyToChannel(new Float32Array(e),0);let a=r.createBufferSource();a.buffer=i;let o=r.createGain();o.gain.value=n,a.connect(o),o.connect(r.destination),await new Promise(e=>{a.onended=()=>e(),a.start()})}function g(e){return typeof speechSynthesis>`u`?Promise.reject(Error(`speechSynthesis is unavailable in this realm`)):new Promise((t,n)=>{let r=new SpeechSynthesisUtterance(e.text);if(e.lang!==void 0&&(r.lang=e.lang),e.rate!==void 0&&(r.rate=e.rate),e.pitch!==void 0&&(r.pitch=e.pitch),e.volume!==void 0&&(r.volume=e.volume),e.voice){let t=speechSynthesis.getVoices().find(t=>t.name===e.voice);t&&(r.voice=t)}r.onend=()=>t(),r.onerror=e=>n(Error(`speak: ${e.error||`utterance failed`}`)),speechSynthesis.speak(r)})}async function _(e){let t=r();if(s(e,{ready:t!==null,voiceIds:t?.voices().map(e=>e.id)??[]})===`kokoro`&&t){let n=0;try{let r=t.synthesizeStream(e.text,{...e.voice?{voice:e.voice}:{},...e.rate?{speed:e.rate}:{}});for await(let t of r)await h(t.audio,t.sampleRate,e.volume),n++;return{engine:`kokoro`}}catch(e){if(n>0)return o.warn(`kokoro stream failed mid-playback; stopping`,e),{engine:`kokoro`};o.warn(`kokoro synthesis failed; falling back to webspeech`,e)}}return await g(e),{engine:`webspeech`}}export{u as kokoroStatus,c as kokoroVoicesIfReady,f as kokoroWarmup,_ as speak};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,t}from"./proxied-fetch-B5vr_AP8.js";import{r as n,t as r}from"./shared-Bn9ltvMZ.js";var i=1e3;function a(e=()=>Date.now()){let t=new Map,n=null,r=0,a=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(i,o,s){t.set(i,{loaded:Math.max(0,o),total:Math.max(t.get(i)?.total??0,s,o)}),n===null&&(n=e(),r=a().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:o}=a(),s=null;if(n!==null&&o>0&&t<o){let a=e()-n,c=t-r;if(a>=i&&c>0){let e=c/a;s=(o-t)/e/1e3}}return o>0&&t>=o&&(s=0),{loaded:t,total:o,etaSeconds:s}}}}var o=Symbol.for(`slicc.transformers-env.fetch-wrapped`),s=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,c=`/workspace/node_modules/onnxruntime-web/dist/`,l=`/workspace/models/`;function u(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function d(e){let t=u(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function f(){return globalThis.location?.origin??null}function p(e){let t=f();if(!t)return!1;try{return new URL(u(e)).origin===t}catch{return!1}}async function m(n,r){let i=u(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}var h=3e4,g=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`],_=Symbol.for(`slicc.transformers-env.vfs-enoent`);function v(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[_]=!0,a(()=>i(t))},h),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[_]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function y(e){return!!e?.[_]}function b(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function x(e,t){return!t||!e.startsWith(t)?null:`${l}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function S(e,t){let n;try{n=await v(e)}catch(t){if(y(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=r(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(n.byteLength),"Content-Range":`bytes 0-0/${n.byteLength}`}}):new Response(b(n),{status:200,headers:{"Content-Type":i,"Content-Length":String(n.byteLength)}})}var C=null;async function w(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(g.map(async t=>{try{let n=await v(`${c}${t}`),i=new Blob([b(n)],{type:r(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!y(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function T(){return C||=w(),C}function E(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=n(c)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=n(l),s())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&T().then(e=>{t.wasmPaths=e},()=>{});let r=e.fetch;if(r?.[o])return;let i=r,a=e.localModelPath,f=async(e,t)=>{let n=x(u(e),a);return n===null?!d(e)||p(e)?i?i(e,t):fetch(e,t):m(e,t):S(n,t)};f[o]=!0,e.fetch=f}async function D(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await v(`${l}${e}/config.json`)}catch(e){if(y(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{E as n,a as r,D as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e,t}from"./proxied-fetch-I4cndszg.js";import{f as n,p as r}from"./kernel-worker-B_1Ffk8R.js";function i(e=()=>Date.now()){let t=new Map,n=null,r=0,i=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(a,o,s){t.set(a,{loaded:Math.max(0,o),total:Math.max(t.get(a)?.total??0,s,o)}),n===null&&(n=e(),r=i().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:a}=i(),o=null;if(n!==null&&a>0&&t<a){let i=e()-n,s=t-r;if(i>=1e3&&s>0){let e=s/i;o=(a-t)/e/1e3}}return a>0&&t>=a&&(o=0),{loaded:t,total:a,etaSeconds:o}}}}const a=Symbol.for(`slicc.transformers-env.fetch-wrapped`),o=()=>typeof chrome<`u`&&!!chrome?.runtime?.id,s=`/workspace/node_modules/onnxruntime-web/dist/`,c=`/workspace/models/`;function l(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function u(e){let t=l(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function d(){return globalThis.location?.origin??null}function f(e){let t=d();if(!t)return!1;try{return new URL(l(e)).origin===t}catch{return!1}}async function p(n,r){let i=l(n),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=t({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(e(`/api/fetch-proxy`),c)}const m=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`],h=Symbol.for(`slicc.transformers-env.vfs-enoent`);function g(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,s),t.close(),e()},o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[h]=!0,a(()=>i(t))},3e4),s=t=>{let s=t.data;if(s?.type!==`preview-vfs-response`||s.id!==n)return;if(clearTimeout(o),typeof s.error==`string`){let e=Error(s.error);s.error.includes(`ENOENT`)&&(e[h]=!0),a(()=>i(e));return}let c=s.content;if(c instanceof Uint8Array){a(()=>r(c));return}if(typeof c==`string`){a(()=>r(new TextEncoder().encode(c)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,s),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function _(e){return!!e?.[h]}function v(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function y(e,t){return!t||!e.startsWith(t)?null:`${c}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function b(e,t){let r;try{r=await g(e)}catch(t){if(_(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let i=n(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":i,"Content-Length":String(r.byteLength),"Content-Range":`bytes 0-0/${r.byteLength}`}}):new Response(v(r),{status:200,headers:{"Content-Type":i,"Content-Length":String(r.byteLength)}})}let x=null;async function S(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(m.map(async t=>{try{let r=await g(`${s}${t}`),i=new Blob([v(r)],{type:n(t)});e[t]=URL.createObjectURL(i)}catch(e){if(!_(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function C(){return x||=S(),x}function w(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=r(s)),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=r(c),o())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&C().then(e=>{t.wasmPaths=e},()=>{});let n=e.fetch;if(n?.[a])return;let i=n,d=e.localModelPath,m=async(e,t)=>{let n=y(l(e),d);return n===null?!u(e)||f(e)?i?i(e,t):fetch(e,t):p(e,t):b(n,t)};m[a]=!0,e.fetch=m}async function T(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await g(`${c}${e}/config.json`)}catch(e){if(_(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{i as a,w as i,m as n,T as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,w as t}from"./kernel-worker-B_1Ffk8R.js";const n=`slicc:last-seen-version`;function r(){return{version:`5.8.2`,releasedAt:`2026-06-25T15:49:35Z`}}async function i(){let t=await e(n);return t&&t.length>0?t:null}async function a(e){await t(n,e)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{a as t,i as n,r}from"./transformers-env-C_bZFy25.js";const i=e(`speech:whisper`),a=`onnx-community/whisper-tiny`;let o=null,s=`idle`,c=null;const l=new Set;function u(){return s}function d(){return c}function f(e){return e&&l.add(e),o||=(s=`loading`,m().then(e=>(s=`ready`,p(),e),e=>{throw s=`failed`,o=null,i.error(`whisper load failed`,e),e})),o}function p(){import(`./speak-Dkn6R1A7.js`).then(({kokoroWarmup:e})=>e()).catch(e=>i.warn(`kokoro warmup (chained after whisper) failed`,e))}async function m(){let{pipeline:e,env:o}=await import(`./transformers.web-BxHOGVSB.js`);n(o),await r(a);let s=t(),u=e=>{if(e?.file){if(e.status===`progress`)s.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)s.complete(e.file);else return;c=s.snapshot();for(let e of l)e(c)}},d=async t=>await e(`automatic-speech-recognition`,a,{device:t,dtype:t===`webgpu`?`fp32`:`q8`,progress_callback:u}),f=typeof navigator<`u`&&`gpu`in navigator,p;if(f)try{p=await d(`webgpu`)}catch(e){i.warn(`whisper webgpu init failed; retrying on wasm`,e),p=await d(`wasm`)}else p=await d(`wasm`);return i.info(`whisper ready`,{model:a,device:f?`webgpu`:`wasm`}),{async transcribe(e,t){let n=await p(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}});return(Array.isArray(n)?n.map(e=>e.text??``).join(` `):n.text??``).trim()}}}export{u as i,f as n,d as r,a as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speak-D7I9w_gp.js","assets/preload-helper-zJ_50EbN.js","assets/logger-DDBAeTLF.js","assets/speech-assets-bridge-B8NqCAE8.js","assets/transformers-env-BLIAM-E9.js","assets/proxied-fetch-B5vr_AP8.js","assets/chunk-aKtaBQYM.js","assets/src-x0cJ68Fe.js","assets/fetch-body-D2PwksUW.js","assets/shared-Bn9ltvMZ.js","assets/mime-types-ugOWOUZ9.js","assets/path-utils-DU6QhF_k.js","assets/transformers.web-CuUo4MLm.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{t}from"./logger-DDBAeTLF.js";import{n,r,t as i}from"./transformers-env-BLIAM-E9.js";var a=t(`speech:whisper`),o=`onnx-community/whisper-tiny`,s=null,c=`idle`,l=null,u=new Set;function d(){return c}function f(){return l}function p(e){return e&&u.add(e),s||=(c=`loading`,h().then(e=>(c=`ready`,m(),e),e=>{throw c=`failed`,s=null,a.error(`whisper load failed`,e),e})),s}function m(){e(async()=>{let{kokoroWarmup:e}=await import(`./speak-D7I9w_gp.js`);return{kokoroWarmup:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])).then(({kokoroWarmup:e})=>e()).catch(e=>a.warn(`kokoro warmup (chained after whisper) failed`,e))}async function h(){let{pipeline:t,env:s}=await e(async()=>{let{pipeline:e,env:t}=await import(`./transformers.web-CuUo4MLm.js`);return{pipeline:e,env:t}},__vite__mapDeps([12,6,1]));n(s),await i(o);let c=r(),d=e=>{if(e?.file){if(e.status===`progress`)c.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)c.complete(e.file);else return;l=c.snapshot();for(let e of u)e(l)}},f=async e=>await t(`automatic-speech-recognition`,o,{device:e,dtype:e===`webgpu`?`fp32`:`q8`,progress_callback:d}),p=typeof navigator<`u`&&`gpu`in navigator,m;if(p)try{m=await f(`webgpu`)}catch(e){a.warn(`whisper webgpu init failed; retrying on wasm`,e),m=await f(`wasm`)}else m=await f(`wasm`);return a.info(`whisper ready`,{model:o,device:p?`webgpu`:`wasm`}),{async transcribe(e,t){let n=await m(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}});return(Array.isArray(n)?n.map(e=>e.text??``).join(` `):n.text??``).trim()}}}var g=16e3;async function _(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let r=Math.max(1,Math.ceil(n.duration*g)),i=new OfflineAudioContext(1,r,g),a=i.createBufferSource();return a.buffer=n,a.connect(i.destination),a.start(),(await i.startRendering()).getChannelData(0).slice(0)}var v=t(`speech:whisper-session`),y=2e3,b=500,x=5e3,S=3e4,C=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})});function w(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}async function T(e,t){let n;if(t.stream)n=t.stream;else{if(!navigator.mediaDevices?.getUserMedia)throw Error(`microphone capture unavailable in this realm`);n=await navigator.mediaDevices.getUserMedia({audio:t.deviceId&&t.deviceId!=="default"?{deviceId:{exact:t.deviceId}}:!0})}let r=new MediaRecorder(n),i=[],a=w(t.lang),o=!1,s=!1;r.ondataavailable=e=>{e.data.size>0&&i.push(e.data)};let c=async()=>{if(i.length===0)return``;let t=await _(await new Blob(i,{type:r.mimeType||`audio/webm`}).arrayBuffer());return e.transcribe(t,{language:a})},l=Promise.resolve(``),u=()=>{let e=l.catch(()=>``).then(()=>c());return l=e.catch(()=>``),e},d=setInterval(()=>{o||s||i.length===0||(o=!0,u().then(e=>{!s&&e&&t.onPartial?.(e)}).catch(e=>{v.warn(`partial transcription failed`,e)}).finally(()=>{o=!1}))},y),f=()=>{if(clearInterval(d),r.state!==`inactive`)try{r.stop()}catch{}for(let e of n.getTracks())e.stop()},p=()=>new Promise(e=>{if(r.state===`inactive`){e();return}r.onstop=()=>e();try{r.stop()}catch{e()}});return r.start(b),{async stop(){if(s)return``;s=!0,clearInterval(d);try{await C(p(),x,`recorder flush`);for(let e of n.getTracks())e.stop();return await C(u(),S,`transcription`)}catch(e){for(let e of n.getTracks())e.stop();let r=e instanceof Error?e.message:String(e);return t.onError?.(`transcription failed: ${r}`),``}},cancel(){s||(s=!0,f())}}}export{f as a,p as i,w as n,d as o,_ as r,T as t};
|