sliccy 6.55.4 → 6.55.5

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 (81) hide show
  1. package/dist/ui/assets/{account-store-MovPQ1t7.js → account-store-C7-BuTtO.js} +1 -1
  2. package/dist/ui/assets/{account-store-CZ1gUZlp.js → account-store-CXve74is.js} +1 -1
  3. package/dist/ui/assets/{adobe-Cw5eDX4j.js → adobe-BTAXVFpB.js} +1 -1
  4. package/dist/ui/assets/{adobe-DlVylgIQ.js → adobe-SvL7wnxR.js} +1 -1
  5. package/dist/ui/assets/{apply-layout-BQ84g53u.js → apply-layout-DUFSYQm2.js} +1 -1
  6. package/dist/ui/assets/{apps-n8Eucw13.js → apps-haiXpGUM.js} +1 -1
  7. package/dist/ui/assets/{azure-openai-dxVEczfe.js → azure-openai-CbNQFK03.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-C0K8_P2M.js → azure-openai-HmyoL0uC.js} +1 -1
  9. package/dist/ui/assets/{cerebras-DACZwM4H.js → cerebras-CPWsSC3_.js} +1 -1
  10. package/dist/ui/assets/{cerebras-Cb2QF_Nj.js → cerebras-YnIUvgym.js} +1 -1
  11. package/dist/ui/assets/{connect-surface-IVYV6Y4d.js → connect-surface-Cq4vDCZ0.js} +1 -1
  12. package/dist/ui/assets/{dist-DBATBmPe.js → dist-Bor3XZ4q.js} +1 -1
  13. package/dist/ui/assets/{dist-CrQKODgO.js → dist-C8opQrif.js} +1 -1
  14. package/dist/ui/assets/{dist-BaUI1Dp5.js → dist-CUXfzYZY.js} +1 -1
  15. package/dist/ui/assets/{dist-C8yMY-ER.js → dist-rJx4obdP.js} +1 -1
  16. package/dist/ui/assets/fs-0d0qnlvh.js +2 -0
  17. package/dist/ui/assets/fs-BzYQsTLs.js +1 -0
  18. package/dist/ui/assets/{github-DYEtdsqL.js → github-B2yNCINt.js} +1 -1
  19. package/dist/ui/assets/{github-CLZxdeQj.js → github-QKJFXu-I.js} +2 -2
  20. package/dist/ui/assets/{github-copilot-DLklF6-w.js → github-copilot-CqMFvqC9.js} +1 -1
  21. package/dist/ui/assets/{github-copilot-DCVye4Up.js → github-copilot-DLuTpUZV.js} +1 -1
  22. package/dist/ui/assets/{github-install-TS-wUZLH.js → github-install-B_DL7zUe.js} +1 -1
  23. package/dist/ui/assets/{github-zip-_km37B0C.js → github-zip-Dnmf2fTV.js} +1 -1
  24. package/dist/ui/assets/{kernel-worker-Cy9UFIUc.js → kernel-worker-jgxQHnlK.js} +25 -25
  25. package/dist/ui/assets/{local-llm-CrYIvk-s.js → local-llm-CDf-Vrk0.js} +1 -1
  26. package/dist/ui/assets/{local-llm-Dv2UiP_c.js → local-llm-CElWzHsN.js} +1 -1
  27. package/dist/ui/assets/{main-CqQy149J.js → main-BfBi_bUT.js} +3 -3
  28. package/dist/ui/assets/{mount-C258ctaZ.js → mount-DsP2vhH1.js} +2 -2
  29. package/dist/ui/assets/{mount-ZIk2nJ0B.js → mount-Pvnulkb4.js} +1 -1
  30. package/dist/ui/assets/{mount-recovery-BZRk8kQT.js → mount-recovery-CgGOjGSF.js} +1 -1
  31. package/dist/ui/assets/{new-session-7elGqHHZ.js → new-session-BTbfXpRG.js} +2 -2
  32. package/dist/ui/assets/{oauth-bootstrap-CtPAplKI.js → oauth-bootstrap-aajEvppL.js} +2 -2
  33. package/dist/ui/assets/{openai-codex-DupPAjdl.js → openai-codex-C4wsmxne.js} +1 -1
  34. package/dist/ui/assets/{openai-codex-DWZrPgg1.js → openai-codex-CesElu5U.js} +1 -1
  35. package/dist/ui/assets/{openrouter-DK3JNe8t.js → openrouter-BBLMlyDe.js} +1 -1
  36. package/dist/ui/assets/{openrouter-BEmD97Ft.js → openrouter-DLWhDE3m.js} +1 -1
  37. package/dist/ui/assets/{openrouter-oauth-BiwslDkw.js → openrouter-oauth-Cok7ScPj.js} +1 -1
  38. package/dist/ui/assets/{openrouter-oauth-C37ce72O.js → openrouter-oauth-DzuMMPog.js} +1 -1
  39. package/dist/ui/assets/{panel-rpc-handlers-CTn-genP.js → panel-rpc-handlers-BJia6Q98.js} +2 -2
  40. package/dist/ui/assets/{provider-BVgpvvkj.js → provider-6l8fkdtu.js} +1 -1
  41. package/dist/ui/assets/{provider-bW1Hj2wt.js → provider-BLNvQgxE.js} +2 -2
  42. package/dist/ui/assets/{provider-settings-Dw_3F-KV.js → provider-settings-CBwM8zMx.js} +1 -1
  43. package/dist/ui/assets/{provider-settings-DPTmaMK4.js → provider-settings-DA3YY23a.js} +1 -1
  44. package/dist/ui/assets/provider-store-access-Bu61CMVV.js +1 -0
  45. package/dist/ui/assets/{provider-store-access-B9adXQNa.js → provider-store-access-Dw8bhoEq.js} +2 -2
  46. package/dist/ui/assets/{providers-CflLgJPY.js → providers-BlQ9DYB_.js} +1 -1
  47. package/dist/ui/assets/{providers-CopfWmua.js → providers-IKznCt1A.js} +2 -2
  48. package/dist/ui/assets/{quick-llm-BqAaPz_b.js → quick-llm-BP2LdcpP.js} +1 -1
  49. package/dist/ui/assets/{recovery-screen-DyjJnOh1.js → recovery-screen-Bnc4TkZ4.js} +1 -1
  50. package/dist/ui/assets/{redirect-uri-uos4r3cb.js → redirect-uri-ksBuBc62.js} +1 -1
  51. package/dist/ui/assets/{session-freezer-DSbFNZoP.js → session-freezer-CQcYNTkt.js} +3 -3
  52. package/dist/ui/assets/{setup-feature-flags-remote-5UKNRVSU.js → setup-feature-flags-remote-DwJZcowl.js} +1 -1
  53. package/dist/ui/assets/{setup-standalone-prelude-CvG3zGpm.js → setup-standalone-prelude-D84Csm6A.js} +1 -1
  54. package/dist/ui/assets/{setup-sudo-P4YgaU1V.js → setup-sudo-CeUb8XgW.js} +2 -2
  55. package/dist/ui/assets/sidecar-repair-B1MVRrrn.js +1 -0
  56. package/dist/ui/assets/sidecar-repair-DVAMAYc7.js +1 -0
  57. package/dist/ui/assets/{skills-BluD2S0L.js → skills-ClaC-3gD.js} +1 -1
  58. package/dist/ui/assets/{store-BQwLbPtn.js → store-BfLAPbOn.js} +1 -1
  59. package/dist/ui/assets/{store-DGC49oy4.js → store-Dkuhh5vp.js} +1 -1
  60. package/dist/ui/assets/{sudo-DhP-fzH2.js → sudo-Dhf7651w.js} +1 -1
  61. package/dist/ui/assets/{upgrade-detection-DcC0OPx7.js → upgrade-detection-DOCAoPx_.js} +1 -1
  62. package/dist/ui/assets/{wc-extension-CSkBhP1K.js → wc-extension-Ae0izG5V.js} +2 -2
  63. package/dist/ui/assets/{wc-follower-C6Rqt6JD.js → wc-follower-BqdNfXud.js} +3 -3
  64. package/dist/ui/assets/{wc-live-2WTa2Agb.js → wc-live-C-G4-UES.js} +4 -4
  65. package/dist/ui/assets/{wc-nav-Cv6sXz40.js → wc-nav-CcQ-C3hU.js} +2 -2
  66. package/dist/ui/assets/{wc-onboarding-IUt48Et5.js → wc-onboarding-BsFQujei.js} +2 -2
  67. package/dist/ui/assets/{wc-placeholder-D_UVRCyH.js → wc-placeholder-ChJtAQCo.js} +2 -2
  68. package/dist/ui/assets/{wc-settings-kSMausnf.js → wc-settings-Ch5STTJq.js} +2 -2
  69. package/dist/ui/assets/{wc-shell-BVgleBNS.js → wc-shell-DALO2z4v.js} +2 -2
  70. package/dist/ui/assets/{wc-sprinkles-Buo3BmOo.js → wc-sprinkles-DSMHIAYV.js} +2 -2
  71. package/dist/ui/assets/{wc-tray-DjSuT778.js → wc-tray-Bl0NLPX-.js} +2 -2
  72. package/dist/ui/assets/{xai-grok-D5qL7rdL.js → xai-grok-CKdJwji9.js} +1 -1
  73. package/dist/ui/assets/{xai-grok-DBZr0LW9.js → xai-grok-CphMghC2.js} +1 -1
  74. package/dist/ui/index.html +6 -6
  75. package/dist/ui/packages/webapp/index.html +6 -6
  76. package/package.json +2 -2
  77. package/dist/ui/assets/fs-CFP623sx.js +0 -1
  78. package/dist/ui/assets/fs-DdomU_RK.js +0 -2
  79. package/dist/ui/assets/provider-store-access-Cmhw6qyw.js +0 -1
  80. package/dist/ui/assets/sidecar-repair-DSCESX6n.js +0 -1
  81. package/dist/ui/assets/sidecar-repair-DoQ5IdBR.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo-DhP-fzH2.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DLOgqk5A.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DpPqYZJF.js","assets/src-CAWTvdAa.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/quick-llm-BqAaPz_b.js","assets/account-store-MovPQ1t7.js","assets/bedrock-camp-C8bCNVSq.js","assets/diagnostics-DN_idNHx.js","assets/transform-messages-N_eMsP2M.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/secret-topology-CnKyhZKB.js","assets/secrets-bridge-client-Bz8CHwrq.js","assets/port-bridge-client-Bw9y6i0a.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-CopfWmua.js","assets/panel-rpc-B3MSVImO.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-DtQGhvkp.js","assets/panel-responder-B6PI12mV.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n=e({setupSudoExtension:()=>i,setupSudoStandalone:()=>r});async function r(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo-DhP-fzH2.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));n()}async function i(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-DhP-fzH2.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));n()}export{n,r as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sudo-Dhf7651w.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/proxied-fetch-DLOgqk5A.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DpPqYZJF.js","assets/src-CAWTvdAa.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/quick-llm-BP2LdcpP.js","assets/account-store-C7-BuTtO.js","assets/bedrock-camp-C8bCNVSq.js","assets/diagnostics-DN_idNHx.js","assets/transform-messages-N_eMsP2M.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/secret-topology-CnKyhZKB.js","assets/secrets-bridge-client-Bz8CHwrq.js","assets/port-bridge-client-Bw9y6i0a.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-IKznCt1A.js","assets/panel-rpc-B3MSVImO.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-DtQGhvkp.js","assets/panel-responder-B6PI12mV.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./preload-helper-Czpn1I53.js";var n=e({setupSudoExtension:()=>i,setupSudoStandalone:()=>r});async function r(e){let{installSudoTestHook:n}=await t(async()=>{let{installSudoTestHook:e}=await import(`./sudo-Dhf7651w.js`);return{installSudoTestHook:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));n()}async function i(e){let{installPanelSudoResponder:n}=await t(async()=>{let{installPanelSudoResponder:e}=await import(`./sudo-Dhf7651w.js`);return{installPanelSudoResponder:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));n()}export{n,r as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";function t(e,t){return e===t||e.startsWith(t===`/`?`/`:`${t}/`)}var n=`/.metadata.json`;function r(e){return e.entries&&delete e.entries[n],e}function i(e,n,i){let a=n.entries??{},o={...e.entries??{}};`/`in a&&(o[`/`]=a[`/`]);for(let e of i.paths)e in a?o[e]=a[e]:delete o[e];for(let e of i.prefixes){for(let n of Object.keys(o))t(n,e)&&delete o[n];for(let n of Object.keys(a))t(n,e)&&(o[n]=a[n])}let{entries:s,...c}=n;return r({...c,entries:o})}var a=e({makeOpfsProbe:()=>m,repairOpfsMetadataSidecar:()=>g,repairSidecarDocument:()=>u,resolveWithSidecarRepair:()=>h}),o=61440,s=16384,c=32768,l=40960;async function u(e,t){let n={kindFixed:[],sizesFixed:0,dropped:0,selfEntryDropped:!1,inosReassigned:0,nlinksFixed:0,changed:!1},r=e.entries??{};for(let[e,i]of Object.entries(r)){if(e===`/`||typeof i!=`object`||!i)continue;if(e===`/.metadata.json`){delete r[e],n.selfEntryDropped=!0,n.changed=!0;continue}let a=i,s=(a.mode??0)&o;if(s===l){f(a,n);continue}let c=await t(e);if(c.kind===`missing`){delete r[e],n.dropped+=1,n.changed=!0;continue}f(a,n),p(e,a,s,c,n)}return d(r,n),n}function d(e,t){let n=0;for(let t of Object.values(e)){let e=t;typeof e?.ino==`number`&&(n=Math.max(n,e.ino)),typeof e?.data==`number`&&(n=Math.max(n,e.data))}let r=n+1,i=new Set;for(let[n,a]of Object.entries(e)){if(typeof a!=`object`||!a)continue;let e=a;if(n===`/`){typeof e.ino==`number`&&i.add(e.ino);continue}let o=e.ino;if(typeof o==`number`&&o!==0&&!i.has(o)){i.add(o);continue}e.ino=r,e.data=r+1,i.add(r),r+=2,t.inosReassigned+=1,t.changed=!0}}function f(e,t){e.nlink||(e.nlink=1,t.nlinksFixed+=1,t.changed=!0)}function p(e,t,n,r,i){if(n===c&&r.kind===`directory`){t.mode=((t.mode??0)&511||493)|s,i.kindFixed.push(`${e} file→dir`),i.changed=!0;return}if(n===s&&r.kind===`file`){t.mode=((t.mode??0)&511||420)|c,t.size=r.size,i.kindFixed.push(`${e} dir→file`),i.changed=!0;return}n===c&&r.kind===`file`&&typeof t.size==`number`&&t.size!==r.size&&(t.size=r.size,i.sizesFixed+=1,i.changed=!0)}function m(e){return async t=>{let n=t.split(`/`).filter(Boolean),r=e;for(let e=0;e<n.length-1;e+=1)try{r=await r.getDirectoryHandle(n[e])}catch{return{kind:`missing`}}let i=n[n.length-1];if(i===void 0)return{kind:`directory`};try{return{kind:`file`,size:(await(await r.getFileHandle(i)).getFile()).size}}catch{}try{return await r.getDirectoryHandle(i),{kind:`directory`}}catch{return{kind:`missing`}}}}async function h(e,t,n){try{return await e()}catch(r){let i=null;try{i=await t()}catch{}if(!i?.changed)throw r;return n(i),await e()}}async function g(e){let t;try{let n=await e.getFileHandle(`.metadata.json`),r=JSON.parse(await(await n.getFile()).text());if(!r||typeof r!=`object`||!r.entries)return null;t=r}catch{return null}let n=await u(t,m(e));if(!n.changed)return n;let r=await(await e.getFileHandle(`.metadata.json`,{create:!0})).createWritable();return await r.write(JSON.stringify(t)),await r.close(),n}export{r as i,a as n,i as r,m as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";function t(e,t){return e===t||e.startsWith(t===`/`?`/`:`${t}/`)}function n(e){return e.entries&&delete e.entries[`/.metadata.json`],e}function r(e,r,i){let a=r.entries??{},o={...e.entries??{}};`/`in a&&(o[`/`]=a[`/`]);for(let e of i.paths)e in a?o[e]=a[e]:delete o[e];for(let e of i.prefixes){for(let n of Object.keys(o))t(n,e)&&delete o[n];for(let n of Object.keys(a))t(n,e)&&(o[n]=a[n])}let{entries:s,...c}=r;return n({...c,entries:o})}var i=e({makeOpfsProbe:()=>d,repairOpfsMetadataSidecar:()=>p,repairSidecarDocument:()=>s,resolveWithSidecarRepair:()=>f});const a=16384,o=32768;async function s(e,t){let n={kindFixed:[],sizesFixed:0,dropped:0,selfEntryDropped:!1,inosReassigned:0,nlinksFixed:0,changed:!1},r=e.entries??{};for(let[e,i]of Object.entries(r)){if(e===`/`||typeof i!=`object`||!i)continue;if(e===`/.metadata.json`){delete r[e],n.selfEntryDropped=!0,n.changed=!0;continue}let a=i,o=(a.mode??0)&61440;if(o===40960){l(a,n);continue}let s=await t(e);if(s.kind===`missing`){delete r[e],n.dropped+=1,n.changed=!0;continue}l(a,n),u(e,a,o,s,n)}return c(r,n),n}function c(e,t){let n=0;for(let t of Object.values(e)){let e=t;typeof e?.ino==`number`&&(n=Math.max(n,e.ino)),typeof e?.data==`number`&&(n=Math.max(n,e.data))}let r=n+1,i=new Set;for(let[n,a]of Object.entries(e)){if(typeof a!=`object`||!a)continue;let e=a;if(n===`/`){typeof e.ino==`number`&&i.add(e.ino);continue}let o=e.ino;if(typeof o==`number`&&o!==0&&!i.has(o)){i.add(o);continue}e.ino=r,e.data=r+1,i.add(r),r+=2,t.inosReassigned+=1,t.changed=!0}}function l(e,t){e.nlink||(e.nlink=1,t.nlinksFixed+=1,t.changed=!0)}function u(e,t,n,r,i){if(n===o&&r.kind===`directory`){t.mode=((t.mode??0)&511||493)|a,i.kindFixed.push(`${e} file→dir`),i.changed=!0;return}if(n===a&&r.kind===`file`){t.mode=((t.mode??0)&511||420)|o,t.size=r.size,i.kindFixed.push(`${e} dir→file`),i.changed=!0;return}n===o&&r.kind===`file`&&typeof t.size==`number`&&t.size!==r.size&&(t.size=r.size,i.sizesFixed+=1,i.changed=!0)}function d(e){return async t=>{let n=t.split(`/`).filter(Boolean),r=e;for(let e=0;e<n.length-1;e+=1)try{r=await r.getDirectoryHandle(n[e])}catch{return{kind:`missing`}}let i=n[n.length-1];if(i===void 0)return{kind:`directory`};try{return{kind:`file`,size:(await(await r.getFileHandle(i)).getFile()).size}}catch{}try{return await r.getDirectoryHandle(i),{kind:`directory`}}catch{return{kind:`missing`}}}}async function f(e,t,n){try{return await e()}catch(r){let i=null;try{i=await t()}catch{}if(!i?.changed)throw r;return n(i),await e()}}async function p(e){let t;try{let n=await e.getFileHandle(`.metadata.json`),r=JSON.parse(await(await n.getFile()).text());if(!r||typeof r!=`object`||!r.entries)return null;t=r}catch{return null}let n=await s(t,d(e));if(!n.changed)return n;let r=await(await e.getFileHandle(`.metadata.json`,{create:!0})).createWritable();return await r.write(JSON.stringify(t)),await r.close(),n}export{n as i,i as n,r,d as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{n,r}from"./path-utils-DNJG-zQf.js";import"./logger-DQgFbfwx.js";import{t as i}from"./types-idfTVsM8.js";import{i as a}from"./fs-CFP623sx.js";const o=t(`sudo:sudoers`),s=`/etc/sudoers`,c=`/etc/sudoers.d`,l=/^\/scoops\/[^/]+\/etc\/sudoers$/;function u(e){return`/scoops/${e}/etc/sudoers`}function d(e,t){return e===`no-match`?t===`require-approval`?`require-approval`:`no-match`:e}function f(){return{cmnd:[],read:[],write:[]}}function p(e){return`.+^$()[]|\\{}`.includes(e)?`\\${e}`:e}function m(e){let t=``,n=0;for(;n<e.length;){let r=e[n];r===`*`?(t+=`.*`,n+=e[n+1]===`*`?2:1):r===`?`?(t+=`.`,n+=1):(t+=p(r),n+=1)}return RegExp(`^${t}$`,`s`)}function h(e){return e.split(/\r?\n/,1)[0]?.trim()??``}const g=new Set([`Cmnd`,`Read`,`Write`]);function _(e){let t=e.trim(),n=!1,r=t.search(/\s/);(r===-1?t:t.slice(0,r))===`NOPASSWD`&&(n=!0,t=r===-1?``:t.slice(r).trimStart());let i=t.search(/\s/),a=i===-1?t:t.slice(0,i);if(!g.has(a))return null;let o=i===-1?``:t.slice(i).trim();return o?{directive:a,nopasswd:n,pattern:o}:null}function v(e){let t=f();try{if(typeof e!=`string`)return t;for(let n of e.split(`
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-LESFN7Hj.js";import{n,r}from"./path-utils-DNJG-zQf.js";import"./logger-DQgFbfwx.js";import{t as i}from"./types-idfTVsM8.js";import{i as a}from"./fs-BzYQsTLs.js";const o=t(`sudo:sudoers`),s=`/etc/sudoers`,c=`/etc/sudoers.d`,l=/^\/scoops\/[^/]+\/etc\/sudoers$/;function u(e){return`/scoops/${e}/etc/sudoers`}function d(e,t){return e===`no-match`?t===`require-approval`?`require-approval`:`no-match`:e}function f(){return{cmnd:[],read:[],write:[]}}function p(e){return`.+^$()[]|\\{}`.includes(e)?`\\${e}`:e}function m(e){let t=``,n=0;for(;n<e.length;){let r=e[n];r===`*`?(t+=`.*`,n+=e[n+1]===`*`?2:1):r===`?`?(t+=`.`,n+=1):(t+=p(r),n+=1)}return RegExp(`^${t}$`,`s`)}function h(e){return e.split(/\r?\n/,1)[0]?.trim()??``}const g=new Set([`Cmnd`,`Read`,`Write`]);function _(e){let t=e.trim(),n=!1,r=t.search(/\s/);(r===-1?t:t.slice(0,r))===`NOPASSWD`&&(n=!0,t=r===-1?``:t.slice(r).trimStart());let i=t.search(/\s/),a=i===-1?t:t.slice(0,i);if(!g.has(a))return null;let o=i===-1?``:t.slice(i).trim();return o?{directive:a,nopasswd:n,pattern:o}:null}function v(e){let t=f();try{if(typeof e!=`string`)return t;for(let n of e.split(`
2
2
  `)){let e=n.trim();if(!e||e.startsWith(`#`))continue;let i=_(e);if(!i){o.warn(`Skipping unrecognized sudoers line`,{line:e});continue}let a=i.directive===`Cmnd`?m:r,s={pattern:i.pattern,nopasswd:i.nopasswd,regex:a(i.pattern)};i.directive===`Cmnd`?t.cmnd.push(s):i.directive===`Read`?t.read.push(s):t.write.push(s)}return t}catch(e){return o.error(`Failed to parse sudoers; falling back to self-protection only`,{err:e}),f()}}function y(...e){let t=f();for(let n of e)n&&(t.cmnd.push(...n.cmnd),t.read.push(...n.read),t.write.push(...n.write));return t}function b(e,t){let n=!1;for(let r of e)if(r.regex.test(t)){if(r.nopasswd)return`nopasswd-allow`;n=!0}return n?`require-approval`:`no-match`}function x(e,t){return b(e.cmnd,t.trim())}function S(e){return e===`/etc/sudoers`||e===`/etc/sudoers.d`||e.startsWith(`/etc/sudoers.d/`)||l.test(e)||e===`/etc/slicc/layouts`||e.startsWith(`/etc/slicc/layouts/`)}function C(e,t,r,i){let o=n(r);if(t===`write`){if(S(o))return`require-approval`;if(i?.isContentWrite&&a(o))return`nopasswd-allow`}return b(t===`read`?e.read:e.write,o)}const w=t(`sudo:fs`),T=Symbol.for(`slicc.fs.monkeypatchUnsafe`),E=`${c}/granted`,D=[`readFile`,`readTextFile`,`readDir`,`exists`,`stat`],O=[`writeFile`],ee=[`mkdir`,`rm`];async function te(e,t,n,a){let o=h(a);if(!o)return;let s=t(),l={pattern:o,nopasswd:!0,regex:r(o)};(n===`read`?s.read:s.write).push(l);let u=`NOPASSWD ${n===`read`?`Read`:`Write`} ${o}\n`;try{await e.mkdir(c,{recursive:!0});let t=``;try{t=await e.readFile(E,{encoding:`utf-8`})}catch(e){if(!(e instanceof i&&e.code===`ENOENT`))throw e}let n=t.length>0&&!t.endsWith(`
3
3
  `)?`
4
4
  `:``;await e.writeFile(E,t+n+u)}catch(e){w.warn(`Failed to persist NOPASSWD grant; effective in-session only`,{error:e instanceof Error?e.message:String(e)})}}function ne(e,t){let{broker:r,getPolicy:a}=t,o=t.defaultDisposition??`allow`,s=t.onGrant?t.onGrant:(t,n)=>te(e,a,t,n);async function c(e,t,c=!1){let l=n(t),u=C(a(),e,l,{isContentWrite:c});if((e===`write`?d(u,o):u)!==`require-approval`)return;let f=e,p=await r.requestApproval({kind:f,detail:l});if(p.decision===`deny`)throw new i(`EACCES`,`sudo: approval denied`,l);p.decision===`always`&&await s(e,p.pattern?.trim()||l)}function l(e){return C(a(),`read`,n(e))!==`require-approval`}let u=t=>typeof e[t]==`function`,f={};for(let t of D)u(t)&&(f[t]=async(n,...r)=>(await c(`read`,n),e[t](n,...r)));for(let t of O)u(t)&&(f[t]=async(n,...r)=>(await c(`write`,n,!0),e[t](n,...r)));for(let t of ee)u(t)&&(f[t]=async(n,...r)=>(await c(`write`,n),e[t](n,...r)));return u(`walk`)&&(f.walk=async function*(t,...n){await c(`read`,t),yield*e.walk(t,...n)}),u(`symlink`)&&(f.symlink=async(t,n)=>(await c(`write`,n),e.symlink(t,n))),u(`rename`)&&(f.rename=async(t,n)=>(await c(`read`,t),await c(`write`,t),await c(`write`,n),e.rename(t,n))),u(`copyFile`)&&(f.copyFile=async(t,n)=>(await c(`read`,t),await c(`write`,n),e.copyFile(t,n))),u(`mount`)&&(f.mount=async(t,...n)=>(await c(`write`,t),e.mount(t,...n))),u(`unmount`)&&(f.unmount=async t=>(await c(`write`,t),e.unmount(t))),u(`refreshMount`)&&(f.refreshMount=async(t,...n)=>(await c(`write`,t),e.refreshMount(t,...n))),u(`statSync`)&&(f.statSync=t=>l(t)?e.statSync(t):null),u(`readDirSync`)&&(f.readDirSync=t=>l(t)?e.readDirSync(t):null),new Proxy(e,{get(e,t,n){if(t===T)return!0;if(typeof t==`string`&&t in f)return f[t];let r=Reflect.get(e,t,n);return typeof r==`function`?r.bind(e):r}})}const k=`/workspace/skills`,A=`SKILL.md`,j=t(`skills-discovery`),M=[`native`,`agents`,`claude`,`marketplace`,`plugin`],N=new Map([[`.agents`,`agents`],[`.claude`,`claude`]]),P=new Set([`.git`,`.slicc`,`node_modules`]),F=2e4,I=[`mkdir`,`mount`,`rename`,`rm`,`unmount`,`writeFile`],L=new WeakMap,R=new WeakSet;async function z(e,t=k){let n=await W(e,t),r=await V(e),i=await B(e);return[...M.flatMap(e=>(e===`native`?n:e===`plugin`?i:r.filter(t=>t.source===e)).sort((e,t)=>e.path.localeCompare(t.path)))]}async function B(e){let t;try{let n=await e.readTextFile(`/workspace/.plugins/plugins.json`),r=JSON.parse(n);if(!r||typeof r!=`object`||!r.plugins)return[];t=Object.values(r.plugins).map(e=>e?.root).filter(e=>typeof e==`string`)}catch{return[]}let n=[];for(let r of t){let t=`${r}/skills`,i=await Z(e,t);for(let r of i){if(r.type!==`directory`)continue;let i=`${t}/${r.name}`,a=`${i}/${A}`;await X(e,a)&&n.push({source:`plugin`,sourceRoot:t,path:i,skillFilePath:a})}}return n}async function V(e){if(H(e))return(await J(e)).map(e=>({...e}));Y(e);let t=e,n=L.get(t);if(n)return n.map(e=>({...e}));let r=await J(e);return L.set(t,r),r.map(e=>({...e}))}function H(e){try{return e[T]===!0}catch{return!1}}function U(e,t){let n=new Map,r=new Map;for(let i of e){let e=t(i);if(!n.has(e)){n.set(e,i);continue}let a=r.get(e)??{name:e,winner:n.get(e),shadowed:[]};a.shadowed.push(i),r.set(e,a)}return{winners:Array.from(n.values()),collisions:Array.from(r.values())}}async function W(e,t){let n=await Z(e,t),r=[];for(let i of n){if(i.type!==`directory`)continue;let n=`${t}/${i.name}`,a=`${n}/${A}`;await X(e,a)&&r.push({source:`native`,sourceRoot:t,path:n,skillFilePath:a})}return r}async function G(e,t){let n;try{n=await e.readTextFile(t)}catch{return[]}let r;try{r=JSON.parse(n)}catch{return[]}if(typeof r!=`object`||!r||!Array.isArray(r.plugins))return[];let i=t.replace(/\/[^/]+$/,``).replace(/\/.claude-plugin$/,``),a=[];for(let e of r.plugins){if(typeof e!=`object`||!e)continue;let t=e.source;if(typeof t!=`string`||t.startsWith(`/`)||t.split(`/`).includes(`..`))continue;let n=t.replace(/^\.\//,``).replace(/\/$/,``).replace(/^\.$/,``);a.push(n?`${i}/${n}`:i)}return a}async function K(e,t,n){let r=await G(e,`${t}/marketplace.json`),i=[];for(let t of r){let r=`${t}/skills`,a=await Z(e,r);for(let t of a){if(t.type!==`directory`)continue;let a=`${r}/${t.name}`,o=`${a}/${A}`;!await X(e,o)||n.has(a)||(n.add(a),i.push({source:`marketplace`,sourceRoot:r,path:a,skillFilePath:o}))}}return i}async function q(e,t,n,r){let i=`${t}/skills`,a=await Z(e,i),o=[];for(let t of a){if(t.type!==`directory`)continue;let a=`${i}/${t.name}`,s=`${a}/${A}`;!await X(e,s)||r.has(a)||(r.add(a),o.push({source:n,sourceRoot:i,path:a,skillFilePath:s}))}return o}async function J(e){let t=[],n=new Set,r=new Set([`/`]),i=[{path:`/`,depth:0}];for(let a=0;a<i.length;a+=1){if(a>=F){j.warn(`skills discovery: directory budget exhausted; walk truncated`,{budget:F});break}let{path:o,depth:s}=i[a],c=await Z(e,o);for(let a of c){if(a.type!==`directory`||a.name===`.`||a.name===`..`)continue;let c=o===`/`?`/${a.name}`:`${o}/${a.name}`,l=N.get(a.name);if(l){let r=await q(e,c,l,n);t.push(...r)}if(a.name===`.claude-plugin`){let r=await K(e,c,n);t.push(...r);continue}!P.has(a.name)&&s<24&&!r.has(c)&&(r.add(c),i.push({path:c,depth:s+1}))}}return t}function Y(e){if(H(e))return;let t=e;if(R.has(t))return;R.add(t);let n=e;for(let r of I){let i=n[r];if(typeof i!=`function`)continue;let a=i;try{n[r]=async(...n)=>{let r=await a.apply(e,n);return L.delete(t),r}}catch{}}}async function X(e,t){try{return await e.stat(t),!0}catch{return!1}}async function Z(e,t){try{return[...await e.readDir(t)].sort((e,t)=>e.name.localeCompare(t.name))}catch{return[]}}async function Q(e,t=`/workspace/skills`){let n=await z(e,t),r=[];for(let t of n){let n=t.path.split(`/`).pop()??t.path,i=``;if(t.skillFilePath)try{i=ie(await e.readTextFile(t.skillFilePath))??``}catch{}r.push({name:n,source:t.source,sourceRoot:t.sourceRoot,path:t.path,skillFilePath:t.skillFilePath,description:i})}let{winners:i,collisions:a}=U(r,e=>e.name),o=new Map(a.map(e=>[e.winner.path,e.shadowed.map(e=>e.path)]));return i.map(e=>({...e,shadowedPaths:o.get(e.path)}))}async function $(e,t,n=`/workspace/skills`){return(await Q(e,n)).find(e=>e.name===t)||null}async function re(e,t,n=`/workspace/skills`){let r=await $(e,t,n);if(!r?.skillFilePath)return null;try{return await e.readTextFile(r.skillFilePath)}catch{return null}}function ie(e){let t=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
@@ -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-CFP623sx.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-BzYQsTLs.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-CFP623sx.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-BzYQsTLs.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{o as n,r,t as i}from"./proxied-fetch-DLOgqk5A.js";import{n as a}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-CgsZ7LTp.js";import{t as o}from"./quick-llm-BqAaPz_b.js";import{installPanelSudoResponder as s,n as c}from"./panel-responder-B6PI12mV.js";var l=t(`sudo-suggest`),u=[`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{o as n,r,t as i}from"./proxied-fetch-DLOgqk5A.js";import{n as a}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-CgsZ7LTp.js";import{t as o}from"./quick-llm-BP2LdcpP.js";import{installPanelSudoResponder as s,n as c}from"./panel-responder-B6PI12mV.js";var l=t(`sudo-suggest`),u=[`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
  `),d=[`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 f(e,t){if(e.suggestedPattern&&e.suggestedPattern.trim().length>0)return e.suggestedPattern.trim();let n=e.detail.trim(),r=e.kind===`command`?u:d,i=null;try{i=await o({prompt:n,system:r,maxTokens:40,temperature:0,signal:t})}catch(e){l.debug(`suggestPattern: quickLabel threw`,{error:e instanceof Error?e.message:String(e)}),i=null}return p(i)||n}function p(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 m=t(`sudo-ext`);function h(e={}){let t=e.suggest??f;return{async requestApproval(e){let n;try{n=await t(e)}catch{n=e.detail}return g({...e,suggestedPattern:n})}}}function g(e){return new Promise(t=>{let n=globalThis.chrome?.runtime;if(!n||typeof n.sendMessage!=`function`){m.warn(`chrome.runtime.sendMessage unavailable — denying`),t({decision:`deny`});return}let r=r=>{let i=n.lastError;if(i){m.warn(`sudo relay lastError — denying`,{error:i.message}),t({decision:`deny`});return}if(!r||typeof r!=`object`){m.warn(`sudo relay empty response — denying`),t({decision:`deny`});return}let a=r;if(!a.ok||!a.decision){m.warn(`sudo relay error response — denying`,{error:a.error}),t({decision:`deny`});return}t(_(a.decision,e.suggestedPattern??e.detail))};try{n.sendMessage({source:`offscreen`,payload:{type:c,request:e}},r)}catch(e){m.warn(`sudo relay threw — denying`,{error:e instanceof Error?e.message:String(e)}),t({decision:`deny`})}})}function _(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 v=t(`sudo-http`);function y(e={}){let t=e.fetchImpl??globalThis.fetch.bind(globalThis),r=e.path??`/api/sudo-approve`,a=e.suggest??f;return{async requestApproval(e){let o;try{o=await a(e)}catch{o=e.detail}try{let a=await t(n(r),{method:`POST`,headers:i({"Content-Type":`application/json`}),body:JSON.stringify({kind:e.kind,detail:e.detail,suggestedPattern:o})});return a.ok?b(await a.json(),o):(v.warn(`sudo endpoint returned non-OK status — denying`,{status:a.status}),{decision:`deny`})}catch(e){return v.warn(`sudo endpoint request failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function b(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 x=t(`sudo-panel-rpc`),S=6e5;function C(t={}){let n=t.suggest??f,r=t.timeoutMs??S,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){let t;try{t=await n(e)}catch{t=e.detail}let a={...e,suggestedPattern:t},o;try{o=await i()}catch(e){return x.warn(`panel-RPC client lookup threw — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}if(!o)return x.warn(`panel-RPC client unavailable in worker realm — denying`),{decision:`deny`};try{let{decision:e}=await o.call(`sudo-request`,{request:a},{timeoutMs:r});return w(e,t)}catch(e){return x.warn(`sudo panel-RPC relay failed — denying`,{error:e instanceof Error?e.message:String(e)}),{decision:`deny`}}}}}function w(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 T=t(`sudo`),E=`__slicc_sudo`;function D(){return a()}function O(){return typeof chrome>`u`&&r()!==null}function k(){return D()?h():O()?C():y()}function A(e=k()){let t={requestApproval:t=>e.requestApproval(t)};return globalThis[E]=t,T.info(`sudo broker test hook published on globalThis.__slicc_sudo`),t}export{s as installPanelSudoResponder,A as installSudoTestHook};
@@ -1 +1 @@
1
- import{D as e,g as t}from"./db-BTiVtoD4.js";const n=`slicc:last-seen-version`;function r(){return{version:`6.55.4`,releasedAt:`2026-08-18T08:43:04Z`}}async function i(){let e=await t(n);return e&&e.length>0?e:null}async function a(t){await e(n,t)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
1
+ import{D as e,g as t}from"./db-BTiVtoD4.js";const n=`slicc:last-seen-version`;function r(){return{version:`6.55.5`,releasedAt:`2026-08-18T14:03:02Z`}}async function i(){let e=await t(n);return e&&e.length>0?e:null}async function a(t){await e(n,t)}async function o(){let e=r(),t=await i();return t===null?(await a(e.version),{bundled:e,lastSeen:null,isUpgrade:!1}):t===e.version?{bundled:e,lastSeen:t,isUpgrade:!1}:{bundled:e,lastSeen:t,isUpgrade:!0}}async function s(e){await a(e)}export{o as detectUpgrade,s as recordVersionSeen};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-P4YgaU1V.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-2WTa2Agb.js";import{wireWcDetached as a}from"./wc-detached-B3WCbbZT.js";async function o(o,s,c=!1){let l=n(o,`extension · wc`),u=new r(t(l.wiring));i(l,u,s),a({client:u,isDetachedSelf:c});let{setupSudoExtension:d}=await e(async()=>{let{setupSudoExtension:e}=await import(`./setup-sudo-P4YgaU1V.js`).then(e=>e.n);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2]));await d({log:s}),u.requestState(),s.info(`WC extension shell connected to offscreen engine`)}export{o as mountWcUiExtension};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-CeUb8XgW.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-C-G4-UES.js";import{wireWcDetached as a}from"./wc-detached-B3WCbbZT.js";async function o(o,s,c=!1){let l=n(o,`extension · wc`),u=new r(t(l.wiring));i(l,u,s),a({client:u,isDetachedSelf:c});let{setupSudoExtension:d}=await e(async()=>{let{setupSudoExtension:e}=await import(`./setup-sudo-CeUb8XgW.js`).then(e=>e.n);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2]));await d({log:s}),u.requestState(),s.info(`WC extension shell connected to offscreen engine`)}export{o as mountWcUiExtension};
@@ -1,5 +1,5 @@
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-BeUFfvlg.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-9EXC9iPp.js","assets/icons-DtQGhvkp.js","assets/src-SZZWiNhu.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-2WTa2Agb.js","assets/account-store-MovPQ1t7.js","assets/bedrock-camp-C8bCNVSq.js","assets/diagnostics-DN_idNHx.js","assets/transform-messages-N_eMsP2M.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-DLOgqk5A.js","assets/base64-DpPqYZJF.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CnKyhZKB.js","assets/runtime-env-E-i2SW1s.js","assets/secrets-bridge-client-Bz8CHwrq.js","assets/port-bridge-client-Bw9y6i0a.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-CopfWmua.js","assets/panel-rpc-B3MSVImO.js","assets/telemetry-DeLkquP_.js","assets/runtime-env-CgsZ7LTp.js","assets/feature-flags-Cf-Bv5AK.js","assets/tray-runtime-config-BDiVOcsu.js","assets/messages-BD4p8GuF.js","assets/setup-standalone-prelude-CvG3zGpm.js","assets/bridge-launch-params-zrpWWxT3.js","assets/setup-sudo-P4YgaU1V.js","assets/tray-follower-status-5SqDRLX8.js","assets/src-BWaKqLvQ.js","assets/html-B_Hg2WOy.js","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-CochmofT.js","assets/db-C7OEVMWU.js","assets/shared-BGkb0Szh.js","assets/mime-types-ugOWOUZ9.js","assets/dictation-priming-CNllGgNq.js","assets/export-provider-BEHTjSYw.js","assets/dip-DKzLsmex.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-CMk2ghMi.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-CDUlpA1k.js","assets/session-freezer-DSbFNZoP.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/agent-message-to-chat-BuL6bt3T.js","assets/wc-shell-BVgleBNS.js","assets/timestamp-preference-sKwBl5I8.js","assets/wc-scoop-color-CByZNEJo.js","assets/wc-shell-WkeczD9x.css","assets/host-command-CJMUZX5D.js","assets/browser-BCEjSsoK.js","assets/legacy-styles-DcRu2WCJ.js","assets/wc-transcript-export-B17cQHtd.js","assets/export-spool-Eul4J1RP.js","assets/follower-navigate-watcher-BEVyfIJi.js","assets/navigation-watcher-CcKsLKw9.js","assets/handoff-link-BM4ctkE8.js","assets/discovery-preference-lWdnjDWF.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"./tray-sync-protocol-BZ5yhJH9.js";import{i,n as a}from"./wc-live-2WTa2Agb.js";import{r as o,t as s}from"./feature-flags-Cf-Bv5AK.js";import{i as c,m as l,p as u,r as d,u as ee}from"./tray-runtime-config-BDiVOcsu.js";import{n as te}from"./setup-standalone-prelude-CvG3zGpm.js";import{n as ne,o as re,t as f}from"./tray-follower-status-5SqDRLX8.js";import{n as ie}from"./theme-engine-By4GU_Wc.js";import{i as p,r as m}from"./dip-DKzLsmex.js";import{a as ae,i as oe}from"./wc-shell-BVgleBNS.js";import{WcSprinkleZone as se}from"./wc-sprinkles-Buo3BmOo.js";import{wireWcAttach as ce}from"./wc-attach-3A9p5w25.js";import{s as le}from"./host-command-CJMUZX5D.js";import{a as ue,i as de,l as fe,r as pe,t as h}from"./wc-tray-scoops-DFuuk86P.js";import{installLeaderPermissionsSurface as me}from"./wc-permissions-W2s7R66b.js";var g=t(`follower-switch-out`);function he(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(c):t.storage.setItem(c,e.workerBaseUrl)}catch(e){g.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=l(e);n!==e&&t.replaceHref(n)}catch(e){g.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var _=6;function v(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>=_)){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 y=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function ge(e){return y.has(e)}var b=`slicc-signin-redirect-style`,x=`wc-signin-redirect`,S=`
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-BeUFfvlg.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-9EXC9iPp.js","assets/icons-DtQGhvkp.js","assets/src-SZZWiNhu.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-C-G4-UES.js","assets/account-store-C7-BuTtO.js","assets/bedrock-camp-C8bCNVSq.js","assets/diagnostics-DN_idNHx.js","assets/transform-messages-N_eMsP2M.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-CrhNqqEN.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-DLOgqk5A.js","assets/base64-DpPqYZJF.js","assets/runtime-env-Dlaokqg1.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CnKyhZKB.js","assets/runtime-env-E-i2SW1s.js","assets/secrets-bridge-client-Bz8CHwrq.js","assets/port-bridge-client-Bw9y6i0a.js","assets/tool-ui-DfXu6quJ.js","assets/tool-result-images-D8kQ0hH0.js","assets/providers-IKznCt1A.js","assets/panel-rpc-B3MSVImO.js","assets/telemetry-DeLkquP_.js","assets/runtime-env-CgsZ7LTp.js","assets/feature-flags-Cf-Bv5AK.js","assets/tray-runtime-config-BDiVOcsu.js","assets/messages-BD4p8GuF.js","assets/setup-standalone-prelude-D84Csm6A.js","assets/bridge-launch-params-zrpWWxT3.js","assets/setup-sudo-CeUb8XgW.js","assets/tray-follower-status-5SqDRLX8.js","assets/src-BWaKqLvQ.js","assets/html-B_Hg2WOy.js","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-CochmofT.js","assets/db-C7OEVMWU.js","assets/shared-BGkb0Szh.js","assets/mime-types-ugOWOUZ9.js","assets/dictation-priming-CNllGgNq.js","assets/export-provider-BEHTjSYw.js","assets/dip-DKzLsmex.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-CMk2ghMi.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-CDUlpA1k.js","assets/session-freezer-CQcYNTkt.js","assets/attachments-CByeG2Ru.js","assets/types-idfTVsM8.js","assets/agent-message-to-chat-BuL6bt3T.js","assets/wc-shell-DALO2z4v.js","assets/timestamp-preference-sKwBl5I8.js","assets/wc-scoop-color-CByZNEJo.js","assets/wc-shell-WkeczD9x.css","assets/host-command-CJMUZX5D.js","assets/browser-BCEjSsoK.js","assets/legacy-styles-DcRu2WCJ.js","assets/wc-transcript-export-B17cQHtd.js","assets/export-spool-Eul4J1RP.js","assets/follower-navigate-watcher-BEVyfIJi.js","assets/navigation-watcher-CcKsLKw9.js","assets/handoff-link-BM4ctkE8.js","assets/discovery-preference-lWdnjDWF.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"./tray-sync-protocol-BZ5yhJH9.js";import{i,n as a}from"./wc-live-C-G4-UES.js";import{r as o,t as s}from"./feature-flags-Cf-Bv5AK.js";import{i as c,m as l,p as u,r as d,u as ee}from"./tray-runtime-config-BDiVOcsu.js";import{n as te}from"./setup-standalone-prelude-D84Csm6A.js";import{n as ne,o as re,t as f}from"./tray-follower-status-5SqDRLX8.js";import{n as ie}from"./theme-engine-By4GU_Wc.js";import{i as p,r as m}from"./dip-DKzLsmex.js";import{a as ae,i as oe}from"./wc-shell-DALO2z4v.js";import{WcSprinkleZone as se}from"./wc-sprinkles-DSMHIAYV.js";import{wireWcAttach as ce}from"./wc-attach-3A9p5w25.js";import{s as le}from"./host-command-CJMUZX5D.js";import{a as ue,i as de,l as fe,r as pe,t as h}from"./wc-tray-scoops-DFuuk86P.js";import{installLeaderPermissionsSurface as me}from"./wc-permissions-W2s7R66b.js";var g=t(`follower-switch-out`);function he(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(c):t.storage.setItem(c,e.workerBaseUrl)}catch(e){g.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=l(e);n!==e&&t.replaceHref(n)}catch(e){g.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var _=6;function v(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>=_)){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 y=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function ge(e){return y.has(e)}var b=`slicc-signin-redirect-style`,x=`wc-signin-redirect`,S=`
3
3
  .${x}{display:flex;gap:10px;align-items:flex-start;margin:10px 12px;padding:12px 14px;
4
4
  border:1px solid var(--line);border-radius:12px;background:var(--ghost);color:var(--ink);
5
5
  font-family:var(--ui);font-size:13px;line-height:1.4;}
@@ -14,4 +14,4 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF
14
14
  .${x}__x:hover{color:var(--ink);}
15
15
  `;function C(e){if(e.getElementById(b))return;let t=e.createElement(`style`);t.id=b,t.textContent=S,e.head.appendChild(t)}function w(e,t){C(e);let n=e.createElement(`div`);n.className=x,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${x}__body`;let i=e.createElement(`div`);i.className=`${x}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${x}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${x}__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=`${x}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function T(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${x}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=w(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 E(e,t){return w(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 D=t(`wc-follower`),O=`/shared/sprinkles/welcome/`,k={sendMessage:()=>{},onEvent:()=>()=>{},stop:()=>{}};function A(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function j(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 M(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 N={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,newSprinkle:!0,monitor:!0,showTimestamps:!0};function P(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
16
  `)}{display:none!important;}`:``;e.history||(r+=`
17
- .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function F(e,t){return e&&!t}async function I(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-BeUFfvlg.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 L(t,c,l){let d=l===`cherry`,g=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,_=window.location.ancestorOrigins?.[0],y=d&&(_?.startsWith(`chrome-extension://`)??!1),b;try{b=await te({runtimeMode:l,envBaseUrl:null,window,log:c})}catch(e){let n=e instanceof Error?e.message:String(e);D.error(`follower prelude failed`,{runtimeMode:l,error:n}),j(t,n);return}let x=d?b.cherryJoinUrl:ee(window.location.href,window.localStorage);if(!x){D.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-2WTa2Agb.js`).then(e=>e.r);return{mountWcUiLive:e}},__vite__mapDeps([13,1,14,7,15,16,17,18,19,20,3,21,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,5,65,66,67,6,8,9,10,0,12,68,69,70,71]));return n(t,c,`standalone`)}let S=a(t,d?`cherry · follower`:`follower`);if(d&&b.cherryTransport?.theme&&ie(b.cherryTransport.theme),d&&b.cherryTransport?.flags)try{let e=JSON.parse(b.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&s(e)}catch(e){D.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let C=o(`panel-layouts`);if(S.refs.dockTree.tilesMovable=C,d&&b.cherryTransport?.layout)try{let e=JSON.parse(b.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?C?await I(S,e,D):D.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):S.refs.dockTree.setTree(e)}catch(e){D.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let w=d&&b.cherryTransport?.effortLevel;w?localStorage.setItem(`slicc_locked_effort_level`,w):localStorage.removeItem(`slicc_locked_effort_level`);let L=d&&b.cherryTransport?{...N,...b.cherryTransport.features}:N,_e=S.refs.composerMeta;M(S.refs.fileTree,S.refs.termSurface,S.refs.memoryHost,S.refs.monitor,L),P(L),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([67,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{L.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([72,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let R=new Map,z=()=>b.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),B=()=>{y&&T(S.refs.thread,{onOpenTab:z})},ve=e=>{let t=e.querySelectorAll(`img[src^="${O}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(E(e.ownerDocument,{onOpenTab:z})):t.remove()}),!0)},ye=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),ge(e)&&B()},V=new i({thread:S.refs.thread,agent:k,onQueuedChange:e=>{S.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(y&&ve(n),R.set(e.id,p(n,ye)))},onMessageDisposed:e=>{let t=R.get(e);t&&(m(t),R.delete(e))},readOnlyToolUi:!0});if(S.setController(V),y)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])S.refs.thread.addEventListener(e,()=>B());let H=`Connecting to leader…`,U=`Ask the leader, or describe a change…`,W=(e,t)=>{S.refs.inputCard.setAttribute(`placeholder`,t),e?S.refs.inputCard.removeAttribute(`disabled`):S.refs.inputCard.setAttribute(`disabled`,``)};W(!1,H),de(S.refs.floatbar),re(e=>{try{window.localStorage.setItem(f,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(f,JSON.stringify(ne()))}catch{}g||S.refs.composer.setAttribute(`ptt`,``);let be=ce({inputCard:S.refs.inputCard,freezer:S.refs.freezer,composer:S.refs.composer,noCamera:g,log:D});S.refs.switcher.setAttribute(`gaze-target`,`slicc-input-card`),S.refs.inputCard.addEventListener(`input`,()=>{S.refs.switcher.scrutinize(),S.refs.switcher.wake()}),S.refs.inputCard.addEventListener(`submit`,e=>{let t=ae(e)??``,n=be.take();(t.trim()||n.length)&&(V.sendUserMessage(t,n,{steer:oe(e)}),S.refs.inputCard.clear?.())});let G=new se(S.refs).callbacks(),K=null;S.refs.switcher.connection=`disconnected`;let q,J=null,xe=()=>(J||=me({runtimeMode:l})?.element??null,J),Y=[],Se=v({refs:S.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>F(b.hasLocalCdpSurface,g),window,log:D}),X=le({composerMeta:_e,getSync:()=>q.currentSync,getSelectedScoopJid:()=>K,modelPickerEnabled:L.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});q=ue({joinUrl:x,runtime:d?r:`slicc-standalone`,advertisesCdpTargets:F(b.hasLocalCdpSurface,g),onTargetsUpdated:e=>{Y=e,Se.refresh()},...d||g?{}:{onOAuthPopupRequest:(e,t)=>pe(e,t,{getPermissionsSurface:xe,window})},browserAPI:b.browser,onSnapshot:(e,t)=>{K=t,V.loadMessages(e),V.setProcessing(e.some(e=>e.isStreaming))},onUserMessage:(e,t,n,r)=>V.addUserMessage(e,r),onStatus:(e,t)=>{fe(t,K)&&V.setProcessing(e===`processing`)},setChatAgent:e=>{V.setAgent(e),e.onEvent(e=>{e.type===`tool_result`&&e.isError&&S.refs.switcher.glower()})},onTranscriptExportApprovalRequest:async t=>{let{openTranscriptExportApproval:n}=await e(async()=>{let{openTranscriptExportApproval:e}=await import(`./wc-transcript-export-B17cQHtd.js`);return{openTranscriptExportApproval:e}},__vite__mapDeps([73,7,74,21,43,1])),r=d?b.cherryTransport?.hostOrigin:void 0;return n({delegated:!0,selector:t.selector,signal:t.signal,...r?{hostOrigin:r}:{},...t.estimatedBytes==null?{}:{estimatedBytes:t.estimatedBytes}})},onConnectionChange:e=>{S.refs.switcher.connection=e?`connected`:`disconnected`,W(e,e?U:H),e||X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>K,onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:U)},onGaveUp:e=>{D.error(`follower gave up reaching the leader`,{error:e}),S.refs.switcher.connection=`disconnected`,W(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{D.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),u(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):D.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!K||!e.some(e=>e.jid===K))&&(K=t),S.refs.switcher.scoops=h(e),S.refs.switcher.setAttribute(`active`,K??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...d?{onCherrySliccEvent:(e,t)=>b.cherryTransport?.emitSliccEventToHost(e,t)}:{}});for(let e of[`save`,`skip`,`erase`])S.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});o(`agentic-memory`)&&S.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),S.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(K=t,S.refs.switcher.setAttribute(`active`,t),q.currentSync?.selectScoop(t))}),d&&b.cherryTransport&&(b.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),b.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=A(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-BEVyfIJi.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([75,3,22,1,7,23,21,24,25,76,77,78]));Z=t(b.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{S.refs.avatarMenu.items=[{kind:`separator`},...y?[{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}]};$(),S.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){b.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-B17cQHtd.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([73,7,74,21,43,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{D.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{he({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()})}),D.info(`follower mounted`,{runtimeMode:l,isCherry:d})}export{L as mountWcUiFollower};
17
+ .wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function F(e,t){return e&&!t}async function I(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-BeUFfvlg.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 L(t,c,l){let d=l===`cherry`,g=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,_=window.location.ancestorOrigins?.[0],y=d&&(_?.startsWith(`chrome-extension://`)??!1),b;try{b=await te({runtimeMode:l,envBaseUrl:null,window,log:c})}catch(e){let n=e instanceof Error?e.message:String(e);D.error(`follower prelude failed`,{runtimeMode:l,error:n}),j(t,n);return}let x=d?b.cherryJoinUrl:ee(window.location.href,window.localStorage);if(!x){D.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-C-G4-UES.js`).then(e=>e.r);return{mountWcUiLive:e}},__vite__mapDeps([13,1,14,7,15,16,17,18,19,20,3,21,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,5,65,66,67,6,8,9,10,0,12,68,69,70,71]));return n(t,c,`standalone`)}let S=a(t,d?`cherry · follower`:`follower`);if(d&&b.cherryTransport?.theme&&ie(b.cherryTransport.theme),d&&b.cherryTransport?.flags)try{let e=JSON.parse(b.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&s(e)}catch(e){D.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let C=o(`panel-layouts`);if(S.refs.dockTree.tilesMovable=C,d&&b.cherryTransport?.layout)try{let e=JSON.parse(b.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?C?await I(S,e,D):D.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):S.refs.dockTree.setTree(e)}catch(e){D.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let w=d&&b.cherryTransport?.effortLevel;w?localStorage.setItem(`slicc_locked_effort_level`,w):localStorage.removeItem(`slicc_locked_effort_level`);let L=d&&b.cherryTransport?{...N,...b.cherryTransport.features}:N,_e=S.refs.composerMeta;M(S.refs.fileTree,S.refs.termSurface,S.refs.memoryHost,S.refs.monitor,L),P(L),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([67,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{L.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([72,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let R=new Map,z=()=>b.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),B=()=>{y&&T(S.refs.thread,{onOpenTab:z})},ve=e=>{let t=e.querySelectorAll(`img[src^="${O}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(E(e.ownerDocument,{onOpenTab:z})):t.remove()}),!0)},ye=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),ge(e)&&B()},V=new i({thread:S.refs.thread,agent:k,onQueuedChange:e=>{S.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(y&&ve(n),R.set(e.id,p(n,ye)))},onMessageDisposed:e=>{let t=R.get(e);t&&(m(t),R.delete(e))},readOnlyToolUi:!0});if(S.setController(V),y)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])S.refs.thread.addEventListener(e,()=>B());let H=`Connecting to leader…`,U=`Ask the leader, or describe a change…`,W=(e,t)=>{S.refs.inputCard.setAttribute(`placeholder`,t),e?S.refs.inputCard.removeAttribute(`disabled`):S.refs.inputCard.setAttribute(`disabled`,``)};W(!1,H),de(S.refs.floatbar),re(e=>{try{window.localStorage.setItem(f,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(f,JSON.stringify(ne()))}catch{}g||S.refs.composer.setAttribute(`ptt`,``);let be=ce({inputCard:S.refs.inputCard,freezer:S.refs.freezer,composer:S.refs.composer,noCamera:g,log:D});S.refs.switcher.setAttribute(`gaze-target`,`slicc-input-card`),S.refs.inputCard.addEventListener(`input`,()=>{S.refs.switcher.scrutinize(),S.refs.switcher.wake()}),S.refs.inputCard.addEventListener(`submit`,e=>{let t=ae(e)??``,n=be.take();(t.trim()||n.length)&&(V.sendUserMessage(t,n,{steer:oe(e)}),S.refs.inputCard.clear?.())});let G=new se(S.refs).callbacks(),K=null;S.refs.switcher.connection=`disconnected`;let q,J=null,xe=()=>(J||=me({runtimeMode:l})?.element??null,J),Y=[],Se=v({refs:S.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>F(b.hasLocalCdpSurface,g),window,log:D}),X=le({composerMeta:_e,getSync:()=>q.currentSync,getSelectedScoopJid:()=>K,modelPickerEnabled:L.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});q=ue({joinUrl:x,runtime:d?r:`slicc-standalone`,advertisesCdpTargets:F(b.hasLocalCdpSurface,g),onTargetsUpdated:e=>{Y=e,Se.refresh()},...d||g?{}:{onOAuthPopupRequest:(e,t)=>pe(e,t,{getPermissionsSurface:xe,window})},browserAPI:b.browser,onSnapshot:(e,t)=>{K=t,V.loadMessages(e),V.setProcessing(e.some(e=>e.isStreaming))},onUserMessage:(e,t,n,r)=>V.addUserMessage(e,r),onStatus:(e,t)=>{fe(t,K)&&V.setProcessing(e===`processing`)},setChatAgent:e=>{V.setAgent(e),e.onEvent(e=>{e.type===`tool_result`&&e.isError&&S.refs.switcher.glower()})},onTranscriptExportApprovalRequest:async t=>{let{openTranscriptExportApproval:n}=await e(async()=>{let{openTranscriptExportApproval:e}=await import(`./wc-transcript-export-B17cQHtd.js`);return{openTranscriptExportApproval:e}},__vite__mapDeps([73,7,74,21,43,1])),r=d?b.cherryTransport?.hostOrigin:void 0;return n({delegated:!0,selector:t.selector,signal:t.signal,...r?{hostOrigin:r}:{},...t.estimatedBytes==null?{}:{estimatedBytes:t.estimatedBytes}})},onConnectionChange:e=>{S.refs.switcher.connection=e?`connected`:`disconnected`,W(e,e?U:H),e||X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>K,onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:U)},onGaveUp:e=>{D.error(`follower gave up reaching the leader`,{error:e}),S.refs.switcher.connection=`disconnected`,W(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),d&&b.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{D.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),u(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):D.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!K||!e.some(e=>e.jid===K))&&(K=t),S.refs.switcher.scoops=h(e),S.refs.switcher.setAttribute(`active`,K??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...d?{onCherrySliccEvent:(e,t)=>b.cherryTransport?.emitSliccEventToHost(e,t)}:{}});for(let e of[`save`,`skip`,`erase`])S.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});o(`agentic-memory`)&&S.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),S.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(K=t,S.refs.switcher.setAttribute(`active`,t),q.currentSync?.selectScoop(t))}),d&&b.cherryTransport&&(b.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),b.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=A(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-BEVyfIJi.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([75,3,22,1,7,23,21,24,25,76,77,78]));Z=t(b.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{S.refs.avatarMenu.items=[{kind:`separator`},...y?[{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}]};$(),S.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){b.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-B17cQHtd.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([73,7,74,21,43,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{D.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{he({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()})}),D.info(`follower mounted`,{runtimeMode:l,isCherry:d})}export{L as mountWcUiFollower};