sliccy 5.56.0 → 5.56.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 (83) hide show
  1. package/dist/ui/assets/{account-store-Dh7l0LzP.js → account-store-CWujj2p7.js} +2 -2
  2. package/dist/ui/assets/{account-store-t4AJ_pmK.js → account-store-CcwUlxWt.js} +1 -1
  3. package/dist/ui/assets/{adobe-DLjV-2Oa.js → adobe-C7Z7T4l9.js} +1 -1
  4. package/dist/ui/assets/{adobe-DD77CSVJ.js → adobe-CA9QD636.js} +1 -1
  5. package/dist/ui/assets/{adobe-oauth-state-uRF2sFCD.js → adobe-oauth-state-DH5gsC27.js} +1 -1
  6. package/dist/ui/assets/{agent-message-to-chat-BXYpLcDf.js → agent-message-to-chat-C0Dn86SU.js} +1 -1
  7. package/dist/ui/assets/{apps-DohBTLSW.js → apps-BszDByMv.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-B42RA8nl.js → azure-openai-CkBZeZrb.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-DAuFhLCn.js → azure-openai-OAs4Oyte.js} +1 -1
  10. package/dist/ui/assets/{cerebras-Dtx7qQDv.js → cerebras-CH7sTSSg.js} +1 -1
  11. package/dist/ui/assets/{cerebras-DHwRZhpt.js → cerebras-kMqsXbwC.js} +1 -1
  12. package/dist/ui/assets/clipboard-DJXLrfzh.js +1 -0
  13. package/dist/ui/assets/{connect-surface-ybCgyYv0.js → connect-surface-DkvAJ_K0.js} +1 -1
  14. package/dist/ui/assets/dip-DcBpL1A3.js +1 -0
  15. package/dist/ui/assets/{dist-1t0OQ0qL.js → dist-Bfszya_H.js} +1 -1
  16. package/dist/ui/assets/{dist-C3bIfdSb.js → dist-sXLG4cB6.js} +1 -1
  17. package/dist/ui/assets/{ensure-speech-assets-t6whsFeb.js → ensure-speech-assets-EWcfDkRf.js} +1 -1
  18. package/dist/ui/assets/{fs-lTfznbqt.js → fs-BzsJCSFa.js} +1 -1
  19. package/dist/ui/assets/{fs-Zu4w9DuU.js → fs-Cm5x3FFi.js} +2 -2
  20. package/dist/ui/assets/{github-CJKKxg1O.js → github-DtMDg43z.js} +1 -1
  21. package/dist/ui/assets/{github-m4FgcWOe.js → github-_oGNcHw5.js} +2 -2
  22. package/dist/ui/assets/{github-copilot-BtOY8m7V.js → github-copilot-BUQgs6fs.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-Daw3Jq3D.js → github-copilot-bVd0lo8O.js} +1 -1
  24. package/dist/ui/assets/{hear-Cm7DDDIo.js → hear-DqJCKD1X.js} +1 -1
  25. package/dist/ui/assets/{kernel-worker-DYmo_OB4.js → kernel-worker-Cl8PH0E1.js} +21 -21
  26. package/dist/ui/assets/{kokoro-engine-CYQIOmR5.js → kokoro-engine-C9AiAzO2.js} +1 -1
  27. package/dist/ui/assets/{lick-ws-bridge-CnmtMvet.js → lick-ws-bridge-D7PDPFpB.js} +1 -1
  28. package/dist/ui/assets/{lick-ws-bridge-D0N_GjVV.js → lick-ws-bridge-Djp7tm82.js} +1 -1
  29. package/dist/ui/assets/{local-llm-D0V36ZWZ.js → local-llm-7qwuN2ax.js} +1 -1
  30. package/dist/ui/assets/{main-YTN8hyPD.js → main-Ds9wENia.js} +4 -4
  31. package/dist/ui/assets/{mount-CLjnC1yB.js → mount--Gg-6T_k.js} +1 -1
  32. package/dist/ui/assets/{mount-CdXEReHs.js → mount-Cm1rbfuZ.js} +2 -2
  33. package/dist/ui/assets/new-session-B06UhYB6.js +2 -0
  34. package/dist/ui/assets/{oauth-bootstrap-Dcn4BmD7.js → oauth-bootstrap-1nYRuuXw.js} +2 -2
  35. package/dist/ui/assets/{openai-codex-HGg6nnoS.js → openai-codex-BIv5aMqr.js} +1 -1
  36. package/dist/ui/assets/{openai-codex-BhaXNhYy.js → openai-codex-gALxlxaW.js} +1 -1
  37. package/dist/ui/assets/{page-follower-tray-CNYNCF88.js → page-follower-tray-CyPQ71QH.js} +1 -1
  38. package/dist/ui/assets/{panel-rpc-handlers-4znL6HoK.js → panel-rpc-handlers-DsRN7S7R.js} +2 -2
  39. package/dist/ui/assets/{provider-C1O2nLVv.js → provider-CC-Pcqhg.js} +1 -1
  40. package/dist/ui/assets/{provider-DblqxS3E.js → provider-DT0SeoeE.js} +2 -2
  41. package/dist/ui/assets/{provider-settings-Rue94mNN.js → provider-settings-DGSqOmuk.js} +1 -1
  42. package/dist/ui/assets/provider-store-access-BqVYLKHu.js +1 -0
  43. package/dist/ui/assets/provider-store-access-DGr-4VuP.js +1 -0
  44. package/dist/ui/assets/{providers-e7B5fhmN.js → providers-C7UwoT1G.js} +1 -1
  45. package/dist/ui/assets/{providers-CSAlD373.js → providers-DFDGm1g6.js} +2 -2
  46. package/dist/ui/assets/{quick-llm-DsLcfgFd.js → quick-llm-BUrfa-DR.js} +1 -1
  47. package/dist/ui/assets/session-freezer-QNweDM8i.js +1 -0
  48. package/dist/ui/assets/{speak-BJJi37Hy.js → speak-CLbxzaUU.js} +1 -1
  49. package/dist/ui/assets/{sprinkle-manager-BnfSy6yj.js → sprinkle-manager-C_EKWgg2.js} +1 -1
  50. package/dist/ui/assets/{store-BqBYAn_F.js → store-DQ0epfYL.js} +1 -1
  51. package/dist/ui/assets/{sudo-CG0mnebo.js → sudo-BQF_eH2I.js} +1 -1
  52. package/dist/ui/assets/{transformers-env-CsxSfRbE.js → transformers-env-C-dSThAo.js} +1 -1
  53. package/dist/ui/assets/{tray-leader-Br5ERv-E.js → tray-leader-CoZwUBlc.js} +1 -1
  54. package/dist/ui/assets/{tray-leave-runtime-lgmU98Dk.js → tray-leave-runtime-CJ6vnkW9.js} +1 -1
  55. package/dist/ui/assets/{upgrade-detection-CtLcdumJ.js → upgrade-detection-iOP6Q88G.js} +1 -1
  56. package/dist/ui/assets/{voice-reply-Dn917gPG.js → voice-reply-DiAG4sH_.js} +1 -1
  57. package/dist/ui/assets/{wc-attach-DBAOr_3_.js → wc-attach-BMbzYAl6.js} +2 -2
  58. package/dist/ui/assets/{wc-extension-ebP1rCW5.js → wc-extension-CwCwn1B4.js} +2 -2
  59. package/dist/ui/assets/{wc-follower-CId_LARH.js → wc-follower-DXRmbiTb.js} +3 -3
  60. package/dist/ui/assets/wc-live-BrUaK4H-.js +258 -0
  61. package/dist/ui/assets/{wc-nav-fffdvg7T.js → wc-nav-DBq-t5aH.js} +2 -2
  62. package/dist/ui/assets/{wc-onboarding-CB-gyJlN.js → wc-onboarding-D0mvBd_0.js} +2 -2
  63. package/dist/ui/assets/{wc-placeholder-JajflJ9f.js → wc-placeholder-Cu1sXIzM.js} +3 -3
  64. package/dist/ui/assets/{wc-settings-Dm-c9RA5.js → wc-settings-DwxtPCfq.js} +3 -3
  65. package/dist/ui/assets/{wc-shell-BE-b8vsg.js → wc-shell-CLMqHu48.js} +3 -3
  66. package/dist/ui/assets/{wc-sprinkles-BNBjEy3e.js → wc-sprinkles-DyEg8aV3.js} +2 -2
  67. package/dist/ui/assets/{wc-tray-CigihWow.js → wc-tray-CtG5bylt.js} +2 -2
  68. package/dist/ui/assets/{whisper-engine-DkpN7BHN.js → whisper-engine-CxzxesXy.js} +1 -1
  69. package/dist/ui/assets/writable-vfs-client-Cb6FWsgc.js +1 -0
  70. package/dist/ui/assets/{xai-grok-D9fxDanU.js → xai-grok-Drx4-r-A.js} +1 -1
  71. package/dist/ui/assets/{xai-grok-B2r8dJHM.js → xai-grok-iBiTKjrL.js} +1 -1
  72. package/dist/ui/index.html +3 -3
  73. package/dist/ui/llm-proxy-sw.js +1 -1
  74. package/dist/ui/packages/webapp/index.html +3 -3
  75. package/package.json +1 -1
  76. package/dist/ui/assets/clipboard-Dikb1SVO.js +0 -1
  77. package/dist/ui/assets/dip-CZOaODo0.js +0 -1
  78. package/dist/ui/assets/new-session-Y0IvZ_oH.js +0 -2
  79. package/dist/ui/assets/provider-store-access-B6SAcWbQ.js +0 -1
  80. package/dist/ui/assets/provider-store-access-Baoa3IeZ.js +0 -1
  81. package/dist/ui/assets/session-freezer-B3JgXsYz.js +0 -1
  82. package/dist/ui/assets/wc-live-Ca7ezOoX.js +0 -258
  83. package/dist/ui/assets/writable-vfs-client-BKZGifKZ.js +0 -1
@@ -1 +1 @@
1
- "use strict";(()=>{var _="https://www.sliccy.ai";var E="bridgeToken",k="bridge",C="X-Bridge-Token";var G=new URL(_).hostname,me={[G]:"sliccy.now","sliccy.ai":"sliccy.now","slicc-tray-hub-staging.minivelos.workers.dev":"sliccy.dev","localhost:8787":"localhost:8787"};var Y=["ghp_","gho_","ghu_","ghs_","ghr_","github_pat_","sk-","pk-","xoxb-","xoxp-","xoxa-","xoxs-","AKIA","ABIA","ACCA","ASIA","sk-ant-","Bearer "],xe=[...Y].sort((e,t)=>t.length-e.length);function w(e){if(!e)return{};let t={};for(let[r,s]of Object.entries(e)){let i=r.toLowerCase();i==="cookie"?t["X-Proxy-Cookie"]=s:i==="origin"?t["X-Proxy-Origin"]=s:i==="referer"?t["X-Proxy-Referer"]=s:i.startsWith("proxy-")?t[`X-Proxy-${r}`]=s:t[r]=s}return t}function v(e){let t={};for(let[r,s]of Object.entries(e))r.toLowerCase()==="x-proxy-set-cookie"?t["set-cookie"]=s:t[r]=s;return t}var z=new Set([101,103,204,205,304]);function K(e){let t=atob(e),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}function T(e){let t,r,s=new Promise((n,o)=>{t=n,r=o}),i=null,a=new ReadableStream({start(n){i=n}}),l=!1,u=!1,g=()=>{try{i?.close()}catch{}},h=n=>{try{i?.error(n)}catch{}},p=n=>{if(l)return;l=!0;let o=new Headers;for(let[S,M]of Object.entries(v(n.headers)))o.set(S,M);let R=z.has(n.status)?null:a;t(new Response(R,{status:n.status,statusText:n.statusText,headers:o}))},c=n=>{u=!0;let o=new Error(n.error);l?h(o):r(o),e.close?.()};return e.onmessage=n=>{let o=n.data;!o||typeof o.type!="string"||u||(o.type==="response-head"?p(o):o.type==="response-chunk"?i?.enqueue(K(o.dataBase64)):o.type==="response-end"?(u=!0,g(),e.close?.()):o.type==="response-error"&&c(o))},e.start?.(),{responsePromise:s}}var J=new Set([101,103,204,205,304]);function b(e){let t=J.has(e.status)?null:e.body;return new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers})}var U="slicc",I="leader";function L(e){try{let t=new URL(e);return`${t.protocol==="wss:"?"https:":"http:"}//${t.host}`}catch{return null}}var Q="slicc:bridge-config";function B(e,t){if(e?.apiBaseUrl&&e.token)return{apiBaseUrl:e.apiBaseUrl.replace(/\/+$/,""),token:e.token};if(!t)return null;let r;try{r=new URL(t)}catch{return null}let s=r.searchParams.get(k),i=r.searchParams.get(E);if(!s||!i)return null;let a=L(s);return a?{apiBaseUrl:a.replace(/\/+$/,""),token:i}:null}function D(e,t){if(e?.apiBaseUrl&&e.token)return B(e,null);for(let r of t){let s=B(null,r);if(s)return s}return null}function O(e,t){return t?`${t.apiBaseUrl}${e}`:e}function q(e,t){let r,s;try{r=new URL(t),s=new URL(e)}catch{return!1}return s.origin===r.origin&&s.pathname.startsWith("/api/")}function F(e){return!e||typeof e!="object"?!1:e.type===Q}var m=class{byClient=new Map;set(t,r){if(t){if(!r.apiBaseUrl||!r.token){this.byClient.delete(t);return}this.byClient.set(t,{apiBaseUrl:r.apiBaseUrl.replace(/\/+$/,""),token:r.token})}}get(t){return t?this.byClient.get(t)??null:null}delete(t){this.byClient.delete(t)}size(){return this.byClient.size}},Z="slicc:extension-delegate-config",P="slicc:ext-fetch";function $(e){return!e||typeof e!="object"?!1:e.type===Z}function A(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}if(t.searchParams.get(U)!==I)return null;let r=t.searchParams.get("ext");return r?{extensionId:r}:null}function V(e,t){if(e?.extensionId)return{extensionId:e.extensionId};for(let r of t){let s=A(r);if(s)return s}return null}var y=class{byClient=new Map;set(t,r){if(t){if(!r.extensionId){this.byClient.delete(t);return}this.byClient.set(t,{extensionId:r.extensionId})}}get(t){return t?this.byClient.get(t)??null:null}delete(t){this.byClient.delete(t)}size(){return this.byClient.size}},ee=new Set(["image","font","style","video","audio","track","iframe","object","embed"]);function H(e){return ee.has(e)}var te="/api/fetch-proxy",x="x-bypass-llm-proxy",j=new m,W=new y,re=32*1024*1024;self.importScripts("/preview-sw.js");self.addEventListener("install",e=>{e.waitUntil(self.skipWaiting())});self.addEventListener("activate",e=>{e.waitUntil(self.clients.claim())});self.addEventListener("message",e=>{let t=e.source;if(!(!t||!("id"in t)||typeof t.id!="string")){if(F(e.data)){j.set(t.id,{apiBaseUrl:e.data.apiBaseUrl,token:e.data.token});return}if($(e.data)){W.set(t.id,{extensionId:e.data.extensionId});return}}});self.addEventListener("fetch",e=>{let t=e.request;if(t.headers.get(x)==="1"||H(t.destination))return;let r;try{r=new URL(t.url)}catch{return}r.origin!==self.location.origin&&(r.protocol!=="http:"&&r.protocol!=="https:"||e.respondWith(se(t,e.clientId||null)))});async function se(e,t){let r=e.url,s={};e.headers.forEach((d,f)=>{f.toLowerCase()!==x&&(s[f]=d)});let i=w(s),a=new Headers;for(let[d,f]of Object.entries(i))a.set(d,f);a.set("X-Target-URL",r);let l=j.get(t),u=W.get(t),g=await ne(t),h=l||u?[]:await oe(),p=[g,...h],c=V(u,p);if(c){let d=await ie();if(d)return ce(e,c,d,r)}let n=D(l,p);if(n&&q(e.url,n.apiBaseUrl)){let d=new Headers(e.headers);d.set(x,"1");let f={method:e.method,headers:d,cache:"no-store",credentials:e.credentials,redirect:"manual",signal:e.signal,body:await N(e)};return b(await fetch(e.url,f))}n&&a.set(C,n.token);let o=O(te,n),R=await N(e),S={method:e.method,headers:a,cache:"no-store",credentials:"omit",redirect:"manual",signal:e.signal,body:R},M=await fetch(o,S);return b(M)}async function N(e){if(e.method==="GET"||e.method==="HEAD")return;let t=await e.arrayBuffer();return t.byteLength>0?t:void 0}async function ne(e){if(!e)return null;try{return(await self.clients.get(e))?.url??null}catch{return null}}async function oe(){try{return(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map(t=>t.url).filter(t=>!!t)}catch{return[]}}async function ie(){try{let e=await self.clients.matchAll({type:"window",includeUncontrolled:!0});return e.length===0?null:e.find(r=>A(r.url)!==null)??e[0]}catch{return null}}function ae(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}async function ce(e,t,r,s){let i={};e.headers.forEach((c,n)=>{n.toLowerCase()!==x&&(i[n]=c)});let a=w(i),l,u=!1;if(e.method!=="GET"&&e.method!=="HEAD"){let c=await e.arrayBuffer();c.byteLength>re?u=!0:c.byteLength>0&&(l=ae(new Uint8Array(c)))}let g=new MessageChannel,{responsePromise:h}=T(g.port1),p={type:P,requestId:le(),extensionId:t.extensionId,request:{url:s,method:e.method,headers:a,bodyBase64:l,requestBodyTooLarge:u}};return r.postMessage(p,[g.port2]),h}function le(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`}})();
1
+ "use strict";(()=>{var v="https://www.sliccy.ai";var E="bridgeToken",k="bridge",_="X-Bridge-Token";var G=new URL(v).hostname,me={[G]:"sliccy.now","sliccy.ai":"sliccy.now","slicc-tray-hub-staging.minivelos.workers.dev":"sliccy.dev","localhost:8787":"localhost:8787"};var Y=["ghp_","gho_","ghu_","ghs_","ghr_","github_pat_","sk-","pk-","xoxb-","xoxp-","xoxa-","xoxs-","AKIA","ABIA","ACCA","ASIA","sk-ant-","Bearer "],xe=[...Y].sort((e,t)=>t.length-e.length);function w(e){if(!e)return{};let t={};for(let[r,s]of Object.entries(e)){let i=r.toLowerCase();i==="cookie"?t["X-Proxy-Cookie"]=s:i==="origin"?t["X-Proxy-Origin"]=s:i==="referer"?t["X-Proxy-Referer"]=s:i.startsWith("proxy-")?t[`X-Proxy-${r}`]=s:t[r]=s}return t}function C(e){let t={};for(let[r,s]of Object.entries(e))r.toLowerCase()==="x-proxy-set-cookie"?t["set-cookie"]=s:t[r]=s;return t}var z=new Set([101,103,204,205,304]);function K(e){let t=atob(e),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}function T(e){let t,r,s=new Promise((n,o)=>{t=n,r=o}),i=null,a=new ReadableStream({start(n){i=n}}),l=!1,u=!1,g=()=>{try{i?.close()}catch{}},h=n=>{try{i?.error(n)}catch{}},p=n=>{if(l)return;l=!0;let o=new Headers;for(let[M,S]of Object.entries(C(n.headers)))o.set(M,S);let R=z.has(n.status)?null:a;t(new Response(R,{status:n.status,statusText:n.statusText,headers:o}))},c=n=>{u=!0;let o=new Error(n.error);l?h(o):r(o),e.close?.()};return e.onmessage=n=>{let o=n.data;!o||typeof o.type!="string"||u||(o.type==="response-head"?p(o):o.type==="response-chunk"?i?.enqueue(K(o.dataBase64)):o.type==="response-end"?(u=!0,g(),e.close?.()):o.type==="response-error"&&c(o))},e.start?.(),{responsePromise:s}}var J=new Set([101,103,204,205,304]);function b(e){let t=J.has(e.status)?null:e.body;return new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers})}var U="slicc",I="leader";function L(e){try{let t=new URL(e);return`${t.protocol==="wss:"?"https:":"http:"}//${t.host}`}catch{return null}}var Q="slicc:bridge-config";function B(e,t){if(e?.apiBaseUrl&&e.token)return{apiBaseUrl:e.apiBaseUrl.replace(/\/+$/,""),token:e.token};if(!t)return null;let r;try{r=new URL(t)}catch{return null}let s=r.searchParams.get(k),i=r.searchParams.get(E);if(!s||!i)return null;let a=L(s);return a?{apiBaseUrl:a.replace(/\/+$/,""),token:i}:null}function D(e,t){if(e?.apiBaseUrl&&e.token)return B(e,null);for(let r of t){let s=B(null,r);if(s)return s}return null}function O(e,t){return t?`${t.apiBaseUrl}${e}`:e}function q(e,t){let r,s;try{r=new URL(t),s=new URL(e)}catch{return!1}return s.origin===r.origin&&s.pathname.startsWith("/api/")}function P(e){return!e||typeof e!="object"?!1:e.type===Q}var m=class{byClient=new Map;set(t,r){if(t){if(!r.apiBaseUrl||!r.token){this.byClient.delete(t);return}this.byClient.set(t,{apiBaseUrl:r.apiBaseUrl.replace(/\/+$/,""),token:r.token})}}get(t){return t?this.byClient.get(t)??null:null}delete(t){this.byClient.delete(t)}size(){return this.byClient.size}},Z="slicc:extension-delegate-config",F="slicc:ext-fetch";function V(e){return!e||typeof e!="object"?!1:e.type===Z}function A(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}if(t.searchParams.get(U)!==I)return null;let r=t.searchParams.get("ext");return r?{extensionId:r}:null}function $(e,t){if(e?.extensionId)return{extensionId:e.extensionId};for(let r of t){let s=A(r);if(s)return s}return null}var y=class{byClient=new Map;set(t,r){if(t){if(!r.extensionId){this.byClient.delete(t);return}this.byClient.set(t,{extensionId:r.extensionId})}}get(t){return t?this.byClient.get(t)??null:null}delete(t){this.byClient.delete(t)}size(){return this.byClient.size}},ee=new Set(["image","font","style","video","audio","track","iframe","object","embed"]);function H(e){return ee.has(e)}var te="/api/fetch-proxy",x="x-bypass-llm-proxy",j=new m,W=new y,re=32*1024*1024;self.importScripts("/preview-sw.js");self.addEventListener("install",e=>{e.waitUntil(self.skipWaiting())});self.addEventListener("activate",e=>{e.waitUntil(self.clients.claim())});self.addEventListener("message",e=>{let t=e.source;if(!(!t||!("id"in t)||typeof t.id!="string")){if(P(e.data)){j.set(t.id,{apiBaseUrl:e.data.apiBaseUrl,token:e.data.token});return}if(V(e.data)){W.set(t.id,{extensionId:e.data.extensionId});return}}});self.addEventListener("fetch",e=>{let t=e.request;if(t.headers.get(x)==="1"||H(t.destination))return;let r;try{r=new URL(t.url)}catch{return}r.origin!==self.location.origin&&(r.protocol!=="http:"&&r.protocol!=="https:"||e.respondWith(se(t,e.clientId||null)))});async function se(e,t){let r=e.url,s={};e.headers.forEach((d,f)=>{f.toLowerCase()!==x&&(s[f]=d)});let i=w(s),a=new Headers;for(let[d,f]of Object.entries(i))a.set(d,f);a.set("X-Target-URL",r);let l=j.get(t),u=W.get(t),g=await ne(t),h=l||u?[]:await oe(),p=[g,...h],c=$(u,p);if(c){let d=await ie();if(d)return ce(e,c,d,r)}let n=D(l,p);if(n&&q(e.url,n.apiBaseUrl)){let d=new Headers(e.headers);d.set(x,"1");let f={method:e.method,headers:d,cache:"no-store",credentials:e.credentials,redirect:"manual",signal:e.signal,body:await N(e)};return b(await fetch(e.url,f))}n&&a.set(_,n.token);let o=O(te,n),R=await N(e),M={method:e.method,headers:a,cache:"no-store",credentials:"omit",redirect:"manual",signal:e.signal,body:R},S=await fetch(o,M);return b(S)}async function N(e){if(e.method==="GET"||e.method==="HEAD")return;let t=await e.arrayBuffer();return t.byteLength>0?t:void 0}async function ne(e){if(!e)return null;try{return(await self.clients.get(e))?.url??null}catch{return null}}async function oe(){try{return(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map(t=>t.url).filter(t=>!!t)}catch{return[]}}async function ie(){try{let e=await self.clients.matchAll({type:"window",includeUncontrolled:!0});return e.length===0?null:e.find(r=>A(r.url)!==null)??e[0]}catch{return null}}function ae(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}async function ce(e,t,r,s){let i={};e.headers.forEach((c,n)=>{n.toLowerCase()!==x&&(i[n]=c)});let a=w(i),l,u=!1;if(e.method!=="GET"&&e.method!=="HEAD"){let c=await e.arrayBuffer();c.byteLength>re?u=!0:c.byteLength>0&&(l=ae(new Uint8Array(c)))}let g=new MessageChannel,{responsePromise:h}=T(g.port1),p={type:F,requestId:le(),extensionId:t.extensionId,request:{url:s,method:e.method,headers:a,bodyBase64:l,requestBodyTooLarge:u}};return r.postMessage(p,[g.port2]),h}function le(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`}})();
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>slicc</title>
7
7
  <link rel="icon" type="image/png" href="/logos/sliccy-color-1scoops-32x32.png" />
8
- <script type="module" crossorigin src="/assets/main-YTN8hyPD.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-Ds9wENia.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-CZgWQFsJ.js">
@@ -23,11 +23,11 @@
23
23
  <link rel="modulepreload" crossorigin href="/assets/port-bridge-client-Btb0CfZS.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-a5aLwwny.js">
25
25
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
26
- <link rel="modulepreload" crossorigin href="/assets/providers-CSAlD373.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/providers-DFDGm1g6.js">
27
27
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-DmJSNs0I.js">
28
28
  <link rel="modulepreload" crossorigin href="/assets/transform-messages-DwI5R8if.js">
29
29
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-CZFsedRI.js">
30
- <link rel="modulepreload" crossorigin href="/assets/account-store-t4AJ_pmK.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/account-store-CcwUlxWt.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/messages-BD4p8GuF.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/clipboard-DuHpK59o.js">
33
33
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "5.56.0",
3
+ "version": "5.56.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{t as e}from"./provider-settings-Rue94mNN.js";export{e as copyTextToClipboard};
@@ -1 +0,0 @@
1
- import{m as e}from"./wc-live-Ca7ezOoX.js";export{e as setDipExecHandler};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-DsLcfgFd.js","assets/rolldown-runtime-aKtaBQYM.js","assets/compat-FrhC6T45.js","assets/models-ByRUWfA-.js","assets/preload-helper-CZgWQFsJ.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-t4AJ_pmK.js","assets/context-compaction-LYFtS2_f.js","assets/logger-DDBAeTLF.js","assets/src-BvERX0WZ.js","assets/proxied-fetch-D3wsof0i.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-_rfIhUjY.js","assets/secrets-bridge-client-a5aLwwny.js","assets/port-bridge-client-Btb0CfZS.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CSAlD373.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CZFsedRI.js","assets/transform-messages-DwI5R8if.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-CZgWQFsJ.js";import{F as t,m as n}from"./account-store-t4AJ_pmK.js";import{t as r}from"./logger-DDBAeTLF.js";import"./main-YTN8hyPD.js";import{t as i}from"./llm-session-id-bZQs6gBN.js";import{SessionStore as a}from"./session-store-DAM8GRJ0.js";import{a as o,i as s}from"./wc-live-Ca7ezOoX.js";var c=r(`new-session`),l=`ui-new-session`,u=2e4,d=250;async function f(r){let d=r.enrichmentRaceMs??u,f=n()??void 0,m;try{m=t()}catch(e){c.info(`No active model — freezing without LLM enrichment`,{error:e instanceof Error?e.message:String(e)})}let h=m?.provider===`adobe`?{"X-Session-Id":i(l)}:void 0,g=new a;try{await g.init()}catch(e){return c.warn(`SessionStore init failed — cannot freeze`,{error:e instanceof Error?e.message:String(e)}),null}let _=await o({sessionStore:g,vfs:r.vfs,mode:`quick`});if(!_)return null;if(!f||!m)return c.info(`Frozen without enrichment (no LLM credentials) — left pending`,{filename:_.filename}),_;let v=m,y=s(r.vfs,_,{model:v,apiKey:f,headers:h,pickIcon:t=>e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DsLcfgFd.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(({pickLucideIcon:e})=>e(t))}).catch(e=>(c.warn(`Single-click enrichment threw (entry stays pending)`,{filename:_.filename,error:e instanceof Error?e.message:String(e)}),null)),b=await p(y,d,r.onProgress);return b.kind===`llm`?b.updated?{...b.updated,archive:_.archive}:_:(y.then(e=>{c.info(`Background enrichment resolved after race window`,{filename:_.filename,enriched:e?.filename??null}),r.onBackgroundEnriched?.(e)}),_)}async function p(e,t,n){let r=Date.now(),i,a;n?.(0),n&&(i=setInterval(()=>{n(Math.min(1,(Date.now()-r)/t))},d));let o=new Promise(e=>{a=setTimeout(()=>e({kind:`timer`}),t)}),s=e.then(e=>({kind:`llm`,updated:e}));try{return await Promise.race([s,o])}finally{i&&clearInterval(i),a&&clearTimeout(a),n?.(null)}}async function m(e){let t=new a;try{await t.init()}catch(e){return c.warn(`SessionStore init failed — cannot quick-freeze`,{error:e instanceof Error?e.message:String(e)}),null}return o({sessionStore:t,vfs:e.vfs,mode:`quick`})}export{f as runNewSessionFreeze,m as runNewSessionFreezeQuick};
@@ -1 +0,0 @@
1
- import{t as e}from"./provider-DblqxS3E.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{t as e}from"./store-BqBYAn_F.js";import"./provider-C1O2nLVv.js";export{e as readMcpAuthEntries};
@@ -1 +0,0 @@
1
- import{c as e}from"./wc-live-Ca7ezOoX.js";export{e as readSessionsIndex};
@@ -1,258 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bs1o43Z5.js","assets/rolldown-runtime-aKtaBQYM.js","assets/logger-DDBAeTLF.js","assets/picker-popup-BvzmBsGL.js","assets/runtime-env-DH4NDw4t.js","assets/usb-picker-DJjZemi7.js","assets/serial-picker-bJGym01W.js","assets/hid-picker-Cp7Sp5N-.js","assets/usb-device-registry-k6vTKonT.js","assets/serial-port-registry-DsPZvGpT.js","assets/hid-device-registry-6w-g8ZpF.js","assets/quick-llm-DsLcfgFd.js","assets/compat-FrhC6T45.js","assets/models-ByRUWfA-.js","assets/preload-helper-CZgWQFsJ.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/account-store-t4AJ_pmK.js","assets/context-compaction-LYFtS2_f.js","assets/src-BvERX0WZ.js","assets/proxied-fetch-D3wsof0i.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-_rfIhUjY.js","assets/secrets-bridge-client-a5aLwwny.js","assets/port-bridge-client-Btb0CfZS.js","assets/tool-ui-DfXu6quJ.js","assets/providers-CSAlD373.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-CZFsedRI.js","assets/transform-messages-DwI5R8if.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-C5g936Qd.js","assets/main-YTN8hyPD.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/messages-BD4p8GuF.js","assets/clipboard-DuHpK59o.js","assets/new-session-Y0IvZ_oH.js","assets/session-store-DAM8GRJ0.js","assets/wc-shell-BE-b8vsg.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-shell-WkeczD9x.css","assets/remote-vfs-client-Z2qM01yP.js","assets/types-idfTVsM8.js","assets/writable-vfs-client-BKZGifKZ.js","assets/wc-onboarding-CB-gyJlN.js","assets/welcome-detection-CQY88hjL.js","assets/legacy-styles-CuB1P3LZ.js","assets/theme-VRTdmUBw.js","assets/theme-engine-17gZ2QvH.js","assets/soundscape-TvriK11t.js","assets/voice-reply-Dn917gPG.js","assets/speak-DG2fJcBd.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-w-btTDFl.js","assets/shared-Cq5Q0noX.js","assets/mime-types-ugOWOUZ9.js","assets/wc-placeholder-JajflJ9f.js","assets/wc-attach-DBAOr_3_.js","assets/wc-permissions-registry-Blyunq37.js","assets/remote-terminal-view-DddvZDMC.js","assets/picker-approval-Dc390nC7.js","assets/browser-2wdq8OwU.js","assets/terminal-session-client-CbAduNfC.js","assets/secret-env-CGjJCzwN.js","assets/wc-permissions-CKtVglvh.js","assets/wc-permissions-providers-CbkqRh4J.js","assets/tray-leader-Br5ERv-E.js","assets/mount-table-store-CfQUN_2R.js","assets/remote-sprinkle-vfs-e81pZJKo.js","assets/wc-sprinkles-BNBjEy3e.js","assets/wc-tray-CigihWow.js","assets/handoff-link-CLvhqfpd.js","assets/remote-cdp-transport-DspFAFy_.js","assets/synthetic-cdp-transport-DLIt5SkY.js","assets/page-follower-tray-CNYNCF88.js","assets/sprinkle-renderer-D3OlQRD1.js","assets/wc-nav-fffdvg7T.js","assets/composer-speech-CgPswGW1.js","assets/whisper-session-C8cizjJD.js","assets/wc-float-label-CNeJqRLg.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-CZgWQFsJ.js";import{t}from"./compat-FrhC6T45.js";import{F as n,I as r}from"./account-store-t4AJ_pmK.js";import{i,n as a,r as o,t as s}from"./context-compaction-LYFtS2_f.js";import{t as c}from"./logger-DDBAeTLF.js";import{f as l,p as u}from"./src-BvERX0WZ.js";import{n as d}from"./runtime-env-DH4NDw4t.js";import{t as f}from"./tool-ui-DfXu6quJ.js";import{A as p,C as m,O as h,a as g,c as _,g as ee,i as te,k as ne,l as re,m as v,u as ie}from"./main-YTN8hyPD.js";import{t as ae}from"./wc-permissions-registry-Blyunq37.js";import{n as oe,r as se}from"./hid-device-registry-6w-g8ZpF.js";import{a as ce,i as le}from"./serial-port-registry-DsPZvGpT.js";import{C as ue,D as de,E as fe,S as pe,_ as me,a as he,g as ge,h as _e,k as ve,l as ye,m as be,n as xe,o as Se,s as Ce,w as we,x as Te,y as Ee}from"./usb-operations-D-YdmmuG.js";import{i as De,r as Oe}from"./usb-device-registry-k6vTKonT.js";import{t as ke}from"./icons-C5g936Qd.js";import{r as Ae}from"./tray-leader-Br5ERv-E.js";import{n as je}from"./shared-Cq5Q0noX.js";import{C as Me,b as Ne,c as Pe,d as y,h as Fe,i as Ie,l as Le,m as Re,n as ze,o as Be,p as Ve,r as He,s as Ue,t as We,u as Ge,y as Ke}from"./wc-shell-BE-b8vsg.js";import{i as qe,n as Je,r as Ye}from"./sprinkle-renderer-D3OlQRD1.js";import{n as Xe}from"./sprinkle-bridge-C0ycYX8f.js";import{a as Ze,n as Qe,r as b}from"./theme-VRTdmUBw.js";var $e=d();async function x(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await C(e,!0,t);if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);if(n===null)throw Error(`VFS read failed: ${e}`);return typeof n==`string`?n:new TextDecoder().decode(n)}var S=null;function et(){if(S)return S;if(typeof BroadcastChannel>`u`)return null;try{S=new BroadcastChannel(`preview-vfs`)}catch{return null}return S}async function C(e,t,n){let r=et();if(!r)return null;let i=`dip-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(a=>{let o=!1,s=()=>{r.removeEventListener(`message`,c),n?.removeEventListener(`abort`,l)},c=e=>{if(!o&&!(e.data?.type!==`preview-vfs-response`||e.data.id!==i)){if(o=!0,s(),e.data.error){a(null);return}a(e.data.content??null)}},l=()=>{o||(o=!0,s(),a(null))};r.addEventListener(`message`,c),n?.addEventListener(`abort`,l),setTimeout(()=>{o||(o=!0,s(),a(null))},5e3),r.postMessage({type:`preview-vfs-read`,id:i,path:e,asText:t})})}var tt=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],nt=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function rt(e){return tt.some(t=>e.startsWith(t))}function it(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:nt.some(t=>e.startsWith(t))}var w=new WeakSet,at=`,
3
- exec: Object.assign(function(cmd) {
4
- return _vfsCall('dip-exec', { cmd: cmd }, function(m) { return m.result; });
5
- }, { spawn: function(argv) {
6
- return _vfsCall('dip-jsh', { op: 'spawn', args: [argv] }, function(m) { return m.result; });
7
- } }),
8
- agent: function(prompt, opts) {
9
- return _vfsCall('dip-agent', { prompt: prompt, opts: opts || null },
10
- function(m) { return m.result; });
11
- }`,ot=`,
12
- fetch: function(url, init) {
13
- return _vfsCall('dip-jsh', { op: 'fetch', args: [url, init || null] }, function(m) { return m.result; });
14
- },
15
- http: { client: function(cfg) {
16
- function mk(method) { return function(path, opts) { return _vfsCall('dip-jsh', { op: 'http', args: [cfg, method, path, opts || null] }, function(m) { return m.result; }); }; }
17
- return { get: mk('get'), post: mk('post'), put: mk('put'), patch: mk('patch'), 'delete': mk('delete') };
18
- } },
19
- browser: {
20
- findTab: function(q) { return _vfsCall('dip-jsh', { op: 'browser', args: ['findTab', q] }, function(m) { return m.result; }); },
21
- ensureTab: function(url, options) { return _vfsCall('dip-jsh', { op: 'browser', args: ['ensureTab', url, options || {}] }, function(m) { return m.result; }); },
22
- eval: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['eval', tab, code] }, function(m) { return m.result; }); },
23
- evalAsync: function(tab, code) { return _vfsCall('dip-jsh', { op: 'browser', args: ['evalAsync', tab, code] }, function(m) { return m.result; }); },
24
- cookie: function(tab, name) { return _vfsCall('dip-jsh', { op: 'browser', args: ['cookie', tab, name] }, function(m) { return m.result; }); },
25
- localStorage: function(tab, key) { return _vfsCall('dip-jsh', { op: 'browser', args: ['localStorage', tab, key] }, function(m) { return m.result; }); },
26
- fetch: function(tab, url, opts) { return _vfsCall('dip-jsh', { op: 'browser', args: ['fetch', tab, url, opts || {}] }, function(m) { return m.result; }); }
27
- },
28
- fetchToFile: function(url, path) {
29
- return _vfsCall('dip-jsh', { op: 'fetchToFile', args: [url, path] }, function(m) { return m.result; });
30
- }`,st=`,
31
- _device: function(channel, op, args) {
32
- return _vfsCall('dip-device-op',
33
- { channel: channel, op: op, args: args || [] },
34
- function(m) { return m.result; });
35
- },
36
- hid: {
37
- list: function() { return _vfsCall('dip-device-op', { channel: 'hid', op: 'list', args: [] }, function(m) { return m.result; }); },
38
- request: function(filters) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
39
- open: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
40
- close: function(handle) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
41
- sendReport: function(handle, reportId, data) { return _vfsCall('dip-device-op', { channel: 'hid', op: 'sendReport', args: [handle, reportId, data] }, function(m) { return m.result; }).then(function() {}); },
42
- on: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.add(cb); },
43
- off: function(event, cb) { if (event === 'inputreport') _hidInputReportListeners.delete(cb); }
44
- },
45
- serial: {
46
- list: function() { return _vfsCall('dip-device-op', { channel: 'serial', op: 'list', args: [] }, function(m) { return m.result; }); },
47
- request: function(filters) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
48
- open: function(handle, options) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'open', args: [handle, options] }, function(m) { return m.result; }).then(function() {}); },
49
- close: function(handle) { return _vfsCall('dip-device-op', { channel: 'serial', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
50
- },
51
- usb: {
52
- list: function() { return _vfsCall('dip-device-op', { channel: 'usb', op: 'list', args: [] }, function(m) { return m.result; }); },
53
- request: function(filters) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'request', args: [filters || []] }, function(m) { return m.result; }); },
54
- open: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'open', args: [handle] }, function(m) { return m.result; }).then(function() {}); },
55
- close: function(handle) { return _vfsCall('dip-device-op', { channel: 'usb', op: 'close', args: [handle] }, function(m) { return m.result; }).then(function() {}); }
56
- }`;function ct(e){return`(function() {
57
- var _cbId = 0;
58
- var _callbacks = {};
59
- var _hidInputReportListeners = new Set();
60
-
61
- function _vfsCall(type, params, extractResult) {
62
- return new Promise(function(resolve, reject) {
63
- var id = ++_cbId;
64
- _callbacks[id] = function(msg) {
65
- if (msg.error) reject(new Error(msg.error));
66
- else resolve(extractResult ? extractResult(msg) : undefined);
67
- };
68
- var m = { type: type, id: id };
69
- if (params) { for (var k in params) m[k] = params[k]; }
70
- parent.postMessage(m, '*');
71
- });
72
- }
73
-
74
- window.slicc = window.bridge = {
75
- lick: function(event) {
76
- var action = typeof event === 'string' ? event : event.action;
77
- var data = typeof event === 'string' ? undefined : ('data' in event ? event.data : event);
78
- parent.postMessage({ type: 'dip-lick', action: action, data: data }, '*');
79
- },
80
- /* Read-only VFS access. Mirrors the sprinkle bridge so dips can
81
- check onboarding markers, profiles, etc. without a parent-side
82
- handshake. */
83
- readFile: function(path) {
84
- return _vfsCall('dip-readfile', { path: path }, function(m) { return m.content; });
85
- },
86
- exists: function(path) {
87
- return _vfsCall('dip-exists', { path: path }, function(m) { return m.exists; });
88
- },
89
- stat: function(path) {
90
- return _vfsCall('dip-stat', { path: path }, function(m) { return m.stat; });
91
- }${e?at:``}${e?ot:``}${e?st:``}
92
- };
93
- function reportHeight() {
94
- parent.postMessage({ type: 'dip-height',
95
- height: document.documentElement.scrollHeight }, '*');
96
- }
97
- window.addEventListener('message', function(e) {
98
- if (!e.data || typeof e.data.type !== 'string') return;
99
- if (e.data.type === 'slicc-theme') {
100
- document.documentElement.classList.toggle('theme-light', !!e.data.isLight);
101
- return;
102
- }
103
- /* Pushed device events (currently 'hid:inputreport'). The host
104
- attaches the underlying listener on slicc.hid.open(handle) for
105
- this dip; teardown happens automatically on dispose. */
106
- if (e.data.type === 'dip-device-event' && e.data.channel === 'hid:inputreport') {
107
- _hidInputReportListeners.forEach(function(cb) {
108
- try { cb(e.data.payload); } catch(ex) {}
109
- });
110
- return;
111
- }
112
- /* VFS callback responses target the originating call by id. */
113
- if (e.data.id && _callbacks[e.data.id]) {
114
- var cb = _callbacks[e.data.id];
115
- delete _callbacks[e.data.id];
116
- cb(e.data);
117
- return;
118
- }
119
- /* Forward any other slicc-* message to in-page listeners via a
120
- CustomEvent. Dips can opt in with
121
- window.addEventListener('slicc-message', (ev) => ev.detail). */
122
- if (e.data.type.indexOf('slicc-') === 0) {
123
- try {
124
- document.dispatchEvent(new CustomEvent('slicc-message', { detail: e.data }));
125
- } catch (ex) {}
126
- }
127
- });
128
- window.addEventListener('load', function() {
129
- reportHeight();
130
- new ResizeObserver(reportHeight).observe(document.body);
131
- });
132
- /* Support data-action attributes (Tool UI compat) — auto-lick on click.
133
- Also intercept <a href> clicks and relay to the parent so links open
134
- despite the iframe sandbox blocking top-level navigation. */
135
- document.addEventListener('click', function(e) {
136
- var el = e.target;
137
- while (el && el !== document.body) {
138
- if (el.dataset && el.dataset.action) {
139
- var actionData = el.dataset.actionData;
140
- if (actionData) { try { actionData = JSON.parse(actionData); } catch(ex) {} }
141
- /* Picker hint (e.g. data-picker="directory") needs the parent to
142
- run File System Access API on the click activation chain.
143
- Forward as a separate message so the parent can run
144
- showDirectoryPicker, stash the handle in IDB, then dispatch
145
- the lick with the IDB key. */
146
- var picker = el.dataset.picker;
147
- if (picker) {
148
- parent.postMessage({
149
- type: 'dip-picker-action',
150
- action: el.dataset.action,
151
- data: actionData || null,
152
- picker: picker,
153
- }, '*');
154
- } else {
155
- window.slicc.lick({ action: el.dataset.action, data: actionData || null });
156
- }
157
- e.preventDefault();
158
- e.stopPropagation();
159
- return;
160
- }
161
- if (el.tagName === 'A' && el.getAttribute('href')) {
162
- var href = el.getAttribute('href');
163
- /* Allow in-iframe anchor navigation (#foo). Skip javascript: for safety. */
164
- if (href.charAt(0) === '#') return;
165
- if (/^javascript:/i.test(href)) { e.preventDefault(); return; }
166
- /* Resolve relative URLs against the iframe's base. */
167
- var resolved;
168
- try { resolved = new URL(href, document.baseURI).href; } catch(ex) { resolved = href; }
169
- parent.postMessage({ type: 'dip-open-link', url: resolved }, '*');
170
- e.preventDefault();
171
- e.stopPropagation();
172
- return;
173
- }
174
- el = el.parentElement;
175
- }
176
- });
177
- })();`}var lt=`html,body{margin:0;padding:0;overflow:hidden;background:transparent;box-sizing:border-box}
178
- *,*::before,*::after{box-sizing:inherit}
179
- /* Vertical breathing room around dip content. Horizontal padding is owned
180
- by the dip's own content (e.g. .sprinkle-action-card__body) so shtml
181
- widgets that already pad themselves don't end up double-indented. The
182
- ResizeObserver on document.body reports the post-padding scrollHeight
183
- correctly, so auto-height continues to work. The .sprinkle-inline rule
184
- (set on the iframe body) carries 2px of horizontal padding so the 1px
185
- focus ring (box-shadow:0 0 0 1px on inputs/select below) doesn't get
186
- clipped at the iframe paint boundary. */
187
- body{padding:12px 0;font-family:var(--s2-font-family, sans-serif);font-size:13px;color:var(--s2-content-default)}
188
- .sprinkle-inline{padding:var(--s2-spacing-100) 2px}
189
- .sprinkle-inline .sprinkle-btn{padding:4px 12px;font-size:12px;height:28px;box-shadow:none}
190
- .sprinkle-inline .sprinkle-btn:not([class*="sprinkle-btn--"]){background:var(--s2-bg-elevated)}
191
- .sprinkle-inline .sprinkle-card{box-shadow:none;margin:0}
192
- .sprinkle-inline .sprinkle-action-card{margin:0;width:100%}
193
- .sprinkle-inline .sprinkle-action-card .sprinkle-table{width:100%}
194
- .sprinkle-inline .sprinkle-grid{width:100%}
195
- input[type="range"]{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--s2-gray-300);border-radius:2px;outline:none;cursor:default}
196
- input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
197
- input[type="range"]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--s2-accent);cursor:default;border:2px solid var(--s2-bg-base)}
198
- input[type="text"],input[type="number"],textarea{width:100%;padding:7px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;box-sizing:border-box}
199
- input[type="text"]:focus,input[type="number"]:focus,textarea:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
200
- input[type="text"]::placeholder,textarea::placeholder{color:var(--s2-content-disabled,var(--s2-gray-400))}
201
- select{padding:6px 12px;font-size:13px;font-family:var(--s2-font-family,sans-serif);color:var(--s2-content-default);background:var(--s2-bg-layer-2);border:1px solid var(--s2-border-subtle,var(--s2-gray-300));border-radius:8px;outline:none;cursor:default}
202
- select:focus{border-color:var(--s2-accent);box-shadow:0 0 0 1px var(--s2-accent)}
203
- button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:4px 12px;border:1px solid var(--s2-border-default,var(--s2-gray-300));border-radius:9999px;background:transparent;color:var(--s2-content-default);font-size:12px;font-weight:700;font-family:var(--s2-font-family,sans-serif);cursor:default;transition:background 130ms ease}
204
- button:hover{background:color-mix(in srgb,var(--s2-content-default) 6%,transparent)}
205
- button:disabled{opacity:0.4;pointer-events:none}
206
- canvas{display:block;width:100%;border-radius:8px}
207
- mark{background:color-mix(in srgb,var(--s2-accent) 25%,transparent);color:inherit;border-radius:2px;padding:0 2px}
208
- .c-purple{background:#3C3489;color:#EEEDFE}.c-teal{background:#085041;color:#E1F5EE}
209
- .c-coral{background:#712B13;color:#FAECE7}.c-pink{background:#72243E;color:#FBEAF0}
210
- .c-gray{background:#444441;color:#F1EFE8}.c-blue{background:#0C447C;color:#E6F1FB}
211
- .c-amber{background:#633806;color:#FAEEDA}.c-red{background:#791F1F;color:#FCEBEB}
212
- .c-green{background:#27500A;color:#EAF3DE}`,ut=`(function(){
213
- window.addEventListener('message', function(e){
214
- if (!e.data || e.data.type !== 'dip-draft-update') return;
215
- var content = typeof e.data.content === 'string' ? e.data.content : '';
216
- document.body.innerHTML = content;
217
- if (window.lucide && typeof window.lucide.createIcons === 'function') {
218
- try { window.lucide.createIcons(); } catch(ex){}
219
- }
220
- });
221
- })();`;function dt(e,t,n=!1){let r=Je(),i=Qe()?` class="theme-light"`:``,a=t||e.includes(`<slicc-editor`),o=t||e.includes(`<slicc-diff`),s=t?`<script>${ut}<\/script>`:``;return`<!DOCTYPE html>
222
- <html${i}><head>
223
- <meta charset="utf-8">
224
- <style>${r}</style>
225
- <style>${lt}</style>
226
- <script>${ct(n&&!t)}<\/script>
227
- ${s}
228
- ${a?`<script src="/slicc-editor.js"><\/script>`:``}
229
- ${o?`<script src="/slicc-diff.js"><\/script>`:``}
230
- <script src="/lucide-icons.js"><\/script>
231
- </head>
232
- <body class="sprinkle-inline">${e}</body></html>`}var T=new Set;function ft(e){if(typeof e?.type!=`string`||e.type.indexOf(`slicc-`)!==0)throw Error(`broadcastToDips: payload.type must start with 'slicc-'`);for(let t of T)try{t.postMessage(e,`*`)}catch{}}var E;function pt(e){E=e}function D(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function mt(e,t){let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];return t?.model&&i.push(`--model`,D(t.model)),t?.thinking&&i.push(`--thinking`,D(t.thinking)),t?.readOnly&&i.push(`--read-only`,D(t.readOnly)),i.push(D(n),D(r),D(e)),i.join(` `)}async function O(e){if(!E)return{stdout:``,stderr:`exec: shell bridge not available
233
- `,exitCode:127};try{return await E(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function ht(e,t){let n=await O(mt(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function gt(e,t){let n=await Xe(O,e,t);if(e===`fetch`){let e=n,t=atob(e.bodyBase64),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return{...e,body:new TextDecoder(`utf-8`).decode(r)}}return n}var k=new WeakMap;function _t(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function vt(e,t){let n=k.get(e);if(n||(n=new Map,k.set(e,n)),n.has(t))return;let r=await pe(se(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);_t(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function yt(e,t){let n=k.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&k.delete(e)}function bt(e){let t=k.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}k.delete(e)}}function xt(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}if(Array.isArray(e))return new Uint8Array(e);throw Error(`expected Uint8Array, ArrayBuffer, or number[]`)}async function St(e,t,n){let r=se();switch(t){case`list`:{let e=oe();if(!e)throw Error(`WebHID is unavailable in this browser`);return ge(r,e)}case`request`:{let e=oe();if(!e)throw Error(`WebHID is unavailable in this browser`);return Ee(r,e,n[0]??[])}case`info`:return _e(r,n[0]);case`open`:{let t=n[0];return await me(r,t),await vt(e,t),{ok:!0}}case`close`:{let t=n[0];return await yt(e,t),await be(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=xt(n[2]);return await Te(r,e,t,i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function Ct(e,t){let n=ce();switch(e){case`list`:{let e=le();if(!e)throw Error(`Web Serial is unavailable in this browser`);return fe(n,e)}case`request`:{let e=le();if(!e)throw Error(`Web Serial is unavailable in this browser`);return ve(n,e,t[0]??[])}case`info`:return we(n,t[0]);case`open`:{let e=t[0];return await de(n,e,t[1]??{baudRate:9600}),{ok:!0}}case`close`:return await ue(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function wt(e,t){let n=De();switch(e){case`list`:{let e=Oe();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Se(n,e)}case`request`:{let e=Oe();if(!e)throw Error(`WebUSB is unavailable in this browser`);return ye(n,e,t[0]??[])}case`info`:return he(n,t[0]);case`open`:return await Ce(n,t[0]),{ok:!0};case`close`:return await xe(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function Tt(e,t,n,r){switch(t){case`hid`:return St(e,n,r);case`serial`:return Ct(n,r);case`usb`:return wt(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function A(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!w.has(e))return n({type:`dip-device-op-response`,error:`device access not allowed for this dip`}),!0;let r=t.channel;if(r!==`hid`&&r!==`serial`&&r!==`usb`)return n({type:`dip-device-op-response`,error:`unknown device channel '${r}'`}),!0;try{n({type:`dip-device-op-response`,result:await Tt(e,r,typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-device-op-response`,error:e instanceof Error?e.message:String(e)})}return!0}async function Et(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!w.has(e))return n({type:`${t.type}-response`,error:`exec not allowed for this dip`}),!0;if(t.type===`dip-exec`)return n({type:`dip-exec-response`,result:await O(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await ht(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await gt(typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-jsh-response`,error:e instanceof Error?e.message:String(e)})}return!0}return!1}function j(e,t,n,r=!1){let i=dt(t,!1,r);if($e)return It(e,i,n,r);let a=document.createElement(`iframe`);a.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),a.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,a.srcdoc=i,e.appendChild(a),a.contentWindow&&(b(a.contentWindow),T.add(a.contentWindow),r&&w.add(a.contentWindow)),a.addEventListener(`load`,()=>{b(a.contentWindow),a.contentWindow&&(T.add(a.contentWindow),r&&w.add(a.contentWindow)),Ye()&&qe(a)},{once:!0});let o=e=>{if(e.source!==a.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?a.style.height=t.height+`px`:t.type===`dip-open-link`?Ot(t.url):t.type===`dip-picker-action`?M(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?Dt(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?Et(a.contentWindow,t):t.type===`dip-device-op`&&A(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(Ye()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),qe(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),Ze(a.contentWindow),a.contentWindow&&(T.delete(a.contentWindow),w.delete(a.contentWindow),bt(a.contentWindow)),a.remove()}}}async function Dt(e,t){if(!e||typeof t.id!=`number`)return!1;let n=typeof t.path==`string`?t.path:``,r=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!w.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!it(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await C(n,!0);return e===null?(r({type:`dip-readfile-response`,error:`Read failed`}),!0):(r({type:`dip-readfile-response`,content:typeof e==`string`?e:new TextDecoder().decode(e)}),!0)}if(t.type===`dip-exists`)return r({type:`dip-exists-response`,exists:await C(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await C(n,!1);return e===null?(r({type:`dip-stat-response`,error:`Stat failed`}),!0):(r({type:`dip-stat-response`,stat:{isFile:!0,isDirectory:!1,size:typeof e==`string`?e.length:e.byteLength,mtimeMs:0}}),!0)}return!1}function Ot(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}function kt(e,t){let n=[],r=e.querySelectorAll(`pre > code.language-shtml`);for(let e of r){let r=e.parentElement,i=e.textContent??``,a=document.createElement(`div`);a.className=`msg__dip`,r.replaceWith(a),n.push(j(a,i,t,!1))}let i=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of i){let r=e.getAttribute(`src`);if(!r)continue;let i=document.createElement(`div`);i.className=`msg__dip`,e.alt&&i.setAttribute(`title`,e.alt),e.replaceWith(i);let a=new AbortController,o=null,s=!1;n.push({dispose(){s=!0,a.abort(),o&&=(o.dispose(),null)}});let c=r.startsWith(`/`),l=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,u=c?`/preview${r}`:r,d=async()=>{if(c&&!l)return x(r,a.signal);let e;try{e=await fetch(u,{signal:a.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(c)return x(r,a.signal);throw e}if(e.ok)return e.text();if(c)return x(r,a.signal);throw Error(`HTTP ${e.status}`)},f=c&&rt(r);d().then(e=>{s||!i.isConnected||(o=j(i,e,t,f))}).catch(e=>{s||e?.name===`AbortError`||(i.textContent=`Failed to load dip: ${r}`,i.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return n}function At(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function M(e,t){let n=e.data??null,r=Array.isArray(n?.filters)?n.filters:[];if($e){await jt(e.picker,e.action,r,t);return}switch(e.picker){case`directory`:await Mt(e.action,t);return;case`usb-device`:await Nt(e.action,r,t);return;case`serial-port`:await Pt(e.action,r,t);return;case`hid-device`:await Ft(e.action,r,t);return;default:t(e.action,e.data);return}}async function jt(t,n,r,i){try{switch(t){case`directory`:{let{openMountPickerPopup:t}=await e(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n);return{openMountPickerPopup:e}},__vite__mapDeps([0,1,2,3,4])),r=await t();r.cancelled?i(n,{cancelled:!0}):r.error?i(n,{error:r.error}):r.idbKey?i(n,{handleInIdb:!0,idbKey:r.idbKey,dirName:r.dirName??``}):i(n,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:t}=await e(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-DJjZemi7.js`).then(e=>e.t);return{openUsbPickerPopup:e}},__vite__mapDeps([5,1,3,4])),a=await t(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:t}=await e(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-bJGym01W.js`).then(e=>e.t);return{openSerialPickerPopup:e}},__vite__mapDeps([6,1,3,4])),a=await t(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:t}=await e(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-Cp7Sp5N-.js`).then(e=>e.t);return{openHidPickerPopup:e}},__vite__mapDeps([7,1,3,4])),a=await t(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}default:i(n,{error:`unknown picker kind: ${t??`(none)`}`});return}}catch(e){i(n,{error:e instanceof Error?e.message:String(e)})}}async function N(e,t){let n=ae();if(!n)return null;let r={current:null},i=t=>{let n=t.detail;n.kind===e&&(r.current=n)};n.addEventListener(`slicc-permission-deny`,i);try{let i=await n.request(e,t);if(i)return{ok:!0,grant:i};let a=r.current;return{ok:!1,reason:a?.reason??`error`,...a?.message?{message:a.message}:{}}}finally{n.removeEventListener(`slicc-permission-deny`,i)}}function P(e,t,n,r){if(t.reason===`cancelled`){r(e,{cancelled:!0});return}if(t.reason===`unavailable`){r(e,{error:n});return}r(e,{error:t.message??`unknown error`})}async function Mt(t,n){let r=await N(`filesystem`);if(!r){n(t,{error:`File System Access API not available`});return}if(!r.ok){P(t,r,`File System Access API not available`,n);return}let i=r.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:t}=await e(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-Bs1o43Z5.js`).then(e=>e.n);return{storePendingHandle:e}},__vite__mapDeps([0,1,2,3,4]));await t(a,i)}catch(e){n(t,{error:`failed to store directory handle: ${e instanceof Error?e.message:String(e)}`});return}n(t,{handleInIdb:!0,idbKey:a,dirName:i.name})}async function Nt(t,n,r){let i=await N(`usb`,{filters:n});if(!i){r(t,{error:`WebUSB is not available`});return}if(!i.ok){P(t,i,`WebUSB is not available`,r);return}let a=i.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await e(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry-k6vTKonT.js`).then(e=>e.a);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([8,1])),c=o().register(a.device);r(t,{granted:!0,handle:c,info:s(c,a.device)})}async function Pt(t,n,r){let i=await N(`serial`,n.length?{filters:n}:void 0);if(!i){r(t,{error:`Web Serial is not available`});return}if(!i.ok){P(t,i,`Web Serial is not available`,r);return}let a=i.grant,o=await e(()=>import(`./serial-port-registry-DsPZvGpT.js`).then(e=>e.o),__vite__mapDeps([9,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);r(t,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function Ft(t,n,r){let i=await N(`hid`,{filters:n});if(!i){r(t,{error:`WebHID is not available`});return}if(!i.ok){P(t,i,`WebHID is not available`,r);return}let a=i.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await e(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-6w-g8ZpF.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([10,1])),c=o(),l=a.devices.map(e=>s(c.register(e),e)),u=l[0];r(t,{granted:!0,handle:u.handle,info:u,devices:l})}function It(e,t,n,r=!1){let i=document.createElement(`iframe`);i.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),i.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,e.appendChild(i);let a=e=>{if(e.source!==i.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?i.style.height=t.height+`px`:t.type===`dip-open-link`?Ot(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?Dt(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?Et(i.contentWindow,t):t.type===`dip-device-op`?A(i.contentWindow,t):t.type===`dip-picker-action`&&M(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{b(i.contentWindow),i.contentWindow&&(T.add(i.contentWindow),r&&w.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:Qe()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),Ze(i.contentWindow),i.contentWindow&&(T.delete(i.contentWindow),w.delete(i.contentWindow),bt(i.contentWindow)),i.remove()}}}var F=c(`cone-memory-budget`),Lt=4e3,Rt=2e3,zt=1.25,I=`/workspace/CLAUDE.md`,Bt=`/sessions/index.json`,Vt=4096,Ht=/^## Auto-extracted/m,Ut=`Consolidate the auto-extracted memory bullets below into a single tighter set of durable memories.
234
-
235
- Rules:
236
- - Output ONLY a single \`## Auto-extracted (consolidated)\` heading followed by markdown bullets.
237
- - One fact per bullet. Drop duplicates and superseded facts. Keep the most recent / specific phrasing.
238
- - Preserve concrete identifiers (file paths, URLs, IDs, names) verbatim.
239
- - Be terse. Aim well under the original size.
240
- - Do NOT add preamble, commentary, or any heading other than the single consolidated one.`;function Wt(e){return Math.round(Lt+Rt*Math.log2((Number.isFinite(e)&&e>=0?e:0)+2))}function Gt(e){let t=Ht.exec(e);if(!t)return{header:e,autoExtracted:``};let n=t.index;return{header:e.slice(0,n),autoExtracted:e.slice(n)}}async function Kt(e){try{let t=await e.readFile(Bt,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r.length:0}catch{return 0}}async function qt(e){let{header:n,autoExtracted:r}=Gt(e.currentContent);if(!r.trim())return e.currentContent;let i=`You are a memory consolidation assistant. You are given a markdown file's "auto-extracted" section — a list of memory bullets accumulated across sessions of an AI coding assistant. Your job is to rewrite that section as a tighter, deduplicated set of durable memories that fits well within ${e.budget} characters.
241
-
242
- <auto-extracted>
243
- ${r}
244
- </auto-extracted>`,a={role:`user`,content:[{type:`text`,text:Ut}],timestamp:Date.now()},o=await t(e.model,{systemPrompt:i,messages:[a]},{apiKey:e.apiKey,maxTokens:Vt,headers:e.headers,signal:e.signal});if(o.stopReason===`error`)throw Error(`Restructure call failed: ${o.errorMessage||`Unknown error`}`);let s=o.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
245
- `).trim();if(!s)throw Error(`Restructure call returned empty content`);return`${n}${n.length===0||n.endsWith(`
246
- `)?``:`
247
- `}${s}\n`}async function Jt(e){if(!e.model||!e.apiKey)return{restructured:!1,reason:`no-llm`};let t=``;try{let n=await e.vfs.readFile(I,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{return{restructured:!1,reason:`missing-file`}}let n=await Kt(e.vfs),r=Wt(n),i=r*zt;if(t.length<=i)return{restructured:!1,reason:`under-threshold`};F.info(`Cone memory over threshold — restructuring`,{size:t.length,budget:r,threshold:i,sessionCount:n});try{let n=await qt({currentContent:t,budget:r,model:e.model,apiKey:e.apiKey,headers:e.headers,signal:e.signal});return await e.vfs.writeFile(I,n),F.info(`Cone memory restructured`,{before:t.length,after:n.length}),{restructured:!0}}catch(e){return F.warn(`Cone memory restructure failed — leaving appended content in place`,{error:e instanceof Error?e.message:String(e)}),{restructured:!1,reason:`error`}}}function L(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,r=n.role===`user`?Me(n.content):n.content;if(t+=`## ${e}\n${r}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${i(e)}`).join(`
248
- `)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var R=c(`session-freezer`),Yt=4,Xt=2048,Zt=40,z=`/sessions`,B=`/sessions/index.json`;async function Qt(e){let t=await an(e.sessionStore);if(!t||t.messages.length<Yt)return R.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=on(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);await tn(e,n,i);let a=await nn(e,n,i)||fn(t.messages);return await rn(e,t,a,r,i?await $t(e,a):void 0)}async function $t(t,n){try{return en(await(t.pickIcon??(await e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DsLcfgFd.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([11,1,12,13,14,15,16,17,18,2,19,20,4,21,22,23,24,25,26,27,28,29,30,31]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){R.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function en(e){if(e)return ke(e)?e:void 0}async function tn(e,t,n){if(!n){R.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await o({messages:t,instruction:s,model:e.model,apiKey:e.apiKey,maxTokens:Xt,headers:e.headers})}catch(e){R.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){R.info(`Memory extraction returned no durable memories`);return}try{await hn(e.vfs,r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),R.info(`Memory extracted and appended on new-session`)}catch(e){R.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function nn(e,t,n){if(!n)return``;try{return dn(await o({messages:t,instruction:a,model:e.model,apiKey:e.apiKey,maxTokens:Zt,headers:e.headers}))}catch(e){return R.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function rn(e,t,n,r,i){let a=new Date().toISOString(),o=r===`quick`?`pending-${mn()}.md`:`${a.replace(/[:.]/g,`-`)}-${pn(n)}.md`,s={id:t.id,title:n,frozenAt:a,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:t.messages},c=un(s),l={filename:o,title:n,frozenAt:a,messageCount:t.messages.length,...i?{icon:i}:{},...r===`quick`?{pendingEnrichment:!0}:{}};try{return await V(e.vfs,z),await e.vfs.writeFile(`${z}/${o}`,c),await gn(e.vfs,l),await e.vfs.flush(),R.info(`Cone session frozen`,{filename:o,title:n,messageCount:t.messages.length}),{...l,archive:s}}catch(e){return R.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}async function an(e){try{return await e.load(`session-cone`)}catch(e){return R.warn(`Failed to load session-cone`,{error:e instanceof Error?e.message:String(e)}),null}}function on(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}var sn=`<!-- slicc:session-data
249
- `,cn=`
250
- -->`;function ln(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),t})}function un(e){let t=`---\nid: ${e.id}\ntitle: ${JSON.stringify(e.title)}\nfrozenAt: ${e.frozenAt}\ncreatedAt: ${e.createdAt}\nupdatedAt: ${e.updatedAt}\nmessageCount: ${e.messageCount}\n---\n\n`,n=`${sn}${JSON.stringify(ln(e.messages)).replace(/-->/g,`-- >`)}${cn}\n\n`,r=`# ${e.title}\n\n`;return t+n+r+L(e.messages)}function dn(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}function fn(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function pn(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)||`session`}function mn(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}async function V(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function hn(e,t,n,r){let i=`/workspace/CLAUDE.md`,a=``;try{let t=await e.readFile(i,{encoding:`utf-8`});a=typeof t==`string`?t:new TextDecoder().decode(t)}catch{await V(e,`/workspace`)}let o=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${n})`,s=`${a.length===0||a.endsWith(`
251
- `)?``:`
252
- `}\n${o}\n\n${t}\n`;await e.writeFile(i,a+s);try{await Jt({vfs:e,model:r?.model,apiKey:r?.apiKey,headers:r?.headers,signal:r?.signal})}catch(e){R.warn(`Cone memory budget step threw (append already committed)`,{error:e instanceof Error?e.message:String(e)})}}async function gn(e,t){let n=[];try{let t=await e.readFile(B,{encoding:`utf-8`}),r=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(r);Array.isArray(i)&&(n=i)}catch{}let r=[t,...n.filter(e=>e.filename!==t.filename)];await e.writeFile(B,JSON.stringify(r,null,2))}async function _n(e){try{let t=await e.readFile(B,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function H(e){return`${z}/${e.filename}`}async function vn(e,t,n){if(!t.pendingEnrichment)return null;let r=await bn(e,t);if(r===null)return null;let i=xn(t,r);if(i===null)return null;let a=await Sn(t,i,n);if(a===null)return null;let o=await yn(n,a.newTitle);return await Cn(e,t,a.bullets,n),await wn(e,t,r,a.newTitle,o)}async function yn(e,t){if(e.pickIcon)try{return await en(await e.pickIcon({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){R.warn(`Enrichment icon pick failed (continuing without icon)`,{error:e instanceof Error?e.message:String(e)});return}}async function bn(e,t){try{let n=await e.readFile(H(t),{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?R.info(`Pending archive missing — treating as already enriched`,{filename:t.filename}):R.warn(`Failed to read pending archive (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}}function xn(e,t){let n;try{n=U(t).messages}catch(t){return R.warn(`Failed to parse pending archive — leaving entry intact`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return n.length===0?(R.info(`Pending archive has no messages — skipping enrichment`,{filename:e.filename}),null):on(n)}async function Sn(e,t,n){let r=``;try{r=await o({messages:t,instruction:s,model:n.model,apiKey:n.apiKey,maxTokens:Xt,headers:n.headers})}catch(t){return R.warn(`Enrichment memory call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}let i=``;try{i=dn(await o({messages:t,instruction:a,model:n.model,apiKey:n.apiKey,maxTokens:Zt,headers:n.headers}))}catch(t){return R.warn(`Enrichment title call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return i?{bullets:r,newTitle:i}:(R.info(`Enrichment title call returned empty — entry stays pending`,{filename:e.filename}),null)}async function Cn(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await hn(e,i,`pending-enrichment`,{model:r.model,apiKey:r.apiKey,headers:r.headers})}catch(e){R.warn(`Enrichment memory append failed (continuing with title rewrite)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}async function wn(e,t,n,r,i){let a=H(t),o=Tn(n,r),s=`${t.frozenAt.replace(/[:.]/g,`-`)}-${pn(r)}.md`,c=`${z}/${s}`;try{await V(e,z),await e.writeFile(c,o)}catch(e){return R.warn(`Enrichment write failed (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}let l=i??t.icon,u={filename:s,title:r,frozenAt:t.frozenAt,messageCount:t.messageCount,...l?{icon:l}:{}};try{await Dn(e,t.filename,u)}catch(e){return R.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}if(c!==a)try{await e.rm(a)}catch(e){R.info(`Stale pending archive cleanup failed (harmless)`,{oldPath:a,error:e instanceof Error?e.message:String(e)})}try{await e.flush()}catch{}return R.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:s,title:r}),u}function Tn(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}var En=Promise.resolve();async function Dn(e,t,n){let r=async()=>{let r=[];try{let t=await e.readFile(B,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(n);Array.isArray(i)&&(r=i)}catch{}let i=r.findIndex(e=>e.filename===t),a;i===-1?a=[n,...r.filter(e=>e.filename!==n.filename)]:(a=r.slice(),a[i]=n,a=a.filter((e,t)=>t===i||e.filename!==n.filename)),await e.writeFile(B,JSON.stringify(a,null,2))},i=En.then(r,r);return En=i.then(()=>void 0,()=>void 0),i}function U(e){let t=e,n=`Untitled`,r=t.match(/^---\n([\s\S]*?)\n---\n+/);if(r){t=t.slice(r[0].length);let e=r[1].match(/^title:\s*(.+?)\s*$/m);if(e){let t=e[1].trim();if(t.startsWith(`"`))try{let e=JSON.parse(t);typeof e==`string`&&(n=e)}catch{n=t.replace(/^"|"$/g,``)}else n=t}}let i=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(i){try{let e=i[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:On(t)}}function On(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}var kn=`__slicc_binary__`,An=`b64`;function jn(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[kn]===An&&typeof t.data==`string`}function W(e){if(e instanceof Uint8Array)return{[kn]:An,data:u(e)};if(Array.isArray(e))return e.map(W);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=W(r);return t}return e}function G(e){if(jn(e))return l(e.data);if(Array.isArray(e))return e.map(G);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=G(r);return t}return e}var Mn=c(`panel-transport`);function Nn(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Pn(){return{onMessage:e=>{let t=(t,n,r)=>(Nn(t)&&e(G(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=W(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{Mn.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var K=c(`offscreen-client`),Fn=class{eventListeners=new Set;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=new Map;transport;_selectedScoopJid=null;get selectedScoopJid(){return this._selectedScoopJid}scoopSelectedListeners=new Set;onScoopSelected(e){return this.scoopSelectedListeners.add(e),()=>{this.scoopSelectedListeners.delete(e)}}setSelectedScoopJid(e){if(this._selectedScoopJid!==e&&(this._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){K.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??Pn(),this.setupMessageListener()}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}createAgentHandle(){return{sendMessage:(e,t,n)=>{if(!this.selectedScoopJid){this.emitToUI({type:`error`,error:`No scoop selected`});return}this.send({type:`user-message`,scoopJid:this.selectedScoopJid,text:e,attachments:n,messageId:t??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e){if(!e.isCone)throw Error(`OffscreenClient.registerScoop is cone-only; use scoop_scoop for non-cone scoops`);this.scoops.find(t=>t.name===e.name)||(this.scoops.push(e),this.scoopStatuses.set(e.jid,`initializing`)),this.send({type:`cone-create`,name:e.name})}async unregisterScoop(e){this.send({type:`scoop-drop`,scoopJid:e}),this.scoops=this.scoops.filter(t=>t.jid!==e),this.scoopStatuses.delete(e)}createScoopTab(e){}async getGlobalMemory(){if(!this.localFs)return``;try{let e=await this.localFs.readFile(`/shared/CLAUDE.md`,{encoding:`utf-8`});return typeof e==`string`?e:new TextDecoder().decode(e)}catch{return``}}getScoopContext(e){if(this.localFs)return{getFS:()=>this.localFs}}getSharedFS(){return this.localFs}stopScoop(e){this.send({type:`abort`,scoopJid:e})}async clearQueuedMessages(e){}async deleteQueuedMessage(e,t){this.send({type:`delete-queued-message`,scoopJid:e,messageId:t})}updateModel(){this.send({type:`refresh-model`})}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t,n){this.send({type:`set-thinking-level`,scoopJid:e,level:t,effortOverride:n})}async clearAllMessages(){let e=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingClearAcks.set(e,t)});this.send({type:`clear-chat`,requestId:e}),await Promise.race([t,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(e)}clearFilesystem(){this.send({type:`clear-filesystem`})}requestScoopMessages(e){this.send({type:`request-scoop-messages`,scoopJid:e})}async getScoopTranscript(e){let t=`tr-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingTranscriptRequests.set(t,e)});this.send({type:`request-scoop-transcript`,requestId:t,scoopJid:e});let r=await Promise.race([n,new Promise(e=>setTimeout(()=>e(``),5e3))]);return this.pendingTranscriptRequests.delete(t),r}async getMessagesForScoop(e){let t=`cm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingChatMessagesRequests.set(t,e)});this.send({type:`request-scoop-chat-messages`,requestId:t,scoopJid:e});let r=!1,i=await Promise.race([n,new Promise(e=>setTimeout(()=>{r=!0,e([])},5e3))]);return this.pendingChatMessagesRequests.delete(t),r&&K.warn(`getMessagesForScoop timed out`,{scoopJid:e}),i}async getSessionStats(){let e=`st-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingStatsRequests.set(e,t)});this.send({type:`request-session-stats`,requestId:e});let n=await Promise.race([t,new Promise(e=>setTimeout(()=>e(null),5e3))]);return this.pendingStatsRequests.delete(e),n}requestState(){this.send({type:`request-state`});let e=0;this.stateRetryTimer=setInterval(()=>{if(e++,this.ready||e>20){this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null);return}K.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,originLabel:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}sendWebhookEvent(e,t,n){this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n})}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){switch(e.type){case`offscreen-ready`:this.ready?(K.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):K.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`scoop-created`:this.handleScoopCreated(e);break;case`scoop-list`:this.handleScoopList(e);break;case`state-snapshot`:this.handleStateSnapshot(e);break;case`error`:this.handleError(e);break;case`incoming-message`:this.handleIncomingMessage(e);break;case`message-updated`:this.handleMessageUpdated(e);break;case`scoop-messages-replaced`:{let t=e;this.resyncStreamPointer(t.scoopJid,t.messages),this.callbacks.onScoopMessagesReplaced?.(t.scoopJid,t.messages);break}case`scoop-transcript`:{let t=e,n=this.pendingTranscriptRequests.get(t.requestId);n&&(this.pendingTranscriptRequests.delete(t.requestId),n(t.transcript));break}case`scoop-chat-messages`:{let t=e,n=this.pendingChatMessagesRequests.get(t.requestId);n&&(this.pendingChatMessagesRequests.delete(t.requestId),n(t.messages));break}case`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,fills:t.fills,models:t.models??[],scoops:t.scoops??[]}));break}case`tray-runtime-status`:{let t=e;In(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event);break;case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){K.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}break}}terminalEventListeners=new Set;onTerminalEvent(e){return this.terminalEventListeners.add(e),()=>this.terminalEventListeners.delete(e)}resyncStreamPointer(e,t){let n;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.role===`assistant`&&r.isStreaming){n=r.id;break}}n===void 0?this.currentMessageId.delete(e):this.currentMessageId.set(e,n)}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid);break}if(e.scoopJid===this.selectedScoopJid)switch(e.eventType){case`text_delta`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput});break}case`tool_end`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_result`,messageId:t,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError});break}case`tool_ui`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});break}case`tool_ui_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});break}case`response_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&(this.emitToUI({type:`content_done`,messageId:t}),this.currentMessageId.delete(e.scoopJid));break}case`turn_end`:{let t=this.currentMessageId.get(e.scoopJid)??`done-${e.scoopJid}-${q()}`;this.currentMessageId.delete(e.scoopJid),this.emitToUI({type:`turn_end`,messageId:t});break}}}handleScoopStatus(e){this.scoopStatuses.set(e.scoopJid,e.status),this.callbacks.onStatusChange(e.scoopJid,e.status)}handleScoopCreated(e){let t=this.msgScoopToRegistered(e.scoop);this.scoops=this.scoops.filter(e=>e.name!==t.name||e.jid===t.jid),this.scoops.find(e=>e.jid===t.jid)||this.scoops.push(t),this.scoopStatuses.set(t.jid,e.scoop.status),this.callbacks.onScoopCreated(t)}handleScoopList(e){this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){K.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&In(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){e.scoopJid===this.selectedScoopJid&&this.emitToUI({type:`error`,error:e.error})}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}msgScoopToRegistered(e){return{jid:e.jid,name:e.name,folder:e.folder,isCone:e.isCone,type:e.isCone?`cone`:`scoop`,requiresTrigger:!e.isCone,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}}}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){K.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function q(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function In(e,t){Ae({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),v({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function J(e){return!e.includes(`\0`)}function Ln(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!J(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!J(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(J(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Rn(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,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function zn(e){let t=Rn(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function Bn(e,t){let n=Rn(e),r=new Map,i=n.onMessage(async e=>{let i=e;if(i?.type){if(i.type===`cdp-cmd`){let r=e;try{let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(i.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(i.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i);return}}});return()=>{i();for(let[e,n]of r)t.off(e,n);r.clear()}}function Vn(){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 Hn(e){let{worker:t,realCdpTransport:n,callbacks:r}=e,i=e.readyTimeoutMs??3e4,a=e.localStorageSeed??{},o=new MessageChannel,s=new MessageChannel,c=new Fn(r,zn(o.port1));e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Bn(s.port1,n),u=null,d=new Promise((e,t)=>{let n=null,r=null,a=()=>{n!==null&&(clearTimeout(n),n=null)};u=()=>{r!==null&&(o.port1.removeEventListener(`message`,r),r=null),a()},r=t=>{t.data?.type===`kernel-worker-ready`&&(u?.(),e())},o.port1.addEventListener(`message`,r),a(),n=setTimeout(()=>{u?.(),t(Error(`Kernel worker did not signal ready within ${i}ms`))},i)}),f={type:`kernel-worker-init`,kernelPort:o.port2,cdpPort:s.port2,localStorageSeed:a,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null};t.postMessage(f,[o.port2,s.port2]);let p=!1;return{client:c,ready:d,dispose(){if(!p){p=!0,u?.(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),o.port1.close(),s.port1.close()}}}}function Un(e){return Hn({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DYmo_OB4.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,callbacks:e.callbacks,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Vn(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId,onWorkerScriptError:e.onWorkerScriptError})}var Wn=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;function Gn(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`assistant`&&!n.isStreaming&&!n.queued)return n.content}for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t].content;return null}function Kn(e){let t=e.writeText??(e=>navigator.clipboard.writeText(e)),n=document.createElement(`div`);n.className=`wc-copy-row`,n.style.cssText=`display:flex;justify-content:flex-start;margin:-8px 0 14px;`;let r=document.createElement(`slicc-press-button`);r.setAttribute(`tooltip`,`Copy last response · hold to copy chat`),r.setAttribute(`label`,`Copy last response — hold to copy entire chat`),r.setAttribute(`disable-double-click`,``),r.style.cssText=`color:var(--txt-3);cursor:pointer;display:inline-flex;`;let i=document.createRange();r.append(i.createContextualFragment(Wn));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{await t(Gn(e.getMessages())??L([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=L([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function Y(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function qn(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function Jn(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}function Yn(e){return`
253
- <div class="sprinkle-action-card">
254
- <div class="sprinkle-action-card__header">${Jn(qn(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
255
- <div class="sprinkle-action-card__body">Waiting for approval on the leader&hellip;</div>
256
- </div>
257
- `}function Xn(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var Zn=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g=[];#_=[];#v=new Map;#y=null;#b=null;#x=``;#S=!1;#C=!1;#w=`thinking`;#T=0;#E=null;#D=new Set;#O=new Map;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onMessageRendered,this.#a=e.onMessageDisposed,this.#o=e.onTurnComplete,this.#s=e.resolveTelemetryContext,this.#c=e.onQueuedChange,this.#l=e.onQueuedCancel,this.#u=e.onToolUiAction,this.#d=e.readOnlyToolUi??!1,this.#f=e.agent.onEvent(e=>this.#L(e)),this.#h=e=>this.#X(e),this.#e.addEventListener(`slicc-error-retry`,this.#h)}dispose(){this.#f(),this.#e.removeEventListener(`slicc-error-retry`,this.#h);for(let e of[...this.#O.keys()])this.#Y(e)}get processing(){return this.#C}getMessages(){return this.#g.map(e=>({...e}))}setAgent(e){this.#f(),this.#t=e,this.#f=e.onEvent(e=>this.#L(e))}setOnLocalUserMessage(e){this.#p=e}setOnLocalProcessingChange(e){this.#m=e}addUserMessage(e,t){this.#$({id:Y(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#_.map(Xn)}removeQueuedMessage(e){let t=this.#_.filter(t=>t.id!==e);t.length!==this.#_.length&&(this.#_=t,this.#A())}#k(){if(this.#_.length===0)return;let e=this.#_;this.#_=[];for(let t of e)this.#$(t);this.#A()}#A(){this.#c?.(this.#_.map(Xn))}addAssistantMessage(e){this.#$({id:Y(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e){for(let e of this.#v.keys())this.#a?.(e);for(let e of[...this.#O.keys()])this.#Y(e);if(this.#_.length>0){if(this.#l)for(let e of this.#_)try{this.#l(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#_=[],this.#A()}this.#g=Be(e);let t=[...this.#g].reverse().find(e=>e.isStreaming);this.#y=t?.id??null,t&&(this.#b=t.id),this.#x=``,this.#S=!1,this.#v.clear();let n=[],r=``;for(let e of this.#g){let t=new Date(e.timestamp).toDateString();t!==r&&(n.push(Ue(e.timestamp)),r=t);let i=this.#Q(e);this.#v.set(e.id,i),n.push(...i)}let i=this.#e;typeof i.replaceContent==`function`?i.replaceContent(...n):i.replaceChildren(...n),this.#re();for(let e of this.#g)e.isStreaming||this.#i?.(e,this.#v.get(e.id)??[]);this.#I(),this.#ae(),this.#j()}#j(){if(this.#e.getAttribute(`context`)!==`cone`||this.#g.length===0||!h()||this.#C)return;let e=this.#g[this.#g.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#X(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#M(r):r,a={id:Y(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#C?(this.#_.push(a),this.#A()):this.#$(a),this.#t.sendMessage(i,a.id,a.attachments),this.#N();try{let e=n?.dictation?Me(i):i;this.#p?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#M(e){return Ke(e,Ne())}#N(){if(this.#s)try{let e=this.#s();if(!e)return;te(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#g[this.#g.length-1];if(!(i||a?.lickId)&&a&&a.source===`lick`&&a.channel===n){a.lickParts=[...a.lickParts??[a.content],t],a.lickCount=a.lickParts.length,a.content+=`\n\n${t}`,this.#ee(a);return}this.#$({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#C?!0:void 0})}updateLickState(e,t){let n=this.#g.find(t=>t.lickId===e);n&&(n.lickState=t,this.#ee(n))}setProcessing(e){if(this.#C!==e){this.#C=e,e&&(this.#b=null),e&&(this.#T=0,this.#P(`thinking`)),e&&this.#k(),e||this.#I(),this.#n?.(e);try{this.#m?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#F()}}#P(e){this.#w!==e&&(this.#w=e,this.#r?.(e))}#F(){let e=this.#b;if(this.#b=null,!this.#o)return;let t=e?this.#Z(e):null;this.#o(t?{...t}:null)}#I(){let e=this.#g[this.#g.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#E?.remove();return}this.#E??=Kn({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#E)}#L(e){switch(e.type){case`message_start`:this.#R(e.messageId);break;case`content_delta`:this.#z(e.messageId,e.text);break;case`content_done`:this.#V(e.messageId);break;case`tool_use_start`:this.#H(e.messageId,e.toolName,e.toolInput);break;case`tool_result`:this.#U(e.messageId,e.toolName,e.result,e.isError);break;case`tool_ui`:this.#q(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#J(e.requestId);break;case`turn_end`:this.#W(e.messageId);break;case`error`:this.#G(e.error);break;case`screenshot`:case`terminal_output`:break;default:break}}#R(e){this.setProcessing(!0),this.#y=e,this.#b=e,this.#$({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#z(e,t){this.#Z(e)&&(this.#x+=t,!this.#S&&(this.#S=!0,requestAnimationFrame(()=>this.#B(e))))}#B(e){if(this.#S=!1,!this.#x)return;let t=this.#Z(e);t&&(t.content+=this.#x,this.#x=``,this.#ee(t))}#V(e){let t=this.#Z(e);t&&(this.#x&&this.#y===e&&(t.content+=this.#x),this.#x=``,this.#S=!1,t.isStreaming=!1,this.#ee(t))}#H(e,t,n){let r=this.#Z(e);r&&(r.toolCalls=r.toolCalls??[],r.toolCalls.push({id:Y(),name:t,input:n}),this.#T+=1,this.#P(`tool`),this.#ee(r))}#U(e,t,n,r){let i=this.#Z(e),a=[...i?.toolCalls??[]].reverse().find(e=>e.name===t&&e.result===void 0);!i||!a||(a.result=n,a.isError=r,this.#T=Math.max(0,this.#T-1),this.#T===0&&this.#P(`thinking`),this.#ee(i))}#W(e){let t=this.#Z(e);t?.isStreaming&&(t.isStreaming=!1,this.#ee(t)),this.#y=null,this.setProcessing(!1)}#G(e){this.setProcessing(!1),this.#$({id:Y(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#K(e)}#K(e){try{if(ie(e)||re(e)||_(e))return;g(`error-card`,e)}catch{}}#q(e,t,n){this.#Y(t);let r=document.createElement(`div`);if(r.className=`msg__dip`,r.setAttribute(`data-tool-ui-request`,t),(this.#e.inner??this.#e).append(r),this.#d){let e=j(r,Yn(n),()=>{},!1);this.#O.set(t,{instance:e,container:r});return}let i=j(r,n,(e,n)=>{this.#u?.(t,e,n)},!1);this.#O.set(t,{instance:i,container:r}),this.#u?.(t,f,void 0)}#J(e){this.#Y(e)}#Y(e){let t=this.#O.get(e);if(t){this.#O.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#X(e){if(this.#C)return;let t=e.detail?.messageId??null,n=this.#g.length;if(t){let e=this.#g.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#g[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,Y(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#g[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,Y(),i.attachments)}#Z(e){return this.#g.find(t=>t.id===e)}#Q(e){try{return Pe(e)}catch(t){console.error(`[wc-chat] message render failed — degrading to plain bubble`,t);let n=document.createElement(e.role===`assistant`?`slicc-agent-message`:`slicc-user-message`);return n.setAttribute(`text`,String(e.content??``)),[n]}}#$(e){this.#ne(),this.#g.push(e);let t=this.#Q(e);this.#v.set(e.id,t),this.#e.append(...t),this.#re(),e.isStreaming||this.#i?.(e,t),e.role===`user`?this.#ae():this.#oe()}#ee(e){this.#ne(),this.#a?.(e.id);let t=this.#v.get(e.id)??[],n=this.#Q(e),r=t[0]??null,i=r?.parentNode;if(i){for(let e of n)i.insertBefore(e,r);for(let e of t)e.remove()}else this.#e.append(...n);this.#v.set(e.id,n),this.#re(),e.isStreaming||this.#i?.(e,n),this.#oe()}#te(){return this.#e.inner??this.#e}#ne(){Ge(this.#te(),this.#D)}#re(){Le(this.#te(),{openClusterAnchors:this.#D,toolCallLookup:(e,t)=>this.#ie(e,t)})}#ie(e,t){return this.#g.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#ae(){this.#e.scrollTop=this.#e.scrollHeight}#oe(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#ae()}};function Qn(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function $n(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,Qn(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function er(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size===0)return;let n=await X(e.reader);if(n===null||n.length===0)return;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});await e.writer.writeFile(B,JSON.stringify(r,null,2));for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function X(e){let t=await tr(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function tr(e){let t;try{let n=await e.readFile(B,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?{kind:`missing`}:{kind:`fault`}}try{let e=JSON.parse(t);return Array.isArray(e)?{kind:`ok`,entries:e}:{kind:`corrupt`}}catch{return{kind:`corrupt`}}}async function nr(e){let t;try{t=(await e.readDir(`/sessions`)).filter(e=>e.type===`file`&&e.name.endsWith(`.md`)).map(e=>e.name)}catch{return[]}let n=[];for(let r of t)try{let t=await e.readFile(`/sessions/${r}`,{encoding:`utf-8`}),i=(typeof t==`string`?t:new TextDecoder().decode(t)).slice(0,2e3),a=/^title:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??r,o=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(i)?.[1]??new Date(0).toISOString(),s=Number(/^messageCount:\s*(\d+)\s*$/m.exec(i)?.[1]??0);n.push({filename:r,title:a,frozenAt:o,messageCount:s,...r.startsWith(`pending-`)?{pendingEnrichment:!0}:{}})}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function rr(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map($n))}async function ir(e,t){let n=await e.readFile(H(t),{encoding:`utf-8`}),r=U(typeof n==`string`?n:new TextDecoder().decode(n));return{title:r.title||t.title,messages:r.messages}}var ar={".md":`text/markdown`,".txt":`text/plain`,".ts":`text/typescript`,".js":`text/javascript`,".json":`application/json`,".html":`text/html`,".css":`text/css`,".svg":`image/svg+xml`,".png":`image/png`,".jpg":`image/jpeg`,".jpeg":`image/jpeg`,".gif":`image/gif`,".webp":`image/webp`,".mp3":`audio/mpeg`,".wav":`audio/wav`,".ogg":`audio/ogg`,".m4a":`audio/mp4`,".mp4":`video/mp4`,".webm":`video/webm`,".mov":`video/quicktime`};function or(e){return ar[e.slice(e.lastIndexOf(`.`)).toLowerCase()]||`application/octet-stream`}function sr(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}async function cr(e,t,n){let r=await e.readFile(t,{encoding:`binary`}),i=typeof r==`string`?r:Uint8Array.from(r);await e.writeFile(n,i)}async function Z(e,t){try{return await e.stat(t),!0}catch{return!1}}function lr(e){let{fileTree:t,openFs:n,openWriter:r,insertReference:i,toPreviewUrl:a,log:o}=e;t.addEventListener(`file-preview`,async e=>{let{path:t}=e.detail;try{let e=await n(),r=or(t),i;if(r.startsWith(`text/`)||r===`application/json`)i=await e.readFile(t,{encoding:`utf-8`});else{let n=await e.readFile(t,{encoding:`binary`}),r=new Uint8Array(n.length);r.set(n),i=r.buffer}Ve.open({path:t,content:i,mimeType:r})}catch(e){o.error(`File preview failed`,e)}}),t.addEventListener(`file-reference`,e=>{let{path:t}=e.detail;i(t)}),t.addEventListener(`file-download`,async e=>{let{path:t}=e.detail;try{let e=await(await n()).readFile(t,{encoding:`binary`}),r=new Uint8Array(e.length);r.set(e);let i=t.split(`/`).pop()||`download`,a=or(t),o=new Blob([r],{type:a}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=i,c.click(),URL.revokeObjectURL(s)}catch(e){o.error(`File download failed`,e)}}),t.addEventListener(`file-overflow`,e=>{let{path:n,anchor:r}=e.detail,i=[{id:`rename`,label:`Rename`},{id:`duplicate`,label:`Duplicate`},{id:`copy-path`,label:`Copy path`},{id:`open-browser`,label:`Open in browser`,visible:sr(n)},{id:`delete`,label:`Delete`,destructive:!0}];Re.show({anchor:r,items:i,context:{path:n},dispatchTarget:t})}),t.addEventListener(`overflow-action`,async e=>{let{action:t,context:n}=e.detail,{path:i}=n;try{switch(t){case`copy-path`:await navigator.clipboard.writeText(i);break;case`open-browser`:window.open(a(i),`_blank`);break;case`duplicate`:{let e=i.lastIndexOf(`.`),t=e>0?`${i.slice(0,e)}_copy${i.slice(e)}`:`${i}_copy`,n=await r();if(await Z(n,t)&&!confirm(`${t} already exists. Overwrite?`))break;await cr(n,i,t);break}case`delete`:confirm(`Delete ${i}?`)&&await(await r()).rm(i);break;case`rename`:{let e=i.split(`/`).pop()??``,t=prompt(`Rename ${i} to:`,e)?.trim();if(!t||t===e||t.includes(`/`))break;let n=`${i.slice(0,i.length-e.length)}${t}`,a=await r();if(await Z(a,n)&&!confirm(`${n} already exists. Overwrite?`))break;await cr(a,i,n),await a.rm(i);break}}}catch(e){o.error(`Overflow action "${t}" failed`,e)}})}var ur=`/workspace/CLAUDE.md`,Q=64;function dr(e){if(e.length<=Q)return{title:e,summary:``};let t=e.lastIndexOf(` `,Q),n=t>Q/2?t:Q;return{title:`${e.slice(0,n)}…`,summary:e.slice(n).trim()}}function fr(e){let t=[],n=null,r=()=>{if(!n)return;let e=n.join(` `).trim();e&&t.push(dr(e)),n=null};for(let t of e.split(`
258
- `)){let e=/^\s*[-*]\s+(.*)$/.exec(t);e?(r(),n=[e[1]]):n&&t.trim()&&!t.startsWith(`#`)?n.push(t.trim()):(t.startsWith(`#`)||!t.trim())&&r()}return r(),t.length===0&&e.trim()&&t.push(dr(e.trim())),t}async function pr(e){let t=``;try{let n=await e.readFile(ur,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch{t=``}return fr(t).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`title`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`tag`,`project`),t})}async function mr(e){let t=e.getScoops(),[n,r,i,a,o,s]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>[])]),c=e.getOAuthProviders(),l=Object.entries(a);return[{id:`cost`,label:`Cost`,count:o?.models.length??0,meta:o?`$${o.totalCost.toFixed(2)}`:void 0,rows:o?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`}))??[]},{id:`scoops`,label:`Scoops`,count:t.length,rows:t.map(t=>{let n=t.isCone?`${t.name||`sliccy`} (cone)`:t.name,r=e.isProcessing(t.jid);return{name:n,meta:r?`processing`:`idle`,active:r}})},{id:`processes`,label:`Processes`,count:s.length,rows:s.map(e=>{let t=e.argv.length>40?e.argv.slice(0,37)+`...`:e.argv,n=e.status===`running`;return{name:`${e.pid}`,meta:t,active:n}})},{id:`cron`,label:`Cron Tasks`,count:n.length,rows:n.map(e=>({name:e.name,meta:e.cron,active:e.status===`active`}))},{id:`webhooks`,label:`Webhooks`,count:r.length,rows:r.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`}))},{id:`workflows`,label:`Workflows`,count:0,rows:[]},{id:`mounts`,label:`Mounts`,count:i.length,rows:i.map(e=>({name:e.targetPath,meta:e.descriptor.kind}))},{id:`mcp`,label:`MCP Servers`,count:l.length,rows:l.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`${n} tool${n===1?``:`s`}`}})},{id:`oauth`,label:`OAuth`,count:c.length,rows:c.map(e=>({name:e,meta:``}))}]}var hr=[`/workspace`,`/shared`],gr=3,_r=200;async function vr(e,t,n){let r;try{r=await e.readDir(t)}catch{return[]}let i=r.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)),a=r.filter(e=>e.type===`file`).sort((e,t)=>e.name.localeCompare(t.name)),o=[...i,...a].slice(0,_r),s=o.filter(e=>e.type===`file`).map(e=>`${t}/${e.name}`),c=await Promise.allSettled(s.map(t=>e.stat(t))),l=new Map;s.forEach((e,t)=>{let n=c[t];n?.status===`fulfilled`&&l.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<gr?await vr(e,i,n+1):[]});else{let e=l.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function yr(e){let t=[];for(let n of hr)t.push({kind:`dir`,id:n,label:n.slice(1),open:!0,children:await vr(e,n,1)});return t}function br(e){let t=!1,n=null,r=null,i=!1,a=!1,o=()=>{e.openFs().then(async t=>{e.fileTree.items=await yr(t),a||(a=!0,lr({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:je,log:e.log}))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},s=()=>{i=!1,n!=null&&(clearInterval(n),n=null),r!=null&&(clearInterval(r),r=null)};return a=>{if(a===`files`){s(),i=!0,e.onKernelReady(()=>{i&&(i=!1,o(),n=setInterval(o,3e3))});return}if(s(),a===`memory`){e.openFs().then(async t=>{e.memoryHost.replaceChildren(...await pr(t))}).catch(t=>e.log.error(`WC memory refresh failed`,t));return}if(a===`monitor`){r!=null&&clearInterval(r);let t=()=>{(async()=>{try{let t=await mr(e.getMonitorDeps());e.monitor.sections=t}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};e.monitor.addEventListener(`slicc-monitor-refresh`,t),t(),r=setInterval(t,5e3);return}a===`term`&&!t&&(t=!0,e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}))}}var xr={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Sr={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Cr(e){return e?xr[e]:void 0}function wr(e){return e===`max`?`max`:void 0}function Tr(e,t){return t===`max`?`max`:(e&&Sr[e])??`off`}function Er(e,t){return e!=null&&e!==`cone`||new URL(t.location.href).searchParams.get(`cherry`)===`1`?!0:m(t.localStorage)}function $(e){return e===`error`?`dead`:e===`initializing`?`none`:`open`}function Dr(e,t,n){return[...e].sort((e,t)=>Number(t.isCone)-Number(e.isCone)).map(e=>{let r=n?.get(e.jid);return{key:e.jid,type:e.isCone?`cone`:`scoop`,color:y(e),label:e.isCone?`sliccy`:e.name,eyes:$(t?.get(e.jid)),fill:typeof r==`number`?Math.round(r*100):void 0}})}function Or(e){let t=()=>{let t=e.getClient();t&&(e.refs.switcher.scoops=Dr(t.getScoops(),e.statuses,e.fills))},n=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),r=()=>{if(e.getSelected()||n())return;let t=e.getClient()?.getScoops()??[],r=e.pendingUrlContext;if(r?.startsWith(`freezer:`))return;if(r?.startsWith(`scoop:`)){let n=r.slice(6),i=t.find(e=>!e.isCone&&e.name===n);if(i){e.pendingUrlContext=null,e.selectScoop(i);return}}let i=t.find(e=>e.isCone);i&&(e.pendingUrlContext=null,e.selectScoop(i))};return{onStatusChange:(n,r)=>{let i=e.statuses.get(n);e.statuses.set(n,r),$(i)!==$(r)&&t(),e.getSelected()?.jid===n&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:r=>{t(),!e.getSelected()&&!n()&&!e.pendingUrlContext&&e.selectScoop(r)},onScoopListUpdate:()=>{t(),r()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.jid===t&&n.channel!==`web`&&Fe(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onMessageUpdate:(t,n)=>{e.getSelected()?.jid===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onScoopMessagesReplaced:(t,n)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n)},onReady:()=>{t(),r(),e.notifyReady?.()}}}async function kr(t,n){t.thread.setAttribute(`context`,n.isCone?`cone`:`scoop:${n.name}`),t.thread.setAttribute(`accent`,y(n)),ze(t,n.isCone?{kind:`cone`}:{kind:`scoop`,accent:y(n)}),t.switcher.setAttribute(`active`,n.jid);let r=localStorage.getItem(`slicc_locked_effort_level`);t.composerMeta.setAttribute(`thinking`,Tr(r??n.config?.thinkingLevel,n.config?.effortOverride));try{let{resolveCurrentModel:i,resolveModelById:a}=await e(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-YTN8hyPD.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([32,1,33,14,17,12,13,15,16,18,2,19,20,4,21,22,23,24,25,26,27,28,29,34,35])),o=n.config?.modelId,s=o?a(o):i();t.composerMeta.setAttribute(`model`,s.name??s.id),t.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!r)}catch{}}function Ar(t){let{refs:n,openVfs:r,client:i,getController:a,getSelected:o,selectScoop:s,clearSelection:c,log:l}=t,u=[],d=0,f=!1,p=()=>{let t=++d;r().then(async({reader:r,writer:i})=>{let a=await X(r);if(a===null){if((await tr(r)).kind!==`corrupt`||(l.warn(`WC freezer index corrupt — rebuilding from archives`),a=await nr(r),a.length===0))return;await i.writeFile(B,JSON.stringify(a,null,2))}t===d&&(u=a,rr(n.freezer,a),!f&&a.some(e=>!e.icon&&!e.pendingEnrichment)&&(f=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DsLcfgFd.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([11,1,12,13,14,15,16,17,18,2,19,20,4,21,22,23,24,25,26,27,28,29,30,31])).then(({pickLucideIcon:e})=>er({reader:r,writer:i,freezer:n.freezer,entries:a,pickIcon:t=>e({subject:t})})).catch(e=>l.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{f=!1})))}).catch(e=>l.error(`WC freezer refresh failed`,e))},m=!1,h=()=>n.freezer.querySelector(`slicc-freezer-new`),g=t=>{m||(m=!0,h()?.setAttribute(`busy`,``),(async()=>{try{if(t!==`erase`){let{writer:n}=await r(),{runNewSessionFreeze:i,runNewSessionFreezeQuick:a}=await e(async()=>{let{runNewSessionFreeze:e,runNewSessionFreezeQuick:t}=await import(`./new-session-Y0IvZ_oH.js`);return{runNewSessionFreeze:e,runNewSessionFreezeQuick:t}},__vite__mapDeps([36,14,17,1,12,13,15,16,18,2,19,20,4,21,22,23,24,25,26,27,28,29,32,33,34,35,30,37]));t===`save`?await i({vfs:n,onProgress:e=>{let t=h();t&&(e===null?t.removeAttribute(`progress`):t.setAttribute(`progress`,String(e)))},onBackgroundEnriched:()=>p()}):await a({vfs:n})}await i.clearAllMessages(),a()?.loadMessages([]),e(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-BE-b8vsg.js`).then(e=>e.x);return{resetDictationPriming:e}},__vite__mapDeps([38,1,14,19,32,33,17,12,13,15,16,18,2,20,4,21,22,23,24,25,26,27,28,29,34,35,31,39,40,41])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),p();let n=i.getScoops().find(e=>e.isCone);n&&s(n)}catch(e){l.error(`WC new session failed`,e)}finally{m=!1;let e=h();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])n.freezer.addEventListener(`new-chat-${e}`,()=>g(e));let _=async e=>{try{let{reader:t}=await r(),i=u.find(t=>t.filename===e);i||=(await X(t)??[]).find(t=>t.filename===e);let{messages:o}=await ir(t,i??{filename:e,title:e,frozenAt:``,messageCount:0});n.thread.setAttribute(`context`,`freezer:${i?.filename??e}`),a()?.loadMessages(o),n.thread.setAttribute(`accent`,We),ze(n,{kind:`freezer`}),n.inputCard.setAttribute(`disabled`,``),n.switcher.removeAttribute(`active`),c()}catch(e){if(l.error(`WC thaw failed`,e),!o()){let e=i.getScoops().find(e=>e.isCone);e&&s(e)}}};return n.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&_(t)}),{refreshFreezer:p,openFrozen:_}}function jr(e,t){let n=null,r=He(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,onSurfaceActivate:e=>n?.(e),urlState:!0}),i=null,a=null,o=null,s=!1,c=new Set,l=e=>{if(o=e,!a)return;let t=a.selectedScoopJid;if(t&&t!==e.jid){let e=i?.getQueuedMessages()??[];for(let n of e)a.deleteQueuedMessage(t,n.id).catch(()=>void 0)}a.setSelectedScoopJid(e.jid),r.inputCard.removeAttribute(`disabled`),kr(r,e),a.requestScoopMessages(e.jid),i?.setProcessing(a.isProcessing(e.jid)),r.switcher.hasAttribute(`attention`)||r.switcher.setAttribute(`attention`,e.jid)};return{refs:r,wiring:{refs:r,statuses:new Map,fills:new Map,lastActivity:new Map,pendingUrlContext:r.thread.urlContext??null,getController:()=>i,getClient:()=>a,getSelected:()=>o,selectScoop:l,notifyReady:()=>{s=!0;for(let e of c)e()}},setClient:e=>{a=e},selectScoop:l,getSelected:()=>o,clearSelection:()=>{o=null},getController:()=>i,setController:e=>{i=e},setActivateSurface:e=>{n=e;let t=r.workbenchBody.getAttribute(`active`);t&&r.shell.hasAttribute(`open`)&&(s?e(t):c.add(()=>e(t)))},onClientReady:e=>{c.add(e),s&&e()}}}function Mr(t){let n=null;return()=>(n??=(async()=>{let[{createRemoteVfsClient:n},{createRemoteWritableVfsClient:r}]=await Promise.all([e(()=>import(`./remote-vfs-client-Z2qM01yP.js`),__vite__mapDeps([42,43])),e(()=>import(`./writable-vfs-client-BKZGifKZ.js`),__vite__mapDeps([44,43]))]);return{reader:n({transport:t.getTransport()}),writer:r({transport:t.getTransport()})}})(),n)}function Nr(t,n,r,i,a){t.onClientReady(()=>{i.intercept||e(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-CB-gyJlN.js`);return{wireWcOnboarding:e}},__vite__mapDeps([45,14,32,1,33,17,12,13,15,16,18,2,19,20,4,21,22,23,24,25,26,27,28,29,34,35,46])).then(({wireWcOnboarding:e})=>e({client:n,getController:()=>t.getController(),openVfs:r,log:a})).then(e=>{i.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function Pr(t,i,a,o,s){let c=new Map;e(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-CuB1P3LZ.js`);return{loadDipStyles:e}},__vite__mapDeps([47,14])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),e(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-VRTdmUBw.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([48,1,49,2])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),e(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-17gZ2QvH.js`).then(e=>e.p);return{applyThemeOverrides:e}},__vite__mapDeps([49,1,2])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let l=i.createAgentHandle();l.onEvent(t=>{t.type!==`tool_use_start`&&t.type!==`tool_result`||e(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([50,2,40])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0)});let u=new Zn({thread:t.thread,agent:l,resolveTelemetryContext:()=>{let e=a();if(!e)return null;let t=e.isCone?`cone`:e.name;try{let i=e.config?.modelId;return{scoopName:t,model:(i?r(i):n()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:t=>{e(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-Dn917gPG.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([51,2,38,1,14,19,32,33,17,12,13,15,16,18,20,4,21,22,23,24,25,26,27,28,29,34,35,31,39,40,41,52,53,54,55,56])).then(async({consumeVoiceSubmission:n,speakReplyMarkdown:r})=>{if(!n())return;let{endVoiceTurn:i,setTtsActive:a}=await e(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([50,2,40]));try{if(t?.content){a(!0);try{await r(t.content)}finally{a(!1)}}}finally{i()}}).catch(()=>void 0)},onProcessingChange:e=>{t.frame.toggleAttribute(`data-processing`,e),t.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,e),e||o?.()},onBusyPhaseChange:e=>{t.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,e)},onMessageDisposed:e=>{let t=c.get(e);t&&(At(t),c.delete(e))},onMessageRendered:(e,t)=>{let n=t[0];n&&c.set(e.id,kt(n,(e,t)=>{let n={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:t}};s?.intercept?.(n)||i.sendSprinkleLick(`inline`,{action:e,data:t})}))},onQueuedChange:e=>{t.queuedStack.setMessages(e)},onToolUiAction:(e,t,n)=>{i.sendToolUiAction(e,t,n)},onQueuedCancel:e=>{let t=i.selectedScoopJid;t&&i.deleteQueuedMessage(t,e).catch(()=>void 0)}});return t.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let t=e.detail?.id;if(!t)return;u.removeQueuedMessage(t);let n=i.selectedScoopJid;n&&i.deleteQueuedMessage(n,t).catch(()=>void 0)}),{controller:u,agentHandle:l}}function Fr(t){let{boot:n,client:r,agentHandle:i,openReader:a,log:o}=t,{refs:s}=n;e(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-JajflJ9f.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([57,14,38,1,19,32,33,17,12,13,15,16,18,2,20,4,21,22,23,24,25,26,27,28,29,34,35,31,39,40,41])).then(({createPlaceholderRefresher:e})=>{t.setRefreshPlaceholder(e({inputCard:s.inputCard,getMessages:()=>n.getController()?.getMessages()??[],defaultPlaceholder:s.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),(async()=>{try{if(Er(n.wiring.pendingUrlContext,window))return;let{SessionStore:r}=await e(async()=>{let{SessionStore:e}=await import(`./session-store-DAM8GRJ0.js`);return{SessionStore:e}},[]),i=new r;await i.init();let a=await i.load(`session-cone`);a&&a.messages.length>0&&!n.getSelected()&&(n.getController()?.loadMessages(a.messages),t.triggerPlaceholder())}catch(e){o.warn(`WC session hydration failed`,e)}})();let c=null;return e(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-DBAOr_3_.js`);return{wireWcAttach:e}},__vite__mapDeps([58,14,19,59,1])).then(({wireWcAttach:n})=>{c=n({inputCard:s.inputCard,freezer:s.freezer,composer:s.composer,openReader:a,openWriter:t.openWriter,listConversations:async()=>{let{readSessionsIndex:t}=await e(async()=>{let{readSessionsIndex:e}=await import(`./session-freezer-B3JgXsYz.js`);return{readSessionsIndex:e}},[]);return(await t(await a())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:o})}).catch(e=>o.error(`WC add-menu wiring failed`,e)),s.inputCard.addEventListener(`submit`,t=>{let r=Ie(t);if(!r)return;let i=t.detail?.source===`dictation`;i&&(e(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-Dn917gPG.js`);return{markVoiceSubmission:e}},__vite__mapDeps([51,2,38,1,14,19,32,33,17,12,13,15,16,18,20,4,21,22,23,24,25,26,27,28,29,34,35,31,39,40,41,52,53,54,55,56])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),e(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([50,2,40])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),n.getController()?.sendUserMessage(r,c?.take(),{dictation:i}),s.inputCard.clear?.();let a=n.getSelected()?.jid;a&&(s.switcher.setAttribute(`attention`,a),n.wiring.lastActivity.set(a,r.slice(0,600)))}),s.inputCard.addEventListener(`stop`,()=>{n.getController()?.processing&&i.stop()}),e(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:s.thread,inputCard:s.inputCard})).catch(e=>o.error(`WC history nav wiring failed`,e)),s.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let t=e.detail?.thinking,i=Cr(t),a=wr(t),o=n.getSelected();o&&i&&r.setScoopThinkingLevel(o.jid,i,a)}),{getAttachStage:()=>c}}function Ir(e,t){let n=()=>{t.getSessionStats?.().then(n=>{if(!n)return;e.refs.floatbar.setAttribute(`spent`,n.totalCost.toFixed(2));let r=e.refs.floatbar;n.models&&(r.costModels=n.models),n.scoops&&(r.costScoops=n.scoops),e.fills.clear();for(let t of n.fills)e.fills.set(t.jid,t.fill);e.refs.switcher.scoops=Dr(t.getScoops(),e.statuses,e.fills)})};return setInterval(n,15e3),n}function Lr(t,n,r){let i=n.standalone;i&&e(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DunWpcR7.js`);return{wireWcBrowser:e}},[]).then(({wireWcBrowser:e})=>e({refs:t.refs,browser:i.browser,log:r})).catch(e=>r.error(`WC browser overlay wiring failed`,e))}function Rr(e,t){let{refs:n}=e;n.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.getScoops().find(e=>e.jid===r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)}),Br({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function zr(e){return()=>{e.triggerPlaceholder(),e.refreshStats();let t=e.boot.getSelected()?.jid;if(!t)return;e.boot.refs.switcher.setAttribute(`attention`,t);let n=e.boot.getController()?.getMessages().filter(e=>e.role===`assistant`).at(-1);n&&e.boot.wiring.lastActivity.set(t,String(n.content??``).slice(0,600))}}function Br(t){let n=new Map,r=new Set;t.switcher.addEventListener(`pointerover`,i=>{let a=i.target?.closest?.(`slicc-pill.scoop`);if(!a||!t.switcher.contains(a))return;let o=a.dataset.k??``,s=t.getScoops().find(e=>e.jid===o);if(!s)return;let c=t.lastActivity.get(o)??``,l=n.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=s.isCone?`sliccy`:s.name,!(!c||r.has(o))&&(r.add(o),(async()=>{try{let r=await(t.labelFn??(await e(async()=>{let{quickLabel:e}=await import(`./quick-llm-DsLcfgFd.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([11,1,12,13,14,15,16,17,18,2,19,20,4,21,22,23,24,25,26,27,28,29,30,31]))).quickLabel)({system:`One line for a hover tooltip: at most 14 words, present tense, no quotes, no trailing period.`,prompt:`Summarize what this agent has been doing.\nAgent: ${s.isCone?`sliccy (the main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});r&&(n.set(o,{activity:c,tip:r}),a.title=r)}finally{r.delete(o)}})())})}async function Vr(t,n,r){let{RemoteTerminalView:i}=await e(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-DddvZDMC.js`);return{RemoteTerminalView:e}},__vite__mapDeps([60,1,14,25,2,59,61,0,3,4,10,62,9,6,7,8,5,63])),{fetchSecretEnvVars:a}=await e(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-CGjJCzwN.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([64,2,20,1,14,19,4,21,22,23,24])),o=await a(),s=new i({client:n,cwd:`/`,env:Object.keys(o).length>0?o:void 0});await new Promise(e=>t.onClientReady(e)),await s.mount(r),globalThis.__slicc_terminal_view=s,window.addEventListener(`beforeunload`,()=>s.dispose(),{once:!0})}function Hr(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=t.getScoops(),a=r.startsWith(`scoop:`)?i.find(e=>!e.isCone&&e.name===r.slice(6)):i.find(e=>e.isCone);a&&a.jid!==e.getSelected()?.jid&&e.selectScoop(a)};e.refs.thread.addEventListener(`slicc-url-context`,e=>{let t=e.detail?.context;t&&r(t)});let i=e.wiring.pendingUrlContext;i?.startsWith(`freezer:`)&&e.onClientReady(()=>{e.wiring.pendingUrlContext===i&&(e.wiring.pendingUrlContext=null,r(i))})}function Ur(t,n,r,i){e(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-CKtVglvh.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([65,14,2,59,1])).then(async({installLeaderPermissionsSurface:i,installMountPendingConsumer:a})=>{let o=r.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await e(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-CbkqRh4J.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([66,14,4]));i({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:Wr(t,n)})}).catch(e=>i.warn(`WC permissions surface wiring failed`,e))}function Wr(t,n){let r=null,i=()=>(r||=(async()=>{await new Promise(e=>t.onClientReady(e));let{TerminalSessionClient:r}=await e(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-CbAduNfC.js`);return{TerminalSessionClient:e}},[]),i=new r({client:n,sid:`mount-drop-${Date.now()}`});return await i.open({cwd:`/workspace`}),i})().catch(e=>{throw r=null,e}),r);return async e=>(await i()).exec(e)}function Gr(e,t){return(n,r,i)=>{let a=e.getAttachStage();if(!a){t.warn(`sprinkle attachImage dropped: composer stage not ready yet`);return}let o=n.match(/^data:(image\/[^;]+);base64,([A-Za-z0-9+/=]+)$/),s=o?o[2]:n,c=o?o[1]:i??`image/png`,l=c.split(`/`)[1]?.replace(`jpeg`,`jpg`).replace(`svg+xml`,`svg`)??`png`,u=r??`annotation-${Date.now()}.${l}`;a.add({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:u,mimeType:c,size:Math.floor(s.length*3/4),kind:`image`,data:s})}}function Kr(t,n,r,i={}){e(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-BE-b8vsg.js`).then(e=>e.v);return{initTimestampPreference:e}},__vite__mapDeps([38,1,14,19,32,33,17,12,13,15,16,18,2,20,4,21,22,23,24,25,26,27,28,29,34,35,31,39,40,41])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:a}=t;t.setClient(n);let o=null,s=Ir(t.wiring,n),c=()=>o?.(),l={intercept:null},{controller:u,agentHandle:d}=Pr(a,n,()=>t.getSelected(),zr({boot:t,triggerPlaceholder:c,refreshStats:s}),l);t.setController(u),t.onClientReady(s);let f=Mr(n),p=async()=>(await f()).reader;i.standalone?.runtimeMode!==`cherry`&&i.standalone?.runtimeMode!==`hosted-leader`&&Nr(t,n,f,l,r);let m=Fr({boot:t,client:n,agentHandle:d,setRefreshPlaceholder:e=>{o=e},triggerPlaceholder:c,openReader:p,openWriter:async()=>(await f()).writer,log:r});Rr(t,n),Lr(t,i,r),Ur(t,n,i,r),t.setActivateSurface(br({fileTree:a.fileTree,termSurface:a.termSurface,memoryHost:a.memoryHost,monitor:a.monitor,openFs:p,openWriter:async()=>(await f()).writer,onKernelReady:e=>t.onClientReady(e),getMonitorDeps:()=>({getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:t}=await e(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-Br5ERv-E.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([67,1,2,20,14,19,4,21,32,33,17,12,13,15,16,18,22,23,24,25,26,27,28,29,34,35]));return t()},getWebhooks:async()=>{let{getAllWebhooks:t}=await e(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-Br5ERv-E.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([67,1,2,20,14,19,4,21,32,33,17,12,13,15,16,18,22,23,24,25,26,27,28,29,34,35]));return t()},getMounts:async()=>{let{getAllMountEntries:t}=await e(async()=>{let{getAllMountEntries:e}=await import(`./mount-table-store-CfQUN_2R.js`).then(e=>e.r);return{getAllMountEntries:e}},__vite__mapDeps([68,1]));return t()},getMcpServers:async()=>{try{let e=await(await p()).readFile(`/workspace/.mcp/servers.json`,{encoding:`utf-8`});return JSON.parse(typeof e==`string`?e:new TextDecoder().decode(e)).servers??{}}catch{return{}}},getOAuthProviders:()=>{try{let e=localStorage.getItem(`slicc_accounts`);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=t.map(e=>e.providerId).filter(e=>typeof e==`string`);return[...new Set(n)]}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await p(),t=await e.readDir(`/proc`),n=[];for(let r of t.filter(e=>e.type===`directory`&&/^\d+$/.test(e.name)))try{let t=await e.readFile(`/proc/${r.name}/status`,{encoding:`utf-8`}),i=await e.readFile(`/proc/${r.name}/cmdline`,{encoding:`utf-8`});n.push({pid:parseInt(r.name,10),argv:String(i).trim(),status:String(t).trim()})}catch{}return n}catch{return[]}}}),mountTerminal:e=>Vr(t,n,e),insertReference:e=>{let t=a.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:r})),a.floatbar.addEventListener(`click`,()=>{a.shell.hasAttribute(`open`)&&a.workbenchBody.getAttribute(`active`)===`monitor`?(a.shell.removeAttribute(`open`),a.dock.removeAttribute(`active`)):a.dock.selectItem(`monitor`)});let{refreshFreezer:h,openFrozen:g}=Ar({refs:a,openVfs:f,client:n,getController:()=>t.getController(),getSelected:()=>t.getSelected(),selectScoop:t.selectScoop,clearSelection:t.clearSelection,log:r});h(),t.onClientReady(h),Hr(t,n,g),f().then(async({reader:t})=>{let{installPreviewVfsResponder:n}=await e(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Dhck1Brc.js`);return{installPreviewVfsResponder:e}},[]);n({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>t,logger:r})}).catch(e=>r.warn(`WC page-VFS support wiring failed`,e)),f().then(async({reader:o,writer:s})=>{let{createRemoteSprinkleVfs:c}=await e(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-e81pZJKo.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([69,43])),{wireWcSprinkles:l}=await e(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-BNBjEy3e.js`);return{wireWcSprinkles:e}},__vite__mapDeps([70,14,4])),u=await l({refs:a,client:n,fs:c({reader:o,writer:s}),instanceId:i.instanceId,onAttachImage:Gr(m,r),log:r});if(t.onClientReady(()=>void u.resync()),i.standalone&&i.instanceId){let{wireWcTray:o}=await e(async()=>{let{wireWcTray:e}=await import(`./wc-tray-CigihWow.js`);return{wireWcTray:e}},__vite__mapDeps([71,14,17,1,12,13,15,16,18,2,19,20,4,21,22,23,24,25,26,27,28,29,32,33,34,35,72,73,62,67,38,31,39,40,41,74,75,55,56,76,48,49])),s=u.zone.callbacks();await o({refs:a,client:n,browser:i.standalone.browser,realCdpTransport:i.standalone.realCdpTransport,instanceId:i.instanceId,runtimeMode:i.standalone.runtimeMode,sprinkleManager:u.manager,addSprinkle:(e,t,n)=>s.addSprinkle(e,t,n),removeSprinkle:e=>s.removeSprinkle(e),getController:()=>t.getController(),getSelectedJid:()=>t.getSelected()?.jid??`cone`,agentHandle:d,openFs:p,baseFloatLabel:i.standalone.baseFloatLabel,window,log:r})}}).catch(e=>r.error(`WC sprinkle/tray wiring failed`,e)),e(async()=>{let{wireWcNav:e}=await import(`./wc-nav-fffdvg7T.js`);return{wireWcNav:e}},__vite__mapDeps([77,14,4,35,1,32,33,17,12,13,15,16,18,2,19,20,21,22,23,24,25,26,27,28,29,34,67])).then(({wireWcNav:e})=>e({refs:a,client:n,log:r})).catch(e=>r.error(`WC nav wiring failed`,e)),e(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-CgPswGW1.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([78,2,4,59,1,39,53,54,20,14,19,21,55,56,79])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=a.composer;t(i.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>r.error(`WC push-to-talk wiring failed`,e)),e(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-DG2fJcBd.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([52,14,2,4,53,54,20,1,19,21,55,56])).then(({setSpeakAssetsInstanceId:e})=>e(i.instanceId)).catch(e=>r.error(`WC say warmup wiring failed`,e))}async function qr(t,n,r=`standalone`){let{browser:i,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await ee({runtimeMode:r,envBaseUrl:null,window,log:n}),{resolveStandaloneFloatLabel:f,DEFAULT_STANDALONE_LABEL:m}=await e(async()=>{let{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}=await import(`./wc-float-label-CNeJqRLg.js`);return{resolveStandaloneFloatLabel:e,DEFAULT_STANDALONE_LABEL:t}},__vite__mapDeps([80,20,1,14,19,4,21])),h=r===`standalone`||r===`electron-overlay`?await f():m,g=jr(t,h);o&&p(o);let _=Un({realCdpTransport:a,instanceId:o,callbacks:Or(g.wiring),localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,onWorkerScriptError:()=>{ne()}});Ln({send:e=>_.client.sendRaw(e)}),d?.(_.client),Kr(g,_.client,n,{instanceId:o,standalone:{browser:i,realCdpTransport:a,runtimeMode:r,baseFloatLabel:h}});let{setupSudoStandalone:te}=await e(async()=>{let{setupSudoStandalone:e}=await import(`./main-YTN8hyPD.js`).then(e=>e._);return{setupSudoStandalone:e}},__vite__mapDeps([32,1,33,14,17,12,13,15,16,18,2,19,20,4,21,22,23,24,25,26,27,28,29,34,35]));await te({log:n}),await _.ready,g.wiring.notifyReady?.(),n.info(`WC live shell ready`,{scoops:_.client.getScoops().length});let{consumeAutoPrompt:re}=await e(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),v=re(window.location.search);v&&(g.getController()?.sendUserMessage(v),n.info(`Auto-prompt submitted`,{length:v.length}))}export{Qt as a,Kr as attachWcClient,_n as c,Or as createWcLiveCallbacks,M as d,kt as f,vn as i,ft as l,pt as m,qr as mountWcUiLive,Fn as n,H as o,j as p,jr as prepareWcShell,B as r,U as s,Zn as t,At as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./types-idfTVsM8.js";function t(e){return new r(e)}var n=`vfs-w-`,r=class{transport;log;genId;pending=new Map;unsubscribe=null;counter=0;constructor(e){this.transport=e.transport,this.log=e.logger??console,this.genId=e.generateRequestId??(()=>{this.counter=this.counter+1>>>0;let e=Math.random().toString(36).slice(2,8);return`${n}${this.counter.toString(36)}-${e}`}),this.unsubscribe=this.transport.onMessage(e=>{if(!i(e)||e.source!==`offscreen`)return;let t=e.payload;a(t)&&this.handleResult(t)})}readDir(e){let t=this.genId(),n={type:`vfs-read-dir`,requestId:t,path:e};return this.request(t,`vfs-read-dir-result`,e,n)}readFile(e,t){let n=this.genId(),r={type:`vfs-read-file`,requestId:n,path:e,encoding:t?.encoding??`utf-8`};return this.request(n,`vfs-read-file-result`,e,r)}stat(e){let t=this.genId(),n={type:`vfs-stat`,requestId:t,path:e};return this.request(t,`vfs-stat-result`,e,n)}writeFile(t,n,r){let i=this.genId(),a=r?.recursive;if(n instanceof Uint8Array){let e={type:`vfs-write-file`,requestId:i,path:t,encoding:`binary`,data:n,...a===void 0?{}:{recursive:a}},r=n.buffer,o=typeof ArrayBuffer<`u`&&r instanceof ArrayBuffer?[r]:void 0;return this.request(i,`vfs-write-file-result`,t,e,o)}if(typeof n!=`string`)return Promise.reject(new e(`EINVAL`,`writeFile content must be string or Uint8Array`,t));let o={type:`vfs-write-file`,requestId:i,path:t,encoding:`utf-8`,data:n,...a===void 0?{}:{recursive:a}};return this.request(i,`vfs-write-file-result`,t,o)}mkdir(e,t){let n=this.genId(),r=t?.recursive,i={type:`vfs-mkdir`,requestId:n,path:e,...r===void 0?{}:{recursive:r}};return this.request(n,`vfs-mkdir-result`,e,i)}rm(e,t){let n=this.genId(),r=t?.recursive,i={type:`vfs-rm`,requestId:n,path:e,...r===void 0?{}:{recursive:r}};return this.request(n,`vfs-rm-result`,e,i)}flush(){let e=this.genId(),t={type:`vfs-flush`,requestId:e};return this.request(e,`vfs-flush-result`,``,t)}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,t]of this.pending)t.reject(new e(`EBADF`,`RemoteWritableVfsClient disposed`,t.path));this.pending.clear()}request(e,t,n,r,i){return new Promise((a,o)=>{this.pending.set(e,{resolve:a,reject:o,expect:t,path:n});try{this.transport.send(r,i)}catch(t){this.pending.delete(e),o(t)}})}handleResult(t){let r=this.pending.get(t.requestId);if(!r){t.requestId.startsWith(n)&&this.log.debug?.(`[remote-writable-vfs-client] drop unmatched response`,{type:t.type,requestId:t.requestId});return}if(r.expect!==t.type){this.pending.delete(t.requestId),r.reject(new e(`EIO`,`vfs-rpc response type mismatch (got ${t.type})`,r.path));return}if(this.pending.delete(t.requestId),t.ok===!1){r.reject(o(t.error.code,t.error.message,t.error.path??r.path));return}switch(t.type){case`vfs-read-dir-result`:r.resolve(t.entries);return;case`vfs-read-file-result`:r.resolve(t.data);return;case`vfs-stat-result`:r.resolve(t.stats);return;case`vfs-write-file-result`:case`vfs-mkdir-result`:case`vfs-rm-result`:case`vfs-flush-result`:r.resolve(void 0);return}}};function i(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function a(e){if(typeof e.requestId!=`string`)return!1;let t=e.type;return t===`vfs-read-dir-result`||t===`vfs-read-file-result`||t===`vfs-stat-result`||t===`vfs-write-file-result`||t===`vfs-mkdir-result`||t===`vfs-rm-result`||t===`vfs-flush-result`}function o(t,n,r){return new e([`ENOENT`,`EEXIST`,`ENOTDIR`,`EISDIR`,`ENOTEMPTY`,`EINVAL`,`EACCES`,`ELOOP`,`EBUSY`,`EFBIG`,`EBADF`,`EIO`].includes(t)?t:`EIO`,n,r)}export{t as createRemoteWritableVfsClient};