sliccy 6.92.0 → 6.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/ui/.vite/manifest.json +205 -189
  2. package/dist/ui/assets/{SKILL-BKUxKc7f.js → SKILL-BdkyF8EU.js} +2 -0
  3. package/dist/ui/assets/{account-store-BPZacfgH.js → account-store-9c4PkWuh.js} +1 -1
  4. package/dist/ui/assets/{account-store-BqF5ewlS.js → account-store-Becnsm1_.js} +2 -2
  5. package/dist/ui/assets/{adobe-DPbSo7SY.js → adobe-BaP3Wand.js} +1 -1
  6. package/dist/ui/assets/{adobe-BBlZpGQC.js → adobe-BzUeHCKr.js} +1 -1
  7. package/dist/ui/assets/{apply-layout-CAp7G9wx.js → apply-layout-DWyyaCog.js} +1 -1
  8. package/dist/ui/assets/{apps-DgnfDwT3.js → apps-5wY3IrHr.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-0fvGCZes.js → azure-openai-D4Ggho3w.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-BGw_teZy.js → azure-openai-DM6LTLK3.js} +1 -1
  11. package/dist/ui/assets/{bsh-watchdog-BM2oq7W2.js → bsh-watchdog-DY8mtwiy.js} +1 -1
  12. package/dist/ui/assets/{cerebras-DpwFg0HO.js → cerebras-Bj8vZVel.js} +1 -1
  13. package/dist/ui/assets/{cerebras-B6jyon7a.js → cerebras-D0h32sBp.js} +1 -1
  14. package/dist/ui/assets/{composer-speech-Cy4g3lh3.js → composer-speech-BEsclnPz.js} +1 -1
  15. package/dist/ui/assets/{connect-surface-CapE36Ml.js → connect-surface-BIgNmgme.js} +1 -1
  16. package/dist/ui/assets/{dip-B58NQGEQ.js → dip-CRb_i6v6.js} +1 -1
  17. package/dist/ui/assets/{ensure-speech-assets-CKwQ54O1.js → ensure-speech-assets-DGe2vAs-.js} +1 -1
  18. package/dist/ui/assets/{esbuild-wasm-C_e51T2J.js → esbuild-wasm-CinjyQaN.js} +1 -1
  19. package/dist/ui/assets/{fs-CWtFkoED.js → fs-BDrRWsaw.js} +1 -1
  20. package/dist/ui/assets/{fs-CNuUuy06.js → fs-DFgauCYS.js} +2 -2
  21. package/dist/ui/assets/{github-BnoYWX5B.js → github-DSj_Ykjo.js} +2 -2
  22. package/dist/ui/assets/{github-copilot-B6HBuVWr.js → github-copilot-J_U-KVRL.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-CZKwVG1n.js → github-copilot-Nr0g-GGT.js} +1 -1
  24. package/dist/ui/assets/{github-install-BglyJhZm.js → github-install-BA1OlFF9.js} +1 -1
  25. package/dist/ui/assets/{github-o6bFfAsT.js → github-o83EeWHv.js} +1 -1
  26. package/dist/ui/assets/{github-zip-DSiJOBjl.js → github-zip-pJuqUBAb.js} +1 -1
  27. package/dist/ui/assets/{hear-BqNAK8-P.js → hear-B4FZ3b1i.js} +1 -1
  28. package/dist/ui/assets/installer-C-ZqHeoQ.js +4 -0
  29. package/dist/ui/assets/{js-realm-worker-C_GofqY4.js → js-realm-worker-JbIL5mVZ.js} +1 -1
  30. package/dist/ui/assets/{kernel-worker-DZ8R8KdZ.js → kernel-worker-C36kjoyJ.js} +657 -649
  31. package/dist/ui/assets/key-BKGnJdkU.js +1 -0
  32. package/dist/ui/assets/leader-session-events-Iq9N1w56.js +1 -0
  33. package/dist/ui/assets/{local-llm-rF7z96SC.js → local-llm-B-qSN2xR.js} +1 -1
  34. package/dist/ui/assets/{local-llm-BMS5g4U8.js → local-llm-M1vfLIfi.js} +1 -1
  35. package/dist/ui/assets/{magick-wasm-DVJe3sB9.js → magick-wasm-SReqqSFf.js} +1 -1
  36. package/dist/ui/assets/{main-CGgKaoxX.js → main-DX4-_Jcu.js} +3 -3
  37. package/dist/ui/assets/{mount-BSvAq3gT.js → mount-CISNNuFi.js} +1 -1
  38. package/dist/ui/assets/{mount-DyQCcs5L.js → mount-DaMKwySD.js} +2 -2
  39. package/dist/ui/assets/{mount-recovery-DrDhAN8n.js → mount-recovery-DuNa_gDS.js} +1 -1
  40. package/dist/ui/assets/{new-session-CKJyt5dO.js → new-session-CtMabzCy.js} +2 -2
  41. package/dist/ui/assets/{oauth-bootstrap-COmJ09VQ.js → oauth-bootstrap-D4wOG7r-.js} +2 -2
  42. package/dist/ui/assets/{onboarding-orchestrator-CnKr0yBW.js → onboarding-orchestrator-BF4m_3Ig.js} +1 -1
  43. package/dist/ui/assets/{openai-codex-B0A0FC5J.js → openai-codex-B-msy2Vx.js} +1 -1
  44. package/dist/ui/assets/{openai-codex-B9BgDLu_.js → openai-codex-BpwmCdMx.js} +1 -1
  45. package/dist/ui/assets/{openrouter-Y_v9DrpC.js → openrouter-C4LniVur.js} +1 -1
  46. package/dist/ui/assets/{openrouter-cmQvHt4L.js → openrouter-DNGVJ7a3.js} +1 -1
  47. package/dist/ui/assets/{openrouter-oauth-B8gSOs46.js → openrouter-oauth-BFYZMJ0V.js} +1 -1
  48. package/dist/ui/assets/{openrouter-oauth-CaB3kFnF.js → openrouter-oauth-DuD6RTkR.js} +1 -1
  49. package/dist/ui/assets/{panel-rpc-handlers-geYD7168.js → panel-rpc-handlers-D0pJdTiL.js} +2 -2
  50. package/dist/ui/assets/{panelize-shell-Sersv_GI.js → panelize-shell-BXouoIAD.js} +1 -1
  51. package/dist/ui/assets/{provider-DJ_OQjK_.js → provider-DFOH8yQP.js} +2 -2
  52. package/dist/ui/assets/{provider-MJIrObBI.js → provider-DxCcTmqx.js} +1 -1
  53. package/dist/ui/assets/{provider-settings-CXkhpBOU.js → provider-settings-CO157WVv.js} +1 -1
  54. package/dist/ui/assets/{provider-settings-CgiOjwKy.js → provider-settings-D-ZsyczU.js} +1 -1
  55. package/dist/ui/assets/provider-store-access-BbjnKiLx.js +1 -0
  56. package/dist/ui/assets/{provider-store-access-BHc94JEF.js → provider-store-access-CgCrUQEn.js} +2 -2
  57. package/dist/ui/assets/{providers-BhGh-k8M.js → providers-DO_p0xND.js} +1 -1
  58. package/dist/ui/assets/{providers-7y3utUjl.js → providers-DnJR1mMn.js} +2 -2
  59. package/dist/ui/assets/{quick-llm-DI5chNk4.js → quick-llm-C3kXqZlY.js} +1 -1
  60. package/dist/ui/assets/record-C0lt6kKE.js +1 -0
  61. package/dist/ui/assets/{recovery-screen-CiHxcjXL.js → recovery-screen-kS6MV4Xg.js} +1 -1
  62. package/dist/ui/assets/{redirect-uri-ibeuwgf2.js → redirect-uri-BzP_62xp.js} +1 -1
  63. package/dist/ui/assets/{session-freezer-DW9CuTNE.js → session-freezer-QzhGhlzG.js} +3 -3
  64. package/dist/ui/assets/{setup-feature-flags-remote-CoZG5aWK.js → setup-feature-flags-remote-DgVAsT7C.js} +1 -1
  65. package/dist/ui/assets/{setup-standalone-prelude-6fCos2BX.js → setup-standalone-prelude-DsB5MkPB.js} +1 -1
  66. package/dist/ui/assets/{setup-sudo-2fwtKOQE.js → setup-sudo-BdKr5Kuf.js} +2 -2
  67. package/dist/ui/assets/shared-pJ1rPAkk.js +1 -0
  68. package/dist/ui/assets/shared-t4jDsyrf.js +4 -0
  69. package/dist/ui/assets/{skills-Ckt_XzrT.js → skills-DeqgtlUL.js} +1 -1
  70. package/dist/ui/assets/slicc-version-Cf6ItGqM.js +1 -0
  71. package/dist/ui/assets/{speak-BSK3Souh.js → speak-CrgQ-hNi.js} +1 -1
  72. package/dist/ui/assets/{sprinkle-bridge-CSfksHce.js → sprinkle-bridge-Cdo9vfXE.js} +1 -1
  73. package/dist/ui/assets/{sprinkle-manager-EEbsd3wB.js → sprinkle-manager-I7XOumZQ.js} +1 -1
  74. package/dist/ui/assets/{src-CUFrGOpV.js → src-DFt0HWZc.js} +152 -95
  75. package/dist/ui/assets/{store-BKiGgA3V.js → store-BG9Q_aZD.js} +1 -1
  76. package/dist/ui/assets/{store-CBEhP0r3.js → store-gpb186tM.js} +1 -1
  77. package/dist/ui/assets/{sudo-BhjE6q6c.js → sudo-C_2D7T0c.js} +1 -1
  78. package/dist/ui/assets/{transformers-env-DPjdc2EQ.js → transformers-env-Iknr0kLF.js} +1 -1
  79. package/dist/ui/assets/{upgrade-detection-D5EI3GxB.js → upgrade-detection-BTZMZOnD.js} +1 -1
  80. package/dist/ui/assets/{voice-reply-BNX-jA0G.js → voice-reply-BUnKYH8O.js} +1 -1
  81. package/dist/ui/assets/{wc-attach-DDCVeu1T.js → wc-attach-CkeEl04a.js} +2 -2
  82. package/dist/ui/assets/wc-extension-CvonxeUh.js +2 -0
  83. package/dist/ui/assets/wc-float-label-CQitMvjM.js +1 -0
  84. package/dist/ui/assets/wc-floatbar-online-uDk8A8hD.js +1 -0
  85. package/dist/ui/assets/wc-follower-AI8PF-EP.js +17 -0
  86. package/dist/ui/assets/wc-live-0ND6N-9h.js +8 -0
  87. package/dist/ui/assets/{wc-nav-B14EiVN3.js → wc-nav-KB9V9YIf.js} +2 -2
  88. package/dist/ui/assets/{wc-onboarding-KbIJJbN5.js → wc-onboarding-DYhI6TEE.js} +2 -2
  89. package/dist/ui/assets/{wc-placeholder-CYo1t-jm.js → wc-placeholder-DYloDixz.js} +2 -2
  90. package/dist/ui/assets/{wc-settings-BWXF0ibb.js → wc-settings-8yS_7tZR.js} +2 -2
  91. package/dist/ui/assets/{wc-shell-DZMZfVXu.js → wc-shell-DejC0Myk.js} +3 -3
  92. package/dist/ui/assets/{wc-sprinkles-wVNruDot.js → wc-sprinkles-EHJeVQcY.js} +2 -2
  93. package/dist/ui/assets/wc-tray-D6n1OY5g.js +2 -0
  94. package/dist/ui/assets/wc-tray-scoops-YUFzbJOw.js +5 -0
  95. package/dist/ui/assets/wc-unit-context-DvrjSIee.js +1 -0
  96. package/dist/ui/assets/{welcome-detection-DjomEbCT.js → welcome-detection-iVN_xL76.js} +1 -1
  97. package/dist/ui/assets/{whisper-session-DpDs0sDL.js → whisper-session-C9hx7LSp.js} +2 -2
  98. package/dist/ui/assets/{xai-grok-B0zE4PD8.js → xai-grok-B63HB-D_.js} +1 -1
  99. package/dist/ui/assets/{xai-grok-qNfpChVL.js → xai-grok-BuzpaZ3J.js} +1 -1
  100. package/dist/ui/index.html +6 -6
  101. package/dist/ui/logos/slicc-icon-tinted-master-1024.png +0 -0
  102. package/dist/ui/packages/webapp/index.html +6 -6
  103. package/package.json +1 -1
  104. package/dist/ui/assets/installer-DW4F27JY.js +0 -3
  105. package/dist/ui/assets/key-DIv1vK1C.js +0 -1
  106. package/dist/ui/assets/leader-session-events-CC6poXIx.js +0 -1
  107. package/dist/ui/assets/provider-store-access-Dpf-pRBN.js +0 -1
  108. package/dist/ui/assets/record-Cy655bTh.js +0 -1
  109. package/dist/ui/assets/shared-CddfUR6k.js +0 -1
  110. package/dist/ui/assets/shared-DqziuFis.js +0 -4
  111. package/dist/ui/assets/slicc-version-DGuDCTJJ.js +0 -1
  112. package/dist/ui/assets/wc-extension-xtFKSycE.js +0 -2
  113. package/dist/ui/assets/wc-float-label-D7p-4xyd.js +0 -1
  114. package/dist/ui/assets/wc-follower-BnLpIYR9.js +0 -17
  115. package/dist/ui/assets/wc-live-Bwye6neF.js +0 -8
  116. package/dist/ui/assets/wc-tray-Bzf_NXYv.js +0 -2
  117. package/dist/ui/assets/wc-tray-scoops-Bv6lSzxH.js +0 -5
  118. package/dist/ui/assets/wc-unit-context-Da9Dpd9y.js +0 -1
@@ -1 +1 @@
1
- import{t as e}from"./types-idfTVsM8.js";import{t}from"./global-db-DJXlpNui.js";const n=`/workspace/.plugins/plugins.json`;let r=null;async function i(e){if(e)return e;if(r&&r.dbName===`slicc-fs-global`)return r.instance;let{VirtualFS:n}=await import(`./fs-CWtFkoED.js`).then(e=>e.t),i=await n.create({dbName:t});return r={instance:i,dbName:t},i}function a(){return{version:1,plugins:{}}}function o(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.root==`string`?t:null}function s(e){if(!e||typeof e!=`object`)return a();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.plugins&&typeof t.plugins==`object`)for(let[e,n]of Object.entries(t.plugins)){let t=o(n);t&&(r[e]=t)}return{version:n,plugins:r}}async function c(t){try{let e=await(await i(t)).readFile(n,{encoding:`utf-8`});try{return s(JSON.parse(e))}catch{return a()}}catch(t){return t instanceof e&&t.code,a()}}async function l(e,t){let r=await i(t);await r.mkdir(`/workspace/.plugins`,{recursive:!0});let a=s({version:e.version||1,plugins:e.plugins??{}});await r.writeFile(n,JSON.stringify(a,null,2))}async function u(e,t){return(await c(t)).plugins[e]??null}async function d(e,t,n){let r=await c(n);r.plugins[e]=t,await l(r,n)}async function f(e,t){let n=await c(t);return e in n.plugins&&(delete n.plugins[e],await l(n,t),!0)}async function p(e){return(await c(e)).plugins}export{f as deleteInstalledPlugin,u as getInstalledPlugin,p as listInstalledPlugins,d as setInstalledPlugin};
1
+ import{t as e}from"./types-idfTVsM8.js";import{t}from"./global-db-DJXlpNui.js";const n=`/workspace/.plugins/plugins.json`;let r=null;async function i(e){if(e)return e;if(r&&r.dbName===`slicc-fs-global`)return r.instance;let{VirtualFS:n}=await import(`./fs-BDrRWsaw.js`).then(e=>e.t),i=await n.create({dbName:t});return r={instance:i,dbName:t},i}function a(){return{version:1,plugins:{}}}function o(e){if(!e||typeof e!=`object`)return null;let t=e;return typeof t.root==`string`?t:null}function s(e){if(!e||typeof e!=`object`)return a();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.plugins&&typeof t.plugins==`object`)for(let[e,n]of Object.entries(t.plugins)){let t=o(n);t&&(r[e]=t)}return{version:n,plugins:r}}async function c(t){try{let e=await(await i(t)).readFile(n,{encoding:`utf-8`});try{return s(JSON.parse(e))}catch{return a()}}catch(t){return t instanceof e&&t.code,a()}}async function l(e,t){let r=await i(t);await r.mkdir(`/workspace/.plugins`,{recursive:!0});let a=s({version:e.version||1,plugins:e.plugins??{}});await r.writeFile(n,JSON.stringify(a,null,2))}async function u(e,t){return(await c(t)).plugins[e]??null}async function d(e,t,n){let r=await c(n);r.plugins[e]=t,await l(r,n)}async function f(e,t){let n=await c(t);return e in n.plugins&&(delete n.plugins[e],await l(n,t),!0)}async function p(e){return(await c(e)).plugins}export{f as deleteInstalledPlugin,u as getInstalledPlugin,p as listInstalledPlugins,d as setInstalledPlugin};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DJXlpNui.js";var i=e({MCP_STORE_PATH:()=>o,deleteServer:()=>v,getServer:()=>g,listServers:()=>y,readMcpAuthEntries:()=>x,readMcpAuthEntry:()=>b,readServersFile:()=>m,setServer:()=>_,writeServersFile:()=>h});const a=t(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./fs-CWtFkoED.js`).then(e=>e.t),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),n=await t.create({dbName:r});return c={instance:n,dbName:r},n}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function p(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){let t=f(n);t&&(r[e]=t)}return{version:n,servers:r}}async function m(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return p(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof n&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function h(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r=p({version:e.version||1,servers:e.servers??{}});await n.writeFile(o,JSON.stringify(r,null,2))}async function g(e,t){return(await m(t)).servers[e]??null}async function _(e,t,n){let r=await m(n),i=f({...r.servers[e],...t});if(!i)throw Error(`MCP server entry requires a URL`);return r.servers[e]=i,await h(r,n),i}async function v(e,t){let n=await m(t);return e in n.servers&&(delete n.servers[e],await h(n,t),!0)}async function y(e){return(await m(e)).servers}async function b(e){let t=await g(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function x(){let e=await y(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{b as n,i as r,x as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{t as n}from"./types-idfTVsM8.js";import{t as r}from"./global-db-DJXlpNui.js";var i=e({MCP_STORE_PATH:()=>o,deleteServer:()=>v,getServer:()=>g,listServers:()=>y,readMcpAuthEntries:()=>x,readMcpAuthEntry:()=>b,readServersFile:()=>m,setServer:()=>_,writeServersFile:()=>h});const a=t(`mcp-store`),o=`/workspace/.mcp/servers.json`;let s=null,c=null;async function l(){return s||=await import(`./fs-BDrRWsaw.js`).then(e=>e.t),s}async function u(e){if(e)return e;if(c&&c.dbName===`slicc-fs-global`)return c.instance;let{VirtualFS:t}=await l(),n=await t.create({dbName:r});return c={instance:n,dbName:r},n}function d(){return{version:1,servers:{}}}function f(e){if(!e||typeof e!=`object`)return null;let t={...e};return typeof t.url==`string`?(delete t.sessionId,t):null}function p(e){if(!e||typeof e!=`object`)return d();let t=e,n=typeof t.version==`number`?t.version:1,r={};if(t.servers&&typeof t.servers==`object`)for(let[e,n]of Object.entries(t.servers)){let t=f(n);t&&(r[e]=t)}return{version:n,servers:r}}async function m(e){try{let t=await(await u(e)).readFile(o,{encoding:`utf-8`});try{return p(JSON.parse(t))}catch(e){return a.warn(`servers.json is not valid JSON; treating as empty`,{error:e instanceof Error?e.message:String(e)}),d()}}catch(e){return e instanceof n&&e.code===`ENOENT`||a.warn(`Failed to read servers.json`,{error:e instanceof Error?e.message:String(e)}),d()}}async function h(e,t){let n=await u(t);await n.mkdir(`/workspace/.mcp`,{recursive:!0});let r=p({version:e.version||1,servers:e.servers??{}});await n.writeFile(o,JSON.stringify(r,null,2))}async function g(e,t){return(await m(t)).servers[e]??null}async function _(e,t,n){let r=await m(n),i=f({...r.servers[e],...t});if(!i)throw Error(`MCP server entry requires a URL`);return r.servers[e]=i,await h(r,n),i}async function v(e,t){let n=await m(t);return e in n.servers&&(delete n.servers[e],await h(n,t),!0)}async function y(e){return(await m(e)).servers}async function b(e){let t=await g(e);return!t?.url||!t.auth?.clientId?null:{name:e,serverUrl:t.url,auth:t.auth}}async function x(){let e=await y(),t=[];for(let[n,r]of Object.entries(e))!r?.url||!r.auth?.clientId||t.push({name:n,serverUrl:r.url,auth:r.auth});return t}export{b as n,i as r,x as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/panel-rpc-B3MSVImO.js","assets/rolldown-runtime-Dd_uD5pT.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import"./proxied-fetch-BGeNrvQ4.js";import{n}from"./runtime-env-Dlaokqg1.js";import{i as r,n as i,t as a}from"./api-endpoint-GRCyib6X.js";import"./runtime-env-CgsZ7LTp.js";import{t as o}from"./quick-llm-DI5chNk4.js";import{i as s,t as c}from"./page-approval-service-BsXoPdFJ.js";var l=t(`sudo:timeout`);function u(e=`user-timeout`){return{decision:`deny`,reason:e}}function d(e,t={}){let n=t.timeoutMs??3e5;if(!Number.isFinite(n)||n<=0)return e;let r=t.setTimer??((e,t)=>setTimeout(e,t)),i=t.clearTimer??(e=>clearTimeout(e));return{requestApproval(t,a){return new Promise(o=>{let s=new AbortController,c=()=>s.abort();a?.signal?.addEventListener(`abort`,c,{once:!0});let d=!1,f=e=>{d=!0,a?.signal?.removeEventListener(`abort`,c),o(e)},p=r(()=>{d||(l.warn(`sudo approval timed out — failing closed`,{kind:t.kind,detail:t.detail,timeoutMs:n}),s.abort(),f(u(`user-timeout`)))},n),m=e=>{if(d){l.warn(`sudo decision arrived after timeout — discarded`,{kind:t.kind,detail:t.detail,decision:e.decision});return}i(p),f(e)};e.requestApproval(t,{signal:s.signal}).then(m,e=>{l.warn(`sudo broker threw — denying`,{error:e instanceof Error?e.message:String(e)}),m({decision:`deny`})})})}}}var f=t(`sudo-suggest`),p=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import"./proxied-fetch-BGeNrvQ4.js";import{n}from"./runtime-env-Dlaokqg1.js";import{i as r,n as i,t as a}from"./api-endpoint-GRCyib6X.js";import"./runtime-env-CgsZ7LTp.js";import{t as o}from"./quick-llm-C3kXqZlY.js";import{i as s,t as c}from"./page-approval-service-BsXoPdFJ.js";var l=t(`sudo:timeout`);function u(e=`user-timeout`){return{decision:`deny`,reason:e}}function d(e,t={}){let n=t.timeoutMs??3e5;if(!Number.isFinite(n)||n<=0)return e;let r=t.setTimer??((e,t)=>setTimeout(e,t)),i=t.clearTimer??(e=>clearTimeout(e));return{requestApproval(t,a){return new Promise(o=>{let s=new AbortController,c=()=>s.abort();a?.signal?.addEventListener(`abort`,c,{once:!0});let d=!1,f=e=>{d=!0,a?.signal?.removeEventListener(`abort`,c),o(e)},p=r(()=>{d||(l.warn(`sudo approval timed out — failing closed`,{kind:t.kind,detail:t.detail,timeoutMs:n}),s.abort(),f(u(`user-timeout`)))},n),m=e=>{if(d){l.warn(`sudo decision arrived after timeout — discarded`,{kind:t.kind,detail:t.detail,decision:e.decision});return}i(p),f(e)};e.requestApproval(t,{signal:s.signal}).then(m,e=>{l.warn(`sudo broker threw — denying`,{error:e instanceof Error?e.message:String(e)}),m({decision:`deny`})})})}}}var f=t(`sudo-suggest`),p=[`You generalize a single shell command into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the leading command/sub-command verbatim and replace only`,`the volatile tail (args, paths, refs) with a single trailing "*".`,`Examples:`,` git push origin main -> git push*`,` rm -rf build/cache -> rm -rf*`,` npm install left-pad -> npm install*`].join(`
3
3
  `),m=[`You generalize a single filesystem path into a minimal glob pattern for an`,`allow-list rule. Output ONLY the pattern on one line — no prose, no quotes,`,`no backticks. Keep the meaningful directory prefix and replace the volatile`,`leaf (and below) with "**". Examples:`,` /workspace/.git/config -> /workspace/.git/**`,` /shared/secrets/openai.key -> /shared/secrets/**`,` /workspace/src/app/main.ts -> /workspace/src/**`].join(`
4
4
  `);async function h(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let n=e.detail.trim(),r=e.kind===`command`?p:m,i=null;try{i=await o({prompt:n,system:r,maxTokens:40,temperature:0,signal:t})}catch(e){f.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),i=null}return g(i)||n}function g(e){if(!e)return null;let t=(e.split(`
5
5
  `,1)[0]?.trim()??``).replace(/^`+/,``).replace(/`+$/,``).replace(/^["']/,``).replace(/["']$/,``).trim();return t.length===0?null:t}var _=t(`sudo-ext`);function v(e={}){let t=e.suggest??h;return{async requestApproval(e,n){let r=n?.signal,i;try{i=await t(e,r)}catch{i=e.detail}return r?.aborted?(_.warn(`sudo approval aborted before prompting — denying`,{detail:e.detail}),{decision:`deny`}):y({...e,suggestedPattern:i})}}}function y(e){return new Promise(t=>{let n=globalThis.chrome?.runtime;if(!n||typeof n.sendMessage!=`function`){_.warn(`chrome.runtime.sendMessage unavailable — denying`),t({decision:`deny`});return}let r=r=>{let i=n.lastError;if(i){_.warn(`sudo relay lastError — denying`,{error:i.message}),t({decision:`deny`});return}if(!r||typeof r!=`object`){_.warn(`sudo relay empty response — denying`),t({decision:`deny`});return}let a=r;if(!a.ok||!a.decision){_.warn(`sudo relay error response — denying`,{error:a.error}),t({decision:`deny`});return}t(b(a.decision,e.suggestedPattern??e.detail))};try{n.sendMessage({source:`offscreen`,payload:{type:s,request:e}},r)}catch(e){_.warn(`sudo relay threw — denying`,{error:e instanceof Error?e.message:String(e)}),t({decision:`deny`})}})}function b(e,t){return e.decision===`allow`?{decision:`allow`}:e.decision===`always`?{decision:`always`,pattern:typeof e.pattern==`string`&&e.pattern.trim().length>0?e.pattern.trim():t}:{decision:`deny`}}var x=t(`sudo-http`);function S(e={}){let t=e.fetchImpl??globalThis.fetch.bind(globalThis),n=e.path??`/api/sudo-approve`,i=e.suggest??h;return{async requestApproval(e,o){let s=o?.signal,c;if(e.suggestedPattern)c=e.suggestedPattern;else try{c=await i(e,s)}catch{c=e.detail}if(s?.aborted)return x.warn(`sudo approval aborted before prompting — denying`,{detail:e.detail}),{decision:`deny`};try{let i=await t(r(n),{method:`POST`,headers:a({"Content-Type":`application/json`}),body:JSON.stringify({kind:e.kind,detail:e.detail,suggestedPattern:c}),signal:s});return i.ok?C(await i.json(),c):(x.warn(`sudo endpoint returned non-OK status — denying`,{status:i.status}),{decision:`deny`})}catch(e){return x.warn(`sudo endpoint request failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function C(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var w=t(`sudo-panel-rpc`),T=6e5;function E(t={}){let n=t.suggest??h,r=t.timeoutMs??T,i=t.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-B3MSVImO.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e,t){let a=t?.signal,o;try{o=await n(e,a)}catch{o=e.detail}let s={...e,suggestedPattern:o},c;try{c=await i()}catch(e){return w.warn(`panel-RPC client lookup threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}if(!c)return w.warn(`panel-RPC client unavailable in worker realm — denying`),{decision:`deny`};if(a?.aborted)return w.warn(`sudo approval aborted before prompting — denying`,{detail:e.detail}),{decision:`deny`};try{let{decision:e}=await c.call(`sudo-request`,{request:s},{timeoutMs:r});return D(e,o)}catch(e){return w.warn(`sudo panel-RPC relay failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function D(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e.decision;if(n===`allow`)return{decision:`allow`};if(n===`always`){let n=e.pattern;return{decision:`always`,pattern:typeof n==`string`&&n.trim().length>0?n.trim():t}}return{decision:`deny`}}var O=t(`sudo:tray-first`),k=6e5;function A(t,n={}){let r=n.suggest??h,i=n.timeoutMs??k,a=n.getClient??(async()=>{let{getPanelRpcClient:t}=await e(async()=>{let{getPanelRpcClient:e}=await import(`./panel-rpc-B3MSVImO.js`).then(e=>e.i);return{getPanelRpcClient:e}},__vite__mapDeps([0,1]));return t()});return{async requestApproval(e,n){if(n?.signal?.aborted)return{decision:`deny`};let o=e.suggestedPattern;if(!o)try{o=await r(e,n?.signal)}catch{o=e.detail}let s={...e,suggestedPattern:o},c=null;try{c=await a()}catch(e){O.debug?.(`panel-RPC client lookup threw — using native broker`,{error:e instanceof Error?e.message:String(e)})}if(c)try{let e=await c.call(`sudo-request`,{request:s,mode:`tray-first`},{timeoutMs:i});if(e?.handled!==!1)return j(e?.decision,o)}catch(e){O.warn(`tray-first sudo probe failed — using native broker`,{error:e instanceof Error?e.message:String(e)})}return t.requestApproval(s,n)}}}function j(e,t){if(!e||typeof e!=`object`)return{decision:`deny`};let n=e,r=n.attestation===`biometric`||n.attestation===`passcode`||n.attestation===`none`?n.attestation:void 0;return n.decision===`allow`?{decision:`allow`,...r?{attestation:r}:{}}:n.decision===`always`?{decision:`always`,pattern:typeof n.pattern==`string`&&n.pattern.trim().length>0?n.pattern.trim():t,...r?{attestation:r}:{}}:{decision:`deny`}}var M=t(`sudo`),N=`__slicc_sudo`;function P(){return n()}function F(){return typeof chrome>`u`&&i()!==null}function I(){return d(L())}function L(){return P()?v():F()?E():A(S())}function R(e=I()){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[N]=t,M.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{c as installPanelSudoResponder,R as installSudoTestHook};
@@ -1 +1 @@
1
- import"./proxied-fetch-BGeNrvQ4.js";import{n as e}from"./runtime-env-Dlaokqg1.js";import{i as t,t as n}from"./api-endpoint-GRCyib6X.js";import"./runtime-env-CgsZ7LTp.js";import{n as r,t as i}from"./shared-CddfUR6k.js";var a=1e3;function o(e=()=>Date.now()){let t=new Map,n=null,r=0,i=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(a,o,s){t.set(a,{loaded:Math.max(0,o),total:Math.max(t.get(a)?.total??0,s,o)}),n===null&&(n=e(),r=i().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:o}=i(),s=null;if(n!==null&&o>0&&t<o){let i=e()-n,c=t-r;if(i>=a&&c>0){let e=c/i;s=(o-t)/e/1e3}}return o>0&&t>=o&&(s=0),{loaded:t,total:o,etaSeconds:s}}}}var s=`onnx-community/whisper-tiny`,c=`onnx-community/Kokoro-82M-v1.0-ONNX`,l=Symbol.for(`slicc.transformers-env.fetch-wrapped`),u=e,d=`/workspace/node_modules/onnxruntime-web/dist/`,f=`/workspace/models/`;function p(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function m(e){let t=p(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function h(){return globalThis.location?.origin??null}function g(e){let t=h();if(!t)return!1;try{return new URL(p(e)).origin===t}catch{return!1}}async function _(e,r){let i=p(e),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=n({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(t(`/api/fetch-proxy`),c)}var v=3e4,y=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],b=Symbol.for(`slicc.transformers-env.vfs-enoent`);function x(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,c),t.close(),e()},o,s=()=>{clearTimeout(o),o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[b]=!0,a(()=>i(t))},v)};s();let c=t=>{let c=t.data;if(!c||c.id!==n)return;if(c.type===`preview-vfs-start`){s();return}if(c.type!==`preview-vfs-response`)return;if(clearTimeout(o),typeof c.error==`string`){let e=Error(c.error);c.error.includes(`ENOENT`)&&(e[b]=!0),a(()=>i(e));return}let l=c.content;if(l instanceof Uint8Array){a(()=>r(l));return}if(typeof l==`string`){a(()=>r(new TextEncoder().encode(l)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,c),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function S(e){return!!e?.[b]}function C(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function w(e,t){return!t||!e.startsWith(t)?null:`${f}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function T(e,t){let n;try{n=await x(e)}catch(t){if(S(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let r=i(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":r,"Content-Length":String(n.byteLength),"Content-Range":`bytes 0-0/${n.byteLength}`}}):new Response(C(n),{status:200,headers:{"Content-Type":r,"Content-Length":String(n.byteLength)}})}var E=null;async function D(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(y.map(async t=>{try{let n=await x(`${d}${t}`),r=new Blob([C(n)],{type:i(t)});e[t]=URL.createObjectURL(r)}catch(e){if(!S(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function O(){return E||=D(),E}var k=`slicc_ort_num_threads`;function A(e){if(!e.isolated)return 1;let t=e.hardwareConcurrency,n=typeof t==`number`&&Number.isFinite(t)&&t>=1,r=n?Math.min(4,Math.floor(t)):4,i=e.override==null?NaN:Number.parseInt(e.override,10);return Number.isFinite(i)&&i>=1?Math.max(1,Math.min(r,i)):n?Math.max(1,r):1}function j(){let e=null;try{e=globalThis.localStorage?.getItem(`slicc_ort_num_threads`)??null}catch{}let t={isolated:globalThis.crossOriginIsolated===!0,hardwareConcurrency:globalThis.navigator?.hardwareConcurrency,override:e},n=A(t);return e!=null&&t.isolated&&console.warn(`[speech] ort-web numThreads=${n} forced by localStorage.${k}=${JSON.stringify(e)} — this persists until removed`),n}function M(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=r(d),t.numThreads=j()),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=r(f),u())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&O().then(e=>{t.wasmPaths=e},()=>{});let n=e.fetch;if(n?.[l])return;let i=n,a=e.localModelPath,o=async(e,t)=>{let n=w(p(e),a);return n===null?!m(e)||g(e)?i?i(e,t):fetch(e,t):_(e,t):T(n,t)};o[l]=!0,e.fetch=o}async function N(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await x(`${f}${e}/config.json`)}catch(e){if(S(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{s as a,c as i,M as n,o,O as r,N as t};
1
+ import"./proxied-fetch-BGeNrvQ4.js";import{n as e}from"./runtime-env-Dlaokqg1.js";import{i as t,t as n}from"./api-endpoint-GRCyib6X.js";import"./runtime-env-CgsZ7LTp.js";import{n as r,t as i}from"./shared-pJ1rPAkk.js";var a=1e3;function o(e=()=>Date.now()){let t=new Map,n=null,r=0,i=()=>{let e=0,n=0;for(let r of t.values())e+=r.loaded,n+=r.total;return{loaded:e,total:n}};return{update(a,o,s){t.set(a,{loaded:Math.max(0,o),total:Math.max(t.get(a)?.total??0,s,o)}),n===null&&(n=e(),r=i().loaded)},complete(e){let n=t.get(e);n&&(n.loaded=n.total)},snapshot(){let{loaded:t,total:o}=i(),s=null;if(n!==null&&o>0&&t<o){let i=e()-n,c=t-r;if(i>=a&&c>0){let e=c/i;s=(o-t)/e/1e3}}return o>0&&t>=o&&(s=0),{loaded:t,total:o,etaSeconds:s}}}}var s=`onnx-community/whisper-tiny`,c=`onnx-community/Kokoro-82M-v1.0-ONNX`,l=Symbol.for(`slicc.transformers-env.fetch-wrapped`),u=e,d=`/workspace/node_modules/onnxruntime-web/dist/`,f=`/workspace/models/`;function p(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function m(e){let t=p(e);return t.startsWith(`http://`)||t.startsWith(`https://`)}function h(){return globalThis.location?.origin??null}function g(e){let t=h();if(!t)return!1;try{return new URL(p(e)).origin===t}catch{return!1}}async function _(e,r){let i=p(e),a={};r?.headers&&new Headers(r.headers).forEach((e,t)=>{a[t]=e});let o=n({...a,"X-Target-URL":i}),s=(r?.method??`GET`).toUpperCase(),c={method:s,headers:o,cache:`no-store`};return r?.body&&s!==`GET`&&s!==`HEAD`&&(c.body=r.body),fetch(t(`/api/fetch-proxy`),c)}var v=3e4,y=[`ort-wasm-simd-threaded.jsep.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.jsep.wasm`,`ort-wasm-simd-threaded.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort.wasm`,`ort-wasm-simd-threaded.asyncify.mjs`,`https://${["cdn","jsdelivr","net"].join(".")}/npm/onnxruntime-web@1.26.0-dev.20260416-b7804b056c/dist/ort-wasm-simd-threaded.asyncify.wasm`],b=Symbol.for(`slicc.transformers-env.vfs-enoent`);function x(e){if(typeof BroadcastChannel>`u`)return Promise.reject(Error(`Cannot read VFS path ${e}: BroadcastChannel unavailable in this realm`));let t=new BroadcastChannel(`preview-vfs`),n=`tfx-${Date.now()}-${Math.random().toString(36).slice(2)}`;return new Promise((r,i)=>{let a=e=>{t.removeEventListener(`message`,c),t.close(),e()},o,s=()=>{clearTimeout(o),o=setTimeout(()=>{let t=Error(`ENOENT: ${e} (preview-vfs responder timed out)`);t[b]=!0,a(()=>i(t))},v)};s();let c=t=>{let c=t.data;if(!c||c.id!==n)return;if(c.type===`preview-vfs-start`){s();return}if(c.type!==`preview-vfs-response`)return;if(clearTimeout(o),typeof c.error==`string`){let e=Error(c.error);c.error.includes(`ENOENT`)&&(e[b]=!0),a(()=>i(e));return}let l=c.content;if(l instanceof Uint8Array){a(()=>r(l));return}if(typeof l==`string`){a(()=>r(new TextEncoder().encode(l)));return}a(()=>i(Error(`Unexpected empty preview-vfs response for ${e}`)))};t.addEventListener(`message`,c),t.postMessage({type:`preview-vfs-read`,id:n,path:e,asText:!1})})}function S(e){return!!e?.[b]}function C(e){let t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t);return n.set(e),n}function w(e,t){return!t||!e.startsWith(t)?null:`${f}${e.slice(t.length).split(`?`)[0].split(`#`)[0]}`}async function T(e,t){let n;try{n=await x(e)}catch(t){if(S(t))return new Response(`Not found: ${e}`,{status:404,headers:{"Content-Type":`text/plain`}});throw t}let r=i(e);return(t?.headers?new Headers(t.headers).get(`range`):null)===`bytes=0-0`?new Response(null,{status:206,headers:{"Content-Type":r,"Content-Length":String(n.byteLength),"Content-Range":`bytes 0-0/${n.byteLength}`}}):new Response(C(n),{status:200,headers:{"Content-Type":r,"Content-Length":String(n.byteLength)}})}var E=null;async function D(){if(typeof URL>`u`||typeof URL.createObjectURL!=`function`)throw Error(`onnxruntime-web blob URLs require URL.createObjectURL (browser realm only)`);let e={};if(await Promise.all(y.map(async t=>{try{let n=await x(`${d}${t}`),r=new Blob([C(n)],{type:i(t)});e[t]=URL.createObjectURL(r)}catch(e){if(!S(e))throw e}})),Object.keys(e).length===0)throw Error("onnxruntime-web is not installed — run `ipk add onnxruntime-web` to stage the wasm runtime in /workspace/node_modules/.");return e}function O(){return E||=D(),E}var k=`slicc_ort_num_threads`;function A(e){if(!e.isolated)return 1;let t=e.hardwareConcurrency,n=typeof t==`number`&&Number.isFinite(t)&&t>=1,r=n?Math.min(4,Math.floor(t)):4,i=e.override==null?NaN:Number.parseInt(e.override,10);return Number.isFinite(i)&&i>=1?Math.max(1,Math.min(r,i)):n?Math.max(1,r):1}function j(){let e=null;try{e=globalThis.localStorage?.getItem(`slicc_ort_num_threads`)??null}catch{}let t={isolated:globalThis.crossOriginIsolated===!0,hardwareConcurrency:globalThis.navigator?.hardwareConcurrency,override:e},n=A(t);return e!=null&&t.isolated&&console.warn(`[speech] ort-web numThreads=${n} forced by localStorage.${k}=${JSON.stringify(e)} — this persists until removed`),n}function M(e){let t=e.backends?.onnx?.wasm;if(t&&(t.wasmPaths=r(d),t.numThreads=j()),e.allowRemoteModels=!1,e.allowLocalModels=!0,e.localModelPath=r(f),u())return;e.allowRemoteModels=!0,e.remoteHost=e.localModelPath,e.remotePathTemplate=`{model}/`,t&&O().then(e=>{t.wasmPaths=e},()=>{});let n=e.fetch;if(n?.[l])return;let i=n,a=e.localModelPath,o=async(e,t)=>{let n=w(p(e),a);return n===null?!m(e)||g(e)?i?i(e,t):fetch(e,t):_(e,t):T(n,t)};o[l]=!0,e.fetch=o}async function N(e){let t=`weights for ${e} are missing — run \`hf download ${e}\` to fetch them into /workspace/models/.`;try{await x(`${f}${e}/config.json`)}catch(e){if(S(e))throw Error(t);let n=e instanceof Error?e.message:String(e);throw Error(`${t} (probe failed: ${n})`)}}export{s as a,c as i,M as n,o,O as r,N as t};
@@ -1 +1 @@
1
- import{D as e,g as t}from"./db-DSIYsBgP.js";import{n}from"./slicc-version-DGuDCTJJ.js";const r=`slicc:last-seen-version`;function i(){let{version:e,releasedAt:t}=n();return{version:e,releasedAt:t}}async function a(){let e=await t(r);return e&&e.length>0?e:null}async function o(t){await e(r,t)}async function s(){let e=i(),t=await a();return t===null?(await o(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function c(e){await o(e)}export{s as detectUpgrade,a as getLastSeenVersion,c as recordVersionSeen};
1
+ import{D as e,g as t}from"./db-DSIYsBgP.js";import{n}from"./slicc-version-Cf6ItGqM.js";const r=`slicc:last-seen-version`;function i(){let{version:e,releasedAt:t}=n();return{version:e,releasedAt:t}}async function a(){let e=await t(r);return e&&e.length>0?e:null}async function o(t){await e(r,t)}async function s(){let e=i(),t=await a();return t===null?(await o(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function c(e){await o(e)}export{s as detectUpgrade,a as getLastSeenVersion,c as recordVersionSeen};
@@ -1 +1 @@
1
- import{t as e}from"./logger-DDBAeTLF.js";import{i as t,o as n}from"./dictation-priming-CNllGgNq.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-BSK3Souh.js";var o=e(`speech:voice-reply`),s=0;function c(){s++}function l(){return s<=0?!1:(s--,!0)}async function u(e,s=i,c=r){let l=t(e);if(l&&!await c(l))return;let u=a(n(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{i as t,o as n}from"./dictation-priming-CNllGgNq.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-CrgQ-hNi.js";var o=e(`speech:voice-reply`),s=0;function c(){s++}function l(){return s<=0?!1:(s--,!0)}async function u(e,s=i,c=r){let l=t(e);if(l&&!await c(l))return;let u=a(n(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/src-CUFrGOpV.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/icons-ZLR7gmJ4.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/panel-registry-CJdOibpf.js","assets/layout-schema-m9_VAwOw.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/src-DFt0HWZc.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js","assets/icons-ZLR7gmJ4.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/panel-registry-CJdOibpf.js","assets/layout-schema-m9_VAwOw.js"])))=>i.map(i=>d[i]);
2
2
  import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t,t as n}from"./base64-DpPqYZJF.js";import"./src-CAWTvdAa.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";var i=8,a=2e3,o=[`/workspace`,`/shared`,`/tmp`],s=8,c=new Set([`node_modules`,`.git`]),l=1e4,u=/\.(png|jpe?g|gif|webp|svg|avif)$/i,d=4194304,f=262144;function p(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function m(e){return{png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,avif:`image/avif`,md:`text/markdown`,json:`application/json`}[e.toLowerCase().split(`.`).pop()??``]??`text/plain`}function h(e,n){let r={id:p(),name:e,size:n.length};if(u.test(e))return n.length>d?{...r,mimeType:m(e),kind:`image`,error:`image too large to inline`}:{...r,mimeType:m(e),kind:`image`,data:t(n)};let i={...r,mimeType:m(e),kind:`file`};return n.length>f?{...i,error:`file too large to inline`}:i}async function g(e){let t=new Uint8Array(await e.arrayBuffer()),n=h(e.name,t);return e.type?{...n,mimeType:e.type}:n}function _(e,t){let n=t.match(/^data:(image\/[^;]+);base64,(.+)$/);return n?{id:p(),name:e,mimeType:n[1],size:Math.floor(n[2].length*3/4),kind:`image`,data:n[2]}:null}var v=`/tmp/upload`,y=1568;async function b(e,t,n){await e.mkdir(v,{recursive:!0}).catch(()=>void 0);let r=`${v}/${Date.now()}-${t.replace(/[^A-Za-z0-9._-]+/g,`_`)}`;return await e.writeFile(r,n),r}async function x(e,t=y){let n=new Image;n.src=e;try{await n.decode()}catch{return e}let r=Math.min(1,t/Math.max(n.naturalWidth,n.naturalHeight,1));if(r>=1)return e;let i=document.createElement(`canvas`);return i.width=Math.round(n.naturalWidth*r),i.height=Math.round(n.naturalHeight*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height),i.toDataURL(`image/jpeg`,.85)}async function S(e,t,r){let i=_(e,t);if(!i)return null;let a;return r&&i.data&&(a=await b(r,e,n(i.data)).catch(()=>void 0)),{..._(e,await x(t).catch(()=>t))??i,name:e,path:a}}async function C(e,t,n){if(!n)return null;let r=new Uint8Array(await t.arrayBuffer()),i=await b(n,e,r).catch(()=>void 0);return i?{id:p(),name:e,mimeType:t.type||`video/webm`,size:r.length,kind:`file`,path:i}:null}async function w(e){let t=[],n=o.map(e=>({dir:e,depth:0}));for(;n.length>0&&t.length<a;){let{dir:r,depth:i}=n.shift(),o;try{o=await e.readDir(r)}catch{continue}for(let e of o){let o=`${r}/${e.name}`;if(e.type===`directory`)i<s&&!c.has(e.name)&&n.push({dir:o,depth:i+1});else if(t.push(o),t.length>=a)break}}return t}function T(e){let t=null;return async n=>{let r=await e.openReader();(!t||Date.now()-t.at>l)&&(t={at:Date.now(),paths:await w(r)});let a=e=>n===``||e.toLowerCase().includes(n),o=t.paths.filter(e=>a(e)).slice(0,i).map(e=>({id:e,label:e.split(`/`).pop()??e,sub:e.slice(0,e.lastIndexOf(`/`))})),s=[];try{s=(await r.readDir(`/workspace/skills`)).filter(e=>e.type===`directory`&&a(e.name)).slice(0,i).map(e=>({id:e.name,label:e.name}))}catch{}let c=(await e.listConversations().catch(()=>[])).filter(e=>a(e.label)).slice(0,i);return[{kind:`file`,label:`Files`,icon:`file`,entries:o},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:s},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:c}]}}var E=`slicc-wc-attach-style`,D=`
3
3
  .wcatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0;font-family:var(--ui);}
4
4
  .wcatt:empty{display:none;}
@@ -10,4 +10,4 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t,t as n}from"./bas
10
10
  .wcatt__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
11
11
  font:inherit;padding:0;line-height:1;}
12
12
  .wcatt__x:hover{color:var(--ink);}
13
- `,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./src-CUFrGOpV.js`).then(e=>e.t);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=e.split(`/`).pop()??e;if(u.test(r)){let i=await(await t()).readFile(e),a=h(r,typeof i==`string`?new TextEncoder().encode(i):i);n.add({...a,error:void 0,path:e});return}let i=0;try{i=(await(await t()).stat(e)).size}catch{}n.add({id:p(),name:r,mimeType:m(r),size:i,kind:`file`,path:e})}function H(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}Use the "${e}" skill: `)}function U(e){return e?.name===`NotAllowedError`}async function W(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await V(e.id,t.openReader,n):e.kind===`skill`&&typeof e.label==`string`?H(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function G(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&W(i,e,r).catch(e=>{U(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});W({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{G as wireWcAttach};
13
+ `,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./src-DFt0HWZc.js`).then(e=>e.t);return{SliccImagePreview:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=e.split(`/`).pop()??e;if(u.test(r)){let i=await(await t()).readFile(e),a=h(r,typeof i==`string`?new TextEncoder().encode(i):i);n.add({...a,error:void 0,path:e});return}let i=0;try{i=(await(await t()).stat(e)).size}catch{}n.add({id:p(),name:r,mimeType:m(r),size:i,kind:`file`,path:e})}function H(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}Use the "${e}" skill: `)}function U(e){return e?.name===`NotAllowedError`}async function W(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await V(e.id,t.openReader,n):e.kind===`skill`&&typeof e.label==`string`?H(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function G(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&W(i,e,r).catch(e=>{U(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});W({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{G as wireWcAttach};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-BdKr5Kuf.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{a as t,n,o as r,t as i}from"./wc-live-0ND6N-9h.js";import{wireWcDetached as a}from"./wc-detached-B3WCbbZT.js";import{floatLabelForKind as o}from"./wc-float-label-CQitMvjM.js";import{installFloatbarStatus as s}from"./wc-floatbar-online-uDk8A8hD.js";async function c(c,l,u=!1){let d=`extension`,f=n(c,o(d));s(f.refs.floatbar,{floatKind:d});let p=new r(t(f.wiring));i(f,p,l),a({client:p,isDetachedSelf:u});let{setupSudoExtension:m}=await e(async()=>{let{setupSudoExtension:e}=await import(`./setup-sudo-BdKr5Kuf.js`).then(e=>e.n);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2]));await m({log:l}),p.requestState(),l.info(`WC extension shell connected to offscreen engine`)}export{c as mountWcUiExtension};
@@ -0,0 +1 @@
1
+ import"./proxied-fetch-BGeNrvQ4.js";import{i as e,t}from"./api-endpoint-GRCyib6X.js";import{a as n}from"./src-DFt0HWZc.js";var r={"slicc-server":`sliccstart`,"slicc-node-server":`npx`};function i(e){return n(e)}function a(e){switch(e){case`extension`:case`extension-detached`:return`extension`;case`cherry`:return`cherry`;case`hosted-leader`:return`hosted`;case`electron-overlay`:return`electron`;case`follower`:return`standalone`;default:return`standalone`}}async function o(n){let i=n?.fetchFn??fetch,a=n?.timeoutMs??1500;try{let n=new AbortController,o=setTimeout(()=>n.abort(),a),s=await i(e(`/api/status`),{cache:`no-store`,signal:n.signal,headers:t()}).finally(()=>clearTimeout(o));if(!s.ok)return`standalone`;let c=await s.json();return(c.service?r[c.service]:void 0)??`standalone`}catch{return`standalone`}}export{a as floatKindForRuntimeMode,i as floatLabelForKind,o as resolveStandaloneFloatKind};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./tray-follower-status-BAjnN7Ar.js";import{i as n,n as r}from"./tray-leader-iVJTGwuf.js";import{floatLabelForKind as i}from"./wc-float-label-CQitMvjM.js";function a(a,s){let c=s.label??i(s.floatKind);a.setAttribute(`label`,c),a.setAttribute(`float-kind`,s.floatKind);let l=r(),u=t(),d=()=>{let e=o(l,u);a.setAttribute(`connection`,e.connection),e.trayRole===`none`?a.removeAttribute(`tray-role`):a.setAttribute(`tray-role`,e.trayRole)},f=n(e=>{l=e,d()}),p=e(e=>{u=e,d()});return d(),()=>{f(),p()}}function o(e,t){return e.state===`inactive`?t.state===`inactive`?{connection:`offline`,trayRole:`none`}:{connection:c(t),trayRole:`follower`}:{connection:s(e),trayRole:`leader`}}function s(e){switch(e.state){case`connecting`:return`connecting`;case`leader`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}function c(e){if(e.stalled)return`stalled`;switch(e.state){case`connecting`:return`connecting`;case`connected`:return`live`;case`reconnecting`:return`reconnecting`;case`error`:return`error`;default:return`offline`}}export{a as installFloatbarStatus};
@@ -0,0 +1,17 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/layout-schema-m9_VAwOw.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/panelize-shell-BXouoIAD.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-9EXC9iPp.js","assets/icons-ZLR7gmJ4.js","assets/src-DFt0HWZc.js","assets/preload-helper-Czpn1I53.js","assets/speech-C5U8h4In.js","assets/soundscape-cues-5_sT5Un6.js","assets/panel-registry-CJdOibpf.js","assets/layout-apply-registry-Cw730jao.js","assets/trusted-layer-ghPA1ENf.js","assets/wc-live-0ND6N-9h.js","assets/account-store-9c4PkWuh.js","assets/claude-model-version-DoVrYsKi.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-BI4UHVqp.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-BGeNrvQ4.js","assets/base64-DpPqYZJF.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-GRCyib6X.js","assets/float-topology-DiK91BlA.js","assets/runtime-env-E-i2SW1s.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-DnJR1mMn.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/mime-types-ugOWOUZ9.js","assets/setup-standalone-prelude-DsB5MkPB.js","assets/runtime-env-CgsZ7LTp.js","assets/messages-BD4p8GuF.js","assets/tray-runtime-config-D7cmCcHJ.js","assets/setup-sudo-BdKr5Kuf.js","assets/telemetry-BVzuNdvW.js","assets/feature-flags-ByMXaIc4.js","assets/tray-follower-status-BAjnN7Ar.js","assets/src-BWaKqLvQ.js","assets/html-B_Hg2WOy.js","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-iVJTGwuf.js","assets/db-cKsBsMMN.js","assets/record-C0lt6kKE.js","assets/shared-pJ1rPAkk.js","assets/dictation-priming-CNllGgNq.js","assets/export-provider-BEHTjSYw.js","assets/dip-CRb_i6v6.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-B3LG5UIy.js","assets/usb-operations-Cgk-otz-.js","assets/usb-device-registry-CRsCisej.js","assets/sprinkle-renderer-D64E-W2o.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-Cdo9vfXE.js","assets/session-freezer-QzhGhlzG.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/agent-message-to-chat-_cvF5A5g.js","assets/wc-shell-DejC0Myk.js","assets/timestamp-preference-sKwBl5I8.js","assets/wc-scoop-color-ShF3p7L9.js","assets/wc-shell-WkeczD9x.css","assets/follower-presentation-DqBw0YiV.js","assets/wc-unit-context-DvrjSIee.js","assets/host-command-zx0pt9Np.js","assets/browser-DdY1FBRp.js","assets/leader-session-events-Iq9N1w56.js","assets/legacy-styles-DcRu2WCJ.js","assets/follower-navigate-watcher-Dz-52eZY.js","assets/navigation-watcher-CcKsLKw9.js","assets/handoff-link-BM4ctkE8.js","assets/discovery-preference-__0HPYJC.js","assets/wc-transcript-export-DKIleW7-.js","assets/export-spool-Eul4J1RP.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{r as n}from"./src-CAWTvdAa.js";import{n as r}from"./setup-standalone-prelude-DsB5MkPB.js";import{n as i}from"./tray-sync-protocol-BZ5yhJH9.js";import{i as a,n as o}from"./wc-live-0ND6N-9h.js";import{r as s,t as c}from"./feature-flags-ByMXaIc4.js";import{i as l,m as u,p as ee,r as d,u as te}from"./tray-runtime-config-D7cmCcHJ.js";import{a as ne,f,i as re,l as ie,n as ae,t as oe}from"./wc-tray-scoops-YUFzbJOw.js";import{a as se,t as ce}from"./tray-follower-status-BAjnN7Ar.js";import{n as le}from"./theme-engine-By4GU_Wc.js";import{i as p,r as m}from"./dip-CRb_i6v6.js";import{a as ue,n as de,o as fe}from"./wc-shell-DejC0Myk.js";import{n as pe}from"./wc-unit-context-DvrjSIee.js";import{WcSprinkleZone as me}from"./wc-sprinkles-EHJeVQcY.js";import{wireWcAttach as he}from"./wc-attach-CkeEl04a.js";import{floatLabelForKind as ge}from"./wc-float-label-CQitMvjM.js";import{installFloatbarStatus as _e}from"./wc-floatbar-online-uDk8A8hD.js";import{r as ve}from"./leader-session-events-Iq9N1w56.js";import{installLeaderPermissionsSurface as ye}from"./wc-permissions-Oq3nX_59.js";var h=t(`follower-switch-out`);function be(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(l):t.storage.setItem(l,e.workerBaseUrl)}catch(e){h.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=u(e);n!==e&&t.replaceHref(n)}catch(e){h.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var g=6;function xe(e){let{refs:t,getSync:n,getTargets:r,hasCdpBrowser:i,log:a}=e;if(t.overlaySurfaces.has(`browser`))return{overlay:document.createElement(`slicc-tab-overlay`),refresh:()=>{}};let o=document.createElement(`slicc-tab-overlay`);o.setAttribute(`heading`,`Browser · tabs in this tray`),document.body.append(o);let s=()=>{o.tabs=r().map(e=>({id:e.targetId,title:e.title||e.url||e.targetId,url:e.url}))};return t.overlaySurfaces.add(`browser`),t.dock.addEventListener(`slicc-dock-select`,e=>{e.detail?.id===`browser`&&(s(),o.show(),t.dock.collapse?.())}),o.addEventListener(`tab-activate`,t=>{let r=t.detail.id,s=n(),c=s?.getLeaderProtocolVersion()??0;if(!(s&&i()&&c>=g)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var _=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function Se(e){return _.has(e)}var v=`slicc-signin-redirect-style`,y=`wc-signin-redirect`,b=`
3
+ .${y}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
4
+ border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
5
+ font-family:var(--ui);font-size:13px;line-height:1.4;}
6
+ .${y}__body{flex:1;min-width:0;}
7
+ .${y}__title{font-weight:600;margin-bottom:2px;}
8
+ .${y}__sub{color:var(--txt-2);}
9
+ .${y}__open{appearance:none;border:1px solid var(--line);border-radius:8px;cursor:pointer;
10
+ background:var(--canvas);color:var(--ink);font:inherit;font-weight:600;padding:6px 12px;white-space:nowrap;}
11
+ .${y}__open:hover{background:var(--ghost);}
12
+ .${y}__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
13
+ font:inherit;font-size:16px;line-height:1;padding:0 2px;}
14
+ .${y}__x:hover{color:var(--ink);}
15
+ `;function x(e){if(e.getElementById(v))return;let t=e.createElement(`style`);t.id=v,t.textContent=b,e.head.appendChild(t)}function S(e,t){x(e);let n=e.createElement(`div`);n.className=y,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${y}__body`;let i=e.createElement(`div`);i.className=`${y}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${y}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${y}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${y}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function Ce(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${y}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=S(n,{title:`Sign in from the SLICC tab`,sub:`The side panel can't complete a provider login — we've switched you to the main SLICC tab. Finish signing in there (Settings › Providers), then come back.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!0});return e.append(i),i.scrollIntoView?.({block:`nearest`}),i}function we(e,t){return S(e,{title:`Set up SLICC in the main tab`,sub:`SLICC needs a model connected before it can help. Open the main SLICC tab to finish setup and sign in, then come back to the side panel.`,buttonLabel:`Open SLICC tab`,onOpenTab:t.onOpenTab,dismissible:!1})}var C=t(`wc-follower`),Te=`/shared/sprinkles/welcome/`,w={sendMessage:()=>{},onEvent:()=>()=>{},stop:()=>{}};function T(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function E(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);let n=document.createElement(`div`);n.style.cssText=`padding:2rem;text-align:center;font-family:system-ui;`;let r=document.createElement(`h1`);r.style.color=`var(--s2-negative, #e34850)`,r.textContent=`Could not start follower`;let i=document.createElement(`p`);i.style.color=`var(--s2-content-tertiary, #717171)`,i.textContent=t,n.append(r,i),e.appendChild(n)}function D(e,t,n,r,i){let a=e=>{let t=document.createElement(`div`);return t.className=`wcui-placeholder`,t.textContent=e,t};i.files?(e.style.display=`none`,e.parentElement?.append(a(`Files live on the leader. A follower mirrors the leader's chat, sprinkles, and browser tabs - not its filesystem.`))):e.closest(`slicc-surface`)?.remove(),i.terminal?t.append(a(`The shell runs on the leader. A follower has no local terminal - drive the session through chat.`)):t.closest(`slicc-surface`)?.remove(),i.memory?n.append(a(`Memory lives on the leader. A follower has no local memory store.`)):n.closest(`slicc-surface`)?.remove(),i.monitor?(r.style.display=`none`,r.parentElement?.append(a(`Monitor reads the leader's kernel state. A follower has no local kernel.`))):r.closest(`slicc-surface`)?.remove()}var O={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,newSprinkle:!0,monitor:!0,showTimestamps:!0};function Ee(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`],[`newSprinkle`,`new`]])e[n]||t.push(`slicc-dock-item[data-t="${r}"]`);if(e.modelPicker||t.push(`slicc-composer-meta`),e.history||t.push(`slicc-freezer`),e.nav||t.push(`slicc-nav`),!e.terminal&&!e.files&&!e.memory&&!e.browser&&!e.monitor&&t.push(`slicc-dock .div`,`slicc-dock .grow`),t.length||!e.history){let n=document.createElement(`style`),r=t.length?`${t.join(`,
16
+ `)}{display:none!important;}`:``;e.history||(r+=`
17
+ .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function k(e,t){return e&&!t}async function De(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./layout-schema-m9_VAwOw.js`).then(e=>e.s),__vite__mapDeps([0,1])),e(()=>import(`./panelize-shell-BXouoIAD.js`),__vite__mapDeps([2,3,4,5,1,6,7,8,9,10,0,11,12]))]),o=i(n);if(`error`in o){r.warn(`follower: host-pushed layout failed validation — keeping the default`,{error:o.error});return}a(t.refs,o),r.info(`follower: applied host-pushed layout document`,{id:o.id,locked:o.locked===!0})}async function A(t,l,u){let d=u===`cherry`,h=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,g=window.location.ancestorOrigins?.[0],_=d&&(g?.startsWith(`chrome-extension://`)??!1),v;try{v=await r({runtimeMode:u,envBaseUrl:null,window,log:l})}catch(e){let n=e instanceof Error?e.message:String(e);C.error(`follower prelude failed`,{runtimeMode:u,error:n}),E(t,n);return}let y=d?v.cherryJoinUrl:te(window.location.href,window.localStorage);if(!y){C.error(`follower mount with no join URL - falling back to live boot`);let{mountWcUiLive:n}=await e(async()=>{let{mountWcUiLive:e}=await import(`./wc-live-0ND6N-9h.js`).then(e=>e.r);return{mountWcUiLive:e}},__vite__mapDeps([13,1,14,7,15,16,17,18,19,20,21,3,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,5,69,70,71,6,8,9,10,0,12,72,73,74,75,76,77,78]));return n(t,l,`standalone`)}let b=d?`cherry`:_?`extension`:`standalone`,x=o(t,ge(b));if(d&&v.cherryTransport?.theme&&le(v.cherryTransport.theme),d&&v.cherryTransport?.flags)try{let e=JSON.parse(v.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&c(e)}catch(e){C.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let S=s(`panel-layouts`);if(x.refs.dockTree.tilesMovable=S,d&&v.cherryTransport?.layout)try{let e=JSON.parse(v.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?S?await De(x,e,C):C.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):x.refs.dockTree.setTree(e)}catch(e){C.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let A=d&&v.cherryTransport?.effortLevel;A?localStorage.setItem(`slicc_locked_effort_level`,A):localStorage.removeItem(`slicc_locked_effort_level`);let j=d&&v.cherryTransport?{...O,...v.cherryTransport.features}:O,Oe=x.refs.composerMeta;D(x.refs.fileTree,x.refs.termSurface,x.refs.memoryHost,x.refs.monitor,j),Ee(j),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([71,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{j.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([79,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let M=new Map,N=()=>v.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),P=()=>{_&&Ce(x.refs.thread,{onOpenTab:N})},ke=e=>{let t=e.querySelectorAll(`img[src^="${Te}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(we(e.ownerDocument,{onOpenTab:N})):t.remove()}),!0)},Ae=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),Se(e)&&P()},F=new a({thread:x.refs.thread,agent:w,onQueuedChange:e=>{x.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(_&&ke(n),M.set(e.id,p(n,Ae)))},onMessageDisposed:e=>{let t=M.get(e);t&&(m(t),M.delete(e))},readOnlyToolUi:!0});if(x.setController(F),_)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])x.refs.thread.addEventListener(e,()=>P());let I=`Connecting to leader…`,L=`Ask the leader, or describe a change…`,R=!1,z=!1,B=I,V=(e,t)=>{z=e,B=t,x.refs.inputCard.setAttribute(`placeholder`,t),e&&!R?x.refs.inputCard.removeAttribute(`disabled`):x.refs.inputCard.setAttribute(`disabled`,``)};V(!1,I),_e(x.refs.floatbar,{floatKind:b}),se(e=>{try{window.localStorage.setItem(f,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(f,JSON.stringify(ce()))}catch{}h||x.refs.composer.setAttribute(`ptt`,``);let je=he({inputCard:x.refs.inputCard,freezer:x.refs.freezer,composer:x.refs.composer,noCamera:h,log:C});x.refs.switcher.setAttribute(`gaze-target`,`slicc-input-card`),x.refs.inputCard.addEventListener(`input`,()=>{x.refs.switcher.scrutinize(),x.refs.switcher.wake()}),x.refs.inputCard.addEventListener(`submit`,e=>{let t=fe(e)??``,n=je.take();(t.trim()||n.length)&&(F.sendUserMessage(t,n,{steer:ue(e)}),x.refs.inputCard.clear?.())});let H=new me(x.refs).callbacks(),U=null,W=[],G=()=>{x.refs.switcher.scoops=ae(W,U)},K=()=>{let e=W.find(e=>e.jid===U);R=e?pe(oe(e)):!1,de(x.refs,R),x.getController()?.setReadOnly(R),V(z,B)};x.refs.switcher.connection=`disconnected`;let q,J=null,Me=()=>(J||=ye({runtimeMode:u})?.element??null,J),Y=[],Ne=xe({refs:x.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>k(v.hasLocalCdpSurface,h),window,log:C}),X=ve({composerMeta:Oe,getSync:()=>q.currentSync,getSelectedScoopJid:()=>U,modelPickerEnabled:j.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});q=ne({joinUrl:y,runtime:d?i:`slicc-standalone`,advertisesCdpTargets:k(v.hasLocalCdpSurface,h),onTargetsUpdated:e=>{Y=e,Ne.refresh()},...d||h?{}:{onOAuthPopupRequest:(e,t)=>re(e,t,{getPermissionsSurface:Me,window})},browserAPI:v.browser,onSnapshot:(e,t)=>{U=t,F.loadMessages(e),F.setProcessing(e.some(e=>e.isStreaming))},onUserMessage:(e,t,n,r)=>F.addUserMessage(e,r),onStatus:(e,t)=>{ie(t,U)&&F.setProcessing(e===`processing`)},setChatAgent:e=>{F.setAgent(e),e.onEvent(e=>{e.type===`tool_result`&&e.isError&&x.refs.switcher.glower()})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-C3gSJjkF.js`);return{openSudoApprovalDialog:e}},[]),r=d?v.cherryTransport?.hostOrigin:void 0;return{decision:(await n({kind:t.kind,detail:t.detail,...t.suggestedPattern?{suggestedPattern:t.suggestedPattern}:{}},{allowAlways:!1,signal:t.signal,expiresAt:t.expiresAt,requester:t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{x.refs.switcher.connection=e?`connected`:`disconnected`,V(e,e?L:I),e||X.reset(),d&&v.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>U,onLeaderStalled:e=>{V(!e,e?`The leader is busy — hang on…`:L)},onGaveUp:e=>{C.error(`follower gave up reaching the leader`,{error:e}),x.refs.switcher.connection=`disconnected`,V(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),d&&v.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{C.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),ee(window.localStorage,e)}},addSprinkle:H.addSprinkle,removeSprinkle:H.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):C.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!U||!e.some(e=>e.jid===U))&&(U=t),W=e,G(),K(),x.refs.switcher.setAttribute(`active`,U??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...d?{onCherrySliccEvent:(e,t)=>v.cherryTransport?.emitSliccEventToHost(e,t)}:{}});for(let e of[`save`,`skip`,`erase`])x.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});s(`agentic-memory`)&&x.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),x.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(U=t,G(),K(),x.refs.switcher.setAttribute(`active`,t),q.currentSync?.selectScoop(t))}),d&&v.cherryTransport&&(v.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),v.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=T(t);return o?a.requestTranscriptExport(o,r,i):Promise.reject(new n(`session-not-found`))});let Z=null;if(!d){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-Dz-52eZY.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([80,3,23,1,7,24,22,25,26,27,81,82,83]));Z=t(v.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{x.refs.avatarMenu.items=[{kind:`separator`},..._?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),x.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){v.cherryTransport?.emitSliccEventToHost(`slicc.focus-leader-tab`);return}if(n===`tray-stop`){window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}}));return}if(n===`export-transcript`&&!Q){Q=!0,$();let t=q.currentSync;if(!t){Q=!1,$();return}let n=new AbortController;t.requestTranscriptExport({kind:`active`},n.signal).then(async t=>{let{downloadTranscriptBlob:n}=await e(async()=>{let{downloadTranscriptBlob:e}=await import(`./wc-transcript-export-DKIleW7-.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([84,7,85,22,47,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{C.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{be({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),q.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),C.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{A as mountWcUiFollower};
@@ -0,0 +1,8 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-settings-CO157WVv.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-9c4PkWuh.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-DoVrYsKi.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-BI4UHVqp.js","assets/logger-DDBAeTLF.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-BGeNrvQ4.js","assets/base64-DpPqYZJF.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-GRCyib6X.js","assets/float-topology-DiK91BlA.js","assets/runtime-env-E-i2SW1s.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-DnJR1mMn.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/telemetry-BVzuNdvW.js","assets/runtime-env-CgsZ7LTp.js","assets/tray-runtime-config-D7cmCcHJ.js","assets/messages-BD4p8GuF.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/chat-session-store-pWb1-jNp.js","assets/wc-placeholder-DYloDixz.js","assets/dictation-priming-CNllGgNq.js","assets/wc-attach-CkeEl04a.js","assets/permissions-surface-registry-CilCRwhh.js","assets/session-freezer-QzhGhlzG.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/icons-ZLR7gmJ4.js","assets/record-C0lt6kKE.js","assets/agent-message-to-chat-_cvF5A5g.js","assets/voice-reply-BUnKYH8O.js","assets/speak-CrgQ-hNi.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-Iknr0kLF.js","assets/shared-pJ1rPAkk.js","assets/mime-types-ugOWOUZ9.js","assets/soundscape-TvriK11t.js","assets/soundscape-cues-5_sT5Un6.js","assets/legacy-styles-DcRu2WCJ.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/export-provider-BEHTjSYw.js","assets/quick-llm-C3kXqZlY.js","assets/llm-session-id-bZQs6gBN.js","assets/new-session-CtMabzCy.js","assets/feature-flags-ByMXaIc4.js","assets/db-cKsBsMMN.js","assets/mount-table-store-dY2IfQ5S.js","assets/isomorphic-git-CLcEdT0Q.js","assets/safe-buffer-BwTVRVVo.js","assets/remote-vfs-client-5faRBsEi.js","assets/writable-vfs-client-Dqrpx9iK.js","assets/wc-onboarding-DYhI6TEE.js","assets/welcome-detection-iVN_xL76.js","assets/dip-CRb_i6v6.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-B3LG5UIy.js","assets/usb-operations-Cgk-otz-.js","assets/usb-device-registry-CRsCisej.js","assets/sprinkle-renderer-D64E-W2o.js","assets/sprinkle-bridge-Cdo9vfXE.js","assets/wc-browser-DdPBkgaJ.js","assets/slicc-app-url-BsBryEhn.js","assets/tab-teleport-Dhh60nH7.js","assets/teleport-storage-CwYntbOB.js","assets/logger-BoSvu4mW.js","assets/remote-terminal-view-DSUnPeXp.js","assets/picker-approval-D89YhXsA.js","assets/html-B_Hg2WOy.js","assets/mount-picker-popup-Bc3ca2Vl.js","assets/picker-popup-Bwcnocm6.js","assets/browser-DdY1FBRp.js","assets/serial-picker-NxC1kxYI.js","assets/hid-picker-JPu5knyb.js","assets/usb-picker-KMes4Lyb.js","assets/terminal-session-client-ADzaWGFd.js","assets/secret-env-CjwX7z7b.js","assets/wc-permissions-Oq3nX_59.js","assets/wc-permissions-providers-BwYf17R6.js","assets/timestamp-preference-sKwBl5I8.js","assets/panelize-shell-BXouoIAD.js","assets/virtual-device-paths-9EXC9iPp.js","assets/src-DFt0HWZc.js","assets/speech-C5U8h4In.js","assets/panel-registry-CJdOibpf.js","assets/layout-schema-m9_VAwOw.js","assets/layout-apply-registry-Cw730jao.js","assets/trusted-layer-ghPA1ENf.js","assets/remote-sprinkle-vfs-e81pZJKo.js","assets/wc-sprinkles-EHJeVQcY.js","assets/wc-unit-context-DvrjSIee.js","assets/agent-panels-B92KQapO.js","assets/apply-layout-DWyyaCog.js","assets/wc-tray-D6n1OY5g.js","assets/tray-sync-protocol-BZ5yhJH9.js","assets/wc-tray-scoops-YUFzbJOw.js","assets/remote-cdp-transport-CgOXLjZ8.js","assets/pending-request-table-Dgn6qYdL.js","assets/tray-sync-protocol-DV_QG_Ey.js","assets/wc-scoop-color-ShF3p7L9.js","assets/export-spool-Eul4J1RP.js","assets/src-BWaKqLvQ.js","assets/handoff-link-BM4ctkE8.js","assets/path-utils-DNJG-zQf.js","assets/tray-leader-iVJTGwuf.js","assets/synthetic-cdp-transport-Ds83IPjw.js","assets/sprinkle-instances-B8n7h-oP.js","assets/follower-presentation-DqBw0YiV.js","assets/host-command-zx0pt9Np.js","assets/leader-session-events-Iq9N1w56.js","assets/wc-transcript-export-DKIleW7-.js","assets/wc-nav-KB9V9YIf.js","assets/composer-speech-BEsclnPz.js","assets/whisper-session-C9hx7LSp.js","assets/wc-float-label-CQitMvjM.js","assets/wc-floatbar-online-uDk8A8hD.js","assets/setup-sudo-BdKr5Kuf.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{C as t,L as n,R as r,S as i,d as a}from"./account-store-9c4PkWuh.js";import{t as o}from"./preload-helper-Czpn1I53.js";import{t as s}from"./logger-DDBAeTLF.js";import{t as c}from"./mime-types-ugOWOUZ9.js";import{n as l,t as u}from"./base64-DpPqYZJF.js";import{a as d,n as f,r as p,t as m}from"./src-CAWTvdAa.js";import"./proxied-fetch-BGeNrvQ4.js";import{a as h,i as g,n as _,r as v}from"./setup-standalone-prelude-DsB5MkPB.js";import{i as y,t as b}from"./api-endpoint-GRCyib6X.js";import{n as x}from"./float-topology-DiK91BlA.js";import"./secret-topology-0AWfFTh5.js";import{t as S}from"./secrets-bridge-client-DCQ44RyR.js";import{t as ee}from"./tool-ui-DfXu6quJ.js";import{a as C,c as te,l as ne,n as re,r as w,u as ie}from"./telemetry-BVzuNdvW.js";import{r as T}from"./feature-flags-ByMXaIc4.js";import{c as ae,h as oe,i as se,l as ce}from"./tray-runtime-config-D7cmCcHJ.js";import{i as le,t as ue}from"./tray-follower-status-BAjnN7Ar.js";import{n as de}from"./src-BWaKqLvQ.js";import{t as fe}from"./html-B_Hg2WOy.js";import{t as pe}from"./chat-session-store-pWb1-jNp.js";import{n as me,r as he}from"./tray-leader-iVJTGwuf.js";import{a as ge,c as E,i as D,n as _e,o as ve,s as ye,u as O}from"./record-C0lt6kKE.js";import{n as be}from"./shared-pJ1rPAkk.js";import{a as xe,n as Se,t as Ce}from"./dictation-priming-CNllGgNq.js";import{n as we}from"./export-provider-BEHTjSYw.js";import{a as Te,i as Ee,r as De}from"./dip-CRb_i6v6.js";import{c as Oe,d as ke,f as Ae,l as je,p as Me,s as Ne,u as Pe}from"./session-freezer-QzhGhlzG.js";import{_ as Fe,a as Ie,b as Le,c as Re,d as ze,f as Be,g as k,h as Ve,i as He,l as Ue,m as We,n as Ge,o as Ke,p as qe,r as Je,t as Ye,u as Xe,v as Ze,y as Qe}from"./wc-shell-DejC0Myk.js";import{a as $e,c as et,i as tt,o as nt,s as rt}from"./follower-presentation-DqBw0YiV.js";import{i as it,s as at}from"./src-DFt0HWZc.js";import{a as ot,c as st,d as A,f as ct,i as lt,l as ut,n as dt,o as j,r as ft,s as M,t as N,u as pt}from"./wc-unit-context-DvrjSIee.js";import{t as mt}from"./wc-scoop-color-ShF3p7L9.js";import{l as ht,t as gt}from"./host-command-zx0pt9Np.js";import{a as _t,i as vt,n as yt,o as bt,t as xt}from"./leader-session-events-Iq9N1w56.js";var St=`agent-sessions`,Ct=1,P=`sessions`;function wt(){return new Promise((e,t)=>{let n=indexedDB.open(St,Ct);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(P)||e.createObjectStore(P,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Tt=class{dbPromise=null;getDB(){return this.dbPromise||=wt().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(P,`readwrite`).objectStore(P).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(P,`readonly`).objectStore(P).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(P,`readwrite`).objectStore(P).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(P,`readonly`).objectStore(P).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(P,`readonly`).objectStore(P).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(P,`readwrite`).objectStore(P).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()}}},Et=`__slicc_binary__`,Dt=`b64`;function Ot(e){if(!e||typeof e!=`object`)return!1;let t=e;return t[Et]===Dt&&typeof t.data==`string`}function kt(e){if(e instanceof Uint8Array)return{[Et]:Dt,data:l(e)};if(Array.isArray(e))return e.map(kt);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=kt(r);return t}return e}function At(e){if(Ot(e))return u(e.data);if(Array.isArray(e))return e.map(At);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=At(r);return t}return e}var jt=s(`panel-transport`);function Mt(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Nt(){return{onMessage:e=>{let t=(t,n,r)=>(Mt(t)&&e(At(t)),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:(e,t)=>{let n=kt(e);chrome.runtime.sendMessage({source:`panel`,payload:n}).catch(e=>{jt.error(`failed to send to offscreen`,{error:e instanceof Error?e.message:String(e)})})}}}var Pt=`unknown-parent`,F=s(`offscreen-client`),Ft=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){F.error(`onScoopSelected handler threw`,{error:e instanceof Error?e.message:String(e)})}}locked=!1;constructor(e,t){this.callbacks=e,this.transport=t??Nt(),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(!E(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&&E(t)&&O(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-${I()}`,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-${I()}`,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-${I()}`,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&&F.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}F.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?(F.warn(`Offscreen restarted — re-requesting state`),this.ready=!1):F.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);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;It(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){F.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}-${I()}`,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}-${I()}`,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}-${I()}`,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}-${I()}`;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}-${I()}`;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&&ve(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){F.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&&It(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=>E(e))?.jid??null}coneJidFromWire(e){return e.find(e=>e.parentId===void 0?e.isCone:e.parentId===null)?.jid??null}msgScoopToRegistered(e,t){return ge({jid:e.jid,name:e.name,folder:e.folder,parentJid:e.parentId===void 0?e.isCone?null:t??Pt: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){F.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 I(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function It(e,t){he({state:e.state,error:e.error,reconnectAttempts:e.reconnectAttempts,session:e.session?{...e.session}:null}),le({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 L(e){return!e.includes(`\0`)}function Lt(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(!L(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(!L(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),!L(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),!L(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(L(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 Rt(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 zt(e){let t=Rt(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`panel`,payload:e},n)}}}function Bt(e,t){let n=Rt(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 Vt(){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 Ht(e){let{worker:t,realCdpTransport:n}=e,r=e.readyTimeoutMs??3e4,i=e.localStorageSeed??{},a=new MessageChannel,o=new MessageChannel,s=zt(a.port1),c=e.makeClient(s);e.onWorkerScriptError&&e.worker.addEventListener?.(`error`,()=>e.onWorkerScriptError());let l=Bt(o.port1,n),u=null,d=new Promise((e,t)=>{let n=null,i=null,o=()=>{n!==null&&(clearTimeout(n),n=null)},s=()=>{o(),n=setTimeout(()=>{u?.(),t(Error(`Kernel worker did not signal ready within ${r}ms`))},r)};u=()=>{i!==null&&(a.port1.removeEventListener(`message`,i),i=null),o()},i=n=>{let r=n.data;if(r?.type===`kernel-worker-boot-progress`){s();return}if(r?.type===`kernel-worker-ready`){u?.(),e();return}if(r?.type===`kernel-worker-boot-error`){u?.();let e=r.message??`unknown error`,n=r.code,i=Error(`Kernel worker boot failed: ${e}`);n&&(i.code=n),t(i)}},a.port1.addEventListener(`message`,i),s()}),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.93.0-mt7e1gto`,flagFloat:e.flagFloat??null};t.postMessage(f,[a.port2,o.port2]);let p=!1;return{client:c,ready:d,dispose(){if(!p){p=!0,u?.(),l();try{t.postMessage({type:`kernel-worker-shutdown`})}catch{}t.terminate(),a.port1.close(),o.port1.close()}}}}function Ut(e){return Ht({worker:e.workerUrl?new Worker(e.workerUrl,{type:`module`}):new Worker(new URL(`/assets/kernel-worker-C36kjoyJ.js`,``+import.meta.url),{type:`module`}),realCdpTransport:e.realCdpTransport,makeClient:e.makeClient,readyTimeoutMs:e.readyTimeoutMs,localStorageSeed:e.localStorageSeed??Vt(),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})}var Wt=1048576,Gt=`r`;function Kt(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function R(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++)R(e[r],`${t}/${r}`,n);return}if(typeof e==`object`&&e)for(let[r,i]of Object.entries(e))R(i,`${t}/${Kt(r)}`,n)}function qt(e,t,n){let r=!1,i=[];for(let a=0;a<e.length;a++){let o=z(e[a],`${t}/${a}`,n);o!==e[a]&&(r=!0),i.push(o)}return r?i:e}function Jt(e,t,n){let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=z(o,`${t}/${Kt(a)}`,n);e!==o&&(r=!0),i[a]=e}return r?i:e}function z(e,t,n){return typeof e==`string`?n.get(t)??e:Array.isArray(e)?qt(e,t,n):typeof e==`object`&&e?Jt(e,t,n):e}function Yt(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 Xt(e,t,n){let r=[],i=0;for(;i<e.length;){if(n?.aborted)throw new p(`redaction-unavailable`);let a=0,o=i;for(;o<e.length;){let t=e[o].length;if(o>i&&a+t>Wt)break;a+=t,o++}let s=e.slice(i,o),c;try{c=await t.redact(s,n)}catch{throw new p(`redaction-unavailable`)}if(c.length!==s.length)throw new p(`redaction-unavailable`);r.push(...c),i=o}return r}function Zt(e,t,n,r){let i=[],a=Yt(e);for(let{category:e,id:t}of a.values())i.push({id:t,category:e,detector:`pre-obfuscated`,target:n});let o=Yt(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}=m(t,Gt,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 Qt(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 $t(e,t,n,r){if(r?.aborted)throw new p(`redaction-unavailable`);let{privacy:i,...a}=e,o=[];R(a,``,o);let s=[...t.entries()],c=await Xt([...o.map(e=>e.value),...s.map(([,e])=>e)],n,r),l=[],u={},d=1,f=new Map,m=[];for(let e=0;e<o.length;e++){let t=o[e],n=Zt(t.value,c[e],{kind:`json`,pointer:t.pointer},d);d=n.nextId,n.finalText!==t.value&&f.set(t.pointer,n.finalText),m.push(n)}Qt(m,l,u);let h=new Map,g=o.length,_=[];for(let e=0;e<s.length;e++){let[t,n]=s[e],r=Zt(n,c[g+e],{kind:`attachment`,attachmentId:t},d);d=r.nextId,h.set(t,r.finalText),_.push(r)}Qt(_,l,u);let v=z(e,``,f);return{document:{...v,privacy:{...v.privacy,redactionCounts:u,redactions:l}},textAttachments:h}}function en(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 tn(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 nn={"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 rn(e,t){return nn[e]??(t===`text-redacted`?`.txt`:`.bin`)}function an(e,t,n){return`attachments/att-${String(e+1).padStart(4,`0`)}${rn(t,n)}`}function B(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 on(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 sn(e,t,n,r,i){let a=en(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(B(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=B(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 cn(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:B(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(sn(c.a,s.attachmentId,s.conversationId,s.messageId,r))}return{pendingPromises:i,mismatchedConvIds:a,processedUiPositions:o}}function ln(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 un(e,t,n,r,i,a,o){let s=ln(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(sn(i,l,n,e.id,o)),c.push({type:`attachment-ref`,attachmentId:l}))}return c}function dn(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=un(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 fn(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,an(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 pn(e,t,n,r,i){let{rawAttachments:a,textMap:o}=fn(e,n),s,c;try{let e=await $t({...t,attachments:a},o,r,i);s=e.document,c=e.textAttachments}catch(e){throw e instanceof p?e:new p(`attachment-unreadable`)}let l=new Map;for(let t of e){if(l.has(t.attachmentId))throw new p(`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 p(`schema-invalid`);let n=t.handling===`text-redacted`?new TextEncoder().encode(c.get(t.attachmentId)??t.rawText??``):t.rawBytes,r=await tn(n);return u.set(e.path,n),{...e,byteLength:n.length,sha256:r}}));return{redactedDocument:{...s,attachments:d},bundleFiles:u}}async function V(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}=cn(on(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}=dn(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 pn(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}}function H(e,t){return`${e}-msg-${t.toString().padStart(6,`0`)}`}function U(e,t){return{type:`attachment-ref`,attachmentId:`${e}-img-${t}`}}function mn(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(U(t,r++));return n}function hn(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=U(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 gn(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=U(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 _n(e,t,n){let r=H(t,n),i=mn(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 vn(e,t,n){let r=H(t,n),{blocks:i,excluded:a,images:o}=hn(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 yn(e,t,n){let r=H(t,n),{blocks:i,images:a}=gn(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 bn(e,t,n){return e.role===`user`?_n(e,t,n):e.role===`assistant`?vn(e,t,n):e.role===`toolResult`?yn(e,t,n):{message:null,excludedReasoningBlocks:0,images:new Map}}function xn(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 Sn(e){let t=0,n=new Map;return{conversations:e.map(e=>{let r=e.messages.flatMap((r,i)=>{let a=bn(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:xn(e),excludedReasoningBlocks:t,canonicalImages:n}}var Cn=(()=>{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 wn(e){let t=-1>>>0;for(let n=0;n<e.length;n++)t=t>>>8^Cn[(t^e[n])&255];return~t>>>0}var Tn=new TextEncoder;function W(e,t,n){e[t]=n&255,e[t+1]=n>>>8&255}function G(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 En(e,t,n){let r=new Uint8Array(30+e.length);return r[0]=80,r[1]=75,r[2]=3,r[3]=4,W(r,4,20),W(r,6,2048),W(r,8,0),W(r,10,0),W(r,12,0),G(r,14,n),G(r,18,t),G(r,22,t),W(r,26,e.length),W(r,28,0),r.set(e,30),r}function Dn(e,t,n,r){let i=new Uint8Array(46+e.length);return i[0]=80,i[1]=75,i[2]=1,i[3]=2,W(i,4,20),W(i,6,20),W(i,8,2048),W(i,10,0),W(i,12,0),W(i,14,0),G(i,16,n),G(i,20,t),G(i,24,t),W(i,28,e.length),W(i,30,0),W(i,32,0),W(i,34,0),W(i,36,0),G(i,38,0),G(i,42,r),i.set(e,46),i}function On(e,t,n){let r=new Uint8Array(22);return r[0]=80,r[1]=75,r[2]=5,r[3]=6,W(r,4,0),W(r,6,0),W(r,8,e),W(r,10,e),G(r,12,t),G(r,16,n),W(r,20,0),r}function kn(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 An(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*jn(e,t,n,r,i){if(n?.aborted)throw i(new p(`transfer-aborted`)),new p(`transfer-aborted`);let a=()=>i(new p(`transfer-aborted`));n?.addEventListener(`abort`,a,{once:!0});let o=de.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=Tn.encode(`transcript.json`),f=wn(i),m=En(a,i.length,f);if(l.push({nameBytes:a,size:i.length,crc:f,localOffset:c}),n?.aborted||(yield*d(m),n?.aborted))throw new p(`transfer-aborted`);yield*d(i);for(let[e,r]of t){if(n?.aborted)throw new p(`transfer-aborted`);let t=Tn.encode(e),i=wn(r),a=En(t,r.length,i);if(l.push({nameBytes:t,size:r.length,crc:i,localOffset:c}),yield*d(a),n?.aborted)throw new p(`transfer-aborted`);yield*d(r)}let h=c;for(let e of l){if(n?.aborted)throw new p(`transfer-aborted`);yield*d(Dn(e.nameBytes,e.size,e.crc,e.localOffset))}if(n?.aborted)throw new p(`transfer-aborted`);yield*d(On(l.length,c-h,h)),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 p(`transfer-aborted`)))}}var Mn=4294967295,Nn=65535;function Pn(e,t,n){for(let e of t.keys())if(!kn(e))throw new p(`schema-invalid`);if(t.size+1>Nn)throw new p(`schema-invalid`);for(let e of t.values())if(e.byteLength>Mn)throw new p(`schema-invalid`);let r,i,a=new Promise((e,t)=>{r=e,i=t});return{filename:An(e),chunks:jn(e,t,n,r,i),completion:a}}function Fn(e,t,n,r,i,a={}){return{schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:i},format:f},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 In(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 Ln(e){if(!d(e).ok)throw new p(`schema-invalid`)}function Rn(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 zn(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 Bn(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 Vn=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),Ln(i.document),r?.({phase:`packaging`}),Pn(i.document,i.bundleFiles,n)}async captureFrozen(e,t){let n=await ct(this.deps.collection,t,{...e.rootJid?{rootJid:e.rootJid}:{}});if(e.rootJid&&n.sources.length===0)return;let r=Sn(n.sources),{document:i,bundleFiles:a}=await V({document:Fn(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});Ln(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 ct(this.deps.collection,e),r=Sn(n.sources),{id:i,title:a}=this.deps.getActiveSessionInfo(),o=Fn(i,a,`active`,r,this.deps.version);return t?.({phase:`redacting`}),V({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 $t(e.document,n,this.deps.knownSecrets,t);r=a.document,i=a.textAttachments}catch{throw new p(`redaction-unavailable`)}let a=Rn(r.attachments,i,e.attachments),o=await zn(r.attachments,a);return{document:{...r,attachments:o},bundleFiles:a}}async buildLegacyPartial(e,t,n){let r=(await ke(this.deps.vfs)).find(t=>t.sessionId===e||!t.sessionId&&t.filename===e);if(!r)throw new p(`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 p(`session-not-found`)}let{title:a,messages:o}=Pe(i),s=`legacy-cone`,c=In(o,s),l=Bn(i),u={schemaVersion:1,export:{id:crypto.randomUUID(),generatedAt:new Date().toISOString(),producer:{application:`slicc`,version:this.deps.version},format:f},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`}),V({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 p(`attachment-unreadable`);return t}},Hn=`/sessions/data`,Un=`document.json`;async function Wn(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 Gn(e){if(e.length===0||/[/\\\x00]/.test(e)||e===`..`||e===`.`||e.includes(`..`)||!/^[a-zA-Z0-9._-]+$/.test(e))throw new p(`session-not-found`)}function Kn(e){return`${Hn}/${e}`}function qn(e){return`${Hn}/.tmp-${e}`}async function K(e,t){try{await e.mkdir(t,{recursive:!0})}catch{}}async function q(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 q(e,n);try{await e.rm(n)}catch{}}try{await e.rm(t)}catch{}}async function Jn(e,t,n){await K(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 Jn(e,r,a);else{let t=await e.readFile(r,{encoding:`binary`});await e.writeFile(a,t)}}}async function Yn(e,t,n){Gn(t);let r=qn(t),i=Kn(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 p(`schema-invalid`);await q(e,i),await K(e,r);try{let t=[...n.document.attachments];for(let[e,r]of n.attachments){let n=await Wn(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}/${Un}`,s),n.attachments.size>0)for(let[t,i]of n.attachments){let n=`${r}/${t}`,a=t.lastIndexOf(`/`);a!==-1&&await K(e,`${r}/${t.slice(0,a)}`),await e.writeFile(n,i)}await e.flush(),await Jn(e,r,i),await e.flush()}catch(t){throw await q(e,r),t}await q(e,r)}async function Xn(e,t){Gn(t);let n=Kn(t),r=`${n}/${Un}`,i;try{let t=await e.readFile(r,{encoding:`utf-8`});i=typeof t==`string`?t:new TextDecoder().decode(t)}catch{throw new p(`session-not-found`)}let a;try{a=JSON.parse(i)}catch{throw new p(`schema-invalid`)}if(!d(a).ok)throw new p(`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 p(`transfer-corrupt`)}if(await Wn(i)!==t.sha256)throw new p(`transfer-corrupt`);o.set(t.path,i)}return{document:a,attachments:o}}function J(){throw new p(`redaction-unavailable`)}function Y(e,t){return(typeof e!=`object`||!e||!Array.isArray(e.texts)||e.texts.length!==t)&&J(),e.texts}function Zn(){return{async redact(e){let t;try{t=await fetch(y(`/api/secrets/redact-export`),{method:`POST`,headers:b({"content-type":`application/json`}),body:JSON.stringify({texts:e})})}catch{J()}t.ok||J();let n;try{n=await t.json()}catch{J()}return Y(n,e.length)}}}function Qn(){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{J()}return typeof t==`object`&&t&&`error`in t&&J(),Y(t,e.length)}}}function $n(){return{async redact(e){let t;try{t=await S(`secrets.redact-export`,{texts:e})}catch{J()}return t??J(),typeof t==`object`&&`error`in t&&J(),Y(t,e.length)}}}function er(){return{async redact(e){J()}}}function tr(){let e=x();return e===`connect`?er():e===`extension-direct`?Qn():e===`extension-delegate`?$n():Zn()}function nr(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 rr=`padding:0.5rem 1.25rem;border-radius:0.375rem;cursor:pointer;font:inherit;font-size:0.875rem;`,ir=`${rr}border:none;background:var(--s2-accent-color,#0265dc);color:#fff;`,ar=`${rr}border:none;background:#d23;color:#fff;`,or=`${rr}background:transparent;border:1px solid var(--s2-border-color,#e0e0e0);color:inherit;`;function sr(e,t,n){return{...nr({parentId:null,name:e,folder:`cone-pending-${t.length+1}`}),assistantLabel:e,...n?{model:n}:{}}}function cr(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 lr(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 ur(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=()=>j(n.getScoops(),e.getSelected()),u=()=>{if(!s)return;let e=s;s=null,e.hide?.(),e.remove()},d=e=>{u();let t=cr(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=sr(e.name,n.getScoops(),t?D(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=lr(i,f);d({heading:`New cone`,body:e,actions:[{text:`Create`,style:ir,data:`create`,onClick:()=>f(e.readDraft())},{text:`Cancel`,style:or,data:`cancel`,onClick:u}]}),queueMicrotask(()=>e.querySelector(`input`)?.focus())},m=t=>{u();let i=O(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=O(n.getScoops()).find(e=>e.jid!==a.jid);t&&e.selectScoop(t)}o=!1,g()})()},h=e=>{let t=M(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:ar,data:`drop`,onClick:()=>m(e.jid)},{text:`Cancel`,style:or,data:`cancel`,onClick:u}]})},g=()=>{let t=O(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||O(n.getScoops()).length<=1||o||h(e)}),g(),{refresh:g,dialog:()=>s}}function dr(e){return e===`error`?`dead`:e===`initializing`?`none`:`open`}function fr(e){switch(e){case`processing`:return`working`;case`error`:return`broken`;case`initializing`:return`initializing`;case`ready`:case void 0:return`idle`}return`idle`}function pr(e,t,n,r,i,a){return ft(e,a).map(e=>{let a=n?.get(e.jid),o=t?.get(e.jid);return{key:e.jid,type:E(e)?`cone`:`scoop`,color:mt({isRoot:E(e),name:e.name}),label:M(e),eyes:dr(o),state:fr(o),fill:typeof a==`number`?Math.round(a*100):void 0,phase:o===`processing`?r?.get(e.jid):void 0,awaiting:i===e.jid||void 0}})}function mr(e){let t=()=>{let t=e.getClient();t&&(e.refs.switcher.scoops=pr(t.getScoops(),e.statuses,e.fills,e.phases,e.awaitingInput,e.getSelected()?.jid)),e.refreshConeActions?.()};e.refreshScoops=t;let n=()=>(e.refs.thread.getAttribute(`context`)??``).startsWith(`freezer:`),r=()=>{if(e.getSelected()||n())return;let t=e.getClient()?.getScoops()??[],r=e.pendingUrlContext;if(r?.startsWith(`freezer:`))return;if(r?.startsWith(`scoop:`)||r?.startsWith(`cone:`)){let n=ut(t,r);if(n){e.pendingUrlContext=null,e.selectScoop(n);return}}let i=N(t);i&&(e.pendingUrlContext=null,e.selectScoop(i))};return{onStatusChange:(n,r)=>{let i=e.statuses.get(n),a=r;e.statuses.set(n,a),a!==`ready`&&e.awaitingInput===n&&(e.awaitingInput=null),(dr(i)!==dr(a)||fr(i)!==fr(a))&&(t(),e.notifyScoopStateChanged?.()),e.getSelected()?.jid===n&&e.getController()?.setProcessing(r===`processing`)},onScoopCreated:r=>{t(),!e.getSelected()&&!n()&&!e.pendingUrlContext&&e.selectScoop(r)},onScoopListUpdate:n=>{let i=new Set(n.map(e=>e.jid));for(let t of e.lickBackpressure.keys())i.has(t)||e.lickBackpressure.delete(t);t(),r()},onScoopActivity:t=>{e.refs.switcher.setAttribute(`attention`,t)},onScoopPhaseChange:(n,r)=>{e.phases.set(n,r),t(),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`&&Le(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=A(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)=>{e.getSelected()?.jid===t&&e.getController()?.loadMessages(n)},onReady:()=>{t(),r(),e.notifyReady?.()}}}async function hr(e,t,n,r,i=ht){let a=await e.setScoopThinkingLevel(t,n,r);return a&&i(),a}function gr(e,t){return lt(e)===null||new URL(t.location.href).searchParams.get(`cherry`)===`1`||ae(t.localStorage)}async function _r(e,t,n=[]){let r=pt(t),i=dt(r);e.thread.setAttribute(`context`,st(t));let a=E(t),s=mt({isRoot:a,name:t.name});e.thread.setAttribute(`accent`,s),e.switcher.setAttribute(`active`,t.jid),Je(e,a?{kind:`cone`}:{kind:`scoop`,accent:s}),Ge(e,i);let c=localStorage.getItem(`slicc_locked_effort_level`),l=ye(t);e.composerMeta.setAttribute(`thinking`,_t(c??l.level,l.effortOverride));try{let{resolveCurrentModel:r,resolveModelById:i}=await o(async()=>{let{resolveCurrentModel:e,resolveModelById:t}=await import(`./provider-settings-CO157WVv.js`).then(e=>e.t);return{resolveCurrentModel:e,resolveModelById:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])),a=D(j(n,t)??t),s=a?i(a.id,a.provider):r();e.composerMeta.setAttribute(`model`,s.name??s.id),e.composerMeta.toggleAttribute(`no-thinking`,s.reasoning!==!0||!!c)}catch{}}async function vr(e){if(gr(e.pendingUrlContext,e.win))return;let t=lt(e.pendingUrlContext);if(t===null)return;let{SessionStore:n}=await o(async()=>{let{SessionStore:e}=await import(`./chat-session-store-pWb1-jNp.js`).then(e=>e.n);return{SessionStore:e}},__vite__mapDeps([35,1])),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 yr(e){let{boot:t,client:n,agentHandle:r,openReader:i,log:a}=e,{refs:s}=t;o(async()=>{let{createPlaceholderRefresher:e}=await import(`./wc-placeholder-DYloDixz.js`);return{createPlaceholderRefresher:e}},__vite__mapDeps([36,3,37,1])).then(({createPlaceholderRefresher:n})=>{e.setRefreshPlaceholder(n({inputCard:s.inputCard,getMessages:()=>t.getController()?.getMessages()??[],defaultPlaceholder:s.inputCard.getAttribute(`placeholder`)??`Ask sliccy, or describe a change…`}))}),vr({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 c=null;return o(async()=>{let{wireWcAttach:e}=await import(`./wc-attach-CkeEl04a.js`);return{wireWcAttach:e}},__vite__mapDeps([38,3,14,12,39])).then(({wireWcAttach:t})=>{c=t({inputCard:s.inputCard,freezer:s.freezer,composer:s.composer,openReader:i,openWriter:e.openWriter,listConversations:async()=>{let{readSessionsIndex:e}=await o(async()=>{let{readSessionsIndex:e}=await import(`./session-freezer-QzhGhlzG.js`).then(e=>e.o);return{readSessionsIndex:e}},__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,41,42,43,44,37,45]));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)),s.switcher.setAttribute(`gaze-target`,`slicc-input-card`),s.inputCard.addEventListener(`input`,()=>{s.switcher.scrutinize(),s.switcher.wake()}),s.inputCard.addEventListener(`submit`,e=>{let n=Ke(e);if(!n)return;t.wiring.awaitingInput=null,t.wiring.refreshScoops?.(),t.wiring.notifyScoopStateChanged?.();let r=e.detail?.source===`dictation`;r&&(o(async()=>{let{markVoiceSubmission:e}=await import(`./voice-reply-BUnKYH8O.js`);return{markVoiceSubmission:e}},__vite__mapDeps([46,11,37,1,47,3,15,29,19,12,48,49,13,14,16,17,50,51])).then(({markVoiceSubmission:e})=>e()).catch(()=>void 0),o(async()=>{let{beginVoiceTurn:e,playCue:t}=await import(`./soundscape-TvriK11t.js`);return{beginVoiceTurn:e,playCue:t}},__vite__mapDeps([52,11,53])).then(({beginVoiceTurn:e,playCue:t})=>{e(),t(`sent`)}).catch(()=>void 0)),t.getController()?.sendUserMessage(n,c?.take(),{dictation:r,steer:Ie(e)}),s.inputCard.clear?.();let i=t.getSelected()?.jid;i&&(s.switcher.setAttribute(`attention`,i),t.wiring.lastActivity.set(i,n.slice(0,600)))}),s.inputCard.addEventListener(`stop`,()=>{t.getController()?.processing&&r.stop()}),o(async()=>{let{wireWcHistoryNav:e}=await import(`./wc-history-nav-C5w8ianG.js`);return{wireWcHistoryNav:e}},[]).then(({wireWcHistoryNav:e})=>e({thread:s.thread,inputCard:s.inputCard})).catch(e=>a.error(`WC history nav wiring failed`,e)),s.composerMeta.addEventListener(`thinking-change`,e=>{if(localStorage.getItem(`slicc_locked_effort_level`))return;let r=e.detail?.thinking,i=bt(r),o=vt(r),s=t.getSelected();s&&i&&hr(n,s.jid,i,o).catch(e=>a.warn(`local thinking update failed`,e))}),{getAttachStage:()=>c}}var br=`<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 xr(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 Sr(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(br));let a=()=>{r.style.color=`var(--green)`,setTimeout(()=>{r.style.color=`var(--txt-3)`},1500)};return r.addEventListener(`short-click`,()=>{(async()=>{let n=xr(e.getMessages());await t(n??Ne([...e.getMessages()])),a()})()}),r.addEventListener(`long-press`,()=>{(async()=>{let n=Ne([...e.getMessages()]);n&&(await t(n),a())})()}),n.append(r),n}function X(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Cr(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 wr(e){return`
3
+ <div class="sprinkle-action-card">
4
+ <div class="sprinkle-action-card__header">${fe(Cr(e))} <span class="sprinkle-badge sprinkle-badge--informative">pending</span></div>
5
+ <div class="sprinkle-action-card__body">Waiting for approval on the leader&hellip;</div>
6
+ </div>
7
+ `}function Tr(e){let t={id:e.id,text:e.content};return e.attachments?.length&&(t.attachments=e.attachments.length),t}var Er=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:X(),role:`user`,content:e,timestamp:Date.now()})}getQueuedMessages(){return this.#b.map(Tr)}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}#L(e){if(!this.#I)return;let t=new Set(e.map(e=>e.id)),n=this.#I.filter(e=>!t.has(e.id));this.#I=null,n.length!==0&&(this.#b=n,this.#z())}#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(Tr))}#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{C(n,t)}catch{}}addAssistantMessage(e){this.#he({id:X(),role:`assistant`,content:e,timestamp:Date.now()})}loadMessages(e){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 t=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=[]}t&&this.#z(),this.#L(e),this.#y=ze(e);let n=[...this.#y].reverse().find(e=>e.isStreaming);this.#C=n?.id??null,n&&(this.#w=n.id),this.#T=``,this.#E=!1,this.#S.clear();let r=[],i=``;for(let e of this.#y){let t=new Date(e.timestamp).toDateString();t!==i&&(r.push(Be(e.timestamp)),i=t);let n=this.#me(e);this.#S.set(e.id,n),r.push(...n)}let a=this.#e;typeof a.replaceContent==`function`?a.replaceContent(...r):a.replaceChildren(...r),this.#ye();for(let e of this.#y)e.isStreaming||this.#o?.(e,this.#S.get(e.id)??[]);this.#K(),this.#xe(),this.#V()}#V(){if(this.#e.getAttribute(`context`)!==`cone`||this.#y.length===0||!v()||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:X(),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?xe(i):i;this.#g?.(e,a.id,a.attachments)}catch(e){console.error(`onLocalUserMessage hook threw`,e)}}#H(e){return Ce(e,Se())}#U(){if(this.#l)try{let e=this.#l();if(!e)return;re(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??=Sr({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):X();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:X(),role:`assistant`,content:e,timestamp:Date.now(),error:!0}),this.#ie(e)}#ie(e){try{if(ie(e)||ne(e)||te(e))return;w(`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=Te(r,wr(n),()=>{},!1);this.#M.set(t,{instance:e,container:r});return}let i=Te(r,n,(e,n)=>{this.#p?.(t,e,n)},!1);this.#M.set(t,{instance:i,container:r}),this.#p?.(t,ee,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&&Xe(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}});Ue(t,Re(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,X(),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,X(),i.attachments)}#pe(e){return this.#y.find(t=>t.id===e)}#me(e){try{return qe(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(){Ve(this.#_e(),this.#j)}#ye(){We(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 Dr(e,t,i,a,s){let c=new Map;o(async()=>{let{loadDipStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e}},__vite__mapDeps([54,3])).then(({loadDipStyles:e})=>e()).catch(()=>void 0),o(async()=>{let{watchSprinkleThemeBroadcast:e}=await import(`./theme-CXRqxpw6.js`).then(e=>e.i);return{watchSprinkleThemeBroadcast:e}},__vite__mapDeps([55,1,56,11])).then(({watchSprinkleThemeBroadcast:e})=>e()).catch(()=>void 0),o(async()=>{let{applyThemeOverrides:e}=await import(`./theme-engine-By4GU_Wc.js`).then(e=>e.p);return{applyThemeOverrides:e}},__vite__mapDeps([56,1,11])).then(({applyThemeOverrides:e})=>e()).catch(()=>void 0);let l=t.createAgentHandle();l.onEvent(t=>{(t.type===`tool_use_start`||t.type===`tool_result`)&&(t.type===`tool_result`&&t.isError&&e.switcher.glower(),o(async()=>{let{playCue:e}=await import(`./soundscape-TvriK11t.js`);return{playCue:e}},__vite__mapDeps([52,11,53])).then(({playCue:e})=>e(t.type===`tool_use_start`?`tool-start`:`tool-finish`)).catch(()=>void 0))});let u=new Er({thread:e.thread,agent:l,resolveTelemetryContext:()=>{let e=i();if(!e)return null;let t=A(e);try{let i=D(e);return{scoopName:t,model:(i?r(i.id,i.provider):n()).id}}catch{return{scoopName:t,model:``}}},onTurnComplete:e=>{o(async()=>{let{consumeVoiceSubmission:e,speakReplyMarkdown:t}=await import(`./voice-reply-BUnKYH8O.js`);return{consumeVoiceSubmission:e,speakReplyMarkdown:t}},__vite__mapDeps([46,11,37,1,47,3,15,29,19,12,48,49,13,14,16,17,50,51])).then(async({consumeVoiceSubmission:t,speakReplyMarkdown:n})=>{if(!t())return;let{endVoiceTurn:r,setTtsActive:i}=await o(async()=>{let{endVoiceTurn:e,setTtsActive:t}=await import(`./soundscape-TvriK11t.js`);return{endVoiceTurn:e,setTtsActive:t}},__vite__mapDeps([52,11,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=c.get(e);t&&(De(t),c.delete(e))},onMessageRendered:(e,n)=>{let r=n[0];r&&c.set(e.id,Ee(r,(e,n)=>{let r={type:`sprinkle`,sprinkleName:`inline`,timestamp:new Date().toISOString(),body:{action:e,data:n}};s?.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:l}}function Or(e){if(!(!e.cone||e.cone===`cone`))return e.coneLabel||e.cone.replace(/^cone-/,``)}function kr(e){return`${new Date(e.frozenAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`})} · ${e.messageCount} turns`}function Ar(e){let t=document.createElement(`slicc-freezer-card`);return t.setAttribute(`title`,e.title),t.setAttribute(`meta`,kr(e)),t.setAttribute(`slug`,e.filename),e.icon&&t.setAttribute(`icon`,e.icon),t}async function jr(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 Mr(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(Oe,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 Mr(e){let t=await Nr(e);return t.kind===`ok`?t.entries:t.kind===`missing`?[]:null}async function Nr(e){let t;try{let n=await e.readFile(Oe,{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 Pr(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=Pe(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 Fr(e,t){for(let t of Array.from(e.querySelectorAll(`slicc-freezer-card`)))t.remove();e.append(...t.map(Ar))}async function Ir(e,t){let n=await e.readFile(je(t),{encoding:`utf-8`}),r=typeof n==`string`?n:new TextDecoder().decode(n),i=Pe(r);return{title:i.title||t.title,messages:i.messages}}async function Lr(e,t){let{getTranscriptExportService:n}=await o(async()=>{let{getTranscriptExportService:e}=await import(`./export-provider-BEHTjSYw.js`).then(e=>e.t);return{getTranscriptExportService:e}},__vite__mapDeps([57,1,12]));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 Rr(e){let{root:t}=e,n=t?{folder:t.folder,label:M(t),jid:t.jid}:void 0,r=e=>Lr(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 zr(e,t){let n=t?Or(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 Br(e){let{refs:t,openVfs:n,client:r,getController:i,getSelected:a,clearSelection:s,log:c}=e,l=[],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 Mr(n);if(i===null){if((await Nr(n)).kind!==`corrupt`||(c.warn(`WC freezer index corrupt — rebuilding from archives`),i=await Pr(n),i.length===0))return;await r.writeFile(Oe,JSON.stringify(i,null,2))}e===f&&(l=i,Fr(t.freezer,i),!p&&i.some(e=>!e.icon&&!e.pendingEnrichment)&&(p=!0,o(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-C3kXqZlY.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,59,43])).then(({pickLucideIcon:e})=>jr({reader:n,writer:r,freezer:t.freezer,entries:i,pickIcon:t=>e({subject:t})})).catch(e=>c.warn(`WC freezer icon enrichment failed`,e)).finally(()=>{p=!1})))}).catch(e=>c.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=j(r.getScoops(),a());try{let{writer:a}=await n(),{resetNewSessionTmp:s,runNewSessionFreeze:c,runNewSessionFreezeQuick:l}=await o(async()=>{let{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}=await import(`./new-session-CtMabzCy.js`);return{resetNewSessionTmp:e,runNewSessionFreeze:t,runNewSessionFreezeQuick:n}},__vite__mapDeps([60,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,61,0,28,29,30,31,32,33,34,59,35,40,41,42,43,44,37,45]));e!==`erase`&&await Rr({action:e,writer:a,root:t,client:r,freezerNew:g,refreshFreezer:m,runNewSessionFreeze:c,runNewSessionFreezeQuick:l}),await s(a),await r.clearAllMessages(t?.jid),i()?.loadMessages([]),window.dispatchEvent(new CustomEvent(xt)),o(async()=>{let{resetDictationPriming:e}=await import(`./dictation-priming-CNllGgNq.js`).then(e=>e.r);return{resetDictationPriming:e}},__vite__mapDeps([37,1])).then(({resetDictationPriming:e})=>e()).catch(()=>void 0),m();let u=r.getScoops().find(e=>e.jid===t?.jid)??N(r.getScoops());u&&d(u)}catch(e){c.error(`WC new session failed`,e)}finally{h=!1;let e=g();e?.removeAttribute(`busy`),e?.removeAttribute(`progress`)}})())};for(let e of[`save`,`skip`,`erase`])t.freezer.addEventListener(`new-chat-${e}`,()=>_(e));let v=async e=>{let{writer:t}=await n(),{runNewSessionArchiveOnly:r}=await o(async()=>{let{runNewSessionArchiveOnly:e}=await import(`./new-session-CtMabzCy.js`);return{runNewSessionArchiveOnly:e}},__vite__mapDeps([60,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,61,0,28,29,30,31,32,33,34,59,35,40,41,42,43,44,37,45]));await r({vfs:t,cone:{folder:e.folder,label:M(e),jid:e.jid},captureCompleteSnapshot:t=>Lr(e,t)}),m()};T(`agentic-memory`)&&g()?.setAttribute(`no-skip`,``),window.addEventListener(yt,e=>{let t=e.detail?.action;(t===`save`||t===`skip`||t===`erase`)&&_(t)});let y=async e=>{let o=l.find(t=>t.filename===e);try{let{reader:r}=await n();o||=(await Mr(r)??[]).find(t=>t.filename===e);let{messages:a}=await Ir(r,o??{filename:e,title:e,frozenAt:``,messageCount:0});t.thread.setAttribute(`context`,`freezer:${o?.filename??e}`),u=o?.sessionId??o?.filename??null,i()?.loadMessages(a),(t.thread.inner??t.thread).prepend(zr(t.thread.ownerDocument,o)),t.thread.setAttribute(`accent`,Ye),Je(t,{kind:`freezer`}),t.inputCard.setAttribute(`disabled`,``),t.switcher.removeAttribute(`active`),s()}catch(e){if(c.error(`WC thaw failed`,e),!a()){let e=ot(r.getScoops(),o?.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}}var Vr={R:`running`,S:`pending`,Z:`exited`,K:`killed`};function Hr(e){return Vr[e.trim().split(` `)[2]??``]??`unknown`}function Ur(e){let t=ue();if(t.state!==`inactive`)return{role:`follower`,state:t.state,joinUrl:t.joinUrl,sessionId:t.trayId,workerBaseUrl:ce(t.joinUrl)?.workerBaseUrl??null,stalled:t.stalled};let n=me();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=oe(e.getItem(se))}catch{}return{role:`standalone`,state:`inactive`,workerBaseUrl:r}}function Wr(e){let{client:n,openReader:r,storage:s}=e;return{getScoops:()=>n.getScoops(),isProcessing:e=>n.isProcessing(e),getCronTasks:async()=>{let{getAllCronTasks:e}=await o(async()=>{let{getAllCronTasks:e}=await import(`./db-cKsBsMMN.js`).then(e=>e.t);return{getAllCronTasks:e}},__vite__mapDeps([62,1]));return e()},getWebhooks:async()=>{let{getAllWebhooks:e}=await o(async()=>{let{getAllWebhooks:e}=await import(`./db-cKsBsMMN.js`).then(e=>e.t);return{getAllWebhooks:e}},__vite__mapDeps([62,1]));return e()},getMounts:async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await o(async()=>{let{getAllMountEntries:e,loadMountHandle:t}=await import(`./mount-table-store-dY2IfQ5S.js`).then(e=>e.r);return{getAllMountEntries:e,loadMountHandle:t}},__vite__mapDeps([63,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 a()){if(e.has(r.providerId))continue;if(e.add(r.providerId),!t(r.providerId)?.isOAuth){n.push({providerId:r.providerId});continue}let a=i(r.providerId),o=r.loggedOut?!1:a?!a.expired:!1;n.push({providerId:r.providerId,valid:o})}return n}catch{return[]}},getSessionStats:async()=>n.getSessionStats?.()??null,getProcesses:async()=>{try{let e=await r(),t=await e.readDir(`/proc`),n=[];for(let r of t.filter(e=>e.type===`directory`&&/^\d+$/.test(e.name)))try{let t=await e.readFile(`/proc/${r.name}/stat`,{encoding:`utf-8`}),i=await e.readFile(`/proc/${r.name}/cmdline`,{encoding:`utf-8`});n.push({pid:Number.parseInt(r.name,10),argv:String(i).trim(),status:Hr(String(t))})}catch{}return n}catch{return[]}},getTrayInfo:()=>Ur(s),getConnectedFollowers:gt}}var Gr=`sync-fs-nonce`;function Kr(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:Gr,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 Z=e=>Array.from(e,e=>e.charCodeAt(0)),qr=[{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:Z(`GIF87a`),mime:`image/gif`},{offset:0,bytes:Z(`GIF89a`),mime:`image/gif`},{offset:0,bytes:Z(`BM`),mime:`image/bmp`},{offset:0,bytes:Z(`RIFF`),also:{offset:8,bytes:Z(`WEBP`)},mime:`image/webp`},{offset:4,bytes:Z(`ftypavif`),mime:`image/avif`},{offset:0,bytes:[0,0,1,0],mime:`image/x-icon`},{offset:0,bytes:Z(`RIFF`),also:{offset:8,bytes:Z(`WAVE`)},mime:`audio/wav`},{offset:0,bytes:Z(`ID3`),mime:`audio/mpeg`},{offset:0,bytes:Z(`fLaC`),mime:`audio/flac`},{offset:4,bytes:Z(`ftypM4A`),mime:`audio/mp4`},{offset:4,bytes:Z(`ftypisom`),mime:`video/mp4`},{offset:4,bytes:Z(`ftypmp42`),mime:`video/mp4`},{offset:4,bytes:Z(`ftypqt`),mime:`video/quicktime`},{offset:0,bytes:[26,69,223,163],mime:`video/webm`},{offset:0,bytes:Z(`%PDF-`),mime:`application/pdf`},{offset:0,bytes:[0,97,115,109],mime:`application/wasm`},{offset:0,bytes:Z(`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`}],Jr=Z(`OggS`);function Yr(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 Xr(e){let t=[...qr].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(Yr(e,n.offset,n.bytes)&&!(n.also&&!Yr(e,n.also.offset,n.also.bytes)))return n.mime;if(Yr(e,0,Jr)){let t=Zr(e.subarray(0,64));return/theora|VP8/.test(t)?`video/ogg`:`audio/ogg`}return null}function Zr(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return t}var Qr=4096;function $r(e){if(e.length===0)return!0;let t=e.subarray(0,Math.min(e.length,Qr));if(t.includes(0))return!1;let n=t.length;if(n===Qr)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 ei(e,t){if(t&&t.length>0){let e=Xr(t);if(e)return{mime:e,text:ti(e),source:`magic`}}let n=c(e);return n===`application/octet-stream`?t&&$r(t)?{mime:`text/plain`,text:!0,source:`content`}:{mime:`application/octet-stream`,text:!1,source:t?`content`:`unknown`}:{mime:n,text:ti(n),source:`extension`}}function ti(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 ni=new Set([`md`,`markdown`,`mdown`,`mkd`,`mkdn`,`mdwn`]);function ri(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 ni.has(i)?`markdown`:i===`html`||i===`htm`?`html`:null}var ii=24;async function ai(e,t){let n=t.slice(0,Math.max(t.lastIndexOf(`/`),0))||`/`;for(let t=0;t<ii;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 oi(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 si(e,t,n){let r=await ai(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 o(()=>import(`./isomorphic-git-CLcEdT0Q.js`),__vite__mapDeps([64,1,65])),a=oi(e),s=await t.resolveRef({fs:a,dir:r,ref:`HEAD`}),{blob:c}=await t.readBlob({fs:a,dir:r,oid:s,filepath:i}),l=new TextDecoder().decode(c);return l===n?null:{baseContent:l,status:`modified`,repoRoot:r}}catch{return null}}function ci(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return t===`.html`||t===`.svg`}async function li(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}=ei(t,r);return{mime:i,text:a,bytes:r}}var ui=524288;function di(e,t,n){if(n.length>ui)return null;switch(ri(e,t)){case`markdown`:return{mount:`inline`,html:k(n)};case`html`:return{mount:`sandbox`,html:n};default:return null}}async function fi(e,t,n={}){let{mime:r,text:i,bytes:a}=await li(e,t);if(!i){it.open({path:t,content:a.buffer,mimeType:r,text:!1});return}let o=new TextDecoder().decode(a),s=await si(e,t,o),c=di(t,r,o);it.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 pi(e,t){let{mime:n,bytes:r}=await li(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 mi(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 hi(e,t){try{return await e.stat(t),!0}catch{return!1}}function gi(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 fi(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 pi(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&&ci(n)},{id:`delete`,label:`Delete`,destructive:!0,visible:a}];at.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 hi(n,t)&&!confirm(`${t} already exists. Overwrite?`))break;await mi(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 hi(i,n)&&!confirm(`${n} already exists. Overwrite?`))break;await mi(i,s,n),await i.rm(s);break}}}catch(e){o.error(`Overflow action "${n}" failed`,e)}})}var _i=64,vi=12,yi=/\b(feedback|reviews?|corrections?|learnings?|observations?|testing|verification)\b/i,bi=/\b(user|preferences?|identit(?:y|ies)|accounts?|personal|interface|working rhythm|keyboard|accessibility)\b/i,xi=/^Auto-extracted \(/;function Si(e){let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}function Ci(e){return(Si(k(e)).textContent??``).replace(/\s+/g,` `).trim()}function wi(e){let t=Ci(e);if(t.length<=_i)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>=vi&&i<=96&&t.slice(a).trim()&&n.push({titleEnd:i,summaryStart:a})}let r=n.sort((e,t)=>Math.abs(e.titleEnd-_i)-Math.abs(t.titleEnd-_i))[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>=vi?i:96,o=t.slice(a).trim();return{title:t.slice(0,a).trim(),summary:o,titleEnd:a,summaryStart:t.indexOf(o,a)}}function Ti(e,t){let n=Ci(e),r=xi.test(t),i=r?n:`${t} ${n}`;return yi.test(i)?`feedback`:bi.test(i)?`user`:r?null:`project`}function Ei(e,t){let n=wi(e);return{title:n.title,summary:n.summary,section:t,tag:Ti(e,t),bodyHtml:k(e),titleEnd:n.titleEnd,summaryStart:n.summaryStart}}function Di(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(Ei(e,a.section)),a=null};for(let t of e.split(`
8
+ `)){let e=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(t.trim());if(e){s();let t=Ci(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 Oi(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 ki(e,t,n){let r=Si(e),i=Oi(r,t),a=n==null?{node:r,offset:r.childNodes.length}:Oi(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 Ai(e){return Di(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(ki(e.bodyHtml,0,e.titleEnd)),e.summary&&t.setBodyContent(ki(e.bodyHtml,e.summaryStart,null)),t})}async function ji(e,t=Ae.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 Ai(n)}function Mi(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`,count:e.filter(e=>e.peerState===`connected`).length,meta:i.join(` · `)||void 0,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:rt(e),sublabel:n,meta:$e(e),icon:tt(e),badges:r,status:nt(e)}})}}function Ni(e){let t=e.stalled?`stalled`:e.state===`leader`?`connected`:e.state,n=e.stalled||e.state===`reconnecting`?`warn`:e.state===`error`?`error`:e.state===`leader`||e.state===`connected`?`active`:`idle`,r=e.sessionId?`Session ${et(e.sessionId)}`:null,i=e.workerBaseUrl?`Worker · ${e.workerBaseUrl}`:null;return{id:`tray`,label:`Tray`,count:1,meta:`${e.role} · ${t}`,accent:`waffle`,rows:[{name:e.role[0].toUpperCase()+e.role.slice(1),sublabel:[r,i].filter(Boolean).join(` · `)||`No tray session`,meta:t,icon:e.role===`follower`?`radio`:`cloud`,badges:e.joinUrl?[`join URL`]:[],status:n}]}}async function Pi(e){let t=e.getScoops(),n=e.getTrayInfo(),r=e.getConnectedFollowers(),[i,a,o,s,c,l]=await Promise.all([e.getCronTasks().catch(()=>[]),e.getWebhooks().catch(()=>[]),e.getMounts().catch(()=>[]),e.getMcpServers().catch(()=>({})),e.getSessionStats().catch(()=>null),e.getProcesses().catch(()=>[])]),u=e.getOAuthProviders(),d=Object.entries(s);return[Ni(n),Mi(r),{id:`cost`,label:`Cost`,count:c?.models.length??0,meta:c?`$${c.totalCost.toFixed(2)}`:void 0,rows:c?.models.map(e=>({name:e.model,meta:`$${e.cost.toFixed(4)}`}))??[]},{id:`scoops`,label:`Scoops`,count:t.length,rows:t.map(t=>{let n=E(t)?`${t.name||`sliccy`} (cone)`:t.name,r=e.isProcessing(t.jid);return{name:n,meta:r?`processing`:`idle`,active:r}})},{id:`processes`,label:`Processes`,count:l.length,rows:l.map(e=>{let t=e.argv.length>40?e.argv.slice(0,37)+`...`:e.argv,n=e.status===`running`;return{name:`${e.pid}`,meta:t,active:n}})},{id:`cron`,label:`Cron Tasks`,count:i.length,rows:i.map(e=>({name:e.name,meta:e.cron,active:e.status===`active`}))},{id:`webhooks`,label:`Webhooks`,count:a.length,rows:a.map(e=>({name:e.name,meta:e.scoop?`→ ${e.scoop}`:`→ cone`}))},{id:`workflows`,label:`Workflows`,count:0,rows:[]},{id:`mounts`,label:`Mounts`,count:o.length,rows:o.map(e=>({name:e.targetPath,meta:e.descriptor.kind,active:e.valid===!0,error:e.valid===!1}))},{id:`mcp`,label:`MCP Servers`,count:d.length,rows:d.map(([e,t])=>{let n=t.tools?.length??0;return{name:e,meta:`${n} tool${n===1?``:`s`}`}})},{id:`oauth`,label:`OAuth`,count:u.length,rows:u.map(e=>({name:e.providerId,meta:``,active:e.valid===!0,error:e.valid===!1}))}]}var Fi=`/shared`,Ii=3,Li=200;async function Ri(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,Li),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<Ii?await Ri(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 zi(e,t=Ae.root){let n=[];for(let r of[t,Fi])n.push({kind:`dir`,id:r,label:r.replace(/^\/(cones\/)?/,``),open:!0,children:await Ri(e,r,1)});return n}function Bi(e){let t=!1,n=!1,r=0,i=null,a=null,o=!1,s=!1,c=()=>{e.openFs().then(async t=>{e.fileTree.items=await zi(t,e.getWorkspace().root),s||(s=!0,gi({fileTree:e.fileTree,openFs:e.openFs,openWriter:e.openWriter,insertReference:e.insertReference,toPreviewUrl:be,log:e.log}))}).catch(t=>e.log.error(`WC file tree refresh failed`,t))},l=()=>{o=!1,i!=null&&(clearInterval(i),i=null)},u=()=>{a!=null&&(clearInterval(a),a=null)},d=()=>{let t=++r;e.openFs().then(async n=>{let i=await ji(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))},f=()=>{(async()=>{try{let t=await Pi(e.getMonitorDeps());e.monitor.sections=t}catch(t){e.log.error(`WC monitor refresh failed`,t)}})()};return e.monitor.addEventListener(`slicc-monitor-refresh`,f),{activate(r){if(r===`files`){l(),o=!0,e.onKernelReady(()=>{o&&(o=!1,c(),i=setInterval(c,3e3))});return}if(r===`memory`){n=!0,d();return}if(r===`monitor`){u(),f(),a=setInterval(f,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`?l():e===`monitor`?u():e===`memory`&&(n=!1)},refreshMemory(){n&&d()}}}var Vi=[`/workspace`,`/shared`,`/memory`,`/scoops`,`/mnt`],Hi=new Set([`node_modules`,`.git`,`dist`,`build`,`out`,`coverage`,`.cache`,`.venv`,`venv`,`__pycache__`,`target`,`vendor`,`.next`,`.turbo`,`python_wheels`]),Ui=2e4,Wi=12,Gi=3e4;function Ki(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 qi(e){return e.slice(e.lastIndexOf(`/`)+1)}function Ji(e,t){return e===t?!0:e.endsWith(t)?e[e.length-t.length-1]===`/`:!1}function Yi(e,t){let n=Ki(e);return t.includes(`/`)?Ji(n,t):qi(n)===t}function Xi(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))&&Yi(a,e)&&(r.add(a),n.push(Ki(a)),n.length>=Zi))break}return n}var Zi=4,Qi=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??Vi,this.#n=t.ignoredDirs??Hi,this.#r=t.maxEntries??Ui,this.#i=t.maxDepth??Wi,this.#a=t.ttlMs??Gi}resolve(e,t=[]){this.#g();let n=Ki(e),r=this.#d(n),i=Xi(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=>Ji(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(qi(e))??[];return e.includes(`/`)?{query:e,matches:t.filter(t=>Ji(t,e)).sort($i)}:{query:e,matches:[...t].sort($i)}}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 $i(e,t){let n=e.split(`/`).length,r=t.split(`/`).length;return n===r?e.localeCompare(t):n-r}var ea=`file-mention`,Q=`data-file-mentions`;function ta(e){return`${e.childNodes.length}:${e.textContent?.length??0}`}var na=new Set([`A`,`PRE`,`SCRIPT`,`STYLE`,`TEXTAREA`]),ra=`file-mention-open`;async function ia(e,t,n=[]){let r=ta(e);if(e.getAttribute(Q)===r)return;let i=aa(e);if(i.length===0){e.setAttribute(Q,r);return}let a=[],o=new Set;for(let e of i){let t=Qe(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(Q,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&&oa(e,n,l)}e.setAttribute(Q,ta(e))}function aa(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(na.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 oa(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(sa(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 sa(e,t,n,r,i){let a=e.createElement(`a`);return a.className=ea,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(ra,{detail:t,bubbles:!0,composed:!0}))}),a}var $=`slicc-agent-message`,ca=`slicc-action-row[${Fe}]`;function la(e,t){let n=[],r=e.querySelectorAll(ca);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=>Ze(e))}function ua(e){let t=globalThis.requestIdleCallback;typeof t==`function`?t(e):setTimeout(e,0)}function da(e){try{return fa(e)}catch(t){return e.log.error(`File mention wiring failed; continuing without it`,t),()=>{}}}function fa(e){let{thread:t,openFs:n,log:r}=e;if(!(t instanceof Node))return()=>{};let i=null,a=()=>(i??=n().then(e=>new Qi(e)),i),o=e=>{if(!(e instanceof HTMLElement)||e.hasAttribute(`streaming`))return;let n=e.querySelector(`.body`)??e;Qe(n.textContent??``).length!==0&&ua(()=>{let i=la(t,e);a().then(e=>ia(n,e,i)).catch(e=>r.error(`File mention linking failed`,e))})},s=e=>{for(let t of e.querySelectorAll($))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()===$?o(e):s(e));let e=t.target?.closest?.($);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=>fi(e,t,i===void 0?{}:{line:i})).catch(e=>r.error(`File mention preview failed`,e))};return t.addEventListener(ra,l),()=>{c.disconnect(),t.removeEventListener(ra,l)}}var pa=e({DEFAULT_DOCK_TREE_ON_BOOT:()=>Da,DOCK_TREE_STORAGE_KEY:()=>Ea,attachWcClient:()=>Aa,makeSprinkleAttachImage:()=>ka,mountWcUiLive:()=>ja,prepareWcShell:()=>ma,wireDockTreePersistence:()=>Oa,wireWcChipTips:()=>xa});function ma(e,t){let n=He(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=dt(pt(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?j(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,A(e)),i.setSelectedScoopJid(e.jid),r?.setReadOnly(t),t||n.inputCard.removeAttribute(`disabled`),_r(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()},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 ha(e){let t=null;return()=>(t??=(async()=>{let[{createRemoteVfsClient:t},{createRemoteWritableVfsClient:n}]=await Promise.all([o(()=>import(`./remote-vfs-client-5faRBsEi.js`),__vite__mapDeps([66,42])),o(()=>import(`./writable-vfs-client-Dqrpx9iK.js`),__vite__mapDeps([67,42]))]);return{reader:t({transport:e.getTransport()}),writer:n({transport:e.getTransport()})}})(),t)}function ga(e,t,n,r,i){e.onClientReady(()=>{r.intercept||o(async()=>{let{wireWcOnboarding:e}=await import(`./wc-onboarding-DYhI6TEE.js`);return{wireWcOnboarding:e}},__vite__mapDeps([68,3,30,12,13,1,14,15,16,17,31,69,11,44,70,29,19,39,71,72,73,74,75,55,56,76,50,51])).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 _a(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=pr(t.getScoops(),e.statuses,e.fills,e.phases,e.awaitingInput,e.getSelected()?.jid)})};return setInterval(n,15e3),n}function va(e,t,n){let r=t.standalone;r&&o(async()=>{let{wireWcBrowser:e}=await import(`./wc-browser-DdPBkgaJ.js`);return{wireWcBrowser:e}},__vite__mapDeps([77,12,78,79,11,80,81])).then(({wireWcBrowser:t})=>t({refs:e.refs,browser:r.browser,log:n})).catch(e=>n.error(`WC browser overlay wiring failed`,e))}function ya(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)}),xa({switcher:n.switcher,getScoops:()=>t.getScoops(),lastActivity:e.wiring.lastActivity})}function ba(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 xa(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??``,s=e.getScoops().find(e=>e.jid===a);if(!s)return;let c=e.lastActivity.get(a)??``,l=t.get(a);if(l&&l.activity===c){i.title=l.tip;return}i.title||=M(s),!(!c||n.has(a))&&(n.add(a),(async()=>{try{let n=await(e.labelFn??(await o(async()=>{let{quickLabel:e}=await import(`./quick-llm-C3kXqZlY.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,59,43]))).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: ${E(s)?`${M(s)} (a main agent)`:s.name}\nMost recent activity:\n${c}`,maxTokens:40});n&&(t.set(a,{activity:c,tip:n}),i.title=n)}finally{n.delete(a)}})())})}async function Sa(e,t,n){let{RemoteTerminalView:r}=await o(async()=>{let{RemoteTerminalView:e}=await import(`./remote-terminal-view-DSUnPeXp.js`);return{RemoteTerminalView:e}},__vite__mapDeps([82,1,3,24,11,39,83,84,85,81,86,15,29,19,12,71,87,10,72,88,89,74,90,91])),{fetchSecretEnvVars:i}=await o(async()=>{let{fetchSecretEnvVars:e}=await import(`./secret-env-CjwX7z7b.js`);return{fetchSecretEnvVars:e}},__vite__mapDeps([92,11,13,1,3,14,12,15,16,17,18,19,20,21,22])),a=await i(),s=new r({client:t,cwd:`/`,env:Object.keys(a).length>0?a:void 0});await new Promise(t=>e.onClientReady(t)),await s.mount(n),globalThis.__slicc_terminal_view=s,window.addEventListener(`beforeunload`,()=>s.dispose(),{once:!0})}function Ca(e,t,n){let r=r=>{if(r.startsWith(`freezer:`)){n(r.slice(8));return}let i=ut(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 wa(e,t,n,r){o(async()=>{let{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}=await import(`./wc-permissions-Oq3nX_59.js`);return{installLeaderPermissionsSurface:e,installMountPendingConsumer:t}},__vite__mapDeps([93,3,11,39])).then(async({installLeaderPermissionsSurface:r,installMountPendingConsumer:i})=>{let a=n.standalone?.runtimeMode??`standalone`,{buildLeaderPermissionProviders:s,isExtensionRuntime:c}=await o(async()=>{let{buildLeaderPermissionProviders:e,isExtensionRuntime:t}=await import(`./wc-permissions-providers-BwYf17R6.js`);return{buildLeaderPermissionProviders:e,isExtensionRuntime:t}},__vite__mapDeps([94,3,15,29,19,12]));r({runtimeMode:a,providers:await s(c()||a===`extension`||a===`extension-detached`)}),i({runShell:Ta(e,t)})}).catch(e=>r.warn(`WC permissions surface wiring failed`,e))}function Ta(e,t){let n=null,r=()=>(n||=(async()=>{await new Promise(t=>e.onClientReady(t));let{TerminalSessionClient:n}=await o(async()=>{let{TerminalSessionClient:e}=await import(`./terminal-session-client-ADzaWGFd.js`).then(e=>e.n);return{TerminalSessionClient:e}},__vite__mapDeps([91,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 Ea=`slicc-dock-tree:default`,Da={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 Oa(e,t){let n=e.dockTree,r=e.dockTree,i=e=>{try{localStorage.setItem(Ea,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(Ea);r.setTree(e?JSON.parse(e):Da)}catch(e){t.warn(`WC dock-tree restore failed — seeding the default layout`,e),r.setTree(Da)}}function ka(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 Aa(e,t,n,r={}){o(async()=>{let{initTimestampPreference:e}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{initTimestampPreference:e}},__vite__mapDeps([95,1])).then(({initTimestampPreference:e})=>e()).catch(()=>void 0);let{refs:i}=e;e.setClient(t);let a=T(`panel-layouts`);i.dockTree.tilesMovable=a,a||Oa(i,n);let s=null,c=_a(e.wiring,t),l=()=>s?.(),u={intercept:null},{controller:d,agentHandle:f}=Dr(i,t,()=>e.getSelected(),ba({boot:e,triggerPlaceholder:l,refreshStats:c}),u);e.setController(d),e.onClientReady(c);let p=ha(t),m=async()=>(await p()).reader;r.standalone?.runtimeMode!==`cherry`&&r.standalone?.runtimeMode!==`hosted-leader`&&ga(e,t,p,u,n);let h=yr({boot:e,client:t,agentHandle:f,setRefreshPlaceholder:e=>{s=e},triggerPlaceholder:l,openReader:m,openWriter:async()=>(await p()).writer,log:n});ya(e,t),va(e,r,n),wa(e,t,r,n);let g=Bi({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:()=>Wr({client:t,openReader:m,storage:window.localStorage}),getWorkspace:()=>Me(t.getScoops(),e.getSelected()??void 0),mountTerminal:n=>Sa(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&&o(async()=>{let{panelizeShell:e}=await import(`./panelize-shell-BXouoIAD.js`);return{panelizeShell:e}},__vite__mapDeps([96,11,97,43,1,98,3,99,53,100,101,102,103])).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)),da({thread:i.thread,openFs:m,log:n}),i.floatbar.addEventListener(`click`,()=>{let e=i.dock;e.active===`monitor`?e.collapse():e.selectItem(`monitor`)});let _=Br({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:b}=_;if(v(),e.onClientReady(v),T(`multiple-cones`)){let r=ur({freezer:i.freezer,client:t,getSelected:()=>e.getSelected(),selectScoop:e.selectScoop,freezeCone:_.freezeCone,log:n});e.wiring.refreshConeActions=r.refresh,e.onClientReady(r.refresh)}Ca(e,t,y),p().then(async({reader:e})=>{let{installPreviewVfsResponder:t}=await o(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:s})=>{let{createRemoteSprinkleVfs:c}=await o(async()=>{let{createRemoteSprinkleVfs:e}=await import(`./remote-sprinkle-vfs-e81pZJKo.js`);return{createRemoteSprinkleVfs:e}},__vite__mapDeps([104,42])),l=(await o(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-BXouoIAD.js`);return{getPanelizedShell:e}},__vite__mapDeps([96,11,97,43,1,98,3,99,53,100,101,102,103]))).getPanelizedShell(),{wireWcSprinkles:u}=await o(async()=>{let{wireWcSprinkles:e}=await import(`./wc-sprinkles-EHJeVQcY.js`);return{wireWcSprinkles:e}},__vite__mapDeps([105,3,15,29,19,12,106,44])),d=await u({refs:i,client:t,fs:c({reader:a,writer:s}),instanceId:r.instanceId,onAttachImage:ka(h,n),onToolPanelActivate:e=>g.activate(e),onToolPanelDeactivate:e=>g.deactivate(e),hostSprinkleSurface:l?(e,t)=>l.hostSprinkleSurface(e,t):void 0,removeSprinkleSurface:l?e=>l.removeSprinkleSurface(e):void 0,log:n});e.onClientReady(()=>void d.resync());let{getPanelizedShell:_}=await o(async()=>{let{getPanelizedShell:e}=await import(`./panelize-shell-BXouoIAD.js`);return{getPanelizedShell:e}},__vite__mapDeps([96,11,97,43,1,98,3,99,53,100,101,102,103])),v=_();if(v){let e=c({reader:a,writer:s});v.attachFs(e);let{registerAgentPanels:t}=await o(async()=>{let{registerAgentPanels:e}=await import(`./agent-panels-B92KQapO.js`);return{registerAgentPanels:e}},__vite__mapDeps([107,11,100]));await t(e).catch(e=>n.warn(`agent panel discovery failed`,e))}else{let{setLayoutApplier:e}=await o(async()=>{let{setLayoutApplier:e}=await import(`./layout-apply-registry-Cw730jao.js`);return{setLayoutApplier:e}},[]),{applyLayout:t}=await o(async()=>{let{applyLayout:e}=await import(`./apply-layout-DWyyaCog.js`);return{applyLayout:e}},__vite__mapDeps([108,105,3,15,29,19,12,106,44]));e(e=>t(d.zone,e))}if(r.standalone&&r.instanceId){let{wireWcTray:a}=await o(async()=>{let{wireWcTray:e}=await import(`./wc-tray-D6n1OY5g.js`);return{wireWcTray:e}},__vite__mapDeps([109,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,41,78,110,30,31,111,32,112,113,44,114,50,51,75,55,56,115,116,117,0,28,29,33,34,39,81,118,119,91,120,62,80,121,122,123,106,124,87,125])),s=d.zone.callbacks(),c=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)=>s.addSprinkle(e,t,n),removeSprinkle:e=>s.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=()=>c.scheduleScoopsListBroadcast()}}).catch(e=>n.error(`WC sprinkle/tray wiring failed`,e));{let e=new Tt,n=new pe,r=new Vn({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:tr(),snapshotStore:{read:async e=>{let{reader:t}=await p();return Xn(t,e)},write:async(e,t)=>{let{writer:n}=await p();return Yn(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=N(t.getScoops());return{id:e?.jid??`session-${Date.now()}`,title:e?.name??`Active Session`}},version:`6.93.0`}),i=we(r);window.addEventListener(`unload`,i,{once:!0})}let x=!1,S=()=>x?Promise.resolve():(x=!0,(async()=>{try{let[{getTranscriptExportService:e},{transcriptZipToBlob:t,downloadTranscriptBlob:n}]=await Promise.all([o(()=>import(`./export-provider-BEHTjSYw.js`).then(e=>e.t),__vite__mapDeps([57,1,12])),o(()=>import(`./wc-transcript-export-DKIleW7-.js`),__vite__mapDeps([126,3,116,12,117,1]))]),r=b(),i=r==null?{kind:`active`}:{kind:`frozen`,sessionId:r},a=await e().export(i,{}),{filename:s}=a;await n(await t(a),s)}catch(e){n.error(`Transcript export failed`,e)}finally{x=!1}})());if(o(async()=>{let{wireWcNav:e}=await import(`./wc-nav-KB9V9YIf.js`);return{wireWcNav:e}},__vite__mapDeps([127,3,15,29,19,12,61,30,13,1,14,16,17,31,32,33,34,120,11,62,106,44,124,87,10])).then(({wireWcNav:e})=>e({refs:i,client:t,log:n,onExportTranscript:S})).catch(e=>n.error(`WC nav wiring failed`,e)),o(async()=>{let{getComposerSpeech:e,setComposerSpeechInstanceId:t}=await import(`./composer-speech-BEsclnPz.js`);return{getComposerSpeech:e,setComposerSpeechInstanceId:t}},__vite__mapDeps([128,11,15,29,19,12,39,99,48,49,13,1,3,14,16,17,50,51,129])).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)),o(async()=>{let{setSpeakAssetsInstanceId:e}=await import(`./speak-CrgQ-hNi.js`);return{setSpeakAssetsInstanceId:e}},__vite__mapDeps([47,3,11,15,29,19,12,48,49,13,1,14,16,17,50,51])).then(({setSpeakAssetsInstanceId:e})=>e(r.instanceId)).catch(e=>n.error(`WC say warmup wiring failed`,e)),r.standalone)return()=>{o(async()=>{let{schedulePendingSessionCatchup:e}=await import(`./new-session-CtMabzCy.js`);return{schedulePendingSessionCatchup:e}},__vite__mapDeps([60,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,61,0,28,29,30,31,32,33,34,59,35,40,41,42,43,44,37,45])).then(({schedulePendingSessionCatchup:e})=>e({openVfs:async()=>(await p()).writer,onComplete:v})).catch(e=>n.warn(`Pending session catch-up scheduling failed`,e))}}async function ja(e,t,n=`standalone`){let{browser:r,realCdpTransport:i,instanceId:a,localApiBaseUrl:s,bridgeToken:c,localLickWsUrl:l,extensionDelegateId:u,attachLickForwardingClient:d}=await _({runtimeMode:n,envBaseUrl:null,window,log:t}),{floatKindForRuntimeMode:f,floatLabelForKind:p,resolveStandaloneFloatKind:m}=await o(async()=>{let{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}=await import(`./wc-float-label-CQitMvjM.js`);return{floatKindForRuntimeMode:e,floatLabelForKind:t,resolveStandaloneFloatKind:n}},__vite__mapDeps([130,13,1,3,14,12,15,16,17,98,43,99,53,100,101])),{installFloatbarStatus:v}=await o(async()=>{let{installFloatbarStatus:e}=await import(`./wc-floatbar-online-uDk8A8hD.js`);return{installFloatbarStatus:e}},__vite__mapDeps([131,32,120,1,11,13,3,14,12,15,16,17,29,19,30,31,62,130,98,43,99,53,100,101])),y=n===`standalone`?await m():f(n),b=p(y),x=ma(e,b);v(x.refs.floatbar,{floatKind:y,label:b}),a&&h(a);let{syncFsBridgeEnabled:S,syncFsChannelNonce:ee}=Kr(),C=Ut({realCdpTransport:i,instanceId:a,makeClient:e=>new Ft(mr(x.wiring),e),localApiBaseUrl:s,bridgeToken:c,syncFsBridgeEnabled:S,syncFsChannelNonce:ee,localLickWsUrl:l,extensionDelegateId:u,flagFloat:n,onWorkerScriptError:()=>{g()}});Lt({send:e=>C.client.sendRaw(e)}),d?.(C.client);let te=Aa(x,C.client,t,{instanceId:a,standalone:{browser:r,realCdpTransport:i,runtimeMode:n,floatKind:y}}),{setupSudoStandalone:ne}=await o(async()=>{let{setupSudoStandalone:e}=await import(`./setup-sudo-BdKr5Kuf.js`).then(e=>e.n);return{setupSudoStandalone:e}},__vite__mapDeps([132,1,3]));await ne({log:t}),await C.ready,x.wiring.notifyReady?.(),t.info(`WC live shell ready`,{scoops:C.client.getScoops().length}),te?.();let{consumeAutoPrompt:re}=await o(async()=>{let{consumeAutoPrompt:e}=await import(`./auto-prompt-Mj-vUQeB.js`);return{consumeAutoPrompt:e}},[]),w=re(window.location.search);w&&(x.getController()?.sendUserMessage(w),t.info(`Auto-prompt submitted`,{length:w.length}))}export{mr as a,Er as i,ma as n,Ft as o,pa as r,Aa as t};