sliccy 6.151.1 → 6.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/ui/.vite/manifest.json +177 -177
- package/dist/ui/assets/CLAUDE-DT25ppH5.js +1 -0
- package/dist/ui/assets/GELATIERE-CDj3aVTD.js +1 -0
- package/dist/ui/assets/SKILL--NWTI0kb.js +1 -0
- package/dist/ui/assets/SKILL-CuHGVKei.js +1 -0
- package/dist/ui/assets/{account-store-M88EgTJv.js → account-store-Br-5Tahn.js} +1 -1
- package/dist/ui/assets/{account-store-BZezJRQl.js → account-store-DT3VDbvp.js} +1 -1
- package/dist/ui/assets/{adobe-NZls7hdL.js → adobe-D-SRO3WV.js} +1 -1
- package/dist/ui/assets/{adobe-CZVZ7LqN.js → adobe-s7kqWKTP.js} +1 -1
- package/dist/ui/assets/{agent-bridge-CVkFZRtq.js → agent-bridge-DPAiiTJu.js} +1 -1
- package/dist/ui/assets/{agent-panels-DRgdY0yV.js → agent-panels-C-vXgmUa.js} +1 -1
- package/dist/ui/assets/{apply-layout-CY46I5le.js → apply-layout-aXZfO5zJ.js} +1 -1
- package/dist/ui/assets/{apps-C3m3Kjpn.js → apps-CfzNbgxN.js} +1 -1
- package/dist/ui/assets/{azure-openai-Btm9FAgY.js → azure-openai-Bv0RSahJ.js} +1 -1
- package/dist/ui/assets/{azure-openai-x-bdPje8.js → azure-openai-CENnbCPD.js} +1 -1
- package/dist/ui/assets/{budget-usage-source-DPp69gM2.js → budget-usage-source-CI1VrdHF.js} +1 -1
- package/dist/ui/assets/{cdp-DxIZJkAT.js → cdp-BpGYDjo4.js} +1 -1
- package/dist/ui/assets/{cerebras-LQ_6C3OP.js → cerebras-D1qiSEMk.js} +1 -1
- package/dist/ui/assets/{cerebras-Da1dSmbj.js → cerebras-DW9t3pME.js} +1 -1
- package/dist/ui/assets/{composer-speech-BdnYRcZY.js → composer-speech-D3-kZTJe.js} +1 -1
- package/dist/ui/assets/{connect-surface-WSPERTKQ.js → connect-surface-CNxDpOvY.js} +1 -1
- package/dist/ui/assets/{directed-approval-DJ963leI.js → directed-approval-ByZDWCge.js} +1 -1
- package/dist/ui/assets/feature-flags-BIRXJe0o.js +1 -0
- package/dist/ui/assets/feature-flags-O-TLmy2G.js +1 -0
- package/dist/ui/assets/{fs-C2HutJtt.js → fs-D_5Hf9-X.js} +1 -1
- package/dist/ui/assets/{fs-Dc7yTCYN.js → fs-DqBbpVZo.js} +2 -2
- package/dist/ui/assets/gelatiere-store-CcLPnD5F.js +1 -0
- package/dist/ui/assets/gelatiere-unit-Dem3bPJm.js +1 -0
- package/dist/ui/assets/{github-CL10LW17.js → github-Dbs3fu5D.js} +1 -1
- package/dist/ui/assets/{github-DXWq72DW.js → github-DxToYpZG.js} +2 -2
- package/dist/ui/assets/{github-copilot-W73pF0gj.js → github-copilot-BtVP3b6q.js} +1 -1
- package/dist/ui/assets/{github-copilot-By4p65sD.js → github-copilot-DDIYDOoo.js} +1 -1
- package/dist/ui/assets/{github-install-1566vGAW.js → github-install-CfilaKPL.js} +1 -1
- package/dist/ui/assets/{github-zip-CC5mpKzC.js → github-zip-CowqpWqM.js} +1 -1
- package/dist/ui/assets/{hear-Bqz2IG50.js → hear-Bmw4jv4C.js} +1 -1
- package/dist/ui/assets/{help-D38XPAJV.js → help-dis3gVin.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-RDVuw7NM.js → js-realm-worker-BMbF2DPc.js} +1 -1
- package/dist/ui/assets/kernel-worker-JD5PLtQg.js +5010 -0
- package/dist/ui/assets/{local-llm-CuKR3jAK.js → local-llm-3efEmI2R.js} +1 -1
- package/dist/ui/assets/{local-llm-Bw-IDftu.js → local-llm-8mNKYUyN.js} +1 -1
- package/dist/ui/assets/{main-M0tuQaox.js → main-DNSx5t9M.js} +3 -3
- package/dist/ui/assets/{main-cherry-DeM_vokn.js → main-cherry-BUC0V42i.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-CeKC57fr.js → memory-curation-seam-B1zdL89W.js} +1 -1
- package/dist/ui/assets/memory-v2-flag-Aq5sA4Gq.js +1 -0
- package/dist/ui/assets/{mount-DRPKoszI.js → mount-BU0YiStI.js} +1 -1
- package/dist/ui/assets/{mount-TP2rENSW.js → mount-DQE9qVGW.js} +3 -3
- package/dist/ui/assets/{mount-recovery-B3nHyTQp.js → mount-recovery-szxkUpiN.js} +1 -1
- package/dist/ui/assets/{new-session-M9VbI7Bt.js → new-session-CVLZettz.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-4QabIdI1.js → oauth-bootstrap-D4K4RG4i.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-UzQfyY9j.js → onboarding-orchestrator-c2j_jTmA.js} +1 -1
- package/dist/ui/assets/{openai-codex-CPsqaWnX.js → openai-codex-BB6AGAk4.js} +1 -1
- package/dist/ui/assets/{openai-codex-D2MYshYo.js → openai-codex-CK-EVEzJ.js} +1 -1
- package/dist/ui/assets/{openrouter-jNPo8cIv.js → openrouter-D7x3pGdS.js} +1 -1
- package/dist/ui/assets/{openrouter-bbwfV8Pe.js → openrouter-DIe9K8K3.js} +1 -1
- package/dist/ui/assets/{openrouter-free-DKN-IARX.js → openrouter-free-CENDt7Ou.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BKG2e3iM.js → openrouter-free-DJ5lPq7S.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CREAtg19.js → openrouter-oauth-D32eGAS-.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-jid8SHTl.js → openrouter-oauth-cIflZeMd.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-0yuiw5Tr.js → panel-rpc-handlers-ChtHTqiQ.js} +2 -2
- package/dist/ui/assets/{panelize-shell-CVcZc2Wz.js → panelize-shell-B89wjO8U.js} +1 -1
- package/dist/ui/assets/{provider-DWvW6Uzn.js → provider-C0eIfUUt.js} +1 -1
- package/dist/ui/assets/{provider-Bf9Nu-AZ.js → provider-CSA17s1P.js} +2 -2
- package/dist/ui/assets/provider-settings-CK9AxQ6e.js +1 -0
- package/dist/ui/assets/provider-store-access-D0e3HMUh.js +1 -0
- package/dist/ui/assets/provider-store-access-D6D8_V2Z.js +1 -0
- package/dist/ui/assets/{providers-iH0IfwC_.js → providers-CIJO5pfi.js} +2 -2
- package/dist/ui/assets/{providers-I3XJxz23.js → providers-DdkG0NSO.js} +1 -1
- package/dist/ui/assets/{quick-llm-DE2Ggwws.js → quick-llm-DzOHzN-I.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DcmGxn3Y.js → recovery-screen-7YwqCNIg.js} +1 -1
- package/dist/ui/assets/{run-CDwWwTea.js → run-CD28vEFB.js} +1 -1
- package/dist/ui/assets/{run-BY9if0Td.js → run-CHF9lHjk.js} +12 -8
- package/dist/ui/assets/{run-tBUQGAj8.js → run-CoI3v-36.js} +1 -1
- package/dist/ui/assets/{run-D7CaUsAX.js → run-DbnU3wyl.js} +1 -1
- package/dist/ui/assets/{run-B6QtJQQv.js → run-rqExAVOb.js} +2 -2
- package/dist/ui/assets/{session-command-memory-BTDKlIRk.js → session-command-memory-CkF1Wu0O.js} +1 -1
- package/dist/ui/assets/{session-jsonl-DFmvmQbG.js → session-jsonl-4dg00tv6.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CFGdbp7i.js → setup-feature-flags-remote-DFRtQB19.js} +1 -1
- package/dist/ui/assets/sidecar-repair-G397kiLT.js +1 -0
- package/dist/ui/assets/{silent-renew-backoff-D-AEEH3c.js → silent-renew-backoff-DEAQc8gF.js} +1 -1
- package/dist/ui/assets/{skills-B0JD5wJq.js → skills-CyAtIBDH.js} +1 -1
- package/dist/ui/assets/slicc-version-BTzaBTax.js +1 -0
- package/dist/ui/assets/{snapshot-features-Bob6ABw_.js → snapshot-features-CXvFb5kP.js} +1 -1
- package/dist/ui/assets/{snapshot-BQ7K6Tk3.js → snapshot-rQItub8y.js} +1 -1
- package/dist/ui/assets/{soundscape-BuBckQji.js → soundscape-BfgaSN-Y.js} +1 -1
- package/dist/ui/assets/{speak-DxQ45__d.js → speak-zFtFhgmL.js} +1 -1
- package/dist/ui/assets/sprinkle-manager-CiAkASWE.js +1 -0
- package/dist/ui/assets/{sprinkle-renderer-DbAw88kr.js → sprinkle-renderer-DDP-UxN2.js} +1 -1
- package/dist/ui/assets/{state-BbrRWgGU.js → state-DVDUDADZ.js} +1 -1
- package/dist/ui/assets/{store-Dvhx4V6o.js → store-3A-5dTwk.js} +1 -1
- package/dist/ui/assets/{store-Apogv0LB.js → store-DWLwX9LI.js} +1 -1
- package/dist/ui/assets/{sudo-DZpgKv7H.js → sudo-Vmn2lmIe.js} +1 -1
- package/dist/ui/assets/{sync-dialog-B-PZYWzm.js → sync-dialog-CS1RAgot.js} +1 -1
- package/dist/ui/assets/{transformers-env-ZiC41m5H.js → transformers-env-DAziCt21.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-BuyXG7l9.js → tray-sidecar-Tsj_KlbJ.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-CZxwmHU6.js → upgrade-detection-BXADtDDx.js} +1 -1
- package/dist/ui/assets/{voice-reply-DQcqO_BP.js → voice-reply-BGwjuDSD.js} +1 -1
- package/dist/ui/assets/{wc-attach-BmBFpWbC.js → wc-attach-lctJI9Cb.js} +2 -2
- package/dist/ui/assets/{wc-extension-Cb9XTHXH.js → wc-extension-CJ8-0uuM.js} +2 -2
- package/dist/ui/assets/{wc-follower-CnTDCT46.js → wc-follower-BABTMpUh.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-pDbnb3w2.js → wc-follower-oauth-Dxh3czLI.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-hG7Y3uCA.js → wc-gelatiere-BXF8unbT.js} +1 -1
- package/dist/ui/assets/{wc-live-C01tzWbD.js → wc-live-CY77nXRu.js} +5 -5
- package/dist/ui/assets/{wc-nav-DNMsI7hW.js → wc-nav-D4j-dAFm.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-Dxe6xAB_.js → wc-onboarding-Daxory4F.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-Ct2OkjH_.js → wc-placeholder-R85lT45F.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-DHKGlXL_.js → wc-secret-request-Cq3B_6l5.js} +1 -1
- package/dist/ui/assets/wc-settings-D6g62psJ.js +61 -0
- package/dist/ui/assets/{wc-shell-Cl8ptdjs.js → wc-shell-CVnS13Pt.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-D0jUq7Zf.js → wc-shortcut-config-Dq7vpLhS.js} +1 -1
- package/dist/ui/assets/{wc-shortcuts-VhktG_v0.js → wc-shortcuts-CQHGJh5j.js} +191 -191
- package/dist/ui/assets/{wc-sprinkles-D7zdQ0yb.js → wc-sprinkles-CnPEFIgm.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-BixKeTU4.js → wc-transcript-export-CqrBcsOg.js} +2 -2
- package/dist/ui/assets/{wc-tray-D7iqIrGH.js → wc-tray-CBlFR1Md.js} +4 -4
- package/dist/ui/assets/welcome-detection-Dv6cuKXV.js +1 -0
- package/dist/ui/assets/{whisper-session-B7FvNCoO.js → whisper-session-DzS7Olt2.js} +2 -2
- package/dist/ui/assets/{xai-grok-BpGbAqyz.js → xai-grok-B_eBvQy4.js} +1 -1
- package/dist/ui/assets/{xai-grok-tNW_L3hd.js → xai-grok-D3bEO2ts.js} +1 -1
- package/dist/ui/index.html +4 -4
- package/dist/ui/packages/webapp/index.html +4 -4
- package/package.json +1 -1
- package/dist/ui/assets/CLAUDE-BcGVPwX6.js +0 -1
- package/dist/ui/assets/GELATIERE-BnNVlnMz.js +0 -1
- package/dist/ui/assets/SKILL-D71tT0hd.js +0 -1
- package/dist/ui/assets/SKILL-oOIS8LAm.js +0 -1
- package/dist/ui/assets/feature-flags-BX-OhLDm.js +0 -1
- package/dist/ui/assets/feature-flags-CYCRk6Dq.js +0 -1
- package/dist/ui/assets/gelatiere-store-D36IMluj.js +0 -1
- package/dist/ui/assets/gelatiere-unit-7xZALH_i.js +0 -1
- package/dist/ui/assets/kernel-worker-DOQe0z9W.js +0 -5010
- package/dist/ui/assets/memory-v2-flag-D50hE5F1.js +0 -1
- package/dist/ui/assets/provider-settings-BreTdELM.js +0 -1
- package/dist/ui/assets/provider-store-access-Bzrs2rtW.js +0 -1
- package/dist/ui/assets/provider-store-access-CZ3kwuq1.js +0 -1
- package/dist/ui/assets/sidecar-repair-DPYW5UeV.js +0 -1
- package/dist/ui/assets/slicc-version-DxBUdLXR.js +0 -1
- package/dist/ui/assets/sprinkle-manager-DoDWt2o2.js +0 -1
- package/dist/ui/assets/wc-settings-CJwpmYqz.js +0 -59
- package/dist/ui/assets/welcome-detection-32kor-Hj.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./feature-flags-BX-OhLDm.js";function t(){return e(`memory-v2`)}export{t as isMemoryV2Enabled};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import"./account-store-BZezJRQl.js";import"./core-D59qaXEb.js";import"./tray-runtime-config--rtR6Gxd.js";e(`provider-settings`);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./provider-Bf9Nu-AZ.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-Dvhx4V6o.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t}from"./fs-Dc7yTCYN.js";export{t as repairOpfsMetadataSidecar,e as resolveWithSidecarRepair};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(){return{version:`6.151.1`,releasedAt:`2026-09-14T11:18:18Z`,buildId:`6.151.1-mu15g8aa`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{r as t,t as n}from"./sprinkle-renderer-DbAw88kr.js";import{s as r}from"./telemetry-DJyRzh6X.js";import{r as i}from"./feature-flags-CYCRk6Dq.js";import{n as a,t as o}from"./panel-rpc-B3MSVImO.js";import{n as s,t as c}from"./bounded-walk-BjxKWNqp.js";import"./sprinkle-instances-B8n7h-oP.js";var l=[`/workspace`,`/shared`,`/scoops`,`/home`],u=[`/shared/sprinkles`],d=6,f=500,p=new Set([`connect-llm`,`welcome`]);function m(e){return p.has(e)?!0:e===`suggestions`&&!i(`memory-v2`)}async function h(e){let t=new Map;for(let n of[...u,...l])await e.exists(n)&&await g(e,n,t);return t}async function g(e,t,n){let r=s(e,t,{maxDepth:d,maxDirs:f,skip:c});for await(let t of r){if(!t.endsWith(`.shtml`))continue;let r=_(t);if(!m(r)&&!n.has(r)){let i;try{i=await e.readFile(t,{encoding:`utf-8`})??``}catch{i=``}n.set(r,{name:r,path:t,title:v(i,r),autoOpen:y(i),icon:b(i)})}}}function _(e){let t=e.split(`/`).pop()??e;return t.endsWith(`.shtml`)?t.slice(0,-6):t}function v(e,t){let n=e.match(/data-sprinkle-title=["']([^"']+)["']/);if(n)return n[1];let r=e.match(/<title>([^<]+)<\/title>/i);return r?r[1].trim():t}function y(e){return/data-sprinkle-autoopen\b/.test(e)}function b(e){let t=/<link\b/gi,n;for(;(n=t.exec(e))!==null;){let t=n.index+n[0].length,r=x(e,t);if(r<0)continue;let i=e.slice(t,r);if(!/\brel\s*=\s*("|')\s*(?:shortcut\s+)?icon\s*\1/i.test(i))continue;let a=S(i,`href`);if(a!==void 0)return a.trim()}let r=S(e,`data-sprinkle-icon`);if(r!==void 0)return r.trim()}function x(e,t){let n=!1,r=!1;for(let i=t;i<e.length;i++){let t=e.charCodeAt(i);if(n)t===34&&(n=!1);else if(r)t===39&&(r=!1);else if(t===34)n=!0;else if(t===39)r=!0;else if(t===62)return i}return-1}function S(e,t){let n=RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`,`i`),r=e.match(n);if(r)return r[1]??r[2]??void 0}var C=e(`sprinkle-manager`),w=`slicc-open-sprinkles`,T=`sprinkles`;function E(){try{if(typeof window>`u`||!window.location)return null;let e=new URLSearchParams(window.location.search).get(T);return e===null?null:e===``?[]:e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}catch{return null}}function D(e){try{if(typeof window>`u`||!window.location||typeof history>`u`||typeof history.replaceState!=`function`)return;let t=new URL(window.location.href);e.length===0?t.searchParams.delete(T):t.searchParams.set(T,e.join(`,`));let n=t.pathname+t.search+t.hash;history.replaceState(history.state??null,``,n)}catch{}}var O=`slicc-known-sprinkles`;function k(e){try{let t=new Set(e),n=A().filter(e=>t.has(e));localStorage.setItem(O,JSON.stringify(n))}catch{}}function A(){try{let e=localStorage.getItem(O);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}var j=`slicc-autoopened-once`,M=l,N=250,P=class{fs;bridge;callbacks;availableSprinkles=new Map;watcherUnsub;openSprinkles=new Map;attentionOnly=new Set;inflightRefresh=null;lastRefreshAt=0;autoOpenBehavior;onSendToSprinkle;onSprinkleReloaded;registeredSprinkles=new Set;inlineSprinkles;changeListeners=new Set;changeNotifyScheduled=!1;urlWriteScheduled=!1;constructor(e,n,r,i,s={}){this.fs=e;let c=async()=>{let e=`image/png`,t=a(),n=o();if(!t&&!n)throw Error(`Screen capture unavailable in this environment`);if(t&&!navigator.mediaDevices?.getDisplayMedia)throw Error(`Screen capture not supported in this browser`);let r,i,s;if(t){let t=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1});try{let n=document.createElement(`video`);n.srcObject=t,n.muted=!0,n.playsInline=!0,await new Promise((e,t)=>{n.onloadedmetadata=()=>n.play().then(()=>e()).catch(t),n.onerror=()=>t(Error(`Failed to load video stream`))}),await new Promise(e=>setTimeout(e,100)),i=n.videoWidth,s=n.videoHeight;let a=document.createElement(`canvas`);a.width=i,a.height=s;let o=a.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,s),r=await(await new Promise((t,n)=>{a.toBlob(e=>e?t(e):n(Error(`Failed to create image blob`)),e,1)})).arrayBuffer()}finally{for(let e of t.getTracks())e.stop()}}else{let t=await n.call(`screencapture`,{mimeType:e,quality:1},{timeoutMs:3e5});r=t.bytes,i=t.width,s=t.height}let c=new Uint8Array(r),l=[],u=8192;for(let e=0;e<c.length;e+=u)l.push(String.fromCharCode(...c.subarray(e,e+u)));return{base64:btoa(l.join(``)),width:i,height:s,mimeType:e}};this.bridge=new t(e,n,e=>this.close(e),e=>this.minimize(e),i,s.onAttachImage??(()=>{}),c,s.execHandler,(e,t,n)=>{this.openSprinkles.get(e)?.renderer.pushDeviceEvent(t,n)}),this.callbacks=r,this.autoOpenBehavior=s.autoOpenBehavior??`activate`,this.onSendToSprinkle=s.onSendToSprinkle,this.onSprinkleReloaded=s.onSprinkleReloaded,this.inlineSprinkles=s.inlineSprinkles??new Set}setSendToSprinkleHook(e){this.onSendToSprinkle&&!e&&C.error(`SprinkleManager broadcast hook detached`),this.onSendToSprinkle=e}setReloadHook(e){this.onSprinkleReloaded=e}async reload(e){let t=this.openSprinkles.get(e);if(!t){C.info(`Cannot reload closed sprinkle`,{name:e});return}let r=this.availableSprinkles.get(e);if(r||=(await this.refresh(),this.availableSprinkles.get(e)),!r){C.warn(`Sprinkle not found during reload`,{name:e});return}let i=await this.fs.readFile(r.path,{encoding:`utf-8`});if(i==null){C.warn(`Failed to read sprinkle content during reload`,{name:e});return}let a=typeof i==`string`?i:new TextDecoder(`utf-8`).decode(i);t.renderer?.dispose(),this.bridge.removeSprinkle(e);let o=this.bridge.createAPI(e),s=new n(t.container,o);if(await s.render(a,e),!this.openSprinkles.has(e)){s.dispose();return}if(t.renderer=s,s.activateBridgeLifecycle(),this.openSprinkles.has(e)&&(C.info(`Sprinkle reloaded`,{name:e}),this.notifyChange(),this.onSprinkleReloaded))try{this.onSprinkleReloaded(e)}catch(t){C.error(`onSprinkleReloaded hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}}async restoreOpenSprinkles(){try{let e=E();if(e!==null){await this.reopenInBackground(e);return}let t=localStorage.getItem(w);t?await this.restoreFromLegacyStorage(t):await this.autoOpenFirstRun()}catch{}await this.surfaceUnseenSprinkles()}async reopenInBackground(e){for(let t of e)try{await this.open(t,void 0,{background:!0})}catch{C.warn(`Failed to restore sprinkle`,{name:t})}}async restoreFromLegacyStorage(e){try{await this.reopenInBackground(JSON.parse(e))}finally{try{localStorage.removeItem(w)}catch{}}}async autoOpenFirstRun(){let e=this.autoOpenBehavior===`attention`,t=this.loadAutoOpenedOnce(),n=new Set;for(let r of this.availableSprinkles.values())if(!(!r.autoOpen||t.has(r.name)))try{await this.open(r.name,void 0,{attention:e}),n.add(r.name)}catch{C.warn(`Failed to auto-open sprinkle`,{name:r.name})}n.size>0&&this.persistAutoOpenedOnce(n)}async surfaceUnseenSprinkles(){let e=this.loadKnownSprinkles(),t=this.loadAutoOpenedOnce(),n=this.autoOpenBehavior===`attention`,r=new Set;for(let i of this.availableSprinkles.values())if(!e.has(i.name)&&!this.openSprinkles.has(i.name)&&!(i.autoOpen&&t.has(i.name)))try{await this.open(i.name,void 0,{attention:!i.autoOpen||n}),i.autoOpen&&r.add(i.name),C.info(`Surfaced previously-unseen sprinkle`,{name:i.name})}catch{C.warn(`Failed to surface unseen sprinkle`,{name:i.name})}this.persistKnownSprinkles(new Set(this.availableSprinkles.keys())),r.size>0&&this.persistAutoOpenedOnce(r)}loadKnownSprinkles(){return new Set(A())}persistKnownSprinkles(e){try{let t=new Set([...this.loadKnownSprinkles(),...e]);localStorage.setItem(O,JSON.stringify([...t]))}catch{}}loadAutoOpenedOnce(){try{let e=localStorage.getItem(j);if(!e)return new Set;let t=JSON.parse(e);return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}persistAutoOpenedOnce(e){try{let t=new Set([...this.loadAutoOpenedOnce(),...e]);localStorage.setItem(j,JSON.stringify([...t]))}catch{}}persistOpenSprinkles(){try{let e=[...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e));localStorage.setItem(w,JSON.stringify(e))}catch{}this.schedulePersistOpenSprinklesToUrl()}schedulePersistOpenSprinklesToUrl(){this.urlWriteScheduled||(this.urlWriteScheduled=!0,queueMicrotask(()=>{this.urlWriteScheduled=!1,D([...this.openSprinkles.keys()].filter(e=>!this.attentionOnly.has(e)))}))}async openNewAutoOpenSprinkles(){if(this.inflightRefresh!==null)return this.inflightRefresh;if(!(Date.now()-this.lastRefreshAt<N))return this.inflightRefresh=this.runOpenNewAutoOpenSprinkles().finally(()=>{this.lastRefreshAt=Date.now(),this.inflightRefresh=null}),this.inflightRefresh}async runOpenNewAutoOpenSprinkles(){let e=new Set(this.availableSprinkles.keys());await this.refresh();let t=this.autoOpenBehavior===`attention`,n=this.loadAutoOpenedOnce(),r=new Set,i=!1;for(let a of this.availableSprinkles.values())if(!this.openSprinkles.has(a.name)&&!e.has(a.name)){if(i=!0,a.autoOpen){if(n.has(a.name)){C.info(`Skipped one-shot auto-open for previously-consumed sprinkle`,{name:a.name});continue}try{await this.open(a.name,void 0,{attention:t}),r.add(a.name),C.info(`Auto-opened new sprinkle after install`,{name:a.name,attention:t})}catch{C.warn(`Failed to auto-open new sprinkle`,{name:a.name})}}else try{await this.open(a.name,void 0,{attention:!0}),C.info(`Surfaced newly-installed sprinkle in rail`,{name:a.name})}catch{C.warn(`Failed to surface newly-installed sprinkle`,{name:a.name})}}i&&this.persistKnownSprinkles(new Set(this.availableSprinkles.keys())),r.size>0&&this.persistAutoOpenedOnce(r)}async refresh(){this.availableSprinkles=await h(this.fs),C.info(`Discovered sprinkles`,{count:this.availableSprinkles.size}),this.syncRegisteredIcons(),this.notifyChange()}syncRegisteredIcons(){if(!this.callbacks.registerSprinkle)return;let e=new Set;for(let t of this.availableSprinkles.values())this.inlineSprinkles.has(t.name)||e.add(t.name);for(let t of this.availableSprinkles.values())if(e.has(t.name)&&!this.registeredSprinkles.has(t.name))try{this.callbacks.registerSprinkle(t.name,t.title,{icon:t.icon}),this.registeredSprinkles.add(t.name)}catch(e){C.warn(`registerSprinkle callback threw`,{name:t.name,error:e instanceof Error?e.message:String(e)})}for(let t of[...this.registeredSprinkles])if(!e.has(t)){this.openSprinkles.has(t)&&this.close(t);try{this.callbacks.unregisterSprinkle?.(t)}catch(e){C.warn(`unregisterSprinkle callback threw`,{name:t,error:e instanceof Error?e.message:String(e)})}this.registeredSprinkles.delete(t)}}onChange(e){return this.changeListeners.add(e),()=>{this.changeListeners.delete(e)}}notifyChange(){this.changeNotifyScheduled||(this.changeNotifyScheduled=!0,queueMicrotask(()=>{this.changeNotifyScheduled=!1;for(let e of this.changeListeners)try{e()}catch(e){C.error(`SprinkleManager.onChange handler threw`,{error:e instanceof Error?e.message:String(e)})}}))}async open(e,t,i={}){if(this.openSprinkles.has(e)){C.info(`Sprinkle already open`,{name:e});return}let a=this.availableSprinkles.get(e);if(a||=(await this.refresh(),this.availableSprinkles.get(e)),!a)throw Error(`Sprinkle not found: ${e}`);let o=await this.fs.readFile(a.path,{encoding:`utf-8`});if(o==null)throw Error(`Failed to read sprinkle content: ${a.path} (file may be corrupted or missing)`);let s=typeof o==`string`?o:new TextDecoder(`utf-8`).decode(o),c=document.createElement(`div`);c.className=`sprinkle-panel`,c.style.cssText=`width: 100%; height: 100%; display: flex; flex-direction: column; overflow-y: auto;`,c.dataset.sprinkle=e,this.openSprinkles.set(e,{renderer:null,container:c}),i.attention?this.attentionOnly.add(e):this.attentionOnly.delete(e),this.callbacks.addSprinkle(e,a.title,c,t,{...i,icon:a.icon});let l=this.bridge.createAPI(e),u=new n(c,l);await u.render(s,e);let d=this.openSprinkles.get(e);if(!d){u.dispose();return}d.renderer=u,u.activateBridgeLifecycle(),this.openSprinkles.has(e)&&(this.persistOpenSprinkles(),r(e),C.info(`Sprinkle opened`,{name:e,title:a.title}),this.notifyChange())}markActivated(e){this.attentionOnly.has(e)&&(this.attentionOnly.delete(e),this.persistOpenSprinkles(),C.info(`Sprinkle promoted from attention to user-opened`,{name:e}),this.notifyChange())}async activate(e,t){this.attentionOnly.has(e)&&this.markActivated(e);let n=this.openSprinkles.get(e);if(!n){try{await this.open(e,t)}catch(t){C.warn(`Failed to open sprinkle from rail-icon click`,{name:e,error:t instanceof Error?t.message:String(t)})}return}let r=this.availableSprinkles.get(e);this.callbacks.addSprinkle(e,r?.title??e,n.container,t,{icon:r?.icon})}close(e){let t=this.openSprinkles.get(e);t&&(t.renderer?.dispose(),t.container.remove(),this.bridge.removeSprinkle(e),this.openSprinkles.delete(e),this.attentionOnly.delete(e),this.callbacks.closeSprinkleContent?this.callbacks.closeSprinkleContent(e):this.callbacks.removeSprinkle(e),this.persistOpenSprinkles(),C.info(`Sprinkle closed`,{name:e}),this.notifyChange())}minimize(e){this.openSprinkles.has(e)&&(this.callbacks.minimizeSprinkle(e),C.info(`Sprinkle minimized`,{name:e}))}available(){return Array.from(this.availableSprinkles.values())}opened(){return Array.from(this.openSprinkles.keys())}setupWatcher(e){let t=null,n=new Map,r=e=>{let r=!1;for(let t of e){let e=this.findOpenSprinkleByPath(t.path);if(e){let t=n.get(e);t&&clearTimeout(t),n.set(e,setTimeout(()=>{n.delete(e),this.reload(e).catch(t=>{C.warn(`Sprinkle reload on watcher event failed`,{name:e,error:t instanceof Error?t.message:String(t)})})},300))}else r=!0}r&&!t&&(t=setTimeout(()=>{t=null,this.openNewAutoOpenSprinkles().catch(e=>{C.warn(`Sprinkle refresh on watcher event failed`,{error:e instanceof Error?e.message:String(e)})})},150))},i=M.map(t=>e.watch(t,e=>e.endsWith(`.shtml`),r));this.watcherUnsub=()=>{for(let e of i)e();t&&=(clearTimeout(t),null);for(let e of n.values())clearTimeout(e);n.clear()}}findOpenSprinkleByPath(e){for(let[t]of this.openSprinkles){let n=this.availableSprinkles.get(t);if(n&&n.path===e)return t}return null}dispose(){this.watcherUnsub?.()}sendToSprinkle(e,t,n){let r=!n?.runtime||n.runtime===`leader`,i=!n?.runtime||n.runtime!==`leader`,a={leader:!1,followers:[]};if(r){let n=this.openSprinkles.get(e);n?(this.bridge.pushUpdate(e,t),n.renderer.pushUpdate(t),a.leader=!0):C.warn(`Cannot send to closed sprinkle`,{name:e})}if(i&&this.onSendToSprinkle)try{let r=this.onSendToSprinkle(e,t,n);r&&(a.followers=r.followers,r.unknownRuntime&&(a.unknownRuntime=r.unknownRuntime))}catch(t){C.error(`onSendToSprinkle hook threw`,{name:e,error:t instanceof Error?t.message:String(t)})}return a}};export{P as SprinkleManager,k as pruneKnownSprinkleNames,A as readKnownSprinkleNames};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-BsW9nY_u.js","assets/preload-helper-Czpn1I53.js","assets/proxied-fetch-DyBveeCl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DJRlyqZu.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/panel-rpc-B3MSVImO.js","assets/permissions-surface-registry-CilCRwhh.js","assets/main-M0tuQaox.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/account-store-M88EgTJv.js","assets/claude-model-version-CSATLzrT.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/float-topology-YtctpJaG.js","assets/secret-topology-DLJBhHOi.js","assets/secrets-bridge-client--VZ3E0yk.js","assets/port-bridge-client-Dn8JtUyP.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-iH0IfwC_.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bridge-protocol-06nbmp2X.js","assets/messages-zAgr7E2T.js","assets/tray-runtime-config-B9jN9kUJ.js","assets/telemetry-DJyRzh6X.js","assets/feature-flags-CYCRk6Dq.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{F as t,L as n}from"./wc-shortcuts-VhktG_v0.js";import{t as r}from"./slugify-BYJ6QVAt.js";import{a as i,i as a,r as o}from"./feature-flags-CYCRk6Dq.js";import{a as s,c,f as l,h as u,i as d,l as f,o as p,p as m,s as h,t as g,u as _}from"./theme-engine-B5SkYf3E.js";import{t as v}from"./theme-DFKCBK8N.js";import{n as y,t as b}from"./discovery-preference-Bw3Fi0jd.js";var x={surfaces:[`--s2-gray-25`,`--s2-gray-50`,`--s2-gray-75`,`--s2-gray-100`,`--s2-gray-200`,`--s2-bg-base`,`--s2-bg-layer-1`,`--s2-bg-layer-2`,`--s2-bg-elevated`,`--s2-bg-sunken`],text:[`--s2-gray-800`,`--s2-gray-900`,`--s2-gray-1000`,`--s2-content-default`,`--s2-content-secondary`,`--s2-content-tertiary`,`--s2-content-disabled`],accents:[`--slicc-cone`,`--slicc-scoop-blue`,`--slicc-scoop-purple`,`--slicc-scoop-teal`,`--slicc-accent`,`--s2-accent`,`--s2-accent-hover`,`--s2-accent-down`],semantic:[`--s2-negative`,`--s2-positive`,`--s2-informative`,`--s2-notice`],chrome:[`--s2-border-default`,`--s2-border-subtle`,`--s2-border-focus`,`--s2-shadow-elevated`,`--s2-shadow-container`]},S=`slicc-wc-settings-style`,C=`
|
|
3
|
-
/* Width is owned by the dialog card (via ::part) — a min-width on the body
|
|
4
|
-
used to overflow the card's content box and clip the row borders. */
|
|
5
|
-
slicc-dialog.wcset-dialog::part(dialog){width:min(520px,92vw);}
|
|
6
|
-
.wcset{display:flex;flex-direction:column;gap:14px;font-family:var(--ui);color:var(--ink);}
|
|
7
|
-
.wcset__list{display:flex;flex-direction:column;gap:8px;}
|
|
8
|
-
.wcset__empty{color:var(--txt-3);font-size:12.5px;}
|
|
9
|
-
.wcset__row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);}
|
|
10
|
-
.wcset__info{flex:1;min-width:0;}
|
|
11
|
-
.wcset__name{font-size:13px;font-weight:600;}
|
|
12
|
-
.wcset__detail{font-size:11px;color:var(--txt-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
13
|
-
.wcset__btn{font:500 12px var(--ui);color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:8px;padding:5px 10px;cursor:pointer;flex:0 0 auto;}
|
|
14
|
-
.wcset__btn:hover{background:var(--ghost);}
|
|
15
|
-
.wcset__btn--danger:hover{color:#b91c1c;border-color:#b91c1c;}
|
|
16
|
-
.wcset__btn--primary{background:var(--ink);color:var(--canvas);border-color:var(--ink);}
|
|
17
|
-
.wcset__btn--primary:hover{background:color-mix(in srgb,var(--ink) 85%,var(--canvas));}
|
|
18
|
-
.wcset__add{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:14px;}
|
|
19
|
-
.wcset__label{font-size:11px;font-weight:600;color:var(--txt-2);text-transform:uppercase;letter-spacing:.04em;}
|
|
20
|
-
.wcset__select,.wcset__input{font:400 12.5px var(--ui);color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:7px 9px;outline:none;width:100%;box-sizing:border-box;}
|
|
21
|
-
.wcset__select:focus,.wcset__input:focus{border-color:var(--ctx);}
|
|
22
|
-
.wcset__status{font-size:11.5px;color:var(--txt-3);min-height:14px;}
|
|
23
|
-
.wcset__status[data-error]{color:#b91c1c;}
|
|
24
|
-
.wcset__appearance{display:flex;flex-direction:column;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);}
|
|
25
|
-
.wcset__section-label{font-size:11px;font-weight:600;color:var(--txt-2);text-transform:uppercase;letter-spacing:.04em;}
|
|
26
|
-
.wcset__preset-grid{display:flex;flex-wrap:wrap;gap:8px;}
|
|
27
|
-
.wcset__preset-swatch{width:56px;height:48px;border-radius:8px;border:2px solid transparent;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:border-color 130ms ease;}
|
|
28
|
-
.wcset__preset-swatch:hover{border-color:var(--ctx);}
|
|
29
|
-
.wcset__preset-swatch--active{border-color:var(--ink);}
|
|
30
|
-
.wcset__preset-swatch__stripe{flex:1;}
|
|
31
|
-
.wcset__preset-name{font-size:9px;text-align:center;padding:2px 0;background:var(--canvas);color:var(--txt-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
32
|
-
.wcset__custom-themes{display:flex;flex-direction:column;gap:6px;}
|
|
33
|
-
.wcset__custom-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;}
|
|
34
|
-
.wcset__custom-row__name{flex:1;font-size:12px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
35
|
-
.wcset__builder{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);}
|
|
36
|
-
.wcset__builder-row{display:flex;align-items:center;gap:8px;}
|
|
37
|
-
.wcset__builder-row label{font-size:11px;color:var(--txt-2);min-width:80px;}
|
|
38
|
-
.wcset__builder-row input[type="color"]{width:32px;height:24px;border:1px solid var(--line);border-radius:4px;padding:0;cursor:pointer;background:transparent;}
|
|
39
|
-
.wcset__builder-row input[type="color"]::-webkit-color-swatch-wrapper{padding:2px;}
|
|
40
|
-
.wcset__builder-row input[type="color"]::-webkit-color-swatch{border-radius:2px;border:none;}
|
|
41
|
-
.wcset__advanced-toggle{font-size:11px;color:var(--ctx);cursor:pointer;background:none;border:none;padding:0;text-decoration:underline;}
|
|
42
|
-
.wcset__advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
|
|
43
|
-
.wcset__advanced-token{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--txt-3);}
|
|
44
|
-
.wcset__advanced-token input[type="color"]{width:20px;height:16px;border:1px solid var(--line);border-radius:3px;padding:0;cursor:pointer;background:transparent;}
|
|
45
|
-
.wcset__base-toggle{display:flex;gap:4px;}
|
|
46
|
-
.wcset__base-toggle button{font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--txt-2);cursor:pointer;}
|
|
47
|
-
.wcset__base-toggle button.active{background:var(--ink);color:var(--canvas);border-color:var(--ink);}
|
|
48
|
-
.wcset__toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);}
|
|
49
|
-
.wcset__toggle-row label{font-size:13px;font-weight:500;color:var(--ink);}
|
|
50
|
-
.wcset__toggle-row input[type="checkbox"]{width:16px;height:16px;accent-color:var(--ctx);}
|
|
51
|
-
.wcset__radio-list{display:flex;flex-direction:column;gap:8px;}
|
|
52
|
-
.wcset__radio-row{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--canvas);}
|
|
53
|
-
.wcset__radio-row:hover{border-color:var(--ctx);}
|
|
54
|
-
.wcset__radio-row:has(input:checked){border-color:var(--ink);}
|
|
55
|
-
.wcset__radio-row input{margin-top:2px;flex:0 0 auto;}
|
|
56
|
-
.wcset__radio-row__body{flex:1;min-width:0;}
|
|
57
|
-
.wcset__radio-row__title{font-size:12.5px;font-weight:600;}
|
|
58
|
-
.wcset__radio-row__detail{font-size:11px;color:var(--txt-3);margin-top:2px;line-height:1.4;}
|
|
59
|
-
`;function w(e){if(e.getElementById(S))return;let t=e.createElement(`style`);t.id=S,t.textContent=C,e.head.appendChild(t)}function T(e,t){let n=document.createElement(`div`);return n.className=e,t!==void 0&&(n.textContent=t),n}function E(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=e,r.textContent=t,r.addEventListener(`click`,n),r}function D(e){return e?e.length<=8?`••••`:`${e.slice(0,4)}…${e.slice(-4)}`:``}function O(e){let t;return t=e.loggedOut?e.userName?`Logged out — was ${e.userName}`:`Logged out`:e.userName?e.userName:e.accessToken?`Logged in`:D(e.apiKey),e.baseUrl?`${t} • ${e.baseUrl}`:t}async function k(t,n,r){let{ps:i,log:a,setStatus:o,renderList:s}=r,c=i.getProviderConfig(t),l=i.getAccounts().some(e=>e.providerId===t);if(c.requiresBaseUrl){if(!n.trim()&&!i.getBaseUrlForProvider(t)){o(`Base URL is required.`,!0);return}n.trim()&&i.addAccount(t,``,n.trim())}o(`Opening login window…`);let u=()=>{o(``),s()};try{if(c.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:t}=await e(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-BsW9nY_u.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),n=await t();if(!n)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await c.onOAuthLoginIntercepted(n,u)}else if(c.onOAuthLogin){let{createOAuthLauncher:t}=await e(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-BsW9nY_u.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));await c.onOAuthLogin(t(),u)}else throw Error(`${c.name} does not support interactive login.`)}catch(e){l||await i.removeAccount(t).catch(()=>void 0),a.error(`WC settings OAuth login failed`,{providerId:t,err:e}),o(`Login failed: ${e instanceof Error?e.message:String(e)}`,!0)}}function A(e,t,n){let{ps:r,log:i,setStatus:a,renderList:o}=n,s=T(`wcset__row`),c=T(`wcset__info`);if(c.append(T(`wcset__name`,t.name),T(`wcset__detail`,O(e))),s.append(c),t.isOAuth){let t=e.loggedOut===!0;s.append(E(`wcset__btn`,t?`Log in`:`Log out`,()=>{t?k(e.providerId,``,n):r.logoutOAuthAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings logout failed`,{providerId:e.providerId,err:t}),a(`Logout failed.`,!0)})}))}return s.append(E(`wcset__btn wcset__btn--danger`,`Remove`,()=>{r.removeAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings remove failed`,{providerId:e.providerId,err:t}),a(`Remove failed.`,!0)})})),s}function j(e){let{ps:t,setStatus:n}=e,r=T(`wcset__add`);r.append(T(`wcset__label`,`Add account`));let i=document.createElement(`select`);i.className=`wcset__select`;let a=document.createElement(`option`);a.value=``,a.textContent=`Choose a provider…`,i.append(a);let o=new Set(t.getAccounts().map(e=>e.providerId)),s=t.getAvailableProviders().filter(e=>!o.has(e)&&t.providerOffersLlmModels(e)).sort((e,n)=>t.getProviderConfig(e).name.localeCompare(t.getProviderConfig(n).name));for(let e of s){let n=document.createElement(`option`);n.value=e,n.textContent=t.getProviderConfig(e).name,i.append(n)}r.append(i);let c=T(`wcset__controls`);return c.style.cssText=`display:flex;flex-direction:column;gap:8px;`,r.append(c),i.addEventListener(`change`,()=>{c.replaceChildren(),n(``);let r=i.value;if(!r)return;let a=t.getProviderConfig(r),o=document.createElement(`input`);if(o.className=`wcset__input`,o.placeholder=a.baseUrlPlaceholder??`Base URL`,o.value=t.getBaseUrlForProvider(r)??``,a.requiresBaseUrl&&c.append(o),a.isOAuth){c.append(E(`wcset__btn wcset__btn--primary`,`Login with ${a.name}`,()=>{k(r,o.value,e)}));return}let s=document.createElement(`input`);s.className=`wcset__input`,s.placeholder=a.deploymentPlaceholder??`Model IDs (comma-separated)`,s.value=t.getDeploymentForProvider(r)??``,a.requiresDeployment&&c.append(s);let l=document.createElement(`input`);l.className=`wcset__input`,l.type=`password`,l.placeholder=a.apiKeyPlaceholder??`API key`,l.setAttribute(`data-testid`,`wcset-api-key`),(a.requiresApiKey||a.optionalApiKey)&&c.append(l),c.append(E(`wcset__btn wcset__btn--primary`,`Save`,()=>{let i=l.value.trim();if(a.requiresApiKey&&!i){n(`An API key is required.`,!0),l.focus();return}if(a.requiresBaseUrl&&!o.value.trim()){n(`Base URL is required.`,!0),o.focus();return}if(a.requiresDeployment&&!s.value.trim()){n(`Model IDs are required.`,!0),s.focus();return}t.addAccount(r,i,o.value.trim()||void 0,s.value.trim()||void 0),l.value=``,n(`${a.name} connected.`),e.renderList()}))}),r}function M(){let e=T(`wcset__add`);e.append(T(`wcset__section-label`,`Chat`));let r=T(`wcset__toggle-row`),i=document.createElement(`label`);i.textContent=`Show timestamps`;let a=document.createElement(`input`);return a.type=`checkbox`,a.checked=t(),a.addEventListener(`change`,()=>n(a.checked)),r.append(i,a),e.append(r),e}function N(){let e=T(`wcset__add`);e.append(T(`wcset__section-label`,`Browsing`));let t=T(`wcset__toggle-row`),n=document.createElement(`label`);n.textContent=`Autodiscover agentic resources`;let r=document.createElement(`input`);return r.type=`checkbox`,r.checked=b(),r.addEventListener(`change`,()=>y(r.checked)),t.append(n,r),e.append(t),e}function P(e,t,n){let r=T(`wcset__add`);r.append(T(`wcset__section-label`,`Keyboard mode`));let i=T(`wcset__radio-list`),a=[{value:`auto`,title:`Auto`,detail:`On whenever you are not typing — click outside the composer to command.`},{value:`esc`,title:`Esc`,detail:`Press Esc to enter. Blurring the composer does not turn it on.`},{value:null,title:`Off`,detail:`Keyboard mode disabled. Shortcuts stay unavailable until you pick Auto or Esc.`}],o=e.getTrigger();for(let r of a){let a=document.createElement(`label`);a.className=`wcset__radio-row`;let s=document.createElement(`input`);s.type=`radio`,s.name=`wcset-keyboard-trigger`,s.value=r.value===null?`off`:r.value,s.checked=o===r.value,s.addEventListener(`change`,()=>{if(!s.checked)return;let i=r.value;e.setTrigger(i),t(`Saved.`),e.persistTrigger?.(i).catch(e=>{n.error(`Could not persist keyboard trigger`,e),t(`Applied for this session; could not write /etc/slicc/keys.json.`,!0)})});let c=T(`wcset__radio-row__body`);c.append(T(`wcset__radio-row__title`,r.title),T(`wcset__radio-row__detail`,r.detail)),a.append(s,c),i.append(a)}return r.append(i),r}function F(e){let t=T(`wcset__list`),n=a().filter(e=>e.userToggleable);n.length===0&&t.append(T(`wcset__empty`,`No experimental features are available right now.`));for(let r of n){let n=T(`wcset__toggle-row`),a=T(`wcset__info`),s=document.createElement(`label`),c=document.createElement(`input`);c.id=`wcset-feature-${r.id}`,c.type=`checkbox`,c.checked=o(r.id),s.htmlFor=c.id,s.textContent=r.label,a.append(s,T(`wcset__detail`,r.description)),c.addEventListener(`change`,()=>{try{i(r.id,c.checked?`on`:`off`),c.checked=o(r.id),e.setStatus(`Saved.`)}catch(t){e.log.error(`Experimental settings update failed`,{flagId:r.id,err:t}),e.setStatus(`Unable to save this feature setting.`,!0)}}),n.append(a,c),t.append(n)}return t}function I(e){let t=T(`wcset__appearance`);t.append(T(`wcset__section-label`,`Appearance`));let n=c(),r=T(`wcset__preset-grid`),i=document.createElement(`div`);i.className=`wcset__preset-swatch${n?``:` wcset__preset-swatch--active`}`,i.innerHTML=[`#161618`,`#1f1f22`,`#f59e0b`].map(e=>`<div class="wcset__preset-swatch__stripe" style="background:${e}"></div>`).join(``)+`<div class="wcset__preset-name">Default</div>`,i.addEventListener(`click`,()=>{d(),v(),g()}),r.append(i);for(let e of u){let t=document.createElement(`div`);t.className=`wcset__preset-swatch${n===e.id?` wcset__preset-swatch--active`:``}`,t.innerHTML=`<div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-25`]||`#1a1a1a`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-100`]||`#2c2c2c`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-accent`]||`#3562ff`}"></div><div class="wcset__preset-name">${e.name}</div>`,t.addEventListener(`click`,()=>{m(e.id),v(),g()}),r.append(t)}t.append(r);let a=f().filter(e=>e.id!==`__preview`);if(a.length>0){let e=T(`wcset__custom-themes`);e.append(T(`wcset__section-label`,`My Themes`));for(let t of a){let r=T(`wcset__custom-row`),i=T(`wcset__custom-row__name`,t.name);n===t.id&&(i.style.fontWeight=`700`),r.append(i),r.append(E(`wcset__btn`,`Use`,()=>{m(t.id),v(),g()})),r.append(E(`wcset__btn`,`Edit`,()=>{y(t)})),r.append(E(`wcset__btn`,`Export`,()=>{let e=new Blob([h(t)],{type:`application/json`}),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`${t.name.toLowerCase().replace(/\s+/g,`-`)}.slicc-theme.json`,r.click(),URL.revokeObjectURL(n)})),r.append(E(`wcset__btn wcset__btn--danger`,`×`,()=>{s(t.id),v(),g()})),e.append(r)}t.append(e)}let o=T(``);o.style.cssText=`display:flex;gap:8px;`,o.append(E(`wcset__btn wcset__btn--primary`,`+ Create Custom Theme`,()=>{y(null)})),o.append(E(`wcset__btn`,`Import Theme…`,()=>{let t=document.createElement(`input`);t.type=`file`,t.accept=`.json`,t.addEventListener(`change`,()=>{let n=t.files?.[0];n&&n.text().then(t=>{try{let n=_(t);l(n),e.setStatus(`Imported "${n.name}".`),g()}catch(t){e.setStatus(`Import failed: ${t instanceof Error?t.message:String(t)}`,!0)}})}),t.click()})),t.append(o);let p=T(``);t.append(p);function g(){let n=t.parentElement;if(!n)return;let r=I(e);n.replaceChild(r,t)}function y(t){p.replaceChildren(U(t,e,g))}return t}function L(e,t,n,r){let i=[],a=p(e,t);for(let[e,t]of Object.entries(x)){i.push(T(`wcset__section-label`,e));let o=T(`wcset__advanced-grid`);for(let e of t){let t=T(`wcset__advanced-token`),i=document.createElement(`input`);i.type=`color`;let s=n[e]||a[e]||`#000000`;i.value=s.startsWith(`#`)?s:`#000000`,i.addEventListener(`input`,()=>{n[e]=i.value,r()});let c=document.createElement(`span`);c.textContent=e.replace(`--s2-`,``).replace(`--slicc-`,``),t.append(i,c),o.append(t)}i.push(o)}return i}function R(e,t,n,r,i){let a=[];for(let[r,o]of[[`background`,`Background`],[`text`,`Text`],[`accent`,`Links & buttons`]]){let s=T(`wcset__builder-row`),c=document.createElement(`label`);c.textContent=o;let l=document.createElement(`input`);l.type=`color`,l.value=e[r],l.addEventListener(`input`,()=>{e[r]=l.value,i()});let u=document.createElement(`input`);if(u.type=`range`,u.min=`0`,u.max=`100`,u.value=String(Math.round((t[r]??1)*100)),u.style.cssText=`width:60px;margin-left:6px;`,u.title=`Opacity`,u.addEventListener(`input`,()=>{t[r]=Number(u.value)/100,i()}),s.append(c,l,u),r===`background`){let e=document.createElement(`input`);e.type=`checkbox`,e.checked=n.disabled,e.style.cssText=`width:auto;margin:0 0 0 8px;`,e.title=`Hide animated background`,e.addEventListener(`change`,()=>{n.disabled=e.checked,i()});let t=document.createElement(`span`);t.textContent=`Static`,t.style.cssText=`font-size:10px;color:var(--txt-3);`,s.append(e,t)}a.push(s)}a.push(T(`wcset__section-label`,`Components`));for(let[e,t]of[[`bubbleBg`,`User bubble bg`],[`bubbleText`,`User bubble text`],[`navBg`,`Nav bar`],[`composerBg`,`Input box`]]){let n=T(`wcset__builder-row`),o=document.createElement(`label`);o.textContent=t;let s=document.createElement(`input`);s.type=`color`,s.value=r[e]||`#000000`,s.addEventListener(`input`,()=>{r[e]=s.value,i()}),n.append(o,s),a.push(n)}return a}function z(e,t){let n=T(`wcset__builder-row`),r=document.createElement(`label`);r.textContent=`Base`;let i=T(`wcset__base-toggle`);for(let n of[`dark`,`light`]){let r=document.createElement(`button`);r.textContent=n.charAt(0).toUpperCase()+n.slice(1),r.className=e===n?`active`:``,r.addEventListener(`click`,()=>t(n)),i.append(r)}return n.append(r,i),n}function B(e,t){let n=T(``);return n.style.cssText=`display:flex;gap:8px;margin-top:8px;`,n.append(E(`wcset__btn wcset__btn--primary`,`Save`,e)),n.append(E(`wcset__btn`,`Cancel`,t)),n}function V(e){return{userBubble:{background:e.bubbleBg,text:e.bubbleText},nav:{background:e.navBg},composer:{background:e.composerBg}}}function H(e,t){let n=t===`dark`;return{bubbleBg:e?.components?.userBubble?.background||(n?`#f5f5f2`:`#0a0a0a`),bubbleText:e?.components?.userBubble?.text||(n?`#0a0a0a`:`#ffffff`),navBg:e?.components?.nav?.background||(n?`#161618`:`#ffffff`),composerBg:e?.components?.composer?.background||(n?`#161618`:`#ffffff`)}}function U(e,t,n){let i=T(`wcset__builder`),a=e?.base??`dark`,o=e?.disableShader??!1,c=!1,u={background:e?.tokens[`--s2-gray-25`]||(a===`dark`?`#1a1a1a`:`#ffffff`),surface:``,text:e?.tokens[`--s2-content-default`]||e?.tokens[`--s2-gray-900`]||(a===`dark`?`#e8e8e8`:`#131313`),accent:e?.tokens[`--s2-accent`]||`#3562ff`,border:``,success:`#2d9d78`,error:`#e34850`},f={background:1,text:1,accent:1},h=H(e,a),_={},y=document.createElement(`input`);y.className=`wcset__input`,y.placeholder=`Theme name`,y.value=e?.name??``;function b(){return r(y.value)||`custom-${Date.now()}`}function x(){let e=a===`dark`;u.surface=g(u.background,e?.1:-.08),u.border=g(u.background,e?.15:-.12),u.success=`#2d9d78`,u.error=`#e34850`}function S(){x();let e={...p(u,a),..._};for(let[t,n]of Object.entries(f))if(n<1&&u[t]){let r=u[t],i=Math.round(n*255).toString(16).padStart(2,`0`);for(let n of{background:[`--canvas`,`--s2-gray-25`,`--s2-bg-base`,`--shaderbg`],text:[`--ink`,`--s2-content-default`,`--s2-gray-900`],accent:[`--ctx`,`--waffle`,`--s2-accent`]}[t]||[])e[n]&&(e[n]=`${r}${i}`)}let t={id:`__preview`,name:`Preview`,base:a,tokens:e,disableShader:o,components:V(h)};l(t),m(`__preview`),v()}function C(){i.replaceChildren();let r=T(`wcset__builder-row`),g=document.createElement(`label`);g.textContent=`Name`,r.append(g,y),i.append(r),i.append(z(a,e=>{a=e,C(),S()}));let w={disabled:o};for(let e of R(u,f,w,h,()=>{o=w.disabled,S()}))i.append(e);let E=document.createElement(`button`);if(E.className=`wcset__advanced-toggle`,E.textContent=c?`Hide advanced`:`Show advanced`,E.addEventListener(`click`,()=>{c=!c,C()}),i.append(E),c)for(let e of L(u,a,_,S))i.append(e);i.append(B(()=>{let r=y.value.trim();if(!r){t.setStatus(`Name is required.`,!0);return}x();let i={...p(u,a),..._},c=e?.id??b(),d={id:c,name:r,base:a,tokens:i,disableShader:o,components:V(h)};s(`__preview`),l(d),m(c),v(),t.setStatus(`Saved "${r}".`),n()},()=>{s(`__preview`),e?m(e.id):d(),v(),n()}))}return C(),S(),i}async function W(t){let n=await e(()=>import(`./main-M0tuQaox.js`).then(e=>e.t),__vite__mapDeps([10,3,11,12,1,13,14,15,16,17,18,19,20,4,2,5,6,7,21,22,23,24,25,26,8,27,28,29,30,31,32,33,34,35]));w(document);let r=JSON.stringify(n.getAccounts());return new Promise(e=>{let i=document.createElement(`slicc-dialog`);i.classList.add(`wcset-dialog`),i.setAttribute(`heading`,`Accounts`);let a=T(`wcset`),o=T(`wcset__list`),s=T(`wcset__status`),c=(e,t=!1)=>{s.textContent=e,s.toggleAttribute(`data-error`,t)},l=r,u=()=>{let e=JSON.stringify(n.getAccounts());e!==l&&(l=e,window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`)))},d=T(``),f={ps:n,log:t,setStatus:c,renderList:()=>{u(),o.replaceChildren();let e=n.getAccounts();if(e.length===0)o.append(T(`wcset__empty`,`No accounts configured.`));else for(let t of e)o.append(A(t,n.getProviderConfig(t.providerId),f));d.replaceChildren(j(f))}};f.renderList(),a.append(o,d,s),i.append(a);let p=E(`wcset__btn wcset__btn--primary`,`Done`,()=>{i.hide?.()});p.setAttribute(`slot`,`footer`),i.append(p),i.addEventListener(`slicc-dialog-close`,()=>{i.remove(),e(JSON.stringify(n.getAccounts())!==r)}),document.body.append(i),i.show?.()})}async function G(e,t){return w(document),s(`__preview`),new Promise(n=>{let r=document.createElement(`slicc-dialog`);r.classList.add(`wcset-dialog`),r.setAttribute(`heading`,`Theme`);let i=T(`wcset`),a=T(`wcset__status`),o=(e,t=!1)=>{a.textContent=e,a.toggleAttribute(`data-error`,t)},l=I({ps:null,log:e,setStatus:o,renderList:()=>{}}),u=M(),f=N();i.append(l,u,f),t&&i.append(P(t,o,e)),i.append(a),r.append(i);let p=E(`wcset__btn wcset__btn--primary`,`Done`,()=>{r.hide?.()});p.setAttribute(`slot`,`footer`),r.append(p);let h=c();r.addEventListener(`slicc-dialog-close`,()=>{c()===`__preview`&&(s(`__preview`),h&&h!==`__preview`?m(h):d(),v()),r.remove(),n()}),document.body.append(r),r.show?.()})}async function K(e){if(o(`experimental-settings`))return w(document),new Promise(t=>{let n=document.createElement(`slicc-dialog`);n.classList.add(`wcset-dialog`),n.setAttribute(`heading`,`Experimental`);let r=T(`wcset`),i=T(`wcset__status`);r.append(F({log:e,setStatus:(e,t=!1)=>{i.textContent=e,i.toggleAttribute(`data-error`,t)}}),i),n.append(r);let a=E(`wcset__btn wcset__btn--primary`,`Done`,()=>{n.hide?.()});a.setAttribute(`slot`,`footer`),n.append(a),n.addEventListener(`slicc-dialog-close`,()=>{n.remove(),t()}),document.body.append(n),n.show?.()})}export{K as showExperimentalSettings,G as showThemeSettings,W as showWcSettings};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./wc-onboarding-Dxe6xAB_.js";export{e as hasOnboardingFinalLickInHistory};
|