sliccy 6.157.2 → 6.157.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/README.md +1 -1
- package/dist/ui/.vite/manifest.json +188 -187
- package/dist/ui/assets/{CLAUDE-D8aRy6Y3.js → CLAUDE-I9G_dHp6.js} +1 -1
- package/dist/ui/assets/{SKILL-B--riEXN.js → SKILL-COPOzXIi.js} +1 -1
- package/dist/ui/assets/{account-store-CSIzWxmB.js → account-store-Bd1MijeS.js} +1 -1
- package/dist/ui/assets/{account-store-BC3vyGu2.js → account-store-BgwlgyYt.js} +1 -1
- package/dist/ui/assets/{adobe-BShHOhCr.js → adobe-CzTVOvCl.js} +1 -1
- package/dist/ui/assets/{adobe-drXcmB3D.js → adobe-FTMf6Ya1.js} +1 -1
- package/dist/ui/assets/{agent-bridge-DV0Ede0v.js → agent-bridge-Cliog2cR.js} +1 -1
- package/dist/ui/assets/{agent-panels-CbV2fqtR.js → agent-panels-GkvTKad9.js} +1 -1
- package/dist/ui/assets/{apply-layout-DoLGuPG5.js → apply-layout-BkQmLsYf.js} +1 -1
- package/dist/ui/assets/{apps-BaZHe_M7.js → apps-Bs1CL91g.js} +1 -1
- package/dist/ui/assets/{auto-mount-table-Bj59hmjV.js → auto-mount-table-rytW5wPV.js} +1 -1
- package/dist/ui/assets/{azure-openai-BYkj_1AG.js → azure-openai-B6qSb3bZ.js} +1 -1
- package/dist/ui/assets/{azure-openai-CJhvr0v9.js → azure-openai-Dp6BGDBB.js} +1 -1
- package/dist/ui/assets/backend-hostfs-CsCDQ3wI.js +1 -0
- package/dist/ui/assets/backend-hostfs-DfMwLjH1.js +1 -0
- package/dist/ui/assets/{browser-CyOAI9cj.js → browser-fOe3v0iv.js} +5 -4
- package/dist/ui/assets/{budget-usage-source-GfigCN_s.js → budget-usage-source-Ctb6GXH1.js} +1 -1
- package/dist/ui/assets/{cdp-Cv1mvXfR.js → cdp-BuRkLhku.js} +1 -1
- package/dist/ui/assets/{cerebras-CiQJfJJX.js → cerebras-B7ZKdIx6.js} +1 -1
- package/dist/ui/assets/{cerebras-CuthuK8O.js → cerebras-pJ0a8Dks.js} +1 -1
- package/dist/ui/assets/{composer-speech-DwILw4Uk.js → composer-speech-fKeb5Eu_.js} +1 -1
- package/dist/ui/assets/{connect-surface-DTIBD6Ob.js → connect-surface-DQJ-JXx9.js} +1 -1
- package/dist/ui/assets/{cost-command-XzcQb5EI.js → cost-command-DlIH8zCh.js} +1 -1
- package/dist/ui/assets/{directed-approval-BP6ATlEl.js → directed-approval-B9VpWTen.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-9dACm1ao.js → ensure-speech-assets-CQCqIO4N.js} +1 -1
- package/dist/ui/assets/{extension-ops-DcLzcAwt.js → extension-ops-BsnpYY6f.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-Df5805od.js → frozen-archive-writer-B1ANvJgT.js} +1 -1
- package/dist/ui/assets/fs-BmwUe1Fg.js +1 -0
- package/dist/ui/assets/fs-CHMhLX-s.js +2 -0
- package/dist/ui/assets/{github-Cp55AC26.js → github-CdxGhfba.js} +1 -1
- package/dist/ui/assets/{github-B3_eljiu.js → github-D9jFg9L5.js} +2 -2
- package/dist/ui/assets/{github-auth-CupULCYI.js → github-auth-B9_wwar5.js} +1 -1
- package/dist/ui/assets/{github-copilot-CobpFty3.js → github-copilot-B0Vv1PVs.js} +1 -1
- package/dist/ui/assets/{github-copilot-BY8oTZco.js → github-copilot-DbkzSp_x.js} +1 -1
- package/dist/ui/assets/{github-install-BaIiZrtX.js → github-install-DeWDMQqS.js} +1 -1
- package/dist/ui/assets/{github-zip-1MOen3FO.js → github-zip-BeVslUE_.js} +1 -1
- package/dist/ui/assets/{hear-DuapGolr.js → hear-DU6O0gjZ.js} +1 -1
- package/dist/ui/assets/{help-CZtVVXe0.js → help-CPkDIV3_.js} +1 -1
- package/dist/ui/assets/{installer-Bu4t0i5V.js → installer-n7VeZlSH.js} +1 -1
- package/dist/ui/assets/{js-realm-worker-CqXsEURO.js → js-realm-worker-B3DfYFOs.js} +1 -1
- package/dist/ui/assets/{kernel-worker-8p_5PNiV.js → kernel-worker-B5K9NL51.js} +396 -396
- package/dist/ui/assets/{live-session-snapshot-BP6rxBrE.js → live-session-snapshot-Dv20JKP2.js} +1 -1
- package/dist/ui/assets/{local-llm-C2DAhBTd.js → local-llm-C80ACuoG.js} +1 -1
- package/dist/ui/assets/{local-llm-fDq0b6CI.js → local-llm-DDJn_hbH.js} +1 -1
- package/dist/ui/assets/{main-D_jxpmRL.js → main-bnY6sP2l.js} +3 -3
- package/dist/ui/assets/{main-cherry-CBhHAcdr.js → main-cherry-BoeSqHjk.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-Ce6Ezpr5.js → memory-curation-seam-ncHM3wJI.js} +1 -1
- package/dist/ui/assets/{mount-eD6bH6K8.js → mount-CTOcI9ot.js} +3 -3
- package/dist/ui/assets/{mount-bridge-client-wfM0sGs5.js → mount-bridge-client-3a86Q6J0.js} +1 -1
- package/dist/ui/assets/{mount-bridge-client-DphjpUJQ.js → mount-bridge-client-CO2HxXrT.js} +1 -1
- package/dist/ui/assets/{mount-index-DLLlduW0.js → mount-index-CQfmUPuZ.js} +1 -1
- package/dist/ui/assets/{mount-BsWlp4Ng.js → mount-q_5uz5c-.js} +2 -2
- package/dist/ui/assets/{mount-recovery-B5MZkPeO.js → mount-recovery-Cq9buPsY.js} +1 -1
- package/dist/ui/assets/{mv-DUh51uEl.js → mv-B4NndPT_.js} +1 -1
- package/dist/ui/assets/{new-session-bRM5-MPu.js → new-session-2FdgpKlv.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-BJE__KK2.js → oauth-bootstrap-D9YJirpg.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-DsXw6KR0.js → onboarding-orchestrator-C87NSncC.js} +1 -1
- package/dist/ui/assets/{openai-codex-BUoctFvK.js → openai-codex-B4mFBznh.js} +1 -1
- package/dist/ui/assets/{openai-codex-qthQGD_3.js → openai-codex-BTa_hXLv.js} +1 -1
- package/dist/ui/assets/{openrouter-Cght8V8I.js → openrouter-ByjViWWH.js} +1 -1
- package/dist/ui/assets/{openrouter-Cpmx4KLh.js → openrouter-Xgu1ojXe.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BTrY4vQK.js → openrouter-free-BY4lUKlK.js} +1 -1
- package/dist/ui/assets/{openrouter-free-BimK34SP.js → openrouter-free-D_Babw9u.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-loMdP_Ba.js → openrouter-oauth-B9rC1KlN.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CslVWaaw.js → openrouter-oauth-G-ay9p0n.js} +1 -1
- package/dist/ui/assets/{opfs-mount-C4HqOQiQ.js → opfs-mount-DewPaaSK.js} +2 -2
- package/dist/ui/assets/{panel-rpc-handlers-DK5Cp4r1.js → panel-rpc-handlers-B5Vq7xb_.js} +2 -2
- package/dist/ui/assets/{panelize-shell-48amUtWb.js → panelize-shell-pVmyDBCR.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-qzUIBN9h.js → pi-edit-execution-ClxGsBn1.js} +1 -1
- package/dist/ui/assets/{probe-info-CjsoArwT.js → probe-info-Cfr3jYru.js} +1 -1
- package/dist/ui/assets/{provider-CdC_p8nT.js → provider-C9iTKrDv.js} +1 -1
- package/dist/ui/assets/{provider-Olg-xwpR.js → provider-DEcezYzF.js} +2 -2
- package/dist/ui/assets/provider-settings-BlblG40g.js +1 -0
- package/dist/ui/assets/provider-store-access-Dn4XvblI.js +1 -0
- package/dist/ui/assets/provider-store-access-ROZFdOEZ.js +1 -0
- package/dist/ui/assets/{providers-DZ_vxDsI.js → providers-BNt_V-OG.js} +1 -1
- package/dist/ui/assets/{providers-CVVJIPNh.js → providers-D9vgFF2K.js} +2 -2
- package/dist/ui/assets/{quick-llm-D1KZssbX.js → quick-llm-BvGtfuoa.js} +1 -1
- package/dist/ui/assets/{recovery-screen-CflDQ34Q.js → recovery-screen-COc7I7Tq.js} +1 -1
- package/dist/ui/assets/{remote-sprinkle-vfs-C_-TfGu3.js → remote-sprinkle-vfs-D-Wz5t8k.js} +1 -1
- package/dist/ui/assets/{remote-vfs-client-CEL8mUQ9.js → remote-vfs-client-Dhv8nI7h.js} +1 -1
- package/dist/ui/assets/{run-C6flLZUb.js → run-BWnqejbv.js} +2 -2
- package/dist/ui/assets/{run-BcQ-akMi.js → run-CCtEfhF7.js} +1 -1
- package/dist/ui/assets/{run-CWenWZRy.js → run-CrPSdmNd.js} +2 -2
- package/dist/ui/assets/{run-BAXE1Fgn.js → run-EhsZ6l-Q.js} +1 -1
- package/dist/ui/assets/{run-CPPMIJVq.js → run-NrlHGW5Q.js} +1 -1
- package/dist/ui/assets/{run-B7bNDge8.js → run-dAJe7sKp.js} +3 -3
- package/dist/ui/assets/same-file-identity-DuEcSmPX.js +1 -0
- package/dist/ui/assets/{session-command-memory-CzJDf01Z.js → session-command-memory-Bbguzf_6.js} +2 -2
- package/dist/ui/assets/{session-jsonl-BwqaD3jQ.js → session-jsonl-f7vG8uaN.js} +1 -1
- package/dist/ui/assets/{session-jsonl-Dhs3IqoC.js → session-jsonl-rwJVnCoS.js} +1 -1
- package/dist/ui/assets/{session-search-index-D6zcG95Z.js → session-search-index-BQmbRVuk.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CtllC58Y.js → setup-feature-flags-remote-Bw5G1JYq.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-BazAPVJH.js → silent-renew-backoff-nR6Ar46z.js} +1 -1
- package/dist/ui/assets/{skills-CJEFZrsl.js → skills-Ccxhqu94.js} +1 -1
- package/dist/ui/assets/slicc-version-BseNB1jB.js +1 -0
- package/dist/ui/assets/{snapshot-DiBZ889S.js → snapshot-Du6lBXuz.js} +1 -1
- package/dist/ui/assets/{snapshot-features-BDbZinQm.js → snapshot-features-BPY1K_3B.js} +1 -1
- package/dist/ui/assets/{soundscape-p_17gIkK.js → soundscape-BWiEViRY.js} +1 -1
- package/dist/ui/assets/{speak-DcePTkTJ.js → speak-yWxvdNDd.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-B2l4yjDJ.js → sprinkle-manager-CNnGZ_QB.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-DGajwT-R.js → sprinkle-renderer-Ll7M_Iye.js} +1 -1
- package/dist/ui/assets/stat-identity-BaU9yoai.js +1 -0
- package/dist/ui/assets/{state-Bg47hoJC.js → state-D3ue-lSL.js} +1 -1
- package/dist/ui/assets/{store-B2phX_J_.js → store-DCvYrQIJ.js} +1 -1
- package/dist/ui/assets/{store-BrTdyYCw.js → store-DkJNHh1I.js} +1 -1
- package/dist/ui/assets/{sudo-_YMo1g3C.js → sudo-DtZsfFOZ.js} +1 -1
- package/dist/ui/assets/{sync-dialog-Dz1u2hc1.js → sync-dialog-qfOXi6KC.js} +1 -1
- package/dist/ui/assets/{transformers-env-C3uTEvuB.js → transformers-env-C5l3Ko84.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-DOxjhs0P.js → tray-sidecar-BSYO9FKG.js} +1 -1
- package/dist/ui/assets/types-D8gIX-W-.js +1 -0
- package/dist/ui/assets/{upgrade-detection-Q2YZEIZs.js → upgrade-detection-vW3PQ-co.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-I6gJYNyz.js → upskill-lick-skip-B6WOdFUG.js} +1 -1
- package/dist/ui/assets/{voice-reply-DbakEYjK.js → voice-reply-BVmEtKuT.js} +1 -1
- package/dist/ui/assets/{wc-attach-IO5dUOGT.js → wc-attach-2vs4QwLK.js} +2 -2
- package/dist/ui/assets/{wc-extension-BCd1YyiK.js → wc-extension-DTN7GJ59.js} +2 -2
- package/dist/ui/assets/{wc-follower-DVItvuN7.js → wc-follower-CZIzr5KM.js} +3 -3
- package/dist/ui/assets/{wc-follower-oauth-CJcwG3ac.js → wc-follower-oauth-Zu14y4L8.js} +1 -1
- package/dist/ui/assets/{wc-gelatiere-B5J_Tbl4.js → wc-gelatiere-CPjFvMte.js} +1 -1
- package/dist/ui/assets/{wc-live-_MvHDENH.js → wc-live-DJNEmFrT.js} +5 -5
- package/dist/ui/assets/{wc-nav-BmMZ5hQ1.js → wc-nav-CIKrpDaK.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-DUNMmoBo.js → wc-onboarding-B0F5nZp5.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-C9PK4xP8.js → wc-placeholder-Du3jddch.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-DDRmWja3.js → wc-secret-request-CSdhu44a.js} +1 -1
- package/dist/ui/assets/{wc-settings-Ca55PEn7.js → wc-settings-BEdefSEA.js} +3 -3
- package/dist/ui/assets/{wc-shell-DVzCxzim.js → wc-shell-DDRlQoRa.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-BKx0dmhX.js → wc-shortcut-config-Brv-M5LW.js} +1 -1
- package/dist/ui/assets/{wc-shortcuts-GZPnxY8C.js → wc-shortcuts-COrAirob.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-DDvNfcRr.js → wc-sprinkles-DyrtziuT.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-Nr-iLkgU.js → wc-transcript-export-DwKUFkgS.js} +2 -2
- package/dist/ui/assets/{wc-tray-DtMFbq5v.js → wc-tray-0WnTdNH-.js} +4 -4
- package/dist/ui/assets/welcome-detection-J63IHG-F.js +1 -0
- package/dist/ui/assets/{whisper-session-CpNs8SQu.js → whisper-session-DOslr3Ul.js} +2 -2
- package/dist/ui/assets/{writable-vfs-client-CuLQlJK0.js → writable-vfs-client-pZwewNEw.js} +1 -1
- package/dist/ui/assets/{xai-grok-lAapgYEW.js → xai-grok-B59jpOQy.js} +1 -1
- package/dist/ui/assets/{xai-grok-CrtZWfSb.js → xai-grok-DFqC0n0L.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +1 -1
- package/dist/ui/assets/backend-hostfs-De2Zrx7a.js +0 -1
- package/dist/ui/assets/backend-hostfs-n_0O1LVt.js +0 -1
- package/dist/ui/assets/fs-B8bgTSap.js +0 -2
- package/dist/ui/assets/fs-lOoWMJlR.js +0 -1
- package/dist/ui/assets/provider-settings-CGklQOX-.js +0 -1
- package/dist/ui/assets/provider-store-access-Bm_tTRMF.js +0 -1
- package/dist/ui/assets/provider-store-access-bxo2oSpb.js +0 -1
- package/dist/ui/assets/run-BbzzVjlq.js +0 -13
- package/dist/ui/assets/same-file-identity-C_JKwIh_.js +0 -1
- package/dist/ui/assets/slicc-version-BXeATbjt.js +0 -1
- package/dist/ui/assets/types-Bgy4zvr3.js +0 -1
- package/dist/ui/assets/welcome-detection-CwYj20Sf.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./base64-DJRlyqZu.js";import{f as n,p as r}from"./wc-follower-oauth-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{t}from"./base64-DJRlyqZu.js";import{f as n,p as r}from"./wc-follower-oauth-Zu14y4L8.js";import{r as i}from"./tray-leader-BmmfZ-wo.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 r(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=i().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){if(e.type!==`symlink`&&e.size!==void 0&&e.mtime!==void 0)return{type:e.type,size:e.size,mtime:e.mtime,ctime:e.ctime??e.mtime,...e.ino===void 0?{}:{ino:e.ino},...e.identity===void 0?{}:{identity:e.identity},...e.dev===void 0?{}:{dev:e.dev},...e.uid===void 0?{}:{uid:e.uid},...e.gid===void 0?{}:{gid:e.gid},...e.mode===void 0?{}:{mode:e.mode}}}var t=class extends Error{code;path;constructor(e,t,n){super(`${e}: ${t}${n?` '${n}'`:``}`),this.code=e,this.path=n,this.name=`FsError`}};export{e as n,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-BseNB1jB.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{i as e}from"./github-install-
|
|
1
|
+
import{i as e}from"./github-install-DeWDMQqS.js";function t(e){return(e??``).replace(/^\/+|\/+$/g,``)}function n(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n===r||n.startsWith(r)||r.startsWith(n)}function r(e){let n=t(e);if(n)return n.split(`/`).pop()||void 0}function i(e,n,i){if(e.kind!==`github`||e.source!==n)return!1;let a=t(e.path);if(!i||a===i||a.startsWith(`${i}/`))return!0;let o=r(i);return!!(o&&(e.skill===o||e.skill===i))}async function a(e,t){let n=e.body??{};if(n.verb!==`upskill`||typeof n.target!=`string`||!n.target)return!1;let r=t();if(!r)return!1;let[{scanSkillProvenance:i,resolveCommitSha:a},{createProxiedFetch:s},{createGitHubRequestContext:c}]=await Promise.all([import(`./provenance-DdmsQ3Nr.js`).then(e=>e.n),import(`./proxied-fetch-DEK8DT-z.js`).then(e=>e.i),import(`./github-auth-B9_wwar5.js`).then(e=>e.r)]),l=await i(r),u=await c(s());return await o({target:n.target,branch:typeof n.branch==`string`?n.branch:void 0,path:typeof n.path==`string`?n.path:void 0,provenanced:l.provenanced,unattributed:l.unattributed,resolveSha:({owner:e,repo:t,ref:n,path:r})=>a(e,t,n,u,!0,r)})!==`raise`}async function o(a){let o=e(a.target);if(!o)return`raise`;let s=`${o.owner}/${o.repo}`,c=t(a.path??o.path),l=a.branch??o.branch,u=a.provenanced.filter(({provenance:e})=>i(e,s,c)),d=r(c);if(u.length===0)return d&&a.unattributed.includes(d)?`skip-no-provenance`:`raise`;let f=u.map(({provenance:e})=>e.sha).filter(e=>typeof e==`string`&&e.length>0);if(f.length!==u.length)return`skip-no-provenance`;let p=await a.resolveSha({owner:o.owner,repo:o.repo,ref:l,path:c||void 0});return p?f.every(e=>n(e,p))?`skip-same-sha`:`raise`:`skip-no-provenance`}export{a as shouldSkipNavigateUpskill};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./logger-DDBAeTLF.js";import{K as t,W as n}from"./wc-shortcuts-
|
|
1
|
+
import{t as e}from"./logger-DDBAeTLF.js";import{K as t,W as n}from"./wc-shortcuts-COrAirob.js";import{hasVoiceForLang as r,speak as i,speechTextFromMarkdown as a}from"./speak-yWxvdNDd.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=n(e);if(l&&!await c(l))return;let u=a(t(e));if(u)try{await s(l?{text:u,lang:l}:{text:u})}catch(e){o.warn(`spoken reply failed`,e)}}export{l as consumeVoiceSubmission,c as markVoiceSubmission,u as speakReplyMarkdown};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shortcuts-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shortcuts-COrAirob.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-BgwlgyYt.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-CSATLzrT.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/logger-DDBAeTLF.js","assets/base64-DJRlyqZu.js","assets/proxied-fetch-DyBveeCl.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-YtctpJaG.js","assets/secret-topology-DLJBhHOi.js","assets/secrets-bridge-client--VZ3E0yk.js","assets/port-bridge-client-Dn8JtUyP.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-D9vgFF2K.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/icons-Ce7Vz89o.js","assets/wc-secret-request-CSdhu44a.js","assets/secret-request-registry-DrOMKR1H.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{t as e}from"./preload-helper-Czpn1I53.js";import{r as t,t as n}from"./base64-DJRlyqZu.js";import{t as r}from"./permissions-surface-registry-CilCRwhh.js";var i=8,a=2e3,o=[`/workspace`,`/shared`,`/tmp`],s=8,c=new Set([`node_modules`,`.git`]),l=1e4,u=/\.(png|jpe?g|gif|webp|svg|avif)$/i,d=4194304,f=262144;function p(){return`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function m(e){return{png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,avif:`image/avif`,md:`text/markdown`,json:`application/json`}[e.toLowerCase().split(`.`).pop()??``]??`text/plain`}function h(e,n){let r={id:p(),name:e,size:n.length};if(u.test(e))return n.length>d?{...r,mimeType:m(e),kind:`image`,error:`image too large to inline`}:{...r,mimeType:m(e),kind:`image`,data:t(n)};let i={...r,mimeType:m(e),kind:`file`};return n.length>f?{...i,error:`file too large to inline`}:i}async function g(e){let t=new Uint8Array(await e.arrayBuffer()),n=h(e.name,t);return e.type?{...n,mimeType:e.type}:n}function _(e,t){let n=t.match(/^data:(image\/[^;]+);base64,(.+)$/);return n?{id:p(),name:e,mimeType:n[1],size:Math.floor(n[2].length*3/4),kind:`image`,data:n[2]}:null}var v=`/tmp/upload`,y=1568;async function b(e,t,n){await e.mkdir(v,{recursive:!0}).catch(()=>void 0);let r=`${v}/${Date.now()}-${t.replace(/[^A-Za-z0-9._-]+/g,`_`)}`;return await e.writeFile(r,n),r}async function x(e,t=y){let n=new Image;n.src=e;try{await n.decode()}catch{return e}let r=Math.min(1,t/Math.max(n.naturalWidth,n.naturalHeight,1));if(r>=1)return e;let i=document.createElement(`canvas`);return i.width=Math.round(n.naturalWidth*r),i.height=Math.round(n.naturalHeight*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height),i.toDataURL(`image/jpeg`,.85)}async function S(e,t,r){let i=_(e,t);if(!i)return null;let a;return r&&i.data&&(a=await b(r,e,n(i.data)).catch(()=>void 0)),{..._(e,await x(t).catch(()=>t))??i,name:e,path:a}}async function C(e,t,n){if(!n)return null;let r=new Uint8Array(await t.arrayBuffer()),i=await b(n,e,r).catch(()=>void 0);return i?{id:p(),name:e,mimeType:t.type||`video/webm`,size:r.length,kind:`file`,path:i}:null}async function w(e){let t=[],n=o.map(e=>({dir:e,depth:0}));for(;n.length>0&&t.length<a;){let{dir:r,depth:i}=n.shift(),o;try{o=await e.readDir(r)}catch{continue}for(let e of o){let o=`${r}/${e.name}`;if(e.type===`directory`)i<s&&!c.has(e.name)&&n.push({dir:o,depth:i+1});else if(t.push(o),t.length>=a)break}}return t}function T(e){let t=null;return async n=>{let r=await e.openReader();(!t||Date.now()-t.at>l)&&(t={at:Date.now(),paths:await w(r)});let a=e=>n===``||e.toLowerCase().includes(n),o=t.paths.filter(e=>a(e)).slice(0,i).map(e=>({id:e,label:e.split(`/`).pop()??e,sub:e.slice(0,e.lastIndexOf(`/`))})),s=[];try{s=(await r.readDir(`/workspace/skills`)).filter(e=>e.type===`directory`&&a(e.name)).slice(0,i).map(e=>({id:e.name,label:e.name}))}catch{}let c=(await e.listConversations().catch(()=>[])).filter(e=>a(e.label)).slice(0,i);return[{kind:`file`,label:`Files`,icon:`file`,entries:o},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:s},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:c}]}}var E=`slicc-wc-attach-style`,D=`
|
|
3
3
|
.wcatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0;font-family:var(--ui);}
|
|
4
4
|
.wcatt:empty{display:none;}
|
|
@@ -10,4 +10,4 @@ import{t as e}from"./preload-helper-Czpn1I53.js";import{r as t,t as n}from"./bas
|
|
|
10
10
|
.wcatt__x{appearance:none;background:none;border:none;cursor:pointer;color:var(--txt-3);
|
|
11
11
|
font:inherit;padding:0;line-height:1;}
|
|
12
12
|
.wcatt__x:hover{color:var(--ink);}
|
|
13
|
-
`,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./wc-shortcuts-
|
|
13
|
+
`,O=class{#e;#t=[];constructor(e){if(!document.getElementById(E)){let e=document.createElement(`style`);e.id=E,e.textContent=D,document.head.appendChild(e)}this.#e=document.createElement(`div`),this.#e.className=`wcatt`,e.prepend(this.#e)}get items(){return this.#t}add(e){this.#t.push(e),this.#n()}take(){let e=this.#t;return this.#t=[],this.#n(),e}#n(){this.#e.replaceChildren(...this.#t.map(e=>this.#r(e)))}#r(t){let n=document.createElement(`span`);if(n.className=`wcatt__chip`,t.kind===`image`&&t.data){let r=document.createElement(`img`);r.className=`wcatt__thumb`,r.src=`data:${t.mimeType};base64,${t.data}`,r.alt=t.name,r.addEventListener(`click`,()=>{e(async()=>{let{SliccImagePreview:e}=await import(`./wc-shortcuts-COrAirob.js`).then(e=>e.m);return{SliccImagePreview: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])).then(({SliccImagePreview:e})=>e.show(r.src,r))}),n.append(r)}let r=document.createElement(`span`);r.className=`wcatt__name`,r.textContent=t.name;let i=document.createElement(`button`);return i.type=`button`,i.className=`wcatt__x`,i.setAttribute(`aria-label`,`Remove ${t.name}`),i.textContent=`×`,i.addEventListener(`click`,()=>{this.#t=this.#t.filter(e=>e.id!==t.id),this.#n()}),n.append(r,i),n}};async function k(e){let t=document.createElement(`video`);t.srcObject=e,t.muted=!0;try{await t.play(),await new Promise(e=>requestAnimationFrame(()=>e(null)));let e=document.createElement(`canvas`);return e.width=t.videoWidth,e.height=t.videoHeight,e.width===0||e.height===0?null:(e.getContext(`2d`)?.drawImage(t,0,0),e.toDataURL(`image/png`))}finally{for(let t of e.getTracks())t.stop();t.srcObject=null}}async function A(){let e=r();if(e){let t=await e.request(`screenshare`,{constraints:{video:!0}});if(!t)return null;let n=t.stream;return k(n)}return k(await navigator.mediaDevices.getDisplayMedia({video:!0}))}async function j(e,t){let n=r();if(!n)return null;let i=await n.prompt({kinds:e,description:t,skipIfGranted:!0});for(let e of i.grants)if(e.kind===`camera`||e.kind===`microphone`||e.kind===`screenshare`)for(let t of e.stream.getTracks())t.stop();return i.status===`granted`}var M=`slicc_camera_device`,N=`slicc_microphone_device`,P=[`position:absolute`,`left:50%`,`right:auto`,`transform:translateX(-50%)`,`bottom:56px`,`width:calc(100% - 32px)`,`max-width:680px`,`z-index:3`].join(`;`);async function F(e,t){if(await j([`camera`,`microphone`],`Slicc is requesting access to your camera and microphone to capture a photo or video for this conversation.`)===!1)return null;let n=document.createElement(`slicc-composer-capture`),r=localStorage.getItem(M);r&&n.setAttribute(`preferred-device`,r);let i=localStorage.getItem(N);i&&n.setAttribute(`preferred-audio-device`,i),n.style.cssText=P,n.hidden=!0,n.addEventListener(`slicc-capture-device-change`,e=>{let t=e.detail;if(!t?.deviceId)return;let n=t.kind===`microphone`?N:M;localStorage.setItem(n,t.deviceId)}),e.append(n);try{return await n.open(t)}finally{n.remove()}}async function I(e,t,n){if(!e.dataUrl)return;let r=`photo-${Date.now()}.png`,i=await t.openWriter?.().catch(()=>null)??null,a=await S(r,e.dataUrl,i);a&&n.add(a)}async function L(e,t,n){if(!e.blob)return;let r=/webm/i.test(e.mimeType)?`webm`:`bin`,i=`video-${Date.now()}.${r}`,a=await t.openWriter?.().catch(()=>null)??null,o=await C(i,e.blob,a);o&&n.add(o)}async function R(e,t,n){if(e.mode===`photo`){if(!t.composer){let e=await z();if(!e)return;let r=await S(`photo-${Date.now()}.png`,e,await t.openWriter?.().catch(()=>null)??null);r&&n.add(r);return}let e=await F(t.composer,`photo`);if(!e)return;e.kind===`image`?await I(e,t,n):e.kind===`video`&&await L(e,t,n);return}let r=await A();if(!r)return;let i=await S(`screenshot-${Date.now()}.png`,r,await t.openWriter?.().catch(()=>null)??null);i&&n.add(i)}async function z(){if(await j([`camera`],`Slicc is requesting access to your camera to capture a photo for this conversation.`)===!1)return null;let e=document.createElement(`slicc-camera-dialog`),t=localStorage.getItem(M);t&&e.setAttribute(`preferred-device`,t),e.addEventListener(`slicc-camera-device-change`,e=>{let t=e.detail?.deviceId;t&&localStorage.setItem(M,t)}),document.body.append(e);try{return await e.open()}finally{e.remove()}}async function B(e,t,n){let r=await n.openWriter?.().catch(()=>null)??null,i=r?await b(r,e.name,t).catch(()=>void 0):void 0;return i?{...e,error:void 0,path:i}:e.kind===`image`?e:{...e,error:`could not be saved to the virtual filesystem`}}async function V(e,t,n){let r=await(await t()).readFile(e,{encoding:`binary`});return typeof r==`string`?(n.error(`VFS image pick returned text, not bytes — skipping the inline copy`,e),null):r}async function H(e,t,n){let r=0;try{r=(await(await n()).stat(e)).size}catch{}return{id:p(),name:t,mimeType:m(t),size:r,kind:`file`,path:e}}async function U(e,t,n,r){let i=e.split(`/`).pop()??e;if(u.test(i)){let a=await V(e,t,r);if(a){let t=h(i,a);n.add({...t,error:void 0,path:e});return}}n.add(await H(e,i,t))}function W(e,t){let n=t.value??t.getAttribute(`value`)??``,r=n&&!n.endsWith(` `)?` `:``;t.setAttribute(`value`,`${n}${r}${e}`)}function G(e,t){W(`Use the "${e}" skill: `,t)}async function K(t){let{requestSecretFromUser:n}=await e(async()=>{let{requestSecretFromUser:e}=await import(`./wc-secret-request-CSdhu44a.js`);return{requestSecretFromUser:e}},__vite__mapDeps([26,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,0,25,27])),r=await n();if(!r.stored)return;let i=r.domains.join(`, `),a=r.persisted?`saved`:`this session only`;W(r.maskedValue?`I stored the secret ${r.name} (masked value ${r.maskedValue}, scope: ${i}, ${a}). Use the masked value — SLICC swaps in the real one at the network boundary. `:`I stored the secret ${r.name} (scope: ${i}, ${a}). Run \`secret get ${r.name}\` for its masked value. `,t.inputCard)}function q(e){return e?.name===`NotAllowedError`}async function J(e,t,n){if(e.kind===`upload`&&e.file instanceof File){let r=new Uint8Array(await e.file.arrayBuffer());n.add(await B(await g(e.file),r,t))}else e.kind===`capture`?await R(e,t,n):e.kind===`file`&&typeof e.id==`string`&&t.openReader?await U(e.id,t.openReader,n,t.log):e.kind===`secret`?await K(t):e.kind===`skill`&&typeof e.label==`string`?G(e.label,t.inputCard):e.kind===`conversation`&&typeof e.id==`string`&&t.freezer.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:e.id}}))}function Y(e){let{inputCard:t,log:n}=e,r=new O(t),i=t.querySelector(`slicc-add-menu`);return i&&(e.openReader?i.provider=T({openReader:e.openReader,listConversations:e.listConversations??(async()=>[])}):i.results=[],i.setAttribute(`global-drop`,``),e.noCamera&&i.setAttribute(`no-camera`,``),e.secretEntry&&i.setAttribute(`secret-action`,``)),t.addEventListener(`slicc-add`,t=>{let i=t.detail;i&&J(i,e,r).catch(e=>{q(e)||n.error(`WC add-menu action failed`,e)})}),t.addEventListener(`paste`,t=>{let i=t.clipboardData?.items;if(i)for(let a of Array.from(i)){if(!a.type.startsWith(`image/`))continue;let i=a.getAsFile();if(!i)continue;t.preventDefault();let o=(i.type.split(`/`)[1]||`png`).replace(/[^a-z0-9]/gi,``)||`png`,s=i.name?i:new File([i],`pasted-image.${o}`,{type:i.type});J({kind:`upload`,name:s.name,size:s.size,file:s},e,r).catch(e=>n.error(`Paste image failed`,e))}}),r}export{Y as wireWcAttach};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{C as t,S as n,b as r,r as i,t as a,y as o}from"./wc-live-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-bnY6sP2l.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/account-store-BgwlgyYt.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-CSATLzrT.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/logger-DDBAeTLF.js","assets/base64-DJRlyqZu.js","assets/proxied-fetch-DyBveeCl.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-YtctpJaG.js","assets/secret-topology-DLJBhHOi.js","assets/secrets-bridge-client--VZ3E0yk.js","assets/port-bridge-client-Dn8JtUyP.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-D9vgFF2K.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/bridge-protocol-06nbmp2X.js","assets/messages-zAgr7E2T.js","assets/tray-runtime-config-B9jN9kUJ.js","assets/telemetry-DJyRzh6X.js","assets/feature-flags-O-TLmy2G.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{C as t,S as n,b as r,r as i,t as a,y as o}from"./wc-live-DJNEmFrT.js";import{wireWcDetached as s}from"./wc-detached-F7FTH1YG.js";async function c(c,l,u=!1){let d;await i(c,l,{floatKind:`extension`,connect:e=>{d=new t(o(e.wiring));let i=n(d);return{client:r(e.wiring),host:i,workbench:(e,t)=>{a(e,d,t,i,l)}}}}),s({client:d,isDetachedSelf:u});let{setupSudoExtension:f}=await e(async()=>{let{setupSudoExtension:e}=await import(`./main-bnY6sP2l.js`).then(e=>e.i);return{setupSudoExtension:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]));await f({log:l}),d.requestState(),l.info(`WC extension shell connected to offscreen engine`)}export{c as bootExtensionFloat};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shortcuts-
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{n}from"./transcript-export-DP-r8eDz.js";import{a as r,c as i,n as a,t as o,v as s,y as c}from"./wc-follower-oauth-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-shortcuts-COrAirob.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/account-store-BgwlgyYt.js","assets/preload-helper-Czpn1I53.js","assets/claude-model-version-CSATLzrT.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/logger-DDBAeTLF.js","assets/base64-DJRlyqZu.js","assets/proxied-fetch-DyBveeCl.js","assets/fetch-body-1l9I58Vk.js","assets/api-endpoint-DGxXvrur.js","assets/runtime-env-Dlaokqg1.js","assets/float-topology-YtctpJaG.js","assets/secret-topology-DLJBhHOi.js","assets/secrets-bridge-client--VZ3E0yk.js","assets/port-bridge-client-Dn8JtUyP.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-D9vgFF2K.js","assets/panel-rpc-B3MSVImO.js","assets/bedrock-camp-compat-BeCSBUrZ.js","assets/icons-Ce7Vz89o.js","assets/panelize-shell-pVmyDBCR.js","assets/virtual-device-paths-D45tpPP6.js","assets/layout-apply-registry-Cw730jao.js","assets/wc-live-DJNEmFrT.js","assets/sprinkle-renderer-Ll7M_Iye.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-v1mGAdRY.js","assets/shared-mBEktoxE.js","assets/mime-types-D0xZwlMO.js","assets/theme-DFKCBK8N.js","assets/theme-engine-B5SkYf3E.js","assets/slugify-BYJ6QVAt.js","assets/transcript-export-DP-r8eDz.js","assets/session-jsonl-rwJVnCoS.js","assets/types-D8gIX-W-.js","assets/tray-runtime-config-B9jN9kUJ.js","assets/bridge-protocol-06nbmp2X.js","assets/messages-zAgr7E2T.js","assets/telemetry-DJyRzh6X.js","assets/feature-flags-O-TLmy2G.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-bnY6sP2l.js","assets/modulepreload-polyfill-P2Xu9kJm.js","assets/clipboard-eqmn97SP.js","assets/tray-join-url-BIvzbiFR.js","assets/src-BWaKqLvQ.js","assets/provider-budget-LCzMPlKv.js","assets/permissions-surface-registry-CilCRwhh.js","assets/browser-DGwroBSO.js","assets/tray-leader-BmmfZ-wo.js","assets/record-CCQFJXn_.js","assets/wc-shell-DDRlQoRa.js","assets/same-file-identity-DuEcSmPX.js","assets/wc-shell-WkeczD9x.css","assets/wc-unit-context-DhQqWVxs.js","assets/legacy-styles-B3nS5QUo.js","assets/follower-navigate-watcher-DnnHgZbM.js","assets/navigation-watcher-BpA1OwJw.js","assets/discovery-preference-Bw3Fi0jd.js","assets/wc-transcript-export-DwKUFkgS.js","assets/export-spool-CuNzzI8a.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{n}from"./transcript-export-DP-r8eDz.js";import{a as r,c as i,n as a,t as o,v as s,y as c}from"./wc-follower-oauth-Zu14y4L8.js";import{d as l,m as u,p as d,s as ee,u as te}from"./tray-runtime-config-B9jN9kUJ.js";import{m as ne,r as re,x as f}from"./wc-live-DJNEmFrT.js";import{i as p,t as m}from"./feature-flags-O-TLmy2G.js";import{a as ie,t as ae}from"./tray-follower-status-BAjnN7Ar.js";import{r as oe}from"./main-bnY6sP2l.js";import{n as se}from"./theme-engine-B5SkYf3E.js";import{d as ce}from"./wc-unit-context-DhQqWVxs.js";import{WcSprinkleZone as le}from"./wc-sprinkles-DyrtziuT.js";import{wireWcAttach as ue}from"./wc-attach-2vs4QwLK.js";import{installLeaderPermissionsSurface as de}from"./wc-permissions-BsGMi4OQ.js";var h=t(`follower-switch-out`);function fe(e,t){t.stopFollower();try{t.storage.removeItem(d),e.workerBaseUrl===null?t.storage.removeItem(u):t.storage.setItem(u,e.workerBaseUrl)}catch(e){h.error(`follower switch-out: storage write failed — state may revert on reload`,{error:e instanceof Error?e.message:String(e)})}try{let e=t.getHref(),n=l(e);n!==e&&t.replaceHref(n)}catch(e){h.error(`follower switch-out: URL normalize failed — may re-enter follower on reload`,{error:e instanceof Error?e.message:String(e)})}t.reload()}var g=6;function pe(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>=g)){let t=o.tabs.find(e=>e.id===r)?.url;if(!t){a.warn(`WC follower browser: no URL for tab`,{id:r});return}e.window.open(t,`_blank`,`noopener`)||a.warn(`WC follower browser: window.open was blocked`,{id:r}),o.hide();return}s.requestTabTeleport(r).then(e=>{a.info(`WC follower browser: leader teleported a tab here`,{source:r,targetId:e}),o.hide()}).catch(e=>{a.error(`WC follower browser: tab teleport failed`,e)})}),{overlay:o,refresh:s}}var _=new Set([`oauth-attempt`,`connect-attempt`,`device-code-decision`]);function me(e){return _.has(e)}var v=`slicc-signin-redirect-style`,y=`wc-signin-redirect`,b=`${y}--welcome`,x=`
|
|
3
3
|
.${y}{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
|
.${y}__x:hover{color:var(--ink);}
|
|
15
15
|
`;function S(e){if(e.getElementById(v))return;let t=e.createElement(`style`);t.id=v,t.textContent=x,e.head.appendChild(t)}function C(e,t){S(e);let n=e.createElement(`div`);n.className=y,n.setAttribute(`role`,`status`);let r=e.createElement(`div`);r.className=`${y}__body`;let i=e.createElement(`div`);i.className=`${y}__title`,i.textContent=t.title;let a=e.createElement(`div`);a.className=`${y}__sub`,a.textContent=t.sub,r.append(i,a);let o=e.createElement(`button`);if(o.type=`button`,o.className=`${y}__open`,o.textContent=t.buttonLabel,o.addEventListener(`click`,()=>t.onOpenTab()),n.append(r,o),t.dismissible){let t=e.createElement(`button`);t.type=`button`,t.className=`${y}__x`,t.setAttribute(`aria-label`,`Dismiss`),t.textContent=`×`,t.addEventListener(`click`,()=>n.remove()),n.append(t)}return n}function he(e,t){let n=e.ownerDocument;t.onOpenTab();let r=e.querySelector(`.${y}`);if(r)return r.scrollIntoView?.({block:`nearest`}),r;let i=C(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 ge(e,t){let n=C(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});return n.classList.add(b),n}var w=t(`wc-follower`),_e=`/shared/sprinkles/welcome/`,ve=`/shared/sprinkles/suggestions/`;function ye(e){return e===void 0||e===`active`?{kind:`active`}:e.trim()===``?null:{kind:`frozen`,sessionId:e}}function be(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 xe(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 T={terminal:!0,files:!0,memory:!0,browser:!0,modelPicker:!0,history:!0,nav:!0,monitor:!0,showTimestamps:!0};function Se(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 E(e,t){return e&&!t}async function D(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./wc-shortcuts-GZPnxY8C.js`).then(e=>e.w),__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])),e(()=>import(`./panelize-shell-48amUtWb.js`),__vite__mapDeps([26,11,0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28]))]),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 Ce(e,t,n){if(n&&t.cherryTransport?.flags)try{let e=JSON.parse(t.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&m(e)}catch(e){w.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let r=p(`panel-layouts`);if(e.refs.dockTree.tilesMovable=r,n&&t.cherryTransport?.layout)try{let n=JSON.parse(t.cherryTransport.layout);n&&typeof n==`object`&&`base`in n?r?await D(e,n,w):w.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):e.refs.dockTree.setTree(n)}catch(e){w.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}}async function O(t,l,u){let d=u===`cherry`,m=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,h=window.location.ancestorOrigins?.[0],g=d&&(h?.startsWith(`chrome-extension://`)??!1),_;try{_=await oe({runtimeMode:u,envBaseUrl:null,window,log:l})}catch(e){let n=e instanceof Error?e.message:String(e);w.error(`follower prelude failed`,{runtimeMode:u,error:n}),be(t,n);return}let v=d?_.cherryJoinUrl:ee(window.location.href,window.localStorage);if(!v){w.error(`follower mount with no join URL - falling back to live boot`);let{bootLeaderFloat:n}=await e(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-_MvHDENH.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,0,25,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]));return n(t,l,`standalone`)}let y=d?`cherry`:g?`extension`:`standalone`,x,S,C,D=new Set,O=null,k=null,A=()=>_.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),j=()=>{g&&he(x.refs.thread,{onOpenTab:A})},we=e=>{let t=e.querySelectorAll(`img[src^="${_e}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0&&!M?t.replaceWith(ge(e.ownerDocument,{onOpenTab:A})):t.remove()}),!0)},M=!1,Te=e=>{let t=e.querySelectorAll(`img[src^="${ve}"]`);if(t.length!==0){for(let e of t)e.remove();M=!0;for(let e of x.refs.thread.querySelectorAll(`.${b}`))e.remove()}},N=(await re(t,l,{floatKind:y,connect:async t=>{x=t,d&&_.cherryTransport?.theme&&se(_.cherryTransport.theme),await Ce(x,_,d);let n=d&&_.cherryTransport?.effortLevel;n?localStorage.setItem(`slicc_locked_effort_level`,n):localStorage.removeItem(`slicc_locked_effort_level`),S=d&&_.cherryTransport?{...T,..._.cherryTransport.features}:T,xe(x.refs.fileTree,x.refs.termSurface,x.refs.memoryHost,x.refs.monitor,S),Se(S),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./wc-shortcuts-GZPnxY8C.js`).then(e=>e.R);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{S.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([64,3])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0),C=new a({getSync:()=>J?.currentSync??null});let r=f({getSync:()=>J?.currentSync??null,onAgentEvent:e=>(D.add(e),()=>D.delete(e)),onAgentError:e=>{w.warn(`follower send failed`,{error:e}),N.controller.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)}}),i={...r,sendSprinkleLick:(e,t,n)=>{r.sendSprinkleLick(e,t,n);let i=t?.action;typeof i==`string`&&me(i)&&j()},addressableUnitId:()=>V(),onMessageRendered:e=>{Te(e),g&&we(e)},onSelectionApplied:()=>{W(H,U),k?.onShownUnitChanged()},onSnapshotRendered:e=>{N.controller.setProcessing(e.some(e=>e.isStreaming))},ownsModelPill:!0,takeAttachments:()=>De.take()};return{client:C,host:i}}})).chat,P=N.controller;if(g)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])x.refs.thread.addEventListener(e,()=>j());let F=`Connecting to leader…`,I=`Ask the leader, or describe a change…`,L=null,R=()=>x.getSelected()?.id??L,z=e=>e&&e.length>0?e:null,B=!1,V=()=>B?z(R()??C.selectedUnitId):null,Ee=()=>{let e=x.getSelected();return e?ce(e):!1},H=!1,U=F,W=(e,t)=>{H=e,U=t;let n=e&&V()!==null;x.refs.inputCard.setAttribute(`placeholder`,e&&!n?F:t),n&&!Ee()?x.refs.inputCard.removeAttribute(`disabled`):x.refs.inputCard.setAttribute(`disabled`,``)};W(!1,F),ie(e=>{try{window.localStorage.setItem(s,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(s,JSON.stringify(ae()))}catch{}m||x.refs.composer.setAttribute(`ptt`,``);let De=ue({inputCard:x.refs.inputCard,freezer:x.refs.freezer,composer:x.refs.composer,noCamera:m,log:w}),G=new le(x.refs).callbacks(),K=e=>{if(L=e,!e)return;let t=C.currentUnits().find(t=>t.id===e);if(!t){x.watchUnit(e),W(H,U);return}if(x.getSelected()?.id!==t.id){x.selectScoop(t);return}W(H,U)},q=()=>{B=!1,C.resetSelection()};x.refs.switcher.connection=`disconnected`;let J,Y=null,Oe=()=>(Y||=de({runtimeMode:u})?.element??null,Y),X=[],ke=pe({refs:x.refs,getSync:()=>J.currentSync,getTargets:()=>X,hasCdpBrowser:()=>E(_.hasLocalCdpSurface,m),window,log:w});k=ne({composerMeta:x.refs.composerMeta,getUnits:()=>C.currentUnits(),setModel:(e,t)=>{C.setModel(e,t).catch(()=>void 0)},getSync:()=>J.currentSync,getSelectedScoopJid:()=>R(),modelPickerEnabled:S.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)}),C.subscribeList(()=>k?.onShownUnitChanged()),J=r(C.wrapOptions({joinUrl:v,runtime:d?c:`slicc-standalone`,advertisesCdpTargets:E(_.hasLocalCdpSurface,m),onTargetsUpdated:e=>{X=e,ke.refresh()},...d||m?{}:{onOAuthPopupRequest:(e,t)=>o(e,t,{getPermissionsSurface:Oe,window})},browserAPI:_.browser,onSnapshot:(e,t)=>{B=!0,K(z(t))},onUserMessage:(e,t,n,r)=>P.addUserMessage(e,r),onBiscottoMessageState:(e,t)=>{switch(t){case`pending`:P.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:P.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:P.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{i(t,R())&&P.setProcessing(e===`processing`)},setChatAgent:e=>{O?.(),O=e.onEvent(e=>{for(let t of D)t(e)})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-BE35g6ia.js`);return{openSudoApprovalDialog:e}},[]),r=d?_.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=>{x.refs.switcher.connection=e?`connected`:`disconnected`,e||q(),W(e,e?I:F),e||k?.reset(),d&&_.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>R(),onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:I)},onGaveUp:e=>{w.error(`follower gave up reaching the leader`,{error:e}),x.refs.switcher.connection=`disconnected`,q(),W(!1,`Couldn't reach the leader. Reload to retry.`),k?.reset(),d&&_.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{w.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),te(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):w.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{B=!0;let n=R();!n||!e.some(e=>e.jid===n)?K(z(t)):K(n),x.wiring.refreshScoops?.()},onModelsList:e=>k?.onModelsList(e),onModelState:e=>k?.onModelState(e),...d?{onCherrySliccEvent:(e,t)=>_.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])x.refs.freezer.addEventListener(`new-chat-${e}`,()=>{J.currentSync?.requestNewSession(e)});p(`agentic-memory`)&&x.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),x.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(L=t)}),d&&_.cherryTransport&&(_.cherryTransport.onHostEvent=(e,t)=>J.currentSync?.sendCherryHostEvent(e,t),_.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=J.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=ye(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-DnnHgZbM.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([65,11,13,1,3,12,14,15,16,66,45,67]));Z=t(_.realCdpTransport,()=>J.currentSync)}let Q=!1,$=()=>{x.refs.avatarMenu.items=[{kind:`separator`},...g?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),x.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){_.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=J.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-Nr-iLkgU.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([68,3,41,69,54,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{w.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{fe({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),J.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),w.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{O as bootFollowerFloat};
|
|
17
|
+
.wcui-appcol{padding-left:0!important;}`),n.textContent=r,document.head.append(n)}}function E(e,t){return e&&!t}async function D(t,n,r){let[{parseLayoutDocument:i},{panelizeShell:a}]=await Promise.all([e(()=>import(`./wc-shortcuts-COrAirob.js`).then(e=>e.w),__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])),e(()=>import(`./panelize-shell-pVmyDBCR.js`),__vite__mapDeps([26,11,0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28]))]),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 Ce(e,t,n){if(n&&t.cherryTransport?.flags)try{let e=JSON.parse(t.cherryTransport.flags);e&&typeof e==`object`&&!Array.isArray(e)&&m(e)}catch(e){w.warn(`follower: host-pushed flags were not valid JSON — ignoring`,e)}let r=p(`panel-layouts`);if(e.refs.dockTree.tilesMovable=r,n&&t.cherryTransport?.layout)try{let n=JSON.parse(t.cherryTransport.layout);n&&typeof n==`object`&&`base`in n?r?await D(e,n,w):w.warn(`follower: ignoring host-pushed layout — the panel-layouts flag is off`):e.refs.dockTree.setTree(n)}catch(e){w.warn(`follower: host-pushed layout was not valid JSON — keeping the default`,e)}}async function O(t,l,u){let d=u===`cherry`,m=d&&new URLSearchParams(window.location.search).get(`ui-only`)===`1`,h=window.location.ancestorOrigins?.[0],g=d&&(h?.startsWith(`chrome-extension://`)??!1),_;try{_=await oe({runtimeMode:u,envBaseUrl:null,window,log:l})}catch(e){let n=e instanceof Error?e.message:String(e);w.error(`follower prelude failed`,{runtimeMode:u,error:n}),be(t,n);return}let v=d?_.cherryJoinUrl:ee(window.location.href,window.localStorage);if(!v){w.error(`follower mount with no join URL - falling back to live boot`);let{bootLeaderFloat:n}=await e(async()=>{let{bootLeaderFloat:e}=await import(`./wc-live-DJNEmFrT.js`).then(e=>e.n);return{bootLeaderFloat:e}},__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,0,25,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]));return n(t,l,`standalone`)}let y=d?`cherry`:g?`extension`:`standalone`,x,S,C,D=new Set,O=null,k=null,A=()=>_.cherryTransport?.emitSliccEventToHost(`slicc.open-leader-tab`),j=()=>{g&&he(x.refs.thread,{onOpenTab:A})},we=e=>{let t=e.querySelectorAll(`img[src^="${_e}"]`);return t.length!==0&&(t.forEach((t,n)=>{n===0&&!M?t.replaceWith(ge(e.ownerDocument,{onOpenTab:A})):t.remove()}),!0)},M=!1,Te=e=>{let t=e.querySelectorAll(`img[src^="${ve}"]`);if(t.length!==0){for(let e of t)e.remove();M=!0;for(let e of x.refs.thread.querySelectorAll(`.${b}`))e.remove()}},N=(await re(t,l,{floatKind:y,connect:async t=>{x=t,d&&_.cherryTransport?.theme&&se(_.cherryTransport.theme),await Ce(x,_,d);let n=d&&_.cherryTransport?.effortLevel;n?localStorage.setItem(`slicc_locked_effort_level`,n):localStorage.removeItem(`slicc_locked_effort_level`),S=d&&_.cherryTransport?{...T,..._.cherryTransport.features}:T,xe(x.refs.fileTree,x.refs.termSurface,x.refs.memoryHost,x.refs.monitor,S),Se(S),e(async()=>{let{applyTimestampVisibility:e,initTimestampPreference:t}=await import(`./wc-shortcuts-COrAirob.js`).then(e=>e.R);return{applyTimestampVisibility:e,initTimestampPreference:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])).then(({applyTimestampVisibility:e,initTimestampPreference:t})=>{S.showTimestamps?t():e(!1)}),e(async()=>{let{loadDipStyles:e,loadSprinkleStyles:t}=await import(`./legacy-styles-B3nS5QUo.js`);return{loadDipStyles:e,loadSprinkleStyles:t}},__vite__mapDeps([64,3])).then(({loadDipStyles:e,loadSprinkleStyles:t})=>Promise.all([e(),t()])).catch(()=>void 0),C=new a({getSync:()=>J?.currentSync??null});let r=f({getSync:()=>J?.currentSync??null,onAgentEvent:e=>(D.add(e),()=>D.delete(e)),onAgentError:e=>{w.warn(`follower send failed`,{error:e}),N.controller.addAssistantMessage(`_That message was not sent to the leader — ${e}_`)}}),i={...r,sendSprinkleLick:(e,t,n)=>{r.sendSprinkleLick(e,t,n);let i=t?.action;typeof i==`string`&&me(i)&&j()},addressableUnitId:()=>V(),onMessageRendered:e=>{Te(e),g&&we(e)},onSelectionApplied:()=>{W(H,U),k?.onShownUnitChanged()},onSnapshotRendered:e=>{N.controller.setProcessing(e.some(e=>e.isStreaming))},ownsModelPill:!0,takeAttachments:()=>De.take()};return{client:C,host:i}}})).chat,P=N.controller;if(g)for(let e of[`slicc-error-open-settings`,`slicc-error-login`,`slicc-error-change-model`])x.refs.thread.addEventListener(e,()=>j());let F=`Connecting to leader…`,I=`Ask the leader, or describe a change…`,L=null,R=()=>x.getSelected()?.id??L,z=e=>e&&e.length>0?e:null,B=!1,V=()=>B?z(R()??C.selectedUnitId):null,Ee=()=>{let e=x.getSelected();return e?ce(e):!1},H=!1,U=F,W=(e,t)=>{H=e,U=t;let n=e&&V()!==null;x.refs.inputCard.setAttribute(`placeholder`,e&&!n?F:t),n&&!Ee()?x.refs.inputCard.removeAttribute(`disabled`):x.refs.inputCard.setAttribute(`disabled`,``)};W(!1,F),ie(e=>{try{window.localStorage.setItem(s,JSON.stringify(e))}catch{}});try{window.localStorage.setItem(s,JSON.stringify(ae()))}catch{}m||x.refs.composer.setAttribute(`ptt`,``);let De=ue({inputCard:x.refs.inputCard,freezer:x.refs.freezer,composer:x.refs.composer,noCamera:m,log:w}),G=new le(x.refs).callbacks(),K=e=>{if(L=e,!e)return;let t=C.currentUnits().find(t=>t.id===e);if(!t){x.watchUnit(e),W(H,U);return}if(x.getSelected()?.id!==t.id){x.selectScoop(t);return}W(H,U)},q=()=>{B=!1,C.resetSelection()};x.refs.switcher.connection=`disconnected`;let J,Y=null,Oe=()=>(Y||=de({runtimeMode:u})?.element??null,Y),X=[],ke=pe({refs:x.refs,getSync:()=>J.currentSync,getTargets:()=>X,hasCdpBrowser:()=>E(_.hasLocalCdpSurface,m),window,log:w});k=ne({composerMeta:x.refs.composerMeta,getUnits:()=>C.currentUnits(),setModel:(e,t)=>{C.setModel(e,t).catch(()=>void 0)},getSync:()=>J.currentSync,getSelectedScoopJid:()=>R(),modelPickerEnabled:S.modelPicker,getLockedEffortLevel:()=>localStorage.getItem(`slicc_locked_effort_level`)}),C.subscribeList(()=>k?.onShownUnitChanged()),J=r(C.wrapOptions({joinUrl:v,runtime:d?c:`slicc-standalone`,advertisesCdpTargets:E(_.hasLocalCdpSurface,m),onTargetsUpdated:e=>{X=e,ke.refresh()},...d||m?{}:{onOAuthPopupRequest:(e,t)=>o(e,t,{getPermissionsSurface:Oe,window})},browserAPI:_.browser,onSnapshot:(e,t)=>{B=!0,K(z(t))},onUserMessage:(e,t,n,r)=>P.addUserMessage(e,r),onBiscottoMessageState:(e,t)=>{switch(t){case`pending`:P.addAssistantMessage(`_Sent for review — waiting for the host._`);break;case`rejected`:P.addAssistantMessage(`_The host did not forward that message._`);break;case`unanswered`:P.addAssistantMessage(`_No one reviewed that message in time, so it was not forwarded._`)}},onStatus:(e,t)=>{i(t,R())&&P.setProcessing(e===`processing`)},setChatAgent:e=>{O?.(),O=e.onEvent(e=>{for(let t of D)t(e)})},onSudoApprovalRequest:async t=>{let{openSudoApprovalDialog:n}=await e(async()=>{let{openSudoApprovalDialog:e}=await import(`./wc-sudo-approval-BE35g6ia.js`);return{openSudoApprovalDialog:e}},[]),r=d?_.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=>{x.refs.switcher.connection=e?`connected`:`disconnected`,e||q(),W(e,e?I:F),e||k?.reset(),d&&_.cherryTransport?.emitSliccEventToHost(e?`slicc.follower.ready`:`slicc.follower.disconnected`)},getSelectedScoopJid:()=>R(),onLeaderStalled:e=>{W(!e,e?`The leader is busy — hang on…`:I)},onGaveUp:e=>{w.error(`follower gave up reaching the leader`,{error:e}),x.refs.switcher.connection=`disconnected`,q(),W(!1,`Couldn't reach the leader. Reload to retry.`),k?.reset(),d&&_.cherryTransport?.emitSliccEventToHost(`slicc.follower.disconnected`)},...d?{}:{onJoinUrlChanged:e=>{w.info(`follower joinUrl superseded, persisting replacement`,{newJoinUrl:e}),te(window.localStorage,e)}},addSprinkle:G.addSprinkle,removeSprinkle:G.removeSprinkle,onOpen:e=>{/^https?:\/\//.test(e)?window.open(e,`_blank`,`noopener`):w.warn(`follower sprinkle open() of a local path is unavailable`,{path:e})},onScoopsList:(e,t)=>{B=!0;let n=R();!n||!e.some(e=>e.jid===n)?K(z(t)):K(n),x.wiring.refreshScoops?.()},onModelsList:e=>k?.onModelsList(e),onModelState:e=>k?.onModelState(e),...d?{onCherrySliccEvent:(e,t)=>_.cherryTransport?.emitSliccEventToHost(e,t)}:{}}));for(let e of[`save`,`skip`,`erase`])x.refs.freezer.addEventListener(`new-chat-${e}`,()=>{J.currentSync?.requestNewSession(e)});p(`agentic-memory`)&&x.refs.freezer.querySelector(`slicc-freezer-new`)?.setAttribute(`no-skip`,``),x.refs.switcher.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.key;t&&(L=t)}),d&&_.cherryTransport&&(_.cherryTransport.onHostEvent=(e,t)=>J.currentSync?.sendCherryHostEvent(e,t),_.cherryTransport.onExportRequest=(e,t,r,i)=>{let a=J.currentSync;if(!a)return Promise.reject(new n(`transfer-aborted`));let o=ye(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-DnnHgZbM.js`);return{startFollowerNavigateWatcher:e}},__vite__mapDeps([65,11,13,1,3,12,14,15,16,66,45,67]));Z=t(_.realCdpTransport,()=>J.currentSync)}let Q=!1,$=()=>{x.refs.avatarMenu.items=[{kind:`separator`},...g?[{id:`focus-leader-tab`,label:`Bring leader to front`,icon:`external-link`}]:[],{id:`export-transcript`,label:Q?`Exporting…`:`Export transcript`,icon:`download`,disabled:Q||void 0},{id:`tray-stop`,label:`Disconnect from leader`,icon:`unplug`,danger:!0}]};$(),x.refs.avatarMenu.addEventListener(`slicc-avatar-action`,t=>{let n=t.detail?.id;if(n===`focus-leader-tab`){_.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=J.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-DwKUFkgS.js`);return{downloadTranscriptBlob:e}},__vite__mapDeps([68,3,41,69,54,1]));await n(t,`slicc-transcript-${new Date().toISOString().slice(0,10)}.zip`)}).catch(e=>{w.error(`follower transcript export failed`,{error:String(e)})}).finally(()=>{Q=!1,$()})}}),window.addEventListener(`slicc:tray-leave`,e=>{fe({workerBaseUrl:(e.detail??{}).workerBaseUrl??null},{storage:window.localStorage,stopFollower:()=>{Z?.(),J.stop()},getHref:()=>window.location.href,replaceHref:e=>window.history.replaceState(null,``,e),reload:()=>window.location.reload()})}),w.info(`follower mounted`,{runtimeMode:u,isCherry:d})}export{O as bootFollowerFloat};
|