sliccy 6.128.2 → 6.128.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/sudo/endpoint.d.ts +4 -2
- package/dist/node-server/sudo/endpoint.js +4 -2
- package/dist/node-server/sudo/types.d.ts +3 -1
- package/dist/node-server/sudo/types.js +3 -1
- package/dist/ui/.vite/manifest.json +255 -221
- package/dist/ui/assets/{account-store-QAWTf9es.js → account-store-DHbYljA2.js} +3 -3
- package/dist/ui/assets/{account-store-AnNFDy2P.js → account-store-D_vayktH.js} +1 -1
- package/dist/ui/assets/{adobe-BN1ZAXjw.js → adobe-DdaacmhV.js} +1 -1
- package/dist/ui/assets/{adobe-CwWmY478.js → adobe-DnxK1efn.js} +2 -2
- package/dist/ui/assets/{agent-bridge-DJBiO6eU.js → agent-bridge-CoRubAeG.js} +1 -1
- package/dist/ui/assets/{apply-layout-DRX2hbKF.js → apply-layout-4mwV9GLR.js} +1 -1
- package/dist/ui/assets/approval-decision-CS9Wwm5B.js +1 -0
- package/dist/ui/assets/{apps-BF0_egNy.js → apps-DenjJeRS.js} +1 -1
- package/dist/ui/assets/{azure-openai-Demqg5Qi.js → azure-openai-BkKwCp7A.js} +1 -1
- package/dist/ui/assets/{azure-openai-CBmQJEBL.js → azure-openai-CYjPJ1T2.js} +1 -1
- package/dist/ui/assets/boundary-Cp9c_bPu.js +1 -0
- package/dist/ui/assets/capability-BurSRZ-s.js +2 -0
- package/dist/ui/assets/{cerebras-DqE8lqTV.js → cerebras-1L1enTTR.js} +1 -1
- package/dist/ui/assets/{cerebras-B1cmQz2k.js → cerebras-2a1mcXqz.js} +1 -1
- package/dist/ui/assets/{composer-speech-o750u66j.js → composer-speech-B90r7re0.js} +1 -1
- package/dist/ui/assets/{connect-surface-12gDDi-P.js → connect-surface-TmZjUGmz.js} +1 -1
- package/dist/ui/assets/{directed-approval-B1e2ES3a.js → directed-approval-DC1X9nrH.js} +1 -1
- package/dist/ui/assets/{discovery-preference-rzSxl6g3.js → discovery-preference-CiKcjd83.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-DGXbz9uT.js → ensure-speech-assets-hPZ8_uTN.js} +1 -1
- package/dist/ui/assets/extension-ops-B1o0wS2l.js +1 -0
- package/dist/ui/assets/{float-topology-B1E_mH1v.js → float-topology-D_ESvEeq.js} +1 -1
- package/dist/ui/assets/follower-navigate-watcher-n7yKTzhc.js +1 -0
- package/dist/ui/assets/{fs-CjjuhOp_.js → fs-9X4JYs3L.js} +2 -2
- package/dist/ui/assets/{fs-BIk-iv5m.js → fs-BZyvdsnD.js} +1 -1
- package/dist/ui/assets/{github-CW1YbGum.js → github-Cljo8hqs.js} +2 -2
- package/dist/ui/assets/{github-1KFQrsFp.js → github-CqaGcvrS.js} +1 -1
- package/dist/ui/assets/{github-copilot--XEHMOYM.js → github-copilot-BcPcJuP2.js} +1 -1
- package/dist/ui/assets/{github-copilot-C9FoWf5Q.js → github-copilot-DxCmBJ50.js} +1 -1
- package/dist/ui/assets/{github-install-DJwKDZ2X.js → github-install-B7qnuo-D.js} +1 -1
- package/dist/ui/assets/{github-zip-B1SOCvRU.js → github-zip-D10M2l2Q.js} +1 -1
- package/dist/ui/assets/{hear-B8lQZty5.js → hear-BIjL3g3l.js} +1 -1
- package/dist/ui/assets/{help-tl-9MNkV.js → help-CeOvIWCw.js} +1 -1
- package/dist/ui/assets/{host-command-C3f7bKlE.js → host-command-D0p9e1GO.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-BIhTDwhB.js → js-realm-worker-BoFs2LPz.js} +1 -1
- package/dist/ui/assets/{kernel-worker-D6GE2eW6.js → kernel-worker-B01kQo95.js} +628 -628
- package/dist/ui/assets/{lick-ws-bridge-BgRQepmP.js → lick-ws-bridge-o9sDM3Nj.js} +1 -1
- package/dist/ui/assets/{local-llm-Bp3hYRkd.js → local-llm-D1poIP5e.js} +1 -1
- package/dist/ui/assets/{local-llm-wC4GLZz1.js → local-llm-DPYzKnTG.js} +1 -1
- package/dist/ui/assets/{main-wQEmvcig.js → main-C9GELlnI.js} +3 -3
- package/dist/ui/assets/{mount-v0iuE8_k.js → mount-Bi2hhpNg.js} +3 -3
- package/dist/ui/assets/{mount-CvJ9EIqL.js → mount-CW11t3UA.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-DWskyztE.js → mount-bridge-client-BeGKXIel.js} +1 -1
- package/dist/ui/assets/{mount-recovery-DMW71B2R.js → mount-recovery-CjFqj0Da.js} +1 -1
- package/dist/ui/assets/{new-session-CfKDiPZX.js → new-session-C-WBRIrt.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-B-6P1ECI.js → oauth-bootstrap-pkEXFiOS.js} +2 -2
- package/dist/ui/assets/{oauth-service-BJMc4Gsx.js → oauth-service-BQ9OoA-h.js} +1 -1
- package/dist/ui/assets/{openai-codex-QpFfvitC.js → openai-codex-BiOTorTL.js} +1 -1
- package/dist/ui/assets/{openai-codex-BSkoVpsZ.js → openai-codex-BqvqH3T6.js} +1 -1
- package/dist/ui/assets/{openrouter-B10ZIJHb.js → openrouter-CjXLE2iq.js} +1 -1
- package/dist/ui/assets/{openrouter-DdMDMVvm.js → openrouter-Cpigxd0J.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CYPTNmFd.js → openrouter-oauth-CgvCp40o.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-Z8D9Uexm.js → openrouter-oauth-ShjmiSH8.js} +1 -1
- package/dist/ui/assets/page-approval-service-BA_9yawH.js +1 -0
- package/dist/ui/assets/{panel-rpc-handlers-BiZ4asca.js → panel-rpc-handlers-B7e1aEcf.js} +2 -2
- package/dist/ui/assets/{port-bridge-client-CVZpTSrA.js → port-bridge-client-DX2fz9_b.js} +1 -1
- package/dist/ui/assets/{provider-5TDJo0ur.js → provider-BDyL5jJI.js} +2 -2
- package/dist/ui/assets/{provider-BgIyNZvR.js → provider-C2nYbvNz.js} +1 -1
- package/dist/ui/assets/{provider-settings-Bx1ls4Yh.js → provider-settings-CF_NGxAT.js} +1 -1
- package/dist/ui/assets/{provider-settings-BNDUj_a2.js → provider-settings-jCx4Vxo4.js} +2 -2
- package/dist/ui/assets/{provider-store-access-FCVeMJRb.js → provider-store-access-BhP8u3F-.js} +2 -2
- package/dist/ui/assets/provider-store-access-D2mVJKq_.js +1 -0
- package/dist/ui/assets/{providers-CMdt7NIp.js → providers-Ca2x4vLj.js} +2 -2
- package/dist/ui/assets/{providers-CFsw2G3b.js → providers-xCnb5fGu.js} +1 -1
- package/dist/ui/assets/proxied-fetch-DuC82T1c.js +2 -0
- package/dist/ui/assets/{quick-llm-u8uic8QB.js → quick-llm-kUXqAL2W.js} +1 -1
- package/dist/ui/assets/{recovery-screen-CZYT7flO.js → recovery-screen-Cb2VYCpl.js} +1 -1
- package/dist/ui/assets/request-body-FFoHDB3I.js +1 -0
- package/dist/ui/assets/rest-ops-BFV8rlC4.js +1 -0
- package/dist/ui/assets/rest-ops-DKg-BuYw.js +1 -0
- package/dist/ui/assets/rest-paths-DJCfupdz.js +1 -0
- package/dist/ui/assets/{run-EHwjzgre.js → run-BZI9daLk.js} +2 -2
- package/dist/ui/assets/{run-BQKfwSke.js → run-CgzdzMSu.js} +1 -1
- package/dist/ui/assets/{secret-env-BKKHVcyt.js → secret-env-4sdtvoSr.js} +1 -1
- package/dist/ui/assets/secret-topology-D5sJYeG9.js +1 -0
- package/dist/ui/assets/{secrets-bridge-client-BCv_YZhX.js → secrets-bridge-client-aihv9k6e.js} +1 -1
- package/dist/ui/assets/{session-freezer-BGtUBp7O.js → session-freezer-DSg3JDOv.js} +3 -3
- package/dist/ui/assets/{setup-feature-flags-remote-l9KfTyYp.js → setup-feature-flags-remote-BY32MZTE.js} +1 -1
- package/dist/ui/assets/{setup-standalone-prelude-CRyLSjRK.js → setup-standalone-prelude-BWotrF8e.js} +2 -2
- package/dist/ui/assets/setup-sudo-B5v8rRy7.js +2 -0
- package/dist/ui/assets/{skills-BiYtev0K.js → skills-Be5Sp0Wx.js} +1 -1
- package/dist/ui/assets/slicc-version-_h0PDmNb.js +1 -0
- package/dist/ui/assets/{snapshot-BVDkGgv2.js → snapshot-B_yBc53d.js} +1 -1
- package/dist/ui/assets/{snapshot-features-_gfLx1rZ.js → snapshot-features-CjKrxdwS.js} +1 -1
- package/dist/ui/assets/{speak-BCIaxflW.js → speak-D8vfanJ1.js} +1 -1
- package/dist/ui/assets/{state-B1fUKJq0.js → state-BO9yXFgE.js} +1 -1
- package/dist/ui/assets/{store-IrYUKEu1.js → store-Bq7lQD7k.js} +1 -1
- package/dist/ui/assets/{store-UM5Ipvg3.js → store-CQOWln1l.js} +1 -1
- package/dist/ui/assets/sudo-nKgKeoDS.js +5 -0
- package/dist/ui/assets/{transformers-env-BvDjQzHU.js → transformers-env-De3lhfut.js} +1 -1
- package/dist/ui/assets/tray-leader-C4W6t_QT.js +1 -0
- package/dist/ui/assets/{tray-leave-runtime-ze84Lgj4.js → tray-leave-runtime-wtoD861i.js} +1 -1
- package/dist/ui/assets/{tray-runtime-config-D-kNf-DT.js → tray-runtime-config-GI-8c29v.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-BEMiR0yy.js → tray-sidecar-BX6Kd_4j.js} +1 -1
- package/dist/ui/assets/types-BfwydWt7.js +1 -0
- package/dist/ui/assets/{upgrade-detection-BhBRUFIl.js → upgrade-detection-BmxK4pvi.js} +1 -1
- package/dist/ui/assets/{voice-reply-D8de58Jp.js → voice-reply-C-njgXqT.js} +1 -1
- package/dist/ui/assets/{wc-extension-BLA8yGsG.js → wc-extension-BlHGPkn2.js} +2 -2
- package/dist/ui/assets/{wc-float-label-_S5TsF66.js → wc-float-label-DCnN6-DZ.js} +1 -1
- package/dist/ui/assets/{wc-floatbar-online-BRZloJeW.js → wc-floatbar-online-BRk6j7Xu.js} +1 -1
- package/dist/ui/assets/{wc-follower-tRbhAiRk.js → wc-follower-CC-Swosx.js} +3 -3
- package/dist/ui/assets/{wc-live-Cgl26Lem.js → wc-live-BQ8I05Qw.js} +4 -4
- package/dist/ui/assets/{wc-nav-DrRK17dw.js → wc-nav-Bqukg52H.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-Be_O8bmO.js → wc-onboarding-B5ghNdT_.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-DtI6L3KZ.js → wc-placeholder-CwZpLC5l.js} +2 -2
- package/dist/ui/assets/{wc-settings-DzKLh6wd.js → wc-settings-Brf082oj.js} +3 -3
- package/dist/ui/assets/{wc-shell-C6Pg0Q54.js → wc-shell-BHUfS2He.js} +2 -2
- package/dist/ui/assets/{wc-sprinkles-D6ytPwhq.js → wc-sprinkles-CyuMh0DO.js} +2 -2
- package/dist/ui/assets/{wc-tray-DtpbV4Hy.js → wc-tray-CMMbxpkp.js} +4 -4
- package/dist/ui/assets/{whisper-session-is7cka6b.js → whisper-session-D86jO6RQ.js} +2 -2
- package/dist/ui/assets/{xai-grok-Cd-DzyGd.js → xai-grok-CY7TyXgl.js} +1 -1
- package/dist/ui/assets/{xai-grok--gX-Nc6Q.js → xai-grok-Df8M2c4x.js} +1 -1
- package/dist/ui/index.html +12 -12
- package/dist/ui/packages/webapp/index.html +12 -12
- package/package.json +1 -1
- package/dist/ui/assets/boundary-BBU8IvQr.js +0 -1
- package/dist/ui/assets/extension-ops-4CHxluMA.js +0 -1
- package/dist/ui/assets/follower-navigate-watcher-CMpGLDLi.js +0 -1
- package/dist/ui/assets/page-approval-service-BVBSKskj.js +0 -1
- package/dist/ui/assets/provider-store-access-CruwM-j5.js +0 -1
- package/dist/ui/assets/proxied-fetch-DC4o4pmp.js +0 -2
- package/dist/ui/assets/request-body-DJomJP6T.js +0 -1
- package/dist/ui/assets/rest-ops-PnqziEjh.js +0 -1
- package/dist/ui/assets/secret-topology-CVgFEYzE.js +0 -1
- package/dist/ui/assets/setup-sudo-CYrdyJH7.js +0 -2
- package/dist/ui/assets/slicc-version-3d67O-JT.js +0 -1
- package/dist/ui/assets/sudo-CteiAvdB.js +0 -5
- package/dist/ui/assets/tray-leader-CqidEcFq.js +0 -1
- package/dist/ui/assets/types-Db38aZfh.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./base64-DJRlyqZu.js";import"./src-CAWTvdAa.js";import{n}from"./tray-webrtc-CThDQcWx.js";import{r}from"./tray-leader-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./base64-DJRlyqZu.js";import"./src-CAWTvdAa.js";import{n}from"./tray-webrtc-CThDQcWx.js";import{r}from"./tray-leader-C4W6t_QT.js";import{t as i}from"./tray-sync-protocol-CGp1cRWg.js";var a=e(`tray-sidecar`),o=`slicc-sidecar`,s=4194304,c={exec:!1},l=class{onChunk;stdout=``;stderr=``;truncated=!1;units=0;constructor(e){this.onChunk=e}push(e,t){if(!(this.truncated||t.length===0)){if(this.units+=t.length,this.units>s){this.truncated=!0;return}e===`stdout`?this.stdout+=t:this.stderr+=t,this.onChunk?.({stream:e,text:t})}}result(e,t){return{stdout:this.truncated?`${this.stdout}\n[output truncated at cap]`:this.stdout,stderr:this.stderr,exitCode:e,...t?{error:t}:{},...this.truncated?{truncated:!0}:{}}}},u=class{name;handle=null;channel=null;unsubscribe=null;listeners=new Set;dropListeners=new Set;status=null;attachedAt=Date.now();currentJoinUrl;startPromise=null;constructor(e,t){this.name=e,this.currentJoinUrl=t}statusSink={get:()=>this.status??{state:`inactive`,joinUrl:this.currentJoinUrl,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null},set:e=>{this.status=e}};get info(){let e=this.statusSink.get();return{name:this.name,joinUrl:this.currentJoinUrl,trayId:e.trayId,state:e.state,attachedAt:this.attachedAt,error:e.error}}get connected(){return this.channel!==null&&this.statusSink.get().state===`connected`}get dead(){return this.statusSink.get().state===`error`}async ready(){await(this.startPromise??Promise.resolve())}async start(e){return this.startPromise=new Promise((t,r)=>{let i=!1,a=setTimeout(()=>{i||(i=!0,this.stop(),r(Error(`timed out after ${Math.round(e/1e3)}s connecting to leader`)))},e);this.handle=n({joinUrl:this.currentJoinUrl,runtime:o,statusSink:this.statusSink,onJoinUrlChanged:e=>{this.currentJoinUrl=e}},{onConnected:e=>{this.wire(e.channel),!i&&(i=!0,clearTimeout(a),t())},onReconnecting:()=>{this.notifyDropped(`connection dropped; reconnecting`)},onGaveUp:e=>{this.notifyDropped(`reconnect gave up: ${e}`),!i&&(i=!0,clearTimeout(a),this.stop(),r(Error(e)))}})}),await this.startPromise}wire(e){let t=this.channel!==null;this.unsubscribe?.();let n=new i(e);this.channel=n,this.unsubscribe=n.onMessage(e=>this.dispatch(e)),n.send({type:`hello`,protocolVersion:8,runtime:o,capabilities:c}),a.info(t?`Sidecar reconnected`:`Sidecar attached`,{name:this.name}),t&&this.notifyDropped(`reconnected mid-request; the reply was lost`)}dispatch(e){if(e.type===`ping`){this.channel?.send({type:`pong`});return}if(e.type!==`pong`){if(e.type===`exec.request`){this.channel?.send({type:`exec.response`,requestId:e.requestId,exitCode:127,error:`slicc sidecar is a client-only attachment and does not accept exec`});return}for(let t of[...this.listeners])try{t(e)}catch(e){a.error(`Sidecar listener threw`,{name:this.name,error:e instanceof Error?e.message:String(e)})}}}send(e){return this.channel?.send(e)??!1}onMessage(e){return this.listeners.add(e),()=>this.listeners.delete(e)}onDropped(e){return this.dropListeners.add(e),()=>this.dropListeners.delete(e)}notifyDropped(e){for(let t of[...this.dropListeners])try{t(e)}catch{}}stop(){this.unsubscribe?.(),this.unsubscribe=null,this.channel?.close(),this.channel=null,this.handle?.cancel(),this.handle=null,this.notifyDropped(`detached`),this.listeners.clear(),this.dropListeners.clear()}};function d(e){let t;try{t=new URL(e)}catch{throw Error(`not a URL: ${e}`)}if(t.protocol!==`https:`&&t.protocol!==`http:`)throw Error(`join URL must be http(s): ${e}`);if(!t.pathname.includes(`/join/`))throw Error(`not a tray join URL (expected .../join/<token>): ${e}`);return t}function f(e){let t=r().session?.joinUrl;if(!t)return!1;try{let n=new URL(t);return n.origin===e.origin&&n.pathname===e.pathname}catch{return!1}}function p(e,t,n,r){return new Promise(i=>{let a=!1,o=null,s=null,c=null,l=null,u=null,d=(e,r,d)=>{a||(a=!0,c&&clearTimeout(c),l&&clearTimeout(l),o?.(),s?.(),u&&t.signal?.removeEventListener(`abort`,u),i({result:n.result(r,d),outcome:e}))},f={finish:(e,t)=>d(`complete`,e,t)};if(o=e.onMessage(e=>r(e,f)),s=e.onDropped(e=>d(`dropped`,1,`connection lost: ${e}`)),t.timeoutMs!==void 0){let e=Math.round(t.timeoutMs/1e3);c=setTimeout(()=>d(`abort`,124,`timed out after ${e}s`),t.timeoutMs)}if(t.expireMs!==void 0&&(l=setTimeout(()=>d(`expire`,0),t.expireMs)),t.signal){if(t.signal.aborted){d(`abort`,130,`interrupted`);return}u=()=>d(`abort`,130,`interrupted`),t.signal.addEventListener(`abort`,u,{once:!0})}})}var m=class{attachments=new Map;counter=0;list(){return[...this.attachments.values()].map(e=>e.info)}async attach(e){let t=d(e.joinUrl);if(f(t))throw Error(`refusing to attach to this instance's own tray — that would deadlock the leader thread`);let n=this.findByJoinUrl(t);if(n?.dead)a.info(`Replacing a dead sidecar attachment`,{name:n.name}),this.detach(n.name);else if(n){if(await n.ready(),!n.dead)return n.info;this.detach(n.name)}if(this.attachments.size>=8)throw Error(`too many sidecar attachments (8); detach one first`);let r=e.name??`slicc-${++this.counter}`;if(this.attachments.has(r))throw Error(`attachment '${r}' already exists`);let i=new u(r,t.toString());this.attachments.set(r,i);try{await i.start(e.connectTimeoutMs??3e4)}catch(e){throw this.attachments.delete(r),e}return i.info}detach(e){let t=this.attachments.get(e);return t?(t.stop(),this.attachments.delete(e),!0):!1}detachAll(){for(let e of[...this.attachments.keys()])this.detach(e)}findByJoinUrl(e){let t=`${e.origin}${e.pathname}`;return[...this.attachments.values()].find(e=>{try{let n=new URL(e.info.joinUrl);return`${n.origin}${n.pathname}`===t}catch{return!1}})}require(e){let t=this.attachments.get(e);if(!t)throw Error(`no such attachment: ${e}`);if(!t.connected)throw Error(`attachment '${e}' is not connected`);return t}async prompt(e,t,n={}){let r=this.require(e),i=new l(n.onChunk),a=!1,o=p(r,n,i,(e,t)=>{if(e.type===`agent_event`){let n=e.event;n.type===`content_delta`?i.push(`stdout`,n.text):n.type===`turn_end`?t.finish(0):n.type===`error`&&(i.push(`stderr`,`${n.error}\n`),t.finish(1));return}if(e.type===`status`){e.scoopStatus===`processing`?a=!0:a&&t.finish(0);return}e.type===`error`&&(i.push(`stderr`,`${e.error}\n`),t.finish(1))});if(!r.send({type:`user_message`,text:t,messageId:crypto.randomUUID(),...n.steer?{steer:!0}:{}}))return{stdout:``,stderr:``,exitCode:1,error:`failed to send user_message`};let{result:s,outcome:c}=await o;return c===`abort`&&r.send({type:`abort`}),s}async exec(e,n,r={}){let i=this.require(e),a=crypto.randomUUID(),o=new l(r.onChunk),s=new TextDecoder,c=new TextDecoder,u=p(i,r,o,(e,n)=>{if(e.type===`exec.chunk`&&e.requestId===a){let n;try{n=t(e.data)}catch{return}let r=e.stream===`stdout`?s:c;o.push(e.stream,r.decode(n,{stream:!0}));return}e.type===`exec.response`&&e.requestId===a&&(o.push(`stdout`,s.decode()),o.push(`stderr`,c.decode()),n.finish(e.exitCode,e.error))});if(!i.send({type:`exec.request`,requestId:a,command:n,...r.cwd?{cwd:r.cwd}:{},...r.env?{env:r.env}:{},...r.stdin?{stdin:r.stdin}:{}}))return{stdout:``,stderr:``,exitCode:1,error:`failed to send exec.request`};let{result:d,outcome:f}=await u;return f===`abort`&&i.send({type:`exec.signal`,requestId:a,signal:`SIGINT`}),d}async watch(e,t){let n=this.require(e),r=new l(t.onChunk),i=!1,{result:a}=await p(n,{...t,timeoutMs:void 0,expireMs:t.durationMs},r,(e,n)=>{if(e.type===`user_message_echo`){r.push(`stdout`,`\n> ${e.text}\n`);return}if(e.type===`agent_event`){if(t.scoopJid&&e.scoopJid!==t.scoopJid)return;r.push(`stdout`,h(e.event));return}if(e.type===`status`){if(t.scoopJid&&e.scoopJid!==t.scoopJid)return;e.scoopStatus===`processing`?i=!0:i&&t.untilIdle&&n.finish(0);return}e.type===`error`&&r.push(`stderr`,`${e.error}\n`)});return a}};function h(e){switch(e.type){case`content_delta`:return e.text;case`tool_use_start`:return`\n[tool] ${e.toolName} ${g(e.toolInput)}\n`;case`tool_result`:return`[${e.isError?`tool-error`:`tool-ok`}] ${_(e.result,200)}\n`;case`turn_end`:return`
|
|
2
2
|
`;case`error`:return`[error] ${e.error}\n`;default:return``}}function g(e){if(e==null)return``;try{return _(JSON.stringify(e),120)}catch{return``}}function _(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,t-1)}…`}export{m as SidecarRegistry};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(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`}}const t=[`listTargets`,`createTarget`,`navigate`,`screenshot`,`evaluate`],n=[`localNodeServer`,`crossOriginFetch`,`websocket`],r=[`listMaskedEnv`,`getMasked`,`set`,`delete`],i=[`usbRequest`,`serialRequest`,`hidRequest`],a=[`signRequest`,`pickDirectory`,`recover`],o=[`request`,`resolve`];function s(e,t,n){return{ok:!1,reason:`unavailable`,capability:e,operation:t,message:n}}function c(e,t,n,r){return{ok:!1,reason:`failed`,capability:e,operation:t,message:n,...r===void 0?{}:{status:r}}}export{n as a,s as c,a as i,e as l,t as n,r as o,i as r,c as s,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,g as t}from"./db-DSIYsBgP.js";import{n}from"./slicc-version-
|
|
1
|
+
import{D as e,g as t}from"./db-DSIYsBgP.js";import{n}from"./slicc-version-_h0PDmNb.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-
|
|
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-D8vfanJ1.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,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{a as t,n,o as r,t as i}from"./wc-live-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-sudo-B5v8rRy7.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-BQ8I05Qw.js";import{wireWcDetached as a}from"./wc-detached-B3WCbbZT.js";import{floatLabelForKind as o}from"./wc-float-label-DCnN6-DZ.js";import{installFloatbarStatus as s}from"./wc-floatbar-online-BRk6j7Xu.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-B5v8rRy7.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./proxied-fetch-
|
|
1
|
+
import"./proxied-fetch-DuC82T1c.js";import{a as e,t}from"./api-endpoint-CWeRbcY3.js";import{o as n}from"./src-CC79QyGZ.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,t}from"./tray-follower-status-BAjnN7Ar.js";import{a as n,r}from"./tray-leader-
|
|
1
|
+
import{a as e,t}from"./tray-follower-status-BAjnN7Ar.js";import{a as n,r}from"./tray-leader-C4W6t_QT.js";import{floatLabelForKind as i}from"./wc-float-label-DCnN6-DZ.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};
|
|
@@ -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-CazjIR5d.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-D45tpPP6.js","assets/icons-BJsliYCh.js","assets/src-CC79QyGZ.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-
|
|
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-
|
|
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-CazjIR5d.js","assets/logger-DDBAeTLF.js","assets/virtual-device-paths-D45tpPP6.js","assets/icons-BJsliYCh.js","assets/src-CC79QyGZ.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-BQ8I05Qw.js","assets/account-store-DHbYljA2.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/src-CAWTvdAa.js","assets/proxied-fetch-DuC82T1c.js","assets/base64-DJRlyqZu.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-CWeRbcY3.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-D_ESvEeq.js","assets/runtime-env-E-i2SW1s.js","assets/secret-topology-D5sJYeG9.js","assets/secrets-bridge-client-aihv9k6e.js","assets/port-bridge-client-DX2fz9_b.js","assets/image-markers-CxJ9ZBgw.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Ca2x4vLj.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/setup-standalone-prelude-BWotrF8e.js","assets/tray-runtime-config-GI-8c29v.js","assets/messages-BD4p8GuF.js","assets/runtime-env-CgsZ7LTp.js","assets/setup-sudo-B5v8rRy7.js","assets/telemetry-BVzuNdvW.js","assets/feature-flags-DaSRRz0w.js","assets/tray-follower-status-BAjnN7Ar.js","assets/src-BWaKqLvQ.js","assets/wc-shell-BHUfS2He.js","assets/agent-message-to-chat-DZhrVcVe.js","assets/mime-types-k2E6ulyv.js","assets/dictation-priming-CNllGgNq.js","assets/timestamp-preference-sKwBl5I8.js","assets/surface-fullscreen-4YjALjE7.js","assets/wc-shortcuts-BWBA9QlD.js","assets/wc-shell-WkeczD9x.css","assets/chat-session-store-pWb1-jNp.js","assets/tray-leader-C4W6t_QT.js","assets/db-cKsBsMMN.js","assets/record-DOq72weu.js","assets/shared-2T6O01rS.js","assets/export-provider-BEHTjSYw.js","assets/dip-CwdsfUhQ.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-operations-BBXJ4GF8.js","assets/usb-device-registry-CRsCisej.js","assets/sprinkle-renderer-1C1DNVyK.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-D4YmJlZ6.js","assets/session-freezer-DSg3JDOv.js","assets/types-Dgm4REV3.js","assets/follower-presentation-DqBw0YiV.js","assets/wc-unit-context-DOZ0CCmn.js","assets/host-command-D0p9e1GO.js","assets/browser-DGwroBSO.js","assets/leader-session-events-BMpq401g.js","assets/legacy-styles-B3nS5QUo.js","assets/follower-navigate-watcher-n7yKTzhc.js","assets/navigation-watcher-CUyfUWfd.js","assets/handoff-link-BzmwBKCE.js","assets/discovery-preference-CiKcjd83.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-BWotrF8e.js";import{n as i}from"./tray-sync-protocol-BZ5yhJH9.js";import{d as a,m as o,p as s,s as c,u as ee}from"./tray-runtime-config-GI-8c29v.js";import{i as te,n as ne}from"./wc-live-BQ8I05Qw.js";import{r as l,t as re}from"./feature-flags-DaSRRz0w.js";import{i as ie,n as ae,s as oe,t as se,u}from"./wc-follower-oauth-oylSQku7.js";import{a as ce,t as le}from"./tray-follower-status-BAjnN7Ar.js";import{S as ue,a as de,n as fe,o as pe}from"./wc-shell-BHUfS2He.js";import{n as me}from"./theme-engine-By4GU_Wc.js";import{i as he,r as ge}from"./dip-CwdsfUhQ.js";import{d as _e,p as ve}from"./wc-unit-context-DOZ0CCmn.js";import{WcSprinkleZone as ye}from"./wc-sprinkles-CyuMh0DO.js";import{wireWcAttach as be}from"./wc-attach-BUOV0IxU.js";import{floatLabelForKind as xe}from"./wc-float-label-DCnN6-DZ.js";import{installFloatbarStatus as Se}from"./wc-floatbar-online-BRk6j7Xu.js";import{i as Ce,r as we}from"./leader-session-events-BMpq401g.js";import{installLeaderPermissionsSurface as Te}from"./wc-permissions-C77Upopt.js";var d=t(`follower-switch-out`);function Ee(e,t){t.stopFollower();try{t.storage.removeItem(s),e.workerBaseUrl===null?t.storage.removeItem(o):t.storage.setItem(o,e.workerBaseUrl)}catch(e){d.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=a(e);n!==e&&t.replaceHref(n)}catch(e){d.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var f=6;function De(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`),o.setAttribute(`no-peek`,``),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>=f)){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 p=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function Oe(e){return p.has(e)}var m=`slicc-signin-redirect-style`,h=`wc-signin-redirect`,g=`
|
|
3
3
|
.${h}{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
|
.${h}__x:hover{color:var(--ink);}
|
|
15
15
|
`;function _(e){if(e.getElementById(m))return;let t=e.createElement(`style`);t.id=m,t.textContent=g,e.head.appendChild(t)}function v(e,t){_(e);let n=e.createElement(`div`);n.className=h,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${h}__body`;let i=e.createElement(`div`);i.className=`${h}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${h}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${h}__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=`${h}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function ke(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${h}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=v(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 Ae(e,t){return v(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 y=t(`wc-follower`),je=`/shared/sprinkles/welcome/`,Me={sendMessage:()=>{},onEvent:()=>()=>{},stop:()=>{}};function Ne(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function Pe(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 Fe(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 b={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0,showTimestamps:!0};function Ie(e){let t=[];for(let[n,r]of[[`terminal`,`term`],[`files`,`files`],[`memory`,`memory`],[`browser`,`browser`],[`monitor`,`monitor`]])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 x(e,t){return e&&!t}async function Le(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-CazjIR5d.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 S(t,a,o){let s=o===`cherry`,d=s&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,f=window.location.ancestorOrigins?.[0],p=s&&(f?.startsWith(`chrome-extension://`)??!1),m;try{m=await r({runtimeMode:o,envBaseUrl:null,window,log:a})}catch(e){let n=e instanceof Error?e.message:String(e);y.error(`follower prelude failed`,{runtimeMode:o,error:n}),Pe(t,n);return}let h=s?m.cherryJoinUrl:c(window.location.href,window.localStorage);if(!h){y.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-Cgl26Lem.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,5,50,51,6,8,9,10,0,52,12,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77]));return n(t,a,`standalone`)}let g=s?`cherry`:p?`extension`:`standalone`,_=ne(t,xe(g));if(s&&m.cherryTransport?.theme&&me(m.cherryTransport.theme),s&&m.cherryTransport?.flags)try{let e=JSON.parse(m.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&re(e)}catch(e){y.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let v=l(`panel-layouts`);if(_.refs.dockTree.tilesMovable=v,s&&m.cherryTransport?.layout)try{let e=JSON.parse(m.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?v?await Le(_,e,y):y.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):_.refs.dockTree.setTree(e)}catch(e){y.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let S=s&&m.cherryTransport?.effortLevel;S?localStorage.setItem(`slicc_locked_effort_level`,S):localStorage.removeItem(`slicc_locked_effort_level`);let C=s&&m.cherryTransport?{...b,...m.cherryTransport.features}:b,Re=_.refs.composerMeta;Fe(_.refs.fileTree,_.refs.termSurface,_.refs.memoryHost,_.refs.monitor,C),Ie(C),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([51,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{C.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([78,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let w=new Map,T=()=>m.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),E=()=>{p&&ke(_.refs.thread,{onOpenTab:T})},ze=e=>{let t=e.querySelectorAll(`img[src^="${je}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(Ae(e.ownerDocument,{onOpenTab:T})):t.remove()}),!0)},Be=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),Oe(e)&&E()},D=new te({thread:_.refs.thread,agent:Me,onQueuedChange:e=>{_.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(p&&ze(n),w.set(e.id,he(n,Be)))},onMessageDisposed:e=>{let t=w.get(e);t&&(ge(t),w.delete(e))},readOnlyToolUi:!0});if(_.setController(D),p)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])_.refs.thread.addEventListener(e,()=>E());let O=`Connecting to leader…`,k=`Ask the leader, or describe a change…`,A=null,j=new ae({getSync:()=>q?.currentSync??null}),M=e=>e&&e.length>0?e:null,N=!1,P=()=>N?M(A??j.selectedUnitId):null,F=!1,I=!1,L=O,R=(e,t)=>{I=e,L=t;let n=e&&P()!==null;_.refs.inputCard.setAttribute(`placeholder`,e&&!n?O:t),n&&!F?_.refs.inputCard.removeAttribute(`disabled`):_.refs.inputCard.setAttribute(`disabled`,``)};R(!1,O),Se(_.refs.floatbar,{floatKind:g}),ce(e=>{try{window.localStorage.setItem(u,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(u,JSON.stringify(le()))}catch{}d||_.refs.composer.setAttribute(`ptt`,``);let Ve=be({inputCard:_.refs.inputCard,freezer:_.refs.freezer,composer:_.refs.composer,noCamera:d,log:y});_.refs.switcher.setAttribute(`gaze-target`,`slicc-input-card`),_.refs.inputCard.addEventListener(`input`,()=>{_.refs.switcher.scrutinize(),_.refs.switcher.wake()});let z=null;_.refs.inputCard.addEventListener(`submit`,e=>{let t=pe(e)??``,n=Ve.take();(t.trim()||n.length)&&(D.sendUserMessage(t,n,{steer:de(e)}),_.refs.inputCard.clear?.())}),_.refs.inputCard.addEventListener(`stop`,()=>{_.getController()?.processing&&z?.stop()});let B=new ye(_.refs).callbacks(),V=()=>{_.refs.switcher.scoops=ve(j.currentUnits(),A,ue)},H=()=>{let e=j.currentUnits().find(e=>e.id===A);F=e?_e(e):!1,fe(_.refs,F),_.getController()?.setReadOnly(F),R(I,L)},U=null,W=null,G=e=>{W===e&&U||(U?.(),W=e,U=j.subscribe(e,t=>{if(t.type!==`snapshot`||W!==e)return;let n=t.snapshot.messages;D.loadMessages(n,t.snapshot.queuedIds),D.setProcessing(n.some(e=>e.isStreaming))}))},K=()=>{N=!1,j.resetSelection(),U?.(),U=null,W=null};_.refs.switcher.connection=`disconnected`;let q,J=null,He=()=>(J||=Te({runtimeMode:o})?.element??null,J),Y=[],Ue=De({refs:_.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>x(m.hasLocalCdpSurface,d),window,log:y}),X=Ce({composerMeta:Re,getUnits:()=>j.currentUnits(),setModel:(e,t)=>{j.setModel(e,t).catch(()=>void 0)},getSync:()=>q.currentSync,getSelectedScoopJid:()=>A,modelPickerEnabled:C.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});j.subscribeList(()=>X.onShownUnitChanged()),q=ie(j.wrapOptions({joinUrl:h,runtime:s?i:`slicc-standalone`,advertisesCdpTargets:x(m.hasLocalCdpSurface,d),onTargetsUpdated:e=>{Y=e,Ue.refresh()},...s||d?{}:{onOAuthPopupRequest:(e,t)=>se(e,t,{getPermissionsSurface:He,window})},browserAPI:m.browser,onSnapshot:(e,t)=>{let n=M(t);A=n,N=!0,n&&G(n),H()},onUserMessage:(e,t,n,r)=>D.addUserMessage(e,r),onBiscottoMessageState:(e,t)=>{switch(t){case`pending`:D.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:D.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:D.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{oe(t,A)&&D.setProcessing(e===`processing`)},setChatAgent:e=>{z=we(j,{getSelectedId:P,onError:e=>{y.warn(`follower send failed`,{error:e}),D.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)},onEvent:t=>e.onEvent(t)}),D.setAgent(z),e.onEvent(e=>{e.type===`tool_result`&&e.isError&&_.refs.switcher.glower()})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-BE35g6ia.js`);return{openSudoApprovalDialog:e}},[]),r=s?m.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.requester??t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{_.refs.switcher.connection=e?`connected`:`disconnected`,e||K(),R(e,e?k:O),e||X.reset(),s&&m.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>A,onLeaderStalled:e=>{R(!e,e?`The leader is busy — hang on…`:k)},onGaveUp:e=>{y.error(`follower gave up reaching the leader`,{error:e}),_.refs.switcher.connection=`disconnected`,K(),R(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),s&&m.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...s?{}:{onJoinUrlChanged:e=>{y.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),ee(window.localStorage,e)}},addSprinkle:B.addSprinkle,removeSprinkle:B.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):y.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!A||!e.some(e=>e.jid===A))&&(A=M(t)),N=!0,A&&G(A),V(),H(),_.refs.switcher.setAttribute(`active`,A??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...s?{onCherrySliccEvent:(e,t)=>m.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])_.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});l(`agentic-memory`)&&_.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),_.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(A=t,V(),H(),_.refs.switcher.setAttribute(`active`,t),j.snapshot(t).catch(()=>void 0),G(t),X.onShownUnitChanged())}),s&&m.cherryTransport&&(m.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),m.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=Ne(t);return o?a.requestTranscriptExport(o,r,i):Promise.reject(new n(`session-not-found`))});let Z=null;if(!s){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-CMpGLDLi.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([79,3,23,1,7,24,22,25,26,27,80,81,82]));Z=t(m.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{_.refs.avatarMenu.items=[{kind:`separator`},...p?[{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}]};$(),_.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){m.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([83,7,84,22,46,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{y.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{Ee({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()})}),y.info(`follower mounted`,{runtimeMode:o,isCherry:s})}export{S as mountWcUiFollower};
|
|
17
|
+
.wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function x(e,t){return e&&!t}async function Le(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-CazjIR5d.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 S(t,a,o){let s=o===`cherry`,d=s&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,f=window.location.ancestorOrigins?.[0],p=s&&(f?.startsWith(`chrome-extension://`)??!1),m;try{m=await r({runtimeMode:o,envBaseUrl:null,window,log:a})}catch(e){let n=e instanceof Error?e.message:String(e);y.error(`follower prelude failed`,{runtimeMode:o,error:n}),Pe(t,n);return}let h=s?m.cherryJoinUrl:c(window.location.href,window.localStorage);if(!h){y.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-BQ8I05Qw.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,5,50,51,6,8,9,10,0,52,12,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77]));return n(t,a,`standalone`)}let g=s?`cherry`:p?`extension`:`standalone`,_=ne(t,xe(g));if(s&&m.cherryTransport?.theme&&me(m.cherryTransport.theme),s&&m.cherryTransport?.flags)try{let e=JSON.parse(m.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&re(e)}catch(e){y.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let v=l(`panel-layouts`);if(_.refs.dockTree.tilesMovable=v,s&&m.cherryTransport?.layout)try{let e=JSON.parse(m.cherryTransport.layout);e&&typeof e==`object`&&`base`in e?v?await Le(_,e,y):y.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):_.refs.dockTree.setTree(e)}catch(e){y.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}let S=s&&m.cherryTransport?.effortLevel;S?localStorage.setItem(`slicc_locked_effort_level`,S):localStorage.removeItem(`slicc_locked_effort_level`);let C=s&&m.cherryTransport?{...b,...m.cherryTransport.features}:b,Re=_.refs.composerMeta;Fe(_.refs.fileTree,_.refs.termSurface,_.refs.memoryHost,_.refs.monitor,C),Ie(C),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./timestamp-preference-sKwBl5I8.js`).then(e=>e.a);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([51,1])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{C.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([78,7])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0);let w=new Map,T=()=>m.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),E=()=>{p&&ke(_.refs.thread,{onOpenTab:T})},ze=e=>{let t=e.querySelectorAll(`img[src^="${je}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0?t.replaceWith(Ae(e.ownerDocument,{onOpenTab:T})):t.remove()}),!0)},Be=(e,t)=>{q.currentSync?.sendSprinkleLick(`inline`,{action:e,data:t}),Oe(e)&&E()},D=new te({thread:_.refs.thread,agent:Me,onQueuedChange:e=>{_.refs.queuedStack.setMessages(e)},onMessageRendered:(e,t)=>{let n=t[0];n&&(p&&ze(n),w.set(e.id,he(n,Be)))},onMessageDisposed:e=>{let t=w.get(e);t&&(ge(t),w.delete(e))},readOnlyToolUi:!0});if(_.setController(D),p)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])_.refs.thread.addEventListener(e,()=>E());let O=`Connecting to leader…`,k=`Ask the leader, or describe a change…`,A=null,j=new ae({getSync:()=>q?.currentSync??null}),M=e=>e&&e.length>0?e:null,N=!1,P=()=>N?M(A??j.selectedUnitId):null,F=!1,I=!1,L=O,R=(e,t)=>{I=e,L=t;let n=e&&P()!==null;_.refs.inputCard.setAttribute(`placeholder`,e&&!n?O:t),n&&!F?_.refs.inputCard.removeAttribute(`disabled`):_.refs.inputCard.setAttribute(`disabled`,``)};R(!1,O),Se(_.refs.floatbar,{floatKind:g}),ce(e=>{try{window.localStorage.setItem(u,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(u,JSON.stringify(le()))}catch{}d||_.refs.composer.setAttribute(`ptt`,``);let Ve=be({inputCard:_.refs.inputCard,freezer:_.refs.freezer,composer:_.refs.composer,noCamera:d,log:y});_.refs.switcher.setAttribute(`gaze-target`,`slicc-input-card`),_.refs.inputCard.addEventListener(`input`,()=>{_.refs.switcher.scrutinize(),_.refs.switcher.wake()});let z=null;_.refs.inputCard.addEventListener(`submit`,e=>{let t=pe(e)??``,n=Ve.take();(t.trim()||n.length)&&(D.sendUserMessage(t,n,{steer:de(e)}),_.refs.inputCard.clear?.())}),_.refs.inputCard.addEventListener(`stop`,()=>{_.getController()?.processing&&z?.stop()});let B=new ye(_.refs).callbacks(),V=()=>{_.refs.switcher.scoops=ve(j.currentUnits(),A,ue)},H=()=>{let e=j.currentUnits().find(e=>e.id===A);F=e?_e(e):!1,fe(_.refs,F),_.getController()?.setReadOnly(F),R(I,L)},U=null,W=null,G=e=>{W===e&&U||(U?.(),W=e,U=j.subscribe(e,t=>{if(t.type!==`snapshot`||W!==e)return;let n=t.snapshot.messages;D.loadMessages(n,t.snapshot.queuedIds),D.setProcessing(n.some(e=>e.isStreaming))}))},K=()=>{N=!1,j.resetSelection(),U?.(),U=null,W=null};_.refs.switcher.connection=`disconnected`;let q,J=null,He=()=>(J||=Te({runtimeMode:o})?.element??null,J),Y=[],Ue=De({refs:_.refs,getSync:()=>q.currentSync,getTargets:()=>Y,hasCdpBrowser:()=>x(m.hasLocalCdpSurface,d),window,log:y}),X=Ce({composerMeta:Re,getUnits:()=>j.currentUnits(),setModel:(e,t)=>{j.setModel(e,t).catch(()=>void 0)},getSync:()=>q.currentSync,getSelectedScoopJid:()=>A,modelPickerEnabled:C.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)});j.subscribeList(()=>X.onShownUnitChanged()),q=ie(j.wrapOptions({joinUrl:h,runtime:s?i:`slicc-standalone`,advertisesCdpTargets:x(m.hasLocalCdpSurface,d),onTargetsUpdated:e=>{Y=e,Ue.refresh()},...s||d?{}:{onOAuthPopupRequest:(e,t)=>se(e,t,{getPermissionsSurface:He,window})},browserAPI:m.browser,onSnapshot:(e,t)=>{let n=M(t);A=n,N=!0,n&&G(n),H()},onUserMessage:(e,t,n,r)=>D.addUserMessage(e,r),onBiscottoMessageState:(e,t)=>{switch(t){case`pending`:D.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:D.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:D.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{oe(t,A)&&D.setProcessing(e===`processing`)},setChatAgent:e=>{z=we(j,{getSelectedId:P,onError:e=>{y.warn(`follower send failed`,{error:e}),D.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)},onEvent:t=>e.onEvent(t)}),D.setAgent(z),e.onEvent(e=>{e.type===`tool_result`&&e.isError&&_.refs.switcher.glower()})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-BE35g6ia.js`);return{openSudoApprovalDialog:e}},[]),r=s?m.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.requester??t.scoopName??(r?`via ${r}`:void 0)})).decision,attestation:`none`}},onConnectionChange:e=>{_.refs.switcher.connection=e?`connected`:`disconnected`,e||K(),R(e,e?k:O),e||X.reset(),s&&m.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>A,onLeaderStalled:e=>{R(!e,e?`The leader is busy — hang on…`:k)},onGaveUp:e=>{y.error(`follower gave up reaching the leader`,{error:e}),_.refs.switcher.connection=`disconnected`,K(),R(!1,`Couldn't reach the leader. Reload to retry.`),X.reset(),s&&m.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...s?{}:{onJoinUrlChanged:e=>{y.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),ee(window.localStorage,e)}},addSprinkle:B.addSprinkle,removeSprinkle:B.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):y.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{(!A||!e.some(e=>e.jid===A))&&(A=M(t)),N=!0,A&&G(A),V(),H(),_.refs.switcher.setAttribute(`active`,A??t)},onModelsList:X.onModelsList,onModelState:X.onModelState,...s?{onCherrySliccEvent:(e,t)=>m.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])_.refs.freezer.addEventListener(`new-chat-${e}`,()=>{q.currentSync?.requestNewSession(e)});l(`agentic-memory`)&&_.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),_.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(A=t,V(),H(),_.refs.switcher.setAttribute(`active`,t),j.snapshot(t).catch(()=>void 0),G(t),X.onShownUnitChanged())}),s&&m.cherryTransport&&(m.cherryTransport.onHostEvent=(e,t)=>q.currentSync?.sendCherryHostEvent(e,t),m.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=q.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=Ne(t);return o?a.requestTranscriptExport(o,r,i):Promise.reject(new n(`session-not-found`))});let Z=null;if(!s){let{startFollowerNavigateWatcher:t}=await e(async()=>{let{startFollowerNavigateWatcher:e}=await import(`./follower-navigate-watcher-n7yKTzhc.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([79,3,23,1,7,24,22,25,26,27,80,81,82]));Z=t(m.realCdpTransport,()=>q.currentSync)}let Q=!1,$=()=>{_.refs.avatarMenu.items=[{kind:`separator`},...p?[{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}]};$(),_.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){m.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([83,7,84,22,46,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{y.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{Ee({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()})}),y.info(`follower mounted`,{runtimeMode:o,isCherry:s})}export{S as mountWcUiFollower};
|