sliccy 6.158.1 → 6.159.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/.vite/manifest.json +178 -178
- package/dist/ui/assets/{SKILL-UenQ5SPT.js → SKILL--iIJifMo.js} +1 -1
- package/dist/ui/assets/{SKILL-DirmNXBw.js → SKILL-D3-Y0muu.js} +1 -1
- package/dist/ui/assets/{account-store-D7eN4OXk.js → account-store-DgxzQaKH.js} +1 -1
- package/dist/ui/assets/{account-store-KxT17gu_.js → account-store-VSfy5XZf.js} +1 -1
- package/dist/ui/assets/{adobe-F_tfp998.js → adobe-BaToubli.js} +1 -1
- package/dist/ui/assets/{adobe-y_m9GLTZ.js → adobe-GD4rKj7O.js} +1 -1
- package/dist/ui/assets/{agent-bridge-BkHuOfQg.js → agent-bridge-CSwNC4dO.js} +1 -1
- package/dist/ui/assets/{agent-panels-ZTL0xD08.js → agent-panels-C8MbIqk-.js} +1 -1
- package/dist/ui/assets/{apply-layout-DSd09wMF.js → apply-layout-CiaNfTxc.js} +1 -1
- package/dist/ui/assets/{apps-yo7bohdm.js → apps-vT_4ejqb.js} +1 -1
- package/dist/ui/assets/{azure-openai-BmDolwc9.js → azure-openai-B7RqJRkU.js} +1 -1
- package/dist/ui/assets/{azure-openai-CrO9XDqv.js → azure-openai-Cpz7pb_z.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-B_iS_HNp.js → backend-hostfs-DCC_Ajy9.js} +1 -1
- package/dist/ui/assets/{budget-usage-source--zsr_0LN.js → budget-usage-source-FQ24Ftz_.js} +1 -1
- package/dist/ui/assets/{cdp-DVzfiM9e.js → cdp-C2O98FkT.js} +1 -1
- package/dist/ui/assets/{cerebras-Dss1K_Le.js → cerebras-Bg6LE4Sw.js} +1 -1
- package/dist/ui/assets/{cerebras-BwCLBghg.js → cerebras-DQDtfnO9.js} +1 -1
- package/dist/ui/assets/{composer-speech-NcfWb8wQ.js → composer-speech-DLucco4B.js} +1 -1
- package/dist/ui/assets/{connect-surface-Cd0lpgxe.js → connect-surface-CqgrNzsl.js} +1 -1
- package/dist/ui/assets/{directed-approval-DVTvTDeB.js → directed-approval-Cq9_Ug4j.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-DBH5XTaz.js → ensure-speech-assets-C68AHdMV.js} +1 -1
- package/dist/ui/assets/feature-flags-Dl-xb1DG.js +1 -0
- package/dist/ui/assets/feature-flags-Dr999R3v.js +1 -0
- package/dist/ui/assets/{fs-CKF7L1oq.js → fs-DMkW9RoT.js} +1 -1
- package/dist/ui/assets/{fs-wraTgXdT.js → fs-DeUpRksg.js} +2 -2
- package/dist/ui/assets/{github-RwjN5lkE.js → github-BBLC2V3f.js} +2 -2
- package/dist/ui/assets/{github-c4Dzmjps.js → github-DOXm8fYh.js} +1 -1
- package/dist/ui/assets/{github-auth-PgzNFXb7.js → github-auth-CqhfBpDI.js} +1 -1
- package/dist/ui/assets/{github-copilot-BcZ7hCvs.js → github-copilot-D5XMt_HJ.js} +1 -1
- package/dist/ui/assets/{github-copilot-Cuvcp5Rx.js → github-copilot-l8HL1ihH.js} +1 -1
- package/dist/ui/assets/{github-install-CCiLZQKP.js → github-install-BNXkvDRn.js} +1 -1
- package/dist/ui/assets/{github-zip-C3GODUL3.js → github-zip-C6dQw_-u.js} +1 -1
- package/dist/ui/assets/{hear-DwTK5tX6.js → hear-C2RJkGIU.js} +1 -1
- package/dist/ui/assets/{help-CZ_jut-Q.js → help-BcWVvyqh.js} +1 -1
- package/dist/ui/assets/{installer-CeDnN_9I.js → installer-BFpCN1FJ.js} +1 -1
- package/dist/ui/assets/js-realm-worker-BgL7B2Wr.js +50 -0
- package/dist/ui/assets/jsh-runtime-extensions-Bz5AwpQL.js +1 -0
- package/dist/ui/assets/{kernel-worker-DF3tsip4.js → kernel-worker-BybHLTgb.js} +615 -615
- package/dist/ui/assets/{local-llm-Cw7-Quw-.js → local-llm-DhsM4UwJ.js} +1 -1
- package/dist/ui/assets/{local-llm-DkZRyZIp.js → local-llm-DlNjPDBg.js} +1 -1
- package/dist/ui/assets/{main-cherry-pPieUceA.js → main-cherry-C6yc-2pL.js} +1 -1
- package/dist/ui/assets/{main-ONTk0ouk.js → main-jZVh08kl.js} +3 -3
- package/dist/ui/assets/{memory-curation-seam-BysRStGd.js → memory-curation-seam-BVVM8Ch9.js} +1 -1
- package/dist/ui/assets/memory-v2-flag-D85UWdUr.js +1 -0
- package/dist/ui/assets/{mount-BvqonRdx.js → mount-BFTyqjB1.js} +3 -3
- package/dist/ui/assets/{mount-DSkdtHPr.js → mount-DpWrmv1w.js} +1 -1
- package/dist/ui/assets/{mount-recovery-B41gr65n.js → mount-recovery-B6bWsY9B.js} +1 -1
- package/dist/ui/assets/{new-session-CXa1CFW4.js → new-session-CL6mXlYK.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-DJTSVccz.js → oauth-bootstrap-DeeuBVCQ.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-CAOZ5FNB.js → onboarding-orchestrator-zUt5l0lX.js} +1 -1
- package/dist/ui/assets/{openai-codex-Cf_vJHJ6.js → openai-codex-BVVhFdZG.js} +1 -1
- package/dist/ui/assets/{openai-codex-D2RiGTxw.js → openai-codex-CDEU19Aq.js} +1 -1
- package/dist/ui/assets/{openrouter-CWQfZQKE.js → openrouter-COryLTPE.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BNMjowpG.js → openrouter-free-7YOtpJks.js} +1 -1
- package/dist/ui/assets/{openrouter-free-EPf0YafV.js → openrouter-free-DURZpN1p.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DyHwOlwL.js → openrouter-oauth-CrcbGavU.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CcOSnDNi.js → openrouter-oauth-DKRmu04u.js} +1 -1
- package/dist/ui/assets/{openrouter-BEXCQv3t.js → openrouter-tswR6T7t.js} +1 -1
- package/dist/ui/assets/{opfs-mount-8-wz4ji1.js → opfs-mount-BVd8Hlts.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-DHoRbEwU.js → panel-rpc-handlers-DZ33Qh-N.js} +2 -2
- package/dist/ui/assets/{panelize-shell-D9tDs-AV.js → panelize-shell-5xpPSnll.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-BzX4faZ8.js → pi-edit-execution-CSHBsDaM.js} +1 -1
- package/dist/ui/assets/{provider-BJ3CneJK.js → provider-BoBl5ai2.js} +2 -2
- package/dist/ui/assets/{provider-JhY8VUoS.js → provider-CevZDT2Z.js} +1 -1
- package/dist/ui/assets/provider-settings-CX8kK-Jd.js +1 -0
- package/dist/ui/assets/provider-store-access-Aq5cAQ0Z.js +1 -0
- package/dist/ui/assets/provider-store-access-DXtA_8mp.js +1 -0
- package/dist/ui/assets/{providers-DG3GRO0g.js → providers-BXLtb_Oe.js} +1 -1
- package/dist/ui/assets/{providers-CFMeCih2.js → providers-DfRt-ApR.js} +2 -2
- package/dist/ui/assets/{quick-llm--hJWl7Jr.js → quick-llm-nJ5q2d-Q.js} +1 -1
- package/dist/ui/assets/{recovery-screen-DA7RUpNw.js → recovery-screen-BOBs8rF2.js} +1 -1
- package/dist/ui/assets/{run-Cs70ONoW.js → run-B0G5bpgo.js} +1 -1
- package/dist/ui/assets/{run-BMeDofYZ.js → run-Cf_uOOlE.js} +1 -1
- package/dist/ui/assets/{run-CoI3v-36.js → run-DAdFvQnN.js} +1 -1
- package/dist/ui/assets/{run-FqXwpBiQ.js → run-DlNq_C45.js} +1 -1
- package/dist/ui/assets/{run-DePgFtOr.js → run-DmIT9gpI.js} +2 -2
- package/dist/ui/assets/{session-command-memory-Bbguzf_6.js → session-command-memory-0P878oz2.js} +1 -1
- package/dist/ui/assets/{session-jsonl-BVeHlpsk.js → session-jsonl-B6zOsJ9x.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-Be_G1aKz.js → setup-feature-flags-remote-BHh46SaG.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-D5iqxWam.js → silent-renew-backoff-BTq8C2aH.js} +1 -1
- package/dist/ui/assets/{skills-C058JDJA.js → skills-Byj7iL6x.js} +1 -1
- package/dist/ui/assets/slicc-version-BVfSEO0V.js +1 -0
- package/dist/ui/assets/{snapshot-C0jMXzwY.js → snapshot-Bva1EIsy.js} +1 -1
- package/dist/ui/assets/{snapshot-features-BrjTvoVG.js → snapshot-features-D3QCRNut.js} +1 -1
- package/dist/ui/assets/{soundscape-Bwf0RsVL.js → soundscape-C68LH-Gd.js} +1 -1
- package/dist/ui/assets/{speak-BEZMIDR3.js → speak-D1cPv8lt.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-dx8JwFUg.js → sprinkle-manager-BHCx3J-c.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-bOeNIrR0.js → sprinkle-renderer-DzWEwFfW.js} +1 -1
- package/dist/ui/assets/{state-B0LE2MQY.js → state-JibZaKgk.js} +1 -1
- package/dist/ui/assets/{store-Ckv7LyPo.js → store-Bg7RhjVe.js} +1 -1
- package/dist/ui/assets/{store-sD4MH5HN.js → store-Vs6udmNk.js} +1 -1
- package/dist/ui/assets/{sudo-DnHIhPQc.js → sudo-IiP3jA1E.js} +1 -1
- package/dist/ui/assets/{sync-dialog-CZWYu4ww.js → sync-dialog-BKE_Ykt7.js} +1 -1
- package/dist/ui/assets/{transformers-env-BmiJwlBu.js → transformers-env-D2_BghhF.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-CzeMGM61.js → tray-sidecar-3-6RzIwN.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-egIJU9Tj.js → upgrade-detection-BxyXIPHf.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-DBBqtrXa.js → upskill-lick-skip-kj86ZF4K.js} +1 -1
- package/dist/ui/assets/{voice-reply-wkpyBnBq.js → voice-reply-DVEayaMP.js} +1 -1
- package/dist/ui/assets/{wc-attach-CJ_1LM59.js → wc-attach-1mWTJllt.js} +2 -2
- package/dist/ui/assets/{wc-extension-D-NpYYTA.js → wc-extension-C6Pq5y0g.js} +2 -2
- package/dist/ui/assets/{wc-follower-Bazf_uJP.js → wc-follower-BxpTHqV2.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-DdJI_wlo.js → wc-follower-oauth-BzFz2s5d.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-gQcttN2b.js → wc-gelatiere-_8qP1fEl.js} +1 -1
- package/dist/ui/assets/{wc-live-DV35XuXH.js → wc-live-CzWxqCdH.js} +5 -5
- package/dist/ui/assets/{wc-nav-CncYSiKZ.js → wc-nav-CQP-ovV8.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-DbBSQGPn.js → wc-onboarding-BHumT27V.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-CFy9WBEV.js → wc-placeholder-ByrkfCei.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-Cc8DepP_.js → wc-secret-request-CZgoJBEU.js} +1 -1
- package/dist/ui/assets/{wc-settings-B3-9zu54.js → wc-settings-Ch4kmYAH.js} +3 -3
- package/dist/ui/assets/{wc-shell-Cy_9M5oX.js → wc-shell-Dv8wLv1C.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-CK8CTDCw.js → wc-shortcut-config-Dm3kFdua.js} +1 -1
- package/dist/ui/assets/{wc-shortcuts-D6QU__Zr.js → wc-shortcuts-C4Pk67qQ.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-C7YifBIt.js → wc-sprinkles-DMU9jkej.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-DbKzb44U.js → wc-transcript-export-Bk5776X_.js} +2 -2
- package/dist/ui/assets/{wc-tray-Chhjrppk.js → wc-tray-BqeSO1Mi.js} +4 -4
- package/dist/ui/assets/welcome-detection-mKago5dB.js +1 -0
- package/dist/ui/assets/{whisper-session-CxBK9wBI.js → whisper-session-C-UAQDio.js} +2 -2
- package/dist/ui/assets/{xai-grok-COvcgYJc.js → xai-grok-Dnd0bv82.js} +1 -1
- package/dist/ui/assets/{xai-grok-BW4eVIlM.js → xai-grok-DwIijoZ3.js} +1 -1
- package/dist/ui/index.html +4 -4
- package/dist/ui/llm-proxy-sw.js +1 -1
- package/dist/ui/packages/webapp/index.html +4 -4
- package/package.json +4 -3
- package/dist/ui/assets/feature-flags-BIRXJe0o.js +0 -1
- package/dist/ui/assets/feature-flags-O-TLmy2G.js +0 -1
- package/dist/ui/assets/js-realm-worker-BfqOZWvd.js +0 -50
- package/dist/ui/assets/jsh-runtime-extensions-pblp0t2G.js +0 -1
- package/dist/ui/assets/memory-v2-flag-Aq5sA4Gq.js +0 -1
- package/dist/ui/assets/provider-settings-dOfr4Jis.js +0 -1
- package/dist/ui/assets/provider-store-access-BSmbWmyl.js +0 -1
- package/dist/ui/assets/provider-store-access-BbOEpFKm.js +0 -1
- package/dist/ui/assets/slicc-version-DFbfAxmg.js +0 -1
- package/dist/ui/assets/welcome-detection-BNAVpTRM.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{A as t,D as n,E as r,M as i,N as a,O as o,T as s,b as c,j as l,p as u}from"./wc-shortcuts-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{A as t,D as n,E as r,M as i,N as a,O as o,T as s,b as c,j as l,p as u}from"./wc-shortcuts-C4Pk67qQ.js";import"./virtual-device-paths-D45tpPP6.js";import{r as d}from"./icons-Ce7Vz89o.js";import{setLayoutApplier as f}from"./layout-apply-registry-Cw730jao.js";var p=e(`add-panel-menu`),m=`slicc-add-panel-menu-style`,h=[`.slicc-addpanel{position:relative;}`,`.slicc-addpanel__btn{width:26px;height:26px;display:grid;place-items:center;`,`border:1px solid var(--line);border-radius:7px;background:var(--canvas);`,`color:var(--txt-2);cursor:pointer;padding:0;font-size:15px;line-height:1;}`,`.slicc-addpanel__btn:hover{background:var(--ghost);color:var(--ink);}`,`.slicc-addpanel__menu{position:absolute;top:32px;right:0;min-width:230px;`,`max-height:70vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);`,`border-radius:10px;box-shadow:var(--shadow-pane);padding:6px;display:none;`,`font-family:var(--ui);font-size:12.5px;}`,`.slicc-addpanel__menu[open]{display:block;}`,`.slicc-addpanel__group{padding:6px 8px 2px;color:var(--txt-3);font-size:10.5px;`,`text-transform:uppercase;letter-spacing:.04em;}`,`.slicc-addpanel__item{width:100%;display:flex;align-items:center;gap:8px;`,`padding:6px 8px;border:none;background:none;border-radius:6px;cursor:pointer;`,`color:var(--ink);text-align:left;font:inherit;}`,`.slicc-addpanel__item:hover{background:var(--ghost);}`,`.slicc-addpanel__check{width:12px;flex:0 0 12px;color:var(--accent);}`,`.slicc-addpanel__sep{height:1px;background:var(--line);margin:5px 4px;}`,`.slicc-addpanel__item{position:relative;}`,`.slicc-addpanel__del{margin-left:auto;flex:0 0 auto;display:grid;place-items:center;`,`width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;`,`color:var(--ink);opacity:0;cursor:pointer;}`,`.slicc-addpanel__item:hover .slicc-addpanel__del{opacity:0.65;}`,`.slicc-addpanel__del:hover{opacity:1;background:var(--ghost);}`,`.slicc-addpanel__del:focus-visible{opacity:1;}`].join(``),g=typeof globalThis.prompt==`function`?globalThis.prompt.bind(globalThis):void 0;function ee(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/^[-.]+|[-.]+$/g,``).slice(0,64);return t.length>0?t:null}function te(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=h,(e.head??e.documentElement).appendChild(t)}function _(e){te(document);let n=document.createElement(`div`);n.className=`slicc-addpanel`;let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__btn`,r.title=`Panels and layouts`,r.setAttribute(`aria-label`,`Panels and layouts`);let i=new DOMParser().parseFromString(d(`layout-dashboard`,{size:14}),`image/svg+xml`).documentElement;r.appendChild(i);let a=document.createElement(`div`);a.className=`slicc-addpanel__menu`,a.setAttribute(`role`,`menu`);let o=(e,t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`slicc-addpanel__item`,r.setAttribute(`role`,`menuitem`);let i=document.createElement(`span`);i.className=`slicc-addpanel__check`,i.textContent=t?`✓`:``;let a=document.createElement(`span`);return a.textContent=e,r.append(i,a),r.addEventListener(`click`,()=>{n(),m()}),r},s=t=>{let n=o(t,!1,()=>e.onLoadLayout(t)),r=document.createElement(`button`);return r.type=`button`,r.className=`slicc-addpanel__del`,r.title=`Delete "${t}"`,r.setAttribute(`aria-label`,`Delete layout ${t}`),r.appendChild(new DOMParser().parseFromString(d(`trash-2`,{size:11}),`image/svg+xml`).documentElement),r.addEventListener(`click`,n=>{n.stopPropagation(),e.onDeleteLayout(t),m()}),n.appendChild(r),n};function c(){let t=e.promptForName??g;if(!t){p.warn(`cannot save a layout: no prompt available`);return}let n=t(`Save this layout as:`,e.layout.getLayout().id);if(n===null)return;let r=ee(n);if(!r){p.warn(`layout not saved: the name reduced to nothing`,{raw:n});return}e.onSaveLayout(r)}let u=e=>{let t=document.createElement(`div`);return t.className=`slicc-addpanel__group`,t.textContent=e,t};async function f(){let n=new Set(e.layout.getPlacedPanelIds()),r=[],i={},l=t();for(let e of l)(i[e.origin]??=[]).push(e);for(let[t,a]of[[`builtin`,`Panels`],[`sprinkle`,`Sprinkles`],[`agent`,`Made by SLICC`]]){let s=i[t];if(s?.length){r.push(u(a));for(let t of s){let i=n.has(t.meta.id);r.push(o(t.meta.title,i,()=>e.onToggle(t.meta.id,!i)))}}}try{let{saved:t,presets:n}=await e.listLayoutNames(),i=document.createElement(`div`);i.className=`slicc-addpanel__sep`,r.push(i,u(`Layouts`));for(let e of t)r.push(s(e));for(let t of n)r.push(o(t,!1,()=>e.onLoadLayout(t)));r.push(o(`Save layout as…`,!1,c))}catch(e){p.warn(`could not list layouts for the menu`,{error:e})}a.replaceChildren(...r)}function m(){a.removeAttribute(`open`),document.removeEventListener(`pointerdown`,h,!0)}let h=e=>{n.contains(e.target)||m()};return r.addEventListener(`click`,()=>{if(a.hasAttribute(`open`)){m();return}f().then(()=>{a.setAttribute(`open`,``),document.addEventListener(`pointerdown`,h,!0)})}),l.addEventListener(`panel-registry-change`,()=>{a.hasAttribute(`open`)&&f()}),n.append(r,a),n}var v={chat:`chat`,sessionsRail:`sessions-rail`,dockRail:`dock-rail`,scoopSwitcher:`scoop-switcher`,floatbar:`floatbar`,files:`files`,term:`term`,memory:`memory`,monitor:`monitor`,browser:`browser`},y={[v.chat]:{id:v.chat,title:`Chat`,icon:`message-circle`,minWidth:320,preferredSize:3},[v.sessionsRail]:{id:v.sessionsRail,title:`Sessions`,icon:`history`,preferredSize:`44px`},[v.dockRail]:{id:v.dockRail,title:`Dock`,icon:`layout-grid`,preferredSize:`48px`},[v.scoopSwitcher]:{id:v.scoopSwitcher,title:`Scoops`,icon:`users`},[v.floatbar]:{id:v.floatbar,title:`Runtime`,icon:`activity`},[v.files]:{id:v.files,title:`Files`,icon:`folder`,minWidth:220},[v.term]:{id:v.term,title:`Terminal`,icon:`square-terminal`},[v.memory]:{id:v.memory,title:`Memory`,icon:`brain`},[v.monitor]:{id:v.monitor,title:`Monitor`,icon:`activity`},[v.browser]:{id:v.browser,title:`Browser`,icon:`globe`}};function b(e,t){let n=document.createElement(`slicc-panel`);n.setAttribute(`panel-id`,e);let r=y[e];return r?.title&&n.setAttribute(`aria-label`,r.title),n.appendChild(t),n}function x(){for(let e of Object.values(y))i({meta:e,source:{kind:`element`,tag:`slicc-panel`},origin:`builtin`})}function ne(e){if(!e?.startsWith(`sprinkle:`))return null;let t=e.slice(9);return t.length>0?t:null}function S(){return{when:{maxWidth:700},docks:[],zones:{center:[v.chat]},floating:[]}}function C(){return[{edge:`top`,size:`36px`,panels:[v.scoopSwitcher,v.floatbar],locked:!0},{edge:`left`,size:`44px`,panels:[v.sessionsRail],locked:!0},{edge:`right`,size:`48px`,panels:[v.dockRail],locked:!0}]}var w={version:1,id:`default`,title:`Default`,base:{docks:C(),zones:{center:[v.chat]}},variants:[S()]},T={default:w};function E(e){return T[e]??null}function D(){return Object.keys(T)}e(`sudo:sudoers`);var O=`/etc/slicc/layouts`;[`NOPASSWD Read /tmp`,`NOPASSWD Read /tmp/**`,`NOPASSWD Write /tmp`,`NOPASSWD Write /tmp/**`].join(`
|
|
2
2
|
`);var k=e(`layout-store`),A=`/workspace/layouts`,j=[A,O];function M(e,t){return`${t?.protected?O:A}/${e}.json`}async function N(e,t){try{if(!await e.exists(t))return null;let n=await e.readFile(t),i=r(JSON.parse(typeof n==`string`?n:String(n)));return`error`in i?(k.warn(`invalid layout document — ignoring`,{path:t,error:i.error}),null):i}catch(e){return k.warn(`failed to read layout`,{path:t,error:e instanceof Error?e.message:e}),null}}async function P(e,t,n){let r=n?.name??t.id,i=n?.protected?O:A,a=`${i}/${r}.json`;return await e.exists(i)||await e.mkdir(i,{recursive:!0}),await e.writeFile(a,`${JSON.stringify(t,null,2)}\n`),k.info(`layout saved`,{path:a}),a}async function F(e,t,n){let r=M(t,n);return await e.exists(r)?(await e.rm(r),!0):!1}async function I(e){let t=[],n=new Set;for(let r of j){let i;try{if(!await e.exists(r))continue;i=(await e.readDir(r)).filter(e=>e.type===`file`).map(e=>e.name)}catch(e){k.warn(`failed to list layout dir`,{dir:r,error:e});continue}for(let a of i){if(!a.endsWith(`.json`))continue;let i=a.slice(0,-5);if(n.has(i))continue;let o=`${r}/${a}`,s=await N(e,o);s&&(n.add(i),t.push({name:i,path:o,doc:s,protected:r===O}))}}return t}async function L(e,t){for(let n of j){let r=`${n}/${t}.json`,i=await N(e,r);if(i)return{name:t,path:r,doc:i,protected:n===O}}return null}function R(e,t,r){let i=e.getLayout(),a=c(i,e.environment());if(r){let e=a.zones??o(a.center??null);n(e,t)?a.zones||(a.zones=e,a.center=null):(a.zones=s(e,t,`right`),a.center=null)}i.panels={...i.panels,[t]:{...i.panels?.[t],visible:r}},e.setLayout(i)}var z=e(`apply-layout-doc`);function B(e){return{applied:!1,error:`layout ${e} needs a filesystem (unavailable here)`}}function V(e){return[`load`,`save`,`delete`,`docs`,`panels`,`show`,`hide`].includes(e.kind)}async function H(e,t){let n=e.fs?await L(e.fs,t):null;if(n)return e.layout.setLayout(n.doc),{applied:!0,output:`loaded layout "${t}" from ${n.path}`};let r=E(t);return r?(e.layout.setLayout(r),{applied:!0,output:`loaded preset "${t}"`}):{applied:!1,error:`unknown layout "${t}" — try: ${D().join(`, `)}`}}async function U(e,t,n){if(!e.fs)return B(`save`);let r={...e.layout.getLayout(),id:t};try{return{applied:!0,output:`saved layout to ${await P(e.fs,r,{name:t,protected:n})}`}}catch(e){let r=e instanceof Error?e.message:String(e);return z.warn(`layout save failed`,{name:t,protected:n,error:r}),{applied:!1,error:`could not save "${t}": ${r}`}}}async function W(e){let t=e.fs?await I(e.fs):[],n=[];if(t.length>0){n.push(`saved layouts:`);for(let e of t)n.push(` ${e.name}${e.protected?` (protected)`:``} ${e.path}`)}n.push(`presets: ${D().join(`, `)}`);let r=e.layout.getLayout();return n.push(`current: ${r.id}`),{applied:!0,output:n.join(`
|
|
3
3
|
`)}}function G(e){let n=new Set(e.layout.getPlacedPanelIds()),r={builtin:[],sprinkle:[],agent:[]};for(let e of t()){let t=n.has(e.meta.id)?`*`:` `;(r[e.origin]??=[]).push(` ${t} ${e.meta.id} ${e.meta.title}`)}let i=[];for(let[e,t]of Object.entries(r))t.length!==0&&(i.push(`${e}:`),i.push(...t));return i.push(`(* = currently placed)`),{applied:!0,output:i.join(`
|
|
4
4
|
`)}}function K(e,t,n){return R(e.layout,t,n),{applied:!0}}async function q(e,t){switch(t.kind){case`load`:return H(e,t.name);case`save`:return U(e,t.name,t.protected);case`delete`:return e.fs?await F(e.fs,t.name)||await F(e.fs,t.name,{protected:!0})?{applied:!0,output:`deleted layout "${t.name}"`}:{applied:!1,error:`no saved layout named "${t.name}"`}:B(`delete`);case`docs`:return W(e);case`panels`:return G(e);case`show`:return K(e,t.panelId,!0);case`hide`:return K(e,t.panelId,!1)}}var J=e(`panelize-shell`),Y=`slicc-panelize-style`,X=[`.wcui-avatar-strip{position:absolute;top:0;right:0;height:var(--barh,36px);`,`display:flex;align-items:center;gap:12px;padding:0 9px 0 14px;box-sizing:border-box;`,`pointer-events:auto;z-index:1;}`,`.wcui-frame slicc-layout{position:relative;z-index:1;}`,`slicc-layout .slicc-layout__dock--left,slicc-layout .slicc-layout__dock--right{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--top,slicc-layout .slicc-layout__dock--bottom{flex:0 0 auto;}`,`slicc-layout .slicc-layout__dock--left{flex:0 0 auto!important;width:auto!important;}`,`slicc-layout .slicc-layout__dock--right{flex:0 0 auto!important;width:auto!important;}`,`slicc-panel[panel-id="sessions-rail"],slicc-panel[panel-id="dock-rail"]{`,`flex:0 0 auto;height:100%;align-self:stretch;overflow:hidden;}`,`slicc-panel[panel-id="dock-rail"]{width:48px;}`,`slicc-panel[panel-id="sessions-rail"]{width:auto;}`,`slicc-panel[panel-id="sessions-rail"]>*,slicc-panel[panel-id="dock-rail"]>*{`,`height:100%;flex:1 1 auto;min-height:0;}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{`,`height:var(--barh,36px);min-height:var(--barh,36px);max-height:var(--barh,36px);}`,`slicc-panel[panel-id="chat"] slicc-chatpane{flex:1 1 0;width:100%;min-height:0;}`,`slicc-panel[panel-id="chat"] slicc-chat-thread{flex:1 1 0;min-height:0;overflow-y:auto;}`,`slicc-panel[panel-id="chat"] slicc-composer{flex:0 0 auto;}`,`slicc-panel[panel-id="scoop-switcher"]{flex:0 0 auto;justify-content:center;padding-left:14px;}`,`slicc-panel[panel-id="floatbar"]{flex:1 1 auto;align-items:center;justify-content:flex-end;`,`padding-right:var(--avatar-strip-w, 96px);}`,`slicc-panel[panel-id="scoop-switcher"],slicc-panel[panel-id="floatbar"]{flex-direction:row;}`].join(``);function re(e){if(e.getElementById(Y))return;let t=e.createElement(`style`);t.id=Y,t.textContent=X,(e.head??e.documentElement).appendChild(t)}function Z(e){e.setAttribute(`active`,``),e.style.display=`flex`,e.style.flexDirection=`column`,e.style.position=`relative`,e.style.inset=`auto`,e.style.flex=`1 1 auto`,e.style.minHeight=`0`}var ie=new Set([v.files,v.term,v.memory,v.monitor,v.browser]);function ae(e,t,n,r){let i=(e,i)=>{let a=e.detail?.id;!a||!ie.has(a)||n.has(a)||(e.stopImmediatePropagation(),R(t,a,i),i?r?.onToolPanelActivate?.(a):r?.onToolPanelDeactivate?.(a))};e.addEventListener(`slicc-dock-select`,e=>i(e,!0),!0),e.addEventListener(`slicc-dock-collapse`,e=>i(e,!1),!0)}function oe(e,t){return{hostSprinkleSurface:(n,r)=>{let a=b(n,r);Z(r),t.set(n,a),e.appendChild(a),i({meta:{id:n,title:ne(n)??n},source:{kind:`element`,tag:`slicc-panel`},origin:`sprinkle`}),R(e,n,!0),J.info(`sprinkle panel hosted`,{surfaceId:n})},removeSprinkleSurface:n=>{t.get(n)?.remove(),t.delete(n),a(n);let r=e.getLayout();r.panels={...r.panels,[n]:{visible:!1}},e.setLayout(r)}}}var Q=`slicc-panel-layout:default`;function se(e,t){e.addEventListener(`slicc-layout-change`,t=>{let n=t.detail?.reason;if(n===`rearrange`||n===`resize`)try{localStorage.setItem(Q,JSON.stringify(e.getLayout()))}catch{}});let n=null;try{let e=localStorage.getItem(Q);if(e){let t=r(JSON.parse(e));`error`in t?J.warn(`stored layout rejected — using the default`,{error:t.error}):n=t}}catch(e){J.warn(`stored layout unreadable — using the default`,e)}e.setLayout(n??t)}var $=null;function ce(){return $}function le(e,t=w,n,r){if(e.frame.dataset.sliccPanelized===`1`)return J.warn(`panelizeShell called twice — ignoring the second call`),null;re(document),x();let i=n,a=document.createElement(`slicc-layout`),o=new Map,s=(e,t)=>{if(!t)return;let n=b(e,t);o.set(e,n),a.appendChild(n)};e.freezer.setAttribute(`docked`,``),e.frame.querySelector(`.wcui-appcol`)?.style.setProperty(`--rail-w`,`0px`),s(v.scoopSwitcher,e.switcher),s(v.floatbar,e.floatbar),s(v.sessionsRail,e.freezer),s(v.dockRail,e.dock),s(v.chat,e.chatPane);for(let t of[v.files,v.term,v.memory,v.monitor,v.browser]){let n=e.dockTree.querySelector(`slicc-surface[surface-id="${t}"]`);n instanceof HTMLElement&&(Z(n),s(t,n))}let c=document.createElement(`div`);c.className=`wcui-avatar-strip`,c.appendChild(_({layout:a,onToggle:(e,t)=>{q({layout:a,fs:i},{kind:t?`show`:`hide`,panelId:e})},onLoadLayout:e=>{q({layout:a,fs:i},{kind:`load`,name:e})},onSaveLayout:e=>{q({layout:a,fs:i},{kind:`save`,name:e,protected:!1}).then(t=>{t.error?J.warn(`layout save failed`,{name:e,error:t.error}):J.info(`layout saved`,{name:e,output:t.output})})},onDeleteLayout:e=>{q({layout:a,fs:i},{kind:`delete`,name:e})},listLayoutNames:async()=>({saved:i?(await I(i)).map(e=>e.name):[],presets:D()})})),c.appendChild(e.avatarMenu),u(c,document),e.shell.replaceWith(a),e.frame.querySelector(`slicc-nav`)?.remove(),se(a,t),ae(e.dock,a,e.overlaySurfaces,r),f(e=>V(e)?q({layout:a,fs:i},e):{applied:!1,error:`"${e.kind}" targets the old dock-tree; with panels use: load, save, show, hide, docs, panels`}),e.frame.dataset.sliccPanelized=`1`,J.info(`shell panelized`,{panels:o.size,layout:t.id});let l={layout:a,avatarStrip:c,panels:o,attachFs:e=>{i=e,J.info(`layout store attached`)},...oe(a,o)};return $=l,l}export{Q as PANEL_LAYOUT_STORAGE_KEY,ce as getPanelizedShell,le as panelizeShell};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-
|
|
1
|
+
import{a as e,n as t,t as n}from"./path-utils-DNJG-zQf.js";import{t as r}from"./types-D8gIX-W-.js";import"./fs-DMkW9RoT.js";import{t as i}from"./write-verification-BOaZdtyk.js";let a;function o(){return a??=import(`./edit-BnFODSzt.js`).then(({createEditTool:e})=>e()),a}function s(e){return{ok:!0,value:e}}function c(e){return{ok:!1,error:e}}var l=class extends Error{code;path;constructor(e,t,n,r){super(t,r===void 0?void 0:{cause:r}),this.code=e,this.path=n,this.name=`FileError`}},u=class extends Error{code=`shell_unavailable`;constructor(e){super(e),this.name=`ExecutionError`}};function d(e){if(!(e instanceof r))return`unknown`;switch(e.code){case`ENOENT`:return`not_found`;case`EACCES`:return`permission_denied`;case`ENOTDIR`:return`not_directory`;case`EISDIR`:return`is_directory`;case`EINVAL`:case`ELOOP`:return`invalid`;default:return`unknown`}}function f(e,t){if(e instanceof l)return e;let n=e instanceof Error?e:Error(String(e));return new l(d(e),n.message,t,n)}function p(e,t){return e?.aborted?c(new l(`aborted`,`aborted`,t)):null}var m=class{fs;cwd;constructor(e,t){this.fs=e,this.cwd=t}async absolutePath(e,r){return p(r,e)||s(t(e.startsWith(`/`)?e:n(this.cwd,e)))}async canonicalPath(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{return s(await this.fs.realpath(n.value))}catch(e){return c(f(e,n.value))}}async fileInfo(t,n){let r=await this.absolutePath(t,n);if(!r.ok)return r;try{let t=await this.fs.lstat(r.value);return s({name:e(r.value).base,path:r.value,kind:t.type,size:t.size,mtimeMs:t.mtime})}catch(e){return c(f(e,r.value))}}async readTextFile(e,t){let n=await this.absolutePath(e,t);if(!n.ok)return n;try{let e=await this.fs.readTextFile(n.value);return p(t,n.value)??s(e)}catch(e){return c(f(e,n.value))}}async writeFile(e,t,n){let r=await this.absolutePath(e,n);if(!r.ok)return r;try{if(await this.fs.writeFile(r.value,t),typeof t==`string`){let e=await i(this.fs,r.value,t);if(e)return c(new l(`unknown`,e,r.value))}return p(n,r.value)??s(void 0)}catch(e){return c(f(e,r.value))}}unsupported(e,t){return c(new l(`not_supported`,`${e} is unavailable to the edit tool`,t))}async joinPath(e){return s(n(...e))}async readTextLines(e,t){let n=await this.readTextFile(e,t?.abortSignal);if(!n.ok)return n;let r=n.value.split(/\r?\n/);return s(t?.maxLines===void 0?r:r.slice(0,t.maxLines))}async readBinaryFile(e){return this.unsupported(`readBinaryFile`,e)}async appendFile(e){return this.unsupported(`appendFile`,e)}async renameFile(e){return this.unsupported(`renameFile`,e)}async listDir(e){return this.unsupported(`listDir`,e)}async exists(e){return this.unsupported(`exists`,e)}async createDir(e){return this.unsupported(`createDir`,e)}async remove(e){return this.unsupported(`remove`,e)}async createTempDir(){return this.unsupported(`createTempDir`)}async createTempFile(){return this.unsupported(`createTempFile`)}async exec(){return c(new u(`Shell is unavailable to the edit tool`))}async cleanup(){}};const h=new WeakMap;function g(e,t){let n=h.get(e);n||h.set(e,n=new Map);let r=n.get(t);return r||n.set(t,r=new m(e,t)),r}async function _(e,t,n,r){return{content:(await(await o()).execute(`slicc-edit`,n,r,void 0,{env:g(e,t)})).content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
2
|
`)}}export{_ as executePiEdit};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-
|
|
2
|
-
import{G as e,f as t,w as n}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/fs-DeUpRksg.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/path-utils-DNJG-zQf.js","assets/bounded-walk-BjxKWNqp.js","assets/types-D8gIX-W-.js","assets/virtual-device-paths-D45tpPP6.js","assets/same-file-identity-DuEcSmPX.js","assets/mount-table-store-dY2IfQ5S.js","assets/proxied-fetch-DyBveeCl.js","assets/base64-DJRlyqZu.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/oauth-service-BsW9nY_u.js","assets/panel-rpc-B3MSVImO.js","assets/permissions-surface-registry-CilCRwhh.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{G as e,f as t,w as n}from"./account-store-DgxzQaKH.js";import{t as r}from"./preload-helper-Czpn1I53.js";import{t as i}from"./logger-DDBAeTLF.js";import{n as a}from"./float-topology-YtctpJaG.js";import{i as o}from"./providers-DfRt-ApR.js";import{t as s}from"./global-db-CbuLl-zx.js";import{n as c,r as l,t as u}from"./pkce-hGf_TEnP.js";import{t as d}from"./types-D8gIX-W-.js";var f=i(`mcp-store`),p=`/workspace/.mcp/servers.json`,m=1,h=null,g=null;async function _(){return h||=await r(()=>import(`./fs-DeUpRksg.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),h}async function v(e){if(e)return e;if(g&&g.dbName===`slicc-fs-global`)return g.instance;let{VirtualFS:t}=await _(),n=await t.create({dbName:s});return g={instance:n,dbName:s},n}function y(){return{version:m,servers:{}}}function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function x(e){if(!b(e))return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function S(e){if(!b(e))return y();let t=e,n=typeof t.version==`number`?t.version:m,r={};if(b(t.servers))for(let[e,n]of Object.entries(t.servers)){let t=x(n);t&&(r[e]=t)}return{version:n,servers:r}}async function C(e){try{let t=await(await v(e)).readFile(p,{encoding:`utf-8`});try{return S(JSON.parse(t))}catch(e){return f.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),y()}}catch(e){if(e instanceof d&&e.code===`ENOENT`)return y();throw e}}async function w(e){return(await C(e)).servers}async function T(){let e=await w(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}var E=i(`mcp-oauth`);function D(e,t){let{discoveryPath:n,prmUrl:r,prmReason:i,asmUrl:a,asmReason:o}=t;if(!e)throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}): ${o}.`:`ASM fetch failed: ${o} (${a})`);if(!(e.authorization_endpoint&&e.token_endpoint))throw Error(n===`asm-origin-fallback`?`MCP OAuth discovery failed. PRM (${r}): ${i}. ASM fallback (${a}) is missing required endpoints (authorization_endpoint, token_endpoint).`:`ASM at ${a} is missing required endpoints`)}async function O(e,t,n){let r=new URL(e).origin,i=t??`${r}/.well-known/oauth-protected-resource`,a=null,o=null;E.debug(`Fetching PRM`,{prmUrl:i});try{let e=await n(i,{headers:{Accept:`application/json`}});if(!e.ok)o=`${e.status} ${e.statusText}`;else{let t=await e.json();!t.authorization_servers||t.authorization_servers.length===0?o=`lists no authorization_servers`:a=t}}catch(e){o=e instanceof Error?e.message:String(e)}let s,c,l;a?.authorization_servers&&a.authorization_servers.length>0?(s=a.authorization_servers[0].replace(/\/+$/,``),c=`${s}/.well-known/oauth-authorization-server`,l=`prm`,E.debug(`Discovery via PRM`,{prmUrl:i,asmUrl:c})):(s=r,c=`${r}/.well-known/oauth-authorization-server`,l=`asm-origin-fallback`,E.debug(`PRM unavailable; falling back to ASM at server origin`,{prmUrl:i,prmReason:o,asmUrl:c}));let u=null,d=null;E.debug(`Fetching ASM`,{asmUrl:c});try{let e=await n(c,{headers:{Accept:`application/json`}});e.ok?u=await e.json():d=`${e.status} ${e.statusText}`}catch(e){d=e instanceof Error?e.message:String(e)}return D(u,{discoveryPath:l,prmUrl:i,prmReason:o,asmUrl:c,asmReason:d}),{issuer:u.issuer||s,authorizationEndpoint:u.authorization_endpoint,tokenEndpoint:u.token_endpoint,registrationEndpoint:u.registration_endpoint,supportedScopes:u.scopes_supported??a?.scopes_supported,codeChallengeMethods:u.code_challenge_methods_supported,grantTypes:u.grant_types_supported,discoveryPath:l}}function k(e){return!e||e.length===0||e.includes(`S256`)?`S256`:e.includes(`plain`)?`plain`:`S256`}async function A(e){let t=c();return e===`plain`?{codeVerifier:t,codeChallenge:t,method:e}:{codeVerifier:t,codeChallenge:await u(t),method:e}}function j(e){try{let t=new URL(e);return{code:t.searchParams.get(`code`),state:t.searchParams.get(`state`)}}catch{return{code:null,state:null}}}async function M(e){let t=await A(k(e.asMetadata.codeChallengeMethods)),n=l(),r=new URLSearchParams({response_type:`code`,client_id:e.clientId,redirect_uri:e.redirectUri,code_challenge:t.codeChallenge,code_challenge_method:t.method,state:n});e.scope&&r.set(`scope`,e.scope);let i=`${e.asMetadata.authorizationEndpoint}?${r.toString()}`,a=await e.launcher(i);if(!a)throw Error(`MCP OAuth flow cancelled or timed out`);let{code:o,state:s}=j(a);if(!o)throw Error("MCP OAuth redirect missing `code` parameter");if(s!==n)throw Error(`MCP OAuth state mismatch — possible CSRF`);return P({tokenEndpoint:e.asMetadata.tokenEndpoint,clientId:e.clientId,code:o,codeVerifier:t.codeVerifier,redirectUri:e.redirectUri,fetchImpl:e.fetchImpl})}function N(e){if(e.error||!e.access_token)throw Error(`Token endpoint error: ${e.error??`no_access_token`}${e.error_description?` — ${e.error_description}`:``}`);return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_in?Date.now()+e.expires_in*1e3:void 0,scope:e.scope,tokenType:e.token_type}}async function P(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.code,redirect_uri:e.redirectUri,client_id:e.clientId,code_verifier:e.codeVerifier}).toString(),n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token exchange failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return N(r)}async function F(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:e.clientId});e.scope&&t.set(`scope`,e.scope);let n=await e.fetchImpl(e.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:t.toString()}),r=await n.json();if(!n.ok&&!r.access_token)throw Error(`Token refresh failed: ${n.status} ${n.statusText}${r.error?` (${r.error})`:``}`);return N(r)}var I=`/auth/mcp-callback`;async function L(e){if(e===`extension-direct`){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}if(e===`node-rest`){let{getLocalApiBaseUrl:e}=await r(async()=>{let{getLocalApiBaseUrl:e}=await import(`./proxied-fetch-DyBveeCl.js`).then(e=>e.i);return{getLocalApiBaseUrl:e}},__vite__mapDeps([10,1,2,11,12,13,14])),t=e();if(t)return`${t}/auth/callback`}let{getOAuthPageOrigin:t}=await r(async()=>{let{getOAuthPageOrigin:e}=await import(`./oauth-service-BsW9nY_u.js`);return{getOAuthPageOrigin:e}},__vite__mapDeps([15,2,10,1,11,12,13,14,16,17])),{origin:n}=await t();return`${n}${e===`extension-delegate`?I:`/auth/callback`}`}var R=i(`mcp-provider`),z=`mcp:`;function B(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function V(e){return`${z}${e}`}var H=new Map,U=new Set;async function W(e){if(e)return e;let{createProxiedFetch:t}=await r(async()=>{let{createProxiedFetch:e}=await import(`./proxied-fetch-DyBveeCl.js`).then(e=>e.i);return{createProxiedFetch:e}},__vite__mapDeps([10,1,2,11,12,13,14])),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function G(e){let t=H.get(V(e.name));if(t)return t;let n=await W(e.fetchImpl),r=await O(e.serverUrl,void 0,n);return H.set(V(e.name),r),r}function K(r){let i=V(r.name),o=(()=>{try{return new URL(r.serverUrl).host}catch{return``}})();return{id:i,name:`MCP: ${r.name}`,description:`MCP server at ${r.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:o?[o]:[],getModelIds:()=>[],onOAuthLogin:async(t,n)=>{let o=r.launcher??t,s=await W(r.fetchImpl),c=await M({asMetadata:await G(r),clientId:r.auth.clientId,scope:r.auth.scope,redirectUri:r.auth.redirectUri??await L(a()),launcher:o,fetchImpl:s});await e({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken,tokenExpiresAt:c.expiresAt,scopes:c.scope}),n()},onSilentRenew:async()=>{if(!n(i))return null;let a=t().find(e=>e.providerId===i),o=a?.refreshToken;if(!o)return R.info(`No refresh token for MCP provider, skipping silent renewal`,{id:i}),null;try{let t=await G(r),n=t.grantTypes??[];if(n.length>0&&!n.includes(`refresh_token`))return R.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:i}),null;let s=await W(r.fetchImpl),c=await F({tokenEndpoint:t.tokenEndpoint,clientId:r.auth.clientId,refreshToken:o,scope:r.auth.scope,fetchImpl:s});return await e({providerId:i,accessToken:c.accessToken,refreshToken:c.refreshToken??o,tokenExpiresAt:c.expiresAt,scopes:c.scope??a.scopes}),c.accessToken}catch(e){return R.warn(`MCP silent renewal failed`,{id:i,error:e instanceof Error?e.message:String(e)}),null}}}}function q(e){let t=V(e.name);if(U.has(t))return;let n=K(e);o(n),U.add(t),R.debug(`Registered MCP provider`,{id:t})}async function J(){if(!B())return[];let{readMcpAuthEntries:e}=await r(async()=>{let{readMcpAuthEntries:e}=await import(`./provider-store-access-DXtA_8mp.js`);return{readMcpAuthEntries:e}},[]),t=await e(),n=[];for(let e of t)q({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(V(e.name));return n}export{J as ensureAllMcpProvidersRegistered,T as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import{i as t,s as n,t as r}from"./providers-BXLtb_Oe.js";import{_ as i,l as a,r as o}from"./account-store-VSfy5XZf.js";import{u as s}from"./core-DP-MJcag.js";import{t as c}from"./redirect-uri-CgKdq7-K.js";import{discoverAuth as l,refreshAccessToken as u,runAuthFlow as d}from"./oauth-DR6XMm1M.js";import{n as f}from"./store-Vs6udmNk.js";import"./provider-store-access-Aq5cAQ0Z.js";const p=e(`mcp-provider`);function m(){return typeof globalThis<`u`&&globalThis.indexedDB!==void 0}function h(e){return`mcp:${e}`}const g=new Map,_=new Set;async function v(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-DEK8DT-z.js`).then(e=>e.i),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function y(e){let t=g.get(h(e.name));if(t)return t;let n=await v(e.fetchImpl),r=await l(e.serverUrl,void 0,n);return g.set(h(e.name),r),r}function b(e){let t=h(e.name),n=(()=>{try{return new URL(e.serverUrl).host}catch{return``}})();return{id:t,name:`MCP: ${e.name}`,description:`MCP server at ${e.serverUrl}`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,oauthTokenDomains:n?[n]:[],getModelIds:()=>[],onOAuthLogin:async(n,r)=>{let a=e.launcher??n,o=await v(e.fetchImpl),l=await y(e),u=await d({asMetadata:l,clientId:e.auth.clientId,scope:e.auth.scope,redirectUri:e.auth.redirectUri??await c(s()),launcher:a,fetchImpl:o});await i({providerId:t,accessToken:u.accessToken,refreshToken:u.refreshToken,tokenExpiresAt:u.expiresAt,scopes:u.scope}),r()},onSilentRenew:async()=>{if(!a(t))return null;let n=o().find(e=>e.providerId===t),r=n?.refreshToken;if(!r)return p.info(`No refresh token for MCP provider, skipping silent renewal`,{id:t}),null;try{let a=await y(e),o=a.grantTypes??[];if(o.length>0&&!o.includes(`refresh_token`))return p.info(`AS does not advertise refresh_token grant; skipping silent renewal`,{id:t}),null;let s=await v(e.fetchImpl),c=await u({tokenEndpoint:a.tokenEndpoint,clientId:e.auth.clientId,refreshToken:r,scope:e.auth.scope,fetchImpl:s});return await i({providerId:t,accessToken:c.accessToken,refreshToken:c.refreshToken??r,tokenExpiresAt:c.expiresAt,scopes:c.scope??n.scopes}),c.accessToken}catch(e){return p.warn(`MCP silent renewal failed`,{id:t,error:e instanceof Error?e.message:String(e)}),null}}}}function x(e){let n=h(e.name);if(_.has(n))return;let r=b(e);t(r),_.add(n),p.debug(`Registered MCP provider`,{id:n})}async function S(e,t={}){let n=h(e);if(_.has(n)&&r(n))return!0;if(!m())return!1;let i=await f(e);return i?(x({name:e,serverUrl:i.serverUrl,auth:i.auth,...t}),!0):!1}async function C(){if(!m())return[];let{readMcpAuthEntries:e}=await import(`./provider-store-access-Aq5cAQ0Z.js`),t=await e(),n=[];for(let e of t)x({name:e.name,serverUrl:e.serverUrl,auth:e.auth}),n.push(h(e.name));return n}function w(e){let t=h(e);return _.delete(t),g.delete(t),n(t)}export{C as ensureAllMcpProvidersRegistered,S as ensureMcpProviderRegistered,x as registerMcpProvider,w as removeMcpProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-LESFN7Hj.js";import"./account-store-VSfy5XZf.js";import"./core-DP-MJcag.js";import"./tray-runtime-config-CRZxBChd.js";e(`provider-settings`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./store-Vs6udmNk.js";export{e as readMcpAuthEntries};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./provider-BoBl5ai2.js";export{e as readMcpAuthEntries};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";var t={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},n=e({allProviderConfigs:()=>u,getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>l,shouldIncludeProvider:()=>i,unregisterProviderConfig:()=>m});const r=Object.assign({"/packages/dev-tools/providers.build.json":t})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function i(e){let{include:t,exclude:n}=r;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const a=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-B7RqJRkU.js`),"./built-in/bedrock-camp-compat.ts":()=>import(`./bedrock-camp-compat-99DjWBHV.js`).then(e=>e.n),"./built-in/bedrock-camp.ts":()=>import(`./bedrock-camp-C8BwH8Mj.js`),"./built-in/local-llm.ts":()=>import(`./local-llm-DhsM4UwJ.js`).then(e=>e.n)}),o=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-BaToubli.js`),"/packages/webapp/providers/cerebras.ts":()=>import(`./cerebras-DQDtfnO9.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-D5XMt_HJ.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-DOXm8fYh.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-BVVhFdZG.js`),"/packages/webapp/providers/openrouter-free.ts":()=>import(`./openrouter-free-DURZpN1p.js`),"/packages/webapp/providers/openrouter-models.ts":()=>import(`./openrouter-models-DyyLIGVe.js`),"/packages/webapp/providers/openrouter-oauth.ts":()=>import(`./openrouter-oauth-DKRmu04u.js`),"/packages/webapp/providers/openrouter.ts":()=>import(`./openrouter-tswR6T7t.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-DwIijoZ3.js`)}),s=new Map;let c=null;function l(){return c===null&&(c=(async()=>{let e=await Promise.all(Object.values(a).map(e=>e()));for(let t of e)t.config&&i(t.config.id)&&(s.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(o).map(e=>e()));for(let e of t)e.config&&(s.set(e.config.id,e.config),e.register?.())})()),c}const u=s;function d(e){return s.get(e)}function f(){return[...s.keys()]}function p(e){s.set(e.id,e)}function m(e){return s.delete(e)}export{l as a,p as i,f as n,i as o,n as r,m as s,d as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-
|
|
2
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/azure-openai-Cpz7pb_z.js","assets/account-store-DgxzQaKH.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-CSATLzrT.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/logger-DDBAeTLF.js","assets/base64-DJRlyqZu.js","assets/proxied-fetch-DyBveeCl.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-YtctpJaG.js","assets/secret-topology-DLJBhHOi.js","assets/secrets-bridge-client--VZ3E0yk.js","assets/port-bridge-client-Dn8JtUyP.js","assets/tool-ui-eSQ1g2I1.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/transform-messages-BsQjTIEJ.js","assets/bedrock-camp-D1dak7rV.js","assets/temperature-support-B2rDQKe1.js","assets/local-llm-DlNjPDBg.js","assets/legacy-api-aliases-bAJ0Klzq.js","assets/adobe-GD4rKj7O.js","assets/main-jZVh08kl.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/bridge-protocol-06nbmp2X.js","assets/messages-zAgr7E2T.js","assets/tray-runtime-config-B9jN9kUJ.js","assets/telemetry-DJyRzh6X.js","assets/feature-flags-Dr999R3v.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/silent-renew-backoff-BTq8C2aH.js","assets/provider-budget-LCzMPlKv.js","assets/oauth-service-BsW9nY_u.js","assets/permissions-surface-registry-CilCRwhh.js","assets/llm-session-id-bZQs6gBN.js","assets/cerebras-Bg6LE4Sw.js","assets/github-copilot-l8HL1ihH.js","assets/github-BBLC2V3f.js","assets/global-db-CbuLl-zx.js","assets/openai-codex-CDEU19Aq.js","assets/pkce-hGf_TEnP.js","assets/openrouter-free-7YOtpJks.js","assets/openrouter-models-Cfi7qjq5.js","assets/openrouter-oauth-CrcbGavU.js","assets/openrouter-COryLTPE.js","assets/xai-grok-Dnd0bv82.js","assets/xai-grok-errors-bnlIBeu-.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n={include:[`*`],exclude:[`amazon-bedrock`,`xai`]},r=e({getRegisteredProviderConfig:()=>d,getRegisteredProviderIds:()=>f,registerProviderConfig:()=>p,registerProviders:()=>u,shouldIncludeProvider:()=>a}),i=Object.assign({"/packages/dev-tools/providers.build.json":n})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function a(e){let{include:t,exclude:n}=i;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}var o=Object.assign({"./built-in/azure-ai-foundry.ts":()=>t(()=>import(`./azure-ai-foundry-Bo0FAJyX.js`),[]),"./built-in/azure-openai.ts":()=>t(()=>import(`./azure-openai-Cpz7pb_z.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),"./built-in/bedrock-camp-compat.ts":()=>t(()=>import(`./bedrock-camp-compat-BeCSBUrZ.js`).then(e=>e.n),__vite__mapDeps([23,2])),"./built-in/bedrock-camp.ts":()=>t(()=>import(`./bedrock-camp-D1dak7rV.js`),__vite__mapDeps([25,6,5,3,4,7,8,2,9,24,26])),"./built-in/local-llm.ts":()=>t(()=>import(`./local-llm-DlNjPDBg.js`),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28]))}),s=Object.assign({"/packages/webapp/providers/adobe.ts":()=>t(()=>import(`./adobe-GD4rKj7O.js`),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39,40,41,42,43,26,44])),"/packages/webapp/providers/cerebras.ts":()=>t(()=>import(`./cerebras-Bg6LE4Sw.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28])),"/packages/webapp/providers/github-copilot.ts":()=>t(()=>import(`./github-copilot-l8HL1ihH.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39])),"/packages/webapp/providers/github.ts":()=>t(()=>import(`./github-BBLC2V3f.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,34,32,33,30,31,35,36,37,38,39,40,42,43,48])),"/packages/webapp/providers/openai-codex.ts":()=>t(()=>import(`./openai-codex-CDEU19Aq.js`),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39,50])),"/packages/webapp/providers/openrouter-free.ts":()=>t(()=>import(`./openrouter-free-7YOtpJks.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39,52,53,50])),"/packages/webapp/providers/openrouter-models.ts":()=>t(()=>import(`./openrouter-models-Cfi7qjq5.js`),__vite__mapDeps([52,9])),"/packages/webapp/providers/openrouter-oauth.ts":()=>t(()=>import(`./openrouter-oauth-CrcbGavU.js`),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,30,31,32,33,34,35,36,37,38,39,50])),"/packages/webapp/providers/openrouter.ts":()=>t(()=>import(`./openrouter-COryLTPE.js`),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39,52,53,50])),"/packages/webapp/providers/xai-grok-errors.ts":()=>t(()=>import(`./xai-grok-errors-bnlIBeu-.js`),[]),"/packages/webapp/providers/xai-grok.ts":()=>t(()=>import(`./xai-grok-Dnd0bv82.js`),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,32,33,34,35,36,37,38,39,50,56]))}),c=new Map,l=null;function u(){return l===null&&(l=(async()=>{let e=await Promise.all(Object.values(o).map(e=>e()));for(let t of e)t.config&&a(t.config.id)&&(c.set(t.config.id,t.config),t.register?.());let t=await Promise.all(Object.values(s).map(e=>e()));for(let e of t)e.config&&(c.set(e.config.id,e.config),e.register?.())})()),l}function d(e){return c.get(e)}function f(){return[...c.keys()]}function p(e){c.set(e.id,e)}export{u as a,p as i,f as n,a as o,r,d as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{E as t,O as n,g as r,k as i}from"./account-store-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{E as t,O as n,g as r,k as i}from"./account-store-DgxzQaKH.js";import{s as a}from"./claude-model-version-CSATLzrT.js";import{t as o}from"./logger-DDBAeTLF.js";import{t as s}from"./llm-session-id-bZQs6gBN.js";import{i as c,t as l}from"./icons-Ce7Vz89o.js";var u=e({lucideIconNames:()=>h,pickLucideIcon:()=>g,quickLabel:()=>f}),d=o(`quick-llm`);async function f(e){let t=r();if(!t)return d.debug(`No API key for active provider — skipping`),null;let o=i(),s=n(),c;if(c=e.modelId?b(o,e.modelId)??b(o,s):_(o,s),!c)return d.debug(`No model available for provider`,{providerId:o}),null;let l={role:`user`,content:e.prompt,timestamp:Date.now()},u={};c.provider===`adobe`&&(u[`X-Session-Id`]=S());try{let n=(await a(c,{systemPrompt:e.system,messages:[l]},{apiKey:t,maxTokens:e.maxTokens??60,temperature:e.temperature??.3,signal:e.signal,headers:Object.keys(u).length>0?u:void 0})).content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim();return n.length>0?n:null}catch(e){return d.debug(`Quick label call failed`,{error:e instanceof Error?e.message:String(e)}),null}}var p=null;function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Za-z])(\d)/g,`$1-$2`).toLowerCase()}function h(){return p||=Object.keys(c).map(m).sort(),p}async function g(e){let t=h(),n=await(e.labelFn??f)({system:`You pick ONE icon for a UI element. Respond with exactly one icon name from the provided list — lowercase, no quotes, no punctuation, nothing else.`,prompt:`Pick the single most fitting icon for: ${e.subject}\n\nValid icon names:\n${t.join(` `)}`,maxTokens:16,temperature:.2,signal:e.signal});if(!n)return null;let r=n.trim().toLowerCase().replace(/[^a-z0-9-]/g,``);return l(r)?r:null}function _(e,n){let r=t(e);if(r.length===0)return;let i=r.find(e=>e.id===n)??r[0],a=y(i.id),o=r.filter(e=>v(e,i,a));return o.length===0?i:(o.sort((e,t)=>(e.cost?.input??0)-(t.cost?.input??0)),o[0])}function v(e,t,n){if(e.id===t.id)return!1;let r=t.cost?.input??1/0;if((e.cost?.input??1/0)>=r)return!1;let i=e.id.toLowerCase();switch(n){case`claude`:return i.includes(`haiku`);case`gpt`:return/(^|-)mini(-|$)|(^|-)nano(-|$)/.test(i);case`gemini`:return i.includes(`flash`);case`grok`:return/(^|-)mini(-|$)|(^|-)fast(-|$)/.test(i);case`unknown`:return!0}}function y(e){let t=e.toLowerCase();return t.includes(`claude`)?`claude`:t.includes(`gemini`)?`gemini`:t.includes(`grok`)?`grok`:/^(gpt|o\d)/.test(t)?`gpt`:`unknown`}function b(e,n){return t(e).find(e=>e.id===n)}var x=`ui-quick-llm`;function S(){return s(x)}export{u as n,f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./main-
|
|
1
|
+
import{c as e}from"./main-jZVh08kl.js";async function t(){try{let e=await navigator.serviceWorker?.getRegistrations?.();e&&await Promise.all(e.map(e=>e.unregister().catch(()=>!1)))}catch{}try{let e=await indexedDB.databases();await Promise.all(e.filter(e=>!!e.name).map(e=>new Promise(t=>{let n=indexedDB.deleteDatabase(e.name);n.onsuccess=()=>t(),n.onerror=()=>t(),n.onblocked=()=>t()})))}catch{}try{let e=navigator.storage;if(typeof e?.getDirectory==`function`){let t=await e.getDirectory(),n=[];for await(let e of t.keys())n.push(e);await Promise.all(n.map(e=>t.removeEntry(e,{recursive:!0}).catch(()=>{})))}}catch{}}function n(n,r,i={}){if(n.dataset.recoveryBusy===`1`)return;let a=i.wipe??t,o=i.reload??(()=>location.reload()),s=r instanceof Error?r.message:String(r),c=i.verdict===`browser-wedged`,l=document.createElement(`div`);l.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let u=document.createElement(`h1`);u.style.color=`var(--s2-negative, #e34850)`,u.textContent=c?`Your browser needs a restart`:`Failed to start`;let d=document.createElement(`p`);d.style.color=`var(--s2-content-tertiary, #717171)`,d.textContent=s;let f=document.createElement(`div`);f.style.cssText=`display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem;`;let p=document.createElement(`button`);p.type=`button`,p.textContent=`Reset local data & reload`,p.dataset.variant=c?`demoted`:`destructive`,p.style.cssText=c?`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-content-tertiary, #717171);background:transparent;color:inherit;border-radius:4px;`:`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-negative, #e34850);background:var(--s2-negative, #e34850);color:#fff;border-radius:4px;`;let m=document.createElement(`button`);if(m.type=`button`,m.textContent=`Reload`,m.style.cssText=c?`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-accent, #0265dc);background:var(--s2-accent, #0265dc);color:#fff;border-radius:4px;`:`padding:0.5rem 1rem;cursor:pointer;border:1px solid var(--s2-content-tertiary, #717171);background:transparent;color:inherit;border-radius:4px;`,p.addEventListener(`click`,()=>{p.disabled=!0,m.disabled=!0,p.textContent=`Resetting…`,n.dataset.recoveryBusy=`1`,(async()=>{try{await a()}catch{}for(let t of e)try{localStorage.removeItem(t)}catch{}o()})()}),m.addEventListener(`click`,()=>{o()}),c){let e=document.createElement(`p`);e.style.cssText=`max-width:34rem;margin:1rem auto 0;`,e.textContent=`This browser has stopped starting web workers — a browser process issue, not a problem with your data. Quit the browser completely, reopen it, and come back. Your local data is intact; resetting it will not fix this.`,l.append(u,d,e),f.append(m,p)}else l.append(u,d),f.append(p,m);for(l.append(f);n.firstChild;)n.removeChild(n.firstChild);n.appendChild(l)}export{n as renderBootRecoveryScreen};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./slicc-version-
|
|
1
|
+
import{n as e}from"./slicc-version-BVfSEO0V.js";import{r as t}from"./just-bash-compat-_TMo8UnL.js";const n=`/dev/null`;function r(e){return e.oldName===n}function i(e){return e.newName===n}function a(e){let t=e.indexOf(` `);return(t===-1?e.replace(/\s+\d{4}-\d\d-\d\d[ T].*$/,``):e.slice(0,t)).trimEnd()}const o=/^@@+ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function s(e){let t=o.exec(e);return t?{oldStart:Number(t[1]),oldCount:t[2]===void 0?1:Number(t[2]),newStart:Number(t[3]),newCount:t[4]===void 0?1:Number(t[4])}:null}function c(e,t){return{...e,oldLines:[],newLines:[],oldSeen:0,newSeen:0,changeSeen:!1,leadingContext:0,trailingContext:0,lastSide:null,oldNoNewlineAtEof:!1,newNoNewlineAtEof:!1,raw:[t]}}function l(e){return{oldStart:e.oldStart,newStart:e.newStart,oldLines:e.oldLines,newLines:e.newLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.oldNoNewlineAtEof,newNoNewlineAtEof:e.newNoNewlineAtEof,raw:e.raw}}function u(e){return e.oldSeen>=e.oldCount&&e.newSeen>=e.newCount}function d(e,t){e.oldLines.push(t),e.newLines.push(t),e.oldSeen++,e.newSeen++,e.lastSide=`both`,e.changeSeen?e.trailingContext++:e.leadingContext++}function f(e,t,n){t===`old`?(e.oldLines.push(n),e.oldSeen++):(e.newLines.push(n),e.newSeen++),e.lastSide=t,e.changeSeen=!0,e.trailingContext=0}function p(e,t){if(t.startsWith(`\\`))return(e.lastSide===`old`||e.lastSide===`both`)&&(e.oldNoNewlineAtEof=!0),(e.lastSide===`new`||e.lastSide===`both`)&&(e.newNoNewlineAtEof=!0),e.raw.push(t),!0;if(t===``)return d(e,``),e.raw.push(` `),!0;let n=t.slice(1);switch(t[0]){case` `:d(e,n);break;case`-`:f(e,`old`,n);break;case`+`:f(e,`new`,n);break;default:return!1}return e.raw.push(t),!0}function m(e){e.hunk&&e.current&&e.current.hunks.push(l(e.hunk)),e.hunk=null,e.complete=!1}function h(e,t){let n=e.hunk;if(!n)return!1;if(e.complete){let r=t.startsWith(`\\`);return r&&p(n,t),m(e),r}return p(n,t)?(u(n)&&(e.complete=!0),!0):(m(e),!1)}function g(e){let t={files:[],current:null,hunk:null,complete:!1,pendingOld:null};for(let n of e.split(`
|
|
2
2
|
`)){if(h(t,n))continue;if(n.startsWith(`--- `)){t.pendingOld=a(n.slice(4));continue}if(n.startsWith(`+++ `)&&t.pendingOld!==null){t.current={oldName:t.pendingOld,newName:a(n.slice(4)),hunks:[]},t.files.push(t.current),t.pendingOld=null;continue}t.pendingOld=null;let e=s(n);e&&t.current&&(t.hunk=c(e,n))}return m(t),t.files.filter(e=>e.hunks.length>0)}function _(e){return{oldName:e.newName,newName:e.oldName,hunks:e.hunks.map(e=>({oldStart:e.newStart,newStart:e.oldStart,oldLines:e.newLines,newLines:e.oldLines,leadingContext:e.leadingContext,trailingContext:e.trailingContext,oldNoNewlineAtEof:e.newNoNewlineAtEof,newNoNewlineAtEof:e.oldNoNewlineAtEof,raw:v(e)}))}}function v(e){return e.raw.map((t,n)=>n===0?`@@ -${e.newStart},${e.newLines.length} +${e.oldStart},${e.oldLines.length} @@`:t.startsWith(`-`)?`+${t.slice(1)}`:t.startsWith(`+`)?`-${t.slice(1)}`:t)}function y(e){if(e===``)return{lines:[],newlineAtEof:!0};let t=e.endsWith(`
|
|
3
3
|
`),n=e.split(`
|
|
4
4
|
`);return t&&n.pop(),{lines:n,newlineAtEof:t}}function b(e){return e.lines.length===0?``:e.lines.join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./base64-DzRgusa4.js";import{m as t}from"./state-B0LE2MQY.js";import{t as n}from"./realm-browser-fetch-V3uggGbM.js";const r=new TextEncoder;function i(e){return typeof e==`object`&&!!e&&`exitCode`in e}async function a(e,t){try{return await e.fs.readFileBuffer(e.fs.resolvePath(e.cwd,t))}catch{return{message:`curlwright: cannot read ${t}`,exitCode:26}}}function o(e){let t=new Uint8Array(e.length),n=0;for(let r of e)r!==10&&r!==13&&(t[n++]=r);return t.subarray(0,n)}async function s(e,t){let n=t.indexOf(`=`),o=t.indexOf(`@`),s=o!==-1&&(n===-1||o<n),c=s?o:n,l=c===-1?``:t.slice(0,c),u=c===-1?t:t.slice(c+1),d=u;if(s){let t=await a(e,u);if(i(t))return t;d=new TextDecoder().decode(t)}let f=encodeURIComponent(d);return r.encode(l===``?f:`${l}=${f}`)}async function c(e,t){if(t.kind===`urlencode`)return s(e,t.value);if(t.kind===`raw`||!t.value.startsWith(`@`))return r.encode(t.value);let n=await a(e,t.value.slice(1));return i(n)||t.kind===`binary`?n:o(n)}function l(e){let t=Math.max(0,e.length-1),n=e.reduce((e,t)=>e+t.length,0)+t,r=new Uint8Array(n),i=0;return e.forEach((e,t)=>{t>0&&(r[i++]=38),r.set(e,i),i+=e.length}),r}function u(e){let t=e.split(`;`);return{value:t[0],options:t.slice(1)}}function d(e,t){for(let n of e){let e=n.trim();if(e.startsWith(`${t}=`))return e.slice(t.length+1)}return null}function f(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}async function p(e,t,n){let r=n.value.indexOf(`=`);if(r===-1)return{message:`curlwright: -F requires name=content (got "${n.value}")`,exitCode:2};let o=n.value.slice(0,r),s=n.value.slice(r+1);if(n.literal||s[0]!==`@`&&s[0]!==`<`)return t.append(o,s),null;let{value:c,options:l}=u(s.slice(1)),p=await a(e,c);if(i(p))return p;if(s[0]===`<`)return t.append(o,new TextDecoder().decode(p)),null;let m=d(l,`type`)??`application/octet-stream`,h=d(l,`filename`)??f(c);return t.append(o,new Blob([p],{type:m}),h),null}async function m(e,t,n){if(t.length>0&&n.length>0)return{message:`curlwright: -F cannot be combined with -d`,exitCode:2};if(n.length>0){let t=new FormData;for(let r of n){let n=await p(e,t,r);if(n)return n}return{bytes:null,form:t,contentType:null,accept:null}}if(t.length===0)return{bytes:null,form:null,contentType:null,accept:null};let r=[];for(let n of t){let t=await c(e,n);if(i(t))return t;r.push(t)}let a=t.some(e=>e.kind===`json`);return{bytes:l(r),form:null,contentType:a?`application/json`:`application/x-www-form-urlencoded`,accept:a?`application/json`:null}}const h=new Set([`request`,`header`,`data`,`data-raw`,`data-binary`,`data-ascii`,`data-urlencode`,`json`,`form`,`form-string`,`output`,`dump-header`,`write-out`,`max-time`,`user`,`referer`,`range`,`url`,`tab`,`frame`]),g=new Set([`silent`,`show-error`,`include`,`head`,`verbose`,`fail`,`location`,`remote-name`,`get`,`no-credentials`,`help`]),_={X:`request`,H:`header`,d:`data`,F:`form`,o:`output`,D:`dump-header`,w:`write-out`,m:`max-time`,u:`user`,e:`referer`,r:`range`},v={s:`silent`,S:`show-error`,i:`include`,I:`head`,v:`verbose`,f:`fail`,L:`location`,O:`remote-name`,G:`get`,h:`help`},y={cert:`client certificates are the browser profile's to present, not the shell's`,"cert-type":`client certificates are the browser profile's to present, not the shell's`,key:`client certificates are the browser profile's to present, not the shell's`,cacert:`the browser decides which roots to trust`,capath:`the browser decides which roots to trust`,insecure:`the browser enforces TLS verification; a page cannot opt out`,proxy:`proxying is configured on the browser, not per request`,"proxy-user":`proxying is configured on the browser, not per request`,interface:`a page cannot choose an outgoing interface`,"unix-socket":`a page cannot dial a unix socket`,resolve:`a page cannot override DNS resolution`,compressed:`always on — the browser negotiates encoding itself`,cookie:"the tab's own cookies are already sent; set one with `playwright-cli cookie-set`","cookie-jar":"cookies live in the browser profile; read them with `playwright-cli cookies`","limit-rate":`a page cannot throttle a fetch`,"continue-at":"a page fetch cannot resume; use `-H 'Range: bytes=N-'`","connect-timeout":"a page fetch cannot time the connect phase alone; use `--max-time`","http1.1":`the browser negotiates the HTTP version`,http2:`the browser negotiates the HTTP version`,http3:`the browser negotiates the HTTP version`,"no-buffer":`responses are read whole, never streamed to stdout`,"trace-ascii":"no wire trace exists; use `playwright-cli network-requests`",trace:"no wire trace exists; use `playwright-cli network-requests`","user-agent":`User-Agent is a forbidden header name for fetch(); the tab sets it`},b={k:`insecure`,x:`proxy`,b:`cookie`,c:`cookie-jar`,E:`cert`,C:`continue-at`,N:`no-buffer`,A:`user-agent`};function ee(){return{url:null,requestMethod:null,headers:[],data:[],form:[],get:!1,output:null,remoteName:!1,include:!1,head:!1,dumpHeader:null,writeOut:null,silent:!1,showError:!1,verbose:!1,failOnError:!1,maxTimeSeconds:null,credentials:`include`,tab:null,frame:null,user:null,referer:null,range:null,help:!1}}function x(e,t){return{message:`curlwright: option ${e} is not supported in a page context — ${y[t]}`,exitCode:2}}function S(e){return{message:`curlwright: unknown option ${e}\nRun 'curlwright --help' for the supported flags.`,exitCode:2}}function C(e){let t=e.indexOf(`:`);if(t===-1)return e.endsWith(`;`)?{name:e.slice(0,-1).trim(),value:``,unset:!1}:{name:e.trim(),value:``,unset:!1};let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();return{name:n,value:r,unset:r===``}}function w(e,t,n,r){switch(t){case`request`:return e.requestMethod=n,null;case`header`:return e.headers.push(C(n??``)),null;case`data`:case`data-ascii`:return e.data.push({kind:`ascii`,value:n??``}),null;case`data-raw`:return e.data.push({kind:`raw`,value:n??``}),null;case`data-binary`:return e.data.push({kind:`binary`,value:n??``}),null;case`data-urlencode`:return e.data.push({kind:`urlencode`,value:n??``}),null;case`json`:return e.data.push({kind:`json`,value:n??``}),null;case`form`:return e.form.push({value:n??``,literal:!1}),null;case`form-string`:return e.form.push({value:n??``,literal:!0}),null;case`output`:return e.output=n,null;case`dump-header`:return e.dumpHeader=n,null;case`write-out`:return e.writeOut=n,null;case`max-time`:return T(e,n,r);case`user`:return e.user=n,null;case`referer`:return e.referer=n,null;case`range`:return e.range=n,null;case`url`:return e.url=n,null;case`tab`:return e.tab=n,null;case`frame`:return e.frame=n,null;default:return E(e,t,r)}}function T(e,t,n){let r=Number(t);return!Number.isFinite(r)||r<=0?{message:`curlwright: ${n} expects a positive number of seconds`,exitCode:2}:(e.maxTimeSeconds=r,null)}function E(e,t,n){switch(t){case`silent`:return e.silent=!0,null;case`show-error`:return e.showError=!0,null;case`include`:return e.include=!0,null;case`head`:return e.head=!0,null;case`verbose`:return e.verbose=!0,null;case`fail`:return e.failOnError=!0,null;case`location`:return null;case`remote-name`:return e.remoteName=!0,null;case`get`:return e.get=!0,null;case`no-credentials`:return e.credentials=`omit`,null;case`help`:return e.help=!0,null;default:return S(n)}}function te(e,t,n){let r=t[n],i=r.indexOf(`=`),a=(i===-1?r.slice(2):r.slice(2,i)).trim(),o=i===-1?null:r.slice(i+1);if(a in y)return x(`--${a}`,a);if(h.has(a)){let r=o??t[n+1];return r===void 0?{message:`curlwright: option --${a} requires a value`,exitCode:2}:w(e,a,r,`--${a}`)??{next:o===null?n+2:n+1}}return g.has(a)?w(e,a,null,`--${a}`)??{next:n+1}:S(`--${a}`)}function ne(e,t,n){let r=t[n];for(let i=1;i<r.length;i++){let a=r[i];if(a in b)return x(`-${a}`,b[a]);if(a in _){let o=r.slice(i+1),s=o===``?t[n+1]:o;return s===void 0?{message:`curlwright: option -${a} requires a value`,exitCode:2}:w(e,_[a],s,`-${a}`)??{next:o===``?n+2:n+1}}if(!(a in v))return S(`-${a}`);let o=w(e,v[a],null,`-${a}`);if(o)return o}return{next:n+1}}function re(e,t){return e.url!==null&&e.url!==t?{message:`curlwright: only one URL is supported (got "${e.url}" and "${t}")`,exitCode:2}:(e.url=t,null)}function ie(e){let t=ee(),n=0,r=!1;for(;n<e.length;){let i=e[n];if(!r&&i===`--`){r=!0,n++;continue}if(!r&&i.startsWith(`--`)){let r=te(t,e,n);if(`message`in r)return r;n=r.next;continue}if(!r&&i.startsWith(`-`)&&i.length>1){let r=ne(t,e,n);if(`message`in r)return r;n=r.next;continue}let a=re(t,i);if(a)return a;n++}return t}function ae(e){return`message`in e}const D={"accept-charset":`the browser sets it`,"accept-encoding":`the browser negotiates encoding`,connection:`the browser owns the connection`,"content-length":`derived from the body`,cookie:"the tab's cookies are sent already; set one with `playwright-cli cookie-set`",cookie2:`the tab's cookies are sent already`,date:`the browser sets it`,dnt:`the browser sets it`,expect:`a page fetch cannot send it`,host:`derived from the URL`,"keep-alive":`the browser owns the connection`,origin:`the tab's own origin is sent automatically`,referer:`use -e/--referer, which sets the fetch referrer`,te:`the browser owns transfer encoding`,trailer:`the browser owns transfer encoding`,"transfer-encoding":`the browser owns transfer encoding`,upgrade:`the browser owns the connection`,via:`the browser sets it`};function oe(e){let t=e.toLowerCase();return t in D?D[t]:t.startsWith(`proxy-`)?`proxying is configured on the browser`:t.startsWith(`sec-`)?`Sec- headers are reserved for the browser`:null}function se(e){for(let t of e){let e=oe(t.name);if(e)return{message:`curlwright: header "${t.name}" cannot be set from a page — ${e}`,exitCode:2}}return null}function O(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function k(e){let t={},n=new Set;for(let r of e.headers)if(r.name!==``){if(r.unset){n.add(r.name.toLowerCase());continue}t[r.name]=r.value}return{headers:t,suppressed:n}}function A(e,t,n){return!O(e,n)&&!t.has(n)}function j(e){return/^[a-zA-Z]+=/.test(e)?e:`bytes=${e}`}function M(e,t,n,r){n.user!==null&&A(e,t,`authorization`)&&(e.Authorization=`Basic ${btoa(n.user)}`),n.range!==null&&A(e,t,`range`)&&(e.Range=j(n.range)),r.contentType&&A(e,t,`content-type`)&&(e[`Content-Type`]=r.contentType),r.accept&&A(e,t,`accept`)&&(e.Accept=r.accept)}function N(e,t){if(t===``)return e;let[n,r]=P(e);return`${n}${n.includes(`?`)?`&`:`?`}${t}${r}`}function P(e){let t=e.indexOf(`#`);return t===-1?[e,``]:[e.slice(0,t),e.slice(t)]}function F(e,t){return e.requestMethod?e.requestMethod:e.head?`HEAD`:t?`POST`:`GET`}function I(e,t,n){let r=e.toUpperCase();return!t||r!==`GET`&&r!==`HEAD`?null:{message:`curlwright: ${n.requestMethod?`-X ${n.requestMethod}`:`-I`} cannot carry a request body — a page fetch rejects a ${r} with one. Drop the data, or use -G to send it as a query string.`,exitCode:2}}function L(e,t){if(e.url===null)return{message:`curlwright: no URL specified`,exitCode:2};let{headers:n,suppressed:r}=k(e),i=e.get&&t.bytes!==null,a=i?{...t,bytes:null,contentType:null}:t;M(n,r,e,a);let o=i?N(e.url,new TextDecoder().decode(t.bytes??new Uint8Array)):e.url,s=a.bytes!==null||a.form!==null,c=F(e,s),l=I(c,s,e);if(l)return l;let u={method:c,headers:n,credentials:e.credentials,responseType:`binary`};return a.form?u.body=a.form:a.bytes&&(u.body=a.bytes),e.referer!==null&&(u.referrer=e.referer),e.maxTimeSeconds!==null&&(u.timeoutMs=e.maxTimeSeconds*1e3),{url:o,method:c,fetchOptions:u,uploadSize:a.bytes?.length??0}}function R(e){let t=e.fetchOptions.headers??{},n=[`> ${e.method} ${e.url}`];for(let[e,r]of Object.entries(t))n.push(`> ${e}: ${r}`);return n.push(`> `),`${n.join(`
|
|
1
|
+
import{t as e}from"./base64-DzRgusa4.js";import{m as t}from"./state-JibZaKgk.js";import{t as n}from"./realm-browser-fetch-V3uggGbM.js";const r=new TextEncoder;function i(e){return typeof e==`object`&&!!e&&`exitCode`in e}async function a(e,t){try{return await e.fs.readFileBuffer(e.fs.resolvePath(e.cwd,t))}catch{return{message:`curlwright: cannot read ${t}`,exitCode:26}}}function o(e){let t=new Uint8Array(e.length),n=0;for(let r of e)r!==10&&r!==13&&(t[n++]=r);return t.subarray(0,n)}async function s(e,t){let n=t.indexOf(`=`),o=t.indexOf(`@`),s=o!==-1&&(n===-1||o<n),c=s?o:n,l=c===-1?``:t.slice(0,c),u=c===-1?t:t.slice(c+1),d=u;if(s){let t=await a(e,u);if(i(t))return t;d=new TextDecoder().decode(t)}let f=encodeURIComponent(d);return r.encode(l===``?f:`${l}=${f}`)}async function c(e,t){if(t.kind===`urlencode`)return s(e,t.value);if(t.kind===`raw`||!t.value.startsWith(`@`))return r.encode(t.value);let n=await a(e,t.value.slice(1));return i(n)||t.kind===`binary`?n:o(n)}function l(e){let t=Math.max(0,e.length-1),n=e.reduce((e,t)=>e+t.length,0)+t,r=new Uint8Array(n),i=0;return e.forEach((e,t)=>{t>0&&(r[i++]=38),r.set(e,i),i+=e.length}),r}function u(e){let t=e.split(`;`);return{value:t[0],options:t.slice(1)}}function d(e,t){for(let n of e){let e=n.trim();if(e.startsWith(`${t}=`))return e.slice(t.length+1)}return null}function f(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}async function p(e,t,n){let r=n.value.indexOf(`=`);if(r===-1)return{message:`curlwright: -F requires name=content (got "${n.value}")`,exitCode:2};let o=n.value.slice(0,r),s=n.value.slice(r+1);if(n.literal||s[0]!==`@`&&s[0]!==`<`)return t.append(o,s),null;let{value:c,options:l}=u(s.slice(1)),p=await a(e,c);if(i(p))return p;if(s[0]===`<`)return t.append(o,new TextDecoder().decode(p)),null;let m=d(l,`type`)??`application/octet-stream`,h=d(l,`filename`)??f(c);return t.append(o,new Blob([p],{type:m}),h),null}async function m(e,t,n){if(t.length>0&&n.length>0)return{message:`curlwright: -F cannot be combined with -d`,exitCode:2};if(n.length>0){let t=new FormData;for(let r of n){let n=await p(e,t,r);if(n)return n}return{bytes:null,form:t,contentType:null,accept:null}}if(t.length===0)return{bytes:null,form:null,contentType:null,accept:null};let r=[];for(let n of t){let t=await c(e,n);if(i(t))return t;r.push(t)}let a=t.some(e=>e.kind===`json`);return{bytes:l(r),form:null,contentType:a?`application/json`:`application/x-www-form-urlencoded`,accept:a?`application/json`:null}}const h=new Set([`request`,`header`,`data`,`data-raw`,`data-binary`,`data-ascii`,`data-urlencode`,`json`,`form`,`form-string`,`output`,`dump-header`,`write-out`,`max-time`,`user`,`referer`,`range`,`url`,`tab`,`frame`]),g=new Set([`silent`,`show-error`,`include`,`head`,`verbose`,`fail`,`location`,`remote-name`,`get`,`no-credentials`,`help`]),_={X:`request`,H:`header`,d:`data`,F:`form`,o:`output`,D:`dump-header`,w:`write-out`,m:`max-time`,u:`user`,e:`referer`,r:`range`},v={s:`silent`,S:`show-error`,i:`include`,I:`head`,v:`verbose`,f:`fail`,L:`location`,O:`remote-name`,G:`get`,h:`help`},y={cert:`client certificates are the browser profile's to present, not the shell's`,"cert-type":`client certificates are the browser profile's to present, not the shell's`,key:`client certificates are the browser profile's to present, not the shell's`,cacert:`the browser decides which roots to trust`,capath:`the browser decides which roots to trust`,insecure:`the browser enforces TLS verification; a page cannot opt out`,proxy:`proxying is configured on the browser, not per request`,"proxy-user":`proxying is configured on the browser, not per request`,interface:`a page cannot choose an outgoing interface`,"unix-socket":`a page cannot dial a unix socket`,resolve:`a page cannot override DNS resolution`,compressed:`always on — the browser negotiates encoding itself`,cookie:"the tab's own cookies are already sent; set one with `playwright-cli cookie-set`","cookie-jar":"cookies live in the browser profile; read them with `playwright-cli cookies`","limit-rate":`a page cannot throttle a fetch`,"continue-at":"a page fetch cannot resume; use `-H 'Range: bytes=N-'`","connect-timeout":"a page fetch cannot time the connect phase alone; use `--max-time`","http1.1":`the browser negotiates the HTTP version`,http2:`the browser negotiates the HTTP version`,http3:`the browser negotiates the HTTP version`,"no-buffer":`responses are read whole, never streamed to stdout`,"trace-ascii":"no wire trace exists; use `playwright-cli network-requests`",trace:"no wire trace exists; use `playwright-cli network-requests`","user-agent":`User-Agent is a forbidden header name for fetch(); the tab sets it`},b={k:`insecure`,x:`proxy`,b:`cookie`,c:`cookie-jar`,E:`cert`,C:`continue-at`,N:`no-buffer`,A:`user-agent`};function ee(){return{url:null,requestMethod:null,headers:[],data:[],form:[],get:!1,output:null,remoteName:!1,include:!1,head:!1,dumpHeader:null,writeOut:null,silent:!1,showError:!1,verbose:!1,failOnError:!1,maxTimeSeconds:null,credentials:`include`,tab:null,frame:null,user:null,referer:null,range:null,help:!1}}function x(e,t){return{message:`curlwright: option ${e} is not supported in a page context — ${y[t]}`,exitCode:2}}function S(e){return{message:`curlwright: unknown option ${e}\nRun 'curlwright --help' for the supported flags.`,exitCode:2}}function C(e){let t=e.indexOf(`:`);if(t===-1)return e.endsWith(`;`)?{name:e.slice(0,-1).trim(),value:``,unset:!1}:{name:e.trim(),value:``,unset:!1};let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();return{name:n,value:r,unset:r===``}}function w(e,t,n,r){switch(t){case`request`:return e.requestMethod=n,null;case`header`:return e.headers.push(C(n??``)),null;case`data`:case`data-ascii`:return e.data.push({kind:`ascii`,value:n??``}),null;case`data-raw`:return e.data.push({kind:`raw`,value:n??``}),null;case`data-binary`:return e.data.push({kind:`binary`,value:n??``}),null;case`data-urlencode`:return e.data.push({kind:`urlencode`,value:n??``}),null;case`json`:return e.data.push({kind:`json`,value:n??``}),null;case`form`:return e.form.push({value:n??``,literal:!1}),null;case`form-string`:return e.form.push({value:n??``,literal:!0}),null;case`output`:return e.output=n,null;case`dump-header`:return e.dumpHeader=n,null;case`write-out`:return e.writeOut=n,null;case`max-time`:return T(e,n,r);case`user`:return e.user=n,null;case`referer`:return e.referer=n,null;case`range`:return e.range=n,null;case`url`:return e.url=n,null;case`tab`:return e.tab=n,null;case`frame`:return e.frame=n,null;default:return E(e,t,r)}}function T(e,t,n){let r=Number(t);return!Number.isFinite(r)||r<=0?{message:`curlwright: ${n} expects a positive number of seconds`,exitCode:2}:(e.maxTimeSeconds=r,null)}function E(e,t,n){switch(t){case`silent`:return e.silent=!0,null;case`show-error`:return e.showError=!0,null;case`include`:return e.include=!0,null;case`head`:return e.head=!0,null;case`verbose`:return e.verbose=!0,null;case`fail`:return e.failOnError=!0,null;case`location`:return null;case`remote-name`:return e.remoteName=!0,null;case`get`:return e.get=!0,null;case`no-credentials`:return e.credentials=`omit`,null;case`help`:return e.help=!0,null;default:return S(n)}}function te(e,t,n){let r=t[n],i=r.indexOf(`=`),a=(i===-1?r.slice(2):r.slice(2,i)).trim(),o=i===-1?null:r.slice(i+1);if(a in y)return x(`--${a}`,a);if(h.has(a)){let r=o??t[n+1];return r===void 0?{message:`curlwright: option --${a} requires a value`,exitCode:2}:w(e,a,r,`--${a}`)??{next:o===null?n+2:n+1}}return g.has(a)?w(e,a,null,`--${a}`)??{next:n+1}:S(`--${a}`)}function ne(e,t,n){let r=t[n];for(let i=1;i<r.length;i++){let a=r[i];if(a in b)return x(`-${a}`,b[a]);if(a in _){let o=r.slice(i+1),s=o===``?t[n+1]:o;return s===void 0?{message:`curlwright: option -${a} requires a value`,exitCode:2}:w(e,_[a],s,`-${a}`)??{next:o===``?n+2:n+1}}if(!(a in v))return S(`-${a}`);let o=w(e,v[a],null,`-${a}`);if(o)return o}return{next:n+1}}function re(e,t){return e.url!==null&&e.url!==t?{message:`curlwright: only one URL is supported (got "${e.url}" and "${t}")`,exitCode:2}:(e.url=t,null)}function ie(e){let t=ee(),n=0,r=!1;for(;n<e.length;){let i=e[n];if(!r&&i===`--`){r=!0,n++;continue}if(!r&&i.startsWith(`--`)){let r=te(t,e,n);if(`message`in r)return r;n=r.next;continue}if(!r&&i.startsWith(`-`)&&i.length>1){let r=ne(t,e,n);if(`message`in r)return r;n=r.next;continue}let a=re(t,i);if(a)return a;n++}return t}function ae(e){return`message`in e}const D={"accept-charset":`the browser sets it`,"accept-encoding":`the browser negotiates encoding`,connection:`the browser owns the connection`,"content-length":`derived from the body`,cookie:"the tab's cookies are sent already; set one with `playwright-cli cookie-set`",cookie2:`the tab's cookies are sent already`,date:`the browser sets it`,dnt:`the browser sets it`,expect:`a page fetch cannot send it`,host:`derived from the URL`,"keep-alive":`the browser owns the connection`,origin:`the tab's own origin is sent automatically`,referer:`use -e/--referer, which sets the fetch referrer`,te:`the browser owns transfer encoding`,trailer:`the browser owns transfer encoding`,"transfer-encoding":`the browser owns transfer encoding`,upgrade:`the browser owns the connection`,via:`the browser sets it`};function oe(e){let t=e.toLowerCase();return t in D?D[t]:t.startsWith(`proxy-`)?`proxying is configured on the browser`:t.startsWith(`sec-`)?`Sec- headers are reserved for the browser`:null}function se(e){for(let t of e){let e=oe(t.name);if(e)return{message:`curlwright: header "${t.name}" cannot be set from a page — ${e}`,exitCode:2}}return null}function O(e,t){let n=t.toLowerCase();return Object.keys(e).some(e=>e.toLowerCase()===n)}function k(e){let t={},n=new Set;for(let r of e.headers)if(r.name!==``){if(r.unset){n.add(r.name.toLowerCase());continue}t[r.name]=r.value}return{headers:t,suppressed:n}}function A(e,t,n){return!O(e,n)&&!t.has(n)}function j(e){return/^[a-zA-Z]+=/.test(e)?e:`bytes=${e}`}function M(e,t,n,r){n.user!==null&&A(e,t,`authorization`)&&(e.Authorization=`Basic ${btoa(n.user)}`),n.range!==null&&A(e,t,`range`)&&(e.Range=j(n.range)),r.contentType&&A(e,t,`content-type`)&&(e[`Content-Type`]=r.contentType),r.accept&&A(e,t,`accept`)&&(e.Accept=r.accept)}function N(e,t){if(t===``)return e;let[n,r]=P(e);return`${n}${n.includes(`?`)?`&`:`?`}${t}${r}`}function P(e){let t=e.indexOf(`#`);return t===-1?[e,``]:[e.slice(0,t),e.slice(t)]}function F(e,t){return e.requestMethod?e.requestMethod:e.head?`HEAD`:t?`POST`:`GET`}function I(e,t,n){let r=e.toUpperCase();return!t||r!==`GET`&&r!==`HEAD`?null:{message:`curlwright: ${n.requestMethod?`-X ${n.requestMethod}`:`-I`} cannot carry a request body — a page fetch rejects a ${r} with one. Drop the data, or use -G to send it as a query string.`,exitCode:2}}function L(e,t){if(e.url===null)return{message:`curlwright: no URL specified`,exitCode:2};let{headers:n,suppressed:r}=k(e),i=e.get&&t.bytes!==null,a=i?{...t,bytes:null,contentType:null}:t;M(n,r,e,a);let o=i?N(e.url,new TextDecoder().decode(t.bytes??new Uint8Array)):e.url,s=a.bytes!==null||a.form!==null,c=F(e,s),l=I(c,s,e);if(l)return l;let u={method:c,headers:n,credentials:e.credentials,responseType:`binary`};return a.form?u.body=a.form:a.bytes&&(u.body=a.bytes),e.referer!==null&&(u.referrer=e.referer),e.maxTimeSeconds!==null&&(u.timeoutMs=e.maxTimeSeconds*1e3),{url:o,method:c,fetchOptions:u,uploadSize:a.bytes?.length??0}}function R(e){let t=e.fetchOptions.headers??{},n=[`> ${e.method} ${e.url}`];for(let[e,r]of Object.entries(t))n.push(`> ${e}: ${r}`);return n.push(`> `),`${n.join(`
|
|
2
2
|
`)}\n`}function z(e,t){let n=[`< ${e}`];for(let[e,r]of Object.entries(t))n.push(`< ${e}: ${r}`);return n.push(`< `),`${n.join(`
|
|
3
3
|
`)}\n`}function B(t,n){return typeof t==`string`?n===`base64`?e(t):new TextEncoder().encode(t):new Uint8Array}function V(e,t){return t?`HTTP/1.1 ${e} ${t}`:`HTTP/1.1 ${e}`}function H(e,t,n){let r=[V(e,t)];for(let[e,t]of Object.entries(n))r.push(`${e}: ${t}`);return`${r.join(`\r
|
|
4
4
|
`)}\r\n\r\n`}function U(e){if(e.includes(0))return!0;try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e),!1}catch{return!0}}function W(e){let t;try{t=new URL(e).pathname}catch{t=e.split(`?`)[0]}return t.replace(/\/+$/,``).split(`/`).pop()||null}function G(e,t,n){return new TextEncoder().encode(H(e,t,n)).length}function K(e){try{return new URL(e).origin}catch{return null}}function q(e){return e.map(e=>` --tab=${e.targetId} ${e.url}`).join(`
|
|
@@ -37,7 +37,7 @@ Examples:
|
|
|
37
37
|
memory log --limit 5
|
|
38
38
|
memory curate --archive 2026-09-11T08-30-00Z-fix-build.md
|
|
39
39
|
memory dream --all
|
|
40
|
-
`,c=[`--cone`,`--archive`,`--limit`];function l(e){return{stdout:e,stderr:``,exitCode:0}}function u(e){return{stdout:``,stderr:`memory: ${e}\n`,exitCode:1}}function d(){let e=globalThis.__slicc_memory;return e&&typeof e.curate==`function`&&typeof e.dream==`function`?e:null}async function f(){let{isMemoryV2Enabled:e}=await import(`./memory-v2-flag-
|
|
40
|
+
`,c=[`--cone`,`--archive`,`--limit`];function l(e){return{stdout:e,stderr:``,exitCode:0}}function u(e){return{stdout:``,stderr:`memory: ${e}\n`,exitCode:1}}function d(){let e=globalThis.__slicc_memory;return e&&typeof e.curate==`function`&&typeof e.dream==`function`?e:null}async function f(){let{isMemoryV2Enabled:e}=await import(`./memory-v2-flag-D85UWdUr.js`);return!e()}async function p(e,t){try{let n=await e.readFile(t,{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch{return null}}async function m(n){let r=[e];try{let e=await n.readDir(t);for(let t of e)t.type===`directory`&&r.push(t.name)}catch{}return r}function h(e){return n({parentJid:null,folder:e}).memoryPath}async function g(e,t){let n=await m(e);return n.includes(t)?{folder:t}:{error:`unknown cone "${t}" (cones: ${n.join(`, `)})`}}function _(e){return e.memoryFailed===void 0?e.memoryPending?`pending`:e.memoryCuratedAt===void 0?e.memorySkipped?`skipped`:`none`:`curated`:`failed`}async function v(e,t){let n=r(e,{value:[`--cone`]});if(`error`in n)return u(n.error);let i=await g(t,n.values.get(`--cone`)??`cone`);if(`error`in i)return u(i.error);let a=h(i.folder),o=await p(t,a);return o===null?u(`no memory file at ${a}`):l(o.endsWith(`
|
|
41
41
|
`)||o===``?o:`${o}\n`)}const y=`/sessions/.curation/health.json`;async function b(e){let t=await p(e,y);if(t===null)return null;try{let e=JSON.parse(t);return typeof e.at!=`string`||!Array.isArray(e.failures)?null:{at:e.at,failures:e.failures.map(String)}}catch{return null}}async function x(e){let t=await a(e),n=[];for(let t of await m(e)){let r=h(t),i=await p(e,r);n.push({folder:t,path:r,chars:i===null?null:i.length})}let r={curated:0,failed:0,pending:0,skipped:0,none:0},i=new Map;for(let e of t){let t=_(e);if(r[t]++,t===`curated`){let t=e.cone??`cone`;i.set(t,(i.get(t)??0)+1)}}let s=[];r.failed>0&&s.push(`${r.failed} archive(s) whose last curation attempt failed — see \`memory log\``);for(let e of n){let t=i.get(e.folder)??0;t===0||(e.chars??0)>0||s.push(e.folder===`cone`?`${t} archive(s) report successful curation but the primary memory file is missing or empty`:`${t} archive(s) from cone "${e.folder}" report successful curation but its memory file (${e.path}) is missing or empty`)}return{memoryV2:!await f(),sessions:t.length,budgetChars:o(t.length),cones:n,curation:r,checks:s,scheduledCheck:await b(e)}}async function S(e,t){let n=r(e,{bool:[`--json`,`--check`]});if(`error`in n)return u(n.error);let i=await x(t),a=n.bools.has(`--check`)&&i.checks.length>0;if(n.bools.has(`--json`))return{stdout:`${JSON.stringify(i,null,2)}\n`,stderr:``,exitCode:+!!a};let o=`Memory v2: ${i.memoryV2?`ON`:`OFF — curation surfaces beyond the freezer pass are disabled`}\n`;o+=`Sessions: ${i.sessions} archived (memory budget ${i.budgetChars} chars)\n`,o+=`Memory files:
|
|
42
42
|
`;for(let e of i.cones){let t=e.chars===null?`missing`:`${e.chars} chars`;o+=` ${e.folder.padEnd(14)}${e.path} (${t})\n`}let{curated:s,failed:c,pending:l,skipped:d,none:f}=i.curation;if(o+=`Curation: ${s} curated, ${c} failed, ${l} pending, ${d} skipped, ${f} unmarked\n`,i.checks.length>0){o+=`Health:
|
|
43
43
|
`;for(let e of i.checks)o+=` FAIL ${e}\n`}else o+=`Health: ok
|
|
@@ -50,5 +50,5 @@ cancel the pass — run \`gelatiere init\` again once it is idle
|
|
|
50
50
|
`),s(l)}async function g(t,n){let r=e(t,{value:i,bool:[`--force`]});if(`error`in r)return c(r.error);let a=u();if(!a)return c(l);let o=await d(),f=await o.readGelatiereSuggestions(n),p=o.openSuggestions(f),m=await o.readGelatiereState(n),h=o.suggestionsSince(f,m.lastDeliveredAt);if(h.length===0&&!r.bools.has(`--force`))return s(`Nothing new since the last delivery; no lick sent (use --force to resend).
|
|
51
51
|
`);let g=a.roots(),_=r.values.get(`--scoop`);if(_&&!g.some(e=>e.folder===_||e.name===_||e.jid===_))return c(`unknown delivery target "${_}" (cones: ${g.map(e=>e.folder).join(`, `)||`none running`})`);let v=_?[_]:g.map(e=>e.folder);if(v.length===0)return c(`no cone is running to deliver to`);let y=o.buildGelatiereLickBody(h,p);for(let e of v)a.lick(e,y);_||await o.writeGelatiereState(n,{...m,lastDeliveredAt:new Date().toISOString()});let b=_?` (targeted; the delivery watermark is unchanged)`:``;return s(`Delivered ${h.length} new (${p.length} open) to ${v.length} cone(s): ${v.join(`, `)}${b}\n`)}async function _(t,n){let r=e(t,{bool:[`--all`,`--json`]});if(`error`in r)return c(r.error);let i=await d(),a=await i.readGelatiereSuggestions(n),o=r.bools.has(`--all`)?a:i.openSuggestions(a);if(r.bools.has(`--json`))return s(`${JSON.stringify(o,null,2)}\n`);if(o.length===0)return s(a.length===0?"No suggestions yet. `gelatiere run` asks for a pass now.\n":"No open suggestions (every one has been taken or dismissed; `--all` lists them).\n");let l=``;for(let e of o){let t=e.dismissedAt?` (dismissed)`:e.takenAt?` (taken)`:``;l+=`${e.id} [${e.kind}]${t}\n ${e.title}\n`,e.install&&(l+=` install: ${e.install}\n`),e.prompt&&(l+=` try: ${e.prompt}\n`)}return s(l)}async function v(e,t){let n=e[0];return n?await(await d()).dismissGelatiereSuggestion(t,n)?s(`Dismissed ${n}.\n`):c(`no open suggestion with id "${n}"`):c("dismiss requires a suggestion id (see `gelatiere list`)")}const y=`https://www.sliccy.com`,b=512e3,x=/^[a-z0-9][a-z0-9-]*$/;async function S(e,t){let n=await fetch(`${y}${e}`,{signal:AbortSignal.timeout(15e3)});if(!n.ok)throw Error(`${e}: HTTP ${n.status}`);let r=await n.text();return r.length>t?r.slice(0,t):r}async function C(){try{let e=await S(`/skills/catalog.json`,b);return s(e.endsWith(`
|
|
52
52
|
`)?e:`${e}\n`)}catch(e){return c(`catalog fetch failed: ${e instanceof Error?e.message:String(e)}`)}}async function w(){try{let e=[...(await S(`/sitemap.xml`,b)).matchAll(/<loc>[^<]*\/man\/([a-z0-9-]+)(?:\.html)?<\/loc>/g)].map(e=>e[1]).sort();return e.length===0?c(`no man pages found in the sitemap`):s(`${[...new Set(e)].join(` `)}\n`)}catch(e){return c(`sitemap fetch failed: ${e instanceof Error?e.message:String(e)}`)}}async function T(e){let t=e[0];if(!t)return c(`man requires a command name: gelatiere man <command>`);if(!x.test(t))return c(`not a command name: "${t}"`);try{let e=await S(`/man/${t}.plain.html`,16e3);return s(e.endsWith(`
|
|
53
|
-
`)?e:`${e}\n`)}catch(e){return c(`man fetch failed: ${e instanceof Error?e.message:String(e)}`)}}function E(e,t,n){let r=e=>{let t=n.match(RegExp(`<meta[^>]+name=["']${e}["'][^>]+content=(["'])((?:(?!\\1).)*)\\1`,`i`));return t?O(t[2]).trim():``},i=n.match(/<title[^>]*>([^<]*)<\/title>/i);return{slug:e,url:t,title:i?O(i[1]).trim():k(e),description:r(`description`),skills:r(`slicc-upskill`).split(`,`).map(e=>e.trim()).filter(Boolean)}}const D={amp:`&`,lt:`<`,gt:`>`,quot:`"`,"#39":`'`,"#x27":`'`};function O(e){return e.replace(/&(#x?[0-9a-fA-F]+|[a-z]+);/g,(e,t)=>{let n=D[t.toLowerCase()];if(n)return n;let r=t.match(/^#(x?)([0-9a-fA-F]+)$/i);if(!r)return e;let i=Number.parseInt(r[2],r[1]?16:10);return Number.isFinite(i)?String.fromCodePoint(i):e})}function k(e){let t=e.replace(/-/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)}function A(e,t){return e<=0?0:Math.floor(t/864e5)%e}function j(e,t,n){if(t>=e.length)return[...e];let r=A(e.length,n);return Array.from({length:t},(t,n)=>e[(r+n)%e.length])}async function M(e,t){let n=Array(e.length),r=0,i=async()=>{for(;r<e.length;){let i=r++;n[i]=await t(e[i])}};return await Promise.all(Array.from({length:Math.min(4,e.length)},()=>i())),n}async function N(t){let n=e(t,{value:a,bool:[`--json`]});if(`error`in n)return c(n.error);let r=n.values.get(`--limit`),i=r===void 0?12:Number(r);if(!Number.isInteger(i)||i<=0)return c(`--limit must be a positive whole number, not "${r}"`);let o;try{let e=await S(`/sitemap.xml`,b);o=[...new Set([...e.matchAll(/<loc>[^<]*\/use-cases\/([a-z0-9-]+)(?:\.html)?<\/loc>/g)].map(e=>e[1]))].sort()}catch(e){return c(`sitemap fetch failed: ${e instanceof Error?e.message:String(e)}`)}if(o.length===0)return c(`no use cases found in the sitemap`);let l=await M(j(o,Math.min(i,12),Date.now()),async e=>{let t=`${y}/use-cases/${e}`;try{return E(e,t,await S(`/use-cases/${e}`,24e3))}catch{return{slug:e,url:t,title:k(e),description:``,skills:[]}}});if(n.bools.has(`--json`))return s(`${JSON.stringify(l,null,2)}\n`);let u=``;for(let e of l)u+=`${e.slug}\t${e.title}\n ${e.url}\n`,e.description&&(u+=` ${e.description}\n`),e.skills.length&&(u+=` skills: ${e.skills.join(` `)}\n`);return s(u)}async function P(e){let t=await d(),n=u(),r=n?.unit(),i=await t.loadGelatiereConfig(e),a=await t.readGelatiereState(e),o=await t.readGelatiereSuggestions(e),c=``,{isMemoryV2Enabled:l}=await import(`./memory-v2-flag-
|
|
53
|
+
`)?e:`${e}\n`)}catch(e){return c(`man fetch failed: ${e instanceof Error?e.message:String(e)}`)}}function E(e,t,n){let r=e=>{let t=n.match(RegExp(`<meta[^>]+name=["']${e}["'][^>]+content=(["'])((?:(?!\\1).)*)\\1`,`i`));return t?O(t[2]).trim():``},i=n.match(/<title[^>]*>([^<]*)<\/title>/i);return{slug:e,url:t,title:i?O(i[1]).trim():k(e),description:r(`description`),skills:r(`slicc-upskill`).split(`,`).map(e=>e.trim()).filter(Boolean)}}const D={amp:`&`,lt:`<`,gt:`>`,quot:`"`,"#39":`'`,"#x27":`'`};function O(e){return e.replace(/&(#x?[0-9a-fA-F]+|[a-z]+);/g,(e,t)=>{let n=D[t.toLowerCase()];if(n)return n;let r=t.match(/^#(x?)([0-9a-fA-F]+)$/i);if(!r)return e;let i=Number.parseInt(r[2],r[1]?16:10);return Number.isFinite(i)?String.fromCodePoint(i):e})}function k(e){let t=e.replace(/-/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)}function A(e,t){return e<=0?0:Math.floor(t/864e5)%e}function j(e,t,n){if(t>=e.length)return[...e];let r=A(e.length,n);return Array.from({length:t},(t,n)=>e[(r+n)%e.length])}async function M(e,t){let n=Array(e.length),r=0,i=async()=>{for(;r<e.length;){let i=r++;n[i]=await t(e[i])}};return await Promise.all(Array.from({length:Math.min(4,e.length)},()=>i())),n}async function N(t){let n=e(t,{value:a,bool:[`--json`]});if(`error`in n)return c(n.error);let r=n.values.get(`--limit`),i=r===void 0?12:Number(r);if(!Number.isInteger(i)||i<=0)return c(`--limit must be a positive whole number, not "${r}"`);let o;try{let e=await S(`/sitemap.xml`,b);o=[...new Set([...e.matchAll(/<loc>[^<]*\/use-cases\/([a-z0-9-]+)(?:\.html)?<\/loc>/g)].map(e=>e[1]))].sort()}catch(e){return c(`sitemap fetch failed: ${e instanceof Error?e.message:String(e)}`)}if(o.length===0)return c(`no use cases found in the sitemap`);let l=await M(j(o,Math.min(i,12),Date.now()),async e=>{let t=`${y}/use-cases/${e}`;try{return E(e,t,await S(`/use-cases/${e}`,24e3))}catch{return{slug:e,url:t,title:k(e),description:``,skills:[]}}});if(n.bools.has(`--json`))return s(`${JSON.stringify(l,null,2)}\n`);let u=``;for(let e of l)u+=`${e.slug}\t${e.title}\n ${e.url}\n`,e.description&&(u+=` ${e.description}\n`),e.skills.length&&(u+=` skills: ${e.skills.join(` `)}\n`);return s(u)}async function P(e){let t=await d(),n=u(),r=n?.unit(),i=await t.loadGelatiereConfig(e),a=await t.readGelatiereState(e),o=await t.readGelatiereSuggestions(e),c=``,{isMemoryV2Enabled:l}=await import(`./memory-v2-flag-D85UWdUr.js`);l()||(c+=`Memory v2: OFF — the nightly is unscheduled and session ends do not trigger passes
|
|
54
54
|
`),c+=`Unit: ${r?`${r.jid} (folder ${r.folder})`:"not created — run `gelatiere init`"}\n`;let f=n?.nightly();return c+=`Nightly: ${f?`registered, cron "${f.cron}" (${f.id})`:`not registered — run \`gelatiere init\` (cron "${i.nightly}")`}\n`,c+=`Interval: ${i.intervalHours}h between session-end passes\n`,c+=F(i.allowedCommands,n?.unitAllowedCommands(),t),c+=`Passes: ${a.passes}\n`,c+=`Last pass: ${a.lastPassAt??`never`}\n`,c+=`Last trigger: ${a.lastTriggeredAt??`never`}\n`,c+=`Last delivery: ${a.lastDeliveredAt??`never`}\n`,c+=`Suggestions: ${t.openSuggestions(o).length} open, ${t.takenSuggestions(o).length} taken, ${o.length} total\n`,s(c)}function F(e,t,n){let r=e=>{let t=e.filter(e=>!n.GELATIERE_BASE_ALLOWED_COMMANDS.includes(e));return t.length?` (+${t.join(`, `)} from GELATIERE.md)`:``};return t?t.length===e.length&&t.every((t,n)=>t===e[n])?`Commands: ${t.length} allowed without approval${r(t)}\n`:`Commands: ${t.length} in force${r(t)}; GELATIERE.md asks for ${e.length}${r(e)} — run \`gelatiere init\`\n`:`Commands: ${e.length} configured${r(e)}, pending — run \`gelatiere init\`\n`}async function I(e,n,i){let a=e[0];if(!a||t(e,{valueFlags:o}))return s(r);let l=e.slice(1);switch(a){case`init`:return f(l,i.fs);case`run`:return m(n.env);case`suggest`:return h(l,i.fs);case`deliver`:return g(l,i.fs);case`list`:return _(l,i.fs);case`dismiss`:return v(l,i.fs);case`status`:return P(i.fs);case`catalog`:return C();case`commands`:return w();case`man`:return T(l);case`use-cases`:return N(l);default:return c(`unknown command: ${a}\n${r}`)}}export{I as runGelatiere};
|
|
@@ -92,7 +92,7 @@ Examples:
|
|
|
92
92
|
--authorize-url 'https://auth.x.ai/oauth2/auth?...' \\
|
|
93
93
|
--redirect-pattern 'http://127.0.0.1:56121/*'
|
|
94
94
|
curl -H "Authorization: Bearer $(oauth-token github)" https://api.github.com/user
|
|
95
|
-
`}async function d(n,r){let i=await import(`./account-store-
|
|
95
|
+
`}async function d(n,r){let i=await import(`./account-store-VSfy5XZf.js`).then(e=>e.t),a=await import(`./providers-BXLtb_Oe.js`).then(e=>e.r);if(t(n,{valueFlags:c}))return{stdout:u(),stderr:``,exitCode:0};let o=e(n,{value:c,bool:l});if(`error`in o)return H(`oauth-token: ${o.error}`);if(o.bools.has(`--list`))return U(i.getAccounts,a.getRegisteredProviderIds,a.getRegisteredProviderConfig,i.getOAuthAccountInfo);if(o.bools.has(`--check`))return T(o.positionals);if(o.bools.has(`--expire`))return O(o.positionals);if(o.bools.has(`--renew`))return k(o.positionals);if(o.values.has(`--from-file`)||o.bools.has(`--intercept`))return L(o,n,r);let s=f(o);if(!s.ok)return s.result;let d=o.bools.has(`--force-login`),m=p(o,i,a);if(!m.ok)return m.result;let _=h(m.value,a.getRegisteredProviderConfig);if(!_.ok)return _.result;if(!d){let e=await g(m.value,_.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica,s.value);if(e?.ok)return e.value;if(e)return e.result}return b(m.value,_.value,s.value,i.getOAuthAccountInfo,i.ensureOAuthMaskReplica)}function f(e){if(!e.values.has(`--scope`))return{ok:!0,value:void 0};let t=e.values.get(`--scope`)?.trim();return!t||t.startsWith(`-`)?{ok:!1,result:H(`oauth-token: --scope requires a value`)}:{ok:!0,value:t}}function p(e,t,n){if(e.values.has(`--provider`)){let t=e.values.get(`--provider`);return t?{ok:!0,value:t}:{ok:!1,result:H(`oauth-token: --provider requires a value`)}}if(e.positionals.length>0)return{ok:!0,value:e.positionals[0]};let r=t.getSelectedProvider();if(m(n.getRegisteredProviderConfig(r)))return{ok:!0,value:r};let i=n.getRegisteredProviderIds().find(e=>m(n.getRegisteredProviderConfig(e)));return i?{ok:!0,value:i}:{ok:!1,result:H(`oauth-token: no OAuth providers configured`)}}function m(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function h(e,t){let n=t(e);return n?m(n)?{ok:!0,value:n}:{ok:!1,result:H(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:H(`oauth-token: unknown provider "${e}"`)}}async function g(e,t,n,r,i){let a=n(e);return a&&!a.expired?_(e,a,i,r):!a?.expired||!t.onSilentRenew||!await C(t.onSilentRenew)?null:_(e,n(e),i,r)}async function _(e,t,n,r){if(n&&!s(t?.scopes,n))return null;let i=v(t?.maskedValue,t?.token);if(i)return{ok:!0,value:i};if(!t?.token)return null;let a=await r(e)??{},o=v(a.maskedValue,t.token);return o?{ok:!0,value:o}:{ok:!1,result:y(e,a.error)}}function v(e,t){return!e||t&&e===t?null:{stdout:`${e}\n`,stderr:``,exitCode:0}}function y(e,t){return H(`oauth-token: token held for ${e} but no masked replica${t?` (${t})`:``}`)}async function b(e,t,n,r,i){try{let a=await x(e,t,n);return a.error?a.error:S(e,r,i,a.succeeded)}catch(t){let n=t instanceof Error?t.message:String(t);return t instanceof Error&&t.name===`OAuthLaunchError`?(console.error(`[oauth-token] Provider ${e}: login could not be shown:`,n),H(`oauth-token: ${n}`)):(console.error(`[oauth-token] Provider ${e}: login failed:`,n),H(`oauth-token: login failed: ${n}`))}}async function x(e,t,n){let r=n?{scopes:n}:void 0,i=!1,a=()=>{i=!0};if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-IlBYPvwr.js`),o=await n();return o?(await t.onOAuthLoginIntercepted(o,a,r),{error:null,succeeded:i}):{error:H(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`),succeeded:!1}}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-IlBYPvwr.js`);return await t.onOAuthLogin(e(),a,r),{error:null,succeeded:i}}return{error:H(`oauth-token: provider "${e}" has no OAuth login hook`),succeeded:!1}}async function S(e,t,n,r){if(!r)return console.error(`[oauth-token] Provider ${e}: interactive login was not completed`),H(`oauth-token: interactive login was not completed (cancelled, timed out, or no one could approve it)`);let i=t(e);if(i?.token&&!i.expired){let t=v(i.maskedValue,i.token);if(t)return t;let r=await n(e)??{};return v(r.maskedValue,i.token)||y(e,r.error)}return i?.token?H(`oauth-token: login completed but the saved token is already expired`):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),H(`oauth-token: login completed but no token was saved`))}async function C(e){try{return await e()!==null}catch{return!1}}function w(e,t,n,r,i){let a=e[0];if(a)return a;let o=n();return r(o)?.[t]?o:i().find(e=>r(e)?.[t])}async function T(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-VSfy5XZf.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-BXLtb_Oe.js`).then(e=>e.r),a=w(e,`onValidateToken`,t,r,i);if(!a)return H(`oauth-token --check: no provider supports an upstream token check`);let o=r(a);if(!o)return H(`oauth-token --check: unknown provider "${a}"`);if(!o.onValidateToken)return H(`oauth-token --check: provider "${a}" cannot be checked upstream (no onValidateToken hook); only locally stored state is known.`);let s=n(a),c=[`oauth-token --check ${a}`,` stored token: ${F(s)}`];if(!s)return c.push(` upstream check: skipped — nothing to check`,...M(a)),{stdout:c.join(`
|
|
96
96
|
`)+`
|
|
97
97
|
`,stderr:``,exitCode:3};let l=await j(o);if(l?.status===`accepted`){let e=l.userName?` (as ${l.userName})`:``;return c.push(` upstream check: ACCEPTED${e} — the provider honoured the token`),{stdout:c.join(`
|
|
98
98
|
`)+`
|
|
@@ -100,7 +100,7 @@ Examples:
|
|
|
100
100
|
`)+`
|
|
101
101
|
`,stderr:``,exitCode:e}}return c.push(` upstream check: UNKNOWN — the check itself could not run${D(l?.detail)}`,` This says nothing about the token. Retry when the provider is reachable.`),{stdout:c.join(`
|
|
102
102
|
`)+`
|
|
103
|
-
`,stderr:``,exitCode:1}}function E(e,t,n){let r=` upstream check: REJECTED — the provider refused the token${D(n)}`;return t?[r,` A stored refresh token may still be able to replace it — silent renewal`,` has not been tried yet.`,``,` → Next: oauth-token ${e} --renew`,` If that is declined too: oauth-token ${e} --force-login (needs a human).`]:[r,` This provider has no silent renewal, so nothing automated is left.`,...M(e)]}function D(e){return e?` (${e})`:``}async function O(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-
|
|
103
|
+
`,stderr:``,exitCode:1}}function E(e,t,n){let r=` upstream check: REJECTED — the provider refused the token${D(n)}`;return t?[r,` A stored refresh token may still be able to replace it — silent renewal`,` has not been tried yet.`,``,` → Next: oauth-token ${e} --renew`,` If that is declined too: oauth-token ${e} --force-login (needs a human).`]:[r,` This provider has no silent renewal, so nothing automated is left.`,...M(e)]}function D(e){return e?` (${e})`:``}async function O(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-VSfy5XZf.js`).then(e=>e.t),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-BXLtb_Oe.js`).then(e=>e.r),o=w(e,`onSilentRenew`,n,i,a);if(!o)return H(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return H(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return H(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return H(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return H(`oauth-token --expire: failed to update "${o}": ${e instanceof Error?e.message:String(e)}`)}return{stdout:`oauth-token ${o}: stored token marked expired; next network op will trigger silent renewal.\n`,stderr:``,exitCode:0}}async function k(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-VSfy5XZf.js`).then(e=>e.t),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-BXLtb_Oe.js`).then(e=>e.r),a=w(e,`onSilentRenew`,t,r,i);if(!a)return H(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return H(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return H(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` stored token: ${F(s)}`);let u=null,d=null;try{u=await o.onSilentRenew()}catch(e){d=e instanceof Error?e.message:String(e)}if(u){let e=n(a),t=!!(c&&e?.token&&c!==e.token);return l.push(` silent renewal: SUCCESS${t?` — token refreshed`:` (token unchanged)`}`),l.push(` renewed token: ${F(e)}`),{stdout:l.join(`
|
|
104
104
|
`)+`
|
|
105
105
|
`,stderr:``,exitCode:0}}if(d)return l.push(` silent renewal: ERROR — ${d}`,...P(a)),{stdout:l.join(`
|
|
106
106
|
`)+`
|
package/dist/ui/assets/{session-command-memory-Bbguzf_6.js → session-command-memory-0P878oz2.js}
RENAMED
|
@@ -19,4 +19,4 @@ usage: session search <query> [--limit N]
|
|
|
19
19
|
`}}function i(e,t,n){if(!e||e.startsWith(`-`))return{ok:!1,stderr:`session read: ${t} requires a number\n`};let r=Number(e);return!Number.isFinite(r)||r<n?{ok:!1,stderr:`session read: ${t} must be ${n===0?`a non-negative integer`:`a positive integer`}\n`}:{ok:!0,n:Math.floor(r)}}function a(e){let t=e.slice(1),n,r,a;for(let e=0;e<t.length;e++){let o=t[e];if(o===`--from`||o===`--count`){let n=i(t[e+1],o,o===`--from`?0:1);if(!n.ok)return n;o===`--from`?r=n.n:a=n.n,e++}else if(o.startsWith(`-`))return{ok:!1,stderr:`session read: unknown flag ${o}\n`};else if(n===void 0)n=o;else return{ok:!1,stderr:`session read: unexpected argument ${JSON.stringify(o)}\n`}}return n?{ok:!0,id:n,from:r,count:a}:{ok:!1,stderr:`session read: missing id
|
|
20
20
|
usage: session read <id> [--from N --count M]
|
|
21
21
|
`}}async function o(e,t){let n=r(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{searchSessions:e}=await import(`./session-search-index-BQmbRVuk.js`),r=await e(t.fs,n.query,{limit:n.limit});if(r.length===0)return{stdout:`# session search: ${n.query} (0 hits)\nNo matching messages in /sessions.\n`,stderr:``,exitCode:0};let i=[`# session search: ${n.query} (${r.length} hits)`];for(let e of r)i.push(`id=${e.id} score=${e.score.toFixed(2)} kind=${e.echoKind} role=${e.role}`),i.push(` session=${JSON.stringify(e.sessionTitle)} path=${e.path}`),i.push(` ${e.excerpt}`),i.push(``);return i.push(`Use: session read <id> [--from N --count M]`),{stdout:`${i.join(`
|
|
22
|
-
`)}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session search: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function s(e,t){let n=a(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{readSessionHit:e,SESSION_READ_BYTE_CAP:r}=await import(`./session-search-index-BQmbRVuk.js`),i=await e(t.fs,n.id,{from:n.from,count:n.count});return i?{stdout:`# session read: ${n.id}\npath=${i.hit.path} title=${JSON.stringify(i.hit.sessionTitle)}\nmessages ${i.from}–${i.from+i.count-1} of ${i.total} (remaining: ${i.remaining}${i.truncated?`, truncated to byte cap`:``})\nbyteCap=${r}\n\n`+i.text,stderr:``,exitCode:0}:{stdout:``,stderr:`session read: unknown id ${JSON.stringify(n.id)}\n`,exitCode:1}}catch(e){return{stdout:``,stderr:`session read: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function c(r,i,a,c){return r===`help`?{stdout:c?e(`session`,c,n):n,stderr:``,exitCode:0}:t(i.slice(1))?{stdout:e(`session`,r,n),stderr:``,exitCode:0}:r===`search`?o(i,a):s(i,a)}async function l(e,n,r){let{isMemoryV2Enabled:i}=await import(`./memory-v2-flag-
|
|
22
|
+
`)}\n`,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`session search: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function s(e,t){let n=a(e);if(!n.ok)return{stdout:``,stderr:n.stderr,exitCode:1};try{let{readSessionHit:e,SESSION_READ_BYTE_CAP:r}=await import(`./session-search-index-BQmbRVuk.js`),i=await e(t.fs,n.id,{from:n.from,count:n.count});return i?{stdout:`# session read: ${n.id}\npath=${i.hit.path} title=${JSON.stringify(i.hit.sessionTitle)}\nmessages ${i.from}–${i.from+i.count-1} of ${i.total} (remaining: ${i.remaining}${i.truncated?`, truncated to byte cap`:``})\nbyteCap=${r}\n\n`+i.text,stderr:``,exitCode:0}:{stdout:``,stderr:`session read: unknown id ${JSON.stringify(n.id)}\n`,exitCode:1}}catch(e){return{stdout:``,stderr:`session read: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function c(r,i,a,c){return r===`help`?{stdout:c?e(`session`,c,n):n,stderr:``,exitCode:0}:t(i.slice(1))?{stdout:e(`session`,r,n),stderr:``,exitCode:0}:r===`search`?o(i,a):s(i,a)}async function l(e,n,r){let{isMemoryV2Enabled:i}=await import(`./memory-v2-flag-D85UWdUr.js`),a=i();if(t(e)){if(!a)return{stdout:r,stderr:``,exitCode:0};let t=e[0];return c(`help`,e,n,t&&t!==`--help`&&t!==`-h`?t:void 0)}let o=e[0];return o===`search`||o===`read`?a?c(o,e,n):{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}:a?{stdout:``,stderr:`session: unknown subcommand ${JSON.stringify(o??``)} — usage: session export|search|read (see session --help)\n`,exitCode:1}:{stdout:``,stderr:`session export: unknown subcommand ${JSON.stringify(o??``)} — usage: session export [--id <id>] [--output <path>]\n`,exitCode:1}}export{l as dispatchSessionMemoryAware};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{G as t,ut as n}from"./wc-shortcuts-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{G as t,ut as n}from"./wc-shortcuts-C4Pk67qQ.js";import{t as r}from"./slugify-BYJ6QVAt.js";import{t as i}from"./types-D8gIX-W-.js";var a=[{category:`jwt`,source:String.raw`ey[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+`,flags:`g`},{category:`private-key`,source:`-----BEGIN [A-Z ]* PRIVATE KEY-----`+String.raw`[\s\S]*?`+`-----END [A-Z ]* PRIVATE KEY-----`,flags:`g`},{category:`bearer-token`,source:`Bearer [A-Za-z0-9._~+/=!-]+`,flags:`gi`},{category:`api-key`,source:`(?:sk-(?:live|test|prod|proj)-[A-Za-z0-9]{8,}|sk-ant-[A-Za-z0-9-]{8,}|xoxb-[A-Za-z0-9-]{10,}|xoxp-[A-Za-z0-9-]{10,}|AKIA[A-Z0-9]{16}|ghp_[A-Za-z0-9]{36}|hf_[A-Za-z0-9]{34})`,flags:`g`},{category:`password`,source:String.raw`\b(?:password|passwd|token|secret|api_key)\s*[=:]\s*\S+`,flags:`gi`}],o=`⟦REDACTED:[^⟧]*⟧`;function s(e,t){return e.start<t.end&&t.start<e.end}function c(e){let t=[];for(let n of e.matchAll(new RegExp(o,`g`))){let e=n.index;e!==void 0&&t.push({start:e,end:e+n[0].length})}return t}function l(e,t,n=1,r){let i=c(e),o=[],l=n,u=r?.categories?a.filter(e=>r.categories?.includes(e.category)):a;for(let{category:n,source:r,flags:a}of u)for(let c of e.matchAll(new RegExp(r,a))){let e=c.index;if(e===void 0)continue;let r={start:e,end:e+c[0].length};i.some(e=>s(e,r))||o.some(e=>s(e,r))||o.push({...r,id:`${t}${l++}`,category:n})}o.sort((e,t)=>e.start-t.start);let d=``,f=0;for(let{start:t,end:n,id:r,category:i}of o)d+=e.slice(f,t),d+=`⟦REDACTED:${i}:${r}⟧`,f=n;return d+=e.slice(f),{text:d,matches:o.map(({id:e,category:t})=>({id:e,category:t})),nextId:l}}var u=[`jwt`,`private-key`,`bearer-token`,`api-key`],d=`ar`;function f(){return{nextId:1}}function p(e,t){let{text:n,nextId:r}=l(e,d,t.nextId,{categories:u});return t.nextId=r,n}function m(e,t){if(typeof e==`string`)return p(e,t);if(Array.isArray(e)){let n=!1,r=[];for(let i of e){let e=m(i,t);e!==i&&(n=!0),r.push(e)}return n?r:e}if(typeof e==`object`&&e){let n=!1,r={};for(let[i,a]of Object.entries(e)){let e=m(a,t);e!==a&&(n=!0),r[i]=e}return n?r:e}return e}function h(e,t=f()){return m(e,t)}var g=`/sessions`,_=`/sessions/index.json`;async function ee(e){try{let t=await e.readFile(_,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function v(e){return`${g}/${e.filename}`}function y(e){let t=e,n=`Untitled`,r={},i=t.match(/^---\n([\s\S]*?)\n---\n+/);if(i){t=t.slice(i[0].length),Object.assign(r,te(i[1]));let e=i[1].match(/^title:\s*(.+?)\s*$/m);e&&(n=b(e[1]))}let a=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(a){try{let e=a[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t,...r}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return r.sidecar?{title:n,messages:[],...r}:(t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:S(t),...r})}function te(e){let t={},n=x(e,`cost`),r=x(e,`models`);n&&(t.cost=n),r&&(t.models=r);let i=e.match(/^cone:\s*(.+?)\s*$/m)?.[1];i&&(t.cone=i);let a=e.match(/^coneLabel:\s*(.+?)\s*$/m)?.[1];a&&(t.coneLabel=b(a)),/^memorySkipped:\s*true\s*$/m.test(e)&&(t.memorySkipped=!0),/^live:\s*true\s*$/m.test(e)&&(t.live=!0);let o=Number(e.match(/^liveThrough:\s*(\d+)\s*$/m)?.[1]);Number.isFinite(o)&&o>0&&(t.liveThrough=o);let s=Number(e.match(/^compactions:\s*(\d+)\s*$/m)?.[1]);Number.isFinite(s)&&s>0&&(t.compactions=s);let c=e.match(/^id:\s*(\S+)\s*$/m)?.[1];c&&(t.id=c);let l=e.match(/^sidecar:\s*(\S+)\s*$/m)?.[1];return l&&(t.sidecar=l),t}function b(e){let t=e.trim();if(!t.startsWith(`"`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.replace(/^"|"$/g,``)}function x(e,t){let n=RegExp(`^${t}:\\s*(.+?)\\s*$`,`m`).exec(e)?.[1];if(n)try{return JSON.parse(n)}catch{return}}function S(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}function C(e){let r=``;for(let i of e){let e=i.role===`user`?`User`:`Assistant`,a=i.role===`user`?t(i.content):i.content;if(r+=`## ${e}\n${a}\n\n`,i.attachments?.length&&(r+=`Attachments:\n${i.attachments.map(e=>`- ${n(e)}`).join(`
|
|
2
2
|
`)}\n\n`),i.toolCalls)for(let e of i.toolCalls)r+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return r}var ne=`<!-- slicc:session-data
|
|
3
3
|
`,re=`
|
|
4
4
|
-->`;function ie(e){return e.startsWith(`pending-`)||e.startsWith(`live-`)}function ae(e,t){return e.find(e=>e.live===!0&&(e.cone??`cone`)===t)}function w(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}function T(e){return r(e,{maxLen:48,fallback:`session`})}function E(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function D(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),e.compaction&&(t.compaction=e.compaction),t})}function O(e,t,n){return!t||t===n?e:e.split(t).join(n)}function k(e){let t=f(),n={...e,title:p(e.title,t),messages:h(e.messages,t)},r=(n.cost?`cost: ${JSON.stringify(n.cost)}\n`:``)+(n.models?`models: ${JSON.stringify(n.models)}\n`:``),i=(n.cone?`cone: ${n.cone}\n`:``)+(n.coneLabel?`coneLabel: ${JSON.stringify(n.coneLabel)}\n`:``)+(n.memorySkipped?`memorySkipped: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,n as t,t as n}from"./tray-runtime-config-B9jN9kUJ.js";import{c as r}from"./feature-flags-
|
|
1
|
+
import{h as e,n as t,t as n}from"./tray-runtime-config-B9jN9kUJ.js";import{c as r}from"./feature-flags-Dr999R3v.js";import{l as i,u as a}from"./main-jZVh08kl.js";var o=3e3;async function s(e,t){let n=i(t.storage);try{let i=new URL(`/api/flags`,`${t.workerBaseUrl.replace(/\/+$/,``)}/`);i.searchParams.set(`float`,e);let s=await c(i.toString(),t.fetchImpl??fetch,t.timeoutMs??o);if(!s)return;a(n,e,s),r(e,s)}catch{}}async function c(e,t,n){let r=new AbortController,i;try{let a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(null)},n)}),o=t(e,{cache:`no-store`,headers:{Accept:`application/json`},signal:r.signal}).then(async e=>e.ok?l(await e.json()):null).catch(()=>null);return await Promise.race([o,a])}catch{return null}finally{i!==void 0&&clearTimeout(i)}}function l(e){if(!u(e))return null;let t=e.flags;return!u(t)||Object.values(t).some(e=>typeof e!=`string`)?null:t}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e,t){return s(e,{workerBaseUrl:g(t),storage:t.storage})}var f=18e5,p=null;function m(e,t,n=f){return h(),p=setInterval(()=>{d(e,t)},n),h}function h(){p!==null&&(clearInterval(p),p=null)}function g(r){let i=_(r.storage),a=e(r.envBaseUrl??null);if(i)return i;if(a)return a;if(!r.isDev)try{let e=new URL(r.locationHref);if(e.protocol===`http:`||e.protocol===`https:`)return e.origin}catch{}return r.isDev?t:n}function _(t){try{return e(t?.getItem(`slicc.trayWorkerBaseUrl`)??null)}catch{return null}}export{d as refreshFeatureFlagsForPage,m as scheduleFeatureFlagsRefresh};
|
package/dist/ui/assets/{silent-renew-backoff-D5iqxWam.js → silent-renew-backoff-BTq8C2aH.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./bridge-protocol-06nbmp2X.js";import{d as e}from"./main-
|
|
1
|
+
import"./bridge-protocol-06nbmp2X.js";import{d as e}from"./main-jZVh08kl.js";function t(t){try{let n=new URL(t);return n.searchParams.has(`bridge`)?!0:!e(n.hostname)}catch{return!1}}function n(n,r){let i=t(n.pageHref),a=r();if(i){if(n.configuredRedirectUri){let t=``;try{t=new URL(n.configuredRedirectUri).origin}catch{t=``}if(t&&n.pageOrigin===t){let e=btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:e,expectedNonce:a,source:`opener`}}let r=null;try{r=new URL(n.pageHref)}catch{r=null}if(r!==null&&r.protocol===`http:`&&e(r.hostname)&&r.port!==``&&r){let e=parseInt(r.port,10),t=btoa(JSON.stringify({source:`local`,port:e,path:`/auth/callback`,nonce:a}));return{redirectUri:n.configuredRedirectUri,oauthState:t,expectedNonce:a,source:`local`}}}return{redirectUri:`${n.pageOrigin}/auth/callback`,oauthState:btoa(JSON.stringify({source:`opener`,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`opener`}}let o=n.configuredRedirectUri??`${n.pageOrigin}/auth/callback`,s=parseInt(new URL(n.pageHref).port||`5710`,10);return{redirectUri:o,oauthState:btoa(JSON.stringify({port:s,path:`/auth/callback`,nonce:a})),expectedNonce:a,source:`local`}}var r=3e5;function i(e=r){let t=0;return{async run(n,r=Date.now()){if(r<t)return null;let i=null;try{i=await n()}catch(e){console.debug(`[silent-renew-backoff] renew threw:`,e instanceof Error?e.message:String(e)),i=null}return t=i?0:r+e,i},inCooldown(e=Date.now()){return e<t}}}export{n,t as r,i as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{a as n,n as r,r as i,t as a}from"./path-utils-DNJG-zQf.js";import{t as o}from"./types-D8gIX-W-.js";import"./fs-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{a as n,n as r,r as i,t as a}from"./path-utils-DNJG-zQf.js";import{t as o}from"./types-D8gIX-W-.js";import"./fs-DMkW9RoT.js";import{g as s,i as c,n as l,p as u}from"./sudoers-BdBYQPUn.js";import{r as d}from"./browser-2rCVqcqy.js";const f=t(`sudo:timeout`),p={"user-timeout":`no response from the user within 5 minutes. This is a TIMEOUT, not a denial — the user was not there to answer. Do not retry this action; report that the approval request went unanswered and wait for the user before trying again.`,"cone-timeout":`no response from the cone agent within 5 minutes. This is a TIMEOUT, not a denial — no human was ever prompted, the cone simply never resolved the request. Do not retry this action; report that the escalation went unanswered and continue with work that does not need it.`};function m(e){return p[e]}function h(e=`user-timeout`){return{decision:`deny`,reason:e}}function g(e,t){let n=t.decision===`deny`?t.reason:void 0,r=n?`${e}: approval request timed out — ${m(n)}`:`${e}: approval denied`,i=t.note?.trim();return i?`${r} — approver's reason: ${i}`:r}function _(e,t={}){let n=t.timeoutMs??3e5;if(!Number.isFinite(n)||n<=0)return e;let r=t.setTimer??((e,t)=>setTimeout(e,t)),i=t.clearTimer??(e=>clearTimeout(e));return{requestApproval(t,a){return new Promise(o=>{let s=new AbortController,c=()=>s.abort();a?.signal?.addEventListener(`abort`,c,{once:!0});let l=!1,u=e=>{l=!0,a?.signal?.removeEventListener(`abort`,c),o(e)},d=r(()=>{l||(f.warn(`sudo approval timed out — failing closed`,{kind:t.kind,detail:t.detail,timeoutMs:n}),s.abort(),u(h(`user-timeout`)))},n),p=e=>{if(l){f.warn(`sudo decision arrived after timeout — discarded`,{kind:t.kind,detail:t.detail,decision:e.decision});return}i(d),u(e)};e.requestApproval(t,{signal:s.signal}).then(p,e=>{f.warn(`sudo broker threw — denying`,{error:e instanceof Error?e.message:String(e)}),p({decision:`deny`})})})}}}const v=t(`sudo:fs`),y=Symbol.for(`slicc.fs.monkeypatchUnsafe`),b=`${l}/granted`;function x(e){return g(`sudo`,e)}const S=[`readFile`,`readFileRange`,`getNativeFile`,`readTextFile`,`readDir`,`exists`,`stat`],ee=[`writeFile`,`appendFile`],C=[`mkdir`,`rm`,`chmod`,`utimes`];async function w(e,t,n,r){let a=s(r);if(!a)return;let c=t(),u={pattern:a,nopasswd:!0,regex:i(a)};(n===`read`?c.read:c.write).push(u);let d=`NOPASSWD ${n===`read`?`Read`:`Write`} ${a}\n`;try{await e.mkdir(l,{recursive:!0});let t=``;try{t=await e.readFile(b,{encoding:`utf-8`})}catch(e){if(!(e instanceof o&&e.code===`ENOENT`))throw e}let n=t.length>0&&!t.endsWith(`
|
|
2
2
|
`)?`
|
|
3
3
|
`:``;await e.writeFile(b,t+n+d)}catch(e){v.warn(`Failed to persist NOPASSWD grant; effective in-session only`,{error:e instanceof Error?e.message:String(e)})}}function T(e,t){let{broker:n,getPolicy:i}=t,a=t.defaultDisposition??`allow`,s=t.onGrant?t.onGrant:(t,n)=>w(e,i,t,n);async function l(e,t,l=!1){let d=r(t),f=u(i(),e,d,{isContentWrite:l}),p=e===`write`?c(f,a):f;if(p===`deny`)throw v.warn(`Refusing write to an unhonoured sudoers path`,{path:d}),new o(`EACCES`,`sudo: refusing to write a sudoers file outside /etc — policy is read only from /etc/sudoers and /etc/sudoers.d/, so this file would never take effect`,d);if(p!==`require-approval`)return;let m=e,h=await n.requestApproval({kind:m,detail:d});if(h.decision===`deny`)throw new o(`EACCES`,x(h),d);h.decision===`always`&&await s(e,h.pattern?.trim()||d)}function d(e){return u(i(),`read`,r(e))!==`require-approval`}let f=t=>typeof e[t]==`function`,p={};for(let t of S)f(t)&&(p[t]=async(n,...r)=>(await l(`read`,n),e[t](n,...r)));for(let t of ee)f(t)&&(p[t]=async(n,...r)=>(await l(`write`,n,!0),e[t](n,...r)));for(let t of C)f(t)&&(p[t]=async(n,...r)=>(await l(`write`,n),e[t](n,...r)));return f(`walk`)&&(p.walk=async function*(t,...n){await l(`read`,t),yield*e.walk(t,...n)}),f(`symlink`)&&(p.symlink=async(t,n)=>(await l(`write`,n),e.symlink(t,n))),f(`rename`)&&(p.rename=async(t,n)=>(await l(`read`,t),await l(`write`,t),await l(`write`,n),e.rename(t,n))),f(`copyFile`)&&(p.copyFile=async(t,n)=>(await l(`read`,t),await l(`write`,n),e.copyFile(t,n))),f(`mount`)&&(p.mount=async(t,...n)=>(await l(`write`,t),e.mount(t,...n))),f(`unmount`)&&(p.unmount=async t=>(await l(`write`,t),e.unmount(t))),f(`refreshMount`)&&(p.refreshMount=async(t,...n)=>(await l(`write`,t),e.refreshMount(t,...n))),f(`statSync`)&&(p.statSync=t=>d(t)?e.statSync(t):null),f(`readDirSync`)&&(p.readDirSync=t=>d(t)?e.readDirSync(t):null),new Proxy(e,{get(e,t,n){if(t===y)return!0;if(typeof t==`string`&&t in p)return p[t];let r=Reflect.get(e,t,n);return typeof r==`function`?r.bind(e):r}})}const E=`.skill`,D=`/workspace/skills`,O=`SKILL.md`,k=t(`skills-discovery`),A=[`native`,`agents`,`claude`,`marketplace`,`plugin`],j=new Map([[`.agents`,`agents`],[`.claude`,`claude`]]),te=new Set([`.git`,`.slicc`,`node_modules`]),M=2e4,ne=[`mkdir`,`mount`,`rename`,`rm`,`unmount`,`writeFile`],N=new WeakMap,P=new WeakSet;async function F(e,t=D){let n=await B(e,t),r=await L(e),i=await I(e);return[...A.flatMap(e=>(e===`native`?n:e===`plugin`?i:r.filter(t=>t.source===e)).sort((e,t)=>e.path.localeCompare(t.path)))]}async function I(e){let t;try{let n=await e.readTextFile(`/workspace/.plugins/plugins.json`),r=JSON.parse(n);if(!r||typeof r!=`object`||!r.plugins)return[];t=Object.values(r.plugins).map(e=>e?.root).filter(e=>typeof e==`string`)}catch{return[]}let n=[];for(let r of t){let t=`${r}/skills`,i=await q(e,t);for(let r of i){if(r.type!==`directory`)continue;let i=`${t}/${r.name}`,a=`${i}/${O}`;await K(e,a)&&n.push({source:`plugin`,sourceRoot:t,path:i,skillFilePath:a})}}return n}async function L(e){if(R(e))return(await W(e)).map(e=>({...e}));G(e);let t=e,n=N.get(t);if(n)return n.map(e=>({...e}));let r=await W(e);return N.set(t,r),r.map(e=>({...e}))}function R(e){try{return e[y]===!0}catch{return!1}}function z(e,t){let n=new Map,r=new Map;for(let i of e){let e=t(i);if(!n.has(e)){n.set(e,i);continue}let a=r.get(e)??{name:e,winner:n.get(e),shadowed:[]};a.shadowed.push(i),r.set(e,a)}return{winners:Array.from(n.values()),collisions:Array.from(r.values())}}async function B(e,t){let n=await q(e,t),r=[];for(let i of n){if(i.type!==`directory`)continue;let n=`${t}/${i.name}`,a=`${n}/${O}`;await K(e,a)&&r.push({source:`native`,sourceRoot:t,path:n,skillFilePath:a})}return r}async function V(e,t){let n;try{n=await e.readTextFile(t)}catch{return[]}let r;try{r=JSON.parse(n)}catch{return[]}if(typeof r!=`object`||!r)return[];let i=r.plugins;if(!Array.isArray(i))return[];let a=t.replace(/\/[^/]+$/,``).replace(/\/.claude-plugin$/,``),o=[];for(let e of i){if(typeof e!=`object`||!e)continue;let t=e.source;if(typeof t!=`string`||t.startsWith(`/`)||t.split(`/`).includes(`..`))continue;let n=t.replace(/^\.\//,``).replace(/\/$/,``).replace(/^\.$/,``);o.push(n?`${a}/${n}`:a)}return o}async function H(e,t,n){let r=await V(e,`${t}/marketplace.json`),i=[];for(let t of r){let r=`${t}/skills`,a=await q(e,r);for(let t of a){if(t.type!==`directory`)continue;let a=`${r}/${t.name}`,o=`${a}/${O}`;!await K(e,o)||n.has(a)||(n.add(a),i.push({source:`marketplace`,sourceRoot:r,path:a,skillFilePath:o}))}}return i}async function U(e,t,n,r){let i=`${t}/skills`,a=await q(e,i),o=[];for(let t of a){if(t.type!==`directory`)continue;let a=`${i}/${t.name}`,s=`${a}/${O}`;!await K(e,s)||r.has(a)||(r.add(a),o.push({source:n,sourceRoot:i,path:a,skillFilePath:s}))}return o}async function W(e){let t=[],n=new Set,r=new Set([`/`]),i=[{path:`/`,depth:0}];for(let a=0;a<i.length;a+=1){if(a>=M){k.warn(`skills discovery: directory budget exhausted; walk truncated`,{budget:M});break}let{path:o,depth:s}=i[a],c=await q(e,o);for(let a of c){if(a.type!==`directory`||a.name===`.`||a.name===`..`)continue;let c=o===`/`?`/${a.name}`:`${o}/${a.name}`,l=j.get(a.name);if(l){let r=await U(e,c,l,n);t.push(...r)}if(a.name===`.claude-plugin`){let r=await H(e,c,n);t.push(...r);continue}!te.has(a.name)&&s<24&&!r.has(c)&&(r.add(c),i.push({path:c,depth:s+1}))}}return t}function G(e){if(R(e))return;let t=e;if(P.has(t))return;P.add(t);let n=e;for(let r of ne){let i=n[r];if(typeof i==`function`)try{n[r]=async(...n)=>{let r=await i.apply(e,n);return N.delete(t),r}}catch{}}}async function K(e,t){try{return await e.stat(t),!0}catch{return!1}}async function q(e,t){try{return[...await e.readDir(t)].sort((e,t)=>e.name.localeCompare(t.name))}catch{return[]}}async function J(e,t=`/workspace/skills`){let n=await F(e,t),r=[];for(let t of n){let n=t.path.split(`/`).pop()??t.path,i=``;if(t.skillFilePath)try{i=Z(await e.readTextFile(t.skillFilePath))??``}catch{}r.push({name:n,source:t.source,sourceRoot:t.sourceRoot,path:t.path,skillFilePath:t.skillFilePath,description:i})}let{winners:i,collisions:a}=z(r,e=>e.name),o=new Map(a.map(e=>[e.winner.path,e.shadowed.map(e=>e.path)]));return i.map(e=>({...e,shadowedPaths:o.get(e.path)}))}async function Y(e,t,n=`/workspace/skills`){return(await J(e,n)).find(e=>e.name===t)||null}async function X(e,t,n=`/workspace/skills`){let r=await Y(e,t,n);if(!r?.skillFilePath)return null;try{return await e.readTextFile(r.skillFilePath)}catch{return null}}function Z(e){let t=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
|
|
4
4
|
`).trimStart().match(/^---\s*\n([\s\S]*?)\n---/);if(!t)return null;for(let e of t[1].split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){return{version:`6.159.1`,releasedAt:`2026-09-16T17:28:11Z`,buildId:`6.159.1-mu4djkvn`}}let t=null;function n(e){t=e}function r(){return t}export{e as n,n as r,r as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./panel-rpc-BPwAqRch.js";import{m as t}from"./state-
|
|
1
|
+
import{n as e}from"./panel-rpc-BPwAqRch.js";import{m as t}from"./state-JibZaKgk.js";function n(e,t=``){if(e==null)return t;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??t}catch{return String(e)}}function r(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`)}function i(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}const a=[`none`,`presentation`,`generic`,`rootwebarea`],o=[`textbox`,`button`,`link`,`checkbox`,`radio`];function s(e,t){return a.includes(e)?!1:!!t||o.includes(e)}function c(e,t){let n=i(t);return e===`button`&&t?[`button[aria-label="${n}"]`,`button[title="${n}"]`,`[role="button"][aria-label="${n}"]`,`[role="button"][title="${n}"]`,`input[type="button"][value="${n}"]`,`input[type="submit"][value="${n}"]`,`input[type="reset"][value="${n}"]`].join(`, `):e===`link`&&t?`a[aria-label="${n}"], a[title="${n}"], [role="link"][aria-label="${n}"], [role="link"][title="${n}"]`:e===`textbox`?t?`input[aria-label="${n}"], textarea[aria-label="${n}"], [contenteditable][aria-label="${n}"], input[placeholder="${n}"], textarea[placeholder="${n}"], [contenteditable][placeholder="${n}"], input[title="${n}"], textarea[title="${n}"], [contenteditable][title="${n}"]`:`input, textarea, [contenteditable]`:e===`checkbox`?`input[type="checkbox"]`:e===`radio`?`input[type="radio"]`:t?`[aria-label="${n}"], [title="${n}"]`:`[role="${e}"]`}function l(e,t,i,a,o=``,u=``){let d=[],f=n(e.role,`unknown`).toLowerCase(),p=n(e.name),m=n(e.value),h=``;s(f,p)&&(h=u+`e${++a.value}`,e.backendNodeId&&i.set(h,e.backendNodeId),t.set(h,c(f,p)));let g=`${o}- ${f}`;if(p&&(g+=` "${r(p)}"`),h&&(g+=` [ref=${h}]`),m&&(g+=`: "${r(m)}"`),d.push(g),e.children)for(let n of e.children)d.push(...l(n,t,i,a,o+` `,u));return d}async function u(e,t){if(t.appTabId)return;let n=await e.listPages(),r=await d(),i=n.find(e=>e.url.startsWith(r)&&!e.url.includes(`/preview/`));i&&(t.appTabId=i.targetId)}async function d(){if(typeof window<`u`)return window.location.origin;let t=e();if(t)try{let e=await t.call(`page-info`,void 0,{timeoutMs:2e3});if(e.origin)return e.origin}catch{}return`http://localhost:5710`}function f(e,t){return t===e.appTabId}function p(e){let t=e.url.trim(),n=e.title.trim();return n===`Omnibox Popup`||t.startsWith(`chrome://`)||t.startsWith(`chrome-search://`)||t.startsWith(`chrome-untrusted://`)||t.startsWith(`devtools://`)||t.length===0&&/popup$/i.test(n)}function m(e,t){return!f(e,t.targetId)&&!p(t)}async function h(e,n){return await u(e,n),(await t(e)).filter(e=>m(n,e))}function g(e,t){try{let n=new URL(e,t);return n.origin+n.pathname.replace(/\/$/,``)+n.search}catch{return null}}function _(e,t,n,r){let i=g(t,n);return e.find(e=>{if(r.has(e.frameId))return!1;let n=g(e.url);return n!==null&&i!==null?n===i:e.url===t})}async function v(e,t,n,r,i,a,o){try{let s=await e.getAccessibilityTreeForFrame(t),c=new Map,u=new Map,d=l(s,c,u,{value:0},n,r);for(let[e,n]of c)i.set(e,n),o.set(e,t);for(let[e,n]of u)a.set(e,n),o.set(e,t);return d}catch{return[]}}async function y(e,t,n,r,i,a){if(typeof e.getFrameTree!=`function`)return t;try{let o=(await e.getFrameTree()).filter(e=>e.parentFrameId);if(o.length===0)return t;let s=0,c=[],l=new Set;for(let u of t.split(`
|
|
2
2
|
`)){c.push(u);let t=u.match(/^(\s*)- iframe(?=\s|:)/);if(!t)continue;let d=u.match(/:\s*"([^"]+)"\s*$/);if(!d)continue;let f=_(o,d[1],n,l);f&&(l.add(f.frameId),s++,c.push(...await v(e,f.frameId,t[1]+` `,`f${s}`,r,i,a)))}return c.join(`
|
|
3
3
|
`)}catch{return t}}async function b(e,t){let n=await e.evaluate(`JSON.stringify({ url: location.href, title: document.title })`),{url:r,title:i}=JSON.parse(n),a=await e.getAccessibilityTree(),o=new Map,s=new Map,c=new Map,u=l(a,o,s,{value:0}).join(`
|
|
4
4
|
`);return t?.noIframes||(u=await y(e,u,r,o,s,c)),{url:r,title:i,text:u,refToSelector:o,refToBackendNodeId:s,refToFrameId:c}}async function x(e,t,n,r){let{url:i,title:a,text:o,refToSelector:s,refToBackendNodeId:c,refToFrameId:l}=await b(e,r),u={url:i,title:a,refToSelector:s,refToBackendNodeId:c,refToFrameId:l,content:o,timestamp:Date.now()};return t.snapshots.set(n,u),{snapshot:u,output:[`Page URL: ${i}`,`Page Title: ${a}`,``,o].join(`
|