sliccy 6.99.8 → 6.99.9
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/node-server/_shared/tray-signaling.d.ts +2 -0
- package/dist/node-server/_shared/tray-signaling.d.ts.map +1 -1
- package/dist/ui/.vite/manifest.json +116 -116
- package/dist/ui/assets/{account-store-BHr78r-q.js → account-store-CYMEkNNe.js} +1 -1
- package/dist/ui/assets/{account-store-DhN2-vXh.js → account-store-ktNi3pcb.js} +1 -1
- package/dist/ui/assets/{adobe-C-61Gw8p.js → adobe-B9bqpVA6.js} +1 -1
- package/dist/ui/assets/{adobe-BgNEArvI.js → adobe-D2l8vW4Z.js} +1 -1
- package/dist/ui/assets/{agent-panels-DwH4FR7k.js → agent-panels-BFjOOqNh.js} +1 -1
- package/dist/ui/assets/{apply-layout-DWTxIKYs.js → apply-layout-C9atHx_R.js} +1 -1
- package/dist/ui/assets/{apps-CDrFK--r.js → apps-bxajdBmb.js} +1 -1
- package/dist/ui/assets/{azure-openai-BCHBeybM.js → azure-openai-B7WXqTuL.js} +1 -1
- package/dist/ui/assets/{azure-openai-C1aiXjjQ.js → azure-openai-DbxXj8zK.js} +1 -1
- package/dist/ui/assets/{cerebras-X5XOc6kT.js → cerebras-CUwJMnYY.js} +1 -1
- package/dist/ui/assets/{cerebras-BWY_xN7G.js → cerebras-CfOSdVHz.js} +1 -1
- package/dist/ui/assets/{connect-surface-BqfnkTNQ.js → connect-surface-BIhkXU-D.js} +1 -1
- package/dist/ui/assets/{fs-qMMHgiDM.js → fs-CvM7tq2t.js} +2 -2
- package/dist/ui/assets/{fs-tsCmhLpU.js → fs-DUneCuZW.js} +1 -1
- package/dist/ui/assets/git-config-Bdgu8kD2.js +7 -0
- package/dist/ui/assets/git-config-D2u6LGfT.js +5 -0
- package/dist/ui/assets/{github-CLAenO0m.js → github-CHdABf-3.js} +2 -2
- package/dist/ui/assets/{github-TenSKQL4.js → github-DvD4qs-U.js} +1 -1
- package/dist/ui/assets/{github-copilot-CvxZKmtr.js → github-copilot-BB3QwaLu.js} +1 -1
- package/dist/ui/assets/{github-copilot-B-pJOojX.js → github-copilot-K0sRIoSq.js} +1 -1
- package/dist/ui/assets/{github-install-CSrLhUFy.js → github-install-vA3zHPFd.js} +1 -1
- package/dist/ui/assets/{github-zip-KaxQyKKS.js → github-zip-C7KlmYg5.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-CXQhPnY0.js → js-realm-worker-CJBsByLD.js} +1 -1
- package/dist/ui/assets/{kernel-worker-BpjE-7BD.js → kernel-worker-DL4H-NBi.js} +27 -27
- package/dist/ui/assets/{local-llm-onyoDvHB.js → local-llm-BxbXSRY1.js} +1 -1
- package/dist/ui/assets/{local-llm-D5B7umV1.js → local-llm-DFV3ffPY.js} +1 -1
- package/dist/ui/assets/{main-DjAHuk3R.js → main-B6Og2ks7.js} +3 -3
- package/dist/ui/assets/{mount-Cr-j5Qvu.js → mount-CqTvny3n.js} +2 -2
- package/dist/ui/assets/{mount-BcopcDTf.js → mount-iK3BWJwS.js} +1 -1
- package/dist/ui/assets/{mount-recovery-DnWemQVb.js → mount-recovery-BNtMtfx7.js} +1 -1
- package/dist/ui/assets/{new-session-DagG-ZZy.js → new-session-Dq10ablA.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-CDgbPc25.js → oauth-bootstrap-BriIqrT5.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DwBmySbw.js → onboarding-orchestrator-Cd0lVIve.js} +1 -1
- package/dist/ui/assets/{openai-codex-CFHJKZXk.js → openai-codex-CrPEnCvZ.js} +1 -1
- package/dist/ui/assets/{openai-codex-B8nK05u1.js → openai-codex-D50qgZ4K.js} +1 -1
- package/dist/ui/assets/{openrouter-brhW7dHW.js → openrouter-0FxeBdE5.js} +1 -1
- package/dist/ui/assets/{openrouter-BQXiRTOg.js → openrouter-Dhsi_ko9.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DuIS_qNZ.js → openrouter-oauth-CIzZhpZg.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DQ7iHoUX.js → openrouter-oauth-CpKt1MA8.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-BBgO_HM3.js → panel-rpc-handlers-DRmkHDcC.js} +2 -2
- package/dist/ui/assets/{panelize-shell-DpfBeau6.js → panelize-shell-B1SCUwME.js} +1 -1
- package/dist/ui/assets/{provider-D1IQTDOu.js → provider-CHFkYrg5.js} +1 -1
- package/dist/ui/assets/{provider-VbLD3Pa_.js → provider-DR7pS55u.js} +2 -2
- package/dist/ui/assets/{provider-settings-D24NB2-U.js → provider-settings-QhXeD8p1.js} +1 -1
- package/dist/ui/assets/provider-store-access-BWBUxNsZ.js +1 -0
- package/dist/ui/assets/provider-store-access-WTMg_H8y.js +1 -0
- package/dist/ui/assets/{providers-PfyMAay1.js → providers-CMHd9MFS.js} +1 -1
- package/dist/ui/assets/{providers-CZ_sFfrt.js → providers-D-6LGcDk.js} +2 -2
- package/dist/ui/assets/{quick-llm-drlxgkUg.js → quick-llm-CPywyeCK.js} +1 -1
- package/dist/ui/assets/{recovery-screen-BccxAWe7.js → recovery-screen-CmRYQ0rB.js} +1 -1
- package/dist/ui/assets/{redirect-uri-AfF6uLvV.js → redirect-uri-C8-Woku_.js} +1 -1
- package/dist/ui/assets/{run-BIKu737n.js → run-CxkS2v3b.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-Dxg6pIkQ.js → setup-feature-flags-remote-bBB7gD8w.js} +1 -1
- package/dist/ui/assets/sidecar-repair-CwI_pMMe.js +1 -0
- package/dist/ui/assets/{skills-Cc4T1Cfp.js → skills-D0atjE-P.js} +1 -1
- package/dist/ui/assets/slicc-version-Bc9r0Wca.js +1 -0
- package/dist/ui/assets/{state-B8PB53C0.js → state-o12tamuF.js} +1 -1
- package/dist/ui/assets/{store-SXMbC-35.js → store-BT0FKeS5.js} +1 -1
- package/dist/ui/assets/{store-BsTL1Wgg.js → store-BUjz66P2.js} +1 -1
- package/dist/ui/assets/{sudo-Blo41kLx.js → sudo-Cb_jI2eu.js} +1 -1
- package/dist/ui/assets/{sync-dialog-yRY0wRJj.js → sync-dialog-CV7-2aVT.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DqD1aedt.js → upgrade-detection-CNu3KNsM.js} +1 -1
- package/dist/ui/assets/{voice-reply-B-I-XncI.js → voice-reply-BFImQhAG.js} +1 -1
- package/dist/ui/assets/{wc-attach-DgJVZRem.js → wc-attach-d-lHwJPz.js} +2 -2
- package/dist/ui/assets/{wc-extension-b7ONOPn6.js → wc-extension-p4la3vtz.js} +2 -2
- package/dist/ui/assets/{wc-float-label-d3I12c8W.js → wc-float-label-Dtx9Io98.js} +1 -1
- package/dist/ui/assets/{wc-floatbar-online-CFeU9jju.js → wc-floatbar-online-pmlV024x.js} +1 -1
- package/dist/ui/assets/{wc-follower-BU7l80Bf.js → wc-follower-2DQ7Q3wG.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-DIH7qpbt.js → wc-follower-oauth-BXi7U3s5.js} +1 -1
- package/dist/ui/assets/{wc-live-DL5TcdQ7.js → wc-live-BfpVK1Kd.js} +6 -6
- package/dist/ui/assets/{wc-nav-DjOpEDo-.js → wc-nav-BNZDsOwH.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-BeunqMQZ.js → wc-onboarding-BinmjNb5.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-mYgmrH75.js → wc-placeholder-CPP2DyEf.js} +3 -3
- package/dist/ui/assets/{wc-settings-JfsyJgL9.js → wc-settings-ChigIGe8.js} +3 -3
- package/dist/ui/assets/{wc-shell-B7yZ6nn6.js → wc-shell-C8rORiLz.js} +2 -2
- package/dist/ui/assets/{wc-shortcut-config-CRticSXA.js → wc-shortcut-config-CsiYOxaR.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-D-DWMPsX.js → wc-sprinkles-DwSBE-SU.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-DVjtNvuR.js → wc-transcript-export-CjvhPpom.js} +2 -2
- package/dist/ui/assets/{wc-tray-D6joGkUe.js → wc-tray-g89TbAbd.js} +2 -2
- package/dist/ui/assets/welcome-detection-BHAB2hpt.js +1 -0
- package/dist/ui/assets/{xai-grok-DHRw8xLj.js → xai-grok-CaAyB00w.js} +1 -1
- package/dist/ui/assets/{xai-grok-DIhtpBYR.js → xai-grok-FS5CaRb2.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/git-config-DA8M5e8O.js +0 -7
- package/dist/ui/assets/git-config-DLJIrKjL.js +0 -5
- package/dist/ui/assets/provider-store-access-CFkv-yrf.js +0 -1
- package/dist/ui/assets/provider-store-access-Dh0tBZso.js +0 -1
- package/dist/ui/assets/sidecar-repair-DCvPqdWE.js +0 -1
- package/dist/ui/assets/slicc-version-CzfOvAya.js +0 -1
- package/dist/ui/assets/welcome-detection-CEmFgOCI.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bc3ca2Vl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-DDBAeTLF.js","assets/logger-BoSvu4mW.js","assets/picker-popup-Bwcnocm6.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/src-CAWTvdAa.js","assets/usb-picker-KMes4Lyb.js","assets/serial-picker-NxC1kxYI.js","assets/hid-picker-JPu5knyb.js","assets/usb-device-registry-CRsCisej.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-device-registry-B2R-0rNt.js","assets/quick-llm-
|
|
2
|
-
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{C as t,L as n,Q as r,R as i,S as a,X as o,Z as s,d as c}from"./account-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-Bc3ca2Vl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-DDBAeTLF.js","assets/logger-BoSvu4mW.js","assets/picker-popup-Bwcnocm6.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/src-CAWTvdAa.js","assets/usb-picker-KMes4Lyb.js","assets/serial-picker-NxC1kxYI.js","assets/hid-picker-JPu5knyb.js","assets/usb-device-registry-CRsCisej.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-device-registry-B2R-0rNt.js","assets/quick-llm-CPywyeCK.js","assets/account-store-CYMEkNNe.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-D6lCh6G7.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-gbjkpjE_.js","assets/libesm-BypnjKEL.js","assets/proxied-fetch-BGeNrvQ4.js","assets/base64-DpPqYZJF.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-GRCyib6X.js","assets/float-topology-DiK91BlA.js","assets/secret-topology-0AWfFTh5.js","assets/secrets-bridge-client-DCQ44RyR.js","assets/port-bridge-client-BhmNRlRv.js","assets/image-markers-BXtVm4og.js","assets/tool-ui-DfXu6quJ.js","assets/providers-D-6LGcDk.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-ZLR7gmJ4.js","assets/main-B6Og2ks7.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/telemetry-BVzuNdvW.js","assets/messages-BD4p8GuF.js","assets/feature-flags-ByMXaIc4.js","assets/tray-runtime-config-D7cmCcHJ.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/wc-placeholder-CPP2DyEf.js","assets/wc-shell-C8rORiLz.js","assets/html-B_Hg2WOy.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/wc-shell-WkeczD9x.css","assets/wc-attach-d-lHwJPz.js","assets/permissions-surface-registry-CilCRwhh.js","assets/voice-reply-BFImQhAG.js","assets/speak-BsVaFA0Z.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-_JNZLFlo.js","assets/shared-B9N4MZd0.js","assets/mime-types-ugOWOUZ9.js","assets/soundscape-TvriK11t.js","assets/legacy-styles-DcRu2WCJ.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/new-session-Dq10ablA.js","assets/tray-leader-Mq6HIneb.js","assets/mount-table-store-dY2IfQ5S.js","assets/isomorphic-git-WdgG3efW.js","assets/safe-buffer-iah92gQe.js","assets/remote-vfs-client-CN1pCs1m.js","assets/types-idfTVsM8.js","assets/writable-vfs-client-CuBjWhy3.js","assets/wc-onboarding-BinmjNb5.js","assets/record-C0lt6kKE.js","assets/wc-browser-DdPBkgaJ.js","assets/slicc-app-url-BsBryEhn.js","assets/tab-teleport-Dhh60nH7.js","assets/teleport-storage-CwYntbOB.js","assets/remote-terminal-view-D2bRNJcS.js","assets/picker-approval-D89YhXsA.js","assets/browser-DGwroBSO.js","assets/terminal-session-client-ADzaWGFd.js","assets/secret-env-CjwX7z7b.js","assets/wc-permissions-WjSZrbPa.js","assets/wc-permissions-providers-I39VzaSN.js","assets/panelize-shell-B1SCUwME.js","assets/virtual-device-paths-9EXC9iPp.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-shortcut-config-CsiYOxaR.js","assets/remote-sprinkle-vfs-CawR6gXx.js","assets/wc-sprinkles-DwSBE-SU.js","assets/wc-unit-context-oCIU0KAf.js","assets/agent-panels-BFjOOqNh.js","assets/apply-layout-C9atHx_R.js","assets/wc-tray-g89TbAbd.js","assets/attachments-CByeG2Ru.js","assets/remote-cdp-transport-DeDqT7I4.js","assets/pending-request-table-Dgn6qYdL.js","assets/wc-follower-oauth-BXi7U3s5.js","assets/sprinkle-renderer-C9L5ZRvl.js","assets/export-spool-Eul4J1RP.js","assets/src-BWaKqLvQ.js","assets/handoff-link-BObMRgsx.js","assets/path-utils-DNJG-zQf.js","assets/synthetic-cdp-transport-Ds83IPjw.js","assets/sprinkle-instances-B8n7h-oP.js","assets/wc-transcript-export-CjvhPpom.js","assets/wc-nav-BNZDsOwH.js","assets/composer-speech-Byuwd2QJ.js","assets/whisper-session-Ba-J0yyJ.js","assets/wc-float-label-Dtx9Io98.js","assets/wc-floatbar-online-pmlV024x.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{C as t,L as n,Q as r,R as i,S as a,X as o,Z as s,d as c}from"./account-store-CYMEkNNe.js";import{t as l}from"./preload-helper-Czpn1I53.js";import{o as u}from"./claude-model-version-D6lCh6G7.js";import{t as d}from"./logger-DDBAeTLF.js";import{t as f}from"./attachments-CByeG2Ru.js";import{t as p}from"./mime-types-ugOWOUZ9.js";import{n as m,t as h}from"./base64-DpPqYZJF.js";import{a as g,n as _,r as v,t as y}from"./src-CAWTvdAa.js";import"./proxied-fetch-BGeNrvQ4.js";import{n as ee}from"./runtime-env-Dlaokqg1.js";import{i as b,t as x}from"./api-endpoint-GRCyib6X.js";import{n as te}from"./float-topology-DiK91BlA.js";import"./secret-topology-0AWfFTh5.js";import{t as ne}from"./secrets-bridge-client-DCQ44RyR.js";import{t as re}from"./tool-ui-DfXu6quJ.js";import"./runtime-env-CgsZ7LTp.js";import{a as S,c as ie,l as ae,n as oe,r as se,u as ce}from"./telemetry-BVzuNdvW.js";import{r as le}from"./feature-flags-ByMXaIc4.js";import{c as ue,h as de,i as fe,l as pe}from"./tray-runtime-config-D7cmCcHJ.js";import{i as me,t as he}from"./tray-follower-status-BAjnN7Ar.js";import{a as ge,o as _e,r as ve,s as ye}from"./main-B6Og2ks7.js";import{n as be}from"./src-BWaKqLvQ.js";import{t as xe}from"./permissions-surface-registry-CilCRwhh.js";import{t as C}from"./types-idfTVsM8.js";import{t as Se}from"./html-B_Hg2WOy.js";import{n as Ce,r as we}from"./hid-device-registry-B2R-0rNt.js";import"./browser-DGwroBSO.js";import{a as Te,i as Ee}from"./serial-port-registry-CCqklAEr.js";import{C as De,D as Oe,E as ke,S as Ae,_ as je,a as Me,g as Ne,h as Pe,k as Fe,l as Ie,m as Le,n as Re,o as ze,s as Be,w as Ve,x as He,y as Ue}from"./usb-operations-BBXJ4GF8.js";import{i as We,r as Ge}from"./usb-device-registry-CRsCisej.js";import{t as Ke}from"./icons-ZLR7gmJ4.js";import{n as qe,r as Je}from"./tray-leader-Mq6HIneb.js";import{a as Ye,c as w,d as Xe,i as Ze,l as Qe,n as $e,o as et,r as tt,s as nt,t as rt,u as T}from"./record-C0lt6kKE.js";import{n as it}from"./shared-B9N4MZd0.js";import{C as at,E as ot,G as st,J as ct,S as lt,U as ut,W as dt,_ as ft,a as pt,b as mt,d as ht,f as gt,g as _t,h as vt,i as yt,k as bt,m as xt,n as St,o as Ct,p as wt,r as Tt,t as Et,v as Dt,x as Ot,y as kt}from"./wc-shell-C8rORiLz.js";import{i as At,n as jt,r as Mt}from"./sprinkle-renderer-C9L5ZRvl.js";import{n as Nt}from"./sprinkle-bridge-e00Na2NA.js";import{a as Pt,n as Ft,r as It}from"./theme-CXRqxpw6.js";import{a as Lt,c as Rt,f as zt,i as Bt,l as Vt,m as Ht,n as Ut,o as E,p as Wt,r as Gt,s as Kt,t as qt,u as Jt}from"./wc-unit-context-oCIU0KAf.js";var Yt=`agent-sessions`,Xt=1,D=`sessions`;function Zt(){return new Promise((e,t)=>{let n=indexedDB.open(Yt,Xt);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(D)||e.createObjectStore(D,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Qt=class{dbPromise=null;getDB(){return this.dbPromise||=Zt().then(e=>(e.onversionchange=()=>{e.close(),this.dbPromise=null},e.onclose=()=>{this.dbPromise=null},e)),this.dbPromise}async save(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(D,`readwrite`).objectStore(D).put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(D,`readonly`).objectStore(D).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async delete(e){let t=await this.getDB();return new Promise((n,r)=>{let i=t.transaction(D,`readwrite`).objectStore(D).delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async loadAll(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(D,`readonly`).objectStore(D).getAll();r.onsuccess=()=>t(r.result??[]),r.onerror=()=>n(r.error)})}async list(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(D,`readonly`).objectStore(D).getAll();r.onsuccess=()=>{t((r.result??[]).map(e=>({id:e.id,updatedAt:e.updatedAt})))},r.onerror=()=>n(r.error)})}async clearAll(){let e=await this.getDB();return new Promise((t,n)=>{let r=e.transaction(D,`readwrite`).objectStore(D).clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}static newId(){return`session-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}static createSession(e,t){let n=Date.now();return{id:e,messages:[],config:t,createdAt:n,updatedAt:n}}static updateMessages(e,t){return{...e,messages:t,updatedAt:Date.now()}}},$t=e({SessionStore:()=>rn}),en=`browser-coding-agent`,tn=1,O=`sessions`;function nn(){return new Promise((e,t)=>{let n=indexedDB.open(en,tn);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(O)||e.createObjectStore(O,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var rn=class{db=null;async init(){await this.getDb()}async getDb(){if(!this.db){let e=await nn();e.onversionchange=()=>{e.close(),this.db=null},e.onclose=()=>{this.db=null},this.db=e}return this.db}async save(e){let t=await this.getDb();return new Promise((n,r)=>{let i=t.transaction(O,`readwrite`);i.objectStore(O).put(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=await this.getDb();return new Promise((n,r)=>{let i=t.transaction(O,`readonly`).objectStore(O).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async list(){let e=await this.getDb();return new Promise((t,n)=>{let r=e.transaction(O,`readonly`).objectStore(O).getAll();r.onsuccess=()=>{t(r.result.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id))},r.onerror=()=>n(r.error)})}async delete(e){let t=await this.getDb();return new Promise((n,r)=>{let i=t.transaction(O,`readwrite`);i.objectStore(O).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async saveMessages(e,t){let n=await this.load(e),r=n?{...n,messages:t,updatedAt:Date.now()}:{id:e,messages:t,createdAt:Date.now(),updatedAt:Date.now()};await this.save(r)}},an=e({getTranscriptExportService:()=>sn,registerTranscriptExportService:()=>on}),k=null;function on(e){return k=e,()=>{k===e&&(k=null)}}function sn(){if(!k)throw new v(`session-not-found`);return k}var cn=e({broadcastToDips:()=>Tn,disposeDips:()=>Kn,handleDipPickerAction:()=>qn,hydrateDips:()=>Gn,mountDip:()=>P,setDipExecHandler:()=>Dn}),ln=ee();async function un(e,t){if(t?.aborted)throw new DOMException(`aborted`,`AbortError`);let n=await pn(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 dn=null;function fn(){if(dn)return dn;if(typeof BroadcastChannel>`u`)return null;try{dn=new BroadcastChannel(`preview-vfs`)}catch{return null}return dn}async function pn(e,t,n){let r=fn();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 mn=[`/shared/sprinkles/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`],hn=[`/shared/`,`/workspace/skills/sprinkles/`,`/workspace/sprinkles/`];function gn(e){return mn.some(t=>e.startsWith(t))}function _n(e){return typeof e!=`string`||!e.startsWith(`/`)||e.includes(`..`)?!1:hn.some(t=>e.startsWith(t))}var A=new WeakSet,vn=`,
|
|
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) {
|
|
@@ -383,17 +383,17 @@ ${n}
|
|
|
383
383
|
`}${o}\n`}async function Er(e){if(!e.model||!e.apiKey)return{restructured:!1,reason:`no-llm`};let t=e.memoryPath??_r,n=``;try{let r=await e.vfs.readFile(t,{encoding:`utf-8`});n=typeof r==`string`?r:new TextDecoder().decode(r)}catch{return{restructured:!1,reason:`missing-file`}}let r=await wr(e.vfs),i=Sr(r),a=i*gr;if(n.length<=a)return{restructured:!1,reason:`under-threshold`};pr.info(`Cone memory over threshold — restructuring`,{size:n.length,budget:i,threshold:a,sessionCount:r});try{let r=await Tr({currentContent:n,budget:i,model:e.model,apiKey:e.apiKey,headers:e.headers,signal:e.signal});return await e.vfs.writeFile(t,r),pr.info(`Cone memory restructured`,{before:n.length,after:r.length}),{restructured:!0}}catch(e){return pr.warn(`Cone memory restructure failed — leaving appended content in place`,{error:e instanceof Error?e.message:String(e)}),{restructured:!1,reason:`error`}}}var Dr=d(`agentic-memory`),Or=`/shared/MEMORY.md`,kr=1200,Ar=e=>[e.memoryPath],jr=e=>[`/sessions/`,`/shared/`,...sr(e)],Mr=`awk.cat.cp.cut.date.diff.du.echo.file.find.grep.head.jq.ls.mkdir.mount.mv.nl.od.printf.readlink.sed.sort.stat.tail.touch.tr.uniq.upskill.wc.xxd`.split(`.`),Nr=new Set([`writablePaths`,`visiblePaths`,`allowedCommands`]),Pr=new Set([`model`,`timeoutSeconds`,`thinkingLevel`]),Fr=`medium`,Ir=3e4;function Lr(e){return e===`cone`?`memory-curator`:`memory-curator-${e}`}function Rr(e){let t=Lr(e);return zr.test(t)?t:Lr(rt)}var zr=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;function Br(e){return`/scoops/agent-${Rr(e)}`}var Vr=Br(rt);function Hr(e){return ar({parentJid:null,folder:e?.folder??`cone`})}function Ur(e,t){if(t.root===F.root)return e;if(e===F.memoryPath)return t.memoryPath;if(e===`/workspace/skills`||e.startsWith(`/workspace/skills/`))return e;let n=`${F.root}/`;return e===F.root?t.root:e.startsWith(n)?`${t.root}/${e.slice(n.length)}`:e}function Wr(e,t){let n=`${ir}/`,r=e=>e.some(e=>n.startsWith(e.endsWith(`/`)?e:`${e}/`)),i=e.map(e=>Ur(e,t));return r(e)&&!r(i)&&i.push(n),i}async function Gr(e){try{if(e.signal?.aborted)return{ok:!1,reason:`aborted`,legacyFallbackSafe:!1};let t=Hr(e.cone),n=Br(e.cone?.folder??`cone`),r=await Kr(e.vfs,t),i=R(e.sessionArchivePath);try{await oi(e.vfs,t.memoryPath,e.sessionArchivePath)}catch(e){return{ok:!1,reason:`snapshot: ${z(e)}`,legacyFallbackSafe:!0}}let a=ci(r,li(ui(r.promptTemplate,{MEMORY_PATH:i,SESSION_ARCHIVE_PATH:e.sessionArchivePath,SESSION_COUNT:String(e.sessionCount),BUDGET_CHARS:String(Sr(e.sessionCount)),SCRATCH_DIR:n,TODAY:e.today??new Date().toISOString().slice(0,10)}),n),e.sessionArchivePath,t,e.cone);e.signal&&(a.signal=e.signal);let o=await di(Promise.resolve().then(()=>e.spawn(a)),r.timeoutSeconds*1e3+Ir,e.signal);if(o.type===`timeout`)return Dr.warn(`Agentic memory wait timed out past the in-run bound + grace`,{timeoutSeconds:r.timeoutSeconds,graceMs:Ir}),{ok:!1,reason:`timeout`,legacyFallbackSafe:!1};if(o.type===`aborted`)return{ok:!1,reason:`aborted`,legacyFallbackSafe:!1};if(o.type===`error`)return{ok:!1,reason:z(o.error),legacyFallbackSafe:!0};if(o.result.exitCode!==0){let e=(o.result.finalText??``).startsWith(fr);return{ok:!1,reason:o.result.finalText||`exit-${o.result.exitCode}`,legacyFallbackSafe:!e}}return{ok:!0,report:o.result.finalText}}catch(e){return Dr.warn(`Agentic memory pass failed`,{error:z(e)}),{ok:!1,reason:z(e),legacyFallbackSafe:!1}}}async function Kr(e,t=F){try{let n=await e.readFile(Or,{encoding:`utf-8`});return qr(typeof n==`string`?n:new TextDecoder().decode(n),t)}catch(e){return Dr.warn(`Could not load valid MEMORY.md; using built-in default`,{error:z(e)}),qr(nr,t)}}function qr(e,t=F){let n=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
|
|
384
384
|
`).match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);if(!n?.[2].trim())throw Error(`MEMORY.md requires frontmatter and a prompt`);let r=Yr(n[1]),i=$r(r,`writablePaths`,Ar(t));if(i.length===0)throw Error(`writablePaths must not be empty`);ni(i,`writablePaths`);let a=$r(r,`visiblePaths`,jr(t));ni(a,`visiblePaths`);let o=ti(r.timeoutSeconds),s=ei(r.model,`model`);return{writablePaths:i.map(e=>Ur(e,t)),visiblePaths:Wr(a,t),allowedCommands:[...new Set([...Mr,...$r(r,`allowedCommands`,[])])],...s?{model:s}:{},thinkingLevel:Jr(r.thinkingLevel),timeoutSeconds:o,promptTemplate:n[2].trim()}}function Jr(e){if(e===void 0)return Fr;if(typeof e!=`string`||!dr(e))throw Error(`thinkingLevel must be one of ${ur.join(`, `)}`);return e}function Yr(e){let t={},n=e.split(`
|
|
385
385
|
`);for(let e=0;e<n.length;e+=1){let r=n[e];if(!r.trim()||r.trimStart().startsWith(`#`))continue;let i=r.match(/^([A-Za-z][A-Za-z0-9]*):\s*(.*)$/);if(!i)throw Error(`Invalid frontmatter line: ${r}`);let[,a,o]=i;if(Nr.has(a)){let r=Xr(n,e,o);t[a]=r.value,e=r.lastIndex}else if(Pr.has(a)&&o.trim())t[a]=I(o);else throw Error(`Unsupported or empty frontmatter field: ${a}`)}return t}function Xr(e,t,n){if(n.trim()){let e=n.trim();if(!e.startsWith(`[`)||!e.endsWith(`]`))throw Error(`Expected an array`);let r=e.slice(1,-1).trim();return{value:r?Zr(r):[],lastIndex:t}}let r=[],i=t;for(let n=t+1;n<e.length;n+=1){let t=e[n].match(/^\s+-\s+(.+)$/);if(!t)break;r.push(I(Qr(t[1]))),i=n}return{value:r,lastIndex:i}}function Zr(e){let t=[],n=0,r;for(let i=0;i<e.length;i+=1){let a=e[i];a===`"`||a===`'`?r=r===a?void 0:r??a:a===`,`&&!r&&(t.push(I(e.slice(n,i))),n=i+1)}if(r)throw Error(`Unclosed quoted value`);return t.push(I(e.slice(n))),t}function Qr(e){let t;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`"`||r===`'`)t=t===r?void 0:t??r;else if(r===`#`&&!t&&(n===0||/\s/.test(e[n-1])))return e.slice(0,n).trimEnd()}return e}function I(e){let t=e.trim();if(!t)throw Error(`Empty frontmatter value`);let n=t[0];if((n===`"`||n===`'`)&&t.at(-1)===n)return t.slice(1,-1);if(n===`"`||n===`'`)throw Error(`Unclosed quoted value`);return t}function $r(e,t,n){let r=e[t];if(r===void 0)return[...n];if(!Array.isArray(r)||r.some(e=>!e))throw Error(`${t} is invalid`);return[...r]}function ei(e,t){if(e!==void 0){if(typeof e!=`string`||!e)throw Error(`${t} is invalid`);return e}}function ti(e){if(e===void 0)return 600;if(typeof e!=`string`)throw Error(`timeoutSeconds is invalid`);let t=Number(e);if(!Number.isFinite(t)||t<=0)throw Error(`timeoutSeconds must be positive`);return Math.min(t,kr)}function ni(e,t){if(e.some(e=>!e.startsWith(`/`)||e.includes(`\0`)||t===`writablePaths`&&e===`/`))throw Error(`${t} must contain absolute VFS paths`)}function ri(e){return`/sessions/.curated/${e.slice(e.lastIndexOf(`/`)+1)}`}function L(e){return`/sessions/.curation/${e.slice(e.lastIndexOf(`/`)+1)}`}function ii(e){return`${L(e)}/base.md`}function R(e){return`${L(e)}/draft.md`}function ai(e){return`${L(e)}/status.json`}async function oi(e,t,n){let r=``;try{let n=await e.readFile(t,{encoding:`utf-8`});r=typeof n==`string`?n:new TextDecoder().decode(n)}catch{}await e.mkdir(L(n),{recursive:!0}),await e.writeFile(ii(n),r),await e.writeFile(R(n),r)}function si(e,t,n){let r=e.map(e=>e===t?n:e);return r.includes(n)?r:[...r,n]}function ci(e,t,n,r,i){let a=e.model===`parent`||e.model===`cone`,o=ii(n),s=R(n);return{cwd:r.root,writablePaths:si(e.writablePaths,r.memoryPath,s),visiblePaths:[...e.visiblePaths,`${L(n)}/`],allowedCommands:e.allowedCommands,prompt:t,thinkingLevel:e.thinkingLevel,persistSession:!0,name:Rr(i?.folder??`cone`),...i?.jid?{parentJid:i.jid}:{},notifyOnComplete:!0,successReceiptPath:ri(n),mergeOnSuccess:{targetPath:r.memoryPath,basePath:o,draftPath:s},outcomeReceiptPath:ai(n),maxWallClockMs:e.timeoutSeconds*1e3,...!a&&e.model?{modelId:e.model}:{}}}function li(e,t){return t===Vr?e:e.replaceAll(Vr,t)}function ui(e,t){let n=e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{{${e}}}`,r);return n}function di(e,t,n){return new Promise(r=>{let i=!1,a=e=>{i||(i=!0,clearTimeout(s),n?.removeEventListener(`abort`,o),r(e))},o=()=>a({type:`aborted`}),s=setTimeout(()=>a({type:`timeout`}),t);n?.addEventListener(`abort`,o,{once:!0}),e.then(e=>a({type:`result`,result:e}),e=>a({type:`error`,error:e}))})}function z(e){return e instanceof Error?e.message:String(e)}var B=`/sessions`,V=`/sessions/index.json`;async function H(e){try{let t=await e.readFile(V,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),r=JSON.parse(n);return Array.isArray(r)?r:[]}catch{return[]}}function U(e){return`${B}/${e.filename}`}function fi(e){let t=e,n=`Untitled`,r={},i=t.match(/^---\n([\s\S]*?)\n---\n+/);if(i){t=t.slice(i[0].length);let e=mi(i[1],`cost`),a=mi(i[1],`models`);e&&(r.cost=e),a&&(r.models=a);let o=i[1].match(/^cone:\s*(.+?)\s*$/m)?.[1];o&&(r.cone=o);let s=i[1].match(/^coneLabel:\s*(.+?)\s*$/m)?.[1];s&&(r.coneLabel=pi(s)),/^memorySkipped:\s*true\s*$/m.test(i[1])&&(r.memorySkipped=!0);let c=i[1].match(/^title:\s*(.+?)\s*$/m);c&&(n=pi(c[1]))}let a=t.match(/<!-- slicc:session-data\n([\s\S]*?)\n-->\n*/);if(a){try{let e=a[1].replace(/-- >/g,`-->`),t=JSON.parse(e);if(Array.isArray(t))return{title:n,messages:t,...r}}catch{}t=t.replace(/<!-- slicc:session-data\n[\s\S]*?\n-->\n*/,``)}return t=t.replace(/^#\s+[^\n]*\n+/,``),{title:n,messages:hi(t),...r}}function pi(e){let t=e.trim();if(!t.startsWith(`"`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.replace(/^"|"$/g,``)}function mi(e,t){let n=RegExp(`^${t}:\\s*(.+?)\\s*$`,`m`).exec(e)?.[1];if(n)try{return JSON.parse(n)}catch{return}}function hi(e){let t=[],n=/^## (User|Assistant)\s*\n/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({role:i[1]===`User`?`user`:`assistant`,start:i.index,bodyStart:i.index+i[0].length});for(let n=0;n<r.length;n++){let i=n+1<r.length?r[n+1].start:e.length,a=e.slice(r[n].bodyStart,i).trim();t.push({id:`frozen-${n}`,role:r[n].role,content:a,timestamp:0})}return t}function gi(e){let t=``;for(let n of e){let e=n.role===`user`?`User`:`Assistant`,r=n.role===`user`?ct(n.content):n.content;if(t+=`## ${e}\n${r}\n\n`,n.attachments?.length&&(t+=`Attachments:\n${n.attachments.map(e=>`- ${f(e)}`).join(`
|
|
386
|
-
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var _i=e({PENDING_SESSION_ATTEMPT_LIMIT:()=>3,SESSIONS_INDEX_PATH:()=>V,curateFrozenSessionMemories:()=>Ci,enrichPendingSession:()=>ra,freezeConeSession:()=>Si,listPendingEnrichments:()=>ea,markSnapshotUnavailable:()=>ba,processPendingSessions:()=>ta,readSessionsIndex:()=>H}),W=d(`session-freezer`),vi=4,yi=2048,bi=40,xi=`${B}/attachments`;async function Si(e){let t=await Bi(e.sessionStore,Ri(e));if(!t||t.messages.length<vi)return W.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=Vi(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);!e.agenticMemorySpawn&&e.memory!==`skip`&&await Ei(e,n,i);let a=await Di(e,n,i)||qi(t.messages);return await Oi(e,t,a,r,i?await wi(e,a):void 0,!!e.agenticMemorySpawn&&e.memory!==`skip`)}async function Ci(e,t){let n=Vi(t.archive.messages),r;try{r=await Gr({spawn:e.agenticMemorySpawn,vfs:e.vfs,sessionArchivePath:U(t),sessionCount:await wr(e.vfs),...e.cone?{cone:e.cone}:{}})}catch(e){r={ok:!1,reason:e instanceof Error?e.message:String(e),legacyFallbackSafe:!1}}if(r.ok){let n=await ha(e.vfs,t.filename);return await oa(e.vfs,t.filename),n?(delete t.memoryPending,W.info(`Agentic memory pass completed`,{filename:t.filename}),n):(W.info(`Agentic memory pass completed; index entry already gone`,{filename:t.filename}),null)}return await _a(e.vfs,t.filename,r.reason),r.legacyFallbackSafe?(W.warn(`Agentic memory pass failed after finishing — falling back to legacy extraction`,{filename:t.filename,reason:r.reason}),await Ei(e,n,!0),null):(W.warn(`Agentic memory pass unfinished — entry stays pending for boot catch-up`,{filename:t.filename,reason:r.reason,attemptLimit:3}),null)}async function wi(e,t){try{return Ti(await(e.pickIcon??(await l(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-
|
|
386
|
+
`)}\n\n`),n.toolCalls)for(let e of n.toolCalls)t+=`### Tool: ${e.name}\nInput: ${JSON.stringify(e.input,null,2)}\nResult: ${e.result??``}\n\n`}return t}var _i=e({PENDING_SESSION_ATTEMPT_LIMIT:()=>3,SESSIONS_INDEX_PATH:()=>V,curateFrozenSessionMemories:()=>Ci,enrichPendingSession:()=>ra,freezeConeSession:()=>Si,listPendingEnrichments:()=>ea,markSnapshotUnavailable:()=>ba,processPendingSessions:()=>ta,readSessionsIndex:()=>H}),W=d(`session-freezer`),vi=4,yi=2048,bi=40,xi=`${B}/attachments`;async function Si(e){let t=await Bi(e.sessionStore,Ri(e));if(!t||t.messages.length<vi)return W.info(`Skipping freeze: session below threshold or missing`,{messageCount:t?.messages.length??0}),null;let n=Vi(t.messages),r=e.mode??`full`,i=r===`full`&&!!(e.apiKey&&e.model);!e.agenticMemorySpawn&&e.memory!==`skip`&&await Ei(e,n,i);let a=await Di(e,n,i)||qi(t.messages);return await Oi(e,t,a,r,i?await wi(e,a):void 0,!!e.agenticMemorySpawn&&e.memory!==`skip`)}async function Ci(e,t){let n=Vi(t.archive.messages),r;try{r=await Gr({spawn:e.agenticMemorySpawn,vfs:e.vfs,sessionArchivePath:U(t),sessionCount:await wr(e.vfs),...e.cone?{cone:e.cone}:{}})}catch(e){r={ok:!1,reason:e instanceof Error?e.message:String(e),legacyFallbackSafe:!1}}if(r.ok){let n=await ha(e.vfs,t.filename);return await oa(e.vfs,t.filename),n?(delete t.memoryPending,W.info(`Agentic memory pass completed`,{filename:t.filename}),n):(W.info(`Agentic memory pass completed; index entry already gone`,{filename:t.filename}),null)}return await _a(e.vfs,t.filename,r.reason),r.legacyFallbackSafe?(W.warn(`Agentic memory pass failed after finishing — falling back to legacy extraction`,{filename:t.filename,reason:r.reason}),await Ei(e,n,!0),null):(W.warn(`Agentic memory pass unfinished — entry stays pending for boot catch-up`,{filename:t.filename,reason:r.reason,attemptLimit:3}),null)}async function wi(e,t){try{return Ti(await(e.pickIcon??(await l(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CPywyeCK.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([15,1,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,38,39]))).pickLucideIcon)({subject:`"${t}" — 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 Ti(e){if(e)return Ke(e)?e:void 0}async function Ei(e,t,n){if(!n){W.info(`LLM unavailable — skipping memory extraction; freezing anyway`);return}let i=``;try{i=await r({messages:t,instruction:o,model:e.model,apiKey:e.apiKey,maxTokens:yi,headers:e.headers})}catch(e){W.warn(`Memory extraction call failed (freeze still proceeds)`,{error:e instanceof Error?e.message:String(e)});return}if(!i.trim()||i.trim()===`NONE`){W.info(`Memory extraction returned no durable memories`);return}try{await Qi(e.vfs,zi(Ri(e)),i.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 Di(e,t,n){if(!n)return``;try{return Ki(await r({messages:t,instruction:s,model:e.model,apiKey:e.apiKey,maxTokens:bi,headers:e.headers}))}catch(e){return W.warn(`Title generation call failed (using heuristic)`,{error:e instanceof Error?e.message:String(e)}),``}}async function Oi(e,t,n,r,i,a=!1){let o=new Date().toISOString(),s=crypto.randomUUID(),c=r===`quick`?`pending-${Yi()}.md`:`${o.replace(/[:.]/g,`-`)}-${Ji(n)}.md`,l=ki(t.messages),u=Ri(e),d={cone:u,...u!==`cone`&&e.cone?.label?{coneLabel:e.cone.label}:{}},f={filename:c,sessionId:s,title:n,frozenAt:o,messageCount:t.messages.length,...l??{},...d,...i?{icon:i}:{},...r===`quick`?{pendingEnrichment:!0}:{},...a?{memoryPending:!0}:{},...e.memory===`skip`?{memorySkipped:!0}:{}};try{await Zi(e.vfs,B);let r=await Mi(e.vfs,t.messages,c.replace(/\.md$/,``)),i={id:t.id,title:n,frozenAt:o,createdAt:t.createdAt,updatedAt:t.updatedAt,messageCount:t.messages.length,messages:r,...l??{},...d,...e.memory===`skip`?{memorySkipped:!0}:{}},a=Gi(i);return await e.vfs.writeFile(`${B}/${c}`,a),await $i(e.vfs,f),await e.vfs.flush(),W.info(`Cone session frozen`,{filename:c,title:n,cone:u,messageCount:t.messages.length}),{...f,archive:i}}catch(e){return W.warn(`Failed to write frozen session to VFS`,{error:e instanceof Error?e.message:String(e)}),null}}function ki(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||!ji(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 Ai(e){return typeof e==`number`&&Number.isFinite(e)}function ji(e){let{cost:t}=e;return[e.input,e.output,e.cacheRead,e.cacheWrite].every(Ai)&&[t.input,t.output,t.cacheRead,t.cacheWrite,t.total].every(Ai)}async function Mi(e,t,n){let r={vfs:e,archiveDir:`${xi}/${n}`,copiedPaths:new Map,fileIndex:0},i=[];for(let e of t){if(!e.attachments?.some(Fi)){i.push(e);continue}let t=[];for(let n of e.attachments)t.push(await Ni(r,n));i.push({...e,attachments:t})}return i}async function Ni(e,t){if(!Fi(t))return t;let n=e.copiedPaths.get(t.path);if(n)return{...t,path:n};let r=await Pi(e.vfs,t.path);if(!r)return Li(t);let i=t.name.replace(/[^A-Za-z0-9._-]+/g,`_`)||`attachment`,a=`${e.archiveDir}/${e.fileIndex++}-${i}`;return await Zi(e.vfs,e.archiveDir),await e.vfs.writeFile(a,r),e.copiedPaths.set(t.path,a),{...t,path:a}}async function Pi(e,t){try{if(!await Ii(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 Fi(e){return typeof e.path==`string`&&e.path.startsWith(`/tmp/`)&&e.data===void 0&&e.text===void 0}async function Ii(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 Li(e){let{path:t,...n}=e;return{...n,error:e.error??`Archived attachment file is missing or unsafe to preserve.`}}function Ri(e){return e.cone?.folder||`cone`}function zi(e){return ar({parentJid:null,folder:e}).memoryPath}async function Bi(e,t){let n=$e({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}}function Vi(e){return e.map(e=>({role:e.role,content:[{type:`text`,text:e.content}],timestamp:e.timestamp}))}var Hi=`<!-- slicc:session-data
|
|
387
387
|
`,Ui=`
|
|
388
388
|
-->`;function Wi(e){return e.map(e=>{let t={id:e.id,role:e.role,content:e.content,timestamp:e.timestamp};return e.attachments?.length&&(t.attachments=e.attachments),e.toolCalls?.length&&(t.toolCalls=e.toolCalls.map(e=>({id:e.id,name:e.name,input:e.input,...e.result===void 0?{}:{result:e.result},...e.isError?{isError:e.isError}:{}}))),e.source&&(t.source=e.source),e.channel&&(t.channel=e.channel),t})}function Gi(e){let t=(e.cost?`cost: ${JSON.stringify(e.cost)}\n`:``)+(e.models?`models: ${JSON.stringify(e.models)}\n`:``),n=(e.cone?`cone: ${e.cone}\n`:``)+(e.coneLabel?`coneLabel: ${JSON.stringify(e.coneLabel)}\n`:``)+(e.memorySkipped?`memorySkipped: true
|
|
389
389
|
`:``),r=`---\nid: ${e.id}\ntitle: ${JSON.stringify(e.title)}\nfrozenAt: ${e.frozenAt}\ncreatedAt: ${e.createdAt}\nupdatedAt: ${e.updatedAt}\nmessageCount: ${e.messageCount}\n`+t+n+`---
|
|
390
390
|
|
|
391
391
|
`,i=`${Hi}${JSON.stringify(Wi(e.messages)).replace(/-->/g,`-- >`)}${Ui}\n\n`,a=`# ${e.title}\n\n`;return r+i+a+gi(e.messages)}function Ki(e){let t=e.trim();return t=t.replace(/^["'`]+|["'`]+$/g,``).trim(),t=t.replace(/\s+/g,` `),t.length>80&&(t=t.slice(0,80).trimEnd()),t}function qi(e){let t=e.find(e=>e.role===`user`);if(!t?.content)return`untitled-session`;let n=t.content.trim().replace(/\s+/g,` `);return n.length>60?`${n.slice(0,60)}…`:n||`untitled-session`}function Ji(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)||`session`}function Yi(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`}function Xi(e){return e.startsWith(`pending-`)}async function Zi(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function Qi(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 C)||t.code!==`ENOENT`)throw t;await Zi(e,a.slice(0,a.lastIndexOf(`/`)))}let s=`## Auto-extracted (${new Date().toISOString().slice(0,10)}, ${r})`,c=`${o.length===0||o.endsWith(`
|
|
392
392
|
`)?``:`
|
|
393
|
-
`}\n${s}\n\n${n}\n`;await e.writeFile(a,o+c);try{await Er({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 $i(e,t){let n=[];try{let t=await e.readFile(V,{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 C)||e.code!==`ENOENT`)throw e}let r=[t,...n.filter(e=>e.filename!==t.filename)];await e.writeFile(V,JSON.stringify(r,null,2))}async function ea(e){return(await H(e)).filter(e=>(e.pendingEnrichment===!0||e.memoryPending===!0)&&na(e)<3)}async function ta(e){let t={attempted:0,completed:0};if(!e.model||!e.apiKey)return t;try{for(let t of await H(e.vfs))t.memoryPending===!0&&t.memoryFailed===void 0&&na(t)>=3&&await _a(e.vfs,t.filename,`catch-up retries exhausted (3)`);let n=await ea(e.vfs);for(let r of n)try{let n=await ga(e.vfs,r.filename);if(!n)continue;t.attempted+=1,await ra(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 na(e){let t=e.pendingAttemptCount;return typeof t==`number`&&Number.isInteger(t)&&t>0?t:0}async function ra(e,t,n){if(!t.pendingEnrichment&&!t.memoryPending)return null;let r=await ca(e,t);if(r===null)return null;let i=la(t,r);if(i===null)return null;let a=t.memoryPending===!0&&n.skipMemory!==!0&&await aa(e,t),o=a||t.memorySkipped===!0?{...n,skipMemory:!0}:n,s=await ua(t,i,o);if(s===null)return null;let c=await sa(o,s.newTitle);await da(e,t,s.bullets,o);let l=await pa(e,t,r,s.newTitle,c,n.skipMemory===!0);return l&&a&&(await oa(e,t.filename),await va(e,l.filename),await ia(e,t.filename)),l}async function ia(e,t){for(let n of[ii(`/sessions/${t}`),R(`/sessions/${t}`)])try{await e.rm(n)}catch{}}async function aa(e,t){try{return await e.stat(ri(`/sessions/${t.filename}`)),!0}catch{return!1}}async function oa(e,t){try{await e.rm(ri(`/sessions/${t}`))}catch{}}async function sa(e,t){if(e.pickIcon)try{return await Ti(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 ca(e,t){try{let n=await e.readFile(U(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}}function la(e,t){let n;try{n=fi(t).messages}catch(t){return W.warn(`Failed to parse pending archive — leaving entry intact`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return n.length===0?(W.info(`Pending archive has no messages — skipping enrichment`,{filename:e.filename}),null):Vi(n)}async function ua(e,t,n){let i=``;if(!n.skipMemory)try{i=await r({messages:t,instruction:o,model:n.model,apiKey:n.apiKey,maxTokens:yi,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=Ki(await r({messages:t,instruction:s,model:n.model,apiKey:n.apiKey,maxTokens:bi,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 da(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await Qi(e,zi(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}:{},...a?{icon:a}:{},...e.completeSnapshotUnavailable?{completeSnapshotUnavailable:!0}:{},...i&&e.memoryPending?{memoryPending:!0}:{},...e.memorySkipped?{memorySkipped:!0}:{}}}async function pa(e,t,n,r,i,a=!1){let o=U(t),s=Xi(t.filename),c=s?r:t.title,l=s?`${t.frozenAt.replace(/[:.]/g,`-`)}-${Ji(r)}.md`:t.filename,u=`${B}/${l}`;if(s)try{await Zi(e,B),await e.writeFile(u,ma(n,c))}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);try{await ya(e,t.filename,d)}catch(e){return W.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),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 e.flush()}catch{}return W.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:l,title:c}),d}function ma(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}var G=Promise.resolve();async function ha(e,t){let n=null,r=async()=>{let r=await H(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(V,JSON.stringify(d,null,2)),await e.flush(),n=u},i=G.then(r,r);G=i.then(()=>void 0,()=>void 0);try{await i}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 ga(e,t){let n=null,r=async()=>{let r=await H(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r[i];if(!a.pendingEnrichment&&!a.memoryPending)return;let o=na(a);if(o>=3)return;n={...a,pendingAttemptCount:o+1};let s=r.slice();s[i]=n,await e.writeFile(V,JSON.stringify(s,null,2)),await e.flush()},i=G.then(r,r);return G=i.then(()=>void 0,()=>void 0),await i,n}async function _a(e,t,n){let r=async()=>{let r=await H(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(V,JSON.stringify(a,null,2)),await e.flush()},i=G.then(r,r);G=i.then(()=>void 0,()=>void 0);try{await i}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=async()=>{let n=await H(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(V,JSON.stringify(o,null,2)),await e.flush()},r=G.then(n,n);G=r.then(()=>void 0,()=>void 0);try{await r}catch(e){W.warn(`Failed to record curator completion in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function ya(e,t,n){let r=async()=>{let r=[];try{let t=await e.readFile(V,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(n);Array.isArray(i)&&(r=i)}catch(e){if(!(e instanceof C)||e.code!==`ENOENT`)throw e}let i=r.findIndex(e=>e.filename===t),a;i===-1?a=[n,...r.filter(e=>e.filename!==n.filename)]:(a=r.slice(),a[i]=n,a=a.filter((e,t)=>t===i||e.filename!==n.filename)),await e.writeFile(V,JSON.stringify(a,null,2))},i=G.then(r,r);return G=i.then(()=>void 0,()=>void 0),i}async function ba(e,t){let n=async()=>{let n=[];try{let t=await e.readFile(V,{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 C)||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(V,JSON.stringify(r,null,2))},r=G.then(n,n);return G=r.then(()=>void 0,()=>void 0),r}var xa=`slicc:followers-changed`;function Sa(e){let t=e.replace(/^follower-/,``);return t.length>12?`${t.slice(0,8)}…`:t}function Ca(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 wa(e){return e.floatType===`ios`?`smartphone`:e.floatType===`electron`||e.floatType===`standalone`?`monitor`:e.floatType===`extension`?`blocks`:e.runtime?.includes(`cli`)?`terminal`:`radio`}function Ta(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 Ea(e){return e.health===`stalled`?`warn`:e.peerState===`connecting`?`idle`:e.peerState===`connected`&&e.health===`live`?`active`:`idle`}function Da(e,t=Date.now()){let n=e.health===`stalled`?`stalled`:e.peerState===`connecting`?`connecting`:`connected`,r=Ta(e.connectedAt,t);return r?`${n} ${r}`:n}function Oa(e){let t=[];return e.exec&&t.push(`can run commands`),e.cdp&&t.push(`hosts tabs`),t}function ka(e){return`${Ca(e)} · ${Sa(e.runtimeId)}`}function Aa(e){return e.motd??e.runtime??void 0}function ja(e,t=Date.now()){return e.map(e=>({id:e.runtimeId,icon:wa(e),title:ka(e),detail:Aa(e),state:Ea(e),stateText:Da(e,t),chips:Oa(e)}))}var Ma=`__slicc_binary__`,Na=`b64`;function Pa(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[Ma]===Na&&typeof t.data==`string`}function Fa(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)}function Ia(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)&&!Pa(e)}function La(e){if(e instanceof Uint8Array)return{[Ma]:Na,data:m(e)};if(Array.isArray(e))return e.map(La);if(Fa(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=La(r);return t}return e}function Ra(e){if(Pa(e))return h(e.data);if(Array.isArray(e))return e.map(Ra);if(Ia(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=Ra(r);return t}return e}var za=d(`panel-transport`);function Ba(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Va(){return{onMessage:e=>{let t=(t,n,r)=>(Ba(t)&&e(Ra(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=La(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{za.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Ha=`unknown-parent`,K=d(`offscreen-client`),Ua=class{eventListeners=new Set;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;toolDepth=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingAgentSpawnRequests=new Map;pendingThinkingAcks=new Map;pendingModelAcks=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._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){K.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??Va(),this.setupMessageListener()}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}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}:{}})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e,t={}){if(!w(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&&w(t)&&T(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`})}setScoopModel(e,t){let n=`model-${q()}`,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-${q()}`,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){let t=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingClearAcks.set(t,e)});this.send({type:`clear-chat`,requestId:t,...e?{scoopJid:e}:{}}),await Promise.race([n,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(t)}spawnAgent(e){let t=`agent-${q()}`,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&&K.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`}),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}K.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,originLabel:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}sendWebhookEvent(e,t,n){this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n})}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){switch(e.type){case`offscreen-ready`:this.ready?(K.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):K.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state),this.renderCompactionNotice(e.scoopJid,e.state);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`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`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??[]}));break}case`tray-runtime-status`:{let t=e;Wa(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event);break;case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){K.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}}}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}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});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)switch(e.eventType){case`text_delta`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput,toolCallId:e.toolCallId});break}case`tool_end`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_result`,messageId:t,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError,toolCallId:e.toolCallId});break}case`tool_ui`:case`tool_ui_done`:case`tool_progress`:this.handleToolUiAgentEvent(e);break;case`response_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&(this.emitToUI({type:`content_done`,messageId:t,model:e.model,usage:e.usage}),this.currentMessageId.delete(e.scoopJid));break}case`turn_end`:{let t=this.currentMessageId.get(e.scoopJid)??`done-${e.scoopJid}-${q()}`;this.currentMessageId.delete(e.scoopJid),this.emitToUI({type:`turn_end`,messageId:t});break}}}renderCompactionNotice(e,t){if(e!==this.selectedScoopJid)return;let n;if(t===`summarizing`)n=`Context window almost exceeded — compacting history…`;else if(t===`fallback`)n=`Compaction summarization failed — continuing with older messages truncated.`;else return;let r=`compaction-${e}-${q()}`;this.emitToUI({type:`message_start`,messageId:r}),this.emitToUI({type:`content_delta`,messageId:r,text:n}),this.emitToUI({type:`content_done`,messageId:r})}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.coneJidFromRecords(this.scoops));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)}handleScoopModelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&(t.model=e.model?{...e.model}:void 0)}this.pendingModelAcks.get(e.requestId)?.(e.applied)}handleThinkingLevelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&et(t,e.level===void 0?void 0:{level:e.level,effortOverride:e.effortOverride})}this.pendingThinkingAcks.get(e.requestId)?.(e.applied)}handleScoopList(e){this.scoops=e.scoops.map(t=>this.msgScoopToRegistered(t,this.coneJidFromWire(e.scoops)));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){K.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(t=>this.msgScoopToRegistered(t,this.coneJidFromWire(e.scoops)));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&Wa(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){e.scoopJid===this.selectedScoopJid&&this.emitToUI({type:`error`,error:e.error})}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}coneJidFromRecords(e){return e.find(e=>w(e))?.jid??null}coneJidFromWire(e){return e.find(e=>e.parentId===void 0?e.isCone:e.parentId===null)?.jid??null}msgScoopToRegistered(e,t){return Ye({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId===void 0?e.isCone?null:t??Ha:e.parentId,requiresTrigger:!e.isCone,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}})}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){K.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function q(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function Wa(e,t){Je({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),me({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function J(e){return!e.includes(`\0`)}function Ga(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!J(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!J(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(J(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Ka(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 qa(e){let t=Ka(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function Ja(e,t){let n=Ka(e),r=new Map,i=n.onMessage(async e=>{let i=e;if(i?.type){if(i.type===`cdp-cmd`){let r=e;try{let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(i.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(i.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i);return}}});return()=>{i();for(let[e,n]of r)t.off(e,n);r.clear()}}function Ya(){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 Xa(e,t,n){let r=()=>{};return{ready:new Promise((i,a)=>{let o=null,s=null,c=()=>{o!==null&&(clearTimeout(o),o=null)},l=Math.max(1,t.readyStallLimit??(t.onReadyStall?3:1)),u=Date.now(),d=0,f=!1,p=()=>{c(),o=setTimeout(()=>{if(d+=1,d<l){t.onReadyStall?.({elapsedMs:Date.now()-u,stalls:d}),p();return}t.onLateReady?c():r(),f=!0,a(Error(`Kernel worker did not signal ready within ${n*l}ms`))},n)};r=()=>{s!==null&&(e.removeEventListener(`message`,s),s=null),c()},s=e=>{let n=e.data;if(n?.type===`kernel-worker-boot-progress`){d=0,p();return}if(n?.type===`kernel-worker-ready`){if(r(),f){t.onLateReady?.();return}i();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),a(i)}},e.addEventListener(`message`,s),p()}),cleanup:()=>r()}}function Za(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=qa(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Ja(o.port1,n),{ready:u,cleanup:d}=Xa(a.port1,e,r),f={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.99.8-mtb9anv9`,flagFloat:e.flagFloat??null};t.postMessage(f,[a.port2,o.port2]);let p=!1;return{client:c,ready:u,dispose(){if(!p){p=!0,d(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Qa(e){return Za({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-BpjE-7BD.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Ya(),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})}var $a=1048576,eo=`r`;function to(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function no(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++)no(e[r],`${t}/${r}`,n);return}if(typeof e==`object`&&e)for(let[r,i]of Object.entries(e))no(i,`${t}/${to(r)}`,n)}function ro(e,t,n){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=ao(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}function io(e,t,n){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=ao(o,`${t}/${to(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}function ao(e,t,n){return typeof e==`string`?n.get(t)??e:Array.isArray(e)?ro(e,t,n):typeof e==`object`&&e?io(e,t,n):e}function oo(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 so(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new v(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>$a)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new v(`redaction-unavailable`)}if(c.length!==s.length)throw new v(`redaction-unavailable`);r.push(...c),i=o}return r}function co(e,t,n,r){let i=[],a=oo(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=oo(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}=y(t,eo,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 lo(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 uo(e,t,n,r){if(r?.aborted)throw new v(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];no(a,``,o);let s=[...t.entries()],c=await so([...o.map(e=>e.value),...s.map(([,e])=>e)],n,r),l=[],u={},d=1,f=new Map,p=[];for(let e=0;e<o.length;e++){let t=o[e],n=co(t.value,c[e],{kind:`json`,pointer:t.pointer},d);d=n.nextId,n.finalText!==t.value&&f.set(t.pointer,n.finalText),p.push(n)}lo(p,l,u);let m=new Map,h=o.length,g=[];for(let e=0;e<s.length;e++){let[t,n]=s[e],r=co(n,c[h+e],{kind:`attachment`,attachmentId:t},d);d=r.nextId,m.set(t,r.finalText),g.push(r)}lo(g,l,u);let _=ao(e,``,f);return{document:{..._,privacy:{..._.privacy,redactionCounts:u,redactions:l}},textAttachments:m}}function fo(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`}async function po(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}var mo={"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 ho(e,t){return mo[e]??(t===`text-redacted`?`.txt`:`.bin`)}function go(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${ho(t,n)}`}function _o(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 vo(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 yo(e,t,n,r,i){let a=fo(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(_o(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=_o(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 bo(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:_o(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(yo(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function xo(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 So(e,t,n,r,i,a,o){let s=xo(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(yo(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function Co(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=So(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 wo(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,go(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 To(e,t,n,r,i){let{rawAttachments:a,textMap:o}=wo(e,n),s,c;try{let e=await uo({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof v?e:new v(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new v(`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 v(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await po(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function Eo(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}=bo(vo(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}=Co(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 To(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 Do=50;function Oo(e){return $e(e)}function ko(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 Ao(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:w(t)?`cone`:`scoop`,name:t.name,...t.folder&&!w(t)?{folder:t.folder}:{},...t.parentJid?{parentConversationId:t.parentJid}:{},...t.originToolCallId?{originToolCallId:t.originToolCallId}:{},messages:e};o.push(n);let c=Oo(t),l=a.get(c);l&&s.set(t.jid,l.messages)}return{sources:o,chatMessagesByConversation:s}}async function jo(e,t,n={}){let r=e=>n.rootJid===void 0?e:Xe(e,n.rootJid);for(;;){let n=r(e.listScoops());for(;n.some(t=>e.isProcessing(t.jid));)if(t?.aborted||(await e.wait(Do,t),t?.aborted))throw new v(`transfer-aborted`);let i=ko(n,e),[a,o]=await Promise.all([e.loadPersistedSessions(),e.loadUiChatSessions()]);if(t?.aborted)throw new v(`transfer-aborted`);let s=r(e.listScoops());if(i===ko(s,e))return Ao(s,a,o,e)}}function Mo(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function No(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function Po(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(No(t,r++));return n}function Fo(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=No(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 Io(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=No(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 Lo(e,t,n){let r=Mo(t,n),i=Po(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 Ro(e,t,n){let r=Mo(t,n),{blocks:i,excluded:a,images:o}=Fo(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 zo(e,t,n){let r=Mo(t,n),{blocks:i,images:a}=Io(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 Bo(e,t,n){return e.role===`user`?Lo(e,t,n):e.role===`assistant`?Ro(e,t,n):e.role===`toolResult`?zo(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function Vo(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 Ho(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=Bo(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:Vo(e),excludedReasoningBlocks:t,canonicalImages:n}}var Uo=(()=>{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 Wo(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Uo[(t^e[n])&255];return~t>>>0}var Go=new TextEncoder;function Y(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function X(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 Ko(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,Y(r,4,20),Y(r,6,2048),Y(r,8,0),Y(r,10,0),Y(r,12,0),X(r,14,n),X(r,18,t),X(r,22,t),Y(r,26,e.length),Y(r,28,0),r.set(e,30),r}function qo(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,Y(i,4,20),Y(i,6,20),Y(i,8,2048),Y(i,10,0),Y(i,12,0),Y(i,14,0),X(i,16,n),X(i,20,t),X(i,24,t),Y(i,28,e.length),Y(i,30,0),Y(i,32,0),Y(i,34,0),Y(i,36,0),X(i,38,0),X(i,42,r),i.set(e,46),i}function Jo(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,Y(r,4,0),Y(r,6,0),Y(r,8,e),Y(r,10,e),X(r,12,t),X(r,16,n),Y(r,20,0),r}function Yo(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 Xo(e){let t=e.export.generatedAt.slice(0,10),n=e.export.id.slice(0,8);return`slicc-${t}-${e.session.title.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``).slice(0,40)||`transcript`}-${n}.zip`}async function*Zo(e,t,n,r,i){if(n?.aborted)throw i(new v(`transfer-aborted`)),new v(`transfer-aborted`);let a=()=>i(new v(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=be.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=Go.encode(`transcript.json`),f=Wo(i),p=Ko(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 v(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new v(`transfer-aborted`);let t=Go.encode(e),i=Wo(r),a=Ko(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new v(`transfer-aborted`);yield*d(r)}let m=c;for(let e of l){if(n?.aborted)throw new v(`transfer-aborted`);yield*d(qo(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new v(`transfer-aborted`);yield*d(Jo(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 v(`transfer-aborted`)))}}var Qo=4294967295,$o=65535;function es(e,t,n){for(let e of t.keys())if(!Yo(e))throw new v(`schema-invalid`);if(t.size+1>$o)throw new v(`schema-invalid`);for(let e of t.values())if(e.byteLength>Qo)throw new v(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:Xo(e),chunks:Zo(e,t,n,r,i),completion:a}}function ts(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:_},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 ns(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 rs(e){if(!g(e).ok)throw new v(`schema-invalid`)}function is(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 as(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);if(!n)return e;let r=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),i=await crypto.subtle.digest(`SHA-256`,r),a=Array.from(new Uint8Array(i)).map(e=>e.toString(16).padStart(2,`0`)).join(``);return{...e,byteLength:n.length,sha256:a}}))}function os(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 ss=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),rs(i.document),r?.({phase:`packaging`}),es(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await jo(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Ho(n.sources),{document:i,bundleFiles:a}=await Eo({document:ts(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});rs(i),await this.deps.snapshotStore.write(e.sessionId,{document:i,attachments:a})}async buildActiveSnapshot(e,t){t?.({phase:`waiting-for-conversations`}),t?.({phase:`collecting`});let n=await jo(this.deps.collection,e),r=Ho(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=ts(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),Eo({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=await this.deps.snapshotStore.read(e);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 uo(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new v(`redaction-unavailable`)}let a=is(r.attachments,i,e.attachments),o=await as(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,t,n){let r=(await H(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!r)throw new v(`session-not-found`);let i;try{let e=await this.deps.vfs.readFile(`/sessions/${r.filename}`,{encoding:`utf-8`});i=typeof e==`string`?e:new TextDecoder().decode(e)}catch{throw new v(`session-not-found`)}let{title:a,messages:o}=fi(i),s=`legacy-cone`,c=ns(o,s),l=os(i),u={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:_},session:{id:e,title:a,state:`frozen`,...r.frozenAt?{frozenAt:r.frozenAt}:{},...l,completeness:{status:`partial`,missing:[`complete-snapshot-unavailable`,`canonical-agent-history-unavailable`]}},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:0,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:[{id:s,kind:`cone`,name:a,messages:c}],delegations:[],attachments:[]},d=new Map([[s,o]]);return n?.({phase:`redacting`}),Eo({document:u,chatMessagesByConversation:d,knownSecrets:this.deps.knownSecrets,vfsReader:e=>this.readBinaryFromVfs(e),signal:t})}async readBinaryFromVfs(e){let t=await this.deps.vfs.readFile(e,{encoding:`binary`});if(!(t instanceof Uint8Array))throw new v(`attachment-unreadable`);return t}},cs=`/sessions/data`,ls=`document.json`;async function us(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function ds(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new v(`session-not-found`)}function fs(e){return`${cs}/${e}`}function ps(e){return`${cs}/.tmp-${e}`}async function ms(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function hs(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 hs(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function gs(e,t,n){await ms(e,n);let r=await e.readDir(t);for(let i of r){let r=`${t}/${i.name}`,a=`${n}/${i.name}`;if(i.type===`directory`)await gs(e,r,a);else{let t=await e.readFile(r,{encoding:`binary`});await e.writeFile(a,t)}}}async function _s(e,t,n){ds(t);let r=ps(t),i=fs(t),a=new Map(n.document.attachments.filter(e=>e.present&&e.path).map(e=>[e.path,e]));for(let[e]of n.attachments)if(!a.has(e))throw new v(`schema-invalid`);await hs(e,i),await ms(e,r);try{let t=[...n.document.attachments];for(let[e,r]of n.attachments){let n=await us(r),i=a.get(e);if(i!==void 0){let e=t.indexOf(i);e!==-1&&(t[e]={...i,sha256:n,byteLength:r.length})}}let o={...n.document,attachments:t},s=JSON.stringify(o,null,2);if(await e.writeFile(`${r}/${ls}`,s),n.attachments.size>0)for(let[t,i]of n.attachments){let n=`${r}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await ms(e,`${r}/${t.slice(0,a)}`),await e.writeFile(n,i)}await e.flush(),await gs(e,r,i),await e.flush()}catch(t){throw await hs(e,r),t}await hs(e,r)}async function vs(e,t){ds(t);let n=fs(t),r=`${n}/${ls}`,i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new v(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new v(`schema-invalid`)}if(!g(a).ok)throw new v(`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 v(`transfer-corrupt`)}if(await us(i)!==t.sha256)throw new v(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}function ys(e){return`error`in e}function Z(){throw new v(`redaction-unavailable`)}function bs(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&Z(),e.texts}function xs(){return{async redact(e){let t;try{t=await fetch(b(`/api/secrets/redact-export`),{method:`POST`,headers:x({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{Z()}t.ok||Z();let n;try{n=await t.json()}catch{Z()}return bs(n,e.length)}}}function Ss(){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{Z()}return typeof t==`object`&&t&&ys(t)&&Z(),bs(t,e.length)}}}function Cs(){return{async redact(e){let t;try{t=await ne(`secrets.redact-export`,{texts:e})}catch{Z()}return t??Z(),typeof t==`object`&&t&&ys(t)&&Z(),bs(t,e.length)}}}function ws(){return{async redact(e){Z()}}}function Ts(){let e=te();return e===`connect`?ws():e===`extension-direct`?Ss():e===`extension-delegate`?Cs():xs()}function Es(e,t=Date.now){let n=e.parentId===null,r=e.folder??e.name,i={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,...e.config?{config:e.config,configSchemaVersion:3}:{},...e.notifyOnComplete===!1?{notifyOnComplete:!1}:{}};return n||(i.trigger=`@${r}`),i}var Ds=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,Os=`${Ds}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,ks=`${Ds}border:none;background:#d23;color:#fff;`,As=`${Ds}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function js(e,t,n){return{...Es({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function Ms(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 Ns(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 Ps(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=()=>Lt(n.getScoops(),e.getSelected()),u=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},d=e=>{u();let t=Ms(i,{...e,onDismiss:e=>{s===e&&(s=null),e.remove()}});s=t,i.body.append(t),t.show?.()},f=e=>{if(!e.name)return;u();let t=l(),i=js(e.name,n.getScoops(),t?Ze(t):void 0);a=e.name,n.registerScoop(i,e.brief?{description:e.brief,prompt:e.brief}:{}).catch(e=>r.warn(`WC cone create failed`,e)),g()},p=()=>{let e=Ns(i,f);d({heading:`New cone`,body:e,actions:[{text:`Create`,style:Os,data:`create`,onClick:()=>f(e.readDraft())},{text:`Cancel`,style:As,data:`cancel`,onClick:u}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},m=t=>{u();let i=T(n.getScoops()),a=i.find(e=>e.jid===t);if(!a||i.length<=1||o){g();return}o=!0,g(),(async()=>{try{await e.freezeCone(a)}catch(e){r.warn(`WC cone freeze before drop failed`,e)}let t=l()?.jid===a.jid;try{await n.unregisterScoop(a.jid)}catch(e){r.warn(`WC cone drop failed`,e)}if(t){let t=T(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(t)}o=!1,g()})()},h=e=>{let t=E(e),n=i.createElement(`p`);n.textContent=`Its chat goes to the Freezer.`,n.style.cssText=`font-size:0.875rem;margin:0;`,d({heading:`Drop ${t}?`,body:n,actions:[{text:`Drop`,style:ks,data:`drop`,onClick:()=>m(e.jid)},{text:`Cancel`,style:As,data:`cancel`,onClick:u}]})},g=()=>{let t=T(n.getScoops());if(a!==null){let n=t.find(e=>e.name===a&&!e.folder.startsWith(`cone-pending-`));n&&(a=null,e.getSelected()?.jid!==n.jid&&e.selectScoop(n))}let r=c();r?.setAttribute(`cones`,String(t.length)),r?.toggleAttribute(`busy`,o)};return t.addEventListener(`new-cone`,p),t.addEventListener(`drop-cone`,()=>{let e=l();!e||T(n.getScoops()).length<=1||o||h(e)}),g(),{refresh:g,dialog:()=>s}}var Fs=5e3,Is=class{deps;listListeners=new Set;unitListeners=new Map;lastSnapshots=new Map;orphanedReplays=new Map;pendingSnapshots=new Map;constructor(e){this.deps=e}toSummary(e){return Ht(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)})}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.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))}}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:Wt(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 r?t({snapshot:r,type:`snapshot`}):this.deps.getClient()?.requestScoopMessages(e),()=>{n.delete(t),n.size===0&&this.unitListeners.delete(e)}}snapshot(e){let t=this.deps.getClient();if(!t)return Promise.reject(Error(`kernel client not attached`));let n=this.pendingSnapshots.get(e)??new Set;this.pendingSnapshots.set(e,n);let r=()=>{},i=new Promise(e=>{r=e,n.add(e)});t.setSelectedScoopJid(e),t.requestScoopMessages(e);let a=new Promise(t=>{setTimeout(()=>{this.forgetWaiter(e,r),t(this.snapshotFor(e,[],void 0))},Fs)});return Promise.race([i,a]).then(t=>{if(!t)throw Error(`unknown work unit: ${e}`);return t})}send(e,t){let n=this.deps.getClient();return n?(n.sendRaw({attachments:t.attachments,messageId:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,scoopJid:e,text:t.text,type:`user-message`,...t.steer?{steer:!0}:{}}),Promise.resolve()):Promise.reject(Error(`kernel client not attached`))}signal(e,t){return t===`stop`&&this.deps.getClient()?.stopScoop(e),Promise.resolve()}};function Ls(e,t,n,r,i,a){let o=e.map(e=>Ht(e,{awaiting:i===e.jid,fill:n?.get(e.jid),phase:r?.get(e.jid),status:t?.get(e.jid)}));return zt(o,a,at)}function Rs(e){let t=new Is({fills:e.fills,getAwaiting:()=>e.awaitingInput,getClient:()=>e.getClient(),phases:e.phases,statuses:e.statuses});e.workUnits=t;let n=()=>{e.getClient()&&(e.refs.switcher.scoops=zt(t.currentUnits(),e.getSelected()?.jid,at)),e.refreshConeActions?.()};t.subscribeList(()=>n());let r=n;e.refreshScoops=r;let i=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),a=()=>{if(e.getSelected()||i())return;let t=e.getClient()?.getScoops()??[],n=e.pendingUrlContext;if(n?.startsWith(`freezer:`))return;if(n?.startsWith(`scoop:`)||n?.startsWith(`cone:`)){let r=Rt(t,n);if(r){e.pendingUrlContext=null,e.selectScoop(r);return}}let r=qt(t);r&&(e.pendingUrlContext=null,e.selectScoop(r))};return t.wrapCallbacks({onStatusChange:(t,n)=>{let i=e.statuses.get(t),a=n;e.statuses.set(t,a),a!==`ready`&&e.awaitingInput===t&&(e.awaitingInput=null),Wt(i)!==Wt(a)&&(r(),e.notifyScoopStateChanged?.()),e.getSelected()?.jid===t&&e.getController()?.setProcessing(n===`processing`)},onScoopCreated:t=>{r(),!e.getSelected()&&!i()&&!e.pendingUrlContext&&e.selectScoop(t)},onScoopListUpdate:t=>{let n=new Set(t.map(e=>e.jid));for(let t of e.lickBackpressure.keys())n.has(t)||e.lickBackpressure.delete(t);r(),a()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(t,n)=>{e.phases.set(t,n),r(),e.notifyScoopStateChanged?.()},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.jid===t&&n.channel!==`web`&&ut(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?.jid!==t)return;let i=Jt(r);e.getController()?.setLickBackpressure(n.count,n.waitingMs,i)},onMessageUpdate:(t,n)=>{e.getSelected()?.jid===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onScoopMessagesReplaced:(t,n,r)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n,r)},onReady:()=>{r(),a(),e.notifyReady?.()}})}var zs=`slicc:leader-local-model-state-changed`;function Bs(e=window){e.dispatchEvent(new Event(zs))}var Vs=`slicc:leader-model-catalog-changed`;function Hs(e=window){e.dispatchEvent(new Event(Vs))}var Us={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Ws={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Gs(e){return e?Us[e]:void 0}function Ks(e){return e===`max`?`max`:void 0}function qs(e,t){return t===`max`?`max`:(e&&Ws[e])??`off`}var Js=2e3,Ys=1e4,Xs=12e4;function Zs(e){let t=[],n=null,r=e.modelPickerEnabled!==!1,i=e.catalogRetryDelayMs??Js,a=e.catalogRetryMaxDelayMs??Ys,o=e.catalogRetryWindowMs??Xs,s=0,c=null,l=null,u=()=>{if(!r||l!==null)return;let t=Date.now();if(c===null&&(c=t+o),t>=c)return;let n=Math.min(i*2**s,a);l=setTimeout(()=>{l=null;let t=e.getSync();t?.requestModels&&(s+=1,t.requestModels())},n)},d=()=>{l!==null&&clearTimeout(l),l=null,s=0,c=null},f=()=>{let i=n?t.find(e=>e.modelId===n?.activeModelId):void 0;if(!r||!n||!i){e.composerMeta.style.display=`none`,u();return}e.composerMeta.model=i.modelName,e.composerMeta.setAttribute(`thinking`,qs(n.thinkingLevel,n.effortOverride)),e.composerMeta.toggleAttribute(`no-thinking`,!i.reasoning),e.composerMeta.style.removeProperty(`display`),d()},p=t=>{e.interceptLocalHandlers&&t.stopImmediatePropagation()};e.composerMeta.addEventListener(`model-change`,t=>{let r=e.getSync();if(!r)return;p(t);let i=t.detail?.id,a=e.getSelectedScoopJid()??n?.scoopJid;i&&r.selectModel(i,a??void 0),f()},{capture:e.interceptLocalHandlers}),e.composerMeta.addEventListener(`thinking-change`,t=>{let r=e.getSync();if(!r)return;if(p(t),e.getLockedEffortLevel?.()){f();return}let i=t.detail?.thinking,a=Gs(i),o=e.getSelectedScoopJid()??n?.scoopJid;o&&a&&a!==`max`&&r.setThinkingLevel(o,a,Ks(i)),f()},{capture:e.interceptLocalHandlers});let m=()=>{t=[],n=null,d(),e.composerMeta.models=[],e.composerMeta.style.display=`none`};return m(),{onModelsList(n){t=n,e.composerMeta.models=n.map(e=>({id:e.modelId,name:e.modelName,provider:e.providerName})),f()},onModelState(e){n=e,f()},reset:m}}async function Qs(e,t,n,r,i=Bs){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function $s(e,t){return Gt(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||ue(t.localStorage)}async function ec(e,t,n=[]){let r=Vt(t),i=Ut(r);e.thread.setAttribute(`context`,Kt(t));let a=w(t),o=at({isRoot:a,name:t.name});e.thread.setAttribute(`accent`,o),e.switcher.setAttribute(`active`,t.jid),Tt(e,a?{kind:`cone`}:{kind:`scoop`,accent:o}),St(e,i);let s=localStorage.getItem(`slicc_locked_effort_level`),c=nt(t);e.composerMeta.setAttribute(`thinking`,qs(s??c.level,c.effortOverride));try{let{resolveCurrentModel:r,resolveModelById:i}=await l(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-DjAHuk3R.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([40,1,41,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,6,42,43,44,45,46,47,48])),a=Ze(Lt(n,t)??t),o=a?i(a.id,a.provider):r();e.composerMeta.setAttribute(`model`,o.name??o.id),e.composerMeta.toggleAttribute(`no-thinking`,o.reasoning!==!0||!!s)}catch{}}async function tc(e){if($s(e.pendingUrlContext,e.win))return;let t=Gt(e.pendingUrlContext);if(t===null)return;let{SessionStore:n}=await l(async()=>{let{SessionStore:e}=await Promise.resolve().then(()=>$t);return{SessionStore:e}},void 0),r=new n;await r.init();let i=await r.load($e({folder:t}));i&&i.messages.length>0&&!e.hasSelection()&&(e.loadMessages(i.messages),e.onHydrated())}function nc(e){let{boot:t,client:n,agentHandle:r,openReader:i,log:a}=e,{refs:o}=t;l(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-mYgmrH75.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([49,17,50,1,8,33,42,5,6,7,51,39,52,53,54])).then(({createPlaceholderRefresher:n})=>{e.setRefreshPlaceholder(n({inputCard:o.inputCard,getMessages:()=>t.getController()?.getMessages()??[],defaultPlaceholder:o.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),tc({pendingUrlContext:t.wiring.pendingUrlContext,win:window,hasSelection:()=>!!t.getSelected(),loadMessages:e=>t.getController()?.loadMessages(e),onHydrated:e.triggerPlaceholder}).catch(e=>a.warn(`WC session hydration failed`,e));let s=null;return l(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-DgJVZRem.js`);return{wireWcAttach:e}},__vite__mapDeps([55,17,26,8,56])).then(({wireWcAttach:t})=>{s=t({inputCard:o.inputCard,freezer:o.freezer,composer:o.composer,openReader:i,openWriter:e.openWriter,listConversations:async()=>{let{readSessionsIndex:e}=await l(async()=>{let{readSessionsIndex:e}=await Promise.resolve().then(()=>_i);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)),o.switcher.setAttribute(`gaze-target`,`slicc-input-card`),o.inputCard.addEventListener(`input`,()=>{o.switcher.scrutinize(),o.switcher.wake()}),o.inputCard.addEventListener(`submit`,e=>{let n=Ct(e);if(!n)return;t.wiring.awaitingInput=null,t.wiring.refreshScoops?.(),t.wiring.notifyScoopStateChanged?.();let r=e.detail?.source===`dictation`;r&&(l(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-B-I-XncI.js`);return{markVoiceSubmission:e}},__vite__mapDeps([57,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54,58,59,60,25,26,27,28,61,62])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),l(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([63,2,53])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),t.getController()?.sendUserMessage(n,s?.take(),{dictation:r,steer:pt(e)}),o.inputCard.clear?.();let i=t.getSelected()?.jid;i&&(o.switcher.setAttribute(`attention`,i),t.wiring.lastActivity.set(i,n.slice(0,600)))}),o.inputCard.addEventListener(`stop`,()=>{t.getController()?.processing&&r.stop()}),l(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 r=e.detail?.thinking,i=Gs(r),o=Ks(r),s=t.getSelected();s&&i&&Qs(n,s.jid,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>s}}var rc=`<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 ic(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 ac(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(rc));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=ic(e.getMessages());await t(n??gi([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=gi([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function Q(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function oc(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 sc(e){return`
|
|
393
|
+
`}\n${s}\n\n${n}\n`;await e.writeFile(a,o+c);try{await Er({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 $i(e,t){let n=[];try{let t=await e.readFile(V,{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 C)||e.code!==`ENOENT`)throw e}let r=[t,...n.filter(e=>e.filename!==t.filename)];await e.writeFile(V,JSON.stringify(r,null,2))}async function ea(e){return(await H(e)).filter(e=>(e.pendingEnrichment===!0||e.memoryPending===!0)&&na(e)<3)}async function ta(e){let t={attempted:0,completed:0};if(!e.model||!e.apiKey)return t;try{for(let t of await H(e.vfs))t.memoryPending===!0&&t.memoryFailed===void 0&&na(t)>=3&&await _a(e.vfs,t.filename,`catch-up retries exhausted (3)`);let n=await ea(e.vfs);for(let r of n)try{let n=await ga(e.vfs,r.filename);if(!n)continue;t.attempted+=1,await ra(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 na(e){let t=e.pendingAttemptCount;return typeof t==`number`&&Number.isInteger(t)&&t>0?t:0}async function ra(e,t,n){if(!t.pendingEnrichment&&!t.memoryPending)return null;let r=await ca(e,t);if(r===null)return null;let i=la(t,r);if(i===null)return null;let a=t.memoryPending===!0&&n.skipMemory!==!0&&await aa(e,t),o=a||t.memorySkipped===!0?{...n,skipMemory:!0}:n,s=await ua(t,i,o);if(s===null)return null;let c=await sa(o,s.newTitle);await da(e,t,s.bullets,o);let l=await pa(e,t,r,s.newTitle,c,n.skipMemory===!0);return l&&a&&(await oa(e,t.filename),await va(e,l.filename),await ia(e,t.filename)),l}async function ia(e,t){for(let n of[ii(`/sessions/${t}`),R(`/sessions/${t}`)])try{await e.rm(n)}catch{}}async function aa(e,t){try{return await e.stat(ri(`/sessions/${t.filename}`)),!0}catch{return!1}}async function oa(e,t){try{await e.rm(ri(`/sessions/${t}`))}catch{}}async function sa(e,t){if(e.pickIcon)try{return await Ti(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 ca(e,t){try{let n=await e.readFile(U(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}}function la(e,t){let n;try{n=fi(t).messages}catch(t){return W.warn(`Failed to parse pending archive — leaving entry intact`,{filename:e.filename,error:t instanceof Error?t.message:String(t)}),null}return n.length===0?(W.info(`Pending archive has no messages — skipping enrichment`,{filename:e.filename}),null):Vi(n)}async function ua(e,t,n){let i=``;if(!n.skipMemory)try{i=await r({messages:t,instruction:o,model:n.model,apiKey:n.apiKey,maxTokens:yi,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=Ki(await r({messages:t,instruction:s,model:n.model,apiKey:n.apiKey,maxTokens:bi,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 da(e,t,n,r){let i=n.trim();if(!(!i||i===`NONE`))try{await Qi(e,zi(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}:{},...a?{icon:a}:{},...e.completeSnapshotUnavailable?{completeSnapshotUnavailable:!0}:{},...i&&e.memoryPending?{memoryPending:!0}:{},...e.memorySkipped?{memorySkipped:!0}:{}}}async function pa(e,t,n,r,i,a=!1){let o=U(t),s=Xi(t.filename),c=s?r:t.title,l=s?`${t.frozenAt.replace(/[:.]/g,`-`)}-${Ji(r)}.md`:t.filename,u=`${B}/${l}`;if(s)try{await Zi(e,B),await e.writeFile(u,ma(n,c))}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);try{await ya(e,t.filename,d)}catch(e){return W.warn(`Enrichment index update failed (entry may stay pending)`,{filename:t.filename,error:e instanceof Error?e.message:String(e)}),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 e.flush()}catch{}return W.info(`Pending session enriched`,{oldFilename:t.filename,newFilename:l,title:c}),d}function ma(e,t){let n=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!n)return e;let r=n[1].replace(/^title:\s*.+$/m,`title: ${JSON.stringify(t)}`),i=n[2];return i=i.replace(/^#\s+[^\n]*$/m,`# ${t}`),`---\n${r}\n---\n${i}`}var G=Promise.resolve();async function ha(e,t){let n=null,r=async()=>{let r=await H(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(V,JSON.stringify(d,null,2)),await e.flush(),n=u},i=G.then(r,r);G=i.then(()=>void 0,()=>void 0);try{await i}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 ga(e,t){let n=null,r=async()=>{let r=await H(e),i=r.findIndex(e=>e.filename===t);if(i===-1)return;let a=r[i];if(!a.pendingEnrichment&&!a.memoryPending)return;let o=na(a);if(o>=3)return;n={...a,pendingAttemptCount:o+1};let s=r.slice();s[i]=n,await e.writeFile(V,JSON.stringify(s,null,2)),await e.flush()},i=G.then(r,r);return G=i.then(()=>void 0,()=>void 0),await i,n}async function _a(e,t,n){let r=async()=>{let r=await H(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(V,JSON.stringify(a,null,2)),await e.flush()},i=G.then(r,r);G=i.then(()=>void 0,()=>void 0);try{await i}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=async()=>{let n=await H(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(V,JSON.stringify(o,null,2)),await e.flush()},r=G.then(n,n);G=r.then(()=>void 0,()=>void 0);try{await r}catch(e){W.warn(`Failed to record curator completion in sessions index`,{filename:t,error:e instanceof Error?e.message:String(e)})}}async function ya(e,t,n){let r=async()=>{let r=[];try{let t=await e.readFile(V,{encoding:`utf-8`}),n=typeof t==`string`?t:new TextDecoder().decode(t),i=JSON.parse(n);Array.isArray(i)&&(r=i)}catch(e){if(!(e instanceof C)||e.code!==`ENOENT`)throw e}let i=r.findIndex(e=>e.filename===t),a;i===-1?a=[n,...r.filter(e=>e.filename!==n.filename)]:(a=r.slice(),a[i]=n,a=a.filter((e,t)=>t===i||e.filename!==n.filename)),await e.writeFile(V,JSON.stringify(a,null,2))},i=G.then(r,r);return G=i.then(()=>void 0,()=>void 0),i}async function ba(e,t){let n=async()=>{let n=[];try{let t=await e.readFile(V,{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 C)||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(V,JSON.stringify(r,null,2))},r=G.then(n,n);return G=r.then(()=>void 0,()=>void 0),r}var xa=`slicc:followers-changed`;function Sa(e){let t=e.replace(/^follower-/,``);return t.length>12?`${t.slice(0,8)}…`:t}function Ca(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 wa(e){return e.floatType===`ios`?`smartphone`:e.floatType===`electron`||e.floatType===`standalone`?`monitor`:e.floatType===`extension`?`blocks`:e.runtime?.includes(`cli`)?`terminal`:`radio`}function Ta(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 Ea(e){return e.health===`stalled`?`warn`:e.peerState===`connecting`?`idle`:e.peerState===`connected`&&e.health===`live`?`active`:`idle`}function Da(e,t=Date.now()){let n=e.health===`stalled`?`stalled`:e.peerState===`connecting`?`connecting`:`connected`,r=Ta(e.connectedAt,t);return r?`${n} ${r}`:n}function Oa(e){let t=[];return e.exec&&t.push(`can run commands`),e.cdp&&t.push(`hosts tabs`),t}function ka(e){return`${Ca(e)} · ${Sa(e.runtimeId)}`}function Aa(e){return e.motd??e.runtime??void 0}function ja(e,t=Date.now()){return e.map(e=>({id:e.runtimeId,icon:wa(e),title:ka(e),detail:Aa(e),state:Ea(e),stateText:Da(e,t),chips:Oa(e)}))}var Ma=`__slicc_binary__`,Na=`b64`;function Pa(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[Ma]===Na&&typeof t.data==`string`}function Fa(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)}function Ia(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Uint8Array)&&!Pa(e)}function La(e){if(e instanceof Uint8Array)return{[Ma]:Na,data:m(e)};if(Array.isArray(e))return e.map(La);if(Fa(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=La(r);return t}return e}function Ra(e){if(Pa(e))return h(e.data);if(Array.isArray(e))return e.map(Ra);if(Ia(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=Ra(r);return t}return e}var za=d(`panel-transport`);function Ba(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Va(){return{onMessage:e=>{let t=(t,n,r)=>(Ba(t)&&e(Ra(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=La(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{za.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Ha=`unknown-parent`,K=d(`offscreen-client`),Ua=class{eventListeners=new Set;callbacks;scoops=[];scoopStatuses=new Map;currentMessageId=new Map;toolDepth=new Map;ready=!1;stateRetryTimer=null;localFs=null;pendingClearAcks=new Map;pendingAgentSpawnRequests=new Map;pendingThinkingAcks=new Map;pendingModelAcks=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._selectedScoopJid=e,e!==null))for(let t of this.scoopSelectedListeners)try{t(e)}catch(e){K.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??Va(),this.setupMessageListener()}setLocalFS(e){this.localFs=e}getTransport(){return this.transport}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}:{}})},onEvent:e=>(this.eventListeners.add(e),()=>this.eventListeners.delete(e)),stop:()=>{this.selectedScoopJid&&this.send({type:`abort`,scoopJid:this.selectedScoopJid})}}}getScoops(){return this.scoops}getScoop(e){return this.scoops.find(t=>t.jid===e)}isProcessing(e){return this.scoopStatuses.get(e)===`processing`}async registerScoop(e,t={}){if(!w(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&&w(t)&&T(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`})}setScoopModel(e,t){let n=`model-${q()}`,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-${q()}`,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){let t=`clear-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n=new Promise(e=>{this.pendingClearAcks.set(t,e)});this.send({type:`clear-chat`,requestId:t,...e?{scoopJid:e}:{}}),await Promise.race([n,new Promise(e=>setTimeout(e,5e3))]),this.pendingClearAcks.delete(t)}spawnAgent(e){let t=`agent-${q()}`,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&&K.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`}),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}K.debug(`Retrying request-state`,{attempt:e}),this.send({type:`request-state`})},500)}isReady(){return this.ready}sprinkleOpHandler=null;forwardLickHandler=null;sendSprinkleLick(e,t,n,r){this.send({type:`sprinkle-lick`,sprinkleName:e,body:t,targetScoop:n,originLabel:r})}sendToolUiAction(e,t,n){this.send({type:`tool-ui-action`,requestId:e,action:t,data:n})}sendWebhookEvent(e,t,n){this.send({type:`lick-webhook-event`,webhookId:e,headers:t,body:n})}sendSetFollowerForwarding(e){this.send({type:`set-follower-forwarding`,enabled:e})}sendForwardedLick(e){this.send({type:`inject-forwarded-lick`,event:e})}setForwardLickHandler(e){this.forwardLickHandler=e}sendCherryHostEvent(e,t,n){this.send({type:`lick-cherry-host-event`,cherryRuntimeId:e,name:t,detail:n})}sendPreviewLick(e){this.send({type:`lick-preview`,event:e})}setSprinkleOpHandler(e){this.sprinkleOpHandler=e}sendRaw(e){this.send(e)}setupMessageListener(){this.transport.onMessage(e=>{if(e.source!==`offscreen`)return;let t=e.payload;t?.type===`sprinkle-op`&&this.sprinkleOpHandler?this.sprinkleOpHandler(t):this.handleOffscreenMessage(e.payload)})}handleOffscreenMessage(e){switch(e.type){case`offscreen-ready`:this.ready?(K.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):K.info(`Offscreen engine ready`),this.send({type:`request-state`});break;case`agent-event`:this.handleAgentEvent(e);break;case`scoop-status`:this.handleScoopStatus(e);break;case`compaction-state`:this.callbacks.onCompactionStateChange?.(e.scoopJid,e.state),this.renderCompactionNotice(e.scoopJid,e.state);break;case`clear-chat-ack`:{let t=this.pendingClearAcks.get(e.requestId);t&&(this.pendingClearAcks.delete(e.requestId),t());break}case`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`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??[]}));break}case`tray-runtime-status`:{let t=e;Wa(t.leader,t.follower);break}case`forward-lick`:this.forwardLickHandler?.(e.event);break;case`terminal-status`:case`terminal-output`:case`terminal-media-preview`:case`terminal-exit`:case`terminal-cleared`:for(let t of this.terminalEventListeners)try{t(e)}catch(e){K.error(`terminal event listener error`,{error:e instanceof Error?e.message:String(e)})}}}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}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});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)switch(e.eventType){case`text_delta`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=this.currentMessageId.get(e.scoopJid);t||(t=`scoop-${e.scoopJid}-${q()}`,this.currentMessageId.set(e.scoopJid,t),this.emitToUI({type:`message_start`,messageId:t})),this.emitToUI({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput,toolCallId:e.toolCallId});break}case`tool_end`:{let t=this.currentMessageId.get(e.scoopJid);t&&this.emitToUI({type:`tool_result`,messageId:t,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError,toolCallId:e.toolCallId});break}case`tool_ui`:case`tool_ui_done`:case`tool_progress`:this.handleToolUiAgentEvent(e);break;case`response_done`:{let t=this.currentMessageId.get(e.scoopJid);t&&(this.emitToUI({type:`content_done`,messageId:t,model:e.model,usage:e.usage}),this.currentMessageId.delete(e.scoopJid));break}case`turn_end`:{let t=this.currentMessageId.get(e.scoopJid)??`done-${e.scoopJid}-${q()}`;this.currentMessageId.delete(e.scoopJid),this.emitToUI({type:`turn_end`,messageId:t});break}}}renderCompactionNotice(e,t){if(e!==this.selectedScoopJid)return;let n;if(t===`summarizing`)n=`Context window almost exceeded — compacting history…`;else if(t===`fallback`)n=`Compaction summarization failed — continuing with older messages truncated.`;else return;let r=`compaction-${e}-${q()}`;this.emitToUI({type:`message_start`,messageId:r}),this.emitToUI({type:`content_delta`,messageId:r,text:n}),this.emitToUI({type:`content_done`,messageId:r})}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.coneJidFromRecords(this.scoops));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)}handleScoopModelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&(t.model=e.model?{...e.model}:void 0)}this.pendingModelAcks.get(e.requestId)?.(e.applied)}handleThinkingLevelAck(e){if(e.applied){let t=this.getScoop(e.scoopJid);t&&et(t,e.level===void 0?void 0:{level:e.level,effortOverride:e.effortOverride})}this.pendingThinkingAcks.get(e.requestId)?.(e.applied)}handleScoopList(e){this.scoops=e.scoops.map(t=>this.msgScoopToRegistered(t,this.coneJidFromWire(e.scoops)));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);this.callbacks.onScoopListUpdate(e.scoops)}handleStateSnapshot(e){K.info(`Received state snapshot`,{scoopCount:e.scoops.length}),this.scoops=e.scoops.map(t=>this.msgScoopToRegistered(t,this.coneJidFromWire(e.scoops)));for(let t of e.scoops)this.scoopStatuses.set(t.jid,t.status);e.trayRuntimeStatus&&Wa(e.trayRuntimeStatus.leader,e.trayRuntimeStatus.follower);let t=!this.ready;t&&(this.ready=!0,this.stateRetryTimer&&=(clearInterval(this.stateRetryTimer),null)),this.callbacks.onScoopListUpdate(e.scoops),t&&this.callbacks.onReady?.()}handleError(e){e.scoopJid===this.selectedScoopJid&&this.emitToUI({type:`error`,error:e.error})}handleIncomingMessage(e){this.callbacks.onIncomingMessage(e.scoopJid,e.message)}handleMessageUpdated(e){this.callbacks.onMessageUpdate?.(e.scoopJid,{messageId:e.messageId,lickId:e.lickId,lickState:e.lickState})}coneJidFromRecords(e){return e.find(e=>w(e))?.jid??null}coneJidFromWire(e){return e.find(e=>e.parentId===void 0?e.isCone:e.parentId===null)?.jid??null}msgScoopToRegistered(e,t){return Ye({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId===void 0?e.isCone?null:t??Ha:e.parentId,requiresTrigger:!e.isCone,assistantLabel:e.assistantLabel,addedAt:new Date().toISOString(),...e.config?{config:{...e.config}}:{}})}emitToUI(e){for(let t of this.eventListeners)try{t(e)}catch(e){K.error(`Listener error`,{error:e instanceof Error?e.message:String(e)})}}send(e){if(this.locked){this.emitToUI({type:`error`,error:`This window is detached. Close it and use the detached tab.`});return}this.transport.send(e)}};function q(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function Wa(e,t){Je({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),me({state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime})}function J(e){return!e.includes(`\0`)}function Ga(e){if(typeof window>`u`||window.localStorage===void 0)return()=>void 0;let t=window.localStorage,n=typeof Storage<`u`&&t instanceof Storage,r=n?Storage.prototype.setItem:t.setItem.bind(t),i=n?Storage.prototype.removeItem:t.removeItem.bind(t),a=n?Storage.prototype.clear:t.clear.bind(t);if(n){let n=Storage.prototype;n.setItem=function(n,i){if(r.call(this,n,i),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,n);return}e.send({type:`local-storage-set`,key:n,value:i})}},n.removeItem=function(n){if(i.call(this,n),this===t){if(!J(n)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,n);return}e.send({type:`local-storage-remove`,key:n})}},n.clear=function(){a.call(this),this===t&&e.send({type:`local-storage-clear`})}}else{let n=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};n(`setItem`,(t,n)=>{if(r(t,n),!J(t)){console.warn(`[page-storage-sync] dropping localStorage write with NUL in key`,t);return}e.send({type:`local-storage-set`,key:t,value:n})}),n(`removeItem`,t=>{if(i(t),!J(t)){console.warn(`[page-storage-sync] dropping localStorage remove with NUL in key`,t);return}e.send({type:`local-storage-remove`,key:t})}),n(`clear`,()=>{a(),e.send({type:`local-storage-clear`})})}let o=n=>{if(n.storageArea===t){if(n.key===null){e.send({type:`local-storage-clear`});return}if(J(n.key)){if(n.newValue===null){e.send({type:`local-storage-remove`,key:n.key});return}e.send({type:`local-storage-set`,key:n.key,value:n.newValue})}}};return window.addEventListener(`storage`,o),()=>{if(n)Storage.prototype.setItem=r,Storage.prototype.removeItem=i,Storage.prototype.clear=a;else{let e=(e,n)=>{Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0,enumerable:!1})};e(`setItem`,r),e(`removeItem`,i),e(`clear`,a)}window.removeEventListener(`storage`,o)}}function Ka(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 qa(e){let t=Ka(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function Ja(e,t){let n=Ka(e),r=new Map,i=n.onMessage(async e=>{let i=e;if(i?.type){if(i.type===`cdp-cmd`){let r=e;try{let e=await t.send(r.method,r.params,r.sessionId);n.send({type:`cdp-response`,id:r.id,result:e})}catch(e){n.send({type:`cdp-response`,id:r.id,error:e instanceof Error?e.message:String(e)})}return}if(i.type===`cdp-subscribe`){let i=e;if(r.has(i.event))return;let a=e=>{n.send({type:`cdp-event`,method:i.event,params:e})};r.set(i.event,a),t.on(i.event,a);return}if(i.type===`cdp-unsubscribe`){let n=e,i=r.get(n.event);if(!i)return;r.delete(n.event),t.off(n.event,i);return}}});return()=>{i();for(let[e,n]of r)t.off(e,n);r.clear()}}function Ya(){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 Xa(e,t,n){let r=()=>{};return{ready:new Promise((i,a)=>{let o=null,s=null,c=()=>{o!==null&&(clearTimeout(o),o=null)},l=Math.max(1,t.readyStallLimit??(t.onReadyStall?3:1)),u=Date.now(),d=0,f=!1,p=()=>{c(),o=setTimeout(()=>{if(d+=1,d<l){t.onReadyStall?.({elapsedMs:Date.now()-u,stalls:d}),p();return}t.onLateReady?c():r(),f=!0,a(Error(`Kernel worker did not signal ready within ${n*l}ms`))},n)};r=()=>{s!==null&&(e.removeEventListener(`message`,s),s=null),c()},s=e=>{let n=e.data;if(n?.type===`kernel-worker-boot-progress`){d=0,p();return}if(n?.type===`kernel-worker-ready`){if(r(),f){t.onLateReady?.();return}i();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),a(i)}},e.addEventListener(`message`,s),p()}),cleanup:()=>r()}}function Za(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=qa(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Ja(o.port1,n),{ready:u,cleanup:d}=Xa(a.port1,e,r),f={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.99.9-mtbc33lg`,flagFloat:e.flagFloat??null};t.postMessage(f,[a.port2,o.port2]);let p=!1;return{client:c,ready:u,dispose(){if(!p){p=!0,d(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Qa(e){return Za({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-DL4H-NBi.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Ya(),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})}var $a=1048576,eo=`r`;function to(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function no(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++)no(e[r],`${t}/${r}`,n);return}if(typeof e==`object`&&e)for(let[r,i]of Object.entries(e))no(i,`${t}/${to(r)}`,n)}function ro(e,t,n){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=ao(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}function io(e,t,n){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=ao(o,`${t}/${to(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}function ao(e,t,n){return typeof e==`string`?n.get(t)??e:Array.isArray(e)?ro(e,t,n):typeof e==`object`&&e?io(e,t,n):e}function oo(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 so(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new v(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>$a)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new v(`redaction-unavailable`)}if(c.length!==s.length)throw new v(`redaction-unavailable`);r.push(...c),i=o}return r}function co(e,t,n,r){let i=[],a=oo(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=oo(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}=y(t,eo,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 lo(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 uo(e,t,n,r){if(r?.aborted)throw new v(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];no(a,``,o);let s=[...t.entries()],c=await so([...o.map(e=>e.value),...s.map(([,e])=>e)],n,r),l=[],u={},d=1,f=new Map,p=[];for(let e=0;e<o.length;e++){let t=o[e],n=co(t.value,c[e],{kind:`json`,pointer:t.pointer},d);d=n.nextId,n.finalText!==t.value&&f.set(t.pointer,n.finalText),p.push(n)}lo(p,l,u);let m=new Map,h=o.length,g=[];for(let e=0;e<s.length;e++){let[t,n]=s[e],r=co(n,c[h+e],{kind:`attachment`,attachmentId:t},d);d=r.nextId,m.set(t,r.finalText),g.push(r)}lo(g,l,u);let _=ao(e,``,f);return{document:{..._,privacy:{..._.privacy,redactionCounts:u,redactions:l}},textAttachments:m}}function fo(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`}async function po(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}var mo={"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 ho(e,t){return mo[e]??(t===`text-redacted`?`.txt`:`.bin`)}function go(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${ho(t,n)}`}function _o(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 vo(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 yo(e,t,n,r,i){let a=fo(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(_o(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=_o(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 bo(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:_o(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(yo(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function xo(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 So(e,t,n,r,i,a,o){let s=xo(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(yo(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function Co(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=So(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 wo(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,go(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 To(e,t,n,r,i){let{rawAttachments:a,textMap:o}=wo(e,n),s,c;try{let e=await uo({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof v?e:new v(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new v(`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 v(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await po(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function Eo(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}=bo(vo(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}=Co(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 To(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 Do=50;function Oo(e){return $e(e)}function ko(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 Ao(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:w(t)?`cone`:`scoop`,name:t.name,...t.folder&&!w(t)?{folder:t.folder}:{},...t.parentJid?{parentConversationId:t.parentJid}:{},...t.originToolCallId?{originToolCallId:t.originToolCallId}:{},messages:e};o.push(n);let c=Oo(t),l=a.get(c);l&&s.set(t.jid,l.messages)}return{sources:o,chatMessagesByConversation:s}}async function jo(e,t,n={}){let r=e=>n.rootJid===void 0?e:Xe(e,n.rootJid);for(;;){let n=r(e.listScoops());for(;n.some(t=>e.isProcessing(t.jid));)if(t?.aborted||(await e.wait(Do,t),t?.aborted))throw new v(`transfer-aborted`);let i=ko(n,e),[a,o]=await Promise.all([e.loadPersistedSessions(),e.loadUiChatSessions()]);if(t?.aborted)throw new v(`transfer-aborted`);let s=r(e.listScoops());if(i===ko(s,e))return Ao(s,a,o,e)}}function Mo(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function No(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function Po(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(No(t,r++));return n}function Fo(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=No(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 Io(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=No(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 Lo(e,t,n){let r=Mo(t,n),i=Po(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 Ro(e,t,n){let r=Mo(t,n),{blocks:i,excluded:a,images:o}=Fo(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 zo(e,t,n){let r=Mo(t,n),{blocks:i,images:a}=Io(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 Bo(e,t,n){return e.role===`user`?Lo(e,t,n):e.role===`assistant`?Ro(e,t,n):e.role===`toolResult`?zo(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function Vo(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 Ho(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=Bo(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:Vo(e),excludedReasoningBlocks:t,canonicalImages:n}}var Uo=(()=>{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 Wo(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Uo[(t^e[n])&255];return~t>>>0}var Go=new TextEncoder;function Y(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function X(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 Ko(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,Y(r,4,20),Y(r,6,2048),Y(r,8,0),Y(r,10,0),Y(r,12,0),X(r,14,n),X(r,18,t),X(r,22,t),Y(r,26,e.length),Y(r,28,0),r.set(e,30),r}function qo(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,Y(i,4,20),Y(i,6,20),Y(i,8,2048),Y(i,10,0),Y(i,12,0),Y(i,14,0),X(i,16,n),X(i,20,t),X(i,24,t),Y(i,28,e.length),Y(i,30,0),Y(i,32,0),Y(i,34,0),Y(i,36,0),X(i,38,0),X(i,42,r),i.set(e,46),i}function Jo(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,Y(r,4,0),Y(r,6,0),Y(r,8,e),Y(r,10,e),X(r,12,t),X(r,16,n),Y(r,20,0),r}function Yo(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 Xo(e){let t=e.export.generatedAt.slice(0,10),n=e.export.id.slice(0,8);return`slicc-${t}-${e.session.title.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``).slice(0,40)||`transcript`}-${n}.zip`}async function*Zo(e,t,n,r,i){if(n?.aborted)throw i(new v(`transfer-aborted`)),new v(`transfer-aborted`);let a=()=>i(new v(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=be.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=Go.encode(`transcript.json`),f=Wo(i),p=Ko(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 v(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new v(`transfer-aborted`);let t=Go.encode(e),i=Wo(r),a=Ko(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new v(`transfer-aborted`);yield*d(r)}let m=c;for(let e of l){if(n?.aborted)throw new v(`transfer-aborted`);yield*d(qo(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new v(`transfer-aborted`);yield*d(Jo(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 v(`transfer-aborted`)))}}var Qo=4294967295,$o=65535;function es(e,t,n){for(let e of t.keys())if(!Yo(e))throw new v(`schema-invalid`);if(t.size+1>$o)throw new v(`schema-invalid`);for(let e of t.values())if(e.byteLength>Qo)throw new v(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:Xo(e),chunks:Zo(e,t,n,r,i),completion:a}}function ts(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:_},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 ns(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 rs(e){if(!g(e).ok)throw new v(`schema-invalid`)}function is(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 as(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);if(!n)return e;let r=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),i=await crypto.subtle.digest(`SHA-256`,r),a=Array.from(new Uint8Array(i)).map(e=>e.toString(16).padStart(2,`0`)).join(``);return{...e,byteLength:n.length,sha256:a}}))}function os(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 ss=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),rs(i.document),r?.({phase:`packaging`}),es(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await jo(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Ho(n.sources),{document:i,bundleFiles:a}=await Eo({document:ts(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});rs(i),await this.deps.snapshotStore.write(e.sessionId,{document:i,attachments:a})}async buildActiveSnapshot(e,t){t?.({phase:`waiting-for-conversations`}),t?.({phase:`collecting`});let n=await jo(this.deps.collection,e),r=Ho(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=ts(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),Eo({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=await this.deps.snapshotStore.read(e);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 uo(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new v(`redaction-unavailable`)}let a=is(r.attachments,i,e.attachments),o=await as(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,t,n){let r=(await H(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!r)throw new v(`session-not-found`);let i;try{let e=await this.deps.vfs.readFile(`/sessions/${r.filename}`,{encoding:`utf-8`});i=typeof e==`string`?e:new TextDecoder().decode(e)}catch{throw new v(`session-not-found`)}let{title:a,messages:o}=fi(i),s=`legacy-cone`,c=ns(o,s),l=os(i),u={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:_},session:{id:e,title:a,state:`frozen`,...r.frozenAt?{frozenAt:r.frozenAt}:{},...l,completeness:{status:`partial`,missing:[`complete-snapshot-unavailable`,`canonical-agent-history-unavailable`]}},privacy:{reasoningExcluded:!0,excludedReasoningBlocks:0,binaryAttachments:`included-unchanged`,redactionCounts:{},redactions:[]},conversations:[{id:s,kind:`cone`,name:a,messages:c}],delegations:[],attachments:[]},d=new Map([[s,o]]);return n?.({phase:`redacting`}),Eo({document:u,chatMessagesByConversation:d,knownSecrets:this.deps.knownSecrets,vfsReader:e=>this.readBinaryFromVfs(e),signal:t})}async readBinaryFromVfs(e){let t=await this.deps.vfs.readFile(e,{encoding:`binary`});if(!(t instanceof Uint8Array))throw new v(`attachment-unreadable`);return t}},cs=`/sessions/data`,ls=`document.json`;async function us(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function ds(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new v(`session-not-found`)}function fs(e){return`${cs}/${e}`}function ps(e){return`${cs}/.tmp-${e}`}async function ms(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function hs(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 hs(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function gs(e,t,n){await ms(e,n);let r=await e.readDir(t);for(let i of r){let r=`${t}/${i.name}`,a=`${n}/${i.name}`;if(i.type===`directory`)await gs(e,r,a);else{let t=await e.readFile(r,{encoding:`binary`});await e.writeFile(a,t)}}}async function _s(e,t,n){ds(t);let r=ps(t),i=fs(t),a=new Map(n.document.attachments.filter(e=>e.present&&e.path).map(e=>[e.path,e]));for(let[e]of n.attachments)if(!a.has(e))throw new v(`schema-invalid`);await hs(e,i),await ms(e,r);try{let t=[...n.document.attachments];for(let[e,r]of n.attachments){let n=await us(r),i=a.get(e);if(i!==void 0){let e=t.indexOf(i);e!==-1&&(t[e]={...i,sha256:n,byteLength:r.length})}}let o={...n.document,attachments:t},s=JSON.stringify(o,null,2);if(await e.writeFile(`${r}/${ls}`,s),n.attachments.size>0)for(let[t,i]of n.attachments){let n=`${r}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await ms(e,`${r}/${t.slice(0,a)}`),await e.writeFile(n,i)}await e.flush(),await gs(e,r,i),await e.flush()}catch(t){throw await hs(e,r),t}await hs(e,r)}async function vs(e,t){ds(t);let n=fs(t),r=`${n}/${ls}`,i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new v(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new v(`schema-invalid`)}if(!g(a).ok)throw new v(`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 v(`transfer-corrupt`)}if(await us(i)!==t.sha256)throw new v(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}function ys(e){return`error`in e}function Z(){throw new v(`redaction-unavailable`)}function bs(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&Z(),e.texts}function xs(){return{async redact(e){let t;try{t=await fetch(b(`/api/secrets/redact-export`),{method:`POST`,headers:x({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{Z()}t.ok||Z();let n;try{n=await t.json()}catch{Z()}return bs(n,e.length)}}}function Ss(){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{Z()}return typeof t==`object`&&t&&ys(t)&&Z(),bs(t,e.length)}}}function Cs(){return{async redact(e){let t;try{t=await ne(`secrets.redact-export`,{texts:e})}catch{Z()}return t??Z(),typeof t==`object`&&t&&ys(t)&&Z(),bs(t,e.length)}}}function ws(){return{async redact(e){Z()}}}function Ts(){let e=te();return e===`connect`?ws():e===`extension-direct`?Ss():e===`extension-delegate`?Cs():xs()}function Es(e,t=Date.now){let n=e.parentId===null,r=e.folder??e.name,i={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,...e.config?{config:e.config,configSchemaVersion:3}:{},...e.notifyOnComplete===!1?{notifyOnComplete:!1}:{}};return n||(i.trigger=`@${r}`),i}var Ds=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,Os=`${Ds}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,ks=`${Ds}border:none;background:#d23;color:#fff;`,As=`${Ds}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function js(e,t,n){return{...Es({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function Ms(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 Ns(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 Ps(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=()=>Lt(n.getScoops(),e.getSelected()),u=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},d=e=>{u();let t=Ms(i,{...e,onDismiss:e=>{s===e&&(s=null),e.remove()}});s=t,i.body.append(t),t.show?.()},f=e=>{if(!e.name)return;u();let t=l(),i=js(e.name,n.getScoops(),t?Ze(t):void 0);a=e.name,n.registerScoop(i,e.brief?{description:e.brief,prompt:e.brief}:{}).catch(e=>r.warn(`WC cone create failed`,e)),g()},p=()=>{let e=Ns(i,f);d({heading:`New cone`,body:e,actions:[{text:`Create`,style:Os,data:`create`,onClick:()=>f(e.readDraft())},{text:`Cancel`,style:As,data:`cancel`,onClick:u}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},m=t=>{u();let i=T(n.getScoops()),a=i.find(e=>e.jid===t);if(!a||i.length<=1||o){g();return}o=!0,g(),(async()=>{try{await e.freezeCone(a)}catch(e){r.warn(`WC cone freeze before drop failed`,e)}let t=l()?.jid===a.jid;try{await n.unregisterScoop(a.jid)}catch(e){r.warn(`WC cone drop failed`,e)}if(t){let t=T(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(t)}o=!1,g()})()},h=e=>{let t=E(e),n=i.createElement(`p`);n.textContent=`Its chat goes to the Freezer.`,n.style.cssText=`font-size:0.875rem;margin:0;`,d({heading:`Drop ${t}?`,body:n,actions:[{text:`Drop`,style:ks,data:`drop`,onClick:()=>m(e.jid)},{text:`Cancel`,style:As,data:`cancel`,onClick:u}]})},g=()=>{let t=T(n.getScoops());if(a!==null){let n=t.find(e=>e.name===a&&!e.folder.startsWith(`cone-pending-`));n&&(a=null,e.getSelected()?.jid!==n.jid&&e.selectScoop(n))}let r=c();r?.setAttribute(`cones`,String(t.length)),r?.toggleAttribute(`busy`,o)};return t.addEventListener(`new-cone`,p),t.addEventListener(`drop-cone`,()=>{let e=l();!e||T(n.getScoops()).length<=1||o||h(e)}),g(),{refresh:g,dialog:()=>s}}var Fs=5e3,Is=class{deps;listListeners=new Set;unitListeners=new Map;lastSnapshots=new Map;orphanedReplays=new Map;pendingSnapshots=new Map;constructor(e){this.deps=e}toSummary(e){return Ht(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)})}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.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))}}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:Wt(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 r?t({snapshot:r,type:`snapshot`}):this.deps.getClient()?.requestScoopMessages(e),()=>{n.delete(t),n.size===0&&this.unitListeners.delete(e)}}snapshot(e){let t=this.deps.getClient();if(!t)return Promise.reject(Error(`kernel client not attached`));let n=this.pendingSnapshots.get(e)??new Set;this.pendingSnapshots.set(e,n);let r=()=>{},i=new Promise(e=>{r=e,n.add(e)});t.setSelectedScoopJid(e),t.requestScoopMessages(e);let a=new Promise(t=>{setTimeout(()=>{this.forgetWaiter(e,r),t(this.snapshotFor(e,[],void 0))},Fs)});return Promise.race([i,a]).then(t=>{if(!t)throw Error(`unknown work unit: ${e}`);return t})}send(e,t){let n=this.deps.getClient();return n?(n.sendRaw({attachments:t.attachments,messageId:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,scoopJid:e,text:t.text,type:`user-message`,...t.steer?{steer:!0}:{}}),Promise.resolve()):Promise.reject(Error(`kernel client not attached`))}signal(e,t){return t===`stop`&&this.deps.getClient()?.stopScoop(e),Promise.resolve()}};function Ls(e,t,n,r,i,a){let o=e.map(e=>Ht(e,{awaiting:i===e.jid,fill:n?.get(e.jid),phase:r?.get(e.jid),status:t?.get(e.jid)}));return zt(o,a,at)}function Rs(e){let t=new Is({fills:e.fills,getAwaiting:()=>e.awaitingInput,getClient:()=>e.getClient(),phases:e.phases,statuses:e.statuses});e.workUnits=t;let n=()=>{e.getClient()&&(e.refs.switcher.scoops=zt(t.currentUnits(),e.getSelected()?.jid,at)),e.refreshConeActions?.()};t.subscribeList(()=>n());let r=n;e.refreshScoops=r;let i=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),a=()=>{if(e.getSelected()||i())return;let t=e.getClient()?.getScoops()??[],n=e.pendingUrlContext;if(n?.startsWith(`freezer:`))return;if(n?.startsWith(`scoop:`)||n?.startsWith(`cone:`)){let r=Rt(t,n);if(r){e.pendingUrlContext=null,e.selectScoop(r);return}}let r=qt(t);r&&(e.pendingUrlContext=null,e.selectScoop(r))};return t.wrapCallbacks({onStatusChange:(t,n)=>{let i=e.statuses.get(t),a=n;e.statuses.set(t,a),a!==`ready`&&e.awaitingInput===t&&(e.awaitingInput=null),Wt(i)!==Wt(a)&&(r(),e.notifyScoopStateChanged?.()),e.getSelected()?.jid===t&&e.getController()?.setProcessing(n===`processing`)},onScoopCreated:t=>{r(),!e.getSelected()&&!i()&&!e.pendingUrlContext&&e.selectScoop(t)},onScoopListUpdate:t=>{let n=new Set(t.map(e=>e.jid));for(let t of e.lickBackpressure.keys())n.has(t)||e.lickBackpressure.delete(t);r(),a()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(t,n)=>{e.phases.set(t,n),r(),e.notifyScoopStateChanged?.()},onIncomingMessage:(t,n)=>{e.refs.switcher.setAttribute(`attention`,t),e.lastActivity.set(t,String(n.content??``).slice(0,600)),e.getSelected()?.jid===t&&n.channel!==`web`&&ut(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?.jid!==t)return;let i=Jt(r);e.getController()?.setLickBackpressure(n.count,n.waitingMs,i)},onMessageUpdate:(t,n)=>{e.getSelected()?.jid===t&&n.lickId&&n.lickState&&e.getController()?.updateLickState(n.lickId,n.lickState)},onScoopMessagesReplaced:(t,n,r)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n,r)},onReady:()=>{r(),a(),e.notifyReady?.()}})}var zs=`slicc:leader-local-model-state-changed`;function Bs(e=window){e.dispatchEvent(new Event(zs))}var Vs=`slicc:leader-model-catalog-changed`;function Hs(e=window){e.dispatchEvent(new Event(Vs))}var Us={off:`off`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`,max:`xhigh`},Ws={off:`off`,minimal:`low`,low:`low`,medium:`medium`,high:`high`,xhigh:`xhigh`};function Gs(e){return e?Us[e]:void 0}function Ks(e){return e===`max`?`max`:void 0}function qs(e,t){return t===`max`?`max`:(e&&Ws[e])??`off`}var Js=2e3,Ys=1e4,Xs=12e4;function Zs(e){let t=[],n=null,r=e.modelPickerEnabled!==!1,i=e.catalogRetryDelayMs??Js,a=e.catalogRetryMaxDelayMs??Ys,o=e.catalogRetryWindowMs??Xs,s=0,c=null,l=null,u=()=>{if(!r||l!==null)return;let t=Date.now();if(c===null&&(c=t+o),t>=c)return;let n=Math.min(i*2**s,a);l=setTimeout(()=>{l=null;let t=e.getSync();t?.requestModels&&(s+=1,t.requestModels())},n)},d=()=>{l!==null&&clearTimeout(l),l=null,s=0,c=null},f=()=>{let i=n?t.find(e=>e.modelId===n?.activeModelId):void 0;if(!r||!n||!i){e.composerMeta.style.display=`none`,u();return}e.composerMeta.model=i.modelName,e.composerMeta.setAttribute(`thinking`,qs(n.thinkingLevel,n.effortOverride)),e.composerMeta.toggleAttribute(`no-thinking`,!i.reasoning),e.composerMeta.style.removeProperty(`display`),d()},p=t=>{e.interceptLocalHandlers&&t.stopImmediatePropagation()};e.composerMeta.addEventListener(`model-change`,t=>{let r=e.getSync();if(!r)return;p(t);let i=t.detail?.id,a=e.getSelectedScoopJid()??n?.scoopJid;i&&r.selectModel(i,a??void 0),f()},{capture:e.interceptLocalHandlers}),e.composerMeta.addEventListener(`thinking-change`,t=>{let r=e.getSync();if(!r)return;if(p(t),e.getLockedEffortLevel?.()){f();return}let i=t.detail?.thinking,a=Gs(i),o=e.getSelectedScoopJid()??n?.scoopJid;o&&a&&a!==`max`&&r.setThinkingLevel(o,a,Ks(i)),f()},{capture:e.interceptLocalHandlers});let m=()=>{t=[],n=null,d(),e.composerMeta.models=[],e.composerMeta.style.display=`none`};return m(),{onModelsList(n){t=n,e.composerMeta.models=n.map(e=>({id:e.modelId,name:e.modelName,provider:e.providerName})),f()},onModelState(e){n=e,f()},reset:m}}async function Qs(e,t,n,r,i=Bs){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function $s(e,t){return Gt(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||ue(t.localStorage)}async function ec(e,t,n=[]){let r=Vt(t),i=Ut(r);e.thread.setAttribute(`context`,Kt(t));let a=w(t),o=at({isRoot:a,name:t.name});e.thread.setAttribute(`accent`,o),e.switcher.setAttribute(`active`,t.jid),Tt(e,a?{kind:`cone`}:{kind:`scoop`,accent:o}),St(e,i);let s=localStorage.getItem(`slicc_locked_effort_level`),c=nt(t);e.composerMeta.setAttribute(`thinking`,qs(s??c.level,c.effortOverride));try{let{resolveCurrentModel:r,resolveModelById:i}=await l(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./main-B6Og2ks7.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([40,1,41,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,6,42,43,44,45,46,47,48])),a=Ze(Lt(n,t)??t),o=a?i(a.id,a.provider):r();e.composerMeta.setAttribute(`model`,o.name??o.id),e.composerMeta.toggleAttribute(`no-thinking`,o.reasoning!==!0||!!s)}catch{}}async function tc(e){if($s(e.pendingUrlContext,e.win))return;let t=Gt(e.pendingUrlContext);if(t===null)return;let{SessionStore:n}=await l(async()=>{let{SessionStore:e}=await Promise.resolve().then(()=>$t);return{SessionStore:e}},void 0),r=new n;await r.init();let i=await r.load($e({folder:t}));i&&i.messages.length>0&&!e.hasSelection()&&(e.loadMessages(i.messages),e.onHydrated())}function nc(e){let{boot:t,client:n,agentHandle:r,openReader:i,log:a}=e,{refs:o}=t;l(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-CPP2DyEf.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([49,17,50,1,8,33,42,5,6,7,51,39,52,53,54])).then(({createPlaceholderRefresher:n})=>{e.setRefreshPlaceholder(n({inputCard:o.inputCard,getMessages:()=>t.getController()?.getMessages()??[],defaultPlaceholder:o.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),tc({pendingUrlContext:t.wiring.pendingUrlContext,win:window,hasSelection:()=>!!t.getSelected(),loadMessages:e=>t.getController()?.loadMessages(e),onHydrated:e.triggerPlaceholder}).catch(e=>a.warn(`WC session hydration failed`,e));let s=null;return l(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-d-lHwJPz.js`);return{wireWcAttach:e}},__vite__mapDeps([55,17,26,8,56])).then(({wireWcAttach:t})=>{s=t({inputCard:o.inputCard,freezer:o.freezer,composer:o.composer,openReader:i,openWriter:e.openWriter,listConversations:async()=>{let{readSessionsIndex:e}=await l(async()=>{let{readSessionsIndex:e}=await Promise.resolve().then(()=>_i);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)),o.switcher.setAttribute(`gaze-target`,`slicc-input-card`),o.inputCard.addEventListener(`input`,()=>{o.switcher.scrutinize(),o.switcher.wake()}),o.inputCard.addEventListener(`submit`,e=>{let n=Ct(e);if(!n)return;t.wiring.awaitingInput=null,t.wiring.refreshScoops?.(),t.wiring.notifyScoopStateChanged?.();let r=e.detail?.source===`dictation`;r&&(l(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-BFImQhAG.js`);return{markVoiceSubmission:e}},__vite__mapDeps([57,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54,58,59,60,25,26,27,28,61,62])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),l(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([63,2,53])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),t.getController()?.sendUserMessage(n,s?.take(),{dictation:r,steer:pt(e)}),o.inputCard.clear?.();let i=t.getSelected()?.jid;i&&(o.switcher.setAttribute(`attention`,i),t.wiring.lastActivity.set(i,n.slice(0,600)))}),o.inputCard.addEventListener(`stop`,()=>{t.getController()?.processing&&r.stop()}),l(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 r=e.detail?.thinking,i=Gs(r),o=Ks(r),s=t.getSelected();s&&i&&Qs(n,s.jid,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>s}}var rc=`<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 ic(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 ac(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(rc));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=ic(e.getMessages());await t(n??gi([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=gi([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function Q(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function oc(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 sc(e){return`
|
|
394
394
|
<div class="sprinkle-action-card">
|
|
395
395
|
<div class="sprinkle-action-card__header">${Se(oc(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
|
|
396
396
|
<div class="sprinkle-action-card__body">Waiting for approval on the leader…</div>
|
|
397
397
|
</div>
|
|
398
|
-
`}function cc(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var lc=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=!1;#D=!1;#O=`thinking`;#k=0;#A=null;#j=new Set;#M=new Map;#N=new Map;#P=new Set;#F=!1;#I=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.#q(e)),this.#v=e=>this.#fe(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.#M.keys()])this.#de(e);this.#N.clear(),this.#P.clear(),this.#ue()}setReadOnly(e){if(this.#F!==e&&(this.#F=e,e))for(let e of[...this.#M.keys()])this.#de(e)}get readOnly(){return this.#F}get processing(){return this.#D}getMessages(){return this.#y.map(e=>({...e}))}setAgent(e){this.#h(),this.#t=e,this.#h=e.onEvent(e=>this.#q(e))}setOnLocalUserMessage(e){this.#g=e}setOnLocalProcessingChange(e){this.#_=e}addUserMessage(e,t){this.#he({id:Q(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#b.map(cc)}removeQueuedMessage(e){let t=this.#b.filter(t=>t.id!==e);t.length!==this.#b.length&&(this.#b=t,this.#z())}stashQueued(){let e=this.#b;return e.length===0?[]:(this.#b=[],this.#z(),e)}restoreQueued(e){this.#I=e.length>0?[...e]:null}heldBackendPendingIds(e){if(!this.#I||!e?.length)return new Set;let t=new Set(e);return new Set(this.#I.filter(e=>t.has(e.id)).map(e=>e.id))}#L(e,t){if(!this.#I)return;let n=this.heldBackendPendingIds(t),r=new Set(e.map(e=>e.id)),i=this.#I.filter(e=>!r.has(e.id)||n.has(e.id));if(this.#I=null,i.length===0)return;if(!t){this.#b=i,this.#z();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.#D?o:[...o,...s],this.#z(),this.#D)for(let e of s)this.#he(e)}#R(){if(this.#b.length===0)return;let e=this.#b;this.#b=[];for(let t of e)this.#he(t);this.#z()}#z(){this.#u?.(this.#b.map(cc))}#B(){this.#d?.(this.#x)}setLickBackpressure(e,t,n){if(e<=0){if(!this.#x)return;this.#x=null,this.#B();return}this.#x={text:`${e} events waiting for the current turn`},this.#B();try{S(n,t)}catch{}}addAssistantMessage(e){this.#he({id:Q(),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.#M.keys()])this.#de(e);this.#N.clear(),this.#P.clear(),this.#ue();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.#z();let r=this.heldBackendPendingIds(t),i=r.size>0?e.filter(e=>!r.has(e.id)):e;this.#y=xt(i);let a=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=a?.id??null,a&&(this.#w=a.id),this.#T=``,this.#E=!1,this.#S.clear();let o=[],s=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==s&&(o.push(vt(e.timestamp)),s=t);let n=this.#me(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.#ye();for(let e of this.#y)e.isStreaming||this.#o?.(e,this.#S.get(e.id)??[]);this.#K(),this.#xe(),this.#V(),this.#L(e,t)}#V(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!ge()||this.#D)return;let e=this.#y[this.#y.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#fe(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#H(r):r,a={id:Q(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#D&&!n?.steer?(this.#b.push(a),this.#z()):this.#he(a),n?.steer?this.#t.sendMessage(i,a.id,a.attachments,{steer:!0}):this.#t.sendMessage(i,a.id,a.attachments),this.#U();try{let e=n?.dictation?ct(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#H(e){return dt(e,st())}#U(){if(this.#l)try{let e=this.#l();if(!e)return;oe(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.#ge(a);return}this.#he({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#D?!0:void 0})}updateLickState(e,t){let n=this.#y.find(t=>t.lickId===e);n&&(n.lickState=t,this.#ge(n))}setProcessing(e){if(this.#D!==e){this.#D=e,e&&(this.#w=null),e&&(this.#k=0,this.#W(`thinking`)),e&&this.#R(),e||(this.#x&&(this.#x=null,this.#B()),this.#K()),this.#n?.(e);try{this.#_?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#G()}}#W(e){this.#O!==e&&(this.#O=e,this.#r?.(e))}#G(){let e=this.#w;if(this.#w=null,!this.#c)return;let t=e?this.#pe(e):null;this.#c(t?{...t}:null)}#K(){let e=this.#y[this.#y.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#A?.remove();return}this.#A??=ac({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#A)}#q(e){switch(e.type){case`message_start`:this.#J(e.messageId);break;case`content_delta`:this.#Y(e.messageId,e.text);break;case`content_done`:this.#Z(e.messageId,e.model,e.usage);break;case`tool_use_start`:this.#$(e.messageId,e.toolName,e.toolInput,e.toolCallId);break;case`tool_result`:this.#te(e.messageId,e.toolName,e.result,e.isError,e.toolCallId);break;case`tool_ui`:this.#ae(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#oe(e.requestId);break;case`tool_progress`:this.#se(e.messageId,e.toolName,e.progress,e.toolCallId);break;case`turn_end`:this.#ne(e.messageId);break;case`error`:this.#re(e.error)}}#J(e){this.setProcessing(!0),this.#C=e,this.#w=e,this.#he({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#Y(e,t){this.#pe(e)&&(this.#T+=t,!this.#E&&(this.#E=!0,requestAnimationFrame(()=>this.#X(e))))}#X(e){if(this.#E=!1,!this.#T)return;let t=this.#pe(e);t&&(t.content+=this.#T,this.#T=``,this.#ge(t))}#Z(e,t,n){let r=this.#pe(e);r&&(t&&(r.model=t),n&&(r.usage=n),this.#T&&this.#C===e&&(r.content+=this.#T),this.#T=``,this.#E=!1,r.isStreaming=!1,this.#ge(r))}static#Q(e,t){return`${e}:${t}`}#$(t,n,r,i){let a=this.#pe(t);if(!a)return;a.toolCalls=a.toolCalls??[];let o=i?e.#Q(t,i):Q();this.#P.add(o),a.toolCalls.push({id:o,name:n,input:r}),this.#k+=1,this.#W(`tool`),this.#ge(a)}#ee(t,n,r){let i=t?.toolCalls??[];if(r){let n=t?e.#Q(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)}#te(e,t,n,r,i){let a=this.#pe(e),o=this.#ee(a,t,i);!a||!o||(o.result=n,o.isError=r,o.id&&(this.#N.delete(o.id),this.#ue()),this.#k=Math.max(0,this.#k-1),this.#k===0&&this.#W(`thinking`),this.#ge(a))}#ne(e){let t=this.#pe(e);t?.isStreaming&&(t.isStreaming=!1,this.#ge(t)),this.#C=null,this.setProcessing(!1)}#re(e){this.setProcessing(!1),this.#he({id:Q(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#ie(e)}#ie(e){try{if(ce(e)||ae(e)||ie(e))return;se(`error-card`,e)}catch{}}#ae(e,t,n){if(this.#F)return;this.#de(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=P(r,sc(n),()=>{},!1);this.#M.set(t,{instance:e,container:r});return}let i=P(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#M.set(t,{instance:i,container:r}),this.#p?.(t,re,void 0)}#oe(e){this.#de(e)}#se(e,t,n,r){let i=this.#pe(e),a=this.#ee(i,t,r);a?.id&&(n.phase===`end`?this.#N.delete(a.id):this.#N.set(a.id,n),this.#ce(a.id),this.#ue())}#ce(e){let t=this.#e.querySelector(`slicc-action-row[data-tool-id="${CSS.escape(e)}"]`);t&&wt(t,this.#N.get(e)??null),this.#le()}#le(){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.#P.has(e.dataset.toolId)).map(e=>{let t=e.dataset.toolId,n=e.getAttribute(`result`);return{done:n!==null&&n!==`…`,fraction:this.#N.get(t)?.fraction}});gt(t,ht(e))}}#ue(){let e=null,t=[...this.#N.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))}#de(e){let t=this.#M.get(e);if(t){this.#M.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#fe(e){if(this.#D)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,Q(),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,Q(),i.attachments)}#pe(e){return this.#y.find(t=>t.id===e)}#me(e){try{return _t(e,{readOnly:this.#F})}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]}}#he(e){this.#ve(),this.#y.push(e);let t=this.#me(e);this.#S.set(e.id,t),this.#e.append(...t),this.#ye(),e.isStreaming||this.#o?.(e,t),e.role===`user`?this.#xe():this.#Se()}#ge(e){this.#ve(),this.#s?.(e.id);let t=this.#S.get(e.id)??[],n=this.#me(e),r=t[0]??null,i=r?.parentNode;if(i){for(let e of n)i.insertBefore(e,r);for(let e of t)e.remove()}else this.#e.append(...n);this.#S.set(e.id,n);for(let t of e.toolCalls??[])t.id&&this.#N.has(t.id)&&this.#ce(t.id);this.#ye(),this.#le(),e.isStreaming||this.#o?.(e,n),this.#Se()}#_e(){return this.#e.inner??this.#e}#ve(){Dt(this.#_e(),this.#j)}#ye(){ft(this.#_e(),{openClusterAnchors:this.#j,toolCallLookup:(e,t)=>this.#be(e,t)})}#be(e,t){return this.#y.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#xe(){this.#e.scrollTop=this.#e.scrollHeight}#Se(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#xe()}};function uc(e,t,r,a,o){let s=new Map;l(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e}},__vite__mapDeps([64,17])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),l(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CXRqxpw6.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([65,1,66,2])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),l(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-By4GU_Wc.js`).then(e=>e.p);return{applyThemeOverrides:e}},__vite__mapDeps([66,1,2])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let c=t.createAgentHandle();c.onEvent(t=>{(t.type===`tool_use_start`||t.type===`tool_result`)&&(t.type===`tool_result`&&t.isError&&e.switcher.glower(),l(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([63,2,53])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let u=new lc({thread:e.thread,agent:c,resolveTelemetryContext:()=>{let e=r();if(!e)return null;let t=Jt(e);try{let r=Ze(e);return{scoopName:t,model:(r?i(r.id,r.provider):n()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{l(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-B-I-XncI.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([57,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54,58,59,60,25,26,27,28,61,62])).then(async({consumeVoiceSubmission:t,speakReplyMarkdown:n})=>{if(!t())return;let{endVoiceTurn:r,setTtsActive:i}=await l(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([63,2,53]));try{if(e?.content){i(!0);try{await n(e.content)}finally{i(!1)}}}finally{r()}}).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&&(Kn(t),s.delete(e))},onMessageRendered:(e,n)=>{let r=n[0];r&&s.set(e.id,Gn(r,(e,n)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:n}};o?.intercept?.(r)||t.sendSprinkleLick(`inline`,{action:e,data:n})}))},onQueuedChange:t=>e.queuedStack.setMessages(t),onLickBackpressureChange:t=>{e.lickBackpressureNotice.textContent=t?.text??``,e.lickBackpressureNotice.toggleAttribute(`hidden`,t===null)},onToolUiAction:(e,n,r)=>{t.sendToolUiAction(e,n,r)},onQueuedCancel:e=>{let n=t.selectedScoopJid;n&&t.deleteQueuedMessage(n,e).catch(()=>void 0)}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let n=e.detail?.id;if(!n)return;u.removeQueuedMessage(n);let r=t.selectedScoopJid;r&&t.deleteQueuedMessage(r,n).catch(()=>void 0)}),{controller:u,agentHandle:c}}var dc=`slicc:leader-run-new-session`,fc=`slicc:leader-broadcast-snapshot`;function pc(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function mc(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function hc(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,mc(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function gc(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size===0)return;let n=await _c(e.reader);if(n===null||n.length===0)return;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});await e.writer.writeFile(V,JSON.stringify(r,null,2));for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function _c(e){let t=await vc(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function vc(e){let t;try{let n=await e.readFile(V,{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 yc(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),a=i.slice(0,2e3),o=/^title:\s*"?(.*?)"?\s*$/m.exec(a)?.[1]??r,s=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(a)?.[1]??new Date(0).toISOString(),c=Number(/^messageCount:\s*(\d+)\s*$/m.exec(a)?.[1]??0),l=fi(i);n.push({filename:r,title:o,frozenAt:s,messageCount:c,...l.cost?{cost:l.cost}:{},...l.models?{models:l.models}:{},...l.cone?{cone:l.cone}:{},...l.coneLabel?{coneLabel:l.coneLabel}:{},...l.memorySkipped?{memorySkipped:!0}:{},...r.startsWith(`pending-`)?{pendingEnrichment:!0}:{}})}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function bc(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(hc))}async function xc(e,t){let n=await e.readFile(U(t),{encoding:`utf-8`}),r=fi(typeof n==`string`?n:new TextDecoder().decode(n));return{title:r.title||t.title,messages:r.messages}}async function Sc(e,t){let{getTranscriptExportService:n}=await l(async()=>{let{getTranscriptExportService:e}=await Promise.resolve().then(()=>an);return{getTranscriptExportService:e}},void 0);await n().captureFrozen({sessionId:t.sessionId??t.archive.id,title:t.archive.title,frozenAt:t.archive.frozenAt,createdAt:t.archive.createdAt,updatedAt:t.archive.updatedAt,...e?{rootJid:e.jid}:{}})}async function Cc(e){let{root:t}=e,n=t?{folder:t.folder,label:E(t),jid:t.jid}:void 0,r=e=>Sc(t,e);if(e.action!==`save`){await e.runNewSessionFreezeQuick({vfs:e.writer,cone:n,captureCompleteSnapshot:r});return}await e.runNewSessionFreeze({vfs:e.writer,cone:n,agenticMemorySpawn:t=>e.client.spawnAgent(t),captureCompleteSnapshot:r,onProgress:t=>{let n=e.freezerNew();n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,String(t)))},onBackgroundEnriched:e.refreshFreezer})}function wc(e,t){let n=t?pc(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}function Tc(e){let{refs:t,openVfs:n,client:r,getController:i,getSelected:a,clearSelection:o,log:s}=e,c=[],u=null,d=t=>{u=null,e.selectScoop(t)},f=0,p=!1,m=()=>{let e=++f;n().then(async({reader:n,writer:r})=>{let i=await _c(n);if(i===null){if((await vc(n)).kind!==`corrupt`||(s.warn(`WC freezer index corrupt — rebuilding from archives`),i=await yc(n),i.length===0))return;await r.writeFile(V,JSON.stringify(i,null,2))}e===f&&(c=i,bc(t.freezer,i),!p&&i.some(e=>!e.icon&&!e.pendingEnrichment)&&(p=!0,l(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-drlxgkUg.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([15,1,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,38,39])).then(({pickLucideIcon:e})=>gc({reader:n,writer:r,freezer:t.freezer,entries:i,pickIcon:t=>e({subject:t})})).catch(e=>s.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{p=!1})))}).catch(e=>s.error(`WC freezer refresh failed`,e))},h=!1,g=()=>t.freezer.querySelector(`slicc-freezer-new`),_=e=>{h||(h=!0,g()?.setAttribute(`busy`,``),(async()=>{let t=Lt(r.getScoops(),a());try{let{writer:a}=await n(),{resetNewSessionTmp:o,runNewSessionFreeze:s,runNewSessionFreezeQuick:c}=await l(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-DagG-ZZy.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38]));e!==`erase`&&await Cc({action:e,writer:a,root:t,client:r,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:s,runNewSessionFreezeQuick:c}),await o(a),await r.clearAllMessages(t?.jid),i()?.loadMessages([]),window.dispatchEvent(new CustomEvent(fc)),l(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-B7yZ6nn6.js`).then(e=>e.K);return{resetDictationPriming:e}},__vite__mapDeps([50,1,17,8,33,42,5,6,7,51,39,52,53,54])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),m();let u=r.getScoops().find(e=>e.jid===t?.jid)??qt(r.getScoops());u&&d(u)}catch(e){s.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`])t.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:t}=await n(),{runNewSessionArchiveOnly:r}=await l(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-DagG-ZZy.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38]));await r({vfs:t,cone:{folder:e.folder,label:E(e),jid:e.jid},captureCompleteSnapshot:t=>Sc(e,t)}),m()};le(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(dc,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async e=>{let l=c.find(t=>t.filename===e);try{let{reader:r}=await n();l||=(await _c(r)??[]).find(t=>t.filename===e);let{messages:a}=await xc(r,l??{filename:e,title:e,frozenAt:``,messageCount:0});t.thread.setAttribute(`context`,`freezer:${l?.filename??e}`),u=l?.sessionId??l?.filename??null,i()?.loadMessages(a),(t.thread.inner??t.thread).prepend(wc(t.thread.ownerDocument,l)),t.thread.setAttribute(`accent`,Et),Tt(t,{kind:`freezer`}),t.inputCard.setAttribute(`disabled`,``),t.switcher.removeAttribute(`active`),o()}catch(e){if(s.error(`WC thaw failed`,e),!a()){let e=Bt(r.getScoops(),l?.cone);e&&d(e)}}};return t.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&y(t)}),{refreshFreezer:m,openFrozen:y,getViewedFrozenSessionId:()=>u,freezeCone:v}}d(`scoops.tray-leave`),d(`scoops.tray-join`);var Ec=null;function Dc(e){Ec=e}function Oc(){return Ec?.()??[]}var kc=null;function Ac(e){kc=e}function jc(){return kc??void 0}var Mc=`slicc.leaderTrayFollowers`;function Nc(){return Pc()}function Pc(){if(Ec)return Ec();try{let e=globalThis.localStorage?.getItem(Mc);if(e)return JSON.parse(e)}catch{}return[]}function Fc(e,t=globalThis.localStorage){try{t?.setItem(Mc,JSON.stringify(e))}catch{}}function Ic(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 Lc(e){let t=he();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:pe(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=qe();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=de(e.getItem(fe))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Rc(e){let{client:n,openReader:r,storage:i}=e;return{getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await l(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-Mq6HIneb.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([68,1,2,25,17,26,8,5,27,28,6,7,45,43]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await l(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-Mq6HIneb.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([68,1,2,25,17,26,8,5,27,28,6,7,45,43]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await l(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([69,1])),n=await e();return Promise.all(n.map(async e=>{if(e.descriptor.kind!==`local`)return e;try{let n=await(await t(e.descriptor.idbHandleKey))?.queryPermission?.({mode:`readwrite`});return{...e,valid:n===`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,n=[];for(let r of c()){if(e.has(r.providerId))continue;if(e.add(r.providerId),!t(r.providerId)?.isOAuth){n.push({providerId:r.providerId});continue}let i=a(r.providerId),o=r.loggedOut?!1:i?!i.expired:!1;n.push({providerId:r.providerId,valid:o})}return n}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await(await r()).readFile(`/proc/table`,{encoding:`utf-8`});return Ic(typeof e==`string`?e:new TextDecoder().decode(e))}catch{return{processes:[],terminated:0}}},getTrayInfo:()=>Lc(i),getConnectedFollowers:Oc}}var zc=`sync-fs-nonce`;function Bc(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:zc,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 $=e=>Array.from(e,e=>e.charCodeAt(0)),Vc=[{offset:0,bytes:[137,80,78,71,13,10,26,10],mime:`image/png`},{offset:0,bytes:[255,216,255],mime:`image/jpeg`},{offset:0,bytes:$(`GIF87a`),mime:`image/gif`},{offset:0,bytes:$(`GIF89a`),mime:`image/gif`},{offset:0,bytes:$(`BM`),mime:`image/bmp`},{offset:0,bytes:$(`RIFF`),also:{offset:8,bytes:$(`WEBP`)},mime:`image/webp`},{offset:4,bytes:$(`ftypavif`),mime:`image/avif`},{offset:0,bytes:[0,0,1,0],mime:`image/x-icon`},{offset:0,bytes:$(`RIFF`),also:{offset:8,bytes:$(`WAVE`)},mime:`audio/wav`},{offset:0,bytes:$(`ID3`),mime:`audio/mpeg`},{offset:0,bytes:$(`fLaC`),mime:`audio/flac`},{offset:4,bytes:$(`ftypM4A`),mime:`audio/mp4`},{offset:4,bytes:$(`ftypisom`),mime:`video/mp4`},{offset:4,bytes:$(`ftypmp42`),mime:`video/mp4`},{offset:4,bytes:$(`ftypqt`),mime:`video/quicktime`},{offset:0,bytes:[26,69,223,163],mime:`video/webm`},{offset:0,bytes:$(`%PDF-`),mime:`application/pdf`},{offset:0,bytes:[0,97,115,109],mime:`application/wasm`},{offset:0,bytes:$(`PK`),mime:`application/zip`},{offset:0,bytes:[31,139],mime:`application/gzip`},{offset:0,bytes:[127,69,76,70],mime:`application/x-executable`},{offset:0,bytes:[202,254,186,190],mime:`application/x-mach-binary`}],Hc=$(`OggS`);function Uc(e,t,n){if(t+n.length>e.length)return!1;for(let r=0;r<n.length;r+=1)if(e[t+r]!==n[r])return!1;return!0}function Wc(e){let t=[...Vc].sort((e,t)=>t.bytes.length+(t.also?.bytes.length??0)-(e.bytes.length+(e.also?.bytes.length??0)));for(let n of t)if(Uc(e,n.offset,n.bytes)&&!(n.also&&!Uc(e,n.also.offset,n.also.bytes)))return n.mime;if(Uc(e,0,Hc)){let t=Gc(e.subarray(0,64));return/theora|VP8/.test(t)?`video/ogg`:`audio/ogg`}return null}function Gc(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return t}var Kc=4096;function qc(e){if(e.length===0)return!0;let t=e.subarray(0,Math.min(e.length,Kc));if(t.includes(0))return!1;let n=t.length;if(n===Kc)for(let e=0;e<4&&n>0;e+=1){let e=t[n-1]??0;if(!(e&128)||(--n,(e&192)==192))break}try{let e=new TextDecoder(`utf-8`,{fatal:!0}).decode(t.subarray(0,n)),r=0;for(let t of e){let e=t.codePointAt(0)??0;e!==9&&e!==10&&e!==13&&e!==12&&e!==27&&(e<32||e===127)&&(r+=1)}return r<=e.length*.05}catch{return!1}}function Jc(e,t){if(t&&t.length>0){let e=Wc(t);if(e)return{mime:e,text:Yc(e),source:`magic`}}let n=p(e);return n===`application/octet-stream`?t&&qc(t)?{mime:`text/plain`,text:!0,source:`content`}:{mime:`application/octet-stream`,text:!1,source:t?`content`:`unknown`}:{mime:n,text:Yc(n),source:`extension`}}function Yc(e){if(e.startsWith(`text/`))return!0;let t=e.split(`;`,1)[0]?.trim()??e;return t===`application/json`||t===`application/xml`||t===`application/javascript`||t===`application/ecmascript`||t===`image/svg+xml`||t.endsWith(`+json`)||t.endsWith(`+xml`)}var Xc=new Set([`md`,`markdown`,`mdown`,`mkd`,`mkdn`,`mdwn`]);function Zc(e,t){let n=t.split(`;`,1)[0]?.trim()??t;if(n===`text/html`)return`html`;if(n===`text/markdown`||n===`text/x-markdown`)return`markdown`;let r=e.lastIndexOf(`.`),i=r>0?e.slice(r+1).toLowerCase():``;return Xc.has(i)?`markdown`:i===`html`||i===`htm`?`html`:null}var Qc=24;async function $c(e,t){let n=t.slice(0,Math.max(t.lastIndexOf(`/`),0))||`/`;for(let t=0;t<Qc;t+=1){try{return await e.stat(n===`/`?`/.git`:`${n}/.git`),n===``?`/`:n}catch{}if(n===`/`||n===``)return null;n=n.slice(0,Math.max(n.lastIndexOf(`/`),0))||`/`}return null}function el(e){let t=async t=>{let n=await e.stat(t),r=n.type===`directory`;return{type:r?`dir`:`file`,mode:r?16877:33188,size:n.size,ino:0,mtimeMs:n.mtime,ctimeMs:n.ctime,uid:1,gid:1,dev:1,isFile:()=>!r,isDirectory:()=>r,isSymbolicLink:()=>n.isSymlink===!0}};return{promises:{readFile:(t,n)=>{let r=typeof n==`string`?n:n?.encoding;return e.readFile(t,r===`utf8`?{encoding:`utf-8`}:{encoding:`binary`})},readdir:async t=>(await e.readDir(t)).map(e=>e.name),stat:t,lstat:t,readlink:async t=>(await e.stat(t)).symlinkTarget??``}}}async function tl(e,t,n){let r=await $c(e,t);if(!r)return null;let i=t.slice(r===`/`?1:r.length+1);if(i.length===0)return null;try{let t=await l(()=>import(`./isomorphic-git-WdgG3efW.js`),__vite__mapDeps([70,1,71])),a=el(e),o=await t.resolveRef({fs:a,dir:r,ref:`HEAD`}),{blob:s}=await t.readBlob({fs:a,dir:r,oid:o,filepath:i}),c=new TextDecoder().decode(s);return c===n?null:{baseContent:c,status:`modified`,repoRoot:r}}catch{return null}}function nl(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}async function rl(e,t){let n=await e.readFile(t,{encoding:`binary`}),r=new Uint8Array(new ArrayBuffer(n.length));r.set(n);let{mime:i,text:a}=Jc(t,r);return{mime:i,text:a,bytes:r}}var il=524288;function al(e,t,n){if(n.length>il)return null;switch(Zc(e,t)){case`markdown`:return{mount:`inline`,html:kt(n)};case`html`:return{mount:`sandbox`,html:n};default:return null}}async function ol(e,t,n={}){let{mime:r,text:i,bytes:a}=await rl(e,t);if(!i){ot.open({path:t,content:a.buffer,mimeType:r,text:!1});return}let o=new TextDecoder().decode(a),s=await tl(e,t,o),c=al(t,r,o);ot.open({path:t,content:o,mimeType:r,text:!0,...s?{baseContent:s.baseContent,gitStatus:s.status}:{},...c?{rendered:c}:{},...n.line===void 0?{}:{line:n.line}})}async function sl(e,t){let{mime:n,bytes:r}=await rl(e,t),i=new Blob([r],{type:n}),a=URL.createObjectURL(i);try{let e=document.createElement(`a`);e.href=a,e.download=t.split(`/`).pop()||`download`,e.click()}finally{URL.revokeObjectURL(a)}}async function cl(e,t,n){let r=await e.readFile(t,{encoding:`binary`}),i=typeof r==`string`?r:Uint8Array.from(r);await e.writeFile(n,i)}async function ll(e,t){try{return await e.stat(t),!0}catch{return!1}}function ul(e){let{fileTree:t,openFs:n,openWriter:r,insertReference:i,toPreviewUrl:a,log:o}=e;t.addEventListener(`file-preview`,async e=>{let{path:t}=e.detail;try{await ol(await n(),t)}catch(e){o.error(`File preview failed`,e)}}),t.addEventListener(`file-reference`,e=>{let{path:t}=e.detail;i(t)}),t.addEventListener(`file-download`,async e=>{let{path:t}=e.detail;try{await sl(await n(),t)}catch(e){o.error(`File download failed`,e)}}),t.addEventListener(`file-overflow`,e=>{let{path:n,anchor:r,kind:i}=e.detail,a=i!==`directory`,o=[{id:`preview`,label:`Preview`,visible:a},{id:`reference`,label:`Reference in chat`,visible:a},{id:`download`,label:`Download`,visible:a},{id:`rename`,label:`Rename`,visible:a},{id:`duplicate`,label:`Duplicate`,visible:a},{id:`copy-path`,label:`Copy path`},{id:`open-browser`,label:`Open in browser`,visible:a&&nl(n)},{id:`delete`,label:`Delete`,destructive:!0,visible:a}];bt.show({anchor:r,items:o,context:{path:n},dispatchTarget:t})}),t.addEventListener(`overflow-action`,async e=>{let{action:n,context:i}=e.detail,{path:s}=i;try{switch(n){case`preview`:case`reference`:case`download`:t.dispatchEvent(new CustomEvent(`file-${n}`,{detail:{id:s,path:s},bubbles:!0,composed:!0}));break;case`copy-path`:await navigator.clipboard.writeText(s);break;case`open-browser`:window.open(a(s),`_blank`);break;case`duplicate`:{let e=s.lastIndexOf(`.`),t=e>0?`${s.slice(0,e)}_copy${s.slice(e)}`:`${s}_copy`,n=await r();if(await ll(n,t)&&!confirm(`${t} already exists. Overwrite?`))break;await cl(n,s,t);break}case`delete`:confirm(`Delete ${s}?`)&&await(await r()).rm(s);break;case`rename`:{let e=s.split(`/`).pop()??``,t=prompt(`Rename ${s} to:`,e)?.trim();if(!t||t===e||t.includes(`/`))break;let n=`${s.slice(0,s.length-e.length)}${t}`,i=await r();if(await ll(i,n)&&!confirm(`${n} already exists. Overwrite?`))break;await cl(i,s,n),await i.rm(s);break}}}catch(e){o.error(`Overflow action "${n}" failed`,e)}})}var dl=36e5,fl=2e3,pl=class{#e=[];#t;#n;constructor(e=dl,t=fl){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`}},ml=64,hl=12,gl=/\b(feedback|reviews?|corrections?|learnings?|observations?|testing|verification)\b/i,_l=/\b(user|preferences?|identit(?:y|ies)|accounts?|personal|interface|working rhythm|keyboard|accessibility)\b/i,vl=/^Auto-extracted \(/;function yl(e){let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}function bl(e){return(yl(kt(e)).textContent??``).replace(/\s+/g,` `).trim()}function xl(e){let t=bl(e);if(t.length<=ml)return{title:t,summary:``,titleEnd:t.length,summaryStart:t.length};let n=[];for(let e of t.matchAll(/[.!?](?:[*_`'")\]]*)\s+|\s+[—–]\s+|[:;](?:[*_`]*)\s+|,\s+(?=(?:and|but|because|while|when|then|so)\b)/g)){let r=/^\s+[—–]|^[:;]/.test(e[0]),i=e.index+(r?0:e[0].trimEnd().length),a=e.index+e[0].length;t.slice(0,i).trim().length>=hl&&i<=96&&t.slice(a).trim()&&n.push({titleEnd:i,summaryStart:a})}let r=n.sort((e,t)=>Math.abs(e.titleEnd-ml)-Math.abs(t.titleEnd-ml))[0];if(r)return{title:t.slice(0,r.titleEnd).trim(),summary:t.slice(r.summaryStart).trim(),titleEnd:r.titleEnd,summaryStart:r.summaryStart};let i=t.slice(0,97).lastIndexOf(` `),a=i>=hl?i:96,o=t.slice(a).trim();return{title:t.slice(0,a).trim(),summary:o,titleEnd:a,summaryStart:t.indexOf(o,a)}}function Sl(e,t){let n=bl(e),r=vl.test(t),i=r?n:`${t} ${n}`;return gl.test(i)?`feedback`:_l.test(i)?`user`:r?null:`project`}function Cl(e,t){let n=xl(e);return{title:n.title,summary:n.summary,section:t,tag:Sl(e,t),bodyHtml:kt(e),titleEnd:n.titleEnd,summaryStart:n.summaryStart}}function wl(e){let t=[],n=`Memory`,r=``,i=``,a=null,o=()=>[r||n,i].filter(Boolean).join(` / `),s=()=>{if(!a)return;let e=a.lines.join(` `).trim();e&&t.push(Cl(e,a.section)),a=null};for(let t of e.split(`
|
|
399
|
-
`)){let e=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t.trim());if(e){s();let t=bl(e[2]);e[1].length===1?(n=t||n,r=``,i=``):e[1].length===2?(r=t,i=``):e[1].length===3&&(i=t);continue}let c=/^\s*[-*]\s+(.*)$/.exec(t);c?(s(),a={lines:[c[1]],section:o()}):t.trim()?a?a.lines.push(t.trim()):a={lines:[t.trim()],section:o()}:s()}return s(),t}function Tl(e,t){let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=0,i=!1,a=!1,o=null,s=n.nextNode();for(;s;){for(let e=0;e<s.data.length;e+=1){if(/\s/.test(s.data[e])){i&&!a&&(a=!0,o={node:s,offset:e});continue}if(a){if(r===t)return o;r+=1}if(a=!1,o=null,r===t)return{node:s,offset:e};r+=1,i=!0}s=n.nextNode()}return r===t?{node:e,offset:e.childNodes.length}:null}function El(e,t,n){let r=yl(e),i=Tl(r,t),a=n==null?{node:r,offset:r.childNodes.length}:Tl(r,n);if(!i||!a)return document.createDocumentFragment();let o=document.createRange();o.setStart(i.node,i.offset),o.setEnd(a.node,a.offset);let s=o.cloneContents();for(let e of[...s.childNodes])e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim()&&e.remove();let c=s.childNodes.length===1?s.firstChild:null;if(!(c instanceof HTMLParagraphElement))return s;let l=document.createDocumentFragment();return l.append(...c.childNodes),l}function Dl(e){return wl(e).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`heading`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`section`,e.section),e.tag&&t.setAttribute(`tag`,e.tag),t.setHeadingContent(El(e.bodyHtml,0,e.titleEnd)),e.summary&&t.setBodyContent(El(e.bodyHtml,e.summaryStart,null)),t})}async function Ol(e,t=F.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 Dl(n)}function kl(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:ka(e),sublabel:n,meta:Da(e),icon:wa(e),badges:r,status:Ea(e)}})}}function Al(e){return e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`}function jl(e){return e.stalled?`stalled`:e.state===`leader`?`connected`:e.state}function Ml(e){let t=jl(e),n=e.sessionId?`Session ${Sa(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:Al(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:Al(e)}]}}function Nl(e,t){let n=e.filter(e=>w(e)),r=t=>e.filter(e=>!w(e)&&e.parentJid===t),i=(e,n)=>{let r=t(e.jid);return{name:w(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 Pl(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 Fl(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 Il(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 Ll(e){return{id:`cost`,label:`Cost`,icon:`receipt`,count:e?.models.length??0,meta:e?`$${e.totalCost.toFixed(2)} across ${e.models.length} models`:`no spend yet`,accent:`rose`,emptyText:`Model usage will be summarized after the first turn.`,rows:e?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`,status:`idle`}))??[]}}function Rl(e){let t=[];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 n=Al(e.tray);(n===`error`||n===`warn`)&&t.push({id:`tray`,severity:n===`error`?`error`:`warn`,icon:`cloud-off`,title:`Tray ${jl(e.tray)}`,detail:e.tray.workerBaseUrl?`Worker · ${e.tray.workerBaseUrl}`:`No tray session is established.`});for(let n of e.followers)Ea(n)===`warn`&&t.push({id:`follower:${n.runtimeId}`,severity:`warn`,icon:`radio`,title:`${ka(n)} stopped answering`,detail:n.motd??n.runtime??`No heartbeat from this follower.`,age:Da(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 zl(e){return e>=100?`$${Math.round(e)}`:`$${e.toFixed(2)}`}function Bl(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=[{id:`burn`,label:`Burn rate`,value:zl(c),unit:`/hour`,hero:!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},{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}];return l.length>0&&d.push({id:`context`,label:`Context fill`,value:String(Math.round(u*100)),unit:`%`,ratio:u,accent:u>=.9?`rose`:u>=.7?`amber`:`green`,foot:`fullest of ${l.length} context window${l.length===1?``:`s`}`}),d}var Vl={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function Hl(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 Ul(e,t){return{pid:e.pid,ppid:e.ppid,state:Vl[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:Hl(e.startedAt,t)}}async function Wl(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:Bl({stats:l,workingUnits:h,totalUnits:n.length,liveProcesses:d.length,terminated:f,history:t}),alerts:Rl({tray:r,followers:i,mounts:s,oauthProviders:p}),sections:[Ml(r),kl(i),Nl(n,t=>e.isProcessing(t)),Pl(s),Fl(m,p),Il(a,o),Ll(l)],processes:{rows:d.map(e=>Ul(e,g)),terminated:f}}}var Gl=`/shared`,Kl=3,ql=200;async function Jl(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,ql),s=o.filter(e=>e.type===`file`).map(e=>`${t}/${e.name}`),c=await Promise.allSettled(s.map(t=>e.stat(t))),l=new Map;s.forEach((e,t)=>{let n=c[t];n?.status===`fulfilled`&&l.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Kl?await Jl(e,i,n+1):[]});else{let e=l.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function Yl(e,t=F.root){let n=[];for(let r of[t,Gl])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await Jl(e,r,1)});return n}var Xl=200,Zl=1e3,Ql=3e3;function $l(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 Yl(n,e.getWorkspace().root);t===o&&(e.fileTree.items=i,r||(r=!0,ul({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:it,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>=Zl){clearTimeout(c),c=null,u();return}c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},Xl)},f=()=>{t??=setInterval(u,Ql)},p=()=>{let t=++a;s?.(),s=null;let n=[e.getWorkspace().root,Gl];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 eu(e){let t=!1,n=!1,r=0,i=null,a=new pl,o=$l(e),s=()=>{i!=null&&(clearInterval(i),i=null)},c=()=>{let t=++r;e.openFs().then(async n=>{let i=await Ol(n,e.getWorkspace().memoryPath);t===r&&(e.memoryHost.setRows?e.memoryHost.setRows(i):e.memoryHost.replaceChildren(...i))}).catch(t=>e.log.error(`WC memory refresh failed`,t))},l=()=>{(async()=>{try{e.monitor.model=await Wl(e.getMonitorDeps(),a)}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,l),{activate(r){if(r===`files`){o.open();return}if(r===`memory`){n=!0,c();return}if(r===`monitor`){s(),l(),i=setInterval(l,5e3);return}r===`term`&&!t&&(t=!0,e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}))},deactivate(e){e===`files`?o.close():e===`monitor`?s():e===`memory`&&(n=!1)},refreshMemory(){n&&c()},refreshFiles(){o.repoint()}}}var tu=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],nu=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),ru=2e4,iu=12,au=3e4;function ou(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 su(e){return e.slice(e.lastIndexOf(`/`)+1)}function cu(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function lu(e,t){let n=ou(e);return t.includes(`/`)?cu(n,t):su(n)===t}function uu(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))&&lu(a,e)&&(r.add(a),n.push(ou(a)),n.length>=du))break}return n}var du=4,fu=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??tu,this.#n=t.ignoredDirs??nu,this.#r=t.maxEntries??ru,this.#i=t.maxDepth??iu,this.#a=t.ttlMs??au}resolve(e,t=[]){this.#g();let n=ou(e),r=this.#d(n),i=uu(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)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=>cu(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)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(su(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>cu(t,e)).sort(pu)}:{query:e,matches:[...t].sort(pu)}}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 pu(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var mu=`file-mention`,hu=`data-file-mentions`;function gu(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var _u=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),vu=`file-mention-open`;async function yu(e,t,n=[]){let r=gu(e);if(e.getAttribute(hu)===r)return;let i=bu(e);if(i.length===0){e.setAttribute(hu,r);return}let a=[],o=new Set;for(let e of i){let t=lt(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(hu,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&&xu(e,n,l)}e.setAttribute(hu,gu(e))}function bu(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(_u.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 xu(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(Su(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 Su(e,t,n,r,i){let a=e.createElement(`a`);return a.className=mu,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(vu,{detail:t,bubbles:!0,composed:!0}))}),a}var Cu=`slicc-agent-message`,wu=`slicc-action-row[${mt}]`;function Tu(e,t){let n=[],r=e.querySelectorAll(wu);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=>Ot(e))}function Eu(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function Du(e){try{return Ou(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function Ou(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new fu(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;lt(n.textContent??``).length!==0&&Eu(()=>{let i=Tu(t,e);a().then(e=>yu(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll(Cu))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()===Cu?o(e):s(e));let e=t.target?.closest?.(Cu);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=>ol(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(vu,l),()=>{c.disconnect(),t.removeEventListener(vu,l)}}var ku=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Uu,DOCK_TREE_STORAGE_KEY:()=>Hu,attachWcClient:()=>Ku,makeSprinkleAttachImage:()=>Gu,mountWcUiLive:()=>qu,prepareWcShell:()=>Au,wireDockTreePersistence:()=>Wu,wireWcChipTips:()=>Lu});function Au(e,t){let n=yt(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,urlState:!0}),r=null,i=null,a=null,o=new Map,s=!1,c=null,l=new Set,u=null,d=e=>{if(a=e,!i)return;let t=Ut(Vt(e)),s=(e,t)=>{for(let n of t)i?.deleteQueuedMessage(e,n).catch(()=>void 0)},l=i.getScoops(),d=e=>{let t=e===void 0?void 0:l.find(t=>t.jid===e);return t?Lt(l,t)?.jid??t.jid:void 0},p=d(e.jid),m=i.selectedScoopJid;if(m&&m!==e.jid){let e=d(m);if(t&&p!==void 0&&p===e){let t=r?.stashQueued()??[];t.length>0&&(u={jid:e,items:t})}else s(m,(r?.getQueuedMessages()??[]).map(e=>e.id))}u&&(u.jid===e.jid?(r?.restoreQueued(u.items),u=null):p!==u.jid&&(s(u.jid,u.items.map(e=>e.id)),u=null));let h=o.get(e.jid);r?.setLickBackpressure(h?.count??0,h?.waitingMs??0,Jt(e)),i.setSelectedScoopJid(e.jid),r?.setReadOnly(t),t||n.inputCard.removeAttribute(`disabled`),ec(n,e,i.getScoops()),i.requestScoopMessages(e.jid),r?.setProcessing(i.isProcessing(e.jid)),n.switcher.hasAttribute(`attention`)||n.switcher.setAttribute(`attention`,e.jid),f.refreshScoops?.(),c?.refreshMemory(),c?.refreshFiles()},f={refs:n,statuses:new Map,fills:new Map,phases:new Map,lickBackpressure:o,lastActivity:new Map,pendingUrlContext:n.thread.urlContext??null,getController:()=>r,getClient:()=>i,getSelected:()=>a,selectScoop:d,notifyReady:()=>{s=!0;for(let e of l)e()}};return{refs:n,wiring:f,setClient:e=>{i=e},selectScoop:d,getSelected:()=>a,clearSelection:()=>{a=null},getController:()=>r,setController:e=>{r=e},setActivateSurface:e=>{c=e;let t=new Set(n.dockTree.getSurfaceIds());for(let n of[`files`,`term`,`memory`,`monitor`])t.has(n)&&(s?e.activate(n):l.add(()=>e.activate(n)))},onClientReady:e=>{l.add(e),s&&e()}}}function ju(e){let t=null;return()=>(t??=(async()=>{let[{createRemoteVfsClient:t},{createRemoteWritableVfsClient:n}]=await Promise.all([l(()=>import(`./remote-vfs-client-CN1pCs1m.js`),__vite__mapDeps([72,73])),l(()=>import(`./writable-vfs-client-CuBjWhy3.js`),__vite__mapDeps([74,73]))]);return{reader:t({transport:e.getTransport()}),writer:n({transport:e.getTransport()})}})(),t)}function Mu(e,t,n,r,i){e.onClientReady(()=>{r.intercept||l(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-BeunqMQZ.js`);return{wireWcOnboarding:e}},__vite__mapDeps([75,17,2,45,8,25,1,26,5,27,28,43,76])).then(({wireWcOnboarding:r})=>r({client:t,getController:()=>e.getController(),openVfs:n,log:i})).then(e=>{r.intercept=e.interceptWelcomeLick}).catch(e=>i.error(`WC onboarding wiring failed`,e))})}function Nu(e,t){let n=()=>{t.getSessionStats?.().then(n=>{if(!n)return;e.refs.floatbar.setAttribute(`spent`,n.totalCost.toFixed(2)),typeof n.burnRate==`number`&&Number.isFinite(n.burnRate)?e.refs.floatbar.setAttribute(`rate`,n.burnRate.toFixed(2)):e.refs.floatbar.removeAttribute(`rate`);let r=e.refs.floatbar;n.models&&(r.costModels=n.models),n.scoops&&(r.costScoops=n.scoops),e.fills.clear();for(let t of n.fills)e.fills.set(t.jid,t.fill);e.refs.switcher.scoops=Ls(t.getScoops(),e.statuses,e.fills,e.phases,e.awaitingInput,e.getSelected()?.jid)})};return setInterval(n,15e3),n}function Pu(e,t,n){let r=t.standalone;r&&l(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DdPBkgaJ.js`);return{wireWcBrowser:e}},__vite__mapDeps([77,8,78,79,2,80,3])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:r.browser,log:n})).catch(e=>n.error(`WC browser overlay wiring failed`,e))}function Fu(e,t){let{refs:n}=e;n.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.getScoops().find(e=>e.jid===r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)}),Lu({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function Iu(e){return()=>{e.triggerPlaceholder();let t=e.boot.getSelected()?.jid;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,String(n.content??``).slice(0,600))}}function Lu(e){let t=new Map,n=new Set;e.switcher.addEventListener(`pointerover`,r=>{let i=r.target?.closest?.(`.slicc-agent-tabs__segment`);if(!i||!e.switcher.contains(i))return;let a=i.dataset.k??``,o=e.getScoops().find(e=>e.jid===a);if(!o)return;let s=e.lastActivity.get(a)??``,c=t.get(a);if(c&&c.activity===s){i.title=c.tip;return}i.title||=E(o),!(!s||n.has(a))&&(n.add(a),(async()=>{try{let n=await(e.labelFn??(await l(async()=>{let{quickLabel:e}=await import(`./quick-llm-drlxgkUg.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([15,1,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,38,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: ${w(o)?`${E(o)} (a main agent)`:o.name}\nMost recent activity:\n${s}`,maxTokens:40});n&&(t.set(a,{activity:s,tip:n}),i.title=n)}finally{n.delete(a)}})())})}async function Ru(e,t,n){let{RemoteTerminalView:r}=await l(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-D2bRNJcS.js`);return{RemoteTerminalView:e}},__vite__mapDeps([81,1,17,34,2,56,82,51,0,3,4,5,6,7,8,14,83,24,13,10,11,12,9,84])),{fetchSecretEnvVars:i}=await l(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-CjwX7z7b.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([85,2,25,1,17,26,8,5,27,28,29,7,30,31,32])),a=await i(),o=new r({client:t,cwd:`/`,env:Object.keys(a).length>0?a:void 0});await new Promise(t=>e.onClientReady(t)),await o.mount(n),globalThis.__slicc_terminal_view=o,window.addEventListener(`beforeunload`,()=>o.dispose(),{once:!0})}function zu(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=Rt(t.getScoops(),r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)};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 Bu(e,t,n,r){l(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-WjSZrbPa.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([86,17,2,56])).then(async({installLeaderPermissionsSurface:r,installMountPendingConsumer:i})=>{let a=n.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:o,isExtensionRuntime:s}=await l(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-I39VzaSN.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([87,17,5,6,7,8]));r({runtimeMode:a,providers:await o(s()||a===`extension`||a===`extension-detached`)}),i({runShell:Vu(e,t)})}).catch(e=>r.warn(`WC permissions surface wiring failed`,e))}function Vu(e,t){let n=null,r=()=>(n||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:n}=await l(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-ADzaWGFd.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([84,1])),r=new n({client:t,sid:`mount-drop-${Date.now()}`});return await r.open({cwd:`/workspace`}),r})().catch(e=>{throw n=null,e}),n);return async e=>(await r()).exec(e)}var Hu=`slicc-dock-tree:default`,Uu={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 Wu(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(Hu,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(Hu);r.setTree(e?JSON.parse(e):Uu)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Uu)}}function Gu(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 Ku(e,t,n,r={}){l(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-B7yZ6nn6.js`).then(e=>e.H);return{initTimestampPreference:e}},__vite__mapDeps([50,1,17,8,33,42,5,6,7,51,39,52,53,54])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:i}=e;e.setClient(t);let a=le(`panel-layouts`);i.dockTree.tilesMovable=a,a||Wu(i,n);let o=null,s=Nu(e.wiring,t),c=()=>o?.(),u={intercept:null},{controller:d,agentHandle:f}=uc(i,t,()=>e.getSelected(),Iu({boot:e,triggerPlaceholder:c,refreshStats:s}),u);e.setController(d),e.onClientReady(s);let p=ju(t),m=async()=>(await p()).reader;r.standalone?.runtimeMode!==`cherry`&&r.standalone?.runtimeMode!==`hosted-leader`&&Mu(e,t,p,u,n);let h=nc({boot:e,client:t,agentHandle:f,setRefreshPlaceholder:e=>{o=e},triggerPlaceholder:c,openReader:m,openWriter:async()=>(await p()).writer,log:n});Fu(e,t),Pu(e,r,n),Bu(e,t,r,n);let g=eu({fileTree:i.fileTree,termSurface:i.termSurface,memoryHost:i.memoryHost,monitor:i.monitor,openFs:m,openWriter:async()=>(await p()).writer,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>Rc({client:t,openReader:m,storage:window.localStorage}),getWorkspace:()=>or(t.getScoops(),e.getSelected()??void 0),mountTerminal:n=>Ru(e,t,n),insertReference:e=>{let t=i.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:n});e.setActivateSurface(g),a&&l(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-DpfBeau6.js`);return{panelizeShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90])).then(({panelizeShell:e})=>e(i,void 0,void 0,{onToolPanelActivate:e=>g.activate(e),onToolPanelDeactivate:e=>g.deactivate(e)})).catch(e=>n.error(`panelize failed — keeping the classic shell`,e)),Du({thread:i.thread,openFs:m,log:n}),i.floatbar.addEventListener(`click`,()=>{let e=i.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let _=Tc({refs:i,openVfs:p,client:t,getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,log:n}),{refreshFreezer:v,openFrozen:y,getViewedFrozenSessionId:ee}=_;if(v(),e.onClientReady(v),le(`multiple-cones`)){let r=Ps({freezer:i.freezer,client:t,getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,freezeCone:_.freezeCone,log:n});e.wiring.refreshConeActions=r.refresh,e.onClientReady(r.refresh)}zu(e,t,y),e.onClientReady(()=>{p().then(async({reader:e,writer:t})=>{let{loadShortcutConfig:n}=await l(async()=>{let{loadShortcutConfig:e}=await import(`./wc-shortcut-config-CRticSXA.js`);return{loadShortcutConfig:e}},__vite__mapDeps([91,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54]));await n({reader:e,writer:t,apply:i.shortcuts.setKeymap})}).catch(e=>n.warn(`WC shortcut config load failed`,e))}),p().then(async({reader:e})=>{let{installPreviewVfsResponder:t}=await l(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-CluNpFQR.js`);return{installPreviewVfsResponder:e}},[]);t({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:n})}).catch(e=>n.warn(`WC page-VFS support wiring failed`,e)),p().then(async({reader:a,writer:o})=>{let{createRemoteSprinkleVfs:s}=await l(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-CawR6gXx.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([92,73])),c=(await l(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-DpfBeau6.js`);return{getPanelizedShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90]))).getPanelizedShell(),{wireWcSprinkles:u}=await l(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-D-DWMPsX.js`);return{wireWcSprinkles:e}},__vite__mapDeps([93,17,5,6,7,8,94,76])),d=await u({refs:i,client:t,fs:s({reader:a,writer:o}),instanceId:r.instanceId,onAttachImage:Gu(h,n),onToolPanelActivate:e=>g.activate(e),onToolPanelDeactivate:e=>g.deactivate(e),hostSprinkleSurface:c?(e,t)=>c.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:c?e=>c.removeSprinkleSurface(e):void 0,log:n});e.onClientReady(()=>void d.resync());let{getPanelizedShell:_}=await l(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-DpfBeau6.js`);return{getPanelizedShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90])),v=_();if(v){let e=s({reader:a,writer:o});v.attachFs(e);let{registerAgentPanels:t}=await l(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-DwH4FR7k.js`);return{registerAgentPanels:e}},__vite__mapDeps([95,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54]));await t(e).catch(e=>n.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await l(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:t}=await l(async()=>{let{applyLayout:e}=await import(`./apply-layout-DWTxIKYs.js`);return{applyLayout:e}},__vite__mapDeps([96,93,17,5,6,7,8,94,76]));e(e=>t(d.zone,e))}if(r.standalone&&r.instanceId){let{wireWcTray:a}=await l(async()=>{let{wireWcTray:e}=await import(`./wc-tray-D6joGkUe.js`);return{wireWcTray:e}},__vite__mapDeps([97,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,98,78,99,100,45,43,101,46,76,61,62,50,42,6,51,39,52,53,54,102,65,66,94,103,104,40,41,44,47,48,56,3,105,106,84,68,80,107,108])),o=d.zone.callbacks(),s=await a({refs:i,client:t,browser:r.standalone.browser,realCdpTransport:r.standalone.realCdpTransport,instanceId:r.instanceId,runtimeMode:r.standalone.runtimeMode,sprinkleManager:d.manager,addSprinkle:(e,t,n)=>o.addSprinkle(e,t,n),removeSprinkle:e=>o.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.jid??`cone`,agentHandle:f,openFs:m,openWriter:async()=>(await p()).writer,window,log:n});e.wiring.notifyScoopStateChanged=()=>s.scheduleScoopsListBroadcast()}}).catch(e=>n.error(`WC sprinkle/tray wiring failed`,e));{let e=new Qt,n=new rn,r=on(new ss({collection:{listScoops:()=>t.getScoops(),isProcessing:e=>t.isProcessing(e),getAgentMessages:()=>null,loadPersistedSessions:()=>e.loadAll(),loadUiChatSessions:async()=>{let e=await n.list();return(await Promise.all(e.map(e=>n.load(e)))).filter(e=>e!==null)},wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:Ts(),snapshotStore:{read:async e=>{let{reader:t}=await p();return vs(t,e)},write:async(e,t)=>{let{writer:n}=await p();return _s(n,e,t)}},vfs:{readFile:async(e,t)=>(await p()).reader.readFile(e,t),readDir:async e=>(await p()).reader.readDir(e),stat:async e=>(await p()).reader.stat(e)},getActiveSessionInfo:()=>{let e=qt(t.getScoops());return{id:e?.jid??`session-${Date.now()}`,title:e?.name??`Active Session`}},version:`6.99.8`}));window.addEventListener(`unload`,r,{once:!0})}let b=!1,x=()=>b?Promise.resolve():(b=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:t,downloadTranscriptBlob:n}]=await Promise.all([l(()=>Promise.resolve().then(()=>an),void 0),l(()=>import(`./wc-transcript-export-DVjtNvuR.js`),__vite__mapDeps([109,17,103,8,104,1]))]),r=ee(),i=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r},a=await e().export(i,{}),{filename:o}=a;await n(await t(a),o)}catch(e){n.error(`Transcript export failed`,e)}finally{b=!1}})());if(l(async()=>{let{wireWcNav:e}=await import(`./wc-nav-DjOpEDo-.js`);return{wireWcNav:e}},__vite__mapDeps([110,17,5,6,7,8,44,45,25,1,26,27,28,43,46,47,48,68,2,94,76])).then(({wireWcNav:e})=>e({refs:i,client:t,log:n,onExportTranscript:x,shortcuts:i.shortcuts})).catch(e=>n.error(`WC nav wiring failed`,e)),l(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-Byuwd2QJ.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([111,2,5,6,7,8,56,52,59,60,25,1,17,26,27,28,61,62,112])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=i.composer;t(r.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>n.error(`WC push-to-talk wiring failed`,e)),l(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-BsVaFA0Z.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([58,17,2,5,6,7,8,59,60,25,1,26,27,28,61,62])).then(({setSpeakAssetsInstanceId:e})=>e(r.instanceId)).catch(e=>n.error(`WC say warmup wiring failed`,e)),r.standalone)return()=>{l(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-DagG-ZZy.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await p()).writer,onComplete:v})).catch(e=>n.warn(`Pending session catch-up scheduling failed`,e))}}async function qu(e,t,n=`standalone`){let{browser:r,realCdpTransport:i,instanceId:a,localApiBaseUrl:o,bridgeToken:s,localLickWsUrl:c,extensionDelegateId:u,attachLickForwardingClient:d}=await ve({runtimeMode:n,envBaseUrl:null,window,log:t}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await l(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await import(`./wc-float-label-d3I12c8W.js`);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},__vite__mapDeps([113,25,1,17,26,8,5,27,28,50,33,42,6,7,51,39,52,53,54])),{installFloatbarStatus:h}=await l(async()=>{let{installFloatbarStatus:e}=await import(`./wc-floatbar-online-CFeU9jju.js`);return{installFloatbarStatus:e}},__vite__mapDeps([114,46,68,1,2,25,17,26,8,5,27,28,6,7,45,43,113,50,33,42,51,39,52,53,54])),g=n===`standalone`?await m():f(n),_=p(g),v=Au(e,_);h(v.refs.floatbar,{floatKind:g,label:_}),a&&ye(a);let{syncFsBridgeEnabled:y,syncFsChannelNonce:ee}=Bc(),b=!1,x=Qa({realCdpTransport:i,instanceId:a,makeClient:e=>new Ua(Rs(v.wiring),e),localApiBaseUrl:o,bridgeToken:s,syncFsBridgeEnabled:y,syncFsChannelNonce:ee,localLickWsUrl:c,extensionDelegateId:u,flagFloat:n,onWorkerScriptError:()=>{_e()},onReadyStall:e=>{b=!0,l(()=>import(`./boot-stall-overlay-Pxp4nHfq.js`).then(t=>t.showBootStallOverlay(document,e)),[])},onLateReady:()=>{_e()}});Ga({send:e=>x.client.sendRaw(e)}),d?.(x.client);let te=Ku(v,x.client,t,{instanceId:a,standalone:{browser:r,realCdpTransport:i,runtimeMode:n,floatKind:g}}),{setupSudoStandalone:ne}=await l(async()=>{let{setupSudoStandalone:e}=await import(`./main-DjAHuk3R.js`).then(e=>e.i);return{setupSudoStandalone:e}},__vite__mapDeps([40,1,41,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,6,42,43,44,45,46,47,48]));await ne({log:t});try{await x.ready}finally{b&&l(()=>import(`./boot-stall-overlay-Pxp4nHfq.js`).then(e=>e.removeBootStallOverlay(document)),[])}v.wiring.notifyReady?.(),t.info(`WC live shell ready`,{scoops:x.client.getScoops().length}),te?.();let{consumeAutoPrompt:re}=await l(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),S=re(window.location.search);S&&(v.getController()?.sendUserMessage(S),t.info(`Auto-prompt submitted`,{length:S.length}))}export{Si as A,wa as C,ja as D,ka as E,Kn as F,Gn as I,an as L,ta as M,Tn as N,Ci as O,cn as P,rn as R,Aa as S,Ea as T,Hs as _,Nc as a,xa as b,Ac as c,dc as d,lc as f,Bs as g,Vs as h,Oc as i,ba as j,ra as k,Fc as l,zs as m,Au as n,jc as o,Zs as p,ku as r,Dc as s,Ku as t,fc as u,Rs as v,Da as w,Oa as x,Ua as y};
|
|
398
|
+
`}function cc(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var lc=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=!1;#D=!1;#O=`thinking`;#k=0;#A=null;#j=new Set;#M=new Map;#N=new Map;#P=new Set;#F=!1;#I=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.#q(e)),this.#v=e=>this.#fe(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.#M.keys()])this.#de(e);this.#N.clear(),this.#P.clear(),this.#ue()}setReadOnly(e){if(this.#F!==e&&(this.#F=e,e))for(let e of[...this.#M.keys()])this.#de(e)}get readOnly(){return this.#F}get processing(){return this.#D}getMessages(){return this.#y.map(e=>({...e}))}setAgent(e){this.#h(),this.#t=e,this.#h=e.onEvent(e=>this.#q(e))}setOnLocalUserMessage(e){this.#g=e}setOnLocalProcessingChange(e){this.#_=e}addUserMessage(e,t){this.#he({id:Q(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#b.map(cc)}removeQueuedMessage(e){let t=this.#b.filter(t=>t.id!==e);t.length!==this.#b.length&&(this.#b=t,this.#z())}stashQueued(){let e=this.#b;return e.length===0?[]:(this.#b=[],this.#z(),e)}restoreQueued(e){this.#I=e.length>0?[...e]:null}heldBackendPendingIds(e){if(!this.#I||!e?.length)return new Set;let t=new Set(e);return new Set(this.#I.filter(e=>t.has(e.id)).map(e=>e.id))}#L(e,t){if(!this.#I)return;let n=this.heldBackendPendingIds(t),r=new Set(e.map(e=>e.id)),i=this.#I.filter(e=>!r.has(e.id)||n.has(e.id));if(this.#I=null,i.length===0)return;if(!t){this.#b=i,this.#z();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.#D?o:[...o,...s],this.#z(),this.#D)for(let e of s)this.#he(e)}#R(){if(this.#b.length===0)return;let e=this.#b;this.#b=[];for(let t of e)this.#he(t);this.#z()}#z(){this.#u?.(this.#b.map(cc))}#B(){this.#d?.(this.#x)}setLickBackpressure(e,t,n){if(e<=0){if(!this.#x)return;this.#x=null,this.#B();return}this.#x={text:`${e} events waiting for the current turn`},this.#B();try{S(n,t)}catch{}}addAssistantMessage(e){this.#he({id:Q(),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.#M.keys()])this.#de(e);this.#N.clear(),this.#P.clear(),this.#ue();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.#z();let r=this.heldBackendPendingIds(t),i=r.size>0?e.filter(e=>!r.has(e.id)):e;this.#y=xt(i);let a=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=a?.id??null,a&&(this.#w=a.id),this.#T=``,this.#E=!1,this.#S.clear();let o=[],s=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==s&&(o.push(vt(e.timestamp)),s=t);let n=this.#me(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.#ye();for(let e of this.#y)e.isStreaming||this.#o?.(e,this.#S.get(e.id)??[]);this.#K(),this.#xe(),this.#V(),this.#L(e,t)}#V(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!ge()||this.#D)return;let e=this.#y[this.#y.length-1];e.role!==`user`||e.source===`lick`||e.source===`delegation`||e.queued||this.#fe(new Event(`slicc-error-retry`))}sendUserMessage(e,t,n){let r=e.trim();if(!r&&!t?.length)return;let i=n?.dictation?this.#H(r):r,a={id:Q(),role:`user`,content:i,timestamp:Date.now(),attachments:t?.length?t:void 0};this.#D&&!n?.steer?(this.#b.push(a),this.#z()):this.#he(a),n?.steer?this.#t.sendMessage(i,a.id,a.attachments,{steer:!0}):this.#t.sendMessage(i,a.id,a.attachments),this.#U();try{let e=n?.dictation?ct(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#H(e){return dt(e,st())}#U(){if(this.#l)try{let e=this.#l();if(!e)return;oe(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.#ge(a);return}this.#he({id:e,role:`user`,content:t,timestamp:r,source:`lick`,channel:n,lickId:i,lickState:i?`pending`:void 0,queued:this.#D?!0:void 0})}updateLickState(e,t){let n=this.#y.find(t=>t.lickId===e);n&&(n.lickState=t,this.#ge(n))}setProcessing(e){if(this.#D!==e){this.#D=e,e&&(this.#w=null),e&&(this.#k=0,this.#W(`thinking`)),e&&this.#R(),e||(this.#x&&(this.#x=null,this.#B()),this.#K()),this.#n?.(e);try{this.#_?.(e)}catch(e){console.error(`onLocalProcessingChange hook threw`,e)}e||this.#G()}}#W(e){this.#O!==e&&(this.#O=e,this.#r?.(e))}#G(){let e=this.#w;if(this.#w=null,!this.#c)return;let t=e?this.#pe(e):null;this.#c(t?{...t}:null)}#K(){let e=this.#y[this.#y.length-1];if(!(e?.role===`assistant`&&!e.isStreaming)){this.#A?.remove();return}this.#A??=ac({getMessages:()=>this.getMessages()}),(this.#e.inner??this.#e).append(this.#A)}#q(e){switch(e.type){case`message_start`:this.#J(e.messageId);break;case`content_delta`:this.#Y(e.messageId,e.text);break;case`content_done`:this.#Z(e.messageId,e.model,e.usage);break;case`tool_use_start`:this.#$(e.messageId,e.toolName,e.toolInput,e.toolCallId);break;case`tool_result`:this.#te(e.messageId,e.toolName,e.result,e.isError,e.toolCallId);break;case`tool_ui`:this.#ae(e.messageId,e.requestId,e.html);break;case`tool_ui_done`:this.#oe(e.requestId);break;case`tool_progress`:this.#se(e.messageId,e.toolName,e.progress,e.toolCallId);break;case`turn_end`:this.#ne(e.messageId);break;case`error`:this.#re(e.error)}}#J(e){this.setProcessing(!0),this.#C=e,this.#w=e,this.#he({id:e,role:`assistant`,content:``,timestamp:Date.now(),isStreaming:!0,toolCalls:[]})}#Y(e,t){this.#pe(e)&&(this.#T+=t,!this.#E&&(this.#E=!0,requestAnimationFrame(()=>this.#X(e))))}#X(e){if(this.#E=!1,!this.#T)return;let t=this.#pe(e);t&&(t.content+=this.#T,this.#T=``,this.#ge(t))}#Z(e,t,n){let r=this.#pe(e);r&&(t&&(r.model=t),n&&(r.usage=n),this.#T&&this.#C===e&&(r.content+=this.#T),this.#T=``,this.#E=!1,r.isStreaming=!1,this.#ge(r))}static#Q(e,t){return`${e}:${t}`}#$(t,n,r,i){let a=this.#pe(t);if(!a)return;a.toolCalls=a.toolCalls??[];let o=i?e.#Q(t,i):Q();this.#P.add(o),a.toolCalls.push({id:o,name:n,input:r}),this.#k+=1,this.#W(`tool`),this.#ge(a)}#ee(t,n,r){let i=t?.toolCalls??[];if(r){let n=t?e.#Q(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)}#te(e,t,n,r,i){let a=this.#pe(e),o=this.#ee(a,t,i);!a||!o||(o.result=n,o.isError=r,o.id&&(this.#N.delete(o.id),this.#ue()),this.#k=Math.max(0,this.#k-1),this.#k===0&&this.#W(`thinking`),this.#ge(a))}#ne(e){let t=this.#pe(e);t?.isStreaming&&(t.isStreaming=!1,this.#ge(t)),this.#C=null,this.setProcessing(!1)}#re(e){this.setProcessing(!1),this.#he({id:Q(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#ie(e)}#ie(e){try{if(ce(e)||ae(e)||ie(e))return;se(`error-card`,e)}catch{}}#ae(e,t,n){if(this.#F)return;this.#de(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=P(r,sc(n),()=>{},!1);this.#M.set(t,{instance:e,container:r});return}let i=P(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#M.set(t,{instance:i,container:r}),this.#p?.(t,re,void 0)}#oe(e){this.#de(e)}#se(e,t,n,r){let i=this.#pe(e),a=this.#ee(i,t,r);a?.id&&(n.phase===`end`?this.#N.delete(a.id):this.#N.set(a.id,n),this.#ce(a.id),this.#ue())}#ce(e){let t=this.#e.querySelector(`slicc-action-row[data-tool-id="${CSS.escape(e)}"]`);t&&wt(t,this.#N.get(e)??null),this.#le()}#le(){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.#P.has(e.dataset.toolId)).map(e=>{let t=e.dataset.toolId,n=e.getAttribute(`result`);return{done:n!==null&&n!==`…`,fraction:this.#N.get(t)?.fraction}});gt(t,ht(e))}}#ue(){let e=null,t=[...this.#N.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))}#de(e){let t=this.#M.get(e);if(t){this.#M.delete(e);try{t.instance.dispose()}catch{}t.container.remove()}}#fe(e){if(this.#D)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,Q(),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,Q(),i.attachments)}#pe(e){return this.#y.find(t=>t.id===e)}#me(e){try{return _t(e,{readOnly:this.#F})}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]}}#he(e){this.#ve(),this.#y.push(e);let t=this.#me(e);this.#S.set(e.id,t),this.#e.append(...t),this.#ye(),e.isStreaming||this.#o?.(e,t),e.role===`user`?this.#xe():this.#Se()}#ge(e){this.#ve(),this.#s?.(e.id);let t=this.#S.get(e.id)??[],n=this.#me(e),r=t[0]??null,i=r?.parentNode;if(i){for(let e of n)i.insertBefore(e,r);for(let e of t)e.remove()}else this.#e.append(...n);this.#S.set(e.id,n);for(let t of e.toolCalls??[])t.id&&this.#N.has(t.id)&&this.#ce(t.id);this.#ye(),this.#le(),e.isStreaming||this.#o?.(e,n),this.#Se()}#_e(){return this.#e.inner??this.#e}#ve(){Dt(this.#_e(),this.#j)}#ye(){ft(this.#_e(),{openClusterAnchors:this.#j,toolCallLookup:(e,t)=>this.#be(e,t)})}#be(e,t){return this.#y.find(t=>t.id===e)?.toolCalls?.find(e=>e.id===t)}#xe(){this.#e.scrollTop=this.#e.scrollHeight}#Se(){let e=this.#e;typeof e.requestFollow==`function`?e.requestFollow():this.#xe()}};function uc(e,t,r,a,o){let s=new Map;l(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e}},__vite__mapDeps([64,17])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),l(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CXRqxpw6.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([65,1,66,2])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),l(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-By4GU_Wc.js`).then(e=>e.p);return{applyThemeOverrides:e}},__vite__mapDeps([66,1,2])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let c=t.createAgentHandle();c.onEvent(t=>{(t.type===`tool_use_start`||t.type===`tool_result`)&&(t.type===`tool_result`&&t.isError&&e.switcher.glower(),l(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([63,2,53])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let u=new lc({thread:e.thread,agent:c,resolveTelemetryContext:()=>{let e=r();if(!e)return null;let t=Jt(e);try{let r=Ze(e);return{scoopName:t,model:(r?i(r.id,r.provider):n()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{l(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-BFImQhAG.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([57,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54,58,59,60,25,26,27,28,61,62])).then(async({consumeVoiceSubmission:t,speakReplyMarkdown:n})=>{if(!t())return;let{endVoiceTurn:r,setTtsActive:i}=await l(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([63,2,53]));try{if(e?.content){i(!0);try{await n(e.content)}finally{i(!1)}}}finally{r()}}).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&&(Kn(t),s.delete(e))},onMessageRendered:(e,n)=>{let r=n[0];r&&s.set(e.id,Gn(r,(e,n)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:n}};o?.intercept?.(r)||t.sendSprinkleLick(`inline`,{action:e,data:n})}))},onQueuedChange:t=>e.queuedStack.setMessages(t),onLickBackpressureChange:t=>{e.lickBackpressureNotice.textContent=t?.text??``,e.lickBackpressureNotice.toggleAttribute(`hidden`,t===null)},onToolUiAction:(e,n,r)=>{t.sendToolUiAction(e,n,r)},onQueuedCancel:e=>{let n=t.selectedScoopJid;n&&t.deleteQueuedMessage(n,e).catch(()=>void 0)}});return e.queuedStack.addEventListener(`slicc-queued-remove`,e=>{let n=e.detail?.id;if(!n)return;u.removeQueuedMessage(n);let r=t.selectedScoopJid;r&&t.deleteQueuedMessage(r,n).catch(()=>void 0)}),{controller:u,agentHandle:c}}var dc=`slicc:leader-run-new-session`,fc=`slicc:leader-broadcast-snapshot`;function pc(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function mc(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function hc(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,mc(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function gc(e){let t=new Map;for(let n of e.entries){if(n.icon||n.pendingEnrichment)continue;let r=await e.pickIcon(`"${n.title}" — an archived chat session`);r&&t.set(n.filename,r)}if(t.size===0)return;let n=await _c(e.reader);if(n===null||n.length===0)return;let r=n.map(e=>{let n=!e.icon&&t.has(e.filename)?t.get(e.filename):void 0;return n?{...e,icon:n}:e});await e.writer.writeFile(V,JSON.stringify(r,null,2));for(let n of e.freezer.querySelectorAll(`slicc-freezer-card`)){let e=t.get(n.getAttribute(`slug`)??``);e&&!n.hasAttribute(`icon`)&&n.setAttribute(`icon`,e)}}async function _c(e){let t=await vc(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function vc(e){let t;try{let n=await e.readFile(V,{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 yc(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),a=i.slice(0,2e3),o=/^title:\s*"?(.*?)"?\s*$/m.exec(a)?.[1]??r,s=/^frozenAt:\s*"?(.*?)"?\s*$/m.exec(a)?.[1]??new Date(0).toISOString(),c=Number(/^messageCount:\s*(\d+)\s*$/m.exec(a)?.[1]??0),l=fi(i);n.push({filename:r,title:o,frozenAt:s,messageCount:c,...l.cost?{cost:l.cost}:{},...l.models?{models:l.models}:{},...l.cone?{cone:l.cone}:{},...l.coneLabel?{coneLabel:l.coneLabel}:{},...l.memorySkipped?{memorySkipped:!0}:{},...r.startsWith(`pending-`)?{pendingEnrichment:!0}:{}})}catch{}return n.sort((e,t)=>t.frozenAt.localeCompare(e.frozenAt)),n}function bc(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(hc))}async function xc(e,t){let n=await e.readFile(U(t),{encoding:`utf-8`}),r=fi(typeof n==`string`?n:new TextDecoder().decode(n));return{title:r.title||t.title,messages:r.messages}}async function Sc(e,t){let{getTranscriptExportService:n}=await l(async()=>{let{getTranscriptExportService:e}=await Promise.resolve().then(()=>an);return{getTranscriptExportService:e}},void 0);await n().captureFrozen({sessionId:t.sessionId??t.archive.id,title:t.archive.title,frozenAt:t.archive.frozenAt,createdAt:t.archive.createdAt,updatedAt:t.archive.updatedAt,...e?{rootJid:e.jid}:{}})}async function Cc(e){let{root:t}=e,n=t?{folder:t.folder,label:E(t),jid:t.jid}:void 0,r=e=>Sc(t,e);if(e.action!==`save`){await e.runNewSessionFreezeQuick({vfs:e.writer,cone:n,captureCompleteSnapshot:r});return}await e.runNewSessionFreeze({vfs:e.writer,cone:n,agenticMemorySpawn:t=>e.client.spawnAgent(t),captureCompleteSnapshot:r,onProgress:t=>{let n=e.freezerNew();n&&(t===null?n.removeAttribute(`progress`):n.setAttribute(`progress`,String(t)))},onBackgroundEnriched:e.refreshFreezer})}function wc(e,t){let n=t?pc(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}function Tc(e){let{refs:t,openVfs:n,client:r,getController:i,getSelected:a,clearSelection:o,log:s}=e,c=[],u=null,d=t=>{u=null,e.selectScoop(t)},f=0,p=!1,m=()=>{let e=++f;n().then(async({reader:n,writer:r})=>{let i=await _c(n);if(i===null){if((await vc(n)).kind!==`corrupt`||(s.warn(`WC freezer index corrupt — rebuilding from archives`),i=await yc(n),i.length===0))return;await r.writeFile(V,JSON.stringify(i,null,2))}e===f&&(c=i,bc(t.freezer,i),!p&&i.some(e=>!e.icon&&!e.pendingEnrichment)&&(p=!0,l(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-CPywyeCK.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([15,1,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,38,39])).then(({pickLucideIcon:e})=>gc({reader:n,writer:r,freezer:t.freezer,entries:i,pickIcon:t=>e({subject:t})})).catch(e=>s.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{p=!1})))}).catch(e=>s.error(`WC freezer refresh failed`,e))},h=!1,g=()=>t.freezer.querySelector(`slicc-freezer-new`),_=e=>{h||(h=!0,g()?.setAttribute(`busy`,``),(async()=>{let t=Lt(r.getScoops(),a());try{let{writer:a}=await n(),{resetNewSessionTmp:o,runNewSessionFreeze:s,runNewSessionFreezeQuick:c}=await l(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-Dq10ablA.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38]));e!==`erase`&&await Cc({action:e,writer:a,root:t,client:r,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:s,runNewSessionFreezeQuick:c}),await o(a),await r.clearAllMessages(t?.jid),i()?.loadMessages([]),window.dispatchEvent(new CustomEvent(fc)),l(async()=>{let{resetDictationPriming:e}=await import(`./wc-shell-C8rORiLz.js`).then(e=>e.K);return{resetDictationPriming:e}},__vite__mapDeps([50,1,17,8,33,42,5,6,7,51,39,52,53,54])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),m();let u=r.getScoops().find(e=>e.jid===t?.jid)??qt(r.getScoops());u&&d(u)}catch(e){s.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`])t.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:t}=await n(),{runNewSessionArchiveOnly:r}=await l(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-Dq10ablA.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38]));await r({vfs:t,cone:{folder:e.folder,label:E(e),jid:e.jid},captureCompleteSnapshot:t=>Sc(e,t)}),m()};le(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(dc,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async e=>{let l=c.find(t=>t.filename===e);try{let{reader:r}=await n();l||=(await _c(r)??[]).find(t=>t.filename===e);let{messages:a}=await xc(r,l??{filename:e,title:e,frozenAt:``,messageCount:0});t.thread.setAttribute(`context`,`freezer:${l?.filename??e}`),u=l?.sessionId??l?.filename??null,i()?.loadMessages(a),(t.thread.inner??t.thread).prepend(wc(t.thread.ownerDocument,l)),t.thread.setAttribute(`accent`,Et),Tt(t,{kind:`freezer`}),t.inputCard.setAttribute(`disabled`,``),t.switcher.removeAttribute(`active`),o()}catch(e){if(s.error(`WC thaw failed`,e),!a()){let e=Bt(r.getScoops(),l?.cone);e&&d(e)}}};return t.freezer.addEventListener(`freezer-card-select`,e=>{let t=e.detail?.slug;t&&y(t)}),{refreshFreezer:m,openFrozen:y,getViewedFrozenSessionId:()=>u,freezeCone:v}}d(`scoops.tray-leave`),d(`scoops.tray-join`);var Ec=null;function Dc(e){Ec=e}function Oc(){return Ec?.()??[]}var kc=null;function Ac(e){kc=e}function jc(){return kc??void 0}var Mc=`slicc.leaderTrayFollowers`;function Nc(){return Pc()}function Pc(){if(Ec)return Ec();try{let e=globalThis.localStorage?.getItem(Mc);if(e)return JSON.parse(e)}catch{}return[]}function Fc(e,t=globalThis.localStorage){try{t?.setItem(Mc,JSON.stringify(e))}catch{}}function Ic(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 Lc(e){let t=he();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:pe(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=qe();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=de(e.getItem(fe))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Rc(e){let{client:n,openReader:r,storage:i}=e;return{getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await l(async()=>{let{getAllCronTasks:e}=await import(`./tray-leader-Mq6HIneb.js`).then(e=>e.o);return{getAllCronTasks:e}},__vite__mapDeps([68,1,2,25,17,26,8,5,27,28,6,7,45,43]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await l(async()=>{let{getAllWebhooks:e}=await import(`./tray-leader-Mq6HIneb.js`).then(e=>e.o);return{getAllWebhooks:e}},__vite__mapDeps([68,1,2,25,17,26,8,5,27,28,6,7,45,43]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await l(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([69,1])),n=await e();return Promise.all(n.map(async e=>{if(e.descriptor.kind!==`local`)return e;try{let n=await(await t(e.descriptor.idbHandleKey))?.queryPermission?.({mode:`readwrite`});return{...e,valid:n===`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,n=[];for(let r of c()){if(e.has(r.providerId))continue;if(e.add(r.providerId),!t(r.providerId)?.isOAuth){n.push({providerId:r.providerId});continue}let i=a(r.providerId),o=r.loggedOut?!1:i?!i.expired:!1;n.push({providerId:r.providerId,valid:o})}return n}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await(await r()).readFile(`/proc/table`,{encoding:`utf-8`});return Ic(typeof e==`string`?e:new TextDecoder().decode(e))}catch{return{processes:[],terminated:0}}},getTrayInfo:()=>Lc(i),getConnectedFollowers:Oc}}var zc=`sync-fs-nonce`;function Bc(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:zc,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 $=e=>Array.from(e,e=>e.charCodeAt(0)),Vc=[{offset:0,bytes:[137,80,78,71,13,10,26,10],mime:`image/png`},{offset:0,bytes:[255,216,255],mime:`image/jpeg`},{offset:0,bytes:$(`GIF87a`),mime:`image/gif`},{offset:0,bytes:$(`GIF89a`),mime:`image/gif`},{offset:0,bytes:$(`BM`),mime:`image/bmp`},{offset:0,bytes:$(`RIFF`),also:{offset:8,bytes:$(`WEBP`)},mime:`image/webp`},{offset:4,bytes:$(`ftypavif`),mime:`image/avif`},{offset:0,bytes:[0,0,1,0],mime:`image/x-icon`},{offset:0,bytes:$(`RIFF`),also:{offset:8,bytes:$(`WAVE`)},mime:`audio/wav`},{offset:0,bytes:$(`ID3`),mime:`audio/mpeg`},{offset:0,bytes:$(`fLaC`),mime:`audio/flac`},{offset:4,bytes:$(`ftypM4A`),mime:`audio/mp4`},{offset:4,bytes:$(`ftypisom`),mime:`video/mp4`},{offset:4,bytes:$(`ftypmp42`),mime:`video/mp4`},{offset:4,bytes:$(`ftypqt`),mime:`video/quicktime`},{offset:0,bytes:[26,69,223,163],mime:`video/webm`},{offset:0,bytes:$(`%PDF-`),mime:`application/pdf`},{offset:0,bytes:[0,97,115,109],mime:`application/wasm`},{offset:0,bytes:$(`PK`),mime:`application/zip`},{offset:0,bytes:[31,139],mime:`application/gzip`},{offset:0,bytes:[127,69,76,70],mime:`application/x-executable`},{offset:0,bytes:[202,254,186,190],mime:`application/x-mach-binary`}],Hc=$(`OggS`);function Uc(e,t,n){if(t+n.length>e.length)return!1;for(let r=0;r<n.length;r+=1)if(e[t+r]!==n[r])return!1;return!0}function Wc(e){let t=[...Vc].sort((e,t)=>t.bytes.length+(t.also?.bytes.length??0)-(e.bytes.length+(e.also?.bytes.length??0)));for(let n of t)if(Uc(e,n.offset,n.bytes)&&!(n.also&&!Uc(e,n.also.offset,n.also.bytes)))return n.mime;if(Uc(e,0,Hc)){let t=Gc(e.subarray(0,64));return/theora|VP8/.test(t)?`video/ogg`:`audio/ogg`}return null}function Gc(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return t}var Kc=4096;function qc(e){if(e.length===0)return!0;let t=e.subarray(0,Math.min(e.length,Kc));if(t.includes(0))return!1;let n=t.length;if(n===Kc)for(let e=0;e<4&&n>0;e+=1){let e=t[n-1]??0;if(!(e&128)||(--n,(e&192)==192))break}try{let e=new TextDecoder(`utf-8`,{fatal:!0}).decode(t.subarray(0,n)),r=0;for(let t of e){let e=t.codePointAt(0)??0;e!==9&&e!==10&&e!==13&&e!==12&&e!==27&&(e<32||e===127)&&(r+=1)}return r<=e.length*.05}catch{return!1}}function Jc(e,t){if(t&&t.length>0){let e=Wc(t);if(e)return{mime:e,text:Yc(e),source:`magic`}}let n=p(e);return n===`application/octet-stream`?t&&qc(t)?{mime:`text/plain`,text:!0,source:`content`}:{mime:`application/octet-stream`,text:!1,source:t?`content`:`unknown`}:{mime:n,text:Yc(n),source:`extension`}}function Yc(e){if(e.startsWith(`text/`))return!0;let t=e.split(`;`,1)[0]?.trim()??e;return t===`application/json`||t===`application/xml`||t===`application/javascript`||t===`application/ecmascript`||t===`image/svg+xml`||t.endsWith(`+json`)||t.endsWith(`+xml`)}var Xc=new Set([`md`,`markdown`,`mdown`,`mkd`,`mkdn`,`mdwn`]);function Zc(e,t){let n=t.split(`;`,1)[0]?.trim()??t;if(n===`text/html`)return`html`;if(n===`text/markdown`||n===`text/x-markdown`)return`markdown`;let r=e.lastIndexOf(`.`),i=r>0?e.slice(r+1).toLowerCase():``;return Xc.has(i)?`markdown`:i===`html`||i===`htm`?`html`:null}var Qc=24;async function $c(e,t){let n=t.slice(0,Math.max(t.lastIndexOf(`/`),0))||`/`;for(let t=0;t<Qc;t+=1){try{return await e.stat(n===`/`?`/.git`:`${n}/.git`),n===``?`/`:n}catch{}if(n===`/`||n===``)return null;n=n.slice(0,Math.max(n.lastIndexOf(`/`),0))||`/`}return null}function el(e){let t=async t=>{let n=await e.stat(t),r=n.type===`directory`;return{type:r?`dir`:`file`,mode:r?16877:33188,size:n.size,ino:0,mtimeMs:n.mtime,ctimeMs:n.ctime,uid:1,gid:1,dev:1,isFile:()=>!r,isDirectory:()=>r,isSymbolicLink:()=>n.isSymlink===!0}};return{promises:{readFile:(t,n)=>{let r=typeof n==`string`?n:n?.encoding;return e.readFile(t,r===`utf8`?{encoding:`utf-8`}:{encoding:`binary`})},readdir:async t=>(await e.readDir(t)).map(e=>e.name),stat:t,lstat:t,readlink:async t=>(await e.stat(t)).symlinkTarget??``}}}async function tl(e,t,n){let r=await $c(e,t);if(!r)return null;let i=t.slice(r===`/`?1:r.length+1);if(i.length===0)return null;try{let t=await l(()=>import(`./isomorphic-git-WdgG3efW.js`),__vite__mapDeps([70,1,71])),a=el(e),o=await t.resolveRef({fs:a,dir:r,ref:`HEAD`}),{blob:s}=await t.readBlob({fs:a,dir:r,oid:o,filepath:i}),c=new TextDecoder().decode(s);return c===n?null:{baseContent:c,status:`modified`,repoRoot:r}}catch{return null}}function nl(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}async function rl(e,t){let n=await e.readFile(t,{encoding:`binary`}),r=new Uint8Array(new ArrayBuffer(n.length));r.set(n);let{mime:i,text:a}=Jc(t,r);return{mime:i,text:a,bytes:r}}var il=524288;function al(e,t,n){if(n.length>il)return null;switch(Zc(e,t)){case`markdown`:return{mount:`inline`,html:kt(n)};case`html`:return{mount:`sandbox`,html:n};default:return null}}async function ol(e,t,n={}){let{mime:r,text:i,bytes:a}=await rl(e,t);if(!i){ot.open({path:t,content:a.buffer,mimeType:r,text:!1});return}let o=new TextDecoder().decode(a),s=await tl(e,t,o),c=al(t,r,o);ot.open({path:t,content:o,mimeType:r,text:!0,...s?{baseContent:s.baseContent,gitStatus:s.status}:{},...c?{rendered:c}:{},...n.line===void 0?{}:{line:n.line}})}async function sl(e,t){let{mime:n,bytes:r}=await rl(e,t),i=new Blob([r],{type:n}),a=URL.createObjectURL(i);try{let e=document.createElement(`a`);e.href=a,e.download=t.split(`/`).pop()||`download`,e.click()}finally{URL.revokeObjectURL(a)}}async function cl(e,t,n){let r=await e.readFile(t,{encoding:`binary`}),i=typeof r==`string`?r:Uint8Array.from(r);await e.writeFile(n,i)}async function ll(e,t){try{return await e.stat(t),!0}catch{return!1}}function ul(e){let{fileTree:t,openFs:n,openWriter:r,insertReference:i,toPreviewUrl:a,log:o}=e;t.addEventListener(`file-preview`,async e=>{let{path:t}=e.detail;try{await ol(await n(),t)}catch(e){o.error(`File preview failed`,e)}}),t.addEventListener(`file-reference`,e=>{let{path:t}=e.detail;i(t)}),t.addEventListener(`file-download`,async e=>{let{path:t}=e.detail;try{await sl(await n(),t)}catch(e){o.error(`File download failed`,e)}}),t.addEventListener(`file-overflow`,e=>{let{path:n,anchor:r,kind:i}=e.detail,a=i!==`directory`,o=[{id:`preview`,label:`Preview`,visible:a},{id:`reference`,label:`Reference in chat`,visible:a},{id:`download`,label:`Download`,visible:a},{id:`rename`,label:`Rename`,visible:a},{id:`duplicate`,label:`Duplicate`,visible:a},{id:`copy-path`,label:`Copy path`},{id:`open-browser`,label:`Open in browser`,visible:a&&nl(n)},{id:`delete`,label:`Delete`,destructive:!0,visible:a}];bt.show({anchor:r,items:o,context:{path:n},dispatchTarget:t})}),t.addEventListener(`overflow-action`,async e=>{let{action:n,context:i}=e.detail,{path:s}=i;try{switch(n){case`preview`:case`reference`:case`download`:t.dispatchEvent(new CustomEvent(`file-${n}`,{detail:{id:s,path:s},bubbles:!0,composed:!0}));break;case`copy-path`:await navigator.clipboard.writeText(s);break;case`open-browser`:window.open(a(s),`_blank`);break;case`duplicate`:{let e=s.lastIndexOf(`.`),t=e>0?`${s.slice(0,e)}_copy${s.slice(e)}`:`${s}_copy`,n=await r();if(await ll(n,t)&&!confirm(`${t} already exists. Overwrite?`))break;await cl(n,s,t);break}case`delete`:confirm(`Delete ${s}?`)&&await(await r()).rm(s);break;case`rename`:{let e=s.split(`/`).pop()??``,t=prompt(`Rename ${s} to:`,e)?.trim();if(!t||t===e||t.includes(`/`))break;let n=`${s.slice(0,s.length-e.length)}${t}`,i=await r();if(await ll(i,n)&&!confirm(`${n} already exists. Overwrite?`))break;await cl(i,s,n),await i.rm(s);break}}}catch(e){o.error(`Overflow action "${n}" failed`,e)}})}var dl=36e5,fl=2e3,pl=class{#e=[];#t;#n;constructor(e=dl,t=fl){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`}},ml=64,hl=12,gl=/\b(feedback|reviews?|corrections?|learnings?|observations?|testing|verification)\b/i,_l=/\b(user|preferences?|identit(?:y|ies)|accounts?|personal|interface|working rhythm|keyboard|accessibility)\b/i,vl=/^Auto-extracted \(/;function yl(e){let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}function bl(e){return(yl(kt(e)).textContent??``).replace(/\s+/g,` `).trim()}function xl(e){let t=bl(e);if(t.length<=ml)return{title:t,summary:``,titleEnd:t.length,summaryStart:t.length};let n=[];for(let e of t.matchAll(/[.!?](?:[*_`'")\]]*)\s+|\s+[—–]\s+|[:;](?:[*_`]*)\s+|,\s+(?=(?:and|but|because|while|when|then|so)\b)/g)){let r=/^\s+[—–]|^[:;]/.test(e[0]),i=e.index+(r?0:e[0].trimEnd().length),a=e.index+e[0].length;t.slice(0,i).trim().length>=hl&&i<=96&&t.slice(a).trim()&&n.push({titleEnd:i,summaryStart:a})}let r=n.sort((e,t)=>Math.abs(e.titleEnd-ml)-Math.abs(t.titleEnd-ml))[0];if(r)return{title:t.slice(0,r.titleEnd).trim(),summary:t.slice(r.summaryStart).trim(),titleEnd:r.titleEnd,summaryStart:r.summaryStart};let i=t.slice(0,97).lastIndexOf(` `),a=i>=hl?i:96,o=t.slice(a).trim();return{title:t.slice(0,a).trim(),summary:o,titleEnd:a,summaryStart:t.indexOf(o,a)}}function Sl(e,t){let n=bl(e),r=vl.test(t),i=r?n:`${t} ${n}`;return gl.test(i)?`feedback`:_l.test(i)?`user`:r?null:`project`}function Cl(e,t){let n=xl(e);return{title:n.title,summary:n.summary,section:t,tag:Sl(e,t),bodyHtml:kt(e),titleEnd:n.titleEnd,summaryStart:n.summaryStart}}function wl(e){let t=[],n=`Memory`,r=``,i=``,a=null,o=()=>[r||n,i].filter(Boolean).join(` / `),s=()=>{if(!a)return;let e=a.lines.join(` `).trim();e&&t.push(Cl(e,a.section)),a=null};for(let t of e.split(`
|
|
399
|
+
`)){let e=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t.trim());if(e){s();let t=bl(e[2]);e[1].length===1?(n=t||n,r=``,i=``):e[1].length===2?(r=t,i=``):e[1].length===3&&(i=t);continue}let c=/^\s*[-*]\s+(.*)$/.exec(t);c?(s(),a={lines:[c[1]],section:o()}):t.trim()?a?a.lines.push(t.trim()):a={lines:[t.trim()],section:o()}:s()}return s(),t}function Tl(e,t){let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=0,i=!1,a=!1,o=null,s=n.nextNode();for(;s;){for(let e=0;e<s.data.length;e+=1){if(/\s/.test(s.data[e])){i&&!a&&(a=!0,o={node:s,offset:e});continue}if(a){if(r===t)return o;r+=1}if(a=!1,o=null,r===t)return{node:s,offset:e};r+=1,i=!0}s=n.nextNode()}return r===t?{node:e,offset:e.childNodes.length}:null}function El(e,t,n){let r=yl(e),i=Tl(r,t),a=n==null?{node:r,offset:r.childNodes.length}:Tl(r,n);if(!i||!a)return document.createDocumentFragment();let o=document.createRange();o.setStart(i.node,i.offset),o.setEnd(a.node,a.offset);let s=o.cloneContents();for(let e of[...s.childNodes])e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim()&&e.remove();let c=s.childNodes.length===1?s.firstChild:null;if(!(c instanceof HTMLParagraphElement))return s;let l=document.createDocumentFragment();return l.append(...c.childNodes),l}function Dl(e){return wl(e).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`heading`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`section`,e.section),e.tag&&t.setAttribute(`tag`,e.tag),t.setHeadingContent(El(e.bodyHtml,0,e.titleEnd)),e.summary&&t.setBodyContent(El(e.bodyHtml,e.summaryStart,null)),t})}async function Ol(e,t=F.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 Dl(n)}function kl(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:ka(e),sublabel:n,meta:Da(e),icon:wa(e),badges:r,status:Ea(e)}})}}function Al(e){return e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`}function jl(e){return e.stalled?`stalled`:e.state===`leader`?`connected`:e.state}function Ml(e){let t=jl(e),n=e.sessionId?`Session ${Sa(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:Al(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:Al(e)}]}}function Nl(e,t){let n=e.filter(e=>w(e)),r=t=>e.filter(e=>!w(e)&&e.parentJid===t),i=(e,n)=>{let r=t(e.jid);return{name:w(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 Pl(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 Fl(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 Il(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 Ll(e){return{id:`cost`,label:`Cost`,icon:`receipt`,count:e?.models.length??0,meta:e?`$${e.totalCost.toFixed(2)} across ${e.models.length} models`:`no spend yet`,accent:`rose`,emptyText:`Model usage will be summarized after the first turn.`,rows:e?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`,status:`idle`}))??[]}}function Rl(e){let t=[];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 n=Al(e.tray);(n===`error`||n===`warn`)&&t.push({id:`tray`,severity:n===`error`?`error`:`warn`,icon:`cloud-off`,title:`Tray ${jl(e.tray)}`,detail:e.tray.workerBaseUrl?`Worker · ${e.tray.workerBaseUrl}`:`No tray session is established.`});for(let n of e.followers)Ea(n)===`warn`&&t.push({id:`follower:${n.runtimeId}`,severity:`warn`,icon:`radio`,title:`${ka(n)} stopped answering`,detail:n.motd??n.runtime??`No heartbeat from this follower.`,age:Da(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 zl(e){return e>=100?`$${Math.round(e)}`:`$${e.toFixed(2)}`}function Bl(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=[{id:`burn`,label:`Burn rate`,value:zl(c),unit:`/hour`,hero:!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},{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}];return l.length>0&&d.push({id:`context`,label:`Context fill`,value:String(Math.round(u*100)),unit:`%`,ratio:u,accent:u>=.9?`rose`:u>=.7?`amber`:`green`,foot:`fullest of ${l.length} context window${l.length===1?``:`s`}`}),d}var Vl={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function Hl(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 Ul(e,t){return{pid:e.pid,ppid:e.ppid,state:Vl[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:Hl(e.startedAt,t)}}async function Wl(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:Bl({stats:l,workingUnits:h,totalUnits:n.length,liveProcesses:d.length,terminated:f,history:t}),alerts:Rl({tray:r,followers:i,mounts:s,oauthProviders:p}),sections:[Ml(r),kl(i),Nl(n,t=>e.isProcessing(t)),Pl(s),Fl(m,p),Il(a,o),Ll(l)],processes:{rows:d.map(e=>Ul(e,g)),terminated:f}}}var Gl=`/shared`,Kl=3,ql=200;async function Jl(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,ql),s=o.filter(e=>e.type===`file`).map(e=>`${t}/${e.name}`),c=await Promise.allSettled(s.map(t=>e.stat(t))),l=new Map;s.forEach((e,t)=>{let n=c[t];n?.status===`fulfilled`&&l.set(e,n.value.size)});let u=[];for(let r of o){let i=`${t}/${r.name}`;if(r.type===`directory`)u.push({kind:`dir`,id:i,label:r.name,children:n<Kl?await Jl(e,i,n+1):[]});else{let e=l.get(i);u.push({kind:`file`,id:i,label:r.name,path:i,size:e})}}return u}async function Yl(e,t=F.root){let n=[];for(let r of[t,Gl])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await Jl(e,r,1)});return n}var Xl=200,Zl=1e3,Ql=3e3;function $l(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 Yl(n,e.getWorkspace().root);t===o&&(e.fileTree.items=i,r||(r=!0,ul({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:it,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>=Zl){clearTimeout(c),c=null,u();return}c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},Xl)},f=()=>{t??=setInterval(u,Ql)},p=()=>{let t=++a;s?.(),s=null;let n=[e.getWorkspace().root,Gl];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 eu(e){let t=!1,n=!1,r=0,i=null,a=new pl,o=$l(e),s=()=>{i!=null&&(clearInterval(i),i=null)},c=()=>{let t=++r;e.openFs().then(async n=>{let i=await Ol(n,e.getWorkspace().memoryPath);t===r&&(e.memoryHost.setRows?e.memoryHost.setRows(i):e.memoryHost.replaceChildren(...i))}).catch(t=>e.log.error(`WC memory refresh failed`,t))},l=()=>{(async()=>{try{e.monitor.model=await Wl(e.getMonitorDeps(),a)}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,l),{activate(r){if(r===`files`){o.open();return}if(r===`memory`){n=!0,c();return}if(r===`monitor`){s(),l(),i=setInterval(l,5e3);return}r===`term`&&!t&&(t=!0,e.mountTerminal(e.termSurface).catch(n=>{t=!1,e.log.error(`WC terminal mount failed`,n)}))},deactivate(e){e===`files`?o.close():e===`monitor`?s():e===`memory`&&(n=!1)},refreshMemory(){n&&c()},refreshFiles(){o.repoint()}}}var tu=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],nu=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),ru=2e4,iu=12,au=3e4;function ou(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 su(e){return e.slice(e.lastIndexOf(`/`)+1)}function cu(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function lu(e,t){let n=ou(e);return t.includes(`/`)?cu(n,t):su(n)===t}function uu(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))&&lu(a,e)&&(r.add(a),n.push(ou(a)),n.length>=du))break}return n}var du=4,fu=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??tu,this.#n=t.ignoredDirs??nu,this.#r=t.maxEntries??ru,this.#i=t.maxDepth??iu,this.#a=t.ttlMs??au}resolve(e,t=[]){this.#g();let n=ou(e),r=this.#d(n),i=uu(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)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=>cu(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)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(su(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>cu(t,e)).sort(pu)}:{query:e,matches:[...t].sort(pu)}}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 pu(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var mu=`file-mention`,hu=`data-file-mentions`;function gu(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var _u=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),vu=`file-mention-open`;async function yu(e,t,n=[]){let r=gu(e);if(e.getAttribute(hu)===r)return;let i=bu(e);if(i.length===0){e.setAttribute(hu,r);return}let a=[],o=new Set;for(let e of i){let t=lt(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(hu,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&&xu(e,n,l)}e.setAttribute(hu,gu(e))}function bu(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(_u.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 xu(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(Su(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 Su(e,t,n,r,i){let a=e.createElement(`a`);return a.className=mu,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(vu,{detail:t,bubbles:!0,composed:!0}))}),a}var Cu=`slicc-agent-message`,wu=`slicc-action-row[${mt}]`;function Tu(e,t){let n=[],r=e.querySelectorAll(wu);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=>Ot(e))}function Eu(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function Du(e){try{return Ou(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function Ou(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new fu(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;lt(n.textContent??``).length!==0&&Eu(()=>{let i=Tu(t,e);a().then(e=>yu(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll(Cu))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()===Cu?o(e):s(e));let e=t.target?.closest?.(Cu);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=>ol(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(vu,l),()=>{c.disconnect(),t.removeEventListener(vu,l)}}var ku=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Uu,DOCK_TREE_STORAGE_KEY:()=>Hu,attachWcClient:()=>Ku,makeSprinkleAttachImage:()=>Gu,mountWcUiLive:()=>qu,prepareWcShell:()=>Au,wireDockTreePersistence:()=>Wu,wireWcChipTips:()=>Lu});function Au(e,t){let n=yt(e,{messages:[],scoops:[],floatLabel:t,placeholder:`Ask sliccy, or describe a change…`,urlState:!0}),r=null,i=null,a=null,o=new Map,s=!1,c=null,l=new Set,u=null,d=e=>{if(a=e,!i)return;let t=Ut(Vt(e)),s=(e,t)=>{for(let n of t)i?.deleteQueuedMessage(e,n).catch(()=>void 0)},l=i.getScoops(),d=e=>{let t=e===void 0?void 0:l.find(t=>t.jid===e);return t?Lt(l,t)?.jid??t.jid:void 0},p=d(e.jid),m=i.selectedScoopJid;if(m&&m!==e.jid){let e=d(m);if(t&&p!==void 0&&p===e){let t=r?.stashQueued()??[];t.length>0&&(u={jid:e,items:t})}else s(m,(r?.getQueuedMessages()??[]).map(e=>e.id))}u&&(u.jid===e.jid?(r?.restoreQueued(u.items),u=null):p!==u.jid&&(s(u.jid,u.items.map(e=>e.id)),u=null));let h=o.get(e.jid);r?.setLickBackpressure(h?.count??0,h?.waitingMs??0,Jt(e)),i.setSelectedScoopJid(e.jid),r?.setReadOnly(t),t||n.inputCard.removeAttribute(`disabled`),ec(n,e,i.getScoops()),i.requestScoopMessages(e.jid),r?.setProcessing(i.isProcessing(e.jid)),n.switcher.hasAttribute(`attention`)||n.switcher.setAttribute(`attention`,e.jid),f.refreshScoops?.(),c?.refreshMemory(),c?.refreshFiles()},f={refs:n,statuses:new Map,fills:new Map,phases:new Map,lickBackpressure:o,lastActivity:new Map,pendingUrlContext:n.thread.urlContext??null,getController:()=>r,getClient:()=>i,getSelected:()=>a,selectScoop:d,notifyReady:()=>{s=!0;for(let e of l)e()}};return{refs:n,wiring:f,setClient:e=>{i=e},selectScoop:d,getSelected:()=>a,clearSelection:()=>{a=null},getController:()=>r,setController:e=>{r=e},setActivateSurface:e=>{c=e;let t=new Set(n.dockTree.getSurfaceIds());for(let n of[`files`,`term`,`memory`,`monitor`])t.has(n)&&(s?e.activate(n):l.add(()=>e.activate(n)))},onClientReady:e=>{l.add(e),s&&e()}}}function ju(e){let t=null;return()=>(t??=(async()=>{let[{createRemoteVfsClient:t},{createRemoteWritableVfsClient:n}]=await Promise.all([l(()=>import(`./remote-vfs-client-CN1pCs1m.js`),__vite__mapDeps([72,73])),l(()=>import(`./writable-vfs-client-CuBjWhy3.js`),__vite__mapDeps([74,73]))]);return{reader:t({transport:e.getTransport()}),writer:n({transport:e.getTransport()})}})(),t)}function Mu(e,t,n,r,i){e.onClientReady(()=>{r.intercept||l(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-BinmjNb5.js`);return{wireWcOnboarding:e}},__vite__mapDeps([75,17,2,45,8,25,1,26,5,27,28,43,76])).then(({wireWcOnboarding:r})=>r({client:t,getController:()=>e.getController(),openVfs:n,log:i})).then(e=>{r.intercept=e.interceptWelcomeLick}).catch(e=>i.error(`WC onboarding wiring failed`,e))})}function Nu(e,t){let n=()=>{t.getSessionStats?.().then(n=>{if(!n)return;e.refs.floatbar.setAttribute(`spent`,n.totalCost.toFixed(2)),typeof n.burnRate==`number`&&Number.isFinite(n.burnRate)?e.refs.floatbar.setAttribute(`rate`,n.burnRate.toFixed(2)):e.refs.floatbar.removeAttribute(`rate`);let r=e.refs.floatbar;n.models&&(r.costModels=n.models),n.scoops&&(r.costScoops=n.scoops),e.fills.clear();for(let t of n.fills)e.fills.set(t.jid,t.fill);e.refs.switcher.scoops=Ls(t.getScoops(),e.statuses,e.fills,e.phases,e.awaitingInput,e.getSelected()?.jid)})};return setInterval(n,15e3),n}function Pu(e,t,n){let r=t.standalone;r&&l(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DdPBkgaJ.js`);return{wireWcBrowser:e}},__vite__mapDeps([77,8,78,79,2,80,3])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:r.browser,log:n})).catch(e=>n.error(`WC browser overlay wiring failed`,e))}function Fu(e,t){let{refs:n}=e;n.switcher.addEventListener(`slicc-scoop-select`,n=>{let r=n.detail?.key,i=t.getScoops().find(e=>e.jid===r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)}),Lu({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function Iu(e){return()=>{e.triggerPlaceholder();let t=e.boot.getSelected()?.jid;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,String(n.content??``).slice(0,600))}}function Lu(e){let t=new Map,n=new Set;e.switcher.addEventListener(`pointerover`,r=>{let i=r.target?.closest?.(`.slicc-agent-tabs__segment`);if(!i||!e.switcher.contains(i))return;let a=i.dataset.k??``,o=e.getScoops().find(e=>e.jid===a);if(!o)return;let s=e.lastActivity.get(a)??``,c=t.get(a);if(c&&c.activity===s){i.title=c.tip;return}i.title||=E(o),!(!s||n.has(a))&&(n.add(a),(async()=>{try{let n=await(e.labelFn??(await l(async()=>{let{quickLabel:e}=await import(`./quick-llm-CPywyeCK.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([15,1,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,38,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: ${w(o)?`${E(o)} (a main agent)`:o.name}\nMost recent activity:\n${s}`,maxTokens:40});n&&(t.set(a,{activity:s,tip:n}),i.title=n)}finally{n.delete(a)}})())})}async function Ru(e,t,n){let{RemoteTerminalView:r}=await l(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-D2bRNJcS.js`);return{RemoteTerminalView:e}},__vite__mapDeps([81,1,17,34,2,56,82,51,0,3,4,5,6,7,8,14,83,24,13,10,11,12,9,84])),{fetchSecretEnvVars:i}=await l(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-CjwX7z7b.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([85,2,25,1,17,26,8,5,27,28,29,7,30,31,32])),a=await i(),o=new r({client:t,cwd:`/`,env:Object.keys(a).length>0?a:void 0});await new Promise(t=>e.onClientReady(t)),await o.mount(n),globalThis.__slicc_terminal_view=o,window.addEventListener(`beforeunload`,()=>o.dispose(),{once:!0})}function zu(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=Rt(t.getScoops(),r);i&&i.jid!==e.getSelected()?.jid&&e.selectScoop(i)};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 Bu(e,t,n,r){l(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-WjSZrbPa.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([86,17,2,56])).then(async({installLeaderPermissionsSurface:r,installMountPendingConsumer:i})=>{let a=n.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:o,isExtensionRuntime:s}=await l(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-I39VzaSN.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([87,17,5,6,7,8]));r({runtimeMode:a,providers:await o(s()||a===`extension`||a===`extension-detached`)}),i({runShell:Vu(e,t)})}).catch(e=>r.warn(`WC permissions surface wiring failed`,e))}function Vu(e,t){let n=null,r=()=>(n||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:n}=await l(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-ADzaWGFd.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([84,1])),r=new n({client:t,sid:`mount-drop-${Date.now()}`});return await r.open({cwd:`/workspace`}),r})().catch(e=>{throw n=null,e}),n);return async e=>(await r()).exec(e)}var Hu=`slicc-dock-tree:default`,Uu={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 Wu(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(Hu,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(Hu);r.setTree(e?JSON.parse(e):Uu)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Uu)}}function Gu(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 Ku(e,t,n,r={}){l(async()=>{let{initTimestampPreference:e}=await import(`./wc-shell-C8rORiLz.js`).then(e=>e.H);return{initTimestampPreference:e}},__vite__mapDeps([50,1,17,8,33,42,5,6,7,51,39,52,53,54])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:i}=e;e.setClient(t);let a=le(`panel-layouts`);i.dockTree.tilesMovable=a,a||Wu(i,n);let o=null,s=Nu(e.wiring,t),c=()=>o?.(),u={intercept:null},{controller:d,agentHandle:f}=uc(i,t,()=>e.getSelected(),Iu({boot:e,triggerPlaceholder:c,refreshStats:s}),u);e.setController(d),e.onClientReady(s);let p=ju(t),m=async()=>(await p()).reader;r.standalone?.runtimeMode!==`cherry`&&r.standalone?.runtimeMode!==`hosted-leader`&&Mu(e,t,p,u,n);let h=nc({boot:e,client:t,agentHandle:f,setRefreshPlaceholder:e=>{o=e},triggerPlaceholder:c,openReader:m,openWriter:async()=>(await p()).writer,log:n});Fu(e,t),Pu(e,r,n),Bu(e,t,r,n);let g=eu({fileTree:i.fileTree,termSurface:i.termSurface,memoryHost:i.memoryHost,monitor:i.monitor,openFs:m,openWriter:async()=>(await p()).writer,onKernelReady:t=>e.onClientReady(t),getMonitorDeps:()=>Rc({client:t,openReader:m,storage:window.localStorage}),getWorkspace:()=>or(t.getScoops(),e.getSelected()??void 0),mountTerminal:n=>Ru(e,t,n),insertReference:e=>{let t=i.inputCard,n=t.value.trim();t.value=n?`${n} @${e}`:`@${e}`,t.focus()},log:n});e.setActivateSurface(g),a&&l(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-B1SCUwME.js`);return{panelizeShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90])).then(({panelizeShell:e})=>e(i,void 0,void 0,{onToolPanelActivate:e=>g.activate(e),onToolPanelDeactivate:e=>g.deactivate(e)})).catch(e=>n.error(`panelize failed — keeping the classic shell`,e)),Du({thread:i.thread,openFs:m,log:n}),i.floatbar.addEventListener(`click`,()=>{let e=i.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let _=Tc({refs:i,openVfs:p,client:t,getController:()=>e.getController(),getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,clearSelection:e.clearSelection,log:n}),{refreshFreezer:v,openFrozen:y,getViewedFrozenSessionId:ee}=_;if(v(),e.onClientReady(v),le(`multiple-cones`)){let r=Ps({freezer:i.freezer,client:t,getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,freezeCone:_.freezeCone,log:n});e.wiring.refreshConeActions=r.refresh,e.onClientReady(r.refresh)}zu(e,t,y),e.onClientReady(()=>{p().then(async({reader:e,writer:t})=>{let{loadShortcutConfig:n}=await l(async()=>{let{loadShortcutConfig:e}=await import(`./wc-shortcut-config-CsiYOxaR.js`);return{loadShortcutConfig:e}},__vite__mapDeps([91,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54]));await n({reader:e,writer:t,apply:i.shortcuts.setKeymap})}).catch(e=>n.warn(`WC shortcut config load failed`,e))}),p().then(async({reader:e})=>{let{installPreviewVfsResponder:t}=await l(async()=>{let{installPreviewVfsResponder:e}=await import(`./preview-vfs-responder-CluNpFQR.js`);return{installPreviewVfsResponder:e}},[]);t({channel:new BroadcastChannel(`preview-vfs`),getReader:()=>e,logger:n})}).catch(e=>n.warn(`WC page-VFS support wiring failed`,e)),p().then(async({reader:a,writer:o})=>{let{createRemoteSprinkleVfs:s}=await l(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-CawR6gXx.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([92,73])),c=(await l(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-B1SCUwME.js`);return{getPanelizedShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90]))).getPanelizedShell(),{wireWcSprinkles:u}=await l(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-DwSBE-SU.js`);return{wireWcSprinkles:e}},__vite__mapDeps([93,17,5,6,7,8,94,76])),d=await u({refs:i,client:t,fs:s({reader:a,writer:o}),instanceId:r.instanceId,onAttachImage:Gu(h,n),onToolPanelActivate:e=>g.activate(e),onToolPanelDeactivate:e=>g.deactivate(e),hostSprinkleSurface:c?(e,t)=>c.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:c?e=>c.removeSprinkleSurface(e):void 0,log:n});e.onClientReady(()=>void d.resync());let{getPanelizedShell:_}=await l(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-B1SCUwME.js`);return{getPanelizedShell:e}},__vite__mapDeps([88,2,89,39,1,50,17,8,33,42,5,6,7,51,52,53,54,90])),v=_();if(v){let e=s({reader:a,writer:o});v.attachFs(e);let{registerAgentPanels:t}=await l(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-BFjOOqNh.js`);return{registerAgentPanels:e}},__vite__mapDeps([95,2,50,1,17,8,33,42,5,6,7,51,39,52,53,54]));await t(e).catch(e=>n.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await l(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:t}=await l(async()=>{let{applyLayout:e}=await import(`./apply-layout-C9atHx_R.js`);return{applyLayout:e}},__vite__mapDeps([96,93,17,5,6,7,8,94,76]));e(e=>t(d.zone,e))}if(r.standalone&&r.instanceId){let{wireWcTray:a}=await l(async()=>{let{wireWcTray:e}=await import(`./wc-tray-g89TbAbd.js`);return{wireWcTray:e}},__vite__mapDeps([97,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,98,78,99,100,45,43,101,46,76,61,62,50,42,6,51,39,52,53,54,102,65,66,94,103,104,40,41,44,47,48,56,3,105,106,84,68,80,107,108])),o=d.zone.callbacks(),s=await a({refs:i,client:t,browser:r.standalone.browser,realCdpTransport:r.standalone.realCdpTransport,instanceId:r.instanceId,runtimeMode:r.standalone.runtimeMode,sprinkleManager:d.manager,addSprinkle:(e,t,n)=>o.addSprinkle(e,t,n),removeSprinkle:e=>o.removeSprinkle(e),getController:()=>e.getController(),getSelectedJid:()=>e.getSelected()?.jid??`cone`,agentHandle:f,openFs:m,openWriter:async()=>(await p()).writer,window,log:n});e.wiring.notifyScoopStateChanged=()=>s.scheduleScoopsListBroadcast()}}).catch(e=>n.error(`WC sprinkle/tray wiring failed`,e));{let e=new Qt,n=new rn,r=on(new ss({collection:{listScoops:()=>t.getScoops(),isProcessing:e=>t.isProcessing(e),getAgentMessages:()=>null,loadPersistedSessions:()=>e.loadAll(),loadUiChatSessions:async()=>{let e=await n.list();return(await Promise.all(e.map(e=>n.load(e)))).filter(e=>e!==null)},wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:Ts(),snapshotStore:{read:async e=>{let{reader:t}=await p();return vs(t,e)},write:async(e,t)=>{let{writer:n}=await p();return _s(n,e,t)}},vfs:{readFile:async(e,t)=>(await p()).reader.readFile(e,t),readDir:async e=>(await p()).reader.readDir(e),stat:async e=>(await p()).reader.stat(e)},getActiveSessionInfo:()=>{let e=qt(t.getScoops());return{id:e?.jid??`session-${Date.now()}`,title:e?.name??`Active Session`}},version:`6.99.9`}));window.addEventListener(`unload`,r,{once:!0})}let b=!1,x=()=>b?Promise.resolve():(b=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:t,downloadTranscriptBlob:n}]=await Promise.all([l(()=>Promise.resolve().then(()=>an),void 0),l(()=>import(`./wc-transcript-export-CjvhPpom.js`),__vite__mapDeps([109,17,103,8,104,1]))]),r=ee(),i=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r},a=await e().export(i,{}),{filename:o}=a;await n(await t(a),o)}catch(e){n.error(`Transcript export failed`,e)}finally{b=!1}})());if(l(async()=>{let{wireWcNav:e}=await import(`./wc-nav-BNZDsOwH.js`);return{wireWcNav:e}},__vite__mapDeps([110,17,5,6,7,8,44,45,25,1,26,27,28,43,46,47,48,68,2,94,76])).then(({wireWcNav:e})=>e({refs:i,client:t,log:n,onExportTranscript:x,shortcuts:i.shortcuts})).catch(e=>n.error(`WC nav wiring failed`,e)),l(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-Byuwd2QJ.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([111,2,5,6,7,8,56,52,59,60,25,1,17,26,27,28,61,62,112])).then(({getComposerSpeech:e,setComposerSpeechInstanceId:t})=>{let n=i.composer;t(r.instanceId),n.speech=e(),n.setAttribute(`ptt`,``)}).catch(e=>n.error(`WC push-to-talk wiring failed`,e)),l(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-BsVaFA0Z.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([58,17,2,5,6,7,8,59,60,25,1,26,27,28,61,62])).then(({setSpeakAssetsInstanceId:e})=>e(r.instanceId)).catch(e=>n.error(`WC say warmup wiring failed`,e)),r.standalone)return()=>{l(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-Dq10ablA.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([67,16,1,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,44,40,41,6,42,43,45,46,47,48,38])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await p()).writer,onComplete:v})).catch(e=>n.warn(`Pending session catch-up scheduling failed`,e))}}async function qu(e,t,n=`standalone`){let{browser:r,realCdpTransport:i,instanceId:a,localApiBaseUrl:o,bridgeToken:s,localLickWsUrl:c,extensionDelegateId:u,attachLickForwardingClient:d}=await ve({runtimeMode:n,envBaseUrl:null,window,log:t}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await l(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await import(`./wc-float-label-Dtx9Io98.js`);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},__vite__mapDeps([113,25,1,17,26,8,5,27,28,50,33,42,6,7,51,39,52,53,54])),{installFloatbarStatus:h}=await l(async()=>{let{installFloatbarStatus:e}=await import(`./wc-floatbar-online-pmlV024x.js`);return{installFloatbarStatus:e}},__vite__mapDeps([114,46,68,1,2,25,17,26,8,5,27,28,6,7,45,43,113,50,33,42,51,39,52,53,54])),g=n===`standalone`?await m():f(n),_=p(g),v=Au(e,_);h(v.refs.floatbar,{floatKind:g,label:_}),a&&ye(a);let{syncFsBridgeEnabled:y,syncFsChannelNonce:ee}=Bc(),b=!1,x=Qa({realCdpTransport:i,instanceId:a,makeClient:e=>new Ua(Rs(v.wiring),e),localApiBaseUrl:o,bridgeToken:s,syncFsBridgeEnabled:y,syncFsChannelNonce:ee,localLickWsUrl:c,extensionDelegateId:u,flagFloat:n,onWorkerScriptError:()=>{_e()},onReadyStall:e=>{b=!0,l(()=>import(`./boot-stall-overlay-Pxp4nHfq.js`).then(t=>t.showBootStallOverlay(document,e)),[])},onLateReady:()=>{_e()}});Ga({send:e=>x.client.sendRaw(e)}),d?.(x.client);let te=Ku(v,x.client,t,{instanceId:a,standalone:{browser:r,realCdpTransport:i,runtimeMode:n,floatKind:g}}),{setupSudoStandalone:ne}=await l(async()=>{let{setupSudoStandalone:e}=await import(`./main-B6Og2ks7.js`).then(e=>e.i);return{setupSudoStandalone:e}},__vite__mapDeps([40,1,41,16,17,18,19,20,21,22,23,24,2,8,25,26,5,27,28,29,7,30,31,32,33,34,35,36,37,6,42,43,44,45,46,47,48]));await ne({log:t});try{await x.ready}finally{b&&l(()=>import(`./boot-stall-overlay-Pxp4nHfq.js`).then(e=>e.removeBootStallOverlay(document)),[])}v.wiring.notifyReady?.(),t.info(`WC live shell ready`,{scoops:x.client.getScoops().length}),te?.();let{consumeAutoPrompt:re}=await l(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),S=re(window.location.search);S&&(v.getController()?.sendUserMessage(S),t.info(`Auto-prompt submitted`,{length:S.length}))}export{Si as A,wa as C,ja as D,ka as E,Kn as F,Gn as I,an as L,ta as M,Tn as N,Ci as O,cn as P,rn as R,Aa as S,Ea as T,Hs as _,Nc as a,xa as b,Ac as c,dc as d,lc as f,Bs as g,Vs as h,Oc as i,ba as j,ra as k,Fc as l,zs as m,Au as n,jc as o,Zs as p,ku as r,Dc as s,Ku as t,fc as u,Rs as v,Da as w,Oa as x,Ua as y};
|