sliccy 5.61.0 → 5.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/node-server/_shared/secret-masking.d.ts +1 -0
  2. package/dist/node-server/_shared/secret-masking.d.ts.map +1 -1
  3. package/dist/node-server/_shared/secret-masking.js +5 -0
  4. package/dist/node-server/_shared/secret-masking.js.map +1 -1
  5. package/dist/node-server/_shared/secrets-pipeline.d.ts +28 -0
  6. package/dist/node-server/_shared/secrets-pipeline.d.ts.map +1 -1
  7. package/dist/node-server/_shared/secrets-pipeline.js +63 -1
  8. package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
  9. package/dist/node-server/fetch-proxy-headers.js +4 -0
  10. package/dist/node-server/routes/fetch-proxy.js +36 -3
  11. package/dist/node-server/secrets/proxy-manager.d.ts +8 -0
  12. package/dist/node-server/secrets/proxy-manager.js +3 -0
  13. package/dist/ui/assets/{account-store-Bkt-sHjk.js → account-store-C8V8X8M6.js} +1 -1
  14. package/dist/ui/assets/account-store-DjRlu3oz.js +98 -0
  15. package/dist/ui/assets/{adobe-CKLRjAln.js → adobe-Dq72PCII.js} +1 -1
  16. package/dist/ui/assets/{adobe-D3LfvR1c.js → adobe-twH5Dkzg.js} +1 -1
  17. package/dist/ui/assets/{apps-Bf1H6-85.js → apps-C2RvqkRg.js} +1 -1
  18. package/dist/ui/assets/{azure-openai-CqSF2b4l.js → azure-openai-CjIZTn1I.js} +1 -1
  19. package/dist/ui/assets/{azure-openai-LwRRPkRI.js → azure-openai-Dnnib-1j.js} +1 -1
  20. package/dist/ui/assets/{backend-local-J_dSen8g.js → backend-local-D4WZgy4J.js} +2 -2
  21. package/dist/ui/assets/{cerebras-CEBK7ldR.js → cerebras-CvY3-v6x.js} +1 -1
  22. package/dist/ui/assets/{cerebras-DoDBOChk.js → cerebras-DkKcvizO.js} +1 -1
  23. package/dist/ui/assets/{connect-surface-DADZwDbi.js → connect-surface-Bs9PilJh.js} +1 -1
  24. package/dist/ui/assets/{ensure-speech-assets-D2Pclall.js → ensure-speech-assets-pHHH7zOs.js} +1 -1
  25. package/dist/ui/assets/{fs-BZ8jCbhy.js → fs-1fC_zWln.js} +1 -1
  26. package/dist/ui/assets/{fs-Cfytz2TS.js → fs-BxOkUsiy.js} +2 -2
  27. package/dist/ui/assets/{github-DdPXKMLe.js → github-CFLrs2Ey.js} +2 -2
  28. package/dist/ui/assets/{github-copilot-aVD8W5Uc.js → github-copilot-DLW9Irye.js} +1 -1
  29. package/dist/ui/assets/{github-copilot-AYSHehC3.js → github-copilot-Dy9i4XVT.js} +1 -1
  30. package/dist/ui/assets/{github-BYsKWPeV.js → github-pZhqDwyB.js} +1 -1
  31. package/dist/ui/assets/{hear-D7srqY_7.js → hear-CyNq2Mqe.js} +1 -1
  32. package/dist/ui/assets/{installer-D7LGGQGy.js → installer-BmmE_GGY.js} +1 -1
  33. package/dist/ui/assets/{kernel-worker-Dv6ugtws.js → kernel-worker-s3D15h6k.js} +591 -591
  34. package/dist/ui/assets/{kokoro-engine-DLKTuHMR.js → kokoro-engine-Dpwvh_m5.js} +1 -1
  35. package/dist/ui/assets/{lick-ws-bridge-DsRRwfVk.js → lick-ws-bridge-D1V1TC9I.js} +1 -1
  36. package/dist/ui/assets/{local-llm-Ja3mfEao.js → local-llm-B-_87z7w.js} +1 -1
  37. package/dist/ui/assets/{local-llm-kMFFJCDT.js → local-llm-BRqxPeWw.js} +1 -1
  38. package/dist/ui/assets/{magick-wasm-B-rybRPb.js → magick-wasm-CdLQkNZO.js} +1 -1
  39. package/dist/ui/assets/{main-jD3wsTHm.js → main-BEpKhlTz.js} +3 -3
  40. package/dist/ui/assets/{mount-Co7VoiG3.js → mount-DQWMf-5s.js} +2 -2
  41. package/dist/ui/assets/{mount-recovery-Cwl9npdz.js → mount-recovery-Cw06-rUR.js} +1 -1
  42. package/dist/ui/assets/{mount-B1o0Tu6r.js → mount-vbruZ4kF.js} +1 -1
  43. package/dist/ui/assets/{new-session-DvI8DpbC.js → new-session-CzdOwB7l.js} +2 -2
  44. package/dist/ui/assets/{oauth-bootstrap-LUBU0zw1.js → oauth-bootstrap-WZw5k_SD.js} +2 -2
  45. package/dist/ui/assets/oauth-service-CfqjxAd7.js +1 -0
  46. package/dist/ui/assets/{openai-codex-Dc2-mj0x.js → openai-codex-BTSf9IXv.js} +1 -1
  47. package/dist/ui/assets/{openai-codex-CH1oMijR.js → openai-codex-h_KdiZx4.js} +1 -1
  48. package/dist/ui/assets/{panel-rpc-handlers-BGkBk9Rn.js → panel-rpc-handlers-Czhj3QCa.js} +2 -2
  49. package/dist/ui/assets/{provider-YWxytFh6.js → provider-CPZXpmM3.js} +2 -2
  50. package/dist/ui/assets/provider-D0-uJMUT.js +1 -0
  51. package/dist/ui/assets/{provider-settings-DyFcREdE.js → provider-settings-CkVs8no7.js} +1 -1
  52. package/dist/ui/assets/{provider-settings-R1mQ9-PX.js → provider-settings-DYKGobjV.js} +1 -1
  53. package/dist/ui/assets/provider-store-access-C3HL-vUC.js +1 -0
  54. package/dist/ui/assets/{provider-store-access-GUSmwQsv.js → provider-store-access-Dch9psRj.js} +2 -2
  55. package/dist/ui/assets/{providers-BXwvtxEC.js → providers-Dxy-4PFv.js} +1 -1
  56. package/dist/ui/assets/{providers-C-C_QZBA.js → providers-O8pbKDYe.js} +2 -2
  57. package/dist/ui/assets/{quick-llm-CyIluLr1.js → quick-llm-DJoKfpoE.js} +1 -1
  58. package/dist/ui/assets/{session-freezer-DHt0Igru.js → session-freezer-Cy_8eEJJ.js} +2 -2
  59. package/dist/ui/assets/{setup-sudo-C7mksJ74.js → setup-sudo-Cdu6ayLR.js} +2 -2
  60. package/dist/ui/assets/{shared-X5SFnyK-.js → shared-CZ95RVhr.js} +2 -2
  61. package/dist/ui/assets/{skills-B5bs2JnW.js → skills-DWvtKhEm.js} +1 -1
  62. package/dist/ui/assets/{speak-YEgNUk4w.js → speak-hkgR06DB.js} +1 -1
  63. package/dist/ui/assets/{store-fjjsfL92.js → store-D-KfFRIk.js} +1 -1
  64. package/dist/ui/assets/{sudo-B5hEP8ex.js → sudo-DelvI0DC.js} +1 -1
  65. package/dist/ui/assets/{transformers-env-8w05vuhN.js → transformers-env-l6BZ4YEm.js} +1 -1
  66. package/dist/ui/assets/{upgrade-detection-B6AiyIwx.js → upgrade-detection-CqoVd0_T.js} +1 -1
  67. package/dist/ui/assets/{wc-extension-kt7jA5Vw.js → wc-extension-DRHSdGxx.js} +2 -2
  68. package/dist/ui/assets/{wc-follower-BFZP3SRo.js → wc-follower-D8U2mCiZ.js} +3 -3
  69. package/dist/ui/assets/{wc-live-BPDbUJ7I.js → wc-live-B5ilt-B0.js} +3 -3
  70. package/dist/ui/assets/{wc-nav-B0oFpZdj.js → wc-nav-dG8KuEGj.js} +2 -2
  71. package/dist/ui/assets/{wc-onboarding-BtEZZu63.js → wc-onboarding-DKqPa3Go.js} +2 -2
  72. package/dist/ui/assets/{wc-placeholder-BqQKxg_e.js → wc-placeholder-DcXc6Kq7.js} +2 -2
  73. package/dist/ui/assets/{wc-settings-B5BrTsqJ.js → wc-settings-CAV_5yCU.js} +2 -2
  74. package/dist/ui/assets/{wc-shell-D1rFLiLn.js → wc-shell-JGrDCJ2Z.js} +2 -2
  75. package/dist/ui/assets/{wc-sprinkles-CtVb4mz3.js → wc-sprinkles-DwjjLetn.js} +2 -2
  76. package/dist/ui/assets/{wc-tray-2PpRgp9c.js → wc-tray-wms8yLL3.js} +2 -2
  77. package/dist/ui/assets/{whisper-engine-C0mT2z02.js → whisper-engine-CpxmQpAs.js} +1 -1
  78. package/dist/ui/assets/{xai-grok-CbKylYRb.js → xai-grok-BBfDi1Yn.js} +1 -1
  79. package/dist/ui/assets/{xai-grok-olZUR6su.js → xai-grok-anLKhdmU.js} +1 -1
  80. package/dist/ui/index.html +5 -5
  81. package/dist/ui/llm-proxy-sw.js +1 -1
  82. package/dist/ui/packages/webapp/index.html +5 -5
  83. package/package.json +3 -3
  84. package/dist/ui/assets/account-store-DK2Sc2Br.js +0 -98
  85. package/dist/ui/assets/oauth-service-DSuwOpMz.js +0 -1
  86. package/dist/ui/assets/provider-P5X9hREk.js +0 -1
  87. package/dist/ui/assets/provider-store-access-DhwBcPZJ.js +0 -1
  88. package/dist/ui/assets/sprinkle-proxy-B4nH2NxC.js +0 -1
@@ -1 +1 @@
1
- "use strict";(()=>{var I="https://www.sliccy.ai";var w="bridgeToken",C="bridge",U="X-Bridge-Token";var de=new URL(I).hostname,$e={[de]:"sliccy.now","sliccy.ai":"sliccy.now","slicc-tray-hub-staging.minivelos.workers.dev":"sliccy.dev","localhost:8787":"localhost:8787"};var pe=["ghp_","gho_","ghu_","ghs_","ghr_","github_pat_","sk-","pk-","xoxb-","xoxp-","xoxa-","xoxs-","AKIA","ABIA","ACCA","ASIA","sk-ant-","Bearer "],je=[...pe].sort((e,t)=>t.length-e.length);var ge="slicc-sync-fs-";function F(e){return ge+e}var L="sync-fs-nonce",N="sync-fs-need-nonce",R="/__slicc/fs-sync/";var O="x-slicc-fs-token",E="x-slicc-fs-errno",h="x-slicc-fs",D="sync-fs-req",B="sync-fs-ack",q="sync-fs-res",P=25e3,V=2e3;function b(e){if(!e)return{};let t={};for(let[r,s]of Object.entries(e)){let n=r.toLowerCase();n==="cookie"?t["X-Proxy-Cookie"]=s:n==="origin"?t["X-Proxy-Origin"]=s:n==="referer"?t["X-Proxy-Referer"]=s:n.startsWith("proxy-")?t[`X-Proxy-${r}`]=s:t[r]=s}return t}function H(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 fe=new Set([101,103,204,205,304]);function ye(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 $(e){let t,r,s=new Promise((o,i)=>{t=o,r=i}),n=null,a=new ReadableStream({start(o){n=o}}),c=!1,u=!1,f=()=>{try{n?.close()}catch{}},p=o=>{try{n?.error(o)}catch{}},g=o=>{if(c)return;c=!0;let i=new Headers;for(let[l,y]of Object.entries(H(o.headers)))i.set(l,y);let S=fe.has(o.status)?null:a;t(new Response(S,{status:o.status,statusText:o.statusText,headers:i}))},d=o=>{u=!0;let i=new Error(o.error);c?p(i):r(i),e.close?.()};return e.onmessage=o=>{let i=o.data;!i||typeof i.type!="string"||u||(i.type==="response-head"?g(i):i.type==="response-chunk"?n?.enqueue(ye(i.dataBase64)):i.type==="response-end"?(u=!0,f(),e.close?.()):i.type==="response-error"&&d(i))},e.start?.(),{responsePromise:s}}var me=new Set([101,103,204,205,304]);function v(e){let t=me.has(e.status)?null:e.body;return new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers})}var Y="slicc",W="leader";function j(e){try{let t=new URL(e);return`${t.protocol==="wss:"?"https:":"http:"}//${t.host}`}catch{return null}}var Se="slicc:bridge-config";function G(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(C),n=r.searchParams.get(w);if(!s||!n)return null;let a=j(s);return a?{apiBaseUrl:a.replace(/\/+$/,""),token:n}:null}function K(e,t){if(e?.apiBaseUrl&&e.token)return G(e,null);for(let r of t){let s=G(null,r);if(s)return s}return null}function z(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 X(e){return!e||typeof e!="object"?!1:e.type===Se}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}},xe="slicc:extension-delegate-config",J="slicc:ext-fetch";function Z(e){return!e||typeof e!="object"?!1:e.type===xe}function A(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}if(t.searchParams.get(Y)!==W)return null;let r=t.searchParams.get("ext");return r?{extensionId:r}:null}function ee(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 k=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 te(e){return Ee.has(e)}function re(e){let t=e;return t?.type==="window"&&t.frameType==="top-level"}function se(){let e=[];return{notify(){let t=e;e=[];for(let r of t)r()},wait(t){return new Promise(r=>{let s=!1,n=()=>{s||(s=!0,clearTimeout(a),e=e.filter(c=>c!==n),r())},a=setTimeout(n,t);e.push(n)})}}}var Re=P,Me=200,ke=new Set(["stat","readdir","exists"]);function _e(e){switch(e){case"ENOENT":return 404;case"EACCES":return 403;case"EISDIR":case"ENOTDIR":case"EINVAL":return 400;case"EIO":return 503;default:return 500}}async function ne(e){let t=new URL(e.url);if(!t.pathname.startsWith(R))return null;let r=t.pathname.slice(R.length-1),s;try{s=r.split("/").map(decodeURIComponent).join("/")}catch{return null}let n=e.headers.get(O)??"";if(e.method==="POST"){let c=await e.arrayBuffer();return{token:n,op:"write",path:s,body:new Uint8Array(c)}}let a=t.searchParams.get("op");return a&&ke.has(a)?{token:n,op:a,path:s}:{token:n,op:"read",path:s}}function we(e){if(!e.ok){let r=e.errno??"EIO";return new Response(e.message??r,{status:_e(r),headers:{[E]:r,[h]:"1"}})}if(e.kind==="json")return new Response(JSON.stringify(e.json??null),{status:200,headers:{"content-type":"application/json",[h]:"1"}});let t=e.kind==="bytes"?new Uint8Array(e.bytes):new Uint8Array(0);return new Response(t,{status:200,headers:{"content-type":"application/octet-stream",[h]:"1"}})}function oe(e,t,r={}){let s=r.timeoutMs??Re,n=r.retryIntervalMs??Me,a=crypto.randomUUID();return new Promise(c=>{let u=!1,f=!1,p,g,d=()=>{for(let l of e)l.removeEventListener("message",i);p&&clearInterval(p),g&&clearTimeout(g)},o=l=>{f||(f=!0,d(),c(l))},i=l=>{let y=l.data;if(!(!y||y.id!==a)){if(y.type===B){u=!0,p&&clearInterval(p);return}y.type===q&&o(we(y))}};for(let l of e)l.addEventListener("message",i);let S=()=>{for(let l of e)l.postMessage({type:D,id:a,...t})};S(),p=setInterval(()=>{u||S()},n),g=setTimeout(()=>{o(new Response("sync-fs bridge timeout",{status:503,headers:{[E]:"EIO",[h]:"1"}}))},s)})}var Ce="/api/fetch-proxy",_="x-bypass-llm-proxy",ce=new M,le=new k,be=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")return;if(X(e.data)){ce.set(t.id,{apiBaseUrl:e.data.apiBaseUrl,token:e.data.token});return}if(Z(e.data)){le.set(t.id,{extensionId:e.data.extensionId});return}let r=e.data;if(r?.type===L&&typeof r.nonce=="string"){re(t)&&ve(r.nonce);return}});self.addEventListener("fetch",e=>{let t=e.request;if(t.headers.get(_)==="1"||te(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(Te(t,e.clientId||null)))});var T=new Map,ue=se();function ie(){return[...T.values()]}function ve(e){T.has(e)||(T.set(e,new BroadcastChannel(F(e))),ue.notify())}async function Ae(){let e=await self.clients.matchAll({type:"window"}),t={type:N};for(let r of e)r.postMessage(t)}self.addEventListener("fetch",e=>{let t=new URL(e.request.url);t.origin===self.location.origin&&t.pathname.startsWith(R)&&e.respondWith((async()=>{let r=await ne(e.request);if(!r)return new Response("sync-fs bridge: malformed path",{status:400,headers:{[E]:"EINVAL",[h]:"1"}});let s=ie();return s.length===0&&(Ae(),await ue.wait(V),s=ie(),s.length===0)?new Response("sync-fs bridge not ready",{status:503,headers:{[E]:"EIO",[h]:"1"}}):oe(s,r)})())});async function Te(e,t){let r=e.url,s={};e.headers.forEach((m,x)=>{x.toLowerCase()!==_&&(s[x]=m)});let n=b(s),a=new Headers;for(let[m,x]of Object.entries(n))a.set(m,x);a.set("X-Target-URL",r);let c=ce.get(t),u=le.get(t),f=await Ie(t),p=c||u?[]:await Ue(),g=[f,...p],d=ee(u,g);if(d){let m=await Fe();if(m)return Ne(e,d,m,r)}let o=K(c,g);if(o&&Q(e.url,o.apiBaseUrl)){let m=new Headers(e.headers);m.set(_,"1");let x={method:e.method,headers:m,cache:"no-store",credentials:e.credentials,redirect:"manual",signal:e.signal,body:await ae(e)};return v(await fetch(e.url,x))}o&&a.set(U,o.token);let i=z(Ce,o),S=await ae(e),l={method:e.method,headers:a,cache:"no-store",credentials:"omit",redirect:"manual",signal:e.signal,body:S},y=await fetch(i,l);return v(y)}async function ae(e){if(e.method==="GET"||e.method==="HEAD")return;let t=await e.arrayBuffer();return t.byteLength>0?t:void 0}async function Ie(e){if(!e)return null;try{return(await self.clients.get(e))?.url??null}catch{return null}}async function Ue(){try{return(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map(t=>t.url).filter(t=>!!t)}catch{return[]}}async function Fe(){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 Le(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}async function Ne(e,t,r,s){let n={};e.headers.forEach((d,o)=>{o.toLowerCase()!==_&&(n[o]=d)});let a=b(n),c,u=!1;if(e.method!=="GET"&&e.method!=="HEAD"){let d=await e.arrayBuffer();d.byteLength>be?u=!0:d.byteLength>0&&(c=Le(new Uint8Array(d)))}let f=new MessageChannel,{responsePromise:p}=$(f.port1),g={type:J,requestId:Oe(),extensionId:t.extensionId,request:{url:s,method:e.method,headers:a,bodyBase64:c,requestBodyTooLarge:u}};return r.postMessage(g,[f.port2]),p}function Oe(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`}})();
1
+ "use strict";(()=>{var I="https://www.sliccy.ai";var w="bridgeToken",b="bridge",U="X-Bridge-Token";var de=new URL(I).hostname,$e={[de]:"sliccy.now","sliccy.ai":"sliccy.now","slicc-tray-hub-staging.minivelos.workers.dev":"sliccy.dev","localhost:8787":"localhost:8787"};var pe=["ghp_","gho_","ghu_","ghs_","ghr_","github_pat_","sk-","pk-","xoxb-","xoxp-","xoxa-","xoxs-","AKIA","ABIA","ACCA","ASIA","sk-ant-","Bearer "],je=[...pe].sort((e,t)=>t.length-e.length);var ge="slicc-sync-fs-";function F(e){return ge+e}var N="sync-fs-nonce",L="sync-fs-need-nonce",R="/__slicc/fs-sync/";var O="x-slicc-fs-token",E="x-slicc-fs-errno",h="x-slicc-fs",D="sync-fs-req",B="sync-fs-ack",q="sync-fs-res",P=25e3,H=2e3;function C(e){if(!e)return{};let t={};for(let[r,s]of Object.entries(e)){let n=r.toLowerCase();n==="cookie"?t["X-Proxy-Cookie"]=s:n==="origin"?t["X-Proxy-Origin"]=s:n==="referer"?t["X-Proxy-Referer"]=s:n.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 fe=new Set([101,103,204,205,304]);function ye(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 $(e){let t,r,s=new Promise((o,i)=>{t=o,r=i}),n=null,a=new ReadableStream({start(o){n=o}}),c=!1,u=!1,f=()=>{try{n?.close()}catch{}},p=o=>{try{n?.error(o)}catch{}},g=o=>{if(c)return;c=!0;let i=new Headers;for(let[l,y]of Object.entries(V(o.headers)))i.set(l,y);let S=fe.has(o.status)?null:a;t(new Response(S,{status:o.status,statusText:o.statusText,headers:i}))},d=o=>{u=!0;let i=new Error(o.error);c?p(i):r(i),e.close?.()};return e.onmessage=o=>{let i=o.data;!i||typeof i.type!="string"||u||(i.type==="response-head"?g(i):i.type==="response-chunk"?n?.enqueue(ye(i.dataBase64)):i.type==="response-end"?(u=!0,f(),e.close?.()):i.type==="response-error"&&d(i))},e.start?.(),{responsePromise:s}}var me=new Set([101,103,204,205,304]);function v(e){let t=me.has(e.status)?null:e.body;return new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers})}var Y="slicc",W="leader";function j(e){try{let t=new URL(e);return`${t.protocol==="wss:"?"https:":"http:"}//${t.host}`}catch{return null}}var Se="slicc:bridge-config";function G(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(b),n=r.searchParams.get(w);if(!s||!n)return null;let a=j(s);return a?{apiBaseUrl:a.replace(/\/+$/,""),token:n}:null}function K(e,t){if(e?.apiBaseUrl&&e.token)return G(e,null);for(let r of t){let s=G(null,r);if(s)return s}return null}function z(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 X(e){return!e||typeof e!="object"?!1:e.type===Se}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}},xe="slicc:extension-delegate-config",J="slicc:ext-fetch";function Z(e){return!e||typeof e!="object"?!1:e.type===xe}function A(e){if(!e)return null;let t;try{t=new URL(e)}catch{return null}if(t.searchParams.get(Y)!==W)return null;let r=t.searchParams.get("ext");return r?{extensionId:r}:null}function ee(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 k=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 te(e){return Ee.has(e)}function re(e){let t=e;return t?.type==="window"&&t.frameType==="top-level"}function se(){let e=[];return{notify(){let t=e;e=[];for(let r of t)r()},wait(t){return new Promise(r=>{let s=!1,n=()=>{s||(s=!0,clearTimeout(a),e=e.filter(c=>c!==n),r())},a=setTimeout(n,t);e.push(n)})}}}var Re=P,Me=200,ke=new Set(["stat","readdir","exists"]);function _e(e){switch(e){case"ENOENT":return 404;case"EACCES":return 403;case"EISDIR":case"ENOTDIR":case"EINVAL":return 400;case"EIO":return 503;default:return 500}}async function ne(e){let t=new URL(e.url);if(!t.pathname.startsWith(R))return null;let r=t.pathname.slice(R.length-1),s;try{s=r.split("/").map(decodeURIComponent).join("/")}catch{return null}let n=e.headers.get(O)??"";if(e.method==="POST"){let c=await e.arrayBuffer();return{token:n,op:"write",path:s,body:new Uint8Array(c)}}let a=t.searchParams.get("op");return a&&ke.has(a)?{token:n,op:a,path:s}:{token:n,op:"read",path:s}}function we(e){if(!e.ok){let r=e.errno??"EIO";return new Response(e.message??r,{status:_e(r),headers:{[E]:r,[h]:"1"}})}if(e.kind==="json")return new Response(JSON.stringify(e.json??null),{status:200,headers:{"content-type":"application/json",[h]:"1"}});let t=e.kind==="bytes"?new Uint8Array(e.bytes):new Uint8Array(0);return new Response(t,{status:200,headers:{"content-type":"application/octet-stream",[h]:"1"}})}function oe(e,t,r={}){let s=r.timeoutMs??Re,n=r.retryIntervalMs??Me,a=crypto.randomUUID();return new Promise(c=>{let u=!1,f=!1,p,g,d=()=>{for(let l of e)l.removeEventListener("message",i);p&&clearInterval(p),g&&clearTimeout(g)},o=l=>{f||(f=!0,d(),c(l))},i=l=>{let y=l.data;if(!(!y||y.id!==a)){if(y.type===B){u=!0,p&&clearInterval(p);return}y.type===q&&o(we(y))}};for(let l of e)l.addEventListener("message",i);let S=()=>{for(let l of e)l.postMessage({type:D,id:a,...t})};S(),p=setInterval(()=>{u||S()},n),g=setTimeout(()=>{o(new Response("sync-fs bridge timeout",{status:503,headers:{[E]:"EIO",[h]:"1"}}))},s)})}var be="/api/fetch-proxy",_="x-bypass-llm-proxy",ce=new M,le=new k,Ce=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")return;if(X(e.data)){ce.set(t.id,{apiBaseUrl:e.data.apiBaseUrl,token:e.data.token});return}if(Z(e.data)){le.set(t.id,{extensionId:e.data.extensionId});return}let r=e.data;if(r?.type===N&&typeof r.nonce=="string"){re(t)&&ve(r.nonce);return}});self.addEventListener("fetch",e=>{let t=e.request;if(t.headers.get(_)==="1"||te(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(Te(t,e.clientId||null)))});var T=new Map,ue=se();function ie(){return[...T.values()]}function ve(e){T.has(e)||(T.set(e,new BroadcastChannel(F(e))),ue.notify())}async function Ae(){let e=await self.clients.matchAll({type:"window"}),t={type:L};for(let r of e)r.postMessage(t)}self.addEventListener("fetch",e=>{let t=new URL(e.request.url);t.origin===self.location.origin&&t.pathname.startsWith(R)&&e.respondWith((async()=>{let r=await ne(e.request);if(!r)return new Response("sync-fs bridge: malformed path",{status:400,headers:{[E]:"EINVAL",[h]:"1"}});let s=ie();return s.length===0&&(Ae(),await ue.wait(H),s=ie(),s.length===0)?new Response("sync-fs bridge not ready",{status:503,headers:{[E]:"EIO",[h]:"1"}}):oe(s,r)})())});async function Te(e,t){let r=e.url,s={};e.headers.forEach((m,x)=>{x.toLowerCase()!==_&&(s[x]=m)});let n=C(s),a=new Headers;for(let[m,x]of Object.entries(n))a.set(m,x);a.set("X-Target-URL",r);let c=ce.get(t),u=le.get(t),f=await Ie(t),p=c||u?[]:await Ue(),g=[f,...p],d=ee(u,g);if(d){let m=await Fe();if(m)return Le(e,d,m,r)}let o=K(c,g);if(o&&Q(e.url,o.apiBaseUrl)){let m=new Headers(e.headers);m.set(_,"1");let x={method:e.method,headers:m,cache:"no-store",credentials:e.credentials,redirect:"manual",signal:e.signal,body:await ae(e)};return v(await fetch(e.url,x))}o&&a.set(U,o.token);let i=z(be,o),S=await ae(e),l={method:e.method,headers:a,cache:"no-store",credentials:"omit",redirect:"manual",signal:e.signal,body:S},y=await fetch(i,l);return v(y)}async function ae(e){if(e.method==="GET"||e.method==="HEAD")return;let t=await e.arrayBuffer();return t.byteLength>0?t:void 0}async function Ie(e){if(!e)return null;try{return(await self.clients.get(e))?.url??null}catch{return null}}async function Ue(){try{return(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map(t=>t.url).filter(t=>!!t)}catch{return[]}}async function Fe(){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 Ne(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}async function Le(e,t,r,s){let n={};e.headers.forEach((d,o)=>{o.toLowerCase()!==_&&(n[o]=d)});let a=C(n),c,u=!1;if(e.method!=="GET"&&e.method!=="HEAD"){let d=await e.arrayBuffer();d.byteLength>Ce?u=!0:d.byteLength>0&&(c=Ne(new Uint8Array(d)))}let f=new MessageChannel,{responsePromise:p}=$(f.port1),g={type:J,requestId:Oe(),extensionId:t.extensionId,request:{url:s,method:e.method,headers:a,bodyBase64:c,requestBodyTooLarge:u}};return r.postMessage(g,[f.port2]),p}function Oe(){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-jD3wsTHm.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BEpKhlTz.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-Dezn_h7o.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
@@ -24,21 +24,21 @@
24
24
  <link rel="modulepreload" crossorigin href="/assets/port-bridge-client-CdvMlimf.js">
25
25
  <link rel="modulepreload" crossorigin href="/assets/secrets-bridge-client-CONYX8PU.js">
26
26
  <link rel="modulepreload" crossorigin href="/assets/tool-ui-DfXu6quJ.js">
27
- <link rel="modulepreload" crossorigin href="/assets/providers-C-C_QZBA.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/providers-O8pbKDYe.js">
28
28
  <link rel="modulepreload" crossorigin href="/assets/panel-rpc-DmJSNs0I.js">
29
29
  <link rel="modulepreload" crossorigin href="/assets/transform-messages-fFaW-DLG.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/bedrock-camp-BEi8MYUS.js">
31
- <link rel="modulepreload" crossorigin href="/assets/account-store-Bkt-sHjk.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/account-store-C8V8X8M6.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/electron-overlay-route-CjT6k9Df.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/bridge-launch-params-jegYRGJ6.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/messages-BD4p8GuF.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/tray-runtime-config-DJIIJaBR.js">
36
- <link rel="modulepreload" crossorigin href="/assets/setup-sudo-C7mksJ74.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/setup-sudo-Cdu6ayLR.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/telemetry-C8rZr13D.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/tray-follower-status-CyJIKXH4.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/clipboard-DuHpK59o.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/tray-join-url-BIvzbiFR.js">
41
- <link rel="modulepreload" crossorigin href="/assets/provider-settings-DyFcREdE.js">
41
+ <link rel="modulepreload" crossorigin href="/assets/provider-settings-CkVs8no7.js">
42
42
  </head>
43
43
  <body>
44
44
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sliccy",
3
- "version": "5.61.0",
3
+ "version": "5.63.0",
4
4
  "description": "Browser-based coding agent with thin CLI server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -69,7 +69,7 @@
69
69
  "start:extension": "npm run build -w @slicc/chrome-extension && npm run dev -- --profile=extension",
70
70
  "lint": "biome check --write . && prettier --write . && npm run lint:docs && npm run lint:skills && npm run lint:no-innerhtml && npm run lint:no-ui-in-providers && npm run lint:patches && npm run lint:no-raw-chrome-runtime-id && npm run lint:hosted-origin",
71
71
  "lint:ci": "biome check . && prettier --check . && npm run lint:docs && npm run lint:skills -- --strict && npm run lint:no-innerhtml && npm run lint:no-ui-in-providers && npm run lint:patches && npm run lint:no-raw-chrome-runtime-id && npm run lint:hosted-origin",
72
- "lint:docs": "node packages/dev-tools/tools/check-doc-sizes.mjs",
72
+ "lint:docs": "node packages/dev-tools/tools/check-doc-sizes.mjs && node packages/dev-tools/tools/check-agents-symlinks.mjs && node packages/dev-tools/tools/check-doc-refs.mjs",
73
73
  "lint:skills": "node packages/dev-tools/tools/lint-skills.mjs",
74
74
  "lint:no-innerhtml": "node packages/dev-tools/tools/check-no-innerhtml.mjs",
75
75
  "lint:no-ui-in-providers": "node packages/dev-tools/tools/check-no-ui-imports-in-providers.mjs",
@@ -111,7 +111,7 @@
111
111
  "lint-staged": "17.0.8",
112
112
  "patch-package": "8.0.1",
113
113
  "playwright": "^1.58.2",
114
- "prettier": "3.9.4",
114
+ "prettier": "3.9.5",
115
115
  "semantic-release": "25.0.5",
116
116
  "tsx": "4.23.0",
117
117
  "typescript": "^6.0.0",