sliccy 3.1.0 → 3.2.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.
- package/README.md +1 -1
- package/dist/ui/assets/__vite-browser-external-B0Aozsa-.js +1 -0
- package/dist/ui/assets/adobe-CIhJaB8m.js +1 -0
- package/dist/ui/assets/adobe-nI2lXFZS.js +2 -0
- package/dist/ui/assets/agent-bridge-BOSnTfFR.js +1 -0
- package/dist/ui/assets/{agent-message-to-chat-CO-_I0_3.js → agent-message-to-chat-DWcpzWsT.js} +1 -1
- package/dist/ui/assets/anthropic-DSZwm6Il.js +39 -0
- package/dist/ui/assets/{anthropic-CW4Fql_O.js → anthropic-Dr7XjLnI.js} +2 -2
- package/dist/ui/assets/azure-openai-B0c3bdmX.js +1 -0
- package/dist/ui/assets/azure-openai-Sl6IRfiF.js +1 -0
- package/dist/ui/assets/azure-openai-responses-CyInI5pN.js +1 -0
- package/dist/ui/assets/azure-openai-responses-DlELGil5.js +1 -0
- package/dist/ui/assets/{bsh-watchdog-0KPLx0BS.js → bsh-watchdog-COpOvHJO.js} +1 -1
- package/dist/ui/assets/{cdp-zqEKj8zX.js → cdp-aFMV5D5H.js} +4 -4
- package/dist/ui/assets/cost-command-CAuxDd3O.js +1 -0
- package/dist/ui/assets/{dist-N8xNrrAa.js → dist-BTGs16AV.js} +1 -1
- package/dist/ui/assets/{dist-C867mOPm.js → dist-BcBxL8nL.js} +1 -1
- package/dist/ui/assets/{dist-VRuvLOER.js → dist-Bgcuvc8h.js} +1 -1
- package/dist/ui/assets/{dist-Dv2Nk_Uq.js → dist-EkY3RL7q.js} +1 -1
- package/dist/ui/assets/{dist-BT9E_vUE.js → dist-cK1g1pHF.js} +1 -1
- package/dist/ui/assets/{es-RM_apZN6.js → es-Fg9CJu2a.js} +5 -5
- package/dist/ui/assets/follower-sprinkle-bridge-DhazpaQ4.js +1 -0
- package/dist/ui/assets/github-B6QNU-3A.js +2 -0
- package/dist/ui/assets/github-sM7l0VoL.js +1 -0
- package/dist/ui/assets/google-CnlnlpZP.js +1 -0
- package/dist/ui/assets/google-D6c_sIut.js +1 -0
- package/dist/ui/assets/google-shared-BulFztPz.js +11 -0
- package/dist/ui/assets/{google-shared-D_qkojxq.js → google-shared-DhHenZn9.js} +3 -3
- package/dist/ui/assets/google-vertex-B1MO0HYD.js +1 -0
- package/dist/ui/assets/google-vertex-Bagm5hdl.js +1 -0
- package/dist/ui/assets/index-CVQ53vhp.js +1574 -0
- package/dist/ui/assets/intercepted-oauth-CLysites.js +1 -0
- package/dist/ui/assets/kernel-worker-DXnVtalJ.js +7651 -0
- package/dist/ui/assets/{local-llm-eF8GDq5b.js → local-llm-D75Fgjs0.js} +2 -2
- package/dist/ui/assets/magick-wasm-2lkhWhgt.js +1 -0
- package/dist/ui/assets/{mistral-BGhArSbR.js → mistral-BRR29uMI.js} +2 -2
- package/dist/ui/assets/{mistral-BjvHW1zm.js → mistral-BlIxxwbs.js} +2 -2
- package/dist/ui/assets/{nuke-command-SaFQ52mr.js → nuke-command-DTqz_Ptx.js} +1 -1
- package/dist/ui/assets/oauth-bootstrap-BVwa_nfZ.js +1 -0
- package/dist/ui/assets/oauth-service-DPEJn1wm.js +1 -0
- package/dist/ui/assets/oauth-service-DqXJQYDI.js +1 -0
- package/dist/ui/assets/offscreen-client-CRpw9tqj.js +1 -0
- package/dist/ui/assets/onboarding-orchestrator-lQP1nZ0U.js +1 -0
- package/dist/ui/assets/openai-codex-responses-Dc1_JfHA.js +7 -0
- package/dist/ui/assets/openai-codex-responses-_IImRqdn.js +7 -0
- package/dist/ui/assets/openai-completions-Btrw7eXb.js +5 -0
- package/dist/ui/assets/openai-responses-C_hKR-4u.js +1 -0
- package/dist/ui/assets/openai-responses-JZsTLlZ6.js +1 -0
- package/dist/ui/assets/{openai-responses-shared-iv5WheAz.js → openai-responses-shared-C6-6OmQ7.js} +3 -3
- package/dist/ui/assets/{openai-responses-shared-iYgA7Khl.js → openai-responses-shared-QJEgheLX.js} +4 -4
- package/dist/ui/assets/panel-rpc-handlers-Daa9NEEL.js +1 -0
- package/dist/ui/assets/{py-realm-worker-vbqFsiux.js → py-realm-worker-zrXeREDr.js} +1 -1
- package/dist/ui/assets/pyodide-Bv1KSh-_.js +3 -0
- package/dist/ui/assets/pyodide-C5AaR78M.js +3 -0
- package/dist/ui/assets/remote-terminal-view-C7kjPBGc.js +6 -0
- package/dist/ui/assets/secret-env-BREbgKZt.js +1 -0
- package/dist/ui/assets/slicc-editor-D8qyzAmK.js +12 -0
- package/dist/ui/assets/{spawn-BCQJvlZ6.js → spawn-DDHiq6QX.js} +1 -1
- package/dist/ui/assets/{sql-wasm-DZVUCGLK.js → sql-wasm-C4rwSbnn.js} +2 -2
- package/dist/ui/assets/upgrade-detection-ARQ7pi6W.js +1 -0
- package/dist/ui/assets/xai-grok-CJqWJw1A.js +1 -0
- package/dist/ui/assets/xai-grok-dQuvw1db.js +1 -0
- package/dist/ui/assets/{xai-grok-sanitize-DTcvIA0E.js → xai-grok-sanitize-BeI8rdV5.js} +1 -1
- package/dist/ui/assets/{xai-grok-sanitize-DsBfxZb8.js → xai-grok-sanitize-CiOn_xsO.js} +1 -1
- package/dist/ui/electron-overlay-entry.js +7 -7
- package/dist/ui/index.html +1 -20
- package/dist/ui/packages/webapp/index.html +1 -20
- package/package.json +3 -3
- package/dist/ui/assets/__vite-browser-external-CTFk2Lkt.js +0 -1
- package/dist/ui/assets/__vite-browser-external-CdaqDer8.js +0 -1
- package/dist/ui/assets/adobe-B-pbWvsC.js +0 -1
- package/dist/ui/assets/adobe-sfsf_4qf.js +0 -2
- package/dist/ui/assets/agent-bridge-B-oWMlDX.js +0 -1
- package/dist/ui/assets/anthropic-4ASJTRhO.js +0 -39
- package/dist/ui/assets/azure-openai-BD_sHVsp.js +0 -1
- package/dist/ui/assets/azure-openai-aTVRkWSi.js +0 -1
- package/dist/ui/assets/azure-openai-responses-C_KSa6jj.js +0 -1
- package/dist/ui/assets/azure-openai-responses-Ci2gkluO.js +0 -1
- package/dist/ui/assets/backend-local-BTd37iLF.js +0 -9
- package/dist/ui/assets/backend-local-CfhYopTE.js +0 -9
- package/dist/ui/assets/bedrock-camp-Bds6qFqf.js +0 -4
- package/dist/ui/assets/bedrock-camp-uPFt7YMZ.js +0 -5
- package/dist/ui/assets/chunk-Cn1BcAw8.js +0 -1
- package/dist/ui/assets/chunk-jRWAZmH_.js +0 -1
- package/dist/ui/assets/cost-command-CKxW3T3V.js +0 -1
- package/dist/ui/assets/db-DPvmo9md.js +0 -1
- package/dist/ui/assets/diagnostics-Bab61WyO.js +0 -1
- package/dist/ui/assets/diagnostics-C5z6rwkV.js +0 -1
- package/dist/ui/assets/env-api-keys-BoL4zxcb.js +0 -1
- package/dist/ui/assets/env-api-keys-DEKGEdJy.js +0 -1
- package/dist/ui/assets/follower-sprinkle-bridge-D98CB4QW.js +0 -1
- package/dist/ui/assets/fs-B4oiCmB6.js +0 -4
- package/dist/ui/assets/fs-DjItwHb7.js +0 -3
- package/dist/ui/assets/git-config-CxvDN7N3.js +0 -7
- package/dist/ui/assets/github-43qAI71s.js +0 -2
- package/dist/ui/assets/github-Bz0AhHTO.js +0 -1
- package/dist/ui/assets/github-copilot-headers-DPO4cOSI.js +0 -1
- package/dist/ui/assets/google-CBK_Mvyz.js +0 -1
- package/dist/ui/assets/google-gejI0Xd8.js +0 -1
- package/dist/ui/assets/google-shared-BB2MKu9Q.js +0 -11
- package/dist/ui/assets/google-vertex-tM5T-lH5.js +0 -1
- package/dist/ui/assets/google-vertex-wc4xtIz9.js +0 -1
- package/dist/ui/assets/headers-CGhBAvcc.js +0 -1
- package/dist/ui/assets/index-Dr4P8kcB.js +0 -1424
- package/dist/ui/assets/intercepted-oauth-CnYe4Pun.js +0 -1
- package/dist/ui/assets/json-parse-CKelIhmU.js +0 -3
- package/dist/ui/assets/json-parse-Cu2r6BfV.js +0 -3
- package/dist/ui/assets/kernel-worker-DVMS1qoG.js +0 -7546
- package/dist/ui/assets/local-llm-pOzJZUC2.js +0 -2
- package/dist/ui/assets/logger-B-No_qN_.js +0 -1
- package/dist/ui/assets/logger-BHrAkMIS.js +0 -1
- package/dist/ui/assets/magick-wasm-BMFWa7e1.js +0 -1
- package/dist/ui/assets/magick-wasm-D4Na_fL8.js +0 -1
- package/dist/ui/assets/mime-types-4JXpZe6p.js +0 -1
- package/dist/ui/assets/mime-types-DL940yDZ.js +0 -1
- package/dist/ui/assets/mount-D4A-IhxD.js +0 -1
- package/dist/ui/assets/mount-DqMPMRkq.js +0 -2
- package/dist/ui/assets/mount-id-Ccy4_G8i.js +0 -1
- package/dist/ui/assets/mount-picker-popup-ys6_YNH0.js +0 -1
- package/dist/ui/assets/mount-table-store-BDnU4NqG.js +0 -1
- package/dist/ui/assets/oauth-bootstrap-gMsviobT.js +0 -1
- package/dist/ui/assets/oauth-service--O2P_cH3.js +0 -1
- package/dist/ui/assets/oauth-service-BXo87SGy.js +0 -1
- package/dist/ui/assets/offscreen-client-B70i1ydX.js +0 -1
- package/dist/ui/assets/onboarding-orchestrator-BDsGw7PC.js +0 -1
- package/dist/ui/assets/openai-CQMTwQw3.js +0 -16
- package/dist/ui/assets/openai-codex-responses-BH7I3fcD.js +0 -7
- package/dist/ui/assets/openai-codex-responses-Box9MCzN.js +0 -7
- package/dist/ui/assets/openai-completions-BnShqSeR.js +0 -5
- package/dist/ui/assets/openai-completions-DmV2esrh.js +0 -5
- package/dist/ui/assets/openai-responses-Cp1E557G.js +0 -1
- package/dist/ui/assets/openai-responses-DOCxF9QM.js +0 -1
- package/dist/ui/assets/panel-rpc-DMFq2vU_.js +0 -1
- package/dist/ui/assets/panel-rpc-handlers-D2yCpT8_.js +0 -1
- package/dist/ui/assets/panel-rpc-uLhnFoXD.js +0 -1
- package/dist/ui/assets/path-utils-C99GOg2c.js +0 -1
- package/dist/ui/assets/path-utils-CgbXfwyO.js +0 -1
- package/dist/ui/assets/preload-helper-ca-nBW7U.js +0 -1
- package/dist/ui/assets/provider-settings-B1ICPsZd.js +0 -63
- package/dist/ui/assets/provider-settings-Xmj6eRF8.js +0 -28
- package/dist/ui/assets/providers-DnwRSoOv.js +0 -1
- package/dist/ui/assets/pyodide-DOGWuEal.js +0 -3
- package/dist/ui/assets/pyodide-DhfjhWo1.js +0 -3
- package/dist/ui/assets/remote-cache-Cd8CL8Mo.js +0 -1
- package/dist/ui/assets/remote-terminal-view-BD1tHNzj.js +0 -6
- package/dist/ui/assets/sanitize-unicode-DFrWoF2t.js +0 -1
- package/dist/ui/assets/secret-env-LcaaxgBy.js +0 -1
- package/dist/ui/assets/shared-AafAvJaI.js +0 -1
- package/dist/ui/assets/simple-options-CVJdKrCb.js +0 -1
- package/dist/ui/assets/simple-options-D8vGmEnp.js +0 -1
- package/dist/ui/assets/slicc-editor-CFqadznu.js +0 -12
- package/dist/ui/assets/sprinkle-renderer-sJJO5bqF.js +0 -112
- package/dist/ui/assets/telemetry-D728iVf5.js +0 -1
- package/dist/ui/assets/tool-ui-D9h6SJkp.js +0 -1
- package/dist/ui/assets/tool-ui-DaAXBPJY.js +0 -1
- package/dist/ui/assets/tray-follower-status-hrOEFANe.js +0 -1
- package/dist/ui/assets/upgrade-detection-a__NoLEt.js +0 -1
- package/dist/ui/assets/xai-grok-DvJXZgXP.js +0 -1
- package/dist/ui/assets/xai-grok-cSrhflu0.js +0 -1
- /package/dist/ui/assets/{active-transport-DjJ32qlA.js → active-transport-CfU1UxY6.js} +0 -0
- /package/dist/ui/assets/{active-transport-lYMG0Gv5.js → active-transport-DeSPCdTV.js} +0 -0
- /package/dist/ui/assets/{addon-fit-CBYO9uVb.js → addon-fit-BDUxDgg1.js} +0 -0
- /package/dist/ui/assets/{addon-fit-CTgRqR5i.js → addon-fit-Dkm5m5XK.js} +0 -0
- /package/dist/ui/assets/{azure-ai-foundry-DtrzZiwo.js → azure-ai-foundry-1pnZpxAJ.js} +0 -0
- /package/dist/ui/assets/{azure-ai-foundry--QIByvkN.js → azure-ai-foundry-k_w7vD5C.js} +0 -0
- /package/dist/ui/assets/{chat-fixture-t_1Cmb9j.js → chat-fixture-BNN19l1e.js} +0 -0
- /package/dist/ui/assets/{dist-B-Md2rjs.js → dist-BNe7ZIzA.js} +0 -0
- /package/dist/ui/assets/{dist-BXMOjFxx.js → dist-BYoCEWmq.js} +0 -0
- /package/dist/ui/assets/{dist-CZgcx_4U.js → dist-BrjVVq8c.js} +0 -0
- /package/dist/ui/assets/{git-config-DIdLP3yo.js → git-config-DFJqG7AS.js} +0 -0
- /package/dist/ui/assets/{github-copilot-headers-BKQV7zrp.js → github-copilot-headers-CTUP_cqn.js} +0 -0
- /package/dist/ui/assets/{hash-K0cSe8jy.js → hash-B9Dtr1VK.js} +0 -0
- /package/dist/ui/assets/{hash-ekRFATsu.js → hash-C3GX0Zuo.js} +0 -0
- /package/dist/ui/assets/{headers-C4jF_HTA.js → headers-AeYLn7L4.js} +0 -0
- /package/dist/ui/assets/{lick-manager-proxy-D4WRd8z3.js → lick-manager-proxy-DfectiMI.js} +0 -0
- /package/dist/ui/assets/{openai-DxnCgV1v.js → openai-Bf1npfRy.js} +0 -0
- /package/dist/ui/assets/{page-storage-sync-M2qhyuvc.js → page-storage-sync-BxtXNbwY.js} +0 -0
- /package/dist/ui/assets/{pdfjs-Cesr9Csk.js → pdfjs-DDDkZHZ4.js} +0 -0
- /package/dist/ui/assets/{rum-C0g6MAOC.js → rum-wVO4iYd-.js} +0 -0
- /package/dist/ui/assets/{sanitize-unicode-BA6bNBBh.js → sanitize-unicode-h0KEBmEw.js} +0 -0
- /package/dist/ui/assets/{sprinkle-bridge-channel-B_tegUwc.js → sprinkle-bridge-channel-BBxRgvga.js} +0 -0
- /package/dist/ui/assets/{sprinkle-bridge-channel-C2blpBXT.js → sprinkle-bridge-channel-no1Jz9ii.js} +0 -0
- /package/dist/ui/assets/{sprinkle-proxy-CgcbIA81.js → sprinkle-proxy-rF3NSOGq.js} +0 -0
- /package/dist/ui/assets/{src-lJxZtwWF.js → src-BQRb5emh.js} +0 -0
- /package/dist/ui/assets/{xai-grok-errors-DGVLpB4k.js → xai-grok-errors-CGcnoVae.js} +0 -0
- /package/dist/ui/assets/{xai-grok-errors-B7OqxH_0.js → xai-grok-errors-WbFsMZum.js} +0 -0
- /package/dist/ui/assets/{xai-grok-models-DGbQVjGO.js → xai-grok-models-0q2zveAT.js} +0 -0
- /package/dist/ui/assets/{xai-grok-models-0CbvNCeN.js → xai-grok-models-cvcIXmNM.js} +0 -0
- /package/dist/ui/assets/{xterm-CguO-Jtb.js → xterm-D8ldLLKi.js} +0 -0
- /package/dist/ui/assets/{xterm-BcRgm-P0.js → xterm-DhusGoAm.js} +0 -0
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-BT9E_vUE.js","assets/dist-B-Md2rjs.js","assets/dist-N8xNrrAa.js","assets/dist-VRuvLOER.js","assets/dist-C867mOPm.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";import{$ as t,A as n,B as r,D as i,E as a,F as o,H as s,I as c,J as l,L as u,N as d,P as f,Q as p,R as m,S as ee,U as te,V as h,X as g,Y as ne,Z as re,at as _,c as ie,d as ae,j as oe,k as se,n as ce,nt as v,q as y,t as le,v as b,w as x,x as S,y as C,z as ue}from"./dist-B-Md2rjs.js";var de=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=T(e.state,n.from);return r.line?fe(e):r.block?me(e):!1};function w(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}var fe=w(ve,0),pe=w(_e,0),me=w((e,t)=>_e(e,t,ge(t)),0);function T(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}var E=50;function he(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-E,r),o=e.sliceDoc(i,i+E),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=2*E?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+E),d=e.sliceDoc(i-E,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function ge(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function _e(e,t,n=t.selection.ranges){let r=n.map(e=>T(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>he(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function ve(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=T(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}var D=u.define(),ye=u.define(),be=te.define(),xe=te.define({combine(e){return re(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Se=l.define({create(){return P.empty},update(e,t){let n=t.state.facet(xe),r=t.annotation(D);if(r){let i=A.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?j(o,o.length,n.minDepth,i):je(o,t.startState.selection),new P(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(ye);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(g.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=A.fromTransaction(t),o=t.annotation(g.time),s=t.annotation(g.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new P(e.done.map(A.fromJSON),e.undone.map(A.fromJSON))}});function Ce(e={}){return[Se,xe.of(e),n.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?we:e.inputType==`historyRedo`?k:null;return n?(e.preventDefault(),n(t)):!1}})]}function O(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(Se,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}var we=O(0,!1),k=O(1,!1),Te=O(0,!0),Ee=O(1,!0),A=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&ue.fromJSON(t.changes),[],t.mapped&&m.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=M;for(let e of t.startState.facet(be)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,M)}static selection(t){return new e(void 0,M,void 0,void 0,t)}};function j(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function De(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function Oe(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function ke(e,t){return e.length?t.length?e.concat(t):e:t}var M=[],Ae=200;function je(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Ae));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),j(e,e.length-1,1e9,n.setSelAfter(r)))}else return[A.selection([t])]}function Me(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function N(e,t){if(!e.length)return e;let n=e.length,r=M;for(;n;){let i=Ne(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}else t=i.mapped,n--,r=i.selectionsAfter}return r.length?[A.selection(r)]:M}function Ne(e,t,n){let r=ke(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):M,n);if(!e.changes)return A.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new A(i,y.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}var Pe=/^(input\.type|delete)($|\.)/,P=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||Pe.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,De(s.changes,t.changes))||r==`input.type.compose`)?j(o,o.length-1,i.minDepth,new A(t.changes.compose(s.changes),ke(y.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,M)):j(o,o.length,i.minDepth,t),new e(o,M,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:M;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&Oe(a[a.length-1],t)?this:new e(je(this.done,t),this.undone,n,r)}addMapping(t){return new e(N(this.done,t),N(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:D.of({side:e,rest:Me(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?M:r.slice(0,r.length-1);return i.mapped&&(n=N(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:D.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}else return null}};P.empty=new P(M,M);var Fe=[{key:`Mod-z`,run:we,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:k,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:k,preventDefault:!0},{key:`Mod-u`,run:Te,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:Ee,preventDefault:!0}];function F(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function I(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function L({state:e,dispatch:t},n){let r=F(e.selection,n);return r.eq(e.selection,!0)?!1:(t(I(e,r)),!0)}function R(e,t){return h.cursor(t?e.to:e.from)}function Ie(e,t){return L(e,n=>n.empty?e.moveByChar(n,t):R(n,t))}function z(e){return e.textDirectionAt(e.state.selection.main.head)==se.LTR}var B=e=>Ie(e,!z(e)),V=e=>Ie(e,z(e));function H(e,t){return L(e,n=>n.empty?e.moveByGroup(n,t):R(n,t))}var Le=e=>H(e,!z(e)),Re=e=>H(e,z(e));typeof Intl<`u`&&Intl.Segmenter;function ze(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function U(e,t,n){let r=i(e).resolveInner(t.head),a=n?_.closedBy:_.openedBy;for(let i=t.head;;){let t=n?r.childAfter(i):r.childBefore(i);if(!t)break;ze(e,t,a)?r=t:i=n?t.to:t.from}let o=r.type.prop(a),s,c;return c=o&&(s=n?x(e,r.from,1):x(e,r.to,-1))&&s.matched?n?s.end.to:s.end.from:n?r.to:r.from,h.cursor(c,n?-1:1)}var Be=e=>L(e,t=>U(e.state,t,!z(e))),Ve=e=>L(e,t=>U(e.state,t,z(e)));function W(e,t){return L(e,n=>{if(!n.empty)return R(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}var He=e=>W(e,!1),Ue=e=>W(e,!0);function We(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,r=0,i=0,a;if(t){for(let t of e.state.facet(n.scrollMargins)){let n=t(e);n?.top&&(r=Math.max(n?.top,r)),n?.bottom&&(i=Math.max(n?.bottom,i))}a=e.scrollDOM.clientHeight-r-i}else a=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:r,marginBottom:i,selfScroll:t,height:Math.max(e.defaultLineHeight,a-5)}}function Ge(e,t){let r=We(e),{state:i}=e,a=F(i.selection,n=>n.empty?e.moveVertically(n,t,r.height):R(n,t));if(a.eq(i.selection))return!1;let o;if(r.selfScroll){let t=e.coordsAtPos(i.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),c=s.top+r.marginTop,l=s.bottom-r.marginBottom;t&&t.top>c&&t.bottom<l&&(o=n.scrollIntoView(a.main.head,{y:`start`,yMargin:t.top-c}))}return e.dispatch(I(i,a),{effects:o}),!0}var Ke=e=>Ge(e,!1),G=e=>Ge(e,!0);function K(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=h.cursor(r.from+n))}return i}var qe=e=>L(e,t=>K(e,t,!0)),Je=e=>L(e,t=>K(e,t,!1)),Ye=e=>L(e,t=>K(e,t,!z(e))),Xe=e=>L(e,t=>K(e,t,z(e))),Ze=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).from,1)),Qe=e=>L(e,t=>h.cursor(e.lineBlockAt(t.head).to,-1));function $e(e,t,n){let r=!1,i=F(e.selection,t=>{let i=x(e,t.head,-1)||x(e,t.head,1)||t.head>0&&x(e,t.head-1,1)||t.head<e.doc.length&&x(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?h.range(t.anchor,a):h.cursor(a)});return r?(t(I(e,i)),!0):!1}var et=({state:e,dispatch:t})=>$e(e,t,!1);function q(e,t){let n=F(e.state.selection,e=>{let n=t(e);return h.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0,n.assoc)});return n.eq(e.state.selection)?!1:(e.dispatch(I(e.state,n)),!0)}function tt(e,t){return q(e,n=>e.moveByChar(n,t))}var nt=e=>tt(e,!z(e)),rt=e=>tt(e,z(e));function it(e,t){return q(e,n=>e.moveByGroup(n,t))}var at=e=>it(e,!z(e)),ot=e=>it(e,z(e)),st=e=>q(e,t=>U(e.state,t,!z(e))),ct=e=>q(e,t=>U(e.state,t,z(e)));function lt(e,t){return q(e,n=>e.moveVertically(n,t))}var ut=e=>lt(e,!1),dt=e=>lt(e,!0);function ft(e,t){return q(e,n=>e.moveVertically(n,t,We(e).height))}var pt=e=>ft(e,!1),mt=e=>ft(e,!0),ht=e=>q(e,t=>K(e,t,!0)),gt=e=>q(e,t=>K(e,t,!1)),_t=e=>q(e,t=>K(e,t,!z(e))),vt=e=>q(e,t=>K(e,t,z(e))),yt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).from)),bt=e=>q(e,t=>h.cursor(e.lineBlockAt(t.head).to)),xt=({state:e,dispatch:t})=>(t(I(e,{anchor:0})),!0),St=({state:e,dispatch:t})=>(t(I(e,{anchor:e.doc.length})),!0),Ct=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:0})),!0),wt=({state:e,dispatch:t})=>(t(I(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Tt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),Et=({state:e,dispatch:t})=>{let n=Q(e).map(({from:t,to:n})=>h.range(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:`select`})),!0},Dt=({state:e,dispatch:t})=>{let n=F(e.selection,t=>{let n=i(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return h.range(n.to,n.from)}return t});return n.eq(e.selection)?!1:(t(I(e,n)),!0)};function Ot(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}else if(r.head==n.head)break;else n=r}}return i.length==r.ranges.length?!1:(e.dispatch(I(n,h.create(i,i.length-1))),!0)}var kt=e=>Ot(e,!1),At=e=>Ot(e,!0),jt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(I(e,r)),!0):!1};function J(e,t){if(e.state.readOnly)return!1;let r=`delete.selection`,{state:i}=e,a=i.changeByRange(n=>{let{from:i,to:a}=n;if(i==a){let o=t(n);o<i?(r=`delete.backward`,o=Y(e,o,!1)):o>i&&(r=`delete.forward`,o=Y(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=Y(e,i,!1),a=Y(e,a,!0);return i==a?{range:n}:{changes:{from:i,to:a},range:h.cursor(i,i<n.head?-1:1)}});return a.changes.empty?!1:(e.dispatch(i.update(a,{scrollIntoView:!0,userEvent:r,effects:r==`delete.selection`?n.announce.of(i.phrase(`Selection deleted`)):void 0})),!0)}function Y(e,t,r){if(e instanceof n)for(let i of e.state.facet(n.atomicRanges).map(t=>t(e)))i.between(t,t,(e,n)=>{e<t&&n>t&&(t=r?n:e)});return t}var Mt=(e,n,r)=>J(e,i=>{let a=i.from,{state:o}=e,s=o.doc.lineAt(a),c,l;if(r&&!n&&a>s.from&&a<s.from+200&&!/[^ \t]/.test(c=s.text.slice(0,a-s.from))){if(c[c.length-1]==` `)return a-1;let e=p(c,o.tabSize)%b(o)||b(o);for(let t=0;t<e&&c[c.length-1-t]==` `;t++)a--;l=a}else l=t(s.text,a-s.from,n,n)+s.from,l==a&&s.number!=(n?o.doc.lines:1)?l+=n?1:-1:!n&&/[\ufe00-\ufe0f]/.test(s.text.slice(l-s.from,a-s.from))&&(l=t(s.text,l-s.from,!1,!1)+s.from);return l}),X=e=>Mt(e,!1,!0),Nt=e=>Mt(e,!0,!1),Pt=(e,n)=>J(e,r=>{let i=r.head,{state:a}=e,o=a.doc.lineAt(i),s=a.charCategorizer(i);for(let e=null;;){if(i==(n?o.to:o.from)){i==r.head&&o.number!=(n?a.doc.lines:1)&&(i+=n?1:-1);break}let c=t(o.text,i-o.from,n)+o.from,l=o.text.slice(Math.min(i,c)-o.from,Math.max(i,c)-o.from),u=s(l);if(e!=null&&u!=e)break;(l!=` `||i!=r.head)&&(e=u),i=c}return i}),Z=e=>Pt(e,!1),Ft=e=>Pt(e,!0),It=e=>J(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Lt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),Rt=e=>J(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),zt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:ne.of([``,``])},range:h.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},Bt=({state:e,dispatch:n})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{if(!n.empty||n.from==0||n.from==e.doc.length)return{range:n};let r=n.from,i=e.doc.lineAt(r),a=r==i.from?r-1:t(i.text,r-i.from,!1)+i.from,o=r==i.to?r+1:t(i.text,r-i.from,!0)+i.from;return{changes:{from:a,to:o,insert:e.doc.slice(r,o).append(e.doc.slice(a,r))},range:h.cursor(o)}});return r.changes.empty?!1:(n(e.update(r,{scrollIntoView:!0,userEvent:`move.character`})),!0)};function Q(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Vt(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of Q(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(h.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(h.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}var Ht=({state:e,dispatch:t})=>Vt(e,t,!1),Ut=({state:e,dispatch:t})=>Vt(e,t,!0);function Wt(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of Q(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}var Gt=({state:e,dispatch:t})=>Wt(e,t,!1),Kt=({state:e,dispatch:t})=>Wt(e,t,!0),qt=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Q(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=F(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0};function Jt(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=i(e).resolveInner(t),r=n.childBefore(t),a=n.childAfter(t),o;return r&&a&&r.to<=t&&a.from>=t&&(o=r.type.prop(_.closedBy))&&o.indexOf(a.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(a.from).from&&!/\S/.test(e.sliceDoc(r.to,a.from))?{from:r.to,to:a.from}:null}var Yt=Zt(!1),Xt=Zt(!0);function Zt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&Jt(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new ce(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=C(s,r);for(c??=p(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,S(t,c)];return o&&l.push(S(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:ne.of(l)},range:h.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function $(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:h.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Qt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new ce(e,{overrideIndentation:e=>n[e]??-1}),i=$(e,(t,i,a)=>{let o=C(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=S(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},$t=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{n.push({from:t.from,insert:e.facet(ee)})}),{userEvent:`input.indent`})),!0),en=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update($(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=p(r,e.tabSize),a=0,o=S(e,Math.max(0,i-b(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),tn=e=>(e.setTabFocusMode(),!0),nn=[{key:`Ctrl-b`,run:B,shift:nt,preventDefault:!0},{key:`Ctrl-f`,run:V,shift:rt},{key:`Ctrl-p`,run:He,shift:ut},{key:`Ctrl-n`,run:Ue,shift:dt},{key:`Ctrl-a`,run:Ze,shift:yt},{key:`Ctrl-e`,run:Qe,shift:bt},{key:`Ctrl-d`,run:Nt},{key:`Ctrl-h`,run:X},{key:`Ctrl-k`,run:It},{key:`Ctrl-Alt-h`,run:Z},{key:`Ctrl-o`,run:zt},{key:`Ctrl-t`,run:Bt},{key:`Ctrl-v`,run:G}],rn=[{key:`ArrowLeft`,run:B,shift:nt,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:Le,shift:at,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:Ye,shift:_t,preventDefault:!0},{key:`ArrowRight`,run:V,shift:rt,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:Re,shift:ot,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:Xe,shift:vt,preventDefault:!0},{key:`ArrowUp`,run:He,shift:ut,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:xt,shift:Ct},{mac:`Ctrl-ArrowUp`,run:Ke,shift:pt},{key:`ArrowDown`,run:Ue,shift:dt,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:St,shift:wt},{mac:`Ctrl-ArrowDown`,run:G,shift:mt},{key:`PageUp`,run:Ke,shift:pt},{key:`PageDown`,run:G,shift:mt},{key:`Home`,run:Je,shift:gt,preventDefault:!0},{key:`Mod-Home`,run:xt,shift:Ct},{key:`End`,run:qe,shift:ht,preventDefault:!0},{key:`Mod-End`,run:St,shift:wt},{key:`Enter`,run:Yt,shift:Yt},{key:`Mod-a`,run:Tt},{key:`Backspace`,run:X,shift:X,preventDefault:!0},{key:`Delete`,run:Nt,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:Z,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:Ft,preventDefault:!0},{mac:`Mod-Backspace`,run:Lt,preventDefault:!0},{mac:`Mod-Delete`,run:Rt,preventDefault:!0}].concat(nn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),an=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:Be,shift:st},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:Ve,shift:ct},{key:`Alt-ArrowUp`,run:Ht},{key:`Shift-Alt-ArrowUp`,run:Gt},{key:`Alt-ArrowDown`,run:Ut},{key:`Shift-Alt-ArrowDown`,run:Kt},{key:`Mod-Alt-ArrowUp`,run:kt},{key:`Mod-Alt-ArrowDown`,run:At},{key:`Escape`,run:jt},{key:`Mod-Enter`,run:Xt},{key:`Alt-l`,mac:`Ctrl-l`,run:Et},{key:`Mod-i`,run:Dt,preventDefault:!0},{key:`Mod-[`,run:en},{key:`Mod-]`,run:$t},{key:`Mod-Alt-\\`,run:Qt},{key:`Shift-Mod-k`,run:qt},{key:`Shift-Mod-\\`,run:et},{key:`Mod-/`,run:de},{key:`Alt-A`,run:pe},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:tn}].concat(rn),on={json:async()=>{let{json:t}=await e(async()=>{let{json:e}=await import(`./dist-BT9E_vUE.js`);return{json:e}},__vite__mapDeps([0,1,2]));return t()},markdown:async()=>{let{markdown:t}=await e(async()=>{let{markdown:e}=await import(`./dist-VRuvLOER.js`);return{markdown:e}},__vite__mapDeps([3,4,1,2]));return t()},html:async()=>{let{html:t}=await e(async()=>{let{html:e}=await import(`./dist-C867mOPm.js`);return{html:e}},__vite__mapDeps([4,1,2]));return t()}};function sn(e){return e?le.define([{tag:v.keyword,color:`#d19afc`},{tag:v.string,color:`#87d68d`},{tag:v.number,color:`#f5a76c`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#7cc5e9`},{tag:v.function(v.variableName),color:`#7ea8f8`},{tag:v.propertyName,color:`#7ea8f8`},{tag:v.bool,color:`#f5a76c`},{tag:v.null,color:`#f5a76c`},{tag:v.operator,color:`#7cc5e9`},{tag:v.typeName,color:`#d19afc`},{tag:v.tagName,color:`#d19afc`},{tag:v.attributeName,color:`#87d68d`},{tag:v.attributeValue,color:`#87d68d`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}]):le.define([{tag:v.keyword,color:`#8839ef`},{tag:v.string,color:`#40a02b`},{tag:v.number,color:`#d05d1a`},{tag:v.comment,color:`#8a8a8a`,fontStyle:`italic`},{tag:v.punctuation,color:`#1e66f5`},{tag:v.function(v.variableName),color:`#2b6cb0`},{tag:v.propertyName,color:`#2b6cb0`},{tag:v.bool,color:`#d05d1a`},{tag:v.null,color:`#d05d1a`},{tag:v.operator,color:`#1e66f5`},{tag:v.typeName,color:`#8839ef`},{tag:v.tagName,color:`#8839ef`},{tag:v.attributeName,color:`#40a02b`},{tag:v.attributeValue,color:`#40a02b`},{tag:v.heading,fontWeight:`bold`},{tag:v.emphasis,fontStyle:`italic`},{tag:v.strong,fontWeight:`bold`}])}function cn(e){return!(e.closest?.(`.theme-light`)||document.documentElement.classList.contains(`theme-light`))}function ln(){return n.theme({"&":{fontSize:`13px`,border:`1px solid var(--s2-border-subtle, #333)`,borderRadius:`var(--s2-radius-default, 8px)`,overflow:`hidden`},"&.cm-focused":{outline:`none`,borderColor:`var(--s2-border-focus, var(--s2-accent, #3562ff))`},".cm-content":{fontFamily:`var(--s2-font-mono, "SF Mono", "Fira Code", Consolas, monospace)`,caretColor:`var(--s2-accent, #3562ff)`,padding:`8px 0`},".cm-scroller":{overflow:`auto`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`var(--s2-accent, #3562ff)`},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 20%, transparent)`},".cm-activeLine":{background:`color-mix(in srgb, var(--s2-accent, #3562ff) 5%, transparent)`},".cm-gutters":{backgroundColor:`var(--s2-bg-layer-1, #1a1a1a)`,color:`var(--s2-content-tertiary, #5a5a5a)`,borderRight:`none`,borderRadius:`var(--s2-radius-default, 8px) 0 0 var(--s2-radius-default, 8px)`},".cm-lineNumbers .cm-gutterElement":{padding:`0 8px 0 12px`,minWidth:`32px`},".cm-placeholder":{color:`var(--s2-content-tertiary, #5a5a5a)`,fontStyle:`italic`}})}var un=`
|
|
3
|
-
:host {
|
|
4
|
-
display: block;
|
|
5
|
-
background: var(--s2-bg-layer-2, var(--s2-gray-75, #252525));
|
|
6
|
-
border-radius: var(--s2-radius-default, 8px);
|
|
7
|
-
color: var(--s2-content-default, #cfcfcf);
|
|
8
|
-
}
|
|
9
|
-
.cm-editor {
|
|
10
|
-
background: var(--s2-bg-layer-2, var(--s2-gray-75, #252525));
|
|
11
|
-
}
|
|
12
|
-
`,dn=class extends oe{color;tooltip;constructor(e,t){super(),this.color=e,this.tooltip=t}toDOM(){let e=document.createElement(`span`);return e.style.cssText=`display:inline-block;width:8px;height:8px;border-radius:50%;background:${this.color};`,this.tooltip&&(e.title=this.tooltip),e}},fn=class extends HTMLElement{view=null;langCompartment=new r;highlightCompartment=new r;lineNumberCompartment=new r;readonlyCompartment=new r;gutterCompartment=new r;placeholderCompartment=new r;shadowRoot_;placeholderText=``;connected=!1;langRequestId=0;static get observedAttributes(){return[`language`,`line-numbers`,`readonly`]}constructor(){super(),this.shadowRoot_=this.attachShadow({mode:`open`})}connectedCallback(){if(this.connected)return;this.connected=!0,this.placeholderText=this.textContent?.trim()??``,this.textContent=``;let e=sn(cn(this)),t=[ln(),this.highlightCompartment.of(a(e)),a(ae,{fallback:!0}),this.langCompartment.of([]),this.lineNumberCompartment.of(this.hasAttribute(`line-numbers`)?o():[]),this.readonlyCompartment.of(s.readOnly.of(this.hasAttribute(`readonly`))),this.gutterCompartment.of([]),this.placeholderCompartment.of(this.placeholderText?c(this.placeholderText):[]),Ce(),f.of([...an,...Fe]),n.updateListener.of(e=>{e.docChanged&&this.dispatchEvent(new CustomEvent(`change`,{detail:{value:e.state.doc.toString()},bubbles:!0}))})],r=document.createElement(`style`);r.textContent=un,this.shadowRoot_.appendChild(r);let i=document.createElement(`div`);this.shadowRoot_.appendChild(i),this.view=new n({state:s.create({extensions:t}),parent:i,root:this.shadowRoot_});let l=this.getAttribute(`language`);l&&this.loadLanguage(l)}disconnectedCallback(){this.view?.destroy(),this.view=null,this.connected=!1}attributeChangedCallback(e,t,n){if(this.view)switch(e){case`language`:n?this.loadLanguage(n):this.view.dispatch({effects:this.langCompartment.reconfigure([])});break;case`line-numbers`:this.view.dispatch({effects:this.lineNumberCompartment.reconfigure(n===null?[]:o())});break;case`readonly`:this.view.dispatch({effects:this.readonlyCompartment.reconfigure(s.readOnly.of(n!==null))});break}}get value(){return this.view?.state.doc.toString()??``}set value(e){this.view&&this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:e}})}setHighlighter(e){if(!this.view)return;let t=ie.define(e);this.view.dispatch({effects:this.langCompartment.reconfigure(t)})}setGutterMarkers(e){if(!this.view)return;let t=new Map;for(let[n,r]of Object.entries(e))t.set(Number(n),new dn(r.color,r.tooltip));let n=d({class:`cm-slicc-markers`,lineMarker:(e,n)=>{let r=e.state.doc.lineAt(n.from).number;return t.get(r)??null}});this.view.dispatch({effects:this.gutterCompartment.reconfigure(n)})}async loadLanguage(e){let t=++this.langRequestId,n=on[e.toLowerCase()];if(!n){this.langRequestId===t&&this.view?.dispatch({effects:this.langCompartment.reconfigure([])});return}let r=await n();this.langRequestId===t&&this.view?.dispatch({effects:this.langCompartment.reconfigure(r)})}};customElements.get(`slicc-editor`)||customElements.define(`slicc-editor`,fn);export{fn as SliccEditorElement};
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/slicc-editor-CFqadznu.js","assets/preload-helper-ca-nBW7U.js","assets/dist-B-Md2rjs.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=`slicc-theme`,n=new Set([`dark`,`light`,`system`]);function r(){let e=localStorage.getItem(t);return e&&n.has(e)?e:`system`}function i(){return document.documentElement.classList.contains(`theme-light`)}var a=new Set;function o(e){e&&a.add(e)}function s(e){e&&a.delete(e)}function c(){let e=i();for(let t of a)try{t.postMessage({type:`slicc-theme`,isLight:e},`*`)}catch{a.delete(t)}}function l(){let e=r(),t=e===`light`;e===`system`&&(t=window.matchMedia?.(`(prefers-color-scheme: light)`).matches??!1),document.documentElement.classList.toggle(`theme-light`,t),c()}var u,d;function f(){l(),u=window.matchMedia?.(`(prefers-color-scheme: light)`),u?.addEventListener?.(`change`,()=>{r()===`system`&&l()}),typeof MutationObserver<`u`&&!d&&(d=new MutationObserver(()=>c()),d.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}))}var p=typeof chrome<`u`&&!!chrome?.runtime?.id,m=/<script\b([^>]*)\bsrc\s*=\s*["'](https?:\/\/[^"']+)["']([^>]*)><\/script>/gi;async function h(e){let t=[],n;for(;(n=m.exec(e))!==null;)t.push({full:n[0],url:n[2],index:n.index});if(m.lastIndex=0,t.length===0)return e;let r=await Promise.all(t.map(async e=>{try{let t=await fetch(e.url);if(!t.ok)throw Error(`HTTP ${t.status}`);return{...e,text:await t.text()}}catch(t){let n=t instanceof Error?t.message:String(t);return{...e,text:`console.error('[sprinkle] Failed to load ${e.url}: ${n}')`}}})),i=e;for(let e=r.length-1;e>=0;e--){let{full:t,text:n}=r[e],a=n.replace(/<\/script/gi,`<\\/script`);i=i.replace(t,()=>`<script>${a}<\/script>`)}return i}function g(e){let t=e.trimStart().toLowerCase();return t.startsWith(`<!doctype`)||t.startsWith(`<html`)}var _=class t{container;bridge;scripts=[];iframe=null;static cachedLucideScript=null;static lucideScriptPromise=null;messageHandler=null;constructor(e,t){this.container=e,this.bridge=t}async render(e,t){this.dispose(),p?await this.renderInSandbox(e,t,g(e)):g(e)?await this.renderFullDoc(e,t):this.renderInline(e,t)}async renderInSandbox(e,t,n=!1){let r=document.createElement(`iframe`);r.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),r.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,this.iframe=r,console.log(`[sprinkle-renderer] creating sandbox iframe`,r.src),await new Promise((e,t)=>{let n=setTimeout(()=>{console.error(`[sprinkle-renderer] iframe load timed out after 5s`),t(Error(`sprinkle sandbox iframe load timed out`))},5e3);r.addEventListener(`load`,()=>{clearTimeout(n),console.log(`[sprinkle-renderer] iframe loaded, contentWindow:`,!!r.contentWindow),o(r.contentWindow),e()},{once:!0}),r.addEventListener(`error`,e=>{clearTimeout(n),console.error(`[sprinkle-renderer] iframe error:`,e),t(Error(`sprinkle sandbox iframe failed to load`))},{once:!0}),this.container.appendChild(r)}),this.messageHandler=e=>{if(e.source!==r.contentWindow)return;let n=e.data;if(n?.type){if(n.type===`sprinkle-lick`)this.bridge.lick({action:n.action,data:n.data});else if(n.type===`sprinkle-set-state`)this.bridge.setState(n.data);else if(n.type===`sprinkle-close`)this.bridge.close();else if(n.type===`sprinkle-stop-cone`)this.bridge.stopCone();else if(n.type===`sprinkle-storage-set`)try{localStorage.setItem(`slicc-sprinkle-ls:${t}:${n.key}`,n.value)}catch(e){console.warn(`[sprinkle-renderer] localStorage setItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-remove`)try{localStorage.removeItem(`slicc-sprinkle-ls:${t}:${n.key}`)}catch(e){console.warn(`[sprinkle-renderer] localStorage removeItem failed:`,n.key,e)}else if(n.type===`sprinkle-storage-clear`){let e=`slicc-sprinkle-ls:${t}:`;for(let t=localStorage.length-1;t>=0;t--){let n=localStorage.key(t);n?.startsWith(e)&&localStorage.removeItem(n)}}else if(n.type===`sprinkle-open`)this.bridge.open(n.path,n.projectRoot?{projectRoot:n.projectRoot}:void 0);else if(n.type===`sprinkle-readfile`)this.bridge.readFile(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,content:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-writefile`)this.bridge.writeFile(n.path,n.content).then(()=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-readdir`)this.bridge.readDir(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,entries:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-exists`)this.bridge.exists(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,exists:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-stat`)this.bridge.stat(n.path).then(e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,stat:e},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-mkdir`)this.bridge.mkdir(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-rm`)this.bridge.rm(n.path).then(()=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id},`*`),e=>r.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:n.id,error:e instanceof Error?e.message:String(e)},`*`));else if(n.type===`sprinkle-fetch-script`){let e=n.url,t=n.id;fetch(e).then(e=>e.ok?e.text():Promise.reject(Error(`HTTP ${e.status}`))).then(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,text:n},`*`)}).catch(n=>{r.contentWindow?.postMessage({type:`sprinkle-fetch-script-response`,id:t,url:e,error:n instanceof Error?n.message:String(n)},`*`)})}}},window.addEventListener(`message`,this.messageHandler);let a=this.collectThemeCSS(),s={},c=`slicc-sprinkle-ls:${t}:`;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);t?.startsWith(c)&&(s[t.slice(c.length)]=localStorage.getItem(t)??``)}let l=this.bridge.getState(),u=``,d=``;if(n){let t=[];e.includes(`<slicc-editor`)&&t.push(fetch(chrome.runtime.getURL(`slicc-editor.js`)).then(e=>e.ok?e.text():``).then(e=>{u=e}).catch(()=>{})),e.includes(`<slicc-diff`)&&t.push(fetch(chrome.runtime.getURL(`slicc-diff.js`)).then(e=>e.ok?e.text():``).then(e=>{d=e}).catch(()=>{})),await Promise.all(t)}let f=await this.getLucideScript(),p=n?await h(e):e;r.contentWindow.postMessage({type:`sprinkle-render`,content:p,name:t,themeCSS:a,savedState:l,savedStorage:s,fullDoc:n,editorScript:u,diffScript:d,lucideScript:f,isLight:i()},`*`)}pushUpdate(e){this.iframe?.contentWindow&&this.iframe.contentWindow.postMessage({type:`sprinkle-update`,data:e},`*`)}collectThemeCSS(){return y()}generateBridgeScript(){return`(function() {
|
|
3
|
-
var _updateListeners = new Set();
|
|
4
|
-
var _sprinkleName = '';
|
|
5
|
-
var _state = null;
|
|
6
|
-
var _cbId = 0;
|
|
7
|
-
var _callbacks = {};
|
|
8
|
-
|
|
9
|
-
window.addEventListener('message', function(event) {
|
|
10
|
-
var msg = event.data;
|
|
11
|
-
if (!msg || !msg.type) return;
|
|
12
|
-
if (msg.type === 'sprinkle-init') {
|
|
13
|
-
_sprinkleName = msg.name || '';
|
|
14
|
-
_state = msg.savedState || null;
|
|
15
|
-
if (window.slicc) window.slicc.name = _sprinkleName;
|
|
16
|
-
} else if (msg.type === 'sprinkle-update') {
|
|
17
|
-
_updateListeners.forEach(function(cb) { try { cb(msg.data); } catch(e) { console.error(e); } });
|
|
18
|
-
} else if (msg.type === 'slicc-theme') {
|
|
19
|
-
document.documentElement.classList.toggle('theme-light', !!msg.isLight);
|
|
20
|
-
} else if (msg.id && _callbacks[msg.id]) {
|
|
21
|
-
var cb = _callbacks[msg.id];
|
|
22
|
-
delete _callbacks[msg.id];
|
|
23
|
-
cb(msg);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
function _vfsCall(type, params, extractResult) {
|
|
28
|
-
return new Promise(function(resolve, reject) {
|
|
29
|
-
var id = ++_cbId;
|
|
30
|
-
_callbacks[id] = function(msg) {
|
|
31
|
-
if (msg.error) reject(new Error(msg.error));
|
|
32
|
-
else resolve(extractResult ? extractResult(msg) : undefined);
|
|
33
|
-
};
|
|
34
|
-
var m = { type: type, id: id };
|
|
35
|
-
if (params) { for (var k in params) m[k] = params[k]; }
|
|
36
|
-
parent.postMessage(m, '*');
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var api = {
|
|
41
|
-
lick: function(event) {
|
|
42
|
-
var action, data;
|
|
43
|
-
if (typeof event === 'string') { action = event; } else { action = event.action; data = event.data; }
|
|
44
|
-
parent.postMessage({ type: 'sprinkle-lick', action: action, data: data }, '*');
|
|
45
|
-
},
|
|
46
|
-
on: function(event, callback) { if (event === 'update') _updateListeners.add(callback); },
|
|
47
|
-
off: function(event, callback) { if (event === 'update') _updateListeners.delete(callback); },
|
|
48
|
-
readFile: function(path) {
|
|
49
|
-
return _vfsCall('sprinkle-readfile', { path: path }, function(m) { return m.content; });
|
|
50
|
-
},
|
|
51
|
-
writeFile: function(path, content) {
|
|
52
|
-
return _vfsCall('sprinkle-writefile', { path: path, content: content });
|
|
53
|
-
},
|
|
54
|
-
readDir: function(path) {
|
|
55
|
-
return _vfsCall('sprinkle-readdir', { path: path }, function(m) { return m.entries; });
|
|
56
|
-
},
|
|
57
|
-
exists: function(path) {
|
|
58
|
-
return _vfsCall('sprinkle-exists', { path: path }, function(m) { return m.exists; });
|
|
59
|
-
},
|
|
60
|
-
stat: function(path) {
|
|
61
|
-
return _vfsCall('sprinkle-stat', { path: path }, function(m) { return m.stat; });
|
|
62
|
-
},
|
|
63
|
-
mkdir: function(path) {
|
|
64
|
-
return _vfsCall('sprinkle-mkdir', { path: path });
|
|
65
|
-
},
|
|
66
|
-
rm: function(path) {
|
|
67
|
-
return _vfsCall('sprinkle-rm', { path: path });
|
|
68
|
-
},
|
|
69
|
-
screenshot: function(selector) {
|
|
70
|
-
return new Promise(function(resolve, reject) {
|
|
71
|
-
try {
|
|
72
|
-
var target = selector ? document.querySelector(selector) : document.body;
|
|
73
|
-
if (!target) { reject(new Error('Element not found: ' + selector)); return; }
|
|
74
|
-
var rect = target.getBoundingClientRect();
|
|
75
|
-
var w = Math.ceil(rect.width);
|
|
76
|
-
var h = Math.ceil(rect.height);
|
|
77
|
-
if (w === 0 || h === 0) { reject(new Error('Element has zero dimensions')); return; }
|
|
78
|
-
var canvas = document.createElement('canvas');
|
|
79
|
-
var dpr = window.devicePixelRatio || 1;
|
|
80
|
-
canvas.width = w * dpr;
|
|
81
|
-
canvas.height = h * dpr;
|
|
82
|
-
var ctx = canvas.getContext('2d');
|
|
83
|
-
ctx.scale(dpr, dpr);
|
|
84
|
-
var clone = target.cloneNode(true);
|
|
85
|
-
var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + w + '" height="' + h + '">' +
|
|
86
|
-
'<foreignObject width="100%" height="100%">' +
|
|
87
|
-
new XMLSerializer().serializeToString(clone) +
|
|
88
|
-
'</foreignObject></svg>';
|
|
89
|
-
var img = new Image();
|
|
90
|
-
img.onload = function() { ctx.drawImage(img, 0, 0); resolve(canvas.toDataURL('image/png')); };
|
|
91
|
-
img.onerror = function() { reject(new Error('Screenshot rendering failed')); };
|
|
92
|
-
img.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svg);
|
|
93
|
-
} catch(e) { reject(e); }
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
setState: function(data) { _state = data; parent.postMessage({ type: 'sprinkle-set-state', data: data }, '*'); },
|
|
97
|
-
getState: function() { return _state; },
|
|
98
|
-
close: function() { parent.postMessage({ type: 'sprinkle-close' }, '*'); },
|
|
99
|
-
stopCone: function() { parent.postMessage({ type: 'sprinkle-stop-cone' }, '*'); },
|
|
100
|
-
name: ''
|
|
101
|
-
};
|
|
102
|
-
window.slicc = api;
|
|
103
|
-
window.bridge = api;
|
|
104
|
-
})();`}async renderFullDoc(e,t){let n=`<script>${this.generateBridgeScript()}<\/script>`,r=this.collectThemeCSS(),a=r?`<style>${r}</style>`:``,s=e.includes(`<slicc-editor`)?`<script src="/slicc-editor.js"><\/script>`:``,c=e.includes(`<slicc-diff`)?`<script src="/slicc-diff.js"><\/script>`:``,l=`<script>(function(){try{if(${i()?`true`:`false`})document.documentElement.classList.add('theme-light');}catch(e){}})();<\/script>`+n+a+s+c+`<script src="/lucide-icons.js"><\/script>`,u,d=e.match(/<head\b[^>]*>/i);if(d){let t=d.index+d[0].length;u=e.slice(0,t)+l+e.slice(t)}else{let t=e.match(/<script\b/i);if(t)u=e.slice(0,t.index)+l+e.slice(t.index);else{let t=e.match(/<html\b[^>]*>/i);if(t){let n=t.index+t[0].length;u=e.slice(0,n)+l+e.slice(n)}else u=l+e}}let f=document.createElement(`iframe`);f.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),f.style.cssText=`width: 100%; flex: 1; border: none; min-height: 0;`,f.srcdoc=u,this.iframe=f,await new Promise((e,n)=>{let r=setTimeout(()=>{n(Error(`full-doc iframe load timed out`))},5e3);f.addEventListener(`load`,()=>{clearTimeout(r),o(f.contentWindow);let n=this.bridge.getState();f.contentWindow?.postMessage({type:`sprinkle-init`,name:t,savedState:n},`*`),e()},{once:!0}),f.addEventListener(`error`,e=>{clearTimeout(r),n(Error(`full-doc iframe failed to load`))},{once:!0}),this.container.appendChild(f)}),this.messageHandler=e=>{if(e.source!==f.contentWindow)return;let t=e.data;t?.type&&(t.type===`sprinkle-lick`?this.bridge.lick({action:t.action,data:t.data}):t.type===`sprinkle-set-state`?this.bridge.setState(t.data):t.type===`sprinkle-close`?this.bridge.close():t.type===`sprinkle-stop-cone`?this.bridge.stopCone():t.type===`sprinkle-readfile`?this.bridge.readFile(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,content:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readfile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-writefile`?this.bridge.writeFile(t.path,t.content).then(()=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-writefile-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-readdir`?this.bridge.readDir(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,entries:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-readdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-exists`?this.bridge.exists(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,exists:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-exists-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-stat`?this.bridge.stat(t.path).then(e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,stat:e},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-stat-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-mkdir`?this.bridge.mkdir(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-mkdir-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)):t.type===`sprinkle-rm`&&this.bridge.rm(t.path).then(()=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id},`*`),e=>f.contentWindow?.postMessage({type:`sprinkle-rm-response`,id:t.id,error:e instanceof Error?e.message:String(e)},`*`)))},window.addEventListener(`message`,this.messageHandler)}renderInline(t,n){if(t.includes(`<slicc-editor`)&&!customElements.get(`slicc-editor`)&&e(()=>import(`./slicc-editor-CFqadznu.js`),__vite__mapDeps([0,1,2])),t.includes(`<slicc-diff`)&&!customElements.get(`slicc-diff`)){let e=document.createElement(`script`);e.src=`/slicc-diff.js`,document.head.appendChild(e)}window.__slicc_sprinkles||(window.__slicc_sprinkles={}),window.__slicc_sprinkles[n]=this.bridge,this.bridge._container=this.container;let r=document.createElement(`div`);r.className=`sprinkle-content`,r.innerHTML=t,this.container.appendChild(r);for(let e of r.querySelectorAll(`.fill[data-value]`)){let t=parseFloat(e.dataset.value||`0`);t>=0&&t<=100&&(e.style.width=`${t}%`)}let i=`window.__slicc_sprinkles[${JSON.stringify(n)}]`;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;/\b(slicc|bridge)\b/.test(t)&&e.setAttribute(`onclick`,t.replace(/\b(slicc|bridge)\b/g,i))}let a=Array.from(r.querySelectorAll(`script`));for(let e of a){e.remove();let t=document.createElement(`script`);for(let n of e.attributes)t.setAttribute(n.name,n.value);if(!e.src){let n=new Set;for(let e of r.querySelectorAll(`[onclick]`)){let t=e.getAttribute(`onclick`)||``;for(let e of t.matchAll(/\b(\w+)\s*\(/g)){let t=e[1];[`slicc`,`bridge`,`lick`,`close`].includes(t)||n.add(t)}}let a=[...n].map(e=>`if (typeof ${e} === 'function') window.${e} = ${e};`).join(`
|
|
105
|
-
`);t.textContent=`(function() { var slicc = ${i}; var bridge = slicc;\n`+e.textContent+(a?`
|
|
106
|
-
`+a:``)+`
|
|
107
|
-
})();`}r.appendChild(t),this.scripts.push(t)}}dispose(){this.messageHandler&&=(window.removeEventListener(`message`,this.messageHandler),null),this.iframe&&=(s(this.iframe.contentWindow),this.iframe.remove(),null);for(let e of this.scripts)e.remove();this.scripts=[];let e=this.container.querySelector(`.sprinkle-content`);e&&e.remove(),window.__slicc_sprinkles&&delete window.__slicc_sprinkles[this.bridge.name]}async getLucideScript(){return t.cachedLucideScript===null?(t.lucideScriptPromise===null&&(t.lucideScriptPromise=(async()=>{try{let e=await fetch(chrome.runtime.getURL(`lucide-icons.js`));if(e.ok){let n=await e.text();return t.cachedLucideScript=n,n}}catch{}return t.cachedLucideScript=``,``})()),t.lucideScriptPromise):t.cachedLucideScript}};function v(e,t){return e.replace(/url\(\s*['"]?([^'")]+)['"]?\s*\)/g,(e,n)=>{if(/^(https?:|data:|blob:)/i.test(n))return`url('${n}')`;try{return`url('${new URL(n,t).href}')`}catch{return`url('${n}')`}})}function y(){if(typeof getComputedStyle!=`function`)return``;let e=[],t=[],n=[],r=location.href,i=e=>e===`:root`||e===`:root.theme-light`||e.startsWith(`.theme-light `)||e===`.theme-light`||e.split(`,`).some(e=>{let t=e.trim();return t===`:root`||t===`:root.theme-light`||t.startsWith(`.theme-light `)||t===`.theme-light`});for(let a of document.styleSheets)try{for(let o of a.cssRules)if(o instanceof CSSFontFaceRule)e.push(v(o.cssText,r));else if(o instanceof CSSStyleRule){let e=o.selectorText;i(e)&&t.push(o.cssText),(e.includes(`.sprinkle-`)||e.includes(`.fill`))&&n.push(o.cssText)}}catch{}return e.join(`
|
|
108
|
-
`)+`
|
|
109
|
-
`+t.join(`
|
|
110
|
-
`)+`
|
|
111
|
-
`+n.join(`
|
|
112
|
-
`)}export{o as a,i,y as n,s as o,f as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-ca-nBW7U.js";var t=null,n=!1;function r(){return typeof chrome<`u`&&chrome?.runtime?.id?`extension`:typeof document<`u`&&document.documentElement?.dataset?.electronOverlay?`electron`:`cli`}async function i(){if(!n&&!(typeof localStorage<`u`&&localStorage.getItem(`telemetry-disabled`)===`true`))try{let i=r();typeof window<`u`&&(window.RUM_GENERATION=`slicc-${i}`),i===`extension`?(t=(await e(()=>import(`./rum-C0g6MAOC.js`),[])).default,typeof window<`u`&&(window.addEventListener(`error`,e=>{c(`js`,u(e.message??``))}),window.addEventListener(`unhandledrejection`,e=>{let t=e.reason;c(`js`,u(t instanceof Error?t.message:String(t)))}))):(typeof window<`u`&&(window.SAMPLE_PAGEVIEWS_AT_RATE=`high`),t=(await e(()=>import(`./src-lJxZtwWF.js`),[])).sampleRUM),n=!0,t&&t(`navigate`,{source:typeof document<`u`?document.referrer:``,target:i})}catch{}}function a(e,n){t?.(`formsubmit`,{source:e,target:n})}function o(e){t?.(`viewblock`,{source:e})}function s(e){t?.(`viewmedia`,{source:e})}function c(e,n){t?.(`error`,{source:e,target:n})}function l(e){t?.(`signup`,{source:e})}function u(e){return(e??``).slice(0,200).replace(/(\/[a-z]+)(?:\/[^\s/]+)+/gi,`$1/.../`)}export{o as a,l as i,a as n,s as r,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-BHrAkMIS.js";const t=e(`tool-ui`),n=new class{pending=new Map;idCounter=0;generateId(){return`tool-ui-${++this.idCounter}-${Date.now().toString(36)}`}register(e,n,r,i){this.pending.set(e,{request:n,resolve:r,reject:i}),t.info(`Tool UI registered`,{id:e})}async handleAction(e,n){let r=this.pending.get(e);if(!r){t.warn(`Action for unknown tool UI`,{id:e,action:n.action});return}t.info(`Tool UI action`,{id:e,action:n.action});try{let e;e=r.request.onAction?await r.request.onAction(n.action,n.data):n,r.resolve(e)}catch(e){r.reject(e instanceof Error?e:Error(String(e)))}finally{this.pending.delete(e)}}cancel(e,n=`cancelled`){let r=this.pending.get(e);r&&(r.reject(Error(n)),this.pending.delete(e),t.info(`Tool UI cancelled`,{id:e,reason:n}))}cancelAll(e=`cancelled`){let n=this.pending.size;for(let[t,n]of this.pending)n.reject(Error(e));this.pending.clear(),n>0&&t.info(`All tool UIs cancelled`,{reason:e,count:n})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function r(e,r){let i=e.id??n.generateId(),a,o,s=new Promise((e,t)=>{a=e,o=t});return n.register(i,e,a,o),r?r({content:[{type:`tool_ui`,requestId:i,html:e.html}]}):t.warn(`showToolUI called without onUpdate callback — UI may not render`),s.finally(()=>{r&&r({content:[{type:`tool_ui_done`,requestId:i}]})})}const i=[];function a(e){return i.push(e),e}function o(e){let t=i.lastIndexOf(e);t!==-1&&i.splice(t,1)}function s(){return i.length>0?i[i.length-1]:null}async function c(e){let n=s();return n?r(e,n.onUpdate):(t.warn(`showToolUIFromContext called without execution context`),null)}export{c as a,r as i,o as n,n as o,a as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./logger-B-No_qN_.js";var t=e(`tool-ui`),n=new class{pending=new Map;idCounter=0;generateId(){return`tool-ui-${++this.idCounter}-${Date.now().toString(36)}`}register(e,n,r,i){this.pending.set(e,{request:n,resolve:r,reject:i}),t.info(`Tool UI registered`,{id:e})}async handleAction(e,n){let r=this.pending.get(e);if(!r){t.warn(`Action for unknown tool UI`,{id:e,action:n.action});return}t.info(`Tool UI action`,{id:e,action:n.action});try{let e;e=r.request.onAction?await r.request.onAction(n.action,n.data):n,r.resolve(e)}catch(e){r.reject(e instanceof Error?e:Error(String(e)))}finally{this.pending.delete(e)}}cancel(e,n=`cancelled`){let r=this.pending.get(e);r&&(r.reject(Error(n)),this.pending.delete(e),t.info(`Tool UI cancelled`,{id:e,reason:n}))}cancelAll(e=`cancelled`){let n=this.pending.size;for(let[t,n]of this.pending)n.reject(Error(e));this.pending.clear(),n>0&&t.info(`All tool UIs cancelled`,{reason:e,count:n})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function r(e,r){let i=e.id??n.generateId(),a,o,s=new Promise((e,t)=>{a=e,o=t});return n.register(i,e,a,o),r?r({content:[{type:`tool_ui`,requestId:i,html:e.html}]}):t.warn(`showToolUI called without onUpdate callback — UI may not render`),s.finally(()=>{r&&r({content:[{type:`tool_ui_done`,requestId:i}]})})}export{n,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`tray`,t=`trayWorkerUrl`,n=`lead`;function r(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}function i(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.toString(),i=t.pathname.split(`/`).filter(Boolean);if(i.length<2||i.at(-2)!==`join`)return null;let[a,o,...s]=decodeURIComponent(i.at(-1)).split(`.`);if(!a||!o||s.length>0)return null;i.splice(-2,2),t.pathname=i.length>0?`/${i.join(`/`)}`:`/`;let c=r(t.toString());return c?{workerBaseUrl:c,trayId:a,joinUrl:n}:null}catch{return null}}function a(r,i){let a=new URL(r);return a.searchParams.delete(t),a.searchParams.delete(n),a.searchParams.set(e,i),a.toString()}var o=`slicc.trayWorkerBaseUrl`,s=`slicc.trayJoinUrl`,c=`https://www.sliccy.ai`;function l(e,t){let n=r(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let i=t.replace(/^\/+/,``);return new URL(i,`${n}/`).toString()}function u(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),a=null;if(n.length>=2&&n.at(-2)===`tray`)a=decodeURIComponent(n.at(-1)),n.splice(-2,2),t.pathname=n.length>0?`/${n.join(`/`)}`:`/`;else if(n.length>=2&&n.at(-2)===`join`)return i(t.toString());let o=r(t.toString());return o?{workerBaseUrl:o,trayId:a,joinUrl:null}:null}catch{return null}}function d(e){let t=u(e);return t?.joinUrl?t:null}function f(e,t){let n=d(t);return n?(e.setItem(s,n.joinUrl),e.setItem(o,n.workerBaseUrl),n):null}function p(e){return!!d(e?.getItem(`slicc.trayJoinUrl`)??null)}function m(e,t){let n=r(e);if(!n)throw Error(`Invalid tray worker base URL: ${e}`);let i=t?.trim();return i?new URL(`tray/${encodeURIComponent(i)}`,`${n}/`).toString():n}function h(e,t,n){return a(e,m(t,n))}async function g(e){let t=v(e.locationHref);if(t)return e.storage&&(t.joinUrl&&e.storage.setItem(s,t.joinUrl),e.storage.setItem(o,t.workerBaseUrl)),t;let n=d(e.storage?.getItem(`slicc.trayJoinUrl`)??null);if(n)return e.storage&&e.storage.setItem(o,n.workerBaseUrl),n;let i=e.runtimeConfigFetcher?await y(e.runtimeConfigFetcher):null;if(i?.joinConfig)return e.storage&&(e.storage.setItem(s,i.joinConfig.joinUrl),e.storage.setItem(o,i.joinConfig.workerBaseUrl)),i.joinConfig;let a=i?.workerBaseUrl??null,c=r(e.storage?.getItem(`slicc.trayWorkerBaseUrl`)??null),l=r(e.envBaseUrl??null),u=r(e.defaultWorkerBaseUrl??null),f=a??c??l??u;return f?(e.storage&&e.storage.setItem(o,f),{workerBaseUrl:f,trayId:null,joinUrl:null}):null}async function _(e=fetch){try{let t=await e(`/api/runtime-config`,{cache:`no-store`});return t.ok?await t.json():null}catch{return null}}function v(a){try{let o=new URL(a),s=u(o.searchParams.get(e));if(s)return s;let c=u(o.searchParams.get(n));if(c)return c;let l=r(o.searchParams.get(t));return l?{workerBaseUrl:l,trayId:null,joinUrl:null}:i(a)||null}catch{return null}}async function y(e){let t=await e();if(!t)return null;let n=d(t.trayJoinUrl??null);return{workerBaseUrl:r(t.trayWorkerBaseUrl??null),joinConfig:n}}var b={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function x(){return{...b}}var S=new Set;function C(){if(S.size!==0)for(let e of[...S])try{e({...b})}catch{}}function w(e){b={...e},C()}function T(e){b={...b,lastPingTime:e},C()}export{s as a,l as c,g as d,f,c as i,_ as l,T as n,o,w as r,h as s,x as t,p as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e,m as t}from"./db-DPvmo9md.js";const n=`slicc:last-seen-version`;function r(){return{version:`3.1.0`,releasedAt:`2026-05-21T01:06:23Z`}}async function i(){let e=await t(n);return e&&e.length>0?e:null}async function a(t){await e(n,t)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,y as t}from"./provider-settings-Xmj6eRF8.js";import{d as n,s as r,u as i}from"./bedrock-camp-Bds6qFqf.js";import{o as a}from"./simple-options-D8vGmEnp.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-DGVLpB4k.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-DGbQVjGO.js";import{sanitizePayload as u}from"./xai-grok-sanitize-DsBfxZb8.js";var d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`openid profile email offline_access grok-cli:access api:access`,_=`http://127.0.0.1:56121/callback`,v=`http://127.0.0.1:56121/*`,y=`https://api.x.ai/v1`,b=`openai-responses`,x=`${d}-openai`;function S(){return typeof process>`u`?null:{}?.PI_XAI_OAUTH_MODELS??null}var C=c(S());function w(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function T(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function E(){return w(T(32))}async function D(e){let t=new TextEncoder().encode(e);return w(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function O(){return w(T(16))}async function k(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:_,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function A(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function j(){return e().find(e=>e.providerId===d)}async function M(){let e=j();if(!e?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let n=e.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return e.accessToken;if(e.refreshToken){let n=await A(e.refreshToken);if(n?.access_token)return await t({providerId:d,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3}),n.access_token}return e.accessToken}function N(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:x,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function P(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function F(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}var I=(e,t,n={})=>{let i=a();return(async()=>{try{let a=await M(),o=n.sessionId,s=r({...e,baseUrl:y,api:b},t,{...n,apiKey:a,headers:F(n.headers,o),onPayload:P(e.id,o)});for await(let e of s)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(N(e,t)),i.end()}})(),i},L=(e,t,n)=>{let r=a();return(async()=>{try{let a=await M(),o=n?.sessionId,s=i({...e,baseUrl:y,api:b},t,{...n,apiKey:a,headers:F(n?.headers,o),onPayload:P(e.id,o)});for await(let e of s)r.push(e);r.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),r.push(N(e,t)),r.end()}})(),r},R={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>C.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(e,n,r)=>{let i=E(),a=await D(i),c=O(),l=O(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,_),u.searchParams.set(`scope`,r?.scopes??g),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await e({authorizeUrl:u.toString(),redirectUriPattern:v,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),b=m.searchParams.get(`code`),x=m.searchParams.get(`state`);if(!b)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(x!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let S=await k(b,i);await t({providerId:d,accessToken:S.access_token,refreshToken:S.refresh_token,tokenExpiresAt:Date.now()+(S.expires_in??21600)*1e3,baseUrl:y}),n()},onOAuthLogout:async()=>{await t({providerId:d,accessToken:``})},onSilentRenew:async()=>{let e=j();if(!e?.refreshToken)return null;let n=await A(e.refreshToken);return n?.access_token?(await t({providerId:d,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3}),n.access_token):null}};function z(){n({api:x,stream:I,streamSimple:L})}export{o as XaiErrorCode,s as XaiOAuthError,R as config,z as register};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as e,t}from"./provider-settings-B1ICPsZd.js";import{m as n,p as r,u as i}from"./bedrock-camp-uPFt7YMZ.js";import{o as a}from"./simple-options-CVJdKrCb.js";import{XaiErrorCode as o,XaiOAuthError as s}from"./xai-grok-errors-B7OqxH_0.js";import{resolveModels as c,toModelMetadata as l}from"./xai-grok-models-0CbvNCeN.js";import{sanitizePayload as u}from"./xai-grok-sanitize-DTcvIA0E.js";const d=`xai-grok`,f=`https://auth.x.ai`,p=`${f}/oauth2/authorize`,m=`${f}/oauth2/token`,h=`b1a00492-073a-47ea-816f-4c329264a828`,g=`http://127.0.0.1:56121/callback`,_=`https://api.x.ai/v1`,v=`openai-responses`,y=`${d}-openai`;function b(){return typeof process>`u`?null:{}?.PI_XAI_OAUTH_MODELS??null}const x=c(b());function S(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function C(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function w(){return S(C(32))}async function T(e){let t=new TextEncoder().encode(e);return S(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function E(){return S(C(16))}async function D(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,code:e,redirect_uri:g,client_id:h,code_verifier:t}),r=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw new s(`xAI token exchange failed: ${r.status} ${await r.text()}`,o.TOKEN_EXCHANGE_FAILED);let i=await r.json();if(!i.access_token)throw new s(`xAI token exchange did not return access_token.`,o.TOKEN_EXCHANGE_INVALID);return i}async function O(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:h}),n=await fetch(m,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[xai-grok] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[xai-grok] refresh error:`,e instanceof Error?e.message:String(e)),null}}function k(){return t().find(e=>e.providerId===d)}async function A(){let t=k();if(!t?.accessToken)throw new s("Not signed in to xAI Grok — run /login or `oauth-token xai-grok`",o.AUTH_MISSING,!0);let n=t.tokenExpiresAt??0;if(n&&Date.now()+6e4<n)return t.accessToken;if(t.refreshToken){let n=await O(t.refreshToken);if(n?.access_token)return await e({providerId:d,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3}),n.access_token}return t.accessToken}function j(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:y,provider:d,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}function M(e,t){return n=>!n||typeof n!=`object`?n:u(n,e,t)}function N(e,t){return t?{...e??{},"x-grok-conv-id":t}:e}const P=(e,t,n={})=>{let r=a();return(async()=>{try{let a=await A(),o=n.sessionId,s=i({...e,baseUrl:_,api:v},t,{...n,apiKey:a,headers:N(n.headers,o),onPayload:M(e.id,o)});for await(let e of s)r.push(e);r.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),r.push(j(e,t)),r.end()}})(),r},F=(e,t,n)=>{let i=a();return(async()=>{try{let a=await A(),o=n?.sessionId,s=r({...e,baseUrl:_,api:v},t,{...n,apiKey:a,headers:N(n?.headers,o),onPayload:M(e.id,o)});for await(let e of s)i.push(e);i.end()}catch(t){console.error(`[xai-grok] Stream error:`,t instanceof Error?t.message:String(t)),i.push(j(e,t)),i.end()}})(),i},I={id:d,name:`xAI Grok (SuperGrok OAuth)`,description:`Grok via xAI OAuth — uses your SuperGrok subscription, no API key needed. Default model is Grok Heavy.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`grok-4.20-multi-agent-0309`,oauthTokenDomains:[`api.x.ai`,`*.x.ai`,`auth.x.ai`,`accounts.x.ai`],getModelIds:()=>x.map(e=>{let t=l(e);return e.thinkingLevelMap?{...t,thinkingLevelMap:e.thinkingLevelMap}:t}),onOAuthLoginIntercepted:async(t,n,r)=>{let i=w(),a=await T(i),c=E(),l=E(),u=new URL(p);u.searchParams.set(`response_type`,`code`),u.searchParams.set(`client_id`,h),u.searchParams.set(`redirect_uri`,g),u.searchParams.set(`scope`,r?.scopes??`openid profile email offline_access grok-cli:access api:access`),u.searchParams.set(`code_challenge`,a),u.searchParams.set(`code_challenge_method`,`S256`),u.searchParams.set(`state`,c),u.searchParams.set(`nonce`,l),u.searchParams.set(`plan`,`generic`),u.searchParams.set(`referrer`,`slicc`);let f=await t({authorizeUrl:u.toString(),redirectUriPattern:`http://127.0.0.1:56121/*`,onCapture:`close`});if(!f)throw new s(`xAI OAuth login was cancelled or timed out`,o.CALLBACK_TIMEOUT);let m=new URL(f),v=m.searchParams.get(`code`),y=m.searchParams.get(`state`);if(!v)throw new s(`xAI OAuth redirect did not include a code`,o.CODE_MISSING);if(y!==c)throw new s(`xAI OAuth state mismatch — possible CSRF, aborting`,o.STATE_MISMATCH);let b=await D(v,i);await e({providerId:d,accessToken:b.access_token,refreshToken:b.refresh_token,tokenExpiresAt:Date.now()+(b.expires_in??21600)*1e3,baseUrl:_}),n()},onOAuthLogout:async()=>{await e({providerId:d,accessToken:``})},onSilentRenew:async()=>{let t=k();if(!t?.refreshToken)return null;let n=await O(t.refreshToken);return n?.access_token?(await e({providerId:d,accessToken:n.access_token,refreshToken:n.refresh_token??t.refreshToken,tokenExpiresAt:Date.now()+(n.expires_in??21600)*1e3}),n.access_token):null}};function L(){n({api:y,stream:P,streamSimple:F})}export{o as XaiErrorCode,s as XaiOAuthError,I as config,L as register};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/ui/assets/{github-copilot-headers-BKQV7zrp.js → github-copilot-headers-CTUP_cqn.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/ui/assets/{sprinkle-bridge-channel-B_tegUwc.js → sprinkle-bridge-channel-BBxRgvga.js}
RENAMED
|
File without changes
|
/package/dist/ui/assets/{sprinkle-bridge-channel-C2blpBXT.js → sprinkle-bridge-channel-no1Jz9ii.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|