sliccy 2.47.0 → 2.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/ui/assets/{adobe-ChiPMaY_.js → adobe-BVYRvXsL.js} +1 -1
  2. package/dist/ui/assets/{adobe-CYc4nGUl.js → adobe-DOst-H7r.js} +1 -1
  3. package/dist/ui/assets/{agent-bridge-DCWUatHI.js → agent-bridge-C4zvo9Uu.js} +1 -1
  4. package/dist/ui/assets/{agent-message-to-chat-CpO8Pvs0.js → agent-message-to-chat-CMHJiLMB.js} +1 -1
  5. package/dist/ui/assets/{anthropic-C9OuJQ4V.js → anthropic-CZqomz-1.js} +1 -1
  6. package/dist/ui/assets/{anthropic-BPmhl-BK.js → anthropic-CmyipZgN.js} +1 -1
  7. package/dist/ui/assets/{azure-openai-BQQV1D_P.js → azure-openai-CBaV-VSJ.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-BIxeQuo3.js → azure-openai-CJM6ZwXQ.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-responses-BIZ-o1R-.js → azure-openai-responses-CooQ5Awz.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-responses-Bu5H71kE.js → azure-openai-responses-JpSdxXhY.js} +1 -1
  11. package/dist/ui/assets/{bedrock-camp-Cb2A4zdT.js → bedrock-camp-B0q-7yNy.js} +2 -2
  12. package/dist/ui/assets/{bedrock-camp-DL_mgn4B.js → bedrock-camp-W_gIoKyb.js} +3 -3
  13. package/dist/ui/assets/{cdp-B0hs9Xg0.js → cdp-C_HxLMY8.js} +2 -2
  14. package/dist/ui/assets/cost-command-9CbNoyAQ.js +1 -0
  15. package/dist/ui/assets/db-DPvmo9md.js +1 -0
  16. package/dist/ui/assets/{es-B7LLpBrR.js → es-C_SsgQvK.js} +1 -1
  17. package/dist/ui/assets/{fs-CDIZmyaZ.js → fs-CxBHreU_.js} +3 -3
  18. package/dist/ui/assets/{fs-CalJxnut.js → fs-llf9MCzR.js} +2 -2
  19. package/dist/ui/assets/{github-D6PLClUu.js → github-BPAh8jDL.js} +1 -1
  20. package/dist/ui/assets/{github-CGOx4j9-.js → github-BuYYHwVD.js} +2 -2
  21. package/dist/ui/assets/{google-ylEWR-hH.js → google-Cpy5Sd04.js} +1 -1
  22. package/dist/ui/assets/{google-CpKiZfa6.js → google-_NgtAdE2.js} +1 -1
  23. package/dist/ui/assets/index-DLPF7rO2.js +1542 -0
  24. package/dist/ui/assets/index-eWuuouO-.css +1 -0
  25. package/dist/ui/assets/{kernel-worker-DMo9rI3U.js → kernel-worker-CFHZVECk.js} +910 -914
  26. package/dist/ui/assets/{local-llm-D-Oh-jjr.js → local-llm-DQmN1q4F.js} +1 -1
  27. package/dist/ui/assets/{local-llm-cGPTU4Lz.js → local-llm-DRYqjBeF.js} +1 -1
  28. package/dist/ui/assets/{magick-wasm-Bs4mqGyg.js → magick-wasm-Doso8RzK.js} +1 -1
  29. package/dist/ui/assets/{mistral-BoB6cy5b.js → mistral-Don9WA_U.js} +1 -1
  30. package/dist/ui/assets/{mistral-C0QsqKkL.js → mistral-kdNDZsM0.js} +1 -1
  31. package/dist/ui/assets/{mount-BiTfpGKT.js → mount-D22V7Wmv.js} +2 -2
  32. package/dist/ui/assets/{mount-CTjXSfgE.js → mount-cJ7Fh1ww.js} +1 -1
  33. package/dist/ui/assets/{nuke-command-Dzrk6y_a.js → nuke-command-BwPFXzTo.js} +1 -1
  34. package/dist/ui/assets/{oauth-bootstrap-C4u61qCh.js → oauth-bootstrap-Cnoncizz.js} +1 -1
  35. package/dist/ui/assets/{oauth-service-OsM0h5z8.js → oauth-service-B3UTYTa2.js} +1 -1
  36. package/dist/ui/assets/offscreen-client-DRUAUGTX.js +1 -0
  37. package/dist/ui/assets/{onboarding-orchestrator-DbqM_g6s.js → onboarding-orchestrator-DauAN5MT.js} +1 -1
  38. package/dist/ui/assets/{openai-codex-responses-Ce2GENek.js → openai-codex-responses-DEFesGuE.js} +1 -1
  39. package/dist/ui/assets/{openai-codex-responses-BFpvfWxK.js → openai-codex-responses-DchQe0cH.js} +1 -1
  40. package/dist/ui/assets/{openai-completions-ZO90X2Ud.js → openai-completions-Bt4QlIyn.js} +1 -1
  41. package/dist/ui/assets/{openai-completions-ua_-4sev.js → openai-completions-D49Ptr1B.js} +1 -1
  42. package/dist/ui/assets/{openai-responses-CT7XetVa.js → openai-responses-e0RQ8RFv.js} +1 -1
  43. package/dist/ui/assets/{openai-responses-B3HwwU7H.js → openai-responses-r6y-rY24.js} +1 -1
  44. package/dist/ui/assets/{openai-responses-shared-DvJKBTf2.js → openai-responses-shared-B-T272Af.js} +1 -1
  45. package/dist/ui/assets/{openai-responses-shared-BcgKne2C.js → openai-responses-shared-BemWgAjZ.js} +1 -1
  46. package/dist/ui/assets/provider-settings-CaxrG5yA.js +28 -0
  47. package/dist/ui/assets/provider-settings-DificpTl.js +63 -0
  48. package/dist/ui/assets/{providers-Dsvd08GE.js → providers-ypr6l9lG.js} +1 -1
  49. package/dist/ui/assets/{spawn-BSCxX5t9.js → spawn-B_aoqz2m.js} +1 -1
  50. package/dist/ui/assets/upgrade-detection-CyImEIEC.js +1 -0
  51. package/dist/ui/electron-overlay-entry.js +7 -7
  52. package/dist/ui/index.html +7 -7
  53. package/dist/ui/packages/webapp/index.html +7 -7
  54. package/package.json +1 -1
  55. package/dist/ui/assets/cost-command-DKS3B4gt.js +0 -1
  56. package/dist/ui/assets/db-Cdoacmjm.js +0 -1
  57. package/dist/ui/assets/index-26LMz-pW.js +0 -1454
  58. package/dist/ui/assets/index-Bq8rJrUU.css +0 -1
  59. package/dist/ui/assets/offscreen-client-CN61XEeN.js +0 -1
  60. package/dist/ui/assets/provider-settings-8ujfC6bI.js +0 -2
  61. package/dist/ui/assets/provider-settings-BC-UlzV5.js +0 -90
  62. package/dist/ui/assets/upgrade-detection-CFY14GnO.js +0 -1
@@ -1 +1 @@
1
- import{r as e}from"./chunk-jRWAZmH_.js";var t={include:[`*`],exclude:[]},n=e({getRegisteredProviderConfig:()=>u,getRegisteredProviderIds:()=>d,registerProviders:()=>l,shouldIncludeProvider:()=>i});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CaxHzIfg.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-BIxeQuo3.js`),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-Cb2A4zdT.js`).then(e=>e.n),"./built-in/local-llm.ts":()=>import(`./local-llm-D-Oh-jjr.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-ChiPMaY_.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-D6PLClUu.js`)}),s=new Map;let c=null;function l(){return c||(c=(async()=>{for(let[e,t]of Object.entries(a)){let e=await t();e.config&&i(e.config.id)&&(s.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(o)){let e=await t();e.config&&(s.set(e.config.id,e.config),e.register?.())}})(),c)}function u(e){return s.get(e)}function d(){return[...s.keys()]}export{i as a,l as i,d as n,n as r,u as t};
1
+ import{r as e}from"./chunk-jRWAZmH_.js";var t={include:[`*`],exclude:[]},n=e({getRegisteredProviderConfig:()=>u,getRegisteredProviderIds:()=>d,registerProviders:()=>l,shouldIncludeProvider:()=>i});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CaxHzIfg.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-CJM6ZwXQ.js`),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-B0q-7yNy.js`).then(e=>e.n),"./built-in/local-llm.ts":()=>import(`./local-llm-DQmN1q4F.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-BVYRvXsL.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BPAh8jDL.js`)}),s=new Map;let c=null;function l(){return c||(c=(async()=>{for(let[e,t]of Object.entries(a)){let e=await t();e.config&&i(e.config.id)&&(s.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(o)){let e=await t();e.config&&(s.set(e.config.id,e.config),e.register?.())}})(),c)}function u(e){return s.get(e)}function d(){return[...s.keys()]}export{i as a,l as i,d as n,n as r,u as t};
@@ -1 +1 @@
1
- import{OffscreenClient as e}from"./offscreen-client-CN61XEeN.js";function t(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function n(e){let n=t(e);return{onMessage:e=>n.onMessage(e),send:e=>{n.send({source:`panel`,payload:e})}}}function r(e,n){let r=t(e),i=new Map,a=r.onMessage(async e=>{let t=e;if(t?.type){if(t.type===`cdp-cmd`){let t=e;try{let e=await n.send(t.method,t.params,t.sessionId);r.send({type:`cdp-response`,id:t.id,result:e})}catch(e){r.send({type:`cdp-response`,id:t.id,error:e instanceof Error?e.message:String(e)})}return}if(t.type===`cdp-subscribe`){let t=e;if(i.has(t.event))return;let a=e=>{r.send({type:`cdp-event`,method:t.event,params:e})};i.set(t.event,a),n.on(t.event,a);return}if(t.type===`cdp-unsubscribe`){let t=e,r=i.get(t.event);if(!r)return;i.delete(t.event),n.off(t.event,r);return}}});return()=>{a();for(let[e,t]of i)n.off(e,t);i.clear()}}function i(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function a(t){let{worker:i,realCdpTransport:a,callbacks:o}=t,s=t.readyTimeoutMs??3e4,c=t.localStorageSeed??{},l=new MessageChannel,u=new MessageChannel,d=new e(o,n(l.port1)),f=r(u.port1,a),p=null,m=new Promise((e,t)=>{let n=null,r=null;p=()=>{r!==null&&(l.port1.removeEventListener(`message`,r),r=null),n!==null&&(clearTimeout(n),n=null)},r=t=>{t.data?.type===`kernel-worker-ready`&&(p?.(),e())},l.port1.addEventListener(`message`,r),n=setTimeout(()=>{p?.(),t(Error(`Kernel worker did not signal ready within ${s}ms`))},s)}),h={type:`kernel-worker-init`,kernelPort:l.port2,cdpPort:u.port2,localStorageSeed:c,instanceId:t.instanceId};i.postMessage(h,[l.port2,u.port2]);let g=!1;return{client:d,ready:m,dispose(){if(!g){g=!0,p?.(),f();try{i.postMessage({type:`kernel-worker-shutdown`})}catch{}i.terminate(),l.port1.close(),u.port1.close()}}}}function o(e){return a({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DMo9rI3U.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??i(),instanceId:e.instanceId})}export{o as spawnKernelWorker};
1
+ import{OffscreenClient as e}from"./offscreen-client-DRUAUGTX.js";function t(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function n(e){let n=t(e);return{onMessage:e=>n.onMessage(e),send:e=>{n.send({source:`panel`,payload:e})}}}function r(e,n){let r=t(e),i=new Map,a=r.onMessage(async e=>{let t=e;if(t?.type){if(t.type===`cdp-cmd`){let t=e;try{let e=await n.send(t.method,t.params,t.sessionId);r.send({type:`cdp-response`,id:t.id,result:e})}catch(e){r.send({type:`cdp-response`,id:t.id,error:e instanceof Error?e.message:String(e)})}return}if(t.type===`cdp-subscribe`){let t=e;if(i.has(t.event))return;let a=e=>{r.send({type:`cdp-event`,method:t.event,params:e})};i.set(t.event,a),n.on(t.event,a);return}if(t.type===`cdp-unsubscribe`){let t=e,r=i.get(t.event);if(!r)return;i.delete(t.event),n.off(t.event,r);return}}});return()=>{a();for(let[e,t]of i)n.off(e,t);i.clear()}}function i(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function a(t){let{worker:i,realCdpTransport:a,callbacks:o}=t,s=t.readyTimeoutMs??3e4,c=t.localStorageSeed??{},l=new MessageChannel,u=new MessageChannel,d=new e(o,n(l.port1)),f=r(u.port1,a),p=null,m=new Promise((e,t)=>{let n=null,r=null;p=()=>{r!==null&&(l.port1.removeEventListener(`message`,r),r=null),n!==null&&(clearTimeout(n),n=null)},r=t=>{t.data?.type===`kernel-worker-ready`&&(p?.(),e())},l.port1.addEventListener(`message`,r),n=setTimeout(()=>{p?.(),t(Error(`Kernel worker did not signal ready within ${s}ms`))},s)}),h={type:`kernel-worker-init`,kernelPort:l.port2,cdpPort:u.port2,localStorageSeed:c,instanceId:t.instanceId};i.postMessage(h,[l.port2,u.port2]);let g=!1;return{client:d,ready:m,dispose(){if(!g){g=!0,p?.(),f();try{i.postMessage({type:`kernel-worker-shutdown`})}catch{}i.terminate(),l.port1.close(),u.port1.close()}}}}function o(e){return a({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-CFHZVECk.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??i(),instanceId:e.instanceId})}export{o as spawnKernelWorker};
@@ -0,0 +1 @@
1
+ import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`2.49.1`,releasedAt:`2026-05-13T23:12:59Z`}}async function i(){let e=await t(n);return e&&e.length>0?e:null}async function a(t){await e(n,t)}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,4 +1,4 @@
1
- "use strict";(()=>{var B=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],rt="slicc-hidden-tabs",H=["terminal","memory"];function ot(){try{let r=localStorage.getItem(rt);return r?new Set(JSON.parse(r)):new Set(H)}catch{return new Set(H)}}var Z=B.filter(r=>!ot().has(r.id)),T="chat",mt=new Set(B.map(r=>r.id));function u(r,t=T){return r&&r.length>0?r:t}var nt=["top-left","top-right","bottom-left","bottom-right","top","right","bottom","left"],at="top-right",st=6,it=12,lt=.6;function m(r,t=at){return nt.includes(r)?r:t}function M(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,T),corner:m(r.corner)}}function j(r){return{...r,open:!r.open}}function C(r,t){return r.open===t?r:{...r,open:t}}function A(r,t){let e=u(t,r.activeTab);return r.activeTab===e?r:{...r,activeTab:e}}function k(r,t){let e=m(t,r.corner);return r.corner===e?r:{...r,corner:e}}function R(r,t){return r>=st||r>=it&&t>=lt}function F({clientX:r,clientY:t,viewportWidth:e,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=$(r+n*s,0,e),p=$(t+a*s,0,o),i=l/e,c=p/o,d=i>1/3&&i<2/3,h=c>1/3&&c<2/3;if(d&&h){let f=c,b=1-c,S=i,g=1-i,O=Math.min(f,b,S,g);return O===f?"top":O===b?"bottom":O===S?"left":"right"}if(d)return c<.5?"top":"bottom";if(h)return i<.5?"left":"right";let v=i<.5?"left":"right";return`${c<.5?"top":"bottom"}-${v}`}function $(r,t,e){return Math.min(Math.max(r,t),e)}var W="slicc-electron-overlay:set-tab";var z=`<?xml version="1.0" encoding="UTF-8"?>
1
+ "use strict";(()=>{var B=[{id:"chat",label:"Chat"},{id:"terminal",label:"Terminal"},{id:"files",label:"Files"},{id:"memory",label:"Memory"}],H=B,M="chat",ut=new Set(B.map(r=>r.id));function u(r,t=M){return r&&r.length>0?r:t}var et=["top-left","top-right","bottom-left","bottom-right","top","right","bottom","left"],rt="top-right",ot=6,nt=12,at=.6;function f(r,t=rt){return et.includes(r)?r:t}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:f(r.corner)}}function $(r){return{...r,open:!r.open}}function T(r,t){return r.open===t?r:{...r,open:t}}function w(r,t){let e=u(t,r.activeTab);return r.activeTab===e?r:{...r,activeTab:e}}function A(r,t){let e=f(t,r.corner);return r.corner===e?r:{...r,corner:e}}function R(r,t){return r>=ot||r>=nt&&t>=at}function j({clientX:r,clientY:t,viewportWidth:e,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=Z(r+n*s,0,e),p=Z(t+a*s,0,o),i=l/e,c=p/o,d=i>1/3&&i<2/3,h=c>1/3&&c<2/3;if(d&&h){let m=c,b=1-c,S=i,g=1-i,k=Math.min(m,b,S,g);return k===m?"top":k===b?"bottom":k===S?"left":"right"}if(d)return c<.5?"top":"bottom";if(h)return i<.5?"left":"right";let E=i<.5?"left":"right";return`${c<.5?"top":"bottom"}-${E}`}function Z(r,t,e){return Math.min(Math.max(r,t),e)}var F="slicc-electron-overlay:set-tab";var z=`<?xml version="1.0" encoding="UTF-8"?>
2
2
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
3
3
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: rgb(34, 34, 34); stroke: rgb(255, 255, 255); stroke-linejoin: round; stroke-width: 20px;"/>
4
4
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -24,7 +24,7 @@
24
24
  </g><g id="Left_Eye" data-name="Left Eye">
25
25
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: rgb(0, 0, 0); stroke: rgb(255, 255, 255); stroke-miterlimit: 10; stroke-width: 6px;"/>
26
26
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(255, 255, 255);"/>
27
- </g></g></g></svg>`;var G=`<?xml version="1.0" encoding="UTF-8"?>
27
+ </g></g></g></svg>`;var W=`<?xml version="1.0" encoding="UTF-8"?>
28
28
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
29
29
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: #fff; stroke: #000; stroke-linejoin: round; stroke-width: 20px;"/>
30
30
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -50,7 +50,7 @@
50
50
  </g><g id="Left_Eye" data-name="Left Eye">
51
51
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"/>
52
52
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(0, 0, 0);"/>
53
- </g></g></g></svg>`;var U="slicc-electron-overlay-root",N="slicc-electron-overlay",ht="Semicolon",J=";",ut="slicc-electron-overlay:toggle",L="slicc-electron-launcher",_="slicc-electron-sidebar",E="",y=18,Q="slicc-electron-overlay-launcher-corner";function X(r,t){let e=r.createElement("style");return e.textContent=t,e}function q(r){return r.replace(/<\?xml[^?]*\?>\s*/i,"")}var V=`
53
+ </g></g></g></svg>`;var U="slicc-electron-overlay-root",P="slicc-electron-overlay",pt="Semicolon",K=";",dt="slicc-electron-overlay:toggle",L="slicc-electron-launcher",_="slicc-electron-sidebar",v="",y=18,J="slicc-electron-overlay-launcher-corner";function X(r,t){let e=r.createElement("style");return e.textContent=t,e}function q(r){return r.replace(/<\?xml[^?]*\?>\s*/i,"")}var V=`
54
54
  :host {
55
55
  color-scheme: dark light;
56
56
  --s2-gray-25: #1a1a1a;
@@ -99,7 +99,7 @@
99
99
  --s2-shadow-elevated: 0 10px 32px rgba(0, 0, 0, 0.14), 0 2px 10px rgba(0, 0, 0, 0.08);
100
100
  }
101
101
  }
102
- `;function bt(r,t){try{let e=new URL(r,window.location.href);return e.searchParams.set("tab",t),e.toString()}catch{return r}}var P=class extends HTMLElement{static observedAttributes=["open","corner"];button=null;pointerState=null;suppressClick=!1;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=y;t.appendChild(X(e,`
102
+ `;function gt(r,t){try{let e=new URL(r,window.location.href);return e.searchParams.set("tab",t),e.toString()}catch{return r}}var N=class extends HTMLElement{static observedAttributes=["open","corner"];button=null;pointerState=null;suppressClick=!1;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=y;t.appendChild(X(e,`
103
103
  ${V}
104
104
  :host {
105
105
  all: initial;
@@ -203,7 +203,7 @@
203
203
  .logo-for-dark { display: none; }
204
204
  .logo-for-light { display: block; }
205
205
  }
206
- `));let n=e.createElement("button");n.type="button";let s=`${navigator.platform?.startsWith("Mac")||navigator.userAgent?.includes("Mac")?"\u2318":"Ctrl+"}${J}`;n.setAttribute("aria-label","Toggle SLICC overlay"),n.title=`Toggle SLICC (${s})`;let l=e.createElement("div");l.className="logo-icon logo-for-dark",l.innerHTML=q(z),l.setAttribute("aria-hidden","true");let p=e.createElement("div");p.className="logo-icon logo-for-light",p.innerHTML=q(G),p.setAttribute("aria-hidden","true");let i=e.createElement("span");i.className="tab-label",i.textContent="SLICC",n.appendChild(l),n.appendChild(p),n.appendChild(i),t.appendChild(n),this.button=n,this.button?.addEventListener("click",c=>{if(this.suppressClick){this.suppressClick=!1,c.preventDefault(),c.stopImmediatePropagation();return}this.dispatchEvent(new CustomEvent("slicc-overlay-toggle",{bubbles:!0,composed:!0}))}),this.button?.addEventListener("pointerdown",this.onPointerDown),this.button?.addEventListener("pointermove",this.onPointerMove),this.button?.addEventListener("pointerup",this.onPointerUp),this.button?.addEventListener("pointercancel",this.onPointerCancel)}sync(){this.button?.setAttribute("aria-pressed",String(this.hasAttribute("open")))}onPointerDown=t=>{if(!t.isPrimary||t.button!==0||!this.button)return;let e=this.getBoundingClientRect();this.pointerState={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,startLeft:e.left,startTop:e.top,width:e.width,height:e.height,lastX:t.clientX,lastY:t.clientY,lastTimestamp:t.timeStamp,velocityX:0,velocityY:0,dragging:!1},this.suppressClick=!1,this.button.setPointerCapture(t.pointerId),t.preventDefault()};onPointerMove=t=>{let e=this.pointerState;if(!e||t.pointerId!==e.pointerId)return;let o=t.clientX-e.startX,n=t.clientY-e.startY,a=Math.hypot(o,n);!e.dragging&&R(a,0)&&(e.dragging=!0,this.setAttribute("dragging",""));let s=Math.max(t.timeStamp-e.lastTimestamp,1),l=(t.clientX-e.lastX)/s,p=(t.clientY-e.lastY)/s;if(e.velocityX=e.velocityX===0?l:e.velocityX*.35+l*.65,e.velocityY=e.velocityY===0?p:e.velocityY*.35+p*.65,e.lastX=t.clientX,e.lastY=t.clientY,e.lastTimestamp=t.timeStamp,!e.dragging)return;let i=Math.max(y,window.innerWidth-e.width-y),c=Math.max(y,window.innerHeight-e.height-y),d=K(e.startLeft+o,y,i),h=K(e.startTop+n,y,c);this.style.left=`${d}px`,this.style.top=`${h}px`,this.style.right="auto",this.style.bottom="auto",t.preventDefault()};onPointerUp=t=>{this.finishPointerInteraction(t)};onPointerCancel=t=>{this.finishPointerInteraction(t,!1)};finishPointerInteraction(t,e=!0){let o=this.pointerState;if(!o||t.pointerId!==o.pointerId||!this.button)return;let n=Math.hypot(t.clientX-o.startX,t.clientY-o.startY),a=Math.hypot(o.velocityX,o.velocityY);if(e&&(o.dragging||R(n,a))){let l=F({clientX:t.clientX,clientY:t.clientY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,velocityXPxPerMs:o.velocityX,velocityYPxPerMs:o.velocityY});this.dispatchEvent(new CustomEvent("slicc-overlay-move",{bubbles:!0,composed:!0,detail:{corner:l}})),this.suppressClick=!0,t.preventDefault()}this.button.hasPointerCapture(t.pointerId)&&this.button.releasePointerCapture(t.pointerId),this.pointerState=null,this.removeAttribute("dragging"),this.resetDragStyles()}resetDragStyles(){this.style.left="",this.style.top="",this.style.right="",this.style.bottom=""}},Y=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];tabButtons=new Map;iframe=null;emptyState=null;currentAppUrl=E;frameLoaded=!1;lastPostedTab=null;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=u(this.getAttribute("active-tab"));t.appendChild(X(e,`
206
+ `));let n=e.createElement("button");n.type="button";let s=`${navigator.platform?.startsWith("Mac")||navigator.userAgent?.includes("Mac")?"\u2318":"Ctrl+"}${K}`;n.setAttribute("aria-label","Toggle SLICC overlay"),n.title=`Toggle SLICC (${s})`;let l=e.createElement("div");l.className="logo-icon logo-for-dark",l.innerHTML=q(z),l.setAttribute("aria-hidden","true");let p=e.createElement("div");p.className="logo-icon logo-for-light",p.innerHTML=q(W),p.setAttribute("aria-hidden","true");let i=e.createElement("span");i.className="tab-label",i.textContent="SLICC",n.appendChild(l),n.appendChild(p),n.appendChild(i),t.appendChild(n),this.button=n,this.button?.addEventListener("click",c=>{if(this.suppressClick){this.suppressClick=!1,c.preventDefault(),c.stopImmediatePropagation();return}this.dispatchEvent(new CustomEvent("slicc-overlay-toggle",{bubbles:!0,composed:!0}))}),this.button?.addEventListener("pointerdown",this.onPointerDown),this.button?.addEventListener("pointermove",this.onPointerMove),this.button?.addEventListener("pointerup",this.onPointerUp),this.button?.addEventListener("pointercancel",this.onPointerCancel)}sync(){this.button?.setAttribute("aria-pressed",String(this.hasAttribute("open")))}onPointerDown=t=>{if(!t.isPrimary||t.button!==0||!this.button)return;let e=this.getBoundingClientRect();this.pointerState={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,startLeft:e.left,startTop:e.top,width:e.width,height:e.height,lastX:t.clientX,lastY:t.clientY,lastTimestamp:t.timeStamp,velocityX:0,velocityY:0,dragging:!1},this.suppressClick=!1,this.button.setPointerCapture(t.pointerId),t.preventDefault()};onPointerMove=t=>{let e=this.pointerState;if(!e||t.pointerId!==e.pointerId)return;let o=t.clientX-e.startX,n=t.clientY-e.startY,a=Math.hypot(o,n);!e.dragging&&R(a,0)&&(e.dragging=!0,this.setAttribute("dragging",""));let s=Math.max(t.timeStamp-e.lastTimestamp,1),l=(t.clientX-e.lastX)/s,p=(t.clientY-e.lastY)/s;if(e.velocityX=e.velocityX===0?l:e.velocityX*.35+l*.65,e.velocityY=e.velocityY===0?p:e.velocityY*.35+p*.65,e.lastX=t.clientX,e.lastY=t.clientY,e.lastTimestamp=t.timeStamp,!e.dragging)return;let i=Math.max(y,window.innerWidth-e.width-y),c=Math.max(y,window.innerHeight-e.height-y),d=G(e.startLeft+o,y,i),h=G(e.startTop+n,y,c);this.style.left=`${d}px`,this.style.top=`${h}px`,this.style.right="auto",this.style.bottom="auto",t.preventDefault()};onPointerUp=t=>{this.finishPointerInteraction(t)};onPointerCancel=t=>{this.finishPointerInteraction(t,!1)};finishPointerInteraction(t,e=!0){let o=this.pointerState;if(!o||t.pointerId!==o.pointerId||!this.button)return;let n=Math.hypot(t.clientX-o.startX,t.clientY-o.startY),a=Math.hypot(o.velocityX,o.velocityY);if(e&&(o.dragging||R(n,a))){let l=j({clientX:t.clientX,clientY:t.clientY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,velocityXPxPerMs:o.velocityX,velocityYPxPerMs:o.velocityY});this.dispatchEvent(new CustomEvent("slicc-overlay-move",{bubbles:!0,composed:!0,detail:{corner:l}})),this.suppressClick=!0,t.preventDefault()}this.button.hasPointerCapture(t.pointerId)&&this.button.releasePointerCapture(t.pointerId),this.pointerState=null,this.removeAttribute("dragging"),this.resetDragStyles()}resetDragStyles(){this.style.left="",this.style.top="",this.style.right="",this.style.bottom=""}},Y=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];tabButtons=new Map;iframe=null;emptyState=null;currentAppUrl=v;frameLoaded=!1;lastPostedTab=null;connectedCallback(){this.shadowRoot||this.render(),this.sync()}attributeChangedCallback(){this.sync()}render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument,o=u(this.getAttribute("active-tab"));t.appendChild(X(e,`
207
207
  ${V}
208
208
  :host { all: initial; position: fixed; inset: 0; display: block; pointer-events: none; font-family: var(--s2-font-family); }
209
209
  :host([open]) { pointer-events: auto; }
@@ -255,7 +255,7 @@
255
255
  iframe { border: 0; width: 100%; height: 100%; display: block; background: var(--s2-bg-base); }
256
256
  .empty-state { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; color: var(--s2-content-secondary); font-size: 13px; line-height: 1.5; }
257
257
  .empty-state[hidden] { display: none; }
258
- `));let n=e.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),t.appendChild(n);let a=e.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=e.createElement("header");s.className="header";let l=e.createElement("div");l.className="header__brand";let p=e.createElement("div"),i=e.createElement("div");i.className="header__title",i.textContent="slicc";let c=e.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=e.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=e.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of Z){let g=e.createElement("button");g.type="button",g.className="tab-bar__tab"+(b===o?" tab-bar__tab--active":""),g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(b===o)),g.dataset.tab=b,g.textContent=S,this.tabButtons.set(b,g),g.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-select-tab",{bubbles:!0,composed:!0,detail:{tab:b}}))}),h.appendChild(g)}a.appendChild(h);let v=e.createElement("div");v.className="viewport";let x=e.createElement("iframe");x.title="SLICC electron float",this.iframe=x,x.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()}),v.appendChild(x);let f=e.createElement("div");f.className="empty-state",f.textContent="Starting the local SLICC runtime\u2026",this.emptyState=f,v.appendChild(f),a.appendChild(v),t.appendChild(a),this.iframe?.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()})}sync(){let t=u(this.getAttribute("active-tab")),e=this.getAttribute("app-url")?.trim()??E;for(let[o,n]of this.tabButtons){let a=o===t;n.classList.toggle("tab-bar__tab--active",a),n.setAttribute("aria-selected",String(a))}this.emptyState?.toggleAttribute("hidden",!!e),this.syncFrameUrl(e,t),this.postActiveTab()}syncFrameUrl(t,e){if(this.iframe){if(!t){this.currentAppUrl&&(this.currentAppUrl=E,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.removeAttribute("src"));return}t!==this.currentAppUrl&&(this.currentAppUrl=t,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.src=bt(t,e))}}postActiveTab(){if(!this.frameLoaded||!this.iframe?.contentWindow)return;let t=u(this.getAttribute("active-tab"));this.lastPostedTab!==t&&(this.iframe.contentWindow.postMessage({type:W,tab:t},"*"),this.lastPostedTab=t)}},w=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];state=M();appUrlValue=E;syncingAttributes=!1;connectedCallback(){this.state=M({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:m(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??E,this.shadowRoot||this.render(),this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner),this.ownerDocument.addEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.addEventListener("message",this.onMessage)}disconnectedCallback(){this.ownerDocument.removeEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.removeEventListener("message",this.onMessage)}attributeChangedCallback(){this.syncingAttributes||(this.state=M({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:m(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??E,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}get open(){return this.state.open}set open(t){this.applyState(C(this.state,t))}get activeTab(){return this.state.activeTab}set activeTab(t){this.applyState(A(this.state,t))}get corner(){return this.state.corner}set corner(t){this.applyState(k(this.state,t))}get appUrl(){return this.appUrlValue}set appUrl(t){let e=t.trim();e!==this.appUrlValue&&(this.appUrlValue=e,this.syncingAttributes=!0,e?this.setAttribute("app-url",e):this.removeAttribute("app-url"),this.syncingAttributes=!1,this.syncChildren())}toggle(){this.applyState(j(this.state))}showSidebar(){this.applyState(C(this.state,!0))}hideSidebar(){this.applyState(C(this.state,!1))}applyState(t){t.open===this.state.open&&t.activeTab===this.state.activeTab&&t.corner===this.state.corner||(this.state=t,this.syncingAttributes=!0,this.toggleAttribute("open",t.open),this.setAttribute("active-tab",t.activeTab),this.setAttribute("corner",t.corner),this.syncingAttributes=!1,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}onKeyDown=t=>{if((t.key===J||t.code===ht)&&(t.metaKey||t.ctrlKey)&&!t.shiftKey&&!t.altKey&&!t.repeat){t.preventDefault(),t.stopPropagation(),this.toggle();return}t.key!=="Escape"||!this.state.open||this.hideSidebar()};onMessage=t=>{t.data&&typeof t.data=="object"&&"type"in t.data&&t.data.type===ut&&this.toggle()};render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument;t.appendChild(X(e,`
258
+ `));let n=e.createElement("div");n.className="backdrop",n.setAttribute("part","backdrop"),n.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),t.appendChild(n);let a=e.createElement("aside");a.className="sidebar",a.setAttribute("part","sidebar"),a.setAttribute("aria-label","SLICC overlay sidebar");let s=e.createElement("header");s.className="header";let l=e.createElement("div");l.className="header__brand";let p=e.createElement("div"),i=e.createElement("div");i.className="header__title",i.textContent="slicc";let c=e.createElement("div");c.className="header__subtitle",c.textContent="electron float",p.appendChild(i),p.appendChild(c),l.appendChild(p),s.appendChild(l);let d=e.createElement("button");d.type="button",d.className="header__close",d.setAttribute("aria-label","Close SLICC overlay"),d.textContent="\xD7",d.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-close",{bubbles:!0,composed:!0}))}),s.appendChild(d),a.appendChild(s);let h=e.createElement("div");h.className="tab-bar",h.setAttribute("role","tablist"),h.setAttribute("aria-label","SLICC overlay tabs");for(let{id:b,label:S}of H){let g=e.createElement("button");g.type="button",g.className="tab-bar__tab"+(b===o?" tab-bar__tab--active":""),g.setAttribute("role","tab"),g.setAttribute("aria-selected",String(b===o)),g.dataset.tab=b,g.textContent=S,this.tabButtons.set(b,g),g.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("slicc-overlay-select-tab",{bubbles:!0,composed:!0,detail:{tab:b}}))}),h.appendChild(g)}a.appendChild(h);let E=e.createElement("div");E.className="viewport";let x=e.createElement("iframe");x.title="SLICC electron float",this.iframe=x,x.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()}),E.appendChild(x);let m=e.createElement("div");m.className="empty-state",m.textContent="Starting the local SLICC runtime\u2026",this.emptyState=m,E.appendChild(m),a.appendChild(E),t.appendChild(a),this.iframe?.addEventListener("load",()=>{this.frameLoaded=!0,this.postActiveTab()})}sync(){let t=u(this.getAttribute("active-tab")),e=this.getAttribute("app-url")?.trim()??v;for(let[o,n]of this.tabButtons){let a=o===t;n.classList.toggle("tab-bar__tab--active",a),n.setAttribute("aria-selected",String(a))}this.emptyState?.toggleAttribute("hidden",!!e),this.syncFrameUrl(e,t),this.postActiveTab()}syncFrameUrl(t,e){if(this.iframe){if(!t){this.currentAppUrl&&(this.currentAppUrl=v,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.removeAttribute("src"));return}t!==this.currentAppUrl&&(this.currentAppUrl=t,this.frameLoaded=!1,this.lastPostedTab=null,this.iframe.src=gt(t,e))}}postActiveTab(){if(!this.frameLoaded||!this.iframe?.contentWindow)return;let t=u(this.getAttribute("active-tab"));this.lastPostedTab!==t&&(this.iframe.contentWindow.postMessage({type:F,tab:t},"*"),this.lastPostedTab=t)}},O=class extends HTMLElement{static observedAttributes=["open","active-tab","app-url","corner"];state=C();appUrlValue=v;syncingAttributes=!1;connectedCallback(){this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.shadowRoot||this.render(),this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner),this.ownerDocument.addEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.addEventListener("message",this.onMessage)}disconnectedCallback(){this.ownerDocument.removeEventListener("keydown",this.onKeyDown,!0),this.ownerDocument.defaultView?.removeEventListener("message",this.onMessage)}attributeChangedCallback(){this.syncingAttributes||(this.state=C({open:this.hasAttribute("open"),activeTab:u(this.getAttribute("active-tab")),corner:f(this.getAttribute("corner")??D(this.ownerDocument.defaultView))}),this.appUrlValue=this.getAttribute("app-url")?.trim()??v,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}get open(){return this.state.open}set open(t){this.applyState(T(this.state,t))}get activeTab(){return this.state.activeTab}set activeTab(t){this.applyState(w(this.state,t))}get corner(){return this.state.corner}set corner(t){this.applyState(A(this.state,t))}get appUrl(){return this.appUrlValue}set appUrl(t){let e=t.trim();e!==this.appUrlValue&&(this.appUrlValue=e,this.syncingAttributes=!0,e?this.setAttribute("app-url",e):this.removeAttribute("app-url"),this.syncingAttributes=!1,this.syncChildren())}toggle(){this.applyState($(this.state))}showSidebar(){this.applyState(T(this.state,!0))}hideSidebar(){this.applyState(T(this.state,!1))}applyState(t){t.open===this.state.open&&t.activeTab===this.state.activeTab&&t.corner===this.state.corner||(this.state=t,this.syncingAttributes=!0,this.toggleAttribute("open",t.open),this.setAttribute("active-tab",t.activeTab),this.setAttribute("corner",t.corner),this.syncingAttributes=!1,this.syncChildren(),I(this.ownerDocument.defaultView,this.state.corner))}onKeyDown=t=>{if((t.key===K||t.code===pt)&&(t.metaKey||t.ctrlKey)&&!t.shiftKey&&!t.altKey&&!t.repeat){t.preventDefault(),t.stopPropagation(),this.toggle();return}t.key!=="Escape"||!this.state.open||this.hideSidebar()};onMessage=t=>{t.data&&typeof t.data=="object"&&"type"in t.data&&t.data.type===dt&&this.toggle()};render(){let t=this.attachShadow({mode:"open"}),e=this.ownerDocument;t.appendChild(X(e,`
259
259
  ${V}
260
260
  :host {
261
261
  all: initial;
@@ -266,4 +266,4 @@
266
266
  z-index: 2147483647;
267
267
  contain: layout style paint;
268
268
  }
269
- `));let o=e.createElement(L);o.addEventListener("slicc-overlay-toggle",()=>this.toggle()),o.addEventListener("slicc-overlay-move",a=>{let s=a.detail?.corner;this.applyState(k(this.state,s))}),t.appendChild(o);let n=e.createElement(_);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(A(this.state,s))}),t.appendChild(n)}syncChildren(){let t=this.shadowRoot;if(!t)return;let e=t.querySelector(L),o=t.querySelector(_);!e||!o||(e.toggleAttribute("open",this.state.open),e.setAttribute("corner",this.state.corner),o.toggleAttribute("open",this.state.open),o.setAttribute("corner",this.state.corner),o.setAttribute("active-tab",this.state.activeTab),this.appUrlValue?o.setAttribute("app-url",this.appUrlValue):o.removeAttribute("app-url"))}};function ft(r=customElements){r.get(L)||r.define(L,P),r.get(_)||r.define(_,Y),r.get(N)||r.define(N,w)}function tt(r=document,t={}){ft(r.defaultView?.customElements??customElements);let e=r.getElementById(U),o;return e instanceof w?o=e:(e?.remove(),o=r.createElement(N)),o.id=U,o.isConnected||(r.body??r.documentElement).appendChild(o),typeof t.open=="boolean"&&(o.open=t.open),t.activeTab!==void 0&&(o.activeTab=u(t.activeTab)),t.appUrl!==void 0&&(o.appUrl=t.appUrl??E),t.corner!==void 0&&(o.corner=t.corner??D(r.defaultView)),o}function et(r=document){r.getElementById(U)?.remove()}function D(r){try{return m(r?.localStorage.getItem(Q))}catch{return m(null)}}function I(r,t){try{r?.localStorage.setItem(Q,t)}catch{}}function K(r,t,e){return Math.min(Math.max(r,t),e)}window.__SLICC_ELECTRON_OVERLAY__={inject(r={}){try{tt(document,r)}catch(t){console.error("[slicc-overlay] Injection failed:",t)}},remove(){try{et(document)}catch(r){console.error("[slicc-overlay] Removal failed:",r)}}};})();
269
+ `));let o=e.createElement(L);o.addEventListener("slicc-overlay-toggle",()=>this.toggle()),o.addEventListener("slicc-overlay-move",a=>{let s=a.detail?.corner;this.applyState(A(this.state,s))}),t.appendChild(o);let n=e.createElement(_);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(w(this.state,s))}),t.appendChild(n)}syncChildren(){let t=this.shadowRoot;if(!t)return;let e=t.querySelector(L),o=t.querySelector(_);!e||!o||(e.toggleAttribute("open",this.state.open),e.setAttribute("corner",this.state.corner),o.toggleAttribute("open",this.state.open),o.setAttribute("corner",this.state.corner),o.setAttribute("active-tab",this.state.activeTab),this.appUrlValue?o.setAttribute("app-url",this.appUrlValue):o.removeAttribute("app-url"))}};function ht(r=customElements){r.get(L)||r.define(L,N),r.get(_)||r.define(_,Y),r.get(P)||r.define(P,O)}function Q(r=document,t={}){ht(r.defaultView?.customElements??customElements);let e=r.getElementById(U),o;return e instanceof O?o=e:(e?.remove(),o=r.createElement(P)),o.id=U,o.isConnected||(r.body??r.documentElement).appendChild(o),typeof t.open=="boolean"&&(o.open=t.open),t.activeTab!==void 0&&(o.activeTab=u(t.activeTab)),t.appUrl!==void 0&&(o.appUrl=t.appUrl??v),t.corner!==void 0&&(o.corner=t.corner??D(r.defaultView)),o}function tt(r=document){r.getElementById(U)?.remove()}function D(r){try{return f(r?.localStorage.getItem(J))}catch{return f(null)}}function I(r,t){try{r?.localStorage.setItem(J,t)}catch{}}function G(r,t,e){return Math.min(Math.max(r,t),e)}window.__SLICC_ELECTRON_OVERLAY__={inject(r={}){try{Q(document,r)}catch(t){console.error("[slicc-overlay] Injection failed:",t)}},remove(){try{tt(document)}catch(r){console.error("[slicc-overlay] Removal failed:",r)}}};})();
@@ -5,21 +5,21 @@
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/index-26LMz-pW.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DLPF7rO2.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-jRWAZmH_.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ca-nBW7U.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/simple-options-B0cR4giT.js">
12
- <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-DL_mgn4B.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-W_gIoKyb.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/path-utils-CNNVZ3-O.js">
15
- <link rel="modulepreload" crossorigin href="/assets/fs-CDIZmyaZ.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/fs-CxBHreU_.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-DmK3Afse.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-BLHoVG3y.js">
19
- <link rel="modulepreload" crossorigin href="/assets/mount-BiTfpGKT.js">
20
- <link rel="modulepreload" crossorigin href="/assets/index-26LMz-pW.js">
21
- <link rel="modulepreload" crossorigin href="/assets/provider-settings-8ujfC6bI.js">
22
- <link rel="stylesheet" crossorigin href="/assets/index-Bq8rJrUU.css">
19
+ <link rel="modulepreload" crossorigin href="/assets/mount-D22V7Wmv.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/index-DLPF7rO2.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/provider-settings-CaxrG5yA.js">
22
+ <link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
23
23
  </head>
24
24
  <body>
25
25
  <div id="app"></div>
@@ -5,21 +5,21 @@
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/index-26LMz-pW.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DLPF7rO2.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-jRWAZmH_.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ca-nBW7U.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/simple-options-B0cR4giT.js">
12
- <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-DL_mgn4B.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-W_gIoKyb.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/path-utils-CNNVZ3-O.js">
15
- <link rel="modulepreload" crossorigin href="/assets/fs-CDIZmyaZ.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/fs-CxBHreU_.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-DmK3Afse.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-BLHoVG3y.js">
19
- <link rel="modulepreload" crossorigin href="/assets/mount-BiTfpGKT.js">
20
- <link rel="modulepreload" crossorigin href="/assets/index-26LMz-pW.js">
21
- <link rel="modulepreload" crossorigin href="/assets/provider-settings-8ujfC6bI.js">
22
- <link rel="stylesheet" crossorigin href="/assets/index-Bq8rJrUU.css">
19
+ <link rel="modulepreload" crossorigin href="/assets/mount-D22V7Wmv.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/index-DLPF7rO2.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/provider-settings-CaxrG5yA.js">
22
+ <link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
23
23
  </head>
24
24
  <body>
25
25
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "2.47.0",
3
+ "version": "2.49.1",
4
4
  "description": "Browser-based coding agent with thin CLI server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- import"./index-26LMz-pW.js";function e(e){}export{e as registerSessionCostsProvider};
@@ -1 +0,0 @@
1
- const e={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let t=null;async function n(){if(t){let n=Object.values(e).every(e=>t.objectStoreNames.contains(e));if(t.version===3&&n)return t;t.close(),t=null}return new Promise((n,r)=>{let i=indexedDB.open(`slicc-groups`,3);i.onupgradeneeded=t=>{let n=t.target.result,r=t.oldVersion;if(r<1){if(!n.objectStoreNames.contains(e.MESSAGES)){let t=n.createObjectStore(e.MESSAGES,{keyPath:`id`});t.createIndex(`chatJid`,`chatJid`),t.createIndex(`timestamp`,`timestamp`),t.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}n.objectStoreNames.contains(e.SESSIONS)||n.createObjectStore(e.SESSIONS,{keyPath:`groupFolder`}),n.objectStoreNames.contains(e.TASKS)||n.createObjectStore(e.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),n.objectStoreNames.contains(e.STATE)||n.createObjectStore(e.STATE,{keyPath:`key`})}if(r<2){let r=t.target.transaction;if(n.objectStoreNames.contains(`groups`)){let t=r.objectStore(`groups`).getAll();t.onsuccess=()=>{let r=t.result;n.deleteObjectStore(`groups`);let i=n.createObjectStore(e.SCOOPS,{keyPath:`jid`});i.createIndex(`type`,`type`);for(let e of r){let t=e.isMain??!1,n={jid:e.jid,name:e.name,folder:e.folder,trigger:t?void 0:e.trigger||`@${e.folder}`,requiresTrigger:!t&&(e.requiresTrigger??!0),isCone:t,type:t?`cone`:`scoop`,assistantLabel:t?`sliccy`:e.config?.assistantName||e.folder,addedAt:e.addedAt,config:e.config?{systemPromptAppend:e.config.systemPromptAppend,timeout:e.config.timeout,assistantName:e.config.assistantName}:void 0};i.put(n)}}}else n.objectStoreNames.contains(e.SCOOPS)||n.createObjectStore(e.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}r<3&&(n.objectStoreNames.contains(e.WEBHOOKS)||n.createObjectStore(e.WEBHOOKS,{keyPath:`id`}),n.objectStoreNames.contains(e.CRONTASKS)||n.createObjectStore(e.CRONTASKS,{keyPath:`id`}))},i.onsuccess=()=>{t=i.result,n(t)},i.onerror=()=>r(i.error)})}async function r(e,t=`readonly`){return(await n()).transaction(e,t).objectStore(e)}async function i(t){let n=await r(e.SCOOPS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function a(){let t=await r(e.SCOOPS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>{let t={};for(let e of r.result)t[e.jid]=e;e(t)},r.onerror=()=>n(r.error)})}async function o(t){let n=await r(e.SCOOPS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function s(){let t=await r(e.MESSAGES,`readwrite`);return new Promise((e,n)=>{let r=t.clear();r.onsuccess=()=>e(),r.onerror=()=>n(r.error)})}async function c(t){let n=await r(e.MESSAGES,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function l(t){let n=await r(e.MESSAGES,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function u(t){let n=(await r(e.MESSAGES)).index(`chatJid_timestamp`),i=IDBKeyRange.bound([t,``],[t,`￿`],!1,!1);return new Promise((e,t)=>{let r=n.getAll(i);r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error)})}async function d(t,n,i){let a=(await r(e.MESSAGES)).index(`chatJid_timestamp`),o=IDBKeyRange.bound([t,n],[t,`￿`],!0,!1);return new Promise((e,t)=>{let n=a.getAll(o);n.onsuccess=()=>{let t=n.result;i&&(t=t.filter(e=>e.senderName!==i)),e(t)},n.onerror=()=>t(n.error)})}async function f(t){let n=await r(e.TASKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function p(t){let n=await r(e.TASKS);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result??null),i.onerror=()=>r(i.error)})}async function m(){let t=await r(e.TASKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}async function h(t){let n=await r(e.TASKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function g(t){let n=await r(e.STATE);return new Promise((e,r)=>{let i=n.get(t);i.onsuccess=()=>e(i.result?.value??null),i.onerror=()=>r(i.error)})}async function _(t,n){let i=await r(e.STATE,`readwrite`);return new Promise((e,r)=>{let a=i.put({key:t,value:n});a.onsuccess=()=>e(),a.onerror=()=>r(a.error)})}async function v(){await n()}async function y(t){let n=await r(e.WEBHOOKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function b(){try{let t=await r(e.WEBHOOKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function x(t){let n=await r(e.WEBHOOKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function S(t){let n=await r(e.CRONTASKS,`readwrite`);return new Promise((e,r)=>{let i=n.put(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}async function C(){try{let t=await r(e.CRONTASKS);return new Promise((e,n)=>{let r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function w(t){let n=await r(e.CRONTASKS,`readwrite`);return new Promise((e,r)=>{let i=n.delete(t);i.onsuccess=()=>e(),i.onerror=()=>r(i.error)})}export{c as _,h as a,y as b,a as c,u as d,d as f,S as g,v as h,o as i,m as l,p as m,w as n,x as o,g as p,l as r,C as s,s as t,b as u,i as v,_ as x,f as y};