sliccy 5.73.1 → 5.73.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/ui/assets/{account-store-B6wsXVgT.js → account-store-1sWsdBXV.js} +1 -1
  2. package/dist/ui/assets/{account-store-CUF4HY16.js → account-store-DWKDZbQl.js} +1 -1
  3. package/dist/ui/assets/{adobe-Dpmy75nP.js → adobe-DES2cp-y.js} +1 -1
  4. package/dist/ui/assets/{adobe-DCu8AsN1.js → adobe-DHUcvdyP.js} +1 -1
  5. package/dist/ui/assets/{apps-DagAQ_4L.js → apps-DJx3akpR.js} +1 -1
  6. package/dist/ui/assets/{azure-openai-e7wFppYa.js → azure-openai-C3DSYzL8.js} +1 -1
  7. package/dist/ui/assets/{azure-openai-B8pYgfDW.js → azure-openai-D7xJ5VET.js} +1 -1
  8. package/dist/ui/assets/{cerebras-D9N4Lull.js → cerebras-CnOHiorM.js} +1 -1
  9. package/dist/ui/assets/{cerebras-BQU-c6XM.js → cerebras-EsczMAGe.js} +1 -1
  10. package/dist/ui/assets/{connect-surface-C6z4fgfT.js → connect-surface-BTk8oHjU.js} +1 -1
  11. package/dist/ui/assets/{fs-CfV56Xzc.js → fs-C_SqCSvP.js} +2 -2
  12. package/dist/ui/assets/{fs-ReL7mas8.js → fs-PoNPHaXB.js} +1 -1
  13. package/dist/ui/assets/{github-DC2mI381.js → github-DF16zQXQ.js} +1 -1
  14. package/dist/ui/assets/{github-DlM_ZiMC.js → github-DjE0FC03.js} +2 -2
  15. package/dist/ui/assets/{github-copilot-usRsK1pP.js → github-copilot-DeMLYZUN.js} +1 -1
  16. package/dist/ui/assets/{github-copilot-HiCl3DTY.js → github-copilot-DiGxn4oA.js} +1 -1
  17. package/dist/ui/assets/{kernel-worker-oj5-3zTM.js → kernel-worker-C-tryBGn.js} +19 -19
  18. package/dist/ui/assets/{lick-ws-bridge-C5sthkSg.js → lick-ws-bridge-C3foeWDS.js} +1 -1
  19. package/dist/ui/assets/{local-llm-4DIJUN2L.js → local-llm-CWi0ZprP.js} +1 -1
  20. package/dist/ui/assets/{local-llm-DIIXr4Sd.js → local-llm-Dq9HBaqe.js} +1 -1
  21. package/dist/ui/assets/{main-CxeTOvHA.js → main-BMElPt_b.js} +3 -3
  22. package/dist/ui/assets/{mount-Br1HMdHN.js → mount-C7OeghLh.js} +2 -2
  23. package/dist/ui/assets/{mount-CdCx7bfP.js → mount-CAFjW1QS.js} +1 -1
  24. package/dist/ui/assets/{mount-recovery-BHzvbfOP.js → mount-recovery-B8VdqP8T.js} +1 -1
  25. package/dist/ui/assets/{new-session-DYO8R_Zc.js → new-session-BwNVjrlp.js} +2 -2
  26. package/dist/ui/assets/{oauth-bootstrap-qKi5HrZw.js → oauth-bootstrap-Bf7Ewk3g.js} +2 -2
  27. package/dist/ui/assets/{openai-codex-Dgojs1ya.js → openai-codex-D9LHZUcr.js} +1 -1
  28. package/dist/ui/assets/{openai-codex-BwDEidN2.js → openai-codex-je7irmYi.js} +1 -1
  29. package/dist/ui/assets/{openrouter-CLn-Adxq.js → openrouter-BIvugNQ1.js} +1 -1
  30. package/dist/ui/assets/{openrouter-BKdTvoJz.js → openrouter-BmRdV9UY.js} +1 -1
  31. package/dist/ui/assets/{openrouter-oauth-BJRgP9h7.js → openrouter-oauth-QExY6Qo3.js} +1 -1
  32. package/dist/ui/assets/{openrouter-oauth-DxBt0XKh.js → openrouter-oauth-lGTI8QBz.js} +1 -1
  33. package/dist/ui/assets/{panel-rpc-handlers-4paLg130.js → panel-rpc-handlers-SvYz4p6A.js} +2 -2
  34. package/dist/ui/assets/{provider-BeGEAmGF.js → provider-CDDFVleF.js} +2 -2
  35. package/dist/ui/assets/{provider-cmv38jfU.js → provider-dLnW_Qmu.js} +1 -1
  36. package/dist/ui/assets/{provider-settings-BMbTs0BD.js → provider-settings-BQ_ViD6o.js} +1 -1
  37. package/dist/ui/assets/{provider-settings-BM266pC2.js → provider-settings-BonXlQHx.js} +1 -1
  38. package/dist/ui/assets/provider-store-access-B_M384kS.js +1 -0
  39. package/dist/ui/assets/{provider-store-access-UWSLcJ7i.js → provider-store-access-CDUXoK9n.js} +2 -2
  40. package/dist/ui/assets/{providers-COls-Or7.js → providers-B8AC4r1K.js} +2 -2
  41. package/dist/ui/assets/{providers-D4GdXkNa.js → providers-BE5wq_hp.js} +1 -1
  42. package/dist/ui/assets/{quick-llm-CuIsTZtN.js → quick-llm-j8Lw8DXh.js} +1 -1
  43. package/dist/ui/assets/{session-freezer-BUA5sI9P.js → session-freezer-jCi1eAnA.js} +2 -2
  44. package/dist/ui/assets/{setup-sudo-C6QHc1yV.js → setup-sudo-CglheNlM.js} +2 -2
  45. package/dist/ui/assets/{skills-CXHWfQwA.js → skills-B6K9VVT7.js} +1 -1
  46. package/dist/ui/assets/{store-BOuq06bz.js → store-Dpqwm0j1.js} +1 -1
  47. package/dist/ui/assets/{sudo-CmbRH2hr.js → sudo-Bfbjy3cy.js} +1 -1
  48. package/dist/ui/assets/{upgrade-detection-oVhfsof_.js → upgrade-detection-DdRKki36.js} +1 -1
  49. package/dist/ui/assets/{wc-extension-DyRNEx3O.js → wc-extension-K9Yoj8xX.js} +2 -2
  50. package/dist/ui/assets/{wc-follower--A0R8-NS.js → wc-follower-BmFSgVpW.js} +3 -3
  51. package/dist/ui/assets/{wc-live-Ds4g3oV4.js → wc-live-FQiVeP5H.js} +3 -3
  52. package/dist/ui/assets/{wc-nav-D0PdjkqR.js → wc-nav-CPTHD9Gm.js} +2 -2
  53. package/dist/ui/assets/{wc-onboarding-D7VfMTGK.js → wc-onboarding-Du7r32Nc.js} +2 -2
  54. package/dist/ui/assets/{wc-placeholder-DeCd3BHx.js → wc-placeholder-qw9xzwIX.js} +2 -2
  55. package/dist/ui/assets/{wc-settings-B1DFUkhA.js → wc-settings-Dsqf_wFN.js} +2 -2
  56. package/dist/ui/assets/{wc-shell-DLWqMFgu.js → wc-shell-LFcAIFJQ.js} +2 -2
  57. package/dist/ui/assets/{wc-sprinkles-CT608Poj.js → wc-sprinkles-CYSiEKaU.js} +2 -2
  58. package/dist/ui/assets/{wc-tray-Cw_9Cj8r.js → wc-tray-Dg2nqNkH.js} +2 -2
  59. package/dist/ui/assets/{xai-grok-CHCLxPEs.js → xai-grok-BvvyCW-L.js} +1 -1
  60. package/dist/ui/assets/{xai-grok--blwG4GI.js → xai-grok-D-owzioC.js} +1 -1
  61. package/dist/ui/index.html +5 -5
  62. package/dist/ui/packages/webapp/index.html +5 -5
  63. package/package.json +1 -1
  64. package/dist/ui/assets/provider-store-access-Bpb6hKuU.js +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{t as r}from"./logger-LESFN7Hj.js";import{n as i,r as a,t as o}from"./panel-rpc-CjFVE0nK.js";import{a as s,t as c}from"./providers-D4GdXkNa.js";import{a as l,c as u,d,f,h as p,i as m,l as h,m as g,n as _,p as v,r as y,s as b,t as x,u as S}from"./proxied-fetch-ldIfAeIb.js";import{r as C,t as w}from"./src-Dk1QVJRd.js";import{D as T,E,F as D,G as ee,I as O,J as te,K as ne,L as k,X as A,Y as re,Z as ie,d as ae,m as oe,q as se,w as ce}from"./account-store-CUF4HY16.js";import{t as le}from"./runtime-env-byAg9ij-.js";import{n as ue,r as de,t as j}from"./fetch-body-DDu_AU5I.js";import{c as M,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./tray-follower-status-B191H1LK.js";import{a as ve,i as ye,n as N,r as be}from"./transcript-limits-D0M7bLr9.js";import{n as xe,o as Se,s as P}from"./tool-ui-t6ocn6AG.js";import{a as Ce,i as F,n as we,o as I,r as L,t as Te}from"./backend-local-D4WZgy4J.js";import{t as R}from"./types-idfTVsM8.js";import{n as Ee,t as De}from"./mime-types-D7IV6i7k.js";import{a as z,i as Oe,n as ke,r as Ae}from"./mount-CdCx7bfP.js";import{o as je}from"./mount-table-store-CTrzlrNn.js";import{t as Me}from"./remote-cache-D59F5FOx.js";import{r as Ne,t as Pe}from"./mount-recovery-BHzvbfOP.js";import{S as Fe,a as Ie,b as Le,g as Re,h as ze,i as Be,l as Ve,m as He,n as Ue,o as We,p as Ge,t as Ke,u as qe,v as Je,w as Ye,x as eee}from"./db-DjAqlQ2I.js";import{a as Xe,n as Ze,r as Qe,s as $e}from"./tray-runtime-config-8-BCHO27.js";import{a as et,i as tt,n as nt,o as rt,r as it}from"./runtime-mode-BVHOImD_.js";import{a as at,c as ot,d as st,i as ct,l as lt,n as ut,o as dt,s as ft,t as pt,u as mt}from"./lick-manager-Ct3WOtut.js";import{i as ht,n as gt,t as _t}from"./path-utils-DU6QhF_k.js";import{u as vt}from"./transform-messages-Bp94o3FD.js";import{l as yt,m as bt}from"./bedrock-camp-D_7EbOFH.js";import{t as xt}from"./__vite-browser-external-SwrSgYTf.js";import{a as St,n as Ct,r as wt}from"./fs-ReL7mas8.js";import{a as Tt,c as Et,i as B,n as Dt,o as Ot,r as kt,s as At}from"./cost-command-Cpg2Em0Q.js";import{a as jt,c as Mt,d as Nt,f as Pt,i as Ft,l as It,m as Lt,n as Rt,o as zt,p as Bt,r as Vt,s as Ht,u as Ut}from"./skills-CXHWfQwA.js";import{n as Wt,t as Gt}from"./llm-session-id-ZObKEXzb.js";import{a as Kt,c as qt,d as Jt,f as Yt,i as Xt,l as tee,n as nee,o as ree,r as Zt,s as Qt,t as $t,u as en}from"./installer-kDSMsl2T.js";import{n as tn,t as nn}from"./safe-buffer-C0pSmFaz.js";import{t as rn}from"./global-db-DvmmimLY.js";import{a as an,i as on,r as sn,t as cn}from"./git-config-Lj0BT7Oc.js";import{t as ln}from"./process-manager-B5dz0PkO.js";import{C as un,O as dn,S as fn,_ as pn,a as mn,b as hn,c as gn,d as _n,f as vn,g as yn,h as bn,i as xn,k as Sn,l as Cn,m as wn,n as Tn,o as En,p as Dn,r as On,s as kn,t as An,u as jn,v as Mn,x as Nn,y as Pn}from"./shared-pjIf7b3g.js";import{i as Fn,r as In,t as Ln}from"./magick-wasm-Daq1kpb4.js";import{a as Rn,i as zn,r as Bn,t as Vn}from"./script-catalog-BYXhqRAc.js";import{t as Hn}from"./local-llm-DIIXr4Sd.js";import{t as Un}from"./client-BliYDaDA.js";const Wn=r(`cdp`);var Gn=class{ws=null;nextId=1;_superseded=!1;pending=new Map;listeners=new Map;_state=`disconnected`;get state(){return this._state}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:r}=e;return this._state=`connecting`,new Promise((e,i)=>{let a=setTimeout(()=>{this.cleanup(),i(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=r===void 0?new WebSocket(t):new WebSocket(t,r)}catch(e){clearTimeout(a),this._state=`disconnected`,i(e);return}this.ws.onopen=()=>{clearTimeout(a),this._state=`connected`,this._superseded=!1,Wn.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(Wn.error(`Connection failed`,{url:t}),this.cleanup(),i(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),Wn.info(`Disconnected`)}async send(e,t,n,r=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let i=this.nextId++,a={id:i,method:e};return t&&(a.params=t),n&&(a.sessionId=n),Wn.debug(`Send`,{method:e,id:i,sessionId:n}),new Promise((t,n)=>{let o=setTimeout(()=>{this.pending.delete(i),n(Error(`CDP command timed out after ${r}ms: ${e}`))},r);this.pending.set(i,{resolve:e=>{clearTimeout(o),t(e)},reject:e=>{clearTimeout(o),n(e)}}),this.ws.send(JSON.stringify(a))})}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return new Promise((n,r)=>{let i=setTimeout(()=>{this.off(e,a),r(Error(`Timed out waiting for event: ${e}`))},t),a=t=>{clearTimeout(i),this.off(e,a),n(t)};this.on(e,a)})}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;Wn.debug(`Response`,{id:e.id,hasError:!!e.error});let n=this.pending.get(e.id);n&&(this.pending.delete(e.id),e.error?(Wn.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),n.reject(Error(`CDP error: ${e.error.message} (${e.error.code})`))):n.resolve(e.result??{}));return}if(`method`in t){let e=t;Wn.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){let t=e===4001;t?(this._superseded=!0,Wn.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):Wn.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size});let n=t?`CDP connection superseded by another SLICC tab/window on this instance`:`CDP connection closed`;for(let[,e]of this.pending)e.reject(Error(n));this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.clear()}};const Kn=`(function() {
1
+ import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{t as r}from"./logger-LESFN7Hj.js";import{n as i,r as a,t as o}from"./panel-rpc-CjFVE0nK.js";import{a as s,t as c}from"./providers-BE5wq_hp.js";import{a as l,c as u,d,f,h as p,i as m,l as h,m as g,n as _,p as v,r as y,s as b,t as x,u as S}from"./proxied-fetch-ldIfAeIb.js";import{r as C,t as w}from"./src-Dk1QVJRd.js";import{D as T,E,F as D,G as ee,I as O,J as te,K as ne,L as k,X as A,Y as re,Z as ie,d as ae,m as oe,q as se,w as ce}from"./account-store-DWKDZbQl.js";import{t as le}from"./runtime-env-byAg9ij-.js";import{n as ue,r as de,t as j}from"./fetch-body-DDu_AU5I.js";import{c as M,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./tray-follower-status-B191H1LK.js";import{a as ve,i as ye,n as N,r as be}from"./transcript-limits-D0M7bLr9.js";import{n as xe,o as Se,s as P}from"./tool-ui-t6ocn6AG.js";import{a as Ce,i as F,n as we,o as I,r as L,t as Te}from"./backend-local-D4WZgy4J.js";import{t as R}from"./types-idfTVsM8.js";import{n as Ee,t as De}from"./mime-types-D7IV6i7k.js";import{a as z,i as Oe,n as ke,r as Ae}from"./mount-CAFjW1QS.js";import{o as je}from"./mount-table-store-CTrzlrNn.js";import{t as Me}from"./remote-cache-D59F5FOx.js";import{r as Ne,t as Pe}from"./mount-recovery-B8VdqP8T.js";import{S as Fe,a as Ie,b as Le,g as Re,h as ze,i as Be,l as Ve,m as He,n as Ue,o as We,p as Ge,t as Ke,u as qe,v as Je,w as Ye,x as eee}from"./db-DjAqlQ2I.js";import{a as Xe,n as Ze,r as Qe,s as $e}from"./tray-runtime-config-8-BCHO27.js";import{a as et,i as tt,n as nt,o as rt,r as it}from"./runtime-mode-BVHOImD_.js";import{a as at,c as ot,d as st,i as ct,l as lt,n as ut,o as dt,s as ft,t as pt,u as mt}from"./lick-manager-Ct3WOtut.js";import{i as ht,n as gt,t as _t}from"./path-utils-DU6QhF_k.js";import{u as vt}from"./transform-messages-Bp94o3FD.js";import{l as yt,m as bt}from"./bedrock-camp-D_7EbOFH.js";import{t as xt}from"./__vite-browser-external-SwrSgYTf.js";import{a as St,n as Ct,r as wt}from"./fs-PoNPHaXB.js";import{a as Tt,c as Et,i as B,n as Dt,o as Ot,r as kt,s as At}from"./cost-command-Cpg2Em0Q.js";import{a as jt,c as Mt,d as Nt,f as Pt,i as Ft,l as It,m as Lt,n as Rt,o as zt,p as Bt,r as Vt,s as Ht,u as Ut}from"./skills-B6K9VVT7.js";import{n as Wt,t as Gt}from"./llm-session-id-ZObKEXzb.js";import{a as Kt,c as qt,d as Jt,f as Yt,i as Xt,l as tee,n as nee,o as ree,r as Zt,s as Qt,t as $t,u as en}from"./installer-kDSMsl2T.js";import{n as tn,t as nn}from"./safe-buffer-C0pSmFaz.js";import{t as rn}from"./global-db-DvmmimLY.js";import{a as an,i as on,r as sn,t as cn}from"./git-config-Lj0BT7Oc.js";import{t as ln}from"./process-manager-B5dz0PkO.js";import{C as un,O as dn,S as fn,_ as pn,a as mn,b as hn,c as gn,d as _n,f as vn,g as yn,h as bn,i as xn,k as Sn,l as Cn,m as wn,n as Tn,o as En,p as Dn,r as On,s as kn,t as An,u as jn,v as Mn,x as Nn,y as Pn}from"./shared-pjIf7b3g.js";import{i as Fn,r as In,t as Ln}from"./magick-wasm-Daq1kpb4.js";import{a as Rn,i as zn,r as Bn,t as Vn}from"./script-catalog-BYXhqRAc.js";import{t as Hn}from"./local-llm-Dq9HBaqe.js";import{t as Un}from"./client-BliYDaDA.js";const Wn=r(`cdp`);var Gn=class{ws=null;nextId=1;_superseded=!1;pending=new Map;listeners=new Map;_state=`disconnected`;get state(){return this._state}get superseded(){return this._superseded}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:n=5e3,protocols:r}=e;return this._state=`connecting`,new Promise((e,i)=>{let a=setTimeout(()=>{this.cleanup(),i(Error(`CDP connection timed out after ${n}ms`))},n);try{this.ws=r===void 0?new WebSocket(t):new WebSocket(t,r)}catch(e){clearTimeout(a),this._state=`disconnected`,i(e);return}this.ws.onopen=()=>{clearTimeout(a),this._state=`connected`,this._superseded=!1,Wn.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(Wn.error(`Connection failed`,{url:t}),this.cleanup(),i(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=e=>{this.handleClose(e?.code)}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this._superseded=!1,this.cleanup(),Wn.info(`Disconnected`)}async send(e,t,n,r=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let i=this.nextId++,a={id:i,method:e};return t&&(a.params=t),n&&(a.sessionId=n),Wn.debug(`Send`,{method:e,id:i,sessionId:n}),new Promise((t,n)=>{let o=setTimeout(()=>{this.pending.delete(i),n(Error(`CDP command timed out after ${r}ms: ${e}`))},r);this.pending.set(i,{resolve:e=>{clearTimeout(o),t(e)},reject:e=>{clearTimeout(o),n(e)}}),this.ws.send(JSON.stringify(a))})}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return new Promise((n,r)=>{let i=setTimeout(()=>{this.off(e,a),r(Error(`Timed out waiting for event: ${e}`))},t),a=t=>{clearTimeout(i),this.off(e,a),n(t)};this.on(e,a)})}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;Wn.debug(`Response`,{id:e.id,hasError:!!e.error});let n=this.pending.get(e.id);n&&(this.pending.delete(e.id),e.error?(Wn.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),n.reject(Error(`CDP error: ${e.error.message} (${e.error.code})`))):n.resolve(e.result??{}));return}if(`method`in t){let e=t;Wn.debug(`Event`,{method:e.method,sessionId:e.sessionId});let n=this.listeners.get(e.method);if(n){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of n)try{e(t)}catch{}}}}handleClose(e){let t=e===4001;t?(this._superseded=!0,Wn.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):Wn.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size});let n=t?`CDP connection superseded by another SLICC tab/window on this instance`:`CDP connection closed`;for(let[,e]of this.pending)e.reject(Error(n));this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.clear()}};const Kn=`(function() {
2
2
  'use strict';
3
3
 
4
4
  // ===== DOM Utilities =====
@@ -4479,10 +4479,10 @@ gpgsig`)),n=e.slice(e.indexOf(`-----END PGP SIGNATURE-----
4479
4479
  `+n)}isolateSignature(){return nM(this._commit.slice(this._commit.indexOf(`-----BEGIN PGP SIGNATURE-----`),this._commit.indexOf(`-----END PGP SIGNATURE-----`)+27))}static async sign(t,n,r){let i=t.withoutSignature(),a=e.justMessage(t._commit),{signature:o}=await n({payload:i,secretKey:r});o=Xj(o);let s=e.justHeaders(t._commit)+`
4480
4480
  gpgsig`+tM(o)+`
4481
4481
  `+a;return e.from(s)}};async function iM({fs:e,cache:t,gitdir:n,oid:r}){if(r===`4b825dc642cb6eb9a060e54bf8d69288fbee4904`)return{tree:qA.from([]),oid:r};let{type:i,object:a}=await vj({fs:e,cache:t,gitdir:n,oid:r});if(i===`tag`)return r=eM.from(a).parse().object,iM({fs:e,cache:t,gitdir:n,oid:r});if(i===`commit`)return r=rM.from(a).parse().tree,iM({fs:e,cache:t,gitdir:n,oid:r});if(i!==`tree`)throw new cA(r,i,`tree`);return{tree:qA.from(a),oid:r}}var aM=class{constructor({fs:e,gitdir:t,ref:n,cache:r}){this.fs=e,this.cache=r,this.gitdir=t,this.mapPromise=(async()=>{let r=new Map,i;try{i=await X.resolve({fs:e,gitdir:t,ref:n})}catch(e){e instanceof sA&&(i=`4b825dc642cb6eb9a060e54bf8d69288fbee4904`)}let a=await iM({fs:e,cache:this.cache,gitdir:t,oid:i});return a.type=`tree`,a.mode=`40000`,r.set(`.`,a),r})();let i=this;this.ConstructEntry=class{constructor(e){this._fullpath=e,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(e){let t=e._fullpath,{fs:n,cache:r,gitdir:i}=this,a=await this.mapPromise,o=a.get(t);if(!o)throw Error(`No obj for ${t}`);let s=o.oid;if(!s)throw Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!==`tree`)return null;let{type:c,object:l}=await vj({fs:n,cache:r,gitdir:i,oid:s});if(c!==o.type)throw new cA(s,c,o.type);let u=qA.from(l);for(let e of u)a.set(Y(t,e.path),e);return u.entries().map(e=>Y(t,e.path))}async type(e){if(e._type===!1){let{type:t}=(await this.mapPromise).get(e._fullpath);e._type=t}return e._type}async mode(e){if(e._mode===!1){let{mode:t}=(await this.mapPromise).get(e._fullpath);e._mode=Pk(parseInt(t,8))}return e._mode}async stat(e){}async content(e){if(e._content===!1){let t=await this.mapPromise,{fs:n,cache:r,gitdir:i}=this,a=t.get(e._fullpath).oid,{type:o,object:s}=await vj({fs:n,cache:r,gitdir:i,oid:a});o===`blob`?e._content=new Uint8Array(s):e._content=void 0}return e._content}async oid(e){return e._oid===!1&&(e._oid=(await this.mapPromise).get(e._fullpath).oid),e._oid}};function oM({ref:e=`HEAD`}={}){let t=Object.create(null);return Object.defineProperty(t,aA,{value:function({fs:t,gitdir:n,cache:r}){return new aM({fs:t,gitdir:n,ref:e,cache:r})}}),Object.freeze(t),t}var sM=class{constructor({fs:e,dir:t,gitdir:n,cache:r,refresh:i=!0}){this.fs=e,this.cache=r,this.dir=t,this.gitdir=n,this.refresh=i,this.config=null;let a=this;this.ConstructEntry=class{constructor(e){this._fullpath=e,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(e){let t=e._fullpath,{fs:n,dir:r}=this,i=await n.readdir(Y(r,t));return i===null?null:i.map(e=>Y(t,e))}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let{fs:t,dir:n}=this,r=await t.lstat(`${n}/${e._fullpath}`);if(!r)throw Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let i=r.isDirectory()?`tree`:`blob`;i===`blob`&&!r.isFile()&&!r.isSymbolicLink()&&(i=`special`),e._type=i,r=Lk(r),e._mode=r.mode,r.size===-1&&e._actualSize&&(r.size=e._actualSize),e._stat=r}return e._stat}async content(e){if(e._content===!1){let{fs:t,dir:n,gitdir:r}=this;if(await e.type()===`tree`)e._content=void 0;else{let i;if(await e.mode()>>12==10)i=await t.readlink(`${n}/${e._fullpath}`);else{let a=await(await this._getGitConfig(t,r)).get(`core.autocrlf`);i=await t.read(`${n}/${e._fullpath}`,{autocrlf:a})}e._actualSize=i.length,e._stat&&e._stat.size===-1&&(e._stat.size=e._actualSize),e._content=new Uint8Array(i)}}return e._content}async oid(e){if(e._oid===!1){let t=this,{fs:n,gitdir:r,cache:i}=this,a;await $k.acquire({fs:n,gitdir:r,cache:i},async function(i){let o=i.entriesMap.get(e._fullpath),s=await e.stat(),c=await(await t._getGitConfig(n,r)).get(`core.filemode`),l=typeof process<`u`?process.platform!==`win32`:!0;if(!o||qk(s,o,c,l)){let n=await e.content();n===void 0?a=void 0:(a=await Bk(JA.wrap({type:`blob`,object:n})),t.refresh&&o&&a===o.oid&&(!c||s.mode===o.mode)&&qk(s,o,c,l)&&i.insert({filepath:e._fullpath,stats:s,oid:a}))}else a=o.oid}),e._oid=a}return e._oid}async _getGitConfig(e,t){return this.config||=await IA.get({fs:e,gitdir:t}),this.config}};function cM({refresh:e=!0}={}){let t=Object.create(null);return Object.defineProperty(t,aA,{value:function({fs:t,dir:n,gitdir:r,cache:i}){return new sM({fs:t,dir:n,gitdir:r,cache:i,refresh:e})}}),Object.freeze(t),t}function lM(e,t){let n=t-e;return Array.from({length:n},(t,n)=>e+n)}const uM=Array.prototype.flat===void 0?e=>e.reduce((e,t)=>e.concat(t),[]):e=>e.flat();var dM=class{constructor(){this.value=null}consider(e){e!=null&&(this.value===null||e<this.value)&&(this.value=e)}reset(){this.value=null}};function*fM(e){let t=new dM,n,r=[],i=e.length;for(let n=0;n<i;n++)r[n]=e[n].next().value,r[n]!==void 0&&t.consider(r[n]);if(t.value!==null)for(;;){let a=[];n=t.value,t.reset();for(let o=0;o<i;o++)r[o]!==void 0&&r[o]===n?(a[o]=r[o],r[o]=e[o].next().value):a[o]=null,r[o]!==void 0&&t.consider(r[o]);if(yield a,t.value===null)return}}async function pM({fs:e,cache:t,dir:n,gitdir:r,trees:i,map:a=async(e,t)=>t,reduce:o=async(e,t)=>{let n=uM(t);return e!==void 0&&n.unshift(e),n},iterate:s=(e,t)=>Promise.all([...t].map(e))}){let c=i.map(i=>i[aA]({fs:e,dir:n,gitdir:r,cache:t})),l=Array(c.length).fill(`.`),u=lM(0,c.length),d=async e=>(u.forEach(t=>{let n=e[t];e[t]=n&&new c[t].ConstructEntry(n)}),{entries:e,children:fM((await Promise.all(u.map(t=>{let n=e[t];return n?c[t].readdir(n):[]}))).map(e=>(e===null?[]:e)[Symbol.iterator]()))}),f=async e=>{let{entries:t,children:n}=await d(e),r=t.find(e=>e&&e._fullpath)._fullpath,i=await a(r,t);if(i!==null){let e=await s(f,n);return e=e.filter(e=>e!==void 0),o(i,e)}};return f(l)}async function mM(e,t){let n=await e.readdir(t);n==null?await e.rm(t):n.length?await Promise.all(n.map(n=>{let r=Y(t,n);return e.lstat(r).then(t=>{if(t)return t.isDirectory()?mM(e,r):e.rm(r)})})).then(()=>e.rmdir(t)):await e.rmdir(t)}function hM(e){return gM(e)&&_M(e.then)&&_M(e.catch)}function gM(e){return e&&typeof e==`object`}function _M(e){return typeof e==`function`}function vM(e){return hM((e=>{try{return e.readFile().catch(e=>e)}catch(e){return e}})(e))}const yM=[`readFile`,`writeFile`,`mkdir`,`rmdir`,`unlink`,`stat`,`lstat`,`readdir`,`readlink`,`symlink`];function bM(e,t){if(vM(t))for(let n of yM)e[`_${n}`]=t[n].bind(t);else for(let n of yM)e[`_${n}`]=(0,Ck.default)(t[n].bind(t));vM(t)?(t.cp&&(e._cp=t.cp.bind(t)),t.rm?e._rm=t.rm.bind(t):t.rmdir.length>1?e._rm=t.rmdir.bind(t):e._rm=mM.bind(null,e)):(t.cp&&(e._cp=(0,Ck.default)(t.cp.bind(t))),t.rm?e._rm=(0,Ck.default)(t.rm.bind(t)):t.rmdir.length>2?e._rm=(0,Ck.default)(t.rmdir.bind(t)):e._rm=mM.bind(null,e))}var xM=class{constructor(e){if(e._original_unwrapped_fs!==void 0)return e;let t=Object.getOwnPropertyDescriptor(e,`promises`);t&&t.enumerable?bM(this,e.promises):bM(this,e),this._original_unwrapped_fs=e}async exists(e,t={}){try{return await this._stat(e),!0}catch(e){if(e.code===`ENOENT`||e.code===`ENOTDIR`||(e.code||``).includes(`ENS`))return!1;throw console.log(`Unhandled error in "FileSystem.exists()" function`,e),e}}async read(e,t={}){try{let n=await this._readFile(e,t);if(t.autocrlf===`true`)try{n=new TextDecoder(`utf8`,{fatal:!0}).decode(n),n=n.replace(/\r\n/g,`
4482
- `),n=new TextEncoder().encode(n)}catch{}return typeof n!=`string`&&(n=Buffer.from(n)),n}catch{return null}}async write(e,t,n={}){try{await this._writeFile(e,t,n)}catch{await this.mkdir(tA(e)),await this._writeFile(e,t,n)}}async mkdir(e,t=!1){try{await this._mkdir(e)}catch(n){if(n===null||n.code===`EEXIST`)return;if(t)throw n;if(n.code===`ENOENT`){let t=tA(e);if(t===`.`||t===`/`||t===e)throw n;await this.mkdir(t),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(e){if(e.code!==`ENOENT`)throw e}}async rmdir(e,t){try{t&&t.recursive?await this._rm(e,t):await this._rmdir(e)}catch(e){if(e.code!==`ENOENT`)throw e}}async readdir(e){try{let t=await this._readdir(e);return t.sort(Mk),t}catch(e){return e.code===`ENOTDIR`?null:[]}}async readdirDeep(e){let t=await this._readdir(e);return(await Promise.all(t.map(async t=>{let n=e+`/`+t;return(await this._stat(n)).isDirectory()?this.readdirDeep(n):n}))).reduce((e,t)=>e.concat(t),[])}async lstat(e){try{return await this._lstat(e)}catch(e){if(e.code===`ENOENT`||(e.code||``).includes(`ENS`))return null;throw e}}async readlink(e,t={encoding:`buffer`}){try{let n=await this._readlink(e,t);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(e){if(e.code===`ENOENT`||(e.code||``).includes(`ENS`))return null;throw e}}async writelink(e,t){return this._symlink(t.toString(`utf8`),e)}};function Z(e,t){if(t===void 0)throw new Fj(e)}function SM(e){return e.startsWith(`/`)||/^[a-zA-Z]:[\\/]/.test(e)}async function CM({fsp:e,dotgit:t}){Z(`fsp`,e),Z(`dotgit`,t);let n=await e._stat(t).catch(()=>({isFile:()=>!1,isDirectory:()=>!1}));return n.isDirectory()?t:n.isFile()?e._readFile(t,`utf8`).then(e=>e.trimRight().substr(8)).then(e=>SM(e)?e:Y(tA(t),e)):t}async function wM(e,t){return!e&&!t?!1:e&&!t||!e&&t?!0:!(await e.type()===`tree`&&await t.type()===`tree`||await e.type()===await t.type()&&await e.mode()===await t.mode()&&await e.oid()===await t.oid())}var TM=class{static async isIgnored({fs:e,dir:t,gitdir:n=Y(t,`.git`),filepath:r}){if(eA(r)===`.git`)return!0;if(r===`.`)return!1;let i=``,a=Y(n,`info`,`exclude`);await e.exists(a)&&(i=await e.read(a,`utf8`));let o=[{gitignore:Y(t,`.gitignore`),filepath:r}],s=r.split(`/`).filter(Boolean);for(let e=1;e<s.length;e++){let n=s.slice(0,e).join(`/`),r=s.slice(e).join(`/`);o.push({gitignore:Y(t,n,`.gitignore`),filepath:r})}let c=!1;for(let t of o){let n;try{n=await e.read(t.gitignore,`utf8`)}catch(e){if(e.code===`NOENT`)continue}let r=(0,wk.default)().add(i);r.add(n);let a=tA(t.filepath);if(a!==`.`&&r.ignores(a))return!0;c=c?!r.test(t.filepath).unignored:r.test(t.filepath).ignored}return c}};async function EM({fs:e,gitdir:t,object:n,format:r,oid:i}){if(r!==`deflated`)throw new kk(`GitObjectStoreLoose expects objects to write to be in deflated format`);let a=`${t}/${`objects/${i.slice(0,2)}/${i.slice(2)}`}`;await e.exists(a)||await e.write(a,n)}let DM=null;async function OM(e){return DM===null&&(DM=AM()),DM?kM(e):Sk.default.deflate(e)}async function kM(e){let t=new CompressionStream(`deflate`),n=new Blob([e]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}function AM(){try{return new CompressionStream(`deflate`).writable.close(),new Blob([]).stream().cancel(),!0}catch{return!1}}async function jM({fs:e,gitdir:t,type:n,object:r,format:i=`content`,oid:a=void 0,dryRun:o=!1}){return i!==`deflated`&&(i!==`wrapped`&&(r=JA.wrap({type:n,object:r})),a=await Bk(r),r=Buffer.from(await OM(r))),o||await EM({fs:e,gitdir:t,object:r,format:`deflated`,oid:a}),a}function MM(e){let t;for(;~(t=e.indexOf(92));)e[t]=47;return e}async function NM({fs:e,dir:t,gitdir:n=Y(t,`.git`),filepath:r,cache:i={},force:a=!1,parallel:o=!0}){try{Z(`fs`,e),Z(`dir`,t),Z(`gitdir`,n),Z(`filepath`,r);let s=new xM(e),c=await CM({fsp:s,dotgit:n});await $k.acquire({fs:s,gitdir:c,cache:i},async e=>{let n=await(await IA.get({fs:s,gitdir:c})).get(`core.autocrlf`);return PM({dir:t,gitdir:c,fs:s,filepath:r,index:e,force:a,parallel:o,autocrlf:n})})}catch(e){throw e.caller=`git.add`,e}}async function PM({dir:e,gitdir:t,fs:n,filepath:r,index:i,force:a,parallel:o,autocrlf:s}){r=Array.isArray(r)?r:[r];let c=r.map(async r=>{if(!a&&await TM.isIgnored({fs:n,dir:e,gitdir:t,filepath:r}))return;let c=await n.lstat(Y(e,r));if(!c)throw new sA(r);if(c.isDirectory()){let c=await n.readdir(Y(e,r));if(o){let l=c.map(c=>PM({dir:e,gitdir:t,fs:n,filepath:[Y(r,c)],index:i,force:a,parallel:o,autocrlf:s}));await Promise.all(l)}else for(let l of c)await PM({dir:e,gitdir:t,fs:n,filepath:[Y(r,l)],index:i,force:a,parallel:o,autocrlf:s})}else{let a=c.isSymbolicLink()?await n.readlink(Y(e,r)).then(MM):await n.read(Y(e,r),{autocrlf:s});if(a===null)throw new sA(r);let o=await jM({fs:n,gitdir:t,type:`blob`,object:a});i.insert({filepath:r,stats:c,oid:o})}}),l=await Promise.allSettled(c),u=l.filter(e=>e.status===`rejected`).map(e=>e.reason);if(u.length>1)throw new Ij(u);if(u.length===1)throw u[0];return l.filter(e=>e.status===`fulfilled`&&e.value).map(e=>e.value)}async function FM({fs:e,gitdir:t,path:n}){return(await IA.get({fs:e,gitdir:t})).get(n)}function IM(e,...t){for(let n of t)if(n)for(let t of Object.keys(n)){let r=n[t];r!==void 0&&(e[t]=r)}return e}async function LM({fs:e,gitdir:t,author:n,commit:r}){let i=Math.floor(Date.now()/1e3),a=IM({},{name:await FM({fs:e,gitdir:t,path:`user.name`}),email:await FM({fs:e,gitdir:t,path:`user.email`})||``,timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},r?r.author:void 0,n);if(a.name!==void 0)return a}async function RM({fs:e,gitdir:t,author:n,committer:r,commit:i}){let a=Math.floor(Date.now()/1e3),o=IM({},{name:await FM({fs:e,gitdir:t,path:`user.name`}),email:await FM({fs:e,gitdir:t,path:`user.email`})||``,timestamp:a,timezoneOffset:new Date(a*1e3).getTimezoneOffset()},i?i.committer:void 0,n,r);if(o.name!==void 0)return o}async function zM({fs:e,cache:t,gitdir:n,oid:r}){let{type:i,object:a}=await vj({fs:e,cache:t,gitdir:n,oid:r});if(i===`tag`)return r=eM.from(a).parse().object,zM({fs:e,cache:t,gitdir:n,oid:r});if(i!==`commit`)throw new cA(r,i,`commit`);return{commit:rM.from(a),oid:r}}async function BM({fs:e,cache:t,gitdir:n,oid:r}){let{commit:i,oid:a}=await zM({fs:e,cache:t,gitdir:n,oid:r});return{oid:a,commit:i.parse(),payload:i.withoutSignature()}}async function VM({fs:e,cache:t,onSign:n,gitdir:r,message:i,author:a,committer:o,signingKey:s,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:d,parent:f,tree:p}){let m=!1,h=!1;d||=(h=!(await e.read(`${r}/HEAD`,{encoding:`utf8`})).startsWith(`ref:`),await X.resolve({fs:e,gitdir:r,ref:`HEAD`,depth:2}));let g,_;try{g=await X.resolve({fs:e,gitdir:r,ref:d}),_=await BM({fs:e,gitdir:r,oid:g,cache:{}})}catch{m=!0}if(c&&m)throw new Gj(d);let v=c?await LM({fs:e,gitdir:r,author:a,commit:_.commit}):await LM({fs:e,gitdir:r,author:a});if(!v)throw new Pj(`author`);let y=c?await RM({fs:e,gitdir:r,author:v,committer:o,commit:_.commit}):await RM({fs:e,gitdir:r,author:v,committer:o});if(!y)throw new Pj(`committer`);return $k.acquire({fs:e,gitdir:r,cache:t,allowUnmerged:!1},async function(t){let a=nA(t.entries).get(`.`);if(p||=await HM({fs:e,gitdir:r,inode:a,dryRun:l}),f=f?await Promise.all(f.map(t=>X.resolve({fs:e,gitdir:r,ref:t}))):c?_.commit.parent:g?[g]:[],!i)if(c)i=_.commit.message;else throw new Fj(`message`);let o=rM.from({tree:p,parent:f,author:v,committer:y,message:i});s&&(o=await rM.sign(o,n,s));let m=await jM({fs:e,gitdir:r,type:`commit`,object:o.toObject(),dryRun:l});return!u&&!l&&await X.writeRef({fs:e,gitdir:r,ref:h?`HEAD`:d,value:m}),m})}async function HM({fs:e,gitdir:t,inode:n,dryRun:r}){let i=n.children;for(let n of i)n.type===`tree`&&(n.metadata.mode=`040000`,n.metadata.oid=await HM({fs:e,gitdir:t,inode:n,dryRun:r}));let a=i.map(e=>({mode:e.metadata.mode,path:e.basename,oid:e.metadata.oid,type:e.type}));return await jM({fs:e,gitdir:t,type:`tree`,object:qA.from(a).toObject(),dryRun:r})}async function UM({fs:e,cache:t,gitdir:n,oid:r,filepath:i}){if(i.startsWith(`/`))throw new kj(`leading-slash`);if(i.endsWith(`/`))throw new kj(`trailing-slash`);let a=r,o=await iM({fs:e,cache:t,gitdir:n,oid:r}),s=o.tree;return r=i===``?o.oid:await WM({fs:e,cache:t,gitdir:n,tree:s,pathArray:i.split(`/`),oid:a,filepath:i}),r}async function WM({fs:e,cache:t,gitdir:n,tree:r,pathArray:i,oid:a,filepath:o}){let s=i.shift();for(let c of r)if(c.path===s){if(i.length===0)return c.oid;{let{type:s,object:l}=await vj({fs:e,cache:t,gitdir:n,oid:c.oid});if(s!==`tree`)throw new cA(a,s,`tree`,o);return r=qA.from(l),WM({fs:e,cache:t,gitdir:n,tree:r,pathArray:i,oid:a,filepath:o})}}throw new sA(`file or directory found at "${a}:${o}"`)}async function GM({fs:e,cache:t,gitdir:n,oid:r,filepath:i=void 0}){i!==void 0&&(r=await UM({fs:e,cache:t,gitdir:n,oid:r,filepath:i}));let{tree:a,oid:o}=await iM({fs:e,cache:t,gitdir:n,oid:r});return{oid:o,tree:a.entries()}}async function KM({fs:e,gitdir:t,tree:n}){return await jM({fs:e,gitdir:t,type:`tree`,object:qA.from(n).toObject(),format:`content`})}const qM=/(^|[/.])([/.]|$)|^@$|@{|[\x00-\x20\x7f~^:?*[\\]|\.lock(\/|$)/;function JM(e,t){if(typeof e!=`string`)throw TypeError(`Reference name must be a string`);return!qM.test(e)&&(!!t||e.includes(`/`))}async function YM({fs:e,gitdir:t,remote:n,url:r,force:i}){if(!JM(n,!0))throw new Aj(n,Tk.default.clean(n));let a=await IA.get({fs:e,gitdir:t});if(!i&&(await a.getSubsections(`remote`)).includes(n)&&r!==await a.get(`remote.${n}.url`))throw new yj(`remote`,n);await a.set(`remote.${n}.url`,r),await a.set(`remote.${n}.fetch`,`+refs/heads/*:refs/remotes/${n}/*`),await IA.save({fs:e,gitdir:t,config:a})}async function XM({fs:e,dir:t,gitdir:n=Y(t,`.git`),remote:r,url:i,force:a=!1}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`remote`,r),Z(`url`,i);let t=new xM(e);return await YM({fs:t,gitdir:await CM({fsp:t,dotgit:n}),remote:r,url:i,force:a})}catch(e){throw e.caller=`git.addRemote`,e}}async function ZM({fs:e,cache:t,onSign:n,gitdir:r,ref:i,tagger:a,message:o=i,gpgsig:s,object:c,signingKey:l,force:u=!1}){if(i=i.startsWith(`refs/tags/`)?i:`refs/tags/${i}`,!u&&await X.exists({fs:e,gitdir:r,ref:i}))throw new yj(`tag`,i);let d=await X.resolve({fs:e,gitdir:r,ref:c||`HEAD`}),{type:f}=await vj({fs:e,cache:t,gitdir:r,oid:d}),p=eM.from({object:d,type:f,tag:i.replace(`refs/tags/`,``),tagger:a,message:o,gpgsig:s});l&&(p=await eM.sign(p,n,l));let m=await jM({fs:e,gitdir:r,type:`tag`,object:p.toObject()});await X.writeRef({fs:e,gitdir:r,ref:i,value:m})}async function QM({fs:e,onSign:t,dir:n,gitdir:r=Y(n,`.git`),ref:i,tagger:a,message:o=i,gpgsig:s,object:c,signingKey:l,force:u=!1,cache:d={}}){try{Z(`fs`,e),Z(`gitdir`,r),Z(`ref`,i),l&&Z(`onSign`,t);let n=new xM(e),f=await CM({fsp:n,dotgit:r}),p=await LM({fs:n,gitdir:f,author:a});if(!p)throw new Pj(`tagger`);return await ZM({fs:n,cache:d,onSign:t,gitdir:f,ref:i,tagger:p,message:o,gpgsig:s,object:c,signingKey:l,force:u})}catch(e){throw e.caller=`git.annotatedTag`,e}}async function $M({fs:e,gitdir:t,ref:n,object:r,checkout:i=!1,force:a=!1}){if(!JM(n,!0))throw new Aj(n,Tk.default.clean(n));let o=`refs/heads/${n}`;if(!a&&await X.exists({fs:e,gitdir:t,ref:o}))throw new yj(`branch`,n,!1);let s;try{s=await X.resolve({fs:e,gitdir:t,ref:r||`HEAD`})}catch{}s&&await X.writeRef({fs:e,gitdir:t,ref:o,value:s}),i&&await X.writeSymbolicRef({fs:e,gitdir:t,ref:`HEAD`,value:o})}async function eN({fs:e,dir:t,gitdir:n=Y(t,`.git`),ref:r,object:i,checkout:a=!1,force:o=!1}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`ref`,r);let t=new xM(e);return await $M({fs:t,gitdir:await CM({fsp:t,dotgit:n}),ref:r,object:i,checkout:a,force:o})}catch(e){throw e.caller=`git.branch`,e}}async function tN(e,t,n){let r=n.split(`/`);r.pop();let i=t;for(let t of r){if(t===``||t===`.`)continue;i=`${i}/${t}`;let r=await e.lstat(i);if(r&&r.isSymbolicLink())throw new Ak(n)}}const nN=(e,t)=>e===`.`||t==null||t.length===0||t===`.`?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);async function rN({fs:e,cache:t,onProgress:n,onPostCheckout:r,dir:i,gitdir:a,remote:o,ref:s,filepaths:c,noCheckout:l,noUpdateHead:u,dryRun:d,force:f,track:p=!0,nonBlocking:m=!1,batchSize:h=100}){let g;if(r)try{g=await X.resolve({fs:e,gitdir:a,ref:`HEAD`})}catch{g=`0000000000000000000000000000000000000000`}let _;try{_=await X.resolve({fs:e,gitdir:a,ref:s})}catch(t){if(s===`HEAD`)throw t;let n=`${o}/${s}`;if(_=await X.resolve({fs:e,gitdir:a,ref:n}),p){let t=await IA.get({fs:e,gitdir:a});await t.set(`branch.${s}.remote`,o),await t.set(`branch.${s}.merge`,`refs/heads/${s}`),await IA.save({fs:e,gitdir:a,config:t})}await X.writeRef({fs:e,gitdir:a,ref:`refs/heads/${s}`,value:_})}if(!l){let o;try{o=await iN({fs:e,cache:t,onProgress:n,dir:i,gitdir:a,ref:s,force:f,filepaths:c})}catch(e){throw e instanceof sA&&e.data.what===_?new wj(s,_):e}let l=o.filter(([e])=>e===`conflict`).map(([e,t])=>t);if(l.length>0)throw new xj(l);let u=o.filter(([e])=>e===`error`).map(([e,t])=>t);if(u.length>0)throw new kk(u.join(`, `));if(d){r&&await r({previousHead:g,newHead:_,type:c!=null&&c.length>0?`file`:`branch`});return}let p=0,v=o.length;if(await $k.acquire({fs:e,gitdir:a,cache:t},async function(t){await Promise.all(o.filter(([e])=>e===`delete`||e===`delete-index`).map(async function([r,a]){let o=`${i}/${a}`;r===`delete`&&await e.rm(o),t.delete({filepath:a}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})}))}),await $k.acquire({fs:e,gitdir:a,cache:t},async function(t){for(let[r,a]of o)if(r===`rmdir`||r===`rmdir-index`){let o=`${i}/${a}`;try{r===`rmdir`&&await e.rmdir(o),t.delete({filepath:a}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})}catch(e){if(e.code===`ENOTEMPTY`)console.log(`Did not delete ${a} because directory is not empty`);else throw e}}}),await Promise.all(o.filter(([e])=>e===`mkdir`||e===`mkdir-index`).map(async function([t,r]){let a=`${i}/${r}`;await tN(e,i,r),await e.mkdir(a),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})})),m){let r=await sN(`Update Working Dir`,o.filter(([e])=>e===`create`||e===`create-index`||e===`update`||e===`mkdir-index`).map(([n,r,o,s,c])=>()=>oN({fs:e,cache:t,gitdir:a,dir:i},[n,r,o,s,c])),n,h);await $k.acquire({fs:e,gitdir:a,cache:t,allowUnmerged:!0},async function(e){await sN(`Update Index`,r.map(([t,n,r])=>()=>aN({index:e,fullpath:t,oid:n,stats:r})),n,h)})}else await $k.acquire({fs:e,gitdir:a,cache:t,allowUnmerged:!0},async function(r){let s=await Promise.allSettled(o.filter(([e])=>e===`create`||e===`create-index`||e===`update`||e===`mkdir-index`).map(async function([o,s,c,l,u]){let d=`${i}/${s}`;if(o!==`create-index`&&o!==`mkdir-index`){await tN(e,i,s);let{object:n}=await vj({fs:e,cache:t,gitdir:a,oid:c});if(u&&await e.rm(d),l===33188)await e.write(d,n);else if(l===33261)await e.write(d,n,{mode:511});else if(l===40960)await e.writelink(d,n);else throw new kk(`Invalid mode 0o${l.toString(8)} detected in blob ${c}`)}let f=await e.lstat(d);l===33261&&(f.mode=493),o===`mkdir-index`&&(f.mode=57344),r.insert({filepath:s,stats:f,oid:c}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})})),c=[];for(let e of s)e.status===`rejected`&&(c.push(e.reason),console.error(`[isomorphic-git checkout] task rejected:`,e.reason?.stack??e.reason));if(c.length>0)throw new Ij(c)});r&&await r({previousHead:g,newHead:_,type:c!=null&&c.length>0?`file`:`branch`})}if(!u){let t=await X.expand({fs:e,gitdir:a,ref:s});t.startsWith(`refs/heads`)?await X.writeSymbolicRef({fs:e,gitdir:a,ref:`HEAD`,value:t}):await X.writeRef({fs:e,gitdir:a,ref:`HEAD`,value:_})}}async function iN({fs:e,cache:t,onProgress:n,dir:r,gitdir:i,ref:a,force:o,filepaths:s}){let c=0;return pM({fs:e,cache:t,dir:r,gitdir:i,trees:[oM({ref:a}),cM(),oA()],map:async function(e,[t,r,i]){if(e!==`.`){if(s&&!s.some(t=>nN(e,t)))return null;switch(n&&await n({phase:`Analyzing workdir`,loaded:++c}),[!!i,!!t,!!r].map(Number).join(``)){case`000`:return;case`001`:return o&&s&&s.includes(e)?[`delete`,e]:void 0;case`010`:switch(await t.type()){case`tree`:return[`mkdir`,e];case`blob`:return[`create`,e,await t.oid(),await t.mode()];case`commit`:return[`mkdir-index`,e,await t.oid(),await t.mode()];default:return[`error`,`new entry Unhandled type ${await t.type()}`]}case`011`:switch(`${await t.type()}-${await r.type()}`){case`tree-tree`:return;case`tree-blob`:case`blob-tree`:return[`conflict`,e];case`blob-blob`:return await t.oid()===await r.oid()?await t.mode()===await r.mode()?[`create-index`,e,await t.oid(),await t.mode()]:o?[`update`,e,await t.oid(),await t.mode(),!0]:[`conflict`,e]:o?[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await r.mode()]:[`conflict`,e];case`commit-tree`:return;case`commit-blob`:return[`conflict`,e];default:return[`error`,`new entry Unhandled type ${t.type}`]}case`100`:return[`delete-index`,e];case`101`:switch(await i.type()){case`tree`:return[`rmdir-index`,e];case`blob`:return await i.oid()===await r.oid()||o?[`delete`,e]:[`conflict`,e];case`commit`:return[`rmdir-index`,e];default:return[`error`,`delete entry Unhandled type ${await i.type()}`]}case`110`:case`111`:switch(`${await i.type()}-${await t.type()}`){case`tree-tree`:return;case`blob-blob`:if(await i.oid()===await t.oid()&&await i.mode()===await t.mode()&&!o)return;if(r){if(await r.oid()!==await i.oid()&&await r.oid()!==await t.oid())return o?[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await r.mode()]:[`conflict`,e]}else if(o)return[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await i.mode()];return await t.mode()===await i.mode()?await t.oid()===await i.oid()?void 0:[`update`,e,await t.oid(),await t.mode(),!1]:[`update`,e,await t.oid(),await t.mode(),!0];case`tree-blob`:return[`update-dir-to-blob`,e,await t.oid()];case`blob-tree`:return[`update-blob-to-tree`,e];case`commit-commit`:return[`mkdir-index`,e,await t.oid(),await t.mode()];default:return[`error`,`update entry Unhandled type ${await i.type()}-${await t.type()}`]}}}},reduce:async function(e,t){return t=uM(t),e?e&&e[0]===`rmdir`?(t.push(e),t):(t.unshift(e),t):t}})}async function aN({index:e,fullpath:t,stats:n,oid:r}){try{e.insert({filepath:t,stats:n,oid:r})}catch(e){console.warn(`Error inserting ${t} into index:`,e)}}async function oN({fs:e,cache:t,gitdir:n,dir:r},[i,a,o,s,c]){let l=`${r}/${a}`;if(i!==`create-index`&&i!==`mkdir-index`){await tN(e,r,a);let{object:i}=await vj({fs:e,cache:t,gitdir:n,oid:o});if(c&&await e.rm(l),s===33188)await e.write(l,i);else if(s===33261)await e.write(l,i,{mode:511});else if(s===40960)await e.writelink(l,i);else throw new kk(`Invalid mode 0o${s.toString(8)} detected in blob ${o}`)}let u=await e.lstat(l);return s===33261&&(u.mode=493),i===`mkdir-index`&&(u.mode=57344),[a,o,u]}async function sN(e,t,n,r){let i=[],a=[];for(let o=0;o<t.length;o+=r){let s=t.slice(o,o+r).map(e=>e());(await Promise.allSettled(s)).forEach(t=>{t.status===`fulfilled`?i.push(t.value):(a.push(t.reason),console.error(`[isomorphic-git ${e}] task rejected:`,t.reason?.stack??t.reason))}),n&&await n({phase:`Updating workdir`,loaded:o+s.length,total:t.length})}if(a.length>0)throw new Ij(a);return i}async function cN({fs:e,onProgress:t,onPostCheckout:n,dir:r,gitdir:i=Y(r,`.git`),remote:a=`origin`,ref:o,filepaths:s,noCheckout:c=!1,noUpdateHead:l=o===void 0,dryRun:u=!1,force:d=!1,track:f=!0,cache:p={},nonBlocking:m=!1,batchSize:h=100}){try{Z(`fs`,e),Z(`dir`,r),Z(`gitdir`,i);let g=o||`HEAD`,_=new xM(e);return await rN({fs:_,cache:p,onProgress:t,onPostCheckout:n,dir:r,gitdir:await CM({fsp:_,dotgit:i}),remote:a,ref:g,filepaths:s,noCheckout:c,noUpdateHead:l,dryRun:u,force:d,track:f,nonBlocking:m,batchSize:h})}catch(e){throw e.caller=`git.checkout`,e}}const lN=/^.*(\r?\n|$)/gm;function uN({branches:e,contents:t}){let n=e[1],r=e[2],i=t[0],a=t[1],o=t[2],s=(0,Ek.default)(a.match(lN),i.match(lN),o.match(lN)),c=``,l=!0;for(let e of s)e.ok&&(c+=e.ok.join(``)),e.conflict&&(l=!1,c+=`${`<`.repeat(7)} ${n}\n`,c+=e.conflict.a.join(``),c+=`${`=`.repeat(7)}\n`,c+=e.conflict.b.join(``),c+=`${`>`.repeat(7)} ${r}\n`);return{cleanMerge:l,mergedText:c}}async function dN({fs:e,cache:t,dir:n,gitdir:r=Y(n,`.git`),index:i,ourOid:a,baseOid:o,theirOid:s,ourName:c=`ours`,baseName:l=`base`,theirName:u=`theirs`,dryRun:d=!1,abortOnConflict:f=!0,mergeDriver:p}){let m=oM({ref:a}),h=oM({ref:o}),g=oM({ref:s}),_=[],v=[],y=[],b=[],x=await pM({fs:e,cache:t,dir:n,gitdir:r,trees:[m,h,g],map:async function(t,[n,a,o]){let s=eA(t);switch(`${await wM(n,a)}-${await wM(o,a)}`){case`false-false`:return{mode:await a.mode(),path:s,oid:await a.oid(),type:await a.type()};case`false-true`:return!o&&await n.type()===`tree`?{mode:await n.mode(),path:s,oid:await n.oid(),type:await n.type()}:o?{mode:await o.mode(),path:s,oid:await o.oid(),type:await o.type()}:void 0;case`true-false`:return!n&&await o.type()===`tree`?{mode:await o.mode(),path:s,oid:await o.oid(),type:await o.type()}:n?{mode:await n.mode(),path:s,oid:await n.oid(),type:await n.type()}:void 0;case`true-true`:if(n&&o&&await n.type()===`tree`&&await o.type()===`tree`)return{mode:await n.mode(),path:s,oid:await n.oid(),type:`tree`};if(n&&o&&await n.type()===`blob`&&await o.type()===`blob`)return fN({fs:e,gitdir:r,path:s,ours:n,base:a,theirs:o,ourName:c,baseName:l,theirName:u,mergeDriver:p}).then(async e=>{if(e.cleanMerge)f||i.insert({filepath:t,oid:e.mergeResult.oid,stage:0});else if(_.push(t),v.push(t),!f){let e=``;a&&await a.type()===`blob`&&(e=await a.oid());let r=await n.oid(),s=await o.oid();i.delete({filepath:t}),e&&i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:r,stage:2}),i.insert({filepath:t,oid:s,stage:3})}return e.mergeResult});if(a&&!n&&o&&await a.type()===`blob`&&await o.type()===`blob`){if(_.push(t),y.push(t),!f){let e=await a.oid(),n=await o.oid();i.delete({filepath:t}),i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:n,stage:3})}return{mode:await o.mode(),oid:await o.oid(),type:`blob`,path:s}}if(a&&n&&!o&&await a.type()===`blob`&&await n.type()===`blob`){if(_.push(t),b.push(t),!f){let e=await a.oid(),r=await n.oid();i.delete({filepath:t}),i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:r,stage:2})}return{mode:await n.mode(),oid:await n.oid(),type:`blob`,path:s}}if(a&&!n&&!o&&(await a.type()===`blob`||await a.type()===`tree`))return;throw new Mj}},reduce:_.length!==0&&(!n||f)?void 0:async(t,n)=>{let i=n.filter(Boolean);if(t&&!(t&&t.type===`tree`&&i.length===0&&t.path!==`.`))return(i.length>0||t.path===`.`&&i.length===0)&&(t.oid=await jM({fs:e,gitdir:r,type:`tree`,object:new qA(i).toObject(),dryRun:d})),t}});return _.length===0?x.oid:(n&&!f&&await pM({fs:e,cache:t,dir:n,gitdir:r,trees:[oM({ref:x.oid})],map:async function(t,[r]){let i=`${n}/${t}`;if(await r.type()===`blob`){let t=await r.mode(),n=new TextDecoder().decode(await r.content());await e.write(i,n,{mode:t})}return!0}}),new Nj(_,v,y,b))}async function fN({fs:e,gitdir:t,path:n,ours:r,base:i,theirs:a,ourName:o,theirName:s,baseName:c,dryRun:l,mergeDriver:u=uN}){let d=`blob`,f=`100755`,p=``,m=``;i&&await i.type()===`blob`&&(f=await i.mode(),p=await i.oid(),m=Buffer.from(await i.content()).toString(`utf8`));let h=f===await r.mode()?await a.mode():await r.mode();if(await r.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await r.oid(),type:d}};if(await r.oid()===p)return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await a.oid(),type:d}};if(await a.oid()===p)return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await r.oid(),type:d}};let g=Buffer.from(await r.content()).toString(`utf8`),_=Buffer.from(await a.content()).toString(`utf8`),{mergedText:v,cleanMerge:y}=await u({branches:[c,o,s],contents:[m,g,_],path:n});return{cleanMerge:y,mergeResult:{mode:h,path:n,oid:await jM({fs:e,gitdir:t,type:`blob`,object:Buffer.from(v,`utf8`),dryRun:l}),type:d}}}let pN;async function mN(e,t){return pN===void 0&&(pN=new yk.default),pN.acquire(e,t)}async function hN({fs:e,dir:t,gitdir:n,stashCommit:r,parentCommit:i,wasStaged:a}){let o=[],s=[],c=await pM({fs:e,cache:{},dir:t,gitdir:n,trees:[oM({ref:i}),oM({ref:r})],map:async(r,[i,c])=>{if(r===`.`||await TM.isIgnored({fs:e,dir:t,gitdir:n,filepath:r}))return;let l=c?await c.type():await i.type();if(l!==`tree`&&l!==`blob`)return;if(!c&&i){let e=l===`tree`?`rmdir`:`rm`;return l===`tree`&&o.push(r),l===`blob`&&a&&s.push({filepath:r,oid:await i.oid()}),{method:e,filepath:r}}let u=await c.oid();if(!i||await i.oid()!==u)return l===`tree`?{method:`mkdir`,filepath:r}:(a&&s.push({filepath:r,oid:u,stats:await e.lstat(Y(t,r))}),{method:`write`,filepath:r,oid:u})}});await mN({fs:e,gitdir:n,dirRemoved:o,ops:c},async()=>{for(let r of c){let i=Y(t,r.filepath);switch(r.method){case`rmdir`:await e.rmdir(i);break;case`mkdir`:await tN(e,t,r.filepath),await e.mkdir(i);break;case`rm`:await e.rm(i);break;case`write`:if(!o.some(e=>i.startsWith(e))){await tN(e,t,r.filepath);let{object:a}=await vj({fs:e,cache:{},gitdir:n,oid:r.oid});await e.exists(i)&&await e.rm(i),await e.write(i,a)}break}}}),await $k.acquire({fs:e,gitdir:n,cache:{}},async e=>{s.forEach(({filepath:t,stats:n,oid:r})=>{e.insert({filepath:t,stats:n,oid:r})})})}async function gN({fs:e,cache:t,dir:n,gitdir:r,oid:i,dryRun:a=!1,noUpdateBranch:o=!1,abortOnConflict:s=!0,committer:c,mergeDriver:l}){let{commit:u,oid:d}=await BM({fs:e,cache:t,gitdir:r,oid:i});if(u.parent.length>1)throw new Sj(d,u.parent.length);if(u.parent.length===0)throw new Cj(d);let f=await X.resolve({fs:e,gitdir:r,ref:`HEAD`}),{commit:p}=await BM({fs:e,cache:t,gitdir:r,oid:f}),m=u.parent[0],{commit:h}=await BM({fs:e,cache:t,gitdir:r,oid:m}),g=await $k.acquire({fs:e,gitdir:r,cache:t,allowUnmerged:!1},async i=>dN({fs:e,cache:t,dir:n,gitdir:r,index:i,ourOid:p.tree,baseOid:h.tree,theirOid:u.tree,ourName:`HEAD`,baseName:`parent of ${d.slice(0,7)}`,theirName:d.slice(0,7),dryRun:a,abortOnConflict:s,mergeDriver:l}));if(g instanceof Nj)throw g;let _=await VM({fs:e,cache:t,gitdir:r,message:u.message,tree:g,parent:[f],author:u.author,committer:c,dryRun:a,noUpdateBranch:o});return n&&!a&&!o&&await hN({fs:e,dir:n,gitdir:r,stashCommit:_,parentCommit:f,wasStaged:!0}),_}async function _N({fs:e,dir:t,gitdir:n=Y(t,`.git`),oid:r,cache:i={},committer:a,dryRun:o=!1,noUpdateBranch:s=!1,abortOnConflict:c=!0,mergeDriver:l}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`oid`,r);let u=new xM(e),d=await CM({fsp:u,dotgit:n}),{commit:f}=await BM({fs:u,cache:i,gitdir:d,oid:r});if(f.parent&&f.parent.length>1)return await gN({fs:u,cache:i,dir:t,gitdir:d,oid:r,dryRun:o,noUpdateBranch:s,abortOnConflict:c,committer:void 0,mergeDriver:l});let p=await RM({fs:u,gitdir:d,committer:a});if(!p)throw new Pj(`committer`);return await gN({fs:u,cache:i,dir:t,gitdir:d,oid:r,dryRun:o,noUpdateBranch:s,abortOnConflict:c,committer:p,mergeDriver:l})}catch(e){throw e.caller=`git.cherryPick`,e}}const vN=/^refs\/(heads\/|tags\/|remotes\/)?(.*)/;function yN(e){let t=vN.exec(e);return t?t[1]===`remotes/`&&e.endsWith(`/HEAD`)?t[2].slice(0,-5):t[2]:e}async function bN({fs:e,gitdir:t,fullname:n=!1,test:r=!1}){let i=await X.resolve({fs:e,gitdir:t,ref:`HEAD`,depth:2});if(r)try{await X.resolve({fs:e,gitdir:t,ref:i})}catch{return}if(i.startsWith(`refs/`))return n?i:yN(i)}function xN(e){return e=e.replace(/^git@([^:]+):/,`https://$1/`),e=e.replace(/^ssh:\/\//,`https://`),e}function SN({username:e=``,password:t=``}){return`Basic ${Buffer.from(`${e}:${t}`).toString(`base64`)}`}async function CN(e,t){let n=tj(e);for(;;){let{value:e,done:r}=await n.next();if(e&&await t(e),r)break}n.return&&n.return()}async function wN(e){let t=0,n=[];await CN(e,e=>{n.push(e),t+=e.byteLength});let r=new Uint8Array(t),i=0;for(let e of n)r.set(e,i),i+=e.byteLength;return r}function TN(e){let t=e.match(/^https?:\/\/([^/]+)@/);if(t==null)return{url:e,auth:{}};t=t[1];let[n,r]=t.split(`:`);return e=e.replace(`${t}@`,``),{url:e,auth:{username:n,password:r}}}function EN(e,t){let n=t.toString(16);return`0`.repeat(e-n.length)+n}var DN=class{static flush(){return Buffer.from(`0000`,`utf8`)}static delim(){return Buffer.from(`0001`,`utf8`)}static encode(e){typeof e==`string`&&(e=Buffer.from(e));let t=EN(4,e.length+4);return Buffer.concat([Buffer.from(t,`utf8`),e])}static streamReader(e){let t=new nj(e);return async function(){try{let e=await t.read(4);return e==null?!0:(e=parseInt(e.toString(`utf8`),16),e===0||e===1?null:await t.read(e-4)??!0)}catch(t){return e.error=t,!0}}}};async function ON(e){let t={},n;for(;n=await e(),n!==!0;){if(n===null)continue;n=n.toString(`utf8`).replace(/\n$/,``);let e=n.indexOf(`=`);if(e>-1){let r=n.slice(0,e);t[r]=n.slice(e+1)}else t[n]=!0}return{protocolVersion:2,capabilities2:t}}async function kN(e,{service:t}){let n=new Set,r=new Map,i=new Map,a=DN.streamReader(e),o=await a();for(;o===null;)o=await a();if(o===!0)throw new Tj;if(o.includes(`version 2`))return ON(a);if(o.toString(`utf8`).replace(/\n$/,``)!==`# service=${t}`)throw new Lj(`# service=${t}\\n`,o.toString(`utf8`));let s=await a();for(;s===null;)s=await a();if(s===!0)return{capabilities:n,refs:r,symrefs:i};if(s=s.toString(`utf8`),s.includes(`version 2`))return ON(a);let[c,l]=AN(s,`\0`,`\\x00`);if(l.split(` `).map(e=>n.add(e)),c!==`0000000000000000000000000000000000000000 capabilities^{}`){let[e,t]=AN(c,` `,` `);for(r.set(t,e);;){let e=await a();if(e===!0)break;if(e!==null){let[t,n]=AN(e.toString(`utf8`),` `,` `);r.set(n,t)}}}for(let e of n)if(e.startsWith(`symref=`)){let t=e.match(/symref=([^:]+):(.*)/);t.length===3&&i.set(t[1],t[2])}return{protocolVersion:1,capabilities:n,refs:r,symrefs:i}}function AN(e,t,n){let r=e.trim().split(t);if(r.length!==2)throw new Lj(`Two strings separated by '${n}'`,e.toString(`utf8`));return r}const jN=(e,t)=>e.endsWith(`?`)?`${e}${t}`:`${e}/${t.replace(/^https?:\/\//,``)}`,MN=(e,t)=>{(t.username||t.password)&&(e.Authorization=SN(t)),t.headers&&Object.assign(e,t.headers)},NN=async e=>{try{let t=Buffer.from(await wN(e.body)),n=t.toString(`utf8`);return{preview:n.length<256?n:n.slice(0,256)+`...`,response:n,data:t}}catch{return{}}};var PN=class{static async capabilities(){return[`discover`,`connect`]}static async discover({http:e,onProgress:t,onAuth:n,onAuthSuccess:r,onAuthFailure:i,corsProxy:a,service:o,url:s,headers:c,protocolVersion:l}){let{url:u,auth:d}=TN(s),f=a?jN(a,u):u;(d.username||d.password)&&(c.Authorization=SN(d)),l===2&&(c[`Git-Protocol`]=`version=2`);let p,m,h=!1;do if(p=await e.request({onProgress:t,method:`GET`,url:`${f}/info/refs?service=${o}`,headers:c}),m=!1,p.statusCode===401||p.statusCode===203){let e=h?i:n;if(e){if(d=await e(u,{...d,headers:{...c}}),d&&d.cancel)throw new Uj;d&&(MN(c,d),h=!0,m=!0)}}else p.statusCode===200&&h&&r&&await r(u,d);while(m);if(p.statusCode!==200){let{response:e}=await NN(p);throw new Oj(p.statusCode,p.statusMessage,e)}if(p.headers[`content-type`]===`application/x-${o}-advertisement`){let e=await kN(p.body,{service:o});return e.auth=d,e}else{let{preview:e,response:t,data:n}=await NN(p);try{let e=await kN([n],{service:o});return e.auth=d,e}catch{throw new Bj(e,t)}}}static async connect({http:e,onProgress:t,corsProxy:n,service:r,url:i,auth:a,body:o,headers:s}){let c=TN(i);c&&(i=c.url),n&&(i=jN(n,i)),s[`content-type`]=`application/x-${r}-request`,s.accept=`application/x-${r}-result`,MN(s,a);let l=await e.request({onProgress:t,method:`POST`,url:`${i}/${r}`,body:o,headers:s});if(l.statusCode!==200){let{response:e}=NN(l);throw new Oj(l.statusCode,l.statusMessage,e)}return l}},FN=class{static getRemoteHelperFor({url:e}){let t=new Map;t.set(`http`,PN),t.set(`https`,PN);let n=IN({url:e});if(!n)throw new Hj(e);if(t.has(n.transport))return t.get(n.transport);throw new Vj(e,n.transport,n.transport===`ssh`?xN(e):void 0)}};function IN({url:e}){if(e.startsWith(`git@`))return{transport:`ssh`,address:e};let t=e.match(/(\w+)(:\/\/|::)(.*)/);if(t!==null){if(t[2]===`://`)return{transport:t[1],address:t[0]};if(t[2]===`::`)return{transport:t[1],address:t[3]}}}let LN=null;var RN=class{static async read({fs:e,gitdir:t}){LN===null&&(LN=new yk.default);let n=Y(t,`shallow`),r=new Set;return await LN.acquire(n,async function(){let t=await e.read(n,{encoding:`utf8`});if(t===null||t.trim()===``)return r;t.trim().split(`
4482
+ `),n=new TextEncoder().encode(n)}catch{}return typeof n!=`string`&&(n=Buffer.from(n)),n}catch{return null}}async write(e,t,n={}){try{await this._writeFile(e,t,n)}catch{await this.mkdir(tA(e)),await this._writeFile(e,t,n)}}async mkdir(e,t=!1){try{await this._mkdir(e)}catch(n){if(n===null||n.code===`EEXIST`)return;if(t)throw n;if(n.code===`ENOENT`){let t=tA(e);if(t===`.`||t===`/`||t===e)throw n;await this.mkdir(t),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(e){if(e.code!==`ENOENT`)throw e}}async rmdir(e,t){try{t&&t.recursive?await this._rm(e,t):await this._rmdir(e)}catch(e){if(e.code!==`ENOENT`)throw e}}async readdir(e){try{let t=await this._readdir(e);return t.sort(Mk),t}catch(e){return e.code===`ENOTDIR`?null:[]}}async readdirDeep(e){let t=await this._readdir(e);return(await Promise.all(t.map(async t=>{let n=e+`/`+t;return(await this._stat(n)).isDirectory()?this.readdirDeep(n):n}))).reduce((e,t)=>e.concat(t),[])}async lstat(e){try{return await this._lstat(e)}catch(e){if(e.code===`ENOENT`||(e.code||``).includes(`ENS`))return null;throw e}}async readlink(e,t={encoding:`buffer`}){try{let n=await this._readlink(e,t);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(e){if(e.code===`ENOENT`||(e.code||``).includes(`ENS`))return null;throw e}}async writelink(e,t){return this._symlink(t.toString(`utf8`),e)}};function Z(e,t){if(t===void 0)throw new Fj(e)}function SM(e){return e.startsWith(`/`)||/^[a-zA-Z]:[\\/]/.test(e)}async function CM({fsp:e,dotgit:t}){Z(`fsp`,e),Z(`dotgit`,t);let n=await e._stat(t).catch(()=>({isFile:()=>!1,isDirectory:()=>!1}));return n.isDirectory()?t:n.isFile()?e._readFile(t,`utf8`).then(e=>e.trimRight().substr(8)).then(e=>SM(e)?e:Y(tA(t),e)):t}async function wM(e,t){return!e&&!t?!1:e&&!t||!e&&t?!0:!(await e.type()===`tree`&&await t.type()===`tree`||await e.type()===await t.type()&&await e.mode()===await t.mode()&&await e.oid()===await t.oid())}var TM=class{static async isIgnored({fs:e,dir:t,gitdir:n=Y(t,`.git`),filepath:r}){if(eA(r)===`.git`)return!0;if(r===`.`)return!1;let i=``,a=Y(n,`info`,`exclude`);await e.exists(a)&&(i=await e.read(a,`utf8`));let o=[{gitignore:Y(t,`.gitignore`),filepath:r}],s=r.split(`/`).filter(Boolean);for(let e=1;e<s.length;e++){let n=s.slice(0,e).join(`/`),r=s.slice(e).join(`/`);o.push({gitignore:Y(t,n,`.gitignore`),filepath:r})}let c=!1;for(let t of o){let n;try{n=await e.read(t.gitignore,`utf8`)}catch(e){if(e.code===`NOENT`)continue}let r=(0,wk.default)().add(i);r.add(n);let a=tA(t.filepath);if(a!==`.`&&r.ignores(a))return!0;c=c?!r.test(t.filepath).unignored:r.test(t.filepath).ignored}return c}};async function EM({fs:e,gitdir:t,object:n,format:r,oid:i}){if(r!==`deflated`)throw new kk(`GitObjectStoreLoose expects objects to write to be in deflated format`);let a=`${t}/${`objects/${i.slice(0,2)}/${i.slice(2)}`}`;await e.exists(a)||await e.write(a,n)}let DM=null;async function OM(e){return DM===null&&(DM=AM()),DM?kM(e):Sk.default.deflate(e)}async function kM(e){let t=new CompressionStream(`deflate`),n=new Blob([e]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}function AM(){try{return new CompressionStream(`deflate`).writable.close(),new Blob([]).stream().cancel(),!0}catch{return!1}}async function jM({fs:e,gitdir:t,type:n,object:r,format:i=`content`,oid:a=void 0,dryRun:o=!1}){return i!==`deflated`&&(i!==`wrapped`&&(r=JA.wrap({type:n,object:r})),a=await Bk(r),r=Buffer.from(await OM(r))),o||await EM({fs:e,gitdir:t,object:r,format:`deflated`,oid:a}),a}function MM(e){let t;for(;~(t=e.indexOf(92));)e[t]=47;return e}async function NM({fs:e,dir:t,gitdir:n=Y(t,`.git`),filepath:r,cache:i={},force:a=!1,parallel:o=!0}){try{Z(`fs`,e),Z(`dir`,t),Z(`gitdir`,n),Z(`filepath`,r);let s=new xM(e),c=await CM({fsp:s,dotgit:n});await $k.acquire({fs:s,gitdir:c,cache:i},async e=>{let n=await(await IA.get({fs:s,gitdir:c})).get(`core.autocrlf`);return PM({dir:t,gitdir:c,fs:s,filepath:r,index:e,force:a,parallel:o,autocrlf:n})})}catch(e){throw e.caller=`git.add`,e}}async function PM({dir:e,gitdir:t,fs:n,filepath:r,index:i,force:a,parallel:o,autocrlf:s}){r=Array.isArray(r)?r:[r];let c=r.map(async r=>{if(!a&&await TM.isIgnored({fs:n,dir:e,gitdir:t,filepath:r}))return;let c=await n.lstat(Y(e,r));if(!c)throw new sA(r);if(c.isDirectory()){let c=await n.readdir(Y(e,r));if(o){let l=c.map(c=>PM({dir:e,gitdir:t,fs:n,filepath:[Y(r,c)],index:i,force:a,parallel:o,autocrlf:s}));await Promise.all(l)}else for(let l of c)await PM({dir:e,gitdir:t,fs:n,filepath:[Y(r,l)],index:i,force:a,parallel:o,autocrlf:s})}else{let a=c.isSymbolicLink()?await n.readlink(Y(e,r)).then(MM):await n.read(Y(e,r),{autocrlf:s});if(a===null)throw new sA(r);let o=await jM({fs:n,gitdir:t,type:`blob`,object:a});i.insert({filepath:r,stats:c,oid:o})}}),l=await Promise.allSettled(c),u=l.filter(e=>e.status===`rejected`).map(e=>e.reason);if(u.length>1)throw new Ij(u);if(u.length===1)throw u[0];return l.filter(e=>e.status===`fulfilled`&&e.value).map(e=>e.value)}async function FM({fs:e,gitdir:t,path:n}){return(await IA.get({fs:e,gitdir:t})).get(n)}function IM(e,...t){for(let n of t)if(n)for(let t of Object.keys(n)){let r=n[t];r!==void 0&&(e[t]=r)}return e}async function LM({fs:e,gitdir:t,author:n,commit:r}){let i=Math.floor(Date.now()/1e3),a=IM({},{name:await FM({fs:e,gitdir:t,path:`user.name`}),email:await FM({fs:e,gitdir:t,path:`user.email`})||``,timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},r?r.author:void 0,n);if(a.name!==void 0)return a}async function RM({fs:e,gitdir:t,author:n,committer:r,commit:i}){let a=Math.floor(Date.now()/1e3),o=IM({},{name:await FM({fs:e,gitdir:t,path:`user.name`}),email:await FM({fs:e,gitdir:t,path:`user.email`})||``,timestamp:a,timezoneOffset:new Date(a*1e3).getTimezoneOffset()},i?i.committer:void 0,n,r);if(o.name!==void 0)return o}async function zM({fs:e,cache:t,gitdir:n,oid:r}){let{type:i,object:a}=await vj({fs:e,cache:t,gitdir:n,oid:r});if(i===`tag`)return r=eM.from(a).parse().object,zM({fs:e,cache:t,gitdir:n,oid:r});if(i!==`commit`)throw new cA(r,i,`commit`);return{commit:rM.from(a),oid:r}}async function BM({fs:e,cache:t,gitdir:n,oid:r}){let{commit:i,oid:a}=await zM({fs:e,cache:t,gitdir:n,oid:r});return{oid:a,commit:i.parse(),payload:i.withoutSignature()}}async function VM({fs:e,cache:t,onSign:n,gitdir:r,message:i,author:a,committer:o,signingKey:s,amend:c=!1,dryRun:l=!1,noUpdateBranch:u=!1,ref:d,parent:f,tree:p}){let m=!1,h=!1;d||=(h=!(await e.read(`${r}/HEAD`,{encoding:`utf8`})).startsWith(`ref:`),await X.resolve({fs:e,gitdir:r,ref:`HEAD`,depth:2}));let g,_;try{g=await X.resolve({fs:e,gitdir:r,ref:d}),_=await BM({fs:e,gitdir:r,oid:g,cache:{}})}catch{m=!0}if(c&&m)throw new Gj(d);let v=c?await LM({fs:e,gitdir:r,author:a,commit:_.commit}):await LM({fs:e,gitdir:r,author:a});if(!v)throw new Pj(`author`);let y=c?await RM({fs:e,gitdir:r,author:v,committer:o,commit:_.commit}):await RM({fs:e,gitdir:r,author:v,committer:o});if(!y)throw new Pj(`committer`);return $k.acquire({fs:e,gitdir:r,cache:t,allowUnmerged:!1},async function(t){let a=nA(t.entries).get(`.`);if(p||=await HM({fs:e,gitdir:r,inode:a,dryRun:l}),f=f?await Promise.all(f.map(t=>X.resolve({fs:e,gitdir:r,ref:t}))):c?_.commit.parent:g?[g]:[],!i)if(c)i=_.commit.message;else throw new Fj(`message`);let o=rM.from({tree:p,parent:f,author:v,committer:y,message:i});s&&(o=await rM.sign(o,n,s));let m=await jM({fs:e,gitdir:r,type:`commit`,object:o.toObject(),dryRun:l});return!u&&!l&&await X.writeRef({fs:e,gitdir:r,ref:h?`HEAD`:d,value:m}),m})}async function HM({fs:e,gitdir:t,inode:n,dryRun:r}){let i=n.children;for(let n of i)n.type===`tree`&&(n.metadata.mode=`040000`,n.metadata.oid=await HM({fs:e,gitdir:t,inode:n,dryRun:r}));let a=i.map(e=>({mode:e.metadata.mode,path:e.basename,oid:e.metadata.oid,type:e.type}));return await jM({fs:e,gitdir:t,type:`tree`,object:qA.from(a).toObject(),dryRun:r})}async function UM({fs:e,cache:t,gitdir:n,oid:r,filepath:i}){if(i.startsWith(`/`))throw new kj(`leading-slash`);if(i.endsWith(`/`))throw new kj(`trailing-slash`);let a=r,o=await iM({fs:e,cache:t,gitdir:n,oid:r}),s=o.tree;return r=i===``?o.oid:await WM({fs:e,cache:t,gitdir:n,tree:s,pathArray:i.split(`/`),oid:a,filepath:i}),r}async function WM({fs:e,cache:t,gitdir:n,tree:r,pathArray:i,oid:a,filepath:o}){let s=i.shift();for(let c of r)if(c.path===s){if(i.length===0)return c.oid;{let{type:s,object:l}=await vj({fs:e,cache:t,gitdir:n,oid:c.oid});if(s!==`tree`)throw new cA(a,s,`tree`,o);return r=qA.from(l),WM({fs:e,cache:t,gitdir:n,tree:r,pathArray:i,oid:a,filepath:o})}}throw new sA(`file or directory found at "${a}:${o}"`)}async function GM({fs:e,cache:t,gitdir:n,oid:r,filepath:i=void 0}){i!==void 0&&(r=await UM({fs:e,cache:t,gitdir:n,oid:r,filepath:i}));let{tree:a,oid:o}=await iM({fs:e,cache:t,gitdir:n,oid:r});return{oid:o,tree:a.entries()}}async function KM({fs:e,gitdir:t,tree:n}){return await jM({fs:e,gitdir:t,type:`tree`,object:qA.from(n).toObject(),format:`content`})}const qM=/(^|[/.])([/.]|$)|^@$|@{|[\x00-\x20\x7f~^:?*[\\]|\.lock(\/|$)/;function JM(e,t){if(typeof e!=`string`)throw TypeError(`Reference name must be a string`);return!qM.test(e)&&(!!t||e.includes(`/`))}async function YM({fs:e,gitdir:t,remote:n,url:r,force:i}){if(!JM(n,!0))throw new Aj(n,Tk.default.clean(n));let a=await IA.get({fs:e,gitdir:t});if(!i&&(await a.getSubsections(`remote`)).includes(n)&&r!==await a.get(`remote.${n}.url`))throw new yj(`remote`,n);await a.set(`remote.${n}.url`,r),await a.set(`remote.${n}.fetch`,`+refs/heads/*:refs/remotes/${n}/*`),await IA.save({fs:e,gitdir:t,config:a})}async function XM({fs:e,dir:t,gitdir:n=Y(t,`.git`),remote:r,url:i,force:a=!1}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`remote`,r),Z(`url`,i);let t=new xM(e);return await YM({fs:t,gitdir:await CM({fsp:t,dotgit:n}),remote:r,url:i,force:a})}catch(e){throw e.caller=`git.addRemote`,e}}async function ZM({fs:e,cache:t,onSign:n,gitdir:r,ref:i,tagger:a,message:o=i,gpgsig:s,object:c,signingKey:l,force:u=!1}){if(i=i.startsWith(`refs/tags/`)?i:`refs/tags/${i}`,!u&&await X.exists({fs:e,gitdir:r,ref:i}))throw new yj(`tag`,i);let d=await X.resolve({fs:e,gitdir:r,ref:c||`HEAD`}),{type:f}=await vj({fs:e,cache:t,gitdir:r,oid:d}),p=eM.from({object:d,type:f,tag:i.replace(`refs/tags/`,``),tagger:a,message:o,gpgsig:s});l&&(p=await eM.sign(p,n,l));let m=await jM({fs:e,gitdir:r,type:`tag`,object:p.toObject()});await X.writeRef({fs:e,gitdir:r,ref:i,value:m})}async function QM({fs:e,onSign:t,dir:n,gitdir:r=Y(n,`.git`),ref:i,tagger:a,message:o=i,gpgsig:s,object:c,signingKey:l,force:u=!1,cache:d={}}){try{Z(`fs`,e),Z(`gitdir`,r),Z(`ref`,i),l&&Z(`onSign`,t);let n=new xM(e),f=await CM({fsp:n,dotgit:r}),p=await LM({fs:n,gitdir:f,author:a});if(!p)throw new Pj(`tagger`);return await ZM({fs:n,cache:d,onSign:t,gitdir:f,ref:i,tagger:p,message:o,gpgsig:s,object:c,signingKey:l,force:u})}catch(e){throw e.caller=`git.annotatedTag`,e}}async function $M({fs:e,gitdir:t,ref:n,object:r,checkout:i=!1,force:a=!1}){if(!JM(n,!0))throw new Aj(n,Tk.default.clean(n));let o=`refs/heads/${n}`;if(!a&&await X.exists({fs:e,gitdir:t,ref:o}))throw new yj(`branch`,n,!1);let s;try{s=await X.resolve({fs:e,gitdir:t,ref:r||`HEAD`})}catch{}s&&await X.writeRef({fs:e,gitdir:t,ref:o,value:s}),i&&await X.writeSymbolicRef({fs:e,gitdir:t,ref:`HEAD`,value:o})}async function eN({fs:e,dir:t,gitdir:n=Y(t,`.git`),ref:r,object:i,checkout:a=!1,force:o=!1}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`ref`,r);let t=new xM(e);return await $M({fs:t,gitdir:await CM({fsp:t,dotgit:n}),ref:r,object:i,checkout:a,force:o})}catch(e){throw e.caller=`git.branch`,e}}async function tN(e,t,n){let r=n.split(`/`);r.pop();let i=t;for(let t of r){if(t===``||t===`.`)continue;i=`${i}/${t}`;let r=await e.lstat(i);if(r&&r.isSymbolicLink())throw new Ak(n)}}const nN=(e,t)=>e===`.`||t==null||t.length===0||t===`.`?!0:t.length>=e.length?t.startsWith(e):e.startsWith(t);async function rN({fs:e,cache:t,onProgress:n,onPostCheckout:r,dir:i,gitdir:a,remote:o,ref:s,filepaths:c,noCheckout:l,noUpdateHead:u,dryRun:d,force:f,track:p=!0,nonBlocking:m=!1,batchSize:h=100}){let g;if(r)try{g=await X.resolve({fs:e,gitdir:a,ref:`HEAD`})}catch{g=`0000000000000000000000000000000000000000`}let _;try{_=await X.resolve({fs:e,gitdir:a,ref:s})}catch(t){if(s===`HEAD`)throw t;let n=`${o}/${s}`;if(_=await X.resolve({fs:e,gitdir:a,ref:n}),p){let t=await IA.get({fs:e,gitdir:a});await t.set(`branch.${s}.remote`,o),await t.set(`branch.${s}.merge`,`refs/heads/${s}`),await IA.save({fs:e,gitdir:a,config:t})}await X.writeRef({fs:e,gitdir:a,ref:`refs/heads/${s}`,value:_})}if(!l){let o;try{o=await iN({fs:e,cache:t,onProgress:n,dir:i,gitdir:a,ref:s,force:f,filepaths:c})}catch(e){throw e instanceof sA&&e.data.what===_?new wj(s,_):e}let l=o.filter(([e])=>e===`conflict`).map(([e,t])=>t);if(l.length>0)throw new xj(l);let u=o.filter(([e])=>e===`error`).map(([e,t])=>t);if(u.length>0)throw new kk(u.join(`, `));if(d){r&&await r({previousHead:g,newHead:_,type:c!=null&&c.length>0?`file`:`branch`});return}let p=0,v=o.length;if(await $k.acquire({fs:e,gitdir:a,cache:t},async function(t){await Promise.all(o.filter(([e])=>e===`delete`||e===`delete-index`).map(async function([r,a]){let o=`${i}/${a}`;r===`delete`&&await e.rm(o),t.delete({filepath:a}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})}))}),await $k.acquire({fs:e,gitdir:a,cache:t},async function(t){for(let[r,a]of o)if(r===`rmdir`||r===`rmdir-index`){let o=`${i}/${a}`;try{r===`rmdir`&&await e.rmdir(o),t.delete({filepath:a}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})}catch(e){if(e.code===`ENOTEMPTY`)console.log(`Did not delete ${a} because directory is not empty`);else throw e}}}),await Promise.all(o.filter(([e])=>e===`mkdir`||e===`mkdir-index`).map(async function([t,r]){let a=`${i}/${r}`;await tN(e,i,r),await e.mkdir(a),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})})),m){let r=await sN(`Update Working Dir`,o.filter(([e])=>e===`create`||e===`create-index`||e===`update`||e===`mkdir-index`).map(([n,r,o,s,c])=>()=>oN({fs:e,cache:t,gitdir:a,dir:i},[n,r,o,s,c])),n,h);await $k.acquire({fs:e,gitdir:a,cache:t,allowUnmerged:!0},async function(e){await sN(`Update Index`,r.map(([t,n,r])=>()=>aN({index:e,fullpath:t,oid:n,stats:r})),n,h)})}else await $k.acquire({fs:e,gitdir:a,cache:t,allowUnmerged:!0},async function(r){let s=await Promise.allSettled(o.filter(([e])=>e===`create`||e===`create-index`||e===`update`||e===`mkdir-index`).map(async function([o,s,c,l,u]){let d=`${i}/${s}`;if(o!==`create-index`&&o!==`mkdir-index`){await tN(e,i,s);let{object:n}=await vj({fs:e,cache:t,gitdir:a,oid:c});if(u&&await e.rm(d),l===33188)await e.write(d,n);else if(l===33261)await e.write(d,n,{mode:511});else if(l===40960)await e.writelink(d,n);else throw new kk(`Invalid mode 0o${l.toString(8)} detected in blob ${c}`)}let f=await e.lstat(d);l===33261&&(f.mode=493),o===`mkdir-index`&&(f.mode=57344),r.insert({filepath:s,stats:f,oid:c}),n&&await n({phase:`Updating workdir`,loaded:++p,total:v})})),c=[];for(let e of s)e.status===`rejected`&&(c.push(e.reason),console.error(`[isomorphic-git checkout] task rejected:`,e.reason?.stack??e.reason));if(c.length>0)throw new Ij(c)});r&&await r({previousHead:g,newHead:_,type:c!=null&&c.length>0?`file`:`branch`})}if(!u){let t=await X.expand({fs:e,gitdir:a,ref:s});t.startsWith(`refs/heads`)?await X.writeSymbolicRef({fs:e,gitdir:a,ref:`HEAD`,value:t}):await X.writeRef({fs:e,gitdir:a,ref:`HEAD`,value:_})}}async function iN({fs:e,cache:t,onProgress:n,dir:r,gitdir:i,ref:a,force:o,filepaths:s}){let c=0;return pM({fs:e,cache:t,dir:r,gitdir:i,trees:[oM({ref:a}),cM(),oA()],map:async function(e,[t,r,i]){if(e!==`.`){if(s&&!s.some(t=>nN(e,t)))return null;switch(n&&await n({phase:`Analyzing workdir`,loaded:++c}),[!!i,!!t,!!r].map(Number).join(``)){case`000`:return;case`001`:return o&&s&&s.includes(e)?[`delete`,e]:void 0;case`010`:switch(await t.type()){case`tree`:return[`mkdir`,e];case`blob`:return[`create`,e,await t.oid(),await t.mode()];case`commit`:return[`mkdir-index`,e,await t.oid(),await t.mode()];default:return[`error`,`new entry Unhandled type ${await t.type()}`]}case`011`:switch(`${await t.type()}-${await r.type()}`){case`tree-tree`:return;case`tree-blob`:case`blob-tree`:return[`conflict`,e];case`blob-blob`:return await t.oid()===await r.oid()?await t.mode()===await r.mode()?[`create-index`,e,await t.oid(),await t.mode()]:o?[`update`,e,await t.oid(),await t.mode(),!0]:[`conflict`,e]:o?[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await r.mode()]:[`conflict`,e];case`commit-tree`:return;case`commit-blob`:return[`conflict`,e];default:return[`error`,`new entry Unhandled type ${t.type}`]}case`100`:return[`delete-index`,e];case`101`:switch(await i.type()){case`tree`:return[`rmdir-index`,e];case`blob`:return await i.oid()===await r.oid()||o?[`delete`,e]:[`conflict`,e];case`commit`:return[`rmdir-index`,e];default:return[`error`,`delete entry Unhandled type ${await i.type()}`]}case`110`:case`111`:switch(`${await i.type()}-${await t.type()}`){case`tree-tree`:return;case`blob-blob`:if(await i.oid()===await t.oid()&&await i.mode()===await t.mode()&&!o)return;if(r){if(await r.oid()!==await i.oid()&&await r.oid()!==await t.oid())return o?[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await r.mode()]:[`conflict`,e]}else if(o)return[`update`,e,await t.oid(),await t.mode(),await t.mode()!==await i.mode()];return await t.mode()===await i.mode()?await t.oid()===await i.oid()?void 0:[`update`,e,await t.oid(),await t.mode(),!1]:[`update`,e,await t.oid(),await t.mode(),!0];case`tree-blob`:return[`update-dir-to-blob`,e,await t.oid()];case`blob-tree`:return[`update-blob-to-tree`,e];case`commit-commit`:return[`mkdir-index`,e,await t.oid(),await t.mode()];default:return[`error`,`update entry Unhandled type ${await i.type()}-${await t.type()}`]}}}},reduce:async function(e,t){return t=uM(t),e?e&&e[0]===`rmdir`?(t.push(e),t):(t.unshift(e),t):t}})}async function aN({index:e,fullpath:t,stats:n,oid:r}){try{e.insert({filepath:t,stats:n,oid:r})}catch(e){console.warn(`Error inserting ${t} into index:`,e)}}async function oN({fs:e,cache:t,gitdir:n,dir:r},[i,a,o,s,c]){let l=`${r}/${a}`;if(i!==`create-index`&&i!==`mkdir-index`){await tN(e,r,a);let{object:i}=await vj({fs:e,cache:t,gitdir:n,oid:o});if(c&&await e.rm(l),s===33188)await e.write(l,i);else if(s===33261)await e.write(l,i,{mode:511});else if(s===40960)await e.writelink(l,i);else throw new kk(`Invalid mode 0o${s.toString(8)} detected in blob ${o}`)}let u=await e.lstat(l);return s===33261&&(u.mode=493),i===`mkdir-index`&&(u.mode=57344),[a,o,u]}async function sN(e,t,n,r){let i=[],a=[];for(let o=0;o<t.length;o+=r){let s=t.slice(o,o+r).map(e=>e());(await Promise.allSettled(s)).forEach(t=>{t.status===`fulfilled`?i.push(t.value):(a.push(t.reason),console.error(`[isomorphic-git ${e}] task rejected:`,t.reason?.stack??t.reason))}),n&&await n({phase:`Updating workdir`,loaded:o+s.length,total:t.length})}if(a.length>0)throw new Ij(a);return i}async function cN({fs:e,onProgress:t,onPostCheckout:n,dir:r,gitdir:i=Y(r,`.git`),remote:a=`origin`,ref:o,filepaths:s,noCheckout:c=!1,noUpdateHead:l=o===void 0,dryRun:u=!1,force:d=!1,track:f=!0,cache:p={},nonBlocking:m=!1,batchSize:h=100}){try{Z(`fs`,e),Z(`dir`,r),Z(`gitdir`,i);let g=o||`HEAD`,_=new xM(e);return await rN({fs:_,cache:p,onProgress:t,onPostCheckout:n,dir:r,gitdir:await CM({fsp:_,dotgit:i}),remote:a,ref:g,filepaths:s,noCheckout:c,noUpdateHead:l,dryRun:u,force:d,track:f,nonBlocking:m,batchSize:h})}catch(e){throw e.caller=`git.checkout`,e}}const lN=/^.*(\r?\n|$)/gm;function uN({branches:e,contents:t}){let n=e[1],r=e[2],i=t[0],a=t[1],o=t[2],s=(0,Ek.default)(a.match(lN),i.match(lN),o.match(lN)),c=``,l=!0;for(let e of s)e.ok&&(c+=e.ok.join(``)),e.conflict&&(l=!1,c+=`${`<`.repeat(7)} ${n}\n`,c+=e.conflict.a.join(``),c+=`${`=`.repeat(7)}\n`,c+=e.conflict.b.join(``),c+=`${`>`.repeat(7)} ${r}\n`);return{cleanMerge:l,mergedText:c}}async function dN({fs:e,cache:t,dir:n,gitdir:r=Y(n,`.git`),index:i,ourOid:a,baseOid:o,theirOid:s,ourName:c=`ours`,baseName:l=`base`,theirName:u=`theirs`,dryRun:d=!1,abortOnConflict:f=!0,mergeDriver:p}){let m=oM({ref:a}),h=oM({ref:o}),g=oM({ref:s}),_=[],v=[],y=[],b=[],x=await pM({fs:e,cache:t,dir:n,gitdir:r,trees:[m,h,g],map:async function(t,[n,a,o]){let s=eA(t);switch(`${await wM(n,a)}-${await wM(o,a)}`){case`false-false`:return{mode:await a.mode(),path:s,oid:await a.oid(),type:await a.type()};case`false-true`:return!o&&await n.type()===`tree`?{mode:await n.mode(),path:s,oid:await n.oid(),type:await n.type()}:o?{mode:await o.mode(),path:s,oid:await o.oid(),type:await o.type()}:void 0;case`true-false`:return!n&&await o.type()===`tree`?{mode:await o.mode(),path:s,oid:await o.oid(),type:await o.type()}:n?{mode:await n.mode(),path:s,oid:await n.oid(),type:await n.type()}:void 0;case`true-true`:if(n&&o&&await n.type()===`tree`&&await o.type()===`tree`)return{mode:await n.mode(),path:s,oid:await n.oid(),type:`tree`};if(n&&o&&await n.type()===`blob`&&await o.type()===`blob`)return fN({fs:e,gitdir:r,path:s,ours:n,base:a,theirs:o,ourName:c,baseName:l,theirName:u,mergeDriver:p}).then(async e=>{if(e.cleanMerge)f||i.insert({filepath:t,oid:e.mergeResult.oid,stage:0});else if(_.push(t),v.push(t),!f){let e=``;a&&await a.type()===`blob`&&(e=await a.oid());let r=await n.oid(),s=await o.oid();i.delete({filepath:t}),e&&i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:r,stage:2}),i.insert({filepath:t,oid:s,stage:3})}return e.mergeResult});if(a&&!n&&o&&await a.type()===`blob`&&await o.type()===`blob`){if(_.push(t),y.push(t),!f){let e=await a.oid(),n=await o.oid();i.delete({filepath:t}),i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:n,stage:3})}return{mode:await o.mode(),oid:await o.oid(),type:`blob`,path:s}}if(a&&n&&!o&&await a.type()===`blob`&&await n.type()===`blob`){if(_.push(t),b.push(t),!f){let e=await a.oid(),r=await n.oid();i.delete({filepath:t}),i.insert({filepath:t,oid:e,stage:1}),i.insert({filepath:t,oid:r,stage:2})}return{mode:await n.mode(),oid:await n.oid(),type:`blob`,path:s}}if(a&&!n&&!o&&(await a.type()===`blob`||await a.type()===`tree`))return;throw new Mj}},reduce:_.length!==0&&(!n||f)?void 0:async(t,n)=>{let i=n.filter(Boolean);if(t&&!(t&&t.type===`tree`&&i.length===0&&t.path!==`.`))return(i.length>0||t.path===`.`&&i.length===0)&&(t.oid=await jM({fs:e,gitdir:r,type:`tree`,object:new qA(i).toObject(),dryRun:d})),t}});return _.length===0?x.oid:(n&&!f&&await pM({fs:e,cache:t,dir:n,gitdir:r,trees:[oM({ref:x.oid})],map:async function(t,[r]){let i=`${n}/${t}`;if(await r.type()===`blob`){let t=await r.mode(),n=await r.content();await e.write(i,n,{mode:t})}return!0}}),new Nj(_,v,y,b))}async function fN({fs:e,gitdir:t,path:n,ours:r,base:i,theirs:a,ourName:o,theirName:s,baseName:c,dryRun:l,mergeDriver:u=uN}){let d=`blob`,f=`100755`,p=``,m=``;i&&await i.type()===`blob`&&(f=await i.mode(),p=await i.oid(),m=Buffer.from(await i.content()).toString(`utf8`));let h=f===await r.mode()?await a.mode():await r.mode();if(await r.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await r.oid(),type:d}};if(await r.oid()===p)return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await a.oid(),type:d}};if(await a.oid()===p)return{cleanMerge:!0,mergeResult:{mode:h,path:n,oid:await r.oid(),type:d}};let g=Buffer.from(await r.content()).toString(`utf8`),_=Buffer.from(await a.content()).toString(`utf8`),{mergedText:v,cleanMerge:y}=await u({branches:[c,o,s],contents:[m,g,_],path:n});return{cleanMerge:y,mergeResult:{mode:h,path:n,oid:await jM({fs:e,gitdir:t,type:`blob`,object:Buffer.from(v,`utf8`),dryRun:l}),type:d}}}let pN;async function mN(e,t){return pN===void 0&&(pN=new yk.default),pN.acquire(e,t)}async function hN({fs:e,dir:t,gitdir:n,stashCommit:r,parentCommit:i,wasStaged:a}){let o=[],s=[],c=await pM({fs:e,cache:{},dir:t,gitdir:n,trees:[oM({ref:i}),oM({ref:r})],map:async(r,[i,c])=>{if(r===`.`||await TM.isIgnored({fs:e,dir:t,gitdir:n,filepath:r}))return;let l=c?await c.type():await i.type();if(l!==`tree`&&l!==`blob`)return;if(!c&&i){let e=l===`tree`?`rmdir`:`rm`;return l===`tree`&&o.push(r),l===`blob`&&a&&s.push({filepath:r,oid:await i.oid()}),{method:e,filepath:r}}let u=await c.oid();if(!i||await i.oid()!==u)return l===`tree`?{method:`mkdir`,filepath:r}:(a&&s.push({filepath:r,oid:u,stats:await e.lstat(Y(t,r))}),{method:`write`,filepath:r,oid:u})}});await mN({fs:e,gitdir:n,dirRemoved:o,ops:c},async()=>{for(let r of c){let i=Y(t,r.filepath);switch(r.method){case`rmdir`:await e.rmdir(i);break;case`mkdir`:await tN(e,t,r.filepath),await e.mkdir(i);break;case`rm`:await e.rm(i);break;case`write`:if(!o.some(e=>i.startsWith(e))){await tN(e,t,r.filepath);let{object:a}=await vj({fs:e,cache:{},gitdir:n,oid:r.oid});await e.exists(i)&&await e.rm(i),await e.write(i,a)}break}}}),await $k.acquire({fs:e,gitdir:n,cache:{}},async e=>{s.forEach(({filepath:t,stats:n,oid:r})=>{e.insert({filepath:t,stats:n,oid:r})})})}async function gN({fs:e,cache:t,dir:n,gitdir:r,oid:i,dryRun:a=!1,noUpdateBranch:o=!1,abortOnConflict:s=!0,committer:c,mergeDriver:l}){let{commit:u,oid:d}=await BM({fs:e,cache:t,gitdir:r,oid:i});if(u.parent.length>1)throw new Sj(d,u.parent.length);if(u.parent.length===0)throw new Cj(d);let f=await X.resolve({fs:e,gitdir:r,ref:`HEAD`}),{commit:p}=await BM({fs:e,cache:t,gitdir:r,oid:f}),m=u.parent[0],{commit:h}=await BM({fs:e,cache:t,gitdir:r,oid:m}),g=await $k.acquire({fs:e,gitdir:r,cache:t,allowUnmerged:!1},async i=>dN({fs:e,cache:t,dir:n,gitdir:r,index:i,ourOid:p.tree,baseOid:h.tree,theirOid:u.tree,ourName:`HEAD`,baseName:`parent of ${d.slice(0,7)}`,theirName:d.slice(0,7),dryRun:a,abortOnConflict:s,mergeDriver:l}));if(g instanceof Nj)throw g;let _=await VM({fs:e,cache:t,gitdir:r,message:u.message,tree:g,parent:[f],author:u.author,committer:c,dryRun:a,noUpdateBranch:o});return n&&!a&&!o&&await hN({fs:e,dir:n,gitdir:r,stashCommit:_,parentCommit:f,wasStaged:!0}),_}async function _N({fs:e,dir:t,gitdir:n=Y(t,`.git`),oid:r,cache:i={},committer:a,dryRun:o=!1,noUpdateBranch:s=!1,abortOnConflict:c=!0,mergeDriver:l}){try{Z(`fs`,e),Z(`gitdir`,n),Z(`oid`,r);let u=new xM(e),d=await CM({fsp:u,dotgit:n}),{commit:f}=await BM({fs:u,cache:i,gitdir:d,oid:r});if(f.parent&&f.parent.length>1)return await gN({fs:u,cache:i,dir:t,gitdir:d,oid:r,dryRun:o,noUpdateBranch:s,abortOnConflict:c,committer:void 0,mergeDriver:l});let p=await RM({fs:u,gitdir:d,committer:a});if(!p)throw new Pj(`committer`);return await gN({fs:u,cache:i,dir:t,gitdir:d,oid:r,dryRun:o,noUpdateBranch:s,abortOnConflict:c,committer:p,mergeDriver:l})}catch(e){throw e.caller=`git.cherryPick`,e}}const vN=/^refs\/(heads\/|tags\/|remotes\/)?(.*)/;function yN(e){let t=vN.exec(e);return t?t[1]===`remotes/`&&e.endsWith(`/HEAD`)?t[2].slice(0,-5):t[2]:e}async function bN({fs:e,gitdir:t,fullname:n=!1,test:r=!1}){let i=await X.resolve({fs:e,gitdir:t,ref:`HEAD`,depth:2});if(r)try{await X.resolve({fs:e,gitdir:t,ref:i})}catch{return}if(i.startsWith(`refs/`))return n?i:yN(i)}function xN(e){return e=e.replace(/^git@([^:]+):/,`https://$1/`),e=e.replace(/^ssh:\/\//,`https://`),e}function SN({username:e=``,password:t=``}){return`Basic ${Buffer.from(`${e}:${t}`).toString(`base64`)}`}async function CN(e,t){let n=tj(e);for(;;){let{value:e,done:r}=await n.next();if(e&&await t(e),r)break}n.return&&n.return()}async function wN(e){let t=0,n=[];await CN(e,e=>{n.push(e),t+=e.byteLength});let r=new Uint8Array(t),i=0;for(let e of n)r.set(e,i),i+=e.byteLength;return r}function TN(e){let t=e.match(/^https?:\/\/([^/]+)@/);if(t==null)return{url:e,auth:{}};t=t[1];let[n,r]=t.split(`:`);return e=e.replace(`${t}@`,``),{url:e,auth:{username:n,password:r}}}function EN(e,t){let n=t.toString(16);return`0`.repeat(e-n.length)+n}var DN=class{static flush(){return Buffer.from(`0000`,`utf8`)}static delim(){return Buffer.from(`0001`,`utf8`)}static encode(e){typeof e==`string`&&(e=Buffer.from(e));let t=EN(4,e.length+4);return Buffer.concat([Buffer.from(t,`utf8`),e])}static streamReader(e){let t=new nj(e);return async function(){try{let e=await t.read(4);return e==null?!0:(e=parseInt(e.toString(`utf8`),16),e===0||e===1?null:await t.read(e-4)??!0)}catch(t){return e.error=t,!0}}}};async function ON(e){let t={},n;for(;n=await e(),n!==!0;){if(n===null)continue;n=n.toString(`utf8`).replace(/\n$/,``);let e=n.indexOf(`=`);if(e>-1){let r=n.slice(0,e);t[r]=n.slice(e+1)}else t[n]=!0}return{protocolVersion:2,capabilities2:t}}async function kN(e,{service:t}){let n=new Set,r=new Map,i=new Map,a=DN.streamReader(e),o=await a();for(;o===null;)o=await a();if(o===!0)throw new Tj;if(o.includes(`version 2`))return ON(a);if(o.toString(`utf8`).replace(/\n$/,``)!==`# service=${t}`)throw new Lj(`# service=${t}\\n`,o.toString(`utf8`));let s=await a();for(;s===null;)s=await a();if(s===!0)return{capabilities:n,refs:r,symrefs:i};if(s=s.toString(`utf8`),s.includes(`version 2`))return ON(a);let[c,l]=AN(s,`\0`,`\\x00`);if(l.split(` `).map(e=>n.add(e)),c!==`0000000000000000000000000000000000000000 capabilities^{}`){let[e,t]=AN(c,` `,` `);for(r.set(t,e);;){let e=await a();if(e===!0)break;if(e!==null){let[t,n]=AN(e.toString(`utf8`),` `,` `);r.set(n,t)}}}for(let e of n)if(e.startsWith(`symref=`)){let t=e.match(/symref=([^:]+):(.*)/);t.length===3&&i.set(t[1],t[2])}return{protocolVersion:1,capabilities:n,refs:r,symrefs:i}}function AN(e,t,n){let r=e.trim().split(t);if(r.length!==2)throw new Lj(`Two strings separated by '${n}'`,e.toString(`utf8`));return r}const jN=(e,t)=>e.endsWith(`?`)?`${e}${t}`:`${e}/${t.replace(/^https?:\/\//,``)}`,MN=(e,t)=>{(t.username||t.password)&&(e.Authorization=SN(t)),t.headers&&Object.assign(e,t.headers)},NN=async e=>{try{let t=Buffer.from(await wN(e.body)),n=t.toString(`utf8`);return{preview:n.length<256?n:n.slice(0,256)+`...`,response:n,data:t}}catch{return{}}};var PN=class{static async capabilities(){return[`discover`,`connect`]}static async discover({http:e,onProgress:t,onAuth:n,onAuthSuccess:r,onAuthFailure:i,corsProxy:a,service:o,url:s,headers:c,protocolVersion:l}){let{url:u,auth:d}=TN(s),f=a?jN(a,u):u;(d.username||d.password)&&(c.Authorization=SN(d)),l===2&&(c[`Git-Protocol`]=`version=2`);let p,m,h=!1;do if(p=await e.request({onProgress:t,method:`GET`,url:`${f}/info/refs?service=${o}`,headers:c}),m=!1,p.statusCode===401||p.statusCode===203){let e=h?i:n;if(e){if(d=await e(u,{...d,headers:{...c}}),d&&d.cancel)throw new Uj;d&&(MN(c,d),h=!0,m=!0)}}else p.statusCode===200&&h&&r&&await r(u,d);while(m);if(p.statusCode!==200){let{response:e}=await NN(p);throw new Oj(p.statusCode,p.statusMessage,e)}if(p.headers[`content-type`]===`application/x-${o}-advertisement`){let e=await kN(p.body,{service:o});return e.auth=d,e}else{let{preview:e,response:t,data:n}=await NN(p);try{let e=await kN([n],{service:o});return e.auth=d,e}catch{throw new Bj(e,t)}}}static async connect({http:e,onProgress:t,corsProxy:n,service:r,url:i,auth:a,body:o,headers:s}){let c=TN(i);c&&(i=c.url),n&&(i=jN(n,i)),s[`content-type`]=`application/x-${r}-request`,s.accept=`application/x-${r}-result`,MN(s,a);let l=await e.request({onProgress:t,method:`POST`,url:`${i}/${r}`,body:o,headers:s});if(l.statusCode!==200){let{response:e}=NN(l);throw new Oj(l.statusCode,l.statusMessage,e)}return l}},FN=class{static getRemoteHelperFor({url:e}){let t=new Map;t.set(`http`,PN),t.set(`https`,PN);let n=IN({url:e});if(!n)throw new Hj(e);if(t.has(n.transport))return t.get(n.transport);throw new Vj(e,n.transport,n.transport===`ssh`?xN(e):void 0)}};function IN({url:e}){if(e.startsWith(`git@`))return{transport:`ssh`,address:e};let t=e.match(/(\w+)(:\/\/|::)(.*)/);if(t!==null){if(t[2]===`://`)return{transport:t[1],address:t[0]};if(t[2]===`::`)return{transport:t[1],address:t[3]}}}let LN=null;var RN=class{static async read({fs:e,gitdir:t}){LN===null&&(LN=new yk.default);let n=Y(t,`shallow`),r=new Set;return await LN.acquire(n,async function(){let t=await e.read(n,{encoding:`utf8`});if(t===null||t.trim()===``)return r;t.trim().split(`
4483
4483
  `).map(e=>r.add(e))}),r}static async write({fs:e,gitdir:t,oids:n}){LN===null&&(LN=new yk.default);let r=Y(t,`shallow`);if(n.size>0){let t=[...n].join(`
4484
4484
  `)+`
4485
- `;await LN.acquire(r,async function(){await e.write(r,t,{encoding:`utf8`})})}else await LN.acquire(r,async function(){await e.rm(r)})}};async function zN({fs:e,gitdir:t,oid:n}){let r=`objects/${n.slice(0,2)}/${n.slice(2)}`;return e.exists(`${t}/${r}`)}async function BN({fs:e,cache:t,gitdir:n,oid:r,getExternalRefDelta:i}){let a=await e.readdir(Y(n,`objects/pack`));a=a.filter(e=>e.endsWith(`.idx`));for(let o of a){let a=await hj({fs:e,cache:t,filename:`${n}/objects/pack/${o}`,getExternalRefDelta:i});if(a.error)throw new kk(a.error);if(a.offsets.has(r))return!0}return!1}async function VN({fs:e,cache:t,gitdir:n,oid:r,format:i=`content`}){let a=r=>vj({fs:e,cache:t,gitdir:n,oid:r}),o=await zN({fs:e,gitdir:n,oid:r});return o||=await BN({fs:e,cache:t,gitdir:n,oid:r,getExternalRefDelta:a}),o}function HN({config:e,onAuth:t}){return t&&(async(n,r)=>{let i=r.username||await e.get(`credential.${n}.username`);return t(n,i?{...r,username:i}:r)})}function UN(e){return e.slice(0,12).toString(`hex`)===`5041434b0000000200000000`}function WN(e,t){let n=e.map(e=>e.split(`=`,1)[0]);return t.filter(e=>{let t=e.split(`=`,1)[0];return n.includes(t)})}const GN={name:`isomorphic-git`,version:`1.38.8`,agent:`git/isomorphic-git@1.38.8`};var KN=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error(`You cannot write to a FIFO that has already been ended!`);if(this._waiting){let t=this._waiting;this._waiting=null,t({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error(`You cannot call read until the previous call to read has returned!`);return new Promise(e=>{this._waiting=e})}};function qN(e){let t=e.indexOf(`\r`),n=e.indexOf(`
4485
+ `;await LN.acquire(r,async function(){await e.write(r,t,{encoding:`utf8`})})}else await LN.acquire(r,async function(){await e.rm(r)})}};async function zN({fs:e,gitdir:t,oid:n}){let r=`objects/${n.slice(0,2)}/${n.slice(2)}`;return e.exists(`${t}/${r}`)}async function BN({fs:e,cache:t,gitdir:n,oid:r,getExternalRefDelta:i}){let a=await e.readdir(Y(n,`objects/pack`));a=a.filter(e=>e.endsWith(`.idx`));for(let o of a){let a=await hj({fs:e,cache:t,filename:`${n}/objects/pack/${o}`,getExternalRefDelta:i});if(a.error)throw new kk(a.error);if(a.offsets.has(r))return!0}return!1}async function VN({fs:e,cache:t,gitdir:n,oid:r,format:i=`content`}){let a=r=>vj({fs:e,cache:t,gitdir:n,oid:r}),o=await zN({fs:e,gitdir:n,oid:r});return o||=await BN({fs:e,cache:t,gitdir:n,oid:r,getExternalRefDelta:a}),o}function HN({config:e,onAuth:t}){return t&&(async(n,r)=>{let i=r.username||await e.get(`credential.${n}.username`);return t(n,i?{...r,username:i}:r)})}function UN(e){return e.slice(0,12).toString(`hex`)===`5041434b0000000200000000`}function WN(e,t){let n=e.map(e=>e.split(`=`,1)[0]);return t.filter(e=>{let t=e.split(`=`,1)[0];return n.includes(t)})}const GN={name:`isomorphic-git`,version:`1.38.9`,agent:`git/isomorphic-git@1.38.9`};var KN=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error(`You cannot write to a FIFO that has already been ended!`);if(this._waiting){let t=this._waiting;this._waiting=null,t({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error(`You cannot call read until the previous call to read has returned!`);return new Promise(e=>{this._waiting=e})}};function qN(e){let t=e.indexOf(`\r`),n=e.indexOf(`
4486
4486
  `);return t===-1&&n===-1?-1:t===-1?n+1:n===-1?t+1:n===t+1?n+1:Math.min(t,n)+1}function JN(e){let t=new KN,n=``;return(async()=>{await CN(e,e=>{for(e=e.toString(`utf8`),n+=e;;){let e=qN(n);if(e===-1)break;t.write(n.slice(0,e)),n=n.slice(e)}}),n.length>0&&t.write(n),t.end()})(),t}var YN=class{static demux(e){let t=DN.streamReader(e),n=new KN,r=new KN,i=new KN,a=async function(){let o=await t();if(o===null)return a();if(o===!0){n.end(),i.end(),e.error?r.destroy(e.error):r.end();return}switch(o[0]){case 1:r.write(o.slice(1));break;case 2:i.write(o.slice(1));break;case 3:{let e=o.slice(1);i.write(e),n.end(),i.end(),r.destroy(Error(e.toString(`utf8`)));return}default:n.write(o)}a()};return a(),{packetlines:n,packfile:r,progress:i}}};async function XN(e){let{packetlines:t,packfile:n,progress:r}=YN.demux(e),i=[],a=[],o=[],s=!1,c=!1;return new Promise((l,u)=>{CN(t,t=>{let d=t.toString(`utf8`).trim();if(d.startsWith(`shallow`)){let e=d.slice(-41).trim();e.length!==40&&u(new lA(e)),i.push(e)}else if(d.startsWith(`unshallow`)){let e=d.slice(-41).trim();e.length!==40&&u(new lA(e)),a.push(e)}else if(d.startsWith(`ACK`)){let[,e,t]=d.split(` `);o.push({oid:e,status:t}),t||(c=!0)}else d.startsWith(`NAK`)?(s=!0,c=!0):(c=!0,s=!0);c&&(e.error?u(e.error):l({shallows:i,unshallows:a,acks:o,nak:s,packfile:n,progress:r}))}).finally(()=>{c||(e.error?u(e.error):l({shallows:i,unshallows:a,acks:o,nak:s,packfile:n,progress:r}))})})}function ZN({capabilities:e=[],wants:t=[],haves:n=[],shallows:r=[],depth:i=null,since:a=null,exclude:o=[]}){let s=[];t=[...new Set(t)];let c=` ${e.join(` `)}`;for(let e of t)s.push(DN.encode(`want ${e}${c}\n`)),c=``;for(let e of r)s.push(DN.encode(`shallow ${e}\n`));i!==null&&s.push(DN.encode(`deepen ${i}\n`)),a!==null&&s.push(DN.encode(`deepen-since ${Math.floor(a.valueOf()/1e3)}\n`));for(let e of o)s.push(DN.encode(`deepen-not ${e}\n`));s.push(DN.flush());for(let e of n)s.push(DN.encode(`have ${e}\n`));return s.push(DN.encode(`done
4487
4487
  `)),s}async function QN({fs:e,cache:t,http:n,onProgress:r,onMessage:i,onAuth:a,onAuthSuccess:o,onAuthFailure:s,gitdir:c,ref:l,remoteRef:u,remote:d,url:f,corsProxy:p,depth:m=null,since:h=null,exclude:g=[],relative:_=!1,tags:v=!1,singleBranch:y=!1,headers:b={},prune:x=!1,pruneTags:S=!1}){let C=l||await bN({fs:e,gitdir:c,test:!0}),w=await IA.get({fs:e,gitdir:c}),T=d||C&&await w.get(`branch.${C}.remote`)||`origin`,E=f||await w.get(`remote.${T}.url`);if(E===void 0)throw new Fj(`remote OR url`);let D=u||C&&await w.get(`branch.${C}.merge`)||l||`HEAD`;p===void 0&&(p=await w.get(`http.corsProxy`));let ee=FN.getRemoteHelperFor({url:E}),O=await ee.discover({http:n,onAuth:HN({config:w,onAuth:a}),onAuthSuccess:o,onAuthFailure:HN({config:w,onAuth:s}),corsProxy:p,service:`git-upload-pack`,url:E,headers:b,protocolVersion:1}),te=O.auth,ne=O.refs;if(ne.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(m!==null&&!O.capabilities.has(`shallow`))throw new zj(`shallow`,`depth`);if(h!==null&&!O.capabilities.has(`deepen-since`))throw new zj(`deepen-since`,`since`);if(g.length>0&&!O.capabilities.has(`deepen-not`))throw new zj(`deepen-not`,`exclude`);if(_===!0&&!O.capabilities.has(`deepen-relative`))throw new zj(`deepen-relative`,`relative`);let{oid:k,fullref:A}=X.resolveAgainstMap({ref:D,map:ne});for(let e of ne.keys())e===A||e===`HEAD`||e.startsWith(`refs/heads/`)||v&&e.startsWith(`refs/tags/`)||ne.delete(e);let re=WN([...O.capabilities],[`multi_ack_detailed`,`no-done`,`side-band-64k`,`ofs-delta`,`agent=${GN.agent}`]);_&&re.push(`deepen-relative`);let ie=y?[k]:ne.values(),ae=y?[C]:await X.listRefs({fs:e,gitdir:c,filepath:`refs`}),oe=[];for(let n of ae)try{n=await X.expand({fs:e,gitdir:c,ref:n});let r=await X.resolve({fs:e,gitdir:c,ref:n});await VN({fs:e,cache:t,gitdir:c,oid:r})&&oe.push(r)}catch{}oe=[...new Set(oe)];let se=await RN.read({fs:e,gitdir:c}),ce=O.capabilities.has(`shallow`)?[...se]:[],le=ZN({capabilities:re,wants:ie,haves:oe,shallows:ce,depth:m,since:h,exclude:g}),ue=Buffer.from(await wN(le)),de=await ee.connect({http:n,onProgress:r,corsProxy:p,service:`git-upload-pack`,url:E,auth:te,body:[ue],headers:b}),j=await XN(de.body);de.headers&&(j.headers=de.headers);for(let n of j.shallows)if(!se.has(n))try{let{object:r}=await vj({fs:e,cache:t,gitdir:c,oid:n}),i=new rM(r),a=await Promise.all(i.headers().parent.map(n=>VN({fs:e,cache:t,gitdir:c,oid:n})));a.length===0||a.every(e=>e)||se.add(n)}catch{se.add(n)}for(let e of j.unshallows)se.delete(e);if(await RN.write({fs:e,gitdir:c,oids:se}),y){let t=new Map([[A,k]]),n=new Map,r=10,i=A;for(;r--;){let e=O.symrefs.get(i);if(e===void 0)break;n.set(i,e),i=e}let a=ne.get(i);a&&t.set(i,a);let{pruned:o}=await X.updateRemoteRefs({fs:e,gitdir:c,remote:T,refs:t,symrefs:n,tags:v,prune:x});x&&(j.pruned=o)}else{let{pruned:t}=await X.updateRemoteRefs({fs:e,gitdir:c,remote:T,refs:ne,symrefs:O.symrefs,tags:v,prune:x,pruneTags:S});x&&(j.pruned=t)}if(j.HEAD=O.symrefs.get(`HEAD`),j.HEAD===void 0){let{oid:e}=X.resolveAgainstMap({ref:`HEAD`,map:ne});for(let[t,n]of ne.entries())if(t!==`HEAD`&&n===e){j.HEAD=t;break}}j.FETCH_HEAD={oid:k,description:`${A.startsWith(`refs/tags`)?`tag`:`branch`} '${yN(A)}' of ${E}`},(r||i)&&CN(JN(j.progress),async e=>{if(i&&await i(e),r){let t=e.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);t&&await r({phase:t[1].trim(),loaded:parseInt(t[2],10),total:parseInt(t[3],10)})}});let M=Buffer.from(await wN(j.packfile));if(de.body.error)throw de.body.error;let fe=M.slice(-20).toString(`hex`),pe={defaultBranch:j.HEAD,fetchHead:j.FETCH_HEAD.oid,fetchHeadDescription:j.FETCH_HEAD.description};if(j.headers&&(pe.headers=j.headers),x&&(pe.pruned=j.pruned),fe!==``&&!UN(M)){pe.packfile=`objects/pack/pack-${fe}.pack`;let n=Y(c,pe.packfile);await e.write(n,M);let i=await fj.fromPack({pack:M,getExternalRefDelta:n=>vj({fs:e,cache:t,gitdir:c,oid:n}),onProgress:r});await e.write(n.replace(/\.pack$/,`.idx`),await i.toBuffer())}return pe}async function $N({fs:e,bare:t=!1,dir:n,gitdir:r=t?n:Y(n,`.git`),defaultBranch:i=`master`}){if(await e.exists(r+`/config`))return;let a=[`hooks`,`info`,`objects/info`,`objects/pack`,`refs/heads`,`refs/tags`];a=a.map(e=>r+`/`+e);for(let t of a)await e.mkdir(t);await e.write(r+`/config`,`[core]
4488
4488
  repositoryformatversion = 0
@@ -5706,7 +5706,7 @@ Examples:
5706
5706
  skill list
5707
5707
  skill info bluebubbles
5708
5708
  skill read bluebubbles
5709
- `,stderr:``,exitCode:0};let r=t[0],i=await import(`./skills-CXHWfQwA.js`).then(e=>e.t);try{switch(r){case`list`:{let t=await i.discoverSkills(e);return t.length===0?{stdout:`No discoverable skills found.\n\n${QZ()}Install skills with: upskill owner/repo --all\n`,stderr:``,exitCode:0}:{stdout:eQ(t,`Discoverable skills`),stderr:``,exitCode:0}}case`info`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: info requires a skill name
5709
+ `,stderr:``,exitCode:0};let r=t[0],i=await import(`./skills-B6K9VVT7.js`).then(e=>e.t);try{switch(r){case`list`:{let t=await i.discoverSkills(e);return t.length===0?{stdout:`No discoverable skills found.\n\n${QZ()}Install skills with: upskill owner/repo --all\n`,stderr:``,exitCode:0}:{stdout:eQ(t,`Discoverable skills`),stderr:``,exitCode:0}}case`info`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: info requires a skill name
5710
5710
  `,exitCode:1};let r=await i.getSkillInfo(e,n);return r?{stdout:tQ(r),stderr:``,exitCode:0}:{stdout:``,stderr:`skill: "${n}" not found\n`,exitCode:1}}case`read`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: read requires a skill name
5711
5711
  `,exitCode:1};let r=await i.readSkillInstructions(e,n);return r===null?{stdout:``,stderr:`skill: no SKILL.md found for "${n}"\n`,exitCode:1}:{stdout:r+`
5712
5712
  `,stderr:``,exitCode:0}}default:return{stdout:``,stderr:`skill: unknown command "${r}"\n`,exitCode:1}}}catch(e){return{stdout:``,stderr:`skill: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}})}async function iQ(e,t){let n=`${qX}/experimental/search?q=${encodeURIComponent(e)}&contentType=skills&page%5Bsize%5D=20`,r;try{r=await t(n,{headers:{Accept:`application/json`}})}catch(e){throw Error(uZ(e,n))}if(r.status!==200)throw Error(`Tessl returned HTTP ${r.status}`);let i=de(r.body);if(!i.data)return[];let a=new Map;for(let e of i.data){if(e.type!==`skill`)continue;let t=e.attributes,n=DZ(t.sourceUrl),r=n?`${n.owner}/${n.repo}`:void 0,i=t.scores.aggregate==null?null:Math.round(t.scores.aggregate*100),o=t.sourceUrl||e.id,s=a.get(o);if(s&&s.qualityScore!=null&&i!=null&&s.qualityScore>=i)continue;let c=t.path.replace(/\/SKILL\.md$/i,``),l=c.split(`/`).pop()||t.name,u=n?`upskill ${n.owner}/${n.repo} --path ${c.split(`/`).slice(0,-1).join(`/`)||`.`} --skill ${l}`:`upskill tessl:${t.name}`;a.set(o,{name:t.name,displayName:t.name,summary:t.description||``,source:`tessl`,qualityScore:i,installHint:u,featured:t.featured,sourceRepo:r})}return Array.from(a.values())}async function aQ(e,t){let n=`${qX}/experimental/search?q=${encodeURIComponent(e)}&contentType=skills&page%5Bsize%5D=5`,r;try{r=await t(n,{headers:{Accept:`application/json`}})}catch(e){return{error:`Tessl search failed: ${uZ(e,n)}`}}if(r.status!==200)return{error:`Tessl search failed (HTTP ${r.status})`};let i=de(r.body).data?.find(t=>t.type===`skill`&&t.attributes.name===e);if(!i)return{error:`skill "${e}" not found on Tessl registry`};let a=DZ(i.attributes.sourceUrl);if(!a)return{error:`skill "${e}" has no GitHub source URL`};let o=i.attributes.path.replace(/\/SKILL\.md$/i,``);return{owner:a.owner,repo:a.repo,skillPath:o,skillName:e}}const oQ=[{label:`Tessl`,host:new URL(qX).host,fetch:iQ},{label:`browse.sh`,host:new URL(JX).host,fetch:WZ}];function sQ(e){let t=[],n=e.reduce((e,t)=>Math.max(e,t.length),0);for(let r=0;r<n;r++)for(let n of e)r<n.length&&t.push(n[r]);return t}async function cQ(e,t,n=1){let r=await Promise.allSettled(oQ.map(n=>n.fetch(e,t))),i=r.map(e=>e.status===`fulfilled`?e.value:[]),a=r.every(e=>e.status===`rejected`),o=sQ(i),s=``;for(let e=0;e<r.length;e++){let t=r[e];if(t.status===`rejected`){let n=oQ[e],r=t.reason instanceof Error?t.reason.message:String(t.reason);s+=`warning: ${n.label} registry unavailable (${n.host}): ${r}\n`}}if(o.length===0){let t=a?`${s}upskill: registries failed to respond\n`:s;return{stdout:`No skills found for "${e}"\n\nTry a different search term or browse the registries at https://tessl.io/registry or https://browse.sh\n`,stderr:t,exitCode:+!!a}}let c=o.length,l=Math.ceil(c/10),u=Math.max(1,Math.min(n,l)),d=(u-1)*10,f=o.slice(d,d+10),p=`Search results for "${e}" (page ${u}/${l}, ${c} total):\n\n`;for(let e of f){let t=e.qualityScore==null?` `:String(e.qualityScore).padStart(3),n=`[${e.source}]`,r=e.sourceRepo?` ${e.sourceRepo}`:``;p+=` ${e.name.padEnd(30)} ${t} ${n.padEnd(10)}${r}\n`,e.summary&&(p+=` ${e.summary}\n`),p+=`
@@ -5732,7 +5732,7 @@ Examples:
5732
5732
  `,{stdout:s,stderr:``,exitCode:0}}function hQ(e){return!e||e.startsWith(`-`)?{stdout:``,stderr:`upskill: --branch requires a value
5733
5733
  `,exitCode:1}:ot(e)?null:{stdout:``,stderr:`upskill: --branch must be a git ref of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", trailing "/" or ".lock", or shell metacharacters
5734
5734
  `,exitCode:1}}function gQ(e){let t={selectedSkills:[],listOnly:!1,installAll:!1,force:!1,sourceRef:``},n=0;for(;n<e.length;){let r=e[n];if(r===`--skill`)t.selectedSkills.push(e[++n]);else if(r===`--path`||r===`-p`){let r=e[++n];if(typeof r!=`string`||!lt(r))return t.earlyReturn={stdout:``,stderr:`upskill: --path must be a repo-relative sub-path of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", or shell metacharacters
5735
- `,exitCode:1},t;t.subPath=r}else if(r===`--list`)t.listOnly=!0;else if(r===`--all`)t.installAll=!0;else if(r===`--force`)t.force=!0;else if(r===`--branch`||r===`-b`){let r=hQ(e[n+1]);if(r)return t.earlyReturn=r,t;t.branch=e[++n]}else r.startsWith(`-`)||(t.sourceRef=r);n++}return t}async function _Q(e){let t=await(await import(`./skills-CXHWfQwA.js`).then(e=>e.t)).discoverSkills(e);return t.length===0?{stdout:`No discoverable local skills found.\n\n${QZ()}`,stderr:``,exitCode:0}:{stdout:eQ(t,`Discoverable local skills`),stderr:``,exitCode:0}}async function vQ(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./skills-CXHWfQwA.js`).then(e=>e.t);if(e===`info`){let e=await r.getSkillInfo(n,t);return e?{stdout:tQ(e),stderr:``,exitCode:0}:{stdout:``,stderr:`upskill: skill "${t}" not found\n`,exitCode:1}}let i=await r.readSkillInstructions(n,t);return i===null?{stdout:``,stderr:`upskill: no SKILL.md found for "${t}"\n`,exitCode:1}:{stdout:i+`
5735
+ `,exitCode:1},t;t.subPath=r}else if(r===`--list`)t.listOnly=!0;else if(r===`--all`)t.installAll=!0;else if(r===`--force`)t.force=!0;else if(r===`--branch`||r===`-b`){let r=hQ(e[n+1]);if(r)return t.earlyReturn=r,t;t.branch=e[++n]}else r.startsWith(`-`)||(t.sourceRef=r);n++}return t}async function _Q(e){let t=await(await import(`./skills-B6K9VVT7.js`).then(e=>e.t)).discoverSkills(e);return t.length===0?{stdout:`No discoverable local skills found.\n\n${QZ()}`,stderr:``,exitCode:0}:{stdout:eQ(t,`Discoverable local skills`),stderr:``,exitCode:0}}async function vQ(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./skills-B6K9VVT7.js`).then(e=>e.t);if(e===`info`){let e=await r.getSkillInfo(n,t);return e?{stdout:tQ(e),stderr:``,exitCode:0}:{stdout:``,stderr:`upskill: skill "${t}" not found\n`,exitCode:1}}let i=await r.readSkillInstructions(n,t);return i===null?{stdout:``,stderr:`upskill: no SKILL.md found for "${t}"\n`,exitCode:1}:{stdout:i+`
5736
5736
  `,stderr:``,exitCode:0}}async function yQ(e,t,n,r,i,a,o){let s=``,c=``,l=0,u=e.length;for(let d=0;d<e.length;d++){let f=e[d],p=await bZ(f.path,f.name,r,i,a),m=d+1,h=((Date.now()-o)/1e3).toFixed(1),g=(Date.now()-o)/m,_=m<u?` (~${Math.round((u-m)*g/1e3)}s remaining)`:``;p.ok?(s+=`[${m}/${u}] Installed "${f.name}" from ${t}/${n} (${h}s)${_}\n`,l++):(s+=`[${m}/${u}] Failed "${f.name}": ${p.error}${_}\n`,c+=`upskill: ${p.error}\n`)}return{output:s,errors:c,successCount:l}}async function bQ(e,t,n,r,i,a,o,s){let c=``,l=``,u=0,d=e.length;for(let f=0;f<e.length;f++){let p=e[f],m=await kZ(t,n,p.path,p.name,i,r,a,void 0,o),h=f+1,g=((Date.now()-s)/1e3).toFixed(1),_=(Date.now()-s)/h,v=h<d?` (~${Math.round((d-h)*_/1e3)}s remaining)`:``;m.exitCode===0?(c+=`[${h}/${d}] Installed "${p.name}" from ${t}/${n} (${g}s)${v}\n`,u++):(c+=`[${h}/${d}] Failed "${p.name}": ${m.stderr.trim()}${v}\n`,l+=m.stderr)}return{output:c,errors:l,successCount:u}}async function xQ(e,t,n,r,i,a,o,s){let c=``,l=``,u=0;for(let d of e){let e=await kZ(t,n,d.path,d.name,i,r,a,o,s);e.exitCode===0?(c+=e.stdout,u++):l+=e.stderr}return{output:c,errors:l,successCount:u}}function SQ(e,t,n){let r=`Available skills in ${t}/${n}:\n\n`;for(let t of e)r+=` ${t.name.padEnd(30)} ${t.path}\n`;return r+=`\nFound ${e.length} skill(s)\n`,r}async function CQ(e,t,n,r){let{owner:i,repo:a}=e,o=t.branch??e.branch,s=t.subPath??e.path,c=await hZ(r),l=await OZ(i,a,c,s,r,o);if(l.error)return{stdout:``,stderr:`upskill: failed to list skills: ${l.error}\n`,exitCode:1};if(l.skills.length===0)return{stdout:`No skills found in ${i}/${a}${s?`/`+s:``}\n`,stderr:``,exitCode:0};if(t.listOnly)return{stdout:SQ(l.skills,i,a)+`\nTo install: upskill ${t.sourceRef} --skill <name>\nTo install all: upskill ${t.sourceRef} --all\n`,stderr:``,exitCode:0};let u=l.skills;if(t.selectedSkills.length>0){u=l.skills.filter(e=>t.selectedSkills.includes(e.name));for(let e of t.selectedSkills)if(!l.skills.find(t=>t.name===e))return{stdout:``,stderr:`upskill: skill "${e}" not found in ${i}/${a}\n`,exitCode:1}}else if(!t.installAll)return{stdout:SQ(l.skills,i,a)+`\nTo install specific skills: upskill ${t.sourceRef} --skill <name>\nTo install all: upskill ${t.sourceRef} --all\n`,stderr:``,exitCode:0};let d=u.length,f=Date.now(),p=``,m=``,h=0;if(d>1){let e=await CZ(i,a,r,o);if(e.status===`ok`){let r=await yQ(u,i,a,wZ(e.files),n,t.force,f);({output:p,errors:m,successCount:h}=r)}else{let e=await bQ(u,i,a,c,n,t.force,o,f);({output:p,errors:m,successCount:h}=e)}}else({output:p,errors:m,successCount:h}=await xQ(u,i,a,c,n,t.force,r,o));let g=((Date.now()-f)/1e3).toFixed(1);return h>0&&(p+=`\nInstalled ${h} skill(s)${d>1?` in ${g}s`:``}\n`,await yZ()),{stdout:p,stderr:m,exitCode:+!!m}}function wQ(e,t,n){return B(`upskill`,async(r,i)=>{if(r.length===0||r.includes(`--help`)||r.includes(`-h`))return nQ();if(r[0]===`tabs`)return pQ(e,t,n,r.includes(`--json`));if(r[0]===`recommendations`)return mQ(e,t,r.includes(`--install`));if(r[0]===`list`)return _Q(e);if(r[0]===`info`||r[0]===`read`)return vQ(r[0],r[1],e);if(r[0]===`search`)return TQ(r,t);let a=gQ(r);if(a.earlyReturn)return a.earlyReturn;if(!a.sourceRef)return nQ();if(a.sourceRef.startsWith(`tessl:`))return EQ(a.sourceRef,a.force,e,t);let o=qZ(a.sourceRef);if(o)return ZZ(o.hostname,o.task,e,t,a.force);let s=AZ(a.sourceRef);return s?CQ(s,a,e,t):{stdout:``,stderr:`upskill: unrecognized source "${a.sourceRef}"\n\nExpected: owner/repo, tessl:<name>, or browse:<hostname>/<task>\n`,exitCode:1}})}async function TQ(e,t){let n=[...e.slice(1)],r=n.indexOf(`--page`),i=1;r>=0&&(i=parseInt(n[r+1],10)||1,n.splice(r,2));let a=n.join(` `);return a?cQ(a,t,i):nQ()}async function EQ(e,t,n,r){let i=e.slice(6);if(!i)return{stdout:``,stderr:`upskill: tessl: requires a skill name
5737
5737
  `,exitCode:1};let a=await aQ(i,r);if(`error`in a)return{stdout:``,stderr:`upskill: ${a.error}\n`,exitCode:1};let o=await hZ(r);return kZ(a.owner,a.repo,a.skillPath,a.skillName,n,o,t,r)}function DQ(){return{stdout:`usage: afplay [-v volume] [-r rate] <file>
5738
5738
 
@@ -6972,7 +6972,7 @@ Common base URLs:
6972
6972
  llama.cpp http://localhost:8080/v1
6973
6973
  vLLM http://localhost:8000/v1
6974
6974
  Jan http://localhost:1337/v1
6975
- `}function Nie(){return B(C5,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Mie(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./provider-settings-BM266pC2.js`),{verifyConnection:a}=await import(`./local-llm-DIIXr4Sd.js`).then(e=>e.n),o=e[0]??`status`;if(o!==`status`&&o!==`discover`)return{stdout:``,stderr:`Unknown subcommand: ${o}. See \`local-llm --help\`.\n`,exitCode:2};let s=r(C5);if(!s)return{stdout:``,stderr:`Local LLM is not configured. Open Settings → Providers → Local LLM and set a base URL.
6975
+ `}function Nie(){return B(C5,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Mie(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./provider-settings-BonXlQHx.js`),{verifyConnection:a}=await import(`./local-llm-Dq9HBaqe.js`).then(e=>e.n),o=e[0]??`status`;if(o!==`status`&&o!==`discover`)return{stdout:``,stderr:`Unknown subcommand: ${o}. See \`local-llm --help\`.\n`,exitCode:2};let s=r(C5);if(!s)return{stdout:``,stderr:`Local LLM is not configured. Open Settings → Providers → Local LLM and set a base URL.
6976
6976
  `,exitCode:1};let c=await a(s,t(C5)??void 0);if(!c.ok){let e=[`✗ Could not reach ${s}`,` runtime: ${c.runtime.kind}${c.runtime.version?` (${c.runtime.version})`:``}`,` error: ${c.error?.message??`unknown`}`];return c.error?.hint&&e.push(` hint: ${c.error.hint}`),{stdout:``,stderr:e.join(`
6977
6977
  `)+`
6978
6978
  `,exitCode:1}}if(o===`discover`){let e=n(C5)??``;return i(C5,e,s,c.models.join(`, `)),{stdout:[`✓ ${s} (${c.runtime.kind}${c.runtime.version?` ${c.runtime.version}`:``})`,` Saved ${c.models.length} model${c.models.length===1?``:`s`} to Settings:`,...c.models.map(e=>` • ${e}`)].join(`
@@ -7016,20 +7016,20 @@ authorization-code flow, stores the access token, and retries.
7016
7016
  On success, the server is persisted to /workspace/.mcp/servers.json and
7017
7017
  an alias shim is written to /workspace/.mcp/aliases/<name>.jsh so the
7018
7018
  short name resolves on the PATH.
7019
- `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return D5(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return D5(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_-]*$/.test(i))return D5(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-BOuq06bz.js`).then(e=>e.r);if(await a(i,t.fs))return D5(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BliYDaDA.js`).then(e=>e.n),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await Bie(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>j5(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await oae(i,t);let m=await P5(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-cmv38jfU.js`);e({name:i,serverUrl:r,auth:u})}return E5([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${T5}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
7019
+ `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return D5(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return D5(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_-]*$/.test(i))return D5(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r);if(await a(i,t.fs))return D5(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BliYDaDA.js`).then(e=>e.n),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await Bie(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>j5(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await oae(i,t);let m=await P5(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-dLnW_Qmu.js`);e({name:i,serverUrl:r,auth:u})}return E5([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${T5}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
7020
7020
  `)+`
7021
- `)}async function Bie(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-Czw-MuuR.js`),{saveOAuthAccount:s}=await import(`./provider-settings-BM266pC2.js`),c=await iae(r.oauthFetchImpl),l=r.oauthLauncher??await M5(),u=await i(e,n,c);w5.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await rae(),f=await a(u,d,c),p=u.supportedScopes&&u.supportedScopes.length>0?u.supportedScopes.join(` `):void 0,m=await o({asMetadata:u,clientId:f.clientId,scope:p,redirectUri:d,launcher:l,fetchImpl:c}),h=`mcp:${t}`;return await s({providerId:h,accessToken:m.accessToken,refreshToken:m.refreshToken,tokenExpiresAt:m.expiresAt}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function Vie(e,t){if(e.includes(`--help`)||e.includes(`-h`))return E5(`usage: mcp list
7022
- `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-cmv38jfU.js`);await n();let{listServers:r}=await import(`./store-BOuq06bz.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return E5("No MCP servers configured. Use `mcp add <url> <name>`.\n");let o=[[`NAME`,`URL`,`AUTH`,`TOOLS`,`APPS`,`ADDED`]];for(let e of a){let t=i[e];o.push([e,t.url,t.auth?`yes`:`no`,String(t.tools?.length??0),String(t.apps?.length??0),t.addedAt?t.addedAt.slice(0,10):`-`])}return E5(O5(o))}function O5(e){let t=e[0].map((t,n)=>e.reduce((e,t)=>Math.max(e,(t[n]??``).length),0));return e.map(e=>e.map((e,n)=>e.padEnd(t[n])).join(` `).trimEnd()).join(`
7021
+ `)}async function Bie(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-Czw-MuuR.js`),{saveOAuthAccount:s}=await import(`./provider-settings-BonXlQHx.js`),c=await iae(r.oauthFetchImpl),l=r.oauthLauncher??await M5(),u=await i(e,n,c);w5.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await rae(),f=await a(u,d,c),p=u.supportedScopes&&u.supportedScopes.length>0?u.supportedScopes.join(` `):void 0,m=await o({asMetadata:u,clientId:f.clientId,scope:p,redirectUri:d,launcher:l,fetchImpl:c}),h=`mcp:${t}`;return await s({providerId:h,accessToken:m.accessToken,refreshToken:m.refreshToken,tokenExpiresAt:m.expiresAt}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function Vie(e,t){if(e.includes(`--help`)||e.includes(`-h`))return E5(`usage: mcp list
7022
+ `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-dLnW_Qmu.js`);await n();let{listServers:r}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return E5("No MCP servers configured. Use `mcp add <url> <name>`.\n");let o=[[`NAME`,`URL`,`AUTH`,`TOOLS`,`APPS`,`ADDED`]];for(let e of a){let t=i[e];o.push([e,t.url,t.auth?`yes`:`no`,String(t.tools?.length??0),String(t.apps?.length??0),t.addedAt?t.addedAt.slice(0,10):`-`])}return E5(O5(o))}function O5(e){let t=e[0].map((t,n)=>e.reduce((e,t)=>Math.max(e,(t[n]??``).length),0));return e.map(e=>e.map((e,n)=>e.padEnd(t[n])).join(` `).trimEnd()).join(`
7023
7023
  `)+`
7024
7024
  `}async function Hie(e,t){if(e[0]===`--help`||e[0]===`-h`)return E5(`usage: mcp search <query>
7025
7025
 
7026
7026
  Case-insensitive substring search across the cached tools of every
7027
7027
  registered MCP server. Matches tool name OR description and prints a
7028
7028
  table of (server, tool, description, match-field) rows.
7029
- `);if(e.length===0)return D5(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-cmv38jfU.js`);await i();let{listServers:a}=await import(`./store-BOuq06bz.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return E5("No MCP servers configured. Use `mcp add <url> <name>`.\n");let c=[];for(let e of s){let t=o[e].tools??[];for(let n of t){let t=n.description??``,i=n.name.toLowerCase().includes(r),a=t.toLowerCase().includes(r);if(!i&&!a)continue;let o=i&&a?`name+description`:i?`name`:`description`;c.push({server:e,tool:n.name,description:t,match:o})}}if(c.length===0)return E5(`No tools matched "${n}".\n`);c.sort((e,t)=>e.server===t.server?e.tool.localeCompare(t.tool):e.server.localeCompare(t.server));let l=[[`SERVER`,`TOOL`,`DESCRIPTION`,`MATCH`]];for(let e of c)l.push([e.server,e.tool,Uie(e.description),e.match]);return E5(O5(l))}function Uie(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Wie(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?D5(`mcp delete: expected <name>`):E5(`usage: mcp delete <name>
7030
- `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-cmv38jfU.js`);await r(n);let{deleteServer:a}=await import(`./store-BOuq06bz.js`).then(e=>e.r),o=await a(n,t.fs);await sae(n,t),await cae(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await import(`./provider-settings-BM266pC2.js`);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){w5.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?D5(`mcp delete: no server, alias, or account found for "${n}"`):E5([`Removed MCP server "${n}"`,` servers.json: ${o?`removed`:`not present`}`,` alias: cleaned`,` sprinkles: cleaned`,` oauth: ${c?`removed`:`not present`}`,` provider: ${l?`unregistered`:`not registered`}`].join(`
7029
+ `);if(e.length===0)return D5(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-dLnW_Qmu.js`);await i();let{listServers:a}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return E5("No MCP servers configured. Use `mcp add <url> <name>`.\n");let c=[];for(let e of s){let t=o[e].tools??[];for(let n of t){let t=n.description??``,i=n.name.toLowerCase().includes(r),a=t.toLowerCase().includes(r);if(!i&&!a)continue;let o=i&&a?`name+description`:i?`name`:`description`;c.push({server:e,tool:n.name,description:t,match:o})}}if(c.length===0)return E5(`No tools matched "${n}".\n`);c.sort((e,t)=>e.server===t.server?e.tool.localeCompare(t.tool):e.server.localeCompare(t.server));let l=[[`SERVER`,`TOOL`,`DESCRIPTION`,`MATCH`]];for(let e of c)l.push([e.server,e.tool,Uie(e.description),e.match]);return E5(O5(l))}function Uie(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Wie(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?D5(`mcp delete: expected <name>`):E5(`usage: mcp delete <name>
7030
+ `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-dLnW_Qmu.js`);await r(n);let{deleteServer:a}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),o=await a(n,t.fs);await sae(n,t),await cae(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await import(`./provider-settings-BonXlQHx.js`);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){w5.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?D5(`mcp delete: no server, alias, or account found for "${n}"`):E5([`Removed MCP server "${n}"`,` servers.json: ${o?`removed`:`not present`}`,` alias: cleaned`,` sprinkles: cleaned`,` oauth: ${c?`removed`:`not present`}`,` provider: ${l?`unregistered`:`not registered`}`].join(`
7031
7031
  `)+`
7032
- `)}async function Gie(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?D5(`mcp invoke: expected <name>`):E5(qie());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-cmv38jfU.js`);await i(n);let{getServer:a}=await import(`./store-BOuq06bz.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return D5(`mcp invoke: unknown server "${n}" (run \`mcp add <url> ${n}\` first)`);let s=o.tools??[];if(r.length===0||r[0]===`--help`||r[0]===`-h`)return E5(Jie(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return D5(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=Kie(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return E5(Yie(n,l));let p=Xie(d,l.inputSchema);if(!p.ok)return D5(`mcp invoke: ${p.error}`);let{McpClient:m}=await import(`./client-BliYDaDA.js`).then(e=>e.n),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>j5(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=eae(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function Kie(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=k5(a.slice(10));e.ok?r=e.value:n.push(e.error),i+=1;continue}if(a===`--timeout`){let t=e[i+1];if(t===void 0||t.startsWith(`--`)){n.push(`mcp invoke: --timeout requires a value (got ${t===void 0?`nothing`:`"${t}"`}); using default.`),i+=1;continue}let a=k5(t);a.ok?r=a.value:n.push(a.error),i+=2;continue}t.push(a),i+=1}return{timeoutMs:r,remaining:t,warnings:n}}function k5(e){if(!/^-?\d+$/.test(e))return{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (expected positive integer seconds); using default.`};let t=Number(e);return!Number.isFinite(t)||t<1?{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (must be >= 1 second); using default.`}:{ok:!0,value:t*1e3}}function qie(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
7032
+ `)}async function Gie(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?D5(`mcp invoke: expected <name>`):E5(qie());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-dLnW_Qmu.js`);await i(n);let{getServer:a}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return D5(`mcp invoke: unknown server "${n}" (run \`mcp add <url> ${n}\` first)`);let s=o.tools??[];if(r.length===0||r[0]===`--help`||r[0]===`-h`)return E5(Jie(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return D5(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=Kie(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return E5(Yie(n,l));let p=Xie(d,l.inputSchema);if(!p.ok)return D5(`mcp invoke: ${p.error}`);let{McpClient:m}=await import(`./client-BliYDaDA.js`).then(e=>e.n),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>j5(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=eae(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function Kie(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=k5(a.slice(10));e.ok?r=e.value:n.push(e.error),i+=1;continue}if(a===`--timeout`){let t=e[i+1];if(t===void 0||t.startsWith(`--`)){n.push(`mcp invoke: --timeout requires a value (got ${t===void 0?`nothing`:`"${t}"`}); using default.`),i+=1;continue}let a=k5(t);a.ok?r=a.value:n.push(a.error),i+=2;continue}t.push(a),i+=1}return{timeoutMs:r,remaining:t,warnings:n}}function k5(e){if(!/^-?\d+$/.test(e))return{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (expected positive integer seconds); using default.`};let t=Number(e);return!Number.isFinite(t)||t<1?{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (must be >= 1 second); using default.`}:{ok:!0,value:t*1e3}}function qie(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
7033
7033
 
7034
7034
  mcp invoke <name> List tools on <name>.
7035
7035
  mcp invoke <name> <tool> --help Show flags for <tool>.
@@ -7059,7 +7059,7 @@ Arguments are coerced according to the tool's JSON Schema:
7059
7059
 
7060
7060
  Re-fetches the tool catalog and \`apps/list\` for <name>. Does NOT refresh
7061
7061
  OAuth tokens — for OAuth token refresh use \`mcp auth <name>\`.
7062
- `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-cmv38jfU.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-BOuq06bz.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return D5(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BliYDaDA.js`).then(e=>e.n),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>j5(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return D5(`mcp refresh: server "${n}" returned 401 — token may have expired. Run \`mcp auth ${n}\` to re-authenticate.`);throw e}let u=await l.toolsList(),d=await l.appsList();await a(n,{...o,sessionId:void 0,tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await P5(n,d,t);return E5(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function nae(e,t){if(e.includes(`--help`)||e.includes(`-h`))return E5(`usage: mcp auth <name> [--silent | --interactive]
7062
+ `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-dLnW_Qmu.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return D5(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BliYDaDA.js`).then(e=>e.n),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>j5(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return D5(`mcp refresh: server "${n}" returned 401 — token may have expired. Run \`mcp auth ${n}\` to re-authenticate.`);throw e}let u=await l.toolsList(),d=await l.appsList();await a(n,{...o,sessionId:void 0,tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await P5(n,d,t);return E5(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function nae(e,t){if(e.includes(`--help`)||e.includes(`-h`))return E5(`usage: mcp auth <name> [--silent | --interactive]
7063
7063
 
7064
7064
  Re-authenticate an existing MCP server. By default, attempts a silent
7065
7065
  token renewal using the persisted refresh_token; if that returns no
@@ -7071,7 +7071,7 @@ Options:
7071
7071
  -i, --interactive Skip silent renewal and open the OAuth popup
7072
7072
  directly. Use after revoking a refresh token or
7073
7073
  when the AS no longer accepts the cached one.
7074
- `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return D5(`mcp auth: expected <name>`);let r=n[0],i=e.includes(`--silent`)||e.includes(`-s`),a=e.includes(`--interactive`)||e.includes(`-i`);if(i&&a)return D5(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-cmv38jfU.js`),s=await o(r),{getServer:c}=await import(`./store-BOuq06bz.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return D5(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return D5(`mcp auth: server "${r}" does not use OAuth`);if(!s)return D5(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await import(`./providers-D4GdXkNa.js`).then(e=>e.r),f=d(u);if(!f)return D5(`mcp auth: provider "${u}" is not registered`);if(a)return await A5(r,f,t);if(!f.onSilentRenew)return i?D5(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await A5(r,f,t);let p=null;try{p=await f.onSilentRenew()}catch(e){let t=e instanceof Error?e.message:String(e);if(i)return D5(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);w5.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?E5(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?D5(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await A5(r,f,t)}async function A5(e,t,n){if(!t.onOAuthLogin)return D5(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await M5(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?E5(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):D5(`mcp auth: interactive login for "${e}" did not complete`)}async function j5(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await import(`./provider-settings-BM266pC2.js`),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await import(`./providers-D4GdXkNa.js`).then(e=>e.r),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){w5.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function M5(){let{createOAuthLauncher:e}=await import(`./oauth-service-foejPYvF.js`);return e()}async function rae(){if(le()){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}let{getOAuthPageOrigin:e}=await import(`./oauth-service-foejPYvF.js`),{origin:t}=await e();return`${t}/auth/callback`}async function iae(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-ldIfAeIb.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function N5(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-ReL7mas8.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DvmmimLY.js`).then(e=>e.n);return await t.create({dbName:n})}function aae(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
7074
+ `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return D5(`mcp auth: expected <name>`);let r=n[0],i=e.includes(`--silent`)||e.includes(`-s`),a=e.includes(`--interactive`)||e.includes(`-i`);if(i&&a)return D5(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-dLnW_Qmu.js`),s=await o(r),{getServer:c}=await import(`./store-Dpqwm0j1.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return D5(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return D5(`mcp auth: server "${r}" does not use OAuth`);if(!s)return D5(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await import(`./providers-BE5wq_hp.js`).then(e=>e.r),f=d(u);if(!f)return D5(`mcp auth: provider "${u}" is not registered`);if(a)return await A5(r,f,t);if(!f.onSilentRenew)return i?D5(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await A5(r,f,t);let p=null;try{p=await f.onSilentRenew()}catch(e){let t=e instanceof Error?e.message:String(e);if(i)return D5(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);w5.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?E5(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?D5(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await A5(r,f,t)}async function A5(e,t,n){if(!t.onOAuthLogin)return D5(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await M5(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?E5(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):D5(`mcp auth: interactive login for "${e}" did not complete`)}async function j5(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await import(`./provider-settings-BonXlQHx.js`),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await import(`./providers-BE5wq_hp.js`).then(e=>e.r),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){w5.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function M5(){let{createOAuthLauncher:e}=await import(`./oauth-service-foejPYvF.js`);return e()}async function rae(){if(le()){let e=chrome;return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime?.id??``}.chromiumapp.org/mcp-callback`}let{getOAuthPageOrigin:e}=await import(`./oauth-service-foejPYvF.js`),{origin:t}=await e();return`${t}/auth/callback`}async function iae(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-ldIfAeIb.js`).then(e=>e.o),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function N5(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-PoNPHaXB.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DvmmimLY.js`).then(e=>e.n);return await t.create({dbName:n})}function aae(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
7075
7075
  // Auto-generated by \`mcp add ${e}\`; do not edit by hand.
7076
7076
  const argv = Array.isArray(process.argv) ? process.argv.slice(2) : [];
7077
7077
  const escape = (s) => {
@@ -7085,7 +7085,7 @@ const r = await exec(cmd);
7085
7085
  if (r.stdout) process.stdout.write(r.stdout);
7086
7086
  if (r.stderr) process.stderr.write(r.stderr);
7087
7087
  process.exit(r.exitCode || 0);
7088
- `}async function oae(e,t){let n=await N5(t.fs);await n.mkdir(T5,{recursive:!0}),await n.writeFile(`${T5}/${e}.jsh`,aae(e)),t.scriptCatalog?.invalidateJsh()}async function sae(e,t){let n=await N5(t.fs),r=`${T5}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){w5.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function cae(e,t){let{removeAppSprinkles:n}=await import(`./apps-DagAQ_4L.js`);await n(e,t.fs)}async function P5(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-DagAQ_4L.js`);return(await r(e,t,n.fs)).length}catch(t){return w5.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const F5=`/.cache/artificial-analysis.json`;async function lae(e,t=!1){if(e&&!t)try{let t=await e.readFile(F5),n=JSON.parse(t);if(Date.now()-n.fetchedAt<864e5)return n.models}catch{}let n=null;try{n=localStorage.getItem(`aa_api_key`)}catch{}let r={Accept:`application/json`};n&&(r[`x-api-key`]=n);let i=_(),a;try{a=await i(`https://artificialanalysis.ai/api/v2/data/llms/models`,{method:`GET`,headers:r})}catch{return[]}if(a.status===401||a.status<200||a.status>=300)return[];let o;try{let e=new TextDecoder().decode(a.body);o=JSON.parse(e)}catch{return[]}let s=(Array.isArray(o)?o:o?.data??o?.models??[]).map(e=>({slug:e.slug??``,name:e.name??``,creator_slug:e.model_creator?.slug??``,intelligence_index:e.evaluations?.artificial_analysis_intelligence_index??null,coding_index:e.evaluations?.artificial_analysis_coding_index??null,speed_tps:e.median_output_tokens_per_second??null}));if(e&&s.length>0){let t={fetchedAt:Date.now(),models:s};try{await e.mkdir(`/.cache`,{recursive:!0}),await e.writeFile(F5,JSON.stringify(t))}catch{}}return s}function I5(e){return e.toLowerCase().replace(/\./g,`-`).replace(/-\d{8}$/,``).replace(/-\d{4}$/,``)}function uae(e,t){let n=e.toLowerCase(),r=t.find(e=>e.slug===n);if(r)return r;let i=I5(e),a=t.find(e=>I5(e.slug)===i);if(a)return a;let o=t.filter(e=>n.includes(e.slug)||e.slug.includes(n));if(o.length>0)return o.sort((e,t)=>t.slug.length-e.slug.length),o[0]}function dae(){return`models - list available LLM models
7088
+ `}async function oae(e,t){let n=await N5(t.fs);await n.mkdir(T5,{recursive:!0}),await n.writeFile(`${T5}/${e}.jsh`,aae(e)),t.scriptCatalog?.invalidateJsh()}async function sae(e,t){let n=await N5(t.fs),r=`${T5}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){w5.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function cae(e,t){let{removeAppSprinkles:n}=await import(`./apps-DJx3akpR.js`);await n(e,t.fs)}async function P5(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-DJx3akpR.js`);return(await r(e,t,n.fs)).length}catch(t){return w5.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const F5=`/.cache/artificial-analysis.json`;async function lae(e,t=!1){if(e&&!t)try{let t=await e.readFile(F5),n=JSON.parse(t);if(Date.now()-n.fetchedAt<864e5)return n.models}catch{}let n=null;try{n=localStorage.getItem(`aa_api_key`)}catch{}let r={Accept:`application/json`};n&&(r[`x-api-key`]=n);let i=_(),a;try{a=await i(`https://artificialanalysis.ai/api/v2/data/llms/models`,{method:`GET`,headers:r})}catch{return[]}if(a.status===401||a.status<200||a.status>=300)return[];let o;try{let e=new TextDecoder().decode(a.body);o=JSON.parse(e)}catch{return[]}let s=(Array.isArray(o)?o:o?.data??o?.models??[]).map(e=>({slug:e.slug??``,name:e.name??``,creator_slug:e.model_creator?.slug??``,intelligence_index:e.evaluations?.artificial_analysis_intelligence_index??null,coding_index:e.evaluations?.artificial_analysis_coding_index??null,speed_tps:e.median_output_tokens_per_second??null}));if(e&&s.length>0){let t={fetchedAt:Date.now(),models:s};try{await e.mkdir(`/.cache`,{recursive:!0}),await e.writeFile(F5,JSON.stringify(t))}catch{}}return s}function I5(e){return e.toLowerCase().replace(/\./g,`-`).replace(/-\d{8}$/,``).replace(/-\d{4}$/,``)}function uae(e,t){let n=e.toLowerCase(),r=t.find(e=>e.slug===n);if(r)return r;let i=I5(e),a=t.find(e=>I5(e.slug)===i);if(a)return a;let o=t.filter(e=>n.includes(e.slug)||e.slug.includes(n));if(o.length>0)return o.sort((e,t)=>t.slug.length-e.slug.length),o[0]}function dae(){return`models - list available LLM models
7089
7089
 
7090
7090
  Usage: models [options]
7091
7091
 
@@ -7099,7 +7099,7 @@ Options:
7099
7099
  -h, --help Show this help message
7100
7100
  `}function fae(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`.replace(`.0M`,`M`):e>=1e3?`${(e/1e3).toFixed(0)}K`:`${e}`}function L5(e){return`$${e.toFixed(2)}`}const pae=/\b(embedding|embed|tts|whisper|dall-e|image-gen|audio|vision-preview)\b/i;function mae(e){let t=`${e.id} ${e.name??``}`;return!pae.test(t)}function hae(e){let t=e.toLowerCase();t=t.replace(/-\d{8}$/,``),t=t.replace(/-\d{4}$/,``),t=t.replace(/-(preview|latest)$/,``);let n=t.match(/^(claude-(?:opus|sonnet|haiku))/);if(n)return n[1];let r=t.match(/^(gpt-\d+)(?:\.\d+)?(-[a-z][-a-z]*)?$/);if(r)return r[1]+(r[2]??``);let i=t.match(/^gemini-[\d.]+-(.+)$/);if(i)return`gemini-${i[1]}`;let a=t.match(/^gemini-(\d+)-(.+)$/);if(a)return`gemini-${a[2]}`;let o=t.match(/^grok-[\d.]+-([\w-]+)$/);if(o)return`grok-${o[1]}`;if(t.match(/^(grok)-[\d.]+$/))return`grok`;let s=t.match(/^(o\d+(?:-[a-z]+)?)(?:-\d.*)?$/);return s?s[1]:t.replace(/-[\d.]+$/,``)}function gae(e){let t=new Map;for(let n of e){let e=hae(n.id);(!t.has(e)||n.selected)&&t.set(e,n)}return[...t.values()]}function _ae(e,t,n,r,i){let a=i?uae(e.id,i):void 0,o={id:e.id,name:e.name,provider:t,cost:e.cost??{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:e.contextWindow??0,maxTokens:e.maxTokens??0,reasoning:!!e.reasoning,input:e.input??[`text`],selected:e.id===n&&t===r};return a?.intelligence_index!=null&&(o.intelligence=a.intelligence_index),a?.coding_index!=null&&(o.codingScore=a.coding_index),a?.speed_tps!=null&&(o.speed=a.speed_tps),o}function vae(e,t,n,r){let i=[];i.push(`Models for "${e}" (${t}):\n`);for(let e of n){let t=e.selected?` ► `:` `,n=e.id.padEnd(30),r=`${L5(e.cost.input)} / ${L5(e.cost.output)}`,a=`${fae(e.contextWindow)} ctx`,o=e.intelligence==null?``:`IQ:${e.intelligence}`,s=e.speed==null?``:`${Math.round(e.speed)} t/s`,c=e.reasoning?`reasoning`:``,l=o||s?`${o.padEnd(6)} ${s.padEnd(8)}`:``;i.push(`${t}${n} ${r.padEnd(16)} ${a.padEnd(10)} ${l} ${c}`)}return i.push(`\n ${n.length} model${n.length===1?``:`s`} available.`),r&&i.push(` Intelligence data: artificialanalysis.ai`),i.join(`
7101
7101
  `)+`
7102
- `}function yae(e){return B(`models`,async t=>{let{getAccounts:n,getAvailableProviders:r,getProviderConfig:i,getProviderModels:a,getSelectedProvider:o,getSelectedModelId:s,resolveCurrentModel:c}=await import(`./provider-settings-BM266pC2.js`);if(t.includes(`--help`)||t.includes(`-h`))return{stdout:dae(),stderr:``,exitCode:0};let l=t.includes(`--json`),u=t.includes(`--all`),d=t.includes(`--all-versions`),f=t.includes(`--refresh`),p=t.includes(`--no-benchmarks`),m=t.indexOf(`--provider`),h=m>=0?t[m+1]:void 0,g=o(),_=s(),v=n();if(v.length===0)return{stdout:``,stderr:`No provider accounts configured. Run the provider settings to add one.
7102
+ `}function yae(e){return B(`models`,async t=>{let{getAccounts:n,getAvailableProviders:r,getProviderConfig:i,getProviderModels:a,getSelectedProvider:o,getSelectedModelId:s,resolveCurrentModel:c}=await import(`./provider-settings-BonXlQHx.js`);if(t.includes(`--help`)||t.includes(`-h`))return{stdout:dae(),stderr:``,exitCode:0};let l=t.includes(`--json`),u=t.includes(`--all`),d=t.includes(`--all-versions`),f=t.includes(`--refresh`),p=t.includes(`--no-benchmarks`),m=t.indexOf(`--provider`),h=m>=0?t[m+1]:void 0,g=o(),_=s(),v=n();if(v.length===0)return{stdout:``,stderr:`No provider accounts configured. Run the provider settings to add one.
7103
7103
  `,exitCode:1};let y=c(),b=y.id,x=y.provider,S;p||(S=await lae(e,f),S.length===0&&(S=void 0));let C;if(h){let e=r();if(!e.includes(h))return{stdout:``,stderr:`Unknown provider: ${h}. Available: ${e.join(`, `)}\n`,exitCode:1};C=[h]}else C=u?[...new Set(v.map(e=>e.providerId))]:[g];let w=[],T=[];for(let e of C){let t=a(e).filter(mae);if(t.length===0){if(!u)return{stdout:``,stderr:`No models available for provider ${e}.\n`,exitCode:1};continue}let n=t.map(t=>_ae(t,e,b,x,S)).sort((e,t)=>t.cost.input-e.cost.input);if(d||(n=gae(n)),w.push(...n),!l){let t=i(e);T.push(vae(t.name,e,n,!!S))}}if(l)return{stdout:JSON.stringify(w,null,2)+`
7104
7104
  `,stderr:``,exitCode:0};!d&&!l&&T.push(`Showing latest versions only. Use --all-versions to see all.
7105
7105
  `);let E=`${x}:${b}`,D=`${g}:${_}`;return T.push(E===D?`Currently using: ${E}\n`:`Currently using: ${E} (selected ${D} — resolved to a different model)\n`),{stdout:T.join(`
@@ -7139,7 +7139,7 @@ Examples:
7139
7139
  oauth-domain add adobe '*.da.live'
7140
7140
  oauth-domain list adobe
7141
7141
  oauth-domain remove adobe admin.da.live
7142
- `}function Dae(){return B(`oauth-domain`,async e=>{if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return{stdout:R5(),stderr:``,exitCode:0};let{getExtraOAuthDomains:t,setExtraOAuthDomainsAsync:n,getAllExtraOAuthDomains:r}=await import(`./provider-settings-BM266pC2.js`),[i,a,o]=e;try{switch(i){case`list`:{if(a){let e=t(a);return e.length===0?{stdout:`(no extra domains configured for ${a})\n`,stderr:``,exitCode:0}:{stdout:e.join(`
7142
+ `}function Dae(){return B(`oauth-domain`,async e=>{if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return{stdout:R5(),stderr:``,exitCode:0};let{getExtraOAuthDomains:t,setExtraOAuthDomainsAsync:n,getAllExtraOAuthDomains:r}=await import(`./provider-settings-BonXlQHx.js`),[i,a,o]=e;try{switch(i){case`list`:{if(a){let e=t(a);return e.length===0?{stdout:`(no extra domains configured for ${a})\n`,stderr:``,exitCode:0}:{stdout:e.join(`
7143
7143
  `)+`
7144
7144
  `,stderr:``,exitCode:0}}let e=r(),n=Object.entries(e).filter(([,e])=>e.length>0);return n.length===0?{stdout:`(no extra OAuth domains configured)
7145
7145
  `,stderr:``,exitCode:0}:{stdout:n.map(([e,t])=>`${e}: ${t.join(`, `)}`).join(`
@@ -7203,7 +7203,7 @@ Examples:
7203
7203
  --authorize-url 'https://auth.x.ai/oauth2/auth?...' \\
7204
7204
  --redirect-pattern 'http://127.0.0.1:56121/*'
7205
7205
  curl -H "Authorization: Bearer $(oauth-token github)" https://api.github.com/user
7206
- `}function kae(){return B(`oauth-token`,Aae)}async function Aae(e,t){let n=await import(`./provider-settings-BM266pC2.js`),r=await import(`./providers-D4GdXkNa.js`).then(e=>e.r);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Oae(),stderr:``,exitCode:0};if(e.includes(`--list`))return Kae(n.getAccounts,r.getRegisteredProviderIds,r.getRegisteredProviderConfig,n.getOAuthAccountInfo);if(e.includes(`--expire`))return zae(e);if(e.includes(`--renew`))return Bae(e);if(e.includes(`--from-file`)||e.includes(`--intercept`))return Vae(e,t);let i=jae(e);if(!i.ok)return i.result;let a=Mae(e,n,r);if(!a.ok)return a.result;let o=Nae(a.value,r.getRegisteredProviderConfig);if(!o.ok)return o.result;if(!i.value){let e=await Pae(a.value,o.value,n.getOAuthAccountInfo);if(e)return e}return Fae(a.value,o.value,i.value,n.getOAuthAccountInfo)}function jae(e){let t=e.indexOf(`--scope`);if(t<0)return{ok:!0,value:void 0};let n=e[t+1]?.trim();return!n||n.startsWith(`-`)?{ok:!1,result:W5(`oauth-token: --scope requires a value`)}:(e.splice(t,2),{ok:!0,value:n})}function Mae(e,t,n){let r=e.indexOf(`--provider`);if(r>=0){let t=e[r+1];return t?{ok:!0,value:t}:{ok:!1,result:W5(`oauth-token: --provider requires a value`)}}if(e.length>0)return{ok:!0,value:e[0]};let i=t.getSelectedProvider();if(z5(n.getRegisteredProviderConfig(i)))return{ok:!0,value:i};let a=n.getRegisteredProviderIds().find(e=>z5(n.getRegisteredProviderConfig(e)));return a?{ok:!0,value:a}:{ok:!1,result:W5(`oauth-token: no OAuth providers configured`)}}function z5(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function Nae(e,t){let n=t(e);return n?z5(n)?{ok:!0,value:n}:{ok:!1,result:W5(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:W5(`oauth-token: unknown provider "${e}"`)}}async function Pae(e,t,n){let r=n(e);return r&&!r.expired?B5(e,r.maskedValue):!r?.expired||!t.onSilentRenew?null:Rae(e,t.onSilentRenew,n)}function B5(e,t){return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:W5(`oauth-token: no masked value for ${e} (try logging in again)`)}async function Fae(e,t,n,r){try{return await Iae(e,t,n)||Lae(e,r)}catch(t){let n=t instanceof Error?t.message:String(t);return console.error(`[oauth-token] Provider ${e}: login failed:`,n),W5(`oauth-token: login failed: ${n}`)}}async function Iae(e,t,n){let r=n?{scopes:n}:void 0;if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-foejPYvF.js`),i=await n();return i?(await t.onOAuthLoginIntercepted(i,()=>{},r),null):W5(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`)}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-foejPYvF.js`);return await t.onOAuthLogin(e(),()=>{},r),null}return W5(`oauth-token: provider "${e}" has no OAuth login hook`)}function Lae(e,t){let n=t(e);return n?.token?B5(e,n.maskedValue):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),W5(`oauth-token: login completed but no token was saved`))}async function Rae(e,t,n){try{return await t()===null?null:B5(e,n(e)?.maskedValue)}catch{return null}}function V5(e,t,n,r){let i=e.filter(e=>!e.startsWith(`-`))[0];if(i)return i;let a=t();return n(a)?.onSilentRenew?a:r().find(e=>n(e)?.onSilentRenew)}async function zae(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./provider-settings-BM266pC2.js`),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-D4GdXkNa.js`).then(e=>e.r),o=V5(e,n,i,a);if(!o)return W5(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return W5(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return W5(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return W5(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return W5(`oauth-token --expire: failed to update "${o}": ${e instanceof Error?e.message:String(e)}`)}return{stdout:`oauth-token ${o}: stored token marked expired; next network op will trigger silent renewal.\n`,stderr:``,exitCode:0}}async function Bae(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./provider-settings-BM266pC2.js`),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-D4GdXkNa.js`).then(e=>e.r),a=V5(e,t,r,i);if(!a)return W5(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return W5(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return W5(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` before: ${H5(s)}`);let u=null,d=null;try{u=await o.onSilentRenew()}catch(e){d=e instanceof Error?e.message:String(e)}if(d)l.push(` silent renewal: ERROR — ${d}`);else if(u){let e=n(a),t=!!(c&&e?.token&&c!==e.token);l.push(` silent renewal: SUCCESS${t?` — token refreshed`:` (token unchanged)`}`),l.push(` after: ${H5(e)}`)}else l.push(` silent renewal: FAILED (onSilentRenew returned null)`),l.push(` → no window should have appeared. Open DevTools console and`),l.push(` look for "[oauth-service] Extension OAuth error" / "[adobe]" to see`),l.push(` the IMS/Chrome reason (e.g. login_required).`);return{stdout:l.join(`
7206
+ `}function kae(){return B(`oauth-token`,Aae)}async function Aae(e,t){let n=await import(`./provider-settings-BonXlQHx.js`),r=await import(`./providers-BE5wq_hp.js`).then(e=>e.r);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Oae(),stderr:``,exitCode:0};if(e.includes(`--list`))return Kae(n.getAccounts,r.getRegisteredProviderIds,r.getRegisteredProviderConfig,n.getOAuthAccountInfo);if(e.includes(`--expire`))return zae(e);if(e.includes(`--renew`))return Bae(e);if(e.includes(`--from-file`)||e.includes(`--intercept`))return Vae(e,t);let i=jae(e);if(!i.ok)return i.result;let a=Mae(e,n,r);if(!a.ok)return a.result;let o=Nae(a.value,r.getRegisteredProviderConfig);if(!o.ok)return o.result;if(!i.value){let e=await Pae(a.value,o.value,n.getOAuthAccountInfo);if(e)return e}return Fae(a.value,o.value,i.value,n.getOAuthAccountInfo)}function jae(e){let t=e.indexOf(`--scope`);if(t<0)return{ok:!0,value:void 0};let n=e[t+1]?.trim();return!n||n.startsWith(`-`)?{ok:!1,result:W5(`oauth-token: --scope requires a value`)}:(e.splice(t,2),{ok:!0,value:n})}function Mae(e,t,n){let r=e.indexOf(`--provider`);if(r>=0){let t=e[r+1];return t?{ok:!0,value:t}:{ok:!1,result:W5(`oauth-token: --provider requires a value`)}}if(e.length>0)return{ok:!0,value:e[0]};let i=t.getSelectedProvider();if(z5(n.getRegisteredProviderConfig(i)))return{ok:!0,value:i};let a=n.getRegisteredProviderIds().find(e=>z5(n.getRegisteredProviderConfig(e)));return a?{ok:!0,value:a}:{ok:!1,result:W5(`oauth-token: no OAuth providers configured`)}}function z5(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function Nae(e,t){let n=t(e);return n?z5(n)?{ok:!0,value:n}:{ok:!1,result:W5(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:W5(`oauth-token: unknown provider "${e}"`)}}async function Pae(e,t,n){let r=n(e);return r&&!r.expired?B5(e,r.maskedValue):!r?.expired||!t.onSilentRenew?null:Rae(e,t.onSilentRenew,n)}function B5(e,t){return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:W5(`oauth-token: no masked value for ${e} (try logging in again)`)}async function Fae(e,t,n,r){try{return await Iae(e,t,n)||Lae(e,r)}catch(t){let n=t instanceof Error?t.message:String(t);return console.error(`[oauth-token] Provider ${e}: login failed:`,n),W5(`oauth-token: login failed: ${n}`)}}async function Iae(e,t,n){let r=n?{scopes:n}:void 0;if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-foejPYvF.js`),i=await n();return i?(await t.onOAuthLoginIntercepted(i,()=>{},r),null):W5(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`)}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-foejPYvF.js`);return await t.onOAuthLogin(e(),()=>{},r),null}return W5(`oauth-token: provider "${e}" has no OAuth login hook`)}function Lae(e,t){let n=t(e);return n?.token?B5(e,n.maskedValue):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),W5(`oauth-token: login completed but no token was saved`))}async function Rae(e,t,n){try{return await t()===null?null:B5(e,n(e)?.maskedValue)}catch{return null}}function V5(e,t,n,r){let i=e.filter(e=>!e.startsWith(`-`))[0];if(i)return i;let a=t();return n(a)?.onSilentRenew?a:r().find(e=>n(e)?.onSilentRenew)}async function zae(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./provider-settings-BonXlQHx.js`),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-BE5wq_hp.js`).then(e=>e.r),o=V5(e,n,i,a);if(!o)return W5(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return W5(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return W5(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return W5(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return W5(`oauth-token --expire: failed to update "${o}": ${e instanceof Error?e.message:String(e)}`)}return{stdout:`oauth-token ${o}: stored token marked expired; next network op will trigger silent renewal.\n`,stderr:``,exitCode:0}}async function Bae(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./provider-settings-BonXlQHx.js`),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-BE5wq_hp.js`).then(e=>e.r),a=V5(e,t,r,i);if(!a)return W5(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return W5(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return W5(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` before: ${H5(s)}`);let u=null,d=null;try{u=await o.onSilentRenew()}catch(e){d=e instanceof Error?e.message:String(e)}if(d)l.push(` silent renewal: ERROR — ${d}`);else if(u){let e=n(a),t=!!(c&&e?.token&&c!==e.token);l.push(` silent renewal: SUCCESS${t?` — token refreshed`:` (token unchanged)`}`),l.push(` after: ${H5(e)}`)}else l.push(` silent renewal: FAILED (onSilentRenew returned null)`),l.push(` → no window should have appeared. Open DevTools console and`),l.push(` look for "[oauth-service] Extension OAuth error" / "[adobe]" to see`),l.push(` the IMS/Chrome reason (e.g. login_required).`);return{stdout:l.join(`
7207
7207
  `)+`
7208
7208
  `,stderr:``,exitCode:+!u}}function H5(e){if(!e)return`no token`;if(e.expired)return`expired`;if(e.expiresAt){let t=e.expiresAt-Date.now();if(t>0){let e=Math.floor(t/36e5),n=Math.floor(t%36e5/6e4);return e>0?`valid, expires in ${e}h ${n}m`:`valid, expires in ${n}m`}}return`valid`}async function Vae(e,t){let{parseInterceptOAuthConfig:n}=await import(`./intercepted-oauth-CaCw-rJ5.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:r}=await import(`./oauth-service-foejPYvF.js`),i=await Hae(e,t);if(!i.ok)return i.result;let a=n(i.value);if(!a.ok)return W5(`oauth-token: invalid intercept config: ${a.error}`);let o=await r();if(!o)return W5(`oauth-token: no CDP transport available in this runtime; --intercept needs the controlled browser.`);let s=await o(a.config);return s?{stdout:`${s}\n`,stderr:``,exitCode:0}:W5(`oauth-token: intercept timed out or was cancelled`)}function Hae(e,t){let n=e.indexOf(`--from-file`);return n>=0?Uae(e[n+1],t):Wae(e)}async function Uae(e,t){if(!e)return{ok:!1,result:W5(`oauth-token: --from-file requires a path`)};try{let n=t.fs.resolvePath(t.cwd,e),r=await t.fs.readFile(n),i=typeof r==`string`?r:new TextDecoder().decode(r);return{ok:!0,value:JSON.parse(i)}}catch(t){return{ok:!1,result:W5(`oauth-token: failed to read ${e}: ${t instanceof Error?t.message:String(t)}`)}}}function Wae(e){let t=U5(e,`--authorize-url`),n=U5(e,`--redirect-pattern`);if(!t)return{ok:!1,result:W5(`oauth-token: --authorize-url is required`)};if(!n)return{ok:!1,result:W5(`oauth-token: --redirect-pattern is required`)};let r=Gae(e);return r.ok?{ok:!0,value:{authorizeUrl:t,redirectUriPattern:n,onCapture:e.includes(`--leave-tab`)?`leave`:`close`,...r.value.length>0?{rewrite:r.value}:{}}}:r}function Gae(e){let t=[];for(let n=0;n<e.length;n++){if(e[n]!==`--rewrite`)continue;let r=e[n+1];if(!r)return{ok:!1,result:W5(`oauth-token: --rewrite requires a value`)};let i=r.split(`=`);if(i.length<3)return{ok:!1,result:W5(`oauth-token: --rewrite "${r}" must be "<match>=<key>=<value>"`)};let[a,o,...s]=i;t.push({match:a,appendParams:{[o]:s.join(`=`)}})}return{ok:!0,value:t}}function U5(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function W5(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function Kae(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
7209
7209
  `,stderr:``,exitCode:0};let a=[];for(let e of i){let t=r(e);if(!t)a.push(`${e} (no token)`);else if(t.expired){let n=t.userName?` as ${t.userName}`:``;a.push(`${e} (expired${n})`)}else{let n=[];if(t.userName?n.push(`logged in as ${t.userName}`):n.push(`logged in`),t.expiresAt){let e=t.expiresAt-Date.now();if(e>0){let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4);t>0?n.push(`expires in ${t}h`):n.push(`expires in ${r}m`)}}a.push(`${e} (${n.join(`, `)})`)}}return{stdout:a.join(`
@@ -8852,4 +8852,4 @@ ${t}
8852
8852
  `;case`cmdline`:return`kernel-host\0`;case`cwd`:return`/
8853
8853
  `;case`stat`:return`1 (kernel-host) R 0 - 0 -
8854
8854
  `}}function Qde(e){let t=e instanceof Error?e.message:String(e),n=e?.code;return typeof n==`string`&&/^E[A-Z]+$/.test(n)?{ok:!1,errno:n,message:t}:{ok:!1,errno:`EIO`,message:t}}async function $de(e){let t=zY(e.token);if(!t)return{ok:!1,errno:`EACCES`,message:`sync-fs: unknown or revoked token`};let{fs:n,cwd:r}=t;try{let t=n.resolvePath(r,e.path);switch(e.op){case`read`:return{ok:!0,kind:`bytes`,bytes:await n.readFileBuffer(t)};case`write`:return await n.writeFile(t,e.body??new Uint8Array),{ok:!0,kind:`void`};case`exists`:return{ok:!0,kind:`json`,json:await n.exists(t)};case`stat`:{let e=await n.stat(t);return{ok:!0,kind:`json`,json:{isDirectory:e.isDirectory,isFile:e.isFile,size:e.size}}}case`readdir`:return{ok:!0,kind:`json`,json:await n.readdir(t)};case`mkdir`:return await n.mkdir(t,{recursive:!0}),{ok:!0,kind:`void`};case`rm`:return await n.rm(t,{recursive:!0}),{ok:!0,kind:`void`};case`rename`:{let i=n.resolvePath(r,e.arg2??``),a=n;if(a.rename)await a.rename(t,i);else if(a.mv)await a.mv(t,i);else{let e=await n.readFileBuffer(t);await n.writeFile(i,e),await n.rm(t,{recursive:!0})}return{ok:!0,kind:`void`}}default:return{ok:!1,errno:`EINVAL`,message:`sync-fs: unknown op '${e.op}'`}}}catch(e){return Qde(e)}}function efe(e={}){let t=e.channel===void 0;if(t&&!e.nonce)throw Error(`installSyncFsResponder: a nonce (or a test channel) is required`);let n=e.channel??new BroadcastChannel(JK(e.nonce)),r=e=>n.postMessage(e),i=new Map,a=e=>{let t=e.data;if(t?.type!==`sync-fs-req`||typeof t.id!=`string`)return;let n=t;if(!zY(n.token))return;let a=i.get(n.id);if(a){r({type:YK,id:n.id}),a.result&&r({type:XK,id:n.id,...a.result});return}let o={};i.set(n.id,o),r({type:YK,id:n.id});let s=e=>{o.result=e,o.timer=setTimeout(()=>i.delete(n.id),3e4),r({type:XK,id:n.id,...e})};$de(n).then(s).catch(e=>s({ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)}))};return n.addEventListener(`message`,a),{dispose:()=>{n.removeEventListener(`message`,a);for(let e of i.values())e.timer&&clearTimeout(e.timer);i.clear(),t&&n.close?.()}}}function tfe(e){switch(e.type){case`webhook`:return e.webhookName;case`sprinkle`:return e.sprinkleName;case`fswatch`:return e.fswatchName;case`navigate`:return e.navigateUrl;case`upgrade`:return`${e.upgradeFromVersion??`unknown`}→${e.upgradeToVersion??`unknown`}`;case`session-reload`:return`mount-recovery`;case`workflow`:return e.workflowName??e.workflowRunId??`workflow`;case`preview`:return e.previewOrigin??`preview`;case`discovery`:return e.discoveryUrl??e.discoveryOrigin;default:return e.cronName}}function nfe(e){switch(e.type){case`webhook`:return e.webhookId;case`sprinkle`:return e.sprinkleName;case`fswatch`:return e.fswatchId;case`navigate`:return e.navigateUrl;case`upgrade`:return`upgrade-${e.upgradeToVersion??`unknown`}`;case`session-reload`:return`session-reload-${e.timestamp}`;case`workflow`:return`workflow-${e.workflowRunId??`unknown`}`;case`preview`:return e.previewConnId??`preview-${e.timestamp}`;case`discovery`:return e.discoveryUrl??`discovery-${e.timestamp}`;default:return e.cronId}}function rfe(e,t){if(e.type===`sudo-request`){t.log.debug?.(`sudo-request lick: UI-chip-only path; orchestrator owns delivery`,{lickId:e.lickId});return}ife(e,t)}function ife(e,{orchestrator:t,log:n}){e.type===`navigate`?e.lickId=t.registerNavigateLick(e):e.type===`session-reload`?e.lickId=t.registerSessionReloadLick(e):e.type===`upgrade`&&(e.lickId=t.registerUpgradeLick(e));let r=Or(e);if(r===null){n.debug?.(`dropping lick event with no renderable content`,{type:e.type});return}let i=tfe(e),a=nfe(e),o=e.type,s=t.getScoops(),c;if(c=e.targetScoop?s.find(t=>t.name===e.targetScoop||t.folder===e.targetScoop||t.folder===`${e.targetScoop}-scoop`):s.find(e=>e.isCone),!c){n.warn(`Lick target scoop not found`,e.targetScoop);return}let l={id:`${o}-${a}-${Date.now()}`,chatJid:c.jid,senderId:o,senderName:`${o}:${i}`,content:r.content,timestamp:e.timestamp,fromAssistant:!1,channel:o,...e.lickId?{lickId:e.lickId}:{}};t.handleMessage(l)}async function afe(e,t,n,r){let i=new ln,a=new Ude(e,{...r,getBrowserAPI:()=>t});a.setProcessManager(i),globalThis.__slicc_pm=i,globalThis.__slicc_browser=t,await n.bind(a,t);let o=rt(()=>n.emitTrayRuntimeStatus()),s=he(()=>n.emitTrayRuntimeStatus());return await a.init(),await n.seedBuffersFromAgentState(),{processManager:i,orchestrator:a,unsubLeader:o,unsubFollower:s,sharedFs:a.getSharedFS()}}async function ofe(e,t,n){let{registerSessionCostsProvider:r}=await import(`./cost-command-Cpg2Em0Q.js`).then(e=>e.t);r(()=>e.getSessionCosts());let{getLickManager:i}=await import(`./lick-manager-Ct3WOtut.js`).then(e=>e.r),a=i();await a.init(),e.setLickManager(a);let o=t.lickEventHandler??rfe,s={orchestrator:e,lickManager:a,log:n};return a.setEventHandler(e=>o(e,s)),a}async function sfe(e){e.getScoops().some(e=>e.isCone)||await e.registerScoop({jid:`cone_${Date.now()}`,name:`Cone`,folder:`cone`,isCone:!0,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()})}function cfe(e){let{orchestrator:t,processManager:n,lickManager:r,sharedFs:i}=e;eue({sharedFs:i,getConeJid:()=>t.getScoops().find(e=>e.isCone)?.jid,fireLick:e=>r.emitEvent(e),processManager:n,runRealm:(e,t,n)=>BX(e,t,n,void 0,{filename:t[1]}),makeRunId:()=>p9().slice(10,22),splitResult:(e,t)=>m9(e,t)})}async function lfe(e){let{browser:t,lickManager:n,orchestrator:r,sharedFs:i,log:a}=e,{CdpWsPageBridge:o}=await import(`./cdp-ws-page-bridge-D_PY6ku1.js`),{WsSubscriberRegistry:s}=await import(`./ws-subscribers-Dzuxa2F7.js`),c=new o({browser:t});return{wsBridge:c,wsRegistry:new s({bridge:c,webhooks:{has:e=>n.getWebhook(e)!==void 0},dispatcher:{webhook:(e,t)=>{n.handleWebhookEvent(e,{},t)},scoop:(e,t)=>{if(!r.getScoops().find(t=>t.jid===e)){a.warn?.(`browser.websocket: scoop sink not found`,{jid:e});return}let n={id:`ws-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,chatJid:e,senderId:`browser.websocket`,senderName:`browser.websocket`,content:typeof t==`string`?t:JSON.stringify(t,null,2),timestamp:new Date().toISOString(),fromAssistant:!1,channel:`browser.websocket`};r.handleMessage(n)},vfs:async(e,t)=>{if(!i)return;let n=(typeof t==`string`?t:JSON.stringify(t))+`
8855
- `,r=``;try{let t=await i.readFile(e);r=typeof t==`string`?t:new TextDecoder().decode(t)}catch{}await i.writeFile(e,r+n)},log:e=>{a.info?.(`browser.websocket frame`,{payload:e})}}})}}async function ufe(e,t,n){try{let{startLickWsBridge:t}=await import(`./lick-ws-bridge-D5zKuunw.js`);return t(e,{locationHref:self.location.href,lickWsUrl:n??null}).stop}catch(e){return(t.error?.bind(t)??t.warn.bind(t)??((e,t)=>console.error(`[lick-ws-bridge]`,e,t)))(`Failed to start lick-ws bridge — webhook / crontask / handoff lick delivery is non-functional in this session`,{error:e instanceof Error?e.message:String(e)}),null}}function dfe(e,t,n){let r=e.getTransport();if(r.isExtensionBridge)return n.debug?.(`Skipping NavigationWatcher: extension-bridge transport rejects sessionless Target.* discovery; the service worker observes handoffs via chrome.webRequest`),null;try{let e=new Kr(r,e=>{let n={url:e.url,verb:e.verb,target:e.target};e.instruction!=null&&(n.instruction=e.instruction),e.branch!=null&&(n.branch=e.branch),e.path!=null&&(n.path=e.path),e.title!=null&&(n.title=e.title),t.emitEvent({type:`navigate`,navigateUrl:e.url,targetScoop:void 0,timestamp:new Date().toISOString(),body:n})},ffe(t));return e.start(),()=>e.stop()}catch(e){return n.warn(`Failed to start NavigationWatcher`,e),null}}function ffe(e){let t=_();return{onDiscovery:t=>{e.emitEvent({type:`discovery`,targetScoop:void 0,timestamp:new Date().toISOString(),discoveryOrigin:t.origin,discoveryKind:t.kind,discoveryUrl:t.url,body:{origin:t.origin,kind:t.kind,url:t.url,targetId:t.targetId}})},probeFetch:async(e,n)=>{let r=t(e,{method:n?.method??`GET`}),i=n?.signal,a=i?await Promise.race([r,new Promise((e,t)=>{if(i.aborted){t(Error(`aborted`));return}i.addEventListener(`abort`,()=>t(Error(`aborted`)),{once:!0})})]):await r,o=a.headers;return{ok:a.status>=200&&a.status<300,status:a.status,headers:{get(e){return o?o[e.toLowerCase()]??o[e]??null:null}}}},isDiscoveryEnabled:()=>Wde()}}function pfe(e,t,n){(async()=>{try{let{getAllMountEntries:r}=await import(`./mount-table-store-CTrzlrNn.js`).then(e=>e.r),{recoverMounts:i}=await import(`./mount-recovery-BHzvbfOP.js`).then(e=>e.n),a=await r();if(a.length===0)return;let{needsRecovery:o}=await i(a,e,n);if(o.length===0)return;t.emitEvent({type:`session-reload`,targetScoop:void 0,timestamp:new Date().toISOString(),body:{reason:`mount-recovery`,mounts:o}})}catch(e){n.warn(`mount recovery failed`,e)}})()}function mfe(e,t){(async()=>{try{let{detectUpgrade:t,recordVersionSeen:n}=await import(`./upgrade-detection-oVhfsof_.js`),r=await t();if(!r.isUpgrade||r.lastSeen===null)return;e.emitEvent({type:`upgrade`,targetScoop:void 0,timestamp:new Date().toISOString(),upgradeFromVersion:r.lastSeen,upgradeToVersion:r.bundled.version,body:{from:r.lastSeen,to:r.bundled.version,releasedAt:r.bundled.releasedAt}}),await n(r.bundled.version)}catch(e){t.warn(`Upgrade detection failed`,e)}})()}async function hfe(e,t,n){try{let{BshWatchdog:n}=await import(`./bsh-watchdog-cTkGOVHJ.js`),{ScriptCatalog:r}=await import(`./script-catalog-BYXhqRAc.js`).then(e=>e.n),i=new r({jshFs:e,bshFs:e,watcher:e.getWatcher()}),a=new n({browserAPI:t,scriptCatalog:i,fs:e});return a.start(),{bshWatchdogStop:()=>a.stop(),scriptCatalogDispose:()=>i.dispose()}}catch(e){return n.warn(`Failed to start BSH watchdog`,e),{bshWatchdogStop:null,scriptCatalogDispose:null}}}function gfe(){return A()}async function _fe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1}=e,o=e.logger??console,{processManager:s,orchestrator:c,unsubLeader:l,unsubFollower:u,sharedFs:d}=await afe(t,n,r,i);if(d?Une(c,d,c.getSessionStore()):o.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),d)try{await d.mountInternal(`/proc`,new Gde(s))}catch(e){o.warn(`Failed to mount /proc`,e)}let f=await ofe(c,e,o);d&&cfe({orchestrator:c,processManager:s,lickManager:f,sharedFs:d}),globalThis.__slicc_lickManager=f;let{wsBridge:p,wsRegistry:m}=await lfe({browser:n,lickManager:f,orchestrator:c,sharedFs:d,log:o});globalThis.__slicc_wsSubscribers=m;let h=null;gfe()&&(h=await ufe(f,o,e.localLickWsUrl??null));let g=dfe(n,f,o);d&&pfe(d,f,o),a||await sfe(c),d&&mfe(f,o);let _=null,v=null;d&&({bshWatchdogStop:_,scriptCatalogDispose:v}=await hfe(d,n,o));let y=null;d&&e.syncFsChannelNonce&&(y=efe({nonce:e.syncFsChannelNonce}).dispose);let b=!1;return{orchestrator:c,browser:n,bridge:r,lickManager:f,sharedFs:d??null,processManager:s,async dispose(){b||(b=!0,await vfe({unsubLeader:l,unsubFollower:u,bshWatchdogStop:_,scriptCatalogDispose:v,lickWsBridgeStop:h,navigationWatcherStop:g,syncFsResponderDispose:y,sharedFs:d,wsRegistry:m,wsBridge:p,processManager:s,lickManager:f,browser:n,log:o}))}}}async function vfe(e){let{sharedFs:t,wsRegistry:n,wsBridge:r,processManager:i,lickManager:a,browser:o,log:s}=e;if(e.unsubLeader?.(),e.unsubFollower?.(),e.bshWatchdogStop?.(),e.scriptCatalogDispose?.(),e.lickWsBridgeStop?.(),e.syncFsResponderDispose?.(),e.navigationWatcherStop)try{await e.navigationWatcherStop()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(t)try{await t.unmountInternal(`/proc`)}catch{}try{n.dispose()}catch(e){s.warn(`WsSubscriberRegistry.dispose() failed`,e)}try{r.dispose()}catch(e){s.warn(`CdpWsPageBridge.dispose() failed`,e)}yfe({processManager:i,lickManager:a,browser:o,wsRegistry:n})}function yfe(e){let t=globalThis;t.__slicc_pm===e.processManager&&delete t.__slicc_pm,t.__slicc_lickManager===e.lickManager&&delete t.__slicc_lickManager,e.browser&&t.__slicc_browser===e.browser&&delete t.__slicc_browser,e.wsRegistry&&t.__slicc_wsSubscribers===e.wsRegistry&&delete t.__slicc_wsSubscribers,delete t[u9]}const G9=`x-bypass-llm-proxy`;function bfe(e,t,n){return t?(r,i)=>{if(!xfe(r,t,n))return e(r,i);let a=new Headers(i?.headers);return a.has(G9)||a.set(G9,`1`),e(r,{...i,headers:a})}:e}function xfe(e,t,n){if(Cfe(e,t))return!0;let r=n?.()??null;return r?Sfe(e,r,t):!1}function Sfe(e,t,n){let r=K9(e),i,a;try{i=new URL(r,n),a=new URL(t)}catch{return!1}return i.origin===a.origin&&i.pathname.startsWith(`/api/`)}function Cfe(e,t){let n=K9(e);try{return new URL(n,t).origin===t}catch{return!0}}function K9(e){return typeof e==`string`?e:e instanceof URL?e.href:e.url}function wfe(e,t={}){let n=t.onError??(e=>console.error(`[kernel-worker] boot failed`,e)),r=t.onDuplicate??(()=>console.warn(`[kernel-worker] received duplicate kernel-worker-init; ignoring`)),i=!1;return{handle(t){if(i){r();return}i=!0,e(t).catch(e=>{i=!1,n(e)})},isInitialized(){return i}}}var Tfe=class{transport;createShell;log;pm;defaultOwner;sessions=new Map;unsubscribe=null;constructor(e){this.transport=e.transport,this.createShell=e.createShell,this.log=e.logger??console,this.pm=e.processManager??null,this.defaultOwner=e.defaultOwner??{kind:`system`}}start(){return this.unsubscribe||=this.transport.onMessage(e=>{if(!Efe(e)||e.source!==`panel`)return;let t=e.payload;Dfe(t)&&this.handleControl(t).catch(e=>{this.log.warn(`[terminal-session-host] handler error`,e)})}),()=>this.dispose()}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,e]of this.sessions)e.currentProcess&&this.pm?(this.pm.signal(e.currentProcess.pid,`SIGTERM`),this.pm.exit(e.currentProcess.pid,null)):e.currentExec?.abort(),e.shell.dispose?.();this.sessions.clear()}async handleControl(e){switch(e.type){case`terminal-open`:return this.handleOpen(e);case`terminal-close`:return this.handleClose(e);case`terminal-exec`:return this.handleExec(e);case`terminal-signal`:return this.handleSignal(e);case`terminal-stdin`:case`terminal-resize`:return}}async handleOpen(e){if(this.sessions.has(e.sid)){this.emitStatus(e.sid,`error`,`session already open`);return}try{let t=this.createShell(e.sid,{cwd:e.cwd,env:e.env});this.sessions.set(e.sid,{shell:t,currentExec:null,currentProcess:null}),this.emitStatus(e.sid,`opened`)}catch(t){this.emitStatus(e.sid,`error`,t instanceof Error?t.message:String(t))}}async handleClose(e){let t=this.sessions.get(e.sid);t&&(t.currentProcess&&this.pm?(this.pm.signal(t.currentProcess.pid,`SIGTERM`),this.pm.exit(t.currentProcess.pid,null)):t.currentExec?.abort(),t.shell.dispose?.(),this.sessions.delete(e.sid),this.emitStatus(e.sid,`closed`))}emitExit(e,t){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:t})}emitStream(e,t,n){this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:t,data:n})}async handleExec(e){let t=this.sessions.get(e.sid);if(!t){this.emitExit(e,127),this.log.warn(`[terminal-session-host] exec on unknown session`,e.sid);return}if(t.currentExec){this.emitExit(e,130);return}let n=new AbortController;t.currentExec=n;let r=this.pm?this.pm.spawn({kind:`shell`,argv:[e.command],cwd:t.shell.getCwd?.()??void 0,owner:this.defaultOwner,adoptAbort:n}):null;t.currentProcess=r;try{let i=await t.shell.executeCommand(e.command,n.signal,r?.pid);await this.emitExecSuccess(e,i,n,r)}catch(t){this.emitExecError(e,t,n,r)}finally{t.currentExec===n&&(t.currentExec=null,t.currentProcess=null)}}async emitExecSuccess(e,t,n,r){let i=n.signal.aborted?q9(r?.terminatedBy??`SIGINT`):t.exitCode;n.signal.aborted||(r&&await r.gate.wait(),t.stdout&&this.emitStream(e,`stdout`,t.stdout),t.stderr&&this.emitStream(e,`stderr`,t.stderr)),this.emitExit(e,i),r&&this.pm&&this.pm.exit(r.pid,n.signal.aborted?null:t.exitCode)}emitExecError(e,t,n,r){if(n.signal.aborted){this.emitExit(e,q9(r?.terminatedBy??`SIGINT`)),r&&this.pm&&this.pm.exit(r.pid,null);return}let i=t instanceof Error?t.message:String(t);this.emitStream(e,`stderr`,`Error: ${i}\n`),this.emitExit(e,1),r&&this.pm&&this.pm.exit(r.pid,1)}async handleSignal(e){let t=this.sessions.get(e.sid);if(!t){this.log.warn(`[terminal-session-host] signal on unknown session`,e.sid);return}(e.signal===`SIGINT`||e.signal===`SIGTERM`||e.signal===`SIGKILL`)&&(t.currentProcess&&this.pm?this.pm.signal(t.currentProcess.pid,e.signal):t.currentExec?.abort())}emit(e){this.transport.send(e)}emitStatus(e,t,n){let r=n?{type:`terminal-status`,sid:e,state:t,error:n}:{type:`terminal-status`,sid:e,state:t};this.emit(r)}};function Efe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function q9(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function Dfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`terminal-open`||t===`terminal-close`||t===`terminal-exec`||t===`terminal-signal`||t===`terminal-stdin`||t===`terminal-resize`}var Ofe=class extends w9{sid;transport;constructor(e,t,n){super(n),this.sid=e,this.transport=t}async renderMediaPreview(e){for(let t of e){let e=``,n=t.bytes,r=8192;for(let t=0;t<n.length;t+=r)e+=String.fromCharCode(...n.subarray(t,t+r));let i={type:`terminal-media-preview`,sid:this.sid,path:t.path,mediaType:t.mimeType,data:btoa(e)};this.transport.send(i)}}};function kfe(e){let{transport:t,fs:n,browser:r,processManager:i,sudoManager:a}=e,o=e.logger??console,s=a?.getShellConfig({transparentGating:!1}),c=new Tfe({transport:t,processManager:i,createShell:(e,a)=>new Ofe(e,t,{fs:n,cwd:a.cwd,env:a.env,browserAPI:r,processManager:i,processOwner:{kind:`system`},sudo:s}),logger:o});return{host:c,stop:c.start()}}function Afe(e){let t=new jfe(e);return t.start(),{stop:()=>t.dispose()}}var jfe=class{transport;client;writableClient;log;unsubscribe=null;constructor(e){this.transport=e.transport,this.client=e.client,this.writableClient=e.writableClient??null,this.log=e.logger??console}start(){this.unsubscribe||=this.transport.onMessage(e=>{if(!Mfe(e)||e.source!==`panel`)return;let t=e.payload;if(Nfe(t)){this.handleRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] handler unexpectedly threw`,e)});return}if(Pfe(t)){this.handleWriteRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] write handler unexpectedly threw`,e)});return}})}dispose(){this.unsubscribe?.(),this.unsubscribe=null}async handleRequest(e){switch(e.type){case`vfs-read-dir`:return this.handleReadDir(e);case`vfs-read-file`:return this.handleReadFile(e);case`vfs-stat`:return this.handleStat(e)}}async handleReadDir(e){try{let t=await this.client.readDir(e.path),n={type:`vfs-read-dir-result`,requestId:e.requestId,ok:!0,entries:t};this.transport.send(n)}catch(t){this.emitError(`vfs-read-dir-result`,e.requestId,t,e.path)}}async handleReadFile(e){let t=e.encoding??`utf-8`;try{let n=await this.client.readFile(e.path,{encoding:t});if(t===`binary`){if(!(n instanceof Uint8Array)){this.emitError(`vfs-read-file-result`,e.requestId,new R(`EIO`,`readFile(binary) did not return Uint8Array`),e.path);return}let t={type:`vfs-read-file-result`,requestId:e.requestId,ok:!0,encoding:`binary`,data:n},r=n.buffer,i=typeof ArrayBuffer<`u`&&r instanceof ArrayBuffer?[r]:void 0;this.transport.send(t,i)}else{if(typeof n!=`string`){this.emitError(`vfs-read-file-result`,e.requestId,new R(`EIO`,`readFile(utf-8) did not return string`),e.path);return}let t={type:`vfs-read-file-result`,requestId:e.requestId,ok:!0,encoding:`utf-8`,data:n};this.transport.send(t)}}catch(t){this.emitError(`vfs-read-file-result`,e.requestId,t,e.path)}}async handleStat(e){try{let t=await this.client.stat(e.path),n={type:`vfs-stat-result`,requestId:e.requestId,ok:!0,stats:t};this.transport.send(n)}catch(t){this.emitError(`vfs-stat-result`,e.requestId,t,e.path)}}async handleWriteRequest(e){if(!this.writableClient){this.emitWriteError(Ffe(e.type),e.requestId,new R(`EACCES`,`vfs-rpc-host has no writable backend wired`),Ife(e));return}switch(e.type){case`vfs-write-file`:return this.handleWriteFile(e,this.writableClient);case`vfs-mkdir`:return this.handleMkdir(e,this.writableClient);case`vfs-rm`:return this.handleRm(e,this.writableClient);case`vfs-flush`:return this.handleFlush(e,this.writableClient);case`vfs-list-mount-points`:return this.handleListMountPoints(e,this.writableClient)}}async handleWriteFile(e,t){try{if(e.encoding===`binary`){if(!(e.data instanceof Uint8Array)){this.emitWriteError(`vfs-write-file-result`,e.requestId,new R(`EIO`,`vfs-write-file(binary) data is not Uint8Array`),e.path);return}}else if(typeof e.data!=`string`){this.emitWriteError(`vfs-write-file-result`,e.requestId,new R(`EIO`,`vfs-write-file(utf-8) data is not string`),e.path);return}let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.writeFile(e.path,e.data,n);let r={type:`vfs-write-file-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-write-file-result`,e.requestId,t,e.path)}}async handleMkdir(e,t){try{let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.mkdir(e.path,n);let r={type:`vfs-mkdir-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-mkdir-result`,e.requestId,t,e.path)}}async handleRm(e,t){try{let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.rm(e.path,n);let r={type:`vfs-rm-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-rm-result`,e.requestId,t,e.path)}}async handleFlush(e,t){try{await t.flush();let n={type:`vfs-flush-result`,requestId:e.requestId,ok:!0};this.transport.send(n)}catch(t){this.emitWriteError(`vfs-flush-result`,e.requestId,t,``)}}async handleListMountPoints(e,t){if(!t.listMountPoints){this.emitWriteError(`vfs-list-mount-points-result`,e.requestId,new R(`EACCES`,`vfs-rpc-host has no mount-aware backend wired`),``);return}try{let n=await t.listMountPoints(),r={type:`vfs-list-mount-points-result`,requestId:e.requestId,ok:!0,mountPoints:n};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-list-mount-points-result`,e.requestId,t,``)}}emitError(e,t,n,r){let i=J9(n,r);switch(e){case`vfs-read-dir-result`:{let e={type:`vfs-read-dir-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-read-file-result`:{let e={type:`vfs-read-file-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-stat-result`:{let e={type:`vfs-stat-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}}}emitWriteError(e,t,n,r){let i=J9(n,r);switch(r===``&&i.path===``&&delete i.path,e){case`vfs-write-file-result`:{let e={type:`vfs-write-file-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-mkdir-result`:{let e={type:`vfs-mkdir-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-rm-result`:{let e={type:`vfs-rm-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-flush-result`:{let e={type:`vfs-flush-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-list-mount-points-result`:{let e={type:`vfs-list-mount-points-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}}}};function Mfe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Nfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`vfs-read-dir`||t===`vfs-read-file`||t===`vfs-stat`}function Pfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`vfs-write-file`||t===`vfs-mkdir`||t===`vfs-rm`||t===`vfs-flush`||t===`vfs-list-mount-points`}function Ffe(e){switch(e){case`vfs-write-file`:return`vfs-write-file-result`;case`vfs-mkdir`:return`vfs-mkdir-result`;case`vfs-rm`:return`vfs-rm-result`;case`vfs-flush`:return`vfs-flush-result`;case`vfs-list-mount-points`:return`vfs-list-mount-points-result`}}function Ife(e){return e.type===`vfs-flush`||e.type===`vfs-list-mount-points`?``:e.path}function J9(e,t){return e instanceof R?{code:e.code,message:e.message,path:e.path??t}:{code:`EIO`,message:e instanceof Error?e.message:String(e),path:t}}function Lfe(){let e=globalThis.fetch;if(!e)return;let t=self?.location?self.location.origin:void 0;globalThis.fetch=bfe(e.bind(globalThis),t,Rfe)}function Rfe(){let e=m();if(!e)return null;try{return new URL(e).origin}catch{return null}}function zfe(e){let t=new Map(Object.entries(e));Object.defineProperty(globalThis,"localStorage",{value:{get length(){return t.size},key(e){return Array.from(t.keys())[e]??null},getItem(e){return t.has(e)?t.get(e):null},setItem(e,n){t.set(e,n)},removeItem(e){t.delete(e)},clear(){t.clear()}},configurable:!0,writable:!0})}let Y9=null,X9=null,Z9=null,Q9=null,$9=null;const Bfe=wfe(e=>Vfe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&Bfe.handle(e.data)});async function Vfe(e){sr(e.instanceId);try{Lfe(),S(e.localApiBaseUrl??null),u(e.bridgeToken??null),PX(e.syncFsBridgeEnabled??!1),h(e.extensionDelegateId??null),zfe(e.localStorageSeed??{}),fe().catch(()=>{}),await s();let t=fr(e.kernelPort),n=new Lr(t),r=Lr.createCallbacks(n),a=new pr(e.cdpPort);await a.connect();let o=new Zn(a);Y9=await _fe({container:{},browser:o,bridge:n,callbacks:r,logger:console,localLickWsUrl:e.localLickWsUrl??null,syncFsChannelNonce:e.syncFsChannelNonce??null});let{createSprinkleManagerProxyOverChannel:c}=await import(`./sprinkle-bridge-channel-14cdGa6x.js`),l=c({instanceId:e.instanceId});globalThis.__slicc_sprinkleManager=l;let d=Y9.sharedFs?.getWatcher();if(d){let e=[`/workspace`,`/shared`,`/scoops`],t=null,n=new Set;for(let r of e)d.watch(r,e=>e.endsWith(`.shtml`),e=>{for(let t of e){let e=t.path.split(`/`).pop()?.replace(/\.shtml$/,``);e&&n.add(e)}t||=setTimeout(()=>{t=null;for(let e of n)l.reload(e).catch(()=>{});n.clear()},300)})}let{createPanelRpcClient:f}=await import(`./panel-rpc-CjFVE0nK.js`).then(e=>e.i);$9=f({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9,o.setTrayTargetProvider(rr(i));let p=await Hfe({host:Y9,transport:t,browser:o,instanceId:e.instanceId});p&&(X9=p.stopTerminalHost,Z9=p.stopVfsRpcHost,Q9=p.stopSpeechAssetsResponder),e.kernelPort.postMessage({type:`kernel-worker-ready`})}catch(e){throw lr(e),e}}async function Hfe(e){let t=e.host.sharedFs;if(!t)return console.warn(`[kernel-worker] shared FS unavailable; terminal sessions will fail to open`),null;let n=kfe({transport:e.transport,fs:t,browser:e.browser,processManager:e.host.processManager,sudoManager:e.host.orchestrator.getSudoManager(),logger:console}),r=Afe({transport:e.transport,client:t,writableClient:t,logger:console}),i=await Ufe(t,e.instanceId);return{stopTerminalHost:n.stop,stopVfsRpcHost:r.stop,stopSpeechAssetsResponder:i}}async function Ufe(e,t){let{installSpeechAssetsResponder:n}=await import(`./speech-assets-bridge-BUDIvdid.js`),{ensureSpeechAssetsStaged:r}=await import(`./ensure-speech-assets-8cWrra0n.js`),{createProxiedFetch:i}=await import(`./proxied-fetch-ldIfAeIb.js`).then(e=>e.o),a=i();return n({instanceId:t,ensure:t=>r({fs:e,fetch:a},t)})}self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-shutdown`&&(X9?.(),X9=null,Z9?.(),Z9=null,Q9?.(),Q9=null,$9?.dispose(),$9=null,Y9?.dispose())});
8855
+ `,r=``;try{let t=await i.readFile(e);r=typeof t==`string`?t:new TextDecoder().decode(t)}catch{}await i.writeFile(e,r+n)},log:e=>{a.info?.(`browser.websocket frame`,{payload:e})}}})}}async function ufe(e,t,n){try{let{startLickWsBridge:t}=await import(`./lick-ws-bridge-D5zKuunw.js`);return t(e,{locationHref:self.location.href,lickWsUrl:n??null}).stop}catch(e){return(t.error?.bind(t)??t.warn.bind(t)??((e,t)=>console.error(`[lick-ws-bridge]`,e,t)))(`Failed to start lick-ws bridge — webhook / crontask / handoff lick delivery is non-functional in this session`,{error:e instanceof Error?e.message:String(e)}),null}}function dfe(e,t,n){let r=e.getTransport();if(r.isExtensionBridge)return n.debug?.(`Skipping NavigationWatcher: extension-bridge transport rejects sessionless Target.* discovery; the service worker observes handoffs via chrome.webRequest`),null;try{let e=new Kr(r,e=>{let n={url:e.url,verb:e.verb,target:e.target};e.instruction!=null&&(n.instruction=e.instruction),e.branch!=null&&(n.branch=e.branch),e.path!=null&&(n.path=e.path),e.title!=null&&(n.title=e.title),t.emitEvent({type:`navigate`,navigateUrl:e.url,targetScoop:void 0,timestamp:new Date().toISOString(),body:n})},ffe(t));return e.start(),()=>e.stop()}catch(e){return n.warn(`Failed to start NavigationWatcher`,e),null}}function ffe(e){let t=_();return{onDiscovery:t=>{e.emitEvent({type:`discovery`,targetScoop:void 0,timestamp:new Date().toISOString(),discoveryOrigin:t.origin,discoveryKind:t.kind,discoveryUrl:t.url,body:{origin:t.origin,kind:t.kind,url:t.url,targetId:t.targetId}})},probeFetch:async(e,n)=>{let r=t(e,{method:n?.method??`GET`}),i=n?.signal,a=i?await Promise.race([r,new Promise((e,t)=>{if(i.aborted){t(Error(`aborted`));return}i.addEventListener(`abort`,()=>t(Error(`aborted`)),{once:!0})})]):await r,o=a.headers;return{ok:a.status>=200&&a.status<300,status:a.status,headers:{get(e){return o?o[e.toLowerCase()]??o[e]??null:null}}}},isDiscoveryEnabled:()=>Wde()}}function pfe(e,t,n){(async()=>{try{let{getAllMountEntries:r}=await import(`./mount-table-store-CTrzlrNn.js`).then(e=>e.r),{recoverMounts:i}=await import(`./mount-recovery-B8VdqP8T.js`).then(e=>e.n),a=await r();if(a.length===0)return;let{needsRecovery:o}=await i(a,e,n);if(o.length===0)return;t.emitEvent({type:`session-reload`,targetScoop:void 0,timestamp:new Date().toISOString(),body:{reason:`mount-recovery`,mounts:o}})}catch(e){n.warn(`mount recovery failed`,e)}})()}function mfe(e,t){(async()=>{try{let{detectUpgrade:t,recordVersionSeen:n}=await import(`./upgrade-detection-DdRKki36.js`),r=await t();if(!r.isUpgrade||r.lastSeen===null)return;e.emitEvent({type:`upgrade`,targetScoop:void 0,timestamp:new Date().toISOString(),upgradeFromVersion:r.lastSeen,upgradeToVersion:r.bundled.version,body:{from:r.lastSeen,to:r.bundled.version,releasedAt:r.bundled.releasedAt}}),await n(r.bundled.version)}catch(e){t.warn(`Upgrade detection failed`,e)}})()}async function hfe(e,t,n){try{let{BshWatchdog:n}=await import(`./bsh-watchdog-cTkGOVHJ.js`),{ScriptCatalog:r}=await import(`./script-catalog-BYXhqRAc.js`).then(e=>e.n),i=new r({jshFs:e,bshFs:e,watcher:e.getWatcher()}),a=new n({browserAPI:t,scriptCatalog:i,fs:e});return a.start(),{bshWatchdogStop:()=>a.stop(),scriptCatalogDispose:()=>i.dispose()}}catch(e){return n.warn(`Failed to start BSH watchdog`,e),{bshWatchdogStop:null,scriptCatalogDispose:null}}}function gfe(){return A()}async function _fe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1}=e,o=e.logger??console,{processManager:s,orchestrator:c,unsubLeader:l,unsubFollower:u,sharedFs:d}=await afe(t,n,r,i);if(d?Une(c,d,c.getSessionStore()):o.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),d)try{await d.mountInternal(`/proc`,new Gde(s))}catch(e){o.warn(`Failed to mount /proc`,e)}let f=await ofe(c,e,o);d&&cfe({orchestrator:c,processManager:s,lickManager:f,sharedFs:d}),globalThis.__slicc_lickManager=f;let{wsBridge:p,wsRegistry:m}=await lfe({browser:n,lickManager:f,orchestrator:c,sharedFs:d,log:o});globalThis.__slicc_wsSubscribers=m;let h=null;gfe()&&(h=await ufe(f,o,e.localLickWsUrl??null));let g=dfe(n,f,o);d&&pfe(d,f,o),a||await sfe(c),d&&mfe(f,o);let _=null,v=null;d&&({bshWatchdogStop:_,scriptCatalogDispose:v}=await hfe(d,n,o));let y=null;d&&e.syncFsChannelNonce&&(y=efe({nonce:e.syncFsChannelNonce}).dispose);let b=!1;return{orchestrator:c,browser:n,bridge:r,lickManager:f,sharedFs:d??null,processManager:s,async dispose(){b||(b=!0,await vfe({unsubLeader:l,unsubFollower:u,bshWatchdogStop:_,scriptCatalogDispose:v,lickWsBridgeStop:h,navigationWatcherStop:g,syncFsResponderDispose:y,sharedFs:d,wsRegistry:m,wsBridge:p,processManager:s,lickManager:f,browser:n,log:o}))}}}async function vfe(e){let{sharedFs:t,wsRegistry:n,wsBridge:r,processManager:i,lickManager:a,browser:o,log:s}=e;if(e.unsubLeader?.(),e.unsubFollower?.(),e.bshWatchdogStop?.(),e.scriptCatalogDispose?.(),e.lickWsBridgeStop?.(),e.syncFsResponderDispose?.(),e.navigationWatcherStop)try{await e.navigationWatcherStop()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(t)try{await t.unmountInternal(`/proc`)}catch{}try{n.dispose()}catch(e){s.warn(`WsSubscriberRegistry.dispose() failed`,e)}try{r.dispose()}catch(e){s.warn(`CdpWsPageBridge.dispose() failed`,e)}yfe({processManager:i,lickManager:a,browser:o,wsRegistry:n})}function yfe(e){let t=globalThis;t.__slicc_pm===e.processManager&&delete t.__slicc_pm,t.__slicc_lickManager===e.lickManager&&delete t.__slicc_lickManager,e.browser&&t.__slicc_browser===e.browser&&delete t.__slicc_browser,e.wsRegistry&&t.__slicc_wsSubscribers===e.wsRegistry&&delete t.__slicc_wsSubscribers,delete t[u9]}const G9=`x-bypass-llm-proxy`;function bfe(e,t,n){return t?(r,i)=>{if(!xfe(r,t,n))return e(r,i);let a=new Headers(i?.headers);return a.has(G9)||a.set(G9,`1`),e(r,{...i,headers:a})}:e}function xfe(e,t,n){if(Cfe(e,t))return!0;let r=n?.()??null;return r?Sfe(e,r,t):!1}function Sfe(e,t,n){let r=K9(e),i,a;try{i=new URL(r,n),a=new URL(t)}catch{return!1}return i.origin===a.origin&&i.pathname.startsWith(`/api/`)}function Cfe(e,t){let n=K9(e);try{return new URL(n,t).origin===t}catch{return!0}}function K9(e){return typeof e==`string`?e:e instanceof URL?e.href:e.url}function wfe(e,t={}){let n=t.onError??(e=>console.error(`[kernel-worker] boot failed`,e)),r=t.onDuplicate??(()=>console.warn(`[kernel-worker] received duplicate kernel-worker-init; ignoring`)),i=!1;return{handle(t){if(i){r();return}i=!0,e(t).catch(e=>{i=!1,n(e)})},isInitialized(){return i}}}var Tfe=class{transport;createShell;log;pm;defaultOwner;sessions=new Map;unsubscribe=null;constructor(e){this.transport=e.transport,this.createShell=e.createShell,this.log=e.logger??console,this.pm=e.processManager??null,this.defaultOwner=e.defaultOwner??{kind:`system`}}start(){return this.unsubscribe||=this.transport.onMessage(e=>{if(!Efe(e)||e.source!==`panel`)return;let t=e.payload;Dfe(t)&&this.handleControl(t).catch(e=>{this.log.warn(`[terminal-session-host] handler error`,e)})}),()=>this.dispose()}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,e]of this.sessions)e.currentProcess&&this.pm?(this.pm.signal(e.currentProcess.pid,`SIGTERM`),this.pm.exit(e.currentProcess.pid,null)):e.currentExec?.abort(),e.shell.dispose?.();this.sessions.clear()}async handleControl(e){switch(e.type){case`terminal-open`:return this.handleOpen(e);case`terminal-close`:return this.handleClose(e);case`terminal-exec`:return this.handleExec(e);case`terminal-signal`:return this.handleSignal(e);case`terminal-stdin`:case`terminal-resize`:return}}async handleOpen(e){if(this.sessions.has(e.sid)){this.emitStatus(e.sid,`error`,`session already open`);return}try{let t=this.createShell(e.sid,{cwd:e.cwd,env:e.env});this.sessions.set(e.sid,{shell:t,currentExec:null,currentProcess:null}),this.emitStatus(e.sid,`opened`)}catch(t){this.emitStatus(e.sid,`error`,t instanceof Error?t.message:String(t))}}async handleClose(e){let t=this.sessions.get(e.sid);t&&(t.currentProcess&&this.pm?(this.pm.signal(t.currentProcess.pid,`SIGTERM`),this.pm.exit(t.currentProcess.pid,null)):t.currentExec?.abort(),t.shell.dispose?.(),this.sessions.delete(e.sid),this.emitStatus(e.sid,`closed`))}emitExit(e,t){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:t})}emitStream(e,t,n){this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:t,data:n})}async handleExec(e){let t=this.sessions.get(e.sid);if(!t){this.emitExit(e,127),this.log.warn(`[terminal-session-host] exec on unknown session`,e.sid);return}if(t.currentExec){this.emitExit(e,130);return}let n=new AbortController;t.currentExec=n;let r=this.pm?this.pm.spawn({kind:`shell`,argv:[e.command],cwd:t.shell.getCwd?.()??void 0,owner:this.defaultOwner,adoptAbort:n}):null;t.currentProcess=r;try{let i=await t.shell.executeCommand(e.command,n.signal,r?.pid);await this.emitExecSuccess(e,i,n,r)}catch(t){this.emitExecError(e,t,n,r)}finally{t.currentExec===n&&(t.currentExec=null,t.currentProcess=null)}}async emitExecSuccess(e,t,n,r){let i=n.signal.aborted?q9(r?.terminatedBy??`SIGINT`):t.exitCode;n.signal.aborted||(r&&await r.gate.wait(),t.stdout&&this.emitStream(e,`stdout`,t.stdout),t.stderr&&this.emitStream(e,`stderr`,t.stderr)),this.emitExit(e,i),r&&this.pm&&this.pm.exit(r.pid,n.signal.aborted?null:t.exitCode)}emitExecError(e,t,n,r){if(n.signal.aborted){this.emitExit(e,q9(r?.terminatedBy??`SIGINT`)),r&&this.pm&&this.pm.exit(r.pid,null);return}let i=t instanceof Error?t.message:String(t);this.emitStream(e,`stderr`,`Error: ${i}\n`),this.emitExit(e,1),r&&this.pm&&this.pm.exit(r.pid,1)}async handleSignal(e){let t=this.sessions.get(e.sid);if(!t){this.log.warn(`[terminal-session-host] signal on unknown session`,e.sid);return}(e.signal===`SIGINT`||e.signal===`SIGTERM`||e.signal===`SIGKILL`)&&(t.currentProcess&&this.pm?this.pm.signal(t.currentProcess.pid,e.signal):t.currentExec?.abort())}emit(e){this.transport.send(e)}emitStatus(e,t,n){let r=n?{type:`terminal-status`,sid:e,state:t,error:n}:{type:`terminal-status`,sid:e,state:t};this.emit(r)}};function Efe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function q9(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function Dfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`terminal-open`||t===`terminal-close`||t===`terminal-exec`||t===`terminal-signal`||t===`terminal-stdin`||t===`terminal-resize`}var Ofe=class extends w9{sid;transport;constructor(e,t,n){super(n),this.sid=e,this.transport=t}async renderMediaPreview(e){for(let t of e){let e=``,n=t.bytes,r=8192;for(let t=0;t<n.length;t+=r)e+=String.fromCharCode(...n.subarray(t,t+r));let i={type:`terminal-media-preview`,sid:this.sid,path:t.path,mediaType:t.mimeType,data:btoa(e)};this.transport.send(i)}}};function kfe(e){let{transport:t,fs:n,browser:r,processManager:i,sudoManager:a}=e,o=e.logger??console,s=a?.getShellConfig({transparentGating:!1}),c=new Tfe({transport:t,processManager:i,createShell:(e,a)=>new Ofe(e,t,{fs:n,cwd:a.cwd,env:a.env,browserAPI:r,processManager:i,processOwner:{kind:`system`},sudo:s}),logger:o});return{host:c,stop:c.start()}}function Afe(e){let t=new jfe(e);return t.start(),{stop:()=>t.dispose()}}var jfe=class{transport;client;writableClient;log;unsubscribe=null;constructor(e){this.transport=e.transport,this.client=e.client,this.writableClient=e.writableClient??null,this.log=e.logger??console}start(){this.unsubscribe||=this.transport.onMessage(e=>{if(!Mfe(e)||e.source!==`panel`)return;let t=e.payload;if(Nfe(t)){this.handleRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] handler unexpectedly threw`,e)});return}if(Pfe(t)){this.handleWriteRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] write handler unexpectedly threw`,e)});return}})}dispose(){this.unsubscribe?.(),this.unsubscribe=null}async handleRequest(e){switch(e.type){case`vfs-read-dir`:return this.handleReadDir(e);case`vfs-read-file`:return this.handleReadFile(e);case`vfs-stat`:return this.handleStat(e)}}async handleReadDir(e){try{let t=await this.client.readDir(e.path),n={type:`vfs-read-dir-result`,requestId:e.requestId,ok:!0,entries:t};this.transport.send(n)}catch(t){this.emitError(`vfs-read-dir-result`,e.requestId,t,e.path)}}async handleReadFile(e){let t=e.encoding??`utf-8`;try{let n=await this.client.readFile(e.path,{encoding:t});if(t===`binary`){if(!(n instanceof Uint8Array)){this.emitError(`vfs-read-file-result`,e.requestId,new R(`EIO`,`readFile(binary) did not return Uint8Array`),e.path);return}let t={type:`vfs-read-file-result`,requestId:e.requestId,ok:!0,encoding:`binary`,data:n},r=n.buffer,i=typeof ArrayBuffer<`u`&&r instanceof ArrayBuffer?[r]:void 0;this.transport.send(t,i)}else{if(typeof n!=`string`){this.emitError(`vfs-read-file-result`,e.requestId,new R(`EIO`,`readFile(utf-8) did not return string`),e.path);return}let t={type:`vfs-read-file-result`,requestId:e.requestId,ok:!0,encoding:`utf-8`,data:n};this.transport.send(t)}}catch(t){this.emitError(`vfs-read-file-result`,e.requestId,t,e.path)}}async handleStat(e){try{let t=await this.client.stat(e.path),n={type:`vfs-stat-result`,requestId:e.requestId,ok:!0,stats:t};this.transport.send(n)}catch(t){this.emitError(`vfs-stat-result`,e.requestId,t,e.path)}}async handleWriteRequest(e){if(!this.writableClient){this.emitWriteError(Ffe(e.type),e.requestId,new R(`EACCES`,`vfs-rpc-host has no writable backend wired`),Ife(e));return}switch(e.type){case`vfs-write-file`:return this.handleWriteFile(e,this.writableClient);case`vfs-mkdir`:return this.handleMkdir(e,this.writableClient);case`vfs-rm`:return this.handleRm(e,this.writableClient);case`vfs-flush`:return this.handleFlush(e,this.writableClient);case`vfs-list-mount-points`:return this.handleListMountPoints(e,this.writableClient)}}async handleWriteFile(e,t){try{if(e.encoding===`binary`){if(!(e.data instanceof Uint8Array)){this.emitWriteError(`vfs-write-file-result`,e.requestId,new R(`EIO`,`vfs-write-file(binary) data is not Uint8Array`),e.path);return}}else if(typeof e.data!=`string`){this.emitWriteError(`vfs-write-file-result`,e.requestId,new R(`EIO`,`vfs-write-file(utf-8) data is not string`),e.path);return}let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.writeFile(e.path,e.data,n);let r={type:`vfs-write-file-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-write-file-result`,e.requestId,t,e.path)}}async handleMkdir(e,t){try{let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.mkdir(e.path,n);let r={type:`vfs-mkdir-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-mkdir-result`,e.requestId,t,e.path)}}async handleRm(e,t){try{let n=e.recursive===void 0?void 0:{recursive:e.recursive};await t.rm(e.path,n);let r={type:`vfs-rm-result`,requestId:e.requestId,ok:!0};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-rm-result`,e.requestId,t,e.path)}}async handleFlush(e,t){try{await t.flush();let n={type:`vfs-flush-result`,requestId:e.requestId,ok:!0};this.transport.send(n)}catch(t){this.emitWriteError(`vfs-flush-result`,e.requestId,t,``)}}async handleListMountPoints(e,t){if(!t.listMountPoints){this.emitWriteError(`vfs-list-mount-points-result`,e.requestId,new R(`EACCES`,`vfs-rpc-host has no mount-aware backend wired`),``);return}try{let n=await t.listMountPoints(),r={type:`vfs-list-mount-points-result`,requestId:e.requestId,ok:!0,mountPoints:n};this.transport.send(r)}catch(t){this.emitWriteError(`vfs-list-mount-points-result`,e.requestId,t,``)}}emitError(e,t,n,r){let i=J9(n,r);switch(e){case`vfs-read-dir-result`:{let e={type:`vfs-read-dir-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-read-file-result`:{let e={type:`vfs-read-file-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-stat-result`:{let e={type:`vfs-stat-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}}}emitWriteError(e,t,n,r){let i=J9(n,r);switch(r===``&&i.path===``&&delete i.path,e){case`vfs-write-file-result`:{let e={type:`vfs-write-file-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-mkdir-result`:{let e={type:`vfs-mkdir-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-rm-result`:{let e={type:`vfs-rm-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-flush-result`:{let e={type:`vfs-flush-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}case`vfs-list-mount-points-result`:{let e={type:`vfs-list-mount-points-result`,requestId:t,ok:!1,error:i};this.transport.send(e);return}}}};function Mfe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Nfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`vfs-read-dir`||t===`vfs-read-file`||t===`vfs-stat`}function Pfe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`vfs-write-file`||t===`vfs-mkdir`||t===`vfs-rm`||t===`vfs-flush`||t===`vfs-list-mount-points`}function Ffe(e){switch(e){case`vfs-write-file`:return`vfs-write-file-result`;case`vfs-mkdir`:return`vfs-mkdir-result`;case`vfs-rm`:return`vfs-rm-result`;case`vfs-flush`:return`vfs-flush-result`;case`vfs-list-mount-points`:return`vfs-list-mount-points-result`}}function Ife(e){return e.type===`vfs-flush`||e.type===`vfs-list-mount-points`?``:e.path}function J9(e,t){return e instanceof R?{code:e.code,message:e.message,path:e.path??t}:{code:`EIO`,message:e instanceof Error?e.message:String(e),path:t}}function Lfe(){let e=globalThis.fetch;if(!e)return;let t=self?.location?self.location.origin:void 0;globalThis.fetch=bfe(e.bind(globalThis),t,Rfe)}function Rfe(){let e=m();if(!e)return null;try{return new URL(e).origin}catch{return null}}function zfe(e){let t=new Map(Object.entries(e));Object.defineProperty(globalThis,"localStorage",{value:{get length(){return t.size},key(e){return Array.from(t.keys())[e]??null},getItem(e){return t.has(e)?t.get(e):null},setItem(e,n){t.set(e,n)},removeItem(e){t.delete(e)},clear(){t.clear()}},configurable:!0,writable:!0})}let Y9=null,X9=null,Z9=null,Q9=null,$9=null;const Bfe=wfe(e=>Vfe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&Bfe.handle(e.data)});async function Vfe(e){sr(e.instanceId);try{Lfe(),S(e.localApiBaseUrl??null),u(e.bridgeToken??null),PX(e.syncFsBridgeEnabled??!1),h(e.extensionDelegateId??null),zfe(e.localStorageSeed??{}),fe().catch(()=>{}),await s();let t=fr(e.kernelPort),n=new Lr(t),r=Lr.createCallbacks(n),a=new pr(e.cdpPort);await a.connect();let o=new Zn(a);Y9=await _fe({container:{},browser:o,bridge:n,callbacks:r,logger:console,localLickWsUrl:e.localLickWsUrl??null,syncFsChannelNonce:e.syncFsChannelNonce??null});let{createSprinkleManagerProxyOverChannel:c}=await import(`./sprinkle-bridge-channel-14cdGa6x.js`),l=c({instanceId:e.instanceId});globalThis.__slicc_sprinkleManager=l;let d=Y9.sharedFs?.getWatcher();if(d){let e=[`/workspace`,`/shared`,`/scoops`],t=null,n=new Set;for(let r of e)d.watch(r,e=>e.endsWith(`.shtml`),e=>{for(let t of e){let e=t.path.split(`/`).pop()?.replace(/\.shtml$/,``);e&&n.add(e)}t||=setTimeout(()=>{t=null;for(let e of n)l.reload(e).catch(()=>{});n.clear()},300)})}let{createPanelRpcClient:f}=await import(`./panel-rpc-CjFVE0nK.js`).then(e=>e.i);$9=f({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9,o.setTrayTargetProvider(rr(i));let p=await Hfe({host:Y9,transport:t,browser:o,instanceId:e.instanceId});p&&(X9=p.stopTerminalHost,Z9=p.stopVfsRpcHost,Q9=p.stopSpeechAssetsResponder),e.kernelPort.postMessage({type:`kernel-worker-ready`})}catch(e){throw lr(e),e}}async function Hfe(e){let t=e.host.sharedFs;if(!t)return console.warn(`[kernel-worker] shared FS unavailable; terminal sessions will fail to open`),null;let n=kfe({transport:e.transport,fs:t,browser:e.browser,processManager:e.host.processManager,sudoManager:e.host.orchestrator.getSudoManager(),logger:console}),r=Afe({transport:e.transport,client:t,writableClient:t,logger:console}),i=await Ufe(t,e.instanceId);return{stopTerminalHost:n.stop,stopVfsRpcHost:r.stop,stopSpeechAssetsResponder:i}}async function Ufe(e,t){let{installSpeechAssetsResponder:n}=await import(`./speech-assets-bridge-BUDIvdid.js`),{ensureSpeechAssetsStaged:r}=await import(`./ensure-speech-assets-8cWrra0n.js`),{createProxiedFetch:i}=await import(`./proxied-fetch-ldIfAeIb.js`).then(e=>e.o),a=i();return n({instanceId:t,ensure:t=>r({fs:e,fetch:a},t)})}self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-shutdown`&&(X9?.(),X9=null,Z9?.(),Z9=null,Q9?.(),Q9=null,$9?.dispose(),$9=null,Y9?.dispose())});