sliccy 2.53.0 → 2.54.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.
Files changed (87) hide show
  1. package/dist/ui/assets/{adobe-CpY266Zc.js → adobe-BDVWBWXF.js} +2 -2
  2. package/dist/ui/assets/{adobe-Ce4pGa6k.js → adobe-BQ_6PvWv.js} +1 -1
  3. package/dist/ui/assets/{agent-bridge-DGLDgqPE.js → agent-bridge-7e9zqI-3.js} +1 -1
  4. package/dist/ui/assets/{agent-message-to-chat-ySHRDnOA.js → agent-message-to-chat-BIka_kys.js} +1 -1
  5. package/dist/ui/assets/{anthropic-CQXRZrKe.js → anthropic-B3g2jrQe.js} +1 -1
  6. package/dist/ui/assets/{azure-openai-7f0I1c2g.js → azure-openai-BRojwWK8.js} +1 -1
  7. package/dist/ui/assets/{azure-openai-CqN5Wyf8.js → azure-openai-peWSLdW3.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-responses-B6VpI3fU.js → azure-openai-responses-BZMXkkMn.js} +1 -1
  9. package/dist/ui/assets/{backend-local-D-jeTNnr.js → backend-local-C97MTiUQ.js} +1 -1
  10. package/dist/ui/assets/{bedrock-camp-CqXHYC67.js → bedrock-camp-jigA67u0.js} +3 -3
  11. package/dist/ui/assets/{cdp-C1mctqQQ.js → cdp-BWUDgMo5.js} +3 -3
  12. package/dist/ui/assets/cost-command-BNHBGGLd.js +1 -0
  13. package/dist/ui/assets/{dist-DGI-KRHb.js → dist-BETSJsV5.js} +1 -1
  14. package/dist/ui/assets/dist-BhoaJ6E3.js +43 -0
  15. package/dist/ui/assets/{dist-DTOmXa93.js → dist-C_pwrhfY.js} +1 -1
  16. package/dist/ui/assets/{dist-6maigE1F.js → dist-Ck3Vla0r.js} +1 -1
  17. package/dist/ui/assets/{dist-8qo5XTx8.js → dist-DB19jrs9.js} +1 -1
  18. package/dist/ui/assets/{es-CdoilK6E.js → es-Bo7IVtba.js} +1 -1
  19. package/dist/ui/assets/follower-sprinkle-bridge-B8hu3_Tp.js +1 -0
  20. package/dist/ui/assets/{fs-BSEneDlc.js → fs-Dp9UJZnC.js} +3 -3
  21. package/dist/ui/assets/{fs-D0XzcKxU.js → fs-rho7qRtS.js} +1 -1
  22. package/dist/ui/assets/{github-DvH9BDfk.js → github-B9Bph-2R.js} +2 -2
  23. package/dist/ui/assets/{github-ET50AuxZ.js → github-BiuHWCY3.js} +1 -1
  24. package/dist/ui/assets/{google-BszFYcuS.js → google-D5tttDSd.js} +1 -1
  25. package/dist/ui/assets/{google-shared-D_QrelB6.js → google-shared-az0i8UPc.js} +1 -1
  26. package/dist/ui/assets/{google-vertex-qkuMo_cz.js → google-vertex-DOtir00q.js} +1 -1
  27. package/dist/ui/assets/index-BAW3Fm6o.js +1422 -0
  28. package/dist/ui/assets/{kernel-worker-UTlIe_KM.js → kernel-worker-TRMDkezf.js} +609 -609
  29. package/dist/ui/assets/{local-llm-BeFRU84A.js → local-llm-BknrpgG6.js} +1 -1
  30. package/dist/ui/assets/{local-llm-DnhS4Nc8.js → local-llm-Dp456JSl.js} +1 -1
  31. package/dist/ui/assets/magick-wasm-CPN3NKqF.js +1 -0
  32. package/dist/ui/assets/{mistral-7vMFlwyv.js → mistral-BV0eFkMp.js} +1 -1
  33. package/dist/ui/assets/{mount-vDUPSYAA.js → mount-D_Q23bU0.js} +2 -2
  34. package/dist/ui/assets/{mount-BRCe8J-8.js → mount-evbRXtHZ.js} +1 -1
  35. package/dist/ui/assets/{nuke-command-BvSSDKyh.js → nuke-command-BvjHoS6k.js} +1 -1
  36. package/dist/ui/assets/{oauth-bootstrap-qeeH1muA.js → oauth-bootstrap-Cnh_jJ-b.js} +1 -1
  37. package/dist/ui/assets/{oauth-service-CP7_knvf.js → oauth-service-B2PM0srO.js} +1 -1
  38. package/dist/ui/assets/{oauth-service-sgmdLPuV.js → oauth-service-D3sNJGYO.js} +1 -1
  39. package/dist/ui/assets/{offscreen-client-BPqEe2hm.js → offscreen-client-HYuBnZnD.js} +1 -1
  40. package/dist/ui/assets/{onboarding-orchestrator-BWrouEJg.js → onboarding-orchestrator-Be9xOaHr.js} +1 -1
  41. package/dist/ui/assets/{openai-codex-responses-DW3ZYFcb.js → openai-codex-responses-DXb3k86e.js} +1 -1
  42. package/dist/ui/assets/{openai-completions-D5rB4vsV.js → openai-completions-BXuJR1eK.js} +1 -1
  43. package/dist/ui/assets/{openai-responses-CF3yEStf.js → openai-responses-Bjk0FI2e.js} +1 -1
  44. package/dist/ui/assets/{openai-responses-shared-vokXRwgV.js → openai-responses-shared-CYpbeIvb.js} +1 -1
  45. package/dist/ui/assets/provider-settings-BwSeCV7i.js +28 -0
  46. package/dist/ui/assets/{provider-settings-CNtqy5Bx.js → provider-settings-Cuv-5hdn.js} +1 -1
  47. package/dist/ui/assets/{providers-CR2KVBJC.js → providers-CmRKdFtK.js} +1 -1
  48. package/dist/ui/assets/{remote-terminal-view-DKpFrNt5.js → remote-terminal-view-mqv_gQku.js} +3 -3
  49. package/dist/ui/assets/shared-Bzh87vAD.js +1 -0
  50. package/dist/ui/assets/{slicc-editor-DfIx330Y.js → slicc-editor-QB-g14AA.js} +2 -2
  51. package/dist/ui/assets/{spawn-koTNaVLy.js → spawn-BsRiKEiy.js} +1 -1
  52. package/dist/ui/assets/sprinkle-renderer-KJJoM4E0.js +112 -0
  53. package/dist/ui/assets/{telemetry-BHB_tqYb.js → telemetry-qzXntW4J.js} +1 -1
  54. package/dist/ui/assets/{upgrade-detection-eWV10cS4.js → upgrade-detection-D97svMgN.js} +1 -1
  55. package/dist/ui/electron-overlay-entry.js +7 -7
  56. package/dist/ui/index.html +16 -14
  57. package/dist/ui/packages/webapp/index.html +16 -14
  58. package/package.json +1 -1
  59. package/dist/ui/assets/cost-command-De1m63Hp.js +0 -1
  60. package/dist/ui/assets/index-ZLv5StNy.js +0 -1532
  61. package/dist/ui/assets/magick-wasm-BCZpZeyl.js +0 -1
  62. package/dist/ui/assets/provider-settings-BHwoEn-1.js +0 -28
  63. /package/dist/ui/assets/{addon-fit-CVV7fTw9.js → addon-fit-CJBYijzN.js} +0 -0
  64. /package/dist/ui/assets/{azure-ai-foundry-rmhg6ipI.js → azure-ai-foundry-c-8tCxDt.js} +0 -0
  65. /package/dist/ui/assets/{chat-fixture-B4ajo0MH.js → chat-fixture-Hp7QoBPd.js} +0 -0
  66. /package/dist/ui/assets/{diagnostics-DEZCW87A.js → diagnostics-Bab61WyO.js} +0 -0
  67. /package/dist/ui/assets/{dist-BzFg7Vf5.js → dist-uJp2dR6X.js} +0 -0
  68. /package/dist/ui/assets/{env-api-keys-DxKb6C4Q.js → env-api-keys-BoL4zxcb.js} +0 -0
  69. /package/dist/ui/assets/{git-config-BCAVbrIP.js → git-config-DrjQgeV7.js} +0 -0
  70. /package/dist/ui/assets/{github-copilot-headers-B6Fvsk-Y.js → github-copilot-headers-DCDy_wqp.js} +0 -0
  71. /package/dist/ui/assets/{hash-CQjDwcjR.js → hash-K0cSe8jy.js} +0 -0
  72. /package/dist/ui/assets/{headers-DkHU-pcw.js → headers-Dr-OH1-5.js} +0 -0
  73. /package/dist/ui/assets/{json-parse-C5jSA6JB.js → json-parse-Cu2r6BfV.js} +0 -0
  74. /package/dist/ui/assets/{mount-picker-popup-DJJfRF_c.js → mount-picker-popup-ys6_YNH0.js} +0 -0
  75. /package/dist/ui/assets/{openai-CRGaNv9i.js → openai-C-uvPKpB.js} +0 -0
  76. /package/dist/ui/assets/{page-storage-sync-B_kI_rjd.js → page-storage-sync-CCCwfs1s.js} +0 -0
  77. /package/dist/ui/assets/{panel-rpc-handlers-D6u8EbY-.js → panel-rpc-handlers-DSdIUEco.js} +0 -0
  78. /package/dist/ui/assets/{path-utils-d3qOVZOu.js → path-utils-mhPGPhd8.js} +0 -0
  79. /package/dist/ui/assets/{rum-DP66esB2.js → rum-fanUFgbu.js} +0 -0
  80. /package/dist/ui/assets/{sanitize-unicode-BD2XKRoV.js → sanitize-unicode-Dw-JFaZE.js} +0 -0
  81. /package/dist/ui/assets/{secret-env-BN6ZnD74.js → secret-env-DTcVaCe1.js} +0 -0
  82. /package/dist/ui/assets/{simple-options-imi_RHvn.js → simple-options-D8vGmEnp.js} +0 -0
  83. /package/dist/ui/assets/{sprinkle-bridge-channel-BJWN_rO5.js → sprinkle-bridge-channel-Cj_CAZH2.js} +0 -0
  84. /package/dist/ui/assets/{src-BcpYRmFj.js → src-CpO2JX79.js} +0 -0
  85. /package/dist/ui/assets/{tool-ui-B3Bihlxa.js → tool-ui-DaAXBPJY.js} +0 -0
  86. /package/dist/ui/assets/{tray-follower-status-DKq8RTLd.js → tray-follower-status-hrOEFANe.js} +0 -0
  87. /package/dist/ui/assets/{xterm-ucbPh68r.js → xterm-DHgoOdoP.js} +0 -0
@@ -0,0 +1,112 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/slicc-editor-QB-g14AA.js","assets/preload-helper-ca-nBW7U.js","assets/dist-uJp2dR6X.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-ca-nBW7U.js";var t=`slicc-theme`,n=new Set([`dark`,`light`,`system`]);function r(){let e=localStorage.getItem(t);return e&&n.has(e)?e:`system`}function i(){return document.documentElement.classList.contains(`theme-light`)}var a=new Set;function o(e){e&&a.add(e)}function s(e){e&&a.delete(e)}function c(){let e=i();for(let t of a)try{t.postMessage({type:`slicc-theme`,isLight:e},`*`)}catch{a.delete(t)}}function l(){let e=r(),t=e===`light`;e===`system`&&(t=window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1),document.documentElement.classList.toggle(`theme-light`,t),c()}var u,d;function f(){l(),u=window.matchMedia?.(`(prefers-color-scheme: light)`),u?.addEventListener?.(`change`,()=>{r()===`system`&&l()}),typeof MutationObserver<`u`&&!d&&(d=new MutationObserver(()=>c()),d.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}))}var p=typeof chrome<`u`&&!!chrome?.runtime?.id,m=/<script\b([^>]*)\bsrc\s*=\s*["'](https?:\/\/[^"']+)["']([^>]*)><\/script>/gi;async function h(e){let t=[],n;for(;(n=m.exec(e))!==null;)t.push({full:n[0],url:n[2],index:n.index});if(m.lastIndex=0,t.length===0)return e;let r=await Promise.all(t.map(async e=>{try{let t=await fetch(e.url);if(!t.ok)throw Error(`HTTP ${t.status}`);return{...e,text:await t.text()}}catch(t){let n=t instanceof Error?t.message:String(t);return{...e,text:`console.error('[sprinkle] Failed to load ${e.url}: ${n}')`}}})),i=e;for(let e=r.length-1;e>=0;e--){let{full:t,text:n}=r[e],a=n.replace(/<\/script/gi,`<\\/script`);i=i.replace(t,()=>`<script>${a}<\/script>`)}return i}function g(e){let t=e.trimStart().toLowerCase();return t.startsWith(`<!doctype`)||t.startsWith(`<html`)}var _=class t{container;bridge;scripts=[];iframe=null;static cachedLucideScript=null;static lucideScriptPromise=null;messageHandler=null;constructor(e,t){this.container=e,this.bridge=t}async render(e,t){this.dispose(),p?await this.renderInSandbox(e,t,g(e)):g(e)?await this.renderFullDoc(e,t):this.renderInline(e,t)}async renderInSandbox(e,t,n=!1){let r=document.createElement(`iframe`);r.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),r.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,this.iframe=r,console.log(`[sprinkle-renderer] creating sandbox iframe`,r.src),await new Promise((e,t)=>{let n=setTimeout(()=>{console.error(`[sprinkle-renderer] iframe load timed out after 5s`),t(Error(`sprinkle sandbox iframe load timed out`))},5e3);r.addEventListener(`load`,()=>{clearTimeout(n),console.log(`[sprinkle-renderer] iframe loaded, contentWindow:`,!!r.contentWindow),o(r.contentWindow),e()},{once:!0}),r.addEventListener(`error`,e=>{clearTimeout(n),console.error(`[sprinkle-renderer] iframe error:`,e),t(Error(`sprinkle sandbox iframe failed to load`))},{once:!0}),this.container.appendChild(r)}),this.messageHandler=e=>{if(e.source!==r.contentWindow)return;let n=e.data;if(n?.type){if(n.type===`sprinkle-lick`)this.bridge.lick({action:n.action,data:n.data});else if(n.type===`sprinkle-set-state`)this.bridge.setState(n.data);else if(n.type===`sprinkle-close`)this.bridge.close();else if(n.type===`sprinkle-stop-cone`)this.bridge.stopCone();else if(n.type===`sprinkle-storage-set`)try{localStorage.setItem(`slicc-sprinkle-ls:${t}:${n.key}`,n.value)}catch(e){console.warn(`[sprinkle-renderer] localStorage setItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-remove`)try{localStorage.removeItem(`slicc-sprinkle-ls:${t}:${n.key}`)}catch(e){console.warn(`[sprinkle-renderer] localStorage removeItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-clear`){let e=`slicc-sprinkle-ls:${t}:`;for(let t=localStorage.length-1;t>=0;t--){let n=localStorage.key(t);n?.startsWith(e)&&localStorage.removeItem(n)}}else if(n.type===`sprinkle-open`)this.bridge.open(n.path,n.projectRoot?{projectRoot:n.projectRoot}:void 0);else if(n.type===`sprinkle-readfile`)this.bridge.readFile(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,content:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-writefile`)this.bridge.writeFile(n.path,n.content).then(()=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-readdir`)this.bridge.readDir(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,entries:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exists`)this.bridge.exists(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,exists:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-stat`)this.bridge.stat(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,stat:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-mkdir`)this.bridge.mkdir(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-rm`)this.bridge.rm(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-fetch-script`){let e=n.url,t=n.id;fetch(e).then(e=>e.ok?e.text():Promise.reject(Error(`HTTP ${e.status}`))).then(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,text:n},`*`)}).catch(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,error:n instanceof Error?n.message:String(n)},`*`)})}}},window.addEventListener(`message`,this.messageHandler);let a=this.collectThemeCSS(),s={},c=`slicc-sprinkle-ls:${t}:`;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);t?.startsWith(c)&&(s[t.slice(c.length)]=localStorage.getItem(t)??``)}let l=this.bridge.getState(),u=``,d=``;if(n){let t=[];e.includes(`<slicc-editor`)&&t.push(fetch(chrome.runtime.getURL(`slicc-editor.js`)).then(e=>e.ok?e.text():``).then(e=>{u=e}).catch(()=>{})),e.includes(`<slicc-diff`)&&t.push(fetch(chrome.runtime.getURL(`slicc-diff.js`)).then(e=>e.ok?e.text():``).then(e=>{d=e}).catch(()=>{})),await Promise.all(t)}let f=await this.getLucideScript(),p=n?await h(e):e;r.contentWindow.postMessage({type:`sprinkle-render`,content:p,name:t,themeCSS:a,savedState:l,savedStorage:s,fullDoc:n,editorScript:u,diffScript:d,lucideScript:f,isLight:i()},`*`)}pushUpdate(e){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-update`,data:e},`*`)}collectThemeCSS(){return y()}generateBridgeScript(){return`(function() {
3
+ var _updateListeners = new Set();
4
+ var _sprinkleName = '';
5
+ var _state = null;
6
+ var _cbId = 0;
7
+ var _callbacks = {};
8
+
9
+ window.addEventListener('message', function(event) {
10
+ var msg = event.data;
11
+ if (!msg || !msg.type) return;
12
+ if (msg.type === 'sprinkle-init') {
13
+ _sprinkleName = msg.name || '';
14
+ _state = msg.savedState || null;
15
+ if (window.slicc) window.slicc.name = _sprinkleName;
16
+ } else if (msg.type === 'sprinkle-update') {
17
+ _updateListeners.forEach(function(cb) { try { cb(msg.data); } catch(e) { console.error(e); } });
18
+ } else if (msg.type === 'slicc-theme') {
19
+ document.documentElement.classList.toggle('theme-light', !!msg.isLight);
20
+ } else if (msg.id && _callbacks[msg.id]) {
21
+ var cb = _callbacks[msg.id];
22
+ delete _callbacks[msg.id];
23
+ cb(msg);
24
+ }
25
+ });
26
+
27
+ function _vfsCall(type, params, extractResult) {
28
+ return new Promise(function(resolve, reject) {
29
+ var id = ++_cbId;
30
+ _callbacks[id] = function(msg) {
31
+ if (msg.error) reject(new Error(msg.error));
32
+ else resolve(extractResult ? extractResult(msg) : undefined);
33
+ };
34
+ var m = { type: type, id: id };
35
+ if (params) { for (var k in params) m[k] = params[k]; }
36
+ parent.postMessage(m, '*');
37
+ });
38
+ }
39
+
40
+ var api = {
41
+ lick: function(event) {
42
+ var action, data;
43
+ if (typeof event === 'string') { action = event; } else { action = event.action; data = event.data; }
44
+ parent.postMessage({ type: 'sprinkle-lick', action: action, data: data }, '*');
45
+ },
46
+ on: function(event, callback) { if (event === 'update') _updateListeners.add(callback); },
47
+ off: function(event, callback) { if (event === 'update') _updateListeners.delete(callback); },
48
+ readFile: function(path) {
49
+ return _vfsCall('sprinkle-readfile', { path: path }, function(m) { return m.content; });
50
+ },
51
+ writeFile: function(path, content) {
52
+ return _vfsCall('sprinkle-writefile', { path: path, content: content });
53
+ },
54
+ readDir: function(path) {
55
+ return _vfsCall('sprinkle-readdir', { path: path }, function(m) { return m.entries; });
56
+ },
57
+ exists: function(path) {
58
+ return _vfsCall('sprinkle-exists', { path: path }, function(m) { return m.exists; });
59
+ },
60
+ stat: function(path) {
61
+ return _vfsCall('sprinkle-stat', { path: path }, function(m) { return m.stat; });
62
+ },
63
+ mkdir: function(path) {
64
+ return _vfsCall('sprinkle-mkdir', { path: path });
65
+ },
66
+ rm: function(path) {
67
+ return _vfsCall('sprinkle-rm', { path: path });
68
+ },
69
+ screenshot: function(selector) {
70
+ return new Promise(function(resolve, reject) {
71
+ try {
72
+ var target = selector ? document.querySelector(selector) : document.body;
73
+ if (!target) { reject(new Error('Element not found: ' + selector)); return; }
74
+ var rect = target.getBoundingClientRect();
75
+ var w = Math.ceil(rect.width);
76
+ var h = Math.ceil(rect.height);
77
+ if (w === 0 || h === 0) { reject(new Error('Element has zero dimensions')); return; }
78
+ var canvas = document.createElement('canvas');
79
+ var dpr = window.devicePixelRatio || 1;
80
+ canvas.width = w * dpr;
81
+ canvas.height = h * dpr;
82
+ var ctx = canvas.getContext('2d');
83
+ ctx.scale(dpr, dpr);
84
+ var clone = target.cloneNode(true);
85
+ var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + w + '" height="' + h + '">' +
86
+ '<foreignObject width="100%" height="100%">' +
87
+ new XMLSerializer().serializeToString(clone) +
88
+ '</foreignObject></svg>';
89
+ var img = new Image();
90
+ img.onload = function() { ctx.drawImage(img, 0, 0); resolve(canvas.toDataURL('image/png')); };
91
+ img.onerror = function() { reject(new Error('Screenshot rendering failed')); };
92
+ img.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svg);
93
+ } catch(e) { reject(e); }
94
+ });
95
+ },
96
+ setState: function(data) { _state = data; parent.postMessage({ type: 'sprinkle-set-state', data: data }, '*'); },
97
+ getState: function() { return _state; },
98
+ close: function() { parent.postMessage({ type: 'sprinkle-close' }, '*'); },
99
+ stopCone: function() { parent.postMessage({ type: 'sprinkle-stop-cone' }, '*'); },
100
+ name: ''
101
+ };
102
+ window.slicc = api;
103
+ window.bridge = api;
104
+ })();`}async renderFullDoc(e,t){let n=`<script>${this.generateBridgeScript()}<\/script>`,r=this.collectThemeCSS(),a=r?`<style>${r}</style>`:``,s=e.includes(`<slicc-editor`)?`<script src="/slicc-editor.js"><\/script>`:``,c=e.includes(`<slicc-diff`)?`<script src="/slicc-diff.js"><\/script>`:``,l=`<script>(function(){try{if(${i()?`true`:`false`})document.documentElement.classList.add('theme-light');}catch(e){}})();<\/script>`+n+a+s+c+`<script src="/lucide-icons.js"><\/script>`,u,d=e.match(/<head\b[^>]*>/i);if(d){let t=d.index+d[0].length;u=e.slice(0,t)+l+e.slice(t)}else{let t=e.match(/<script\b/i);if(t)u=e.slice(0,t.index)+l+e.slice(t.index);else{let t=e.match(/<html\b[^>]*>/i);if(t){let n=t.index+t[0].length;u=e.slice(0,n)+l+e.slice(n)}else u=l+e}}let f=document.createElement(`iframe`);f.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),f.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,f.srcdoc=u,this.iframe=f,await new Promise((e,n)=>{let r=setTimeout(()=>{n(Error(`full-doc iframe load timed out`))},5e3);f.addEventListener(`load`,()=>{clearTimeout(r),o(f.contentWindow);let n=this.bridge.getState();f.contentWindow?.postMessage({type:`sprinkle-init`,name:t,savedState:n},`*`),e()},{once:!0}),f.addEventListener(`error`,e=>{clearTimeout(r),n(Error(`full-doc iframe failed to load`))},{once:!0}),this.container.appendChild(f)}),this.messageHandler=e=>{if(e.source!==f.contentWindow)return;let t=e.data;t?.type&&(t.type===`sprinkle-lick`?this.bridge.lick({action:t.action,data:t.data}):t.type===`sprinkle-set-state`?this.bridge.setState(t.data):t.type===`sprinkle-close`?this.bridge.close():t.type===`sprinkle-stop-cone`?this.bridge.stopCone():t.type===`sprinkle-readfile`?this.bridge.readFile(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,content:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-writefile`?this.bridge.writeFile(t.path,t.content).then(()=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-readdir`?this.bridge.readDir(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,entries:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exists`?this.bridge.exists(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,exists:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-stat`?this.bridge.stat(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,stat:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-mkdir`?this.bridge.mkdir(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-rm`&&this.bridge.rm(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)))},window.addEventListener(`message`,this.messageHandler)}renderInline(t,n){if(t.includes(`<slicc-editor`)&&!customElements.get(`slicc-editor`)&&e(()=>import(`./slicc-editor-QB-g14AA.js`),__vite__mapDeps([0,1,2])),t.includes(`<slicc-diff`)&&!customElements.get(`slicc-diff`)){let e=document.createElement(`script`);e.src=`/slicc-diff.js`,document.head.appendChild(e)}window.__slicc_sprinkles||(window.__slicc_sprinkles={}),window.__slicc_sprinkles[n]=this.bridge,this.bridge._container=this.container;let r=document.createElement(`div`);r.className=`sprinkle-content`,r.innerHTML=t,this.container.appendChild(r);for(let e of r.querySelectorAll(`.fill[data-value]`)){let t=parseFloat(e.dataset.value||`0`);t>=0&&t<=100&&(e.style.width=`${t}%`)}let i=`window.__slicc_sprinkles[${JSON.stringify(n)}]`;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;/\b(slicc|bridge)\b/.test(t)&&e.setAttribute(`onclick`,t.replace(/\b(slicc|bridge)\b/g,i))}let a=Array.from(r.querySelectorAll(`script`));for(let e of a){e.remove();let t=document.createElement(`script`);for(let n of e.attributes)t.setAttribute(n.name,n.value);if(!e.src){let n=new Set;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;for(let e of t.matchAll(/\b(\w+)\s*\(/g)){let t=e[1];[`slicc`,`bridge`,`lick`,`close`].includes(t)||n.add(t)}}let a=[...n].map(e=>`if (typeof ${e} === 'function') window.${e} = ${e};`).join(`
105
+ `);t.textContent=`(function() { var slicc = ${i}; var bridge = slicc;\n`+e.textContent+(a?`
106
+ `+a:``)+`
107
+ })();`}r.appendChild(t),this.scripts.push(t)}}dispose(){this.messageHandler&&=(window.removeEventListener(`message`,this.messageHandler),null),this.iframe&&=(s(this.iframe.contentWindow),this.iframe.remove(),null);for(let e of this.scripts)e.remove();this.scripts=[];let e=this.container.querySelector(`.sprinkle-content`);e&&e.remove(),window.__slicc_sprinkles&&delete window.__slicc_sprinkles[this.bridge.name]}async getLucideScript(){return t.cachedLucideScript===null?(t.lucideScriptPromise===null&&(t.lucideScriptPromise=(async()=>{try{let e=await fetch(chrome.runtime.getURL(`lucide-icons.js`));if(e.ok){let n=await e.text();return t.cachedLucideScript=n,n}}catch{}return t.cachedLucideScript=``,``})()),t.lucideScriptPromise):t.cachedLucideScript}};function v(e,t){return e.replace(/url\(\s*['"]?([^'")]+)['"]?\s*\)/g,(e,n)=>{if(/^(https?:|data:|blob:)/i.test(n))return`url('${n}')`;try{return`url('${new URL(n,t).href}')`}catch{return`url('${n}')`}})}function y(){if(typeof getComputedStyle!=`function`)return``;let e=[],t=[],n=[],r=location.href,i=e=>e===`:root`||e===`:root.theme-light`||e.startsWith(`.theme-light `)||e===`.theme-light`||e.split(`,`).some(e=>{let t=e.trim();return t===`:root`||t===`:root.theme-light`||t.startsWith(`.theme-light `)||t===`.theme-light`});for(let a of document.styleSheets)try{for(let o of a.cssRules)if(o instanceof CSSFontFaceRule)e.push(v(o.cssText,r));else if(o instanceof CSSStyleRule){let e=o.selectorText;i(e)&&t.push(o.cssText),(e.includes(`.sprinkle-`)||e.includes(`.fill`))&&n.push(o.cssText)}}catch{}return e.join(`
108
+ `)+`
109
+ `+t.join(`
110
+ `)+`
111
+ `+n.join(`
112
+ `)}export{o as a,i,y as n,s as o,f as r,_ as t};
@@ -1 +1 @@
1
- import{t as e}from"./preload-helper-ca-nBW7U.js";var t=null,n=!1;function r(){return typeof chrome<`u`&&chrome?.runtime?.id?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function i(){if(!n&&!(typeof localStorage<`u`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let i=r();typeof window<`u`&&(window.RUM_GENERATION=`slicc-${i}`),i===`extension`?(t=(await e(()=>import(`./rum-DP66esB2.js`),[])).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{c(`js`,u(e.message??``))}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;c(`js`,u(t instanceof Error?t.message:String(t)))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),t=(await e(()=>import(`./src-BcpYRmFj.js`),[])).sampleRUM),n=!0,t&&t(`navigate`,{source:typeof document<`u`?document.referrer:``,target:i})}catch{}}function a(e,n){t?.(`formsubmit`,{source:e,target:n})}function o(e){t?.(`viewblock`,{source:e})}function s(e){t?.(`viewmedia`,{source:e})}function c(e,n){t?.(`error`,{source:e,target:n})}function l(e){t?.(`signup`,{source:e})}function u(e){return(e??``).slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}export{o as a,l as i,a as n,s as r,i as t};
1
+ import{t as e}from"./preload-helper-ca-nBW7U.js";var t=null,n=!1;function r(){return typeof chrome<`u`&&chrome?.runtime?.id?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function i(){if(!n&&!(typeof localStorage<`u`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let i=r();typeof window<`u`&&(window.RUM_GENERATION=`slicc-${i}`),i===`extension`?(t=(await e(()=>import(`./rum-fanUFgbu.js`),[])).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{c(`js`,u(e.message??``))}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;c(`js`,u(t instanceof Error?t.message:String(t)))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),t=(await e(()=>import(`./src-CpO2JX79.js`),[])).sampleRUM),n=!0,t&&t(`navigate`,{source:typeof document<`u`?document.referrer:``,target:i})}catch{}}function a(e,n){t?.(`formsubmit`,{source:e,target:n})}function o(e){t?.(`viewblock`,{source:e})}function s(e){t?.(`viewmedia`,{source:e})}function c(e,n){t?.(`error`,{source:e,target:n})}function l(e){t?.(`signup`,{source:e})}function u(e){return(e??``).slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}export{o as a,l as i,a as n,s as r,i as t};
@@ -1 +1 @@
1
- import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`2.53.0`,releasedAt:`2026-05-19T20:32:29Z`}}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
+ import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`2.54.0`,releasedAt:`2026-05-19T21:24:33Z`}}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"}],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 m(r,t=rt){return et.includes(r)?r:t}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:m(r.corner)}}function $(r){return{...r,open:!r.open}}function T(r,t){return r.open===t?r:{...r,open:t}}function O(r,t){let e=u(t,r.activeTab);return r.activeTab===e?r:{...r,activeTab:e}}function A(r,t){let e=m(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 f=c,b=1-c,S=i,g=1-i,w=Math.min(f,b,S,g);return w===f?"top":w===b?"bottom":w===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 W=`<?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"}],F=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 m(r,t=rt){return et.includes(r)?r:t}function C(r={}){return{open:r.open??!1,activeTab:u(r.activeTab,M),corner:m(r.corner)}}function Z(r){return{...r,open:!r.open}}function T(r,t){return r.open===t?r:{...r,open:t}}function O(r,t){let e=u(t,r.activeTab);return r.activeTab===e?r:{...r,activeTab:e}}function A(r,t){let e=m(t,r.corner);return r.corner===e?r:{...r,corner:e}}function R(r,t){return r>=ot||r>=nt&&t>=at}function $({clientX:r,clientY:t,viewportWidth:e,viewportHeight:o,velocityXPxPerMs:n=0,velocityYPxPerMs:a=0,flickProjectionMs:s=180}){let l=H(r+n*s,0,e),p=H(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,w=Math.min(f,b,S,g);return w===f?"top":w===b?"bottom":w===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 H(r,t,e){return Math.min(Math.max(r,t),e)}var j="slicc-electron-overlay:set-tab";var W=`<?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 z=`<?xml version="1.0" encoding="UTF-8"?>
27
+ </g></g></g></svg>`;var q=`<?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",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=`
53
+ </g></g></g></svg>`;var U="slicc-electron-overlay-root",N="slicc-electron-overlay",pt="Semicolon",K=";",dt="slicc-electron-overlay:toggle",k="slicc-electron-launcher",L="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 z(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 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,`
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 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,`
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+"}${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(W),l.setAttribute("aria-hidden","true");let p=e.createElement("div");p.className="logo-icon logo-for-light",p.innerHTML=q(z),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,`
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=z(W),l.setAttribute("aria-hidden","true");let p=e.createElement("div");p.className="logo-icon logo-for-light",p.innerHTML=z(q),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=$({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 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 f=e.createElement("div");f.className="empty-state",f.textContent="Starting the local SLICC runtime\u2026",this.emptyState=f,E.appendChild(f),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)}},k=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:m(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:m(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(O(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,`
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 F){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 f=e.createElement("div");f.className="empty-state",f.textContent="Starting the local SLICC runtime\u2026",this.emptyState=f,E.appendChild(f),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:j,tab:t},"*"),this.lastPostedTab=t)}},_=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:m(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:m(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(O(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(Z(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(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(O(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,k)}function Q(r=document,t={}){ht(r.defaultView?.customElements??customElements);let e=r.getElementById(U),o;return e instanceof k?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 m(r?.localStorage.getItem(J))}catch{return m(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)}}};})();
269
+ `));let o=e.createElement(k);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(L);n.addEventListener("slicc-overlay-close",()=>this.hideSidebar()),n.addEventListener("slicc-overlay-select-tab",a=>{let s=a.detail?.tab;this.applyState(O(this.state,s))}),t.appendChild(n)}syncChildren(){let t=this.shadowRoot;if(!t)return;let e=t.querySelector(k),o=t.querySelector(L);!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(k)||r.define(k,P),r.get(L)||r.define(L,Y),r.get(N)||r.define(N,_)}function Q(r=document,t={}){ht(r.defaultView?.customElements??customElements);let e=r.getElementById(U),o;return e instanceof _?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??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 m(r?.localStorage.getItem(J))}catch{return m(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,24 +5,26 @@
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-ZLv5StNy.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BAW3Fm6o.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
- <link rel="modulepreload" crossorigin href="/assets/env-api-keys-DxKb6C4Q.js">
12
- <link rel="modulepreload" crossorigin href="/assets/simple-options-imi_RHvn.js">
13
- <link rel="modulepreload" crossorigin href="/assets/json-parse-C5jSA6JB.js">
14
- <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-CqXHYC67.js">
15
- <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-DKq8RTLd.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/env-api-keys-BoL4zxcb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/simple-options-D8vGmEnp.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/json-parse-Cu2r6BfV.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-jigA67u0.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-hrOEFANe.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
17
- <link rel="modulepreload" crossorigin href="/assets/tool-ui-B3Bihlxa.js">
18
- <link rel="modulepreload" crossorigin href="/assets/telemetry-BHB_tqYb.js">
19
- <link rel="modulepreload" crossorigin href="/assets/provider-settings-BHwoEn-1.js">
20
- <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-DJJfRF_c.js">
21
- <link rel="modulepreload" crossorigin href="/assets/backend-local-D-jeTNnr.js">
22
- <link rel="modulepreload" crossorigin href="/assets/path-utils-d3qOVZOu.js">
23
- <link rel="modulepreload" crossorigin href="/assets/fs-BSEneDlc.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/tool-ui-DaAXBPJY.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/telemetry-qzXntW4J.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/provider-settings-BwSeCV7i.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-ys6_YNH0.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/backend-local-C97MTiUQ.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/path-utils-mhPGPhd8.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/fs-Dp9UJZnC.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
25
- <link rel="modulepreload" crossorigin href="/assets/mount-vDUPSYAA.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/mount-D_Q23bU0.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/shared-Bzh87vAD.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/sprinkle-renderer-KJJoM4E0.js">
26
28
  <link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
27
29
  </head>
28
30
  <body>
@@ -5,24 +5,26 @@
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-ZLv5StNy.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BAW3Fm6o.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
- <link rel="modulepreload" crossorigin href="/assets/env-api-keys-DxKb6C4Q.js">
12
- <link rel="modulepreload" crossorigin href="/assets/simple-options-imi_RHvn.js">
13
- <link rel="modulepreload" crossorigin href="/assets/json-parse-C5jSA6JB.js">
14
- <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-CqXHYC67.js">
15
- <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-DKq8RTLd.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/env-api-keys-BoL4zxcb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/simple-options-D8vGmEnp.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/json-parse-Cu2r6BfV.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-jigA67u0.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-hrOEFANe.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/logger-B-No_qN_.js">
17
- <link rel="modulepreload" crossorigin href="/assets/tool-ui-B3Bihlxa.js">
18
- <link rel="modulepreload" crossorigin href="/assets/telemetry-BHB_tqYb.js">
19
- <link rel="modulepreload" crossorigin href="/assets/provider-settings-BHwoEn-1.js">
20
- <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-DJJfRF_c.js">
21
- <link rel="modulepreload" crossorigin href="/assets/backend-local-D-jeTNnr.js">
22
- <link rel="modulepreload" crossorigin href="/assets/path-utils-d3qOVZOu.js">
23
- <link rel="modulepreload" crossorigin href="/assets/fs-BSEneDlc.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/tool-ui-DaAXBPJY.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/telemetry-qzXntW4J.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/provider-settings-BwSeCV7i.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/mount-picker-popup-ys6_YNH0.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/backend-local-C97MTiUQ.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/path-utils-mhPGPhd8.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/fs-Dp9UJZnC.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/mime-types-DL940yDZ.js">
25
- <link rel="modulepreload" crossorigin href="/assets/mount-vDUPSYAA.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/mount-D_Q23bU0.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/shared-Bzh87vAD.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/sprinkle-renderer-KJJoM4E0.js">
26
28
  <link rel="stylesheet" crossorigin href="/assets/index-eWuuouO-.css">
27
29
  </head>
28
30
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "2.53.0",
3
+ "version": "2.54.0",
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-ZLv5StNy.js";function e(e){}export{e as registerSessionCostsProvider};