sliccy 6.248.2 → 6.248.3
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/dist/ui/.vite/manifest.json +203 -203
- package/dist/ui/assets/{account-store-D6Y7UkDR.js → account-store-DvMtuAxT.js} +1 -1
- package/dist/ui/assets/{account-store-ns4WYcMU.js → account-store-mjceqynz.js} +1 -1
- package/dist/ui/assets/{adobe-DUTM1MYN.js → adobe-BR5kagG4.js} +1 -1
- package/dist/ui/assets/{adobe-X7Inkd3y.js → adobe-BwMu78zI.js} +1 -1
- package/dist/ui/assets/{agent-panels-CKJsRdkX.js → agent-panels-CqdhYmst.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-ClalXJjr.js → almost-bash-shell-headless-Bapmhu3C.js} +15 -15
- package/dist/ui/assets/{apply-layout-CchSfN26.js → apply-layout-e_T1KE6y.js} +1 -1
- package/dist/ui/assets/{azure-openai-CKbMQD0r.js → azure-openai-BN148pwc.js} +1 -1
- package/dist/ui/assets/{azure-openai-DyFYxvm3.js → azure-openai-g4Xv5E--.js} +1 -1
- package/dist/ui/assets/{bunny-probe-C4NWuNUc.js → bunny-probe-AeE-5oRk.js} +1 -1
- package/dist/ui/assets/{bunny-run-i0aWgiSm.js → bunny-run-Dqkr4mRC.js} +1 -1
- package/dist/ui/assets/{cdp-DQxci1TE.js → cdp-BY2Mm1l_.js} +1 -1
- package/dist/ui/assets/{cerebras-CxUX42e1.js → cerebras-BxdukTUc.js} +1 -1
- package/dist/ui/assets/{cerebras-DIP7_DDR.js → cerebras-DFBA9Br9.js} +1 -1
- package/dist/ui/assets/{composer-speech-BG6t0naa.js → composer-speech--hKCVvOJ.js} +1 -1
- package/dist/ui/assets/{connect-surface-D2XK41nE.js → connect-surface-BT8a8Ghs.js} +1 -1
- package/dist/ui/assets/{directed-approval-B12urAW4.js → directed-approval-DCBFB0cJ.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-CWvY9WeB.js → emscripten-vfs-hook-Dh5V1kuy.js} +1 -1
- package/dist/ui/assets/{fast-path-R8Tr2lTS.js → fast-path-Bwq0oDa5.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-CbV_CMOh.js → frozen-archive-writer-AZqZX0be.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-Ceh2la4q.js → frozen-archive-writer-D8Na80jS.js} +1 -1
- package/dist/ui/assets/{frozen-session-delete-D5D_Ne2e.js → frozen-session-delete-DgFaw8dO.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-gJ9_AdhB.js → frozen-session-identity-V1cg6Y8X.js} +1 -1
- package/dist/ui/assets/{frozen-session-identity-BaOmOPkW.js → frozen-session-identity-bvyrPA_v.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-C7ZNZUSc.js → gelatiere-unit-Cb4ufYMy.js} +1 -1
- package/dist/ui/assets/{github-6DwMsMnA.js → github-D6ABE0-R.js} +1 -1
- package/dist/ui/assets/{github-1mLybvS_.js → github-MjQRJghz.js} +1 -1
- package/dist/ui/assets/{github-copilot-N-tzbR5P.js → github-copilot-D6lNv_9-.js} +1 -1
- package/dist/ui/assets/{github-copilot-BfIxbhi4.js → github-copilot-DzbXKZtj.js} +1 -1
- package/dist/ui/assets/{hear-Ct45sfIf.js → hear-AGuOYMWS.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-Cu7m3Um0.js → js-realm-worker-ChQxP0KX.js} +2 -2
- package/dist/ui/assets/{jsh-executor-Dl-C6Zsf.js → jsh-executor-75tLym35.js} +2 -2
- package/dist/ui/assets/{kernel-worker-C8b5lZTP.js → kernel-worker-BnbHshZp.js} +8 -8
- package/dist/ui/assets/{lick-ws-bridge-D-E79_1_.js → lick-ws-bridge-6FEM7X9M.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-h5gzMRSW.js → lick-ws-bridge-BPZTVU5Z.js} +1 -1
- package/dist/ui/assets/{live-session-curation-Cyo4-AT4.js → live-session-curation-BM7-y_ky.js} +1 -1
- package/dist/ui/assets/{live-session-curation-SLge-cX1.js → live-session-curation-Kj71P6dK.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-pRBKYrJ8.js → live-session-snapshot-DywJwCkI.js} +1 -1
- package/dist/ui/assets/{local-llm-ENpj_eMH.js → local-llm-CWvkEx1Y.js} +1 -1
- package/dist/ui/assets/{local-llm-BlHvV5yP.js → local-llm-_Vv5kgAi.js} +1 -1
- package/dist/ui/assets/{main-DfG-7olk.js → main-CraGyWI5.js} +3 -3
- package/dist/ui/assets/{main-cherry-C7-exyW-.js → main-cherry-C242PEw0.js} +1 -1
- package/dist/ui/assets/{mcp-command-17_LRqwb.js → mcp-command-BabmvfAi.js} +10 -10
- package/dist/ui/assets/{memory-curation-seam-CCSYlceq.js → memory-curation-seam-ETLJrcCv.js} +1 -1
- package/dist/ui/assets/{memory-health-BvHYn77g.js → memory-health-DS1GE6Db.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-DgQbDA3A.js → memory-write-execute-gi5xCQnL.js} +1 -1
- package/dist/ui/assets/{merge-folded-cost-into-frozen-JhDEaEfs.js → merge-folded-cost-into-frozen-B6zMyDMc.js} +1 -1
- package/dist/ui/assets/{new-session-CnoNDTuz.js → new-session-ERMxClkz.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-ChsezcFC.js → oauth-bootstrap-bG8L_Eoa.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DVgfzjFI.js → onboarding-orchestrator-DHS8hPJJ.js} +1 -1
- package/dist/ui/assets/{openai-codex-Dv0f6Zky.js → openai-codex-CGrqWES0.js} +1 -1
- package/dist/ui/assets/{openai-codex-C-kcHoOI.js → openai-codex-DKIssXwD.js} +1 -1
- package/dist/ui/assets/{openrouter-43Pclqtc.js → openrouter-ZVV6FVqk.js} +1 -1
- package/dist/ui/assets/{openrouter-free-FKyXQM6S.js → openrouter-free-BL-82nwO.js} +1 -1
- package/dist/ui/assets/{openrouter-free-ChP9MxdX.js → openrouter-free-TVKDr4Ci.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CNF2eLlh.js → openrouter-oauth-C0BSjkp9.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-BG3--aWC.js → openrouter-oauth-Do5xCmz5.js} +1 -1
- package/dist/ui/assets/{openrouter-Cpv4zDcO.js → openrouter-si1rvDmH.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-bwwGloEJ.js → panel-rpc-handlers-DoEdFmZH.js} +2 -2
- package/dist/ui/assets/{panelize-shell-CHcICs0K.js → panelize-shell-BbOMOerL.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-De18yFud.js → pi-edit-execution-sHOLEMOO.js} +1 -1
- package/dist/ui/assets/{provider-CkRuiBXe.js → provider-BNzD2VCf.js} +1 -1
- package/dist/ui/assets/{provider-BXpJxeAj.js → provider-DTbC8IiQ.js} +1 -1
- package/dist/ui/assets/{provider-settings-BiHtUcJy.js → provider-settings-Hf5Vr2vr.js} +1 -1
- package/dist/ui/assets/provider-store-access-BiWdVR9d.js +1 -0
- package/dist/ui/assets/provider-store-access-D3dRz2B4.js +1 -0
- package/dist/ui/assets/{providers-4SFNzKj4.js → providers-CH0N1Hn6.js} +2 -2
- package/dist/ui/assets/{providers-CNMsS7p4.js → providers-DXT44kfO.js} +1 -1
- package/dist/ui/assets/{quick-llm-D46cR1qL.js → quick-llm-95xYFP4C.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-BM3rzakW.js → realm-inprocess-BJztShpA.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-CtQi1yQa.js → realm-unhandled-rejections-DLGlX1JV.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-OEjbIKa3.js → realm-unhandled-rejections-VCxk3AmS.js} +1 -1
- package/dist/ui/assets/{recovery-screen-f0eMynNT.js → recovery-screen-C4ccpr6-.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-BvBX-VtU.js → remote-terminal-view-CbmgWziL.js} +2 -2
- package/dist/ui/assets/{restore-DB68Gs49.js → restore-D14e8jg_.js} +1 -1
- package/dist/ui/assets/{run-DbiSqYHp.js → run-BNk3oV9Y.js} +2 -2
- package/dist/ui/assets/{run-Ddy8I2eX.js → run-CAghXwX-.js} +1 -1
- package/dist/ui/assets/{run-Cb9nH_3a.js → run-CctUty19.js} +1 -1
- package/dist/ui/assets/{run-QCY2mHg_.js → run-Cei5Q63u.js} +2 -2
- package/dist/ui/assets/{run-DxAKJMli.js → run-DW2M8USl.js} +2 -2
- package/dist/ui/assets/{run-lA9Glhv6.js → run-Dt6bu0ib.js} +2 -2
- package/dist/ui/assets/{run-DwJ5gSg3.js → run-rfYH3Q6m.js} +1 -1
- package/dist/ui/assets/{serve-command-CrjFrMtN.js → serve-command-CwZwH2sF.js} +2 -2
- package/dist/ui/assets/{serve-runtime-Df_C7Bwg.js → serve-runtime-CUY8Qryz.js} +1 -1
- package/dist/ui/assets/{session-command-memory-CsOEa_ms.js → session-command-memory-NpuNEURz.js} +2 -2
- package/dist/ui/assets/{session-jsonl-By2cMFbj.js → session-jsonl-2Dg1Jgyg.js} +1 -1
- package/dist/ui/assets/{session-jsonl-CMk3OfCb.js → session-jsonl-D4p25wJo.js} +1 -1
- package/dist/ui/assets/{session-search-index-CQZ4zHoN.js → session-search-index-BjKWodVu.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-B5Zj6DG2.js → setup-feature-flags-remote-CjVU1qOg.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-DF_b-L0I.js → setup-model-catalog-BdD735K3.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-DdGLoVuv.js → silent-renew-backoff-C5-VfSnD.js} +1 -1
- package/dist/ui/assets/slicc-version-Cf9JtZVj.js +1 -0
- package/dist/ui/assets/{soundscape-DEhbJ-ug.js → soundscape-CQ9qZd-p.js} +1 -1
- package/dist/ui/assets/{speak-BoErE_TJ.js → speak-CSIK-Yvk.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-Bl1h68AL.js → sprinkle-manager-Cn-J2bbA.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-B9Kv4iHS.js → sprinkle-renderer-BUkonV7E.js} +1 -1
- package/dist/ui/assets/{src-BQf5Kp1T.js → src-C5tBXKh_.js} +2 -2
- package/dist/ui/assets/{ssh-CMLjKc-C.js → ssh-CgmHQfC4.js} +1 -1
- package/dist/ui/assets/{sudo-CXCObhqu.js → sudo-EZzi8bkV.js} +1 -1
- package/dist/ui/assets/{supervisor-D09OiqeU.js → supervisor-CUgH4wzz.js} +1 -1
- package/dist/ui/assets/{sync-dialog-D-i17d_q.js → sync-dialog-D4gXHIgq.js} +1 -1
- package/dist/ui/assets/{transformers-env-C6K6s36u.js → transformers-env-Dm_MXKYG.js} +1 -1
- package/dist/ui/assets/{tray-leader-0GIP6SM2.js → tray-leader-BUSNq_Gl.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-TPEwLpwn.js → tray-leave-runtime-DEwFa7lI.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-Cjoy27SR.js → tray-sidecar-CKjdtBdU.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Du2ZH4V4.js → upgrade-detection-DZ35XKwJ.js} +1 -1
- package/dist/ui/assets/{voice-reply-Bcxvx3tf.js → voice-reply-CaYhBRdn.js} +1 -1
- package/dist/ui/assets/{wc-attach-x14l9M_B.js → wc-attach-C9rxulO7.js} +2 -2
- package/dist/ui/assets/{wc-browser-C2zfIRBm.js → wc-browser-6Ul-SEOZ.js} +1 -1
- package/dist/ui/assets/{wc-computers-D3xFwdpr.js → wc-computers-sDur6b13.js} +1 -1
- package/dist/ui/assets/{wc-detached-CAFjtMoz.js → wc-detached-9ariBwmo.js} +1 -1
- package/dist/ui/assets/{wc-extension-BR312mr2.js → wc-extension-CaXN-GTk.js} +2 -2
- package/dist/ui/assets/{wc-follower-DE7WQb_h.js → wc-follower-B1AULTlR.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-DFiPwVPW.js → wc-follower-oauth-L5HBJRH7.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-DjxUMudk.js → wc-gelatiere-CWTa_Fw1.js} +1 -1
- package/dist/ui/assets/{wc-live-aEmb1wYY.js → wc-live-CBQLeEAN.js} +5 -5
- package/dist/ui/assets/{wc-nav-DaPUjCh_.js → wc-nav-D-qT15R2.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CuZD2L7O.js → wc-onboarding-C30JW8KM.js} +2 -2
- package/dist/ui/assets/{wc-permissions-dmftxiz6.js → wc-permissions-Do9-WSJc.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-Dsw3z2er.js → wc-placeholder-B67JnHl5.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-B4EOYPwa.js → wc-secret-request-BaJdvYlQ.js} +1 -1
- package/dist/ui/assets/{wc-settings-BnIaH8l3.js → wc-settings-D8XLxkCT.js} +3 -3
- package/dist/ui/assets/{wc-shell-fIEX0Fr7.js → wc-shell-BOiMEPvK.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-BDxnaOQ1.js → wc-shortcut-config-B9YZlZ95.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-DUpa4cWM.js → wc-sprinkles-PlC39bUS.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-r0Cw8Qpa.js → wc-transcript-export-BLI_0Glp.js} +2 -2
- package/dist/ui/assets/{wc-tray-BY31Fswm.js → wc-tray-DWLWOtPX.js} +4 -4
- package/dist/ui/assets/welcome-detection-BXOFjfMt.js +1 -0
- package/dist/ui/assets/{whisper-session-DoB1nala.js → whisper-session-CoIpux2Q.js} +2 -2
- package/dist/ui/assets/{xai-grok-GgyXbIKx.js → xai-grok-B5uojC5R.js} +1 -1
- package/dist/ui/assets/{xai-grok-DUH1s394.js → xai-grok-Xb6FZ1vE.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/provider-store-access-BGpLWm69.js +0 -1
- package/dist/ui/assets/provider-store-access-BWuEjd9t.js +0 -1
- package/dist/ui/assets/slicc-version-BHbvdY0F.js +0 -1
- package/dist/ui/assets/welcome-detection-Cf37YU0q.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-
|
|
2
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{$ as r,A as i,C as a,D as o,E as s,I as c,O as l,P as u,S as d,T as f,a as p,at as m,b as h,c as g,ct as _,d as v,dt as y,ft as b,i as x,k as S,l as ee,n as te,nt as C,o as ne,pt as re,r as ie,t as ae,tt as oe,u as se,ut as ce,v as le,w as ue,x as de,y as fe}from"./wc-shell-fIEX0Fr7.js";import{d as pe,l as me,u as he}from"./core-DzRw0pz2.js";import{t as ge}from"./utf16-clip-CGL7omVm.js";import{a as _e}from"./feature-flags-DvsApnS-.js";import{r as ve,t as ye}from"./base64-ELzoYfwP.js";import{a as be,c as xe,d as Se,f as Ce,l as we,n as Te,o as Ee,s as De,u as Oe}from"./sprinkle-renderer-B9Kv4iHS.js";import{C as ke,H as Ae,T as je,V as Me,u as Ne}from"./account-store-D6Y7UkDR.js";import"./proxied-fetch-4VBgrEIu.js";import{n as Pe}from"./same-file-identity-OexpsaSD.js";import{n as Fe}from"./runtime-env-Dlaokqg1.js";import{t as Ie}from"./slugify-BYJ6QVAt.js";import{a as Le,i as Re,n as w,t as ze}from"./transcript-export-DP-r8eDz.js";import{_ as Be,a as Ve,c as T,f as He,g as Ue,h as E,i as We,l as Ge,m as D,n as Ke,o as qe,s as Je,t as Ye,u as Xe,v as O,x as Ze,y as Qe}from"./frozen-archive-writer-Ceh2la4q.js";import{d as $e,o as et,s as tt,t as nt}from"./api-endpoint-DuEQRZ4g.js";import{n as rt}from"./float-topology-C_iRKPQK.js";import"./secret-topology-hMRoGGjt.js";import{n as it}from"./secrets-bridge-client-D734Xx8G.js";import{t as at}from"./tool-ui-eSQ1g2I1.js";import{a as ot,c as st,l as ct,n as lt,p as ut,r as dt}from"./telemetry-B0sKnLBU.js";import{a as ft,i as pt,t as mt}from"./tray-follower-status-BAjnN7Ar.js";import{D as ht,N as gt,T as _t,b as vt,f as yt,j as bt,m as xt,p as St,s as Ct}from"./main-DfG-7olk.js";import{n as wt}from"./src-BWaKqLvQ.js";import{n as Tt,r as Et,t as Dt}from"./provider-budget-LCzMPlKv.js";import{t as Ot}from"./permissions-surface-registry-CilCRwhh.js";import{t as kt}from"./types-D8gIX-W-.js";import{n as At,r as jt}from"./hid-device-registry-B2R-0rNt.js";import"./browser-Chc3wUwj.js";import{a as Mt,i as Nt}from"./serial-port-registry-CCqklAEr.js";import{c as Pt,d as Ft,g as It,i as Lt,l as Rt,m as zt,n as Bt,o as Vt,p as Ht,r as Ut,t as Wt,u as Gt}from"./hid-operations-C97SZtrY.js";import{a as Kt,t as qt}from"./icons-BUdZEBvI.js";import{a as Jt,i as Yt}from"./usb-device-registry--JwKRTYp.js";import{f as Xt,i as Zt,l as Qt,s as $t,u as en}from"./usb-operations-v1mGAdRY.js";import{a as tn,i as nn,r as rn}from"./tray-leader-0GIP6SM2.js";import{a as an,c as on,f as sn,h as cn,i as ln,l as un,m as dn,n as fn,o as pn,s as mn,u as k}from"./record-DtD74Jn0.js";import{a as hn,o as gn,r as _n,s as vn,t as yn}from"./descriptor-1ECGTjSt.js";import{n as bn,t as A}from"./types-CFfBWsH5.js";import"./shared-DSEuryGJ.js";import{r as xn}from"./frozen-session-identity-BaOmOPkW.js";import{a as Sn,n as Cn,r as wn,t as Tn}from"./session-jsonl-CMk3OfCb.js";import{a as En,n as Dn,r as On}from"./theme-CwPIBqJE.js";import{a as kn,c as An,d as jn,i as Mn,l as Nn,n as Pn,r as Fn,s as In,u as Ln}from"./live-session-curation-SLge-cX1.js";import{_ as Rn,a as zn,d as Bn,f as Vn,g as Hn,h as Un,i as Wn,l as Gn,n as Kn,o as qn,p as Jn,r as Yn,u as Xn}from"./wc-unit-context-D5liISq3.js";var Zn=new Set([`summarized`,`fallback`]);function Qn(e){if(!A(e)||e===null||e.origin!==`agent-history`)return[];let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.message&&t.push(n.message);return t}async function $n(e,n={}){if(!A(e)||e===null)return[];if(e.origin===`ui-projection`){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return tr(t,e.markers)}let r=e.projectionPrefix??[],i=Qn(e);if(i.length===0)return tr([...r],e.markers);let{agentMessagesToChatMessages:a}=await t(async()=>{let{agentMessagesToChatMessages:e}=await import(`./wc-shell-fIEX0Fr7.js`).then(e=>e.lt);return{agentMessagesToChatMessages:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])),o=er(a(i,n),e.attachments);return tr([...r,...o],e.markers)}function er(e,t){if(!t?.length)return e;let n=[...t].sort((e,t)=>e.timestamp-t.timestamp),r=new Set;return e.map(e=>{if(e.role!==`user`||e.attachments?.length)return e;let t=e.content.trim(),i=n.findIndex((e,n)=>!r.has(n)&&e.body.trim()===t);return i<0?e:(r.add(i),{...e,attachments:n[i].attachments})})}function tr(e,t){let n=(t??[]).filter(e=>e.kind!==`compaction`||Zn.has(e.compaction.state));if(n.length===0)return e;let r=[...n].sort((e,t)=>e.timestamp-t.timestamp),i=[],a=0;for(let t of e){let e=nr(t);for(;a<r.length&&r[a].timestamp<=e;)i.push(rr(r[a++]));i.push(t)}for(;a<r.length;)i.push(rr(r[a++]));return i}function nr(e){let t=e.timestamp;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Date.parse(t);if(!Number.isNaN(e))return e}return-1/0}function rr(e){return e.kind===`error`?{id:e.id,role:`assistant`,content:e.text,timestamp:e.timestamp,error:!0}:{id:e.id,role:`assistant`,content:``,timestamp:e.timestamp,compaction:e.compaction}}var ir=e({CanonicalSessionReader:()=>sr,agentSessionFromRecord:()=>or,chatSessionFromRecord:()=>ar});async function ar(e){return{id:e.legacyKeys.chatSessionId,messages:await $n(e),createdAt:e.createdAt,updatedAt:e.updatedAt}}function or(e){return{id:e.workUnitId,messages:Qn(e),config:{},createdAt:e.createdAt,updatedAt:e.updatedAt}}var sr=class{store;constructor(e){this.store=e}async loadAgentSessions(){return(await this.latestPerUnit()).map(or)}async loadChatSessions(){return Promise.all((await this.latestPerUnit()).map(ar))}async latestPerUnit(){let e=new Map;for(let t of await this.store.loadAll()){let n=e.get(t.workUnitId);(!n||t.updatedAt>n.updatedAt)&&e.set(t.workUnitId,t)}return[...e.values()]}async loadRootChatSession(e){let t=await this.store.loadLatestInWorkspace(vn({parentJid:null,folder:e}).root);return t?ar(t):null}async load(e){return e.startsWith(`session-`)?this.loadRootChatSession(e.slice(8)):null}},cr=new Set([`scoop-notify`,`scoop-idle`,`scoop-wait`]);function lr(e){return`e${e}`}function ur(e){let t=[];for(let n of e){let e=fr(n),r=mr(n);if(e===`assistant`){let e=t.length,i=lr(e);t.push({id:i,seq:e,kind:`assistant`,timestamp:r,text:gr(n),message:n,model:hr(n)});for(let e of _r(n)){let n=t.length;t.push({id:lr(n),seq:n,kind:`tool-call`,timestamp:r,toolCallId:e.id,name:e.name,assistantEntryId:i})}continue}if(e===`toolResult`){let e=n,i=t.length;t.push({id:lr(i),seq:i,kind:`tool-result`,timestamp:r,text:gr(n),message:n,toolCallId:e.toolCallId??``,isError:e.isError});continue}let i=gr(n),a=e===`user`?dr(i):null,o=t.length,s=lr(o);a===null?t.push({id:s,seq:o,kind:`user`,timestamp:r,text:i,message:n}):cr.has(a)?t.push({id:s,seq:o,kind:`child-result`,timestamp:r,text:i,message:n,channel:a}):t.push({id:s,seq:o,kind:`external-event`,timestamp:r,text:i,message:n,channel:a})}return t}function dr(e){for(let t of b(e)){let e=(t.sender?y(t.sender):null)??ce(t.body);if(e)return e}return null}function fr(e){return e.role??``}function pr(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Date.parse(e);return Number.isNaN(t)?0:t}return e instanceof Date?e.getTime():0}function mr(e){return pr(e.timestamp)}function hr(e){let t=e.model;return typeof t==`string`?t:void 0}function gr(e){let t=e.content;if(typeof t==`string`)return t;if(!Array.isArray(t))return``;let n=[];for(let e of t)e?.type===`text`&&n.push(e.text);return n.join(``)}function _r(e){let t=e.content;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(e?.type!==`toolCall`)continue;let t=e;n.push({id:t.id??``,name:t.name??``})}return n}var vr=e({CONVERSATION_DB_NAME:()=>yr,WorkUnitConversationStore:()=>xr}),j=n(`work-unit-conversation`),yr=`slicc-work-units`,br=1,M=`conversations`,N=`migrations`,xr=class{dbPromise=null;dbName;writeChains=new Map;constructor(e={}){this.dbName=e.dbName??`slicc-work-units`}async load(e){let t=await this.read(e);return t.status===`ok`?t.record:null}async read(e){try{let t=await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).get(e));return t?A(t)?Array.isArray(t.entries)?{status:`ok`,record:t}:(j.warn(`Conversation record has no entry list`,{key:e}),{status:`malformed`,reason:`entries is not a list`}):(j.warn(`Ignoring conversation record from a newer schema`,{key:e,version:t.version}),{status:`incompatible`,version:t.version}):{status:`absent`}}catch(t){return j.warn(`Conversation record read failed`,{key:e,error:F(t)}),{status:`error`,reason:F(t)}}}async save(e){let t=e.version>2?e.version:bn(e),n={...e,version:t},r=(await this.getDb()).transaction(M,`readwrite`);return r.objectStore(M).put(n),await Or(r),n}delete(e){return this.serialize(e,async()=>{try{let t=(await this.getDb()).transaction(M,`readwrite`);t.objectStore(M).delete(e),await Or(t)}catch(t){j.warn(`Conversation record delete failed`,{key:e,error:F(t)})}})}async rekey(e,t){if(e!==t.key)try{let n=await this.read(e);if(n.status!==`ok`)return;let r=await this.read(t.key);if(r.status===`incompatible`||r.status===`error`){j.warn(`Conversation rekey refused: target is not writable`,{fromKey:e,toKey:t.key,status:r.status});return}let i=Date.now();await this.save({...n.record,key:t.key,workUnitId:t.workUnitId,workspaceId:t.workspaceId,folder:t.folder,legacyKeys:t.legacyKeys,updatedAt:i}),await this.delete(e)}catch(n){j.warn(`Conversation rekey failed`,{fromKey:e,toKey:t.key,error:F(n)})}}async loadAll(){try{return(await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAll())).filter(e=>A(e)&&Array.isArray(e.entries))}catch(e){return j.warn(`Conversation record listing failed`,{error:F(e)}),[]}}async loadLatestInWorkspace(e){try{let t=`${e}::`,n=await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAll(IDBKeyRange.bound(t,`${t}\uffff`))),r=null;for(let e of n)!A(e)||!Array.isArray(e.entries)||(!r||e.updatedAt>r.updatedAt)&&(r=e);return r}catch(t){return j.warn(`Conversation workspace lookup failed`,{workspaceId:e,error:F(t)}),null}}async listKeys(){try{return(await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAllKeys())).map(String)}catch(e){return j.warn(`Conversation key listing failed`,{error:F(e)}),[]}}async syncAgentMessages(e,t,n={}){let r=n.now??Date.now(),i=ur(t);return this.serialize(e.key,()=>this.ingestEntries(e,i,n,r))}async ingestEntries(e,t,n,r){try{let i=await this.read(e.key);if(i.status===`incompatible`||i.status===`error`)return null;let a=i.status===`ok`?i.record:null,o=Sr(a,t,e,`agent-history`,{createdAt:n.createdAt??r,now:r});return o?await this.save(o):a}catch(t){return j.warn(`Conversation record write failed`,{key:e.key,error:F(t)}),null}}async putMarker(e,t,n={}){return this.withRecord(e,n.createWith,e=>{let n=(e.markers??[]).filter(e=>e.id!==t.id);return n.push(t),n.sort((e,t)=>e.timestamp-t.timestamp),{...e,markers:n.slice(-64)}})}async putAttachments(e,t){if(t.length===0)return!1;let n=new Set(t.map(e=>e.id));return this.withRecord(e.key,e,e=>({...e,attachments:[...(e.attachments??[]).filter(e=>!n.has(e.id)),...t].sort((e,t)=>e.timestamp-t.timestamp).slice(-256)}))}async deleteMarker(e,t){return this.withRecord(e,void 0,e=>{let n=(e.markers??[]).filter(e=>e.id!==t);return n.length===(e.markers?.length??0)?null:{...e,markers:n}})}withRecord(e,t,n){return this.serialize(e,()=>this.mutateRecord(e,t,n))}async mutateRecord(e,t,n){try{let r=await this.read(e),i=r.status===`ok`?r.record:r.status===`absent`&&t?Cr(t,Date.now()):null;if(!i)return!1;let a=n(i);return a?(await this.save({...a,updatedAt:Date.now()}),!0):!1}catch(t){return j.warn(`Conversation marker write failed`,{key:e,error:F(t)}),!1}}serialize(e,t){let n=(this.writeChains.get(e)??Promise.resolve()).then(t,t),r=n.then(()=>void 0,()=>void 0);return this.writeChains.set(e,r),r.then(()=>{this.writeChains.get(e)===r&&this.writeChains.delete(e)}),n}async getMigrationState(e){try{return await P((await this.getDb()).transaction(N,`readonly`).objectStore(N).get(e))??null}catch(t){return j.warn(`Migration state read failed`,{id:e,error:F(t)}),null}}async putMigrationState(e){try{let t=(await this.getDb()).transaction(N,`readwrite`);t.objectStore(N).put(e),await Or(t)}catch(t){j.warn(`Migration state write failed`,{id:e.id,error:F(t)})}}async clearAll(){let e=(await this.getDb()).transaction([M,N],`readwrite`);e.objectStore(M).clear(),e.objectStore(N).clear(),await Or(e)}getDb(){return this.dbPromise||(this.dbPromise=Dr(this.dbName).then(e=>(e.onversionchange=()=>{e.close(),this.dbPromise=null},e.onclose=()=>{this.dbPromise=null},e)),this.dbPromise.catch(()=>{this.dbPromise=null})),this.dbPromise}};function Sr(e,t,n,r,i){if(!e)return t.length===0?null:{key:n.key,version:2,workUnitId:n.workUnitId,workspaceId:n.workspaceId,folder:n.folder,origin:r,entries:t,createdAt:i.createdAt,updatedAt:i.now,legacyKeys:n.legacyKeys};if(e.origin===`ui-projection`&&r===`agent-history`)return t.length===0?null:{...e,version:2,origin:r,entries:t,projectionPrefix:[...e.projectionPrefix??[],...wr(e)],updatedAt:i.now,legacyKeys:n.legacyKeys};let a=e.entries;if(t.length===a.length&&Tr(a,t))return null;let o=t.length>a.length&&Tr(a,t);return{...e,version:2,origin:r,entries:t,updatedAt:i.now,rewrites:o?e.rewrites:(e.rewrites??0)+1,legacyKeys:n.legacyKeys}}function Cr(e,t){return{key:e.key,version:2,workUnitId:e.workUnitId,workspaceId:e.workspaceId,folder:e.folder,origin:`agent-history`,entries:[],createdAt:t,updatedAt:t,legacyKeys:e.legacyKeys}}function wr(e){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return t}function Tr(e,t){if(e.length>t.length)return!1;for(let n=0;n<e.length;n++)if(!Er(e[n],t[n]))return!1;return!0}function Er(e,t){return e.kind!==t.kind||e.seq!==t.seq?!1:e.kind===`tool-call`&&t.kind===`tool-call`?e.toolCallId===t.toolCallId&&e.name===t.name:(`text`in e?e.text:``)===(`text`in t?t.text:``)}function Dr(e){return new Promise((t,n)=>{let r=indexedDB.open(e,br);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(M)||e.createObjectStore(M,{keyPath:`key`}),e.objectStoreNames.contains(N)||e.createObjectStore(N,{keyPath:`id`})},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function P(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Or(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function F(e){return e instanceof Error?e.message:String(e)}var kr=e({getTranscriptExportService:()=>Mr,registerTranscriptExportService:()=>jr}),Ar=null;function jr(e){return Ar=e,()=>{Ar===e&&(Ar=null)}}function Mr(){if(!Ar)throw new w(`session-not-found`);return Ar}var Nr=e({broadcastToDips:()=>Zr,disposeDips:()=>Si,handleDipPickerAction:()=>Ci,hydrateDips:()=>xi,mountDip:()=>B,setDipExecHandler:()=>$r}),Pr=Fe();t(()=>import(`./screen-share-approval-live-D388fVD9.js`).then(e=>{e.listenScreenShareApprovalChannel()}),[]);function Fr(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=e.filters;return Array.isArray(t)?t:[]}async function Ir(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await zr(e,!0,t);if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);if(n===null)throw Error(`VFS read failed: ${e}`);return typeof n==`string`?n:new TextDecoder().decode(n)}var Lr=null;function Rr(){if(Lr)return Lr;if(typeof BroadcastChannel>`u`)return null;try{Lr=new BroadcastChannel(`preview-vfs`)}catch{return null}return Lr}async function zr(e,t,n){let r=Rr();if(!r)return null;let i=`dip-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(a=>{let o=!1,s=()=>{r.removeEventListener(`message`,c),n?.removeEventListener(`abort`,l)},c=e=>{if(!o&&e.data?.type===`preview-vfs-response`&&e.data.id===i){if(o=!0,s(),e.data.error){a(null);return}a(e.data.content??null)}},l=()=>{o||(o=!0,s(),a(null))};r.addEventListener(`message`,c),n?.addEventListener(`abort`,l),setTimeout(()=>{o||(o=!0,s(),a(null))},5e3),r.postMessage({type:`preview-vfs-read`,id:i,path:e,asText:t})})}var Br=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],Vr=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function Hr(e){return Br.some(t=>e.startsWith(t))}function Ur(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:Vr.some(t=>e.startsWith(t))}var I=new WeakSet,Wr=`,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shell-BOiMEPvK.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-DvMtuAxT.js","assets/core-DzRw0pz2.js","assets/compat-0YnuwvMn.js","assets/models-D9KYIFyv.js","assets/diagnostics-B-5VkVir.js","assets/env-api-keys-BMbk-OAv.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-C88RzzVZ.js","assets/azure-openai-config--zABV6W_.js","assets/utf16-clip-CGL7omVm.js","assets/feature-flags-DvsApnS-.js","assets/proxied-fetch-4VBgrEIu.js","assets/proxy-error-BSFYY7jj.js","assets/api-endpoint-DuEQRZ4g.js","assets/runtime-env-Dlaokqg1.js","assets/secret-topology-hMRoGGjt.js","assets/float-topology-C_iRKPQK.js","assets/secrets-bridge-client-D734Xx8G.js","assets/port-bridge-client-B-gpiOVR.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-q8JQTtid.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-CH0N1Hn6.js","assets/stored-accounts-ChNHYF68.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/renamed-providers-DDe6My59.js","assets/same-file-identity-OexpsaSD.js","assets/telemetry-B0sKnLBU.js","assets/types-D8gIX-W-.js","assets/icons-BUdZEBvI.js","assets/wc-shell-WkeczD9x.css","assets/mount-picker-popup-qcWGbpG5.js","assets/picker-popup-sQtXmfAo.js","assets/usb-picker-O-2gFMNl.js","assets/serial-picker-BQF_Eitc.js","assets/hid-picker-sFJ8vzUj.js","assets/usb-device-registry--JwKRTYp.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-device-registry-B2R-0rNt.js","assets/frozen-archive-writer-D8Na80jS.js","assets/slugify-BYJ6QVAt.js","assets/frozen-session-identity-bvyrPA_v.js","assets/quick-llm-95xYFP4C.js","assets/llm-session-id-bZQs6gBN.js","assets/session-jsonl-D4p25wJo.js","assets/main-CraGyWI5.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/wc-placeholder-B67JnHl5.js","assets/wc-attach-C9rxulO7.js","assets/permissions-surface-registry-CilCRwhh.js","assets/frozen-session-delete-DgFaw8dO.js","assets/live-session-curation-Kj71P6dK.js","assets/record-DtD74Jn0.js","assets/descriptor-1ECGTjSt.js","assets/thinking-level-DCJktR5U.js","assets/wc-gelatiere-CWTa_Fw1.js","assets/new-session-ERMxClkz.js","assets/tray-leader-BUSNq_Gl.js","assets/mount-table-store-dY2IfQ5S.js","assets/legacy-styles-B3nS5QUo.js","assets/soundscape-CQ9qZd-p.js","assets/voice-reply-CaYhBRdn.js","assets/speak-CSIK-Yvk.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-Dm_MXKYG.js","assets/shared-DSEuryGJ.js","assets/remote-vfs-client-Cs1yUtQm.js","assets/writable-vfs-client-CQe6oZ75.js","assets/wc-onboarding-C30JW8KM.js","assets/wc-browser-6Ul-SEOZ.js","assets/slicc-app-url-BKHBBuTR.js","assets/tab-teleport-C8QSKgl0.js","assets/teleport-storage-CyYkSZfJ.js","assets/wc-computers-sDur6b13.js","assets/scale-B8PGb3fG.js","assets/remote-terminal-view-CbmgWziL.js","assets/browser-Chc3wUwj.js","assets/usb-operations-v1mGAdRY.js","assets/terminal-session-client-DmE-iBjP.js","assets/secret-env-z9SReONx.js","assets/wc-permissions-Do9-WSJc.js","assets/wc-permissions-providers-DwX67umy.js","assets/wc-secret-request-BaJdvYlQ.js","assets/secret-request-registry-DrOMKR1H.js","assets/theme-CwPIBqJE.js","assets/theme-engine-ZV7CeqWw.js","assets/panelize-shell-BbOMOerL.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-shortcut-config-B9YZlZ95.js","assets/remote-sprinkle-vfs-UzNBy5VJ.js","assets/bounded-walk-BjxKWNqp.js","assets/path-utils-DNJG-zQf.js","assets/wc-sprinkles-PlC39bUS.js","assets/wc-unit-context-D5liISq3.js","assets/agent-panels-CqdhYmst.js","assets/apply-layout-e_T1KE6y.js","assets/wc-tray-DWLWOtPX.js","assets/transcript-export-DP-r8eDz.js","assets/wc-follower-oauth-L5HBJRH7.js","assets/sprinkle-renderer-BUkonV7E.js","assets/hid-operations-C97SZtrY.js","assets/pending-request-table-k-D7ZZsL.js","assets/export-spool-CuNzzI8a.js","assets/src-BWaKqLvQ.js","assets/panel-rpc-sLZo8PD-.js","assets/types-DSxCdZw6.js","assets/synthetic-cdp-transport-OUVdC4zy.js","assets/sprinkle-instances-B8n7h-oP.js","assets/wc-transcript-export-BLI_0Glp.js","assets/wc-nav-D-qT15R2.js","assets/composer-speech--hKCVvOJ.js","assets/whisper-session-CoIpux2Q.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{$ as r,A as i,C as a,D as o,E as s,I as c,O as l,P as u,S as d,T as f,a as p,at as m,b as h,c as g,ct as _,d as v,dt as y,ft as b,i as x,k as S,l as ee,n as te,nt as C,o as ne,pt as re,r as ie,t as ae,tt as oe,u as se,ut as ce,v as le,w as ue,x as de,y as fe}from"./wc-shell-BOiMEPvK.js";import{d as pe,l as me,u as he}from"./core-DzRw0pz2.js";import{t as ge}from"./utf16-clip-CGL7omVm.js";import{a as _e}from"./feature-flags-DvsApnS-.js";import{r as ve,t as ye}from"./base64-ELzoYfwP.js";import{a as be,c as xe,d as Se,f as Ce,l as we,n as Te,o as Ee,s as De,u as Oe}from"./sprinkle-renderer-BUkonV7E.js";import{C as ke,H as Ae,T as je,V as Me,u as Ne}from"./account-store-DvMtuAxT.js";import"./proxied-fetch-4VBgrEIu.js";import{n as Pe}from"./same-file-identity-OexpsaSD.js";import{n as Fe}from"./runtime-env-Dlaokqg1.js";import{t as Ie}from"./slugify-BYJ6QVAt.js";import{a as Le,i as Re,n as w,t as ze}from"./transcript-export-DP-r8eDz.js";import{_ as Be,a as Ve,c as T,f as He,g as Ue,h as E,i as We,l as Ge,m as D,n as Ke,o as qe,s as Je,t as Ye,u as Xe,v as O,x as Ze,y as Qe}from"./frozen-archive-writer-D8Na80jS.js";import{d as $e,o as et,s as tt,t as nt}from"./api-endpoint-DuEQRZ4g.js";import{n as rt}from"./float-topology-C_iRKPQK.js";import"./secret-topology-hMRoGGjt.js";import{n as it}from"./secrets-bridge-client-D734Xx8G.js";import{t as at}from"./tool-ui-eSQ1g2I1.js";import{a as ot,c as st,l as ct,n as lt,p as ut,r as dt}from"./telemetry-B0sKnLBU.js";import{a as ft,i as pt,t as mt}from"./tray-follower-status-BAjnN7Ar.js";import{D as ht,N as gt,T as _t,b as vt,f as yt,j as bt,m as xt,p as St,s as Ct}from"./main-CraGyWI5.js";import{n as wt}from"./src-BWaKqLvQ.js";import{n as Tt,r as Et,t as Dt}from"./provider-budget-LCzMPlKv.js";import{t as Ot}from"./permissions-surface-registry-CilCRwhh.js";import{t as kt}from"./types-D8gIX-W-.js";import{n as At,r as jt}from"./hid-device-registry-B2R-0rNt.js";import"./browser-Chc3wUwj.js";import{a as Mt,i as Nt}from"./serial-port-registry-CCqklAEr.js";import{c as Pt,d as Ft,g as It,i as Lt,l as Rt,m as zt,n as Bt,o as Vt,p as Ht,r as Ut,t as Wt,u as Gt}from"./hid-operations-C97SZtrY.js";import{a as Kt,t as qt}from"./icons-BUdZEBvI.js";import{a as Jt,i as Yt}from"./usb-device-registry--JwKRTYp.js";import{f as Xt,i as Zt,l as Qt,s as $t,u as en}from"./usb-operations-v1mGAdRY.js";import{a as tn,i as nn,r as rn}from"./tray-leader-BUSNq_Gl.js";import{a as an,c as on,f as sn,h as cn,i as ln,l as un,m as dn,n as fn,o as pn,s as mn,u as k}from"./record-DtD74Jn0.js";import{a as hn,o as gn,r as _n,s as vn,t as yn}from"./descriptor-1ECGTjSt.js";import{n as bn,t as A}from"./types-CFfBWsH5.js";import"./shared-DSEuryGJ.js";import{r as xn}from"./frozen-session-identity-bvyrPA_v.js";import{a as Sn,n as Cn,r as wn,t as Tn}from"./session-jsonl-D4p25wJo.js";import{a as En,n as Dn,r as On}from"./theme-CwPIBqJE.js";import{a as kn,c as An,d as jn,i as Mn,l as Nn,n as Pn,r as Fn,s as In,u as Ln}from"./live-session-curation-Kj71P6dK.js";import{_ as Rn,a as zn,d as Bn,f as Vn,g as Hn,h as Un,i as Wn,l as Gn,n as Kn,o as qn,p as Jn,r as Yn,u as Xn}from"./wc-unit-context-D5liISq3.js";var Zn=new Set([`summarized`,`fallback`]);function Qn(e){if(!A(e)||e===null||e.origin!==`agent-history`)return[];let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.message&&t.push(n.message);return t}async function $n(e,n={}){if(!A(e)||e===null)return[];if(e.origin===`ui-projection`){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return tr(t,e.markers)}let r=e.projectionPrefix??[],i=Qn(e);if(i.length===0)return tr([...r],e.markers);let{agentMessagesToChatMessages:a}=await t(async()=>{let{agentMessagesToChatMessages:e}=await import(`./wc-shell-BOiMEPvK.js`).then(e=>e.lt);return{agentMessagesToChatMessages:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])),o=er(a(i,n),e.attachments);return tr([...r,...o],e.markers)}function er(e,t){if(!t?.length)return e;let n=[...t].sort((e,t)=>e.timestamp-t.timestamp),r=new Set;return e.map(e=>{if(e.role!==`user`||e.attachments?.length)return e;let t=e.content.trim(),i=n.findIndex((e,n)=>!r.has(n)&&e.body.trim()===t);return i<0?e:(r.add(i),{...e,attachments:n[i].attachments})})}function tr(e,t){let n=(t??[]).filter(e=>e.kind!==`compaction`||Zn.has(e.compaction.state));if(n.length===0)return e;let r=[...n].sort((e,t)=>e.timestamp-t.timestamp),i=[],a=0;for(let t of e){let e=nr(t);for(;a<r.length&&r[a].timestamp<=e;)i.push(rr(r[a++]));i.push(t)}for(;a<r.length;)i.push(rr(r[a++]));return i}function nr(e){let t=e.timestamp;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Date.parse(t);if(!Number.isNaN(e))return e}return-1/0}function rr(e){return e.kind===`error`?{id:e.id,role:`assistant`,content:e.text,timestamp:e.timestamp,error:!0}:{id:e.id,role:`assistant`,content:``,timestamp:e.timestamp,compaction:e.compaction}}var ir=e({CanonicalSessionReader:()=>sr,agentSessionFromRecord:()=>or,chatSessionFromRecord:()=>ar});async function ar(e){return{id:e.legacyKeys.chatSessionId,messages:await $n(e),createdAt:e.createdAt,updatedAt:e.updatedAt}}function or(e){return{id:e.workUnitId,messages:Qn(e),config:{},createdAt:e.createdAt,updatedAt:e.updatedAt}}var sr=class{store;constructor(e){this.store=e}async loadAgentSessions(){return(await this.latestPerUnit()).map(or)}async loadChatSessions(){return Promise.all((await this.latestPerUnit()).map(ar))}async latestPerUnit(){let e=new Map;for(let t of await this.store.loadAll()){let n=e.get(t.workUnitId);(!n||t.updatedAt>n.updatedAt)&&e.set(t.workUnitId,t)}return[...e.values()]}async loadRootChatSession(e){let t=await this.store.loadLatestInWorkspace(vn({parentJid:null,folder:e}).root);return t?ar(t):null}async load(e){return e.startsWith(`session-`)?this.loadRootChatSession(e.slice(8)):null}},cr=new Set([`scoop-notify`,`scoop-idle`,`scoop-wait`]);function lr(e){return`e${e}`}function ur(e){let t=[];for(let n of e){let e=fr(n),r=mr(n);if(e===`assistant`){let e=t.length,i=lr(e);t.push({id:i,seq:e,kind:`assistant`,timestamp:r,text:gr(n),message:n,model:hr(n)});for(let e of _r(n)){let n=t.length;t.push({id:lr(n),seq:n,kind:`tool-call`,timestamp:r,toolCallId:e.id,name:e.name,assistantEntryId:i})}continue}if(e===`toolResult`){let e=n,i=t.length;t.push({id:lr(i),seq:i,kind:`tool-result`,timestamp:r,text:gr(n),message:n,toolCallId:e.toolCallId??``,isError:e.isError});continue}let i=gr(n),a=e===`user`?dr(i):null,o=t.length,s=lr(o);a===null?t.push({id:s,seq:o,kind:`user`,timestamp:r,text:i,message:n}):cr.has(a)?t.push({id:s,seq:o,kind:`child-result`,timestamp:r,text:i,message:n,channel:a}):t.push({id:s,seq:o,kind:`external-event`,timestamp:r,text:i,message:n,channel:a})}return t}function dr(e){for(let t of b(e)){let e=(t.sender?y(t.sender):null)??ce(t.body);if(e)return e}return null}function fr(e){return e.role??``}function pr(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Date.parse(e);return Number.isNaN(t)?0:t}return e instanceof Date?e.getTime():0}function mr(e){return pr(e.timestamp)}function hr(e){let t=e.model;return typeof t==`string`?t:void 0}function gr(e){let t=e.content;if(typeof t==`string`)return t;if(!Array.isArray(t))return``;let n=[];for(let e of t)e?.type===`text`&&n.push(e.text);return n.join(``)}function _r(e){let t=e.content;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(e?.type!==`toolCall`)continue;let t=e;n.push({id:t.id??``,name:t.name??``})}return n}var vr=e({CONVERSATION_DB_NAME:()=>yr,WorkUnitConversationStore:()=>xr}),j=n(`work-unit-conversation`),yr=`slicc-work-units`,br=1,M=`conversations`,N=`migrations`,xr=class{dbPromise=null;dbName;writeChains=new Map;constructor(e={}){this.dbName=e.dbName??`slicc-work-units`}async load(e){let t=await this.read(e);return t.status===`ok`?t.record:null}async read(e){try{let t=await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).get(e));return t?A(t)?Array.isArray(t.entries)?{status:`ok`,record:t}:(j.warn(`Conversation record has no entry list`,{key:e}),{status:`malformed`,reason:`entries is not a list`}):(j.warn(`Ignoring conversation record from a newer schema`,{key:e,version:t.version}),{status:`incompatible`,version:t.version}):{status:`absent`}}catch(t){return j.warn(`Conversation record read failed`,{key:e,error:F(t)}),{status:`error`,reason:F(t)}}}async save(e){let t=e.version>2?e.version:bn(e),n={...e,version:t},r=(await this.getDb()).transaction(M,`readwrite`);return r.objectStore(M).put(n),await Or(r),n}delete(e){return this.serialize(e,async()=>{try{let t=(await this.getDb()).transaction(M,`readwrite`);t.objectStore(M).delete(e),await Or(t)}catch(t){j.warn(`Conversation record delete failed`,{key:e,error:F(t)})}})}async rekey(e,t){if(e!==t.key)try{let n=await this.read(e);if(n.status!==`ok`)return;let r=await this.read(t.key);if(r.status===`incompatible`||r.status===`error`){j.warn(`Conversation rekey refused: target is not writable`,{fromKey:e,toKey:t.key,status:r.status});return}let i=Date.now();await this.save({...n.record,key:t.key,workUnitId:t.workUnitId,workspaceId:t.workspaceId,folder:t.folder,legacyKeys:t.legacyKeys,updatedAt:i}),await this.delete(e)}catch(n){j.warn(`Conversation rekey failed`,{fromKey:e,toKey:t.key,error:F(n)})}}async loadAll(){try{return(await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAll())).filter(e=>A(e)&&Array.isArray(e.entries))}catch(e){return j.warn(`Conversation record listing failed`,{error:F(e)}),[]}}async loadLatestInWorkspace(e){try{let t=`${e}::`,n=await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAll(IDBKeyRange.bound(t,`${t}\uffff`))),r=null;for(let e of n)!A(e)||!Array.isArray(e.entries)||(!r||e.updatedAt>r.updatedAt)&&(r=e);return r}catch(t){return j.warn(`Conversation workspace lookup failed`,{workspaceId:e,error:F(t)}),null}}async listKeys(){try{return(await P((await this.getDb()).transaction(M,`readonly`).objectStore(M).getAllKeys())).map(String)}catch(e){return j.warn(`Conversation key listing failed`,{error:F(e)}),[]}}async syncAgentMessages(e,t,n={}){let r=n.now??Date.now(),i=ur(t);return this.serialize(e.key,()=>this.ingestEntries(e,i,n,r))}async ingestEntries(e,t,n,r){try{let i=await this.read(e.key);if(i.status===`incompatible`||i.status===`error`)return null;let a=i.status===`ok`?i.record:null,o=Sr(a,t,e,`agent-history`,{createdAt:n.createdAt??r,now:r});return o?await this.save(o):a}catch(t){return j.warn(`Conversation record write failed`,{key:e.key,error:F(t)}),null}}async putMarker(e,t,n={}){return this.withRecord(e,n.createWith,e=>{let n=(e.markers??[]).filter(e=>e.id!==t.id);return n.push(t),n.sort((e,t)=>e.timestamp-t.timestamp),{...e,markers:n.slice(-64)}})}async putAttachments(e,t){if(t.length===0)return!1;let n=new Set(t.map(e=>e.id));return this.withRecord(e.key,e,e=>({...e,attachments:[...(e.attachments??[]).filter(e=>!n.has(e.id)),...t].sort((e,t)=>e.timestamp-t.timestamp).slice(-256)}))}async deleteMarker(e,t){return this.withRecord(e,void 0,e=>{let n=(e.markers??[]).filter(e=>e.id!==t);return n.length===(e.markers?.length??0)?null:{...e,markers:n}})}withRecord(e,t,n){return this.serialize(e,()=>this.mutateRecord(e,t,n))}async mutateRecord(e,t,n){try{let r=await this.read(e),i=r.status===`ok`?r.record:r.status===`absent`&&t?Cr(t,Date.now()):null;if(!i)return!1;let a=n(i);return a?(await this.save({...a,updatedAt:Date.now()}),!0):!1}catch(t){return j.warn(`Conversation marker write failed`,{key:e,error:F(t)}),!1}}serialize(e,t){let n=(this.writeChains.get(e)??Promise.resolve()).then(t,t),r=n.then(()=>void 0,()=>void 0);return this.writeChains.set(e,r),r.then(()=>{this.writeChains.get(e)===r&&this.writeChains.delete(e)}),n}async getMigrationState(e){try{return await P((await this.getDb()).transaction(N,`readonly`).objectStore(N).get(e))??null}catch(t){return j.warn(`Migration state read failed`,{id:e,error:F(t)}),null}}async putMigrationState(e){try{let t=(await this.getDb()).transaction(N,`readwrite`);t.objectStore(N).put(e),await Or(t)}catch(t){j.warn(`Migration state write failed`,{id:e.id,error:F(t)})}}async clearAll(){let e=(await this.getDb()).transaction([M,N],`readwrite`);e.objectStore(M).clear(),e.objectStore(N).clear(),await Or(e)}getDb(){return this.dbPromise||(this.dbPromise=Dr(this.dbName).then(e=>(e.onversionchange=()=>{e.close(),this.dbPromise=null},e.onclose=()=>{this.dbPromise=null},e)),this.dbPromise.catch(()=>{this.dbPromise=null})),this.dbPromise}};function Sr(e,t,n,r,i){if(!e)return t.length===0?null:{key:n.key,version:2,workUnitId:n.workUnitId,workspaceId:n.workspaceId,folder:n.folder,origin:r,entries:t,createdAt:i.createdAt,updatedAt:i.now,legacyKeys:n.legacyKeys};if(e.origin===`ui-projection`&&r===`agent-history`)return t.length===0?null:{...e,version:2,origin:r,entries:t,projectionPrefix:[...e.projectionPrefix??[],...wr(e)],updatedAt:i.now,legacyKeys:n.legacyKeys};let a=e.entries;if(t.length===a.length&&Tr(a,t))return null;let o=t.length>a.length&&Tr(a,t);return{...e,version:2,origin:r,entries:t,updatedAt:i.now,rewrites:o?e.rewrites:(e.rewrites??0)+1,legacyKeys:n.legacyKeys}}function Cr(e,t){return{key:e.key,version:2,workUnitId:e.workUnitId,workspaceId:e.workspaceId,folder:e.folder,origin:`agent-history`,entries:[],createdAt:t,updatedAt:t,legacyKeys:e.legacyKeys}}function wr(e){let t=[];for(let n of e.entries)n.kind!==`tool-call`&&n.chat&&t.push(n.chat);return t}function Tr(e,t){if(e.length>t.length)return!1;for(let n=0;n<e.length;n++)if(!Er(e[n],t[n]))return!1;return!0}function Er(e,t){return e.kind!==t.kind||e.seq!==t.seq?!1:e.kind===`tool-call`&&t.kind===`tool-call`?e.toolCallId===t.toolCallId&&e.name===t.name:(`text`in e?e.text:``)===(`text`in t?t.text:``)}function Dr(e){return new Promise((t,n)=>{let r=indexedDB.open(e,br);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(M)||e.createObjectStore(M,{keyPath:`key`}),e.objectStoreNames.contains(N)||e.createObjectStore(N,{keyPath:`id`})},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function P(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Or(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function F(e){return e instanceof Error?e.message:String(e)}var kr=e({getTranscriptExportService:()=>Mr,registerTranscriptExportService:()=>jr}),Ar=null;function jr(e){return Ar=e,()=>{Ar===e&&(Ar=null)}}function Mr(){if(!Ar)throw new w(`session-not-found`);return Ar}var Nr=e({broadcastToDips:()=>Zr,disposeDips:()=>Si,handleDipPickerAction:()=>Ci,hydrateDips:()=>xi,mountDip:()=>B,setDipExecHandler:()=>$r}),Pr=Fe();t(()=>import(`./screen-share-approval-live-D388fVD9.js`).then(e=>{e.listenScreenShareApprovalChannel()}),[]);function Fr(e){if(typeof e!=`object`||!e||Array.isArray(e))return[];let t=e.filters;return Array.isArray(t)?t:[]}async function Ir(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await zr(e,!0,t);if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);if(n===null)throw Error(`VFS read failed: ${e}`);return typeof n==`string`?n:new TextDecoder().decode(n)}var Lr=null;function Rr(){if(Lr)return Lr;if(typeof BroadcastChannel>`u`)return null;try{Lr=new BroadcastChannel(`preview-vfs`)}catch{return null}return Lr}async function zr(e,t,n){let r=Rr();if(!r)return null;let i=`dip-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise(a=>{let o=!1,s=()=>{r.removeEventListener(`message`,c),n?.removeEventListener(`abort`,l)},c=e=>{if(!o&&e.data?.type===`preview-vfs-response`&&e.data.id===i){if(o=!0,s(),e.data.error){a(null);return}a(e.data.content??null)}},l=()=>{o||(o=!0,s(),a(null))};r.addEventListener(`message`,c),n?.addEventListener(`abort`,l),setTimeout(()=>{o||(o=!0,s(),a(null))},5e3),r.postMessage({type:`preview-vfs-read`,id:i,path:e,asText:t})})}var Br=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],Vr=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function Hr(e){return Br.some(t=>e.startsWith(t))}function Ur(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:Vr.some(t=>e.startsWith(t))}var I=new WeakSet,Wr=`,
|
|
3
3
|
exec: Object.assign(function(cmd) {
|
|
4
4
|
return _vfsCall('dip-exec', { cmd: cmd }, function(m) { return m.result; });
|
|
5
5
|
}, { spawn: function(argv) {
|
|
@@ -238,11 +238,11 @@ ${o?`<script src="/slicc-diff.js"><\/script>`:``}
|
|
|
238
238
|
<script src="/lucide-icons.js"><\/script>
|
|
239
239
|
</head>
|
|
240
240
|
<body class="sprinkle-inline">${e}</body></html>`}var L=new Set;function Zr(e){if(typeof e?.type!=`string`||e.type.indexOf(`slicc-`)!==0)throw Error(`broadcastToDips: payload.type must start with 'slicc-'`);for(let t of L)try{t.postMessage(e,`*`)}catch{}}var Qr;function $r(e){Qr=e}function R(e){return e.length===0?`''`:`'${e.replace(/'/g,`'\\''`)}'`}function ei(e,t){let n=t?.cwd??`.`,r=t?.allowedCommands??`*`,i=[`agent`];return t?.model&&i.push(`--model`,R(t.model)),t?.thinking&&i.push(`--thinking`,R(t.thinking)),t?.readOnly&&i.push(`--read-only`,R(t.readOnly)),i.push(R(n),R(r),R(e)),i.join(` `)}async function ti(e){if(!Qr)return{stdout:``,stderr:`exec: shell bridge not available
|
|
241
|
-
`,exitCode:127};try{return await Qr(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function ni(e,t){let n=await ti(ei(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function ri(e,t){let n=await be(ti,e,t);if(e===`fetch`){let e=n,t=atob(e.bodyBase64),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return{...e,body:new TextDecoder(`utf-8`).decode(r)}}return n}var z=new WeakMap;function ii(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function ai(e,t){let n=z.get(e);if(n||(n=new Map,z.set(e,n)),n.has(t))return;let r=await Rt(jt(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);ii(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function oi(e,t){let n=z.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&z.delete(e)}function si(e){let t=z.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}z.delete(e)}}function ci(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}if(Array.isArray(e))return new Uint8Array(e);throw Error(`expected Uint8Array, ArrayBuffer, or number[]`)}async function li(e,t,n){let r=jt();switch(t){case`list`:{let e=At();if(!e)throw Error(`WebHID is unavailable in this browser`);return Ut(r,e)}case`request`:{let e=At();if(!e)throw Error(`WebHID is unavailable in this browser`);return Vt(r,Ee(e),n[0]??[])}case`info`:return Bt(r,n[0]);case`open`:{let t=n[0];return await Lt(r,t),await ai(e,t),{ok:!0}}case`close`:{let t=n[0];return await oi(e,t),await Wt(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=ci(n[2]),a=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);return await Pt(r,e,t,a),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function ui(e,t){let n=Mt();switch(e){case`list`:{let e=Nt();if(!e)throw Error(`Web Serial is unavailable in this browser`);return Ht(n,e)}case`request`:{let e=Nt();if(!e)throw Error(`Web Serial is unavailable in this browser`);return It(n,De(e),t[0]??[])}case`info`:return Ft(n,t[0]);case`open`:{let e=t[0],r=t[1]??{baudRate:9600};return await zt(n,e,r),{ok:!0}}case`close`:return await Gt(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function di(e,t){let n=Jt();switch(e){case`list`:{let e=Yt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Qt(n,e)}case`request`:{let e=Yt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Xt(n,xe(e),t[0]??[])}case`info`:return $t(n,t[0]);case`open`:return await en(n,t[0]),{ok:!0};case`close`:return await Zt(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function fi(e,t,n,r){switch(t){case`hid`:return li(e,n,r);case`serial`:return ui(n,r);case`usb`:return di(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function pi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return n({type:`dip-device-op-response`,error:`device access not allowed for this dip`}),!0;let r=t.channel;if(r!==`hid`&&r!==`serial`&&r!==`usb`)return n({type:`dip-device-op-response`,error:`unknown device channel '${r}'`}),!0;try{n({type:`dip-device-op-response`,result:await fi(e,r,typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-device-op-response`,error:e instanceof Error?e.message:String(e)})}return!0}async function mi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return n({type:`${t.type}-response`,error:`exec not allowed for this dip`}),!0;if(t.type===`dip-exec`)return n({type:`dip-exec-response`,result:await ti(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await ni(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await ri(typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-jsh-response`,error:e instanceof Error?e.message:String(e)})}return!0}return!1}function B(e,t,n,r=!1){let i=Xr(t,!1,r);if(Pr)return Ai(e,i,n,r);let a=document.createElement(`iframe`);a.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),a.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,a.srcdoc=i,e.appendChild(a),a.contentWindow&&(On(a.contentWindow),L.add(a.contentWindow),r&&I.add(a.contentWindow)),a.addEventListener(`load`,()=>{On(a.contentWindow),a.contentWindow&&(L.add(a.contentWindow),r&&I.add(a.contentWindow)),Se()&&Ce(a)},{once:!0});let o=e=>{if(e.source!==a.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?a.style.height=t.height+`px`:t.type===`dip-open-link`?gi(t.url):t.type===`dip-picker-action`?Ci(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?hi(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?mi(a.contentWindow,t):t.type===`dip-device-op`&&pi(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(Se()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),Ce(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),En(a.contentWindow),a.contentWindow&&(L.delete(a.contentWindow),I.delete(a.contentWindow),si(a.contentWindow)),a.remove()}}}async function hi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=typeof t.path==`string`?t.path:``,r=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!Ur(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await zr(n,!0);return e===null?(r({type:`dip-readfile-response`,error:`Read failed`}),!0):(r({type:`dip-readfile-response`,content:typeof e==`string`?e:new TextDecoder().decode(e)}),!0)}if(t.type===`dip-exists`)return r({type:`dip-exists-response`,exists:await zr(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await zr(n,!1);return e===null?(r({type:`dip-stat-response`,error:`Stat failed`}),!0):(r({type:`dip-stat-response`,stat:{isFile:!0,isDirectory:!1,size:typeof e==`string`?e.length:e.byteLength,mtimeMs:0}}),!0)}return!1}function gi(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}var _i=new WeakMap;function vi(){return typeof Element.prototype.moveBefore==`function`}function yi(e,t,n){let r=e.findIndex(e=>{let n=_i.get(e);return n?.key===t&&n.wrapper.isConnected}),i=e[r],a=i&&_i.get(i);if(!a)return null;try{n.parentNode.moveBefore(a.wrapper,n)}catch{return null}return n.remove(),e.splice(r,1),i}function bi(e,t,n){return _i.set(e,{key:t,wrapper:n}),e}function xi(e,t,n={}){let i=[],a=[...n.previous??[]],o=vi(),s=n.streaming===!0&&!o,c=e.querySelectorAll(`pre > code.language-shtml`);for(let e of c){let n=e.parentElement,c=e.textContent??``,l=`shtml:${c}`;if(s){n.replaceWith(n.ownerDocument.createRange().createContextualFragment(r));continue}let u=o?yi(a,l,n):null;if(u){i.push(u);continue}let d=document.createElement(`div`);d.className=`msg__dip`,n.replaceWith(d),i.push(bi(B(d,c,t,!1),l,d))}let l=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of l){let n=e.getAttribute(`src`);if(!n||s)continue;let r=`img:${n}`,c=o?yi(a,r,e):null;if(c){i.push(c);continue}let l=document.createElement(`div`);l.className=`msg__dip`,e.alt&&l.setAttribute(`title`,e.alt),e.replaceWith(l);let u=new AbortController,d=null,f=!1;i.push(bi({dispose(){f=!0,u.abort(),d&&=(d.dispose(),null)}},r,l));let p=n.startsWith(`/`),m=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,h=p?`/preview${n}`:n,g=async()=>{if(p&&!m)return Ir(n,u.signal);let e;try{e=await fetch(h,{signal:u.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(p)return Ir(n,u.signal);throw e}if(e.ok)return e.text();if(p)return Ir(n,u.signal);throw Error(`HTTP ${e.status}`)},_=p&&Hr(n);g().then(e=>{f||!l.isConnected||(d=B(l,e,t,_))}).catch(e=>{f||e?.name===`AbortError`||(l.textContent=`Failed to load dip: ${n}`,l.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return Si(a),i}function Si(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function Ci(e,t){let n=Fr(e.data);if(e.picker===`screenshare`){await Ti(e.action,t);return}if(Pr){await wi(e.picker,e.action,n,t);return}switch(e.picker){case`directory`:await Ei(e.action,t);return;case`usb-device`:await Di(e.action,n,t);return;case`serial-port`:await Oi(e.action,n,t);return;case`hid-device`:await ki(e.action,n,t);return;default:t(e.action,e.data);return}}async function wi(e,n,r,i){try{switch(e){case`directory`:{let{openMountPickerPopup:e}=await t(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{openMountPickerPopup:e}},__vite__mapDeps([41,3,42,22])),r=await e();r.cancelled?i(n,{cancelled:!0}):r.error?i(n,{error:r.error}):r.idbKey?i(n,{handleInIdb:!0,idbKey:r.idbKey,dirName:r.dirName??``}):i(n,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:e}=await t(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-O-2gFMNl.js`).then(e=>e.t);return{openUsbPickerPopup:e}},__vite__mapDeps([43,1,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:e}=await t(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-BQF_Eitc.js`);return{openSerialPickerPopup:e}},__vite__mapDeps([44,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:e}=await t(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-sFJ8vzUj.js`);return{openHidPickerPopup:e}},__vite__mapDeps([45,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}default:i(n,{error:`unknown picker kind: ${e??`(none)`}`});return}}catch(e){i(n,{error:e instanceof Error?e.message:String(e)})}}async function V(e,t){let n=Ot();if(!n)return null;let r={current:null},i=t=>{let n=t.detail;n.kind===e&&(r.current=n)};n.addEventListener(`slicc-permission-deny`,i);try{let i=await n.request(e,t);if(i)return{ok:!0,grant:i};let a=r.current;return{ok:!1,reason:a?.reason??`error`,...a?.message?{message:a.message}:{}}}finally{n.removeEventListener(`slicc-permission-deny`,i)}}function H(e,t,n,r){if(t.reason===`cancelled`){r(e,{cancelled:!0});return}if(t.reason===`unavailable`){r(e,{error:n});return}r(e,{error:t.message??`unknown error`})}async function Ti(e,n){let r=await V(`screenshare`,{constraints:{video:!0}});if(!r){n(e,{error:`screen capture is not available`});return}if(!r.ok){H(e,r,`screen capture is not available`,n);return}let i=r.grant,{adoptDisplayStream:a,displaySessions:o}=await t(async()=>{let{adoptDisplayStream:e,displaySessions:t}=await import(`./screencapture-media-BxRLHqjA.js`);return{adoptDisplayStream:e,displaySessions:t}},[]);try{let r=await a(i.stream);if(!r.handle){n(e,{error:`screen share produced no handle`});return}let{keepAdoptedScreenShare:s}=await t(async()=>{let{keepAdoptedScreenShare:e}=await import(`./screen-share-approval-live-D388fVD9.js`);return{keepAdoptedScreenShare:e}},[]);if(!s(r.handle,e=>o.stop(e))){n(e,{cancelled:!0});return}n(e,{granted:!0,handle:r.handle})}catch(t){n(e,{error:t instanceof Error?t.message:String(t)})}}async function Ei(e,n){let r=await V(`filesystem`);if(!r){n(e,{error:`File System Access API not available`});return}if(!r.ok){H(e,r,`File System Access API not available`,n);return}let i=r.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:e}=await t(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([41,3,42,22]));await e(a,i)}catch(t){n(e,{error:`failed to store directory handle: ${t instanceof Error?t.message:String(t)}`});return}n(e,{handleInIdb:!0,idbKey:a,dirName:i.name})}async function Di(e,n,r){let i=await V(`usb`,{filters:n});if(!i){r(e,{error:`WebUSB is not available`});return}if(!i.ok){H(e,i,`WebUSB is not available`,r);return}let a=i.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await t(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry--JwKRTYp.js`).then(e=>e.c);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([46,1])),c=o().register(a.device);r(e,{granted:!0,handle:c,info:s(c,a.device)})}async function Oi(e,n,r){let i=await V(`serial`,n.length?{filters:n}:void 0);if(!i){r(e,{error:`Web Serial is not available`});return}if(!i.ok){H(e,i,`Web Serial is not available`,r);return}let a=i.grant,o=await t(()=>import(`./serial-port-registry-CCqklAEr.js`).then(e=>e.o),__vite__mapDeps([47,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);r(e,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function ki(e,n,r){let i=await V(`hid`,{filters:n});if(!i){r(e,{error:`WebHID is not available`});return}if(!i.ok){H(e,i,`WebHID is not available`,r);return}let a=i.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await t(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-B2R-0rNt.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([48,1])),c=o(),l=a.devices.map(e=>{let t=c.register(e);return s(t,e)}),u=l[0];r(e,{granted:!0,handle:u.handle,info:u,devices:l})}function Ai(e,t,n,r=!1){let i=document.createElement(`iframe`);i.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),i.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,e.appendChild(i);let a=e=>{if(e.source!==i.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?i.style.height=t.height+`px`:t.type===`dip-open-link`?gi(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?hi(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?mi(i.contentWindow,t):t.type===`dip-device-op`?pi(i.contentWindow,t):t.type===`dip-picker-action`&&Ci(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{On(i.contentWindow),i.contentWindow&&(L.add(i.contentWindow),r&&I.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:Dn()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),En(i.contentWindow),i.contentWindow&&(L.delete(i.contentWindow),I.delete(i.contentWindow),si(i.contentWindow)),i.remove()}}}var ji=`/sessions/data`,Mi=`document.json`,Ni=`.publishing`;function U(e){if(e?.aborted)throw new w(`transfer-aborted`)}function Pi(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new w(`session-not-found`)}function Fi(e){return`${ji}/${e}`}function Ii(e){return`${ji}/.tmp-${e}`}async function Li(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function Ri(e,t){let n;try{n=await e.readDir(t)}catch{return}for(let r of n){let n=`${t}/${r.name}`;r.type===`directory`&&await Ri(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function zi(e,t){let n=await e.readDir(t);for(let r of n){if(r.name===Ni)continue;let n=`${t}/${r.name}`;r.type===`directory`?await Ri(e,n):await e.rm(n)}}async function Bi(e,t,n,r){U(r),await Li(e,n);let i=await e.readDir(t);for(let a of i){U(r);let i=`${t}/${a.name}`,o=`${n}/${a.name}`;if(a.type===`directory`)await Bi(e,i,o,r);else{let t=await e.readFile(i,{encoding:`binary`});await e.writeFile(o,t)}}}async function Vi(e,t,n,r){Pi(t);let i=Ii(t),a=Fi(t),o=new Map(n.document.attachments.filter(e=>e.present&&e.path).map(e=>[e.path,e]));for(let[e]of n.attachments)if(!o.has(e))throw new w(`schema-invalid`);U(r),await Li(e,i);let s=!1;try{let t=[...n.document.attachments];for(let[e,i]of n.attachments){U(r);let n=await Pe(i),a=o.get(e);if(a!==void 0){let e=t.indexOf(a);e!==-1&&(t[e]={...a,sha256:n,byteLength:i.length})}}let c={...n.document,attachments:t},l=JSON.stringify(c,null,2);if(await e.writeFile(`${i}/${Mi}`,l),n.attachments.size>0)for(let[t,r]of n.attachments){let n=`${i}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await Li(e,`${i}/${t.slice(0,a)}`),await e.writeFile(n,r)}await e.flush(),U(r),await Li(e,a),s=!0,await e.writeFile(`${a}/${Ni}`,`in-progress`),await zi(e,a),U(r),await Bi(e,i,a,r),await e.flush(),U(r),await e.rm(`${a}/${Ni}`)}catch(t){if(s)try{await zi(e,a)}catch{}throw await Ri(e,i),t}await Ri(e,i)}async function Hi(e,t){Pi(t);for(let n of[Fi(t),Ii(t)])try{await e.rm(n,{recursive:!0})}catch(e){if(e?.code!==`ENOENT`)throw e}}async function Ui(e,n){let[{serializeIndexWrite:r},{readIndexForPresence:i}]=await Promise.all([t(()=>import(`./frozen-archive-writer-Ceh2la4q.js`).then(e=>e.r),__vite__mapDeps([49,1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50])),t(()=>import(`./frozen-session-identity-BaOmOPkW.js`).then(e=>e.n),__vite__mapDeps([51,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50]))]);return r(async()=>{let t=await i(e);return t===null||t.some(e=>e.sessionId===n)?!1:(await Hi(e,n),!0)})}async function Wi(e,t){Pi(t);let n=Fi(t),r=`${n}/${Mi}`;try{throw await e.stat(`${n}/${Ni}`),new w(`session-not-found`)}catch(e){if(e instanceof w||e.code!==`ENOENT`)throw e}let i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new w(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new w(`schema-invalid`)}if(!Le(a).ok)throw new w(`schema-invalid`);let o=new Map;for(let t of a.attachments){if(!t.present||!t.path)continue;let r=`${n}/${t.path}`,i;try{let t=await e.readFile(r,{encoding:`binary`});i=t instanceof Uint8Array?t:new TextEncoder().encode(t)}catch{throw new w(`transfer-corrupt`)}if(await Pe(i)!==t.sha256)throw new w(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}var Gi=e({PENDING_SESSION_ATTEMPT_LIMIT:()=>3,SESSIONS_INDEX_PATH:()=>E,curateFrozenSessionMemories:()=>Zi,enrichPendingSession:()=>wa,freezeConeSession:()=>Xi,listPendingEnrichments:()=>xa,markSnapshotUnavailable:()=>Ja,processPendingSessions:()=>Sa,readSessionsIndex:()=>O}),W=n(`session-freezer`),Ki=4,qi=2048,Ji=40,Yi=`${D}/attachments`;async function Xi(e){let t=await ha(e.sessionStore,pa(e));if(!t||t.messages.length<Ki)return W.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=_a(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);!e.agenticMemorySpawn&&e.memory!==`skip`&&await ta(e,n,i);let a=await na(e,n,i)||We(t.messages);return await ra(e,t,a,r,i?await $i(e,a):void 0,!!e.agenticMemorySpawn&&e.memory!==`skip`)}async function Zi(e,t){let n=await Fn(e.vfs,{sessionId:t.sessionId||t.filename.replace(/\.md$/i,``),filename:t.filename,title:t.title,frozenAt:t.frozenAt,cone:t.cone,coneLabel:t.coneLabel,curatedThrough:t.curatedThrough,messages:t.archive.messages});if(n.kind===`covered`)return Qi(e,t,null);let r=n.kind===`delta`?n.path:Ue(t),i=n.kind===`delta`?n.messages:t.archive.messages,a;try{a=await Nn({spawn:e.agenticMemorySpawn,vfs:e.vfs,sessionArchivePath:r,sessionCount:await jn(e.vfs),...e.cone?{cone:e.cone}:{}})}catch(e){a={ok:!1,reason:e instanceof Error?e.message:String(e),legacyFallbackSafe:!1}}return a.ok?(n.kind===`delta`&&await Pn(e.vfs,t.filename,n.through),Qi(e,t,r)):(await Ba(e.vfs,t.filename,a.reason),a.legacyFallbackSafe?(W.warn(`Agentic memory pass failed after finishing — falling back to legacy extraction`,{filename:t.filename,reason:a.reason}),await ta(e,_a(i),!0),null):(W.warn(`Agentic memory pass unfinished — entry stays pending for boot catch-up`,{filename:t.filename,reason:a.reason,attemptLimit:3}),null))}async function Qi(e,t,n){let r=await Ra(e.vfs,t.filename);if(n){let t=n.slice(n.lastIndexOf(`/`)+1);await Da(e.vfs,t)}return r?(delete t.memoryPending,W.info(`Agentic memory pass completed`,{filename:t.filename}),r):(W.info(`Agentic memory pass completed; index entry already gone`,{filename:t.filename}),null)}async function $i(e,n){try{return ea(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-D46cR1qL.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){W.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function ea(e){if(e)return qt(e)?e:void 0}async function ta(e,t,n){if(!n){W.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await pe({messages:t,instruction:me,model:e.model,apiKey:e.apiKey,maxTokens:qi,headers:e.headers})}catch(e){W.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){W.info(`Memory extraction returned no durable memories`);return}try{await ba(e.vfs,ma(pa(e)),r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),W.info(`Memory extracted and appended on new-session`)}catch(e){W.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function na(e,t,n){if(!n)return``;try{return va(await pe({messages:t,instruction:he,model:e.model,apiKey:e.apiKey,maxTokens:Ji,headers:e.headers}))}catch(e){return W.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function ra(e,n,r,i,a,o=!1){let s=new Date().toISOString(),c=pa(e),l=await ga(e.vfs,c),u=l?.sessionId??crypto.randomUUID(),d=l?.filename??(i===`quick`?`pending-${Ge()}.md`:`${s.replace(/[:.]/g,`-`)}-${Xe(r)}.md`),f=ia(n.messages),p={cone:c,...c!==`cone`&&e.cone?.label?{coneLabel:e.cone.label}:{}},m={filename:d,sessionId:u,title:r,frozenAt:s,messageCount:n.messages.length,...f??{},...p,...a?{icon:a}:{},...i===`quick`||l?{pendingEnrichment:!0}:{},...o?{memoryPending:!0}:{},...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};try{await ya(e.vfs,D);let i=d.replace(/\.md$/,``),a=await sa(e.vfs,n.messages,i),o={id:n.id,sessionId:u,attachmentsKey:i,title:r,frozenAt:s,createdAt:n.createdAt,updatedAt:n.updatedAt,messageCount:n.messages.length,messages:a,...f??{},...p,...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};if(_e(`memory-v2`)){let{writeArchiveBundle:n}=await t(async()=>{let{writeArchiveBundle:e}=await import(`./session-jsonl-CMk3OfCb.js`).then(e=>e.i);return{writeArchiveBundle:e}},__vite__mapDeps([54,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50]));await n(e.vfs,d,o)}else await e.vfs.writeFile(`${D}/${d}`,Ke(o));return await He(e.vfs,m),await e.vfs.flush(),W.info(`Cone session frozen`,{filename:d,title:r,cone:c,messageCount:n.messages.length,completedLiveSnapshot:!!l}),{...m,archive:o}}catch(e){return W.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}function ia(e){let t={total:0,input:0,output:0,cacheRead:0,cacheWrite:0},n=new Map,r=!1;for(let i of e){if(i.role!==`assistant`)continue;let{model:e,usage:a}=i;if(!e||!a||!oa(a))return null;let o=a.cost;r=!0,t.total+=o.total,t.input+=o.input,t.output+=o.output,t.cacheRead+=o.cacheRead,t.cacheWrite+=o.cacheWrite;let s=n.get(e)??{model:e,cost:0,turns:0,tokens:0};s.cost+=o.total,s.turns+=1,s.tokens+=a.input+a.output+a.cacheRead+a.cacheWrite,n.set(e,s)}return r?{cost:t,models:[...n.values()].sort((e,t)=>t.cost-e.cost)}:null}function aa(e){return typeof e==`number`&&Number.isFinite(e)}function oa(e){let{cost:t}=e;return[e.input,e.output,e.cacheRead,e.cacheWrite].every(aa)&&[t.input,t.output,t.cacheRead,t.cacheWrite,t.total].every(aa)}async function sa(e,t,n){let r={vfs:e,archiveDir:`${Yi}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(ua)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await ca(r,n));i.push({...e,attachments:t})}return i}async function ca(e,t){if(!ua(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await la(e.vfs,t.path);if(!r)return fa(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await ya(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function la(e,t){try{if(!await da(e,t))return null;let n=await e.readFile(t,{encoding:`binary`});if(!(n instanceof Uint8Array))throw Error(`Expected binary attachment content at ${t}`);return n}catch{return null}}function ua(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function da(e,t){let n=t.split(`/`).slice(1);if(n.length<2||n[0]!==`tmp`||n.some(e=>!e||e===`.`||e===`..`))return!1;let r=`/`;for(let t=0;t<n.length;t+=1){let i=(await e.readDir(r)).find(e=>e.name===n[t]);if(!i)return!1;if(t===n.length-1)return i.type===`file`;if(i.type!==`directory`)return!1;r=r===`/`?`/${n[t]}`:`${r}/${n[t]}`}return!1}function fa(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}function pa(e){return e.cone?.folder||`cone`}function ma(e){return vn({parentJid:null,folder:e}).memoryPath}async function ha(e,t){let n=fn({folder:t});try{return await e.load(n)}catch(e){return W.warn(`Failed to load cone chat session`,{sessionId:n,error:e instanceof Error?e.message:String(e)}),null}}async function ga(e,t){try{return Ye(await qe(e),t)}catch(e){W.warn(`Sessions index unreadable while looking for a live snapshot`,{error:e instanceof Error?e.message:String(e)});return}}function _a(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}function va(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}async function ya(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function ba(e,t,n,r,i){let a=t,o=``;try{let t=await e.readFile(a,{encoding:`utf-8`});o=typeof t==`string`?t:new TextDecoder().decode(t)}catch(t){if(!(t instanceof kt)||t.code!==`ENOENT`)throw t;await ya(e,a.slice(0,a.lastIndexOf(`/`)))}let s=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${r})`,c=`${o.length===0||o.endsWith(`
|
|
241
|
+
`,exitCode:127};try{return await Qr(e)}catch(e){return{stdout:``,stderr:`exec: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}}async function ni(e,t){let n=await ti(ei(e,t));return{stdout:n.stdout||n.stderr,exitCode:n.exitCode}}async function ri(e,t){let n=await be(ti,e,t);if(e===`fetch`){let e=n,t=atob(e.bodyBase64),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return{...e,body:new TextDecoder(`utf-8`).decode(r)}}return n}var z=new WeakMap;function ii(e,t){try{e.postMessage({type:`dip-device-event`,channel:`hid:inputreport`,payload:t},`*`)}catch{}}async function ai(e,t){let n=z.get(e);if(n||(n=new Map,z.set(e,n)),n.has(t))return;let r=await Rt(jt(),t,n=>{let r=n.bytes instanceof Uint8Array?n.bytes:new Uint8Array(n.bytes);ii(e,{handle:t,reportId:n.reportId,data:r})});n.set(t,r)}async function oi(e,t){let n=z.get(e);if(!n)return;let r=n.get(t);if(r){n.delete(t);try{await Promise.resolve(r())}catch{}}n.size===0&&z.delete(e)}function si(e){let t=z.get(e);if(t){for(let e of t.values())try{Promise.resolve(e()).catch(()=>{})}catch{}z.delete(e)}}function ci(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}if(Array.isArray(e))return new Uint8Array(e);throw Error(`expected Uint8Array, ArrayBuffer, or number[]`)}async function li(e,t,n){let r=jt();switch(t){case`list`:{let e=At();if(!e)throw Error(`WebHID is unavailable in this browser`);return Ut(r,e)}case`request`:{let e=At();if(!e)throw Error(`WebHID is unavailable in this browser`);return Vt(r,Ee(e),n[0]??[])}case`info`:return Bt(r,n[0]);case`open`:{let t=n[0];return await Lt(r,t),await ai(e,t),{ok:!0}}case`close`:{let t=n[0];return await oi(e,t),await Wt(r,t),{ok:!0}}case`sendReport`:{let e=n[0],t=n[1],i=ci(n[2]),a=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);return await Pt(r,e,t,a),{ok:!0}}default:throw Error(`hid: unknown op '${t}'`)}}async function ui(e,t){let n=Mt();switch(e){case`list`:{let e=Nt();if(!e)throw Error(`Web Serial is unavailable in this browser`);return Ht(n,e)}case`request`:{let e=Nt();if(!e)throw Error(`Web Serial is unavailable in this browser`);return It(n,De(e),t[0]??[])}case`info`:return Ft(n,t[0]);case`open`:{let e=t[0],r=t[1]??{baudRate:9600};return await zt(n,e,r),{ok:!0}}case`close`:return await Gt(n,t[0]),{ok:!0};default:throw Error(`serial: unknown op '${e}'`)}}async function di(e,t){let n=Jt();switch(e){case`list`:{let e=Yt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Qt(n,e)}case`request`:{let e=Yt();if(!e)throw Error(`WebUSB is unavailable in this browser`);return Xt(n,xe(e),t[0]??[])}case`info`:return $t(n,t[0]);case`open`:return await en(n,t[0]),{ok:!0};case`close`:return await Zt(n,t[0]),{ok:!0};default:throw Error(`usb: unknown op '${e}'`)}}async function fi(e,t,n,r){switch(t){case`hid`:return li(e,n,r);case`serial`:return ui(n,r);case`usb`:return di(n,r);default:throw Error(`unknown device channel '${t}'`)}}async function pi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return n({type:`dip-device-op-response`,error:`device access not allowed for this dip`}),!0;let r=t.channel;if(r!==`hid`&&r!==`serial`&&r!==`usb`)return n({type:`dip-device-op-response`,error:`unknown device channel '${r}'`}),!0;try{n({type:`dip-device-op-response`,result:await fi(e,r,typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-device-op-response`,error:e instanceof Error?e.message:String(e)})}return!0}async function mi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return n({type:`${t.type}-response`,error:`exec not allowed for this dip`}),!0;if(t.type===`dip-exec`)return n({type:`dip-exec-response`,result:await ti(typeof t.cmd==`string`?t.cmd:``)}),!0;if(t.type===`dip-agent`)return n({type:`dip-agent-response`,result:await ni(typeof t.prompt==`string`?t.prompt:``,t.opts)}),!0;if(t.type===`dip-jsh`){try{n({type:`dip-jsh-response`,result:await ri(typeof t.op==`string`?t.op:``,Array.isArray(t.args)?t.args:[])})}catch(e){n({type:`dip-jsh-response`,error:e instanceof Error?e.message:String(e)})}return!0}return!1}function B(e,t,n,r=!1){let i=Xr(t,!1,r);if(Pr)return Ai(e,i,n,r);let a=document.createElement(`iframe`);a.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),a.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,a.srcdoc=i,e.appendChild(a),a.contentWindow&&(On(a.contentWindow),L.add(a.contentWindow),r&&I.add(a.contentWindow)),a.addEventListener(`load`,()=>{On(a.contentWindow),a.contentWindow&&(L.add(a.contentWindow),r&&I.add(a.contentWindow)),Se()&&Ce(a)},{once:!0});let o=e=>{if(e.source!==a.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?a.style.height=t.height+`px`:t.type===`dip-open-link`?gi(t.url):t.type===`dip-picker-action`?Ci(t,n):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?hi(a.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?mi(a.contentWindow,t):t.type===`dip-device-op`&&pi(a.contentWindow,t))};window.addEventListener(`message`,o);let s=null;if(Se()&&typeof IntersectionObserver<`u`){let e=!1,t=new IntersectionObserver(n=>{if(n[n.length-1].isIntersecting){if(e){e=!1;return}t.unobserve(a),Ce(a,()=>{e=!0,t.observe(a)})}});s=t,t.observe(a)}return{dispose(){s?.disconnect(),window.removeEventListener(`message`,o),En(a.contentWindow),a.contentWindow&&(L.delete(a.contentWindow),I.delete(a.contentWindow),si(a.contentWindow)),a.remove()}}}async function hi(e,t){if(!e||typeof t.id!=`number`)return!1;let n=typeof t.path==`string`?t.path:``,r=n=>{try{e.postMessage({...n,id:t.id},`*`)}catch{}};if(!I.has(e))return r({type:`${t.type}-response`,error:`VFS access not allowed for this dip`}),!0;if(!Ur(n))return r({type:`${t.type}-response`,error:`VFS path not allowed: ${n}`}),!0;if(t.type===`dip-readfile`){let e=await zr(n,!0);return e===null?(r({type:`dip-readfile-response`,error:`Read failed`}),!0):(r({type:`dip-readfile-response`,content:typeof e==`string`?e:new TextDecoder().decode(e)}),!0)}if(t.type===`dip-exists`)return r({type:`dip-exists-response`,exists:await zr(n,!0)!==null}),!0;if(t.type===`dip-stat`){let e=await zr(n,!1);return e===null?(r({type:`dip-stat-response`,error:`Stat failed`}),!0):(r({type:`dip-stat-response`,stat:{isFile:!0,isDirectory:!1,size:typeof e==`string`?e.length:e.byteLength,mtimeMs:0}}),!0)}return!1}function gi(e){if(!(typeof e!=`string`||!e)&&/^(https?:|mailto:)/i.test(e))try{window.open(e,`_blank`,`noopener,noreferrer`)}catch{}}var _i=new WeakMap;function vi(){return typeof Element.prototype.moveBefore==`function`}function yi(e,t,n){let r=e.findIndex(e=>{let n=_i.get(e);return n?.key===t&&n.wrapper.isConnected}),i=e[r],a=i&&_i.get(i);if(!a)return null;try{n.parentNode.moveBefore(a.wrapper,n)}catch{return null}return n.remove(),e.splice(r,1),i}function bi(e,t,n){return _i.set(e,{key:t,wrapper:n}),e}function xi(e,t,n={}){let i=[],a=[...n.previous??[]],o=vi(),s=n.streaming===!0&&!o,c=e.querySelectorAll(`pre > code.language-shtml`);for(let e of c){let n=e.parentElement,c=e.textContent??``,l=`shtml:${c}`;if(s){n.replaceWith(n.ownerDocument.createRange().createContextualFragment(r));continue}let u=o?yi(a,l,n):null;if(u){i.push(u);continue}let d=document.createElement(`div`);d.className=`msg__dip`,n.replaceWith(d),i.push(bi(B(d,c,t,!1),l,d))}let l=e.querySelectorAll(`img[src$=".shtml"]`);for(let e of l){let n=e.getAttribute(`src`);if(!n||s)continue;let r=`img:${n}`,c=o?yi(a,r,e):null;if(c){i.push(c);continue}let l=document.createElement(`div`);l.className=`msg__dip`,e.alt&&l.setAttribute(`title`,e.alt),e.replaceWith(l);let u=new AbortController,d=null,f=!1;i.push(bi({dispose(){f=!0,u.abort(),d&&=(d.dispose(),null)}},r,l));let p=n.startsWith(`/`),m=typeof navigator<`u`&&!!navigator.serviceWorker?.controller,h=p?`/preview${n}`:n,g=async()=>{if(p&&!m)return Ir(n,u.signal);let e;try{e=await fetch(h,{signal:u.signal})}catch(e){if(e?.name===`AbortError`)throw e;if(p)return Ir(n,u.signal);throw e}if(e.ok)return e.text();if(p)return Ir(n,u.signal);throw Error(`HTTP ${e.status}`)},_=p&&Hr(n);g().then(e=>{f||!l.isConnected||(d=B(l,e,t,_))}).catch(e=>{f||e?.name===`AbortError`||(l.textContent=`Failed to load dip: ${n}`,l.style.cssText=`padding:8px;font-size:12px;color:var(--s2-negative);font-family:var(--s2-font-mono)`)})}return Si(a),i}function Si(e){for(let t of e)try{t.dispose()}catch{}e.length=0}async function Ci(e,t){let n=Fr(e.data);if(e.picker===`screenshare`){await Ti(e.action,t);return}if(Pr){await wi(e.picker,e.action,n,t);return}switch(e.picker){case`directory`:await Ei(e.action,t);return;case`usb-device`:await Di(e.action,n,t);return;case`serial-port`:await Oi(e.action,n,t);return;case`hid-device`:await ki(e.action,n,t);return;default:t(e.action,e.data);return}}async function wi(e,n,r,i){try{switch(e){case`directory`:{let{openMountPickerPopup:e}=await t(async()=>{let{openMountPickerPopup:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{openMountPickerPopup:e}},__vite__mapDeps([41,3,42,22])),r=await e();r.cancelled?i(n,{cancelled:!0}):r.error?i(n,{error:r.error}):r.idbKey?i(n,{handleInIdb:!0,idbKey:r.idbKey,dirName:r.dirName??``}):i(n,{error:`mount picker returned no handle key`});return}case`usb-device`:{let{openUsbPickerPopup:e}=await t(async()=>{let{openUsbPickerPopup:e}=await import(`./usb-picker-O-2gFMNl.js`).then(e=>e.t);return{openUsbPickerPopup:e}},__vite__mapDeps([43,1,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`serial-port`:{let{openSerialPickerPopup:e}=await t(async()=>{let{openSerialPickerPopup:e}=await import(`./serial-picker-BQF_Eitc.js`);return{openSerialPickerPopup:e}},__vite__mapDeps([44,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}case`hid-device`:{let{openHidPickerPopup:e}=await t(async()=>{let{openHidPickerPopup:e}=await import(`./hid-picker-sFJ8vzUj.js`);return{openHidPickerPopup:e}},__vite__mapDeps([45,42,22])),a=await e(r);`cancelled`in a?i(n,{cancelled:!0}):`error`in a?i(n,{error:a.error}):i(n,{granted:!0,info:a.info});return}default:i(n,{error:`unknown picker kind: ${e??`(none)`}`});return}}catch(e){i(n,{error:e instanceof Error?e.message:String(e)})}}async function V(e,t){let n=Ot();if(!n)return null;let r={current:null},i=t=>{let n=t.detail;n.kind===e&&(r.current=n)};n.addEventListener(`slicc-permission-deny`,i);try{let i=await n.request(e,t);if(i)return{ok:!0,grant:i};let a=r.current;return{ok:!1,reason:a?.reason??`error`,...a?.message?{message:a.message}:{}}}finally{n.removeEventListener(`slicc-permission-deny`,i)}}function H(e,t,n,r){if(t.reason===`cancelled`){r(e,{cancelled:!0});return}if(t.reason===`unavailable`){r(e,{error:n});return}r(e,{error:t.message??`unknown error`})}async function Ti(e,n){let r=await V(`screenshare`,{constraints:{video:!0}});if(!r){n(e,{error:`screen capture is not available`});return}if(!r.ok){H(e,r,`screen capture is not available`,n);return}let i=r.grant,{adoptDisplayStream:a,displaySessions:o}=await t(async()=>{let{adoptDisplayStream:e,displaySessions:t}=await import(`./screencapture-media-BxRLHqjA.js`);return{adoptDisplayStream:e,displaySessions:t}},[]);try{let r=await a(i.stream);if(!r.handle){n(e,{error:`screen share produced no handle`});return}let{keepAdoptedScreenShare:s}=await t(async()=>{let{keepAdoptedScreenShare:e}=await import(`./screen-share-approval-live-D388fVD9.js`);return{keepAdoptedScreenShare:e}},[]);if(!s(r.handle,e=>o.stop(e))){n(e,{cancelled:!0});return}n(e,{granted:!0,handle:r.handle})}catch(t){n(e,{error:t instanceof Error?t.message:String(t)})}}async function Ei(e,n){let r=await V(`filesystem`);if(!r){n(e,{error:`File System Access API not available`});return}if(!r.ok){H(e,r,`File System Access API not available`,n);return}let i=r.grant.handle,a=`pendingMount:dip-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;try{let{storePendingHandle:e}=await t(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-qcWGbpG5.js`);return{storePendingHandle:e}},__vite__mapDeps([41,3,42,22]));await e(a,i)}catch(t){n(e,{error:`failed to store directory handle: ${t instanceof Error?t.message:String(t)}`});return}n(e,{handleInIdb:!0,idbKey:a,dirName:i.name})}async function Di(e,n,r){let i=await V(`usb`,{filters:n});if(!i){r(e,{error:`WebUSB is not available`});return}if(!i.ok){H(e,i,`WebUSB is not available`,r);return}let a=i.grant,{getSharedUsbRegistry:o,deviceToInfo:s}=await t(async()=>{let{getSharedUsbRegistry:e,deviceToInfo:t}=await import(`./usb-device-registry--JwKRTYp.js`).then(e=>e.c);return{getSharedUsbRegistry:e,deviceToInfo:t}},__vite__mapDeps([46,1])),c=o().register(a.device);r(e,{granted:!0,handle:c,info:s(c,a.device)})}async function Oi(e,n,r){let i=await V(`serial`,n.length?{filters:n}:void 0);if(!i){r(e,{error:`Web Serial is not available`});return}if(!i.ok){H(e,i,`Web Serial is not available`,r);return}let a=i.grant,o=await t(()=>import(`./serial-port-registry-CCqklAEr.js`).then(e=>e.o),__vite__mapDeps([47,1])),s=o.getSharedSerialRegistry(),c=s.register(a.port),l=s.get(c);r(e,{granted:!0,handle:c,info:l?o.deviceToInfo(c,l):{handle:c}})}async function ki(e,n,r){let i=await V(`hid`,{filters:n});if(!i){r(e,{error:`WebHID is not available`});return}if(!i.ok){H(e,i,`WebHID is not available`,r);return}let a=i.grant,{getSharedHidRegistry:o,hidDeviceToInfo:s}=await t(async()=>{let{getSharedHidRegistry:e,hidDeviceToInfo:t}=await import(`./hid-device-registry-B2R-0rNt.js`).then(e=>e.a);return{getSharedHidRegistry:e,hidDeviceToInfo:t}},__vite__mapDeps([48,1])),c=o(),l=a.devices.map(e=>{let t=c.register(e);return s(t,e)}),u=l[0];r(e,{granted:!0,handle:u.handle,info:u,devices:l})}function Ai(e,t,n,r=!1){let i=document.createElement(`iframe`);i.src=chrome.runtime.getURL(`sprinkle-sandbox.html`),i.style.cssText=`width:100%;border:none;overflow:hidden;display:block;`,e.appendChild(i);let a=e=>{if(e.source!==i.contentWindow)return;let t=e.data;t?.type&&(t.type===`dip-lick`?n(t.action,t.data):t.type===`dip-height`?i.style.height=t.height+`px`:t.type===`dip-open-link`?gi(t.url):t.type===`dip-readfile`||t.type===`dip-exists`||t.type===`dip-stat`?hi(i.contentWindow,t):t.type===`dip-exec`||t.type===`dip-agent`||t.type===`dip-jsh`?mi(i.contentWindow,t):t.type===`dip-device-op`?pi(i.contentWindow,t):t.type===`dip-picker-action`&&Ci(t,n))};return window.addEventListener(`message`,a),i.addEventListener(`load`,()=>{On(i.contentWindow),i.contentWindow&&(L.add(i.contentWindow),r&&I.add(i.contentWindow)),i.contentWindow?.postMessage({type:`dip-render`,srcdoc:t,isLight:Dn()},`*`)},{once:!0}),{dispose(){window.removeEventListener(`message`,a),En(i.contentWindow),i.contentWindow&&(L.delete(i.contentWindow),I.delete(i.contentWindow),si(i.contentWindow)),i.remove()}}}var ji=`/sessions/data`,Mi=`document.json`,Ni=`.publishing`;function U(e){if(e?.aborted)throw new w(`transfer-aborted`)}function Pi(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new w(`session-not-found`)}function Fi(e){return`${ji}/${e}`}function Ii(e){return`${ji}/.tmp-${e}`}async function Li(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function Ri(e,t){let n;try{n=await e.readDir(t)}catch{return}for(let r of n){let n=`${t}/${r.name}`;r.type===`directory`&&await Ri(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function zi(e,t){let n=await e.readDir(t);for(let r of n){if(r.name===Ni)continue;let n=`${t}/${r.name}`;r.type===`directory`?await Ri(e,n):await e.rm(n)}}async function Bi(e,t,n,r){U(r),await Li(e,n);let i=await e.readDir(t);for(let a of i){U(r);let i=`${t}/${a.name}`,o=`${n}/${a.name}`;if(a.type===`directory`)await Bi(e,i,o,r);else{let t=await e.readFile(i,{encoding:`binary`});await e.writeFile(o,t)}}}async function Vi(e,t,n,r){Pi(t);let i=Ii(t),a=Fi(t),o=new Map(n.document.attachments.filter(e=>e.present&&e.path).map(e=>[e.path,e]));for(let[e]of n.attachments)if(!o.has(e))throw new w(`schema-invalid`);U(r),await Li(e,i);let s=!1;try{let t=[...n.document.attachments];for(let[e,i]of n.attachments){U(r);let n=await Pe(i),a=o.get(e);if(a!==void 0){let e=t.indexOf(a);e!==-1&&(t[e]={...a,sha256:n,byteLength:i.length})}}let c={...n.document,attachments:t},l=JSON.stringify(c,null,2);if(await e.writeFile(`${i}/${Mi}`,l),n.attachments.size>0)for(let[t,r]of n.attachments){let n=`${i}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await Li(e,`${i}/${t.slice(0,a)}`),await e.writeFile(n,r)}await e.flush(),U(r),await Li(e,a),s=!0,await e.writeFile(`${a}/${Ni}`,`in-progress`),await zi(e,a),U(r),await Bi(e,i,a,r),await e.flush(),U(r),await e.rm(`${a}/${Ni}`)}catch(t){if(s)try{await zi(e,a)}catch{}throw await Ri(e,i),t}await Ri(e,i)}async function Hi(e,t){Pi(t);for(let n of[Fi(t),Ii(t)])try{await e.rm(n,{recursive:!0})}catch(e){if(e?.code!==`ENOENT`)throw e}}async function Ui(e,n){let[{serializeIndexWrite:r},{readIndexForPresence:i}]=await Promise.all([t(()=>import(`./frozen-archive-writer-D8Na80jS.js`).then(e=>e.r),__vite__mapDeps([49,1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50])),t(()=>import(`./frozen-session-identity-bvyrPA_v.js`).then(e=>e.n),__vite__mapDeps([51,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50]))]);return r(async()=>{let t=await i(e);return t===null||t.some(e=>e.sessionId===n)?!1:(await Hi(e,n),!0)})}async function Wi(e,t){Pi(t);let n=Fi(t),r=`${n}/${Mi}`;try{throw await e.stat(`${n}/${Ni}`),new w(`session-not-found`)}catch(e){if(e instanceof w||e.code!==`ENOENT`)throw e}let i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new w(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new w(`schema-invalid`)}if(!Le(a).ok)throw new w(`schema-invalid`);let o=new Map;for(let t of a.attachments){if(!t.present||!t.path)continue;let r=`${n}/${t.path}`,i;try{let t=await e.readFile(r,{encoding:`binary`});i=t instanceof Uint8Array?t:new TextEncoder().encode(t)}catch{throw new w(`transfer-corrupt`)}if(await Pe(i)!==t.sha256)throw new w(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}var Gi=e({PENDING_SESSION_ATTEMPT_LIMIT:()=>3,SESSIONS_INDEX_PATH:()=>E,curateFrozenSessionMemories:()=>Zi,enrichPendingSession:()=>wa,freezeConeSession:()=>Xi,listPendingEnrichments:()=>xa,markSnapshotUnavailable:()=>Ja,processPendingSessions:()=>Sa,readSessionsIndex:()=>O}),W=n(`session-freezer`),Ki=4,qi=2048,Ji=40,Yi=`${D}/attachments`;async function Xi(e){let t=await ha(e.sessionStore,pa(e));if(!t||t.messages.length<Ki)return W.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=_a(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);!e.agenticMemorySpawn&&e.memory!==`skip`&&await ta(e,n,i);let a=await na(e,n,i)||We(t.messages);return await ra(e,t,a,r,i?await $i(e,a):void 0,!!e.agenticMemorySpawn&&e.memory!==`skip`)}async function Zi(e,t){let n=await Fn(e.vfs,{sessionId:t.sessionId||t.filename.replace(/\.md$/i,``),filename:t.filename,title:t.title,frozenAt:t.frozenAt,cone:t.cone,coneLabel:t.coneLabel,curatedThrough:t.curatedThrough,messages:t.archive.messages});if(n.kind===`covered`)return Qi(e,t,null);let r=n.kind===`delta`?n.path:Ue(t),i=n.kind===`delta`?n.messages:t.archive.messages,a;try{a=await Nn({spawn:e.agenticMemorySpawn,vfs:e.vfs,sessionArchivePath:r,sessionCount:await jn(e.vfs),...e.cone?{cone:e.cone}:{}})}catch(e){a={ok:!1,reason:e instanceof Error?e.message:String(e),legacyFallbackSafe:!1}}return a.ok?(n.kind===`delta`&&await Pn(e.vfs,t.filename,n.through),Qi(e,t,r)):(await Ba(e.vfs,t.filename,a.reason),a.legacyFallbackSafe?(W.warn(`Agentic memory pass failed after finishing — falling back to legacy extraction`,{filename:t.filename,reason:a.reason}),await ta(e,_a(i),!0),null):(W.warn(`Agentic memory pass unfinished — entry stays pending for boot catch-up`,{filename:t.filename,reason:a.reason,attemptLimit:3}),null))}async function Qi(e,t,n){let r=await Ra(e.vfs,t.filename);if(n){let t=n.slice(n.lastIndexOf(`/`)+1);await Da(e.vfs,t)}return r?(delete t.memoryPending,W.info(`Agentic memory pass completed`,{filename:t.filename}),r):(W.info(`Agentic memory pass completed; index entry already gone`,{filename:t.filename}),null)}async function $i(e,n){try{return ea(await(e.pickIcon??(await t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-95xYFP4C.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39]))).pickLucideIcon)({subject:`"${n}" — an archived chat session`})??void 0)}catch(e){W.warn(`Icon pick failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}}function ea(e){if(e)return qt(e)?e:void 0}async function ta(e,t,n){if(!n){W.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let r=``;try{r=await pe({messages:t,instruction:me,model:e.model,apiKey:e.apiKey,maxTokens:qi,headers:e.headers})}catch(e){W.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!r.trim()||r.trim()===`NONE`){W.info(`Memory extraction returned no durable memories`);return}try{await ba(e.vfs,ma(pa(e)),r.trim(),`new-session`,{model:e.model,apiKey:e.apiKey,headers:e.headers}),W.info(`Memory extracted and appended on new-session`)}catch(e){W.warn(`Memory append failed`,{error:e instanceof Error?e.message:String(e)})}}async function na(e,t,n){if(!n)return``;try{return va(await pe({messages:t,instruction:he,model:e.model,apiKey:e.apiKey,maxTokens:Ji,headers:e.headers}))}catch(e){return W.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function ra(e,n,r,i,a,o=!1){let s=new Date().toISOString(),c=pa(e),l=await ga(e.vfs,c),u=l?.sessionId??crypto.randomUUID(),d=l?.filename??(i===`quick`?`pending-${Ge()}.md`:`${s.replace(/[:.]/g,`-`)}-${Xe(r)}.md`),f=ia(n.messages),p={cone:c,...c!==`cone`&&e.cone?.label?{coneLabel:e.cone.label}:{}},m={filename:d,sessionId:u,title:r,frozenAt:s,messageCount:n.messages.length,...f??{},...p,...a?{icon:a}:{},...i===`quick`||l?{pendingEnrichment:!0}:{},...o?{memoryPending:!0}:{},...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};try{await ya(e.vfs,D);let i=d.replace(/\.md$/,``),a=await sa(e.vfs,n.messages,i),o={id:n.id,sessionId:u,attachmentsKey:i,title:r,frozenAt:s,createdAt:n.createdAt,updatedAt:n.updatedAt,messageCount:n.messages.length,messages:a,...f??{},...p,...e.memory===`skip`?{memorySkipped:!0}:{},...l?.curatedThrough?{curatedThrough:l.curatedThrough}:{}};if(_e(`memory-v2`)){let{writeArchiveBundle:n}=await t(async()=>{let{writeArchiveBundle:e}=await import(`./session-jsonl-D4p25wJo.js`).then(e=>e.i);return{writeArchiveBundle:e}},__vite__mapDeps([54,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50]));await n(e.vfs,d,o)}else await e.vfs.writeFile(`${D}/${d}`,Ke(o));return await He(e.vfs,m),await e.vfs.flush(),W.info(`Cone session frozen`,{filename:d,title:r,cone:c,messageCount:n.messages.length,completedLiveSnapshot:!!l}),{...m,archive:o}}catch(e){return W.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}function ia(e){let t={total:0,input:0,output:0,cacheRead:0,cacheWrite:0},n=new Map,r=!1;for(let i of e){if(i.role!==`assistant`)continue;let{model:e,usage:a}=i;if(!e||!a||!oa(a))return null;let o=a.cost;r=!0,t.total+=o.total,t.input+=o.input,t.output+=o.output,t.cacheRead+=o.cacheRead,t.cacheWrite+=o.cacheWrite;let s=n.get(e)??{model:e,cost:0,turns:0,tokens:0};s.cost+=o.total,s.turns+=1,s.tokens+=a.input+a.output+a.cacheRead+a.cacheWrite,n.set(e,s)}return r?{cost:t,models:[...n.values()].sort((e,t)=>t.cost-e.cost)}:null}function aa(e){return typeof e==`number`&&Number.isFinite(e)}function oa(e){let{cost:t}=e;return[e.input,e.output,e.cacheRead,e.cacheWrite].every(aa)&&[t.input,t.output,t.cacheRead,t.cacheWrite,t.total].every(aa)}async function sa(e,t,n){let r={vfs:e,archiveDir:`${Yi}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(ua)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await ca(r,n));i.push({...e,attachments:t})}return i}async function ca(e,t){if(!ua(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await la(e.vfs,t.path);if(!r)return fa(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await ya(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function la(e,t){try{if(!await da(e,t))return null;let n=await e.readFile(t,{encoding:`binary`});if(!(n instanceof Uint8Array))throw Error(`Expected binary attachment content at ${t}`);return n}catch{return null}}function ua(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function da(e,t){let n=t.split(`/`).slice(1);if(n.length<2||n[0]!==`tmp`||n.some(e=>!e||e===`.`||e===`..`))return!1;let r=`/`;for(let t=0;t<n.length;t+=1){let i=(await e.readDir(r)).find(e=>e.name===n[t]);if(!i)return!1;if(t===n.length-1)return i.type===`file`;if(i.type!==`directory`)return!1;r=r===`/`?`/${n[t]}`:`${r}/${n[t]}`}return!1}function fa(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}function pa(e){return e.cone?.folder||`cone`}function ma(e){return vn({parentJid:null,folder:e}).memoryPath}async function ha(e,t){let n=fn({folder:t});try{return await e.load(n)}catch(e){return W.warn(`Failed to load cone chat session`,{sessionId:n,error:e instanceof Error?e.message:String(e)}),null}}async function ga(e,t){try{return Ye(await qe(e),t)}catch(e){W.warn(`Sessions index unreadable while looking for a live snapshot`,{error:e instanceof Error?e.message:String(e)});return}}function _a(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}function va(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}async function ya(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function ba(e,t,n,r,i){let a=t,o=``;try{let t=await e.readFile(a,{encoding:`utf-8`});o=typeof t==`string`?t:new TextDecoder().decode(t)}catch(t){if(!(t instanceof kt)||t.code!==`ENOENT`)throw t;await ya(e,a.slice(0,a.lastIndexOf(`/`)))}let s=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${r})`,c=`${o.length===0||o.endsWith(`
|
|
242
242
|
`)?``:`
|
|
243
|
-
`}\n${s}\n\n${n}\n`;await e.writeFile(a,o+c);try{await Ln({vfs:e,memoryPath:a,model:i?.model,apiKey:i?.apiKey,headers:i?.headers,signal:i?.signal})}catch(e){W.warn(`Cone memory budget step threw (append already committed)`,{error:e instanceof Error?e.message:String(e)})}}async function xa(e){return(await O(e)).filter(e=>(e.pendingEnrichment===!0||e.memoryPending===!0)&&Ca(e)<3)}async function Sa(e){let t={attempted:0,completed:0};if(!e.model||!e.apiKey)return t;try{for(let t of await O(e.vfs))t.memoryPending===!0&&t.memoryFailed===void 0&&Ca(t)>=3&&await Ba(e.vfs,t.filename,`catch-up retries exhausted (3)`);let n=await xa(e.vfs);for(let r of n)try{let n=await za(e.vfs,r.filename);if(!n)continue;t.attempted+=1,await wa(e.vfs,n,{model:e.model,apiKey:e.apiKey,headers:e.headers})&&(t.completed+=1)}catch(e){W.warn(`Pending session catch-up attempt failed`,{filename:r.filename,error:e instanceof Error?e.message:String(e)})}}catch(e){W.warn(`Pending session catch-up failed`,{error:e instanceof Error?e.message:String(e)})}return t}function Ca(e){let t=e.pendingAttemptCount;return typeof t==`number`&&Number.isInteger(t)&&t>0?t:0}async function wa(e,t,n){if(!t.pendingEnrichment&&!t.memoryPending)return null;let r=await ka(e,t);if(r===null)return null;let i=await Aa(e,t,r);if(i===null)return null;let{agentMessages:a}=i,o=await ja(e,t,i.chatMessages,n),s=o.curatorAlreadyRan,c=s||t.memorySkipped===!0?{...n,skipMemory:!0}:n,l=await Na(t,a,c,o.memoryMessages);if(l===null)return null;let u=await Oa(c,l.newTitle);await Pa(e,t,l.bullets,c);let d=await Ia(e,t,r,l.newTitle,u,n.skipMemory===!0);return d&&s&&(await Da(e,t.filename),await Va(e,d.filename),await Ta(e,t.filename)),d}async function Ta(e,t){for(let n of[kn(`/sessions/${t}`),In(`/sessions/${t}`)])try{await e.rm(n)}catch{}}async function Ea(e,t){try{return await e.stat(An(`/sessions/${t.filename}`)),!0}catch{return!1}}async function Da(e,t){try{await e.rm(An(`/sessions/${t}`))}catch{}}async function Oa(e,t){if(e.pickIcon)try{return await ea(await e.pickIcon({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){W.warn(`Enrichment icon pick failed (continuing without icon)`,{error:e instanceof Error?e.message:String(e)});return}}async function ka(e,t){try{let n=await e.readFile(Ue(t),{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?W.info(`Pending archive missing — treating as already enriched`,{filename:t.filename}):W.warn(`Failed to read pending archive (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}}async function Aa(e,t,n){let r;try{r=(await Cn(e,n,t.filename)).messages}catch(e){return W.warn(`Failed to parse pending archive — leaving entry intact`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}return r.length===0?(W.info(`Pending archive has no messages — skipping enrichment`,{filename:t.filename}),null):{agentMessages:_a(r),chatMessages:r}}async function ja(e,t,n,r){let i=_a([...n]);if(r.skipMemory===!0||t.memoryPending!==!0)return{curatorAlreadyRan:!1,memoryMessages:i};if(await Ea(e,t))return{curatorAlreadyRan:!0,memoryMessages:i};let a=await Mn(e,t,n);return a.caughtUp?{curatorAlreadyRan:!0,memoryMessages:i}:a.through>0?{curatorAlreadyRan:!1,memoryMessages:i.filter(e=>Ma(e)>a.through)}:{curatorAlreadyRan:!1,memoryMessages:i}}function Ma(e){let t=e.timestamp;return typeof t==`number`?t:0}async function Na(e,t,n,r=t){let i=``;if(!n.skipMemory)try{i=await pe({messages:r,instruction:me,model:n.model,apiKey:n.apiKey,maxTokens:qi,headers:n.headers})}catch(t){return W.warn(`Enrichment memory call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}let a=``;try{a=va(await pe({messages:t,instruction:he,model:n.model,apiKey:n.apiKey,maxTokens:Ji,headers:n.headers}))}catch(t){return W.warn(`Enrichment title call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return a?{bullets:i,newTitle:a}:(W.info(`Enrichment title call returned empty — entry stays pending`,{filename:e.filename}),null)}async function Pa(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await ba(e,ma(t.cone||`cone`),i,`pending-enrichment`,{model:r.model,apiKey:r.apiKey,headers:r.headers})}catch(e){W.warn(`Enrichment memory append failed (continuing with title rewrite)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}function Fa(e,t,n,r,i){let a=r??e.icon;return{filename:t,title:n,frozenAt:e.frozenAt,messageCount:e.messageCount,...e.cost?{cost:e.cost}:{},...e.models?{models:e.models}:{},...e.cone?{cone:e.cone}:{},...e.coneLabel?{coneLabel:e.coneLabel}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.curatedThrough?{curatedThrough:e.curatedThrough}:{},...a?{icon:a}:{},...e.completeSnapshotUnavailable?{completeSnapshotUnavailable:!0}:{},...i&&e.memoryPending?{memoryPending:!0}:{},...e.memorySkipped?{memorySkipped:!0}:{}}}async function Ia(e,t,n,r,i,a=!1){let o=Ue(t),s=Ve(t.filename),c=s?r:t.title,l=s?`${t.frozenAt.replace(/[:.]/g,`-`)}-${Xe(r)}.md`:t.filename,u=`${D}/${l}`;if(s)try{await ya(e,D);let r=La(n,c),i=Sn(t.filename),a=Sn(l),s=Je(r,o,u);if(s=Je(s,i,a),i!==a){let e=i.slice(i.lastIndexOf(`/`)+1),t=a.slice(a.lastIndexOf(`/`)+1);s=s.split(`sidecar: ${e}`).join(`sidecar: ${t}`)}await e.writeFile(u,s),await Tn(e,t.filename,l)}catch(e){return W.warn(`Enrichment write failed (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}let d=Fa(t,l,c,i,a);if(!await qa(e,t,d))return null;if(u!==o){try{await e.rm(o)}catch(e){W.info(`Stale pending archive cleanup failed (harmless)`,{oldPath:o,error:e instanceof Error?e.message:String(e)})}try{await wn(e,t.filename)}catch(e){W.info(`Stale pending sidecar cleanup failed (harmless)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}try{await e.flush()}catch{}return W.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:l,title:c}),d}function La(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}async function Ra(e,t){let n=null,r=T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let{memoryPending:a,pendingEnrichment:o,pendingAttemptCount:s,memoryFailed:c,...l}=r[i],u={...l,memoryCuratedAt:new Date().toISOString()},d=r.slice();d[i]=u,await e.writeFile(E,JSON.stringify(d,null,2)),await e.flush(),n=u});try{await r}catch(e){W.warn(`Failed to clear agentic memory pending marker`,{filename:t,error:e instanceof Error?e.message:String(e)})}return n}async function za(e,t){let n=null;return await T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r[i];if(!a.pendingEnrichment&&!a.memoryPending)return;let o=Ca(a);if(o>=3)return;n={...a,pendingAttemptCount:o+1};let s=r.slice();s[i]=n,await e.writeFile(E,JSON.stringify(s,null,2)),await e.flush()}),n}async function Ba(e,t,n){let r=T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r.slice();a[i]={...r[i],memoryFailed:n.slice(0,300)},await e.writeFile(E,JSON.stringify(a,null,2)),await e.flush()});try{await r}catch(e){W.warn(`Failed to record curator failure in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function Va(e,t){let n=T(async()=>{let n=await O(e),r=n.findIndex(e=>e.filename===t);if(r===-1)return;let{memoryFailed:i,...a}=n[r],o=n.slice();o[r]={...a,memoryCuratedAt:new Date().toISOString()},await e.writeFile(E,JSON.stringify(o,null,2)),await e.flush()});try{await n}catch(e){W.warn(`Failed to record curator completion in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function Ha(e,t,n){return T(async()=>{let r=await Ua(e),i=r.findIndex(e=>e.filename===t);if(i!==-1){let t=r.slice();t[i]=n;let a=t.filter((e,t)=>t===i||e.filename!==n.filename);return await e.writeFile(E,JSON.stringify(a,null,2)),`replaced`}let a=await Wa(e,r,t,n);if(a===`prepended`){let t=[n,...r.filter(e=>e.filename!==n.filename)];await e.writeFile(E,JSON.stringify(t,null,2))}else if(a===`replaced`){let t=r.map(e=>e.filename===n.filename?n:e);await e.writeFile(E,JSON.stringify(t,null,2))}else await Ka(e,r,t,n.filename);return a})}async function Ua(e){try{let t=await e.readFile(E,{encoding:`utf-8`}),n=JSON.parse(typeof t==`string`?t:new TextDecoder().decode(t));return Array.isArray(n)?n:[]}catch(e){if(!(e instanceof kt)||e.code!==`ENOENT`)throw e;return[]}}async function Wa(e,t,n,r){if(t.some(e=>e.filename===r.filename))return`replaced`;let i=r.sessionId;return(i&&!xn(i)?t.filter(e=>e.sessionId===i):[]).length===1?`superseded`:await Ga(e,`/sessions/${n}`)?`prepended`:`deleted`}async function Ga(e,t){try{return await e.stat(t),!0}catch(e){return e?.code!==`ENOENT`}}async function Ka(e,t,n,r){if(r===n||t.some(e=>e.filename===r))return;let i=`${D}/${r}`;try{await e.rm(i)}catch(e){e?.code!==`ENOENT`&&W.warn(`Enrichment could not drop its renamed copy`,{path:i,error:e})}let a=Sn(r);try{await wn(e,r)}catch(e){e?.code!==`ENOENT`&&W.warn(`Enrichment could not drop its renamed copy`,{path:a,error:e})}}async function qa(e,t,n){let r;try{r=await Ha(e,t.filename,n)}catch(e){return W.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),!1}return r===`superseded`||r===`deleted`?(W.info(`Enrichment dropped — the session changed during the pass`,{filename:t.filename,outcome:r}),!1):!0}async function Ja(e,t){return T(async()=>{let n=[];try{let t=await e.readFile(E,{encoding:`utf-8`}),r=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(r);Array.isArray(i)&&(n=i)}catch(e){if(!(e instanceof kt)||e.code!==`ENOENT`)throw e;return}if(!n.find(e=>e.filename===t))return;let r=n.map(e=>e.filename===t?{...e,completeSnapshotUnavailable:!0}:e);await e.writeFile(E,JSON.stringify(r,null,2))})}var Ya=`slicc:followers-changed`;function Xa(e){let t=e.replace(/^follower-/,``);return t.length>12?`${t.slice(0,8)}…`:t}function Za(e){return e.floatType===`ios`?`iOS`:e.floatType===`electron`?`Electron`:e.floatType===`extension`?`Extension`:e.floatType===`standalone`?`Standalone`:e.runtime?.includes(`cli`)?`CLI`:`Follower`}function Qa(e){return e.floatType===`ios`?`smartphone`:e.floatType===`electron`||e.floatType===`standalone`?`monitor`:e.floatType===`extension`?`blocks`:e.runtime?.includes(`cli`)?`terminal`:`radio`}function $a(e,t=Date.now()){if(!e)return null;let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let r=Math.max(0,Math.floor((t-n)/1e3));return r<60?`${r}s`:r<3600?`${Math.floor(r/60)}m`:r<86400?`${Math.floor(r/3600)}h`:`${Math.floor(r/86400)}d`}function eo(e){return e.health===`stalled`?`warn`:e.peerState===`connecting`?`idle`:e.peerState===`connected`&&e.health===`live`?`active`:`idle`}function to(e,t=Date.now()){let n=e.health===`stalled`?`stalled`:e.peerState===`connecting`?`connecting`:`connected`,r=$a(e.connectedAt,t);return r?`${n} ${r}`:n}function no(e){let t=[];return e.exec&&t.push(`can run commands`),e.computer&&t.push(`native screen`),e.cdp&&t.push(`hosts tabs`),t}function ro(e){return`${Za(e)} · ${Xa(e.runtimeId)}`}function io(e){return e.motd??e.runtime??void 0}function ao(e,t=Date.now()){return e.map(e=>({id:e.runtimeId,icon:Qa(e),title:ro(e),detail:io(e),state:eo(e),stateText:to(e,t),chips:no(e)}))}function oo(e){return e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78?`image/png`:e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?`image/jpeg`:null}function so(e){if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}if(e instanceof ArrayBuffer)return new Uint8Array(e.slice(0));if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}return Array.isArray(e)?Uint8Array.from(e):e&&typeof e==`object`?lo(e):new Uint8Array}function co(e){if(typeof e.byteLength==`number`)return e.byteLength;if(typeof e.length==`number`)return e.length;let t=-1;for(let n of Object.keys(e)){if(!/^\d+$/.test(n))continue;let e=Number(n);e>t&&(t=e)}return t+1}function lo(e){let t=co(e),n=new Uint8Array(t);for(let r=0;r<t;r++){let t=e[r];typeof t==`number`&&(n[r]=t&255)}return n}var uo=2,fo=768,po=class{computers=[];frames=new Map;listListeners=new Set;frameListeners=new Set;invocationListeners=new Set;sender=null;watchSubs=new Map;kernelWatch=new Map;nextWatchToken=1;invocations=new Map;list(){return this.computers.slice()}get(e){return this.computers.find(t=>t.id===e)??null}lastFrame(e){return this.frames.get(e)??null}onList(e){return this.listListeners.add(e),()=>this.listListeners.delete(e)}onFrame(e){return this.frameListeners.add(e),()=>this.frameListeners.delete(e)}onInvocations(e){return this.invocationListeners.add(e),()=>this.invocationListeners.delete(e)}setSender(e){this.sender=e}isWatching(e){return(this.watchSubs.get(e)?.length??0)>0}watchRefCount(e){return this.watchSubs.get(e)?.length??0}watch(e,t=uo,n=fo){if(!this.sender)throw Error(`computers store has no kernel sender`);let r=this.nextWatchToken++,i=this.watchSubs.get(e)??[];return i.push({token:r,fps:t,maxWidth:n}),this.watchSubs.set(e,i),this.syncKernelWatch(e),r}unwatch(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);let n=this.watchSubs.get(e);if(!n?.length)return;let r=t===void 0?n.length-1:n.findIndex(e=>e.token===t);if(!(r<0)){if(n.splice(r,1),n.length===0){this.watchSubs.delete(e),this.kernelWatch.delete(e),this.sender({type:`computer-unwatch`,id:e});return}this.syncKernelWatch(e)}}syncKernelWatch(e){let t=this.watchSubs.get(e);if(!t?.length||!this.sender)return;let n=Math.max(...t.map(e=>e.fps)),r=Math.max(...t.map(e=>e.maxWidth)),i=this.kernelWatch.get(e);i&&i.fps===n&&i.maxWidth===r||(this.kernelWatch.set(e,{fps:n,maxWidth:r}),this.sender({type:`computer-watch`,id:e,fps:n,maxWidth:r}))}input(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);this.sender({type:`computer-input`,id:e,events:t})}recordInvocation(e,t){this.invocations.set(e,t);for(let e of[...this.invocationListeners])e()}newestInvocation(e){return this.invocations.get(e)??null}applyList(e){this.computers=e.computers.slice();let t=new Set(this.computers.map(e=>e.id));for(let e of[...this.invocations.keys()])t.has(e)||this.invocations.delete(e);for(let e of[...this.frames.keys()])t.has(e)||this.frames.delete(e);for(let e of[...this.listListeners])e(this.computers)}applyFrame(e){let t=this.frames.get(e.id);if(t&&t.seq>e.seq)return;let n={seq:e.seq,mime:e.mime,width:e.width,height:e.height,bytes:so(e.bytes),...e.overCap?{overCap:!0}:{}};this.frames.set(e.id,n);for(let t of[...this.frameListeners])t(e.id,n)}},mo=null;function ho(){return mo||=new po,mo}var go=`__slicc_binary__`,_o=`b64`;function vo(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[go]===_o&&typeof t.data==`string`}function yo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)}function bo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)&&!vo(e)}function xo(e){if(e instanceof Uint8Array)return{[go]:_o,data:ve(e)};if(Array.isArray(e))return e.map(xo);if(yo(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=xo(r);return t}return e}function So(e){if(vo(e))return ye(e.data);if(Array.isArray(e))return e.map(So);if(bo(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=So(r);return t}return e}var Co=n(`panel-transport`);function wo(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function To(){return{onMessage:e=>{let t=(t,n,r)=>(wo(t)&&e(So(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=xo(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{Co.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Eo={summarizing:`summarizing`,fallback:`fallback`,cancelled:`discarded`,idle:`summarized`},Do=class{mintId;open=new Map;settled=new Map;constructor(e){this.mintId=e}apply(e,t,n,r){if(t===`extracting-memory`)return null;let i=this.open.get(e)??this.lateRetraction(e,t,n)??r;if(t!==`summarizing`&&!i)return null;t!==`summarizing`&&(this.open.delete(e),this.settled.delete(e));let a=i??this.mintId(e);if(t===`summarizing`&&this.open.set(e,a),(t===`idle`||t===`fallback`)&&n.roundId&&this.settled.set(e,{messageId:a,roundId:n.roundId}),t===`cancelled`)return{kind:`retract`,messageId:a};let o={trigger:n.trigger,state:Eo[t],...n.transcriptPath?{transcriptPath:n.transcriptPath}:{}};return t===`summarizing`?{kind:`open`,messageId:a,marker:o}:{kind:`settle`,messageId:a,marker:o}}forget(e){this.open.delete(e),this.settled.delete(e)}lateRetraction(e,t,n){if(t!==`cancelled`||!n.roundId)return;let r=this.settled.get(e);return r?.roundId===n.roundId?r.messageId:void 0}},Oo=2e3,ko=5e3,G=n(`offscreen-client`),Ao=class{eventListeners=new Set;backgroundEventListeners=new Set;backgroundMessageId=new Map;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;compactionRows=new Do(e=>`compaction-${e}-${K()}`);toolDepth=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingWebhookDeliveries=new Map;pendingAgentSpawnRequests=new Map;pendingThinkingAcks=new Map;streamThinkingByUnit=new Map;pendingModelAcks=new Map;pendingUserMessageAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=new Map;pendingSudoRequests=new Map;transport;_selectedScoopJid=null;get selectedScoopJid(){return this._selectedScoopJid}scoopSelectedListeners=new Set;onScoopSelected(e){return this.scoopSelectedListeners.add(e),()=>{this.scoopSelectedListeners.delete(e)}}setSelectedScoopJid(e){if(this._selectedScoopJid!==e&&(this.handOverOpenMessages(this._selectedScoopJid,e),this._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){G.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??To(),this.setupMessageListener(),ho().setSender(e=>this.send(e))}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}emitAgentError(e){this.emitToUI({type:`error`,error:e})}createAgentHandle(){return{sendMessage:(e,t,n,r)=>{if(!this.selectedScoopJid){this.emitToUI({type:`error`,error:`No scoop selected`});return}this.send({type:`user-message`,scoopJid:this.selectedScoopJid,text:e,attachments:n,messageId:t??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,...r?.steer?{steer:!0}:{},...r?.guestGate?{guestGate:r.guestGate}:{}})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}sendUserMessage(e){if(this.locked)return Promise.reject(Error(`This window is detached. Close it and use the detached tab.`));let t=`um-${K()}`,n=new Promise((e,n)=>{this.pendingUserMessageAcks.set(t,{resolve:e,reject:n})});this.send({type:`user-message`,requestId:t,scoopJid:e.scoopJid,text:e.text,messageId:e.messageId,...e.attachments?{attachments:[...e.attachments]}:{},...e.steer?{steer:!0}:{},...e.guestGate?{guestGate:e.guestGate}:{}});let r,i=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`the kernel did not answer in time`)),ko)});return Promise.race([n,i]).finally(()=>{r!==void 0&&clearTimeout(r),this.pendingUserMessageAcks.delete(t)})}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e,t={}){if(!k(e))throw Error(`OffscreenClient.registerScoop is cone-only; use scoop_scoop for non-cone scoops`);this.scoops.find(t=>t.name===e.name)||(this.scoops.push(e),this.scoopStatuses.set(e.jid,`initializing`)),this.send({type:`cone-create`,name:e.name,...t.description?{description:t.description}:{},...t.prompt?{prompt:t.prompt}:{},...e.model?{model:e.model}:{}})}async unregisterScoop(e){let t=this.scoops.find(t=>t.jid===e);if(t&&k(t)&&sn(this.scoops).length<=1)throw Error(`Cannot remove the last cone`);this.send({type:`scoop-drop`,scoopJid:e}),this.scoops=this.scoops.filter(t=>t.jid!==e),this.scoopStatuses.delete(e)}createScoopTab(e){}async getGlobalMemory(){if(!this.localFs)return``;try{let e=await this.localFs.readFile(`/shared/CLAUDE.md`,{encoding:`utf-8`});return typeof e==`string`?e:new TextDecoder().decode(e)}catch{return``}}getScoopContext(e){if(this.localFs)return{getFS:()=>this.localFs}}getSharedFS(){return this.localFs}stopScoop(e){this.send({type:`abort`,scoopJid:e})}async clearQueuedMessages(e){}async deleteQueuedMessage(e,t){this.send({type:`delete-queued-message`,scoopJid:e,messageId:t})}updateModel(){this.send({type:`refresh-model`})}reloadSkills(){this.send({type:`reload-skills`})}setScoopModel(e,t){let n=`model-${K()}`,r=new Promise(e=>{this.pendingModelAcks.set(n,e)});return this.send({type:`set-scoop-model`,requestId:n,scoopJid:e,model:t}),Promise.race([r,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingModelAcks.delete(n))}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t,n){let r=`thinking-${K()}`,i=new Promise(e=>{this.pendingThinkingAcks.set(r,e)});return this.send({type:`set-thinking-level`,requestId:r,scoopJid:e,level:t,effortOverride:n}),Promise.race([i,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingThinkingAcks.delete(r))}async clearAllMessages(e,t={}){let n=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingClearAcks.set(n,e)});this.send({type:`clear-chat`,requestId:n,...e?{scoopJid:e}:{},...t.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}}),await Promise.race([r,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(n)}spawnAgent(e){let t=`agent-${K()}`,n=new Promise((e,n)=>{this.pendingAgentSpawnRequests.set(t,{resolve:e,reject:n})}),{signal:r,...i}=e;return this.send({type:`agent-spawn-request`,requestId:t,options:i}),r&&(r.aborted?this.send({type:`agent-spawn-abort`,requestId:t}):r.addEventListener(`abort`,()=>this.send({type:`agent-spawn-abort`,requestId:t}),{once:!0})),n}clearFilesystem(){this.send({type:`clear-filesystem`})}requestScoopMessages(e){this.send({type:`request-scoop-messages`,scoopJid:e})}async getScoopTranscript(e){let t=`tr-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingTranscriptRequests.set(t,e)});this.send({type:`request-scoop-transcript`,requestId:t,scoopJid:e});let r=await Promise.race([n,new Promise(e=>setTimeout(()=>e(``),5e3))]);return this.pendingTranscriptRequests.delete(t),r}async getMessagesForScoop(e){let t=`cm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingChatMessagesRequests.set(t,e)});this.send({type:`request-scoop-chat-messages`,requestId:t,scoopJid:e});let r=!1,i=await Promise.race([n,new Promise(e=>setTimeout(()=>{r=!0,e([])},5e3))]);return this.pendingChatMessagesRequests.delete(t),r&&G.warn(`getMessagesForScoop timed out`,{scoopJid:e}),i}async requestSudoApproval(e,t=6e5){let n=`sudo-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingSudoRequests.set(n,e)});this.send({type:`request-sudo-approval`,requestId:n,request:e});let i=await Promise.race([r,new Promise(e=>setTimeout(()=>e({decision:`deny`,reason:`unavailable`}),t))]);return this.pendingSudoRequests.delete(n),i}async getSessionStats(){let e=`st-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingStatsRequests.set(e,t)});this.send({type:`request-session-stats`,requestId:e});let n=await Promise.race([t,new Promise(e=>setTimeout(()=>e(null),5e3))]);return this.pendingStatsRequests.delete(e),n}requestState(){this.send({type:`request-state`});let e=0;this.stateRetryTimer=setInterval(()=>{if(e++,this.ready||e>20){this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null);return}G.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,origin:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}async sendWebhookEvent(e,t,n){let r=`wh-${K()}`,i=new Promise(e=>{this.pendingWebhookDeliveries.set(r,e)});this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n,requestId:r});try{return await Promise.race([i,new Promise(e=>setTimeout(()=>e(null),Oo))])}finally{this.pendingWebhookDeliveries.delete(r)}}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){if(!this.applySurfacePush(e))switch(e.type){case`offscreen-ready`:this.ready?(G.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):G.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.handleCompactionState(e);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`lick-webhook-delivery`:{let t=this.pendingWebhookDeliveries.get(e.requestId);t&&(this.pendingWebhookDeliveries.delete(e.requestId),t(e.disposition));break}case`agent-spawn-result`:this.handleAgentSpawnResult(e);break;case`set-scoop-model-ack`:this.handleScoopModelAck(e);break;case`set-thinking-level-ack`:this.handleThinkingLevelAck(e);break;case`user-message-ack`:this.handleUserMessageAck(e);break;case`scoop-created`:this.handleScoopCreated(e);break;case`scoop-list`:this.handleScoopList(e);break;case`state-snapshot`:this.handleStateSnapshot(e);break;case`error`:this.handleError(e);break;case`lick-backpressure`:this.callbacks.onLickBackpressure?.(e.scoopJid,{count:e.count,waitingMs:e.waitingMs});break;case`incoming-message`:this.handleIncomingMessage(e);break;case`message-updated`:this.handleMessageUpdated(e);break;case`scoop-messages-replaced`:{let t=e;this.resyncStreamPointer(t.scoopJid,t.messages),this.callbacks.onScoopMessagesReplaced?.(t.scoopJid,t.messages,t.queuedIds);break}case`scoop-transcript`:{let t=e,n=this.pendingTranscriptRequests.get(t.requestId);n&&(this.pendingTranscriptRequests.delete(t.requestId),n(t.transcript));break}case`scoop-chat-messages`:{let t=e,n=this.pendingChatMessagesRequests.get(t.requestId);n&&(this.pendingChatMessagesRequests.delete(t.requestId),n(t.messages));break}case`sudo-approval`:{let t=e,n=this.pendingSudoRequests.get(t.requestId);n&&(this.pendingSudoRequests.delete(t.requestId),n(t.decision));break}case`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,burnRate:t.burnRate,fills:t.fills,models:t.models??[],scoops:t.scoops??[],...t.budget?{budget:t.budget}:{}}));break}case`tray-runtime-status`:{let t=e;jo(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event)}}applySurfacePush(e){if(e.type===`computers`)return ho().applyList(e),!0;if(e.type===`computer-frame`)return ho().applyFrame(e),!0;switch(e.type){case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:case`terminal-mode`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){G.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}return!0;default:return!1}}handleAgentSpawnResult(e){let t=this.pendingAgentSpawnRequests.get(e.requestId);t&&(this.pendingAgentSpawnRequests.delete(e.requestId),e.ok?t.resolve(e.result):t.reject(Error(e.error)))}terminalEventListeners=new Set;onTerminalEvent(e){return this.terminalEventListeners.add(e),()=>this.terminalEventListeners.delete(e)}resyncStreamPointer(e,t){let n;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.role===`assistant`&&r.isStreaming){n=r.id;break}}n===void 0?this.currentMessageId.delete(e):this.currentMessageId.set(e,n)}trackToolPhase(e,t){let n=this.toolDepth.get(e)??0,r=t===null?0:Math.max(0,n+t);r===0?this.toolDepth.delete(e):this.toolDepth.set(e,r),n>0!=r>0&&this.callbacks.onScoopPhaseChange?.(e,r>0?`tool`:`thinking`)}handleToolUiAgentEvent(e){if(e.displayScoopJid){let t=`tool-ui-${e.requestId??``}`;e.eventType===`tool_ui`?this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``}):e.eventType===`tool_ui_done`&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});return}if(e.eventType===`tool_ui`){let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${K()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});return}let t=this.currentMessageId.get(e.scoopJid);t&&(e.eventType===`tool_ui_done`?this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``}):e.progress&&this.emitToUI({type:`tool_progress`,messageId:t,toolName:e.toolName??``,progress:e.progress,toolCallId:e.toolCallId}))}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid)}switch(e.eventType){case`tool_start`:this.trackToolPhase(e.scoopJid,1);break;case`tool_end`:this.trackToolPhase(e.scoopJid,-1);break;case`turn_end`:this.trackToolPhase(e.scoopJid,null)}if((e.displayScoopJid??e.scoopJid)!==this.selectedScoopJid){this.translateTranscriptEvent(e,this.backgroundMessageId,t=>this.emitBackground(e.scoopJid,t));return}switch(e.eventType){case`tool_ui`:case`tool_ui_done`:case`tool_progress`:this.handleToolUiAgentEvent(e);break;default:this.translateTranscriptEvent(e,this.currentMessageId,e=>this.emitToUI(e))}}translateTranscriptEvent(e,t,n){let r=()=>{let r=t.get(e.scoopJid);return r||(r=`scoop-${e.scoopJid}-${K()}`,t.set(e.scoopJid,r),n({type:`message_start`,messageId:r})),r};switch(e.eventType){case`text_delta`:n({type:`content_delta`,messageId:r(),text:e.text??``});break;case`tool_start`:n({type:`tool_use_start`,messageId:r(),toolName:e.toolName??``,toolInput:e.toolInput,toolCallId:e.toolCallId});break;case`tool_end`:{let r=t.get(e.scoopJid);r&&n({type:`tool_result`,messageId:r,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError,toolCallId:e.toolCallId});break}case`response_done`:{let r=t.get(e.scoopJid);r&&(n({type:`content_done`,messageId:r,model:e.model,usage:e.usage}),t.delete(e.scoopJid));break}case`turn_end`:{let r=t.get(e.scoopJid)??`done-${e.scoopJid}-${K()}`;t.delete(e.scoopJid),n({type:`turn_end`,messageId:r});break}}}handOverOpenMessages(e,t){let n=(e,t)=>{t&&this.emitBackground(e,{type:`content_done`,messageId:t})};e&&n(e,this.currentMessageId.get(e)),t&&(n(t,this.backgroundMessageId.get(t)),this.backgroundMessageId.delete(t))}onBackgroundUnitEvent(e){return this.backgroundEventListeners.add(e),()=>this.backgroundEventListeners.delete(e)}emitBackground(e,t){for(let n of this.backgroundEventListeners)try{n(e,t)}catch(e){G.error(`Background listener error`,{error:e instanceof Error?e.message:String(e)})}}renderCompactionNotice(e,t,n,r){let i=this.compactionRows.apply(e,t,n,r);i&&e===this.selectedScoopJid&&this.emitToUI({type:`compaction_notice`,messageId:i.messageId,marker:i.kind===`retract`?{trigger:n.trigger,state:`discarded`}:i.marker})}handleCompactionState(e){let t={trigger:e.trigger??`threshold`,...e.transcriptPath?{transcriptPath:e.transcriptPath}:{},...e.failure?{failure:e.failure}:{},...e.roundId?{roundId:e.roundId}:{}};this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state,t),this.renderCompactionNotice(e.scoopJid,e.state,t,e.rowId)}handleScoopStatus(e){let t=this.scoopStatuses.get(e.scoopJid);this.scoopStatuses.set(e.scoopJid,e.status),t!==e.status&&this.trackToolPhase(e.scoopJid,null),this.callbacks.onStatusChange(e.scoopJid,e.status)}handleScoopCreated(e){let t=this.msgScoopToRegistered(e.scoop);this.scoops=this.scoops.filter(e=>e.name!==t.name||e.jid===t.jid),this.scoops.find(e=>e.jid===t.jid)||this.scoops.push(t),this.scoopStatuses.set(t.jid,e.scoop.status),this.callbacks.onScoopCreated(t)}wireScoops(){return this.scoops.map(e=>{let t=ln(e),n=un(e),r={...e.config,...t?{modelId:t.id,modelProviderId:t.provider}:{},...n.level?{thinkingLevel:n.level}:{},...n.effortOverride?{effortOverride:n.effortOverride}:{}};return{jid:e.jid,name:e.name,folder:e.folder,parentId:e.parentJid,assistantLabel:e.assistantLabel,status:this.scoopStatuses.get(e.jid)??`ready`,...Object.keys(r).length>0?{config:r}:{}}})}handleScoopModelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&(t.model=e.model?{...e.model}:void 0,this.callbacks.onScoopListUpdate(this.wireScoops()))}this.pendingModelAcks.get(e.requestId)?.(e.applied)}getStreamThinking(e){return this.streamThinkingByUnit.get(e)}handleThinkingLevelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&on(t,e.level===void 0?void 0:{level:e.level,effortOverride:e.effortOverride}),e.resolvedLevel&&this.streamThinkingByUnit.set(e.scoopJid,{level:e.resolvedLevel===`max`?`xhigh`:e.resolvedLevel,...e.resolvedEffortOverride?{effortOverride:e.resolvedEffortOverride}:{}})}this.pendingThinkingAcks.get(e.requestId)?.(e.applied)}handleUserMessageAck(e){let t=this.pendingUserMessageAcks.get(e.requestId);t&&(e.ok?t.resolve():t.reject(Error(e.error?.trim()||`the kernel refused the message`)))}handleScoopList(e){this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){G.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&jo(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){let t={type:`error`,error:e.error,...e.endTurn===!1?{endTurn:!1}:{}};e.scoopJid===this.selectedScoopJid?this.emitToUI(t):e.scoopJid&&this.emitBackground(e.scoopJid,t)}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}msgScoopToRegistered(e){return an({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId,requiresTrigger:e.parentId!==null,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}})}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){G.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function K(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function jo(e,t){nn({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),pt({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function Mo(e){let t=e.createAgentHandle(),n=null,r=null;return{onAgentEvent:e=>t.onEvent(e),sendSprinkleLick:(t,n,r,i)=>e.sendSprinkleLick(t,n,r,i?{unitJid:i}:void 0),sendToolUiAction:(t,n,r)=>e.sendToolUiAction(t,n,r),deleteQueuedMessage:(t,n)=>e.deleteQueuedMessage(t,n),emitAgentError:t=>e.emitAgentError(t),getRecord:t=>e.getScoops().find(e=>e.jid===t),speaksReplies:!0,takeAttachments:()=>n?.(),onTurnIdle:()=>r?.(),welcome:{intercept:null},setAttachmentSource:e=>{n=e},setTurnIdleHook:e=>{r=e}}}var No={onAgentEvent:()=>()=>void 0,sendSprinkleLick:()=>void 0,sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.resolve(),emitAgentError:()=>void 0},Po=`A follower cannot cancel the leader’s queued message`;function Fo(e){return{onAgentEvent:e.onAgentEvent,sendSprinkleLick:(t,n,r)=>e.getSync()?.sendSprinkleLick(t,n,r),sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.reject(Error(Po)),emitAgentError:e.onAgentError,readOnlyToolUi:!0}}function q(e){return!e.includes(`\0`)}function Io(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!q(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!q(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!q(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!q(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(q(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Lo(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:(t,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function Ro(e){let t=Lo(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}async function zo(e,t,n,r,i,a){let o=e;if(o?.type){if(o.type===`cdp-cmd`){let r=e;if((r.gen??a())<a()){n.send({type:`cdp-response`,id:r.id,error:`dropped: command crossed a CDP connection reset in flight`});return}try{i&&t.state!==`connected`&&t.superseded!==!0&&await i();let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(o.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(o.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i)}}}function Bo(e,t){for(let[n,r]of t)e.off(n,r),e.on(n,r)}var Vo=1e4;function Ho(e){return new Promise((t,n)=>{let r=!1,i=null,a=null,o=e=>{r||(r=!0,clearTimeout(s),a&&clearInterval(a),i?.(),e?n(e):t())},s=setTimeout(()=>o(Error(`page CDP client is still connecting`)),Vo),c=e=>{e===`connected`?o():e===`disconnected`&&o(Error(`page CDP client failed to reconnect`))};e.onStateChange?i=e.onStateChange(e=>c(e)):a=setInterval(()=>c(e.state),50),c(e.state)})}function Uo(e,t,n={}){let r=Lo(e),i=null,a=n.reconnect?()=>(i||=(t.state===`connecting`?Ho(t):n.reconnect()).finally(()=>{i=null}),i):null,o=new Map,s=r.onMessage(e=>{zo(e,t,r,o,a,()=>l)}),c=t.state,l=0,u=t.onStateChange?.((e,n)=>{if(e!==c){if(c=e,e===`disconnected`){l+=1,r.send({type:`cdp-reset`,reason:n??`page CDP client disconnected`});return}e===`connected`&&(Bo(t,o),r.send({type:`cdp-ready`}))}});return()=>{s(),u?.();for(let[e,n]of o)t.off(e,n);o.clear()}}function Wo(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function Go(e){let t=null,n=!1,r=!1,i=!1,a=0,o=Date.now(),s,c=()=>{t!==null&&(clearTimeout(t),t=null)},l=()=>{c(),!(n||r||i)&&(t=setTimeout(()=>{if(n||r||i)return;if(a+=1,a<e.readyStallLimit){e.onReadyStall?.({elapsedMs:Date.now()-o,stalls:a,stage:s}),l();return}i=!0,c();let t=e.readyTimeoutMs*e.readyStallLimit,u=s?` (last progress: ${s})`:``;e.onExhausted(`Kernel worker did not signal ready within ${t}ms${u}`)},e.readyTimeoutMs))};return{pause(){r||i||(n=!0,c())},restart(){r||i||(n=!1,a=0,o=Date.now(),l())},arm:l,clear(){r=!0,c()},noteProgress(t){r||i||(t&&(s=t,e.onBootProgress?.(t)),!n&&(a=0,l()))},timedOut:()=>i}}function Ko(e,t,n){let r=()=>{},i=()=>{},a=()=>{};return{ready:new Promise((o,s)=>{let c=null,l=Go({readyTimeoutMs:n,readyStallLimit:Math.max(1,t.readyStallLimit??(t.onReadyStall?3:1)),onReadyStall:t.onReadyStall,onBootProgress:t.onBootProgress,onExhausted:e=>{t.onLateReady||r(),s(Error(e))}});i=()=>l.pause(),a=()=>l.restart(),r=()=>{c!==null&&(e.removeEventListener(`message`,c),c=null),l.clear()},c=e=>{let n=e.data;if(n?.type===`kernel-worker-boot-progress`){l.noteProgress(n.stage);return}if(n?.type===`kernel-worker-ready`){if(r(),l.timedOut()){t.onLateReady?.();return}o();return}if(n?.type===`kernel-worker-boot-error`){r();let e=n.message??`unknown error`,t=n.code,i=Error(`Kernel worker boot failed: ${e}`);t&&(i.code=t),s(i)}},e.addEventListener(`message`,c),l.arm()}),cleanup:()=>r(),pauseReadyDeadline:()=>i(),restartReadyDeadline:()=>a()}}function qo(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=Ro(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Uo(o.port1,n,{...e.reconnectCdp?{reconnect:e.reconnectCdp}:{}}),{ready:u,cleanup:d,pauseReadyDeadline:f,restartReadyDeadline:p}=Ko(a.port1,e,r),m={type:`kernel-worker-init`,kernelPort:a.port2,cdpPort:o.port2,localStorageSeed:i,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,syncFsBridgeEnabled:e.syncFsBridgeEnabled??!1,syncFsChannelNonce:e.syncFsChannelNonce??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null,pageBuildId:`6.248.2-mv5efutd`,pageLoadedAt:globalThis.performance?.timeOrigin??Date.now(),flagFloat:e.flagFloat??null,appPageUrl:globalThis.location?.href??null};t.postMessage(m,[a.port2,o.port2]);let h=!1;return{client:c,ready:u,pauseReadyDeadline:f,restartReadyDeadline:p,dispose(){if(!h){h=!0,d(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Jo(e){return qo({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-C8b5lZTP.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,reconnectCdp:e.reconnectCdp,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Wo(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,syncFsBridgeEnabled:e.syncFsBridgeEnabled,syncFsChannelNonce:e.syncFsChannelNonce,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId,flagFloat:e.flagFloat,onWorkerScriptError:e.onWorkerScriptError,onReadyStall:e.onReadyStall,readyStallLimit:e.readyStallLimit,onLateReady:e.onLateReady,onBootProgress:e.onBootProgress})}var Yo=1048576,Xo=`r`;function Zo(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Qo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $o(e,t,n){if(typeof e==`string`){n.push({pointer:t,value:e});return}if(Array.isArray(e)){for(let r=0;r<e.length;r++)$o(e[r],`${t}/${r}`,n);return}if(Qo(e))for(let[r,i]of Object.entries(e))$o(i,`${t}/${Zo(r)}`,n)}function es(e,t,n){if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=es(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}if(Qo(e)){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=es(o,`${t}/${Zo(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}return e}function ts(e,t,n){if(Qo(e))return es(e,t,n);if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=ts(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}return e}function ns(e){let t=new Map;for(let n of e.matchAll(/⟦REDACTED:([^:⟧]+):([^⟧]+)⟧/g)){let e=n[0],r=t.get(e);r?r.count++:t.set(e,{category:n[1],id:n[2],count:1})}return t}async function rs(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new w(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>Yo)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new w(`redaction-unavailable`)}if(c.length!==s.length)throw new w(`redaction-unavailable`);r.push(...c),i=o}return r}function is(e,t,n,r){let i=[],a=ns(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=ns(t);for(let[e,{category:t,id:r,count:s}]of o)s>(a.get(e)?.count??0)&&i.push({id:r,category:t,detector:`known-secret`,target:n});let{text:s,matches:c,nextId:l}=Ze(t,Xo,r);for(let{id:e,category:t}of c)i.push({id:e,category:t,detector:`credential-pattern`,target:n});return{finalText:s,redactions:i,nextId:l}}function as(e,t,n){for(let{redactions:r}of e)for(let e of r)t.push(e),n[e.category]=(n[e.category]??0)+1}async function os(e,t,n,r){if(r?.aborted)throw new w(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];$o(a,``,o);let s=o.filter(e=>!Re(e.pointer)),c=[...t.entries()],l=await rs([...s.map(e=>e.value),...c.map(([,e])=>e)],n,r),u=[],d={},f=1,p=new Map,m=[];for(let e=0;e<s.length;e++){let t=s[e],n=is(t.value,l[e],{kind:`json`,pointer:t.pointer},f);f=n.nextId,n.finalText!==t.value&&p.set(t.pointer,n.finalText),m.push(n)}as(m,u,d);let h=new Map,g=s.length,_=[];for(let e=0;e<c.length;e++){let[t,n]=c[e],r=is(n,l[g+e],{kind:`attachment`,attachmentId:t},f);f=r.nextId,h.set(t,r.finalText),_.push(r)}as(_,u,d);let v=ts(e,``,p);return{document:{...v,privacy:{...v.privacy,redactionCounts:d,redactions:u}},textAttachments:h}}function ss(e,t){let n=e.startsWith(`text/`)||e===`application/json`,r=/\.(?:txt|md|json|csv|xml|ya?ml|js|mjs|cjs|ts|tsx|css|html)$/i.test(t);return n||r?`text-redacted`:`binary-unchanged`}var cs={"image/png":`.png`,"image/jpeg":`.jpg`,"image/gif":`.gif`,"image/webp":`.webp`,"image/svg+xml":`.svg`,"image/bmp":`.bmp`,"application/pdf":`.pdf`,"application/zip":`.zip`,"application/gzip":`.gz`,"application/json":`.json`,"text/plain":`.txt`,"text/markdown":`.md`,"text/csv":`.csv`,"text/html":`.html`,"text/xml":`.xml`,"application/xml":`.xml`};function ls(e,t){return cs[e]??(t===`text-redacted`?`.txt`:`.bin`)}function us(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${ls(t,n)}`}function ds(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function fs(e){let t=[];for(let n of e.conversations){let e=0;for(let r of n.messages){let i=r.role;if(i!==`user`&&i!==`assistant`&&i!==`tool-result`)continue;let a=0;for(let o of r.content)o.type===`attachment-ref`&&(t.push({attachmentId:o.attachmentId,conversationId:n.id,messageId:r.id,role:i,userOrdinal:e,imgIndex:a}),a++);i===`user`&&e++}}return t}async function ps(e,t,n,r,i){let a=ss(e.mimeType,e.name),o={attachmentId:t,originalName:e.name,mimeType:e.mimeType,handling:a,present:!0,sourceConversationId:n,sourceMessageId:r};if(a===`text-redacted`){let t;if(e.text!==void 0)t=e.text;else if(e.data!==void 0)t=new TextDecoder().decode(ds(e.data));else if(e.path!==void 0&&i!==void 0)try{t=new TextDecoder().decode(await i(e.path))}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return t===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawText:t}}let s;if(e.data!==void 0)s=ds(e.data);else if(e.path!==void 0&&i!==void 0)try{s=await i(e.path)}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return s===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawBytes:s}}function ms(e,t,n,r){let i=[],a=new Set,o=new Set;for(let s of e){if(s.role!==`user`){let e=n.get(s.attachmentId);e===void 0?i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId})):i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`image-${s.imgIndex}`,mimeType:e.mimeType,handling:`binary-unchanged`,rawBytes:ds(e.data),present:!0,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let e=(t.get(s.conversationId)??[]).filter(e=>e.role===`user`)[s.userOrdinal];if(e===void 0){a.add(s.conversationId),i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-association-unavailable`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let c=(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:e})=>e.kind===`image`||e.kind===`file`&&e.data!==void 0)[s.imgIndex];if(c===void 0){i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}o.add(`${s.conversationId}:${e.id}:${c.i}`),i.push(ps(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function hs(e,t,n){return(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:r,i})=>(r.kind===`text`||r.kind===`file`&&(r.data!==void 0||r.path!==void 0))&&!n.has(`${t}:${e.id}:${i}`))}function gs(e,t,n,r,i,a,o){let s=hs(t,n,i),c=[];for(let t=0;t<s.length;t++){let{a:i}=s[t],l=`${e.id}-file-${t}`;r.has(l)||(a.push(ps(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function _s(e,t,n,r,i){let a=new Map,o=[];for(let s of e.conversations){let e=(t.get(s.id)??[]).filter(e=>e.role===`user`),c=0;for(let t of s.messages){if(t.role!==`user`)continue;let l=e[c];if(c++,l===void 0)continue;let u=gs(t,l,s.id,n,r,o,i);u.length>0&&(a.has(s.id)||a.set(s.id,new Map),a.get(s.id).set(t.id,[...t.content,...u]))}}return{updates:a,additionalPendingPromises:o}}function vs(e,t){let n=new Map,r=0,i=new Map;for(let t of e)t.handling===`text-redacted`&&t.rawText!==void 0&&n.set(t.attachmentId,t.rawText),t.present&&i.set(t.attachmentId,us(r++,t.mimeType,t.handling));for(let n of e)!n.present&&n.missingReason!==void 0&&t.add(n.missingReason);return{rawAttachments:e.map(e=>e.present?{id:e.attachmentId,path:i.get(e.attachmentId),originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!0}:{id:e.attachmentId,path:``,originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!1,missingReason:e.missingReason??`attachment-file-missing`}),textMap:n}}async function ys(e,t,n,r,i){let{rawAttachments:a,textMap:o}=vs(e,n),s,c;try{let e=await os({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof w?e:new w(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new w(`schema-invalid`);l.set(t.attachmentId,t)}let u=new Map,d=await Promise.all(s.attachments.map(async e=>{if(!e.present||!e.path)return e;let t=l.get(e.id);if(t===void 0)throw new w(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await Pe(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function bs(e){let{document:t,chatMessagesByConversation:n,knownSecrets:r,signal:i}=e,a=e.canonicalImages??new Map,o=e.vfsReader,s=new Set,{pendingPromises:c,mismatchedConvIds:l,processedUiPositions:u}=ms(fs(t),n,a,o);l.size>0&&s.add(`attachment-association-unavailable`);for(let e of t.conversations)e.messages.filter(e=>e.role===`user`).length>(n.get(e.id)??[]).filter(e=>e.role===`user`).length&&s.add(`attachment-association-unavailable`);let d=await Promise.all(c),{updates:f,additionalPendingPromises:p}=_s(t,n,new Set(d.map(e=>e.attachmentId)),u,o),m=await Promise.all(p),h=[...d,...m],g=t;f.size>0&&(g={...t,conversations:t.conversations.map(e=>{let t=f.get(e.id);return t?{...e,messages:e.messages.map(e=>{let n=t.get(e.id);return n?{...e,content:n}:e})}:e})});let{redactedDocument:_,bundleFiles:v}=await ys(h,g,s,r,i),y=[..._.session.completeness.missing.filter(e=>!s.has(e)),...s];return{document:{..._,session:{..._.session,completeness:{status:y.length>0?`partial`:_.session.completeness.status,missing:y}}},bundleFiles:v}}var xs=50;function Ss(e){return fn(e)}function Cs(e,t){return e.map(e=>{let n=t.isProcessing(e.jid)?`1`:`0`,r=t.getAgentMessages(e.jid);if(r===null)return`${e.jid}:${n}:null`;let i=r.length,a=r[i-1],o=a?.role??``,s=a&&`timestamp`in a?a.timestamp:-1,c=a&&`toolCallId`in a?a.toolCallId:``;return`${e.jid}:${n}:${i}:${o}:${s}:${c}`}).join(`,`)}function ws(e,t,n,r){let i=new Map;for(let e of t)i.set(e.id,e);let a=new Map;for(let e of n)a.set(e.id,e);let o=[],s=new Map;for(let t of e){let e=r.getAgentMessages(t.jid)??i.get(t.jid)?.messages??[],n={id:t.jid,kind:k(t)?`cone`:`scoop`,name:t.name,...t.folder&&!k(t)?{folder:t.folder}:{},...t.parentJid?{parentConversationId:t.parentJid}:{},...t.originToolCallId?{originToolCallId:t.originToolCallId}:{},messages:e};o.push(n);let c=Ss(t),l=a.get(c);l&&s.set(t.jid,l.messages)}return{sources:o,chatMessagesByConversation:s}}async function Ts(e,t,n={}){let r=e=>n.rootJid===void 0?e:dn(e,n.rootJid);for(;;){let n=r(e.listScoops());for(;n.some(t=>e.isProcessing(t.jid));)if(t?.aborted||(await e.wait(xs,t),t?.aborted))throw new w(`transfer-aborted`);let i=Cs(n,e),[a,o]=await Promise.all([e.loadPersistedSessions(),e.loadUiChatSessions()]);if(t?.aborted)throw new w(`transfer-aborted`);let s=r(e.listScoops());if(i===Cs(s,e))return ws(s,a,o,e)}}function Es(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function Ds(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function Os(e,t){if(typeof e==`string`)return e?[{type:`text`,text:e}]:[];let n=[],r=0;for(let i of e)i.type===`text`?i.text&&n.push({type:`text`,text:i.text}):i.type===`image`&&n.push(Ds(t,r++));return n}function ks(e,t){let n=[],r=new Map,i=0,a=0;for(let o of e)if(o.type===`thinking`)i+=1;else if(o.type===`text`)o.text&&n.push({type:`text`,text:o.text});else if(o.type===`toolCall`)n.push({type:`tool-call`,id:o.id??``,name:o.name??``,input:o.arguments??{}});else if(o.type===`image`){let e=Ds(t,a++);n.push(e),o.data&&o.mimeType&&r.set(e.attachmentId,{data:o.data,mimeType:o.mimeType})}return{blocks:n,excluded:i,images:r}}function As(e,t){let n=[],r=new Map,i=0;for(let a of e)if(a.type===`text`)a.text&&n.push({type:`text`,text:a.text});else if(a.type===`image`){let e=Ds(t,i++);n.push(e),a.data&&a.mimeType&&r.set(e.attachmentId,{data:a.data,mimeType:a.mimeType})}return{blocks:n,images:r}}function js(e,t,n){let r=Es(t,n),i=Os(e.content,r);return{message:{id:r,sequence:n,role:`user`,timestamp:new Date(e.timestamp).toISOString(),content:i},excludedReasoningBlocks:0,images:new Map}}function Ms(e,t,n){let r=Es(t,n),{blocks:i,excluded:a,images:o}=ks(e.content,r);return{message:{id:r,sequence:n,role:`assistant`,timestamp:new Date(e.timestamp).toISOString(),content:i,model:{provider:e.provider,id:e.model,api:e.api},usage:e.usage,stopReason:e.stopReason,...e.errorMessage?{error:e.errorMessage}:{}},excludedReasoningBlocks:a,images:o}}function Ns(e,t,n){let r=Es(t,n),{blocks:i,images:a}=As(e.content,r);return{message:{id:r,sequence:n,role:`tool-result`,timestamp:new Date(e.timestamp).toISOString(),content:i,toolCallId:e.toolCallId,isError:e.isError},excludedReasoningBlocks:0,images:a}}function Ps(e,t,n){return e.role===`user`?js(e,t,n):e.role===`assistant`?Ms(e,t,n):e.role===`toolResult`?Ns(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function Fs(e){let t=[];for(let n of e){if(!n.parentConversationId)continue;let e={sourceConversationId:n.parentConversationId,targetConversationId:n.id};n.originToolCallId&&(e.toolCallId=n.originToolCallId),t.push(e)}return t}function Is(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=Ps(r,e.id,i+1);t+=a.excludedReasoningBlocks;for(let[e,t]of a.images)n.set(e,t);return a.message?[a.message]:[]});return{id:e.id,kind:e.kind,name:e.name,...e.folder?{folder:e.folder}:{},...e.parentConversationId?{parentConversationId:e.parentConversationId}:{},...e.createdAt?{createdAt:e.createdAt}:{},...e.updatedAt?{updatedAt:e.updatedAt}:{},messages:r}}),delegations:Fs(e),excludedReasoningBlocks:t,canonicalImages:n}}var Ls=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e})();function Rs(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Ls[(t^e[n])&255];return~t>>>0}var zs=new TextEncoder;function J(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function Y(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255,e[t+2]=n>>>16&255,e[t+3]=n>>>24&255}function Bs(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,J(r,4,20),J(r,6,2048),J(r,8,0),J(r,10,0),J(r,12,0),Y(r,14,n),Y(r,18,t),Y(r,22,t),J(r,26,e.length),J(r,28,0),r.set(e,30),r}function Vs(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,J(i,4,20),J(i,6,20),J(i,8,2048),J(i,10,0),J(i,12,0),J(i,14,0),Y(i,16,n),Y(i,20,t),Y(i,24,t),J(i,28,e.length),J(i,30,0),J(i,32,0),J(i,34,0),J(i,36,0),Y(i,38,0),Y(i,42,r),i.set(e,46),i}function Hs(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,J(r,4,0),J(r,6,0),J(r,8,e),J(r,10,e),Y(r,12,t),Y(r,16,n),J(r,20,0),r}function Us(e){if(!e||e.startsWith(`/`)||e.includes(`\0`)||e.includes(`\\`))return!1;for(let t of e.split(`/`))if(t===``||t===`.`||t===`..`)return!1;return!0}function Ws(e){let t=e.export.generatedAt.slice(0,10),n=e.export.id.slice(0,8);return`slicc-${t}-${Ie(e.session.title,{maxLen:40,fallback:`transcript`})}-${n}.zip`}async function*Gs(e,t,n,r,i){if(n?.aborted)throw i(new w(`transfer-aborted`)),new w(`transfer-aborted`);let a=()=>i(new w(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=wt.create(),s=0,c=0,l=[],u=!1;function*d(e){o.update(e),s+=e.byteLength,c+=e.byteLength,yield e}try{let i=new TextEncoder().encode(JSON.stringify(e,null,2)),a=zs.encode(`transcript.json`),f=Rs(i),p=Bs(a,i.length,f);if(l.push({nameBytes:a,size:i.length,crc:f,localOffset:c}),n?.aborted||(yield*d(p),n?.aborted))throw new w(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new w(`transfer-aborted`);let t=zs.encode(e),i=Rs(r),a=Bs(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new w(`transfer-aborted`);yield*d(r)}let m=c;for(let e of l){if(n?.aborted)throw new w(`transfer-aborted`);yield*d(Vs(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new w(`transfer-aborted`);yield*d(Hs(l.length,c-m,m)),u=!0,r({byteLength:s,sha256:o.hex()})}catch(e){throw u=!0,i(e),e}finally{n?.removeEventListener(`abort`,a),u||(u=!0,i(new w(`transfer-aborted`)))}}var Ks=4294967295,qs=65535;function Js(e,t,n){for(let e of t.keys())if(!Us(e))throw new w(`schema-invalid`);if(t.size+1>qs)throw new w(`schema-invalid`);for(let e of t.values())if(e.byteLength>Ks)throw new w(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:Ws(e),chunks:Gs(e,t,n,r,i),completion:a}}function Ys(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:ze},session:{id:e,title:t,state:n,completeness:{status:`complete`,missing:[]},...a},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:r.excludedReasoningBlocks,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:r.conversations,delegations:r.delegations,attachments:[]}}function Xs(e,t){let n=[],r=1;for(let i of e){if(i.role!==`user`&&i.role!==`assistant`)continue;let e=`${t}-msg-${String(r).padStart(6,`0`)}`;n.push({id:e,sequence:r++,role:i.role,timestamp:new Date(i.timestamp||0).toISOString(),content:i.content?[{type:`text`,text:i.content}]:[]})}return n}function Zs(e){let t=Le(e);if(!t.ok)throw new w(`schema-invalid`,t.error)}function Qs(e,t,n){let r=new Map;for(let i of e)if(!(!i.present||!i.path)){if(i.handling===`text-redacted`){let e=t.get(i.id);e!==void 0&&r.set(i.path,new TextEncoder().encode(e))}else{let e=n.get(i.path);e&&r.set(i.path,e)}}return r}async function $s(e,t){return Promise.all(e.map(async e=>{if(!e.present||!e.path||e.handling!==`text-redacted`)return e;let n=t.get(e.path);return n?{...e,byteLength:n.length,sha256:await Pe(n)}:e}))}function ec(e){let t=e.match(/^---\n([\s\S]*?)\n---\n/);if(!t)return{};let n=t[1],r={},i=n.match(/^createdAt:\s*(\d+)\s*$/m),a=n.match(/^updatedAt:\s*(\d+)\s*$/m);return i&&(r.createdAt=new Date(Number(i[1])).toISOString()),a&&(r.updatedAt=new Date(Number(a[1])).toISOString()),r}var tc=class{deps;constructor(e){this.deps=e}async export(e,t={}){let{signal:n,onProgress:r}=t,i;return i=e.kind===`active`?await this.buildActiveSnapshot(n,r):await this.buildFrozenSnapshot(e.sessionId,n,r),Zs(i.document),r?.({phase:`packaging`}),Js(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await Ts(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Is(n.sources),{document:i,bundleFiles:a}=await bs({document:Ys(e.sessionId,e.title,`frozen`,r,this.deps.version,{frozenAt:e.frozenAt,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}),chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:t});if(Zs(i),t?.aborted)throw new w(`transfer-aborted`);try{await this.deps.snapshotStore.write(e.sessionId,{document:i,attachments:a},t)}finally{this.deps.snapshotStore.discardIfUnindexed?.(e.sessionId)?.catch(()=>void 0)}}async buildActiveSnapshot(e,t){t?.({phase:`waiting-for-conversations`}),t?.({phase:`collecting`});let n=await Ts(this.deps.collection,e),r=Is(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=Ys(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),bs({document:o,chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:e})}async buildFrozenSnapshot(e,t,n){let r;try{r=await this.deps.snapshotStore.read(e)}catch(e){if(!(e instanceof w)||e.code!==`session-not-found`)throw e;r=null}return r?(n?.({phase:`redacting`}),this.reredactStoredSnapshot(r,t)):this.buildLegacyPartial(e,t,n)}async reredactStoredSnapshot(e,t){let n=new Map;for(let t of e.document.attachments){if(t.handling!==`text-redacted`||!t.present||!t.path)continue;let r=e.attachments.get(t.path);r&&n.set(t.id,new TextDecoder().decode(r))}let r,i;try{let a=await os(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new w(`redaction-unavailable`)}let a=Qs(r.attachments,i,e.attachments),o=await $s(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,n,r){let i=(await O(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!i)throw new w(`session-not-found`);let a;try{let e=await this.deps.vfs.readFile(`/sessions/${i.filename}`,{encoding:`utf-8`});a=typeof e==`string`?e:new TextDecoder().decode(e)}catch{throw new w(`session-not-found`)}let{loadFrozenArchive:o}=await t(async()=>{let{loadFrozenArchive:e}=await import(`./session-jsonl-CMk3OfCb.js`).then(e=>e.i);return{loadFrozenArchive:e}},__vite__mapDeps([54,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50])),{title:s,messages:c}=await o(this.deps.vfs,a,i.filename),l=`legacy-cone`,u=Xs(c,l),d=ec(a),f={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:ze},session:{id:e,title:s,state:`frozen`,...i.frozenAt?{frozenAt:i.frozenAt}:{},...d,completeness:{status:`partial`,missing:[`complete-snapshot-unavailable`,`canonical-agent-history-unavailable`]}},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:0,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:[{id:l,kind:`cone`,name:s,messages:u}],delegations:[],attachments:[]},p=new Map([[l,c]]);return r?.({phase:`redacting`}),bs({document:f,chatMessagesByConversation:p,knownSecrets:this.deps.knownSecrets,vfsReader:e=>this.readBinaryFromVfs(e),signal:n})}async readBinaryFromVfs(e){let t=await this.deps.vfs.readFile(e,{encoding:`binary`});if(!(t instanceof Uint8Array))throw new w(`attachment-unreadable`);return t}};function nc(e){return`error`in e}function X(){throw new w(`redaction-unavailable`)}function rc(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&X(),e.texts}function ic(){return{async redact(e){let t;try{t=await fetch(tt(`/api/secrets/redact-export`),{method:`POST`,headers:nt({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{X()}t.ok||X();let n;try{n=await t.json()}catch{X()}return rc(n,e.length)}}}function ac(){return{async redact(e){let t;try{t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.redact-export`,texts:e},e=>{chrome.runtime.lastError,t(e??null)})})}catch{X()}return typeof t==`object`&&t&&nc(t)&&X(),rc(t,e.length)}}}function oc(){return{async redact(e){let t;try{t=await it(`secrets.redact-export`,{texts:e})}catch{X()}return t??X(),typeof t==`object`&&t&&nc(t)&&X(),rc(t,e.length)}}}function sc(){return{async redact(e){X()}}}function cc(){let e=rt();return e===`connect`?sc():e===`extension-direct`?ac():e===`extension-delegate`?oc():ic()}var lc=`Restoring session…`,uc=`slicc-restoring-session`;function dc(e){let t=e.querySelector(`:scope > .slicc-thread__inner`)??e;for(let e of t.children)if(!e.classList.contains(uc))return!1;return!0}function fc(e,t){let n=e.querySelector(`:scope > .slicc-thread__inner`)??e,r=n.querySelector(`:scope > .${uc}`);if(!t){r?.remove();return}if(r)return;let i=e.ownerDocument.createElement(`p`);i.className=uc,i.textContent=lc,n.append(i)}function Z(e){switch(e){case`processing`:return`working`;case`error`:return`broken`;case`initializing`:return`initializing`;default:return`idle`}}function pc(e,t={}){let n=Z(t.status),r=ln(e);return{id:e.jid,parentId:e.parentJid,role:k(e)?`primary`:`child`,name:e.name,folder:e.folder,assistantLabel:e.assistantLabel,state:n,...n===`working`&&t.phase?{phase:t.phase}:{},...n===`idle`&&t.awaiting?{awaiting:!0}:{},fill:typeof t.fill==`number`?Math.round(t.fill*100):0,...typeof t.turns==`number`?{turns:t.turns}:{},...r?{model:r}:{},...e.trigger?{trigger:e.trigger}:{},...e.addedAt?{addedAt:e.addedAt}:{}}}function mc(e,t=Date.now){let n=e.parentId===null,r=e.folder??e.name,i=n?e.config:hc(e,r),a={jid:e.id??(n?`cone_${t()}`:`scoop_${r}_${t()}`),name:e.name,folder:r,requiresTrigger:!n,assistantLabel:n?`sliccy`:r,addedAt:new Date(t()).toISOString(),parentJid:e.parentId,...i?{config:i,configSchemaVersion:3}:{},...e.notifyOnComplete===!1?{notifyOnComplete:!1}:{},...!n&&e.onParentClose===`detach`?{onParentClose:`detach`}:{}};return n||(a.trigger=`@${r}`),a}function hc(e,t){let n=cn(e.workspace?.mode??e.config?.workspaceMode),r=e.workspace?.from??`/workspace`,i=_n(n,t,{root:r},e.workspace?.from),a=e.config;return{...a,workspaceMode:n,visiblePaths:a?.visiblePaths===void 0?i.visiblePaths:a.visiblePaths,writablePaths:a?.writablePaths===void 0?i.writablePaths:a.writablePaths}}var gc=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,_c=`${gc}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,vc=`${gc}border:none;background:#d23;color:#fff;`,yc=`${gc}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function bc(e,t,n){return{...mc({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function xc(e,t){let n=e.createElement(`slicc-dialog`);n.setAttribute(`heading`,t.heading),n.append(t.body);for(let r of t.actions){let t=e.createElement(`button`);t.setAttribute(`slot`,`footer`),t.type=`button`,t.dataset.coneAction=r.data,t.textContent=r.text,t.style.cssText=r.style,t.addEventListener(`click`,r.onClick),n.append(t)}return n.addEventListener(`slicc-dialog-close`,()=>t.onDismiss(n)),n}function Sc(e,t){let n=e.createElement(`form`);n.style.cssText=`display:flex;flex-direction:column;gap:0.5rem;padding:0.25rem 0;`;let r=`font-size:0.9375rem;padding:0.5rem 0.625rem;border:1px solid var(--s2-border-color,#e0e0e0);border-radius:0.375rem;background:transparent;color:inherit;font-family:inherit;`,i=e.createElement(`input`);i.type=`text`,i.name=`name`,i.placeholder=`Name`,i.setAttribute(`aria-label`,`Cone name`),i.maxLength=40,i.autocomplete=`off`,i.required=!0,i.style.cssText=r;let a=e.createElement(`textarea`);a.name=`brief`,a.placeholder=`What should it work on? (optional)`,a.setAttribute(`aria-label`,`What the cone should work on`),a.rows=3,a.style.cssText=`${r}resize:vertical;`,n.append(i,a);let o=()=>({name:i.value.trim(),brief:a.value.trim()});return n.addEventListener(`submit`,e=>{e.preventDefault(),t(o())}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),t(o()))}),n.readDraft=o,n}function Cc(e){let{freezer:t,client:n,log:r}=e,i=t.ownerDocument,a=null,o=!1,s=null,c=()=>t.querySelector(`slicc-freezer-new`),l=()=>qn(e.getUnits(),e.getSelected()),u=t=>e.getUnits().find(e=>e.id===t.jid)??pc(t),d=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},f=e=>{d();let t=xc(i,{...e,onDismiss:e=>{s===e&&(s=null),e.remove()}});s=t,i.body.append(t),t.show?.()},p=t=>{if(!t.name)return;d();let i=l(),o=bc(t.name,n.getScoops(),Hn(e.getUnits(),i?.id));a=t.name,n.registerScoop(o,t.brief?{description:t.brief,prompt:t.brief}:{}).catch(e=>r.warn(`WC cone create failed`,e)),_()},m=()=>{let e=Sc(i,p);f({heading:`New cone`,body:e,actions:[{text:`Create`,style:_c,data:`create`,onClick:()=>p(e.readDraft())},{text:`Cancel`,style:yc,data:`cancel`,onClick:d}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},h=t=>{d();let i=sn(n.getScoops()),a=i.find(e=>e.jid===t);if(!a||i.length<=1||o){_();return}o=!0,_(),(async()=>{try{await e.freezeCone(a)}catch(e){r.warn(`WC cone freeze before drop failed`,e)}let t=l()?.id===a.jid;try{await n.unregisterScoop(a.jid)}catch(e){r.warn(`WC cone drop failed`,e)}if(t){let t=sn(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(u(t))}o=!1,_()})()},g=e=>{let t=Gn(e),n=i.createElement(`p`);n.textContent=`Its chat goes to the Freezer.`,n.style.cssText=`font-size:0.875rem;margin:0;`,f({heading:`Drop ${t}?`,body:n,actions:[{text:`Drop`,style:vc,data:`drop`,onClick:()=>h(e.id)},{text:`Cancel`,style:yc,data:`cancel`,onClick:d}]})},_=()=>{let t=sn(n.getScoops());if(a!==null){let n=t.find(e=>e.name===a&&!e.folder.startsWith(`cone-pending-`));n&&(a=null,e.getSelected()?.id!==n.jid&&e.selectScoop(u(n)))}let r=c();r?.setAttribute(`cones`,String(t.length)),r?.toggleAttribute(`busy`,o)};return t.addEventListener(`new-cone`,m),t.addEventListener(`drop-cone`,()=>{let e=l();!e||sn(n.getScoops()).length<=1||o||g(e)}),_(),{refresh:_,dialog:()=>s}}var wc={"gelatiere-dismiss":{consume:!0,mode:`dismiss`},"gelatiere-install":{consume:!1,mode:`take`},"gelatiere-try":{consume:!1,mode:`take`}};function Tc(e){return n=>{if(n.type!==`sprinkle`||n.sprinkleName!==`welcome`&&n.sprinkleName!==`inline`&&n.sprinkleName!==`suggestions`)return!1;let r=n.body,i=wc[typeof r?.action==`string`?r.action:``];if(!i)return!1;let a=r?.data,o=typeof a?.id==`string`&&a.id?a.id:null;return o&&e.openVfs().then(async e=>{let n=await t(()=>import(`./wc-shell-fIEX0Fr7.js`).then(e=>e.mt),__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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));return i.mode===`dismiss`?n.dismissGelatiereSuggestion(e,o):n.takeGelatiereSuggestion(e,o)}).catch(t=>e.log.warn(`gelatiere card settlement failed`,t)),i.consume}}var Ec=5e3,Dc=class{deps;listListeners=new Set;unitListeners=new Map;lastSnapshots=new Map;orphanedReplays=new Map;retriedSnapshots=new Set;pendingSnapshots=new Map;constructor(e){this.deps=e}toSummary(e){return pc(e,{awaiting:this.deps.getAwaiting?.()===e.jid,fill:this.deps.fills.get(e.jid),phase:this.deps.phases.get(e.jid),status:this.deps.statuses.get(e.jid),turns:this.deps.turns?.get(e.jid)})}snapshotFor(e,t,n){let r=this.deps.getClient()?.getScoops().find(t=>t.jid===e);return r?{summary:this.toSummary(r),messages:t,...n?{queuedIds:n}:{}}:null}currentUnits(){return(this.deps.getClient()?.getScoops()??[]).map(e=>this.toSummary(e))}publishSnapshot(e,t){this.retriedSnapshots.delete(e),this.lastSnapshots.set(e,t),this.emit(e,{snapshot:t,type:`snapshot`});let n=this.pendingSnapshots.get(e);if(n){this.pendingSnapshots.delete(e);for(let e of n)e(t)}}drainOrphanedReplays(){for(let[e,t]of this.orphanedReplays){let n=this.snapshotFor(e,t.messages,t.queuedIds);n&&(this.orphanedReplays.delete(e),this.publishSnapshot(e,n))}}recoverUnanswered(e){if(this.unitListeners.has(e)){if(this.retriedSnapshots.has(e)){this.publishRecovery(e);return}this.retriedSnapshots.add(e),this.deps.getClient()?.requestScoopMessages(e),setTimeout(()=>{this.retriedSnapshots.has(e)&&this.publishRecovery(e)},Ec)}}publishRecovery(e){if(!this.unitListeners.has(e))return;let t=this.lastSnapshots.get(e),n=this.deps.getClient()?.getScoops().find(t=>t.jid===e);this.emit(e,{snapshot:{messages:t?.messages??[],...n?{summary:this.toSummary(n)}:{}},type:`snapshot`})}forgetWaiter(e,t){let n=this.pendingSnapshots.get(e);n&&(n.delete(t),n.size===0&&this.pendingSnapshots.delete(e))}emitList(){if(this.drainOrphanedReplays(),this.listListeners.size===0)return;let e=this.currentUnits();for(let t of this.listListeners)t(e)}emit(e,t){let n=this.unitListeners.get(e);if(n)for(let e of n)e(t)}wrapCallbacks(e){return{...e,onStatusChange:(t,n)=>{e.onStatusChange(t,n),this.emit(t,{state:Z(n),type:`status`}),this.emitList()},onScoopCreated:t=>{e.onScoopCreated(t),this.emitList()},onScoopListUpdate:t=>{e.onScoopListUpdate(t),this.emitList()},onScoopPhaseChange:(t,n)=>{e.onScoopPhaseChange?.(t,n),this.emitList()},onIncomingMessage:(t,n)=>{e.onIncomingMessage(t,n),this.emit(t,{message:n,type:`message`})},onScoopMessagesReplaced:(t,n,r)=>{e.onScoopMessagesReplaced?.(t,n,r);let i=n,a=this.snapshotFor(t,i,r);a?this.publishSnapshot(t,a):this.orphanedReplays.set(t,{messages:i,queuedIds:r})}}}list(){return Promise.resolve(this.currentUnits())}subscribeList(e){return this.listListeners.add(e),e(this.currentUnits()),()=>{this.listListeners.delete(e)}}subscribe(e,t){let n=this.unitListeners.get(e)??new Set;n.add(t),this.unitListeners.set(e,n);let r=this.lastSnapshots.get(e);return this.pendingSnapshots.has(e)||(r?t({snapshot:r,type:`snapshot`}):this.deps.getClient()?.requestScoopMessages(e)),()=>{n.delete(t),n.size===0&&this.unitListeners.delete(e)}}takeArrivedReplay(e){let t=this.orphanedReplays.get(e);if(!t)return null;let n=this.snapshotFor(e,t.messages,t.queuedIds);return n?(this.orphanedReplays.delete(e),this.lastSnapshots.set(e,n),n):null}snapshot(e){let t=this.deps.getClient();if(!t)return Promise.reject(Error(`kernel client not attached`));let n=this.takeArrivedReplay(e);if(n)return t.setSelectedScoopJid(e),Promise.resolve(n);let r=this.pendingSnapshots.get(e)??new Set;this.pendingSnapshots.set(e,r);let i=()=>{},a=new Promise(e=>{i=e,r.add(e)});t.setSelectedScoopJid(e),t.requestScoopMessages(e);let o,s=new Promise(t=>{o=setTimeout(()=>{o=void 0;let n=this.pendingSnapshots.get(e)?.has(i)===!0;this.forgetWaiter(e,i),n&&this.recoverUnanswered(e),t(this.snapshotFor(e,[],void 0))},Ec)});return Promise.race([a.then(e=>(o!==void 0&&(clearTimeout(o),o=void 0),e)),s]).then(t=>{if(!t)throw Error(`unknown work unit: ${e}`);return t})}send(e,t){let n=this.deps.getClient();if(!n)return Promise.reject(Error(`kernel client not attached`));let r=t.messageId??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return n.sendUserMessage({scoopJid:e,text:t.text,messageId:r,...t.attachments?{attachments:t.attachments}:{},...t.steer?{steer:!0}:{},...t.guestGate?{guestGate:t.guestGate}:{}})}setModel(e,t){let n=this.deps.getClient();return n?n.setScoopModel(e,t):Promise.reject(Error(`kernel client not attached`))}signal(e,t){if(t!==`stop`)return Promise.resolve();let n=this.deps.getClient();return n?(n.stopScoop(e),Promise.resolve()):Promise.reject(Error(`kernel client not attached`))}};function Q(e){return e.workUnits??=new Dc({fills:e.fills,getAwaiting:()=>e.awaitingInput,getClient:()=>e.getClient(),phases:e.phases,statuses:e.statuses,turns:e.turns}),e.workUnits}function Oc(e){let t=Q(e),n=()=>e.refreshScoops?.(),r=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),i=()=>{if(e.getSelected()||r())return;let n=t.currentUnits(),i=e.pendingUrlContext;if(i?.startsWith(`freezer:`))return;if(i?.startsWith(`scoop:`)||i?.startsWith(`cone:`)){let t=Bn(n,i);if(t){e.pendingUrlContext=null,e.selectScoop(t);return}}let a=Kn(n);a&&(e.pendingUrlContext=null,e.selectScoop(a))};return t.wrapCallbacks({onStatusChange:(t,r)=>{let i=e.statuses.get(t),a=r;e.statuses.set(t,a),i!==a&&e.notifyUnitStatus?.(t,a),a!==`ready`&&e.awaitingInput===t&&(e.awaitingInput=null),Z(i)===`working`&&Z(a)!==`working`&&e.turns.set(t,(e.turns.get(t)??0)+1),Z(i)!==Z(a)&&(n(),e.notifyScoopStateChanged?.()),e.getSelected()?.id===t&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:t=>{n(),!e.getSelected()&&!r()&&!e.pendingUrlContext&&e.selectScoop(pc(t,{fill:e.fills.get(t.jid),phase:e.phases.get(t.jid),status:e.statuses.get(t.jid)}))},onScoopListUpdate:t=>{let r=new Set(t.map(e=>e.jid));for(let t of e.lickBackpressure.keys())r.has(t)||e.lickBackpressure.delete(t);for(let t of e.turns.keys())r.has(t)||e.turns.delete(t);n(),i()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(t,r)=>{e.phases.set(t,r),n(),e.notifyScoopStateChanged?.()},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,ge(String(n.content??``),600)),e.getSelected()?.id===t&&n.channel!==`web`&&re(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onLickBackpressure:(t,n)=>{n.count<=0?e.lickBackpressure.delete(t):e.lickBackpressure.set(t,n);let r=e.getSelected();if(r?.id!==t)return;let i=Jn(r);e.getController()?.setLickBackpressure(n.count,n.waitingMs,i)},onMessageUpdate:(t,n)=>{e.getSelected()?.id===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onReady:()=>{n(),i(),e.notifyReady?.()}})}var kc=`slicc:leader-local-model-state-changed`;function Ac(e=window){e.dispatchEvent(new Event(kc))}var jc=`slicc:leader-model-catalog-changed`;function Mc(e=window){e.dispatchEvent(new Event(jc))}var Nc={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Pc={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Fc(e){return e?Nc[e]:void 0}function Ic(e){return e===`max`?`max`:void 0}function Lc(e,t){return t===`max`?`max`:(e&&Pc[e])??`off`}var Rc=2e3,zc=1e4,Bc=12e4;function Vc(e){let t=[],n=null,r=new Map,i=e.modelPickerEnabled!==!1,a=e.catalogRetryDelayMs??Rc,o=e.catalogRetryMaxDelayMs??zc,s=e.catalogRetryWindowMs??Bc,c=0,l=null,u=null,d=()=>{if(!i||u!==null)return;let t=Date.now();if(l===null&&(l=t+s),t>=l)return;let n=gt({attempt:c,baseMs:a,capMs:o});u=setTimeout(()=>{u=null;let t=e.getSync();t?.requestModels&&(c+=1,t.requestModels())},n)},f=()=>{u!==null&&clearTimeout(u),u=null,c=0,l=null},p=e=>{if(e.length===0)return;let t=new Set(e.map(e=>e.id));for(let e of r.keys())t.has(e)||r.delete(e)},m=()=>{let t=e.getSelectedScoopJid(),i=e.getUnits();if(p(i),n&&(i.length===0||!t))return n.activeModelId;if(n&&t&&n.scoopJid===t){let e=pn(n.activeModelId);return e&&r.set(t,e),n.activeModelId}let a=Hn(i,t,t?r.get(t):void 0);return t&&a&&r.set(t,a),a?mn(a):void 0},h=()=>{let r=m(),a=r?t.find(e=>e.modelId===r):void 0;if(!i||!n||!a){e.composerMeta.style.display=`none`,d();return}e.composerMeta.model=a.modelName,e.composerMeta.setAttribute(`thinking`,Lc(n.thinkingLevel,n.effortOverride)),e.composerMeta.toggleAttribute(`no-thinking`,!a.reasoning),e.composerMeta.style.removeProperty(`display`),f()},g=t=>{e.interceptLocalHandlers&&t.stopImmediatePropagation()},_=t=>{let i=e.getSync();if(!i)return;g(t);let a=t.detail?.id,o=e.getSelectedScoopJid()??n?.scoopJid,s=a?pn(a):null;s&&o?(r.set(o,s),e.setModel(o,s)):a&&i.selectModel(a,o??void 0),h()};e.composerMeta.addEventListener(`model-change`,_,{capture:e.interceptLocalHandlers});let v=t=>{let r=e.getSync();if(!r)return;if(g(t),e.getLockedEffortLevel?.()){h();return}let i=t.detail?.thinking,a=Fc(i),o=e.getSelectedScoopJid()??n?.scoopJid;o&&a&&a!==`max`&&r.setThinkingLevel(o,a,Ic(i)),h()};e.composerMeta.addEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers});let y=()=>{t=[],n=null,r.clear(),f(),e.composerMeta.models=[],e.composerMeta.style.display=`none`};return y(),{onModelsList(n){t=n,e.composerMeta.models=n.map(e=>({id:e.modelId,name:e.modelName,provider:e.providerName})),h()},onModelState(e){n=e,h()},onShownUnitChanged(){h()},reset:y,dispose(){e.composerMeta.removeEventListener(`model-change`,_,{capture:e.interceptLocalHandlers}),e.composerMeta.removeEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers}),y(),e.composerMeta.style.removeProperty(`display`)}}}async function Hc(e,t,n,r,i=Ac){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function Uc(e,t){return Wn(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||vt(t.localStorage)}async function Wc(e,n,r,a,o){let s=Vn(n),c=Yn(s);e.thread.setAttribute(`context`,Xn(n));let l=Un(n),u=i({isRoot:l,name:n.name});e.thread.setAttribute(`accent`,u),e.switcher.setAttribute(`active`,n.id),ie(e,l?{kind:`cone`}:{kind:`scoop`,accent:u}),te(e,c);let d=localStorage.getItem(`slicc_locked_effort_level`),f=a?.(n.id);if(f||d){let t=f?un(f):{};e.composerMeta.setAttribute(`thinking`,Lc(d??t.level,t.effortOverride))}if(!o?.skipModelPill)try{let{resolveCurrentModel:i,resolveModelById:a}=await t(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-DfG-7olk.js`).then(e=>e.i);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([55,1,56,2,3,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58])),o=Hn(r,n.id),s=o?a(o.id,o.provider):i();e.composerMeta.setAttribute(`model`,s.name??s.id),e.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!d)}catch{}}async function Gc(e){if(Uc(e.pendingUrlContext,e.win))return;let n=Wn(e.pendingUrlContext);if(n===null)return;let[{CanonicalSessionReader:r},{WorkUnitConversationStore:i}]=await Promise.all([t(()=>Promise.resolve().then(()=>ir),void 0),t(()=>Promise.resolve().then(()=>vr),void 0)]),a=await new r(new i).loadRootChatSession(n);a&&a.messages.length>0&&!e.hasSelection()&&(e.loadMessages(a.messages),e.onHydrated())}function Kc(e){let{boot:n,client:r,openReader:i,log:a}=e,{refs:o}=n;t(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-Dsw3z2er.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([59,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({createPlaceholderRefresher:t})=>{e.setRefreshPlaceholder(t({inputCard:o.inputCard,getMessages:()=>n.getController()?.getMessages()??[],defaultPlaceholder:o.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),Gc({pendingUrlContext:n.wiring.pendingUrlContext,win:window,hasSelection:()=>!!n.getSelected(),loadMessages:e=>n.getController()?.loadMessages(e),onHydrated:e.triggerPlaceholder}).catch(e=>a.warn(`WC session hydration failed`,e));let s=null;return t(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-x14l9M_B.js`);return{wireWcAttach:e}},__vite__mapDeps([60,2,5,61])).then(({wireWcAttach:n})=>{s=n({inputCard:o.inputCard,freezer:o.freezer,composer:o.composer,openReader:i,openWriter:e.openWriter,secretEntry:!0,listConversations:async()=>{let{readSessionsIndex:e}=await t(async()=>{let{readSessionsIndex:e}=await Promise.resolve().then(()=>Gi);return{readSessionsIndex:e}},void 0);return(await e(await i())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:a})}).catch(e=>a.error(`WC add-menu wiring failed`,e)),t(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:o.thread,inputCard:o.inputCard})).catch(e=>a.error(`WC history nav wiring failed`,e)),o.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let t=e.detail?.thinking,i=Fc(t),o=Ic(t),s=n.getSelected();s&&i&&Hc(r,s.id,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>s}}var qc=`slicc:leader-run-new-session`,Jc=`slicc:leader-broadcast-snapshot`;function Yc(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function Xc(e){let t=`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`;return e.live?`${t} · in progress`:t}function Zc(e,t={}){let n=document.createElement(`slicc-freezer-card`);return n.setAttribute(`title`,e.title),n.setAttribute(`meta`,Xc(e)),n.setAttribute(`slug`,e.filename),e.icon&&n.setAttribute(`icon`,e.icon),t.deletable&&!e.live&&n.setAttribute(`deletable`,``),n}async function Qc(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size!==0&&await T(async()=>{let n=await $c(e.reader);if(n===null||n.length===0)return!1;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});return await e.writer.writeFile(`/sessions/index.json`,JSON.stringify(r,null,2)),!0}))for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function $c(e){let t=await el(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function el(e){let t;try{let n=await e.readFile(E,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?{kind:`missing`}:{kind:`fault`}}try{let e=JSON.parse(t);return Array.isArray(e)?{kind:`ok`,entries:e}:{kind:`corrupt`}}catch{return{kind:`corrupt`}}}async function tl(e){let t;try{t=(await e.readDir(`/sessions`)).filter(e=>e.type===`file`&&e.name.endsWith(`.md`)).map(e=>e.name)}catch{return[]}let n=[];for(let r of t)try{let t=await e.readFile(`/sessions/${r}`,{encoding:`utf-8`}),i=typeof t==`string`?t:new TextDecoder().decode(t);n.push(rl(r,i))}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function nl(e,t){return T(async()=>{let n=await el(e);if(n.kind===`ok`)return n.entries;if(n.kind!==`corrupt`)return null;let r=await tl(e);return r.length===0?null:(await t.writeFile(E,JSON.stringify(r,null,2)),r)})}function rl(e,t){let n=t.slice(0,2e3),r=/^title:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??e,i=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??new Date(0).toISOString(),a=Number(/^messageCount:\s*(\d+)\s*$/m.exec(n)?.[1]??0),o=Be(t),s=e.startsWith(`pending-`)||e.startsWith(`live-`)&&!o.live;return{filename:e,title:r,frozenAt:i,messageCount:a,...o.cost?{cost:o.cost}:{},...o.models?{models:o.models}:{},...o.cone?{cone:o.cone}:{},...o.coneLabel?{coneLabel:o.coneLabel}:{},...o.memorySkipped?{memorySkipped:!0}:{},...o.live?{live:!0}:{},...o.live&&o.liveThrough?{liveThrough:o.liveThrough}:{},...o.live&&o.compactions?{compactions:o.compactions}:{},...o.curatedThrough?{curatedThrough:o.curatedThrough}:{},...o.sessionId?{sessionId:o.sessionId}:{},...s?{pendingEnrichment:!0}:{}}}function il(e,t,n={}){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(e=>Zc(e,n)))}async function al(e,t){let n=await e.readFile(Ue(t),{encoding:`utf-8`}),r=typeof n==`string`?n:new TextDecoder().decode(n),i=await Cn(e,r,t.filename);return{title:i.title||t.title,messages:i.messages}}var ol=`Couldn't delete everything — try again.`;function sl(e,t){let n=e.createElement(`p`);return n.textContent=`“${t}” and its transcript will be deleted. Memories already learned from it are kept.`,n.style.cssText=`font-size:0.875rem;margin:0;`,n}function cl(e){let t=e.parentElement?.querySelector(`[data-freezer-delete-error]`);t||(t=e.ownerDocument.createElement(`p`),t.setAttribute(`data-freezer-delete-error`,``),t.setAttribute(`role`,`alert`),t.style.cssText=`font-size:0.8125rem;margin:0.5rem 0 0;color:var(--s2-negative-color, #d23);`,e.after(t)),t.textContent=ol}function ll(e,t){let n=e.ownerDocument;n.activeElement&&n.activeElement!==n.body||Array.from(e.querySelectorAll(`slicc-freezer-card`)).find(e=>e.getAttribute(`slug`)===t)?.querySelector(`.slicc-fzcard__delete`)?.focus()}function ul(e){return e.sessionId?{filename:e.filename,sessionId:e.sessionId}:{filename:e.filename}}function dl(e){let n=e.freezer.ownerDocument,r=null,i=new Set,a=()=>{if(!r)return;let{slug:t,dialog:n}=r;r=null,n.hide?.(),n.remove(),ll(e.freezer,t)},o=async(n,o,s)=>{let c=Array.from(o.querySelectorAll(`button[slot="footer"]`));for(let e of c)e.disabled=!0;i.add(n.filename);try{let{writer:i}=await e.openVfs(),{deleteFrozenSession:s}=await t(async()=>{let{deleteFrozenSession:e}=await import(`./frozen-session-delete-D5D_Ne2e.js`);return{deleteFrozenSession:e}},__vite__mapDeps([62,3,49,1,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50,51,54,63,64,65,66])),c=await s(i,ul(n));if(c.status===`failed`)throw Error(c.errors.join(`; `));c.status===`deleted`?e.isViewing(n)&&e.leaveViewed(n):e.log.warn(`WC frozen chat delete skipped`,{filename:n.filename,...c}),r?.dialog===o&&a(),e.refreshFreezer()}catch(t){e.log.error(`WC frozen chat delete failed`,t),cl(s);for(let e of c)e.disabled=!1}finally{i.delete(n.filename)}},s=t=>{if(r?.slug===t||i.has(t))return;let s=e.getEntries().find(e=>e.filename===t);if(!s||s.live)return;a();let c=sl(n,s.title),l=xc(n,{heading:`Delete frozen chat?`,body:c,actions:[{text:`Delete`,style:vc,data:`delete`,onClick:()=>void o(s,l,c)},{text:`Cancel`,style:yc,data:`cancel`,onClick:a}],onDismiss:n=>{r?.dialog===n&&(r=null),n.remove(),ll(e.freezer,t)}});r={slug:t,dialog:l},n.body.append(l),l.show?.()};return e.freezer.addEventListener(`freezer-card-delete`,e=>{let t=e.detail?.slug;t&&s(t)}),{dialog:()=>r?.dialog??null}}async function fl(e,n,r){let{getTranscriptExportService:i}=await t(async()=>{let{getTranscriptExportService:e}=await Promise.resolve().then(()=>kr);return{getTranscriptExportService:e}},void 0);await i().captureFrozen({sessionId:n.sessionId??n.archive.sessionId??n.filename.replace(/\.md$/i,``),title:n.archive.title,frozenAt:n.archive.frozenAt,createdAt:n.archive.createdAt,updatedAt:n.archive.updatedAt,...e?{rootJid:e.jid}:{}},r)}function pl(e,t){if(t)return e.getScoops().find(e=>e.jid===t.id)}function ml(e){return{folder:e.folder,label:Gn({assistantLabel:e.assistantLabel,name:e.name,role:k(e)?`primary`:`child`}),jid:e.jid}}async function hl(e){let{root:n}=e,r=n?ml(n):void 0,i=(e,t)=>fl(n,e,t),a=n=>{try{e.client.reloadSkills()}catch(t){e.log.warn(`post-settle prompt reload failed`,t)}t(async()=>{let{notifyGelatiereOfSessionEnd:e}=await import(`./wc-gelatiere-DjxUMudk.js`);return{notifyGelatiereOfSessionEnd:e}},__vite__mapDeps([67,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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({notifyGelatiereOfSessionEnd:t})=>t({client:e.client,vfs:e.writer,log:e.log,cone:r,archive:n?.filename})).catch(t=>e.log.warn(`gelatiere notification failed to load`,t))};if(e.action!==`save`){await e.runNewSessionFreezeQuick({vfs:e.writer,cone:r,captureCompleteSnapshot:i,onSessionSettled:a});return}await e.runNewSessionFreeze({vfs:e.writer,cone:r,agenticMemorySpawn:t=>e.client.spawnAgent(t),captureCompleteSnapshot:i,onSessionSettled:a,onProgress:t=>{let n=e.freezerNew();n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,String(t)))},onBackgroundEnriched:e.refreshFreezer})}async function gl(e,t){e!==`erase`&&await hl({...t,action:e})}async function _l(e){try{await e.resetNewSessionTmp(e.writer,e.tmpDir)}catch(t){e.log.warn(`WC new session /tmp reset failed — clearing anyway`,t)}await e.client.clearAllMessages(e.root?.jid,e.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}),e.getController()?.loadMessages([]),window.dispatchEvent(new CustomEvent(Jc)),t(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-fIEX0Fr7.js`).then(e=>e.rt);return{resetDictationPriming:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0)}function vl(e,t){(e.thread.inner??e.thread).prepend(yl(e.thread.ownerDocument,t)),e.thread.setAttribute(`accent`,ae),ie(e,{kind:`freezer`}),e.inputCard.setAttribute(`disabled`,``),e.switcher.removeAttribute(`active`)}function yl(e,t){let n=t?Yc(t):void 0,r=e.createElement(`slicc-day-separator`);return r.setAttribute(`label`,n?`Frozen chat · from cone ${n}`:`Frozen chat`),r.setAttribute(`data-frozen-provenance`,n??``),r}async function bl(e,t,n){let r=await $c(e);return r===null?(await el(e)).kind===`corrupt`?(n.warn(`WC freezer index corrupt — rebuilding from archives`),nl(e,t)):null:r}function xl(e,n,r){e.busy||!r.some(e=>!e.icon&&!e.pendingEnrichment)||(e.busy=!0,t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-D46cR1qL.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39])).then(({pickLucideIcon:e})=>Qc({reader:n.reader,writer:n.writer,freezer:n.freezer,entries:r,pickIcon:t=>e({subject:t})})).catch(e=>n.log.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{e.busy=!1}))}function Sl(e,t,n){let r=e.getAttribute(`context`)??``;return r===`freezer:${t.filename}`||r.startsWith(`freezer:`)&&!!t.sessionId&&!xn(t.sessionId)&&n===t.sessionId}function Cl(e){let{refs:n,openVfs:r,client:i,getController:a,getSelected:o,clearSelection:s,log:c}=e,l=[],u=null,d=t=>{u=null,e.selectScoop(t)},f=0,p={busy:!1},m=()=>{let e=++f;r().then(async({reader:t,writer:r})=>{let i=await bl(t,r,c);i!==null&&e===f&&(l=i,il(n.freezer,i,{deletable:!0}),xl(p,{reader:t,writer:r,freezer:n.freezer,log:c},i))}).catch(e=>c.error(`WC freezer refresh failed`,e))},h=!1,g=()=>n.freezer.querySelector(`slicc-freezer-new`),_=n=>{h||(h=!0,g()?.setAttribute(`busy`,``),(async()=>{let s=pl(i,qn(e.getUnits(),o()));try{let{writer:o}=await r(),{resetNewSessionTmp:l,runNewSessionFreeze:u,runNewSessionFreezeQuick:f}=await t(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-CnoNDTuz.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66]));await gl(n,{writer:o,root:s,client:i,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:u,runNewSessionFreezeQuick:f,log:c}),await _l({writer:o,root:s,client:i,getController:a,log:c,resetNewSessionTmp:l,tmpDir:gn(i.getScoops(),s),discardLiveSnapshot:n===`erase`}),m();let p=e.getUnits().find(e=>e.id===s?.jid)??Kn(e.getUnits());p&&d(p)}catch(e){c.error(`WC new session failed`,e)}finally{h=!1;let e=g();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])n.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:n}=await r(),{runNewSessionArchiveOnly:i}=await t(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-CnoNDTuz.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66]));await i({vfs:n,cone:ml(e),captureCompleteSnapshot:(t,n)=>fl(e,t,n)}),m()};_e(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(qc,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async t=>{let i=l.find(e=>e.filename===t);try{let{reader:o}=await r();i||=(await $c(o)??[]).find(e=>e.filename===t);let{messages:c}=await al(o,i??{filename:t,title:t,frozenAt:``,messageCount:0});n.thread.setAttribute(`context`,`freezer:${i?.filename??t}`),u=i?.sessionId??i?.filename??null,e.holdQueuedPile(),a()?.loadMessages(c),vl(n,i),s()}catch(t){if(c.error(`WC thaw failed`,t),!o()){let t=zn(e.getUnits(),i?.cone);t&&d(t)}}};return n.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&y(t)}),dl({freezer:n.freezer,openVfs:r,getEntries:()=>l,isViewing:e=>Sl(n.thread,e,u),leaveViewed:t=>{a()?.loadMessages([]),u=null;let n=zn(e.getUnits(),t.cone);n&&d(n)},refreshFreezer:m,log:c}),{refreshFreezer:m,openFrozen:y,getViewedFrozenSessionId:()=>u,freezeCone:v}}n(`scoops.tray-leave`),n(`scoops.tray-join`);var wl=null;function Tl(e){wl=e}function El(){return wl?.()??[]}var Dl=null;function Ol(e){Dl=e}function kl(){return Dl??void 0}var Al=`slicc.leaderTrayFollowers`;function jl(){return Ml()}function Ml(){if(wl)return wl();try{let e=globalThis.localStorage?.getItem(Al);if(e)return JSON.parse(e)}catch{}return[]}function Nl(e,t=globalThis.localStorage){try{t?.setItem(Al,JSON.stringify(e))}catch{}}function Pl(e){try{let t=JSON.parse(e);return{processes:(t.processes??[]).filter(e=>e.status===`running`||e.status===`pending`).map(e=>({pid:Number(e.pid??0),argv:String(e.argv??``),status:String(e.status??`unknown`)})),terminated:Number(t.stats?.terminated??0)}}catch{return{processes:[],terminated:0}}}function Fl(e){let t=mt();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:_t(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=rn();if(n.state!==`inactive`)return{role:`leader`,state:n.state,joinUrl:n.session?.joinUrl,sessionId:n.session?.trayId,workerBaseUrl:n.session?.workerBaseUrl};let r=null;try{r=bt(e.getItem(ht))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Il(e){let{client:n,openReader:r,storage:i}=e;return{getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await t(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-0GIP6SM2.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([69,1,3,20,21,22,55,56,2,8,9,10,11,12,13,14,15,16,17,18,19,5,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await t(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-0GIP6SM2.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([69,1,3,20,21,22,55,56,2,8,9,10,11,12,13,14,15,16,17,18,19,5,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:n}=await t(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([70,1])),r=await e();return Promise.all(r.map(async e=>{if(e.descriptor.kind!==`local`)return e;try{let t=await(await n(e.descriptor.idbHandleKey))?.queryPermission?.({mode:`readwrite`});return{...e,valid:t===`granted`}}catch{return{...e,valid:!1}}}))},getMcpServers:async()=>{try{let e=await(await r()).readFile(`/workspace/.mcp/servers.json`,{encoding:`utf-8`});return JSON.parse(typeof e==`string`?e:new TextDecoder().decode(e)).servers??{}}catch{return{}}},getOAuthProviders:()=>{try{let e=new Set,t=[];for(let n of Ne()){if(e.has(n.providerId))continue;if(e.add(n.providerId),!je(n.providerId)?.isOAuth){t.push({providerId:n.providerId});continue}let r=ke(n.providerId),i=n.loggedOut?!1:r?!r.expired:!1;t.push({providerId:n.providerId,valid:i})}return t}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await(await r()).readFile(`/proc/table`,{encoding:`utf-8`});return Pl(typeof e==`string`?e:new TextDecoder().decode(e))}catch{return{processes:[],terminated:0}}},getTrayInfo:()=>Fl(i),getConnectedFollowers:El}}var Ll=`sync-fs-nonce`;function Rl(e={}){let t=e.navigator??(typeof navigator<`u`?navigator:void 0),n=e.document??(typeof document<`u`?document:void 0),r=e.window??(typeof window<`u`?window:void 0),i=e.randomUUID??(()=>crypto.randomUUID()),a=!!t?.serviceWorker?.controller,o=a?i():void 0;if(!o||!t?.serviceWorker)return{syncFsBridgeEnabled:a,syncFsChannelNonce:o};let s=t.serviceWorker,c={type:Ll,nonce:o},l=()=>s.controller?.postMessage(c);return l(),s.addEventListener(`controllerchange`,l),s.addEventListener(`message`,e=>{e.data?.type===`sync-fs-need-nonce`&&l()}),n?.addEventListener(`visibilitychange`,()=>{n.visibilityState===`visible`&&l()}),r?.addEventListener(`focus`,l),{syncFsBridgeEnabled:a,syncFsChannelNonce:o}}var zl=class{#e=new Map;#t=new Map;#n=new Map;sync(e,t){let n=new Set;for(let r of e){if(!Un(r))continue;n.add(r.id);let e=this.#r(r);e>0&&r.id!==t&&this.#e.set(r.id,(this.#e.get(r.id)??0)+e)}t&&this.#e.delete(t);for(let e of[...this.#e.keys()])n.has(e)||this.#e.delete(e);for(let e of[...this.#t.keys()])n.has(e)||this.#t.delete(e);for(let e of[...this.#n.keys()])n.has(e)||this.#n.delete(e);return this.counts()}#r(e){let t=this.#t.get(e.id),n=this.#t.has(e.id);if(this.#t.set(e.id,e.state),typeof e.turns==`number`&&Number.isFinite(e.turns)){let t=this.#n.get(e.id)??(n?0:void 0);return this.#n.set(e.id,e.turns),t===void 0?0:e.turns>t?Math.floor(e.turns-t):0}return this.#n.delete(e.id),n&&t===`working`&&e.state!==`working`?1:0}counts(){return new Map(this.#e)}};function Bl(e,t){let n=e=>{t.onError?.(e instanceof Error?e.message:String(e))};return{sendMessage:(r,i,a,o)=>{let s=t.getSelectedId();if(!s){t.onError?.(`No scoop selected`);return}e.send(s,{text:r,...i?{messageId:i}:{},...a?{attachments:a}:{},...o?.steer?{steer:!0}:{},...o?.guestGate?{guestGate:o.guestGate}:{}}).catch(n)},onEvent:e=>t.onEvent(e),stop:()=>{let r=t.getSelectedId();r&&e.signal(r,`stop`).catch(n)}}}var Vl=`question`;function Hl(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{return}}function Ul(e,t,n){let r=e=>{let r=e.detail;if(!r||typeof r.answer!=`string`)return;let{question:i,kind:a,answer:o}=r,s=a===`datetime`||a===`date`?Hl():void 0;t(Vl,{action:`answer`,data:{question:i,kind:a,answer:o,...s?{timeZone:s}:{}}},void 0,n()??void 0)};return e.addEventListener(ee,r),()=>e.removeEventListener(ee,r)}var Wl=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;function Gl(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`assistant`&&!n.isStreaming&&!n.queued)return n.content}for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t].content;return null}function Kl(e){let t=e.writeText??(e=>navigator.clipboard.writeText(e)),n=document.createElement(`div`);n.className=`wc-copy-row`,n.style.cssText=`display:flex;justify-content:flex-start;margin:-8px 0 14px;`;let r=document.createElement(`slicc-press-button`);r.setAttribute(`tooltip`,`Copy last response · hold to copy chat`),r.setAttribute(`label`,`Copy last response — hold to copy entire chat`),r.setAttribute(`disable-double-click`,``),r.style.cssText=`color:var(--txt-3);cursor:pointer;display:inline-flex;`;let i=document.createRange();r.append(i.createContextualFragment(Wl));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=Gl(e.getMessages());await t(n??Qe([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=Qe([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function $(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ql(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove(),t.querySelector(`.sprinkle-action-card__meta`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function Jl(e){return`
|
|
243
|
+
`}\n${s}\n\n${n}\n`;await e.writeFile(a,o+c);try{await Ln({vfs:e,memoryPath:a,model:i?.model,apiKey:i?.apiKey,headers:i?.headers,signal:i?.signal})}catch(e){W.warn(`Cone memory budget step threw (append already committed)`,{error:e instanceof Error?e.message:String(e)})}}async function xa(e){return(await O(e)).filter(e=>(e.pendingEnrichment===!0||e.memoryPending===!0)&&Ca(e)<3)}async function Sa(e){let t={attempted:0,completed:0};if(!e.model||!e.apiKey)return t;try{for(let t of await O(e.vfs))t.memoryPending===!0&&t.memoryFailed===void 0&&Ca(t)>=3&&await Ba(e.vfs,t.filename,`catch-up retries exhausted (3)`);let n=await xa(e.vfs);for(let r of n)try{let n=await za(e.vfs,r.filename);if(!n)continue;t.attempted+=1,await wa(e.vfs,n,{model:e.model,apiKey:e.apiKey,headers:e.headers})&&(t.completed+=1)}catch(e){W.warn(`Pending session catch-up attempt failed`,{filename:r.filename,error:e instanceof Error?e.message:String(e)})}}catch(e){W.warn(`Pending session catch-up failed`,{error:e instanceof Error?e.message:String(e)})}return t}function Ca(e){let t=e.pendingAttemptCount;return typeof t==`number`&&Number.isInteger(t)&&t>0?t:0}async function wa(e,t,n){if(!t.pendingEnrichment&&!t.memoryPending)return null;let r=await ka(e,t);if(r===null)return null;let i=await Aa(e,t,r);if(i===null)return null;let{agentMessages:a}=i,o=await ja(e,t,i.chatMessages,n),s=o.curatorAlreadyRan,c=s||t.memorySkipped===!0?{...n,skipMemory:!0}:n,l=await Na(t,a,c,o.memoryMessages);if(l===null)return null;let u=await Oa(c,l.newTitle);await Pa(e,t,l.bullets,c);let d=await Ia(e,t,r,l.newTitle,u,n.skipMemory===!0);return d&&s&&(await Da(e,t.filename),await Va(e,d.filename),await Ta(e,t.filename)),d}async function Ta(e,t){for(let n of[kn(`/sessions/${t}`),In(`/sessions/${t}`)])try{await e.rm(n)}catch{}}async function Ea(e,t){try{return await e.stat(An(`/sessions/${t.filename}`)),!0}catch{return!1}}async function Da(e,t){try{await e.rm(An(`/sessions/${t}`))}catch{}}async function Oa(e,t){if(e.pickIcon)try{return await ea(await e.pickIcon({subject:`"${t}" — an archived chat session`})??void 0)}catch(e){W.warn(`Enrichment icon pick failed (continuing without icon)`,{error:e instanceof Error?e.message:String(e)});return}}async function ka(e,t){try{let n=await e.readFile(Ue(t),{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?W.info(`Pending archive missing — treating as already enriched`,{filename:t.filename}):W.warn(`Failed to read pending archive (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}}async function Aa(e,t,n){let r;try{r=(await Cn(e,n,t.filename)).messages}catch(e){return W.warn(`Failed to parse pending archive — leaving entry intact`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}return r.length===0?(W.info(`Pending archive has no messages — skipping enrichment`,{filename:t.filename}),null):{agentMessages:_a(r),chatMessages:r}}async function ja(e,t,n,r){let i=_a([...n]);if(r.skipMemory===!0||t.memoryPending!==!0)return{curatorAlreadyRan:!1,memoryMessages:i};if(await Ea(e,t))return{curatorAlreadyRan:!0,memoryMessages:i};let a=await Mn(e,t,n);return a.caughtUp?{curatorAlreadyRan:!0,memoryMessages:i}:a.through>0?{curatorAlreadyRan:!1,memoryMessages:i.filter(e=>Ma(e)>a.through)}:{curatorAlreadyRan:!1,memoryMessages:i}}function Ma(e){let t=e.timestamp;return typeof t==`number`?t:0}async function Na(e,t,n,r=t){let i=``;if(!n.skipMemory)try{i=await pe({messages:r,instruction:me,model:n.model,apiKey:n.apiKey,maxTokens:qi,headers:n.headers})}catch(t){return W.warn(`Enrichment memory call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}let a=``;try{a=va(await pe({messages:t,instruction:he,model:n.model,apiKey:n.apiKey,maxTokens:Ji,headers:n.headers}))}catch(t){return W.warn(`Enrichment title call failed (entry stays pending)`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return a?{bullets:i,newTitle:a}:(W.info(`Enrichment title call returned empty — entry stays pending`,{filename:e.filename}),null)}async function Pa(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await ba(e,ma(t.cone||`cone`),i,`pending-enrichment`,{model:r.model,apiKey:r.apiKey,headers:r.headers})}catch(e){W.warn(`Enrichment memory append failed (continuing with title rewrite)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}function Fa(e,t,n,r,i){let a=r??e.icon;return{filename:t,title:n,frozenAt:e.frozenAt,messageCount:e.messageCount,...e.cost?{cost:e.cost}:{},...e.models?{models:e.models}:{},...e.cone?{cone:e.cone}:{},...e.coneLabel?{coneLabel:e.coneLabel}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.curatedThrough?{curatedThrough:e.curatedThrough}:{},...a?{icon:a}:{},...e.completeSnapshotUnavailable?{completeSnapshotUnavailable:!0}:{},...i&&e.memoryPending?{memoryPending:!0}:{},...e.memorySkipped?{memorySkipped:!0}:{}}}async function Ia(e,t,n,r,i,a=!1){let o=Ue(t),s=Ve(t.filename),c=s?r:t.title,l=s?`${t.frozenAt.replace(/[:.]/g,`-`)}-${Xe(r)}.md`:t.filename,u=`${D}/${l}`;if(s)try{await ya(e,D);let r=La(n,c),i=Sn(t.filename),a=Sn(l),s=Je(r,o,u);if(s=Je(s,i,a),i!==a){let e=i.slice(i.lastIndexOf(`/`)+1),t=a.slice(a.lastIndexOf(`/`)+1);s=s.split(`sidecar: ${e}`).join(`sidecar: ${t}`)}await e.writeFile(u,s),await Tn(e,t.filename,l)}catch(e){return W.warn(`Enrichment write failed (entry stays pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),null}let d=Fa(t,l,c,i,a);if(!await qa(e,t,d))return null;if(u!==o){try{await e.rm(o)}catch(e){W.info(`Stale pending archive cleanup failed (harmless)`,{oldPath:o,error:e instanceof Error?e.message:String(e)})}try{await wn(e,t.filename)}catch(e){W.info(`Stale pending sidecar cleanup failed (harmless)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)})}}try{await e.flush()}catch{}return W.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:l,title:c}),d}function La(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}async function Ra(e,t){let n=null,r=T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let{memoryPending:a,pendingEnrichment:o,pendingAttemptCount:s,memoryFailed:c,...l}=r[i],u={...l,memoryCuratedAt:new Date().toISOString()},d=r.slice();d[i]=u,await e.writeFile(E,JSON.stringify(d,null,2)),await e.flush(),n=u});try{await r}catch(e){W.warn(`Failed to clear agentic memory pending marker`,{filename:t,error:e instanceof Error?e.message:String(e)})}return n}async function za(e,t){let n=null;return await T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r[i];if(!a.pendingEnrichment&&!a.memoryPending)return;let o=Ca(a);if(o>=3)return;n={...a,pendingAttemptCount:o+1};let s=r.slice();s[i]=n,await e.writeFile(E,JSON.stringify(s,null,2)),await e.flush()}),n}async function Ba(e,t,n){let r=T(async()=>{let r=await O(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r.slice();a[i]={...r[i],memoryFailed:n.slice(0,300)},await e.writeFile(E,JSON.stringify(a,null,2)),await e.flush()});try{await r}catch(e){W.warn(`Failed to record curator failure in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function Va(e,t){let n=T(async()=>{let n=await O(e),r=n.findIndex(e=>e.filename===t);if(r===-1)return;let{memoryFailed:i,...a}=n[r],o=n.slice();o[r]={...a,memoryCuratedAt:new Date().toISOString()},await e.writeFile(E,JSON.stringify(o,null,2)),await e.flush()});try{await n}catch(e){W.warn(`Failed to record curator completion in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function Ha(e,t,n){return T(async()=>{let r=await Ua(e),i=r.findIndex(e=>e.filename===t);if(i!==-1){let t=r.slice();t[i]=n;let a=t.filter((e,t)=>t===i||e.filename!==n.filename);return await e.writeFile(E,JSON.stringify(a,null,2)),`replaced`}let a=await Wa(e,r,t,n);if(a===`prepended`){let t=[n,...r.filter(e=>e.filename!==n.filename)];await e.writeFile(E,JSON.stringify(t,null,2))}else if(a===`replaced`){let t=r.map(e=>e.filename===n.filename?n:e);await e.writeFile(E,JSON.stringify(t,null,2))}else await Ka(e,r,t,n.filename);return a})}async function Ua(e){try{let t=await e.readFile(E,{encoding:`utf-8`}),n=JSON.parse(typeof t==`string`?t:new TextDecoder().decode(t));return Array.isArray(n)?n:[]}catch(e){if(!(e instanceof kt)||e.code!==`ENOENT`)throw e;return[]}}async function Wa(e,t,n,r){if(t.some(e=>e.filename===r.filename))return`replaced`;let i=r.sessionId;return(i&&!xn(i)?t.filter(e=>e.sessionId===i):[]).length===1?`superseded`:await Ga(e,`/sessions/${n}`)?`prepended`:`deleted`}async function Ga(e,t){try{return await e.stat(t),!0}catch(e){return e?.code!==`ENOENT`}}async function Ka(e,t,n,r){if(r===n||t.some(e=>e.filename===r))return;let i=`${D}/${r}`;try{await e.rm(i)}catch(e){e?.code!==`ENOENT`&&W.warn(`Enrichment could not drop its renamed copy`,{path:i,error:e})}let a=Sn(r);try{await wn(e,r)}catch(e){e?.code!==`ENOENT`&&W.warn(`Enrichment could not drop its renamed copy`,{path:a,error:e})}}async function qa(e,t,n){let r;try{r=await Ha(e,t.filename,n)}catch(e){return W.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),!1}return r===`superseded`||r===`deleted`?(W.info(`Enrichment dropped — the session changed during the pass`,{filename:t.filename,outcome:r}),!1):!0}async function Ja(e,t){return T(async()=>{let n=[];try{let t=await e.readFile(E,{encoding:`utf-8`}),r=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(r);Array.isArray(i)&&(n=i)}catch(e){if(!(e instanceof kt)||e.code!==`ENOENT`)throw e;return}if(!n.find(e=>e.filename===t))return;let r=n.map(e=>e.filename===t?{...e,completeSnapshotUnavailable:!0}:e);await e.writeFile(E,JSON.stringify(r,null,2))})}var Ya=`slicc:followers-changed`;function Xa(e){let t=e.replace(/^follower-/,``);return t.length>12?`${t.slice(0,8)}…`:t}function Za(e){return e.floatType===`ios`?`iOS`:e.floatType===`electron`?`Electron`:e.floatType===`extension`?`Extension`:e.floatType===`standalone`?`Standalone`:e.runtime?.includes(`cli`)?`CLI`:`Follower`}function Qa(e){return e.floatType===`ios`?`smartphone`:e.floatType===`electron`||e.floatType===`standalone`?`monitor`:e.floatType===`extension`?`blocks`:e.runtime?.includes(`cli`)?`terminal`:`radio`}function $a(e,t=Date.now()){if(!e)return null;let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let r=Math.max(0,Math.floor((t-n)/1e3));return r<60?`${r}s`:r<3600?`${Math.floor(r/60)}m`:r<86400?`${Math.floor(r/3600)}h`:`${Math.floor(r/86400)}d`}function eo(e){return e.health===`stalled`?`warn`:e.peerState===`connecting`?`idle`:e.peerState===`connected`&&e.health===`live`?`active`:`idle`}function to(e,t=Date.now()){let n=e.health===`stalled`?`stalled`:e.peerState===`connecting`?`connecting`:`connected`,r=$a(e.connectedAt,t);return r?`${n} ${r}`:n}function no(e){let t=[];return e.exec&&t.push(`can run commands`),e.computer&&t.push(`native screen`),e.cdp&&t.push(`hosts tabs`),t}function ro(e){return`${Za(e)} · ${Xa(e.runtimeId)}`}function io(e){return e.motd??e.runtime??void 0}function ao(e,t=Date.now()){return e.map(e=>({id:e.runtimeId,icon:Qa(e),title:ro(e),detail:io(e),state:eo(e),stateText:to(e,t),chips:no(e)}))}function oo(e){return e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78?`image/png`:e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?`image/jpeg`:null}function so(e){if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}if(e instanceof ArrayBuffer)return new Uint8Array(e.slice(0));if(ArrayBuffer.isView(e)){let t=e;return new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}return Array.isArray(e)?Uint8Array.from(e):e&&typeof e==`object`?lo(e):new Uint8Array}function co(e){if(typeof e.byteLength==`number`)return e.byteLength;if(typeof e.length==`number`)return e.length;let t=-1;for(let n of Object.keys(e)){if(!/^\d+$/.test(n))continue;let e=Number(n);e>t&&(t=e)}return t+1}function lo(e){let t=co(e),n=new Uint8Array(t);for(let r=0;r<t;r++){let t=e[r];typeof t==`number`&&(n[r]=t&255)}return n}var uo=2,fo=768,po=class{computers=[];frames=new Map;listListeners=new Set;frameListeners=new Set;invocationListeners=new Set;sender=null;watchSubs=new Map;kernelWatch=new Map;nextWatchToken=1;invocations=new Map;list(){return this.computers.slice()}get(e){return this.computers.find(t=>t.id===e)??null}lastFrame(e){return this.frames.get(e)??null}onList(e){return this.listListeners.add(e),()=>this.listListeners.delete(e)}onFrame(e){return this.frameListeners.add(e),()=>this.frameListeners.delete(e)}onInvocations(e){return this.invocationListeners.add(e),()=>this.invocationListeners.delete(e)}setSender(e){this.sender=e}isWatching(e){return(this.watchSubs.get(e)?.length??0)>0}watchRefCount(e){return this.watchSubs.get(e)?.length??0}watch(e,t=uo,n=fo){if(!this.sender)throw Error(`computers store has no kernel sender`);let r=this.nextWatchToken++,i=this.watchSubs.get(e)??[];return i.push({token:r,fps:t,maxWidth:n}),this.watchSubs.set(e,i),this.syncKernelWatch(e),r}unwatch(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);let n=this.watchSubs.get(e);if(!n?.length)return;let r=t===void 0?n.length-1:n.findIndex(e=>e.token===t);if(!(r<0)){if(n.splice(r,1),n.length===0){this.watchSubs.delete(e),this.kernelWatch.delete(e),this.sender({type:`computer-unwatch`,id:e});return}this.syncKernelWatch(e)}}syncKernelWatch(e){let t=this.watchSubs.get(e);if(!t?.length||!this.sender)return;let n=Math.max(...t.map(e=>e.fps)),r=Math.max(...t.map(e=>e.maxWidth)),i=this.kernelWatch.get(e);i&&i.fps===n&&i.maxWidth===r||(this.kernelWatch.set(e,{fps:n,maxWidth:r}),this.sender({type:`computer-watch`,id:e,fps:n,maxWidth:r}))}input(e,t){if(!this.sender)throw Error(`computers store has no kernel sender`);this.sender({type:`computer-input`,id:e,events:t})}recordInvocation(e,t){this.invocations.set(e,t);for(let e of[...this.invocationListeners])e()}newestInvocation(e){return this.invocations.get(e)??null}applyList(e){this.computers=e.computers.slice();let t=new Set(this.computers.map(e=>e.id));for(let e of[...this.invocations.keys()])t.has(e)||this.invocations.delete(e);for(let e of[...this.frames.keys()])t.has(e)||this.frames.delete(e);for(let e of[...this.listListeners])e(this.computers)}applyFrame(e){let t=this.frames.get(e.id);if(t&&t.seq>e.seq)return;let n={seq:e.seq,mime:e.mime,width:e.width,height:e.height,bytes:so(e.bytes),...e.overCap?{overCap:!0}:{}};this.frames.set(e.id,n);for(let t of[...this.frameListeners])t(e.id,n)}},mo=null;function ho(){return mo||=new po,mo}var go=`__slicc_binary__`,_o=`b64`;function vo(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[go]===_o&&typeof t.data==`string`}function yo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)}function bo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)&&!vo(e)}function xo(e){if(e instanceof Uint8Array)return{[go]:_o,data:ve(e)};if(Array.isArray(e))return e.map(xo);if(yo(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=xo(r);return t}return e}function So(e){if(vo(e))return ye(e.data);if(Array.isArray(e))return e.map(So);if(bo(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=So(r);return t}return e}var Co=n(`panel-transport`);function wo(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function To(){return{onMessage:e=>{let t=(t,n,r)=>(wo(t)&&e(So(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=xo(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{Co.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Eo={summarizing:`summarizing`,fallback:`fallback`,cancelled:`discarded`,idle:`summarized`},Do=class{mintId;open=new Map;settled=new Map;constructor(e){this.mintId=e}apply(e,t,n,r){if(t===`extracting-memory`)return null;let i=this.open.get(e)??this.lateRetraction(e,t,n)??r;if(t!==`summarizing`&&!i)return null;t!==`summarizing`&&(this.open.delete(e),this.settled.delete(e));let a=i??this.mintId(e);if(t===`summarizing`&&this.open.set(e,a),(t===`idle`||t===`fallback`)&&n.roundId&&this.settled.set(e,{messageId:a,roundId:n.roundId}),t===`cancelled`)return{kind:`retract`,messageId:a};let o={trigger:n.trigger,state:Eo[t],...n.transcriptPath?{transcriptPath:n.transcriptPath}:{}};return t===`summarizing`?{kind:`open`,messageId:a,marker:o}:{kind:`settle`,messageId:a,marker:o}}forget(e){this.open.delete(e),this.settled.delete(e)}lateRetraction(e,t,n){if(t!==`cancelled`||!n.roundId)return;let r=this.settled.get(e);return r?.roundId===n.roundId?r.messageId:void 0}},Oo=2e3,ko=5e3,G=n(`offscreen-client`),Ao=class{eventListeners=new Set;backgroundEventListeners=new Set;backgroundMessageId=new Map;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;compactionRows=new Do(e=>`compaction-${e}-${K()}`);toolDepth=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingWebhookDeliveries=new Map;pendingAgentSpawnRequests=new Map;pendingThinkingAcks=new Map;streamThinkingByUnit=new Map;pendingModelAcks=new Map;pendingUserMessageAcks=new Map;pendingTranscriptRequests=new Map;pendingChatMessagesRequests=new Map;pendingStatsRequests=new Map;pendingSudoRequests=new Map;transport;_selectedScoopJid=null;get selectedScoopJid(){return this._selectedScoopJid}scoopSelectedListeners=new Set;onScoopSelected(e){return this.scoopSelectedListeners.add(e),()=>{this.scoopSelectedListeners.delete(e)}}setSelectedScoopJid(e){if(this._selectedScoopJid!==e&&(this.handOverOpenMessages(this._selectedScoopJid,e),this._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){G.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??To(),this.setupMessageListener(),ho().setSender(e=>this.send(e))}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}emitAgentError(e){this.emitToUI({type:`error`,error:e})}createAgentHandle(){return{sendMessage:(e,t,n,r)=>{if(!this.selectedScoopJid){this.emitToUI({type:`error`,error:`No scoop selected`});return}this.send({type:`user-message`,scoopJid:this.selectedScoopJid,text:e,attachments:n,messageId:t??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,...r?.steer?{steer:!0}:{},...r?.guestGate?{guestGate:r.guestGate}:{}})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}sendUserMessage(e){if(this.locked)return Promise.reject(Error(`This window is detached. Close it and use the detached tab.`));let t=`um-${K()}`,n=new Promise((e,n)=>{this.pendingUserMessageAcks.set(t,{resolve:e,reject:n})});this.send({type:`user-message`,requestId:t,scoopJid:e.scoopJid,text:e.text,messageId:e.messageId,...e.attachments?{attachments:[...e.attachments]}:{},...e.steer?{steer:!0}:{},...e.guestGate?{guestGate:e.guestGate}:{}});let r,i=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`the kernel did not answer in time`)),ko)});return Promise.race([n,i]).finally(()=>{r!==void 0&&clearTimeout(r),this.pendingUserMessageAcks.delete(t)})}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e,t={}){if(!k(e))throw Error(`OffscreenClient.registerScoop is cone-only; use scoop_scoop for non-cone scoops`);this.scoops.find(t=>t.name===e.name)||(this.scoops.push(e),this.scoopStatuses.set(e.jid,`initializing`)),this.send({type:`cone-create`,name:e.name,...t.description?{description:t.description}:{},...t.prompt?{prompt:t.prompt}:{},...e.model?{model:e.model}:{}})}async unregisterScoop(e){let t=this.scoops.find(t=>t.jid===e);if(t&&k(t)&&sn(this.scoops).length<=1)throw Error(`Cannot remove the last cone`);this.send({type:`scoop-drop`,scoopJid:e}),this.scoops=this.scoops.filter(t=>t.jid!==e),this.scoopStatuses.delete(e)}createScoopTab(e){}async getGlobalMemory(){if(!this.localFs)return``;try{let e=await this.localFs.readFile(`/shared/CLAUDE.md`,{encoding:`utf-8`});return typeof e==`string`?e:new TextDecoder().decode(e)}catch{return``}}getScoopContext(e){if(this.localFs)return{getFS:()=>this.localFs}}getSharedFS(){return this.localFs}stopScoop(e){this.send({type:`abort`,scoopJid:e})}async clearQueuedMessages(e){}async deleteQueuedMessage(e,t){this.send({type:`delete-queued-message`,scoopJid:e,messageId:t})}updateModel(){this.send({type:`refresh-model`})}reloadSkills(){this.send({type:`reload-skills`})}setScoopModel(e,t){let n=`model-${K()}`,r=new Promise(e=>{this.pendingModelAcks.set(n,e)});return this.send({type:`set-scoop-model`,requestId:n,scoopJid:e,model:t}),Promise.race([r,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingModelAcks.delete(n))}setLocked(e){this.locked=e}setScoopThinkingLevel(e,t,n){let r=`thinking-${K()}`,i=new Promise(e=>{this.pendingThinkingAcks.set(r,e)});return this.send({type:`set-thinking-level`,requestId:r,scoopJid:e,level:t,effortOverride:n}),Promise.race([i,new Promise(e=>setTimeout(()=>e(!1),5e3))]).finally(()=>this.pendingThinkingAcks.delete(r))}async clearAllMessages(e,t={}){let n=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingClearAcks.set(n,e)});this.send({type:`clear-chat`,requestId:n,...e?{scoopJid:e}:{},...t.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}}),await Promise.race([r,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(n)}spawnAgent(e){let t=`agent-${K()}`,n=new Promise((e,n)=>{this.pendingAgentSpawnRequests.set(t,{resolve:e,reject:n})}),{signal:r,...i}=e;return this.send({type:`agent-spawn-request`,requestId:t,options:i}),r&&(r.aborted?this.send({type:`agent-spawn-abort`,requestId:t}):r.addEventListener(`abort`,()=>this.send({type:`agent-spawn-abort`,requestId:t}),{once:!0})),n}clearFilesystem(){this.send({type:`clear-filesystem`})}requestScoopMessages(e){this.send({type:`request-scoop-messages`,scoopJid:e})}async getScoopTranscript(e){let t=`tr-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingTranscriptRequests.set(t,e)});this.send({type:`request-scoop-transcript`,requestId:t,scoopJid:e});let r=await Promise.race([n,new Promise(e=>setTimeout(()=>e(``),5e3))]);return this.pendingTranscriptRequests.delete(t),r}async getMessagesForScoop(e){let t=`cm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingChatMessagesRequests.set(t,e)});this.send({type:`request-scoop-chat-messages`,requestId:t,scoopJid:e});let r=!1,i=await Promise.race([n,new Promise(e=>setTimeout(()=>{r=!0,e([])},5e3))]);return this.pendingChatMessagesRequests.delete(t),r&&G.warn(`getMessagesForScoop timed out`,{scoopJid:e}),i}async requestSudoApproval(e,t=6e5){let n=`sudo-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=new Promise(e=>{this.pendingSudoRequests.set(n,e)});this.send({type:`request-sudo-approval`,requestId:n,request:e});let i=await Promise.race([r,new Promise(e=>setTimeout(()=>e({decision:`deny`,reason:`unavailable`}),t))]);return this.pendingSudoRequests.delete(n),i}async getSessionStats(){let e=`st-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,t=new Promise(t=>{this.pendingStatsRequests.set(e,t)});this.send({type:`request-session-stats`,requestId:e});let n=await Promise.race([t,new Promise(e=>setTimeout(()=>e(null),5e3))]);return this.pendingStatsRequests.delete(e),n}requestState(){this.send({type:`request-state`});let e=0;this.stateRetryTimer=setInterval(()=>{if(e++,this.ready||e>20){this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null);return}G.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,origin:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}async sendWebhookEvent(e,t,n){let r=`wh-${K()}`,i=new Promise(e=>{this.pendingWebhookDeliveries.set(r,e)});this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n,requestId:r});try{return await Promise.race([i,new Promise(e=>setTimeout(()=>e(null),Oo))])}finally{this.pendingWebhookDeliveries.delete(r)}}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){if(!this.applySurfacePush(e))switch(e.type){case`offscreen-ready`:this.ready?(G.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):G.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.handleCompactionState(e);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`lick-webhook-delivery`:{let t=this.pendingWebhookDeliveries.get(e.requestId);t&&(this.pendingWebhookDeliveries.delete(e.requestId),t(e.disposition));break}case`agent-spawn-result`:this.handleAgentSpawnResult(e);break;case`set-scoop-model-ack`:this.handleScoopModelAck(e);break;case`set-thinking-level-ack`:this.handleThinkingLevelAck(e);break;case`user-message-ack`:this.handleUserMessageAck(e);break;case`scoop-created`:this.handleScoopCreated(e);break;case`scoop-list`:this.handleScoopList(e);break;case`state-snapshot`:this.handleStateSnapshot(e);break;case`error`:this.handleError(e);break;case`lick-backpressure`:this.callbacks.onLickBackpressure?.(e.scoopJid,{count:e.count,waitingMs:e.waitingMs});break;case`incoming-message`:this.handleIncomingMessage(e);break;case`message-updated`:this.handleMessageUpdated(e);break;case`scoop-messages-replaced`:{let t=e;this.resyncStreamPointer(t.scoopJid,t.messages),this.callbacks.onScoopMessagesReplaced?.(t.scoopJid,t.messages,t.queuedIds);break}case`scoop-transcript`:{let t=e,n=this.pendingTranscriptRequests.get(t.requestId);n&&(this.pendingTranscriptRequests.delete(t.requestId),n(t.transcript));break}case`scoop-chat-messages`:{let t=e,n=this.pendingChatMessagesRequests.get(t.requestId);n&&(this.pendingChatMessagesRequests.delete(t.requestId),n(t.messages));break}case`sudo-approval`:{let t=e,n=this.pendingSudoRequests.get(t.requestId);n&&(this.pendingSudoRequests.delete(t.requestId),n(t.decision));break}case`session-stats`:{let t=e,n=this.pendingStatsRequests.get(t.requestId);n&&(this.pendingStatsRequests.delete(t.requestId),n({totalCost:t.totalCost,burnRate:t.burnRate,fills:t.fills,models:t.models??[],scoops:t.scoops??[],...t.budget?{budget:t.budget}:{}}));break}case`tray-runtime-status`:{let t=e;jo(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event)}}applySurfacePush(e){if(e.type===`computers`)return ho().applyList(e),!0;if(e.type===`computer-frame`)return ho().applyFrame(e),!0;switch(e.type){case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:case`terminal-mode`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){G.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}return!0;default:return!1}}handleAgentSpawnResult(e){let t=this.pendingAgentSpawnRequests.get(e.requestId);t&&(this.pendingAgentSpawnRequests.delete(e.requestId),e.ok?t.resolve(e.result):t.reject(Error(e.error)))}terminalEventListeners=new Set;onTerminalEvent(e){return this.terminalEventListeners.add(e),()=>this.terminalEventListeners.delete(e)}resyncStreamPointer(e,t){let n;for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.role===`assistant`&&r.isStreaming){n=r.id;break}}n===void 0?this.currentMessageId.delete(e):this.currentMessageId.set(e,n)}trackToolPhase(e,t){let n=this.toolDepth.get(e)??0,r=t===null?0:Math.max(0,n+t);r===0?this.toolDepth.delete(e):this.toolDepth.set(e,r),n>0!=r>0&&this.callbacks.onScoopPhaseChange?.(e,r>0?`tool`:`thinking`)}handleToolUiAgentEvent(e){if(e.displayScoopJid){let t=`tool-ui-${e.requestId??``}`;e.eventType===`tool_ui`?this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``}):e.eventType===`tool_ui_done`&&this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``});return}if(e.eventType===`tool_ui`){let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${K()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});return}let t=this.currentMessageId.get(e.scoopJid);t&&(e.eventType===`tool_ui_done`?this.emitToUI({type:`tool_ui_done`,messageId:t,requestId:e.requestId??``}):e.progress&&this.emitToUI({type:`tool_progress`,messageId:t,toolName:e.toolName??``,progress:e.progress,toolCallId:e.toolCallId}))}handleAgentEvent(e){switch(e.eventType){case`text_delta`:case`tool_start`:case`tool_ui`:case`turn_end`:this.callbacks.onScoopActivity?.(e.scoopJid)}switch(e.eventType){case`tool_start`:this.trackToolPhase(e.scoopJid,1);break;case`tool_end`:this.trackToolPhase(e.scoopJid,-1);break;case`turn_end`:this.trackToolPhase(e.scoopJid,null)}if((e.displayScoopJid??e.scoopJid)!==this.selectedScoopJid){this.translateTranscriptEvent(e,this.backgroundMessageId,t=>this.emitBackground(e.scoopJid,t));return}switch(e.eventType){case`tool_ui`:case`tool_ui_done`:case`tool_progress`:this.handleToolUiAgentEvent(e);break;default:this.translateTranscriptEvent(e,this.currentMessageId,e=>this.emitToUI(e))}}translateTranscriptEvent(e,t,n){let r=()=>{let r=t.get(e.scoopJid);return r||(r=`scoop-${e.scoopJid}-${K()}`,t.set(e.scoopJid,r),n({type:`message_start`,messageId:r})),r};switch(e.eventType){case`text_delta`:n({type:`content_delta`,messageId:r(),text:e.text??``});break;case`tool_start`:n({type:`tool_use_start`,messageId:r(),toolName:e.toolName??``,toolInput:e.toolInput,toolCallId:e.toolCallId});break;case`tool_end`:{let r=t.get(e.scoopJid);r&&n({type:`tool_result`,messageId:r,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError,toolCallId:e.toolCallId});break}case`response_done`:{let r=t.get(e.scoopJid);r&&(n({type:`content_done`,messageId:r,model:e.model,usage:e.usage}),t.delete(e.scoopJid));break}case`turn_end`:{let r=t.get(e.scoopJid)??`done-${e.scoopJid}-${K()}`;t.delete(e.scoopJid),n({type:`turn_end`,messageId:r});break}}}handOverOpenMessages(e,t){let n=(e,t)=>{t&&this.emitBackground(e,{type:`content_done`,messageId:t})};e&&n(e,this.currentMessageId.get(e)),t&&(n(t,this.backgroundMessageId.get(t)),this.backgroundMessageId.delete(t))}onBackgroundUnitEvent(e){return this.backgroundEventListeners.add(e),()=>this.backgroundEventListeners.delete(e)}emitBackground(e,t){for(let n of this.backgroundEventListeners)try{n(e,t)}catch(e){G.error(`Background listener error`,{error:e instanceof Error?e.message:String(e)})}}renderCompactionNotice(e,t,n,r){let i=this.compactionRows.apply(e,t,n,r);i&&e===this.selectedScoopJid&&this.emitToUI({type:`compaction_notice`,messageId:i.messageId,marker:i.kind===`retract`?{trigger:n.trigger,state:`discarded`}:i.marker})}handleCompactionState(e){let t={trigger:e.trigger??`threshold`,...e.transcriptPath?{transcriptPath:e.transcriptPath}:{},...e.failure?{failure:e.failure}:{},...e.roundId?{roundId:e.roundId}:{}};this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state,t),this.renderCompactionNotice(e.scoopJid,e.state,t,e.rowId)}handleScoopStatus(e){let t=this.scoopStatuses.get(e.scoopJid);this.scoopStatuses.set(e.scoopJid,e.status),t!==e.status&&this.trackToolPhase(e.scoopJid,null),this.callbacks.onStatusChange(e.scoopJid,e.status)}handleScoopCreated(e){let t=this.msgScoopToRegistered(e.scoop);this.scoops=this.scoops.filter(e=>e.name!==t.name||e.jid===t.jid),this.scoops.find(e=>e.jid===t.jid)||this.scoops.push(t),this.scoopStatuses.set(t.jid,e.scoop.status),this.callbacks.onScoopCreated(t)}wireScoops(){return this.scoops.map(e=>{let t=ln(e),n=un(e),r={...e.config,...t?{modelId:t.id,modelProviderId:t.provider}:{},...n.level?{thinkingLevel:n.level}:{},...n.effortOverride?{effortOverride:n.effortOverride}:{}};return{jid:e.jid,name:e.name,folder:e.folder,parentId:e.parentJid,assistantLabel:e.assistantLabel,status:this.scoopStatuses.get(e.jid)??`ready`,...Object.keys(r).length>0?{config:r}:{}}})}handleScoopModelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&(t.model=e.model?{...e.model}:void 0,this.callbacks.onScoopListUpdate(this.wireScoops()))}this.pendingModelAcks.get(e.requestId)?.(e.applied)}getStreamThinking(e){return this.streamThinkingByUnit.get(e)}handleThinkingLevelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&on(t,e.level===void 0?void 0:{level:e.level,effortOverride:e.effortOverride}),e.resolvedLevel&&this.streamThinkingByUnit.set(e.scoopJid,{level:e.resolvedLevel===`max`?`xhigh`:e.resolvedLevel,...e.resolvedEffortOverride?{effortOverride:e.resolvedEffortOverride}:{}})}this.pendingThinkingAcks.get(e.requestId)?.(e.applied)}handleUserMessageAck(e){let t=this.pendingUserMessageAcks.get(e.requestId);t&&(e.ok?t.resolve():t.reject(Error(e.error?.trim()||`the kernel refused the message`)))}handleScoopList(e){this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){G.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(e=>this.msgScoopToRegistered(e));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&jo(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){let t={type:`error`,error:e.error,...e.endTurn===!1?{endTurn:!1}:{}};e.scoopJid===this.selectedScoopJid?this.emitToUI(t):e.scoopJid&&this.emitBackground(e.scoopJid,t)}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}msgScoopToRegistered(e){return an({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId,requiresTrigger:e.parentId!==null,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}})}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){G.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function K(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function jo(e,t){nn({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),pt({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function Mo(e){let t=e.createAgentHandle(),n=null,r=null;return{onAgentEvent:e=>t.onEvent(e),sendSprinkleLick:(t,n,r,i)=>e.sendSprinkleLick(t,n,r,i?{unitJid:i}:void 0),sendToolUiAction:(t,n,r)=>e.sendToolUiAction(t,n,r),deleteQueuedMessage:(t,n)=>e.deleteQueuedMessage(t,n),emitAgentError:t=>e.emitAgentError(t),getRecord:t=>e.getScoops().find(e=>e.jid===t),speaksReplies:!0,takeAttachments:()=>n?.(),onTurnIdle:()=>r?.(),welcome:{intercept:null},setAttachmentSource:e=>{n=e},setTurnIdleHook:e=>{r=e}}}var No={onAgentEvent:()=>()=>void 0,sendSprinkleLick:()=>void 0,sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.resolve(),emitAgentError:()=>void 0},Po=`A follower cannot cancel the leader’s queued message`;function Fo(e){return{onAgentEvent:e.onAgentEvent,sendSprinkleLick:(t,n,r)=>e.getSync()?.sendSprinkleLick(t,n,r),sendToolUiAction:()=>void 0,deleteQueuedMessage:()=>Promise.reject(Error(Po)),emitAgentError:e.onAgentError,readOnlyToolUi:!0}}function q(e){return!e.includes(`\0`)}function Io(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!q(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!q(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!q(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!q(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(q(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Lo(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:(t,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function Ro(e){let t=Lo(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}async function zo(e,t,n,r,i,a){let o=e;if(o?.type){if(o.type===`cdp-cmd`){let r=e;if((r.gen??a())<a()){n.send({type:`cdp-response`,id:r.id,error:`dropped: command crossed a CDP connection reset in flight`});return}try{i&&t.state!==`connected`&&t.superseded!==!0&&await i();let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(o.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(o.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i)}}}function Bo(e,t){for(let[n,r]of t)e.off(n,r),e.on(n,r)}var Vo=1e4;function Ho(e){return new Promise((t,n)=>{let r=!1,i=null,a=null,o=e=>{r||(r=!0,clearTimeout(s),a&&clearInterval(a),i?.(),e?n(e):t())},s=setTimeout(()=>o(Error(`page CDP client is still connecting`)),Vo),c=e=>{e===`connected`?o():e===`disconnected`&&o(Error(`page CDP client failed to reconnect`))};e.onStateChange?i=e.onStateChange(e=>c(e)):a=setInterval(()=>c(e.state),50),c(e.state)})}function Uo(e,t,n={}){let r=Lo(e),i=null,a=n.reconnect?()=>(i||=(t.state===`connecting`?Ho(t):n.reconnect()).finally(()=>{i=null}),i):null,o=new Map,s=r.onMessage(e=>{zo(e,t,r,o,a,()=>l)}),c=t.state,l=0,u=t.onStateChange?.((e,n)=>{if(e!==c){if(c=e,e===`disconnected`){l+=1,r.send({type:`cdp-reset`,reason:n??`page CDP client disconnected`});return}e===`connected`&&(Bo(t,o),r.send({type:`cdp-ready`}))}});return()=>{s(),u?.();for(let[e,n]of o)t.off(e,n);o.clear()}}function Wo(){let e={};if(typeof localStorage>`u`)return e;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n===null)continue;let r=localStorage.getItem(n);r!==null&&(e[n]=r)}return e}function Go(e){let t=null,n=!1,r=!1,i=!1,a=0,o=Date.now(),s,c=()=>{t!==null&&(clearTimeout(t),t=null)},l=()=>{c(),!(n||r||i)&&(t=setTimeout(()=>{if(n||r||i)return;if(a+=1,a<e.readyStallLimit){e.onReadyStall?.({elapsedMs:Date.now()-o,stalls:a,stage:s}),l();return}i=!0,c();let t=e.readyTimeoutMs*e.readyStallLimit,u=s?` (last progress: ${s})`:``;e.onExhausted(`Kernel worker did not signal ready within ${t}ms${u}`)},e.readyTimeoutMs))};return{pause(){r||i||(n=!0,c())},restart(){r||i||(n=!1,a=0,o=Date.now(),l())},arm:l,clear(){r=!0,c()},noteProgress(t){r||i||(t&&(s=t,e.onBootProgress?.(t)),!n&&(a=0,l()))},timedOut:()=>i}}function Ko(e,t,n){let r=()=>{},i=()=>{},a=()=>{};return{ready:new Promise((o,s)=>{let c=null,l=Go({readyTimeoutMs:n,readyStallLimit:Math.max(1,t.readyStallLimit??(t.onReadyStall?3:1)),onReadyStall:t.onReadyStall,onBootProgress:t.onBootProgress,onExhausted:e=>{t.onLateReady||r(),s(Error(e))}});i=()=>l.pause(),a=()=>l.restart(),r=()=>{c!==null&&(e.removeEventListener(`message`,c),c=null),l.clear()},c=e=>{let n=e.data;if(n?.type===`kernel-worker-boot-progress`){l.noteProgress(n.stage);return}if(n?.type===`kernel-worker-ready`){if(r(),l.timedOut()){t.onLateReady?.();return}o();return}if(n?.type===`kernel-worker-boot-error`){r();let e=n.message??`unknown error`,t=n.code,i=Error(`Kernel worker boot failed: ${e}`);t&&(i.code=t),s(i)}},e.addEventListener(`message`,c),l.arm()}),cleanup:()=>r(),pauseReadyDeadline:()=>i(),restartReadyDeadline:()=>a()}}function qo(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=Ro(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Uo(o.port1,n,{...e.reconnectCdp?{reconnect:e.reconnectCdp}:{}}),{ready:u,cleanup:d,pauseReadyDeadline:f,restartReadyDeadline:p}=Ko(a.port1,e,r),m={type:`kernel-worker-init`,kernelPort:a.port2,cdpPort:o.port2,localStorageSeed:i,instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl??null,bridgeToken:e.bridgeToken??null,syncFsBridgeEnabled:e.syncFsBridgeEnabled??!1,syncFsChannelNonce:e.syncFsChannelNonce??null,localLickWsUrl:e.localLickWsUrl??null,extensionDelegateId:e.extensionDelegateId??null,pageBuildId:`6.248.3-mv5ir7jn`,pageLoadedAt:globalThis.performance?.timeOrigin??Date.now(),flagFloat:e.flagFloat??null,appPageUrl:globalThis.location?.href??null};t.postMessage(m,[a.port2,o.port2]);let h=!1;return{client:c,ready:u,pauseReadyDeadline:f,restartReadyDeadline:p,dispose(){if(!h){h=!0,d(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Jo(e){return qo({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-BnbHshZp.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,reconnectCdp:e.reconnectCdp,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Wo(),instanceId:e.instanceId,localApiBaseUrl:e.localApiBaseUrl,bridgeToken:e.bridgeToken,syncFsBridgeEnabled:e.syncFsBridgeEnabled,syncFsChannelNonce:e.syncFsChannelNonce,localLickWsUrl:e.localLickWsUrl,extensionDelegateId:e.extensionDelegateId,flagFloat:e.flagFloat,onWorkerScriptError:e.onWorkerScriptError,onReadyStall:e.onReadyStall,readyStallLimit:e.readyStallLimit,onLateReady:e.onLateReady,onBootProgress:e.onBootProgress})}var Yo=1048576,Xo=`r`;function Zo(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Qo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $o(e,t,n){if(typeof e==`string`){n.push({pointer:t,value:e});return}if(Array.isArray(e)){for(let r=0;r<e.length;r++)$o(e[r],`${t}/${r}`,n);return}if(Qo(e))for(let[r,i]of Object.entries(e))$o(i,`${t}/${Zo(r)}`,n)}function es(e,t,n){if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=es(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}if(Qo(e)){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=es(o,`${t}/${Zo(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}return e}function ts(e,t,n){if(Qo(e))return es(e,t,n);if(typeof e==`string`)return n.get(t)??e;if(Array.isArray(e)){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=ts(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}return e}function ns(e){let t=new Map;for(let n of e.matchAll(/⟦REDACTED:([^:⟧]+):([^⟧]+)⟧/g)){let e=n[0],r=t.get(e);r?r.count++:t.set(e,{category:n[1],id:n[2],count:1})}return t}async function rs(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new w(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>Yo)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new w(`redaction-unavailable`)}if(c.length!==s.length)throw new w(`redaction-unavailable`);r.push(...c),i=o}return r}function is(e,t,n,r){let i=[],a=ns(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=ns(t);for(let[e,{category:t,id:r,count:s}]of o)s>(a.get(e)?.count??0)&&i.push({id:r,category:t,detector:`known-secret`,target:n});let{text:s,matches:c,nextId:l}=Ze(t,Xo,r);for(let{id:e,category:t}of c)i.push({id:e,category:t,detector:`credential-pattern`,target:n});return{finalText:s,redactions:i,nextId:l}}function as(e,t,n){for(let{redactions:r}of e)for(let e of r)t.push(e),n[e.category]=(n[e.category]??0)+1}async function os(e,t,n,r){if(r?.aborted)throw new w(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];$o(a,``,o);let s=o.filter(e=>!Re(e.pointer)),c=[...t.entries()],l=await rs([...s.map(e=>e.value),...c.map(([,e])=>e)],n,r),u=[],d={},f=1,p=new Map,m=[];for(let e=0;e<s.length;e++){let t=s[e],n=is(t.value,l[e],{kind:`json`,pointer:t.pointer},f);f=n.nextId,n.finalText!==t.value&&p.set(t.pointer,n.finalText),m.push(n)}as(m,u,d);let h=new Map,g=s.length,_=[];for(let e=0;e<c.length;e++){let[t,n]=c[e],r=is(n,l[g+e],{kind:`attachment`,attachmentId:t},f);f=r.nextId,h.set(t,r.finalText),_.push(r)}as(_,u,d);let v=ts(e,``,p);return{document:{...v,privacy:{...v.privacy,redactionCounts:d,redactions:u}},textAttachments:h}}function ss(e,t){let n=e.startsWith(`text/`)||e===`application/json`,r=/\.(?:txt|md|json|csv|xml|ya?ml|js|mjs|cjs|ts|tsx|css|html)$/i.test(t);return n||r?`text-redacted`:`binary-unchanged`}var cs={"image/png":`.png`,"image/jpeg":`.jpg`,"image/gif":`.gif`,"image/webp":`.webp`,"image/svg+xml":`.svg`,"image/bmp":`.bmp`,"application/pdf":`.pdf`,"application/zip":`.zip`,"application/gzip":`.gz`,"application/json":`.json`,"text/plain":`.txt`,"text/markdown":`.md`,"text/csv":`.csv`,"text/html":`.html`,"text/xml":`.xml`,"application/xml":`.xml`};function ls(e,t){return cs[e]??(t===`text-redacted`?`.txt`:`.bin`)}function us(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${ls(t,n)}`}function ds(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function fs(e){let t=[];for(let n of e.conversations){let e=0;for(let r of n.messages){let i=r.role;if(i!==`user`&&i!==`assistant`&&i!==`tool-result`)continue;let a=0;for(let o of r.content)o.type===`attachment-ref`&&(t.push({attachmentId:o.attachmentId,conversationId:n.id,messageId:r.id,role:i,userOrdinal:e,imgIndex:a}),a++);i===`user`&&e++}}return t}async function ps(e,t,n,r,i){let a=ss(e.mimeType,e.name),o={attachmentId:t,originalName:e.name,mimeType:e.mimeType,handling:a,present:!0,sourceConversationId:n,sourceMessageId:r};if(a===`text-redacted`){let t;if(e.text!==void 0)t=e.text;else if(e.data!==void 0)t=new TextDecoder().decode(ds(e.data));else if(e.path!==void 0&&i!==void 0)try{t=new TextDecoder().decode(await i(e.path))}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return t===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawText:t}}let s;if(e.data!==void 0)s=ds(e.data);else if(e.path!==void 0&&i!==void 0)try{s=await i(e.path)}catch{return{...o,present:!1,missingReason:`attachment-file-missing`}}return s===void 0?{...o,present:!1,missingReason:`attachment-file-missing`}:{...o,rawBytes:s}}function ms(e,t,n,r){let i=[],a=new Set,o=new Set;for(let s of e){if(s.role!==`user`){let e=n.get(s.attachmentId);e===void 0?i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId})):i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`image-${s.imgIndex}`,mimeType:e.mimeType,handling:`binary-unchanged`,rawBytes:ds(e.data),present:!0,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let e=(t.get(s.conversationId)??[]).filter(e=>e.role===`user`)[s.userOrdinal];if(e===void 0){a.add(s.conversationId),i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-association-unavailable`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}let c=(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:e})=>e.kind===`image`||e.kind===`file`&&e.data!==void 0)[s.imgIndex];if(c===void 0){i.push(Promise.resolve({attachmentId:s.attachmentId,originalName:`unknown`,mimeType:`application/octet-stream`,handling:`binary-unchanged`,present:!1,missingReason:`attachment-file-missing`,sourceConversationId:s.conversationId,sourceMessageId:s.messageId}));continue}o.add(`${s.conversationId}:${e.id}:${c.i}`),i.push(ps(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function hs(e,t,n){return(e.attachments??[]).map((e,t)=>({a:e,i:t})).filter(({a:r,i})=>(r.kind===`text`||r.kind===`file`&&(r.data!==void 0||r.path!==void 0))&&!n.has(`${t}:${e.id}:${i}`))}function gs(e,t,n,r,i,a,o){let s=hs(t,n,i),c=[];for(let t=0;t<s.length;t++){let{a:i}=s[t],l=`${e.id}-file-${t}`;r.has(l)||(a.push(ps(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function _s(e,t,n,r,i){let a=new Map,o=[];for(let s of e.conversations){let e=(t.get(s.id)??[]).filter(e=>e.role===`user`),c=0;for(let t of s.messages){if(t.role!==`user`)continue;let l=e[c];if(c++,l===void 0)continue;let u=gs(t,l,s.id,n,r,o,i);u.length>0&&(a.has(s.id)||a.set(s.id,new Map),a.get(s.id).set(t.id,[...t.content,...u]))}}return{updates:a,additionalPendingPromises:o}}function vs(e,t){let n=new Map,r=0,i=new Map;for(let t of e)t.handling===`text-redacted`&&t.rawText!==void 0&&n.set(t.attachmentId,t.rawText),t.present&&i.set(t.attachmentId,us(r++,t.mimeType,t.handling));for(let n of e)!n.present&&n.missingReason!==void 0&&t.add(n.missingReason);return{rawAttachments:e.map(e=>e.present?{id:e.attachmentId,path:i.get(e.attachmentId),originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!0}:{id:e.attachmentId,path:``,originalName:e.originalName,mimeType:e.mimeType,byteLength:0,sha256:``,sourceConversationId:e.sourceConversationId,sourceMessageId:e.sourceMessageId,handling:e.handling,present:!1,missingReason:e.missingReason??`attachment-file-missing`}),textMap:n}}async function ys(e,t,n,r,i){let{rawAttachments:a,textMap:o}=vs(e,n),s,c;try{let e=await os({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof w?e:new w(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new w(`schema-invalid`);l.set(t.attachmentId,t)}let u=new Map,d=await Promise.all(s.attachments.map(async e=>{if(!e.present||!e.path)return e;let t=l.get(e.id);if(t===void 0)throw new w(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await Pe(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function bs(e){let{document:t,chatMessagesByConversation:n,knownSecrets:r,signal:i}=e,a=e.canonicalImages??new Map,o=e.vfsReader,s=new Set,{pendingPromises:c,mismatchedConvIds:l,processedUiPositions:u}=ms(fs(t),n,a,o);l.size>0&&s.add(`attachment-association-unavailable`);for(let e of t.conversations)e.messages.filter(e=>e.role===`user`).length>(n.get(e.id)??[]).filter(e=>e.role===`user`).length&&s.add(`attachment-association-unavailable`);let d=await Promise.all(c),{updates:f,additionalPendingPromises:p}=_s(t,n,new Set(d.map(e=>e.attachmentId)),u,o),m=await Promise.all(p),h=[...d,...m],g=t;f.size>0&&(g={...t,conversations:t.conversations.map(e=>{let t=f.get(e.id);return t?{...e,messages:e.messages.map(e=>{let n=t.get(e.id);return n?{...e,content:n}:e})}:e})});let{redactedDocument:_,bundleFiles:v}=await ys(h,g,s,r,i),y=[..._.session.completeness.missing.filter(e=>!s.has(e)),...s];return{document:{..._,session:{..._.session,completeness:{status:y.length>0?`partial`:_.session.completeness.status,missing:y}}},bundleFiles:v}}var xs=50;function Ss(e){return fn(e)}function Cs(e,t){return e.map(e=>{let n=t.isProcessing(e.jid)?`1`:`0`,r=t.getAgentMessages(e.jid);if(r===null)return`${e.jid}:${n}:null`;let i=r.length,a=r[i-1],o=a?.role??``,s=a&&`timestamp`in a?a.timestamp:-1,c=a&&`toolCallId`in a?a.toolCallId:``;return`${e.jid}:${n}:${i}:${o}:${s}:${c}`}).join(`,`)}function ws(e,t,n,r){let i=new Map;for(let e of t)i.set(e.id,e);let a=new Map;for(let e of n)a.set(e.id,e);let o=[],s=new Map;for(let t of e){let e=r.getAgentMessages(t.jid)??i.get(t.jid)?.messages??[],n={id:t.jid,kind:k(t)?`cone`:`scoop`,name:t.name,...t.folder&&!k(t)?{folder:t.folder}:{},...t.parentJid?{parentConversationId:t.parentJid}:{},...t.originToolCallId?{originToolCallId:t.originToolCallId}:{},messages:e};o.push(n);let c=Ss(t),l=a.get(c);l&&s.set(t.jid,l.messages)}return{sources:o,chatMessagesByConversation:s}}async function Ts(e,t,n={}){let r=e=>n.rootJid===void 0?e:dn(e,n.rootJid);for(;;){let n=r(e.listScoops());for(;n.some(t=>e.isProcessing(t.jid));)if(t?.aborted||(await e.wait(xs,t),t?.aborted))throw new w(`transfer-aborted`);let i=Cs(n,e),[a,o]=await Promise.all([e.loadPersistedSessions(),e.loadUiChatSessions()]);if(t?.aborted)throw new w(`transfer-aborted`);let s=r(e.listScoops());if(i===Cs(s,e))return ws(s,a,o,e)}}function Es(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function Ds(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function Os(e,t){if(typeof e==`string`)return e?[{type:`text`,text:e}]:[];let n=[],r=0;for(let i of e)i.type===`text`?i.text&&n.push({type:`text`,text:i.text}):i.type===`image`&&n.push(Ds(t,r++));return n}function ks(e,t){let n=[],r=new Map,i=0,a=0;for(let o of e)if(o.type===`thinking`)i+=1;else if(o.type===`text`)o.text&&n.push({type:`text`,text:o.text});else if(o.type===`toolCall`)n.push({type:`tool-call`,id:o.id??``,name:o.name??``,input:o.arguments??{}});else if(o.type===`image`){let e=Ds(t,a++);n.push(e),o.data&&o.mimeType&&r.set(e.attachmentId,{data:o.data,mimeType:o.mimeType})}return{blocks:n,excluded:i,images:r}}function As(e,t){let n=[],r=new Map,i=0;for(let a of e)if(a.type===`text`)a.text&&n.push({type:`text`,text:a.text});else if(a.type===`image`){let e=Ds(t,i++);n.push(e),a.data&&a.mimeType&&r.set(e.attachmentId,{data:a.data,mimeType:a.mimeType})}return{blocks:n,images:r}}function js(e,t,n){let r=Es(t,n),i=Os(e.content,r);return{message:{id:r,sequence:n,role:`user`,timestamp:new Date(e.timestamp).toISOString(),content:i},excludedReasoningBlocks:0,images:new Map}}function Ms(e,t,n){let r=Es(t,n),{blocks:i,excluded:a,images:o}=ks(e.content,r);return{message:{id:r,sequence:n,role:`assistant`,timestamp:new Date(e.timestamp).toISOString(),content:i,model:{provider:e.provider,id:e.model,api:e.api},usage:e.usage,stopReason:e.stopReason,...e.errorMessage?{error:e.errorMessage}:{}},excludedReasoningBlocks:a,images:o}}function Ns(e,t,n){let r=Es(t,n),{blocks:i,images:a}=As(e.content,r);return{message:{id:r,sequence:n,role:`tool-result`,timestamp:new Date(e.timestamp).toISOString(),content:i,toolCallId:e.toolCallId,isError:e.isError},excludedReasoningBlocks:0,images:a}}function Ps(e,t,n){return e.role===`user`?js(e,t,n):e.role===`assistant`?Ms(e,t,n):e.role===`toolResult`?Ns(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function Fs(e){let t=[];for(let n of e){if(!n.parentConversationId)continue;let e={sourceConversationId:n.parentConversationId,targetConversationId:n.id};n.originToolCallId&&(e.toolCallId=n.originToolCallId),t.push(e)}return t}function Is(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=Ps(r,e.id,i+1);t+=a.excludedReasoningBlocks;for(let[e,t]of a.images)n.set(e,t);return a.message?[a.message]:[]});return{id:e.id,kind:e.kind,name:e.name,...e.folder?{folder:e.folder}:{},...e.parentConversationId?{parentConversationId:e.parentConversationId}:{},...e.createdAt?{createdAt:e.createdAt}:{},...e.updatedAt?{updatedAt:e.updatedAt}:{},messages:r}}),delegations:Fs(e),excludedReasoningBlocks:t,canonicalImages:n}}var Ls=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e})();function Rs(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Ls[(t^e[n])&255];return~t>>>0}var zs=new TextEncoder;function J(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function Y(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255,e[t+2]=n>>>16&255,e[t+3]=n>>>24&255}function Bs(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,J(r,4,20),J(r,6,2048),J(r,8,0),J(r,10,0),J(r,12,0),Y(r,14,n),Y(r,18,t),Y(r,22,t),J(r,26,e.length),J(r,28,0),r.set(e,30),r}function Vs(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,J(i,4,20),J(i,6,20),J(i,8,2048),J(i,10,0),J(i,12,0),J(i,14,0),Y(i,16,n),Y(i,20,t),Y(i,24,t),J(i,28,e.length),J(i,30,0),J(i,32,0),J(i,34,0),J(i,36,0),Y(i,38,0),Y(i,42,r),i.set(e,46),i}function Hs(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,J(r,4,0),J(r,6,0),J(r,8,e),J(r,10,e),Y(r,12,t),Y(r,16,n),J(r,20,0),r}function Us(e){if(!e||e.startsWith(`/`)||e.includes(`\0`)||e.includes(`\\`))return!1;for(let t of e.split(`/`))if(t===``||t===`.`||t===`..`)return!1;return!0}function Ws(e){let t=e.export.generatedAt.slice(0,10),n=e.export.id.slice(0,8);return`slicc-${t}-${Ie(e.session.title,{maxLen:40,fallback:`transcript`})}-${n}.zip`}async function*Gs(e,t,n,r,i){if(n?.aborted)throw i(new w(`transfer-aborted`)),new w(`transfer-aborted`);let a=()=>i(new w(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=wt.create(),s=0,c=0,l=[],u=!1;function*d(e){o.update(e),s+=e.byteLength,c+=e.byteLength,yield e}try{let i=new TextEncoder().encode(JSON.stringify(e,null,2)),a=zs.encode(`transcript.json`),f=Rs(i),p=Bs(a,i.length,f);if(l.push({nameBytes:a,size:i.length,crc:f,localOffset:c}),n?.aborted||(yield*d(p),n?.aborted))throw new w(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new w(`transfer-aborted`);let t=zs.encode(e),i=Rs(r),a=Bs(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new w(`transfer-aborted`);yield*d(r)}let m=c;for(let e of l){if(n?.aborted)throw new w(`transfer-aborted`);yield*d(Vs(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new w(`transfer-aborted`);yield*d(Hs(l.length,c-m,m)),u=!0,r({byteLength:s,sha256:o.hex()})}catch(e){throw u=!0,i(e),e}finally{n?.removeEventListener(`abort`,a),u||(u=!0,i(new w(`transfer-aborted`)))}}var Ks=4294967295,qs=65535;function Js(e,t,n){for(let e of t.keys())if(!Us(e))throw new w(`schema-invalid`);if(t.size+1>qs)throw new w(`schema-invalid`);for(let e of t.values())if(e.byteLength>Ks)throw new w(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:Ws(e),chunks:Gs(e,t,n,r,i),completion:a}}function Ys(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:ze},session:{id:e,title:t,state:n,completeness:{status:`complete`,missing:[]},...a},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:r.excludedReasoningBlocks,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:r.conversations,delegations:r.delegations,attachments:[]}}function Xs(e,t){let n=[],r=1;for(let i of e){if(i.role!==`user`&&i.role!==`assistant`)continue;let e=`${t}-msg-${String(r).padStart(6,`0`)}`;n.push({id:e,sequence:r++,role:i.role,timestamp:new Date(i.timestamp||0).toISOString(),content:i.content?[{type:`text`,text:i.content}]:[]})}return n}function Zs(e){let t=Le(e);if(!t.ok)throw new w(`schema-invalid`,t.error)}function Qs(e,t,n){let r=new Map;for(let i of e)if(!(!i.present||!i.path)){if(i.handling===`text-redacted`){let e=t.get(i.id);e!==void 0&&r.set(i.path,new TextEncoder().encode(e))}else{let e=n.get(i.path);e&&r.set(i.path,e)}}return r}async function $s(e,t){return Promise.all(e.map(async e=>{if(!e.present||!e.path||e.handling!==`text-redacted`)return e;let n=t.get(e.path);return n?{...e,byteLength:n.length,sha256:await Pe(n)}:e}))}function ec(e){let t=e.match(/^---\n([\s\S]*?)\n---\n/);if(!t)return{};let n=t[1],r={},i=n.match(/^createdAt:\s*(\d+)\s*$/m),a=n.match(/^updatedAt:\s*(\d+)\s*$/m);return i&&(r.createdAt=new Date(Number(i[1])).toISOString()),a&&(r.updatedAt=new Date(Number(a[1])).toISOString()),r}var tc=class{deps;constructor(e){this.deps=e}async export(e,t={}){let{signal:n,onProgress:r}=t,i;return i=e.kind===`active`?await this.buildActiveSnapshot(n,r):await this.buildFrozenSnapshot(e.sessionId,n,r),Zs(i.document),r?.({phase:`packaging`}),Js(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await Ts(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Is(n.sources),{document:i,bundleFiles:a}=await bs({document:Ys(e.sessionId,e.title,`frozen`,r,this.deps.version,{frozenAt:e.frozenAt,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}),chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:t});if(Zs(i),t?.aborted)throw new w(`transfer-aborted`);try{await this.deps.snapshotStore.write(e.sessionId,{document:i,attachments:a},t)}finally{this.deps.snapshotStore.discardIfUnindexed?.(e.sessionId)?.catch(()=>void 0)}}async buildActiveSnapshot(e,t){t?.({phase:`waiting-for-conversations`}),t?.({phase:`collecting`});let n=await Ts(this.deps.collection,e),r=Is(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=Ys(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),bs({document:o,chatMessagesByConversation:n.chatMessagesByConversation,knownSecrets:this.deps.knownSecrets,canonicalImages:r.canonicalImages,vfsReader:e=>this.readBinaryFromVfs(e),signal:e})}async buildFrozenSnapshot(e,t,n){let r;try{r=await this.deps.snapshotStore.read(e)}catch(e){if(!(e instanceof w)||e.code!==`session-not-found`)throw e;r=null}return r?(n?.({phase:`redacting`}),this.reredactStoredSnapshot(r,t)):this.buildLegacyPartial(e,t,n)}async reredactStoredSnapshot(e,t){let n=new Map;for(let t of e.document.attachments){if(t.handling!==`text-redacted`||!t.present||!t.path)continue;let r=e.attachments.get(t.path);r&&n.set(t.id,new TextDecoder().decode(r))}let r,i;try{let a=await os(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new w(`redaction-unavailable`)}let a=Qs(r.attachments,i,e.attachments),o=await $s(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,n,r){let i=(await O(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!i)throw new w(`session-not-found`);let a;try{let e=await this.deps.vfs.readFile(`/sessions/${i.filename}`,{encoding:`utf-8`});a=typeof e==`string`?e:new TextDecoder().decode(e)}catch{throw new w(`session-not-found`)}let{loadFrozenArchive:o}=await t(async()=>{let{loadFrozenArchive:e}=await import(`./session-jsonl-D4p25wJo.js`).then(e=>e.i);return{loadFrozenArchive:e}},__vite__mapDeps([54,1,49,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50])),{title:s,messages:c}=await o(this.deps.vfs,a,i.filename),l=`legacy-cone`,u=Xs(c,l),d=ec(a),f={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:ze},session:{id:e,title:s,state:`frozen`,...i.frozenAt?{frozenAt:i.frozenAt}:{},...d,completeness:{status:`partial`,missing:[`complete-snapshot-unavailable`,`canonical-agent-history-unavailable`]}},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:0,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:[{id:l,kind:`cone`,name:s,messages:u}],delegations:[],attachments:[]},p=new Map([[l,c]]);return r?.({phase:`redacting`}),bs({document:f,chatMessagesByConversation:p,knownSecrets:this.deps.knownSecrets,vfsReader:e=>this.readBinaryFromVfs(e),signal:n})}async readBinaryFromVfs(e){let t=await this.deps.vfs.readFile(e,{encoding:`binary`});if(!(t instanceof Uint8Array))throw new w(`attachment-unreadable`);return t}};function nc(e){return`error`in e}function X(){throw new w(`redaction-unavailable`)}function rc(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&X(),e.texts}function ic(){return{async redact(e){let t;try{t=await fetch(tt(`/api/secrets/redact-export`),{method:`POST`,headers:nt({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{X()}t.ok||X();let n;try{n=await t.json()}catch{X()}return rc(n,e.length)}}}function ac(){return{async redact(e){let t;try{t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.redact-export`,texts:e},e=>{chrome.runtime.lastError,t(e??null)})})}catch{X()}return typeof t==`object`&&t&&nc(t)&&X(),rc(t,e.length)}}}function oc(){return{async redact(e){let t;try{t=await it(`secrets.redact-export`,{texts:e})}catch{X()}return t??X(),typeof t==`object`&&t&&nc(t)&&X(),rc(t,e.length)}}}function sc(){return{async redact(e){X()}}}function cc(){let e=rt();return e===`connect`?sc():e===`extension-direct`?ac():e===`extension-delegate`?oc():ic()}var lc=`Restoring session…`,uc=`slicc-restoring-session`;function dc(e){let t=e.querySelector(`:scope > .slicc-thread__inner`)??e;for(let e of t.children)if(!e.classList.contains(uc))return!1;return!0}function fc(e,t){let n=e.querySelector(`:scope > .slicc-thread__inner`)??e,r=n.querySelector(`:scope > .${uc}`);if(!t){r?.remove();return}if(r)return;let i=e.ownerDocument.createElement(`p`);i.className=uc,i.textContent=lc,n.append(i)}function Z(e){switch(e){case`processing`:return`working`;case`error`:return`broken`;case`initializing`:return`initializing`;default:return`idle`}}function pc(e,t={}){let n=Z(t.status),r=ln(e);return{id:e.jid,parentId:e.parentJid,role:k(e)?`primary`:`child`,name:e.name,folder:e.folder,assistantLabel:e.assistantLabel,state:n,...n===`working`&&t.phase?{phase:t.phase}:{},...n===`idle`&&t.awaiting?{awaiting:!0}:{},fill:typeof t.fill==`number`?Math.round(t.fill*100):0,...typeof t.turns==`number`?{turns:t.turns}:{},...r?{model:r}:{},...e.trigger?{trigger:e.trigger}:{},...e.addedAt?{addedAt:e.addedAt}:{}}}function mc(e,t=Date.now){let n=e.parentId===null,r=e.folder??e.name,i=n?e.config:hc(e,r),a={jid:e.id??(n?`cone_${t()}`:`scoop_${r}_${t()}`),name:e.name,folder:r,requiresTrigger:!n,assistantLabel:n?`sliccy`:r,addedAt:new Date(t()).toISOString(),parentJid:e.parentId,...i?{config:i,configSchemaVersion:3}:{},...e.notifyOnComplete===!1?{notifyOnComplete:!1}:{},...!n&&e.onParentClose===`detach`?{onParentClose:`detach`}:{}};return n||(a.trigger=`@${r}`),a}function hc(e,t){let n=cn(e.workspace?.mode??e.config?.workspaceMode),r=e.workspace?.from??`/workspace`,i=_n(n,t,{root:r},e.workspace?.from),a=e.config;return{...a,workspaceMode:n,visiblePaths:a?.visiblePaths===void 0?i.visiblePaths:a.visiblePaths,writablePaths:a?.writablePaths===void 0?i.writablePaths:a.writablePaths}}var gc=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,_c=`${gc}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,vc=`${gc}border:none;background:#d23;color:#fff;`,yc=`${gc}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function bc(e,t,n){return{...mc({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function xc(e,t){let n=e.createElement(`slicc-dialog`);n.setAttribute(`heading`,t.heading),n.append(t.body);for(let r of t.actions){let t=e.createElement(`button`);t.setAttribute(`slot`,`footer`),t.type=`button`,t.dataset.coneAction=r.data,t.textContent=r.text,t.style.cssText=r.style,t.addEventListener(`click`,r.onClick),n.append(t)}return n.addEventListener(`slicc-dialog-close`,()=>t.onDismiss(n)),n}function Sc(e,t){let n=e.createElement(`form`);n.style.cssText=`display:flex;flex-direction:column;gap:0.5rem;padding:0.25rem 0;`;let r=`font-size:0.9375rem;padding:0.5rem 0.625rem;border:1px solid var(--s2-border-color,#e0e0e0);border-radius:0.375rem;background:transparent;color:inherit;font-family:inherit;`,i=e.createElement(`input`);i.type=`text`,i.name=`name`,i.placeholder=`Name`,i.setAttribute(`aria-label`,`Cone name`),i.maxLength=40,i.autocomplete=`off`,i.required=!0,i.style.cssText=r;let a=e.createElement(`textarea`);a.name=`brief`,a.placeholder=`What should it work on? (optional)`,a.setAttribute(`aria-label`,`What the cone should work on`),a.rows=3,a.style.cssText=`${r}resize:vertical;`,n.append(i,a);let o=()=>({name:i.value.trim(),brief:a.value.trim()});return n.addEventListener(`submit`,e=>{e.preventDefault(),t(o())}),a.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),t(o()))}),n.readDraft=o,n}function Cc(e){let{freezer:t,client:n,log:r}=e,i=t.ownerDocument,a=null,o=!1,s=null,c=()=>t.querySelector(`slicc-freezer-new`),l=()=>qn(e.getUnits(),e.getSelected()),u=t=>e.getUnits().find(e=>e.id===t.jid)??pc(t),d=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},f=e=>{d();let t=xc(i,{...e,onDismiss:e=>{s===e&&(s=null),e.remove()}});s=t,i.body.append(t),t.show?.()},p=t=>{if(!t.name)return;d();let i=l(),o=bc(t.name,n.getScoops(),Hn(e.getUnits(),i?.id));a=t.name,n.registerScoop(o,t.brief?{description:t.brief,prompt:t.brief}:{}).catch(e=>r.warn(`WC cone create failed`,e)),_()},m=()=>{let e=Sc(i,p);f({heading:`New cone`,body:e,actions:[{text:`Create`,style:_c,data:`create`,onClick:()=>p(e.readDraft())},{text:`Cancel`,style:yc,data:`cancel`,onClick:d}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},h=t=>{d();let i=sn(n.getScoops()),a=i.find(e=>e.jid===t);if(!a||i.length<=1||o){_();return}o=!0,_(),(async()=>{try{await e.freezeCone(a)}catch(e){r.warn(`WC cone freeze before drop failed`,e)}let t=l()?.id===a.jid;try{await n.unregisterScoop(a.jid)}catch(e){r.warn(`WC cone drop failed`,e)}if(t){let t=sn(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(u(t))}o=!1,_()})()},g=e=>{let t=Gn(e),n=i.createElement(`p`);n.textContent=`Its chat goes to the Freezer.`,n.style.cssText=`font-size:0.875rem;margin:0;`,f({heading:`Drop ${t}?`,body:n,actions:[{text:`Drop`,style:vc,data:`drop`,onClick:()=>h(e.id)},{text:`Cancel`,style:yc,data:`cancel`,onClick:d}]})},_=()=>{let t=sn(n.getScoops());if(a!==null){let n=t.find(e=>e.name===a&&!e.folder.startsWith(`cone-pending-`));n&&(a=null,e.getSelected()?.id!==n.jid&&e.selectScoop(u(n)))}let r=c();r?.setAttribute(`cones`,String(t.length)),r?.toggleAttribute(`busy`,o)};return t.addEventListener(`new-cone`,m),t.addEventListener(`drop-cone`,()=>{let e=l();!e||sn(n.getScoops()).length<=1||o||g(e)}),_(),{refresh:_,dialog:()=>s}}var wc={"gelatiere-dismiss":{consume:!0,mode:`dismiss`},"gelatiere-install":{consume:!1,mode:`take`},"gelatiere-try":{consume:!1,mode:`take`}};function Tc(e){return n=>{if(n.type!==`sprinkle`||n.sprinkleName!==`welcome`&&n.sprinkleName!==`inline`&&n.sprinkleName!==`suggestions`)return!1;let r=n.body,i=wc[typeof r?.action==`string`?r.action:``];if(!i)return!1;let a=r?.data,o=typeof a?.id==`string`&&a.id?a.id:null;return o&&e.openVfs().then(async e=>{let n=await t(()=>import(`./wc-shell-BOiMEPvK.js`).then(e=>e.mt),__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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));return i.mode===`dismiss`?n.dismissGelatiereSuggestion(e,o):n.takeGelatiereSuggestion(e,o)}).catch(t=>e.log.warn(`gelatiere card settlement failed`,t)),i.consume}}var Ec=5e3,Dc=class{deps;listListeners=new Set;unitListeners=new Map;lastSnapshots=new Map;orphanedReplays=new Map;retriedSnapshots=new Set;pendingSnapshots=new Map;constructor(e){this.deps=e}toSummary(e){return pc(e,{awaiting:this.deps.getAwaiting?.()===e.jid,fill:this.deps.fills.get(e.jid),phase:this.deps.phases.get(e.jid),status:this.deps.statuses.get(e.jid),turns:this.deps.turns?.get(e.jid)})}snapshotFor(e,t,n){let r=this.deps.getClient()?.getScoops().find(t=>t.jid===e);return r?{summary:this.toSummary(r),messages:t,...n?{queuedIds:n}:{}}:null}currentUnits(){return(this.deps.getClient()?.getScoops()??[]).map(e=>this.toSummary(e))}publishSnapshot(e,t){this.retriedSnapshots.delete(e),this.lastSnapshots.set(e,t),this.emit(e,{snapshot:t,type:`snapshot`});let n=this.pendingSnapshots.get(e);if(n){this.pendingSnapshots.delete(e);for(let e of n)e(t)}}drainOrphanedReplays(){for(let[e,t]of this.orphanedReplays){let n=this.snapshotFor(e,t.messages,t.queuedIds);n&&(this.orphanedReplays.delete(e),this.publishSnapshot(e,n))}}recoverUnanswered(e){if(this.unitListeners.has(e)){if(this.retriedSnapshots.has(e)){this.publishRecovery(e);return}this.retriedSnapshots.add(e),this.deps.getClient()?.requestScoopMessages(e),setTimeout(()=>{this.retriedSnapshots.has(e)&&this.publishRecovery(e)},Ec)}}publishRecovery(e){if(!this.unitListeners.has(e))return;let t=this.lastSnapshots.get(e),n=this.deps.getClient()?.getScoops().find(t=>t.jid===e);this.emit(e,{snapshot:{messages:t?.messages??[],...n?{summary:this.toSummary(n)}:{}},type:`snapshot`})}forgetWaiter(e,t){let n=this.pendingSnapshots.get(e);n&&(n.delete(t),n.size===0&&this.pendingSnapshots.delete(e))}emitList(){if(this.drainOrphanedReplays(),this.listListeners.size===0)return;let e=this.currentUnits();for(let t of this.listListeners)t(e)}emit(e,t){let n=this.unitListeners.get(e);if(n)for(let e of n)e(t)}wrapCallbacks(e){return{...e,onStatusChange:(t,n)=>{e.onStatusChange(t,n),this.emit(t,{state:Z(n),type:`status`}),this.emitList()},onScoopCreated:t=>{e.onScoopCreated(t),this.emitList()},onScoopListUpdate:t=>{e.onScoopListUpdate(t),this.emitList()},onScoopPhaseChange:(t,n)=>{e.onScoopPhaseChange?.(t,n),this.emitList()},onIncomingMessage:(t,n)=>{e.onIncomingMessage(t,n),this.emit(t,{message:n,type:`message`})},onScoopMessagesReplaced:(t,n,r)=>{e.onScoopMessagesReplaced?.(t,n,r);let i=n,a=this.snapshotFor(t,i,r);a?this.publishSnapshot(t,a):this.orphanedReplays.set(t,{messages:i,queuedIds:r})}}}list(){return Promise.resolve(this.currentUnits())}subscribeList(e){return this.listListeners.add(e),e(this.currentUnits()),()=>{this.listListeners.delete(e)}}subscribe(e,t){let n=this.unitListeners.get(e)??new Set;n.add(t),this.unitListeners.set(e,n);let r=this.lastSnapshots.get(e);return this.pendingSnapshots.has(e)||(r?t({snapshot:r,type:`snapshot`}):this.deps.getClient()?.requestScoopMessages(e)),()=>{n.delete(t),n.size===0&&this.unitListeners.delete(e)}}takeArrivedReplay(e){let t=this.orphanedReplays.get(e);if(!t)return null;let n=this.snapshotFor(e,t.messages,t.queuedIds);return n?(this.orphanedReplays.delete(e),this.lastSnapshots.set(e,n),n):null}snapshot(e){let t=this.deps.getClient();if(!t)return Promise.reject(Error(`kernel client not attached`));let n=this.takeArrivedReplay(e);if(n)return t.setSelectedScoopJid(e),Promise.resolve(n);let r=this.pendingSnapshots.get(e)??new Set;this.pendingSnapshots.set(e,r);let i=()=>{},a=new Promise(e=>{i=e,r.add(e)});t.setSelectedScoopJid(e),t.requestScoopMessages(e);let o,s=new Promise(t=>{o=setTimeout(()=>{o=void 0;let n=this.pendingSnapshots.get(e)?.has(i)===!0;this.forgetWaiter(e,i),n&&this.recoverUnanswered(e),t(this.snapshotFor(e,[],void 0))},Ec)});return Promise.race([a.then(e=>(o!==void 0&&(clearTimeout(o),o=void 0),e)),s]).then(t=>{if(!t)throw Error(`unknown work unit: ${e}`);return t})}send(e,t){let n=this.deps.getClient();if(!n)return Promise.reject(Error(`kernel client not attached`));let r=t.messageId??`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return n.sendUserMessage({scoopJid:e,text:t.text,messageId:r,...t.attachments?{attachments:t.attachments}:{},...t.steer?{steer:!0}:{},...t.guestGate?{guestGate:t.guestGate}:{}})}setModel(e,t){let n=this.deps.getClient();return n?n.setScoopModel(e,t):Promise.reject(Error(`kernel client not attached`))}signal(e,t){if(t!==`stop`)return Promise.resolve();let n=this.deps.getClient();return n?(n.stopScoop(e),Promise.resolve()):Promise.reject(Error(`kernel client not attached`))}};function Q(e){return e.workUnits??=new Dc({fills:e.fills,getAwaiting:()=>e.awaitingInput,getClient:()=>e.getClient(),phases:e.phases,statuses:e.statuses,turns:e.turns}),e.workUnits}function Oc(e){let t=Q(e),n=()=>e.refreshScoops?.(),r=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),i=()=>{if(e.getSelected()||r())return;let n=t.currentUnits(),i=e.pendingUrlContext;if(i?.startsWith(`freezer:`))return;if(i?.startsWith(`scoop:`)||i?.startsWith(`cone:`)){let t=Bn(n,i);if(t){e.pendingUrlContext=null,e.selectScoop(t);return}}let a=Kn(n);a&&(e.pendingUrlContext=null,e.selectScoop(a))};return t.wrapCallbacks({onStatusChange:(t,r)=>{let i=e.statuses.get(t),a=r;e.statuses.set(t,a),i!==a&&e.notifyUnitStatus?.(t,a),a!==`ready`&&e.awaitingInput===t&&(e.awaitingInput=null),Z(i)===`working`&&Z(a)!==`working`&&e.turns.set(t,(e.turns.get(t)??0)+1),Z(i)!==Z(a)&&(n(),e.notifyScoopStateChanged?.()),e.getSelected()?.id===t&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:t=>{n(),!e.getSelected()&&!r()&&!e.pendingUrlContext&&e.selectScoop(pc(t,{fill:e.fills.get(t.jid),phase:e.phases.get(t.jid),status:e.statuses.get(t.jid)}))},onScoopListUpdate:t=>{let r=new Set(t.map(e=>e.jid));for(let t of e.lickBackpressure.keys())r.has(t)||e.lickBackpressure.delete(t);for(let t of e.turns.keys())r.has(t)||e.turns.delete(t);n(),i()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(t,r)=>{e.phases.set(t,r),n(),e.notifyScoopStateChanged?.()},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,ge(String(n.content??``),600)),e.getSelected()?.id===t&&n.channel!==`web`&&re(n.channel)&&e.getController()?.addLickMessage(n.id,n.content,n.channel,new Date(n.timestamp).getTime(),n.lickId)},onLickBackpressure:(t,n)=>{n.count<=0?e.lickBackpressure.delete(t):e.lickBackpressure.set(t,n);let r=e.getSelected();if(r?.id!==t)return;let i=Jn(r);e.getController()?.setLickBackpressure(n.count,n.waitingMs,i)},onMessageUpdate:(t,n)=>{e.getSelected()?.id===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onReady:()=>{n(),i(),e.notifyReady?.()}})}var kc=`slicc:leader-local-model-state-changed`;function Ac(e=window){e.dispatchEvent(new Event(kc))}var jc=`slicc:leader-model-catalog-changed`;function Mc(e=window){e.dispatchEvent(new Event(jc))}var Nc={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Pc={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Fc(e){return e?Nc[e]:void 0}function Ic(e){return e===`max`?`max`:void 0}function Lc(e,t){return t===`max`?`max`:(e&&Pc[e])??`off`}var Rc=2e3,zc=1e4,Bc=12e4;function Vc(e){let t=[],n=null,r=new Map,i=e.modelPickerEnabled!==!1,a=e.catalogRetryDelayMs??Rc,o=e.catalogRetryMaxDelayMs??zc,s=e.catalogRetryWindowMs??Bc,c=0,l=null,u=null,d=()=>{if(!i||u!==null)return;let t=Date.now();if(l===null&&(l=t+s),t>=l)return;let n=gt({attempt:c,baseMs:a,capMs:o});u=setTimeout(()=>{u=null;let t=e.getSync();t?.requestModels&&(c+=1,t.requestModels())},n)},f=()=>{u!==null&&clearTimeout(u),u=null,c=0,l=null},p=e=>{if(e.length===0)return;let t=new Set(e.map(e=>e.id));for(let e of r.keys())t.has(e)||r.delete(e)},m=()=>{let t=e.getSelectedScoopJid(),i=e.getUnits();if(p(i),n&&(i.length===0||!t))return n.activeModelId;if(n&&t&&n.scoopJid===t){let e=pn(n.activeModelId);return e&&r.set(t,e),n.activeModelId}let a=Hn(i,t,t?r.get(t):void 0);return t&&a&&r.set(t,a),a?mn(a):void 0},h=()=>{let r=m(),a=r?t.find(e=>e.modelId===r):void 0;if(!i||!n||!a){e.composerMeta.style.display=`none`,d();return}e.composerMeta.model=a.modelName,e.composerMeta.setAttribute(`thinking`,Lc(n.thinkingLevel,n.effortOverride)),e.composerMeta.toggleAttribute(`no-thinking`,!a.reasoning),e.composerMeta.style.removeProperty(`display`),f()},g=t=>{e.interceptLocalHandlers&&t.stopImmediatePropagation()},_=t=>{let i=e.getSync();if(!i)return;g(t);let a=t.detail?.id,o=e.getSelectedScoopJid()??n?.scoopJid,s=a?pn(a):null;s&&o?(r.set(o,s),e.setModel(o,s)):a&&i.selectModel(a,o??void 0),h()};e.composerMeta.addEventListener(`model-change`,_,{capture:e.interceptLocalHandlers});let v=t=>{let r=e.getSync();if(!r)return;if(g(t),e.getLockedEffortLevel?.()){h();return}let i=t.detail?.thinking,a=Fc(i),o=e.getSelectedScoopJid()??n?.scoopJid;o&&a&&a!==`max`&&r.setThinkingLevel(o,a,Ic(i)),h()};e.composerMeta.addEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers});let y=()=>{t=[],n=null,r.clear(),f(),e.composerMeta.models=[],e.composerMeta.style.display=`none`};return y(),{onModelsList(n){t=n,e.composerMeta.models=n.map(e=>({id:e.modelId,name:e.modelName,provider:e.providerName})),h()},onModelState(e){n=e,h()},onShownUnitChanged(){h()},reset:y,dispose(){e.composerMeta.removeEventListener(`model-change`,_,{capture:e.interceptLocalHandlers}),e.composerMeta.removeEventListener(`thinking-change`,v,{capture:e.interceptLocalHandlers}),y(),e.composerMeta.style.removeProperty(`display`)}}}async function Hc(e,t,n,r,i=Ac){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function Uc(e,t){return Wn(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||vt(t.localStorage)}async function Wc(e,n,r,a,o){let s=Vn(n),c=Yn(s);e.thread.setAttribute(`context`,Xn(n));let l=Un(n),u=i({isRoot:l,name:n.name});e.thread.setAttribute(`accent`,u),e.switcher.setAttribute(`active`,n.id),ie(e,l?{kind:`cone`}:{kind:`scoop`,accent:u}),te(e,c);let d=localStorage.getItem(`slicc_locked_effort_level`),f=a?.(n.id);if(f||d){let t=f?un(f):{};e.composerMeta.setAttribute(`thinking`,Lc(d??t.level,t.effortOverride))}if(!o?.skipModelPill)try{let{resolveCurrentModel:i,resolveModelById:a}=await t(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-CraGyWI5.js`).then(e=>e.i);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([55,1,56,2,3,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58])),o=Hn(r,n.id),s=o?a(o.id,o.provider):i();e.composerMeta.setAttribute(`model`,s.name??s.id),e.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!d)}catch{}}async function Gc(e){if(Uc(e.pendingUrlContext,e.win))return;let n=Wn(e.pendingUrlContext);if(n===null)return;let[{CanonicalSessionReader:r},{WorkUnitConversationStore:i}]=await Promise.all([t(()=>Promise.resolve().then(()=>ir),void 0),t(()=>Promise.resolve().then(()=>vr),void 0)]),a=await new r(new i).loadRootChatSession(n);a&&a.messages.length>0&&!e.hasSelection()&&(e.loadMessages(a.messages),e.onHydrated())}function Kc(e){let{boot:n,client:r,openReader:i,log:a}=e,{refs:o}=n;t(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-B67JnHl5.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([59,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({createPlaceholderRefresher:t})=>{e.setRefreshPlaceholder(t({inputCard:o.inputCard,getMessages:()=>n.getController()?.getMessages()??[],defaultPlaceholder:o.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),Gc({pendingUrlContext:n.wiring.pendingUrlContext,win:window,hasSelection:()=>!!n.getSelected(),loadMessages:e=>n.getController()?.loadMessages(e),onHydrated:e.triggerPlaceholder}).catch(e=>a.warn(`WC session hydration failed`,e));let s=null;return t(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-C9rxulO7.js`);return{wireWcAttach:e}},__vite__mapDeps([60,2,5,61])).then(({wireWcAttach:n})=>{s=n({inputCard:o.inputCard,freezer:o.freezer,composer:o.composer,openReader:i,openWriter:e.openWriter,secretEntry:!0,listConversations:async()=>{let{readSessionsIndex:e}=await t(async()=>{let{readSessionsIndex:e}=await Promise.resolve().then(()=>Gi);return{readSessionsIndex:e}},void 0);return(await e(await i())).map(e=>({id:e.filename,label:e.title,sub:`${e.messageCount} turns`}))},log:a})}).catch(e=>a.error(`WC add-menu wiring failed`,e)),t(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:o.thread,inputCard:o.inputCard})).catch(e=>a.error(`WC history nav wiring failed`,e)),o.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let t=e.detail?.thinking,i=Fc(t),o=Ic(t),s=n.getSelected();s&&i&&Hc(r,s.id,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>s}}var qc=`slicc:leader-run-new-session`,Jc=`slicc:leader-broadcast-snapshot`;function Yc(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function Xc(e){let t=`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`;return e.live?`${t} · in progress`:t}function Zc(e,t={}){let n=document.createElement(`slicc-freezer-card`);return n.setAttribute(`title`,e.title),n.setAttribute(`meta`,Xc(e)),n.setAttribute(`slug`,e.filename),e.icon&&n.setAttribute(`icon`,e.icon),t.deletable&&!e.live&&n.setAttribute(`deletable`,``),n}async function Qc(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size!==0&&await T(async()=>{let n=await $c(e.reader);if(n===null||n.length===0)return!1;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});return await e.writer.writeFile(`/sessions/index.json`,JSON.stringify(r,null,2)),!0}))for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function $c(e){let t=await el(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function el(e){let t;try{let n=await e.readFile(E,{encoding:`utf-8`});t=typeof n==`string`?n:new TextDecoder().decode(n)}catch(e){return e?.code===`ENOENT`?{kind:`missing`}:{kind:`fault`}}try{let e=JSON.parse(t);return Array.isArray(e)?{kind:`ok`,entries:e}:{kind:`corrupt`}}catch{return{kind:`corrupt`}}}async function tl(e){let t;try{t=(await e.readDir(`/sessions`)).filter(e=>e.type===`file`&&e.name.endsWith(`.md`)).map(e=>e.name)}catch{return[]}let n=[];for(let r of t)try{let t=await e.readFile(`/sessions/${r}`,{encoding:`utf-8`}),i=typeof t==`string`?t:new TextDecoder().decode(t);n.push(rl(r,i))}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function nl(e,t){return T(async()=>{let n=await el(e);if(n.kind===`ok`)return n.entries;if(n.kind!==`corrupt`)return null;let r=await tl(e);return r.length===0?null:(await t.writeFile(E,JSON.stringify(r,null,2)),r)})}function rl(e,t){let n=t.slice(0,2e3),r=/^title:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??e,i=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(n)?.[1]??new Date(0).toISOString(),a=Number(/^messageCount:\s*(\d+)\s*$/m.exec(n)?.[1]??0),o=Be(t),s=e.startsWith(`pending-`)||e.startsWith(`live-`)&&!o.live;return{filename:e,title:r,frozenAt:i,messageCount:a,...o.cost?{cost:o.cost}:{},...o.models?{models:o.models}:{},...o.cone?{cone:o.cone}:{},...o.coneLabel?{coneLabel:o.coneLabel}:{},...o.memorySkipped?{memorySkipped:!0}:{},...o.live?{live:!0}:{},...o.live&&o.liveThrough?{liveThrough:o.liveThrough}:{},...o.live&&o.compactions?{compactions:o.compactions}:{},...o.curatedThrough?{curatedThrough:o.curatedThrough}:{},...o.sessionId?{sessionId:o.sessionId}:{},...s?{pendingEnrichment:!0}:{}}}function il(e,t,n={}){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(e=>Zc(e,n)))}async function al(e,t){let n=await e.readFile(Ue(t),{encoding:`utf-8`}),r=typeof n==`string`?n:new TextDecoder().decode(n),i=await Cn(e,r,t.filename);return{title:i.title||t.title,messages:i.messages}}var ol=`Couldn't delete everything — try again.`;function sl(e,t){let n=e.createElement(`p`);return n.textContent=`“${t}” and its transcript will be deleted. Memories already learned from it are kept.`,n.style.cssText=`font-size:0.875rem;margin:0;`,n}function cl(e){let t=e.parentElement?.querySelector(`[data-freezer-delete-error]`);t||(t=e.ownerDocument.createElement(`p`),t.setAttribute(`data-freezer-delete-error`,``),t.setAttribute(`role`,`alert`),t.style.cssText=`font-size:0.8125rem;margin:0.5rem 0 0;color:var(--s2-negative-color, #d23);`,e.after(t)),t.textContent=ol}function ll(e,t){let n=e.ownerDocument;n.activeElement&&n.activeElement!==n.body||Array.from(e.querySelectorAll(`slicc-freezer-card`)).find(e=>e.getAttribute(`slug`)===t)?.querySelector(`.slicc-fzcard__delete`)?.focus()}function ul(e){return e.sessionId?{filename:e.filename,sessionId:e.sessionId}:{filename:e.filename}}function dl(e){let n=e.freezer.ownerDocument,r=null,i=new Set,a=()=>{if(!r)return;let{slug:t,dialog:n}=r;r=null,n.hide?.(),n.remove(),ll(e.freezer,t)},o=async(n,o,s)=>{let c=Array.from(o.querySelectorAll(`button[slot="footer"]`));for(let e of c)e.disabled=!0;i.add(n.filename);try{let{writer:i}=await e.openVfs(),{deleteFrozenSession:s}=await t(async()=>{let{deleteFrozenSession:e}=await import(`./frozen-session-delete-DgFaw8dO.js`);return{deleteFrozenSession:e}},__vite__mapDeps([62,3,49,1,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50,51,54,63,64,65,66])),c=await s(i,ul(n));if(c.status===`failed`)throw Error(c.errors.join(`; `));c.status===`deleted`?e.isViewing(n)&&e.leaveViewed(n):e.log.warn(`WC frozen chat delete skipped`,{filename:n.filename,...c}),r?.dialog===o&&a(),e.refreshFreezer()}catch(t){e.log.error(`WC frozen chat delete failed`,t),cl(s);for(let e of c)e.disabled=!1}finally{i.delete(n.filename)}},s=t=>{if(r?.slug===t||i.has(t))return;let s=e.getEntries().find(e=>e.filename===t);if(!s||s.live)return;a();let c=sl(n,s.title),l=xc(n,{heading:`Delete frozen chat?`,body:c,actions:[{text:`Delete`,style:vc,data:`delete`,onClick:()=>void o(s,l,c)},{text:`Cancel`,style:yc,data:`cancel`,onClick:a}],onDismiss:n=>{r?.dialog===n&&(r=null),n.remove(),ll(e.freezer,t)}});r={slug:t,dialog:l},n.body.append(l),l.show?.()};return e.freezer.addEventListener(`freezer-card-delete`,e=>{let t=e.detail?.slug;t&&s(t)}),{dialog:()=>r?.dialog??null}}async function fl(e,n,r){let{getTranscriptExportService:i}=await t(async()=>{let{getTranscriptExportService:e}=await Promise.resolve().then(()=>kr);return{getTranscriptExportService:e}},void 0);await i().captureFrozen({sessionId:n.sessionId??n.archive.sessionId??n.filename.replace(/\.md$/i,``),title:n.archive.title,frozenAt:n.archive.frozenAt,createdAt:n.archive.createdAt,updatedAt:n.archive.updatedAt,...e?{rootJid:e.jid}:{}},r)}function pl(e,t){if(t)return e.getScoops().find(e=>e.jid===t.id)}function ml(e){return{folder:e.folder,label:Gn({assistantLabel:e.assistantLabel,name:e.name,role:k(e)?`primary`:`child`}),jid:e.jid}}async function hl(e){let{root:n}=e,r=n?ml(n):void 0,i=(e,t)=>fl(n,e,t),a=n=>{try{e.client.reloadSkills()}catch(t){e.log.warn(`post-settle prompt reload failed`,t)}t(async()=>{let{notifyGelatiereOfSessionEnd:e}=await import(`./wc-gelatiere-CWTa_Fw1.js`);return{notifyGelatiereOfSessionEnd:e}},__vite__mapDeps([67,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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({notifyGelatiereOfSessionEnd:t})=>t({client:e.client,vfs:e.writer,log:e.log,cone:r,archive:n?.filename})).catch(t=>e.log.warn(`gelatiere notification failed to load`,t))};if(e.action!==`save`){await e.runNewSessionFreezeQuick({vfs:e.writer,cone:r,captureCompleteSnapshot:i,onSessionSettled:a});return}await e.runNewSessionFreeze({vfs:e.writer,cone:r,agenticMemorySpawn:t=>e.client.spawnAgent(t),captureCompleteSnapshot:i,onSessionSettled:a,onProgress:t=>{let n=e.freezerNew();n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,String(t)))},onBackgroundEnriched:e.refreshFreezer})}async function gl(e,t){e!==`erase`&&await hl({...t,action:e})}async function _l(e){try{await e.resetNewSessionTmp(e.writer,e.tmpDir)}catch(t){e.log.warn(`WC new session /tmp reset failed — clearing anyway`,t)}await e.client.clearAllMessages(e.root?.jid,e.discardLiveSnapshot?{discardLiveSnapshot:!0}:{}),e.getController()?.loadMessages([]),window.dispatchEvent(new CustomEvent(Jc)),t(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-BOiMEPvK.js`).then(e=>e.rt);return{resetDictationPriming:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0)}function vl(e,t){(e.thread.inner??e.thread).prepend(yl(e.thread.ownerDocument,t)),e.thread.setAttribute(`accent`,ae),ie(e,{kind:`freezer`}),e.inputCard.setAttribute(`disabled`,``),e.switcher.removeAttribute(`active`)}function yl(e,t){let n=t?Yc(t):void 0,r=e.createElement(`slicc-day-separator`);return r.setAttribute(`label`,n?`Frozen chat · from cone ${n}`:`Frozen chat`),r.setAttribute(`data-frozen-provenance`,n??``),r}async function bl(e,t,n){let r=await $c(e);return r===null?(await el(e)).kind===`corrupt`?(n.warn(`WC freezer index corrupt — rebuilding from archives`),nl(e,t)):null:r}function xl(e,n,r){e.busy||!r.some(e=>!e.icon&&!e.pendingEnrichment)||(e.busy=!0,t(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-95xYFP4C.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39])).then(({pickLucideIcon:e})=>Qc({reader:n.reader,writer:n.writer,freezer:n.freezer,entries:r,pickIcon:t=>e({subject:t})})).catch(e=>n.log.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{e.busy=!1}))}function Sl(e,t,n){let r=e.getAttribute(`context`)??``;return r===`freezer:${t.filename}`||r.startsWith(`freezer:`)&&!!t.sessionId&&!xn(t.sessionId)&&n===t.sessionId}function Cl(e){let{refs:n,openVfs:r,client:i,getController:a,getSelected:o,clearSelection:s,log:c}=e,l=[],u=null,d=t=>{u=null,e.selectScoop(t)},f=0,p={busy:!1},m=()=>{let e=++f;r().then(async({reader:t,writer:r})=>{let i=await bl(t,r,c);i!==null&&e===f&&(l=i,il(n.freezer,i,{deletable:!0}),xl(p,{reader:t,writer:r,freezer:n.freezer,log:c},i))}).catch(e=>c.error(`WC freezer refresh failed`,e))},h=!1,g=()=>n.freezer.querySelector(`slicc-freezer-new`),_=n=>{h||(h=!0,g()?.setAttribute(`busy`,``),(async()=>{let s=pl(i,qn(e.getUnits(),o()));try{let{writer:o}=await r(),{resetNewSessionTmp:l,runNewSessionFreeze:u,runNewSessionFreezeQuick:f}=await t(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-ERMxClkz.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66]));await gl(n,{writer:o,root:s,client:i,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:u,runNewSessionFreezeQuick:f,log:c}),await _l({writer:o,root:s,client:i,getController:a,log:c,resetNewSessionTmp:l,tmpDir:gn(i.getScoops(),s),discardLiveSnapshot:n===`erase`}),m();let p=e.getUnits().find(e=>e.id===s?.jid)??Kn(e.getUnits());p&&d(p)}catch(e){c.error(`WC new session failed`,e)}finally{h=!1;let e=g();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])n.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:n}=await r(),{runNewSessionArchiveOnly:i}=await t(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-ERMxClkz.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66]));await i({vfs:n,cone:ml(e),captureCompleteSnapshot:(t,n)=>fl(e,t,n)}),m()};_e(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(qc,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async t=>{let i=l.find(e=>e.filename===t);try{let{reader:o}=await r();i||=(await $c(o)??[]).find(e=>e.filename===t);let{messages:c}=await al(o,i??{filename:t,title:t,frozenAt:``,messageCount:0});n.thread.setAttribute(`context`,`freezer:${i?.filename??t}`),u=i?.sessionId??i?.filename??null,e.holdQueuedPile(),a()?.loadMessages(c),vl(n,i),s()}catch(t){if(c.error(`WC thaw failed`,t),!o()){let t=zn(e.getUnits(),i?.cone);t&&d(t)}}};return n.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&y(t)}),dl({freezer:n.freezer,openVfs:r,getEntries:()=>l,isViewing:e=>Sl(n.thread,e,u),leaveViewed:t=>{a()?.loadMessages([]),u=null;let n=zn(e.getUnits(),t.cone);n&&d(n)},refreshFreezer:m,log:c}),{refreshFreezer:m,openFrozen:y,getViewedFrozenSessionId:()=>u,freezeCone:v}}n(`scoops.tray-leave`),n(`scoops.tray-join`);var wl=null;function Tl(e){wl=e}function El(){return wl?.()??[]}var Dl=null;function Ol(e){Dl=e}function kl(){return Dl??void 0}var Al=`slicc.leaderTrayFollowers`;function jl(){return Ml()}function Ml(){if(wl)return wl();try{let e=globalThis.localStorage?.getItem(Al);if(e)return JSON.parse(e)}catch{}return[]}function Nl(e,t=globalThis.localStorage){try{t?.setItem(Al,JSON.stringify(e))}catch{}}function Pl(e){try{let t=JSON.parse(e);return{processes:(t.processes??[]).filter(e=>e.status===`running`||e.status===`pending`).map(e=>({pid:Number(e.pid??0),argv:String(e.argv??``),status:String(e.status??`unknown`)})),terminated:Number(t.stats?.terminated??0)}}catch{return{processes:[],terminated:0}}}function Fl(e){let t=mt();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:_t(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=rn();if(n.state!==`inactive`)return{role:`leader`,state:n.state,joinUrl:n.session?.joinUrl,sessionId:n.session?.trayId,workerBaseUrl:n.session?.workerBaseUrl};let r=null;try{r=bt(e.getItem(ht))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Il(e){let{client:n,openReader:r,storage:i}=e;return{getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await t(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-BUSNq_Gl.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([69,1,3,20,21,22,55,56,2,8,9,10,11,12,13,14,15,16,17,18,19,5,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await t(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-BUSNq_Gl.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([69,1,3,20,21,22,55,56,2,8,9,10,11,12,13,14,15,16,17,18,19,5,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:n}=await t(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([70,1])),r=await e();return Promise.all(r.map(async e=>{if(e.descriptor.kind!==`local`)return e;try{let t=await(await n(e.descriptor.idbHandleKey))?.queryPermission?.({mode:`readwrite`});return{...e,valid:t===`granted`}}catch{return{...e,valid:!1}}}))},getMcpServers:async()=>{try{let e=await(await r()).readFile(`/workspace/.mcp/servers.json`,{encoding:`utf-8`});return JSON.parse(typeof e==`string`?e:new TextDecoder().decode(e)).servers??{}}catch{return{}}},getOAuthProviders:()=>{try{let e=new Set,t=[];for(let n of Ne()){if(e.has(n.providerId))continue;if(e.add(n.providerId),!je(n.providerId)?.isOAuth){t.push({providerId:n.providerId});continue}let r=ke(n.providerId),i=n.loggedOut?!1:r?!r.expired:!1;t.push({providerId:n.providerId,valid:i})}return t}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await(await r()).readFile(`/proc/table`,{encoding:`utf-8`});return Pl(typeof e==`string`?e:new TextDecoder().decode(e))}catch{return{processes:[],terminated:0}}},getTrayInfo:()=>Fl(i),getConnectedFollowers:El}}var Ll=`sync-fs-nonce`;function Rl(e={}){let t=e.navigator??(typeof navigator<`u`?navigator:void 0),n=e.document??(typeof document<`u`?document:void 0),r=e.window??(typeof window<`u`?window:void 0),i=e.randomUUID??(()=>crypto.randomUUID()),a=!!t?.serviceWorker?.controller,o=a?i():void 0;if(!o||!t?.serviceWorker)return{syncFsBridgeEnabled:a,syncFsChannelNonce:o};let s=t.serviceWorker,c={type:Ll,nonce:o},l=()=>s.controller?.postMessage(c);return l(),s.addEventListener(`controllerchange`,l),s.addEventListener(`message`,e=>{e.data?.type===`sync-fs-need-nonce`&&l()}),n?.addEventListener(`visibilitychange`,()=>{n.visibilityState===`visible`&&l()}),r?.addEventListener(`focus`,l),{syncFsBridgeEnabled:a,syncFsChannelNonce:o}}var zl=class{#e=new Map;#t=new Map;#n=new Map;sync(e,t){let n=new Set;for(let r of e){if(!Un(r))continue;n.add(r.id);let e=this.#r(r);e>0&&r.id!==t&&this.#e.set(r.id,(this.#e.get(r.id)??0)+e)}t&&this.#e.delete(t);for(let e of[...this.#e.keys()])n.has(e)||this.#e.delete(e);for(let e of[...this.#t.keys()])n.has(e)||this.#t.delete(e);for(let e of[...this.#n.keys()])n.has(e)||this.#n.delete(e);return this.counts()}#r(e){let t=this.#t.get(e.id),n=this.#t.has(e.id);if(this.#t.set(e.id,e.state),typeof e.turns==`number`&&Number.isFinite(e.turns)){let t=this.#n.get(e.id)??(n?0:void 0);return this.#n.set(e.id,e.turns),t===void 0?0:e.turns>t?Math.floor(e.turns-t):0}return this.#n.delete(e.id),n&&t===`working`&&e.state!==`working`?1:0}counts(){return new Map(this.#e)}};function Bl(e,t){let n=e=>{t.onError?.(e instanceof Error?e.message:String(e))};return{sendMessage:(r,i,a,o)=>{let s=t.getSelectedId();if(!s){t.onError?.(`No scoop selected`);return}e.send(s,{text:r,...i?{messageId:i}:{},...a?{attachments:a}:{},...o?.steer?{steer:!0}:{},...o?.guestGate?{guestGate:o.guestGate}:{}}).catch(n)},onEvent:e=>t.onEvent(e),stop:()=>{let r=t.getSelectedId();r&&e.signal(r,`stop`).catch(n)}}}var Vl=`question`;function Hl(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{return}}function Ul(e,t,n){let r=e=>{let r=e.detail;if(!r||typeof r.answer!=`string`)return;let{question:i,kind:a,answer:o}=r,s=a===`datetime`||a===`date`?Hl():void 0;t(Vl,{action:`answer`,data:{question:i,kind:a,answer:o,...s?{timeZone:s}:{}}},void 0,n()??void 0)};return e.addEventListener(ee,r),()=>e.removeEventListener(ee,r)}var Wl=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;function Gl(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`assistant`&&!n.isStreaming&&!n.queued)return n.content}for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t].content;return null}function Kl(e){let t=e.writeText??(e=>navigator.clipboard.writeText(e)),n=document.createElement(`div`);n.className=`wc-copy-row`,n.style.cssText=`display:flex;justify-content:flex-start;margin:-8px 0 14px;`;let r=document.createElement(`slicc-press-button`);r.setAttribute(`tooltip`,`Copy last response · hold to copy chat`),r.setAttribute(`label`,`Copy last response — hold to copy entire chat`),r.setAttribute(`disable-double-click`,``),r.style.cssText=`color:var(--txt-3);cursor:pointer;display:inline-flex;`;let i=document.createRange();r.append(i.createContextualFragment(Wl));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=Gl(e.getMessages());await t(n??Qe([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=Qe([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function $(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ql(e){try{let t=new DOMParser().parseFromString(e,`text/html`).querySelector(`.sprinkle-action-card__header`);if(t){t.querySelector(`.sprinkle-badge`)?.remove(),t.querySelector(`.sprinkle-action-card__meta`)?.remove();let e=t.textContent?.trim();if(e)return e}}catch{}return`Approval requested`}function Jl(e){return`
|
|
244
244
|
<div class="sprinkle-action-card">
|
|
245
245
|
<div class="sprinkle-action-card__header">${Kt(ql(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
|
|
246
246
|
<div class="sprinkle-action-card__body">Waiting for approval on the leader…</div>
|
|
247
247
|
</div>
|
|
248
|
-
`}function Yl(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var Xl=class e{#e;#t;#n;#r;#i;#a=null;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y=[];#b=[];#x=null;#S=new Map;#C=null;#w=null;#T=``;#E=null;#D=null;#O=!1;#k=`thinking`;#A=0;#j=null;#M=new Set;#N=new Map;#P=new Map;#F=new Set;#I=!1;#L=null;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onToolProgressChange,this.#o=e.onMessageRendered,this.#s=e.onMessageDisposed,this.#c=e.onTurnComplete,this.#l=e.resolveTelemetryContext,this.#u=e.onQueuedChange,this.#d=e.onLickBackpressureChange,this.#f=e.onQueuedCancel,this.#p=e.onToolUiAction,this.#m=e.readOnlyToolUi??!1,this.#h=e.agent.onEvent(e=>this.#J(e)),this.#v=e=>this.#ge(e),this.#e.addEventListener(`slicc-error-retry`,this.#v)}dispose(){this.#h(),this.#e.removeEventListener(`slicc-error-retry`,this.#v);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me()}setReadOnly(e){if(this.#I!==e&&(this.#I=e,e))for(let e of[...this.#N.keys()])this.#he(e)}get readOnly(){return this.#I}get processing(){return this.#O}getMessages(){return this.#y.map(e=>({...e}))}setAgent(e){this.#h(),this.#t=e,this.#h=e.onEvent(e=>this.#J(e))}setOnLocalUserMessage(e){this.#g=e}setOnLocalProcessingChange(e){this.#_=e}addUserMessage(e,t,n){this.#ye({id:$(),role:`user`,content:e,timestamp:Date.now(),...n?{source:n}:{}})}getQueuedMessages(){return this.#b.map(Yl)}removeQueuedMessage(e){let t=this.#b.filter(t=>t.id!==e);t.length!==this.#b.length&&(this.#b=t,this.#B())}stashQueued(){let e=this.#L??[];this.#L=null;let t=this.#b;return t.length===0?e:(this.#b=[],this.#B(),[...e,...t])}restoreQueued(e){this.#L=e.length>0?[...e]:null}heldBackendPendingIds(e){if(!this.#L||!e?.length)return new Set;let t=new Set(e);return new Set(this.#L.filter(e=>t.has(e.id)).map(e=>e.id))}#R(e,t){if(!this.#L)return;let n=this.heldBackendPendingIds(t),r=new Set(e.map(e=>e.id)),i=this.#L.filter(e=>!r.has(e.id)||n.has(e.id));if(this.#L=null,i.length===0)return;if(!t){this.#b=i,this.#B();return}let a=new Map(t.map((e,t)=>[e,t])),o=i.filter(e=>a.has(e.id)).sort((e,t)=>(a.get(e.id)??0)-(a.get(t.id)??0)),s=i.filter(e=>!a.has(e.id));if(this.#b=this.#O?o:[...o,...s],this.#B(),this.#O)for(let e of s)this.#ye(e)}#z(){if(this.#b.length===0)return;let e=this.#b;this.#b=[];for(let t of e)this.#ye(t);this.#B()}#B(){this.#u?.(this.#b.map(Yl))}#V(){this.#d?.(this.#x)}setLickBackpressure(e,t,n){if(e<=0){if(!this.#x)return;this.#x=null,this.#V();return}this.#x={text:`${e} events waiting for the current turn`},this.#V();try{ot(n,t)}catch{}}addAssistantMessage(e){this.#ye({id:$(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e,t){for(let e of this.#S.keys())this.#s?.(e);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me();let n=this.#b.length>0;if(this.#b.length>0){if(this.#f)for(let e of this.#b)try{this.#f(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#b=[]}n&&this.#B();let r=this.heldBackendPendingIds(t),i=r.size>0?e.filter(e=>!r.has(e.id)):e;this.#y=de(i);let a=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=a?.id??null,a&&(this.#w=a.id),this.#Q(),this.#S.clear();let o=[],s=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==s&&(o.push(d(e.timestamp)),s=t);let n=this.#ve(e);this.#S.set(e.id,n),o.push(...n)}let c=this.#e;typeof c.replaceContent==`function`?c.replaceContent(...o):c.replaceChildren(...o),this.#Ce();for(let e of this.#y)this.#o?.(e,this.#S.get(e.id)??[]);this.#q(),this.#Te(),this.#H(),this.#R(e,t)}#H(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!yt()||this.#O)return;let e=this.#y[this.#y.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#ge(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#U(r):r,a={id:$(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#O&&!n?.steer?(this.#b.push(a),this.#B()):this.#ye(a),n?.steer?this.#t.sendMessage(i,a.id,a.attachments,{steer:!0}):this.#t.sendMessage(i,a.id,a.attachments),this.#W();try{let e=n?.dictation?m(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#U(e){return oe(e,C())}#W(){if(this.#l)try{let e=this.#l();if(!e)return;lt(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#y[this.#y.length-1];if(!(i||a?.lickId)&&a&&a.source===`lick`&&a.channel===n){a.lickParts=[...a.lickParts??[a.content],t],a.lickCount=a.lickParts.length,a.content+=`\n\n${t}`,this.#be(a);return}this.#ye({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#O?!0:void 0})}updateLickState(e,t){let n=this.#y.find(t=>t.lickId===e);n&&(n.lickState=t,this.#be(n))}setProcessing(e){if(this.#O!==e){this.#O=e,e&&(this.#w=null),e&&(this.#A=0,this.#G(`thinking`)),e&&this.#z(),e||(this.#x&&(this.#x=null,this.#V()),this.#q()),this.#n?.(e);try{this.#_?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#K()}}#G(e){this.#k!==e&&(this.#k=e,this.#r?.(e))}#K(){let e=this.#w;if(this.#w=null,!this.#c)return;let t=e?this.#_e(e):null;this.#c(t?{...t}:null)}#q(){let e=this.#y[this.#y.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#j?.remove();return}this.#j??=Kl({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#j)}#J(e){switch(e.type){case`message_start`:this.#Y(e.messageId);break;case`content_delta`:this.#X(e.messageId,e.text);break;case`content_done`:this.#$(e.messageId,e.model,e.usage);break;case`tool_use_start`:this.#te(e.messageId,e.toolName,e.toolInput,e.toolCallId);break;case`tool_result`:this.#re(e.messageId,e.toolName,e.result,e.isError,e.toolCallId);break;case`tool_ui`:this.#le(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#ue(e.requestId);break;case`tool_progress`:this.#de(e.messageId,e.toolName,e.progress,e.toolCallId);break;case`turn_end`:this.#oe(e.messageId);break;case`compaction_notice`:this.#ie(e.messageId,e.marker);break;case`error`:this.#se(e.error,e.endTurn!==!1)}}#Y(e){this.setProcessing(!0),this.#C=e,this.#w=e,this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#X(e,t){this.#_e(e)&&(this.#E!==e&&this.#Z(),this.#E=e,this.#T+=t,this.#D??=requestAnimationFrame(()=>this.#Z()))}#Z(){let e=this.#E,t=this.#T;this.#Q();let n=t&&e?this.#_e(e):void 0;n&&(n.content+=t,this.#be(n))}#Q(){this.#D!==null&&cancelAnimationFrame(this.#D),this.#D=null,this.#T=``,this.#E=null}#$(e,t,n){let r=this.#_e(e);r&&(t&&(r.model=t),n&&(r.usage=n),this.#E===e&&(r.content+=this.#T,this.#Q()),r.isStreaming=!1,this.#be(r))}static#ee(e,t){return`${e}:${t}`}#te(t,n,r,i){let a=this.#_e(t);if(!a)return;a.toolCalls=a.toolCalls??[];let o=i?e.#ee(t,i):$();this.#F.add(o),a.toolCalls.push({id:o,name:n,input:r}),this.#A+=1,this.#G(`tool`),this.#be(a)}#ne(t,n,r){let i=t?.toolCalls??[];if(r){let n=t?e.#ee(t.id,r):void 0;return i.find(e=>e.id===n)??i.find(e=>e.id===r)}return[...i].reverse().find(e=>e.name===n&&e.result===void 0)}#re(e,t,n,r,i){let a=this.#_e(e),o=this.#ne(a,t,i);!a||!o||(o.result=n,o.isError=r,o.id&&(this.#P.delete(o.id),this.#me()),this.#A=Math.max(0,this.#A-1),this.#A===0&&this.#G(`thinking`),this.#be(a))}#ie(e,t){let n=this.#_e(e);if(t.state===`discarded`){n&&this.#ae(n);return}if(n){n.compaction=t,this.#be(n);return}this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),compaction:t})}#ae(e){this.#Se(),this.#s?.(e.id);for(let t of this.#S.get(e.id)??[])t.remove();this.#S.delete(e.id),this.#y=this.#y.filter(t=>t!==e),this.#Ce(),this.#pe()}#oe(e){let t=this.#_e(e);t?.isStreaming&&(t.isStreaming=!1,this.#be(t)),this.#C=null,this.setProcessing(!1)}#se(e,t=!0){t&&this.setProcessing(!1),this.#ye({id:$(),role:`assistant`,content:typeof e==`string`?e:ct(e)??``,timestamp:Date.now(),error:!0}),this.#ce(e)}#ce(e){try{let t=typeof e==`string`?e:st(e);if(typeof t==`string`&&ut(t))return;dt(`error-card`,e)}catch{}}#le(e,t,n){if(this.#I)return;this.#he(t);let r=document.createElement(`div`);if(r.className=`msg__dip`,r.setAttribute(`data-tool-ui-request`,t),(this.#e.inner??this.#e).append(r),this.#m){let e=B(r,Jl(n),()=>{},!1);this.#N.set(t,{instance:e,container:r});return}let i=B(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#N.set(t,{instance:i,container:r}),this.#p?.(t,at,void 0)}#ue(e){this.#he(e)}#de(e,t,n,r){let i=this.#_e(e),a=this.#ne(i,t,r);a?.id&&(n.phase===`end`?this.#P.delete(a.id):this.#P.set(a.id,n),this.#fe(a.id),this.#me())}#fe(e){let t=this.#e.querySelector(`slicc-action-row[data-tool-id="${CSS.escape(e)}"]`);t&&h(t,this.#P.get(e)??null),this.#pe()}#pe(){let e=this.#e.querySelectorAll(`slicc-tool-cluster`);for(let t of e){let e=[...t.querySelectorAll(`slicc-action-row[data-tool-id]`)].filter(e=>e.dataset.toolId&&this.#F.has(e.dataset.toolId)).map(e=>{let t=e.dataset.toolId,n=e.getAttribute(`result`);return{done:n!==null&&n!==`…`,fraction:this.#P.get(t)?.fraction}});fe(t,le(e))}}#me(){let e=null,t=[...this.#P.values()];t.length>0&&t.every(e=>typeof e.fraction==`number`)&&(e=t.reduce((e,t)=>e+t.fraction,0)/t.length),e!==this.#a&&(this.#a=e,this.#i?.(e))}#he(e){let t=this.#N.get(e);if(t){this.#N.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#ge(e){if(this.#O)return;let t=e.detail?.messageId??null,n=this.#y.length;if(t){let e=this.#y.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#y[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,$(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#y[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,$(),i.attachments)}#_e(e){return this.#y.find(t=>t.id===e)}#ve(e){try{return a(e,{readOnly:this.#I})}catch(t){console.error(`[wc-chat] message render failed — degrading to plain bubble`,t);let n=document.createElement(e.role===`assistant`?`slicc-agent-message`:`slicc-user-message`);return n.setAttribute(`text`,String(e.content??``)),[n]}}#ye(e){this.#Se(),this.#y.push(e);let t=this.#ve(e);this.#S.set(e.id,t),this.#e.append(...t),this.#Ce(),this.#o?.(e,t),e.role===`user`?this.#Te():this.#Ee()}#be(e){this.#Se();let t=this.#S.get(e.id)??[],n=this.#ve(e),r=t[0]??null,i=r?.parentNode;if(i)for(let e of n)i.insertBefore(e,r);else this.#e.append(...n);this.#S.set(e.id,n),this.#o?.(e,n);for(let e of t)e.remove();for(let t of e.toolCalls??[])t.id&&this.#P.has(t.id)&&this.#fe(t.id);this.#Ce(),this.#pe(),this.#Ee()}#xe(){return this.#e.inner??this.#e}#Se(){f(this.#xe(),this.#M)}#Ce(){ue(this.#xe(),{openClusterAnchors:this.#M,toolCallLookup:(e,t)=>this.#we(e,t)})}#we(e,t){return this.#y.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#Te(){this.#e.scrollTop=this.#e.scrollHeight}#Ee(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#Te()}};function Zl(e,n,r,i,a,o){let s=new Map;t(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e}},__vite__mapDeps([71,2])).then(({loadDipStyles:e})=>e()).catch(()=>void 0);let c=[];r.subscribeList(e=>{c=e});let l=()=>n.addressableUnitId?n.addressableUnitId():i()?.id??null,u=Bl(r,{getSelectedId:l,onError:e=>n.emitAgentError(e),onEvent:e=>n.onAgentEvent(e)});u.onEvent(n=>{(n.type===`tool_use_start`||n.type===`tool_result`)&&(n.type===`tool_result`&&n.isError&&e.switcher.glower(),t(async()=>{let{playCue:e}=await import(`./soundscape-DEhbJ-ug.js`);return{playCue:e}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({playCue:e})=>e(n.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let d=new Xl({thread:e.thread,agent:u,resolveTelemetryContext:()=>{let e=i();if(!e)return null;let t=Jn(e);try{let n=Hn(c,e.id);return{scoopName:t,model:(n?Ae(n.id,n.provider):Me()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{n.speaksReplies&&t(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-Bcxvx3tf.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([73,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,74,75,76,77])).then(async({consumeVoiceSubmission:n,speakReplyMarkdown:r})=>{if(!n())return;let{endVoiceTurn:i,setTtsActive:a}=await t(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-DEhbJ-ug.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));try{if(e?.content){a(!0);try{await r(e.content)}finally{a(!1)}}}finally{i()}}).catch(()=>void 0)},onProcessingChange:t=>{e.frame.toggleAttribute(`data-processing`,t),e.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,t),t||a?.()},onBusyPhaseChange:t=>{e.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,t)},onToolProgressChange:t=>{let n=e.inputCard.querySelector(`slicc-send-button`);n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,t.toFixed(3)))},onMessageDisposed:e=>{let t=s.get(e);t&&(Si(t),s.delete(e))},onMessageRendered:(e,t)=>{let r=s.get(e.id),i=t[0];if(!i){r&&Si(r),s.delete(e.id);return}n.onMessageRendered?.(i);let a=l()??void 0;s.set(e.id,xi(i,(e,t)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:t}};o?.intercept?.(r)||n.sendSprinkleLick(`inline`,{action:e,data:t},void 0,a)},{previous:r,streaming:e.isStreaming===!0}))},onQueuedChange:t=>e.queuedStack.setMessages(t),onLickBackpressureChange:t=>{e.lickBackpressureNotice.textContent=t?.text??``,e.lickBackpressureNotice.toggleAttribute(`hidden`,t===null)},onToolUiAction:(e,t,r)=>{n.sendToolUiAction(e,t,r)},onQueuedCancel:e=>{let t=i()?.id;t&&n.deleteQueuedMessage(t,e).catch(()=>void 0)},...n.readOnlyToolUi?{readOnlyToolUi:!0}:{}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let t=e.detail?.id;if(!t)return;d.removeQueuedMessage(t);let r=i()?.id;r&&n.deleteQueuedMessage(r,t).catch(()=>void 0)}),Ul(e.thread,(e,t,r,i)=>n.sendSprinkleLick(e,t,r,i),l),{controller:d,agentHandle:u}}function Ql(e,t){let n=new zl,r=()=>{let r=t.currentUnits(),a=e.getSelected()?.id;e.refs.switcher.scoops=Rn(r,a,i,n.sync(r,a)),e.refreshConeActions?.()};return e.refreshScoops=r,t.subscribeList(()=>r()),r}function $l(e,n,r){let{refs:i}=e;e.setChatTransport(n,r);let{controller:a,agentHandle:o}=Zl(i,r,n,()=>e.getSelected(),r.onTurnIdle,r.welcome);e.setController(a);let s=Ql(e.wiring,n);return i.switcher.addEventListener(`slicc-scoop-select`,t=>{let r=t.detail?.key,i=n.currentUnits().find(e=>e.id===r);i&&i.id!==e.getSelected()?.id&&e.selectScoop(i)}),i.switcher.setAttribute(`gaze-target`,`slicc-input-card`),i.inputCard.addEventListener(`input`,()=>{i.switcher.scrutinize(),i.switcher.wake()}),i.inputCard.addEventListener(`submit`,n=>{let o=ne(n),s=r.takeAttachments?.();if(!o&&!s?.length)return;e.wiring.awaitingInput=null,e.wiring.refreshScoops?.(),e.wiring.notifyScoopStateChanged?.();let c=n.detail?.source===`dictation`;c&&r.speaksReplies&&(t(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-Bcxvx3tf.js`);return{markVoiceSubmission:e}},__vite__mapDeps([73,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,74,75,76,77])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),t(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-DEhbJ-ug.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),a.sendUserMessage(o??``,s,{dictation:c,steer:p(n)}),i.inputCard.clear?.();let l=e.getSelected()?.id;l&&(i.switcher.setAttribute(`attention`,l),e.wiring.lastActivity.set(l,ge(o??``,600)))}),i.inputCard.addEventListener(`stop`,()=>{e.getController()?.processing&&o.stop()}),{agentHandle:o,controller:a,publishStrip:s}}var eu=e({floatKindForRuntimeMode:()=>ru,floatLabelForKind:()=>nu,resolveStandaloneFloatKind:()=>iu}),tu={"slicc-server":`sliccstart`,"slicc-node-server":`npx`};function nu(e){return u(e)}function ru(e){switch(e){case`extension`:case`extension-detached`:return`extension`;case`cherry`:return`cherry`;case`hosted-leader`:return`hosted`;case`electron-overlay`:return`electron`;case`follower`:return`standalone`;default:return`standalone`}}async function iu(e){let t=e?.fetchFn??fetch,n=e?.timeoutMs??1500;try{let e=new AbortController,r=setTimeout(()=>e.abort(),n),i=await t(tt(`/api/status`),{cache:`no-store`,signal:e.signal,headers:nt()}).finally(()=>clearTimeout(r));if(await $e(i),!i.ok)return`standalone`;let a=await i.json();return(a.service?tu[a.service]:void 0)??`standalone`}catch(e){if(et(e))throw e;return`standalone`}}function au(e,t){let n=t.label??nu(t.floatKind);e.setAttribute(`label`,n),e.setAttribute(`float-kind`,t.floatKind);let r=rn(),i=mt(),a=()=>{let t=ou(r,i);e.setAttribute(`connection`,t.connection),t.trayRole===`none`?e.removeAttribute(`tray-role`):e.setAttribute(`tray-role`,t.trayRole)},o=tn(e=>{r=e,a()}),s=ft(e=>{i=e,a()});return a(),()=>{o(),s()}}function ou(e,t){return e.state===`inactive`?t.state===`inactive`?{connection:`offline`,trayRole:`none`}:{connection:cu(t),trayRole:`follower`}:{connection:su(e),trayRole:`leader`}}function su(e){switch(e.state){case`connecting`:return`connecting`;case`leader`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}function cu(e){if(e.stalled)return`stalled`;switch(e.state){case`connecting`:return`connecting`;case`connected`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}async function lu(e,t,n){let r=n.floatLabel??nu(n.floatKind),i=Dd(e,r);au(i.refs.floatbar,{floatKind:n.floatKind,label:r});let a=await n.connect(i),o=$l(i,a.client,a.host);return await a.workbench?.(i,o),t.info(`WC shell mounted`,{floatKind:n.floatKind}),{boot:i,chat:o}}var uu=36e5,du=2e3,fu=class{#e=[];#t;#n;constructor(e=uu,t=du){this.#t=Math.max(1,Math.floor(e)),this.#n=Math.max(2,Math.floor(t))}get windowMs(){return this.#t}push(e){this.#e.push(e);let t=e.at-this.#t;for(;this.#e.length>0&&this.#e[0].at<t;)this.#e.shift();for(;this.#e.length>this.#n;)this.#e.shift()}get size(){return this.#e.length}series(e){if(!(this.#e.length<2))return{points:this.#e.map(t=>({at:t.at,value:t[e]})),windowMs:this.#t}}peak(e){return this.#e.length===0?null:this.#e.reduce((t,n)=>Math.max(t,n[e]),-1/0)}windowLabel(){if(this.#e.length<2)return null;let e=this.#e[this.#e.length-1].at-this.#e[0].at,t=Math.max(1,Math.round(e/1e3));if(t<90)return`last ${t}s`;let n=Math.round(t/60);return n<90?`last ${n}m`:`last ${Math.round(n/60)}h`}};function pu(e){return c(e,s)}async function mu(e,t=yn.memoryPath){let n=``;try{let r=await e.readFile(t,{encoding:`utf-8`});n=typeof r==`string`?r:new TextDecoder().decode(r)}catch{n=``}return pu(n)}function hu(e){let t=e.filter(e=>e.health===`stalled`).length,n=e.filter(e=>e.health!==`stalled`&&e.peerState===`connecting`).length,r=e.length-t-n,i=[r>0?`${r} connected`:``,n>0?`${n} connecting`:``,t>0?`${t} stalled`:``].filter(Boolean);return{id:`followers`,label:`Followers`,icon:`radio`,count:e.filter(e=>e.peerState===`connected`).length,meta:i.join(` · `)||`none paired`,accent:`cyan`,emptyText:`No followers connected yet. Pair a phone, tablet, or CLI follower to this tray.`,rows:e.map(e=>{let t=e.motd??e.runtime??`Connected follower`,n=e.hostOrigin?`${t} · ${e.hostOrigin}`:t,r=[e.exec?`ssh`:``,e.cdp?`playwright`:``].filter(Boolean);return{name:ro(e),sublabel:n,meta:to(e),icon:Qa(e),badges:r,status:eo(e)}})}}function gu(e){return e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`}function _u(e){return e.stalled?`stalled`:e.state===`leader`?`connected`:e.state}function vu(e){let t=_u(e),n=e.sessionId?`Session ${Xa(e.sessionId)}`:null,r=e.workerBaseUrl?`Worker · ${e.workerBaseUrl}`:null;return{id:`tray`,label:`Tray`,icon:e.role===`follower`?`radio`:`cloud`,count:1,meta:`${e.role} · ${t}`,accent:`waffle`,status:gu(e),rows:[{name:e.role[0].toUpperCase()+e.role.slice(1),sublabel:[n,r].filter(Boolean).join(` · `)||`No tray session`,meta:t,icon:e.role===`follower`?`radio`:`cloud`,badges:e.joinUrl?[`join URL`]:[],status:gu(e)}]}}function yu(e,t){let n=e.filter(e=>k(e)),r=t=>e.filter(e=>!k(e)&&e.parentJid===t),i=(e,n)=>{let r=t(e.jid);return{name:k(e)?`${e.name||`sliccy`} (cone)`:e.name,meta:r?`working`:`idle`,active:r,depth:n}},a=n.flatMap(e=>[i(e,0),...r(e.jid).map(e=>i(e,1))]),o=new Set(a.map(e=>e.name));for(let t of e){let e=i(t,0);o.has(e.name)||a.push(e)}let s=e.filter(e=>t(e.jid)).length;return{id:`scoops`,label:`Scoops`,icon:`bot`,count:e.length,meta:`${e.length} · ${s} working`,accent:`violet`,status:`active`,emptyText:`Delegate a focused task and its scoop will show up here.`,rows:a}}function bu(e){let t=e.filter(e=>e.valid===!1).length;return{id:`mounts`,label:`Mounts`,icon:`hard-drive`,count:e.length,meta:t>0?`${e.length} · ${t} need${t===1?`s`:``} re-grant`:`${e.length} · all granted`,status:t>0?`warn`:`active`,emptyText:`Mount a folder to give the workspace access to files on disk.`,rows:e.map(e=>({name:e.targetPath,meta:e.valid===!1?`permission lost`:e.descriptor.kind,status:e.valid===!0?`active`:e.valid===!1?`warn`:`idle`}))}}function xu(e,t){let n=t.filter(e=>e.valid===!1).length,r=e.reduce((e,[,t])=>e+(t.tools?.length??0),0),i=[`${e.length} server${e.length===1?``:`s`}`,`${r} tool${r===1?``:`s`}`,n>0?`${n} account expired`:`${t.length} accounts valid`].join(` · `);return{id:`integrations`,label:`Integrations`,icon:`blocks`,count:e.length+t.length,meta:i,accent:`waffle`,status:n>0?`error`:`active`,emptyText:`Connect an MCP server or a provider account to extend the workspace.`,rows:[...e.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`MCP · ${n} tool${n===1?``:`s`}`,status:`active`}}),...t.map(e=>({name:e.providerId,meta:e.valid===!1?`session expired`:`account`,status:e.valid===!0?`active`:e.valid===!1?`error`:`idle`}))]}}function Su(e,t){let n=[`${t.length} webhook${t.length===1?``:`s`}`,e.length>0?`${e.length} cron task${e.length===1?``:`s`}`:`no cron tasks`].join(` · `);return{id:`automations`,label:`Automations`,icon:`calendar-clock`,count:e.length+t.length,meta:n,accent:`amber`,emptyText:`Scheduled tasks and webhook-driven licks will appear here.`,rows:[...e.map(e=>({name:e.name,meta:e.cron,status:e.status===`active`?`active`:`idle`})),...t.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`,status:`idle`}))]}}function Cu(e){let t=Dt({percent:e.percent,status:e.status});return t===`critical`?`error`:t===`warn`?`warn`:`active`}function wu(e,t){let n=`${Tt(e.percent)}% used`,r=Et(e.resetsAt,t);return{name:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,sublabel:e.providerId?`${e.providerId} · rolling window`:`rolling window`,meta:e.status===`rate-limited`?`rate-limited · ${n}`:n,badges:r?[r]:void 0,status:Cu(e)}}function Tu(e,t){let n=e?.budget,r=e?.models??[],i=e?`$${e.totalCost.toFixed(2)} across ${r.length} models`:``,a=n?[n.status===`rate-limited`?`rate-limited`:``,`${Tt(n.percent)}% of ${n.window} budget`,i].filter(Boolean).join(` · `):e?i:`no spend yet`;return{id:`cost`,label:`Cost`,icon:`receipt`,count:r.length,meta:a,accent:`rose`,status:n?Cu(n):void 0,emptyText:`Model usage will be summarized after the first turn.`,rows:[...n?[wu(n,t)]:[],...r.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`,status:`idle`}))]}}function Eu(e){let t=[],n=Du(e.budget,e.now??Date.now());n&&t.push(n);for(let n of e.oauthProviders)n.valid===!1&&t.push({id:`oauth:${n.providerId}`,severity:`error`,icon:`key-round`,title:`${n.providerId} session expired`,detail:`Tool calls through this provider will fail until it is signed in again.`});let r=gu(e.tray);(r===`error`||r===`warn`)&&t.push({id:`tray`,severity:r===`error`?`error`:`warn`,icon:`cloud-off`,title:`Tray ${_u(e.tray)}`,detail:e.tray.workerBaseUrl?`Worker · ${e.tray.workerBaseUrl}`:`No tray session is established.`});for(let n of e.followers)eo(n)===`warn`&&t.push({id:`follower:${n.runtimeId}`,severity:`warn`,icon:`radio`,title:`${ro(n)} stopped answering`,detail:n.motd??n.runtime??`No heartbeat from this follower.`,age:to(n)});for(let n of e.mounts)n.valid===!1&&t.push({id:`mount:${n.targetPath}`,severity:`warn`,icon:`folder-lock`,title:`${n.targetPath} needs re-grant`,detail:`File System Access permission is no longer granted for this handle.`});return t.sort((e,t)=>e.severity===t.severity?0:e.severity===`error`?-1:1)}function Du(e,t){if(!e||Dt({percent:e.percent,status:e.status})===`ok`)return null;let n=Et(e.resetsAt,t),r=`${Tt(e.percent)}%`;if(e.status===`rate-limited`)return{id:`budget:rate-limited`,severity:`error`,icon:`octagon-alert`,title:`${e.window} budget is rate-limited`,detail:`The provider is refusing calls until the window resets. ${r} of the allowance is used.`,age:n};let i=e.percent>=95;return{id:`budget:near-limit`,severity:i?`error`:`warn`,icon:`gauge`,title:`${r} of the ${e.window} budget used`,detail:i?`Past 95% of the allowance — calls may start being refused.`:`Past 80% of the allowance. Long runs may not finish before it resets.`,age:n}}function Ou(e){return e>=100?`$${Math.round(e)}`:`$${e.toFixed(2)}`}function ku(e){let{stats:t,workingUnits:n,totalUnits:r,liveProcesses:i,terminated:a,history:o}=e,s=o?.windowLabel(),c=t?.burnRate??0,l=t?.fills??[],u=l.reduce((e,t)=>Math.max(e,t.fill),0),d=t?.budget,f=[{id:`burn`,label:`Burn rate`,value:Ou(c),unit:`/hour`,hero:!d,accent:d?`rose`:void 0,series:o?.series(`burnRate`),foot:[t?`$${t.totalCost.toFixed(2)} this session`:`no spend yet`,s].filter(Boolean).join(` · `)},{id:`load`,label:`Agent load`,value:String(n),unit:`of ${r} working`,accent:`violet`,series:o?.series(`workingUnits`),foot:s??void 0}];return d||f.push({id:`processes`,label:`Live processes`,value:String(i),unit:i===1?`process`:`processes`,accent:`cyan`,series:o?.series(`liveProcesses`),foot:a>0?`${a.toLocaleString()} exited this session`:s??void 0}),l.length>0&&f.push({id:`context`,label:`Context fill`,value:String(Math.round(u*100)),unit:`%`,ratio:u,markers:ju(l,e.units??[]),accent:u>=.9?`rose`:u>=.7?`amber`:`green`,foot:`fullest of ${l.length} context window${l.length===1?``:`s`}`}),d?[Au(d,t,e.now??Date.now()),...f]:f}function Au(e,t,n){let r=Dt({percent:e.percent,status:e.status});return{id:`budget`,label:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,value:Tt(e.percent),unit:`% used`,hero:!0,ratio:Math.min(1,Math.max(0,e.percent/100)),accent:r===`critical`?`rose`:r===`warn`?`amber`:`green`,foot:[e.status===`rate-limited`?`rate-limited`:``,Et(e.resetsAt,n)??``,t?`$${t.totalCost.toFixed(2)} this session`:``].filter(Boolean).join(` · `)}}function ju(e,t){let n=new Map(t.map(e=>[e.jid,e]));return e.map(({jid:e,fill:t})=>{let r=n.get(e),a=r?k(r):!1,o=r?.name||(r?`sliccy`:e);return{id:e,ratio:t,color:i({isRoot:a,name:o}),label:`${a?`${o} (cone)`:o} — ${Math.round(t*100)}% full`}})}var Mu={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function Nu(e,t){if(!e)return;let n=Math.max(0,Math.round((t-e)/1e3));if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m ${n%60}s`:`${Math.floor(r/60)}h ${r%60}m`}function Pu(e,t){return{pid:e.pid,ppid:e.ppid,state:Mu[e.status]??`?`,status:e.status,command:e.argv,scoop:e.scoop,started:e.startedAt?new Date(e.startedAt).toTimeString().slice(0,5):void 0,elapsed:Nu(e.startedAt,t)}}async function Fu(e,t){let n=e.getScoops(),r=e.getTrayInfo(),i=e.getConnectedFollowers(),[a,o,s,c,l,u]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>({processes:[],terminated:0}))]),{processes:d,terminated:f}=u,p=e.getOAuthProviders(),m=Object.entries(c),h=n.filter(t=>e.isProcessing(t.jid)).length,g=Date.now();return t?.push({at:g,burnRate:l?.burnRate??0,workingUnits:h,liveProcesses:d.length}),{updated:`Streaming · updated just now`,vitals:ku({stats:l,workingUnits:h,totalUnits:n.length,liveProcesses:d.length,terminated:f,history:t,units:n,now:g}),alerts:Eu({tray:r,followers:i,mounts:s,oauthProviders:p,budget:l?.budget,now:g}),sections:[vu(r),hu(i),yu(n,t=>e.isProcessing(t)),bu(s),xu(m,p),Su(a,o),Tu(l,g)],processes:{rows:d.map(e=>Pu(e,g)),terminated:f}}}var Iu=`/shared`,Lu=3,Ru=200;async function zu(e,t,n){let r;try{r=await e.readDir(t)}catch{return[]}let i=r.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)),a=r.filter(e=>e.type===`file`).sort((e,t)=>e.name.localeCompare(t.name)),o=[...i,...a].slice(0,Ru),s=new Map,c=[];for(let e of o){if(e.type!==`file`)continue;let n=`${t}/${e.name}`;e.size===void 0?c.push(n):s.set(n,e.size)}let l=await Promise.allSettled(c.map(t=>e.stat(t)));c.forEach((e,t)=>{let n=l[t];n?.status===`fulfilled`&&s.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Lu?await zu(e,i,n+1):[]});else{let e=s.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function Bu(e,t=yn.root){let n=[];for(let r of[t,Iu])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await zu(e,r,1)});return n}var Vu=200,Hu=1e3,Uu=3e3,Wu=45e3;function Gu(e){let t=null,n=!1,r=!1,i=!1,a=0,o=0,s=null,c=null,l=0,u=()=>{let t=++o;e.openFs().then(async n=>{let i=await Bu(n,e.getWorkspace().root);t===o&&(e.fileTree.items=i,r||(r=!0,v({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:_,log:e.log})))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},d=()=>{if(!i)return;let e=Date.now();if(c==null)l=e;else if(e-l>=Hu){clearTimeout(c),c=null,u();return}c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},Vu)},f=()=>{t??=setInterval(u,Uu)},p=()=>{let t=++a;s?.(),s=null;let n=[e.getWorkspace().root,Iu];e.openFs().then(async e=>{if(!e.watch){t===a&&i&&f();return}let r=await e.watch(n,d);if(t!==a||!i){r();return}s=r}).catch(n=>{e.log.error(`WC file tree watch failed — falling back to polling`,n),t===a&&i&&f()})},m=()=>{n=!1,i=!1,a++,s?.(),s=null,c!=null&&(clearTimeout(c),c=null),t!=null&&(clearInterval(t),t=null)};return{open(){m(),i=!0,n=!0,e.onKernelReady(()=>{n&&(n=!1,u(),p())})},close:m,repoint(){!i||n||(u(),p())}}}function Ku(e){let t=!1,n=!1,r=!1,i=0,a=null,o=new fu,s=Gu(e),c=()=>{a!=null&&(clearInterval(a),a=null)},l=()=>{let t=++i;e.openFs().then(async n=>{let r=await mu(n,e.getWorkspace().memoryPath);t===i&&(e.memoryHost.setRows?e.memoryHost.setRows(r):e.memoryHost.replaceChildren(...r))}).catch(t=>e.log.error(`WC memory refresh failed`,t))},u=()=>{(async()=>{try{e.monitor.model=await Fu(e.getMonitorDeps(),o)}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,u),{activate(i){if(i===`files`){s.open();return}if(i===`memory`){r=!0,l();return}if(i===`monitor`){c(),u(),a=setInterval(u,5e3);return}if(i===`term`&&!t){t=!0;let r=!1,i=n?null:setTimeout(()=>{r||(n=!0,t=!1,e.log.error(`WC terminal mount did not settle within ${Wu}ms; re-arming so the next term activation retries`))},Wu);e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}).finally(()=>{r=!0,i&&clearTimeout(i)})}},deactivate(e){e===`files`?s.close():e===`monitor`?c():e===`memory`&&(r=!1)},refreshMemory(){r&&l()},refreshFiles(){s.repoint()}}}var qu=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],Ju=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),Yu=2e4,Xu=12,Zu=3e4;function Qu(e){let t=e.trim();for(;t.startsWith(`./`)||t.startsWith(`../`);)t=t.slice(t.startsWith(`./`)?2:3);return t.startsWith(`~/`)&&(t=t.slice(2)),t.replace(/\/{2,}/g,`/`)}function $u(e){return e.slice(e.lastIndexOf(`/`)+1)}function ed(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function td(e,t){let n=Qu(e);return t.includes(`/`)?ed(n,t):$u(n)===t}function nd(e,t){let n=[],r=new Set;for(let i=t.length-1;i>=0;--i){let a=t[i];if(!(a===void 0||r.has(a))&&td(a,e)&&(r.add(a),n.push(Qu(a)),n.length>=rd))break}return n}var rd=4,id=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;#c=null;#l=new Map;#u=new Map;constructor(e,t={}){this.#e=e,this.#t=t.roots??qu,this.#n=t.ignoredDirs??Ju,this.#r=t.maxEntries??Yu,this.#i=t.maxDepth??Xu,this.#a=t.ttlMs??Zu}resolve(e,t=[]){this.#g();let n=Qu(e),r=this.#d(n),i=nd(n,t);return i.length===0?r:this.#f(n,r,i)}resolveAll(e,t=[]){return Promise.all(e.map(e=>this.resolve(e,t)))}invalidate(){this.#s=null,this.#c=null,this.#l.clear(),this.#u.clear()}#d(e){let t=this.#l.get(e);if(t!=null)return t;let n=this.#m(e).catch(()=>({query:e,matches:[]}));return this.#l.set(e,n),n}async#f(e,t,n){let{matches:r}=await t,i=new Set(r),a=[];for(let e of n)!e.startsWith(`/`)||i.has(e)||await this.#p(e)&&a.push(e);let o=e=>n.findIndex(t=>ed(e,t)),s=r.filter(e=>o(e)>=0).sort((e,t)=>o(e)-o(t)),c=new Set(s),l=r.filter(e=>!c.has(e));return{query:e,matches:[...a,...s,...l]}}#p(e){let t=this.#u.get(e);if(t!=null)return t;let n=this.#h(e);return this.#u.set(e,n),n}async#m(e){if(e.startsWith(`/`))return{query:e,matches:await this.#h(e)?[e]:[]};let t=(await this.#_()).get($u(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>ed(t,e)).sort(ad)}:{query:e,matches:[...t].sort(ad)}}async#h(e){try{return(await this.#e.stat(e)).type===`file`}catch{return!1}}#g(){!this.#s||this.#a===1/0||Date.now()-this.#o<this.#a||this.invalidate()}#_(){return this.#s?Promise.resolve(this.#s):(this.#c??=this.#v().then(e=>(this.#s=e,this.#o=Date.now(),e)),this.#c)}async#v(){let e=new Map,t={left:this.#r};for(let n of this.#t){if(t.left<=0)break;await this.#y(n,0,e,t)}return e}async#y(e,t,n,r){if(r.left<=0||t>this.#i)return;let i;try{i=await this.#e.readDir(e)}catch{return}let a=this.#b(e,i,n,r);for(let e of a){if(r.left<=0)break;await this.#y(e,t+1,n,r)}}#b(e,t,n,r){let i=[];for(let a of t){if(r.left<=0)break;let t=e===`/`?`/${a.name}`:`${e}/${a.name}`;if(a.type===`directory`){this.#n.has(a.name)||i.push(t);continue}let o=n.get(a.name);o?o.push(t):n.set(a.name,[t]),--r.left}return i}};function ad(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var od=`file-mention`,sd=`data-file-mentions`;function cd(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var ld=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),ud=`file-mention-open`;async function dd(e,t,n=[]){let r=cd(e);if(e.getAttribute(sd)===r)return;let i=fd(e);if(i.length===0){e.setAttribute(sd,r);return}let a=[],o=new Set;for(let e of i){let t=S(e.data);if(t.length!==0){a.push({node:e,mentions:t});for(let e of t)o.add(e.path)}}if(a.length===0){e.setAttribute(sd,r);return}let s=[...o],c=await t.resolveAll(s,n),l=new Map(s.map((e,t)=>[e,c[t]?.matches??[]]));for(let{node:e,mentions:t}of a){if(!e.isConnected)continue;let n=t.filter(e=>(l.get(e.path)?.length??0)>0);n.length!==0&&pd(e,n,l)}e.setAttribute(sd,cd(e))}function fd(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(t){if(!t.nodeValue||t.nodeValue.trim().length===0)return NodeFilter.FILTER_REJECT;for(let n=t.parentElement;n&&n!==e;n=n.parentElement)if(ld.has(n.tagName)||n.classList.contains(`file-mention`))return NodeFilter.FILTER_REJECT;return NodeFilter.FILTER_ACCEPT}}),n=[];for(let e=t.nextNode();e!==null;e=t.nextNode())n.push(e);return n}function pd(e,t,n){let r=e.ownerDocument,i=e.data,a=r.createDocumentFragment(),o=0;for(let e of t){let t=n.get(e.path)??[],s=t[0];s&&(e.start>o&&a.appendChild(r.createTextNode(i.slice(o,e.start))),a.appendChild(md(r,i.slice(e.start,e.end),s,t,e.line)),o=e.end)}o<i.length&&a.appendChild(r.createTextNode(i.slice(o))),e.parentNode?.replaceChild(a,e)}function md(e,t,n,r,i){let a=e.createElement(`a`);return a.className=od,a.textContent=t,a.href=`#${n}`,a.dataset.path=n,i!==void 0&&(a.dataset.line=String(i)),a.title=r.length>1?`${n}\n(+${r.length-1} other match${r.length>2?`es`:``})`:n,a.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation();let t={path:n,alternatives:r,...i===void 0?{}:{line:i}};a.dispatchEvent(new CustomEvent(ud,{detail:t,bubbles:!0,composed:!0}))}),a}var hd=`slicc-agent-message`,gd=`slicc-action-row[${o}]`;function _d(e,t){let n=[],r=e.querySelectorAll(gd);for(let e of r){if(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING)break;n.push(e.getAttribute(`data-file-paths`)??``)}return n.slice(-40).flatMap(e=>l(e))}function vd(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function yd(e){try{return bd(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function bd(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new id(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;S(n.textContent??``).length!==0&&vd(()=>{let i=_d(t,e);a().then(e=>dd(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll(hd))o(t)};s(t);let c=new MutationObserver(e=>{for(let t of e){if(t.type===`attributes`){t.target instanceof HTMLElement&&o(t.target);continue}for(let e of t.addedNodes)e instanceof HTMLElement&&(e.tagName.toLowerCase()===hd?o(e):s(e));let e=t.target?.closest?.(hd);e&&o(e)}});c.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`streaming`]});let l=e=>{let{path:t,line:i}=e.detail;n().then(e=>se(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(ud,l),()=>{c.disconnect(),t.removeEventListener(ud,l)}}var xd=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Bd,DOCK_TREE_STORAGE_KEY:()=>zd,attachWcWorkbench:()=>Ud,bootLeaderFloat:()=>Gd,makeSprinkleAttachImage:()=>Hd,prepareWcShell:()=>Dd,wireDockTreePersistence:()=>Vd,wireWcChipTips:()=>Pd,workspaceForSelection:()=>Td});function Sd(e){let{controller:t,held:n,jid:r,roster:i}=e,a=t?.stashQueued()??[];if(a.length===0)return;let o=i.find(e=>e.id===r),s=o?qn(i,o)?.id??o.id:r;n.set(s,[...n.get(s)??[],...a])}function Cd(e){let{controller:t,destination:n,held:r,previousJid:i,roster:a}=e;if(i&&i!==n&&Sd({controller:t,held:r,jid:i,roster:a}),a.some(e=>e.id===n))for(let e of[...r.keys()])a.some(t=>t.id===e)||r.delete(e);let o=r.get(n);o&&(r.delete(n),t?.restoreQueued(o))}function wd(e,t){let n=null,r=null;return{shownUnitId:()=>r,watch:i=>{r===i&&n||(n?.(),r=i,n=e().subscribe(i,e=>{e.type===`snapshot`&&r===i&&t(e.snapshot.messages,e.snapshot.queuedIds)}))}}}function Td(e){let{client:t,selectedId:n}=e,r=n===void 0?void 0:t.getScoop(n);return n!==void 0&&!r&&e.clearSelection(),hn(t.getScoops(),r)}function Ed(e){let{refs:t}=e,n=null,r=new Map;return{clear:()=>{n=null},getSelected:()=>n,holdQueue:()=>{let t=n?.id;t&&Sd({controller:e.controller(),held:r,jid:t,roster:e.client().currentUnits()})},selectScoop:i=>{let a=n?.id??null;n=i;let o=Yn(Vn(i)),s=e.host();Cd({controller:e.controller(),destination:i.id,held:r,previousJid:a,roster:e.client().currentUnits()});let c=e.lickBackpressure.get(i.id);e.controller()?.setLickBackpressure(c?.count??0,c?.waitingMs??0,Jn(i)),e.controller()?.setReadOnly(o),o||t.inputCard.removeAttribute(`disabled`),Wc(t,i,e.client().currentUnits(),s.getRecord?.bind(s),{skipModelPill:s.ownsModelPill===!0}),e.client().snapshot(i.id).catch(()=>void 0),e.watchUnit(i.id),e.controller()?.setProcessing(e.client().currentUnits().find(e=>e.id===i.id)?.state===`working`),t.switcher.hasAttribute(`attention`)||t.switcher.setAttribute(`attention`,i.id),e.wiring().refreshScoops?.(),e.workbench()?.refreshMemory(),e.workbench()?.refreshFiles(),s.onSelectionApplied?.()}}}function Dd(e,t){let n=x(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,urlState:!0}),r=null,i=null,a=No,o=null,s=()=>o??Q(g),c=new Map,l=!1,u=null,d=!1,f=new Set,p=wd(()=>s(),(e,t)=>{r?.loadMessages(e,t),fc(n.thread,e.length===0&&d),a.onSnapshotRendered?.(e)}).watch,m=Ed({client:s,controller:()=>r,host:()=>a,lickBackpressure:c,refs:n,watchUnit:p,wiring:()=>g,workbench:()=>u}),h=m.selectScoop,g={refs:n,statuses:new Map,fills:new Map,phases:new Map,turns:new Map,lickBackpressure:c,lastActivity:new Map,pendingUrlContext:n.thread.urlContext??null,getController:()=>r,getClient:()=>i,getSelected:()=>m.getSelected(),selectScoop:h,notifyReady:()=>{l=!0;for(let e of f)e()}};return{refs:n,wiring:g,setClient:e=>{i=e},setChatTransport:(e,t)=>{o=e,a=t},getChatHost:()=>a,selectScoop:h,getSelected:()=>m.getSelected(),clearSelection:()=>m.clear(),holdQueuedPile:()=>m.holdQueue(),watchUnit:p,getController:()=>r,setController:e=>{r=e},setActivateSurface:e=>{u=e;let t=new Set(n.dockTree.getSurfaceIds());for(let n of[`files`,`term`,`memory`,`monitor`])t.has(n)&&(l?e.activate(n):f.add(()=>e.activate(n)))},onClientReady:e=>{f.add(e),l&&e()},setRestoringSessions:e=>{d=e,fc(n.thread,e&&dc(n.thread))}}}function Od(e){let n=null;return()=>(n??=(async()=>{let[{createRemoteVfsClient:n},{createRemoteWritableVfsClient:r}]=await Promise.all([t(()=>import(`./remote-vfs-client-Cs1yUtQm.js`),__vite__mapDeps([78,38])),t(()=>import(`./writable-vfs-client-CQe6oZ75.js`),__vite__mapDeps([79,38]))]);return{reader:n({transport:e.getTransport()}),writer:r({transport:e.getTransport()})}})(),n)}function kd(e,n,r,i,a){e.onClientReady(()=>{i.intercept||t(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-CuZD2L7O.js`);return{wireWcOnboarding:e}},__vite__mapDeps([80,2,3,55,1,56,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58,64])).then(({wireWcOnboarding:t})=>t({client:n,getController:()=>e.getController(),openVfs:r,log:a})).then(e=>{i.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function Ad(e,t){let n=()=>{t.getSessionStats?.().then(t=>{if(!t)return;e.refs.floatbar.setAttribute(`spent`,t.totalCost.toFixed(2)),typeof t.burnRate==`number`&&Number.isFinite(t.burnRate)?e.refs.floatbar.setAttribute(`rate`,t.burnRate.toFixed(2)):e.refs.floatbar.removeAttribute(`rate`);let n=e.refs.floatbar;t.models&&(n.costModels=t.models),t.scoops&&(n.costScoops=t.scoops),n.budget=t.budget?{percent:t.budget.percent,status:t.budget.status,window:t.budget.window,resets:Et(t.budget.resetsAt)}:null,e.fills.clear();for(let n of t.fills)e.fills.set(n.jid,n.fill);e.refreshScoops?.()})};return setInterval(n,15e3),n}function jd(e,n,r){let i=n.standalone;i&&t(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-C2zfIRBm.js`);return{wireWcBrowser:e}},__vite__mapDeps([81,82,6,83,3,84,85,0,1,2,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,86])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:i.browser,log:r})).catch(e=>r.error(`WC browser overlay wiring failed`,e))}function Md(e){return{assistantLabel:e.assistantLabel,name:e.name,role:k(e)?`primary`:`child`}}function Nd(e){return()=>{e.triggerPlaceholder();let t=e.boot.getSelected()?.id;if(e.boot.wiring.awaitingInput=t??null,e.boot.wiring.refreshScoops?.(),e.boot.wiring.notifyScoopStateChanged?.(),e.refreshStats(),!t)return;e.boot.refs.switcher.setAttribute(`attention`,t);let n=e.boot.getController()?.getMessages().filter(e=>e.role===`assistant`).at(-1);n&&e.boot.wiring.lastActivity.set(t,ge(String(n.content??``),600))}}function Pd(e){let n=new Map,r=new Set;e.switcher.addEventListener(`pointerover`,i=>{let a=i.target?.closest?.(`.slicc-agent-tabs__segment`);if(!a||!e.switcher.contains(a))return;let o=a.dataset.k??``,s=e.getScoops().find(e=>e.jid===o);if(!s)return;let c=e.lastActivity.get(o)??``,l=n.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=Gn(Md(s)),!(!c||r.has(o))&&(r.add(o),(async()=>{try{let r=await(e.labelFn??(await t(async()=>{let{quickLabel:e}=await import(`./quick-llm-D46cR1qL.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39]))).quickLabel)({system:`One line for a hover tooltip: at most 14 words, present tense, no quotes, no trailing period.`,prompt:`Summarize what this agent has been doing.\nAgent: ${k(s)?`${Gn(Md(s))} (a main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});r&&(n.set(o,{activity:c,tip:r}),a.title=r)}finally{r.delete(o)}})())})}async function Fd(e,n,r,i){let{RemoteTerminalView:a}=await t(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-BvBX-VtU.js`);return{RemoteTerminalView:e}},__vite__mapDeps([87,2,29,3,61,41,42,22,48,1,88,47,46,89,90])),{fetchSecretEnvVars:o}=await t(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-z9SReONx.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([91,3,19,1,2,5,20,21,22,24,23,25,26,27])),s=await o(),c=new a({client:n,cwd:`/`,env:Object.keys(s).length>0?s:void 0});if(await new Promise(t=>e.onClientReady(t)),await c.mount(r),globalThis.__slicc_terminal_view=c,window.addEventListener(`beforeunload`,()=>c.dispose(),{once:!0}),new URLSearchParams(location.search).has(`wterm-image-demo`)){let e=await fetch(`/logos/sliccy-color-10scoops-128x128.png`);if(!e.ok)throw Error(`wterm demo image: HTTP ${e.status}`);let t=new Uint8Array(await e.arrayBuffer());await(await i()).writeFile(`/tmp/wterm-graphics-demo.png`,t);let n=await c.executeCommandInTerminal(`imgcat /tmp/wterm-graphics-demo.png`);if(n.exitCode!==0)throw Error(`wterm demo image: ${n.stderr}`)}}function Id(e,t,n){let r=t=>{if(t.startsWith(`freezer:`)){n(t.slice(8));return}let r=Bn(Q(e.wiring).currentUnits(),t);r&&r.id!==e.getSelected()?.id&&e.selectScoop(r)};e.refs.thread.addEventListener(`slicc-url-context`,e=>{let t=e.detail?.context;t&&r(t)});let i=e.wiring.pendingUrlContext;i?.startsWith(`freezer:`)&&e.onClientReady(()=>{e.wiring.pendingUrlContext===i&&(e.wiring.pendingUrlContext=null,r(i))})}function Ld(e,n,r,i){t(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-dmftxiz6.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([92,2,3,61])).then(async({installLeaderPermissionsSurface:i,installMountPendingConsumer:a})=>{let o=r.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await t(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-DwX67umy.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([93,2,22]));i({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:Rd(e,n)})}).catch(e=>i.warn(`WC permissions surface wiring failed`,e)),(r.standalone?.runtimeMode??`standalone`)!==`cherry`&&t(async()=>{let{installSecretRequestSurface:e}=await import(`./wc-secret-request-B4EOYPwa.js`);return{installSecretRequestSurface:e}},__vite__mapDeps([94,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,95])).then(({installSecretRequestSurface:e})=>e()).catch(e=>i.warn(`WC secret request surface wiring failed`,e))}function Rd(e,n){let r=null,i=()=>(r||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:r}=await t(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-DmE-iBjP.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([90,1])),i=new r({client:n,sid:`mount-drop-${Date.now()}`});return await i.open({cwd:`/workspace`}),i})().catch(e=>{throw r=null,e}),r);return async e=>(await i()).exec(e)}var zd=`slicc-dock-tree:default`,Bd={zones:{top:null,left:{type:`leaf`,surfaceId:`chat`},middle:null,right:null,bottom:null},rowFr:{top:1,center:1,bottom:1},colFr:{left:3,middle:1,right:1}};function Vd(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(zd,JSON.stringify(e))}catch{}};n.addEventListener(`dock-tree-change`,e=>{i(e.detail?.tree)}),n.addEventListener(`dock-tree-resize`,e=>{i(e.detail?.tree)});try{let e=localStorage.getItem(zd);r.setTree(e?JSON.parse(e):Bd)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Bd)}}function Hd(e,t){return(n,r,i)=>{let a=e.getAttachStage();if(!a){t.warn(`sprinkle attachImage dropped: composer stage not ready yet`);return}let o=n.match(/^data:(image\/[^;]+);base64,([A-Za-z0-9+/=]+)$/),s=o?o[2]:n,c=o?o[1]:i??`image/png`,l=c.split(`/`)[1]?.replace(`jpeg`,`jpg`).replace(`svg+xml`,`svg`)??`png`,u=r??`annotation-${Date.now()}.${l}`;a.add({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:u,mimeType:c,size:Math.floor(s.length*3/4),kind:`image`,data:s})}}function Ud(e,n,r,i,a,o={}){t(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-fIEX0Fr7.js`).then(e=>e.Q);return{initTimestampPreference:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:s}=e;e.setClient(n),t(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CwPIBqJE.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([96,1,97,3])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),t(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{applyThemeOverrides:e}},__vite__mapDeps([97,1,3])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let c=_e(`panel-layouts`);s.dockTree.tilesMovable=c,c||Vd(s,a);let l=null,u=Ad(e.wiring,n),d=()=>l?.(),f=i.welcome??{intercept:null},p=Q(e.wiring),{agentHandle:m}=r;e.onClientReady(u);let h=Od(n),_=async()=>(await h()).reader;o.standalone?.runtimeMode!==`cherry`&&o.standalone?.runtimeMode!==`hosted-leader`?kd(e,n,h,f,a):f.intercept=Tc({openVfs:async()=>(await h()).writer,log:a});let v=Kc({boot:e,client:n,setRefreshPlaceholder:e=>{l=e},triggerPlaceholder:d,openReader:_,openWriter:async()=>(await h()).writer,log:a});i.setAttachmentSource(()=>v.getAttachStage()?.take()),i.setTurnIdleHook(Nd({boot:e,triggerPlaceholder:d,refreshStats:u})),Pd({switcher:s.switcher,getScoops:()=>n.getScoops(),lastActivity:e.wiring.lastActivity}),jd(e,o,a),t(async()=>{let{installWcComputers:e}=await import(`./wc-computers-D3xFwdpr.js`);return{installWcComputers:e}},__vite__mapDeps([85,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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,86])).then(({installWcComputers:e})=>e({openFs:_,log:a})).catch(e=>a.error(`WC computers wiring failed`,e)),Ld(e,n,o,a);let y=Ku({fileTree:s.fileTree,termSurface:s.termSurface,memoryHost:s.memoryHost,monitor:s.monitor,openFs:_,openWriter:async()=>(await h()).writer,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>Il({client:n,openReader:_,storage:window.localStorage}),getWorkspace:()=>Td({client:n,clearSelection:e.clearSelection,selectedId:e.getSelected()?.id}),mountTerminal:t=>Fd(e,n,t,async()=>(await h()).writer),insertReference:e=>{let t=s.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:a});e.setActivateSurface(y),c&&t(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-CHcICs0K.js`);return{panelizeShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100])).then(({panelizeShell:e})=>e(s,void 0,void 0,{onToolPanelActivate:e=>y.activate(e),onToolPanelDeactivate:e=>y.deactivate(e)})).catch(e=>a.error(`panelize failed — keeping the classic shell`,e)),yd({thread:s.thread,openFs:_,log:a}),g(s.thread,_),s.floatbar.addEventListener(`click`,()=>{let e=s.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let b=Cl({refs:s,openVfs:h,client:n,getUnits:()=>p.currentUnits(),getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,holdQueuedPile:e.holdQueuedPile,log:a}),{refreshFreezer:x,openFrozen:S,getViewedFrozenSessionId:ee}=b;if(x(),e.onClientReady(x),_e(`multiple-cones`)){let t=Cc({freezer:s.freezer,client:n,getSelected:()=>e.getSelected(),getUnits:()=>p.currentUnits(),selectScoop:e.selectScoop,freezeCone:b.freezeCone,log:a});e.wiring.refreshConeActions=t.refresh,e.onClientReady(t.refresh)}Id(e,n,S),e.onClientReady(()=>{h().then(async({reader:e,writer:n})=>{let{loadShortcutConfig:r}=await t(async()=>{let{loadShortcutConfig:e}=await import(`./wc-shortcut-config-BDxnaOQ1.js`);return{loadShortcutConfig:e}},__vite__mapDeps([101,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await r({reader:e,writer:n,apply:({keymap:e,trigger:t})=>{s.shortcuts.setKeymap(e),s.shortcuts.setTrigger(t)}})}).catch(e=>a.warn(`WC shortcut config load failed`,e))}),h().then(async({reader:e})=>{let{installPreviewVfsResponder:n}=await t(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Vn6wxJvK.js`);return{installPreviewVfsResponder:e}},[]);n({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:a})}).catch(e=>a.warn(`WC page-VFS support wiring failed`,e)),h().then(async({reader:r,writer:i})=>{let{createRemoteSprinkleVfs:c}=await t(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-UzNBy5VJ.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([102,38,103,104])),l=(await t(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-CHcICs0K.js`);return{getPanelizedShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100]))).getPanelizedShell(),{wireWcSprinkles:u}=await t(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-DUpa4cWM.js`);return{wireWcSprinkles:e}},__vite__mapDeps([105,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,106,64])),d=await u({refs:s,client:n,getUnits:()=>p.currentUnits(),getSelected:()=>e.getSelected(),selectScoop:t=>e.selectScoop(t),interceptWelcomeLick:e=>f.intercept?.(e)??!1,fs:c({reader:r,writer:i}),instanceId:o.instanceId,onAttachImage:Hd(v,a),onToolPanelActivate:e=>y.activate(e),onToolPanelDeactivate:e=>y.deactivate(e),hostSprinkleSurface:l?(e,t)=>l.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:l?e=>l.removeSprinkleSurface(e):void 0,log:a});e.onClientReady(()=>void d.resync());let{getPanelizedShell:g}=await t(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-CHcICs0K.js`);return{getPanelizedShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100])),b=g();if(b){let e=c({reader:r,writer:i});b.attachFs(e);let{registerAgentPanels:n}=await t(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-CKJsRdkX.js`);return{registerAgentPanels:e}},__vite__mapDeps([107,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await n(e).catch(e=>a.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await t(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:n}=await t(async()=>{let{applyLayout:e}=await import(`./apply-layout-CchSfN26.js`);return{applyLayout:e}},__vite__mapDeps([108,105,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,106,64]));e(e=>n(d.zone,e))}if(o.standalone&&o.instanceId){let{wireWcTray:r}=await t(async()=>{let{wireWcTray:e}=await import(`./wc-tray-BY31Fswm.js`);return{wireWcTray:e}},__vite__mapDeps([109,10,11,2,9,12,13,14,1,15,16,3,0,4,5,6,7,8,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,82,110,111,112,61,48,47,113,46,89,77,96,97,57,114,64,115,116,117,55,56,58,104,90,69,84,118,66,119,120,106])),i=d.zone.callbacks(),c=await r({refs:s,client:n,browser:o.standalone.browser,realCdpTransport:o.standalone.realCdpTransport,instanceId:o.instanceId,runtimeMode:o.standalone.runtimeMode,sprinkleManager:d.manager,addSprinkle:(e,t,n)=>i.addSprinkle(e,t,n),removeSprinkle:e=>i.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.id??`cone`,agentHandle:m,workUnits:p,restoreLocalChrome:()=>{e.wiring.refreshScoops?.();let t=e.getSelected();t&&Wc(s,t,p.currentUnits(),e=>n.getScoop(e))},openFs:_,openWriter:async()=>(await h()).writer,window,log:a,kernelReadyDeadline:o.kernelReadyDeadline});e.wiring.notifyScoopStateChanged=()=>c.scheduleScoopsListBroadcast(),e.wiring.notifyUnitStatus=(e,t)=>c.broadcastUnitStatus(e,t===`processing`?`processing`:`ready`)}}).catch(e=>a.error(`WC sprinkle/tray wiring failed`,e));{let t=new sr(new xr),r=jr(new tc({collection:{listScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getAgentMessages:()=>null,loadPersistedSessions:()=>t.loadAgentSessions(),loadUiChatSessions:()=>t.loadChatSessions(),wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:cc(),snapshotStore:{read:async e=>{let{reader:t}=await h();return Wi(t,e)},write:async(e,t,n)=>{let{writer:r}=await h();return Vi(r,e,t,n)},discardIfUnindexed:async e=>{let{writer:t}=await h();return Ui(t,e)}},vfs:{readFile:async(e,t)=>(await h()).reader.readFile(e,t),readDir:async e=>(await h()).reader.readDir(e),stat:async e=>(await h()).reader.stat(e)},getActiveSessionInfo:()=>{let t=Kn(Q(e.wiring).currentUnits());return{id:t?.id??`session-${Date.now()}`,title:t?.name??`Active Session`}},version:`6.248.2`}));window.addEventListener(`unload`,r,{once:!0})}let te=!1,C=()=>te?Promise.resolve():(te=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:n,downloadTranscriptBlob:r}]=await Promise.all([t(()=>Promise.resolve().then(()=>kr),void 0),t(()=>import(`./wc-transcript-export-r0Cw8Qpa.js`),__vite__mapDeps([121,2,110,115,116,1]))]),i=ee(),a=i==null?{kind:`active`}:{kind:`frozen`,sessionId:i},o=await e().export(a,{}),{filename:s}=o;await r(await n(o),s)}catch(e){a.error(`Transcript export failed`,e),t(async()=>{let{showTranscriptExportFailure:e}=await import(`./wc-transcript-export-r0Cw8Qpa.js`);return{showTranscriptExportFailure:e}},__vite__mapDeps([121,2,110,115,116,1])).then(({showTranscriptExportFailure:t})=>t(e)).catch(e=>a.error(`Transcript export notice failed`,e))}finally{te=!1}})());if(t(async()=>{let{wireWcNav:e}=await import(`./wc-nav-DaPUjCh_.js`);return{wireWcNav:e}},__vite__mapDeps([122,2,18,22,57,58,1,55,56,3,8,9,10,11,12,13,14,15,16,17,19,5,20,21,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,69,64,106])).then(({wireWcNav:e})=>e({refs:s,client:n,workUnits:p,getUnits:()=>p.currentUnits(),log:a,onExportTranscript:C,shortcuts:s.shortcuts,persistKeyboardTrigger:async e=>{let{writer:n,reader:r}=await h(),{writeShortcutTrigger:i}=await t(async()=>{let{writeShortcutTrigger:e}=await import(`./wc-shortcut-config-BDxnaOQ1.js`);return{writeShortcutTrigger:e}},__vite__mapDeps([101,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await i({reader:r,writer:n},e)}})).catch(e=>a.error(`WC nav wiring failed`,e)),t(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-BG6t0naa.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([123,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,61,75,76,77,124])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=s.composer;t(o.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>a.error(`WC push-to-talk wiring failed`,e)),t(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-BoErE_TJ.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([74,2,3,22,75,76,0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,77])).then(({setSpeakAssetsInstanceId:e})=>e(o.instanceId)).catch(e=>a.error(`WC say warmup wiring failed`,e)),o.standalone)return()=>{t(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-CnoNDTuz.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await h()).writer,onComplete:e=>{x(),e.attempted>0&&n.reloadSkills()}})).catch(e=>a.warn(`Pending session catch-up scheduling failed`,e))}}function Wd(e){let n=!1,r=()=>t(()=>import(`./boot-stall-overlay-Cs-FNlf8.js`),[]);return{onBootProgress:t=>{n=!0,r().then(n=>n.showBootStage(e,t))},onReadyStall:t=>{n=!0,r().then(n=>n.showBootStallOverlay(e,t))},dismiss:()=>{n&&r().then(t=>{t.removeBootStallOverlay(e),t.removeBootStage(e)})}}}async function Gd(e,n,r=`standalone`){let{browser:i,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await Ct({runtimeMode:r,envBaseUrl:null,window,log:n}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await t(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await Promise.resolve().then(()=>eu);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},void 0),h=r===`standalone`?await m():f(r),g=p(h);o&&xt(o);let{syncFsBridgeEnabled:_,syncFsChannelNonce:v}=Rl(),y=Wd(document),b,x,{boot:S}=await lu(e,n,{floatKind:h,floatLabel:g,connect:e=>{b=Jo({realCdpTransport:a,reconnectCdp:()=>i.reconnectIfNeeded(),instanceId:o,makeClient:t=>new Ao(Oc(e.wiring),t),localApiBaseUrl:s,bridgeToken:c,syncFsBridgeEnabled:_,syncFsChannelNonce:v,localLickWsUrl:l,extensionDelegateId:u,flagFloat:r,onWorkerScriptError:()=>{St()},onBootProgress:y.onBootProgress,onReadyStall:y.onReadyStall,onLateReady:()=>{St()}}),Io({send:e=>b.client.sendRaw(e)}),d?.(b.client);let t=Mo(b.client);return{client:Q(e.wiring),host:t,workbench:(e,s)=>{x=Ud(e,b.client,s,t,n,{instanceId:o,standalone:{browser:i,floatKind:h,realCdpTransport:a,runtimeMode:r},kernelReadyDeadline:{pause:()=>b.pauseReadyDeadline(),restart:()=>b.restartReadyDeadline()}})}}}});S.setRestoringSessions(!0);let{setupSudoStandalone:ee}=await t(async()=>{let{setupSudoStandalone:e}=await import(`./main-DfG-7olk.js`).then(e=>e.c);return{setupSudoStandalone:e}},__vite__mapDeps([55,1,56,2,3,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));await ee({log:n});try{await b.ready}finally{y.dismiss()}S.wiring.notifyReady?.(),S.setRestoringSessions(!1),globalThis.__slicc_kernel_ready=!0,n.info(`WC live shell ready`,{scoops:b.client.getScoops().length}),x?.();let{consumeAutoPrompt:te}=await t(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),C=te(window.location.search);C&&(S.getController()?.sendUserMessage(C),n.info(`Auto-prompt submitted`,{length:C.length}))}export{Qa as A,Hi as B,Ao as C,Ya as D,oo as E,Zi as F,sr as G,Nr as H,wa as I,Xi as L,eo as M,ro as N,no as O,ao as P,Ja as R,Mo as S,so as T,kr as U,Zr as V,xr as W,Ac as _,zl as a,Q as b,kl as c,Nl as d,Jc as f,jc as g,kc as h,Bl as i,to as j,io as k,Tl as l,Vc as m,xd as n,El as o,qc as p,lu as r,jl as s,Ud as t,Ol as u,Mc as v,ho as w,Fo as x,Oc as y,Sa as z};
|
|
248
|
+
`}function Yl(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var Xl=class e{#e;#t;#n;#r;#i;#a=null;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y=[];#b=[];#x=null;#S=new Map;#C=null;#w=null;#T=``;#E=null;#D=null;#O=!1;#k=`thinking`;#A=0;#j=null;#M=new Set;#N=new Map;#P=new Map;#F=new Set;#I=!1;#L=null;constructor(e){this.#e=e.thread,this.#t=e.agent,this.#n=e.onProcessingChange,this.#r=e.onBusyPhaseChange,this.#i=e.onToolProgressChange,this.#o=e.onMessageRendered,this.#s=e.onMessageDisposed,this.#c=e.onTurnComplete,this.#l=e.resolveTelemetryContext,this.#u=e.onQueuedChange,this.#d=e.onLickBackpressureChange,this.#f=e.onQueuedCancel,this.#p=e.onToolUiAction,this.#m=e.readOnlyToolUi??!1,this.#h=e.agent.onEvent(e=>this.#J(e)),this.#v=e=>this.#ge(e),this.#e.addEventListener(`slicc-error-retry`,this.#v)}dispose(){this.#h(),this.#e.removeEventListener(`slicc-error-retry`,this.#v);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me()}setReadOnly(e){if(this.#I!==e&&(this.#I=e,e))for(let e of[...this.#N.keys()])this.#he(e)}get readOnly(){return this.#I}get processing(){return this.#O}getMessages(){return this.#y.map(e=>({...e}))}setAgent(e){this.#h(),this.#t=e,this.#h=e.onEvent(e=>this.#J(e))}setOnLocalUserMessage(e){this.#g=e}setOnLocalProcessingChange(e){this.#_=e}addUserMessage(e,t,n){this.#ye({id:$(),role:`user`,content:e,timestamp:Date.now(),...n?{source:n}:{}})}getQueuedMessages(){return this.#b.map(Yl)}removeQueuedMessage(e){let t=this.#b.filter(t=>t.id!==e);t.length!==this.#b.length&&(this.#b=t,this.#B())}stashQueued(){let e=this.#L??[];this.#L=null;let t=this.#b;return t.length===0?e:(this.#b=[],this.#B(),[...e,...t])}restoreQueued(e){this.#L=e.length>0?[...e]:null}heldBackendPendingIds(e){if(!this.#L||!e?.length)return new Set;let t=new Set(e);return new Set(this.#L.filter(e=>t.has(e.id)).map(e=>e.id))}#R(e,t){if(!this.#L)return;let n=this.heldBackendPendingIds(t),r=new Set(e.map(e=>e.id)),i=this.#L.filter(e=>!r.has(e.id)||n.has(e.id));if(this.#L=null,i.length===0)return;if(!t){this.#b=i,this.#B();return}let a=new Map(t.map((e,t)=>[e,t])),o=i.filter(e=>a.has(e.id)).sort((e,t)=>(a.get(e.id)??0)-(a.get(t.id)??0)),s=i.filter(e=>!a.has(e.id));if(this.#b=this.#O?o:[...o,...s],this.#B(),this.#O)for(let e of s)this.#ye(e)}#z(){if(this.#b.length===0)return;let e=this.#b;this.#b=[];for(let t of e)this.#ye(t);this.#B()}#B(){this.#u?.(this.#b.map(Yl))}#V(){this.#d?.(this.#x)}setLickBackpressure(e,t,n){if(e<=0){if(!this.#x)return;this.#x=null,this.#V();return}this.#x={text:`${e} events waiting for the current turn`},this.#V();try{ot(n,t)}catch{}}addAssistantMessage(e){this.#ye({id:$(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e,t){for(let e of this.#S.keys())this.#s?.(e);for(let e of[...this.#N.keys()])this.#he(e);this.#P.clear(),this.#F.clear(),this.#me();let n=this.#b.length>0;if(this.#b.length>0){if(this.#f)for(let e of this.#b)try{this.#f(e.id)}catch(e){console.error(`onQueuedCancel hook threw`,e)}this.#b=[]}n&&this.#B();let r=this.heldBackendPendingIds(t),i=r.size>0?e.filter(e=>!r.has(e.id)):e;this.#y=de(i);let a=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=a?.id??null,a&&(this.#w=a.id),this.#Q(),this.#S.clear();let o=[],s=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==s&&(o.push(d(e.timestamp)),s=t);let n=this.#ve(e);this.#S.set(e.id,n),o.push(...n)}let c=this.#e;typeof c.replaceContent==`function`?c.replaceContent(...o):c.replaceChildren(...o),this.#Ce();for(let e of this.#y)this.#o?.(e,this.#S.get(e.id)??[]);this.#q(),this.#Te(),this.#H(),this.#R(e,t)}#H(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!yt()||this.#O)return;let e=this.#y[this.#y.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#ge(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#U(r):r,a={id:$(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#O&&!n?.steer?(this.#b.push(a),this.#B()):this.#ye(a),n?.steer?this.#t.sendMessage(i,a.id,a.attachments,{steer:!0}):this.#t.sendMessage(i,a.id,a.attachments),this.#W();try{let e=n?.dictation?m(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#U(e){return oe(e,C())}#W(){if(this.#l)try{let e=this.#l();if(!e)return;lt(e.scoopName,e.model)}catch{}}addLickMessage(e,t,n,r,i){let a=this.#y[this.#y.length-1];if(!(i||a?.lickId)&&a&&a.source===`lick`&&a.channel===n){a.lickParts=[...a.lickParts??[a.content],t],a.lickCount=a.lickParts.length,a.content+=`\n\n${t}`,this.#be(a);return}this.#ye({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#O?!0:void 0})}updateLickState(e,t){let n=this.#y.find(t=>t.lickId===e);n&&(n.lickState=t,this.#be(n))}setProcessing(e){if(this.#O!==e){this.#O=e,e&&(this.#w=null),e&&(this.#A=0,this.#G(`thinking`)),e&&this.#z(),e||(this.#x&&(this.#x=null,this.#V()),this.#q()),this.#n?.(e);try{this.#_?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#K()}}#G(e){this.#k!==e&&(this.#k=e,this.#r?.(e))}#K(){let e=this.#w;if(this.#w=null,!this.#c)return;let t=e?this.#_e(e):null;this.#c(t?{...t}:null)}#q(){let e=this.#y[this.#y.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#j?.remove();return}this.#j??=Kl({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#j)}#J(e){switch(e.type){case`message_start`:this.#Y(e.messageId);break;case`content_delta`:this.#X(e.messageId,e.text);break;case`content_done`:this.#$(e.messageId,e.model,e.usage);break;case`tool_use_start`:this.#te(e.messageId,e.toolName,e.toolInput,e.toolCallId);break;case`tool_result`:this.#re(e.messageId,e.toolName,e.result,e.isError,e.toolCallId);break;case`tool_ui`:this.#le(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#ue(e.requestId);break;case`tool_progress`:this.#de(e.messageId,e.toolName,e.progress,e.toolCallId);break;case`turn_end`:this.#oe(e.messageId);break;case`compaction_notice`:this.#ie(e.messageId,e.marker);break;case`error`:this.#se(e.error,e.endTurn!==!1)}}#Y(e){this.setProcessing(!0),this.#C=e,this.#w=e,this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#X(e,t){this.#_e(e)&&(this.#E!==e&&this.#Z(),this.#E=e,this.#T+=t,this.#D??=requestAnimationFrame(()=>this.#Z()))}#Z(){let e=this.#E,t=this.#T;this.#Q();let n=t&&e?this.#_e(e):void 0;n&&(n.content+=t,this.#be(n))}#Q(){this.#D!==null&&cancelAnimationFrame(this.#D),this.#D=null,this.#T=``,this.#E=null}#$(e,t,n){let r=this.#_e(e);r&&(t&&(r.model=t),n&&(r.usage=n),this.#E===e&&(r.content+=this.#T,this.#Q()),r.isStreaming=!1,this.#be(r))}static#ee(e,t){return`${e}:${t}`}#te(t,n,r,i){let a=this.#_e(t);if(!a)return;a.toolCalls=a.toolCalls??[];let o=i?e.#ee(t,i):$();this.#F.add(o),a.toolCalls.push({id:o,name:n,input:r}),this.#A+=1,this.#G(`tool`),this.#be(a)}#ne(t,n,r){let i=t?.toolCalls??[];if(r){let n=t?e.#ee(t.id,r):void 0;return i.find(e=>e.id===n)??i.find(e=>e.id===r)}return[...i].reverse().find(e=>e.name===n&&e.result===void 0)}#re(e,t,n,r,i){let a=this.#_e(e),o=this.#ne(a,t,i);!a||!o||(o.result=n,o.isError=r,o.id&&(this.#P.delete(o.id),this.#me()),this.#A=Math.max(0,this.#A-1),this.#A===0&&this.#G(`thinking`),this.#be(a))}#ie(e,t){let n=this.#_e(e);if(t.state===`discarded`){n&&this.#ae(n);return}if(n){n.compaction=t,this.#be(n);return}this.#ye({id:e,role:`assistant`,content:``,timestamp:Date.now(),compaction:t})}#ae(e){this.#Se(),this.#s?.(e.id);for(let t of this.#S.get(e.id)??[])t.remove();this.#S.delete(e.id),this.#y=this.#y.filter(t=>t!==e),this.#Ce(),this.#pe()}#oe(e){let t=this.#_e(e);t?.isStreaming&&(t.isStreaming=!1,this.#be(t)),this.#C=null,this.setProcessing(!1)}#se(e,t=!0){t&&this.setProcessing(!1),this.#ye({id:$(),role:`assistant`,content:typeof e==`string`?e:ct(e)??``,timestamp:Date.now(),error:!0}),this.#ce(e)}#ce(e){try{let t=typeof e==`string`?e:st(e);if(typeof t==`string`&&ut(t))return;dt(`error-card`,e)}catch{}}#le(e,t,n){if(this.#I)return;this.#he(t);let r=document.createElement(`div`);if(r.className=`msg__dip`,r.setAttribute(`data-tool-ui-request`,t),(this.#e.inner??this.#e).append(r),this.#m){let e=B(r,Jl(n),()=>{},!1);this.#N.set(t,{instance:e,container:r});return}let i=B(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#N.set(t,{instance:i,container:r}),this.#p?.(t,at,void 0)}#ue(e){this.#he(e)}#de(e,t,n,r){let i=this.#_e(e),a=this.#ne(i,t,r);a?.id&&(n.phase===`end`?this.#P.delete(a.id):this.#P.set(a.id,n),this.#fe(a.id),this.#me())}#fe(e){let t=this.#e.querySelector(`slicc-action-row[data-tool-id="${CSS.escape(e)}"]`);t&&h(t,this.#P.get(e)??null),this.#pe()}#pe(){let e=this.#e.querySelectorAll(`slicc-tool-cluster`);for(let t of e){let e=[...t.querySelectorAll(`slicc-action-row[data-tool-id]`)].filter(e=>e.dataset.toolId&&this.#F.has(e.dataset.toolId)).map(e=>{let t=e.dataset.toolId,n=e.getAttribute(`result`);return{done:n!==null&&n!==`…`,fraction:this.#P.get(t)?.fraction}});fe(t,le(e))}}#me(){let e=null,t=[...this.#P.values()];t.length>0&&t.every(e=>typeof e.fraction==`number`)&&(e=t.reduce((e,t)=>e+t.fraction,0)/t.length),e!==this.#a&&(this.#a=e,this.#i?.(e))}#he(e){let t=this.#N.get(e);if(t){this.#N.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#ge(e){if(this.#O)return;let t=e.detail?.messageId??null,n=this.#y.length;if(t){let e=this.#y.findIndex(e=>e.id===t);e>=0&&(n=e)}let r=n>0?this.#y[n-1]:void 0;if(r&&r.source===`lick`&&!r.queued){this.#t.sendMessage(r.content,$(),r.attachments);return}let i;for(let e=n-1;e>=0;e--){let t=this.#y[e];if(t.role===`user`&&t.source!==`lick`&&t.source!==`delegation`&&!t.queued){i=t;break}}i&&this.#t.sendMessage(i.content,$(),i.attachments)}#_e(e){return this.#y.find(t=>t.id===e)}#ve(e){try{return a(e,{readOnly:this.#I})}catch(t){console.error(`[wc-chat] message render failed — degrading to plain bubble`,t);let n=document.createElement(e.role===`assistant`?`slicc-agent-message`:`slicc-user-message`);return n.setAttribute(`text`,String(e.content??``)),[n]}}#ye(e){this.#Se(),this.#y.push(e);let t=this.#ve(e);this.#S.set(e.id,t),this.#e.append(...t),this.#Ce(),this.#o?.(e,t),e.role===`user`?this.#Te():this.#Ee()}#be(e){this.#Se();let t=this.#S.get(e.id)??[],n=this.#ve(e),r=t[0]??null,i=r?.parentNode;if(i)for(let e of n)i.insertBefore(e,r);else this.#e.append(...n);this.#S.set(e.id,n),this.#o?.(e,n);for(let e of t)e.remove();for(let t of e.toolCalls??[])t.id&&this.#P.has(t.id)&&this.#fe(t.id);this.#Ce(),this.#pe(),this.#Ee()}#xe(){return this.#e.inner??this.#e}#Se(){f(this.#xe(),this.#M)}#Ce(){ue(this.#xe(),{openClusterAnchors:this.#M,toolCallLookup:(e,t)=>this.#we(e,t)})}#we(e,t){return this.#y.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#Te(){this.#e.scrollTop=this.#e.scrollHeight}#Ee(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#Te()}};function Zl(e,n,r,i,a,o){let s=new Map;t(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e}},__vite__mapDeps([71,2])).then(({loadDipStyles:e})=>e()).catch(()=>void 0);let c=[];r.subscribeList(e=>{c=e});let l=()=>n.addressableUnitId?n.addressableUnitId():i()?.id??null,u=Bl(r,{getSelectedId:l,onError:e=>n.emitAgentError(e),onEvent:e=>n.onAgentEvent(e)});u.onEvent(n=>{(n.type===`tool_use_start`||n.type===`tool_result`)&&(n.type===`tool_result`&&n.isError&&e.switcher.glower(),t(async()=>{let{playCue:e}=await import(`./soundscape-CQ9qZd-p.js`);return{playCue:e}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({playCue:e})=>e(n.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let d=new Xl({thread:e.thread,agent:u,resolveTelemetryContext:()=>{let e=i();if(!e)return null;let t=Jn(e);try{let n=Hn(c,e.id);return{scoopName:t,model:(n?Ae(n.id,n.provider):Me()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{n.speaksReplies&&t(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-CaYhBRdn.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([73,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,74,75,76,77])).then(async({consumeVoiceSubmission:n,speakReplyMarkdown:r})=>{if(!n())return;let{endVoiceTurn:i,setTtsActive:a}=await t(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-CQ9qZd-p.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));try{if(e?.content){a(!0);try{await r(e.content)}finally{a(!1)}}}finally{i()}}).catch(()=>void 0)},onProcessingChange:t=>{e.frame.toggleAttribute(`data-processing`,t),e.inputCard.querySelector(`slicc-send-button`)?.toggleAttribute(`busy`,t),t||a?.()},onBusyPhaseChange:t=>{e.inputCard.querySelector(`slicc-send-button`)?.setAttribute(`phase`,t)},onToolProgressChange:t=>{let n=e.inputCard.querySelector(`slicc-send-button`);n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,t.toFixed(3)))},onMessageDisposed:e=>{let t=s.get(e);t&&(Si(t),s.delete(e))},onMessageRendered:(e,t)=>{let r=s.get(e.id),i=t[0];if(!i){r&&Si(r),s.delete(e.id);return}n.onMessageRendered?.(i);let a=l()??void 0;s.set(e.id,xi(i,(e,t)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:t}};o?.intercept?.(r)||n.sendSprinkleLick(`inline`,{action:e,data:t},void 0,a)},{previous:r,streaming:e.isStreaming===!0}))},onQueuedChange:t=>e.queuedStack.setMessages(t),onLickBackpressureChange:t=>{e.lickBackpressureNotice.textContent=t?.text??``,e.lickBackpressureNotice.toggleAttribute(`hidden`,t===null)},onToolUiAction:(e,t,r)=>{n.sendToolUiAction(e,t,r)},onQueuedCancel:e=>{let t=i()?.id;t&&n.deleteQueuedMessage(t,e).catch(()=>void 0)},...n.readOnlyToolUi?{readOnlyToolUi:!0}:{}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let t=e.detail?.id;if(!t)return;d.removeQueuedMessage(t);let r=i()?.id;r&&n.deleteQueuedMessage(r,t).catch(()=>void 0)}),Ul(e.thread,(e,t,r,i)=>n.sendSprinkleLick(e,t,r,i),l),{controller:d,agentHandle:u}}function Ql(e,t){let n=new zl,r=()=>{let r=t.currentUnits(),a=e.getSelected()?.id;e.refs.switcher.scoops=Rn(r,a,i,n.sync(r,a)),e.refreshConeActions?.()};return e.refreshScoops=r,t.subscribeList(()=>r()),r}function $l(e,n,r){let{refs:i}=e;e.setChatTransport(n,r);let{controller:a,agentHandle:o}=Zl(i,r,n,()=>e.getSelected(),r.onTurnIdle,r.welcome);e.setController(a);let s=Ql(e.wiring,n);return i.switcher.addEventListener(`slicc-scoop-select`,t=>{let r=t.detail?.key,i=n.currentUnits().find(e=>e.id===r);i&&i.id!==e.getSelected()?.id&&e.selectScoop(i)}),i.switcher.setAttribute(`gaze-target`,`slicc-input-card`),i.inputCard.addEventListener(`input`,()=>{i.switcher.scrutinize(),i.switcher.wake()}),i.inputCard.addEventListener(`submit`,n=>{let o=ne(n),s=r.takeAttachments?.();if(!o&&!s?.length)return;e.wiring.awaitingInput=null,e.wiring.refreshScoops?.(),e.wiring.notifyScoopStateChanged?.();let c=n.detail?.source===`dictation`;c&&r.speaksReplies&&(t(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-CaYhBRdn.js`);return{markVoiceSubmission:e}},__vite__mapDeps([73,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,74,75,76,77])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),t(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-CQ9qZd-p.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([72,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),a.sendUserMessage(o??``,s,{dictation:c,steer:p(n)}),i.inputCard.clear?.();let l=e.getSelected()?.id;l&&(i.switcher.setAttribute(`attention`,l),e.wiring.lastActivity.set(l,ge(o??``,600)))}),i.inputCard.addEventListener(`stop`,()=>{e.getController()?.processing&&o.stop()}),{agentHandle:o,controller:a,publishStrip:s}}var eu=e({floatKindForRuntimeMode:()=>ru,floatLabelForKind:()=>nu,resolveStandaloneFloatKind:()=>iu}),tu={"slicc-server":`sliccstart`,"slicc-node-server":`npx`};function nu(e){return u(e)}function ru(e){switch(e){case`extension`:case`extension-detached`:return`extension`;case`cherry`:return`cherry`;case`hosted-leader`:return`hosted`;case`electron-overlay`:return`electron`;case`follower`:return`standalone`;default:return`standalone`}}async function iu(e){let t=e?.fetchFn??fetch,n=e?.timeoutMs??1500;try{let e=new AbortController,r=setTimeout(()=>e.abort(),n),i=await t(tt(`/api/status`),{cache:`no-store`,signal:e.signal,headers:nt()}).finally(()=>clearTimeout(r));if(await $e(i),!i.ok)return`standalone`;let a=await i.json();return(a.service?tu[a.service]:void 0)??`standalone`}catch(e){if(et(e))throw e;return`standalone`}}function au(e,t){let n=t.label??nu(t.floatKind);e.setAttribute(`label`,n),e.setAttribute(`float-kind`,t.floatKind);let r=rn(),i=mt(),a=()=>{let t=ou(r,i);e.setAttribute(`connection`,t.connection),t.trayRole===`none`?e.removeAttribute(`tray-role`):e.setAttribute(`tray-role`,t.trayRole)},o=tn(e=>{r=e,a()}),s=ft(e=>{i=e,a()});return a(),()=>{o(),s()}}function ou(e,t){return e.state===`inactive`?t.state===`inactive`?{connection:`offline`,trayRole:`none`}:{connection:cu(t),trayRole:`follower`}:{connection:su(e),trayRole:`leader`}}function su(e){switch(e.state){case`connecting`:return`connecting`;case`leader`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}function cu(e){if(e.stalled)return`stalled`;switch(e.state){case`connecting`:return`connecting`;case`connected`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}async function lu(e,t,n){let r=n.floatLabel??nu(n.floatKind),i=Dd(e,r);au(i.refs.floatbar,{floatKind:n.floatKind,label:r});let a=await n.connect(i),o=$l(i,a.client,a.host);return await a.workbench?.(i,o),t.info(`WC shell mounted`,{floatKind:n.floatKind}),{boot:i,chat:o}}var uu=36e5,du=2e3,fu=class{#e=[];#t;#n;constructor(e=uu,t=du){this.#t=Math.max(1,Math.floor(e)),this.#n=Math.max(2,Math.floor(t))}get windowMs(){return this.#t}push(e){this.#e.push(e);let t=e.at-this.#t;for(;this.#e.length>0&&this.#e[0].at<t;)this.#e.shift();for(;this.#e.length>this.#n;)this.#e.shift()}get size(){return this.#e.length}series(e){if(!(this.#e.length<2))return{points:this.#e.map(t=>({at:t.at,value:t[e]})),windowMs:this.#t}}peak(e){return this.#e.length===0?null:this.#e.reduce((t,n)=>Math.max(t,n[e]),-1/0)}windowLabel(){if(this.#e.length<2)return null;let e=this.#e[this.#e.length-1].at-this.#e[0].at,t=Math.max(1,Math.round(e/1e3));if(t<90)return`last ${t}s`;let n=Math.round(t/60);return n<90?`last ${n}m`:`last ${Math.round(n/60)}h`}};function pu(e){return c(e,s)}async function mu(e,t=yn.memoryPath){let n=``;try{let r=await e.readFile(t,{encoding:`utf-8`});n=typeof r==`string`?r:new TextDecoder().decode(r)}catch{n=``}return pu(n)}function hu(e){let t=e.filter(e=>e.health===`stalled`).length,n=e.filter(e=>e.health!==`stalled`&&e.peerState===`connecting`).length,r=e.length-t-n,i=[r>0?`${r} connected`:``,n>0?`${n} connecting`:``,t>0?`${t} stalled`:``].filter(Boolean);return{id:`followers`,label:`Followers`,icon:`radio`,count:e.filter(e=>e.peerState===`connected`).length,meta:i.join(` · `)||`none paired`,accent:`cyan`,emptyText:`No followers connected yet. Pair a phone, tablet, or CLI follower to this tray.`,rows:e.map(e=>{let t=e.motd??e.runtime??`Connected follower`,n=e.hostOrigin?`${t} · ${e.hostOrigin}`:t,r=[e.exec?`ssh`:``,e.cdp?`playwright`:``].filter(Boolean);return{name:ro(e),sublabel:n,meta:to(e),icon:Qa(e),badges:r,status:eo(e)}})}}function gu(e){return e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`}function _u(e){return e.stalled?`stalled`:e.state===`leader`?`connected`:e.state}function vu(e){let t=_u(e),n=e.sessionId?`Session ${Xa(e.sessionId)}`:null,r=e.workerBaseUrl?`Worker · ${e.workerBaseUrl}`:null;return{id:`tray`,label:`Tray`,icon:e.role===`follower`?`radio`:`cloud`,count:1,meta:`${e.role} · ${t}`,accent:`waffle`,status:gu(e),rows:[{name:e.role[0].toUpperCase()+e.role.slice(1),sublabel:[n,r].filter(Boolean).join(` · `)||`No tray session`,meta:t,icon:e.role===`follower`?`radio`:`cloud`,badges:e.joinUrl?[`join URL`]:[],status:gu(e)}]}}function yu(e,t){let n=e.filter(e=>k(e)),r=t=>e.filter(e=>!k(e)&&e.parentJid===t),i=(e,n)=>{let r=t(e.jid);return{name:k(e)?`${e.name||`sliccy`} (cone)`:e.name,meta:r?`working`:`idle`,active:r,depth:n}},a=n.flatMap(e=>[i(e,0),...r(e.jid).map(e=>i(e,1))]),o=new Set(a.map(e=>e.name));for(let t of e){let e=i(t,0);o.has(e.name)||a.push(e)}let s=e.filter(e=>t(e.jid)).length;return{id:`scoops`,label:`Scoops`,icon:`bot`,count:e.length,meta:`${e.length} · ${s} working`,accent:`violet`,status:`active`,emptyText:`Delegate a focused task and its scoop will show up here.`,rows:a}}function bu(e){let t=e.filter(e=>e.valid===!1).length;return{id:`mounts`,label:`Mounts`,icon:`hard-drive`,count:e.length,meta:t>0?`${e.length} · ${t} need${t===1?`s`:``} re-grant`:`${e.length} · all granted`,status:t>0?`warn`:`active`,emptyText:`Mount a folder to give the workspace access to files on disk.`,rows:e.map(e=>({name:e.targetPath,meta:e.valid===!1?`permission lost`:e.descriptor.kind,status:e.valid===!0?`active`:e.valid===!1?`warn`:`idle`}))}}function xu(e,t){let n=t.filter(e=>e.valid===!1).length,r=e.reduce((e,[,t])=>e+(t.tools?.length??0),0),i=[`${e.length} server${e.length===1?``:`s`}`,`${r} tool${r===1?``:`s`}`,n>0?`${n} account expired`:`${t.length} accounts valid`].join(` · `);return{id:`integrations`,label:`Integrations`,icon:`blocks`,count:e.length+t.length,meta:i,accent:`waffle`,status:n>0?`error`:`active`,emptyText:`Connect an MCP server or a provider account to extend the workspace.`,rows:[...e.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`MCP · ${n} tool${n===1?``:`s`}`,status:`active`}}),...t.map(e=>({name:e.providerId,meta:e.valid===!1?`session expired`:`account`,status:e.valid===!0?`active`:e.valid===!1?`error`:`idle`}))]}}function Su(e,t){let n=[`${t.length} webhook${t.length===1?``:`s`}`,e.length>0?`${e.length} cron task${e.length===1?``:`s`}`:`no cron tasks`].join(` · `);return{id:`automations`,label:`Automations`,icon:`calendar-clock`,count:e.length+t.length,meta:n,accent:`amber`,emptyText:`Scheduled tasks and webhook-driven licks will appear here.`,rows:[...e.map(e=>({name:e.name,meta:e.cron,status:e.status===`active`?`active`:`idle`})),...t.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`,status:`idle`}))]}}function Cu(e){let t=Dt({percent:e.percent,status:e.status});return t===`critical`?`error`:t===`warn`?`warn`:`active`}function wu(e,t){let n=`${Tt(e.percent)}% used`,r=Et(e.resetsAt,t);return{name:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,sublabel:e.providerId?`${e.providerId} · rolling window`:`rolling window`,meta:e.status===`rate-limited`?`rate-limited · ${n}`:n,badges:r?[r]:void 0,status:Cu(e)}}function Tu(e,t){let n=e?.budget,r=e?.models??[],i=e?`$${e.totalCost.toFixed(2)} across ${r.length} models`:``,a=n?[n.status===`rate-limited`?`rate-limited`:``,`${Tt(n.percent)}% of ${n.window} budget`,i].filter(Boolean).join(` · `):e?i:`no spend yet`;return{id:`cost`,label:`Cost`,icon:`receipt`,count:r.length,meta:a,accent:`rose`,status:n?Cu(n):void 0,emptyText:`Model usage will be summarized after the first turn.`,rows:[...n?[wu(n,t)]:[],...r.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`,status:`idle`}))]}}function Eu(e){let t=[],n=Du(e.budget,e.now??Date.now());n&&t.push(n);for(let n of e.oauthProviders)n.valid===!1&&t.push({id:`oauth:${n.providerId}`,severity:`error`,icon:`key-round`,title:`${n.providerId} session expired`,detail:`Tool calls through this provider will fail until it is signed in again.`});let r=gu(e.tray);(r===`error`||r===`warn`)&&t.push({id:`tray`,severity:r===`error`?`error`:`warn`,icon:`cloud-off`,title:`Tray ${_u(e.tray)}`,detail:e.tray.workerBaseUrl?`Worker · ${e.tray.workerBaseUrl}`:`No tray session is established.`});for(let n of e.followers)eo(n)===`warn`&&t.push({id:`follower:${n.runtimeId}`,severity:`warn`,icon:`radio`,title:`${ro(n)} stopped answering`,detail:n.motd??n.runtime??`No heartbeat from this follower.`,age:to(n)});for(let n of e.mounts)n.valid===!1&&t.push({id:`mount:${n.targetPath}`,severity:`warn`,icon:`folder-lock`,title:`${n.targetPath} needs re-grant`,detail:`File System Access permission is no longer granted for this handle.`});return t.sort((e,t)=>e.severity===t.severity?0:e.severity===`error`?-1:1)}function Du(e,t){if(!e||Dt({percent:e.percent,status:e.status})===`ok`)return null;let n=Et(e.resetsAt,t),r=`${Tt(e.percent)}%`;if(e.status===`rate-limited`)return{id:`budget:rate-limited`,severity:`error`,icon:`octagon-alert`,title:`${e.window} budget is rate-limited`,detail:`The provider is refusing calls until the window resets. ${r} of the allowance is used.`,age:n};let i=e.percent>=95;return{id:`budget:near-limit`,severity:i?`error`:`warn`,icon:`gauge`,title:`${r} of the ${e.window} budget used`,detail:i?`Past 95% of the allowance — calls may start being refused.`:`Past 80% of the allowance. Long runs may not finish before it resets.`,age:n}}function Ou(e){return e>=100?`$${Math.round(e)}`:`$${e.toFixed(2)}`}function ku(e){let{stats:t,workingUnits:n,totalUnits:r,liveProcesses:i,terminated:a,history:o}=e,s=o?.windowLabel(),c=t?.burnRate??0,l=t?.fills??[],u=l.reduce((e,t)=>Math.max(e,t.fill),0),d=t?.budget,f=[{id:`burn`,label:`Burn rate`,value:Ou(c),unit:`/hour`,hero:!d,accent:d?`rose`:void 0,series:o?.series(`burnRate`),foot:[t?`$${t.totalCost.toFixed(2)} this session`:`no spend yet`,s].filter(Boolean).join(` · `)},{id:`load`,label:`Agent load`,value:String(n),unit:`of ${r} working`,accent:`violet`,series:o?.series(`workingUnits`),foot:s??void 0}];return d||f.push({id:`processes`,label:`Live processes`,value:String(i),unit:i===1?`process`:`processes`,accent:`cyan`,series:o?.series(`liveProcesses`),foot:a>0?`${a.toLocaleString()} exited this session`:s??void 0}),l.length>0&&f.push({id:`context`,label:`Context fill`,value:String(Math.round(u*100)),unit:`%`,ratio:u,markers:ju(l,e.units??[]),accent:u>=.9?`rose`:u>=.7?`amber`:`green`,foot:`fullest of ${l.length} context window${l.length===1?``:`s`}`}),d?[Au(d,t,e.now??Date.now()),...f]:f}function Au(e,t,n){let r=Dt({percent:e.percent,status:e.status});return{id:`budget`,label:`${e.window[0]?.toUpperCase()??``}${e.window.slice(1)} budget`,value:Tt(e.percent),unit:`% used`,hero:!0,ratio:Math.min(1,Math.max(0,e.percent/100)),accent:r===`critical`?`rose`:r===`warn`?`amber`:`green`,foot:[e.status===`rate-limited`?`rate-limited`:``,Et(e.resetsAt,n)??``,t?`$${t.totalCost.toFixed(2)} this session`:``].filter(Boolean).join(` · `)}}function ju(e,t){let n=new Map(t.map(e=>[e.jid,e]));return e.map(({jid:e,fill:t})=>{let r=n.get(e),a=r?k(r):!1,o=r?.name||(r?`sliccy`:e);return{id:e,ratio:t,color:i({isRoot:a,name:o}),label:`${a?`${o} (cone)`:o} — ${Math.round(t*100)}% full`}})}var Mu={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function Nu(e,t){if(!e)return;let n=Math.max(0,Math.round((t-e)/1e3));if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m ${n%60}s`:`${Math.floor(r/60)}h ${r%60}m`}function Pu(e,t){return{pid:e.pid,ppid:e.ppid,state:Mu[e.status]??`?`,status:e.status,command:e.argv,scoop:e.scoop,started:e.startedAt?new Date(e.startedAt).toTimeString().slice(0,5):void 0,elapsed:Nu(e.startedAt,t)}}async function Fu(e,t){let n=e.getScoops(),r=e.getTrayInfo(),i=e.getConnectedFollowers(),[a,o,s,c,l,u]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>({processes:[],terminated:0}))]),{processes:d,terminated:f}=u,p=e.getOAuthProviders(),m=Object.entries(c),h=n.filter(t=>e.isProcessing(t.jid)).length,g=Date.now();return t?.push({at:g,burnRate:l?.burnRate??0,workingUnits:h,liveProcesses:d.length}),{updated:`Streaming · updated just now`,vitals:ku({stats:l,workingUnits:h,totalUnits:n.length,liveProcesses:d.length,terminated:f,history:t,units:n,now:g}),alerts:Eu({tray:r,followers:i,mounts:s,oauthProviders:p,budget:l?.budget,now:g}),sections:[vu(r),hu(i),yu(n,t=>e.isProcessing(t)),bu(s),xu(m,p),Su(a,o),Tu(l,g)],processes:{rows:d.map(e=>Pu(e,g)),terminated:f}}}var Iu=`/shared`,Lu=3,Ru=200;async function zu(e,t,n){let r;try{r=await e.readDir(t)}catch{return[]}let i=r.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)),a=r.filter(e=>e.type===`file`).sort((e,t)=>e.name.localeCompare(t.name)),o=[...i,...a].slice(0,Ru),s=new Map,c=[];for(let e of o){if(e.type!==`file`)continue;let n=`${t}/${e.name}`;e.size===void 0?c.push(n):s.set(n,e.size)}let l=await Promise.allSettled(c.map(t=>e.stat(t)));c.forEach((e,t)=>{let n=l[t];n?.status===`fulfilled`&&s.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Lu?await zu(e,i,n+1):[]});else{let e=s.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function Bu(e,t=yn.root){let n=[];for(let r of[t,Iu])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await zu(e,r,1)});return n}var Vu=200,Hu=1e3,Uu=3e3,Wu=45e3;function Gu(e){let t=null,n=!1,r=!1,i=!1,a=0,o=0,s=null,c=null,l=0,u=()=>{let t=++o;e.openFs().then(async n=>{let i=await Bu(n,e.getWorkspace().root);t===o&&(e.fileTree.items=i,r||(r=!0,v({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:_,log:e.log})))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},d=()=>{if(!i)return;let e=Date.now();if(c==null)l=e;else if(e-l>=Hu){clearTimeout(c),c=null,u();return}c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},Vu)},f=()=>{t??=setInterval(u,Uu)},p=()=>{let t=++a;s?.(),s=null;let n=[e.getWorkspace().root,Iu];e.openFs().then(async e=>{if(!e.watch){t===a&&i&&f();return}let r=await e.watch(n,d);if(t!==a||!i){r();return}s=r}).catch(n=>{e.log.error(`WC file tree watch failed — falling back to polling`,n),t===a&&i&&f()})},m=()=>{n=!1,i=!1,a++,s?.(),s=null,c!=null&&(clearTimeout(c),c=null),t!=null&&(clearInterval(t),t=null)};return{open(){m(),i=!0,n=!0,e.onKernelReady(()=>{n&&(n=!1,u(),p())})},close:m,repoint(){!i||n||(u(),p())}}}function Ku(e){let t=!1,n=!1,r=!1,i=0,a=null,o=new fu,s=Gu(e),c=()=>{a!=null&&(clearInterval(a),a=null)},l=()=>{let t=++i;e.openFs().then(async n=>{let r=await mu(n,e.getWorkspace().memoryPath);t===i&&(e.memoryHost.setRows?e.memoryHost.setRows(r):e.memoryHost.replaceChildren(...r))}).catch(t=>e.log.error(`WC memory refresh failed`,t))},u=()=>{(async()=>{try{e.monitor.model=await Fu(e.getMonitorDeps(),o)}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,u),{activate(i){if(i===`files`){s.open();return}if(i===`memory`){r=!0,l();return}if(i===`monitor`){c(),u(),a=setInterval(u,5e3);return}if(i===`term`&&!t){t=!0;let r=!1,i=n?null:setTimeout(()=>{r||(n=!0,t=!1,e.log.error(`WC terminal mount did not settle within ${Wu}ms; re-arming so the next term activation retries`))},Wu);e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}).finally(()=>{r=!0,i&&clearTimeout(i)})}},deactivate(e){e===`files`?s.close():e===`monitor`?c():e===`memory`&&(r=!1)},refreshMemory(){r&&l()},refreshFiles(){s.repoint()}}}var qu=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],Ju=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),Yu=2e4,Xu=12,Zu=3e4;function Qu(e){let t=e.trim();for(;t.startsWith(`./`)||t.startsWith(`../`);)t=t.slice(t.startsWith(`./`)?2:3);return t.startsWith(`~/`)&&(t=t.slice(2)),t.replace(/\/{2,}/g,`/`)}function $u(e){return e.slice(e.lastIndexOf(`/`)+1)}function ed(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function td(e,t){let n=Qu(e);return t.includes(`/`)?ed(n,t):$u(n)===t}function nd(e,t){let n=[],r=new Set;for(let i=t.length-1;i>=0;--i){let a=t[i];if(!(a===void 0||r.has(a))&&td(a,e)&&(r.add(a),n.push(Qu(a)),n.length>=rd))break}return n}var rd=4,id=class{#e;#t;#n;#r;#i;#a;#o=0;#s=null;#c=null;#l=new Map;#u=new Map;constructor(e,t={}){this.#e=e,this.#t=t.roots??qu,this.#n=t.ignoredDirs??Ju,this.#r=t.maxEntries??Yu,this.#i=t.maxDepth??Xu,this.#a=t.ttlMs??Zu}resolve(e,t=[]){this.#g();let n=Qu(e),r=this.#d(n),i=nd(n,t);return i.length===0?r:this.#f(n,r,i)}resolveAll(e,t=[]){return Promise.all(e.map(e=>this.resolve(e,t)))}invalidate(){this.#s=null,this.#c=null,this.#l.clear(),this.#u.clear()}#d(e){let t=this.#l.get(e);if(t!=null)return t;let n=this.#m(e).catch(()=>({query:e,matches:[]}));return this.#l.set(e,n),n}async#f(e,t,n){let{matches:r}=await t,i=new Set(r),a=[];for(let e of n)!e.startsWith(`/`)||i.has(e)||await this.#p(e)&&a.push(e);let o=e=>n.findIndex(t=>ed(e,t)),s=r.filter(e=>o(e)>=0).sort((e,t)=>o(e)-o(t)),c=new Set(s),l=r.filter(e=>!c.has(e));return{query:e,matches:[...a,...s,...l]}}#p(e){let t=this.#u.get(e);if(t!=null)return t;let n=this.#h(e);return this.#u.set(e,n),n}async#m(e){if(e.startsWith(`/`))return{query:e,matches:await this.#h(e)?[e]:[]};let t=(await this.#_()).get($u(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>ed(t,e)).sort(ad)}:{query:e,matches:[...t].sort(ad)}}async#h(e){try{return(await this.#e.stat(e)).type===`file`}catch{return!1}}#g(){!this.#s||this.#a===1/0||Date.now()-this.#o<this.#a||this.invalidate()}#_(){return this.#s?Promise.resolve(this.#s):(this.#c??=this.#v().then(e=>(this.#s=e,this.#o=Date.now(),e)),this.#c)}async#v(){let e=new Map,t={left:this.#r};for(let n of this.#t){if(t.left<=0)break;await this.#y(n,0,e,t)}return e}async#y(e,t,n,r){if(r.left<=0||t>this.#i)return;let i;try{i=await this.#e.readDir(e)}catch{return}let a=this.#b(e,i,n,r);for(let e of a){if(r.left<=0)break;await this.#y(e,t+1,n,r)}}#b(e,t,n,r){let i=[];for(let a of t){if(r.left<=0)break;let t=e===`/`?`/${a.name}`:`${e}/${a.name}`;if(a.type===`directory`){this.#n.has(a.name)||i.push(t);continue}let o=n.get(a.name);o?o.push(t):n.set(a.name,[t]),--r.left}return i}};function ad(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var od=`file-mention`,sd=`data-file-mentions`;function cd(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var ld=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),ud=`file-mention-open`;async function dd(e,t,n=[]){let r=cd(e);if(e.getAttribute(sd)===r)return;let i=fd(e);if(i.length===0){e.setAttribute(sd,r);return}let a=[],o=new Set;for(let e of i){let t=S(e.data);if(t.length!==0){a.push({node:e,mentions:t});for(let e of t)o.add(e.path)}}if(a.length===0){e.setAttribute(sd,r);return}let s=[...o],c=await t.resolveAll(s,n),l=new Map(s.map((e,t)=>[e,c[t]?.matches??[]]));for(let{node:e,mentions:t}of a){if(!e.isConnected)continue;let n=t.filter(e=>(l.get(e.path)?.length??0)>0);n.length!==0&&pd(e,n,l)}e.setAttribute(sd,cd(e))}function fd(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(t){if(!t.nodeValue||t.nodeValue.trim().length===0)return NodeFilter.FILTER_REJECT;for(let n=t.parentElement;n&&n!==e;n=n.parentElement)if(ld.has(n.tagName)||n.classList.contains(`file-mention`))return NodeFilter.FILTER_REJECT;return NodeFilter.FILTER_ACCEPT}}),n=[];for(let e=t.nextNode();e!==null;e=t.nextNode())n.push(e);return n}function pd(e,t,n){let r=e.ownerDocument,i=e.data,a=r.createDocumentFragment(),o=0;for(let e of t){let t=n.get(e.path)??[],s=t[0];s&&(e.start>o&&a.appendChild(r.createTextNode(i.slice(o,e.start))),a.appendChild(md(r,i.slice(e.start,e.end),s,t,e.line)),o=e.end)}o<i.length&&a.appendChild(r.createTextNode(i.slice(o))),e.parentNode?.replaceChild(a,e)}function md(e,t,n,r,i){let a=e.createElement(`a`);return a.className=od,a.textContent=t,a.href=`#${n}`,a.dataset.path=n,i!==void 0&&(a.dataset.line=String(i)),a.title=r.length>1?`${n}\n(+${r.length-1} other match${r.length>2?`es`:``})`:n,a.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation();let t={path:n,alternatives:r,...i===void 0?{}:{line:i}};a.dispatchEvent(new CustomEvent(ud,{detail:t,bubbles:!0,composed:!0}))}),a}var hd=`slicc-agent-message`,gd=`slicc-action-row[${o}]`;function _d(e,t){let n=[],r=e.querySelectorAll(gd);for(let e of r){if(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING)break;n.push(e.getAttribute(`data-file-paths`)??``)}return n.slice(-40).flatMap(e=>l(e))}function vd(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function yd(e){try{return bd(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function bd(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new id(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;S(n.textContent??``).length!==0&&vd(()=>{let i=_d(t,e);a().then(e=>dd(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll(hd))o(t)};s(t);let c=new MutationObserver(e=>{for(let t of e){if(t.type===`attributes`){t.target instanceof HTMLElement&&o(t.target);continue}for(let e of t.addedNodes)e instanceof HTMLElement&&(e.tagName.toLowerCase()===hd?o(e):s(e));let e=t.target?.closest?.(hd);e&&o(e)}});c.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`streaming`]});let l=e=>{let{path:t,line:i}=e.detail;n().then(e=>se(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(ud,l),()=>{c.disconnect(),t.removeEventListener(ud,l)}}var xd=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Bd,DOCK_TREE_STORAGE_KEY:()=>zd,attachWcWorkbench:()=>Ud,bootLeaderFloat:()=>Gd,makeSprinkleAttachImage:()=>Hd,prepareWcShell:()=>Dd,wireDockTreePersistence:()=>Vd,wireWcChipTips:()=>Pd,workspaceForSelection:()=>Td});function Sd(e){let{controller:t,held:n,jid:r,roster:i}=e,a=t?.stashQueued()??[];if(a.length===0)return;let o=i.find(e=>e.id===r),s=o?qn(i,o)?.id??o.id:r;n.set(s,[...n.get(s)??[],...a])}function Cd(e){let{controller:t,destination:n,held:r,previousJid:i,roster:a}=e;if(i&&i!==n&&Sd({controller:t,held:r,jid:i,roster:a}),a.some(e=>e.id===n))for(let e of[...r.keys()])a.some(t=>t.id===e)||r.delete(e);let o=r.get(n);o&&(r.delete(n),t?.restoreQueued(o))}function wd(e,t){let n=null,r=null;return{shownUnitId:()=>r,watch:i=>{r===i&&n||(n?.(),r=i,n=e().subscribe(i,e=>{e.type===`snapshot`&&r===i&&t(e.snapshot.messages,e.snapshot.queuedIds)}))}}}function Td(e){let{client:t,selectedId:n}=e,r=n===void 0?void 0:t.getScoop(n);return n!==void 0&&!r&&e.clearSelection(),hn(t.getScoops(),r)}function Ed(e){let{refs:t}=e,n=null,r=new Map;return{clear:()=>{n=null},getSelected:()=>n,holdQueue:()=>{let t=n?.id;t&&Sd({controller:e.controller(),held:r,jid:t,roster:e.client().currentUnits()})},selectScoop:i=>{let a=n?.id??null;n=i;let o=Yn(Vn(i)),s=e.host();Cd({controller:e.controller(),destination:i.id,held:r,previousJid:a,roster:e.client().currentUnits()});let c=e.lickBackpressure.get(i.id);e.controller()?.setLickBackpressure(c?.count??0,c?.waitingMs??0,Jn(i)),e.controller()?.setReadOnly(o),o||t.inputCard.removeAttribute(`disabled`),Wc(t,i,e.client().currentUnits(),s.getRecord?.bind(s),{skipModelPill:s.ownsModelPill===!0}),e.client().snapshot(i.id).catch(()=>void 0),e.watchUnit(i.id),e.controller()?.setProcessing(e.client().currentUnits().find(e=>e.id===i.id)?.state===`working`),t.switcher.hasAttribute(`attention`)||t.switcher.setAttribute(`attention`,i.id),e.wiring().refreshScoops?.(),e.workbench()?.refreshMemory(),e.workbench()?.refreshFiles(),s.onSelectionApplied?.()}}}function Dd(e,t){let n=x(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,urlState:!0}),r=null,i=null,a=No,o=null,s=()=>o??Q(g),c=new Map,l=!1,u=null,d=!1,f=new Set,p=wd(()=>s(),(e,t)=>{r?.loadMessages(e,t),fc(n.thread,e.length===0&&d),a.onSnapshotRendered?.(e)}).watch,m=Ed({client:s,controller:()=>r,host:()=>a,lickBackpressure:c,refs:n,watchUnit:p,wiring:()=>g,workbench:()=>u}),h=m.selectScoop,g={refs:n,statuses:new Map,fills:new Map,phases:new Map,turns:new Map,lickBackpressure:c,lastActivity:new Map,pendingUrlContext:n.thread.urlContext??null,getController:()=>r,getClient:()=>i,getSelected:()=>m.getSelected(),selectScoop:h,notifyReady:()=>{l=!0;for(let e of f)e()}};return{refs:n,wiring:g,setClient:e=>{i=e},setChatTransport:(e,t)=>{o=e,a=t},getChatHost:()=>a,selectScoop:h,getSelected:()=>m.getSelected(),clearSelection:()=>m.clear(),holdQueuedPile:()=>m.holdQueue(),watchUnit:p,getController:()=>r,setController:e=>{r=e},setActivateSurface:e=>{u=e;let t=new Set(n.dockTree.getSurfaceIds());for(let n of[`files`,`term`,`memory`,`monitor`])t.has(n)&&(l?e.activate(n):f.add(()=>e.activate(n)))},onClientReady:e=>{f.add(e),l&&e()},setRestoringSessions:e=>{d=e,fc(n.thread,e&&dc(n.thread))}}}function Od(e){let n=null;return()=>(n??=(async()=>{let[{createRemoteVfsClient:n},{createRemoteWritableVfsClient:r}]=await Promise.all([t(()=>import(`./remote-vfs-client-Cs1yUtQm.js`),__vite__mapDeps([78,38])),t(()=>import(`./writable-vfs-client-CQe6oZ75.js`),__vite__mapDeps([79,38]))]);return{reader:n({transport:e.getTransport()}),writer:r({transport:e.getTransport()})}})(),n)}function kd(e,n,r,i,a){e.onClientReady(()=>{i.intercept||t(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-C30JW8KM.js`);return{wireWcOnboarding:e}},__vite__mapDeps([80,2,3,55,1,56,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58,64])).then(({wireWcOnboarding:t})=>t({client:n,getController:()=>e.getController(),openVfs:r,log:a})).then(e=>{i.intercept=e.interceptWelcomeLick}).catch(e=>a.error(`WC onboarding wiring failed`,e))})}function Ad(e,t){let n=()=>{t.getSessionStats?.().then(t=>{if(!t)return;e.refs.floatbar.setAttribute(`spent`,t.totalCost.toFixed(2)),typeof t.burnRate==`number`&&Number.isFinite(t.burnRate)?e.refs.floatbar.setAttribute(`rate`,t.burnRate.toFixed(2)):e.refs.floatbar.removeAttribute(`rate`);let n=e.refs.floatbar;t.models&&(n.costModels=t.models),t.scoops&&(n.costScoops=t.scoops),n.budget=t.budget?{percent:t.budget.percent,status:t.budget.status,window:t.budget.window,resets:Et(t.budget.resetsAt)}:null,e.fills.clear();for(let n of t.fills)e.fills.set(n.jid,n.fill);e.refreshScoops?.()})};return setInterval(n,15e3),n}function jd(e,n,r){let i=n.standalone;i&&t(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-6Ul-SEOZ.js`);return{wireWcBrowser:e}},__vite__mapDeps([81,82,6,83,3,84,85,0,1,2,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,86])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:i.browser,log:r})).catch(e=>r.error(`WC browser overlay wiring failed`,e))}function Md(e){return{assistantLabel:e.assistantLabel,name:e.name,role:k(e)?`primary`:`child`}}function Nd(e){return()=>{e.triggerPlaceholder();let t=e.boot.getSelected()?.id;if(e.boot.wiring.awaitingInput=t??null,e.boot.wiring.refreshScoops?.(),e.boot.wiring.notifyScoopStateChanged?.(),e.refreshStats(),!t)return;e.boot.refs.switcher.setAttribute(`attention`,t);let n=e.boot.getController()?.getMessages().filter(e=>e.role===`assistant`).at(-1);n&&e.boot.wiring.lastActivity.set(t,ge(String(n.content??``),600))}}function Pd(e){let n=new Map,r=new Set;e.switcher.addEventListener(`pointerover`,i=>{let a=i.target?.closest?.(`.slicc-agent-tabs__segment`);if(!a||!e.switcher.contains(a))return;let o=a.dataset.k??``,s=e.getScoops().find(e=>e.jid===o);if(!s)return;let c=e.lastActivity.get(o)??``,l=n.get(o);if(l&&l.activity===c){a.title=l.tip;return}a.title||=Gn(Md(s)),!(!c||r.has(o))&&(r.add(o),(async()=>{try{let r=await(e.labelFn??(await t(async()=>{let{quickLabel:e}=await import(`./quick-llm-95xYFP4C.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([52,1,9,10,11,2,12,13,14,15,16,3,17,7,8,18,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,53,39]))).quickLabel)({system:`One line for a hover tooltip: at most 14 words, present tense, no quotes, no trailing period.`,prompt:`Summarize what this agent has been doing.\nAgent: ${k(s)?`${Gn(Md(s))} (a main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});r&&(n.set(o,{activity:c,tip:r}),a.title=r)}finally{r.delete(o)}})())})}async function Fd(e,n,r,i){let{RemoteTerminalView:a}=await t(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-CbmgWziL.js`);return{RemoteTerminalView:e}},__vite__mapDeps([87,2,29,3,61,41,42,22,48,1,88,47,46,89,90])),{fetchSecretEnvVars:o}=await t(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-z9SReONx.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([91,3,19,1,2,5,20,21,22,24,23,25,26,27])),s=await o(),c=new a({client:n,cwd:`/`,env:Object.keys(s).length>0?s:void 0});if(await new Promise(t=>e.onClientReady(t)),await c.mount(r),globalThis.__slicc_terminal_view=c,window.addEventListener(`beforeunload`,()=>c.dispose(),{once:!0}),new URLSearchParams(location.search).has(`wterm-image-demo`)){let e=await fetch(`/logos/sliccy-color-10scoops-128x128.png`);if(!e.ok)throw Error(`wterm demo image: HTTP ${e.status}`);let t=new Uint8Array(await e.arrayBuffer());await(await i()).writeFile(`/tmp/wterm-graphics-demo.png`,t);let n=await c.executeCommandInTerminal(`imgcat /tmp/wterm-graphics-demo.png`);if(n.exitCode!==0)throw Error(`wterm demo image: ${n.stderr}`)}}function Id(e,t,n){let r=t=>{if(t.startsWith(`freezer:`)){n(t.slice(8));return}let r=Bn(Q(e.wiring).currentUnits(),t);r&&r.id!==e.getSelected()?.id&&e.selectScoop(r)};e.refs.thread.addEventListener(`slicc-url-context`,e=>{let t=e.detail?.context;t&&r(t)});let i=e.wiring.pendingUrlContext;i?.startsWith(`freezer:`)&&e.onClientReady(()=>{e.wiring.pendingUrlContext===i&&(e.wiring.pendingUrlContext=null,r(i))})}function Ld(e,n,r,i){t(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-Do9-WSJc.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([92,2,3,61])).then(async({installLeaderPermissionsSurface:i,installMountPendingConsumer:a})=>{let o=r.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await t(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-DwX67umy.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([93,2,22]));i({runtimeMode:o,providers:await s(c()||o===`extension`||o===`extension-detached`)}),a({runShell:Rd(e,n)})}).catch(e=>i.warn(`WC permissions surface wiring failed`,e)),(r.standalone?.runtimeMode??`standalone`)!==`cherry`&&t(async()=>{let{installSecretRequestSurface:e}=await import(`./wc-secret-request-BaJdvYlQ.js`);return{installSecretRequestSurface:e}},__vite__mapDeps([94,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,95])).then(({installSecretRequestSurface:e})=>e()).catch(e=>i.warn(`WC secret request surface wiring failed`,e))}function Rd(e,n){let r=null,i=()=>(r||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:r}=await t(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-DmE-iBjP.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([90,1])),i=new r({client:n,sid:`mount-drop-${Date.now()}`});return await i.open({cwd:`/workspace`}),i})().catch(e=>{throw r=null,e}),r);return async e=>(await i()).exec(e)}var zd=`slicc-dock-tree:default`,Bd={zones:{top:null,left:{type:`leaf`,surfaceId:`chat`},middle:null,right:null,bottom:null},rowFr:{top:1,center:1,bottom:1},colFr:{left:3,middle:1,right:1}};function Vd(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(zd,JSON.stringify(e))}catch{}};n.addEventListener(`dock-tree-change`,e=>{i(e.detail?.tree)}),n.addEventListener(`dock-tree-resize`,e=>{i(e.detail?.tree)});try{let e=localStorage.getItem(zd);r.setTree(e?JSON.parse(e):Bd)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Bd)}}function Hd(e,t){return(n,r,i)=>{let a=e.getAttachStage();if(!a){t.warn(`sprinkle attachImage dropped: composer stage not ready yet`);return}let o=n.match(/^data:(image\/[^;]+);base64,([A-Za-z0-9+/=]+)$/),s=o?o[2]:n,c=o?o[1]:i??`image/png`,l=c.split(`/`)[1]?.replace(`jpeg`,`jpg`).replace(`svg+xml`,`svg`)??`png`,u=r??`annotation-${Date.now()}.${l}`;a.add({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:u,mimeType:c,size:Math.floor(s.length*3/4),kind:`image`,data:s})}}function Ud(e,n,r,i,a,o={}){t(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-BOiMEPvK.js`).then(e=>e.Q);return{initTimestampPreference:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:s}=e;e.setClient(n),t(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CwPIBqJE.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([96,1,97,3])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),t(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-ZV7CeqWw.js`).then(e=>e._);return{applyThemeOverrides:e}},__vite__mapDeps([97,1,3])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let c=_e(`panel-layouts`);s.dockTree.tilesMovable=c,c||Vd(s,a);let l=null,u=Ad(e.wiring,n),d=()=>l?.(),f=i.welcome??{intercept:null},p=Q(e.wiring),{agentHandle:m}=r;e.onClientReady(u);let h=Od(n),_=async()=>(await h()).reader;o.standalone?.runtimeMode!==`cherry`&&o.standalone?.runtimeMode!==`hosted-leader`?kd(e,n,h,f,a):f.intercept=Tc({openVfs:async()=>(await h()).writer,log:a});let v=Kc({boot:e,client:n,setRefreshPlaceholder:e=>{l=e},triggerPlaceholder:d,openReader:_,openWriter:async()=>(await h()).writer,log:a});i.setAttachmentSource(()=>v.getAttachStage()?.take()),i.setTurnIdleHook(Nd({boot:e,triggerPlaceholder:d,refreshStats:u})),Pd({switcher:s.switcher,getScoops:()=>n.getScoops(),lastActivity:e.wiring.lastActivity}),jd(e,o,a),t(async()=>{let{installWcComputers:e}=await import(`./wc-computers-sDur6b13.js`);return{installWcComputers:e}},__vite__mapDeps([85,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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,86])).then(({installWcComputers:e})=>e({openFs:_,log:a})).catch(e=>a.error(`WC computers wiring failed`,e)),Ld(e,n,o,a);let y=Ku({fileTree:s.fileTree,termSurface:s.termSurface,memoryHost:s.memoryHost,monitor:s.monitor,openFs:_,openWriter:async()=>(await h()).writer,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>Il({client:n,openReader:_,storage:window.localStorage}),getWorkspace:()=>Td({client:n,clearSelection:e.clearSelection,selectedId:e.getSelected()?.id}),mountTerminal:t=>Fd(e,n,t,async()=>(await h()).writer),insertReference:e=>{let t=s.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:a});e.setActivateSurface(y),c&&t(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-BbOMOerL.js`);return{panelizeShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100])).then(({panelizeShell:e})=>e(s,void 0,void 0,{onToolPanelActivate:e=>y.activate(e),onToolPanelDeactivate:e=>y.deactivate(e)})).catch(e=>a.error(`panelize failed — keeping the classic shell`,e)),yd({thread:s.thread,openFs:_,log:a}),g(s.thread,_),s.floatbar.addEventListener(`click`,()=>{let e=s.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let b=Cl({refs:s,openVfs:h,client:n,getUnits:()=>p.currentUnits(),getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,holdQueuedPile:e.holdQueuedPile,log:a}),{refreshFreezer:x,openFrozen:S,getViewedFrozenSessionId:ee}=b;if(x(),e.onClientReady(x),_e(`multiple-cones`)){let t=Cc({freezer:s.freezer,client:n,getSelected:()=>e.getSelected(),getUnits:()=>p.currentUnits(),selectScoop:e.selectScoop,freezeCone:b.freezeCone,log:a});e.wiring.refreshConeActions=t.refresh,e.onClientReady(t.refresh)}Id(e,n,S),e.onClientReady(()=>{h().then(async({reader:e,writer:n})=>{let{loadShortcutConfig:r}=await t(async()=>{let{loadShortcutConfig:e}=await import(`./wc-shortcut-config-B9YZlZ95.js`);return{loadShortcutConfig:e}},__vite__mapDeps([101,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await r({reader:e,writer:n,apply:({keymap:e,trigger:t})=>{s.shortcuts.setKeymap(e),s.shortcuts.setTrigger(t)}})}).catch(e=>a.warn(`WC shortcut config load failed`,e))}),h().then(async({reader:e})=>{let{installPreviewVfsResponder:n}=await t(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-Vn6wxJvK.js`);return{installPreviewVfsResponder:e}},[]);n({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:a})}).catch(e=>a.warn(`WC page-VFS support wiring failed`,e)),h().then(async({reader:r,writer:i})=>{let{createRemoteSprinkleVfs:c}=await t(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-UzNBy5VJ.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([102,38,103,104])),l=(await t(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-BbOMOerL.js`);return{getPanelizedShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100]))).getPanelizedShell(),{wireWcSprinkles:u}=await t(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-PlC39bUS.js`);return{wireWcSprinkles:e}},__vite__mapDeps([105,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,106,64])),d=await u({refs:s,client:n,getUnits:()=>p.currentUnits(),getSelected:()=>e.getSelected(),selectScoop:t=>e.selectScoop(t),interceptWelcomeLick:e=>f.intercept?.(e)??!1,fs:c({reader:r,writer:i}),instanceId:o.instanceId,onAttachImage:Hd(v,a),onToolPanelActivate:e=>y.activate(e),onToolPanelDeactivate:e=>y.deactivate(e),hostSprinkleSurface:l?(e,t)=>l.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:l?e=>l.removeSprinkleSurface(e):void 0,log:a});e.onClientReady(()=>void d.resync());let{getPanelizedShell:g}=await t(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-BbOMOerL.js`);return{getPanelizedShell:e}},__vite__mapDeps([98,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,99,100])),b=g();if(b){let e=c({reader:r,writer:i});b.attachFs(e);let{registerAgentPanels:n}=await t(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-CqdhYmst.js`);return{registerAgentPanels:e}},__vite__mapDeps([107,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await n(e).catch(e=>a.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await t(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:n}=await t(async()=>{let{applyLayout:e}=await import(`./apply-layout-e_T1KE6y.js`);return{applyLayout:e}},__vite__mapDeps([108,105,2,0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,106,64]));e(e=>n(d.zone,e))}if(o.standalone&&o.instanceId){let{wireWcTray:r}=await t(async()=>{let{wireWcTray:e}=await import(`./wc-tray-DWLWOtPX.js`);return{wireWcTray:e}},__vite__mapDeps([109,10,11,2,9,12,13,14,1,15,16,3,0,4,5,6,7,8,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,82,110,111,112,61,48,47,113,46,89,77,96,97,57,114,64,115,116,117,55,56,58,104,90,69,84,118,66,119,120,106])),i=d.zone.callbacks(),c=await r({refs:s,client:n,browser:o.standalone.browser,realCdpTransport:o.standalone.realCdpTransport,instanceId:o.instanceId,runtimeMode:o.standalone.runtimeMode,sprinkleManager:d.manager,addSprinkle:(e,t,n)=>i.addSprinkle(e,t,n),removeSprinkle:e=>i.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.id??`cone`,agentHandle:m,workUnits:p,restoreLocalChrome:()=>{e.wiring.refreshScoops?.();let t=e.getSelected();t&&Wc(s,t,p.currentUnits(),e=>n.getScoop(e))},openFs:_,openWriter:async()=>(await h()).writer,window,log:a,kernelReadyDeadline:o.kernelReadyDeadline});e.wiring.notifyScoopStateChanged=()=>c.scheduleScoopsListBroadcast(),e.wiring.notifyUnitStatus=(e,t)=>c.broadcastUnitStatus(e,t===`processing`?`processing`:`ready`)}}).catch(e=>a.error(`WC sprinkle/tray wiring failed`,e));{let t=new sr(new xr),r=jr(new tc({collection:{listScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getAgentMessages:()=>null,loadPersistedSessions:()=>t.loadAgentSessions(),loadUiChatSessions:()=>t.loadChatSessions(),wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:cc(),snapshotStore:{read:async e=>{let{reader:t}=await h();return Wi(t,e)},write:async(e,t,n)=>{let{writer:r}=await h();return Vi(r,e,t,n)},discardIfUnindexed:async e=>{let{writer:t}=await h();return Ui(t,e)}},vfs:{readFile:async(e,t)=>(await h()).reader.readFile(e,t),readDir:async e=>(await h()).reader.readDir(e),stat:async e=>(await h()).reader.stat(e)},getActiveSessionInfo:()=>{let t=Kn(Q(e.wiring).currentUnits());return{id:t?.id??`session-${Date.now()}`,title:t?.name??`Active Session`}},version:`6.248.3`}));window.addEventListener(`unload`,r,{once:!0})}let te=!1,C=()=>te?Promise.resolve():(te=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:n,downloadTranscriptBlob:r}]=await Promise.all([t(()=>Promise.resolve().then(()=>kr),void 0),t(()=>import(`./wc-transcript-export-BLI_0Glp.js`),__vite__mapDeps([121,2,110,115,116,1]))]),i=ee(),a=i==null?{kind:`active`}:{kind:`frozen`,sessionId:i},o=await e().export(a,{}),{filename:s}=o;await r(await n(o),s)}catch(e){a.error(`Transcript export failed`,e),t(async()=>{let{showTranscriptExportFailure:e}=await import(`./wc-transcript-export-BLI_0Glp.js`);return{showTranscriptExportFailure:e}},__vite__mapDeps([121,2,110,115,116,1])).then(({showTranscriptExportFailure:t})=>t(e)).catch(e=>a.error(`Transcript export notice failed`,e))}finally{te=!1}})());if(t(async()=>{let{wireWcNav:e}=await import(`./wc-nav-D-qT15R2.js`);return{wireWcNav:e}},__vite__mapDeps([122,2,18,22,57,58,1,55,56,3,8,9,10,11,12,13,14,15,16,17,19,5,20,21,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,69,64,106])).then(({wireWcNav:e})=>e({refs:s,client:n,workUnits:p,getUnits:()=>p.currentUnits(),log:a,onExportTranscript:C,shortcuts:s.shortcuts,persistKeyboardTrigger:async e=>{let{writer:n,reader:r}=await h(),{writeShortcutTrigger:i}=await t(async()=>{let{writeShortcutTrigger:e}=await import(`./wc-shortcut-config-B9YZlZ95.js`);return{writeShortcutTrigger:e}},__vite__mapDeps([101,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));await i({reader:r,writer:n},e)}})).catch(e=>a.error(`WC nav wiring failed`,e)),t(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech--hKCVvOJ.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([123,3,0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,61,75,76,77,124])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=s.composer;t(o.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>a.error(`WC push-to-talk wiring failed`,e)),t(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-CSIK-Yvk.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([74,2,3,22,75,76,0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,77])).then(({setSpeakAssetsInstanceId:e})=>e(o.instanceId)).catch(e=>a.error(`WC say warmup wiring failed`,e)),o.standalone)return()=>{t(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-ERMxClkz.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([68,2,3,18,7,8,9,10,11,12,13,14,1,15,16,17,19,5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,55,56,6,37,57,58,53,62,49,0,4,36,38,39,40,50,51,54,63,64,65,66])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await h()).writer,onComplete:e=>{x(),e.attempted>0&&n.reloadSkills()}})).catch(e=>a.warn(`Pending session catch-up scheduling failed`,e))}}function Wd(e){let n=!1,r=()=>t(()=>import(`./boot-stall-overlay-Cs-FNlf8.js`),[]);return{onBootProgress:t=>{n=!0,r().then(n=>n.showBootStage(e,t))},onReadyStall:t=>{n=!0,r().then(n=>n.showBootStallOverlay(e,t))},dismiss:()=>{n&&r().then(t=>{t.removeBootStallOverlay(e),t.removeBootStage(e)})}}}async function Gd(e,n,r=`standalone`){let{browser:i,realCdpTransport:a,instanceId:o,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await Ct({runtimeMode:r,envBaseUrl:null,window,log:n}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await t(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await Promise.resolve().then(()=>eu);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},void 0),h=r===`standalone`?await m():f(r),g=p(h);o&&xt(o);let{syncFsBridgeEnabled:_,syncFsChannelNonce:v}=Rl(),y=Wd(document),b,x,{boot:S}=await lu(e,n,{floatKind:h,floatLabel:g,connect:e=>{b=Jo({realCdpTransport:a,reconnectCdp:()=>i.reconnectIfNeeded(),instanceId:o,makeClient:t=>new Ao(Oc(e.wiring),t),localApiBaseUrl:s,bridgeToken:c,syncFsBridgeEnabled:_,syncFsChannelNonce:v,localLickWsUrl:l,extensionDelegateId:u,flagFloat:r,onWorkerScriptError:()=>{St()},onBootProgress:y.onBootProgress,onReadyStall:y.onReadyStall,onLateReady:()=>{St()}}),Io({send:e=>b.client.sendRaw(e)}),d?.(b.client);let t=Mo(b.client);return{client:Q(e.wiring),host:t,workbench:(e,s)=>{x=Ud(e,b.client,s,t,n,{instanceId:o,standalone:{browser:i,floatKind:h,realCdpTransport:a,runtimeMode:r},kernelReadyDeadline:{pause:()=>b.pauseReadyDeadline(),restart:()=>b.restartReadyDeadline()}})}}}});S.setRestoringSessions(!0);let{setupSudoStandalone:ee}=await t(async()=>{let{setupSudoStandalone:e}=await import(`./main-CraGyWI5.js`).then(e=>e.c);return{setupSudoStandalone:e}},__vite__mapDeps([55,1,56,2,3,8,9,10,11,12,13,14,15,16,17,18,19,5,20,21,22,23,24,25,26,27,28,29,6,7,30,31,32,33,34,35,37,57,58]));await ee({log:n});try{await b.ready}finally{y.dismiss()}S.wiring.notifyReady?.(),S.setRestoringSessions(!1),globalThis.__slicc_kernel_ready=!0,n.info(`WC live shell ready`,{scoops:b.client.getScoops().length}),x?.();let{consumeAutoPrompt:te}=await t(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),C=te(window.location.search);C&&(S.getController()?.sendUserMessage(C),n.info(`Auto-prompt submitted`,{length:C.length}))}export{Qa as A,Hi as B,Ao as C,Ya as D,oo as E,Zi as F,sr as G,Nr as H,wa as I,Xi as L,eo as M,ro as N,no as O,ao as P,Ja as R,Mo as S,so as T,kr as U,Zr as V,xr as W,Ac as _,zl as a,Q as b,kl as c,Nl as d,Jc as f,jc as g,kc as h,Bl as i,to as j,io as k,Tl as l,Vc as m,xd as n,El as o,qc as p,lu as r,jl as s,Ud as t,Ol as u,Mc as v,ho as w,Fo as x,Oc as y,Sa as z};
|