sliccy 6.78.3 → 6.78.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/ui/.vite/manifest.json +153 -153
  2. package/dist/ui/assets/{account-store-Bwe7JMH-.js → account-store-BSkcgqia.js} +1 -1
  3. package/dist/ui/assets/{account-store-Ch65aCFb.js → account-store-a-RbK7Ji.js} +1 -1
  4. package/dist/ui/assets/{adobe-DsgfMMl7.js → adobe-Bc5RH4Mm.js} +1 -1
  5. package/dist/ui/assets/{adobe-Bz9Td5du.js → adobe-Cl5qRv69.js} +1 -1
  6. package/dist/ui/assets/{apply-layout-CFIXh5fS.js → apply-layout-CLDc-lcp.js} +1 -1
  7. package/dist/ui/assets/{apps-Cs8oR4Lg.js → apps-BtecDEmW.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-Cm4-SPmb.js → azure-openai-CBClKEXD.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-V4ydKR70.js → azure-openai-Q_EJ2jLH.js} +1 -1
  10. package/dist/ui/assets/{cerebras-Cr72hzB7.js → cerebras-Bpve3E10.js} +1 -1
  11. package/dist/ui/assets/{cerebras-C51m3zHq.js → cerebras-CdRvo7Xk.js} +1 -1
  12. package/dist/ui/assets/{connect-surface-BgLFvMBr.js → connect-surface-tiC2OkJL.js} +1 -1
  13. package/dist/ui/assets/{dip-C4M86p74.js → dip-B58NQGEQ.js} +1 -1
  14. package/dist/ui/assets/{dist-Bh8-cxgl.js → dist-B6HZAA0r.js} +1 -1
  15. package/dist/ui/assets/{dist-BQ_FCdJ0.js → dist-BHvDPTv0.js} +1 -1
  16. package/dist/ui/assets/{dist-Bx8Nuiy3.js → dist-COLaZOxM.js} +2 -2
  17. package/dist/ui/assets/dist-CPNmKU6m.js +12 -0
  18. package/dist/ui/assets/{dist-BCutJA5Z.js → dist-mxmkfALf.js} +2 -2
  19. package/dist/ui/assets/{fs-CrXC-O2d.js → fs-Y-2f9vf-.js} +1 -1
  20. package/dist/ui/assets/{fs-CHduR_z-.js → fs-xLiyKHAd.js} +2 -2
  21. package/dist/ui/assets/{github-BIU4tpUD.js → github-CzFPhbtz.js} +2 -2
  22. package/dist/ui/assets/{github-copilot-DVH5IrYn.js → github-copilot-Bqdui7f_.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-D9Lwnwqf.js → github-copilot-DQ4pfVdK.js} +1 -1
  24. package/dist/ui/assets/{github-BGfSga5-.js → github-gTt3IxDW.js} +1 -1
  25. package/dist/ui/assets/{github-install-BdNHZlYI.js → github-install-XPjKx9g_.js} +1 -1
  26. package/dist/ui/assets/{github-zip-CpmjWt7A.js → github-zip-DJvZiicY.js} +1 -1
  27. package/dist/ui/assets/{js-realm-worker-MY0pjZ9h.js → js-realm-worker-50jMxmTJ.js} +1 -1
  28. package/dist/ui/assets/{kernel-worker-BKxUtfmY.js → kernel-worker-BagFMVvL.js} +27 -27
  29. package/dist/ui/assets/{local-llm-HqLsF79p.js → local-llm-B6pJb6YF.js} +1 -1
  30. package/dist/ui/assets/{local-llm-D1NRQkzz.js → local-llm-lLGlIItS.js} +1 -1
  31. package/dist/ui/assets/{main-BAZcY8aY.js → main-DrJ5tNU4.js} +3 -3
  32. package/dist/ui/assets/{mount-M6zAHrfJ.js → mount-ClmQt4LR.js} +1 -1
  33. package/dist/ui/assets/{mount-DG1bfETF.js → mount-Sd514_AB.js} +2 -2
  34. package/dist/ui/assets/{mount-recovery-_TjykwtG.js → mount-recovery-DXsq8_k_.js} +1 -1
  35. package/dist/ui/assets/{new-session--SSmR5Ga.js → new-session-DAwoothj.js} +2 -2
  36. package/dist/ui/assets/{oauth-bootstrap-BsYaFcYA.js → oauth-bootstrap-Cte2WTV3.js} +2 -2
  37. package/dist/ui/assets/{openai-codex-C5laLxy5.js → openai-codex-Crb4ez8h.js} +1 -1
  38. package/dist/ui/assets/{openai-codex-ChaoxQtS.js → openai-codex-D6SbNSmj.js} +1 -1
  39. package/dist/ui/assets/{openrouter-5bo3AK5r.js → openrouter-Cx8OxOop.js} +1 -1
  40. package/dist/ui/assets/{openrouter-BglEF0gx.js → openrouter-DJStrkuM.js} +1 -1
  41. package/dist/ui/assets/{openrouter-oauth-lWgqXvCt.js → openrouter-oauth-B9YTXL76.js} +1 -1
  42. package/dist/ui/assets/{openrouter-oauth-B_qwkZyM.js → openrouter-oauth-Cq2851sO.js} +1 -1
  43. package/dist/ui/assets/{panel-rpc-handlers-DOaYtEJ2.js → panel-rpc-handlers-BlAuyNMH.js} +2 -2
  44. package/dist/ui/assets/{provider-D5-Ws4A3.js → provider-348mSHul.js} +1 -1
  45. package/dist/ui/assets/{provider-DGKy0rlK.js → provider-dDANriNE.js} +2 -2
  46. package/dist/ui/assets/{provider-settings-DrEGQ7ef.js → provider-settings-2XG8sA8B.js} +1 -1
  47. package/dist/ui/assets/{provider-settings-BkIna1v7.js → provider-settings-D04MyJwf.js} +1 -1
  48. package/dist/ui/assets/{provider-store-access-Dr5cJrix.js → provider-store-access-B3OliAke.js} +2 -2
  49. package/dist/ui/assets/provider-store-access-C0k7xy0T.js +1 -0
  50. package/dist/ui/assets/{providers-DiWgfJHV.js → providers-CxrVhp4A.js} +2 -2
  51. package/dist/ui/assets/{providers-B9Tcuh9N.js → providers-mA21pCo6.js} +1 -1
  52. package/dist/ui/assets/{quick-llm-CSEzJrdv.js → quick-llm-Cf12U18g.js} +1 -1
  53. package/dist/ui/assets/{recovery-screen-BAeZAnd3.js → recovery-screen-CXxHQkty.js} +1 -1
  54. package/dist/ui/assets/{redirect-uri-BmNItvHl.js → redirect-uri-CGjQAXw3.js} +1 -1
  55. package/dist/ui/assets/{session-freezer-BU7ggIXE.js → session-freezer-BWZ8Pda2.js} +3 -3
  56. package/dist/ui/assets/{setup-feature-flags-remote-B7CMO8xS.js → setup-feature-flags-remote-B6y6hS43.js} +1 -1
  57. package/dist/ui/assets/{setup-standalone-prelude-Dg0BO-ug.js → setup-standalone-prelude-DwVhWiwy.js} +1 -1
  58. package/dist/ui/assets/{setup-sudo-w0slorYi.js → setup-sudo-CyS1nNtn.js} +2 -2
  59. package/dist/ui/assets/{skills-Qu2Xx97d.js → skills-DYa8ohlE.js} +1 -1
  60. package/dist/ui/assets/slicc-editor-CVftccS9.js +1 -0
  61. package/dist/ui/assets/{slicc-editor-w0xhQSQY.js → slicc-editor-DsHp_in-.js} +2 -2
  62. package/dist/ui/assets/slicc-version-BevD4ZHh.js +1 -0
  63. package/dist/ui/assets/{sprinkle-manager-2UUakPAV.js → sprinkle-manager-EEbsd3wB.js} +1 -1
  64. package/dist/ui/assets/{sprinkle-renderer-BvgsDBVv.js → sprinkle-renderer-D64E-W2o.js} +2 -2
  65. package/dist/ui/assets/{store-BY8jHah-.js → store-C-zQM6gR.js} +1 -1
  66. package/dist/ui/assets/{store-DLe-z7qR.js → store-SbJ_6YJe.js} +1 -1
  67. package/dist/ui/assets/{sudo-B-8VnvDn.js → sudo-Ik-mGhAY.js} +1 -1
  68. package/dist/ui/assets/{upgrade-detection-Bsw9PDXL.js → upgrade-detection-X7d39PBZ.js} +1 -1
  69. package/dist/ui/assets/{wc-extension-DYDuh0JO.js → wc-extension-Bi1mLMkJ.js} +2 -2
  70. package/dist/ui/assets/{wc-follower-ww51bVZi.js → wc-follower-CPNWIIOy.js} +3 -3
  71. package/dist/ui/assets/{wc-live-B-tu9Zmf.js → wc-live-CZl29X3Y.js} +5 -5
  72. package/dist/ui/assets/{wc-nav-DTKff66m.js → wc-nav-CSlOK5OE.js} +2 -2
  73. package/dist/ui/assets/{wc-onboarding-W9IFk-VE.js → wc-onboarding-DwqnU0M-.js} +2 -2
  74. package/dist/ui/assets/{wc-placeholder-BHMU_r6O.js → wc-placeholder-Bw4YeVys.js} +2 -2
  75. package/dist/ui/assets/{wc-settings-DXjEjm0D.js → wc-settings-Dpgi0212.js} +2 -2
  76. package/dist/ui/assets/{wc-shell-Csh9APE_.js → wc-shell-Da2c3euj.js} +2 -2
  77. package/dist/ui/assets/{wc-sprinkles-DzajqLC2.js → wc-sprinkles-DJDp5iTv.js} +2 -2
  78. package/dist/ui/assets/{wc-tray-DNQ32Rxm.js → wc-tray-DwvmqY9e.js} +2 -2
  79. package/dist/ui/assets/{wc-tray-scoops-bjahDti3.js → wc-tray-scoops-By8pWxvk.js} +1 -1
  80. package/dist/ui/assets/{xai-grok-Bjjeqaxc.js → xai-grok-BIIEg159.js} +1 -1
  81. package/dist/ui/assets/{xai-grok-D9twjPSS.js → xai-grok-P7Bkh_zs.js} +1 -1
  82. package/dist/ui/index.html +6 -6
  83. package/dist/ui/packages/webapp/index.html +6 -6
  84. package/dist/ui/slicc-editor.js +1 -1
  85. package/package.json +1 -1
  86. package/dist/ui/assets/dist-BXlTVHlX.js +0 -12
  87. package/dist/ui/assets/provider-store-access-BK4wRKW6.js +0 -1
  88. package/dist/ui/assets/slicc-editor-ioWYnKcY.js +0 -1
  89. package/dist/ui/assets/slicc-version-BJsqUhbP.js +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{t as r}from"./logger-LESFN7Hj.js";import"./logger-DQgFbfwx.js";import{n as i,r as a,t as o}from"./panel-rpc-BPwAqRch.js";import{a as s,t as c}from"./providers-B9Tcuh9N.js";import{a as l,c as u,d,f,i as p,l as m,o as h,p as g,r as _,s as v,t as y,u as b}from"./proxied-fetch-n2pCvcgW.js";import{a as x,i as S,n as C,r as w,s as T,t as E}from"./src-CcFD5QfS.js";import{$t as D,An as O,At as ee,Bt as te,Cn as k,Ct as A,D as ne,Dn as re,Dt as ie,E as ae,En as oe,Et as se,Fn as ce,Ft as le,Gt as ue,Ht as de,In as j,It as fe,Jt as pe,Kt as me,L as he,Ln as M,Lt as ge,M as _e,Mn as ve,Mt as ye,Nn as N,Nt as P,On as be,Ot as xe,Pn as F,Pt as Se,Q as I,Qt as Ce,R as L,Rn as R,Rt as we,Sn as Te,St as Ee,Tn as De,Tt as z,Ut as Oe,V as ke,Vt as Ae,Wt as je,X as Me,Xt as Ne,Y as Pe,Yt as Fe,Z as Ie,Zt as Le,_n as Re,_t as ze,an as Be,at as Ve,bn as He,bt as Ue,cn as We,ct as eee,dn as Ge,dt as Ke,en as qe,et as Je,fn as B,ft as Ye,gn as Xe,gt as Ze,h as tee,hn as Qe,ht as $e,in as et,it as tt,jn as nt,jt as rt,kn as it,kt as at,ln as ot,lt as st,m as ct,mn as lt,mt as ut,nn as dt,nt as ft,on as pt,ot as nee,pn as mt,pt as ht,qt as gt,rn as _t,rt as vt,sn as yt,st as bt,tn as xt,tt as St,un as Ct,ut as wt,vn as V,vt as Tt,w as Et,wn as Dt,wt as Ot,xn as kt,xt as At,yn as jt,yt as Mt,zt as Nt}from"./account-store-Bwe7JMH-.js";import{t as Pt}from"./runtime-env-DadgceZk.js";import{r as Ft}from"./binary-cache-bSOhqXB1.js";import{n as It,r as Lt,t as Rt}from"./fetch-body-DDu_AU5I.js";import{a as zt,i as Bt,n as Vt,t as Ht}from"./path-utils-DNJG-zQf.js";import{d as ree}from"./transform-messages-DEFauvrq.js";import{l as Ut,m as Wt}from"./bedrock-camp-B0KF_4RS.js";import{t as Gt}from"./__vite-browser-external-5eBdwsFd.js";import{n as Kt,t as qt}from"./mime-types-D7IV6i7k.js";import"./runtime-env-Dtj99aNH.js";import{t as Jt}from"./image-markers-CdcIBWOf.js";import{a as Yt,i as Xt,r as Zt}from"./tool-ui-DRnUkp2g.js";import{a as Qt,i as $t,o as en,r as tn,t as nn}from"./agent-message-to-chat-ChAiEgvC.js";import{a as rn,i as an,n as on,o as sn,r as cn,t as ln}from"./backend-local-B6kc_FvN.js";import"./runtime-env-DVGQx9p3.js";import{t as un}from"./types-idfTVsM8.js";import{a as dn,i as fn,n as pn,o as mn,r as hn,s as gn}from"./mount-M6zAHrfJ.js";import{o as _n}from"./mount-table-store-DrF_Ifaz.js";import{t as vn}from"./remote-cache-JAv9sQH_.js";import{r as yn,t as iee}from"./mount-recovery-_TjykwtG.js";import{a as aee,c as oee,i as bn,n as see,o as cee,r as lee,s as xn}from"./lick-urls-AW0BSaf4.js";import{C as Sn,D as Cn,E as wn,S as Tn,_ as En,a as Dn,b as On,d as kn,g as An,h as jn,m as Mn,n as Nn,o as Pn,r as Fn,s as In,t as Ln,u as Rn,w as zn,y as Bn}from"./db-DATxPCUz.js";import{a as Vn,i as Hn,n as Un,r as Wn}from"./tray-runtime-config-B1LF8Kd4.js";import{n as Gn,r as Kn,t as qn}from"./slicc-version-BJsqUhbP.js";import{a as Jn,c as Yn,d as Xn,i as Zn,l as Qn,n as $n,o as er,s as tr,t as nr,u as rr}from"./lick-manager-BJhAu_iX.js";import{a as ir,n as ar,r as or}from"./fs-CrXC-O2d.js";import{a as sr,c as cr,i as lr,l as ur,n as dr,o as H,r as fr,s as pr}from"./cost-command-Be2VSQE-.js";import{_ as mr,a as hr,b as gr,c as _r,d as vr,f as yr,g as br,h as xr,i as uee,l as Sr,m as Cr,n as dee,o as fee,p as pee,r as wr,s as mee,u as hee,v as gee,y as Tr}from"./skills-Qu2Xx97d.js";import{n as _ee,t as vee}from"./llm-session-id-BZyXP_j2.js";import{n as yee,r as bee}from"./frozen-archive-format--7sONywg.js";import{i as xee,r as See}from"./browser-2rCVqcqy.js";import{a as Er,i as Dr,n as Cee,r as wee,t as Tee}from"./telemetry-BwapcULJ.js";import{n as Or,t as kr}from"./safe-buffer-B2wnAhUx.js";import"./global-db-DJXlpNui.js";import{a as Eee,i as Ar,r as jr,t as Mr}from"./git-config-DA8M5e8O.js";import{a as Nr,c as Pr,i as Fr,o as Ir,r as Lr,s as Rr,t as zr}from"./script-catalog-Bt94D0RP.js";import{t as Br}from"./process-manager-unCzdHp3.js";import{A as Vr,C as Hr,O as Ur,_ as Wr,a as Gr,b as Kr,c as qr,d as Jr,f as Yr,g as Xr,h as Zr,i as Qr,k as $r,l as ei,m as ti,n as ni,o as ri,p as ii,r as ai,s as oi,t as si,u as ci,v as li,x as ui,y as di}from"./shared-DqziuFis.js";import{n as fi,t as pi}from"./esbuild-wasm-C_e51T2J.js";import{n as mi,t as hi}from"./wasm-compiler-Ct7QZURL.js";import{_ as gi,a as _i,c as vi,f as yi,g as bi,h as xi,l as Si,m as Ci,n as wi,p as Ti,r as Ei,u as Di,v as Oi,y as ki}from"./github-zip-CpmjWt7A.js";import{a as Ai,c as ji,d as Mi,f as Ni,i as Pi,l as Fi,n as Ii,o as Li,p as Ri,r as zi,s as Bi,u as Vi}from"./github-install-BdNHZlYI.js";import{n as Hi,t as Ui}from"./magick-wasm-DVJe3sB9.js";import{a as Wi,c as Gi,i as Ki,l as qi,n as Ji,o as Yi,r as Xi,s as Zi,t as Qi,u as $i}from"./installer-DW4F27JY.js";import{t as ea}from"./local-llm-D1NRQkzz.js";import{t as ta}from"./client-BTUV7dbh.js";import{t as na}from"./redirect-uri-BmNItvHl.js";var ra=class{pending=new Map;issue(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{this.pending.delete(e),i(Error(n))},t);this.pending.set(e,{resolve:r,reject:i,timer:a})})}has(e){return this.pending.has(e)}resolve(e,t){this.take(e)?.resolve(t)}reject(e,t){this.take(e)?.reject(t)}rejectAll(e){for(let[,t]of this.pending)clearTimeout(t.timer),t.reject(Error(e));this.pending.clear()}get size(){return this.pending.size}take(e){let t=this.pending.get(e);if(t)return this.pending.delete(e),clearTimeout(t.timer),t}};function ia(e,t,n){return new Promise((r,i)=>{let a=null,o=!1,s=setTimeout(()=>{o=!0,a?.(),i(Error(n))},t);a=e(e=>{clearTimeout(s),o=!0,a?.(),r(e)}),o&&a()})}const aa=r(`cdp`);var oa=class{ws=null;nextId=1;_superseded=!1;pending=new ra;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,aa.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(aa.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(),aa.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};t&&(a.params=t),n&&(a.sessionId=n),aa.debug(`Send`,{method:e,id:i,sessionId:n});let o=this.pending.issue(i,r,`CDP command timed out after ${r}ms: ${e}`);return this.ws.send(JSON.stringify(a)),o}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 ia(t=>(this.on(e,t),()=>this.off(e,t)),t,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;aa.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(aa.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;aa.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,aa.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):aa.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`;this.pending.rejectAll(n),this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(`CDP client disconnected`)}};const sa=r(`har-recorder`);var ca=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n){let r=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.client.send(`Network.enable`,{},t),await this.client.send(`Page.enable`,{},t);let i=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,a={id:r,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:i,snapshotCount:0};return this.recordings.set(r,a),this.setupEventListeners(a),await this.ensureDir(`/recordings/${r}`),sa.debug(`Started recording`,{recordingId:r,targetId:e,currentUrl:i}),r}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{n.sessionId===t&&this.handleRequestWillBeSent(e,n)},i=n=>{n.sessionId===t&&this.handleResponseReceived(e,n)},a=n=>{n.sessionId===t&&this.handleLoadingFinished(e,n)},o=n=>{n.sessionId===t&&this.handleLoadingFailed(e,n)},s=r=>{if(r.sessionId!==t)return;let i=r.frame;if(!i?.parentId&&i?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=i.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{sa.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let n=t.requestId,r=t.request,i=t.timestamp;e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let n=t.requestId,r=t.response,i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let n=t.requestId,r=t.timestamp,i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let n=t.requestId;e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return la(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return sa.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return sa.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),sa.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return sa.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function la(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){sa.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return sa.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}const ua=`(function() {
1
+ import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{t as r}from"./logger-LESFN7Hj.js";import"./logger-DQgFbfwx.js";import{n as i,r as a,t as o}from"./panel-rpc-BPwAqRch.js";import{a as s,t as c}from"./providers-mA21pCo6.js";import{a as l,c as u,d,f,i as p,l as m,o as h,p as g,r as _,s as v,t as y,u as b}from"./proxied-fetch-n2pCvcgW.js";import{a as x,i as S,n as C,r as w,s as T,t as E}from"./src-CcFD5QfS.js";import{$t as D,An as O,At as ee,Bt as te,Cn as k,Ct as A,D as ne,Dn as re,Dt as ie,E as ae,En as oe,Et as se,Fn as ce,Ft as le,Gt as ue,Ht as de,In as j,It as fe,Jt as pe,Kt as me,L as he,Ln as M,Lt as ge,M as _e,Mn as ve,Mt as ye,Nn as N,Nt as P,On as be,Ot as xe,Pn as F,Pt as Se,Q as I,Qt as Ce,R as L,Rn as R,Rt as we,Sn as Te,St as Ee,Tn as De,Tt as z,Ut as Oe,V as ke,Vt as Ae,Wt as je,X as Me,Xt as Ne,Y as Pe,Yt as Fe,Z as Ie,Zt as Le,_n as Re,_t as ze,an as Be,at as Ve,bn as He,bt as Ue,cn as We,ct as eee,dn as Ge,dt as Ke,en as qe,et as Je,fn as B,ft as Ye,gn as Xe,gt as Ze,h as tee,hn as Qe,ht as $e,in as et,it as tt,jn as nt,jt as rt,kn as it,kt as at,ln as ot,lt as st,m as ct,mn as lt,mt as ut,nn as dt,nt as ft,on as pt,ot as nee,pn as mt,pt as ht,qt as gt,rn as _t,rt as vt,sn as yt,st as bt,tn as xt,tt as St,un as Ct,ut as wt,vn as V,vt as Tt,w as Et,wn as Dt,wt as Ot,xn as kt,xt as At,yn as jt,yt as Mt,zt as Nt}from"./account-store-BSkcgqia.js";import{t as Pt}from"./runtime-env-DadgceZk.js";import{r as Ft}from"./binary-cache-bSOhqXB1.js";import{n as It,r as Lt,t as Rt}from"./fetch-body-DDu_AU5I.js";import{a as zt,i as Bt,n as Vt,t as Ht}from"./path-utils-DNJG-zQf.js";import{d as ree}from"./transform-messages-DEFauvrq.js";import{l as Ut,m as Wt}from"./bedrock-camp-B0KF_4RS.js";import{t as Gt}from"./__vite-browser-external-5eBdwsFd.js";import{n as Kt,t as qt}from"./mime-types-D7IV6i7k.js";import"./runtime-env-Dtj99aNH.js";import{t as Jt}from"./image-markers-CdcIBWOf.js";import{a as Yt,i as Xt,r as Zt}from"./tool-ui-DRnUkp2g.js";import{a as Qt,i as $t,o as en,r as tn,t as nn}from"./agent-message-to-chat-ChAiEgvC.js";import{a as rn,i as an,n as on,o as sn,r as cn,t as ln}from"./backend-local-B6kc_FvN.js";import"./runtime-env-DVGQx9p3.js";import{t as un}from"./types-idfTVsM8.js";import{a as dn,i as fn,n as pn,o as mn,r as hn,s as gn}from"./mount-ClmQt4LR.js";import{o as _n}from"./mount-table-store-DrF_Ifaz.js";import{t as vn}from"./remote-cache-JAv9sQH_.js";import{r as yn,t as iee}from"./mount-recovery-DXsq8_k_.js";import{a as aee,c as oee,i as bn,n as see,o as cee,r as lee,s as xn}from"./lick-urls-AW0BSaf4.js";import{C as Sn,D as Cn,E as wn,S as Tn,_ as En,a as Dn,b as On,d as kn,g as An,h as jn,m as Mn,n as Nn,o as Pn,r as Fn,s as In,t as Ln,u as Rn,w as zn,y as Bn}from"./db-DATxPCUz.js";import{a as Vn,i as Hn,n as Un,r as Wn}from"./tray-runtime-config-B1LF8Kd4.js";import{n as Gn,r as Kn,t as qn}from"./slicc-version-BevD4ZHh.js";import{a as Jn,c as Yn,d as Xn,i as Zn,l as Qn,n as $n,o as er,s as tr,t as nr,u as rr}from"./lick-manager-BJhAu_iX.js";import{a as ir,n as ar,r as or}from"./fs-Y-2f9vf-.js";import{a as sr,c as cr,i as lr,l as ur,n as dr,o as H,r as fr,s as pr}from"./cost-command-Be2VSQE-.js";import{_ as mr,a as hr,b as gr,c as _r,d as vr,f as yr,g as br,h as xr,i as uee,l as Sr,m as Cr,n as dee,o as fee,p as pee,r as wr,s as mee,u as hee,v as gee,y as Tr}from"./skills-DYa8ohlE.js";import{n as _ee,t as vee}from"./llm-session-id-BZyXP_j2.js";import{n as yee,r as bee}from"./frozen-archive-format--7sONywg.js";import{i as xee,r as See}from"./browser-2rCVqcqy.js";import{a as Er,i as Dr,n as Cee,r as wee,t as Tee}from"./telemetry-BwapcULJ.js";import{n as Or,t as kr}from"./safe-buffer-B2wnAhUx.js";import"./global-db-DJXlpNui.js";import{a as Eee,i as Ar,r as jr,t as Mr}from"./git-config-DA8M5e8O.js";import{a as Nr,c as Pr,i as Fr,o as Ir,r as Lr,s as Rr,t as zr}from"./script-catalog-Bt94D0RP.js";import{t as Br}from"./process-manager-unCzdHp3.js";import{A as Vr,C as Hr,O as Ur,_ as Wr,a as Gr,b as Kr,c as qr,d as Jr,f as Yr,g as Xr,h as Zr,i as Qr,k as $r,l as ei,m as ti,n as ni,o as ri,p as ii,r as ai,s as oi,t as si,u as ci,v as li,x as ui,y as di}from"./shared-DqziuFis.js";import{n as fi,t as pi}from"./esbuild-wasm-C_e51T2J.js";import{n as mi,t as hi}from"./wasm-compiler-Ct7QZURL.js";import{_ as gi,a as _i,c as vi,f as yi,g as bi,h as xi,l as Si,m as Ci,n as wi,p as Ti,r as Ei,u as Di,v as Oi,y as ki}from"./github-zip-DJvZiicY.js";import{a as Ai,c as ji,d as Mi,f as Ni,i as Pi,l as Fi,n as Ii,o as Li,p as Ri,r as zi,s as Bi,u as Vi}from"./github-install-XPjKx9g_.js";import{n as Hi,t as Ui}from"./magick-wasm-DVJe3sB9.js";import{a as Wi,c as Gi,i as Ki,l as qi,n as Ji,o as Yi,r as Xi,s as Zi,t as Qi,u as $i}from"./installer-DW4F27JY.js";import{t as ea}from"./local-llm-lLGlIItS.js";import{t as ta}from"./client-BTUV7dbh.js";import{t as na}from"./redirect-uri-CGjQAXw3.js";var ra=class{pending=new Map;issue(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{this.pending.delete(e),i(Error(n))},t);this.pending.set(e,{resolve:r,reject:i,timer:a})})}has(e){return this.pending.has(e)}resolve(e,t){this.take(e)?.resolve(t)}reject(e,t){this.take(e)?.reject(t)}rejectAll(e){for(let[,t]of this.pending)clearTimeout(t.timer),t.reject(Error(e));this.pending.clear()}get size(){return this.pending.size}take(e){let t=this.pending.get(e);if(t)return this.pending.delete(e),clearTimeout(t.timer),t}};function ia(e,t,n){return new Promise((r,i)=>{let a=null,o=!1,s=setTimeout(()=>{o=!0,a?.(),i(Error(n))},t);a=e(e=>{clearTimeout(s),o=!0,a?.(),r(e)}),o&&a()})}const aa=r(`cdp`);var oa=class{ws=null;nextId=1;_superseded=!1;pending=new ra;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,aa.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(aa.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(),aa.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};t&&(a.params=t),n&&(a.sessionId=n),aa.debug(`Send`,{method:e,id:i,sessionId:n});let o=this.pending.issue(i,r,`CDP command timed out after ${r}ms: ${e}`);return this.ws.send(JSON.stringify(a)),o}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 ia(t=>(this.on(e,t),()=>this.off(e,t)),t,`Timed out waiting for event: ${e}`)}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;aa.debug(`Response`,{id:e.id,hasError:!!e.error}),e.error?(aa.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),this.pending.reject(e.id,Error(`CDP error: ${e.error.message} (${e.error.code})`))):this.pending.resolve(e.id,e.result??{});return}if(`method`in t){let e=t;aa.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,aa.warn(`CDP slot superseded by another SLICC tab/window on this instance`,{code:e})):aa.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`;this.pending.rejectAll(n),this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.rejectAll(`CDP client disconnected`)}};const sa=r(`har-recorder`);var ca=class{recordings=new Map;client;fs;eventCleanup=new Map;constructor(e,t){this.client=e,this.fs=t}async startRecording(e,t,n){let r=`rec-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await this.client.send(`Network.enable`,{},t),await this.client.send(`Page.enable`,{},t);let i=(await this.client.send(`Runtime.evaluate`,{expression:`location.href`,returnByValue:!0},t)).result?.value??`about:blank`,a={id:r,targetId:e,sessionId:t,filterCode:n,pendingRequests:new Map,entries:[],startTime:Date.now(),currentUrl:i,snapshotCount:0};return this.recordings.set(r,a),this.setupEventListeners(a),await this.ensureDir(`/recordings/${r}`),sa.debug(`Started recording`,{recordingId:r,targetId:e,currentUrl:i}),r}setupEventListeners(e){let{sessionId:t,id:n}=e,r=n=>{n.sessionId===t&&this.handleRequestWillBeSent(e,n)},i=n=>{n.sessionId===t&&this.handleResponseReceived(e,n)},a=n=>{n.sessionId===t&&this.handleLoadingFinished(e,n)},o=n=>{n.sessionId===t&&this.handleLoadingFailed(e,n)},s=r=>{if(r.sessionId!==t)return;let i=r.frame;if(!i?.parentId&&i?.url){let t=[...e.entries],r=e.currentUrl;e.currentUrl=i.url,e.entries=[],e.pendingRequests.clear(),this.saveSnapshotWithEntries(e,`navigation`,t,r).catch(e=>{sa.error(`Failed to save navigation snapshot`,{recordingId:n,error:e instanceof Error?e.message:String(e)})})}};this.client.on(`Network.requestWillBeSent`,r),this.client.on(`Network.responseReceived`,i),this.client.on(`Network.loadingFinished`,a),this.client.on(`Network.loadingFailed`,o),this.client.on(`Page.frameNavigated`,s),this.eventCleanup.set(n,()=>{this.client.off(`Network.requestWillBeSent`,r),this.client.off(`Network.responseReceived`,i),this.client.off(`Network.loadingFinished`,a),this.client.off(`Network.loadingFailed`,o),this.client.off(`Page.frameNavigated`,s)})}handleRequestWillBeSent(e,t){let n=t.requestId,r=t.request,i=t.timestamp;e.pendingRequests.set(n,{requestId:n,startTime:i*1e3,request:{method:r.method,url:r.url,headers:r.headers,postData:r.postData}})}handleResponseReceived(e,t){let n=t.requestId,r=t.response,i=e.pendingRequests.get(n);i&&(i.response={status:r.status,statusText:r.statusText,headers:r.headers,mimeType:r.mimeType},i.timing=r.timing)}async handleLoadingFinished(e,t){let n=t.requestId,r=t.timestamp,i=e.pendingRequests.get(n);if(!i)return;i.endTime=r*1e3;try{let t=await this.client.send(`Network.getResponseBody`,{requestId:n},e.sessionId);i.responseBody=t.body,i.responseBodyBase64=t.base64Encoded}catch{}let a=this.buildHarEntry(i);a&&e.entries.push(a),e.pendingRequests.delete(n)}handleLoadingFailed(e,t){let n=t.requestId;e.pendingRequests.delete(n)}buildHarEntry(e){if(!e.response)return null;let{request:t,response:n,timing:r,startTime:i,endTime:a,responseBody:o,responseBodyBase64:s}=e,c=a?a-i:0,l=[];try{let e=new URL(t.url);l=Array.from(e.searchParams.entries()).map(([e,t])=>({name:e,value:t}))}catch{}let u=r?(()=>{let e=(e,t)=>{if(e==null||t==null||e<0||t<0)return-1;let n=t-e;return n>=0?n:-1},t=r.dnsStart>=0?r.dnsStart:r.connectStart>=0?r.connectStart:0;return{blocked:t>0?t:-1,dns:e(r.dnsStart,r.dnsEnd),connect:e(r.connectStart,r.connectEnd),ssl:e(r.sslStart,r.sslEnd),send:e(r.sendStart,r.sendEnd),wait:e(r.sendEnd,r.receiveHeadersStart),receive:e(r.receiveHeadersStart,r.receiveHeadersEnd)}})():{blocked:-1,dns:-1,connect:-1,ssl:-1,send:0,wait:c,receive:0},d={size:o?.length??0,mimeType:n.mimeType??`application/octet-stream`};o&&(d.text=o,s&&(d.encoding=`base64`));let f;return t.postData&&(f={mimeType:t.headers[`content-type`]??t.headers[`Content-Type`]??`text/plain`,text:t.postData}),{startedDateTime:new Date(i).toISOString(),time:c,request:{method:t.method,url:t.url,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(t.headers).map(([e,t])=>({name:e,value:t})),queryString:l,postData:f,headersSize:-1,bodySize:t.postData?.length??0},response:{status:n.status,statusText:n.statusText,httpVersion:`HTTP/1.1`,cookies:[],headers:Object.entries(n.headers).map(([e,t])=>({name:e,value:t})),content:d,redirectURL:n.headers.location??n.headers.Location??``,headersSize:-1,bodySize:d.size},cache:{},timings:u}}async saveSnapshot(e,t){return this.saveSnapshotWithEntries(e,t,e.entries,e.currentUrl)}async applyFilter(e,t){return la(e,t)}async saveSnapshotWithEntries(e,t,n,r){if(n.length===0)return sa.debug(`No entries to save`,{recordingId:e.id,trigger:t}),null;let i=e.filterCode?await this.applyFilter(n,e.filterCode):n;if(i.length===0)return sa.debug(`All entries filtered out`,{recordingId:e.id,trigger:t}),null;e.snapshotCount++;let a=new Date().toISOString().replace(/[:.]/g,`-`),o=this.urlToSlug(r),s=`${e.snapshotCount.toString().padStart(3,`0`)}-${a}-${t}-${o}.har`,c=`/recordings/${e.id}/${s}`,l={log:{version:`1.2`,creator:{name:`SLICC HAR Recorder`,version:`1.0.0`},entries:i}};return await this.fs.writeFile(c,JSON.stringify(l,null,2)),sa.debug(`Saved HAR snapshot`,{recordingId:e.id,path:c,entryCount:i.length}),c}urlToSlug(e){try{let t=new URL(e);return`${t.hostname}${t.pathname}`.replace(/[^a-zA-Z0-9]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,50)||`page`}catch{return`page`}}async stopRecording(e){let t=this.recordings.get(e);if(!t)throw Error(`Recording not found: ${e}`);await this.saveSnapshot(t,`close`);let n=this.eventCleanup.get(e);n&&(n(),this.eventCleanup.delete(e));try{await this.client.send(`Network.disable`,{},t.sessionId)}catch{}this.recordings.delete(e);let r=`/recordings/${e}`;return sa.debug(`Stopped recording`,{recordingId:e,snapshotCount:t.snapshotCount}),r}getRecording(e){return this.recordings.get(e)}getRecordingByTarget(e){for(let[t,n]of this.recordings)if(n.targetId===e)return t}async ensureDir(e){await this.fs.mkdir(e,{recursive:!0})}};function la(e,t){try{let n=Function(`entry`,`return (${t})(entry);`),r=[];for(let t of e)try{let e=n(t);if(e===!1)continue;typeof e==`object`&&e?r.push(e):r.push(t)}catch(e){sa.error(`Filter function error on entry, keeping it`,{error:e instanceof Error?e.message:String(e)}),r.push(t)}return r}catch(t){return sa.error(`Failed to compile filter, returning unfiltered`,{error:t instanceof Error?t.message:String(t)}),e}}const ua=`(function() {
2
2
  'use strict';
3
3
 
4
4
  // ===== DOM Utilities =====
@@ -878,7 +878,7 @@ import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{t as r}f
878
878
  return { x: r.x, y: r.y, width: r.width, height: r.height };
879
879
  }`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0)throw Error(`Element with backend node ${e} has no dimensions`);return{x:n.x+n.width/2,y:n.y+n.height/2}}async ensureLocalConnected(){if(this.localClient.superseded===!0){this.notifySuperseded();return}if(this.localClient.state===`disconnected`){let e=this._lastConnectOptions;await this.localClient.connect({url:e?.url??ma(),...e?.timeout===void 0?{}:{timeout:e.timeout},...e?.protocols===void 0?{}:{protocols:e.protocols}})}}async ensureConnected(){if(this.client.superseded===!0){this.notifySuperseded();return}this.client.state===`disconnected`&&(this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null,this.client.state===`disconnected`&&await this.connect(this._lastConnectOptions??void 0))}ensureAttached(){if(!this.sessionId)throw Error(`Not attached to a page. Call attachToPage(targetId) first.`)}addDialogListener(e){e.on(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}addExecutionContextListeners(e){e.on(`Runtime.executionContextCreated`,this.handleExecutionContextCreated),e.on(`Runtime.executionContextDestroyed`,this.handleExecutionContextDestroyed),e.on(`Runtime.executionContextsCleared`,this.handleExecutionContextsCleared)}removeDialogListener(e){e.off(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}removeExecutionContextListeners(e){e.off(`Runtime.executionContextCreated`,this.handleExecutionContextCreated),e.off(`Runtime.executionContextDestroyed`,this.handleExecutionContextDestroyed),e.off(`Runtime.executionContextsCleared`,this.handleExecutionContextsCleared)}setClient(e){this.client!==e&&(this.removeDialogListener(this.client),this.removeExecutionContextListeners(this.client),this.client=e,this.addDialogListener(this.client),this.addExecutionContextListeners(this.client))}async boundingBox(e){await this.client.send(`DOM.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.getDocument`,{depth:0},this.sessionId)).root.nodeId,n;try{n=(await this.client.send(`DOM.querySelector`,{nodeId:t,selector:e},this.sessionId)).nodeId}catch{return null}if(!n)return null;let r=(await this.client.send(`DOM.getBoxModel`,{nodeId:n},this.sessionId)).model;if(!r)return null;let i=r.content;return{x:i[0],y:i[1],width:r.width,height:r.height}}};function ga(e){let t=new Map;for(let n of e){let e=typeof n.backendDOMNodeId==`number`?n.backendDOMNodeId:null;if(e===null)continue;let r=n.role,i=n.name,a=typeof r?.value==`string`?r.value.toLowerCase():``,o=typeof i?.value==`string`?i.value:``;if(!a)continue;let s=`${a}|${o}`;t.has(s)||t.set(s,e)}return t}function _a(e,t){let n=`${e.role.toLowerCase()}|${e.name}`,r=t.get(n);if(r!==void 0&&(e.backendNodeId=r),e.children)for(let n of e.children)_a(n,t)}function va(e){let t={role:da(e.role,`unknown`),name:da(e.name)},n=da(e.value);n!==``&&(t.value=n);let r=da(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>va(e)).filter(e=>e.role!==`unknown`)),t}const ya=r(`panel-rpc-cdp`);var ba=class{getPanelRpc;runtimeId;localTargetId;timeoutMs;eventListeners=new Map;pendingOnce=new Set;key;_state=`connected`;pushRegistered=!1;constructor(e,t,n,r=3e4){this.getPanelRpc=e,this.runtimeId=t,this.localTargetId=n,this.timeoutMs=r,this.key=`${t}:${n}`}get state(){return this._state}async connect(){}disconnect(){this._state=`disconnected`;for(let e of this.pendingOnce)clearTimeout(e.timer),e.reject(Error(`Transport disconnected`));this.pendingOnce.clear();let e=this.getPanelRpc();e&&(this.pushRegistered&&=(e.unregisterPushTarget(this.key),!1),e.call(`remote-cdp-detach`,{runtimeId:this.runtimeId,localTargetId:this.localTargetId}).catch(e=>{ya.error(`remote-cdp detach failed (page-side session may leak)`,{key:this.key,error:e instanceof Error?e.message:String(e)})})),this.eventListeners.clear()}async send(e,t,n,r){if(this._state===`disconnected`)throw Error(`Transport disconnected`);let i=this.getPanelRpc();if(!i)throw Error(`cdp: no page bridge to the leader tray (panel-RPC client)`);let a=r??this.timeoutMs,s=Math.max(a,o)+5e3;return i.call(`remote-cdp-send`,{runtimeId:this.runtimeId,localTargetId:this.localTargetId,method:e,params:t,sessionId:n,timeout:a},{timeoutMs:s})}on(e,t){let n=this.eventListeners.get(e),r=!n||n.size===0;n||(n=new Set,this.eventListeners.set(e,n)),n.add(t),r&&this.subscribe(e)}off(e,t){let n=this.eventListeners.get(e);n&&(n.delete(t),n.size===0&&(this.eventListeners.delete(e),this.unsubscribe(e)))}once(e,t){return new Promise((n,r)=>{let i=t??this.timeoutMs,a={reject:r,timer:void 0},o=()=>{clearTimeout(a.timer),this.pendingOnce.delete(a),this.off(e,s)};a.timer=setTimeout(()=>{o(),r(Error(`Remote CDP event timed out: ${e}`))},i);let s=e=>{o(),n(e)};this.pendingOnce.add(a),this.on(e,s)})}handleEvent(e,t){let n=this.eventListeners.get(e);if(n)for(let e of[...n])e(t)}ensurePushRegistered(e){this.pushRegistered||=(e.registerPushTarget(this.key,e=>this.handleEvent(e.method,e.params??{})),!0)}subscribe(e){let t=this.getPanelRpc();if(!t){ya.error(`remote-cdp subscribe skipped: no panel-RPC client`,{key:this.key,event:e});return}this.ensurePushRegistered(t),t.call(`remote-cdp-subscribe`,{runtimeId:this.runtimeId,localTargetId:this.localTargetId,event:e}).catch(t=>{ya.error(`remote-cdp subscribe failed; events for this transport will not arrive`,{key:this.key,event:e,error:t instanceof Error?t.message:String(t)})})}unsubscribe(e){let t=this.getPanelRpc();t&&t.call(`remote-cdp-unsubscribe`,{runtimeId:this.runtimeId,localTargetId:this.localTargetId,event:e}).catch(t=>{ya.error(`remote-cdp unsubscribe failed (page-side forwarder may leak)`,{key:this.key,event:e,error:t instanceof Error?t.message:String(t)})})}};function xa(e){let t=new Map,n=(e,t)=>`${e}:${t}`;return{getTargets(){return[]},createRemoteTransport(r,i){let a=n(r,i),o=t.get(a);return o||(o=new ba(e,r,i),t.set(a,o)),o},removeRemoteTransport(e,r){let i=n(e,r),a=t.get(i);a&&(a.disconnect(),t.delete(i))},async openRemoteTab(t,n){let r=e();if(!r)throw Error(`cdp: no page bridge to the leader tray (panel-RPC client)`);let{targetId:i}=await r.call(`remote-open-tab`,{runtimeId:t,url:n});return i}}}const Sa=Object.freeze([Object.freeze({id:`experimental-settings`,label:`Experimental settings`,description:`Show controls for experimental features.`,defaultValue:`on`,floatDefaults:Object.freeze({cherry:`off`}),userToggleable:!1}),Object.freeze({id:`panel-layouts`,label:`Panel layouts`,description:`Arrange the UI as movable, resizable panels instead of the fixed workbench.`,defaultValue:`off`,userToggleable:!0}),Object.freeze({id:`agentic-memory`,label:`Agentic memory`,description:`Curate session memory with a background agent instead of a one-shot extraction call.`,defaultValue:`off`,userToggleable:!0}),Object.freeze({id:`multiple-cones`,label:`Multiple cones`,description:`Add, switch between and remove cones from the freezer rail. Extra cones share the workspace.`,defaultValue:`off`,userToggleable:!0})]);new Map(Sa.map(e=>[e.id,e]));const Ca=new Set([`1`,`on`,`true`]);let wa=`standalone`,Ta={},Ea={};function Da(e,t={},n=Oa()){let r={};for(let i of Sa){let a=n[i.id];if(typeof a==`string`&&Pa(i,e)){r[i.id]=a;continue}let o=Ea[i.id];if(typeof o==`string`&&Pa(i,e)){r[i.id]=o;continue}let s=t[i.id];r[i.id]=typeof s==`string`?s:Na(i,e)}return r}function Oa(){try{let e=Ia()?.getItem(`slicc_feature_flags`);return e?Fa(JSON.parse(e)):{}}catch{return{}}}function ka(e,t={}){wa=e,Ta=Fa(t),Ea={}}function Aa(e){return Da(wa,Ta)[e]}function ja(e){return typeof e==`string`&&Ca.has(e.trim().toLowerCase())}function Ma(e){return ja(Aa(e))}function Na(e,t){return e.floatDefaults?.[t]??e.defaultValue}function Pa(e,t){return e.userToggleable&&(e.overridableFloats===void 0||e.overridableFloats.includes(t))}function Fa(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t=e,n={};for(let e of Sa){let r=t[e.id];typeof r==`string`&&(n[e.id]=r)}return n}function Ia(){try{let e=globalThis.localStorage;return typeof e?.getItem!=`function`||typeof e.setItem!=`function`?void 0:e}catch{return}}function La(e){return`slicc_feature_flags_remote:${e}`}function Ra(e,t){ka(e,Ba(za(t),e)??{})}function za(e){if(e!==void 0)return e;try{let e=globalThis.localStorage;return typeof e?.getItem!=`function`||typeof e.setItem!=`function`?void 0:e}catch{return}}function Ba(e,t){try{let n=e?.getItem(La(t));return n?Va(JSON.parse(n)):null}catch{return null}}function Va(e){return!Dee(e)||Object.values(e).some(e=>typeof e!=`string`)?null:e}function Dee(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const Oee=r(`stale-asset`),kee=/dynamically imported module|importing a module script failed|expected a javascript module|module script/i;function Ha(e){return kee.test(e)}let Ua=null;function Aee(e){if(!e){Ua=null;return}Ua=e}function Wa(e=!1){if(!Ua||typeof BroadcastChannel!=`function`)return;let t=new BroadcastChannel(`slicc-stale-asset-reload`);try{t.postMessage({type:`stale-asset-reload`,instanceId:Ua,replayTurn:e})}finally{t.close()}}function jee(e){Ha(e instanceof Error?e.message:String(e))&&Wa()}function Mee(e,t){return!e||e===t?!1:(Oee.warn(`mixed build graph: page ${e} vs worker ${t} — requesting reload`),Wa(),!0)}var Nee=class{_state=`disconnected`;nextCommandId=1;listeners=new Map;pendingCommands=new ra;unsubscribe=null;opts;label;constructor(e){this.opts=e,this.label=e.label??`CDP transport`}get state(){return this._state}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);this.unsubscribe=this.opts.subscribeIncoming(e=>this.handleIncoming(e)),this._state=`connected`}disconnect(){this.unsubscribe?.(),this.unsubscribe=null,this.pendingCommands.rejectAll(`${this.label} disconnected`),this.listeners.clear(),this._state=`disconnected`}async send(e,t,n,r=3e4){if(this._state!==`connected`)throw Error(`${this.label} is not connected`);let i=this.nextCommandId++,a=this.opts.buildCommandEnvelope(i,e,t,n),o=this.pendingCommands.issue(i,r,`CDP command timed out after ${r}ms: ${e}`);return this.opts.sendEnvelope(a).catch(e=>{this.pendingCommands.reject(i,Error(`Failed to send CDP command: ${e instanceof Error?e.message:String(e)}`))}),o}on(e,t){let n=this.listeners.get(e),r=!n;n||(n=new Set,this.listeners.set(e,n)),n.add(t),r&&this.opts.onSubscribeEvent?.(e)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&(this.listeners.delete(e),this.opts.onUnsubscribeEvent?.(e)))}once(e,t=3e4){return ia(t=>(this.on(e,t),()=>this.off(e,t)),t,`Timed out waiting for event: ${e}`)}handleIncoming(e){let t=this.opts.parseResponse(e);if(t){this.handleResponse(t);return}let n=this.opts.parseEvent(e);n&&this.handleEvent(n)}handleResponse(e){if(!this.pendingCommands.has(e.id)){this.opts.onUnknownResponseId?.(e.id);return}e.error?this.pendingCommands.reject(e.id,Error(e.error)):this.pendingCommands.resolve(e.id,e.result??{})}handleEvent(e){let t=this.listeners.get(e.method);if(t)for(let n of t)try{n(e.params??{})}catch(t){this.opts.onListenerError?.(e.method,t)}}};function Ga(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:(t,n)=>{n&&n.length>0?e.postMessage(t,n):e.postMessage(t)}}}function Pee(e){let t=Ga(e);return{onMessage:e=>t.onMessage(e),send:(e,n)=>{t.send({source:`offscreen`,payload:e},n)}}}var Fee=class extends Nee{constructor(e){let t=Ga(e);super({label:`WorkerCdpProxy`,buildCommandEnvelope:(e,t,n,r)=>({type:`cdp-cmd`,id:e,method:t,params:n,sessionId:r}),sendEnvelope:e=>(t.send(e),Promise.resolve()),subscribeIncoming:e=>t.onMessage(e),parseResponse:e=>{let t=e;if(t?.type!==`cdp-response`)return null;if(typeof t.id!=`number`||!Number.isFinite(t.id))return console.warn(`[WorkerCdpProxy] dropping cdp-response with invalid id`,t),null;let n=e;return{id:n.id,result:n.result,error:n.error}},parseEvent:e=>{let t=e;if(t?.type!==`cdp-event`)return null;if(typeof t.method!=`string`)return console.warn(`[WorkerCdpProxy] dropping cdp-event with invalid method`,t),null;let n=e;return{method:n.method,params:n.params}},onSubscribeEvent:e=>{t.send({type:`cdp-subscribe`,event:e})},onUnsubscribeEvent:e=>{t.send({type:`cdp-unsubscribe`,event:e})}})}};const Iee=/^[\p{ID_Start}_$][\p{ID_Continue}_$\u200C\u200D]*$/u;function Lee(e){return Iee.test(e)}function Ka(e,t){return`(${e} && ${t})`}function qa(e,t){return`(${e} || ${t})`}function Ja(e){return`!(${e})`}function Ya(e){return`Array.isArray(${e})`}function Xa(e){return`typeof ${e} === "bigint"`}function Ree(e){return`typeof ${e} === "boolean"`}function zee(e){return`Number.isInteger(${e})`}function Bee(e){return`${e} === null`}function Za(e){return`Number.isFinite(${e})`}function Qa(e){return Ka($a(e),Ja(Ya(e)))}function $a(e){return`typeof ${e} === "object" && ${e} !== null`}function eo(e){return`typeof ${e} === "string"`}function Vee(e){return`typeof ${e} === "symbol"`}function to(e){return`${e} === undefined`}function Hee(e){return`typeof ${e} === "function"`}function Uee(e){return`Guard.IsConstructor(${e})`}function no(e,t){return`${e} === ${t}`}function ro(e,t){return`${e} > ${t}`}function io(e,t){return`${e} < ${t}`}function ao(e,t){return`${e} <= ${t}`}function oo(e,t){return`${e} >= ${t}`}function Wee(e,t){return`Guard.IsMinLength(${e}, ${t})`}function Gee(e,t){return`Guard.IsMaxLength(${e}, ${t})`}function so(e,t,n,r){return V(t,`0`)?`${e}.every((${n[0]}, ${n[1]}) => ${r})`:`((value, callback) => { for(let index = ${t}; index < value.length; index++) if (!callback(value[index], index)) return false; return true })(${e}, (${n[0]}, ${n[1]}) => ${r})`}function co(e){return`Object.entries(${e})`}function lo(e){return`Object.getOwnPropertyNames(${e})`}function uo(e,t){return V(t,`"__proto__"`)||V(t,`"constructor"`)?`Object.prototype.hasOwnProperty.call(${e}, ${t})`:`${t} in ${e}`}function fo(e,t){return`Guard.IsDeepEqual(${e}, ${t})`}function Kee(e){return`[${e.join(`, `)}]`}function po(e,t){return`((${e.join(`, `)}) => ${t})`}function mo(e,t){return`${e}(${t.join(`, `)})`}function ho(e,t){return`new ${e}(${t.join(`, `)})`}function U(e,t){return`${e}${Lee(t)?`.${t}`:`[${W(t)}]`}`}function W(e){return ve(e)?JSON.stringify(e):`${e}`}function go(e,t,n){return`(${e} ? ${t} : ${n})`}function _o(e){return`{ ${e.join(`; `)}; }`}function vo(e,t){return`const ${e} = ${t}`}function yo(e,t){return`if(${e}) { ${t} }`}function bo(e){return`return ${e}`}function xo(e){return V(e.length,0)?`true`:e.reduce((e,t)=>Ka(e,t))}function So(e){return V(e.length,0)?`false`:e.reduce((e,t)=>qa(e,t))}function Co(e){return`++${e}`}function wo(e,t){return`Guard.IsMultipleOf(${e}, ${t})`}var To=R;function Eo(e,t){return t[e.length]?.(...e)??(()=>{throw Error(`Invalid Arguments`)})()}let Do;function Oo(){try{return Ao(`null`)(),!0}catch{return!1}}function ko(){return F(Do)&&(Do=Oo()),Do&&pt().useAcceleration}function Ao(...e){return new globalThis.Function(...e)}function jo(e){switch(e.keyword){case`additionalProperties`:return`must not have additional properties`;case`anyOf`:return`must match a schema in anyOf`;case`boolean`:return`schema is false`;case`const`:return`must be equal to constant`;case`contains`:return`must contain at least 1 valid item`;case`dependencies`:return`must have properties ${e.params.dependencies.join(`, `)} when property ${e.params.property} is present`;case`dependentRequired`:return`must have properties ${e.params.dependencies.join(`, `)} when property ${e.params.property} is present`;case`enum`:return`must be equal to one of the allowed values`;case`exclusiveMaximum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`exclusiveMinimum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`format`:return`must match format "${e.params.format}"`;case`if`:return`must match "${e.params.failingKeyword}" schema`;case`maxItems`:return`must not have more than ${e.params.limit} items`;case`maxLength`:return`must not have more than ${e.params.limit} characters`;case`maxProperties`:return`must not have more than ${e.params.limit} properties`;case`maximum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`minItems`:return`must not have fewer than ${e.params.limit} items`;case`minLength`:return`must not have fewer than ${e.params.limit} characters`;case`minProperties`:return`must not have fewer than ${e.params.limit} properties`;case`minimum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`multipleOf`:return`must be multiple of ${e.params.multipleOf}`;case`not`:return`must not be valid`;case`oneOf`:return`must match exactly one schema in oneOf`;case`pattern`:return`must match pattern "${e.params.pattern}"`;case`propertyNames`:return`property names ${e.params.propertyNames.join(`, `)} are invalid`;case`required`:return`must have required properties ${e.params.requiredProperties.join(`, `)}`;case`type`:return typeof e.params.type==`string`?`must be ${e.params.type}`:`must be either ${e.params.type.join(` or `)}`;case`unevaluatedItems`:return`must not have unevaluated items`;case`unevaluatedProperties`:return`must not have unevaluated properties`;case`uniqueItems`:return`must not have duplicate items`;case`~refine`:return e.params.message;default:return`an unknown validation error occurred`}}let Mo=jo;function No(){return Mo}const Po=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/exceeds (?:the )?(?:model'?s )?maximum context length(?: of [\d,]+ tokens?|\s*\([\d,]+\))/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,/input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/prompt has [\d,]+ tokens?, but the configured context size is [\d,]+ tokens?/i,/model_context_window_exceeded/i,/prompt too long; exceeded (?:max )?context length/i,/range of input length should be/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i],Fo=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function Io(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&!Fo.some(t=>t.test(e.errorMessage))&&Po.some(t=>t.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t||t&&e.stopReason===`length`&&e.usage.output===0&&e.usage.input+e.usage.cacheRead>=t*.99)}function Lo(e){return B(e,`~refine`)&&mt(e[`~refine`])&&Ct(e[`~refine`],0,e=>O(e)&&B(e,`check`)&&B(e,`error`)&&jt(e.check)&&jt(e.error))}function Ro(e){return O(e)&&!mt(e)}function zo(e){return Qe(e)}function Bo(e){return Ro(e)||zo(e)}function Vo(e){return B(e,`additionalItems`)&&Bo(e.additionalItems)}function Ho(e){return B(e,`additionalProperties`)&&Bo(e.additionalProperties)}function Uo(e){return B(e,`allOf`)&&mt(e.allOf)&&e.allOf.every(e=>Bo(e))}function Wo(e){return B(e,`$anchor`)&&ve(e.$anchor)}function Go(e){return B(e,`anyOf`)&&mt(e.anyOf)&&e.anyOf.every(e=>Bo(e))}function Ko(e){return B(e,`const`)}function qo(e){return B(e,`contains`)&&Bo(e.contains)}function Jo(e){return B(e,`default`)}function Yo(e){return B(e,`dependencies`)&&O(e.dependencies)&&Object.values(e.dependencies).every(e=>Bo(e)||mt(e)&&e.every(e=>ve(e)))}function Xo(e){return B(e,`dependentRequired`)&&O(e.dependentRequired)&&Object.values(e.dependentRequired).every(e=>mt(e)&&e.every(e=>ve(e)))}function Zo(e){return B(e,`dependentSchemas`)&&O(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(e=>Bo(e))}function Qo(e){return B(e,`$dynamicAnchor`)&&ve(e.$dynamicAnchor)}function $o(e){return B(e,`$dynamicRef`)&&ve(e.$dynamicRef)}function es(e){return B(e,`else`)&&Bo(e.else)}function ts(e){return B(e,`enum`)&&mt(e.enum)}function ns(e){return B(e,`exclusiveMaximum`)&&(it(e.exclusiveMaximum)||lt(e.exclusiveMaximum))}function rs(e){return B(e,`exclusiveMinimum`)&&(it(e.exclusiveMinimum)||lt(e.exclusiveMinimum))}function is(e){return B(e,`format`)&&ve(e.format)}function as(e){return B(e,`$id`)&&ve(e.$id)}function os(e){return B(e,`if`)&&Bo(e.if)}function ss(e){return B(e,`items`)&&(Bo(e.items)||mt(e.items)&&e.items.every(e=>Bo(e)))}function cs(e){return ss(e)&&mt(e.items)}function ls(e){return B(e,`maximum`)&&(it(e.maximum)||lt(e.maximum))}function us(e){return B(e,`maxContains`)&&it(e.maxContains)}function ds(e){return B(e,`maxItems`)&&it(e.maxItems)}function fs(e){return B(e,`maxLength`)&&it(e.maxLength)}function ps(e){return B(e,`maxProperties`)&&it(e.maxProperties)}function ms(e){return B(e,`minimum`)&&(it(e.minimum)||lt(e.minimum))}function hs(e){return B(e,`minContains`)&&it(e.minContains)}function gs(e){return B(e,`minItems`)&&it(e.minItems)}function _s(e){return B(e,`minLength`)&&it(e.minLength)}function vs(e){return B(e,`minProperties`)&&it(e.minProperties)}function ys(e){return B(e,`multipleOf`)&&(it(e.multipleOf)||lt(e.multipleOf))}function bs(e){return B(e,`not`)&&Bo(e.not)}function xs(e){return B(e,`oneOf`)&&mt(e.oneOf)&&e.oneOf.every(e=>Bo(e))}function Ss(e){return B(e,`pattern`)&&(ve(e.pattern)||e.pattern instanceof RegExp)}function Cs(e){return B(e,`patternProperties`)&&O(e.patternProperties)&&Object.values(e.patternProperties).every(e=>Bo(e))}function ws(e){return B(e,`prefixItems`)&&mt(e.prefixItems)&&e.prefixItems.every(e=>Bo(e))}function Ts(e){return B(e,`properties`)&&O(e.properties)&&Object.values(e.properties).every(e=>Bo(e))}function Es(e){return B(e,`propertyNames`)&&(O(e.propertyNames)||Bo(e.propertyNames))}function Ds(e){return B(e,`$recursiveAnchor`)&&Qe(e.$recursiveAnchor)}function Os(e){return Ds(e)&&V(e.$recursiveAnchor,!0)}function ks(e){return B(e,`$recursiveRef`)&&ve(e.$recursiveRef)}function As(e){return B(e,`$ref`)&&ve(e.$ref)}function js(e){return B(e,`required`)&&mt(e.required)&&e.required.every(e=>ve(e))}function Ms(e){return B(e,`then`)&&Bo(e.then)}function Ns(e){return B(e,`type`)&&(ve(e.type)||mt(e.type)&&e.type.every(e=>ve(e)))}function Ps(e){return B(e,`uniqueItems`)&&Qe(e.uniqueItems)}function Fs(e){return B(e,`unevaluatedItems`)&&Bo(e.unevaluatedItems)}function Is(e){return B(e,`unevaluatedProperties`)&&Bo(e.unevaluatedProperties)}function Ls(e){return Fs(e)||Is(e)||M(e).some(t=>zs(e[t]))}function Rs(e){return e.some(e=>zs(e))}function zs(e){return mt(e)?Rs(e):O(e)?Ls(e):!1}function Bs(e,t){return zs(t)||M(e).some(t=>zs(e[t]))}var Vs=class{constructor(e){this.hasUnevaluated=e}UseUnevaluated(){return this.hasUnevaluated}Push(){return mo(U(`context`,`Push`),[])}Pop(){return mo(U(`context`,`Pop`),[])}AddIndex(e){return mo(U(`context`,`AddIndex`),[e])}AddKey(e){return mo(U(`context`,`AddKey`),[e])}Merge(e){return mo(U(`context`,`Merge`),[e])}},Hs=class{constructor(){let e=new Set,t=new Set;this.stack=[{indices:e,keys:t}]}Push(){let e=new Set,t=new Set;return this.stack.push({indices:e,keys:t}),!0}Pop(){return this.stack.pop(),!0}AddIndex(e){return this.GetIndices().add(e),!0}AddKey(e){return this.GetKeys().add(e),!0}GetIndices(){return this.stack[this.stack.length-1].indices}GetKeys(){return this.stack[this.stack.length-1].keys}Merge(e){for(let t of e)t.GetIndices().forEach(e=>this.GetIndices().add(e)),t.GetKeys().forEach(e=>this.GetKeys().add(e));return!0}},Us=class extends Hs{constructor(e){super(),this.callback=e}AddError(e){return this.callback(e),!1}},Ws=class extends Us{constructor(){super(e=>this.errors.push(e)),this.errors=[]}AddError(e){return this.errors.push(e),!1}GetErrors(){return this.errors}};const Gs={identifier:`External`,variables:[]};function Ks(e){let t=`External[${Gs.variables.length}]`;return Gs.variables.push(e),t}function qs(){Gs.variables=[]}function Js(){return{...Gs}}function Ys(e,t,n,r){return so(Ks(n[`~refine`].map(e=>e)),W(0),[`refinement`,`_`],mo(U(`refinement`,`check`),[r]))}function Xs(e,t,n,r){return Ct(n[`~refine`],0,(e,t)=>e.check(r))}function Zs(e,t,n,r,i,a){return Ge(i[`~refine`],0,(e,i)=>e.check(a)||t.AddError({keyword:`~refine`,schemaPath:n,instancePath:r,params:{index:i,message:e.error(a)}}))}let Qs=0;function $s(){return`var_${Qs++}`}function ec(e){return ss(e)&&mt(e.items)}function tc(e,t,n,r){if(!ec(n))return W(!0);let[i,a]=[$s(),$s()],o=Bu(e,t,n.additionalItems,i),s=io(a,W(n.items.length)),c=t.AddIndex(a),l=t.UseUnevaluated()?qa(s,Ka(o,c)):qa(s,o);return mo(U(r,`every`),[po([i,a],l)])}function nc(e,t,n,r){return!ec(n)||r.every((r,i)=>Dt(i,n.items.length)||Hu(e,t,n.additionalItems,r)&&t.AddIndex(i))}function rc(e,t,n,r,i,a){return!ec(i)||a.every((a,o)=>{let s=`${n}/additionalItems`,c=`${r}/${o}`;return Dt(o,i.items.length)||Wu(e,t,s,c,i.additionalItems,a)&&t.AddIndex(o)})}function ic(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}$`}function ac(e){let t=[];return Cs(e)&&t.push(...M(e.patternProperties)),Ts(e)&&t.push(...M(e.properties).map(ic)),V(t.length,0)?`(?!)`:`(${t.join(`|`)})`}function oc(e,t,n){return js(t)&&Ts(t)&&!Cs(t)&&V(t.additionalProperties,!1)&&V(M(t.properties).length,t.required.length)}function sc(e,t,n){return no(U(mo(U(`Object`,`getOwnPropertyNames`),[n]),`length`),W(t.required.length))}function cc(e,t,n,r){let[i,a]=[$s(),$s()],o=Ks(new RegExp(ac(n))),s=Bu(e,t,n.additionalProperties,`${r}[${i}]`),c=mo(U(o,`test`),[i]),l=t.AddKey(i),u=t.UseUnevaluated()?qa(c,Ka(s,l)):qa(c,s);return so(lo(r),W(0),[i,a],u)}function lc(e,t,n,r){return oc(t,n,r)?sc(t,n,r):cc(e,t,n,r)}function uc(e,t,n,r){let i=new RegExp(ac(n));return Ct(M(r),0,(a,o)=>i.test(a)||Hu(e,t,n.additionalProperties,r[a])&&t.AddKey(a))}function dc(e,t,n,r,i,a){let o=new RegExp(ac(i)),s=[];return Ge(M(a),0,(c,l)=>{let u=`${n}/additionalProperties`,d=`${r}/${c}`,f=new Ws,p=o.test(c)||Wu(e,f,u,d,i.additionalProperties,a[c])&&t.AddKey(c);return p||s.push(c),p})||t.AddError({keyword:`additionalProperties`,schemaPath:n,instancePath:r,params:{additionalProperties:s}})}function fc(e,t,n,r,i){let a=vo(`results`,`[]`),o=n.map((e,t)=>vo(`context_${t}`,ho(`CheckContext`,[]))),s=n.map((n,i)=>vo(`condition_${i}`,mo(po([`context`],Vu(e,t,n,r)),[`context_${i}`]))),c=n.map((e,t)=>yo(`condition_${t}`,mo(U(`results`,`push`),[`context_${t}`]))),l=bo(Ka(i,t.Merge(`results`)));return mo(po([],_o([a,...o,...s,...c,l])),[])}function pc(e,t,n,r){return fc(e,t,n.allOf,r,no(U(`results`,`length`),W(n.allOf.length)))}function mc(e,t,n,r){return xo(n.allOf.map(n=>Vu(e,t,n,r)))}function hc(e,t,n,r){return t.UseUnevaluated()?pc(e,t,n,r):mc(e,t,n,r)}function gc(e,t,n,r){let i=n.allOf.reduce((t,n)=>{let i=new Hs;return Uu(e,i,n,r)?[...t,i]:t},[]);return V(i.length,n.allOf.length)&&t.Merge(i)}function _c(e,t,n,r,i,a){let o=[],s=i.allOf.reduce((t,i,s)=>{let c=`${n}/allOf/${s}`,l=new Ws,u=Gu(e,l,c,r,i,a);return u||o.push(l),u?[...t,l]:t},[]),c=V(s.length,i.allOf.length)&&t.Merge(s);return c||o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),c}function vc(e,t,n,r){return fc(e,t,n.anyOf,r,ro(U(`results`,`length`),W(0)))}function yc(e,t,n,r){return So(n.anyOf.map(n=>Vu(e,t,n,r)))}function bc(e,t,n,r){return t.UseUnevaluated()?vc(e,t,n,r):yc(e,t,n,r)}function xc(e,t,n,r){let i=n.anyOf.reduce((t,n)=>{let i=new Hs;return Uu(e,i,n,r)?[...t,i]:t},[]);return kt(i.length,0)&&t.Merge(i)}function Sc(e,t,n,r,i,a){let o=[],s=i.anyOf.reduce((t,i,s)=>{let c=new Ws,l=Gu(e,c,`${n}/anyOf/${s}`,r,i,a);return l||o.push(c),l?[...t,c]:t},[]),c=kt(s.length,0)&&t.Merge(s);return c||o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),c||t.AddError({keyword:`anyOf`,schemaPath:n,instancePath:r,params:{}})}function Cc(e,t,n,r){return W(!!n)}function wc(e,t,n,r){return n}function Tc(e,t,n,r,i,a){return wc(e,t,i,a)||t.AddError({keyword:`boolean`,schemaPath:n,instancePath:r,params:{}})}function Ec(e,t,n,r){return j(n.const)?no(r,W(n.const)):fo(r,Ks(n.const))}function Dc(e,t,n,r){return j(n.const)?V(r,n.const):Re(r,n.const)}function Oc(e,t,n,r,i,a){return Dc(e,t,i,a)||t.AddError({keyword:`const`,schemaPath:n,instancePath:r,params:{allowedValue:i.const}})}function kc(e){return!(hs(e)&&V(e.minContains,0))}function Ac(e,t,n,r){if(!kc(n))return W(!0);let i=$s();return Ka(Ja(no(U(r,`length`),W(0))),mo(U(r,`some`),[po([i],Vu(e,t,n.contains,i))]))}function jc(e,t,n,r){return!kc(n)||!V(r.length,0)&&r.some(r=>Uu(e,t,n.contains,r))}function Mc(e,t,n,r,i,a){return jc(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:1}})}function Nc(e,t,n,r){return qa(no(U(lo(r),`length`),W(0)),xo(We(n.dependencies).map(([n,i])=>{let a=Ja(uo(r,W(n))),o=Vu(e,t,i,r);return qa(a,mt(i)?(e=>xo(e.map(e=>uo(r,W(e)))))(i):o)})))}function Pc(e,t,n,r){let i=V(M(r).length,0),a=Ct(We(n.dependencies),0,([n,i])=>!B(r,n)||(mt(i)?i.every(e=>B(r,e)):Uu(e,t,i,r)));return i||a}function Fc(e,t,n,r,i,a){let o=V(M(a).length,0),s=Ge(We(i.dependencies),0,([i,o])=>{let s=`${n}/dependencies/${i}`;return!B(a,i)||(mt(o)?o.every(e=>B(a,e)||t.AddError({keyword:`dependencies`,schemaPath:n,instancePath:r,params:{property:i,dependencies:o}})):Gu(e,t,s,r,o,a))});return o||s}function Ic(e,t,n,r){return qa(no(U(lo(r),`length`),W(0)),xo(We(n.dependentRequired).map(([e,t])=>qa(Ja(uo(r,W(e))),xo(t.map(e=>uo(r,W(e))))))))}function Lc(e,t,n,r){let i=V(M(r).length,0),a=Ct(We(n.dependentRequired),0,([e,t])=>!B(r,e)||t.every(e=>B(r,e)));return i||a}function Rc(e,t,n,r,i,a){let o=V(M(a).length,0),s=Ge(We(i.dependentRequired),0,([e,i])=>!B(a,e)||Ge(i,0,o=>B(a,o)||t.AddError({keyword:`dependentRequired`,schemaPath:n,instancePath:r,params:{property:e,dependencies:i}})));return o||s}function zc(e,t,n,r){return qa(no(U(lo(r),`length`),W(0)),xo(We(n.dependentSchemas).map(([n,i])=>qa(Ja(uo(r,W(n))),Vu(e,t,i,r)))))}function Bc(e,t,n,r){let i=V(M(r).length,0),a=Ct(We(n.dependentSchemas),0,([n,i])=>!B(r,n)||Uu(e,t,i,r));return i||a}function Vc(e,t,n,r,i,a){let o=V(M(a).length,0),s=Ge(We(i.dependentSchemas),0,([i,o])=>{let s=`${n}/dependentSchemas/${i}`;return!B(a,i)||Gu(e,t,s,r,o,a)});return o||s}function Hc(e,t,n,r){return Yu(e,t,e.DynamicRef(n)??!1,r)}function Uc(e,t,n,r){let i=e.DynamicRef(n)??!1;return Bo(i)&&Uu(e,t,i,r)}function Wc(e,t,n,r,i,a){let o=e.DynamicRef(i)??!1;return Bo(o)&&Gu(e,t,`#`,r,o,a)}function Gc(e,t,n,r){return So(n.enum.map(e=>j(e)?no(r,W(e)):fo(r,Ks(e))))}function Kc(e,t,n,r){return n.enum.some(e=>j(e)?V(r,e):Re(r,e))}function qc(e,t,n,r,i,a){return Kc(e,t,i,a)||t.AddError({keyword:`enum`,schemaPath:n,instancePath:r,params:{allowedValues:i.enum}})}function Jc(e,t,n,r){return io(r,W(n.exclusiveMaximum))}function Yc(e,t,n,r){return Dt(r,n.exclusiveMaximum)}function Xc(e,t,n,r,i,a){return Yc(e,t,i,a)||t.AddError({keyword:`exclusiveMaximum`,schemaPath:n,instancePath:r,params:{comparison:`<`,limit:i.exclusiveMaximum}})}function Zc(e,t,n,r){return ro(r,W(n.exclusiveMinimum))}function Qc(e,t,n,r){return kt(r,n.exclusiveMinimum)}function $c(e,t,n,r,i,a){return Qc(e,t,i,a)||t.AddError({keyword:`exclusiveMinimum`,schemaPath:n,instancePath:r,params:{comparison:`>`,limit:i.exclusiveMinimum}})}const el=[0,31,28,31,30,31,30,31,31,30,31,30,31],tl=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function nl(e){return e%4==0&&(e%100!=0||e%400==0)}function rl(e){let t=tl.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&nl(n)?29:el[r])}const il=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function al(e,t=!0){let n=il.exec(e);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=n[4]===`-`?-1:1,s=+(n[5]||0),c=+(n[6]||0);if(s>23||c>59||t&&!n[4]&&e.toLowerCase().indexOf(`z`)===-1)return!1;if(r<=23&&i<=59&&a<60)return!0;let l=i-c*o,u=r-s*o-+(l<0);return(u===23||u===-1)&&(l===59||l===-1)&&a<61}function ol(e,t=!0){let n=e.split(/T/i);return n.length===2&&rl(n[0])&&al(n[1],t)}const sl=/^P((\d+Y(\d+M(\d+D)?)?|\d+M(\d+D)?|\d+D)(T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S))?|T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S)|\d+W)$/;function cl(e){return sl.test(e)}const ll=/^(?!.*\.\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;function ul(e){return ll.test(e)}function dl(e,t,n){e=n?Math.floor(e/700):e>>1,e+=Math.floor(e/t);let r=0;for(;e>455;)e=Math.floor(e/35),r+=36;return r+Math.floor(36*e/(e+38))}function fl(e){let t=[],n=128,r=0,i=72,a=e.lastIndexOf(`-`);if(a>0)for(let n=0;n<a;n++){let r=e.charCodeAt(n);if(r>=128)throw Error(`Invalid punycode: non-basic before delimiter`);t.push(r)}let o=a<0?0:a+1;for(;o<e.length;){let a=r,s=1,c=36;for(;;){if(o>=e.length)throw Error(`Invalid punycode: unexpected end of input`);let t=e.charCodeAt(o++),n;if(t>=97&&t<=122)n=t-97;else if(t>=48&&t<=57)n=t-48+26;else if(t>=65&&t<=90)de();else throw Error(`Invalid punycode: bad digit character`);r+=n*s;let a=c<=i?1:c>=i+26?26:c-i;if(n<a)break;s*=36-a,c+=36}let l=t.length+1;i=dl(r-a,l,a===0),n+=Math.floor(r/l),r%=l,t.splice(r,0,n),r++}return globalThis.String.fromCodePoint(...t)}function pl(e){return/\p{Mn}/u.test(String.fromCodePoint(e))}function ml(e){return/\p{Mc}/u.test(String.fromCodePoint(e))}function hl(e){return/\p{Me}/u.test(String.fromCodePoint(e))}function gl(e){return pl(e)||ml(e)||hl(e)}const _l=new Set([1600,2042,12334,12335,12337,12338,12339,12340,12341,12347]),vl=new Set([2381,2509,2637,2765,2893,3021,3149,3277,3387,3388,3405,3530,6980,7082,7083,43456,69702,69759,69817,69939,69940,70080,70197,70477,70722,70850,71103,71231,71350,72767,73028,73029]);function yl(e){return/\p{Script=Greek}/u.test(String.fromCodePoint(e))}function bl(e){return/\p{Script=Hebrew}/u.test(String.fromCodePoint(e))}function xl(e){return/\p{Script=Hiragana}/u.test(String.fromCodePoint(e))}function Sl(e){return/\p{Script=Katakana}/u.test(String.fromCodePoint(e))}function Cl(e){return/\p{Script=Han}/u.test(String.fromCodePoint(e))}function wl(e){return e>=1632&&e<=1641}function Tl(e){return e>=1776&&e<=1785}function El(e){return vl.has(e)}function Dl(e){if(e.length===0)return de();let t=[...e].map(e=>e.codePointAt(0)),n=t.length;if(t[0]===45||t[n-1]===45||n>=4&&t[2]===45&&t[3]===45||gl(t[0]))return!1;let r=!1,i=!1,a=!1;for(let e=0;e<n;e++){let n=t[e];if(_l.has(n))return!1;(xl(n)||Sl(n)||Cl(n))&&(r=!0),wl(n)&&(i=!0),Tl(n)&&(a=!0);let o=t[e-1],s=t[e+1];switch(n){case 183:if(o!==108||s!==108)return!1;break;case 885:if(s===void 0||!yl(s))return!1;break;case 1523:case 1524:if(o===void 0||!bl(o))return!1;break;case 8204:if(o===void 0||o<128&&!El(o))return!1;break;case 8205:if(o===void 0||!El(o))return!1}}return!(e.includes(`・`)&&!r||i&&a)}function Ol(e){if(e.charCodeAt(0)===45||e.charCodeAt(e.length-1)===45||e.length>=4&&e.charCodeAt(2)===45&&e.charCodeAt(3)===45)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||n===45))return!1}return!0}function kl(e){return e.toLowerCase().startsWith(`xn--`)}function Al(e){try{let t=e.slice(4).toLowerCase();if(t.lastIndexOf(`-`)===0)return!1;let n=fl(t);return n?Dl(n):!1}catch{return!1}}function jl(e){return e.length===0||e.length>63?!1:kl(e)?Al(e):Dl(e)}function Ml(e){return e.length===0||e.length>63?!1:kl(e)?Al(e):Ol(e)}function Nl(e){if(e.length===0||e.length>253||e.charCodeAt(e.length-1)===46)return!1;for(let t of e.split(`.`))if(!Ml(t))return!1;return!0}const Pl=/^(?!.*\.\.)[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\.[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?)*$/iu;function Fl(e){return Pl.test(e)}function Il(e){if(e.length===0||e.includes(` `))return!1;let t=e.normalize(`NFC`).replace(/[\u002E\u3002\uFF0E\uFF61]/g,`.`);if(t.length>253)return!1;for(let e of t.split(`.`))if(!jl(e))return!1;return!0}function Ll(e,t,n){let r=0,i=0,a=0,o=0;for(let s=t;s<n;s++){let t=e.charCodeAt(s);if(t===46){if(a===0||i>255||o===48&&a>1)return!1;r++,i=0,a=0,o=0}else if(t>=48&&t<=57)a===0&&(o=t),i=i*10+(t-48),a++;else return!1}return r===3&&a>0&&i<=255&&!(o===48&&a>1)}function Rl(e){return Ll(e,0,e.length)}function zl(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Bl(e){let t=e.length;if(t===0)return!1;let n=0,r=!1,i=0;if(e.charCodeAt(0)===58&&e.charCodeAt(1)===58){if(t===2)return!0;r=!0,i=2}for(;i<t;){let a=0,o=i;for(;i<t&&zl(e.charCodeAt(i));)i++,a++;if(a===0)return!1;let s=e.charCodeAt(i);if(s===46){if(!Ll(e,o,t))return!1;n+=2,i=t;break}if(a>4)return!1;if(n++,i===t)break;if(s!==58)return!1;if(i++,e.charCodeAt(i)===58){if(r||e.charCodeAt(i+1)===58)return!1;if(r=!0,i++,i===t)break}}return r?n<=7:n===8}function Vl(e){try{return new URL(e,`http://example.com`),!0}catch{return!1}}function Hl(e){if(e.includes(` `)||e.includes(`\\`)||/[\x00-\x1F\x7F]/.test(e)||/%(?![0-9a-fA-F]{2})/.test(e))return!1;if(e===``)return!0;let t=e.indexOf(`:`);return t>0&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e.substring(0,t))?Vl(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:Vl(e)}function Ul(e){try{return new URL(e),!0}catch{return!1}}const Wl=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function Gl(e){return Wl.test(e)}const Kl=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function ql(e){return Kl.test(e)}function Jl(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}const Yl=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function Xl(e){return Yl.test(e)}const Zl=/^(?!.*[^\x00-\x7F])(?!.*\\)(?:(?:[a-z][a-z0-9+\-.]*:)?(?:\/\/[^\s[\]{}<>^`|]*)?|[^\s[\]{}<>^`|]*)(?:\?[^\s[\]{}<>^`|]*)?(?:#[^\s[\]{}<>^`|]*)?$/i;function Ql(e){return Zl.test(e)}const $l=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;function eu(e){return $l.test(e)}function tu(e){return e>=97&&e<=122||e>=65&&e<=90}function nu(e){return tu(e)||e>=48&&e<=57}function ru(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function iu(e){return nu(e)||e===43||e===45||e===46}function au(e){return nu(e)||e===45||e===46||e===95||e===126}function ou(e){return e===33||e===36||e===38||e===39||e===40||e===41||e===42||e===43||e===44||e===59||e===61}function su(e){return au(e)||ou(e)||e===58||e===64}function cu(e){let t=e.length;if(t===0||!tu(e.charCodeAt(0)))return!1;let n=1;for(;n<t;){let t=e.charCodeAt(n);if(t===58)break;if(!iu(t))return!1;n++}if(e.charCodeAt(n)!==58)return!1;if(n++,e.charCodeAt(n)===47&&e.charCodeAt(n+1)===47){n+=2;let r=n,i=-1;for(let r=n;r<t;r++){let t=e.charCodeAt(r);if(t===64){i=r;break}if(t===47||t===63||t===35)break}if(i!==-1){for(let t=r;t<i;t++){let n=e.charCodeAt(t);if(n===91||n===93)return!1;if(n===37){if(t+2>=i||!ru(e.charCodeAt(t+1))||!ru(e.charCodeAt(t+2)))return!1;t+=2}else if(!au(n)&&!ou(n)&&n!==58)return!1}n=i+1}if(e.charCodeAt(n)===91){for(n++;n<t&&e.charCodeAt(n)!==93;)n++;if(e.charCodeAt(n)!==93)return!1;n++}else for(;n<t;){let t=e.charCodeAt(n);if(t===47||t===63||t===35||t===58)break;if(t<128&&!au(t)&&!ou(t))return!1;n++}if(e.charCodeAt(n)===58)for(n++;n<t;){let t=e.charCodeAt(n);if(t===47||t===63||t===35)break;if(t<48||t>57)return!1;n++}}for(;n<t;){let r=e.charCodeAt(n);if(r===37){if(n+2>=t||!ru(e.charCodeAt(n+1))||!ru(e.charCodeAt(n+2)))return!1;n+=2}else if(r>127)return!1;else if(!(su(r)||r===47||r===63||r===35))return!1;n++}return!0}const lu=/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;function uu(e){return lu.test(e)}const du=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function fu(e){return du.test(e)}const pu=new Map;function mu(){pu.clear()}function qee(){return[...pu.entries()]}function Jee(e,t){pu.set(e,t)}function Yee(e){return pu.has(e)}function Xee(e){return pu.get(e)}function hu(e,t){return pu.get(e)?.(t)??!0}function gu(){mu(),pu.set(`date-time`,ol),pu.set(`date`,rl),pu.set(`duration`,cl),pu.set(`email`,ul),pu.set(`hostname`,Nl),pu.set(`idn-email`,Fl),pu.set(`idn-hostname`,Il),pu.set(`ipv4`,Rl),pu.set(`ipv6`,Bl),pu.set(`iri-reference`,Hl),pu.set(`iri`,Ul),pu.set(`json-pointer-uri-fragment`,Gl),pu.set(`json-pointer`,ql),pu.set(`regex`,Jl),pu.set(`relative-json-pointer`,Xl),pu.set(`time`,al),pu.set(`uri-reference`,Ql),pu.set(`uri-template`,eu),pu.set(`uri`,cu),pu.set(`url`,uu),pu.set(`uuid`,fu)}gu();var Zee=t({Clear:()=>mu,Entries:()=>qee,Get:()=>Xee,Has:()=>Yee,IsDate:()=>rl,IsDateTime:()=>ol,IsDuration:()=>cl,IsEmail:()=>ul,IsHostname:()=>Nl,IsIPv4:()=>Rl,IsIPv6:()=>Bl,IsIdnEmail:()=>Fl,IsIdnHostname:()=>Il,IsIri:()=>Ul,IsIriReference:()=>Hl,IsJsonPointer:()=>ql,IsJsonPointerUriFragment:()=>Gl,IsRegex:()=>Jl,IsRelativeJsonPointer:()=>Xl,IsTime:()=>al,IsUri:()=>cu,IsUriReference:()=>Ql,IsUriTemplate:()=>eu,IsUrl:()=>uu,IsUuid:()=>fu,Reset:()=>gu,Set:()=>Jee,Test:()=>hu});function Qee(e,t,n,r){return mo(U(`Format`,`Test`),[W(n.format),r])}function _u(e,t,n,r){return hu(n.format,r)}function $ee(e,t,n,r,i,a){return _u(e,t,i,a)||t.AddError({keyword:`format`,schemaPath:n,instancePath:r,params:{format:i.format}})}function ete(e,t,n,r){let i=!Ms(n)||n.then,a=!es(n)||n.else;return go(Vu(e,t,n.if,r),Vu(e,t,i,r),Vu(e,t,a,r))}function tte(e,t,n,r){let i=!Ms(n)||n.then,a=!es(n)||n.else;return Uu(e,t,n.if,r)?Uu(e,t,i,r):Uu(e,t,a,r)}function nte(e,t,n,r,i,a){let o=!Ms(i)||i.then,s=!es(i)||i.else,c=new Ws,l=Gu(e,c,`${n}/if`,r,i.if,a)?Gu(e,c,`${n}/then`,r,o,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`then`}}):Gu(e,t,`${n}/else`,r,s,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`else`}});return l&&t.Merge([c]),l}function rte(e,t,n,r){return xo(n.items.map((n,i)=>{let a=ao(U(r,`length`),W(i)),o=Bu(e,t,n,`${r}[${i}]`),s=t.AddIndex(W(i));return qa(a,t.UseUnevaluated()?Ka(o,s):o)}))}function ite(e,t,n,r){return Ct(n.items,0,(n,i)=>k(r.length,i)||Hu(e,t,n,r[i])&&t.AddIndex(i))}function ate(e,t,n,r,i,a){return Ge(i.items,0,(i,o)=>{let s=`${n}/items/${o}`,c=`${r}/${o}`;return k(a.length,o)||Wu(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function ote(e,t,n,r){let i=ws(n)?n.prefixItems.length:0,a=Bu(e,t,n.items,`element`),o=t.AddIndex(`index`),s=t.UseUnevaluated()?Ka(a,o):a;return so(r,W(i),[`element`,`index`],s)}function ste(e,t,n,r){let i=ws(n)?n.prefixItems.length:0;return Ct(r,i,(r,i)=>Hu(e,t,n.items,r)&&t.AddIndex(i))}function cte(e,t,n,r,i,a){let o=ws(i)?i.prefixItems.length:0;return Ge(a,o,(a,o)=>Wu(e,t,`${n}/items`,`${r}/${o}`,i.items,a)&&t.AddIndex(o))}function lte(e,t,n,r){return cs(n)?rte(e,t,n,r):ote(e,t,n,r)}function ute(e,t,n,r){return cs(n)?ite(e,t,n,r):ste(e,t,n,r)}function dte(e,t,n,r,i,a){return cs(i)?ate(e,t,n,r,i,a):cte(e,t,n,r,i,a)}function vu(e){return qo(e)}function fte(e,t,n,r){if(!vu(n))return W(!0);let[i,a]=[$s(),$s()];return ao(mo(U(r,`reduce`),[po([i,a],go(Vu(e,t,n.contains,a),Co(i),i)),W(0)]),W(n.maxContains))}function yu(e,t,n,r){if(!vu(n))return!0;let i=r.reduce((r,i)=>Uu(e,t,n.contains,i)?++r:r,0);return k(i,n.maxContains)}function pte(e,t,n,r,i,a){let o=hs(i)?i.minContains:1;return yu(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:o,maxContains:i.maxContains}})}function mte(e,t,n,r){return ao(r,W(n.maximum))}function bu(e,t,n,r){return k(r,n.maximum)}function hte(e,t,n,r,i,a){return bu(e,t,i,a)||t.AddError({keyword:`maximum`,schemaPath:n,instancePath:r,params:{comparison:`<=`,limit:i.maximum}})}function gte(e,t,n,r){return ao(U(r,`length`),W(n.maxItems))}function xu(e,t,n,r){return k(r.length,n.maxItems)}function _te(e,t,n,r,i,a){return xu(e,t,i,a)||t.AddError({keyword:`maxItems`,schemaPath:n,instancePath:r,params:{limit:i.maxItems}})}function vte(e,t,n,r){return Gee(r,W(n.maxLength))}function Su(e,t,n,r){return De(r,n.maxLength)}function yte(e,t,n,r,i,a){return Su(e,t,i,a)||t.AddError({keyword:`maxLength`,schemaPath:n,instancePath:r,params:{limit:i.maxLength}})}function bte(e,t,n,r){return ao(U(lo(r),`length`),W(n.maxProperties))}function Cu(e,t,n,r){return k(M(r).length,n.maxProperties)}function xte(e,t,n,r,i,a){return Cu(e,t,i,a)||t.AddError({keyword:`maxProperties`,schemaPath:n,instancePath:r,params:{limit:i.maxProperties}})}function wu(e){return qo(e)}function Ste(e,t,n,r){if(!wu(n))return W(!0);let[i,a]=[$s(),$s()];return oo(mo(U(r,`reduce`),[po([i,a],go(Vu(e,t,n.contains,a),Co(i),i)),W(0)]),W(n.minContains))}function Tu(e,t,n,r){if(!wu(n))return!0;let i=r.reduce((r,i)=>Uu(e,t,n.contains,i)?++r:r,0);return He(i,n.minContains)}function Cte(e,t,n,r,i,a){return Tu(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:i.minContains}})}function wte(e,t,n,r){return oo(r,W(n.minimum))}function Eu(e,t,n,r){return He(r,n.minimum)}function Tte(e,t,n,r,i,a){return Eu(e,t,i,a)||t.AddError({keyword:`minimum`,schemaPath:n,instancePath:r,params:{comparison:`>=`,limit:i.minimum}})}function Ete(e,t,n,r){return oo(U(r,`length`),W(n.minItems))}function Du(e,t,n,r){return He(r.length,n.minItems)}function Dte(e,t,n,r,i,a){return Du(e,t,i,a)||t.AddError({keyword:`minItems`,schemaPath:n,instancePath:r,params:{limit:i.minItems}})}function Ote(e,t,n,r){return Wee(r,W(n.minLength))}function Ou(e,t,n,r){return oe(r,n.minLength)}function kte(e,t,n,r,i,a){return Ou(e,t,i,a)||t.AddError({keyword:`minLength`,schemaPath:n,instancePath:r,params:{limit:i.minLength}})}function Ate(e,t,n,r){return oo(U(lo(r),`length`),W(n.minProperties))}function ku(e,t,n,r){return He(M(r).length,n.minProperties)}function jte(e,t,n,r,i,a){return ku(e,t,i,a)||t.AddError({keyword:`minProperties`,schemaPath:n,instancePath:r,params:{limit:i.minProperties}})}function Mte(e,t,n,r){return wo(r,W(n.multipleOf))}function Au(e,t,n,r){return re(r,n.multipleOf)}function Nte(e,t,n,r,i,a){return Au(e,t,i,a)||t.AddError({keyword:`multipleOf`,schemaPath:n,instancePath:r,params:{multipleOf:i.multipleOf}})}function Pte(e,t,n,r){return fc(e,t,[n.not],r,Ja(no(U(`results`,`length`),W(1))))}function Fte(e,t,n,r){return Ja(Vu(e,t,n.not,r))}function Ite(e,t,n,r){return t.UseUnevaluated()?Pte(e,t,n,r):Fte(e,t,n,r)}function ju(e,t,n,r){let i=new Hs;return!Uu(e,i,n.not,r)&&t.Merge([i])}function Lte(e,t,n,r,i,a){return ju(e,t,i,a)||t.AddError({keyword:`not`,schemaPath:n,instancePath:r,params:{}})}function Rte(e,t,n,r){return fc(e,t,n.oneOf,r,no(U(`results`,`length`),W(1)))}function zte(e,t,n,r){return no(mo(U(Kee(n.oneOf.map(n=>Vu(e,t,n,r))),`reduce`),[po([`count`,`result`],go(no(`result`,W(!0)),Co(`count`),`count`)),W(0)]),W(1))}function Bte(e,t,n,r){return t.UseUnevaluated()?Rte(e,t,n,r):zte(e,t,n,r)}function Vte(e,t,n,r){let i=n.oneOf.reduce((t,n)=>{let i=new Hs;return Uu(e,i,n,r)?[...t,i]:t},[]);return V(i.length,1)&&t.Merge(i)}function Hte(e,t,n,r,i,a){let o=[],s=[],c=i.oneOf.reduce((t,i,c)=>{let l=new Ws,u=Gu(e,l,`${n}/oneOf/${c}`,r,i,a);return u&&s.push(c),u||o.push(l),u?[...t,l]:t},[]),l=V(c.length,1)&&t.Merge(c);return!l&&V(s.length,0)&&o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),l||t.AddError({keyword:`oneOf`,schemaPath:n,instancePath:r,params:{passingSchemas:s}})}function Ute(e,t,n,r){return mo(U(Ks(ve(n.pattern)?new RegExp(n.pattern,`u`):n.pattern),`test`),[r])}function Mu(e,t,n,r){return(ve(n.pattern)?new RegExp(n.pattern,`u`):n.pattern).test(r)}function Wte(e,t,n,r,i,a){return Mu(e,t,i,a)||t.AddError({keyword:`pattern`,schemaPath:n,instancePath:r,params:{pattern:i.pattern}})}function Gte(e,t,n,r){return xo(We(n.patternProperties).map(([n,i])=>{let[a,o]=[$s(),$s()],s=Ja(mo(U(Ks(new RegExp(n,`u`)),`test`),[a])),c=Bu(e,t,i,o),l=t.AddKey(a),u=t.UseUnevaluated()?qa(s,Ka(c,l)):qa(s,c);return so(co(r),W(0),[`[${a}, ${o}]`,`_`],u)}))}function Kte(e,t,n,r){return Ct(We(n.patternProperties),0,([n,i])=>{let a=new RegExp(n,`u`);return Ct(We(r),0,([n,r])=>!a.test(n)||Hu(e,t,i,r)&&t.AddKey(n))})}function qte(e,t,n,r,i,a){return Ge(We(i.patternProperties),0,([i,o])=>{let s=`${n}/patternProperties/${i}`,c=new RegExp(i,`u`);return Ge(We(a),0,([n,i])=>{let a=`${r}/${n}`;return!c.test(n)||Wu(e,t,s,a,o,i)&&t.AddKey(n)})})}function Jte(e,t,n,r){return xo(n.prefixItems.map((n,i)=>{let a=ao(U(r,`length`),W(i)),o=Bu(e,t,n,`${r}[${i}]`),s=t.AddIndex(W(i));return qa(a,t.UseUnevaluated()?Ka(o,s):o)}))}function Yte(e,t,n,r){return V(r.length,0)||Ct(n.prefixItems,0,(n,i)=>k(r.length,i)||Hu(e,t,n,r[i])&&t.AddIndex(i))}function Xte(e,t,n,r,i,a){return V(a.length,0)||Ge(i.prefixItems,0,(i,o)=>{let s=`${n}/prefixItems/${o}`,c=`${r}/${o}`;return k(a.length,o)||Wu(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function Nu(e,t){return e.includes(t)||pt().exactOptionalPropertyTypes}function Zte(e,t){return to(U(e,t))}function Pu(e,t){return F(e[t])}function Qte(e,t,n,r){let i=js(n)?n.required:[];return xo(We(n.properties).map(([n,a])=>{let o=Ja(uo(r,W(n))),s=Bu(e,t,a,U(r,n)),c=t.AddKey(W(n)),l=t.UseUnevaluated()?Ka(s,c):s,u=i.includes(n)?l:qa(o,l);return Nu(i,n)?u:qa(Zte(r,n),u)}))}function $te(e,t,n,r){let i=js(n)?n.required:[];return Ct(We(n.properties),0,([n,a])=>{let o=!B(r,n)||Hu(e,t,a,r[n])&&t.AddKey(n);return Nu(i,n)?o:Pu(r,n)||o})}function ene(e,t,n,r,i,a){let o=js(i)?i.required:[];return Ge(We(i.properties),0,([i,s])=>{let c=`${n}/properties/${i}`,l=`${r}/${i}`,u=()=>!B(a,i)||Wu(e,t,c,l,s,a[i])&&t.AddKey(i);return Nu(o,i)?u():Pu(a,i)||u()})}function tne(e,t,n,r){let[i,a]=[$s(),$s()];return so(lo(r),W(0),[i,a],Vu(e,t,n.propertyNames,i))}function nne(e,t,n,r){return Ct(M(r),0,(r,i)=>Uu(e,t,n.propertyNames,r))}function rne(e,t,n,r,i,a){let o=[];return Ge(M(a),0,(t,a)=>{let s=`${r}/${t}`,c=`${n}/propertyNames`,l=Gu(e,new Ws,c,s,i.propertyNames,t);return l||o.push(t),l})||t.AddError({keyword:`propertyNames`,schemaPath:n,instancePath:r,params:{propertyNames:o}})}function ine(e,t,n,r){return Yu(e,t,e.RecursiveRef(n)??!1,r)}function ane(e,t,n,r){let i=e.RecursiveRef(n)??!1;return Bo(i)&&Uu(e,t,i,r)}function one(e,t,n,r,i,a){let o=e.RecursiveRef(i)??!1;return Bo(o)&&Gu(e,t,`#`,r,o,a)}function sne(e,t,n,r){let i=po([`context`,`value`],Yu(e,t,n,`value`));return mo(po([`context`,`value`],_o([vo(`nextContext`,ho(`CheckContext`,[])),vo(`result`,mo(i,[`nextContext`,`value`])),yo(`result`,t.Merge(`[nextContext]`)),bo(`result`)])),[`context`,r])}function cne(e,t,n,r){return Yu(e,t,n,r)}function lne(e,t,n,r){let i=e.Ref(n)??!1;return t.UseUnevaluated()?sne(e,t,i,r):cne(e,t,i,r)}function une(e,t,n,r){let i=e.Ref(n)??!1,a=new Hs,o=Bo(i)&&Uu(e,a,i,r);return o&&t.Merge([a]),o}function dne(e,t,n,r,i,a){let o=e.Ref(i)??!1,s=new Ws,c=Bo(o)&&Gu(e,s,`#`,r,o,a);return c&&t.Merge([s]),c||s.GetErrors().forEach(e=>t.AddError(e)),c}function fne(e,t,n,r){return xo(n.required.map(e=>uo(r,W(e))))}function pne(e,t,n,r){return Ct(n.required,0,e=>B(r,e))}function mne(e,t,n,r,i,a){let o=[];return Ge(i.required,0,e=>{let t=B(a,e);return t||o.push(e),t})||t.AddError({keyword:`required`,schemaPath:n,instancePath:r,params:{requiredProperties:o}})}function Fu(e,t,n,r){return V(n,`object`)?Qa(r):V(n,`array`)?Ya(r):V(n,`boolean`)?Ree(r):V(n,`integer`)?zee(r):V(n,`number`)?Za(r):V(n,`null`)?Bee(r):V(n,`string`)?eo(r):V(n,`bigint`)?Xa(r):V(n,`constructor`)?Uee(r):V(n,`function`)?Hee(r):V(n,`symbol`)?Vee(r):V(n,`undefined`)||V(n,`void`)?to(r):W(!0)}function Iu(e,t,n,r,i){return V(n,`object`)?nt(i):V(n,`array`)?mt(i):V(n,`boolean`)?Qe(i):V(n,`integer`)?Te(i):V(n,`number`)?it(i):V(n,`null`)?be(i):V(n,`string`)?ve(i):V(n,`bigint`)?lt(i):V(n,`constructor`)?Xe(i):V(n,`function`)?jt(i):V(n,`symbol`)?N(i):V(n,`undefined`)?F(i):!V(n,`void`)||F(i)}function hne(e,t,n,r){return So(n.map(n=>Fu(e,t,n,r)))}function Lu(e,t,n,r,i){return n.some(n=>Iu(e,t,n,r,i))}function gne(e,t,n,r){return mt(n.type)?hne(e,t,n.type,r):Fu(e,t,n.type,r)}function _ne(e,t,n,r){return mt(n.type)?Lu(e,t,n.type,n,r):Iu(e,t,n.type,n,r)}function vne(e,t,n,r,i,a){return(mt(i.type)?Lu(e,t,i.type,i,a):Iu(e,t,i.type,i,a))||t.AddError({keyword:`type`,schemaPath:n,instancePath:r,params:{type:i.type}})}function yne(e,t,n,r){let[i,a]=[$s(),$s()],o=mo(U(`context`,`GetIndices`),[]),s=mo(U(`indices`,`has`),[i]),c=Vu(e,t,n.unevaluatedItems,a),l=mo(U(`context`,`AddIndex`),[i]),u=so(r,W(0),[a,i],Ka(qa(s,c),l));return mo(po([`context`],_o([vo(`indices`,o),bo(u)])),[`context`])}function bne(e,t,n,r){let i=t.GetIndices();return Ct(r,0,(r,a)=>(i.has(a)||Uu(e,t,n.unevaluatedItems,r))&&t.AddIndex(a))}function xne(e,t,n,r,i,a){let o=t.GetIndices(),s=[];return Ge(a,0,(a,c)=>{let l=new Ws,u=(o.has(c)||Gu(e,l,n,r,i.unevaluatedItems,a))&&t.AddIndex(c);return u||s.push(c),u})||t.AddError({keyword:`unevaluatedItems`,schemaPath:n,instancePath:r,params:{unevaluatedItems:s}})}function Sne(e,t,n,r){let[i,a]=[$s(),$s()],o=mo(U(`context`,`GetKeys`),[]),s=mo(U(`keys`,`has`),[i]),c=mo(U(`context`,`AddKey`),[i]),l=Vu(e,t,n.unevaluatedProperties,a),u=so(co(r),W(0),[`[${i}, ${a}]`,`_`],qa(s,Ka(l,c)));return mo(po([`context`],_o([vo(`keys`,o),bo(u)])),[`context`])}function Cne(e,t,n,r){let i=t.GetKeys();return Ct(We(r),0,([r,a])=>i.has(r)||Uu(e,t,n.unevaluatedProperties,a)&&t.AddKey(r))}function wne(e,t,n,r,i,a){let o=t.GetKeys(),s=[];return Ge(We(a),0,([a,c])=>{let l=new Ws,u=o.has(a)||Gu(e,l,n,r,i.unevaluatedProperties,c)&&t.AddKey(a);return u||s.push(a),u})||t.AddError({keyword:`unevaluatedProperties`,schemaPath:n,instancePath:r,params:{unevaluatedProperties:s}})}function Ru(e){return!V(e.uniqueItems,!1)}function Tne(e,t,n,r){return Ru(n)?no(U(ho(`Set`,[mo(U(r,`map`),[U(`Hashing`,`Hash`)])]),`size`),U(r,`length`)):W(!0)}function Ene(e,t,n,r){if(!Ru(n))return!0;let i=new Set(r.map(te)).size,a=r.length;return V(i,a)}function Dne(e,t,n,r,i,a){if(!Ru(i))return!0;let o=new Set,s=a.reduce((e,t,n)=>{let r=te(t);return o.has(r)?[...e,n]:(o.add(r),e)},[]);return V(s.length,0)||t.AddError({keyword:`uniqueItems`,schemaPath:n,instancePath:r,params:{duplicateItems:s}})}function zu(e,t){return Ns(e)&&(mt(e.type)&&kt(e.type.length,0)&&Ct(e.type,0,e=>V(e,t))||V(e.type,t))}function One(e){return zu(e,`object`)}function kne(e){return Ro(e)&&(Ho(e)||Yo(e)||Xo(e)||Zo(e)||Ts(e)||Cs(e)||Es(e)||vs(e)||ps(e)||js(e)||Is(e))}function Ane(e){return zu(e,`array`)}function jne(e){return Ro(e)&&(Vo(e)||ss(e)||qo(e)||us(e)||ds(e)||hs(e)||gs(e)||ws(e)||Fs(e)||Ps(e))}function Mne(e){return zu(e,`string`)}function Nne(e){return Ro(e)&&(_s(e)||fs(e)||is(e)||Ss(e))}function Pne(e){return zu(e,`number`)||zu(e,`bigint`)}function Fne(e){return Ro(e)&&(ms(e)||ls(e)||ns(e)||rs(e)||ys(e))}function Bu(e,t,n,r){return t.UseUnevaluated()?Ka(Ka(t.Push(),Vu(e,t,n,r)),t.Pop()):Vu(e,t,n,r)}function Vu(e,t,n,r){e.Push(n);let i=[];if(zo(n))return Cc(e,t,n,r);if(Ns(n)&&i.push(gne(e,t,n,r)),kne(n)){let a=[];js(n)&&a.push(fne(e,t,n,r)),Ho(n)&&a.push(lc(e,t,n,r)),Yo(n)&&a.push(Nc(e,t,n,r)),Xo(n)&&a.push(Ic(e,t,n,r)),Zo(n)&&a.push(zc(e,t,n,r)),Cs(n)&&a.push(Gte(e,t,n,r)),Ts(n)&&a.push(Qte(e,t,n,r)),Es(n)&&a.push(tne(e,t,n,r)),vs(n)&&a.push(Ate(e,t,n,r)),ps(n)&&a.push(bte(e,t,n,r));let o=xo(a),s=qa(Ja(Qa(r)),o);i.push(One(n)?o:s)}if(jne(n)){let a=[];Vo(n)&&a.push(tc(e,t,n,r)),qo(n)&&a.push(Ac(e,t,n,r)),ss(n)&&a.push(lte(e,t,n,r)),us(n)&&a.push(fte(e,t,n,r)),ds(n)&&a.push(gte(e,t,n,r)),hs(n)&&a.push(Ste(e,t,n,r)),gs(n)&&a.push(Ete(e,t,n,r)),ws(n)&&a.push(Jte(e,t,n,r)),Ps(n)&&a.push(Tne(e,t,n,r));let o=xo(a),s=qa(Ja(Ya(r)),o);i.push(Ane(n)?o:s)}if(Nne(n)){let a=[];fs(n)&&a.push(vte(e,t,n,r)),_s(n)&&a.push(Ote(e,t,n,r)),is(n)&&a.push(Qee(e,t,n,r)),Ss(n)&&a.push(Ute(e,t,n,r));let o=xo(a),s=qa(Ja(eo(r)),o);i.push(Mne(n)?o:s)}if(Fne(n)){let a=[];ns(n)&&a.push(Jc(e,t,n,r)),rs(n)&&a.push(Zc(e,t,n,r)),ls(n)&&a.push(mte(e,t,n,r)),ms(n)&&a.push(wte(e,t,n,r)),ys(n)&&a.push(Mte(e,t,n,r));let o=xo(a),s=qa(Ja(qa(Za(r),Xa(r))),o);i.push(Pne(n)?o:s)}As(n)&&i.push(lne(e,t,n,r)),ks(n)&&i.push(ine(e,t,n,r)),$o(n)&&i.push(Hc(e,t,n,r)),Ko(n)&&i.push(Ec(e,t,n,r)),ts(n)&&i.push(Gc(e,t,n,r)),os(n)&&i.push(ete(e,t,n,r)),bs(n)&&i.push(Ite(e,t,n,r)),Uo(n)&&i.push(hc(e,t,n,r)),Go(n)&&i.push(bc(e,t,n,r)),xs(n)&&i.push(Bte(e,t,n,r)),Fs(n)&&i.push(qa(Ja(Ya(r)),yne(e,t,n,r))),Is(n)&&i.push(qa(Ja($a(r)),Sne(e,t,n,r))),Lo(n)&&i.push(Ys(e,t,n,r));let a=xo(i);return e.Pop(n),a}function Hu(e,t,n,r){return t.Push()&&Uu(e,t,n,r)&&t.Pop()}function Uu(e,t,n,r){e.Push(n);let i=zo(n)?wc(e,t,n,r):(!Ns(n)||_ne(e,t,n,r))&&(!(O(r)&&!mt(r))||(!js(n)||pne(e,t,n,r))&&(!Ho(n)||uc(e,t,n,r))&&(!Yo(n)||Pc(e,t,n,r))&&(!Xo(n)||Lc(e,t,n,r))&&(!Zo(n)||Bc(e,t,n,r))&&(!Cs(n)||Kte(e,t,n,r))&&(!Ts(n)||$te(e,t,n,r))&&(!Es(n)||nne(e,t,n,r))&&(!vs(n)||ku(e,t,n,r))&&(!ps(n)||Cu(e,t,n,r)))&&(!mt(r)||(!Vo(n)||nc(e,t,n,r))&&(!qo(n)||jc(e,t,n,r))&&(!ss(n)||ute(e,t,n,r))&&(!us(n)||yu(e,t,n,r))&&(!ds(n)||xu(e,t,n,r))&&(!hs(n)||Tu(e,t,n,r))&&(!gs(n)||Du(e,t,n,r))&&(!ws(n)||Yte(e,t,n,r))&&(!Ps(n)||Ene(e,t,n,r)))&&(!ve(r)||(!fs(n)||Su(e,t,n,r))&&(!_s(n)||Ou(e,t,n,r))&&(!is(n)||_u(e,t,n,r))&&(!Ss(n)||Mu(e,t,n,r)))&&(!(it(r)||lt(r))||(!ns(n)||Yc(e,t,n,r))&&(!rs(n)||Qc(e,t,n,r))&&(!ls(n)||bu(e,t,n,r))&&(!ms(n)||Eu(e,t,n,r))&&(!ys(n)||Au(e,t,n,r)))&&(!As(n)||une(e,t,n,r))&&(!ks(n)||ane(e,t,n,r))&&(!$o(n)||Uc(e,t,n,r))&&(!Ko(n)||Dc(e,t,n,r))&&(!ts(n)||Kc(e,t,n,r))&&(!os(n)||tte(e,t,n,r))&&(!bs(n)||ju(e,t,n,r))&&(!Uo(n)||gc(e,t,n,r))&&(!Go(n)||xc(e,t,n,r))&&(!xs(n)||Vte(e,t,n,r))&&(!Fs(n)||!mt(r)||bne(e,t,n,r))&&(!Is(n)||!O(r)||Cne(e,t,n,r))&&(!Lo(n)||Xs(e,t,n,r));return e.Pop(n),i}function Wu(e,t,n,r,i,a){return t.Push()&&Gu(e,t,n,r,i,a)&&t.Pop()}function Gu(e,t,n,r,i,a){e.Push(i);let o=zo(i)?Tc(e,t,n,r,i,a):!!((!Ns(i)||vne(e,t,n,r,i,a))&+(!(O(a)&&!mt(a))||!!((!js(i)||mne(e,t,n,r,i,a))&+(!Ho(i)||dc(e,t,n,r,i,a))&(!Yo(i)||Fc(e,t,n,r,i,a))&(!Xo(i)||Rc(e,t,n,r,i,a))&(!Zo(i)||Vc(e,t,n,r,i,a))&(!Cs(i)||qte(e,t,n,r,i,a))&(!Ts(i)||ene(e,t,n,r,i,a))&(!Es(i)||rne(e,t,n,r,i,a))&(!vs(i)||jte(e,t,n,r,i,a))&(!ps(i)||xte(e,t,n,r,i,a))))&(!mt(a)||!!((!Vo(i)||rc(e,t,n,r,i,a))&+(!qo(i)||Mc(e,t,n,r,i,a))&(!ss(i)||dte(e,t,n,r,i,a))&(!us(i)||pte(e,t,n,r,i,a))&(!ds(i)||_te(e,t,n,r,i,a))&(!hs(i)||Cte(e,t,n,r,i,a))&(!gs(i)||Dte(e,t,n,r,i,a))&(!ws(i)||Xte(e,t,n,r,i,a))&(!Ps(i)||Dne(e,t,n,r,i,a))))&(!ve(a)||!!((!fs(i)||yte(e,t,n,r,i,a))&+(!_s(i)||kte(e,t,n,r,i,a))&(!is(i)||$ee(e,t,n,r,i,a))&(!Ss(i)||Wte(e,t,n,r,i,a))))&(!(it(a)||lt(a))||!!((!ns(i)||Xc(e,t,n,r,i,a))&+(!rs(i)||$c(e,t,n,r,i,a))&(!ls(i)||hte(e,t,n,r,i,a))&(!ms(i)||Tte(e,t,n,r,i,a))&(!ys(i)||Nte(e,t,n,r,i,a))))&(!As(i)||dne(e,t,n,r,i,a))&(!ks(i)||one(e,t,n,r,i,a))&(!$o(i)||Wc(e,t,n,r,i,a))&(!Ko(i)||Oc(e,t,n,r,i,a))&(!ts(i)||qc(e,t,n,r,i,a))&(!os(i)||nte(e,t,n,r,i,a))&(!bs(i)||Lte(e,t,n,r,i,a))&(!Uo(i)||_c(e,t,n,r,i,a))&(!Go(i)||Sc(e,t,n,r,i,a))&(!xs(i)||Hte(e,t,n,r,i,a))&(!Fs(i)||!mt(a)||xne(e,t,n,r,i,a))&(!Is(i)||!O(a)||wne(e,t,n,r,i,a)))&&(!Lo(i)||Zs(e,t,n,r,i,a));return e.Pop(i),o}const Ku=[0],qu=new Map,Ju=new Map;function Ine(){return te(Ku[0]++)}function Lne(e,t){qu.has(e)||qu.set(e,new Map);let n=qu.get(e);if(n.has(t))return n.get(t);let r=Ine();return n.set(t,r),r}function Rne(e,t,n,r){return e.UseUnevaluated()?mo(`check_${n}`,[`context`,r]):mo(`check_${n}`,[r])}function zne(e,t,n,r){let i=Vu(e,t,n,`value`);return t.UseUnevaluated()?vo(`check_${r}`,po([`context`,`value`],i)):vo(`check_${r}`,po([`value`],i))}function Bne(){Ku[0]=0,qu.clear(),Ju.clear()}function Vne(){return[...Ju.values()]}function Yu(e,t,n,r){let i=Lne(n,e.BaseURL().href),a=Rne(t,n,i,r);return Ju.has(i)?a:(Ju.set(i,``),Ju.set(i,zne(e,t,n,i)),a)}function Hne(e,t){return O(t)&&!ce(e)?t[e]:void 0}function Une(e,t){return e.reduce((e,t)=>Hne(t,e),t)}function Wne(e){if(V(e.length,0))return[];let t=e.split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`));return t.length>0&&t[0]===``?t.slice(1):t}function Gne(e,t){return Une(Wne(t),e)}function Kne(e,t,n){if(e.$id===n.hash)return e;let r=new URL(e.$id,t.href),i=new URL(n.href,t.href);if(V(r.pathname,i.pathname))return n.hash.startsWith(`#`)?Xu(e,t,n):e}function qne(e,t,n){let r=new URL(`#${e.$anchor}`,t.href),i=new URL(n.href,t.href);return V(r.href,i.href)?e:void 0}function Jne(e,t,n){let r=new URL(`#${e.$dynamicAnchor}`,t.href),i=new URL(n.href,t.href);return V(r.href,i.href)?e:void 0}function Xu(e,t,n){if(n.href.endsWith(`#`))return e;if(!n.hash.startsWith(`#`))return;let r=decodeURIComponent(n.hash.slice(1));if(r.startsWith(`/`))return Gne(e,r)}function Yne(e,t,n){if(as(e)){let r=Kne(e,t,n);if(!F(r))return r}if(Wo(e)){let r=qne(e,t,n);if(!F(r))return r}if(Qo(e)){let r=Jne(e,t,n);if(!F(r))return r}return Xu(e,t,n)}function Xne(e,t,n){return e.reduce((e,r)=>{let i=Zu(r,t,n);return F(i)?e:i},void 0)}function Zne(e,t,n){return M(e).reduce((r,i)=>{let a=Zu(e[i],t,n);return F(a)?r:a},void 0)}function Zu(e,t,n){let r=Ro(e)&&as(e)?new URL(e.$id,t.href):t;if(Ro(e)){let t=Yne(e,r,n);if(!F(t))return t}if(mt(e))return Xne(e,r,n);if(O(e))return Zne(e,r,n)}function Qu(e,t){let n=new URL(`http://unknown/`),r=as(e)?new URL(e.$id,n.href):n;return Zu(e,r,new URL(t,r.href))}function Qne(e,t,n,r){let i=n.$dynamicRef.startsWith(`#`)?Qu(t,n.$dynamicRef):Qu(e,n.$dynamicRef);if(!F(i))return!Ro(i)||!Qo(i)||new URL(n.$dynamicRef,`http://unknown/`).hash.startsWith(`#/`)?i:r.find(e=>e.$dynamicAnchor===i.$dynamicAnchor)??i}var $u=function(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)},ed,td,nd,rd,id,ad=class{constructor(e,t){ed.add(this),this.context=e,this.schema=t,this.ids=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[]}BaseURL(){return this.ids.reduce((e,t)=>new URL(t.$id,e),new URL(`http://unknown`))}Base(){return this.ids[this.ids.length-1]??this.schema}Push(e){Ro(e)&&(as(e)&&(this.ids.push(e),$u(this,ed,`m`,td).call(this,e)),Wo(e)&&this.anchors.push(e),Os(e)&&this.recursiveAnchors.push(e),Qo(e)&&this.dynamicAnchors.push(e))}Pop(e){Ro(e)&&(as(e)&&(this.ids.pop(),$u(this,ed,`m`,nd).call(this,e)),Wo(e)&&this.anchors.pop(),Os(e)&&this.recursiveAnchors.pop(),Qo(e)&&this.dynamicAnchors.pop())}Ref(e){return $u(this,ed,`m`,rd).call(this,e)??$u(this,ed,`m`,id).call(this,e)}RecursiveRef(e){return Os(this.Base())?Qu(this.recursiveAnchors[0],e.$recursiveRef):Qu(this.Base(),e.$recursiveRef)}DynamicRef(e){let t=this.schema;return Qne(t,this.Base(),e,this.dynamicAnchors)}};ed=new WeakSet,td=function e(t,n=!0){if(!Ro(t))return;let r=t;if(!(!n&&as(r))){!n&&Qo(r)&&this.dynamicAnchors.push(r);for(let t of M(r))$u(this,ed,`m`,e).call(this,r[t],!1)}},nd=function e(t,n=!0){if(!Ro(t))return;let r=t;if(!(!n&&as(r))){!n&&Qo(r)&&this.dynamicAnchors.pop();for(let t of M(r))$u(this,ed,`m`,e).call(this,r[t],!1)}},rd=function(e){return B(this.context,e.$ref)?this.context[e.$ref]:void 0},id=function(e){let t=this.schema;return e.$ref.startsWith(`#`)?Qu(this.Base(),e.$ref):Qu(t,e.$ref)};function $ne(e){return`${e.Functions().join(`;
880
880
  `)}; return (value) => { ${(e.UseUnevaluated()?[`const context = new CheckContext({}, {})`,`return ${e.Entry()}`]:[`return ${e.Entry()}`]).join(`; `)} }`}function ere(e,t){return Ao(`CheckContext`,`Guard`,`Format`,`Hashing`,e.External().identifier,t)(Hs,R,Zee,Ae,e.External().variables)}function tre(e){let t=new ad(e.Context(),e.Schema()),n=new Hs;return r=>Uu(t,n,e.Schema(),r)}function nre(e,t){return ko()?ere(e,t):tre(e)}var od=class{constructor(e,t,n){this.isAccelerated=e,this.code=t,this.check=n}IsAccelerated(){return this.isAccelerated}Code(){return this.code}Check(e){return this.check(e)}},sd=class{constructor(e,t,n,r,i,a){this.context=e,this.schema=t,this.external=n,this.functions=r,this.entry=i,this.useUnevaluated=a}Context(){return this.context}Schema(){return this.schema}UseUnevaluated(){return this.useUnevaluated}External(){return this.external}Functions(){return this.functions}Entry(){return this.entry}Evaluate(){let e=$ne(this),t=nre(this,e);return new od(ko(),e,t)}};function cd(...e){let[t,n]=Eo(e,{2:(e,t)=>[e,t],1:e=>[{},e]});qs(),Bne();let r=new ad(t,n),i=new Vs(Bs(t,n)),a=Yu(r,i,n,`value`),o=Vne();return new sd(t,n,Js(),o,a,i.UseUnevaluated())}function ld(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),i=pt(),a=No(),o=[];return[Gu(new ad(t,n),new Us(e=>{if(!He(o.length,i.maxErrors))return o.push({...e,message:a(e)})}),`#`,``,n,r),o]}function ud(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Uu(new ad(t,n),new Hs,n,r)}function dd(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return ud(t,n,r)}function fd(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),[i,a]=ld(t,n,r);return a}var pd=class extends Error{constructor(e,t,n){super(e),Object.defineProperty(this,"cause",{value:{source:e,errors:n,value:t},writable:!1,configurable:!1,enumerable:!1})}};function md(e,t,n){return mt(n)?n.map(n=>Td(e,t.items,n)):n}function hd(e,t,n){return Td({...e,...t.$defs},D(t.$ref),n)}function gd(e,t){let n=B(t,`unevaluatedProperties`)?{additionalProperties:t.unevaluatedProperties}:{},r=wt(e,t),i=st(r);return pe(i)?Ke(i,n):i}function _d(e,t,n){return Td(e,gd(e,t),n)}function vd(e){return B(e,`additionalProperties`)?e.additionalProperties:void 0}function yd(e,t,n){if(!O(n)||mt(n))return n;let r=vd(t);for(let i of M(n)){if(B(t.properties,i)){n[i]=Td(e,t.properties[i],n[i]);continue}if(Qe(r)&&V(r,!0)||Be(r)&&dd(e,r,n[i])){n[i]=Td(e,r,n[i]);continue}delete n[i]}return n}function bd(e,t,n){if(!O(n))return n;let r=vd(t),[i,a]=[new RegExp(Tt(t)),Mt(t)];for(let t of M(n)){if(i.test(t)){n[t]=Td(e,a,n[t]);continue}if(Qe(r)&&V(r,!0)||Be(r)&&dd(e,r,n[t])){n[t]=Td(e,r,n[t]);continue}delete n[t]}return n}function xd(e,t,n){return B(e,t.$ref)?Td(e,e[t.$ref],n):n}function Sd(e,t,n){if(!mt(n))return n;let r=Math.min(n.length,t.items.length);for(let i=0;i<r;i++)n[i]=Td(e,t.items[i],n[i]);return kt(n.length,r)?n.slice(0,r):n}function Cd(e){return yt(e)}function wd(e,t,n){for(let r of t.anyOf){let t=Td(e,r,Cd(n));if(dd(e,r,t))return t}return n}function Td(e,t,n){return _t(t)?md(e,t,n):me(t)?hd(e,t,n):je(t)?_d(e,t,n):pe(t)?yd(e,t,n):$e(t)?bd(e,t,n):Ce(t)?xd(e,t,n):Ue(t)?Sd(e,t,n):A(t)?wd(e,t,n):n}function Ed(e,t){for(let n of To.Keys(e))To.HasPropertyKey(t,n)||(t[n]=e[n]);return t}function Dd(e){let t={};for(let n of To.Keys(e))t[n]=Ad(e[n]);return t}function Od(e){return kd(eee(e))}function kd(e){return e.map(e=>Ad(e))}function Ad(e){return Ed(e,_t(e)?et(Ad(e.items),dt(e)):je(e)?Oe(kd(e.allOf)):A(e)?Ot(Od(e.anyOf)):pe(e)?Fe(Dd(e.properties)):$e(e)?Ze(ze(e),Ad(Mt(e))):Ue(e)?At(kd(e.items)):e)}function jd(e){return Ad(e)}function Md(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Td(t,pt().unionPrioritySort?jd(n):n,r)}function Nd(e){return O(e)&&B(e,`value`)}function G(e){return{value:e}}function Pd(e){return mt(e)?G(e):G([e])}function Fd(e){return V(e,!0)?G(BigInt(1)):G(BigInt(0))}const Id=/^-?(0|[1-9]\d*)n$/,Ld=/^-?(0|[1-9]\d*)\.\d+$/,Rd=/^-?(0|[1-9]\d*)$/;function zd(e){return Id.test(e)}function Bd(e){return Ld.test(e)}function Vd(e){return Rd.test(e)}function Hd(e){let t=e.toLowerCase();return zd(e)?G(BigInt(e.slice(0,e.length-1))):Bd(e)?G(BigInt(e.split(`.`)[0])):Vd(e)?G(BigInt(e)):V(t,`false`)?G(BigInt(0)):V(t,`true`)?G(BigInt(1)):void 0}function Ud(e){return lt(e)?G(e):Qe(e)?Fd(e):it(e)?G(BigInt(Math.trunc(e))):be(e)?G(BigInt(0)):ve(e)?Hd(e):F(e)?G(BigInt(0)):void 0}function Wd(e){return V(e,BigInt(0))?G(!1):V(e,BigInt(1))?G(!0):void 0}function Gd(e){return V(e,0)?G(!1):V(e,1)?G(!0):void 0}function Kd(e){return V(e.toLowerCase(),`false`)?G(!1):V(e.toLowerCase(),`true`)?G(!0):V(e,`0`)?G(!1):V(e,`1`)?G(!0):void 0}function qd(e){return lt(e)?Wd(e):Qe(e)?G(e):it(e)?Gd(e):be(e)?G(!1):ve(e)?Kd(e):F(e)?G(!1):void 0}function Jd(e){return V(e,BigInt(0))?G(null):void 0}function Yd(e){return V(e,!1)?G(null):void 0}function Xd(e){return V(e,0)?G(null):void 0}function Zd(e){let t=e.toLowerCase();return V(t,`undefined`)||V(t,`null`)||V(e,``)||V(e,`0`)?G(null):void 0}function Qd(e){return lt(e)?Jd(e):Qe(e)?Yd(e):it(e)?Xd(e):be(e)?G(null):ve(e)?Zd(e):F(e)?G(null):void 0}const $d=BigInt(2**53-1),ef=BigInt(-(2**53-1));function tf(e){return e<=$d&&e>=ef?G(Number(e)):void 0}function nf(e){return G(+!!e)}function rf(e){let t=+e;if(it(t))return G(t);let n=e.toLowerCase();if(V(n,`false`))return G(0);if(V(n,`true`))return G(1);let r=Ud(e);if(Nd(r))return r.value<=$d&&r.value>=ef?G(Number(r.value)):void 0}function af(e){return lt(e)?tf(e):Qe(e)?nf(e):it(e)?G(e):be(e)?G(0):ve(e)?rf(e):F(e)?G(0):void 0}function of(e){return lt(e)||Qe(e)||it(e)?G(e.toString()):be(e)?G(`null`):ve(e)?G(e):F(e)?G(``):void 0}function sf(e){return V(e,BigInt(0))?G(void 0):void 0}function cf(e){return V(e,!1)?G(void 0):void 0}function lf(e){return V(e,0)?G(void 0):void 0}function uf(e){let t=e.toLowerCase();return V(t,`undefined`)||V(t,`null`)||V(e,``)||V(e,`0`)?G(void 0):void 0}function df(e){return lt(e)?sf(e):Qe(e)?cf(e):it(e)?lf(e):be(e)?G(void 0):ve(e)?uf(e):F(e)?G(e):void 0}function ff(e,t,n){return Pd(n).value.map(n=>zf(e,t.items,n))}function pf(e,t,n){let r=Ud(n);return Nd(r)?r.value:n}function mf(e,t,n){let r=qd(n);return Nd(r)?r.value:n}function hf(e,t,n){return zf({...e,...t.$defs},D(t.$ref),n)}function gf(e,t,n){return zf(e,st(t),n)}function _f(e,t,n){let r=af(n);return Nd(r)?Math.trunc(r.value):n}function vf(e,t,n){let r=wt(e,t);return zf(e,st(r),n)}function yf(e,t,n){let r=Ud(n);return Nd(r)&&V(t.const,r.value)?r.value:n}function bf(e,t,n){let r=qd(n);return Nd(r)&&V(t.const,r.value)?r.value:n}function xf(e,t,n){let r=af(n);return Nd(r)&&V(t.const,r.value)?r.value:n}function Sf(e,t,n){let r=of(n);return Nd(r)&&V(t.const,r.value)?r.value:n}function Cf(e,t,n){return V(t.const,n)?n:rt(t)?yf(e,t,n):ye(t)?bf(e,t,n):P(t)?xf(e,t,n):Se(t)?Sf(e,t,n):de()}function wf(e,t,n){let r=Qd(n);return Nd(r)?r.value:n}function Tf(e,t,n){let r=af(n);return Nd(r)?r.value:n}function Ef(e,t,n,r){let i=M(r);for(let[a,o]of t)for(let t of i)a.test(t)||(r[t]=zf(e,n,r[t]));return r}function Df(e,t,n){return Ne(e)&&F(n[t])}function Of(e,t,n){let r=ot(t.properties),i=M(n);for(let[t,a]of r)for(let r of i)!t.test(r)||Df(a,r,n)||(n[r]=zf(e,a,n[r]));return B(t,`additionalProperties`)&&O(t.additionalProperties)?Ef(e,r,t.additionalProperties,n):n}function kf(e,t,n){return nt(n)?Of(e,t,n):n}function Af(e,t,n){let r=ot(t.patternProperties),i=M(n);for(let[t,a]of r)for(let r of i)t.test(r)&&(n[r]=zf(e,a,n[r]));return B(t,`additionalProperties`)&&O(t.additionalProperties)?Ef(e,r,t.additionalProperties,n):n}function jf(e,t,n){return nt(n)?Af(e,t,n):n}function Mf(e,t,n){return B(e,t.$ref)?zf(e,e[t.$ref],n):n}function Nf(e,t,n){let r=of(n);return Nd(r)?r.value:n}function Pf(e,t,n){return zf(e,st(t),n)}function Ff(e,t,n){if(!mt(n))return n;for(let r=0;r<Math.min(t.items.length,n.length);r++)n[r]=zf(e,t.items[r],n[r]);return n}function If(e,t,n){let r=df(n);return Nd(r)?r.value:n}function Lf(e,t,n){if(t.anyOf.some(t=>dd(e,t,n)))return n;let r=t.anyOf.map(t=>zf(e,t,Cd(n))).find(n=>dd(e,t,n));return F(r)?n:r}function Rf(e,t,n){return Nd(df(n))?void 0:n}function zf(e,t,n){return _t(t)?ff(e,t,n):we(t)?pf(e,t,n):ge(t)?mf(e,t,n):me(t)?hf(e,t,n):ue(t)?gf(e,t,n):fe(t)?_f(e,t,n):je(t)?vf(e,t,n):ee(t)?Cf(e,t,n):at(t)?wf(e,t,n):xe(t)?Tf(e,t,n):pe(t)?kf(e,t,n):$e(t)?jf(e,t,n):Ce(t)?Mf(e,t,n):z(t)?Nf(e,t,n):Ye(t)?Pf(e,t,n):Ue(t)?Ff(e,t,n):ut(t)?If(e,t,n):A(t)?Lf(e,t,n):ht(t)?Rf(e,t,n):n}function Bf(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return zf(t,n,r)}function Vf(e,t,n){if(!mt(n))return n;for(let r=0;r<n.length;r++)n[r]=Xf(e,t.items,n[r]);return n}function Hf(e,t,n){return Xf({...e,...t.$defs},D(t.$ref),n)}function Uf(e,t){return F(t)?jt(e.default)?e.default():Cd(e.default):t}function Wf(e,t,n){let r=wt(e,t);return Xf(e,st(r),n)}function Gf(e,t,n){if(!O(n))return n;let r=M(t.properties);for(let i of r){let r=Xf(e,t.properties[i],n[i]);F(r)&&(Ne(t.properties[i])||!B(t.properties[i],`default`))||(n[i]=r)}if(!Ho(t)||Qe(t.additionalProperties))return n;for(let i of M(n))r.includes(i)||(n[i]=Xf(e,t.additionalProperties,n[i]));return n}function Kf(e,t,n){if(!O(n))return n;let[r,i]=[new RegExp(Tt(t)),Mt(t)];for(let t of M(n))r.test(t)&&Jo(i)&&(n[t]=Xf(e,i,n[t]));if(!Ho(t))return n;for(let i of M(n))r.test(i)||(n[i]=Xf(e,t.additionalProperties,n[i]));return n}function qf(e,t,n){return B(e,t.$ref)?Xf(e,e[t.$ref],n):n}function Jf(e,t,n){if(!mt(n))return n;let[r,i]=[t.items,Math.max(t.items.length,n.length)];for(let t=0;t<i;t++)t<r.length&&(n[t]=Xf(e,r[t],n[t]));return n}function Yf(e,t,n){for(let r of t.anyOf){let t=Xf(e,r,Cd(n));if(dd(e,r,t))return t}return n}function Xf(e,t,n){let r=Jo(t)?Uf(t,n):n;return _t(t)?Vf(e,t,r):me(t)?Hf(e,t,r):je(t)?Wf(e,t,r):pe(t)?Gf(e,t,r):$e(t)?Kf(e,t,r):Ce(t)?qf(e,t,r):Ue(t)?Jf(e,t,r):A(t)?Yf(e,t,r):r}function Zf(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Xf(t,n,r)}function Qf(e){return(...t)=>{let[n,r,i]=Eo(t,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return e.reduce((e,t)=>t(n,r,e),i)}}function $f(e,t,n){return t[`~codec`].decode(n)}function ep(e,t,n){return t[`~codec`].encode(n)}function tp(e,t,n,r){return Nt(n)?V(e,`Decode`)?$f(t,n,r):ep(t,n,r):r}function np(e,t,n,r){if(!mt(r))return r;for(let i=0;i<r.length;i++)r[i]=Tp(e,t,n.items,r[i]);return tp(e,t,n,r)}function rp(e,t,n,r){let i=tp(e,t,n,r);if(!mt(i))return i;for(let r=0;r<i.length;r++)i[r]=Tp(e,t,n.items,i[r]);return i}function ip(e,t,n,r){return V(e,`Decode`)?np(e,t,n,r):rp(e,t,n,r)}function ap(e,t,n,r){return r=Tp(e,{...t,...n.$defs},D(n.$ref),r),tp(e,t,n,r)}function op(e){return e.reduce((e,t)=>({...e,...t}),{})}function sp(e,t){for(let n of t)if(!Re(e,n))return n;return e}function cp(e,t,n,r){if(V(n.allOf.length,0))return tp(e,t,n,r);let i=n.allOf.map(n=>Tp(e,t,n,Md(n,Cd(r))));return tp(e,t,n,i.every(e=>O(e))?op(i):sp(r,i))}function lp(e,t,n,r){if(V(n.allOf.length,0))return tp(e,t,n,r);let i=tp(e,t,n,r),a=n.allOf.map(n=>Tp(e,t,n,Md(n,Cd(i))));return a.every(e=>O(e))?op(a):sp(i,a)}function up(e,t,n,r){return V(e,`Decode`)?cp(e,t,n,r):lp(e,t,n,r)}function dp(e,t,n,r){if(!nt(r))return r;for(let i of M(n.properties))!B(r,i)||Df(n.properties[i],i,r)||(r[i]=Tp(e,t,n.properties[i],r[i]));return tp(e,t,n,r)}function fp(e,t,n,r){let i=tp(e,t,n,r);if(!nt(i))return i;for(let r of M(n.properties))!B(i,r)||Df(n.properties[r],r,i)||(i[r]=Tp(e,t,n.properties[r],i[r]));return i}function pp(e,t,n,r){return V(e,`Decode`)?dp(e,t,n,r):fp(e,t,n,r)}function mp(e,t,n,r){if(!nt(r))return r;let i=new RegExp(Tt(n));for(let a of M(r))i.test(a)&&(r[a]=Tp(e,t,Mt(n),r[a]));return tp(e,t,n,r)}function hp(e,t,n,r){let i=tp(e,t,n,r);if(!nt(i))return i;let a=new RegExp(Tt(n));for(let r of M(i))a.test(r)&&(i[r]=Tp(e,t,Mt(n),i[r]));return i}function gp(e,t,n,r){return V(e,`Decode`)?mp(e,t,n,r):hp(e,t,n,r)}function _p(e,t,n,r){return B(t,n.$ref)?Tp(e,t,t[n.$ref],r):r}function vp(e,t,n,r){return V(e,`Decode`)?tp(e,t,n,_p(e,t,n,r)):_p(e,t,n,tp(e,t,n,r))}function yp(e,t,n,r){if(!mt(r))return r;for(let i=0;i<Math.min(n.items.length,r.length);i++)r[i]=Tp(e,t,n.items[i],r[i]);return tp(e,t,n,r)}function bp(e,t,n,r){let i=tp(e,t,n,r);if(!mt(i))return r;for(let r=0;r<Math.min(n.items.length,i.length);r++)i[r]=Tp(e,t,n.items[r],i[r]);return i}function xp(e,t,n,r){return V(e,`Decode`)?yp(e,t,n,r):bp(e,t,n,r)}function Sp(e,t,n,r){for(let i of n.anyOf)if(dd(t,i,r))return tp(e,t,n,Tp(e,t,i,r));return r}function Cp(e,t,n,r){let i=tp(e,t,n,r);for(let r of n.anyOf){let n=Tp(e,t,r,Cd(i));if(dd(t,r,n))return n}return i}function wp(e,t,n,r){return V(e,`Decode`)?Sp(e,t,n,r):Cp(e,t,n,r)}function Tp(e,t,n,r){return _t(n)?ip(e,t,n,r):me(n)?ap(e,t,n,r):je(n)?up(e,t,n,r):pe(n)?pp(e,t,n,r):$e(n)?gp(e,t,n,r):Ce(n)?vp(e,t,n,r):Ue(n)?xp(e,t,n,r):A(n)?wp(e,t,n,r):tp(e,t,n,r)}var Ep=class extends pd{constructor(e,t){super(`Decode`,e,t)}};function Dp(e,t,n){if(!dd(e,t,n))throw new Ep(n,fd(e,t,n));return n}function Op(e,t,n){return Tp(`Decode`,e,pt().unionPrioritySort?jd(t):t,n)}const kp=Qf([(e,t,n)=>Cd(n),(e,t,n)=>Zf(e,t,n),(e,t,n)=>Bf(e,t,n),(e,t,n)=>Md(e,t,n),(e,t,n)=>Dp(e,t,n),(e,t,n)=>Op(e,t,n)]);function Ap(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return kp(t,n,r)}var jp=class extends pd{constructor(e,t){super(`Encode`,e,t)}};function Mp(e,t,n){if(!dd(e,t,n))throw new jp(n,fd(e,t,n));return n}function Np(e,t,n){return Tp(`Encode`,e,pt().unionPrioritySort?jd(t):t,n)}const Pp=Qf([(e,t,n)=>Cd(n),(e,t,n)=>Np(e,t,n),(e,t,n)=>Zf(e,t,n),(e,t,n)=>Bf(e,t,n),(e,t,n)=>Md(e,t,n),(e,t,n)=>Mp(e,t,n)]);function Fp(...e){let[t,n,r]=Eo(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Pp(t,n,r)}function Ip(e,t){return Nt(t)||Wp(e,t.items)}function Lp(e,t){return Nt(t)||Vp({...e,...t.$defs},D(t.$ref))}function Rp(e,t){return Nt(t)||t.allOf.some(t=>Wp(e,t))}function zp(e,t){return Nt(t)||M(t.properties).some(n=>Wp(e,t.properties[n]))}function Bp(e,t){return Nt(t)||Wp(e,Mt(t))}function Vp(e,t){return!Gp.has(t.$ref)&&(Gp.add(t.$ref),Nt(t)||B(e,t.$ref)&&Wp(e,e[t.$ref]))}function Hp(e,t){return Nt(t)||t.items.some(t=>Wp(e,t))}function Up(e,t){return Nt(t)||t.anyOf.some(t=>Wp(e,t))}function Wp(e,t){return _t(t)?Ip(e,t):me(t)?Lp(e,t):je(t)?Rp(e,t):pe(t)?zp(e,t):$e(t)?Bp(e,t):Ce(t)?Vp(e,t):Ue(t)?Hp(e,t):A(t)?Up(e,t):Nt(t)}const Gp=new Set;function Kp(...e){let[t,n]=Eo(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return Gp.clear(),Wp(t,n)}var qp=class extends Error{constructor(e,t){super(t),this.type=e}};function Jp(e,t){return jt(t.default)?t.default(t):O(t.default)?Cd(t.default):t.default}function Yp(e,t){if(Ps(t)&&!Jo(t))throw new qp(t,`Arrays with uniqueItems constraints must specify a default annotation`);let n=gs(t)?t.minItems:0;return Array.from({length:n},()=>gm(e,t.items))}function Xp(e,t){return rs(t)?BigInt(t.exclusiveMinimum)+BigInt(1):ms(t)?BigInt(t.minimum):BigInt(0)}function Zp(e,t){return!1}function Qp(e,t){let n=gm(e,t.instanceType);return class{constructor(){Object.assign(this,n)}}}function $p(e,t){return gm({...e,...t.$defs},D(t.$ref))}function em(e,t){return gm(e,st(t))}function tm(e,t){let n=gm(e,t.returnType);return()=>n}function nm(e,t){return rs(t)&&it(t.exclusiveMinimum)?t.exclusiveMinimum+1:ms(t)?t.minimum:0}function rm(e,t){let n=wt(e,t);return gm(e,st(n))}function im(e,t){return t.const}function am(e,t){throw new qp(t,`Cannot create TNever types`)}function om(e,t){return null}function sm(e,t){return rs(t)&&it(t.exclusiveMinimum)?t.exclusiveMinimum+1:ms(t)?t.minimum:0}function cm(e,t){return(F(t.required)?[]:t.required).reduce((n,r)=>({...n,[r]:gm(e,t.properties[r])}),{})}function lm(e,t){if(vs(t)&&!Jo(t))throw new qp(t,`Record with the minProperties constraint must have a default annotation`);return{}}function um(e,t){return B(e,t.$ref)?gm(e,e[t.$ref]):(()=>{throw new qp(t,`Unable to deref Ref`)})()}function dm(e,t){if((Ss(t)||is(t))&&!Jo(t))throw Error(`Strings with format or pattern constraints must specify default`);let n=_s(t)?t.minLength:0;return``.padEnd(n)}function fm(e,t){return Symbol()}function pm(e,t){let n=Ee(t.pattern);if(z(n))throw new qp(t,`Unable to create TemplateLiteral due to infinite type expansion`);return gm(e,n)}function mm(e,t){return Array.from({length:t.minItems},(n,r)=>gm(e,t.items[r]))}function hm(e,t){if(V(t.anyOf.length,0))throw Error(`Unable to create Union with no variants`);return gm(e,t.anyOf[0])}function gm(e,t){return Jo(t)?Jp(e,t):_t(t)?Yp(e,t):we(t)?Xp(e,t):ge(t)?Zp(e,t):xt(t)?Qp(e,t):me(t)?$p(e,t):ue(t)?em(e,t):qe(t)?tm(e,t):fe(t)?nm(e,t):je(t)?rm(e,t):ee(t)?im(e,t):Le(t)?am(e,t):at(t)?om(e,t):xe(t)?sm(e,t):pe(t)?cm(e,t):$e(t)?lm(e,t):Ce(t)?um(e,t):z(t)?dm(e,t):ie(t)?fm(e,t):Ye(t)?pm(e,t):Ue(t)?mm(e,t):ut(t)?void 0:A(t)?hm(e,t):(ht(t),void 0)}function _m(...e){let[t,n]=Eo(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return gm(t,n)}var vm=class extends pd{constructor(e,t){super(`Parse`,e,t)}};function ym(e,t,n){if(!dd(e,t,n))throw new vm(n,fd(e,t,n));return n}const bm=Qf([(e,t,n)=>Cd(n),(e,t,n)=>Zf(e,t,n),(e,t,n)=>Bf(e,t,n),(e,t,n)=>Md(e,t,n),(e,t,n)=>ym(e,t,n)]),xm=Fe({type:le(`insert`),path:se(),value:gt()}),Sm=Object({type:le(`update`),path:se(),value:gt()}),Cm=Fe({type:le(`delete`),path:se()});Ot([xm,Sm,Cm]);var wm=class{constructor(e,t){this.hasCodec=Kp(e,t),this.buildResult=cd(e,t),this.evaluateResult=this.buildResult.Evaluate()}IsAccelerated(){return this.evaluateResult.IsAccelerated()}Context(){return this.buildResult.Context()}Type(){return this.buildResult.Schema()}Code(){return this.evaluateResult.Code()}Check(e){return this.evaluateResult.Check(e)}Parse(e){if(this.Check(e))return e;if(pt().correctiveParse)return bm(this.Context(),this.Type(),e);throw new vm(e,this.Errors(e))}Errors(e){return this.IsAccelerated()&&this.Check(e)?[]:fd(this.Context(),this.Type(),e)}Clean(e){return Md(this.Context(),this.Type(),e)}Convert(e){return Bf(this.Context(),this.Type(),e)}Create(){return _m(this.Context(),this.Type())}Default(e){return Zf(this.Context(),this.Type(),e)}Decode(e){return this.hasCodec?Ap(this.Context(),this.Type(),e):this.Parse(e)}Encode(e){return this.hasCodec?Fp(this.Context(),this.Type(),e):this.Parse(e)}};function Tm(...e){let[t,n]=Eo(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return new wm(t,n)}const Em=new WeakMap,Dm=Symbol.for(`TypeBox.Kind`);function Om(e){return typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type.filter(e=>typeof e==`string`):[]}function km(e,t){switch(t){case`number`:return typeof e==`number`;case`integer`:return typeof e==`number`&&Number.isInteger(e);case`boolean`:return typeof e==`boolean`;case`string`:return typeof e==`string`;case`null`:return e===null;case`array`:return Array.isArray(e);case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);default:return!1}}function Am(e){try{return Lm(e)}catch{return}}function jm(e,t){switch(t){case`number`:if(e===null)return 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return typeof e==`boolean`?+!!e:e;case`integer`:if(e===null)return 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isInteger(t))return t}return typeof e==`boolean`?+!!e:e;case`boolean`:if(e===null)return!1;if(typeof e==`string`){if(e===`true`)return!0;if(e===`false`)return!1}if(typeof e==`number`){if(e===1)return!0;if(e===0)return!1}return e;case`string`:return e===null?``:typeof e==`number`||typeof e==`boolean`?String(e):e;case`null`:return e===``||e===0||e===!1?null:e;default:return e}}function Mm(e,t){let n=t.properties,r=new Set(n?Object.keys(n):[]);if(n)for(let[t,r]of Object.entries(n))t in e&&(e[t]=Fm(e[t],r));if(t.additionalProperties&&typeof t.additionalProperties==`object`)for(let[n,i]of Object.entries(e))r.has(n)||(e[n]=Fm(i,t.additionalProperties))}function Nm(e,t){if(Array.isArray(t.items)){for(let n=0;n<e.length;n++){let r=t.items[n];r&&(e[n]=Fm(e[n],r))}return}if(t.items&&typeof t.items==`object`)for(let n=0;n<e.length;n++)e[n]=Fm(e[n],t.items)}function Pm(e,t){for(let n of t)if(Am(n)?.Check(e))return e;for(let n of t){let t=Fm(structuredClone(e),n);if(Am(n)?.Check(t))return t}return e}function Fm(e,t){let n=e;if(Array.isArray(t.allOf))for(let e of t.allOf)n=Fm(n,e);Array.isArray(t.anyOf)&&(n=Pm(n,t.anyOf)),Array.isArray(t.oneOf)&&(n=Pm(n,t.oneOf));let r=Om(t),i=r.length>1&&r.some(e=>km(n,e));if(r.length>0&&!i)for(let e of r){let t=jm(n,e);if(t!==n){n=t;break}}return r.includes(`object`)&&typeof n==`object`&&n&&!Array.isArray(n)&&Mm(n,t),r.includes(`array`)&&Array.isArray(n)&&Nm(n,t),n}function Im(e,t){if(Array.isArray(e)){if(Array.isArray(t.items))for(let n=0;n<e.length;n++){let r=t.items[n];r&&Im(e[n],r)}else if(t.items)for(let n of e)Im(n,t.items);return}if(typeof e!=`object`||!e||!t.properties)return;let n=e,r=new Set(t.required??[]);for(let[e,i]of Object.entries(t.properties))e in n&&(n[e]===null&&!r.has(e)&&typeof i.$ref!=`string`&&Am(i)?.Check(null)===!1?delete n[e]:Im(n[e],i))}function Lm(e){let t=e,n=Em.get(t);if(n)return n;let r=Tm(e);return Em.set(t,r),r}function Rm(e){if(e.keyword===`required`){let t=e.params.requiredProperties?.[0];if(t){let n=e.instancePath.replace(/^\//,``).replace(/\//g,`.`);return n?`${n}.${t}`:t}}return e.instancePath.replace(/^\//,``).replace(/\//g,`.`)||`root`}function zm(e,t){let n=structuredClone(t.arguments);Im(n,e.parameters),Bf(e.parameters,n);let r=Lm(e.parameters);if(!Object.getOwnPropertySymbols(e.parameters).includes(Dm)){let t=Fm(n,e.parameters);if(t!==n)if(typeof n==`object`&&n&&typeof t==`object`&&t){for(let e of Object.keys(n))delete n[e];Object.assign(n,t)}else return r.Check(t)?t:n}if(r.Check(n))return n;let i=r.Errors(n).map(e=>` - ${Rm(e)}: ${e.message}`).join(`
881
- `)||`Unknown validation error`,a=`Validation failed for tool "${t.name}":\n${i}\n\nReceived arguments:\n${JSON.stringify(t.arguments,null,2)}`;throw Error(a)}function Bm(){throw Error(`No default stream function configured. Pass streamFn explicitly or call setDefaultStreamFn().`)}async function Vm(e,t,n,r,i,a){let o=[...e],s={...t,messages:[...t.messages,...e]};await r({type:`agent_start`}),await r({type:`turn_start`});for(let t of e)await r({type:`message_start`,message:t}),await r({type:`message_end`,message:t});return await Um(s,o,n,i,r,a??Bm()),o}async function Hm(e,t,n,r,i){if(e.messages.length===0)throw Error(`Cannot continue: no messages in context`);if(e.messages[e.messages.length-1].role===`assistant`)throw Error(`Cannot continue from message role: assistant`);let a=[],o={...e};return await n({type:`agent_start`}),await n({type:`turn_start`}),await Um(o,a,t,r,n,i??Bm()),a}async function Um(e,t,n,r,i,a){let o=e,s=n,c=!0,l=await s.getSteeringMessages?.()||[];for(;;){let e=!0;for(;e||l.length>0;){if(c?c=!1:await i({type:`turn_start`}),l.length>0){for(let e of l)await i({type:`message_start`,message:e}),await i({type:`message_end`,message:e}),o.messages.push(e),t.push(e);l=[]}let n=await Wm(o,s,r,i,a);if(t.push(n),n.stopReason===`error`||n.stopReason===`aborted`){await i({type:`turn_end`,message:n,toolResults:[]}),await i({type:`agent_end`,messages:t});return}let u=n.content.filter(e=>e.type===`toolCall`),d=[];if(e=!1,u.length>0){let a=n.stopReason===`length`?await Gm(u,i):await Km(o,n,s,r,i);d.push(...a.messages),e=!a.terminate;for(let e of d)o.messages.push(e),t.push(e)}await i({type:`turn_end`,message:n,toolResults:d});let f={message:n,toolResults:d,context:o,newMessages:t},p=await s.prepareNextTurn?.(f);if(p&&(o=p.context??o,s={...s,model:p.model??s.model,reasoning:p.thinkingLevel===void 0?s.reasoning:p.thinkingLevel===`off`?void 0:p.thinkingLevel}),await s.shouldStopAfterTurn?.({message:n,toolResults:d,context:o,newMessages:t})){await i({type:`agent_end`,messages:t});return}l=await s.getSteeringMessages?.()||[]}let n=await s.getFollowUpMessages?.()||[];if(n.length>0){l=n;continue}break}await i({type:`agent_end`,messages:t})}async function Wm(e,t,n,r,i){let a=e.messages;t.transformContext&&(a=await t.transformContext(a,n));let o=await t.convertToLlm(a),s={systemPrompt:e.systemPrompt,messages:o,tools:e.tools},c=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,l=await i(t.model,s,{...t,apiKey:c,signal:n}),u=null,d=!1;for await(let t of l)switch(t.type){case`start`:u=t.partial,e.messages.push(u),d=!0,await r({type:`message_start`,message:{...u}});break;case`text_start`:case`text_delta`:case`text_end`:case`thinking_start`:case`thinking_delta`:case`thinking_end`:case`toolcall_start`:case`toolcall_delta`:case`toolcall_end`:u&&(u=t.partial,e.messages[e.messages.length-1]=u,await r({type:`message_update`,assistantMessageEvent:t,message:{...u}}));break;case`done`:case`error`:{let t=await l.result();return d?e.messages[e.messages.length-1]=t:e.messages.push(t),d||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let f=await l.result();return d?e.messages[e.messages.length-1]=f:(e.messages.push(f),await r({type:`message_start`,message:{...f}})),await r({type:`message_end`,message:f}),f}async function Gm(e,t){let n=[];for(let r of e){await t({type:`tool_execution_start`,toolCallId:r.id,toolName:r.name,args:r.arguments});let e={toolCall:r,result:eh(`Tool call "${r.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),isError:!0};await th(e,t);let i=nh(e);await rh(i,t),n.push(i)}return{messages:n,terminate:!1}}async function Km(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`),o=a.some(t=>e.tools?.find(e=>e.name===t.name)?.executionMode===`sequential`);return n.toolExecution===`sequential`||o?qm(e,t,a,n,r,i):Jm(e,t,a,n,r,i)}async function qm(e,t,n,r,i,a){let o=[],s=[];for(let c of n){await a({type:`tool_execution_start`,toolCallId:c.id,toolName:c.name,args:c.arguments});let n=await Zm(e,t,c,r,i),l;l=n.kind===`immediate`?{toolCall:c,result:n.result,isError:n.isError}:await $m(e,t,n,await Qm(n,i,a),r,i),await th(l,a);let u=nh(l);if(await rh(u,a),o.push(l),s.push(u),i?.aborted)break}return{messages:s,terminate:Ym(o)}}async function Jm(e,t,n,r,i,a){let o=[];for(let s of n){await a({type:`tool_execution_start`,toolCallId:s.id,toolName:s.name,args:s.arguments});let n=await Zm(e,t,s,r,i);if(n.kind===`immediate`){let e={toolCall:s,result:n.result,isError:n.isError};if(await th(e,a),o.push(e),i?.aborted)break;continue}if(o.push(async()=>{let o=await Qm(n,i,a),s=await $m(e,t,n,o,r,i);return await th(s,a),s}),i?.aborted)break}let s=await Promise.all(o.map(e=>typeof e==`function`?e():Promise.resolve(e))),c=[];for(let e of s){let t=nh(e);await rh(t,a),c.push(t)}return{messages:c,terminate:Ym(s)}}function Ym(e){return e.length>0&&e.every(e=>e.result.terminate===!0)}function Xm(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function Zm(e,t,n,r,i){let a=e.tools?.find(e=>e.name===n.name);if(!a)return{kind:`immediate`,result:eh(`Tool ${n.name} not found`),isError:!0};try{let o=zm(a,Xm(a,n));if(r.beforeToolCall){let a=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:o,context:e},i);if(i?.aborted)return{kind:`immediate`,result:eh(`Operation aborted`),isError:!0};if(a?.block)return{kind:`immediate`,result:eh(a.reason||`Tool execution was blocked`),isError:!0}}return i?.aborted?{kind:`immediate`,result:eh(`Operation aborted`),isError:!0}:{kind:`prepared`,toolCall:n,tool:a,args:o}}catch(e){return{kind:`immediate`,result:eh(e instanceof Error?e.message:String(e)),isError:!0}}}async function Qm(e,t,n){let r=[],i=!0;try{let a=await e.tool.execute(e.toolCall.id,e.args,t,t=>{i&&r.push(Promise.resolve(n({type:`tool_execution_update`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,args:e.toolCall.arguments,partialResult:t})))});return i=!1,await Promise.all(r),{result:a,isError:!1}}catch(e){return i=!1,await Promise.all(r),{result:eh(e instanceof Error?e.message:String(e)),isError:!0}}finally{i=!1}}async function $m(e,t,n,r,i,a){let o=r.result,s=r.isError;if(i.afterToolCall)try{let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:o,isError:s,context:e},a);r&&(o={...o,content:r.content??o.content,details:r.details??o.details,usage:r.usage??o.usage,terminate:r.terminate??o.terminate},s=r.isError??s)}catch(e){o=eh(e instanceof Error?e.message:String(e)),s=!0}return{toolCall:n.toolCall,result:o,isError:s}}function eh(e){return{content:[{type:`text`,text:e}],details:{}}}async function th(e,t){await t({type:`tool_execution_end`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,result:e.result,isError:e.isError})}function nh(e){return{role:`toolResult`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,content:e.result.content??[],details:e.result.details,usage:e.result.usage,...e.result.addedToolNames?.length?{addedToolNames:e.result.addedToolNames}:{},isError:e.isError,timestamp:Date.now()}}async function rh(e,t){await t({type:`message_start`,message:e}),await t({type:`message_end`,message:e})}function ih(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}const ah={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},oh={id:`unknown`,name:`unknown`,api:`unknown`,provider:`unknown`,baseUrl:``,reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function sh(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??oh,thinkingLevel:e?.thinkingLevel??`off`,get tools(){return t},set tools(e){t=e.slice()},get messages(){return n},set messages(e){n=e.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var ch=class{messages=[];mode;constructor(e){this.mode=e}enqueue(e){this.messages.push(e)}hasItems(){return this.messages.length>0}drain(){if(this.mode===`all`){let e=this.messages.slice();return this.messages=[],e}let e=this.messages[0];return e?(this.messages=this.messages.slice(1),[e]):[]}clear(){this.messages=[]}},lh=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFunction;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;shouldStopAfterTurn;prepareNextTurn;prepareNextTurnWithContext;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e){let t=e??{};this._state=sh(t.initialState),this.convertToLlm=t.convertToLlm??ih,this.transformContext=t.transformContext,this.streamFunction=t.streamFn??Bm(),this.getApiKey=t.getApiKey,this.onPayload=t.onPayload,this.onResponse=t.onResponse,this.beforeToolCall=t.beforeToolCall,this.afterToolCall=t.afterToolCall,this.shouldStopAfterTurn=t.shouldStopAfterTurn,this.prepareNextTurn=t.prepareNextTurn,this.prepareNextTurnWithContext=t.prepareNextTurnWithContext,this.steeringQueue=new ch(t.steeringMode??`one-at-a-time`),this.followUpQueue=new ch(t.followUpMode??`one-at-a-time`),this.sessionId=t.sessionId,this.thinkingBudgets=t.thinkingBudgets,this.transport=t.transport??`auto`,this.maxRetryDelayMs=t.maxRetryDelayMs,this.toolExecution=t.toolExecution??`parallel`}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}get state(){return this._state}set steeringMode(e){this.steeringQueue.mode=e}get steeringMode(){return this.steeringQueue.mode}set followUpMode(e){this.followUpQueue.mode=e}get followUpMode(){return this.followUpQueue.mode}steer(e){this.steeringQueue.enqueue(e)}followUp(e){this.followUpQueue.enqueue(e)}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(e,t){if(this.activeRun)throw Error(`Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.`);let n=this.normalizePromptInput(e,t);await this.runPromptMessages(n)}async continue(){if(this.activeRun)throw Error(`Agent is already processing. Wait for completion before continuing.`);let e=this._state.messages[this._state.messages.length-1];if(!e)throw Error(`No messages to continue from`);if(e.role===`assistant`){let e=this.steeringQueue.drain();if(e.length>0){await this.runPromptMessages(e,{skipInitialSteeringPoll:!0});return}let t=this.followUpQueue.drain();if(t.length>0){await this.runPromptMessages(t);return}throw Error(`Cannot continue from message role: assistant`)}await this.runContinuation()}normalizePromptInput(e,t){if(Array.isArray(e))return e;if(typeof e!=`string`)return[e];let n=[{type:`text`,text:e}];return t&&t.length>0&&n.push(...t),[{role:`user`,content:n,timestamp:Date.now()}]}async runPromptMessages(e,t={}){await this.runWithLifecycle(async n=>{await Vm(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFunction)})}async runContinuation(){await this.runWithLifecycle(async e=>{await Hm(this.createContextSnapshot(),this.createLoopConfig(),e=>this.processEvents(e),e,this.streamFunction)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(e={}){let t=e.skipInitialSteeringPoll===!0,n=this.shouldStopAfterTurn;return{model:this._state.model,reasoning:this._state.thinkingLevel===`off`?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,shouldStopAfterTurn:n?async e=>await n(e,this.signal):void 0,prepareNextTurn:this.prepareNextTurnWithContext||this.prepareNextTurn?async e=>this.prepareNextTurnWithContext?await this.prepareNextTurnWithContext(e,this.signal):await this.prepareNextTurn?.(this.signal):void 0,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>t?(t=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(e){if(this.activeRun)throw Error(`Agent is already processing.`);let t=new AbortController,n=()=>{},r=new Promise(e=>{n=e});this.activeRun={promise:r,resolve:n,abortController:t},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await e(t.signal)}catch(e){await this.handleRunFailure(e,t.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(e,t){let n={role:`assistant`,content:[{type:`text`,text:``}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:ah,stopReason:t?`aborted`:`error`,errorMessage:e instanceof Error?e.message:String(e),timestamp:Date.now()};await this.processEvents({type:`message_start`,message:n}),await this.processEvents({type:`message_end`,message:n}),await this.processEvents({type:`turn_end`,message:n,toolResults:[]}),await this.processEvents({type:`agent_end`,messages:[n]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(e){switch(e.type){case`message_start`:this._state.streamingMessage=e.message;break;case`message_update`:this._state.streamingMessage=e.message;break;case`message_end`:this._state.streamingMessage=void 0,this._state.messages.push(e.message);break;case`tool_execution_start`:{let t=new Set(this._state.pendingToolCalls);t.add(e.toolCallId),this._state.pendingToolCalls=t;break}case`tool_execution_end`:{let t=new Set(this._state.pendingToolCalls);t.delete(e.toolCallId),this._state.pendingToolCalls=t;break}case`turn_end`:e.message.role===`assistant`&&e.message.errorMessage&&(this._state.errorMessage=e.message.errorMessage);break;case`agent_end`:this._state.streamingMessage=void 0}let t=this.activeRun?.abortController.signal;if(!t)throw Error(`Agent listener invoked outside active run`);for(let n of this.listeners)await n(e,t)}};function uh(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n>=10||r===0?Math.round(n):Math.round(n*10)/10} ${t[r]}`}function dh(e){let t=e.mimeType||`application/octet-stream`;return`${e.name} (${t}, ${uh(e.size)})`}function fh(e){let t=dh(e);return e.kind===`image`&&e.data?e.path?`[Attached image: ${t} — full-resolution copy saved to ${e.path}]`:`[Attached image: ${t}]`:e.kind===`text`&&e.text!==void 0?[`----- BEGIN ATTACHMENT ${t} -----`,e.text,`----- END ATTACHMENT ${e.name} -----`].join(`
881
+ `)||`Unknown validation error`,a=`Validation failed for tool "${t.name}":\n${i}\n\nReceived arguments:\n${JSON.stringify(t.arguments,null,2)}`;throw Error(a)}function Bm(){throw Error(`No default stream function configured. Pass streamFn explicitly or call setDefaultStreamFn().`)}async function Vm(e,t,n,r,i,a){let o=[...e],s={...t,messages:[...t.messages,...e]};await r({type:`agent_start`}),await r({type:`turn_start`});for(let t of e)await r({type:`message_start`,message:t}),await r({type:`message_end`,message:t});return await Um(s,o,n,i,r,a??Bm()),o}async function Hm(e,t,n,r,i){if(e.messages.length===0)throw Error(`Cannot continue: no messages in context`);if(e.messages[e.messages.length-1].role===`assistant`)throw Error(`Cannot continue from message role: assistant`);let a=[],o={...e};return await n({type:`agent_start`}),await n({type:`turn_start`}),await Um(o,a,t,r,n,i??Bm()),a}async function Um(e,t,n,r,i,a){let o=e,s=n,c=!0,l=await s.getSteeringMessages?.()||[];for(;;){let e=!0;for(;e||l.length>0;){if(c?c=!1:await i({type:`turn_start`}),l.length>0){for(let e of l)await i({type:`message_start`,message:e}),await i({type:`message_end`,message:e}),o.messages.push(e),t.push(e);l=[]}let n=await Wm(o,s,r,i,a);if(t.push(n),n.stopReason===`error`||n.stopReason===`aborted`){await i({type:`turn_end`,message:n,toolResults:[]}),await i({type:`agent_end`,messages:t});return}let u=n.content.filter(e=>e.type===`toolCall`),d=[];if(e=!1,u.length>0){let a=n.stopReason===`length`?await Gm(u,i):await Km(o,n,s,r,i);d.push(...a.messages),e=!a.terminate;for(let e of d)o.messages.push(e),t.push(e)}await i({type:`turn_end`,message:n,toolResults:d});let f={message:n,toolResults:d,context:o,newMessages:t},p=await s.prepareNextTurn?.(f);if(p&&(o=p.context??o,s={...s,model:p.model??s.model,reasoning:p.thinkingLevel===void 0?s.reasoning:p.thinkingLevel===`off`?void 0:p.thinkingLevel}),await s.shouldStopAfterTurn?.({message:n,toolResults:d,context:o,newMessages:t})){await i({type:`agent_end`,messages:t});return}l=await s.getSteeringMessages?.()||[]}let n=await s.getFollowUpMessages?.()||[];if(n.length>0){l=n;continue}break}await i({type:`agent_end`,messages:t})}async function Wm(e,t,n,r,i){let a=e.messages;t.transformContext&&(a=await t.transformContext(a,n));let o=await t.convertToLlm(a),s={systemPrompt:e.systemPrompt,messages:o,tools:e.tools},c=(t.getApiKey?await t.getApiKey(t.model.provider):void 0)||t.apiKey,l=await i(t.model,s,{...t,apiKey:c,signal:n}),u=null,d=!1;for await(let t of l)switch(t.type){case`start`:u=t.partial,e.messages.push(u),d=!0,await r({type:`message_start`,message:{...u}});break;case`text_start`:case`text_delta`:case`text_end`:case`thinking_start`:case`thinking_delta`:case`thinking_end`:case`toolcall_start`:case`toolcall_delta`:case`toolcall_end`:u&&(u=t.partial,e.messages[e.messages.length-1]=u,await r({type:`message_update`,assistantMessageEvent:t,message:{...u}}));break;case`done`:case`error`:{let t=await l.result();return d?e.messages[e.messages.length-1]=t:e.messages.push(t),d||await r({type:`message_start`,message:{...t}}),await r({type:`message_end`,message:t}),t}}let f=await l.result();return d?e.messages[e.messages.length-1]=f:(e.messages.push(f),await r({type:`message_start`,message:{...f}})),await r({type:`message_end`,message:f}),f}async function Gm(e,t){let n=[];for(let r of e){await t({type:`tool_execution_start`,toolCallId:r.id,toolName:r.name,args:r.arguments});let e={toolCall:r,result:eh(`Tool call "${r.name}" was not executed: the response hit the output token limit, so its arguments may be truncated. Re-issue the tool call with complete arguments.`),isError:!0};await th(e,t);let i=nh(e);await rh(i,t),n.push(i)}return{messages:n,terminate:!1}}async function Km(e,t,n,r,i){let a=t.content.filter(e=>e.type===`toolCall`),o=a.some(t=>e.tools?.find(e=>e.name===t.name)?.executionMode===`sequential`);return n.toolExecution===`sequential`||o?qm(e,t,a,n,r,i):Jm(e,t,a,n,r,i)}async function qm(e,t,n,r,i,a){let o=[],s=[];for(let c of n){await a({type:`tool_execution_start`,toolCallId:c.id,toolName:c.name,args:c.arguments});let n=await Zm(e,t,c,r,i),l;l=n.kind===`immediate`?{toolCall:c,result:n.result,isError:n.isError}:await $m(e,t,n,await Qm(n,i,a),r,i),await th(l,a);let u=nh(l);if(await rh(u,a),o.push(l),s.push(u),i?.aborted)break}return{messages:s,terminate:Ym(o)}}async function Jm(e,t,n,r,i,a){let o=[];for(let s of n){await a({type:`tool_execution_start`,toolCallId:s.id,toolName:s.name,args:s.arguments});let n=await Zm(e,t,s,r,i);if(n.kind===`immediate`){let e={toolCall:s,result:n.result,isError:n.isError};if(await th(e,a),o.push(e),i?.aborted)break;continue}if(o.push(async()=>{let o=await Qm(n,i,a),s=await $m(e,t,n,o,r,i);return await th(s,a),s}),i?.aborted)break}let s=await Promise.all(o.map(e=>typeof e==`function`?e():Promise.resolve(e))),c=[];for(let e of s){let t=nh(e);await rh(t,a),c.push(t)}return{messages:c,terminate:Ym(s)}}function Ym(e){return e.length>0&&e.every(e=>e.result.terminate===!0)}function Xm(e,t){if(!e.prepareArguments)return t;let n=e.prepareArguments(t.arguments);return n===t.arguments?t:{...t,arguments:n}}async function Zm(e,t,n,r,i){let a=e.tools?.find(e=>e.name===n.name);if(!a)return{kind:`immediate`,result:eh(`Tool ${n.name} not found`),isError:!0};try{let o=zm(a,Xm(a,n));if(r.beforeToolCall){let a=await r.beforeToolCall({assistantMessage:t,toolCall:n,args:o,context:e},i);if(i?.aborted)return{kind:`immediate`,result:eh(`Operation aborted`),isError:!0};if(a?.block){let e=eh(a.reason||`Tool execution was blocked`);return a.terminate===!0&&(e.terminate=!0),{kind:`immediate`,result:e,isError:!0}}}return i?.aborted?{kind:`immediate`,result:eh(`Operation aborted`),isError:!0}:{kind:`prepared`,toolCall:n,tool:a,args:o}}catch(e){return{kind:`immediate`,result:eh(e instanceof Error?e.message:String(e)),isError:!0}}}async function Qm(e,t,n){let r=[],i=!0;try{let a=await e.tool.execute(e.toolCall.id,e.args,t,t=>{i&&r.push(Promise.resolve(n({type:`tool_execution_update`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,args:e.toolCall.arguments,partialResult:t})))});return i=!1,await Promise.all(r),{result:a,isError:!1}}catch(e){return i=!1,await Promise.all(r),{result:eh(e instanceof Error?e.message:String(e)),isError:!0}}finally{i=!1}}async function $m(e,t,n,r,i,a){let o=r.result,s=r.isError;if(i.afterToolCall)try{let r=await i.afterToolCall({assistantMessage:t,toolCall:n.toolCall,args:n.args,result:o,isError:s,context:e},a);r&&(o={...o,content:r.content??o.content,details:r.details??o.details,usage:r.usage??o.usage,terminate:r.terminate??o.terminate},s=r.isError??s)}catch(e){o=eh(e instanceof Error?e.message:String(e)),s=!0}return{toolCall:n.toolCall,result:o,isError:s}}function eh(e){return{content:[{type:`text`,text:e}],details:{}}}async function th(e,t){await t({type:`tool_execution_end`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,result:e.result,isError:e.isError})}function nh(e){return{role:`toolResult`,toolCallId:e.toolCall.id,toolName:e.toolCall.name,content:e.result.content??[],details:e.result.details,usage:e.result.usage,...e.result.addedToolNames?.length?{addedToolNames:e.result.addedToolNames}:{},isError:e.isError,timestamp:Date.now()}}async function rh(e,t){await t({type:`message_start`,message:e}),await t({type:`message_end`,message:e})}function ih(e){return e.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`toolResult`)}const ah={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},oh={id:`unknown`,name:`unknown`,api:`unknown`,provider:`unknown`,baseUrl:``,reasoning:!1,input:[],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0};function sh(e){let t=e?.tools?.slice()??[],n=e?.messages?.slice()??[];return{systemPrompt:e?.systemPrompt??``,model:e?.model??oh,thinkingLevel:e?.thinkingLevel??`off`,get tools(){return t},set tools(e){t=e.slice()},get messages(){return n},set messages(e){n=e.slice()},isStreaming:!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:void 0}}var ch=class{messages=[];mode;constructor(e){this.mode=e}enqueue(e){this.messages.push(e)}hasItems(){return this.messages.length>0}drain(){if(this.mode===`all`){let e=this.messages.slice();return this.messages=[],e}let e=this.messages[0];return e?(this.messages=this.messages.slice(1),[e]):[]}clear(){this.messages=[]}},lh=class{_state;listeners=new Set;steeringQueue;followUpQueue;convertToLlm;transformContext;streamFunction;getApiKey;onPayload;onResponse;beforeToolCall;afterToolCall;shouldStopAfterTurn;prepareNextTurn;prepareNextTurnWithContext;activeRun;sessionId;thinkingBudgets;transport;maxRetryDelayMs;toolExecution;constructor(e){let t=e??{};this._state=sh(t.initialState),this.convertToLlm=t.convertToLlm??ih,this.transformContext=t.transformContext,this.streamFunction=t.streamFn??Bm(),this.getApiKey=t.getApiKey,this.onPayload=t.onPayload,this.onResponse=t.onResponse,this.beforeToolCall=t.beforeToolCall,this.afterToolCall=t.afterToolCall,this.shouldStopAfterTurn=t.shouldStopAfterTurn,this.prepareNextTurn=t.prepareNextTurn,this.prepareNextTurnWithContext=t.prepareNextTurnWithContext,this.steeringQueue=new ch(t.steeringMode??`one-at-a-time`),this.followUpQueue=new ch(t.followUpMode??`one-at-a-time`),this.sessionId=t.sessionId,this.thinkingBudgets=t.thinkingBudgets,this.transport=t.transport??`auto`,this.maxRetryDelayMs=t.maxRetryDelayMs,this.toolExecution=t.toolExecution??`parallel`}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}get state(){return this._state}set steeringMode(e){this.steeringQueue.mode=e}get steeringMode(){return this.steeringQueue.mode}set followUpMode(e){this.followUpQueue.mode=e}get followUpMode(){return this.followUpQueue.mode}steer(e){this.steeringQueue.enqueue(e)}followUp(e){this.followUpQueue.enqueue(e)}clearSteeringQueue(){this.steeringQueue.clear()}clearFollowUpQueue(){this.followUpQueue.clear()}clearAllQueues(){this.clearSteeringQueue(),this.clearFollowUpQueue()}hasQueuedMessages(){return this.steeringQueue.hasItems()||this.followUpQueue.hasItems()}get signal(){return this.activeRun?.abortController.signal}abort(){this.activeRun?.abortController.abort()}waitForIdle(){return this.activeRun?.promise??Promise.resolve()}reset(){if(this.activeRun)throw Error(`Agent is already processing. Wait for completion before resetting.`);this._state.messages=[],this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this._state.errorMessage=void 0,this.clearFollowUpQueue(),this.clearSteeringQueue()}async prompt(e,t){if(this.activeRun)throw Error(`Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.`);let n=this.normalizePromptInput(e,t);await this.runPromptMessages(n)}async continue(){if(this.activeRun)throw Error(`Agent is already processing. Wait for completion before continuing.`);let e=this._state.messages[this._state.messages.length-1];if(!e)throw Error(`No messages to continue from`);if(e.role===`assistant`){let e=this.steeringQueue.drain();if(e.length>0){await this.runPromptMessages(e,{skipInitialSteeringPoll:!0});return}let t=this.followUpQueue.drain();if(t.length>0){await this.runPromptMessages(t);return}throw Error(`Cannot continue from message role: assistant`)}await this.runContinuation()}normalizePromptInput(e,t){if(Array.isArray(e))return e;if(typeof e!=`string`)return[e];let n=[{type:`text`,text:e}];return t&&t.length>0&&n.push(...t),[{role:`user`,content:n,timestamp:Date.now()}]}async runPromptMessages(e,t={}){await this.runWithLifecycle(async n=>{await Vm(e,this.createContextSnapshot(),this.createLoopConfig(t),e=>this.processEvents(e),n,this.streamFunction)})}async runContinuation(){await this.runWithLifecycle(async e=>{await Hm(this.createContextSnapshot(),this.createLoopConfig(),e=>this.processEvents(e),e,this.streamFunction)})}createContextSnapshot(){return{systemPrompt:this._state.systemPrompt,messages:this._state.messages.slice(),tools:this._state.tools.slice()}}createLoopConfig(e={}){let t=e.skipInitialSteeringPoll===!0,n=this.shouldStopAfterTurn;return{model:this._state.model,reasoning:this._state.thinkingLevel===`off`?void 0:this._state.thinkingLevel,sessionId:this.sessionId,onPayload:this.onPayload,onResponse:this.onResponse,transport:this.transport,thinkingBudgets:this.thinkingBudgets,maxRetryDelayMs:this.maxRetryDelayMs,toolExecution:this.toolExecution,beforeToolCall:this.beforeToolCall,afterToolCall:this.afterToolCall,shouldStopAfterTurn:n?async e=>await n(e,this.signal):void 0,prepareNextTurn:this.prepareNextTurnWithContext||this.prepareNextTurn?async e=>this.prepareNextTurnWithContext?await this.prepareNextTurnWithContext(e,this.signal):await this.prepareNextTurn?.(this.signal):void 0,convertToLlm:this.convertToLlm,transformContext:this.transformContext,getApiKey:this.getApiKey,getSteeringMessages:async()=>t?(t=!1,[]):this.steeringQueue.drain(),getFollowUpMessages:async()=>this.followUpQueue.drain()}}async runWithLifecycle(e){if(this.activeRun)throw Error(`Agent is already processing.`);let t=new AbortController,n=()=>{},r=new Promise(e=>{n=e});this.activeRun={promise:r,resolve:n,abortController:t},this._state.isStreaming=!0,this._state.streamingMessage=void 0,this._state.errorMessage=void 0;try{await e(t.signal)}catch(e){await this.handleRunFailure(e,t.signal.aborted)}finally{this.finishRun()}}async handleRunFailure(e,t){let n={role:`assistant`,content:[{type:`text`,text:``}],api:this._state.model.api,provider:this._state.model.provider,model:this._state.model.id,usage:ah,stopReason:t?`aborted`:`error`,errorMessage:e instanceof Error?e.message:String(e),timestamp:Date.now()};await this.processEvents({type:`message_start`,message:n}),await this.processEvents({type:`message_end`,message:n}),await this.processEvents({type:`turn_end`,message:n,toolResults:[]}),await this.processEvents({type:`agent_end`,messages:[n]})}finishRun(){this._state.isStreaming=!1,this._state.streamingMessage=void 0,this._state.pendingToolCalls=new Set,this.activeRun?.resolve(),this.activeRun=void 0}async processEvents(e){switch(e.type){case`message_start`:this._state.streamingMessage=e.message;break;case`message_update`:this._state.streamingMessage=e.message;break;case`message_end`:this._state.streamingMessage=void 0,this._state.messages.push(e.message);break;case`tool_execution_start`:{let t=new Set(this._state.pendingToolCalls);t.add(e.toolCallId),this._state.pendingToolCalls=t;break}case`tool_execution_end`:{let t=new Set(this._state.pendingToolCalls);t.delete(e.toolCallId),this._state.pendingToolCalls=t;break}case`turn_end`:e.message.role===`assistant`&&e.message.errorMessage&&(this._state.errorMessage=e.message.errorMessage);break;case`agent_end`:this._state.streamingMessage=void 0}let t=this.activeRun?.abortController.signal;if(!t)throw Error(`Agent listener invoked outside active run`);for(let n of this.listeners)await n(e,t)}};function uh(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n>=10||r===0?Math.round(n):Math.round(n*10)/10} ${t[r]}`}function dh(e){let t=e.mimeType||`application/octet-stream`;return`${e.name} (${t}, ${uh(e.size)})`}function fh(e){let t=dh(e);return e.kind===`image`&&e.data?e.path?`[Attached image: ${t} — full-resolution copy saved to ${e.path}]`:`[Attached image: ${t}]`:e.kind===`text`&&e.text!==void 0?[`----- BEGIN ATTACHMENT ${t} -----`,e.text,`----- END ATTACHMENT ${e.name} -----`].join(`
882
882
  `):e.path?`[Attached ${e.kind===`image`?`image`:e.kind===`text`?`text file`:`file`} saved to ${e.path} — ${t}. Read it from the virtual filesystem when you need its contents.]`:e.error?`[Attachment not included: ${t}. ${e.error}]`:`[Attachment not included: ${t}. Unsupported binary attachment.]`}function ph(e,t){if(!t?.length)return e;let n=t.map(fh),r=e.trim();return r?`${r}\n\n${n.join(`
883
883
 
884
884
  `)}`:n.join(`
@@ -5419,7 +5419,7 @@ except BaseException:
5419
5419
  `)}}function uz(e,t,n){let r=!!e.env?.NO_COLOR,i=!1,a=0,o=e=>{i=!0,a=e},s=fz(e.stdin??``,o),c=ez(e.argv),l={write:t,end:()=>void 0,isTTY:!r},u={write:n,end:()=>void 0,isTTY:!r};return{processShim:{argv:c,env:e.env,versions:{node:Vr},version:`v${Vr}`,platform:`linux`,arch:`x64`,cwd:()=>e.cwd,exit:e=>{let t=Number.isFinite(e)?Number(e):0;throw o(t),new sz(t)},stdin:s,stdout:l,stderr:u},getDidCallProcessExit:()=>i,getExitCode:()=>a,recordExit:o}}var dz=class extends hP.Stream{isTTY=!1;consumed=!1;flowScheduled=!1;paused=!1;buffer;onExit;constructor(e,t){super(),this.buffer=e,this.onExit=t}read(){return this.consumed?null:(this.consumed=!0,this.buffer.length>0?this.buffer:null)}toString(){return this.buffer}setEncoding(e){return this}pause(){return this.paused=!0,this}resume(){return this.paused=!1,this.scheduleFlow(),this}on(e,t){return super.on(e,t),e===`data`&&this.scheduleFlow(),this}addListener(e,t){return this.on(e,t)}once(e,t){return super.once(e,t),e===`data`&&this.scheduleFlow(),this}scheduleFlow(){this.flowScheduled||(this.flowScheduled=!0,queueMicrotask(()=>this.flush()))}flush(){if(this.paused){this.flowScheduled=!1;return}try{this.consumed||(this.consumed=!0,this.buffer.length>0&&this.emit(`data`,this.buffer)),this.readable=!1,this.emit(`end`),this.emit(`close`)}catch(e){if(e instanceof sz){this.onExit(e.code);return}throw e}}[Symbol.asyncIterator](){return{next:async()=>this.consumed?{value:void 0,done:!0}:(this.consumed=!0,{value:this.buffer,done:!1})}}};function fz(e,t){return new dz(e,t)}function pz(e){if(e===``)return[];let t=e.split(`
5420
5420
  `);return t[t.length-1]===``&&t.pop(),t.map(e=>e.endsWith(`\r`)?e.slice(0,-1):e)}function mz(e){if(typeof e==`string`)return e;if(e&&typeof e.read==`function`){let t=e.read();return typeof t==`string`?t:``}return``}function hz(e){return new TextDecoder(`utf-8`).decode(vN(e))}function gz(e){if(e&&typeof e.write==`function`)return e}var _z=class extends lP{terminal=!1;lines;cursor=0;closed=!1;flushScheduled=!1;output;onExit;constructor(e,t,n){super(),this.lines=pz(hz(mz(e))),this.output=t??n.output,this.onExit=n.onExit}on(e,t){return super.on(e,t),e===`line`&&this.scheduleFlush(),this}once(e,t){return super.once(e,t),e===`line`&&this.scheduleFlush(),this}pause(){return this}resume(){return this}close(){this.closed||(this.closed=!0,this.emit(`close`))}question(e,t,n){let r=typeof t==`function`?t:typeof n==`function`?n:void 0;this.output?.write(String(e));let i=this.cursor<this.lines.length?this.lines[this.cursor++]:``;if(r){queueMicrotask(()=>this.runHandler(()=>r(i)));return}return Promise.resolve(i)}[Symbol.asyncIterator](){return{next:async()=>!this.closed&&this.cursor<this.lines.length?{value:this.lines[this.cursor++],done:!1}:(this.close(),{value:void 0,done:!0})}}scheduleFlush(){this.flushScheduled||this.closed||(this.flushScheduled=!0,queueMicrotask(()=>this.flush()))}flush(){this.flushScheduled=!1,this.runHandler(()=>{for(;!this.closed&&this.cursor<this.lines.length;)this.emit(`line`,this.lines[this.cursor++]);this.close()})}runHandler(e){try{e()}catch(e){if(e instanceof sz&&this.onExit){this.closed=!0,this.onExit(e.code);return}throw e}}};function vz(e){let t=(t,n)=>{let r,i;if(t&&typeof t==`object`&&`input`in t){let e=t;r=e.input,i=gz(e.output)}else r=t,i=gz(n);if(r==null)throw TypeError(`readline.createInterface: an 'input' stream is required`);return new _z(r,i,e)},n=(...e)=>{let t=e[e.length-1];return typeof t==`function`&&queueMicrotask(()=>t()),!0},r={createInterface:t,Interface:_z,emitKeypressEvents:()=>void 0,cursorTo:n,moveCursor:n,clearLine:n,clearScreenDown:n};return{...r,promises:r}}var yz=class extends Error{status;statusText;url;body;constructor(e,t,n,r){let i=typeof r==`string`&&r?`: ${r.slice(0,200)}`:r&&typeof r==`object`?`: ${bz(r).slice(0,200)}`:``;super(`HTTP ${e} ${t} ${n}${i}`),this.status=e,this.statusText=t,this.url=n,this.body=r,this.name=`HttpError`}};function bz(e){try{return JSON.stringify(e)}catch{return String(e)}}function xz(e){return new Promise(t=>setTimeout(t,e))}function Sz(e,t,n){let r;if(r=/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:e?`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`:t,!n)return r;let i=[];for(let[e,t]of Object.entries(n))if(t!=null)if(Array.isArray(t))for(let n of t)n!=null&&i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`);else i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`);return i.length===0?r:r+(r.includes(`?`)?`&`:`?`)+i.join(`&`)}function Cz(e,t){let n={};if(e)for(let[t,r]of Object.entries(e))n[t]=r;if(t)for(let[e,r]of Object.entries(t))n[e]=r;return n}function wz(e){if(!e)return!1;let t=e.toLowerCase();return t.startsWith(`application/json`)||/[+/]json(;|$|\s)/.test(t)}function Tz(e){if(!e)return null;let t=e.trim();if(!t)return null;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>=0)return Math.round(e*1e3)}let n=Date.parse(t);if(Number.isFinite(n)){let e=n-Date.now();return e>0?e:0}return null}async function Ez(e){if(wz(e.headers.get(`content-type`))){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch{return t}}return e.text()}function Dz(e,t){if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob||typeof FormData<`u`&&e instanceof FormData||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||typeof ReadableStream<`u`&&e instanceof ReadableStream?e:typeof e==`object`?(Object.keys(t).some(e=>e.toLowerCase()===`content-type`)||(t[`Content-Type`]=`application/json`),JSON.stringify(e)):String(e)}function Oz(e){let t=e.sleep??xz;function n(n){let r=new Set(n.retry?.on??[]),i=Math.max(1,Math.trunc(n.retry?.maxAttempts??1));async function a(a,o,s={}){let c=Sz(n.baseUrl,o,s.params),l=Cz(n.headers,s.headers);if(n.token){let e=await n.token({method:a,path:o,url:c});e&&(Object.keys(l).some(e=>e.toLowerCase()===`authorization`)||(l.Authorization=`Bearer ${e}`))}let u=Dz(s.body,l),d={method:a,headers:l};u!==void 0&&(d.body=u);let f=null;for(let a=0;a<i;a++){let o=n.timeoutMs?new AbortController:null,l=o?setTimeout(()=>o.abort(Error(`timeout`)),n.timeoutMs):null,u=s.signal&&o?.signal?AbortSignal.any([s.signal,o.signal]):s.signal??o?.signal,p=u?{...d,signal:u}:d,m;try{m=await e.fetch(c,p)}finally{l!==null&&clearTimeout(l)}if(f=m,m.ok){let e=await Ez(m);return s.raw?{body:e,headers:Object.fromEntries(m.headers.entries()),status:m.status}:e}if(!(a+1<i&&r.has(m.status))){let e=await Ez(m).catch(()=>null);throw new yz(m.status,m.statusText,c,e)}let h=Tz(m.headers.get(`retry-after`)),g=500*2**a;await t(h===null?g:h)}if(f){let e=await Ez(f).catch(()=>null);throw new yz(f.status,f.statusText,c,e)}throw Error(`http: no attempts made for ${a} ${c}`)}return Object.freeze({get:((e,t)=>a(`GET`,e,t)),post:((e,t)=>a(`POST`,e,t)),put:((e,t)=>a(`PUT`,e,t)),patch:((e,t)=>a(`PATCH`,e,t)),delete:((e,t)=>a(`DELETE`,e,t))})}return Object.freeze({client:n})}function kz(e){let t=new TextEncoder().encode(e),n=``;for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return btoa(n)}function Az(e,t,n){let r=[];t.model&&r.push(`--model`,String(t.model)),t.thinking&&r.push(`--thinking`,String(t.thinking)),t.schema&&r.push(`--schema-b64`,kz(JSON.stringify(t.schema)));let i=t.readOnly===void 0?`/workspace/`:Array.isArray(t.readOnly)?t.readOnly.join(`,`):String(t.readOnly),a=t.cwd===void 0?n||`.`:String(t.cwd),o=t.allowedCommands===void 0?`*`:String(t.allowedCommands);return[`agent`,...r,`--read-only`,i,a,o,String(e)]}function jz(e,t){let n=t.cwd,r=async(t,r)=>{let i=r??{},a=await e.spawn(Az(t,i,n)),o=typeof a.exitCode==`number`?a.exitCode:0;return{finalText:String(a.stdout??``).replace(/\n+$/,``),exitCode:o,stderr:String(a.stderr??``).replace(/\n+$/,``)}},i=(async(e,t)=>{let n=t??{},i=await r(e,n);if(i.exitCode!==0)throw Error(`agent: exited with code ${i.exitCode}${i.stderr?`: ${i.stderr}`:``}`);if(n.schema)try{return JSON.parse(i.finalText)}catch{throw Error(`agent: schema response was not valid JSON (exit ${i.exitCode}): ${i.finalText.slice(0,200)}`)}return i.finalText});return i.spawn=r,i}function Mz(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...Array.from(e.subarray(r,r+n)));return btoa(t)}async function Nz(e){let t=[];for(let[n,r]of e.entries()){if(typeof r==`string`){t.push({name:n,value:r});continue}let e=new Uint8Array(await r.arrayBuffer());t.push({name:n,file:{data:Mz(e),filename:typeof r.name==`string`?r.name:`blob`,type:r.type||``}})}return{kind:`formdata`,entries:t}}async function Pz(e,t){let n=()=>Object.keys(t).some(e=>e.toLowerCase()===`content-type`);return typeof e==`string`?{body:e}:e instanceof URLSearchParams?(n()||(t[`Content-Type`]=`application/x-www-form-urlencoded;charset=UTF-8`),{body:e.toString()}):e instanceof Blob?{descriptor:{kind:`blob`,data:Mz(new Uint8Array(await e.arrayBuffer())),type:e.type||``}}:e instanceof ArrayBuffer?{descriptor:{kind:`bytes`,data:Mz(new Uint8Array(e))}}:ArrayBuffer.isView(e)?{descriptor:{kind:`bytes`,data:Mz(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}}:e instanceof FormData?{descriptor:await Nz(e)}:(n()||(t[`Content-Type`]=`application/json`),{body:JSON.stringify(e)})}function Fz(e){return e?`const __b64 = (s) => { const bin = atob(s); const n = bin.length; const u = new Uint8Array(n); for (let i = 0; i < n; i++) u[i] = bin.charCodeAt(i); return u; };const __body = `+JSON.stringify(e)+`;if (__body.kind === 'bytes') { __init.body = __b64(__body.data); }else if (__body.kind === 'blob') { __init.body = new Blob([__b64(__body.data)], { type: __body.type }); }else if (__body.kind === 'formdata') { const __fd = new FormData(); for (const e of __body.entries) { if (e.file) { __fd.append(e.name, new Blob([__b64(e.file.data)], { type: e.file.type }), e.file.filename); } else { __fd.append(e.name, e.value); } } __init.body = __fd; }`:``}function Iz(e){return`const h = {};r.headers.forEach((v, k) => { h[k] = v; });const ct = r.headers.get('content-type') || '';const __rt = `+JSON.stringify(e??null)+`;const __ctl = ct.toLowerCase();const __binPrefixes = ['image/','audio/','video/','application/octet-stream','application/pdf','application/protobuf','application/x-protobuf','application/wasm','application/zip'];const __isXml = __ctl.indexOf('+xml') !== -1 || __ctl.indexOf('application/xml') === 0 || __ctl.indexOf('text/xml') === 0;const __isBinary = __rt === 'binary' || (__rt !== 'text' && __rt !== 'json' && !__isXml && __binPrefixes.some((p) => __ctl.indexOf(p) === 0));if (__isBinary) {const __u = new Uint8Array(await r.arrayBuffer());let __s = ''; const __cs = 0x8000;for (let __i = 0; __i < __u.length; __i += __cs) { __s += String.fromCharCode.apply(null, __u.subarray(__i, __i + __cs)); }return { ok: r.ok, status: r.status, headers: h, body: btoa(__s), bodyEncoding: 'base64' };}const t = await r.text();let b;const __jsonWanted = __rt === 'json' || (__rt !== 'text' && ct.indexOf('application/json') !== -1);if (__jsonWanted) { if (!t) { b = null; } else { try { b = JSON.parse(t); } catch (e) { b = t; } } }else { b = t; }return { ok: r.ok, status: r.status, headers: h, body: b };`}async function Lz(e,t={}){let n={},r=t.headers??{};for(let[e,t]of Object.entries(r))typeof t==`string`&&(n[e]=t);let i=typeof t.method==`string`?t.method:`GET`,a=t.credentials===`same-origin`||t.credentials===`omit`?t.credentials:`include`,o=t.body,{body:s,descriptor:c}=o==null?{}:await Pz(o,n),l={method:i,credentials:a,headers:n};s!==void 0&&(l.body=s);for(let e of[`mode`,`cache`,`redirect`,`referrer`,`referrerPolicy`,`integrity`,`keepalive`]){let n=t[e];n!==void 0&&(l[e]=n)}let u=Fz(c),d=Iz(t.responseType);return`(async () => {const __init = `+JSON.stringify(l)+`;`+u+`const r = await fetch(`+JSON.stringify(e)+`, __init);`+d+`})()`}function Rz(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.targetId==`string`)return e.targetId;throw TypeError(`browser: expected a tab handle or targetId string`)}function zz(e){function t(t){return{...t,async update(n){let r={};return n.urlMatch!==void 0&&(r.urlMatch=n.urlMatch===null?null:n.urlMatch instanceof RegExp?n.urlMatch.source:n.urlMatch),n.filter!==void 0&&(r.filter=n.filter),e.call(`browser`,`wsUpdate`,[t.id,r])},async close(){return e.call(`browser`,`wsClose`,[t.id])}}}return{on(n,r={}){let i=Rz(n),a=r.urlMatch===void 0?void 0:r.urlMatch instanceof RegExp?r.urlMatch.source:r.urlMatch,o,s={filter(e){if(typeof e==`function`||typeof e==`string`)throw TypeError(`browser.websocket: filter must be a declarative JSON object, not a function or string`);return o=e,s},async forward(n){return t(await e.call(`browser`,`wsObserve`,[{targetId:i,urlMatch:a,filter:o,forward:n}]))}};return s},async list(){return e.call(`browser`,`wsList`,[])}}}async function Bz(e,t){if(!e&&!(t instanceof Request))return;let n=t instanceof Request?t:null,r=(e?.method??n?.method??`GET`).toUpperCase(),i={};if(e?.headers)if(e.headers instanceof Headers)e.headers.forEach((e,t)=>{i[t]=e});else if(Array.isArray(e.headers))for(let[t,n]of e.headers)i[t]=n;else Object.assign(i,e.headers);else n&&n.headers.forEach((e,t)=>{i[t]=e});let a,o;if(e?.body!==void 0&&e?.body!==null&&e?.body!==``){let t=await Vz(e.body);a=t.body,o=t.defaultContentType}return o&&!Object.keys(i).some(e=>e.toLowerCase()===`content-type`)&&(i[`Content-Type`]=o),{method:r,headers:i,body:a}}async function Vz(e){if(typeof e==`string`||e instanceof URLSearchParams)return{body:e.toString()};if(e instanceof Blob)return{body:Hz(new Uint8Array(await e.arrayBuffer())),defaultContentType:e.type||`application/octet-stream`};if(e instanceof ArrayBuffer)return{body:Hz(new Uint8Array(e)),defaultContentType:`application/octet-stream`};if(ArrayBuffer.isView(e))return{body:Hz(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),defaultContentType:`application/octet-stream`};throw typeof FormData<`u`&&e instanceof FormData?Error(`node fetch shim: FormData request bodies are not supported (post raw application/x-www-form-urlencoded with URLSearchParams instead)`):typeof ReadableStream<`u`&&e instanceof ReadableStream?Error(`node fetch shim: ReadableStream request bodies are not supported (collect into a Uint8Array or string before calling fetch)`):Error(`node fetch shim: unsupported request body type (${Object.prototype.toString.call(e)}); use a string, Uint8Array, ArrayBuffer, Blob, or URLSearchParams`)}function Hz(e){let t=[];for(let n=0;n<e.length;n+=32768)t.push(String.fromCharCode(...e.subarray(n,n+32768)));return t.join(``)}function Uz(e){return{findTab:t=>e.call(`browser`,`findTab`,[Gz(t)]),ensureTab:(t,n={})=>e.call(`browser`,`ensureTab`,[t,Kz(n)]),eval:(t,n)=>e.call(`browser`,`eval`,[Rz(t),Wz(n,!1)]),evalAsync:(t,n)=>e.call(`browser`,`evalAsync`,[Rz(t),Wz(n,!0)]),cookie:(t,n)=>e.call(`browser`,`cookie`,[Rz(t),n]),localStorage:(t,n)=>e.call(`browser`,`localStorage`,[Rz(t),n]),fetch:(t,n,r={})=>Lz(n,r).then(n=>e.call(`browser`,`evalAsync`,[Rz(t),n])),websocket:zz(e)}}function Wz(e,t){if(typeof e==`function`)return`(${e.toString()})()`;if(typeof e==`string`)return e;throw TypeError(`browser.eval/evalAsync: source must be a function or string`)}function Gz(e){let t={};return e.domain!==void 0&&(t.domain=e.domain),e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch instanceof RegExp?e.urlMatch.source:e.urlMatch),t}function Kz(e){return e.matchUrl===void 0?{}:{matchUrl:e.matchUrl instanceof RegExp?e.matchUrl.source:e.matchUrl}}function qz(e){return e===`SIGKILL`?137:e===`SIGINT`?130:143}function Jz(e,t,n,r){let i=async()=>{if(!t?.wasUsed())return;let n=t.getMutations();if(n.created.length||n.modified.length||n.deleted.length)try{await e.call(`vfs`,`flushWrites`,[n])}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`[realm-exec] pre-exec sync-fs flush failed (will retry at exit): ${t}`);return}t.resetBaseline()},a=async(i=!1)=>{if(t?.wasUsed())try{let r=await e.call(`vfs`,`snapshot`,[n]);i?t.applySnapshotPreservingMutations(r):t.applySnapshot(r)}catch(e){let t=e instanceof Error?e.message:String(e);r?.(`[sync-fs] re-snapshot after exec failed: ${t}\n`)}},o=async t=>{await i();try{return await e.call(`exec`,`run`,[t])}finally{await a()}},s=async t=>{await i();try{return await e.call(`exec`,`spawn`,[t])}finally{await a()}},c=1,l=Object.assign(o,{spawn:s,start:(t,n)=>{let r=c++,o=[],s=!1,l=!1,u=!1,d,f,p=new Promise((e,t)=>{d=e,f=t}),m=()=>{if(s||u||l)return;l=!0;let c=o.length>0?o.join(``):n?.stdin,p={};c!==void 0&&(p.stdin=c),n?.stdinKind!==void 0&&(p.stdinKind=n.stdinKind),n?.args!==void 0&&(p.args=n.args),(async()=>{try{if(await i(),u){await a(!0);return}s=!0;let n=await e.call(`exec`,`start`,[r,t,p]);await a(!0),d(n)}catch(e){await a(!0),f(e)}})()};return{kill:t=>s?e.call(`exec`,`kill`,[r,t]):(u=!0,d({stdout:``,stderr:``,exitCode:qz(t)}),Promise.resolve(!0)),stdin:{write:e=>{!s&&!u&&o.push(e)},end:()=>m()},done:p}}});return l.exec=l,l}function Yz(e){if(e instanceof Uint8Array)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(e instanceof ArrayBuffer)return new Uint8Array(e);throw TypeError(`expected an ArrayBuffer or typed array`)}function Xz(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Zz(e){return e==null?[]:Array.isArray(e)?e:[e]}function Qz(e,t){let n=t.handle,r=new Set,i=new Set,a=!1,o=null,s=e=>{let t=e;if(!t||t.handle!==n)return;let i={reportId:t.reportId,data:Xz(t.bytes)};for(let e of[...r])try{e(i)}catch{}},c=()=>{a||(a=!0,o=e.onEvent?e.onEvent(`hid-input-report`,s):null,e.call(`hid`,`subscribeInputReports`,[n]).catch(()=>{a=!1,o?.(),o=null}))},l=()=>{!a||r.size>0||(a=!1,o?.(),o=null,e.call(`hid`,`unsubscribeInputReports`,[n]).catch(()=>{}))};return{...t,open:()=>e.call(`hid`,`open`,[n]),close:()=>e.call(`hid`,`close`,[n]),sendReport:(t,r)=>e.call(`hid`,`sendReport`,[n,t,Yz(r)]),sendFeatureReport:(t,r)=>e.call(`hid`,`sendFeatureReport`,[n,t,Yz(r)]),receiveFeatureReport:async t=>Xz((await e.call(`hid`,`receiveFeatureReport`,[n,t])).bytes),addEventListener(e,t){if(e===`inputreport`)r.add(t),c();else if(e===`disconnect`)i.add(t);else throw TypeError(`hid device: unknown event type '${String(e)}'`)},removeEventListener(e,t){e===`inputreport`?(r.delete(t),l()):e===`disconnect`&&i.delete(t)},onInputReport(e){r.add(e),c()}}}function $z(e){return{list:async()=>(await e.call(`hid`,`list`,[])).map(t=>Qz(e,t)),request:async t=>{let n=(await e.call(`hid`,`request`,[Zz(t)]))[0];if(!n)throw Error(`No device selected.`);return Qz(e,n)}}}function eB(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var tB=class{rpc;targetId;selector;index;constructor(e,t,n,r){this.rpc=e,this.targetId=t,this.selector=n,this.index=r}evalOnElement(e){let t=`(() => { const els = document.querySelectorAll(${JSON.stringify(this.selector)}); const el = els[${this.index}]; ${e} })()`;return this.rpc.call(`browser`,`evalAsync`,[this.targetId,t])}async textContent(){return this.evalOnElement(`return el ? el.textContent : null;`)}async getAttribute(e){return this.evalOnElement(`return el ? el.getAttribute(${JSON.stringify(e)}) : null;`)}async isVisible(){return this.evalOnElement(`if (!el) return false; const s = getComputedStyle(el); if (s.display === 'none' || s.visibility === 'hidden' || s.opacity === '0') return false; const r = el.getBoundingClientRect(); return r.width > 0 && r.height > 0;`)}async boundingBox(){return this.evalOnElement(`if (!el) return null; const r = el.getBoundingClientRect(); return { x: r.x, y: r.y, width: r.width, height: r.height };`)}},nB=class{rpc;targetId;onClose;closed=!1;constructor(e,t,n){this.rpc=e,this.targetId=t,this.onClose=n}async goto(e,t){await this.rpc.call(`browser`,`navigateTab`,[this.targetId,e])}async waitForLoadState(e){await this.rpc.call(`browser`,`waitForLoadState`,[this.targetId,e??`load`])}async waitForTimeout(e){await new Promise(t=>setTimeout(t,e))}async evaluate(e,...t){let n=typeof e==`string`?e:`(${e.toString()}).apply(null, JSON.parse(${JSON.stringify(JSON.stringify(t))}))`;return this.rpc.call(`browser`,`evalAsync`,[this.targetId,n])}async screenshot(e){let t={};e?.fullPage!==void 0&&(t.fullPage=e.fullPage);let n=eB(await this.rpc.call(`browser`,`screenshotTab`,[this.targetId,t]));return e?.path&&await this.rpc.call(`vfs`,`writeFileBinary`,[e.path,n]),n}async $(e){return await this.rpc.call(`browser`,`evalAsync`,[this.targetId,`!!document.querySelector(${JSON.stringify(e)})`])?new tB(this.rpc,this.targetId,e,0):null}async $$(e){let t=await this.rpc.call(`browser`,`evalAsync`,[this.targetId,`document.querySelectorAll(${JSON.stringify(e)}).length`]),n=[];for(let r=0;r<t;r++)n.push(new tB(this.rpc,this.targetId,e,r));return n}async $$eval(e,t,...n){if(typeof t==`string`)return this.rpc.call(`browser`,`evalAsync`,[this.targetId,t]);let r=`(${t.toString()}).apply(null, [Array.from(document.querySelectorAll(${JSON.stringify(e)}))].concat(JSON.parse(${JSON.stringify(JSON.stringify(n))})))`;return this.rpc.call(`browser`,`evalAsync`,[this.targetId,r])}async content(){return this.rpc.call(`browser`,`evalAsync`,[this.targetId,`document.documentElement.outerHTML`])}async setViewportSize(e){await this.rpc.call(`browser`,`setViewport`,[this.targetId,e.width,e.height])}async close(){this.closed||(this.closed=!0,await this.rpc.call(`browser`,`closeTab`,[this.targetId]),this.onClose?.())}},rB=class{rpc;openPages=[];constructor(e){this.rpc=e}async newPage(e){let t=await this.rpc.call(`browser`,`createTab`,[`about:blank`]);e?.viewport&&await this.rpc.call(`browser`,`setViewport`,[t,e.viewport.width,e.viewport.height]);let n=new nB(this.rpc,t,()=>{let e=this.openPages.indexOf(n);e!==-1&&this.openPages.splice(e,1)});return this.openPages.push(n),n}pages(){return[...this.openPages]}async close(){let e=this.openPages.splice(0,this.openPages.length);for(let t of e)await t.close()}},iB=class{rpc;openPages=[];openContexts=[];constructor(e){this.rpc=e}async newPage(e){let t=await this.rpc.call(`browser`,`createTab`,[`about:blank`]);e?.viewport&&await this.rpc.call(`browser`,`setViewport`,[t,e.viewport.width,e.viewport.height]);let n=new nB(this.rpc,t,()=>{let e=this.openPages.indexOf(n);e!==-1&&this.openPages.splice(e,1)});return this.openPages.push(n),n}async newContext(e){let t=new rB(this.rpc);return this.openContexts.push(t),t}contexts(){return[...this.openContexts]}async close(){let e=this.openPages.splice(0,this.openPages.length);for(let t of e)await t.close();let t=this.openContexts.splice(0,this.openContexts.length);for(let e of t)await e.close()}};function aB(e){let t=async t=>new iB(e),n=async(t,n)=>new iB(e);return{chromium:{launch:t,connect:n,connectOverCDP:n},firefox:{launch:t,connect:n},webkit:{launch:t,connect:n}}}const oB=new Set([`bcrypt`,`better-sqlite3`,`canvas`,`cpu-features`,`fsevents`,`leveldown`,`libxmljs`,`libxmljs2`,`node-gyp-build`,`node-sass`,`puppeteer`,`robotjs`,`sass-embedded`,`sharp`,`snappy`,`sqlite3`,`tree-sitter`,`usb`]),sB={sharp:` Use the built-in 'convert' shell command for image work.`,canvas:` Use the built-in 'convert' / OffscreenCanvas for image work.`,"better-sqlite3":` Use the built-in 'sqlite3' shell command (sql.js WASM).`,sqlite3:` Use the built-in 'sqlite3' shell command (sql.js WASM).`,bcrypt:` Use crypto.subtle.digest() with PBKDF2 / Argon2 in pure JS.`,puppeteer:` Use the built-in browser-automation shell commands.`};function cB(e,t){let n=sB[t]??``;return Error(`require('${e}'): '${t}' is a Node native module (C++ bindings) — it cannot run in the browser sandbox.${n}`)}function lB(e){return{...e,time:az,fmt:YN,pool:tz}}function uB(e,t){return e?.startsWith(`/`)?oz(e):t}function dB(e){return e.includes(`require`)||e.includes(`import`)}async function fB(e,t,n,r){return dB(t)?e.call(`module`,`buildGraph`,[t,uB(r,n),r]):{files:[],entryMap:{},edges:{},errors:{}}}function pB(e){if(typeof e!=`object`||!e)return;let t=e;if(t.__esModule&&!Object.prototype.hasOwnProperty.call(t,`default`)&&Object.isExtensible(t))try{Object.defineProperty(t,"default",{value:t,enumerable:!1,configurable:!0})}catch{}}function mB(e){return{playwright:aB(e)}}function hB(e){let{graph:t,fsBridge:n,processShim:r,childProcess:i,nodeConsole:a,sliccyModules:o,shimmedPackages:s={},nodeReadline:c}=e,l=new Map(t.files.map(e=>[e.path,e.cjsSource])),u=new Map(t.files.map(e=>[e.path,e.kind])),d=new Map,f=e=>{if(typeof e==`string`&&e.startsWith(`sliccy:`))return{hit:!0,value:vB(e,o)};let t=e.startsWith(`node:`)?e.slice(5):e,a=gB(t,n,r,i,c);if(a.hit)return a;if(oB.has(t))throw cB(e,t);if($r.has(t))throw bB(e,t);return t in s?{hit:!0,value:s[t]}:{hit:!1}},p=(e,n)=>{let r=f(n);if(r.hit)return r.value;let i=e?.[n];if(i)return m(i);throw n in t.errors?Error(t.errors[n]):_B(n)};function m(e){let n=d.get(e);if(n)return n.exports;let i=l.get(e);if(i===void 0)throw Error(`Cannot find module '${e}'`);let o={exports:{}};d.set(e,o);let s=n=>p(t.edges[e],n),c=oz(e);return Function(`module`,`exports`,`require`,`__dirname`,`__filename`,`process`,`console`,`Buffer`,`global`,i)(o,o.exports,s,c,e,r,a,globalThis.Buffer,globalThis),u.get(e)===`cjs`&&pB(o.exports),o.exports}return{require:e=>p(t.entryMap,e)}}function gB(e,t,n,r,i){return e===`fs`||e===`fs/promises`?{hit:!0,value:t}:e===`path`?{hit:!0,value:mF}:e===`crypto`?{hit:!0,value:nF}:e===`child_process`?{hit:!0,value:r}:e===`process`?{hit:!0,value:n}:e===`buffer`?{hit:!0,value:{Buffer:globalThis.Buffer}}:e===`assert`?{hit:!0,value:sP}:e===`assert/strict`?{hit:!0,value:oP}:e===`util`?{hit:!0,value:jP}:e===`events`?{hit:!0,value:uP}:e===`os`?{hit:!0,value:rF}:e===`tty`?{hit:!0,value:hF}:e===`stream`?{hit:!0,value:hP}:e===`url`?{hit:!0,value:vF}:e===`zlib`?{hit:!0,value:QR}:e===`readline`&&i?{hit:!0,value:i}:e===`readline/promises`&&i?{hit:!0,value:i.promises}:{hit:!1}}function _B(e){if(e.startsWith(`.`)||e.startsWith(`/`)||e.startsWith(`node:`))return Error(`Cannot find module '${e}'`);let t=e.startsWith(`@`)?e.split(`/`).slice(0,2).join(`/`):e.split(`/`)[0];return Error(`Cannot find module '${e}' (run: ipk install ${t})`)}function vB(e,t){let n=e.slice(7);if(n===``)throw Error(`require('sliccy:'): empty sliccy: module name`);if(!Object.prototype.hasOwnProperty.call(t,n))throw Error(`require('${e}'): unknown sliccy: module '${n}'. Known names: ${Object.keys(t).sort().join(`, `)}`);return t[n]}const yB={http:` Use fetch() instead.`,https:` Use fetch() instead.`,crypto:` Use globalThis.crypto (Web Crypto API) instead.`};function bB(e,t){return Error(`require('${e}'): Node built-in '${t}' is not available in the browser environment.${yB[t]||``}`)}async function xB(e,t,n,r){let i=Object.keys(t),a=i.map(e=>t[e]),o=Object.getPrototypeOf(async function(){}).constructor,s=new o(...i,`${r?`"use strict";
5421
5421
  `:``}${e}`);try{return await s(...a),0}catch(e){return e instanceof sz?e.code:(n(`${e instanceof Error?e.stack??e.message:String(e)}\n`),1)}}function SB(e,t){let n=t.handle;return{...t,open:t=>e.call(`serial`,`open`,[n,t]),close:()=>e.call(`serial`,`close`,[n]),read:(t={})=>e.call(`serial`,`read`,[n,{maxBytes:t.maxBytes??t.bytes,until:t.until?Yz(t.until):void 0,timeoutMs:t.timeoutMs}]),write:t=>e.call(`serial`,`write`,[n,Yz(t)]),getSignals:()=>e.call(`serial`,`getSignals`,[n]),setSignals:t=>e.call(`serial`,`setSignals`,[n,t])}}function CB(e){return{list:async()=>(await e.call(`serial`,`list`,[])).map(t=>SB(e,t)),request:async t=>SB(e,await e.call(`serial`,`request`,[Zz(t)]))}}function wB(e,t){let n=t.handle,r=e=>({status:e.status,data:Xz(e.bytes)});return{...t,open:()=>e.call(`usb`,`open`,[n]),close:()=>e.call(`usb`,`close`,[n]),reset:()=>e.call(`usb`,`reset`,[n]),selectConfiguration:t=>e.call(`usb`,`selectConfig`,[n,t]),claimInterface:t=>e.call(`usb`,`claim`,[n,t]),releaseInterface:t=>e.call(`usb`,`release`,[n,t]),controlTransferIn:async(t,i)=>r(await e.call(`usb`,`controlIn`,[n,t,i])),controlTransferOut:(t,r)=>e.call(`usb`,`controlOut`,[n,t,Yz(r)]),transferIn:async(t,i)=>r(await e.call(`usb`,`transferIn`,[n,t,i])),transferOut:(t,r)=>e.call(`usb`,`transferOut`,[n,t,Yz(r)])}}function TB(e){return{list:async()=>(await e.call(`usb`,`list`,[])).map(t=>wB(e,t)),request:async t=>wB(e,await e.call(`usb`,`request`,[Zz(t)]))}}function EB(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t<0?``:t===0?`/`:e.substring(0,t)}function DB(e){return/^[A-Za-z0-9_\-./:@]+$/.test(e)?e:`'`+e.replace(/'/g,`'\\''`)+`'`}function OB(e,t){return e===``?t:e===`/`?`/${t}`:`${e}/${t}`}function kB(e){let t=EB(e.argv[1]??``),n=OB(t,`references`),r=OB(t,`assets`),i=OB(t,`.config`);async function a(){let t;try{t=await e.fs.exists(i)}catch{return null}if(!t)return null;let n;try{n=await e.fs.readFile(i)}catch{return null}let r=typeof n==`string`?n:String(n);if(!r.trim())return null;let a;try{a=JSON.parse(r)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`skill.config(): failed to parse ${i}: ${t}`)}if(a&&typeof a==`object`&&!Array.isArray(a))return a;throw Error(`skill.config(): ${i} must contain a JSON object`)}async function o(t){let n=await a();if(t===void 0)return n;if(typeof t!=`object`||!t||Array.isArray(t))throw TypeError(`skill.config(updates): updates must be a plain object`);let r={...n??{},...t};return await e.fs.writeFile(i,JSON.stringify(r,null,2)+`
5422
- `),r}async function s(t){if(typeof t!=`string`||!t.trim())throw TypeError(`skill.token(providerId): providerId must be a non-empty string`);let n=`oauth-token ${DB(t)}`,{stdout:r,stderr:i,exitCode:a}=await e.exec(n);if(a!==0){let e=i.trim()||`oauth-token exited with code ${a}`;throw Error(`skill.token('${t}'): ${e}`)}return r.replace(/\r?\n+$/,``)}return Object.freeze({dir:t,refs:n,assets:r,config:o,token:s})}const AB=new Map,jB=new Map;function MB(e){let t=crypto.randomUUID();return AB.set(t,e),t}function NB(e){return AB.get(e)??null}function PB(e,t){if(!AB.has(e))return t.abort(),()=>{};let n=jB.get(e);return n||(n=new Set,jB.set(e,n)),n.add(t),()=>{let n=jB.get(e);n&&(n.delete(t),n.size===0&&jB.delete(e))}}function FB(e){AB.delete(e);let t=jB.get(e);if(t){jB.delete(e);for(let e of t)e.signal.aborted||e.abort()}}function IB(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 LB(e){let t=NB(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,isSymbolicLink:e.isSymbolicLink,size:e.size}}}case`lstat`:{let e=await n.lstat(t);return{ok:!0,kind:`json`,json:{isDirectory:e.isDirectory,isFile:e.isFile,isSymbolicLink:e.isSymbolicLink??!1,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 IB(e)}}function RB(e){return`slicc-sync-fs-`+e}const zB=`sync-fs-ack`,BB=`sync-fs-res`,VB=6e5,HB=5e3,UB=`exec`;function WB(e){return e.channel===UB}function GB(e){let{command:t}=e;if(Array.isArray(t)){if(t.length===0||!t.every(e=>typeof e==`string`))return{errno:`EINVAL`,message:`sync-exec: argv must be a non-empty string[]`};let[e,...n]=t;return{cmd:e,args:n}}return typeof t!=`string`||t.length===0?{errno:`EINVAL`,message:`sync-exec: command must be a non-empty string`}:e.args===void 0?{cmd:t}:!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)?{errno:`EINVAL`,message:`sync-exec: args must be a string[]`}:{cmd:t,args:e.args}}function KB(e,t){return Math.min(typeof e!=`number`||!Number.isFinite(e)||e<=0?t:e,VB)}async function qB(e){let t=NB(e.token);if(!t)return{ok:!1,errno:`EACCES`,message:`sync-exec: unknown or revoked token`};if(!t.exec)return{ok:!1,errno:`ENOSYS`,message:`sync-exec: exec is not available`};let n=GB(e);if(`errno`in n)return{ok:!1,errno:n.errno,message:n.message};let r=new AbortController,i=!1,a=setTimeout(()=>{i=!0,r.abort()},KB(e.timeoutMs,VB)),o=PB(e.token,r);try{let i=await t.exec(n.cmd,{cwd:t.cwd,signal:r.signal,...n.args===void 0?{}:{args:n.args},...e.stdin===void 0?{}:{stdin:e.stdin}});return{ok:!0,kind:`json`,json:{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}catch(e){return i?{ok:!1,errno:`ETIMEDOUT`,message:`sync-exec: timed out — ${e instanceof Error?e.message:String(e)}`}:r.signal.aborted?{ok:!1,errno:`ECANCELED`,message:`sync-exec: realm disposed`}:IB(e)}finally{clearTimeout(a),o()}}function JB(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function YB(e){let t=ZB(e);if(QB(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw JB(`EIO`,e.label);$B(t,e.label)}function XB(e){let t=YB(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw JB(`EIO`,e.label)}}function ZB(e){let t=new XMLHttpRequest;try{t.open(e.method,e.url,!1),t.responseType=`arraybuffer`,t.timeout=e.timeoutMs,t.setRequestHeader(`x-slicc-fs-token`,e.token),e.body?t.send(new Uint8Array(e.body)):t.send()}catch{throw JB(`EIO`,e.label)}return t}function QB(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function $B(e,t){throw JB(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function eV(e){return(t,n,r)=>{let i=XB({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:UB})),timeoutMs:n+HB,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw JB(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function tV(e,t){let n=e.getMutations();for(let e of n.deleted)t.rm(e);for(let e of n.created)e.isDirectory?t.mkdir(e.path):t.writeFile(e.path,e.content);for(let e of n.modified)t.writeFile(e.path,e.content);e.resetBaseline()}function nV(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??eV(e);return{run(e,t={}){let o=r?.wasUsed()===!0&&i!==void 0;o&&tV(r,i);let s=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,c=KB(t.timeout,n),l={command:e,...t.args===void 0?{}:{args:t.args},...t.input===void 0?{}:{stdin:t.input},timeoutMs:c};try{return a(l,c,s)}finally{o&&r.invalidate()}}}}function rV(e,t){return JB(e,`sync-fs bridge, '${t}'`)}function iV(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function aV(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:iV(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return YB(r(`GET`,e))},writeFile(e,t){YB(r(`POST`,e,t))},stat(e){let t=XB(r(`GET`,e,void 0,`stat`));if(!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`)throw rV(`EIO`,e);return{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size}},lstat(e){let t=XB(r(`GET`,e,void 0,`lstat`));if(!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`)throw rV(`EIO`,e);return{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size}},readdir(e){let t=XB(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw rV(`EIO`,e);return t},exists(e){let t=XB(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw rV(`EIO`,e);return t},mkdir(e){YB(r(`POST`,e,void 0,`mkdir`))},rm(e){YB(r(`POST`,e,void 0,`rm`))}}}const oV=new TextEncoder,sV=new TextDecoder;function cV(e){if(!e.ok)return{status:4,payload:oV.encode(JSON.stringify({errno:e.errno,message:e.message}))};switch(e.kind){case`bytes`:return{status:1,payload:e.bytes};case`json`:return{status:2,payload:oV.encode(JSON.stringify(e.json))};default:return{status:3,payload:new Uint8Array}}}function lV(e,t){switch(e){case 1:return{ok:!0,kind:`bytes`,bytes:t};case 3:return{ok:!0,kind:`void`};case 2:try{return{ok:!0,kind:`json`,json:JSON.parse(sV.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(sV.decode(t)),n=typeof e.errno==`string`&&/^E[A-Z]+$/.test(e.errno)?e.errno:`EIO`;return{ok:!1,errno:n,message:String(e.message??n)}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed errno payload`}}default:return{ok:!1,errno:`EIO`,message:`sync-sab: unknown status ${e}`}}}function uV(e){if(e.byteLength<4160)throw Error(`sync-sab: buffer too small (${e.byteLength} < 4160)`);return{header:new Int32Array(e,0,16),window:new Uint8Array(e,64)}}function dV(){if(typeof SharedArrayBuffer>`u`||typeof Atomics>`u`)return!1;let e=globalThis.crossOriginIsolated;return e===void 0||e===!0}function fV(e,t,n={}){let{header:r,window:i}=uV(e),a=n.wait??((e,t,n,r)=>Atomics.wait(e,t,n,r)),o=n.now??(()=>performance.now()),s=0;function c(e,t,n){for(;;){let i=t-o();if(i<=0)throw JB(`ETIMEDOUT`,n);if(a(r,0,1,i),Atomics.load(r,0)===2&&Atomics.load(r,1)===e)return;Atomics.load(r,0)===2&&Atomics.store(r,0,1)}}return{call(e,n,a){let l=++s,u=o()+n,d=null,f=0,p=0;try{for(;;){Atomics.store(r,0,1);let n=p===0?{type:`sync-sab-req`,id:l,req:e}:{type:`sync-sab-next`,id:l,offset:p};try{t.postMessage(n)}catch{throw JB(`EIO`,a)}c(l,u,a);let o=Atomics.load(r,3),s=Atomics.load(r,4);if(Atomics.load(r,5)!==p||s<0||o<0||p+s>o)throw JB(`EIO`,a);if(d===null&&(f=Atomics.load(r,2),d=new Uint8Array(o)),d.set(i.subarray(0,s),p),p+=s,p>=o)break;if(s===0)throw JB(`EIO`,a)}}finally{Atomics.store(r,0,0)}return lV(f,d)}}}function pV(e,t){return JB(e,`sync-sab bridge, '${t}'`)}function mV(e){let t=e;return!!t&&typeof t.isFile==`boolean`&&typeof t.isDirectory==`boolean`&&typeof t.size==`number`}function hV(e,t={}){let n=t.timeoutMs??25e3;function r(t,r){let i=e.call(t,n,`sync-sab bridge, '${r}'`);if(!i.ok)throw pV(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw pV(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw pV(`EIO`,t)}return{readFile:e=>i({op:`read`,path:e},e),writeFile:(e,t)=>{r({op:`write`,path:e,body:t},e)},stat:e=>{let t=a({op:`stat`,path:e},e);if(!mV(t))throw pV(`EIO`,e);return t},lstat:e=>{let t=a({op:`lstat`,path:e},e);if(!mV(t))throw pV(`EIO`,e);return t},readdir:e=>{let t=a({op:`readdir`,path:e},e);if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw pV(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw pV(`EIO`,e);return t},mkdir:e=>{r({op:`mkdir`,path:e},e)},rm:e=>{r({op:`rm`,path:e},e)}}}function gV(e){return(t,n,r)=>{let i=e.call({...t,channel:UB},n+HB,r);if(!i.ok)throw JB(i.errno,r);let a=i.kind===`json`?i.json:null;if(!a||typeof a.stdout!=`string`||typeof a.stderr!=`string`||typeof a.exitCode!=`number`)throw JB(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}async function _V(e,t,n){let r;try{r=await e.call(`vfs`,`snapshot`,[t])}catch(e){n?.(e instanceof Error?e.message:String(e)),r={entries:[]}}return new gN(r)}function vV(e,t){if(e.syncFsToken)return e=>t(`[sync-fs] snapshot failed, sync metadata will be incomplete: ${e}\n`)}function yV(e,t){return t?hV(t):e.syncFsToken?aV(e.syncFsToken):void 0}function bV(e,t){if(!(!e.syncSab||typeof Atomics>`u`||typeof Atomics.wait!=`function`))return fV(e.syncSab,t)}function xV(e,t,n,r,i){let a=bV(e,t),o=yV(e,a);if(Object.assign(r,IN(n,e.cwd,o,i)),e.syncFsToken)return nV(e.syncFsToken,{syncFs:n,...o?{fsBridge:o}:{},...a?{transport:gV(a)}:{}})}function SV(e=globalThis){Object.prototype.hasOwnProperty.call(e,`SLICC_VERSION`)||Object.defineProperty(e,"SLICC_VERSION",{value:Gn().version,writable:!1,enumerable:!1,configurable:!1})}function CV(e,t,n){let r=zN({isTTY:!e,noColor:e});return{colorApi:r,cliApi:LN({writeStdout:t,writeStderr:n,exit:e=>{throw new sz(e)},color:r})}}function wV(e,t,n){return{readStdinBytes:()=>vN(e.stdin??``),writeStdout:t,writeStderr:n}}function TV(e){return{usbBridge:TB(e),serialBridge:CB(e),hidBridge:$z(e)}}async function EV(e,t){let n=[],r=[],i=e=>{n.push(typeof e==`string`?e:String(e))},a=e=>{r.push(typeof e==`string`?e:String(e))},o=lz(i,a),s=uz(e,i,a),{colorApi:c,cliApi:l}=CV(!!e.env?.NO_COLOR,i,a),u=new DM(t),d=wV(e,i,a),f=AN(u,C,d),p=await _V(u,e.cwd,vV(e,a)),m=xV(e,t,p,f,d),h=Jz(u,p,e.cwd,a),g=jz(h,{cwd:e.cwd}),_=kB({argv:e.argv,fs:f,exec:h}),v=Uz(u),{usbBridge:y,serialBridge:b,hidBridge:x}=TV(u),S=Oz({fetch:C});async function C(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await u.call(`fetch`,`request`,[n,await Bz(t,e)]),i=r.body.byteLength===0?null:r.body.buffer.slice(r.body.byteOffset,r.body.byteOffset+r.body.byteLength),a=new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers});return Object.defineProperty(a,"url",{value:r.url||n}),a}let w=lB({exec:h,agent:g,skill:_,http:S,browser:v,usb:y,serial:b,hid:x,cli:l,color:c}),T=e.filename,E=oz(T),D=await fB(u,e.code,e.cwd,T),O=hB({graph:D,fsBridge:f,processShim:s.processShim,childProcess:BP(h,m),nodeConsole:o,sliccyModules:w,shimmedPackages:mB(u),nodeReadline:vz({output:{write:i},onExit:s.recordExit})}).require,ee={exports:{},filename:e.filename},te=D.entrySource!==void 0,k=D.entrySource??e.code,A=globalThis;SV(),A.__slicc_compileWasm=e=>u.call(`wasm`,`compile`,[e]);let ne=await xB(k,{process:s.processShim,console:o,require:O,module:ee,exports:ee.exports,fetch:C,__dirname:E,__filename:T},a,te);await DV(u,p,a),s.getDidCallProcessExit()?ne=s.getExitCode():await OV(u),delete A.__slicc_compileWasm,u.dispose(),t.postMessage({type:`realm-done`,stdout:n.join(``),stderr:r.join(``),exitCode:ne})}async function DV(e,t,n){let r=t.getMutations();if(r.created.length||r.modified.length||r.deleted.length)try{await e.call(`vfs`,`flushWrites`,[r])}catch(e){let t=e instanceof Error?e.message:String(e);n(`[sync-fs] ERROR: flush failed — ${r.created.length+r.modified.length} write(s) + ${r.deleted.length} delete(s) were NOT persisted: ${t}\n`)}}async function OV(e){let t=Date.now()+1e3,n=0;do await new Promise(e=>setTimeout(e,0)),n++;while(e.pendingCount>0&&n<50&&Date.now()<t)}function kV(){let e=new Set,t=new Set;return{realmSide:{postMessage:e=>{queueMicrotask(()=>{for(let n of[...t])n({data:e})})},addEventListener:(t,n)=>{e.add(n)},removeEventListener:(t,n)=>{e.delete(n)}},hostSide:{postMessage:t=>{queueMicrotask(()=>{for(let n of[...e])n({data:t})})},addEventListener:(e,n)=>{t.add(n)},removeEventListener:(e,n)=>{t.delete(n)}}}}function AV(){return async({kind:e})=>{if(e!==`js`)throw Error(`createInProcessJsRealmFactory: only kind:js is supported`);let{realmSide:t,hostSide:n}=kV(),r=e=>{if(e.data?.type!==`realm-init`)return;t.removeEventListener(`message`,r);let n=e.data;n.kind===`js`&&EV(n,t).catch(e=>{let n={type:`realm-error`,message:e instanceof Error?e.message:String(e)};t.postMessage(n)})};return t.addEventListener(`message`,r),{controlPort:n,terminate(){t.removeEventListener(`message`,r)}}}}function jV(){return async({kind:e})=>{if(e!==`py`)throw Error(`createInProcessPyRealmFactory: only kind:py is supported`);let{realmSide:t,hostSide:n}=kV(),r=e=>{if(e.data?.type!==`realm-init`)return;t.removeEventListener(`message`,r);let n=e.data;n.kind===`py`&&RM(n,t).catch(e=>{let n={type:`realm-error`,message:e instanceof Error?e.message:String(e)};t.postMessage(n)})};return t.addEventListener(`message`,r),{controlPort:n,terminate(){t.removeEventListener(`message`,r)}}}}const MV=AV(),NV=jV();function PV(){return async({kind:e,ctx:t})=>e===`py`?typeof Worker<`u`?IV():NV({kind:e,ctx:t}):typeof Worker<`u`?FV():MV({kind:e,ctx:t})}function FV(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return LV(new Worker(new URL(`/assets/js-realm-worker-MY0pjZ9h.js`,``+import.meta.url),{type:`module`}))}function IV(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return LV(new Worker(new URL(`/assets/py-realm-worker-C-Ej3Sv5.js`,``+import.meta.url),{type:`module`}))}function LV(e){let t={postMessage:(t,n)=>n?e.postMessage(t,n):e.postMessage(t),addEventListener:(t,n)=>e.addEventListener(t,n),removeEventListener:(t,n)=>e.removeEventListener(t,n)},n=!1;return{controlPort:t,isolatedThread:!0,addEventListener:(t,n,r)=>e.addEventListener(t,n,r),removeEventListener:(t,n)=>e.removeEventListener(t,n),terminate(){if(!n){n=!0;try{e.terminate()}catch{}}}}}function RV(){if(Yr())return decodeURIComponent(Zr(`pyodide/pyodide.mjs`,`../../../../../node_modules/pyodide/`).pathname)}function zV(e){let t=e.startsWith(`/`)?e:`/${e}`;return new URL(`file://${t}`).href}function BV(e){return e instanceof Error?e.message:String(e)}function VV(e){return`${(e&&e.length>0?e:`[eval]`).replace(/\.[^./]+$/,``)}.js`}async function HV(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:VV(n),supported:{"dynamic-import":!1},define:{"import.meta.url":JSON.stringify(r)}})).code}async function UV(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:VV(n),supported:{"dynamic-import":!1},...r?{define:{"import.meta.url":JSON.stringify(r)}}:{}})).code}const WV=/\bimport\s*\.\s*meta\s*\.\s*url\b/g,GV=/\bimport\s*\.\s*meta\b/g;function KV(e,t){let n=JSON.stringify(t);return e.replace(WV,n).replace(GV,`({ url: ${n} })`)}async function qV(e,t,n,r){let i=await e();return i.transpileModule(KV(t,r),{compilerOptions:{module:i.ModuleKind.CommonJS,target:i.ScriptTarget.ES2020,esModuleInterop:!0},fileName:`${n.replace(/\.[^./]+$/,``)}.ts`}).outputText}function JV(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>fi(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>ci(t));return async({source:e,path:t,kind:i})=>{if(i!==`esm`||!Kr(e))return e;let a=zV(t),o;try{return await HV(n,e,t,a)}catch(e){o=e}try{return await qV(r,e,t,a)}catch(e){throw Error(`Failed to transpile ESM module '${t}': ${BV(o)}; typescript fallback: ${BV(e)}`)}}}function YV(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>fi(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>ci(t));return async({source:e,filename:t})=>{if(!Kr(e)&&!di(e))return e;let i=typeof t==`string`&&t.startsWith(`/`),a=i?zV(t):void 0,o=i?t:`[eval].js`,s;try{return await UV(n,e,t,a)}catch(e){s=e}try{return await qV(r,e,o,a??``)}catch(e){throw Error(`Failed to transpile entry source: ${BV(s)}; typescript fallback: ${BV(e)}`)}}}function XV(e){if(!e.startsWith(`#!`))return e;let t=e.indexOf(`
5422
+ `),r}async function s(t){if(typeof t!=`string`||!t.trim())throw TypeError(`skill.token(providerId): providerId must be a non-empty string`);let n=`oauth-token ${DB(t)}`,{stdout:r,stderr:i,exitCode:a}=await e.exec(n);if(a!==0){let e=i.trim()||`oauth-token exited with code ${a}`;throw Error(`skill.token('${t}'): ${e}`)}return r.replace(/\r?\n+$/,``)}return Object.freeze({dir:t,refs:n,assets:r,config:o,token:s})}const AB=new Map,jB=new Map;function MB(e){let t=crypto.randomUUID();return AB.set(t,e),t}function NB(e){return AB.get(e)??null}function PB(e,t){if(!AB.has(e))return t.abort(),()=>{};let n=jB.get(e);return n||(n=new Set,jB.set(e,n)),n.add(t),()=>{let n=jB.get(e);n&&(n.delete(t),n.size===0&&jB.delete(e))}}function FB(e){AB.delete(e);let t=jB.get(e);if(t){jB.delete(e);for(let e of t)e.signal.aborted||e.abort()}}function IB(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 LB(e){let t=NB(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,isSymbolicLink:e.isSymbolicLink,size:e.size}}}case`lstat`:{let e=await n.lstat(t);return{ok:!0,kind:`json`,json:{isDirectory:e.isDirectory,isFile:e.isFile,isSymbolicLink:e.isSymbolicLink??!1,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 IB(e)}}function RB(e){return`slicc-sync-fs-`+e}const zB=`sync-fs-ack`,BB=`sync-fs-res`,VB=6e5,HB=5e3,UB=`exec`;function WB(e){return e.channel===UB}function GB(e){let{command:t}=e;if(Array.isArray(t)){if(t.length===0||!t.every(e=>typeof e==`string`))return{errno:`EINVAL`,message:`sync-exec: argv must be a non-empty string[]`};let[e,...n]=t;return{cmd:e,args:n}}return typeof t!=`string`||t.length===0?{errno:`EINVAL`,message:`sync-exec: command must be a non-empty string`}:e.args===void 0?{cmd:t}:!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)?{errno:`EINVAL`,message:`sync-exec: args must be a string[]`}:{cmd:t,args:e.args}}function KB(e,t){return Math.min(typeof e!=`number`||!Number.isFinite(e)||e<=0?t:e,VB)}async function qB(e){let t=NB(e.token);if(!t)return{ok:!1,errno:`EACCES`,message:`sync-exec: unknown or revoked token`};if(!t.exec)return{ok:!1,errno:`ENOSYS`,message:`sync-exec: exec is not available`};let n=GB(e);if(`errno`in n)return{ok:!1,errno:n.errno,message:n.message};let r=new AbortController,i=!1,a=setTimeout(()=>{i=!0,r.abort()},KB(e.timeoutMs,VB)),o=PB(e.token,r);try{let i=await t.exec(n.cmd,{cwd:t.cwd,signal:r.signal,...n.args===void 0?{}:{args:n.args},...e.stdin===void 0?{}:{stdin:e.stdin}});return{ok:!0,kind:`json`,json:{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}catch(e){return i?{ok:!1,errno:`ETIMEDOUT`,message:`sync-exec: timed out — ${e instanceof Error?e.message:String(e)}`}:r.signal.aborted?{ok:!1,errno:`ECANCELED`,message:`sync-exec: realm disposed`}:IB(e)}finally{clearTimeout(a),o()}}function JB(e,t){return Object.assign(Error(`${e}: ${t}`),{code:e})}function YB(e){let t=ZB(e);if(QB(t))return new Uint8Array(t.response);if(t.status>=200&&t.status<300)throw JB(`EIO`,e.label);$B(t,e.label)}function XB(e){let t=YB(e);try{return JSON.parse(new TextDecoder().decode(t))}catch{throw JB(`EIO`,e.label)}}function ZB(e){let t=new XMLHttpRequest;try{t.open(e.method,e.url,!1),t.responseType=`arraybuffer`,t.timeout=e.timeoutMs,t.setRequestHeader(`x-slicc-fs-token`,e.token),e.body?t.send(new Uint8Array(e.body)):t.send()}catch{throw JB(`EIO`,e.label)}return t}function QB(e){return e.status>=200&&e.status<300&&e.getResponseHeader(`x-slicc-fs`)===`1`}function $B(e,t){throw JB(e.getResponseHeader(`x-slicc-fs`)===`1`&&e.getResponseHeader(`x-slicc-fs-errno`)||`EIO`,t)}function eV(e){return(t,n,r)=>{let i=XB({method:`POST`,url:`/__slicc/exec-sync`,token:e,body:new TextEncoder().encode(JSON.stringify({...t,channel:UB})),timeoutMs:n+HB,label:r});if(!i||typeof i.stdout!=`string`||typeof i.stderr!=`string`||typeof i.exitCode!=`number`)throw JB(`EIO`,r);return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}}function tV(e,t){let n=e.getMutations();for(let e of n.deleted)t.rm(e);for(let e of n.created)e.isDirectory?t.mkdir(e.path):t.writeFile(e.path,e.content);for(let e of n.modified)t.writeFile(e.path,e.content);e.resetBaseline()}function nV(e,t={}){let n=t.timeoutMs??12e4,{syncFs:r,fsBridge:i}=t,a=t.transport??eV(e);return{run(e,t={}){let o=r?.wasUsed()===!0&&i!==void 0;o&&tV(r,i);let s=`sync-exec bridge, '${Array.isArray(e)?e.join(` `):e}'`,c=KB(t.timeout,n),l={command:e,...t.args===void 0?{}:{args:t.args},...t.input===void 0?{}:{stdin:t.input},timeoutMs:c};try{return a(l,c,s)}finally{o&&r.invalidate()}}}}function rV(e,t){return JB(e,`sync-fs bridge, '${t}'`)}function iV(e,t){let n=`/__slicc/fs-sync`+(e.startsWith(`/`)?e:`/${e}`).split(`/`).map(encodeURIComponent).join(`/`);return t?`${n}?op=${t}`:n}function aV(e,t={}){let n=t.timeoutMs??3e4;function r(t,r,i,a){return{method:t,url:iV(r,a),token:e,...i?{body:i}:{},timeoutMs:n,label:`sync-fs bridge, '${r}'`}}return{readFile(e){return YB(r(`GET`,e))},writeFile(e,t){YB(r(`POST`,e,t))},stat(e){let t=XB(r(`GET`,e,void 0,`stat`));if(!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`)throw rV(`EIO`,e);return{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size}},lstat(e){let t=XB(r(`GET`,e,void 0,`lstat`));if(!t||typeof t.isFile!=`boolean`||typeof t.isDirectory!=`boolean`||typeof t.size!=`number`)throw rV(`EIO`,e);return{isFile:t.isFile,isDirectory:t.isDirectory,isSymbolicLink:t.isSymbolicLink,size:t.size}},readdir(e){let t=XB(r(`GET`,e,void 0,`readdir`));if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw rV(`EIO`,e);return t},exists(e){let t=XB(r(`GET`,e,void 0,`exists`));if(typeof t!=`boolean`)throw rV(`EIO`,e);return t},mkdir(e){YB(r(`POST`,e,void 0,`mkdir`))},rm(e){YB(r(`POST`,e,void 0,`rm`))}}}const oV=new TextEncoder,sV=new TextDecoder;function cV(e){if(!e.ok)return{status:4,payload:oV.encode(JSON.stringify({errno:e.errno,message:e.message}))};switch(e.kind){case`bytes`:return{status:1,payload:e.bytes};case`json`:return{status:2,payload:oV.encode(JSON.stringify(e.json))};default:return{status:3,payload:new Uint8Array}}}function lV(e,t){switch(e){case 1:return{ok:!0,kind:`bytes`,bytes:t};case 3:return{ok:!0,kind:`void`};case 2:try{return{ok:!0,kind:`json`,json:JSON.parse(sV.decode(t))}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed json payload`}}case 4:try{let e=JSON.parse(sV.decode(t)),n=typeof e.errno==`string`&&/^E[A-Z]+$/.test(e.errno)?e.errno:`EIO`;return{ok:!1,errno:n,message:String(e.message??n)}}catch{return{ok:!1,errno:`EIO`,message:`sync-sab: malformed errno payload`}}default:return{ok:!1,errno:`EIO`,message:`sync-sab: unknown status ${e}`}}}function uV(e){if(e.byteLength<4160)throw Error(`sync-sab: buffer too small (${e.byteLength} < 4160)`);return{header:new Int32Array(e,0,16),window:new Uint8Array(e,64)}}function dV(){if(typeof SharedArrayBuffer>`u`||typeof Atomics>`u`)return!1;let e=globalThis.crossOriginIsolated;return e===void 0||e===!0}function fV(e,t,n={}){let{header:r,window:i}=uV(e),a=n.wait??((e,t,n,r)=>Atomics.wait(e,t,n,r)),o=n.now??(()=>performance.now()),s=0;function c(e,t,n){for(;;){let i=t-o();if(i<=0)throw JB(`ETIMEDOUT`,n);if(a(r,0,1,i),Atomics.load(r,0)===2&&Atomics.load(r,1)===e)return;Atomics.load(r,0)===2&&Atomics.store(r,0,1)}}return{call(e,n,a){let l=++s,u=o()+n,d=null,f=0,p=0;try{for(;;){Atomics.store(r,0,1);let n=p===0?{type:`sync-sab-req`,id:l,req:e}:{type:`sync-sab-next`,id:l,offset:p};try{t.postMessage(n)}catch{throw JB(`EIO`,a)}c(l,u,a);let o=Atomics.load(r,3),s=Atomics.load(r,4);if(Atomics.load(r,5)!==p||s<0||o<0||p+s>o)throw JB(`EIO`,a);if(d===null&&(f=Atomics.load(r,2),d=new Uint8Array(o)),d.set(i.subarray(0,s),p),p+=s,p>=o)break;if(s===0)throw JB(`EIO`,a)}}finally{Atomics.store(r,0,0)}return lV(f,d)}}}function pV(e,t){return JB(e,`sync-sab bridge, '${t}'`)}function mV(e){let t=e;return!!t&&typeof t.isFile==`boolean`&&typeof t.isDirectory==`boolean`&&typeof t.size==`number`}function hV(e,t={}){let n=t.timeoutMs??25e3;function r(t,r){let i=e.call(t,n,`sync-sab bridge, '${r}'`);if(!i.ok)throw pV(i.errno,r);return i}function i(e,t){let n=r(e,t);if(n.ok&&n.kind===`bytes`)return n.bytes;throw pV(`EIO`,t)}function a(e,t){let n=r(e,t);if(n.ok&&n.kind===`json`)return n.json;throw pV(`EIO`,t)}return{readFile:e=>i({op:`read`,path:e},e),writeFile:(e,t)=>{r({op:`write`,path:e,body:t},e)},stat:e=>{let t=a({op:`stat`,path:e},e);if(!mV(t))throw pV(`EIO`,e);return t},lstat:e=>{let t=a({op:`lstat`,path:e},e);if(!mV(t))throw pV(`EIO`,e);return t},readdir:e=>{let t=a({op:`readdir`,path:e},e);if(!Array.isArray(t)||!t.every(e=>typeof e==`string`))throw pV(`EIO`,e);return t},exists:e=>{let t=a({op:`exists`,path:e},e);if(typeof t!=`boolean`)throw pV(`EIO`,e);return t},mkdir:e=>{r({op:`mkdir`,path:e},e)},rm:e=>{r({op:`rm`,path:e},e)}}}function gV(e){return(t,n,r)=>{let i=e.call({...t,channel:UB},n+HB,r);if(!i.ok)throw JB(i.errno,r);let a=i.kind===`json`?i.json:null;if(!a||typeof a.stdout!=`string`||typeof a.stderr!=`string`||typeof a.exitCode!=`number`)throw JB(`EIO`,r);return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}}async function _V(e,t,n){let r;try{r=await e.call(`vfs`,`snapshot`,[t])}catch(e){n?.(e instanceof Error?e.message:String(e)),r={entries:[]}}return new gN(r)}function vV(e,t){if(e.syncFsToken)return e=>t(`[sync-fs] snapshot failed, sync metadata will be incomplete: ${e}\n`)}function yV(e,t){return t?hV(t):e.syncFsToken?aV(e.syncFsToken):void 0}function bV(e,t){if(!(!e.syncSab||typeof Atomics>`u`||typeof Atomics.wait!=`function`))return fV(e.syncSab,t)}function xV(e,t,n,r,i){let a=bV(e,t),o=yV(e,a);if(Object.assign(r,IN(n,e.cwd,o,i)),e.syncFsToken)return nV(e.syncFsToken,{syncFs:n,...o?{fsBridge:o}:{},...a?{transport:gV(a)}:{}})}function SV(e=globalThis){Object.prototype.hasOwnProperty.call(e,`SLICC_VERSION`)||Object.defineProperty(e,"SLICC_VERSION",{value:Gn().version,writable:!1,enumerable:!1,configurable:!1})}function CV(e,t,n){let r=zN({isTTY:!e,noColor:e});return{colorApi:r,cliApi:LN({writeStdout:t,writeStderr:n,exit:e=>{throw new sz(e)},color:r})}}function wV(e,t,n){return{readStdinBytes:()=>vN(e.stdin??``),writeStdout:t,writeStderr:n}}function TV(e){return{usbBridge:TB(e),serialBridge:CB(e),hidBridge:$z(e)}}async function EV(e,t){let n=[],r=[],i=e=>{n.push(typeof e==`string`?e:String(e))},a=e=>{r.push(typeof e==`string`?e:String(e))},o=lz(i,a),s=uz(e,i,a),{colorApi:c,cliApi:l}=CV(!!e.env?.NO_COLOR,i,a),u=new DM(t),d=wV(e,i,a),f=AN(u,C,d),p=await _V(u,e.cwd,vV(e,a)),m=xV(e,t,p,f,d),h=Jz(u,p,e.cwd,a),g=jz(h,{cwd:e.cwd}),_=kB({argv:e.argv,fs:f,exec:h}),v=Uz(u),{usbBridge:y,serialBridge:b,hidBridge:x}=TV(u),S=Oz({fetch:C});async function C(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await u.call(`fetch`,`request`,[n,await Bz(t,e)]),i=r.body.byteLength===0?null:r.body.buffer.slice(r.body.byteOffset,r.body.byteOffset+r.body.byteLength),a=new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers});return Object.defineProperty(a,"url",{value:r.url||n}),a}let w=lB({exec:h,agent:g,skill:_,http:S,browser:v,usb:y,serial:b,hid:x,cli:l,color:c}),T=e.filename,E=oz(T),D=await fB(u,e.code,e.cwd,T),O=hB({graph:D,fsBridge:f,processShim:s.processShim,childProcess:BP(h,m),nodeConsole:o,sliccyModules:w,shimmedPackages:mB(u),nodeReadline:vz({output:{write:i},onExit:s.recordExit})}).require,ee={exports:{},filename:e.filename},te=D.entrySource!==void 0,k=D.entrySource??e.code,A=globalThis;SV(),A.__slicc_compileWasm=e=>u.call(`wasm`,`compile`,[e]);let ne=await xB(k,{process:s.processShim,console:o,require:O,module:ee,exports:ee.exports,fetch:C,__dirname:E,__filename:T},a,te);await DV(u,p,a),s.getDidCallProcessExit()?ne=s.getExitCode():await OV(u),delete A.__slicc_compileWasm,u.dispose(),t.postMessage({type:`realm-done`,stdout:n.join(``),stderr:r.join(``),exitCode:ne})}async function DV(e,t,n){let r=t.getMutations();if(r.created.length||r.modified.length||r.deleted.length)try{await e.call(`vfs`,`flushWrites`,[r])}catch(e){let t=e instanceof Error?e.message:String(e);n(`[sync-fs] ERROR: flush failed — ${r.created.length+r.modified.length} write(s) + ${r.deleted.length} delete(s) were NOT persisted: ${t}\n`)}}async function OV(e){let t=Date.now()+1e3,n=0;do await new Promise(e=>setTimeout(e,0)),n++;while(e.pendingCount>0&&n<50&&Date.now()<t)}function kV(){let e=new Set,t=new Set;return{realmSide:{postMessage:e=>{queueMicrotask(()=>{for(let n of[...t])n({data:e})})},addEventListener:(t,n)=>{e.add(n)},removeEventListener:(t,n)=>{e.delete(n)}},hostSide:{postMessage:t=>{queueMicrotask(()=>{for(let n of[...e])n({data:t})})},addEventListener:(e,n)=>{t.add(n)},removeEventListener:(e,n)=>{t.delete(n)}}}}function AV(){return async({kind:e})=>{if(e!==`js`)throw Error(`createInProcessJsRealmFactory: only kind:js is supported`);let{realmSide:t,hostSide:n}=kV(),r=e=>{if(e.data?.type!==`realm-init`)return;t.removeEventListener(`message`,r);let n=e.data;n.kind===`js`&&EV(n,t).catch(e=>{let n={type:`realm-error`,message:e instanceof Error?e.message:String(e)};t.postMessage(n)})};return t.addEventListener(`message`,r),{controlPort:n,terminate(){t.removeEventListener(`message`,r)}}}}function jV(){return async({kind:e})=>{if(e!==`py`)throw Error(`createInProcessPyRealmFactory: only kind:py is supported`);let{realmSide:t,hostSide:n}=kV(),r=e=>{if(e.data?.type!==`realm-init`)return;t.removeEventListener(`message`,r);let n=e.data;n.kind===`py`&&RM(n,t).catch(e=>{let n={type:`realm-error`,message:e instanceof Error?e.message:String(e)};t.postMessage(n)})};return t.addEventListener(`message`,r),{controlPort:n,terminate(){t.removeEventListener(`message`,r)}}}}const MV=AV(),NV=jV();function PV(){return async({kind:e,ctx:t})=>e===`py`?typeof Worker<`u`?IV():NV({kind:e,ctx:t}):typeof Worker<`u`?FV():MV({kind:e,ctx:t})}function FV(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return LV(new Worker(new URL(`/assets/js-realm-worker-50jMxmTJ.js`,``+import.meta.url),{type:`module`}))}function IV(){if(typeof Worker>`u`)throw Error(`realm-factory: Worker is not available in this runtime`);return LV(new Worker(new URL(`/assets/py-realm-worker-C-Ej3Sv5.js`,``+import.meta.url),{type:`module`}))}function LV(e){let t={postMessage:(t,n)=>n?e.postMessage(t,n):e.postMessage(t),addEventListener:(t,n)=>e.addEventListener(t,n),removeEventListener:(t,n)=>e.removeEventListener(t,n)},n=!1;return{controlPort:t,isolatedThread:!0,addEventListener:(t,n,r)=>e.addEventListener(t,n,r),removeEventListener:(t,n)=>e.removeEventListener(t,n),terminate(){if(!n){n=!0;try{e.terminate()}catch{}}}}}function RV(){if(Yr())return decodeURIComponent(Zr(`pyodide/pyodide.mjs`,`../../../../../node_modules/pyodide/`).pathname)}function zV(e){let t=e.startsWith(`/`)?e:`/${e}`;return new URL(`file://${t}`).href}function BV(e){return e instanceof Error?e.message:String(e)}function VV(e){return`${(e&&e.length>0?e:`[eval]`).replace(/\.[^./]+$/,``)}.js`}async function HV(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:VV(n),supported:{"dynamic-import":!1},define:{"import.meta.url":JSON.stringify(r)}})).code}async function UV(e,t,n,r){return(await(await e()).transform(t,{loader:`js`,format:`cjs`,sourcefile:VV(n),supported:{"dynamic-import":!1},...r?{define:{"import.meta.url":JSON.stringify(r)}}:{}})).code}const WV=/\bimport\s*\.\s*meta\s*\.\s*url\b/g,GV=/\bimport\s*\.\s*meta\b/g;function KV(e,t){let n=JSON.stringify(t);return e.replace(WV,n).replace(GV,`({ url: ${n} })`)}async function qV(e,t,n,r){let i=await e();return i.transpileModule(KV(t,r),{compilerOptions:{module:i.ModuleKind.CommonJS,target:i.ScriptTarget.ES2020,esModuleInterop:!0},fileName:`${n.replace(/\.[^./]+$/,``)}.ts`}).outputText}function JV(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>fi(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>ci(t));return async({source:e,path:t,kind:i})=>{if(i!==`esm`||!Kr(e))return e;let a=zV(t),o;try{return await HV(n,e,t,a)}catch(e){o=e}try{return await qV(r,e,t,a)}catch(e){throw Error(`Failed to transpile ESM module '${t}': ${BV(o)}; typescript fallback: ${BV(e)}`)}}}function YV(e={}){let{ipk:t}=e,n=e.loadEsbuild??(()=>fi(t?{ipk:t}:{})),r=e.loadTypeScript??(()=>ci(t));return async({source:e,filename:t})=>{if(!Kr(e)&&!di(e))return e;let i=typeof t==`string`&&t.startsWith(`/`),a=i?zV(t):void 0,o=i?t:`[eval].js`,s;try{return await UV(n,e,t,a)}catch(e){s=e}try{return await qV(r,e,o,a??``)}catch(e){throw Error(`Failed to transpile entry source: ${BV(s)}; typescript fallback: ${BV(e)}`)}}}function XV(e){if(!e.startsWith(`#!`))return e;let t=e.indexOf(`
5423
5423
  `);return t===-1?``:e.slice(t+1)}function ZV(e){return zt(e).dir}const QV=[`node`,`require`,`default`],$V=[`node`,`import`,`default`],eH=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,tH=/\bimport\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,nH=/(?:^|[;\n}])\s*import\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,rH=/(?:^|[;\n}])\s*export\b[\s\S]*?\bfrom\s*(['"])([^'"]+)\1/g,iH=/(?:^|[;\n}])\s*import\s*(['"])([^'"]+)\1/g;function aH(e,t,n){let r=t[0].indexOf(n);return r<0?!1:e.startsWith(n,t.index+r)}function oH(e){let t=ui(e),n=new Map,r=(r,i,a)=>{r.lastIndex=0;let o;for(;(o=r.exec(e))!==null;){if(!aH(t,o,a))continue;let e=o[2];n.get(e)!==`import`&&n.set(e,i)}};return r(eH,`require`,`require`),r(tH,`import`,`import`),r(nH,`import`,`import`),r(rH,`import`,`export`),r(iH,`import`,`import`),[...n].map(([e,t])=>({specifier:e,kind:t}))}async function sH(e,t,n,r){if(n===`json`)return`module.exports = JSON.parse(${JSON.stringify(e)});\n`;let i=XV(e);if(n===`esm`){if(!r)throw Error(`Cannot load ESM module '${t}': no transpile hook configured (run: ipk install esbuild-wasm)`);return await r({source:i,path:t,kind:n})}return i}async function cH(e){let{entrySpecifiers:t,fromDir:n,reader:r,conditions:i,transpile:a}=e,o=e.requireConditions??QV,s=e.importConditions??$V,c=i??o,l=new Map,u=[],d={};async function f(e,t){if(l.has(e))return;let n=await r.readFile(e),i=await sH(n,e,t,a);l.set(e,{path:e,source:n,cjsSource:i,kind:t});let c=ZV(e),p={};for(let{specifier:t,kind:i}of oH(n)){let n;try{n=await Hr(t,c,r,{conditions:i===`import`?s:o})}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`While loading '${e}': ${n}`)}n.type===`file`&&(p[t]=n.path,await f(n.path,n.moduleKind))}d[e]=p,u.push(e)}let p={};for(let e of t){let t=await Hr(e,n,r,{conditions:c});t.type===`file`&&(p[e]=t.path,await f(t.path,t.moduleKind))}return{files:u.map(e=>{let t=l.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return t}),entryMap:p,edges:d}}function lH(e){return!(e.startsWith(`sliccy:`)||e.startsWith(`node:`)||Ur.has(e)||oB.has(e))}async function uH(e){let{entryCode:t,fromDir:n,entryFilename:r,reader:i,transpile:a,transpileEntry:o}=e,s=new Map,c=[],l={},u={},d={};for(let{specifier:e,kind:r}of oH(t))if(lH(e))try{let t=await cH({entrySpecifiers:[e],fromDir:n,reader:i,transpile:a,conditions:r===`import`?$V:QV,requireConditions:QV,importConditions:$V});for(let e of t.files)s.has(e.path)||(s.set(e.path,e),c.push(e.path));Object.assign(l,t.entryMap);for(let[e,n]of Object.entries(t.edges))u[e]={...u[e]??{},...n}}catch(t){d[e]=t instanceof Error?t.message:String(t)}let f;o&&(Kr(t)||di(t))&&(f=await o({source:t,filename:r??`[eval]`,fromDir:n}));let p={files:c.map(e=>{let t=s.get(e);if(!t)throw Error(`module-loader: missing built module for '${e}'`);return{path:t.path,cjsSource:t.cjsSource,kind:t.kind}}),entryMap:l,edges:u,errors:d};return f!==void 0&&(p.entrySource=f),p}function dH(){return globalThis.navigator?.hid??null}function fH(e){let t=e.collections?.[0];return t?`${t.usagePage??``}:${t.usage??``}`:``}function pH(e,t){return e===t||e.vendorId===t.vendorId&&e.productId===t.productId&&(e.productName??``)===(t.productName??``)&&fH(e)===fH(t)&&!!e.productName}var mH=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(pH(n,e))return this.byHandle.set(t,e),t;let t=`hid${++this.counter}`;return this.byHandle.set(t,e),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,device:t}))}};let hH=null;function gH(){return hH||=new mH,hH}const _H=4194304;function vH(e,t){let n=t.collections?.[0];return{handle:e,vendorId:t.vendorId,productId:t.productId,...t.productName?{productName:t.productName}:{},...n?.usagePage===void 0?{}:{usagePage:n.usagePage},...n?.usage===void 0?{}:{usage:n.usage},opened:t.opened}}function yH(e,t){let n=e.get(t);if(!n)throw Error(`unknown hid handle '${t}'`);return n}async function bH(e){e.opened||await e.open()}function xH(e,t){if(e>4194304)throw Error(`${t} exceeds the ${_H}-byte (4 MiB) v1 limit`)}function SH(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),t}async function CH(e,t){return(await t.getDevices()).map(t=>vH(e.register(t),t))}async function wH(e,t,n){let r=await t.requestDevice({filters:n});if(r.length===0)throw Error(`No device selected.`);return r.map(t=>vH(e.register(t),t))}function TH(e,t){return vH(t,yH(e,t))}async function EH(e,t){await yH(e,t).open()}async function DH(e,t){await yH(e,t).close()}async function OH(e,t,n,r){xH(r.byteLength,`send report payload`);let i=yH(e,t);await bH(i),await i.sendReport(n,r)}async function kH(e,t,n,r){xH(r.byteLength,`send feature report payload`);let i=yH(e,t);await bH(i),await i.sendFeatureReport(n,r)}async function AH(e,t,n){let r=yH(e,t);return await bH(r),{reportId:n,bytes:SH(await r.receiveFeatureReport(n))}}async function jH(e,t,n){let r=yH(e,t);await bH(r);let i=e=>{n({reportId:e.reportId,bytes:SH(e.data)})};return r.addEventListener(`inputreport`,i),()=>r.removeEventListener(`inputreport`,i)}const MH=6e4;function NH(){return an()}function PH(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),MH);rn(`hid-device`,e??[],void 0,{timeoutMs:MH}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`hid picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open HID picker`})})})}function FH(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var IH=class{registry;constructor(e){this.registry=e}hid(){let e=dH();if(!e)throw Error(`WebHID is unavailable in this browser`);return e}list(){return CH(this.registry,this.hid())}async request(e){if(NH()){let t=await PH(e);if(`cancelled`in t)throw Error(`user cancelled the HID picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquireAll(t.info);if(n.length===0)throw Error(`granted device could not be re-acquired`);return n.map(e=>vH(this.registry.register(e),e))}return wH(this.registry,this.hid(),e)}async reacquireAll(e){return(await this.hid().getDevices()).filter(t=>t.vendorId===e.vendorId&&t.productId===e.productId)}info(e){return Promise.resolve(TH(this.registry,e))}open(e){return EH(this.registry,e)}close(e){return DH(this.registry,e)}sendReport(e,t,n){return OH(this.registry,e,t,FH(n))}sendFeatureReport(e,t,n){return kH(this.registry,e,t,FH(n))}async receiveFeatureReport(e,t){let n=await AH(this.registry,e,t);return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){return jH(this.registry,e,e=>t({reportId:e.reportId,bytes:new Uint8Array(e.bytes)}))}},LH=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`hid-list`,void 0)).devices}async request(t){return(await this.rpc.call(`hid-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).devices}async info(e){return(await this.rpc.call(`hid-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`hid-open`,{handle:e})}async close(e){await this.rpc.call(`hid-close`,{handle:e})}async sendReport(e,t,n){await this.rpc.call(`hid-send-report`,{handle:e,reportId:t,bytes:FH(n)})}async sendFeatureReport(e,t,n){await this.rpc.call(`hid-send-feature-report`,{handle:e,reportId:t,bytes:FH(n)})}async receiveFeatureReport(e,t){let n=await this.rpc.call(`hid-receive-feature-report`,{handle:e,reportId:t});return{reportId:n.reportId,bytes:new Uint8Array(n.bytes)}}async subscribeInputReports(e,t){let n=this.rpc.onEvent(`hid-input-report`,n=>{let r=n;!r||r.handle!==e||t({reportId:r.reportId,bytes:new Uint8Array(r.bytes)})});try{await this.rpc.call(`hid-subscribe-input-reports`,{handle:e})}catch(e){throw n(),e}return async()=>{n();try{await this.rpc.call(`hid-unsubscribe-input-reports`,{handle:e})}catch{}}}};function RH(e,t){return e&&dH()?new IH(gH()):t?new LH(t):null}function zH(e){return async function(t,n){let r=t instanceof Request?t:null,i=BH(t),a=(n?.method??r?.method??`GET`).toUpperCase(),o=HH(r?.headers,n?.headers),s=await GH(n,r,a,o);s.defaultContentType&&!UH(o,`content-type`)&&(o[`Content-Type`]=s.defaultContentType);let c=await e(i,{method:a,headers:o,body:s.body}),l=new Headers;for(let[e,t]of Object.entries(c.headers))try{l.set(e,t)}catch{}let u=c.status===204||c.status===205||c.status===304||!c.body||c.body.byteLength===0?null:c.body,d=new Response(u,{status:c.status,statusText:c.statusText,headers:l});try{Object.defineProperty(d,"url",{value:c.url||i,writable:!1,configurable:!0,enumerable:!1})}catch{}return d}}function BH(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function VH(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}if(Array.isArray(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return{...e}}}function HH(e,t){let n={};e&&e.forEach((e,t)=>{n[t]=e});let r=VH(t);if(r)for(let[e,t]of Object.entries(r))n[e]=t;return n}function UH(e,t){return WH(e,t)!==void 0}function WH(e,t){let n=t.toLowerCase(),r;for(let[t,i]of Object.entries(e))t.toLowerCase()===n&&(r=i);return r}async function GH(e,t,n,r){if(e&&`body`in e&&e.body!==void 0){let t=JH(e.body,n);return{body:await KH(e.body,n),defaultContentType:t}}if(t&&n!==`GET`&&n!==`HEAD`){let e=t.body!==null,n=new Uint8Array(await t.arrayBuffer()),i=WH(r,`content-type`)??``,a=e&&(!i||!d(i));return{body:n.byteLength===0?void 0:a?YH(n):new TextDecoder(`utf-8`).decode(n),defaultContentType:a?`application/octet-stream`:void 0}}return{}}async function KH(e,t){if(e!=null&&t!==`GET`&&t!==`HEAD`){if(typeof e==`string`)return e;if(e instanceof URLSearchParams)return e.toString();if(e instanceof Uint8Array)return YH(e);if(e instanceof ArrayBuffer)return YH(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return YH(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(typeof Blob<`u`&&e instanceof Blob)return YH(new Uint8Array(await e.arrayBuffer()));throw typeof FormData<`u`&&e instanceof FormData?Error(`node fetch shim: FormData request bodies are not supported (post raw application/x-www-form-urlencoded with URLSearchParams instead)`):typeof ReadableStream<`u`&&e instanceof ReadableStream?Error(`node fetch shim: ReadableStream request bodies are not supported (collect into a Uint8Array or string before calling fetch)`):Error(`node fetch shim: unsupported request body type (${Object.prototype.toString.call(e)}); use a string, Uint8Array, ArrayBuffer, Blob, or URLSearchParams`)}}function qH(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob}function JH(e,t){if(e instanceof URLSearchParams)return`application/x-www-form-urlencoded;charset=UTF-8`;if(!(t===`GET`||t===`HEAD`||!qH(e)))return typeof Blob<`u`&&e instanceof Blob&&e.type?e.type:`application/octet-stream`}function YH(e){let t=32768,n=``;for(let r=0;r<e.byteLength;r+=t)n+=String.fromCharCode(...e.subarray(r,r+t));return n}function XH(){return globalThis.navigator?.serial??null}var ZH=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(n.port===e)return t;let t=`serial${++this.counter}`;return this.byHandle.set(t,{port:e,opened:!1}),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,entry:t}))}};let QH=null;function $H(){return QH||=new ZH,QH}const eU=4194304;function tU(e,t){let n=t.port.getInfo();return{handle:e,...n.usbVendorId===void 0?{}:{usbVendorId:n.usbVendorId},...n.usbProductId===void 0?{}:{usbProductId:n.usbProductId},opened:t.opened}}function nU(e,t){let n=e.get(t);if(!n)throw Error(`unknown serial handle '${t}'`);return n}function rU(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function iU(e,t,n){if(t.length===0)return-1;outer:for(let r=Math.max(0,n);r+t.length<=e.length;r++){for(let n=0;n<t.length;n++)if(e[r+n]!==t[n])continue outer;return r}return-1}async function aU(e,t){return(await t.getPorts()).map(t=>{let n=e.register(t);return tU(n,e.get(n))})}async function oU(e,t,n){let r=await t.requestPort(n.length?{filters:n}:{}),i=e.register(r);return tU(i,e.get(i))}function sU(e,t){return tU(t,nU(e,t))}async function cU(e,t,n){let r=nU(e,t);await r.port.open(n),r.opened=!0}async function lU(e,t){let n=nU(e,t);if(n.reader){try{await n.reader.cancel()}catch{}try{n.reader.releaseLock()}catch{}n.reader=void 0}if(n.pendingRead=void 0,n.leftover=void 0,n.writer){try{n.writer.releaseLock()}catch{}n.writer=void 0}await n.port.close(),n.opened=!1}function uU(e){if(!e.reader){if(!e.port.readable)throw Error(`serial port is not readable (is it open?)`);e.reader=e.port.readable.getReader()}return e.reader}function dU(e){if(!e.writer){if(!e.port.writable)throw Error(`serial port is not writable (is it open?)`);e.writer=e.port.writable.getWriter()}return e.writer}async function fU(e,t,n){let r=nU(e,t),i=Math.min(n.maxBytes??4194304,eU),a=n.until?.length?n.until:void 0,o=n.timeoutMs??1e3,s=Date.now()+Math.max(0,o),c=r.leftover??new Uint8Array;r.leftover=void 0;let l=0,u=()=>{if(a){let e=iU(c,a,Math.max(0,l-(a.length-1)));if(e>=0){let t=e+a.length;return r.leftover=c.slice(t),c.slice(0,t)}}return c.length>=i?(r.leftover=c.slice(i),c.slice(0,i)):null},d=u();if(d)return d;let f=uU(r);for(;Date.now()<s;){let e=s-Date.now(),t=r.pendingRead??f.read();r.pendingRead=t;let n,i=new Promise(t=>{n=setTimeout(()=>t(`__timeout`),e)}),a;try{a=await Promise.race([t,i])}finally{n&&clearTimeout(n)}if(a===`__timeout`)break;if(r.pendingRead=void 0,a.done){r.reader=void 0;break}if(a.value?.length){l=c.length,c=rU(c,a.value);let e=u();if(e)return e}}return c}async function pU(e,t,n){if(n.length>4194304)throw Error(`serial write payload exceeds the ${eU}-byte (4 MiB) v1 limit`);return await dU(nU(e,t)).write(n),n.length}async function mU(e,t){return nU(e,t).port.getSignals()}async function hU(e,t,n){await nU(e,t).port.setSignals(n)}const gU=6e4;function _U(){return an()}function vU(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),gU);rn(`serial-port`,e??[],void 0,{timeoutMs:gU}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`serial picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open serial picker`})})})}function yU(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var bU=class{registry;constructor(e){this.registry=e}serial(){let e=XH();if(!e)throw Error(`Web Serial is unavailable in this browser`);return e}list(){return aU(this.registry,this.serial())}async request(e){if(_U()){let t=await vU(e);if(`cancelled`in t)throw Error(`user cancelled the serial picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted port could not be re-acquired`);let r=this.registry.register(n);return tU(r,this.registry.get(r))}return oU(this.registry,this.serial(),e)}async reacquire(e){let t=await this.serial().getPorts(),n=t.filter(t=>{let n=t.getInfo();return!(e.usbVendorId!==void 0&&n.usbVendorId!==e.usbVendorId||e.usbProductId!==void 0&&n.usbProductId!==e.usbProductId)}),r=n.length?n:t,i=this.registry.list().map(e=>e.entry.port);return r.find(e=>!i.includes(e))??r[0]??null}info(e){return Promise.resolve(sU(this.registry,e))}open(e,t){return cU(this.registry,e,t)}close(e){return lU(this.registry,e)}read(e,t){return fU(this.registry,e,t)}write(e,t){return pU(this.registry,e,t)}getSignals(e){return mU(this.registry,e)}setSignals(e,t){return hU(this.registry,e,t)}},xU=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;static READ_MARGIN_MS=3e4;async list(){return(await this.rpc.call(`serial-list`,void 0)).devices}async request(t){return(await this.rpc.call(`serial-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`serial-device-info`,{handle:e})).device}async open(e,t){await this.rpc.call(`serial-open`,{handle:e,options:t})}async close(e){await this.rpc.call(`serial-close`,{handle:e})}async read(t,n){let r=(n.timeoutMs??1e3)+e.READ_MARGIN_MS,i=await this.rpc.call(`serial-read`,{handle:t,maxBytes:n.maxBytes,until:n.until?yU(n.until):void 0,timeoutMs:n.timeoutMs},{timeoutMs:r});return new Uint8Array(i.bytes)}async write(e,t){return(await this.rpc.call(`serial-write`,{handle:e,bytes:yU(t)})).bytesWritten}async getSignals(e){return(await this.rpc.call(`serial-get-signals`,{handle:e})).signals}async setSignals(e,t){await this.rpc.call(`serial-set-signals`,{handle:e,signals:t})}};function SU(e,t){return e&&XH()?new bU($H()):t?new xU(t):null}function CU(){return globalThis.navigator?.usb??null}function wU(e,t){return e===t||e.vendorId===t.vendorId&&e.productId===t.productId&&(e.serialNumber??``)===(t.serialNumber??``)&&!!e.serialNumber}var TU=class{byHandle=new Map;counter=0;register(e){for(let[t,n]of this.byHandle)if(wU(n,e))return this.byHandle.set(t,e),t;let t=`usb${++this.counter}`;return this.byHandle.set(t,e),t}get(e){return this.byHandle.get(e)}remove(e){return this.byHandle.delete(e)}list(){return[...this.byHandle].map(([e,t])=>({handle:e,device:t}))}};let EU=null;function DU(){return EU||=new TU,EU}const OU=4194304;function kU(e,t){return{handle:e,vendorId:t.vendorId,productId:t.productId,...t.productName?{productName:t.productName}:{},...t.manufacturerName?{manufacturerName:t.manufacturerName}:{},...t.serialNumber?{serialNumber:t.serialNumber}:{},opened:t.opened}}function AU(e,t){let n=e.get(t);if(!n)throw Error(`unknown usb handle '${t}'`);return n}function jU(e,t){if(e>4194304)throw Error(`${t} exceeds the ${OU}-byte (4 MiB) v1 limit`)}function MU(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function NU(e,t){return(await t.getDevices()).map(t=>kU(e.register(t),t))}async function PU(e,t,n){let r=await t.requestDevice({filters:n});return kU(e.register(r),r)}function FU(e,t){return kU(t,AU(e,t))}async function IU(e,t){await AU(e,t).open()}async function LU(e,t){await AU(e,t).close()}async function RU(e,t,n){await AU(e,t).selectConfiguration(n)}async function zU(e,t,n){await AU(e,t).claimInterface(n)}async function BU(e,t,n){await AU(e,t).releaseInterface(n)}async function VU(e,t,n,r){jU(r,`control-in length`);let i=await AU(e,t).controlTransferIn(n,r);return{status:i.status??`ok`,bytes:i.data?MU(i.data):new ArrayBuffer(0)}}async function HU(e,t,n,r){jU(r.byteLength,`control-out payload`);let i=await AU(e,t).controlTransferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function UU(e,t,n,r){jU(r,`transfer-in length`);let i=await AU(e,t).transferIn(n,r);return{status:i.status??`ok`,bytes:i.data?MU(i.data):new ArrayBuffer(0)}}async function WU(e,t,n,r){jU(r.byteLength,`transfer-out payload`);let i=await AU(e,t).transferOut(n,r);return{status:i.status??`ok`,bytesWritten:i.bytesWritten}}async function GU(e,t){await AU(e,t).reset()}const KU=6e4;function qU(){return an()}function JU(e){return new Promise(t=>{let n=!1,r=e=>{n||(n=!0,clearTimeout(i),t(e))},i=setTimeout(()=>r({cancelled:!0}),KU);rn(`usb-device`,e??[],void 0,{timeoutMs:KU}).then(e=>{let t=e;t.cancelled?r({cancelled:!0}):typeof t.error==`string`?r({error:t.error}):t.granted&&t.info?r({granted:!0,info:t.info}):r({error:`usb picker returned an unexpected response`})}).catch(e=>{r({error:e instanceof Error?e.message:`Failed to open USB picker`})})})}function YU(e){let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}var XU=class{registry;constructor(e){this.registry=e}usb(){let e=CU();if(!e)throw Error(`WebUSB is unavailable in this browser`);return e}list(){return NU(this.registry,this.usb())}async request(e){if(qU()){let t=await JU(e);if(`cancelled`in t)throw Error(`user cancelled the USB picker`);if(`error`in t)throw Error(t.error);let n=await this.reacquire(t.info);if(!n)throw Error(`granted device could not be re-acquired`);return kU(this.registry.register(n),n)}return PU(this.registry,this.usb(),e)}async reacquire(e){return(await this.usb().getDevices()).find(t=>t.vendorId===e.vendorId&&t.productId===e.productId&&(!e.serialNumber||t.serialNumber===e.serialNumber))??null}info(e){return Promise.resolve(FU(this.registry,e))}open(e){return IU(this.registry,e)}close(e){return LU(this.registry,e)}selectConfig(e,t){return RU(this.registry,e,t)}claim(e,t){return zU(this.registry,e,t)}release(e,t){return BU(this.registry,e,t)}async controlIn(e,t,n){let r=await VU(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}controlOut(e,t,n){return HU(this.registry,e,t,YU(n))}async transferIn(e,t,n){let r=await UU(this.registry,e,t,n);return{status:r.status,bytes:new Uint8Array(r.bytes)}}transferOut(e,t,n){return WU(this.registry,e,t,YU(n))}reset(e){return GU(this.registry,e)}},ZU=class e{rpc;constructor(e){this.rpc=e}static REQUEST_TIMEOUT_MS=3e5;async list(){return(await this.rpc.call(`usb-list`,void 0)).devices}async request(t){return(await this.rpc.call(`usb-request`,{filters:t},{timeoutMs:e.REQUEST_TIMEOUT_MS})).device}async info(e){return(await this.rpc.call(`usb-device-info`,{handle:e})).device}async open(e){await this.rpc.call(`usb-open`,{handle:e})}async close(e){await this.rpc.call(`usb-close`,{handle:e})}async selectConfig(e,t){await this.rpc.call(`usb-select-configuration`,{handle:e,configurationValue:t})}async claim(e,t){await this.rpc.call(`usb-claim-interface`,{handle:e,interfaceNumber:t})}async release(e,t){await this.rpc.call(`usb-release-interface`,{handle:e,interfaceNumber:t})}async controlIn(e,t,n){let r=await this.rpc.call(`usb-control-transfer-in`,{handle:e,setup:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async controlOut(e,t,n){return this.rpc.call(`usb-control-transfer-out`,{handle:e,setup:t,bytes:YU(n)})}async transferIn(e,t,n){let r=await this.rpc.call(`usb-transfer-in`,{handle:e,endpointNumber:t,length:n});return{status:r.status,bytes:new Uint8Array(r.bytes)}}async transferOut(e,t,n){return this.rpc.call(`usb-transfer-out`,{handle:e,endpointNumber:t,bytes:YU(n)})}async reset(e){await this.rpc.call(`usb-reset`,{handle:e})}};function QU(e,t){return e&&CU()?new XU(DU()):t?new ZU(t):null}function $U(e,t,n,r={}){let{header:i,window:a}=uV(t),o=new Map,s=!1,c=r.dispatch??(e=>WB(e)?qB(e):LB(e));function l(e){let t=o.get(e);t&&(clearTimeout(t.timer),o.delete(e))}function u(e,t,n){let r=Math.min(a.byteLength,t.payload.byteLength-n);r>0&&a.set(t.payload.subarray(n,n+r)),Atomics.store(i,2,t.status),Atomics.store(i,3,t.payload.byteLength),Atomics.store(i,4,r),Atomics.store(i,5,n),Atomics.store(i,1,e),Atomics.store(i,0,2),Atomics.notify(i,0),n+r>=t.payload.byteLength&&l(e)}function d(e,t){if(s)return;let{status:n,payload:r}=cV(t);l(e);let i={status:n,payload:r,timer:setTimeout(()=>l(e),605e3)};o.set(e,i),u(e,i,0)}let f=e=>{let t=e.data;if(!t||typeof t.id!=`number`)return;if(t.type===`sync-sab-next`){let e=o.get(t.id),n=t.offset;if(!e||typeof n!=`number`||!Number.isInteger(n)||n<0||n>e.payload.byteLength){d(t.id,{ok:!1,errno:`EIO`,message:`sync-sab: bad continuation`});return}u(t.id,e,n);return}if(t.type!==`sync-sab-req`||!t.req||typeof t.req!=`object`)return;let r=t.id,i={...t.req,token:n},a;try{a=c(i)}catch(e){d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)});return}a.then(e=>d(r,e),e=>d(r,{ok:!1,errno:`EIO`,message:e instanceof Error?e.message:String(e)}))};return e.addEventListener(`message`,f),{dispose:()=>{if(!s){s=!0,e.removeEventListener(`message`,f);for(let e of[...o.keys()])l(e)}}}}const eW=r(`realm-host`);function tW(e,t,n={}){let r=new Map,i=n.syncFsBridgeEnabled?MB({fs:t.fs,...t.exec?{exec:t.exec}:{},cwd:t.cwd}):void 0,a=!1,o={subscriptions:r,pushEvent:(t,n=[])=>{if(!a)try{e.postMessage(t,n)}catch{}}},s=new Map,c={spawns:s,opts:n},l=r=>{if(r.data?.type!==`realm-rpc-req`)return;let i=r.data;nW(e,i,t,n,o,c)};e.addEventListener(`message`,l);let u=i&&n.syncSab?$U(e,n.syncSab,i):void 0;return e.start?.(),{syncFsToken:i,dispose:()=>{if(!a){a=!0,u?.dispose(),i&&FB(i),e.removeEventListener(`message`,l);for(let{controller:e}of s.values())try{e.signal.aborted||e.abort()}catch{}s.clear();for(let e of r.values())try{Promise.resolve(e()).catch(()=>{})}catch{}r.clear()}}}}async function nW(e,t,n,r,i,a){try{let o=await rW(t,n,r,i,a),s={type:`realm-rpc-res`,id:t.id,result:o},c=KW(o);e.postMessage(s,c)}catch(n){let r=n instanceof Error?n.message:String(n),i={type:`realm-rpc-res`,id:t.id,error:r};e.postMessage(i)}}async function rW(e,t,n,r,i){switch(e.channel){case`vfs`:return lW(e.op,e.args,t);case`exec`:return SW(e.op,e.args,t,i);case`fetch`:return EW(e.op,e.args,t);case`browser`:return AW(e.op,e.args,iW(n),n);case`usb`:return UW(e.op,e.args,oW(n));case`serial`:return WW(e.op,e.args,sW(n));case`hid`:return GW(e.op,e.args,cW(n),r);case`module`:return OW(e.op,e.args,t);case`wasm`:return kW(e.op,e.args,t);default:throw Error(`realm-host: unknown channel '${e.channel}'`)}}function iW(e){if(e.browser)return e.browser;let t=globalThis;if(t.__slicc_browser)return t.__slicc_browser;throw Error(`browser is not available in this runtime`)}function aW(e){if(e.wsSubscribers)return e.wsSubscribers;let t=globalThis;if(t.__slicc_wsSubscribers)return t.__slicc_wsSubscribers;throw Error(`browser.websocket is not available in this runtime`)}function oW(e){if(e.usbBackend)return e.usbBackend;let t=QU(a(),i());if(!t)throw Error(`usb is not available in this runtime`);return t}function sW(e){if(e.serialBackend)return e.serialBackend;let t=SU(a(),i());if(!t)throw Error(`serial is not available in this runtime`);return t}function cW(e){if(e.hidBackend)return e.hidBackend;let t=RH(a(),i());if(!t)throw Error(`hid is not available in this runtime`);return t}async function lW(e,t,n){let r=typeof t[0]==`string`?t[0]:null,i=r===null?null:n.fs.resolvePath(n.cwd,r);switch(e){case`readFile`:return n.fs.readFile(i);case`readFileBinary`:return n.fs.readFileBuffer(i);case`writeFile`:return await n.fs.writeFile(i,t[1]),!0;case`writeFileBinary`:return await n.fs.writeFile(i,t[1]),!0;case`readDir`:return n.fs.readdir(i);case`exists`:return n.fs.exists(i);case`stat`:{let e=await n.fs.stat(i);return{isDirectory:e.isDirectory,isFile:e.isFile,size:e.size}}case`mkdir`:return await n.fs.mkdir(i,{recursive:!0}),!0;case`rm`:return await n.fs.rm(i,{recursive:!0}),!0;case`rename`:{let e=n.fs.resolvePath(n.cwd,t[1]),r=n.fs;if(r.rename)await r.rename(i,e);else{let t=await n.fs.readFileBuffer(i);await n.fs.writeFile(e,t),await n.fs.rm(i,{recursive:!0})}return!0}case`resolvePath`:return n.fs.resolvePath(n.cwd,t[0]);case`invalidatePaths`:{let e=t[0],r=n.fs;return r.invalidatePaths&&r.invalidatePaths(e),!0}case`snapshot`:return vW(n,typeof t[0]==`string`?t[0]:n.cwd);case`flushWrites`:{let e=t[0];return await yW(n,e),!0}default:throw Error(`realm-host: unknown vfs op '${e}'`)}}const uW=10485760;function dW(e){return e.fileCount>=500||e.totalBytes>=uW}function fW(e){return e.entries.length>=2e4}async function pW(e,t,n,r){r.entries.push({path:t,content:new Uint8Array,isDirectory:!0});let i;try{i=await e.fs.readdir(t)}catch{return}for(let e of i)e!==`node_modules`&&n.push(t===`/`?`/${e}`:`${t}/${e}`)}async function mW(e,t,n,r){let i=``;try{i=await e.fs.readlink(t)}catch{return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,isSymbolicLink:!0,symlinkTarget:i,size:n})}async function hW(e,t,n,r,i){if(n>1048576||dW(r)||r.totalBytes+n>uW){r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:n});return}let a;try{a=await e.fs.readFileBuffer(t)}catch{await gW(e,t,i,r);return}r.entries.push({path:t,content:a,isDirectory:!1}),r.fileCount+=1,r.totalBytes+=a.byteLength}async function gW(e,t,n,r){let i;try{i=await e.fs.stat(t)}catch{return}if(i.isDirectory){await pW(e,t,n,r);return}r.entries.push({path:t,content:new Uint8Array,isDirectory:!1,truncated:!0,size:i.size})}async function _W(e,t,n){if(fW(n))return;let r=[t];for(;r.length>0;){if(fW(n))return;let t=r.pop(),i;try{i=await e.fs.lstat(t)}catch{}if(i?.isSymbolicLink){await mW(e,t,i.size,n);continue}let a;try{a=await e.fs.stat(t)}catch{continue}a.isDirectory?await pW(e,t,r,n):a.isFile&&await hW(e,t,a.size,n,r)}}async function vW(e,t){let n={entries:[],totalBytes:0,fileCount:0};return await _W(e,t,n),t!==`/tmp`&&await _W(e,`/tmp`,n),{entries:n.entries}}async function yW(e,t){let n=[],r=async(e,t)=>{try{await t()}catch(t){n.push(`${e}: ${t instanceof Error?t.message:String(t)}`)}};for(let n of t.deleted)await r(n,()=>e.fs.rm(n,{recursive:!0}));for(let n of t.created)n.isSymbolicLink?await r(n.path,()=>e.fs.symlink(n.symlinkTarget??``,n.path)):n.isDirectory?await r(n.path,()=>e.fs.mkdir(n.path,{recursive:!0})):await r(n.path,()=>e.fs.writeFile(n.path,n.content));for(let n of t.modified)await r(n.path,()=>e.fs.writeFile(n.path,n.content));if(n.length>0)throw Error(`sync-fs flush failed for ${n.length} path(s): ${n.join(`; `)}`)}const bW=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`,`SIGSTOP`,`SIGCONT`]),xW=new Set([`SIGINT`,`SIGTERM`,`SIGKILL`]);async function SW(e,t,n,r){if(!n.exec)throw Error(`exec is not available in this runtime`);if(e===`run`){let e=t[0],r=await n.exec(e,{cwd:n.cwd});return{stdout:r.stdout,stderr:r.stderr,exitCode:r.exitCode}}if(e===`spawn`){let e=t[0];if(!Array.isArray(e)||e.length===0||!e.every(e=>typeof e==`string`))throw Error(`exec.spawn: argv must be a non-empty string[]`);let[r,...i]=e,a=await n.exec(r,{cwd:n.cwd,args:i});return{stdout:a.stdout,stderr:a.stderr,exitCode:a.exitCode}}if(e===`start`)return wW(t,n,r);if(e===`kill`)return TW(t,r);throw Error(`realm-host: unknown exec op '${e}'`)}function CW(e){if(e.stdin!==void 0&&typeof e.stdin!=`string`)throw Error(`exec.start: stdin must be a string`);if(e.stdinKind!==void 0&&e.stdinKind!==`text`&&e.stdinKind!==`bytes`)throw Error(`exec.start: stdinKind must be 'text' or 'bytes'`);if(e.args!==void 0&&(!Array.isArray(e.args)||!e.args.every(e=>typeof e==`string`)))throw Error(`exec.start: args must be a string[]`)}async function wW(e,t,n){let[r,i,a]=e;if(typeof r!=`number`)throw Error(`exec.start: spawnId must be a number`);if(n.spawns.has(r))throw Error(`exec.start: spawnId ${r} is already in use`);let o,s,c;if(Array.isArray(i)){if(i.length===0||!i.every(e=>typeof e==`string`))throw Error(`exec.start: argv must be a non-empty string[]`);[o,...s]=i,c=i.slice()}else if(typeof i==`string`)o=i,c=[i];else throw Error(`exec.start: command must be a string or a non-empty string[]`);let l=a??{};CW(l);let u=new AbortController,{pm:d,owner:f}=n.opts,p=0;d&&f&&(p=d.spawn({kind:`shell`,argv:c,cwd:t.cwd,owner:f,...n.opts.ppid===void 0?{}:{ppid:n.opts.ppid},adoptAbort:u}).pid),n.spawns.set(r,{controller:u,pid:p});let m;try{let e={cwd:t.cwd,signal:u.signal};return l.stdin!==void 0&&(e.stdin=l.stdin),l.stdinKind!==void 0&&(e.stdinKind=l.stdinKind),s===void 0?l.args!==void 0&&(e.args=l.args):e.args=s,m=await t.exec(o,e),{stdout:m.stdout,stderr:m.stderr,exitCode:m.exitCode}}finally{if(n.spawns.delete(r),d&&p){let e=d.get(p);d.exit(p,e?.terminatedBy?null:m?.exitCode??1)}}}function TW(e,t){let[n,r]=e,i=t.spawns.get(n);if(!i)return!1;let a=typeof r==`string`&&bW.has(r)?r:`SIGTERM`;xW.has(a)&&!i.controller.signal.aborted&&i.controller.abort();let{pm:o}=t.opts;return o&&i.pid?o.signal(i.pid,a):!0}async function EW(e,t,n){if(e!==`request`)throw Error(`realm-host: unknown fetch op '${e}'`);let[r,i]=t,a=await(n.fetch?zH(n.fetch):globalThis.fetch.bind(globalThis))(r,i),o={};a.headers.forEach((e,t)=>{o[t]=e});let s=new Uint8Array(await a.arrayBuffer());return{status:a.status,statusText:a.statusText,headers:o,body:s,url:a.url}}function DW(e){let t=t=>e.fs.resolvePath(e.cwd,t);return{exists:n=>e.fs.exists(t(n)),isDirectory:async n=>{try{return(await e.fs.stat(t(n))).isDirectory}catch{return!1}},readFile:async n=>{let r=await e.fs.readFile(t(n));return typeof r==`string`?r:new TextDecoder().decode(r)}}}async function OW(e,t,n){if(e!==`buildGraph`)throw Error(`realm-host: unknown module op '${e}'`);let r=typeof t[0]==`string`?t[0]:``,i=typeof t[1]==`string`&&t[1]?t[1]:n.cwd,a=typeof t[2]==`string`?t[2]:``,o=DW(n),s={reader:o,readBytes:e=>n.fs.readFileBuffer(e),fromDir:i};return uH({entryCode:r,fromDir:i,entryFilename:a,reader:o,transpile:JV({ipk:s}),transpileEntry:YV({ipk:s})})}async function kW(e,t,n){if(e!==`compile`)throw Error(`realm-host: unknown wasm op '${e}'`);let r=typeof t[0]==`string`?t[0]:null;if(r===null)throw Error(`realm-host: wasm.compile requires a path argument`);let i=n.fs.resolvePath(n.cwd,r);return hi(e=>n.fs.readFileBuffer(e),i)}async function AW(e,t,n,r){switch(e){case`findTab`:return NW(n,t[0]??{});case`ensureTab`:{let e=t[0];return PW(n,e,t[1]??{})}case`eval`:{let e=t[0],r=t[1];return FW(n,e,r,!1)}case`evalAsync`:{let e=t[0],r=t[1];return FW(n,e,r,!0)}case`cookie`:{let e=t[0],r=t[1];return zW(n,e,r)}case`localStorage`:{let e=t[0],r=t[1];return BW(n,e,r)}case`wsObserve`:{let e={...t[0],scoopJid:r.scoopJid};return await aW(r).observe(e)}case`wsUpdate`:{let e=t[0],n=t[1]??{};return aW(r).update(e,n)}case`wsClose`:{let e=t[0];return aW(r).close(e)}case`wsList`:return aW(r).list();case`createTab`:{let e=t[0];return n.createPage(e)}case`closeTab`:{let e=t[0];return n.closePage(e)}case`setViewport`:{let e=t[0],r=t[1],i=t[2];return n.withTab(e,async()=>{await n.sendCDP(`Emulation.setDeviceMetricsOverride`,{width:r,height:i,deviceScaleFactor:1,mobile:!1})})}case`navigateTab`:{let e=t[0],r=t[1];return n.withTab(e,async()=>{await n.navigate(r)})}case`screenshotTab`:{let e=t[0],r=t[1];return n.withTab(e,async()=>(await n.bringToFront(),n.screenshot(r)))}case`waitForLoadState`:{let e=t[0],r=t[1];return RW(n,e,r)}default:throw Error(`realm-host: unknown browser op '${e}'`)}}function jW(){try{let e=globalThis.localStorage;return e?!!(e.getItem(`slicc.trayWorkerBaseUrl`)||e.getItem(`slicc.trayJoinUrl`)):!1}catch{return!1}}async function MW(e){if(typeof e.listAllTargets!=`function`)return(await e.listPages()).map(e=>({targetId:e.targetId,url:e.url,title:e.title}));let t=(await e.listAllTargets()).map(e=>({targetId:e.targetId,url:e.url,title:e.title})),n=jW()?i():null;if(n)try{let{targets:e}=await n.call(`list-remote-targets`,void 0,{timeoutMs:3e3}),r=new Set(t.map(e=>e.targetId));for(let n of e)r.has(n.targetId)||(r.add(n.targetId),t.push({targetId:n.targetId,url:n.url,title:n.title}))}catch(e){eW.debug(`panel-rpc list-remote-targets failed`,{err:String(e)})}return t}async function NW(e,t){let n=await MW(e);if(t.domain){let e=t.domain.toLowerCase();for(let t of n){let n=VW(t.url);if(n&&n.toLowerCase()===e)return t}return null}if(t.urlMatch){let e;try{e=new RegExp(t.urlMatch)}catch(e){throw Error(`browser.findTab: invalid urlMatch regex: ${e instanceof Error?e.message:String(e)}`)}for(let t of n)if(e.test(t.url))return t;return null}throw Error("browser.findTab: query requires `domain` or `urlMatch`")}async function PW(e,t,n){let r=await MW(e);if(n.matchUrl){let e;try{e=new RegExp(n.matchUrl)}catch(e){throw Error(`browser.ensureTab: invalid matchUrl regex: ${e instanceof Error?e.message:String(e)}`)}let t=r.find(t=>e.test(t.url));if(t)return t}else{let e=HW(t);if(e){let t=r.find(t=>HW(t.url)===e);if(t)return t}}return{targetId:await e.createPage(t),url:t,title:``}}async function FW(e,t,n,r){return e.withTab(t,async()=>IW(await e.evaluate(n,{awaitPromise:r,returnByValue:!0})))}function IW(e){if(typeof e!=`string`)return e;let t=LW(e);if(t===void 0)return e;if(typeof t==`object`&&t)return t;if(typeof t==`string`){let e=t.trim();if(e.length>0&&(e[0]===`{`||e[0]===`[`)){let e=LW(t);if(typeof e==`object`&&e)return e}return t}return e}function LW(e){let t=e.trim();if(t.length===0)return;let n=t[0];if(n===`{`||n===`[`||n===`"`||n===`-`||n>=`0`&&n<=`9`||t===`true`||t===`false`||t===`null`)try{return JSON.parse(t)}catch{return}}async function RW(e,t,n){if(n===`networkidle`)return e.withTab(t,async()=>{for(let t=0;t<20;t++)if(await new Promise(e=>setTimeout(e,250)),await e.evaluate(`(function(){
5424
5424
  try {
5425
5425
  var entries = performance.getEntriesByType('resource');
@@ -5436,7 +5436,7 @@ except BaseException:
5436
5436
  })()`,{returnByValue:!0}))return})}async function zW(e,t,n){return e.withTab(t,async()=>{let t=((await e.sendCDP(`Network.getCookies`)).cookies??[]).find(e=>e.name===n);return t&&typeof t.value==`string`?t.value:null})}async function BW(e,t,n){return e.withTab(t,async()=>{let t=await e.evaluate(`(function(){try{var v=window.localStorage.getItem(${JSON.stringify(n)});return v===null?null:String(v);}catch(e){return null;}})()`,{returnByValue:!0});return t==null?null:typeof t==`string`?t:String(t)})}function VW(e){try{return new URL(e).hostname}catch{return null}}function HW(e){try{return new URL(e).origin}catch{return null}}async function UW(e,t,n){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0]);case`reset`:return n.reset(t[0]);case`selectConfig`:return n.selectConfig(t[0],t[1]);case`claim`:return n.claim(t[0],t[1]);case`release`:return n.release(t[0],t[1]);case`controlIn`:return n.controlIn(t[0],t[1],t[2]);case`controlOut`:return n.controlOut(t[0],t[1],t[2]);case`transferIn`:return n.transferIn(t[0],t[1],t[2]);case`transferOut`:return n.transferOut(t[0],t[1],t[2]);default:throw Error(`realm-host: unknown usb op '${e}'`)}}async function WW(e,t,n){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0],t[1]);case`close`:return n.close(t[0]);case`read`:{let e=t[1]??{};return n.read(t[0],e)}case`write`:return n.write(t[0],t[1]);case`getSignals`:return n.getSignals(t[0]);case`setSignals`:return n.setSignals(t[0],t[1]);default:throw Error(`realm-host: unknown serial op '${e}'`)}}async function GW(e,t,n,r){switch(e){case`list`:return n.list();case`request`:return n.request(t[0]??[]);case`info`:return n.info(t[0]);case`open`:return n.open(t[0]);case`close`:return n.close(t[0]);case`sendReport`:return n.sendReport(t[0],t[1],t[2]);case`sendFeatureReport`:return n.sendFeatureReport(t[0],t[1],t[2]);case`receiveFeatureReport`:return n.receiveFeatureReport(t[0],t[1]);case`subscribeInputReports`:{let e=t[0];if(r.subscriptions.has(e))return!0;let i=await n.subscribeInputReports(e,t=>{let n=t.bytes instanceof Uint8Array?t.bytes:new Uint8Array(t.bytes),i={type:`realm-event`,channel:`hid-input-report`,payload:{handle:e,reportId:t.reportId,bytes:n}};r.pushEvent(i,[n.buffer])});return r.subscriptions.set(e,i),!0}case`unsubscribeInputReports`:{let e=t[0],n=r.subscriptions.get(e);return!n||(r.subscriptions.delete(e),await n(),!0)}default:throw Error(`realm-host: unknown hid op '${e}'`)}}function KW(e){if(e instanceof Uint8Array)return[e.buffer];if(e&&typeof e==`object`){let t=e;if(t.body instanceof Uint8Array)return[t.body.buffer];if(t.bytes instanceof Uint8Array)return[t.bytes.buffer]}return[]}async function qW(e){let t=e.procKind??`jsh`,n=e.pm.spawn({kind:t,argv:e.argv,cwd:e.cwd,env:e.env,owner:e.owner,ppid:e.ppid}),r;try{r=await e.realmFactory({kind:e.kind,ctx:e.ctx})}catch(t){let r=t instanceof Error?t.message:String(t);return e.pm.exit(n.pid,1),{stdout:``,stderr:`realm-runner: ${r}\n`,exitCode:1}}let i=r.isolatedThread?JW(e.syncSabBytes):void 0,a=tW(r.controlPort,e.ctx,{...e.owner.scoopJid===void 0?{}:{scoopJid:e.owner.scoopJid},pm:e.pm,owner:e.owner,ppid:n.pid,syncFsBridgeEnabled:!!e.syncFsBridgeEnabled||i!==void 0,...i?{syncSab:i}:{}});return new Promise(t=>{let o=!1,s=null,c=null,l=null,u=null,d=()=>{c&&r.controlPort.removeEventListener(`message`,c),r.removeEventListener&&(l&&r.removeEventListener(`error`,l),u&&r.removeEventListener(`messageerror`,u)),s?.(),a.dispose()},f=(i,a)=>{if(!o){o=!0,d();try{r.terminate()}catch{}e.pm.exit(n.pid,a),t(i)}};c=e=>{let t=e.data;if(t?.type===`realm-done`){let t=e.data;f({stdout:t.stdout,stderr:t.stderr,exitCode:t.exitCode},t.exitCode)}else if(t?.type===`realm-error`){let t=e.data;f({stdout:``,stderr:t.message+`
5437
5437
  `,exitCode:1},1)}},l=e=>{let t=e.message??`realm error`;f({stdout:``,stderr:t+`
5438
5438
  `,exitCode:1},1)},u=()=>{f({stdout:``,stderr:`realm-runner: worker message could not be deserialized
5439
- `,exitCode:1},1)},s=e.pm.onSignal((e,t)=>{e.pid===n.pid&&(t===`SIGKILL`?f({stdout:``,stderr:``,exitCode:137},137):t===`SIGINT`?f({stdout:``,stderr:``,exitCode:130},130):t===`SIGTERM`&&f({stdout:``,stderr:``,exitCode:143},143))}),r.controlPort.addEventListener(`message`,c),r.addEventListener&&(r.addEventListener(`error`,l),r.addEventListener(`messageerror`,u));let p={type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideAssetRoot:e.pyodideAssetRoot,pyodideMountDirs:e.pyodideMountDirs,opfsMountDbName:e.opfsMountDbName,mountPoints:e.mountPoints,...a.syncFsToken===void 0?{}:{syncFsToken:a.syncFsToken},...i?{syncSab:i}:{}};r.controlPort.postMessage(p)})}function JW(e){if(dV())try{return new SharedArrayBuffer(64+(e??1048576))}catch{return}}let YW=!1;function XW(e){YW=e}function ZW(){return YW}const QW=new TextDecoder(`utf-8`,{fatal:!1});new TextEncoder;function $W(e){let t=e;if(t.length===0)return``;let n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e)&255;return QW.decode(n)}function eG(e){return e}const tG=Object.freeze({anthropic:`ANTHROPIC_API_KEY`,"ant-ling":`ANT_LING_API_KEY`,"qwen-token-plan":`QWEN_TOKEN_PLAN_API_KEY`,"qwen-token-plan-cn":`QWEN_TOKEN_PLAN_CN_API_KEY`,"qwen-token-plan-individual":`QWEN_TOKEN_PLAN_API_KEY`,openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,nvidia:`NVIDIA_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,radius:`RADIUS_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,"zai-coding-cn":`ZAI_CODING_CN_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,together:`TOGETHER_API_KEY`,baseten:`BASETEN_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`});function nG(e){return tG[e]??null}function rG(e,t){let n=nG(e);if(!n)return{};let r=t.find(t=>t.providerId===e)?.apiKey?.trim();return r?{[n]:r}:{}}let iG=null;function aG(e){let t=iG;return iG=e,t}async function oG(){if(!iG)return{};try{return await iG()??{}}catch{return{}}}function sG(){return async()=>{let{getAccounts:e,getSelectedProvider:t}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r);return rG(t(),e())}}async function cG(e,t,n,r,i={}){return await n.fs.exists(e)?lG(await n.fs.readFile(e),[`node`,e,...t],n,r,{...i,filename:e}):{stdout:``,stderr:`jsh: cannot find script '${e}'\n`,exitCode:127}}async function lG(e,t,n,r,i={}){let a=i.realmFactory??uG(),o=r?.processManager??pG()??fG(),s=r?.owner??{kind:`system`},c=i.filename??t[1]??`<eval>`;return await qW({pm:o,realmFactory:a,owner:s,kind:`js`,code:e,argv:t,env:{...s.kind===`scoop`?{}:await oG(),...Object.fromEntries(n.env.entries())},cwd:n.cwd,filename:c,stdin:eG(n.stdin),ctx:n,ppid:r?.getParentPid?.(),syncFsBridgeEnabled:ZW()})}function uG(){return typeof Worker<`u`||typeof document<`u`?PV():AV()}let dG=null;function fG(){return dG||=new Br,dG}function pG(){let e=globalThis.__slicc_pm;return e&&typeof e==`object`&&typeof e.spawn==`function`&&typeof e.onSignal==`function`?e:null}function mG(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e[r];if(i===`"`){for(r++;r<e.length&&e[r]!==`"`;)n+=e[r],r++;r++}else if(i===`'`){for(r++;r<e.length&&e[r]!==`'`;)n+=e[r],r++;r++}else i===`\\`&&r+1<e.length&&e[r+1]===` `?(n+=` `,r+=2):/\s/.test(i)?(n.length>0&&(t.push(n),n=``),r++):(n+=i,r++)}return n.length>0&&t.push(n),t}var hG=class{aggregator=null;now;explicitSink;scrubLabel;ids=new Map;seq=0;constructor(e={}){this.now=e.now??Date.now,this.explicitSink=e.sink,this.scrubLabel=e.scrubLabel}allocateId(e=`p`){return this.seq+=1,`${e}-${this.seq}`}hasSink(){return this.resolveSink()!==null}setAggregator(e){this.aggregator=e}emit(e){let t=this.aggregator;if(t&&e.id!==t.id)return t.onChild(e),!0;let n=this.resolveSink();if(!n)return e.phase===`end`&&this.ids.delete(e.id),!1;let r=this.ids.get(e.id);if(e.phase===`update`){if(!r)return!1;let t=this.now();return t-r.lastUpdateAt<250?!1:(r.lastUpdateAt=t,this.deliver(r,n,e),!0)}if(e.phase===`start`){let t={lastUpdateAt:-1/0,rawLabel:e.label,label:this.scrubbed(e.label),tail:Promise.resolve()};return this.ids.set(e.id,t),this.deliver(t,n,e),!0}return r?(this.ids.delete(e.id),this.deliver(r,n,e),!0):!1}resolveSink(){if(this.explicitSink)return this.explicitSink;let e=Yt();if(!e)return null;let t=e.onUpdate;return e=>{t({content:[{type:`progress`,progress:e}]})}}scrubbed(e){return this.scrubLabel?gG(this.scrubLabel,e):e}deliver(e,t,n){n.label!==e.rawLabel&&(e.rawLabel=n.label,e.label=this.scrubbed(n.label));let{label:r}=e;if(typeof r==`string`){let e=_G(r);t(e===n.label?n:{...n,label:e});return}e.tail=e.tail.then(async()=>{let i=await r;e.label=i,t({...n,label:_G(i)})})}};async function gG(e,t){if(!t)return t;try{return await e(t)}catch{return`[label withheld: secret scrub unavailable]`}}function _G(e,t=80){return e.length>t?`${e.slice(0,t-1)}…`:e}function vG(e,t){return t.length?`${e} ${t.join(` `)}`:e}function yG(e){try{let t=new URL(e);return`↓ ${t.host}${t.pathname===`/`?``:t.pathname}`}catch{return`↓ ${e}`}}function bG(e,t=Date.now){let n=new Map,r=e=>n.get(e)?.[0];return{start(r,i){if(!e.hasSink())return;let a={id:e.allocateId(`net`),label:yG(r),startedAt:t()},o=n.get(r);o?o.push(a):n.set(r,[a]),e.emit({id:a.id,label:a.label,fraction:i===void 0?void 0:0,done:0,total:i,unit:`bytes`,phase:`start`})},chunk(n,i,a){let o=r(n);if(!o)return;let s,c;if(a!==void 0&&a>0){s=Math.min(1,i/a);let e=t()-o.startedAt;i>0&&(c=Math.max(0,e/i*(a-i)))}e.emit({id:o.id,label:o.label,fraction:s,etaMs:c,done:i,total:a,unit:`bytes`,phase:`update`})},end(t){let r=n.get(t),i=r?.shift();r&&r.length===0&&n.delete(t),i&&e.emit({id:i.id,label:i.label,fraction:1,etaMs:0,unit:`bytes`,phase:`end`})}}}const xG={timeout:e=>{let t=0;for(;t<e.length&&e[t].startsWith(`-`)&&e[t]!==`--`;)[`-k`,`--kill-after`,`-s`,`--signal`].includes(e[t])&&(t+=1),t+=1;return e[t]===`--`&&(t+=1),t+1},env:e=>{let t=0;for(;t<e.length&&(e[t].startsWith(`-`)||e[t].includes(`=`));)t+=1;return t},nohup:()=>0,nice:e=>{let t=0;for(;t<e.length&&e[t].startsWith(`-`);)t+=1;return t}},SG=new Set([`xargs`,`watch`,`parallel`,`bash`,`sh`,`eval`,`source`,`.`]);function CG(e){let t=``;for(let n of e.parts)switch(n.type){case`Literal`:case`SingleQuoted`:case`Escaped`:t+=n.value;break;case`DoubleQuoted`:for(let e of n.parts){if(e.type!==`Literal`&&e.type!==`Escaped`)return null;t+=e.value}break;default:return null}return t}function wG(e,t){switch(e.type){case`CommandSubstitution`:return FG(e.body,t);case`DoubleQuoted`:{let n=0;for(let r of e.parts){let e=wG(r,t);if(e===null)return null;n+=e}return n}case`ProcessSubstitution`:return null;default:return 0}}function TG(e,t){let n=0;for(let r of e.parts){let e=wG(r,t);if(e===null)return null;n+=e}return n}function EG(e,t){let n=0;for(let r of e.assignments){if(!r.value)continue;let e=TG(r.value,t);if(e===null)return null;n+=e}for(let r of e.args){let e=TG(r,t);if(e===null)return null;n+=e}if(!e.name)return n;let r=CG(e.name);if(r===null||SG.has(r))return null;if(!t.has(r))return n;n+=1;let i=xG[r];if(i){let r=e.args.map(CG);if(r.some(e=>e===null))return null;let a=r[i(r)];if(a===void 0)return n;if(SG.has(a))return null;t.has(a)&&(n+=1)}return n}function DG(e){let t=typeof e.start==`number`?e.start:Number(e.start),n=typeof e.end==`number`?e.end:Number(e.end);if(!Number.isFinite(t)||!Number.isFinite(n)){let t=String(e.start),n=String(e.end);return t.length!==1||n.length!==1?null:Math.abs(n.charCodeAt(0)-t.charCodeAt(0))+1}let r=Math.abs(e.step??1)||1;return Math.floor(Math.abs(n-t)/r)+1}function OG(e){if(e.parts.length!==1||e.parts[0].type!==`CommandSubstitution`)return null;let t=e.parts[0].body;if(t.statements.length!==1)return null;let n=t.statements[0];if(n.pipelines.length!==1||n.pipelines[0].commands.length!==1)return null;let r=n.pipelines[0].commands[0];if(r.type!==`SimpleCommand`||!r.name||CG(r.name)!==`seq`)return null;let i=r.args.map(e=>{let t=CG(e);return t===null?NaN:Number(t)});if(i.some(e=>!Number.isFinite(e)))return null;let a=1,o=1,s;if(i.length===1)[s]=i;else if(i.length===2)[a,s]=i;else if(i.length===3)[a,o,s]=i;else return null;if(o===0)return null;let c=Math.floor((s-a)/o)+1;return c>0?c:0}function kG(e){let t=0;for(let n of e){let e=n.type===`Word`?AG(n.word):DG(n);if(e===null)return null;t+=e}return t}function AG(e){let t=OG(e);if(t!==null)return t;let n=1;for(let t of e.parts)switch(t.type){case`Literal`:case`SingleQuoted`:case`Escaped`:break;case`DoubleQuoted`:if(t.parts.some(e=>e.type!==`Literal`&&e.type!==`Escaped`))return null;break;case`BraceExpansion`:{let e=kG(t.items);if(e===null)return null;n*=e;break}default:return null}return n}function jG(e){let t=0;for(let n of e){let e=AG(n);if(e===null)return null;t+=e}return t}function MG(e,t){let n=0;for(let r of e){let e=PG(r,t);if(e===null)return null;n+=e}return n}function NG(e,t){switch(e.type){case`SimpleCommand`:return EG(e,t);case`For`:{if(!e.words)return null;let n=jG(e.words),r=MG(e.body,t);return n===null||r===null?null:e.words.filter(e=>OG(e)!==null&&t.has(`seq`)).length+n*r}case`Subshell`:case`Group`:return MG(e.body,t);case`FunctionDef`:return 0;default:return null}}function PG(e,t){let n=0;for(let r of e.pipelines)for(let e of r.commands){let r=NG(e,t);if(r===null)return null;n+=r}return n}function FG(e,t){return MG(e.statements,t)}function IG(e,t){let n=FG(e,t);return{totalSteps:n!==null&&n>0?n:null}}function LG(e){return e.split(`
5439
+ `,exitCode:1},1)},s=e.pm.onSignal((e,t)=>{e.pid===n.pid&&(t===`SIGKILL`?f({stdout:``,stderr:``,exitCode:137},137):t===`SIGINT`?f({stdout:``,stderr:``,exitCode:130},130):t===`SIGTERM`&&f({stdout:``,stderr:``,exitCode:143},143))}),r.controlPort.addEventListener(`message`,c),r.addEventListener&&(r.addEventListener(`error`,l),r.addEventListener(`messageerror`,u));let p={type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideAssetRoot:e.pyodideAssetRoot,pyodideMountDirs:e.pyodideMountDirs,opfsMountDbName:e.opfsMountDbName,mountPoints:e.mountPoints,...a.syncFsToken===void 0?{}:{syncFsToken:a.syncFsToken},...i?{syncSab:i}:{}};r.controlPort.postMessage(p)})}function JW(e){if(dV())try{return new SharedArrayBuffer(64+(e??1048576))}catch{return}}let YW=!1;function XW(e){YW=e}function ZW(){return YW}const QW=new TextDecoder(`utf-8`,{fatal:!1});new TextEncoder;function $W(e){let t=e;if(t.length===0)return``;let n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e)&255;return QW.decode(n)}function eG(e){return e}const tG=Object.freeze({anthropic:`ANTHROPIC_API_KEY`,"ant-ling":`ANT_LING_API_KEY`,"qwen-token-plan":`QWEN_TOKEN_PLAN_API_KEY`,"qwen-token-plan-cn":`QWEN_TOKEN_PLAN_CN_API_KEY`,"qwen-token-plan-individual":`QWEN_TOKEN_PLAN_API_KEY`,openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,nvidia:`NVIDIA_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,radius:`RADIUS_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,"zai-coding-cn":`ZAI_CODING_CN_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,together:`TOGETHER_API_KEY`,baseten:`BASETEN_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`});function nG(e){return tG[e]??null}function rG(e,t){let n=nG(e);if(!n)return{};let r=t.find(t=>t.providerId===e)?.apiKey?.trim();return r?{[n]:r}:{}}let iG=null;function aG(e){let t=iG;return iG=e,t}async function oG(){if(!iG)return{};try{return await iG()??{}}catch{return{}}}function sG(){return async()=>{let{getAccounts:e,getSelectedProvider:t}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r);return rG(t(),e())}}async function cG(e,t,n,r,i={}){return await n.fs.exists(e)?lG(await n.fs.readFile(e),[`node`,e,...t],n,r,{...i,filename:e}):{stdout:``,stderr:`jsh: cannot find script '${e}'\n`,exitCode:127}}async function lG(e,t,n,r,i={}){let a=i.realmFactory??uG(),o=r?.processManager??pG()??fG(),s=r?.owner??{kind:`system`},c=i.filename??t[1]??`<eval>`;return await qW({pm:o,realmFactory:a,owner:s,kind:`js`,code:e,argv:t,env:{...s.kind===`scoop`?{}:await oG(),...Object.fromEntries(n.env.entries())},cwd:n.cwd,filename:c,stdin:eG(n.stdin),ctx:n,ppid:r?.getParentPid?.(),syncFsBridgeEnabled:ZW()})}function uG(){return typeof Worker<`u`||typeof document<`u`?PV():AV()}let dG=null;function fG(){return dG||=new Br,dG}function pG(){let e=globalThis.__slicc_pm;return e&&typeof e==`object`&&typeof e.spawn==`function`&&typeof e.onSignal==`function`?e:null}function mG(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e[r];if(i===`"`){for(r++;r<e.length&&e[r]!==`"`;)n+=e[r],r++;r++}else if(i===`'`){for(r++;r<e.length&&e[r]!==`'`;)n+=e[r],r++;r++}else i===`\\`&&r+1<e.length&&e[r+1]===` `?(n+=` `,r+=2):/\s/.test(i)?(n.length>0&&(t.push(n),n=``),r++):(n+=i,r++)}return n.length>0&&t.push(n),t}var hG=class{aggregator=null;now;explicitSink;scrubLabel;ids=new Map;seq=0;constructor(e={}){this.now=e.now??Date.now,this.explicitSink=e.sink,this.scrubLabel=e.scrubLabel}allocateId(e=`p`){return this.seq+=1,`${e}-${this.seq}`}hasSink(){return this.resolveSink()!==null}setAggregator(e){this.aggregator=e}emit(e){let t=this.aggregator;if(t&&e.id!==t.id)return t.onChild(e),!0;let n=this.resolveSink();if(!n)return e.phase===`end`&&this.ids.delete(e.id),!1;let r=this.ids.get(e.id);if(e.phase===`update`){if(!r)return!1;let t=this.now();return t-r.lastUpdateAt<250?!1:(r.lastUpdateAt=t,this.deliver(r,n,e),!0)}if(e.phase===`start`){let t={lastUpdateAt:-1/0,rawLabel:e.label,label:this.scrubbed(e.label),tail:Promise.resolve()};return this.ids.set(e.id,t),this.deliver(t,n,e),!0}return r?(this.ids.delete(e.id),this.deliver(r,n,e),!0):!1}resolveSink(){if(this.explicitSink)return this.explicitSink;let e=Yt();if(!e)return null;let t=e.onUpdate;return e=>{t({content:[{type:`progress`,progress:e}]})}}scrubbed(e){return this.scrubLabel?gG(this.scrubLabel,e):e}deliver(e,t,n){n.label!==e.rawLabel&&(e.rawLabel=n.label,e.label=this.scrubbed(n.label));let{label:r}=e;if(typeof r==`string`){let e=_G(r);t(e===n.label?n:{...n,label:e});return}e.tail=e.tail.then(async()=>{let i=await r;e.label=i,t({...n,label:_G(i)})})}};async function gG(e,t){if(!t)return t;try{return await e(t)}catch{return`[label withheld: secret scrub unavailable]`}}function _G(e,t=80){return e.length>t?`${e.slice(0,t-1)}…`:e}function vG(e,t){return t.length?`${e} ${t.join(` `)}`:e}function yG(e){try{let t=new URL(e);return`↓ ${t.host}${t.pathname===`/`?``:t.pathname}`}catch{return`↓ ${e}`}}function bG(e,t=Date.now){let n=new Map,r=e=>n.get(e)?.[0];return{start(r,i){if(!e.hasSink())return;let a={id:e.allocateId(`net`),label:yG(r),startedAt:t()},o=n.get(r);o?o.push(a):n.set(r,[a]),e.emit({id:a.id,label:a.label,fraction:i===void 0?void 0:0,done:0,total:i,unit:`bytes`,phase:`start`})},chunk(n,i,a){let o=r(n);if(!o)return;let s,c;if(a!==void 0&&a>0){s=Math.min(1,i/a);let e=t()-o.startedAt;i>0&&(c=Math.max(0,e/i*(a-i)))}e.emit({id:o.id,label:o.label,fraction:s,etaMs:c,done:i,total:a,unit:`bytes`,phase:`update`})},end(t){let r=n.get(t),i=r?.shift();r&&r.length===0&&n.delete(t),i&&e.emit({id:i.id,label:i.label,fraction:1,etaMs:0,unit:`bytes`,phase:`end`})}}}const xG={timeout:e=>{let t=0;for(;t<e.length&&e[t].startsWith(`-`)&&e[t]!==`--`;)[`-k`,`--kill-after`,`-s`,`--signal`].includes(e[t])&&(t+=1),t+=1;return e[t]===`--`&&(t+=1),t+1},env:e=>{let t=0;for(;t<e.length&&(e[t].startsWith(`-`)||e[t].includes(`=`));)t+=1;return t},nohup:()=>0,nice:e=>{let t=0;for(;t<e.length&&e[t].startsWith(`-`);)t+=1;return t}},SG=new Set([`xargs`,`watch`,`parallel`,`bash`,`sh`,`eval`,`source`,`.`]);function CG(e){let t=``;for(let n of e.parts)switch(n.type){case`Literal`:case`SingleQuoted`:case`Escaped`:t+=n.value;break;case`DoubleQuoted`:for(let e of n.parts){if(e.type!==`Literal`&&e.type!==`Escaped`)return null;t+=e.value}break;default:return null}return t}function wG(e,t){switch(e.type){case`CommandSubstitution`:return FG(e.body,t);case`DoubleQuoted`:{let n=0;for(let r of e.parts){let e=wG(r,t);if(e===null)return null;n+=e}return n}case`ProcessSubstitution`:return null;default:return 0}}function TG(e,t){let n=0;for(let r of e.parts){let e=wG(r,t);if(e===null)return null;n+=e}return n}function EG(e,t){let n=0;for(let r of e.assignments){if(!r.value)continue;let e=TG(r.value,t);if(e===null)return null;n+=e}for(let r of e.args){let e=TG(r,t);if(e===null)return null;n+=e}if(!e.name)return n;let r=CG(e.name);if(r===null||SG.has(r))return null;if(!t.has(r))return n;n+=1;let i=xG[r];if(i){let r=e.args.map(CG);if(r.some(e=>e===null))return null;let a=r[i(r)];if(a===void 0)return n;if(SG.has(a))return null;t.has(a)&&(n+=1)}return n}function DG(e){let t=typeof e.start==`number`?e.start:Number(e.start),n=typeof e.end==`number`?e.end:Number(e.end);if(!Number.isFinite(t)||!Number.isFinite(n)){let t=String(e.start),n=String(e.end);return t.length!==1||n.length!==1?null:Math.abs(n.charCodeAt(0)-t.charCodeAt(0))+1}let r=Math.abs(e.step??1)||1;return Math.floor(Math.abs(n-t)/r)+1}function OG(e){if(e.parts.length!==1||e.parts[0].type!==`CommandSubstitution`)return null;let t=e.parts[0].body;if(t.statements.length!==1)return null;let n=t.statements[0];if(n.pipelines.length!==1||n.pipelines[0].commands.length!==1)return null;let r=n.pipelines[0].commands[0];if(r.type!==`SimpleCommand`||!r.name||CG(r.name)!==`seq`)return null;let i=r.args.map(e=>{let t=CG(e);return t===null?NaN:Number(t)});if(i.some(e=>!Number.isFinite(e)))return null;let a=1,o=1,s;if(i.length===1)[s]=i;else if(i.length===2)[a,s]=i;else if(i.length===3)[a,o,s]=i;else return null;if(o===0)return null;let c=Math.floor((s-a)/o)+1;return c>0?c:0}function kG(e){let t=0;for(let n of e){let e=n.type===`Word`?AG(n.word):DG(n);if(e===null)return null;t+=e}return t}function AG(e){let t=OG(e);if(t!==null)return t;let n=1;for(let t of e.parts)switch(t.type){case`Literal`:case`SingleQuoted`:case`Escaped`:break;case`DoubleQuoted`:if(t.parts.some(e=>e.type!==`Literal`&&e.type!==`Escaped`))return null;break;case`BraceExpansion`:{let e=kG(t.items);if(e===null)return null;n*=e;break}default:return null}return n}function jG(e){let t=0;for(let n of e){let e=AG(n);if(e===null)return null;t+=e}return t}function MG(e,t){let n=0;for(let r of e){let e=PG(r,t);if(e===null)return null;n+=e}return n}function NG(e,t){switch(e.type){case`SimpleCommand`:return EG(e,t);case`For`:{if(!e.words)return null;let n=jG(e.words),r=MG(e.body,t);return n===null||r===null?null:e.words.filter(e=>OG(e)!==null&&t.has(`seq`)).length+n*r}case`Subshell`:case`Group`:return MG(e.body,t);case`FunctionDef`:return 0;default:return null}}function PG(e,t){let n=0;for(let r of e.pipelines)for(let e of r.commands){let r=NG(e,t);if(r===null)return null;n+=r}return n}function FG(e,t){return MG(e.statements,t)}function IG(e,t){let n=FG(e,t);return{totalSteps:n!==null&&n>0?n:null}}function LG(e){return e.split(`
5440
5440
  `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith(`#`))||`bash`}var RG=class{plan;emitter;label;now;id;steps=0;startedAt;finished=!1;children=new Map;constructor(e,t,n,r=Date.now){this.plan=e,this.emitter=t,this.label=n,this.now=r,this.id=t.allocateId(`script`),this.startedAt=r(),this.emitter.setAggregator(this),this.publish(`start`)}stepDone(){this.finished||(this.steps+=1,this.publish(`update`))}onChild(e){if(!this.finished){if(e.phase===`end`){this.children.delete(e.id);return}this.children.set(e.id,{fraction:e.fraction,label:e.label}),(e.fraction!==void 0||e.phase===`start`)&&this.publish(`update`)}}end(){this.finished||(this.finished=!0,this.emitter.setAggregator(null),this.emitter.emit({id:this.id,label:this.label,fraction:1,etaMs:0,done:this.steps,total:this.plan.totalSteps??void 0,unit:`iterations`,phase:`end`}))}fraction(){let e=[...this.children.values()].at(-1)?.fraction,t=this.plan.totalSteps;if(t===null)return e;let n=e??0;return Math.min(1,(this.steps+n)/t)}publish(e){let t=this.fraction(),n=this.now()-this.startedAt,r=t!==void 0&&t>0&&t<1?Math.max(0,n/t*(1-t)):t===1?0:void 0,i=[...this.children.values()].at(-1);this.emitter.emit({id:this.id,label:i?`${this.label} · ${i.label}`:this.label,fraction:t,etaMs:r,done:this.steps,total:this.plan.totalSteps??void 0,unit:`iterations`,phase:e})}};const zG=globalThis.setTimeout.bind(globalThis);function BG(e){let t=e/1e3;return`sleep ${Number.isInteger(t)?t:t.toFixed(1)}`}function VG(e,t={}){let n=t.now??Date.now,r=t.setTimeout??zG,i=t.isAborted??(()=>!1),a=t.label??BG,o=e=>new Promise(t=>r(t,e));return async t=>{let r=Math.max(0,t),s=e.allocateId(`sleep`),c=a(r),l=n();e.emit({id:s,label:c,fraction:0,etaMs:r,done:0,total:r,unit:`ms`,phase:`start`});try{let t=0;for(;t<r;){if(i())return;if(await o(Math.min(250,r-t)),t=n()-l,t<r){let n=Math.min(1,t/r);e.emit({id:s,label:c,fraction:n,etaMs:Math.max(0,r-t),done:Math.min(t,r),total:r,unit:`ms`,phase:`update`})}}}finally{e.emit({id:s,label:c,fraction:1,etaMs:0,done:r,total:r,unit:`ms`,phase:`end`})}}}const HG=globalThis.setTimeout.bind(globalThis);function UG(e){let t=/^(\d+(?:\.\d+)?|\.\d+)([smhd]?)$/.exec(e.trim());return t?Number(t[1])*({"":1e3,s:1e3,m:6e4,h:36e5,d:864e5}[t[2]]??1e3):null}function WG(e){let t=0;for(;t<e.length;){let n=e[t];if(n===`--`)return t+1<e.length?t+1:-1;if(!n.startsWith(`-`))return t;[`-k`,`--kill-after`,`-s`,`--signal`].includes(n)&&(t+=1),t+=1}return-1}function GG(e,t,n={}){let r=n.now??Date.now,i=n.setTimeout??HG;return{...e,async execute(n,a){let o=WG(n),s=o>=0?UG(n[o]):null;if(!t.hasSink()||s===null||s<=0)return e.execute(n,a);let c=t.allocateId(`timeout`),l=vG(e.name,n),u=r(),d=!0,f=()=>{if(!d)return;let e=r()-u,n=Math.min(1,e/s);t.emit({id:c,label:l,fraction:n,etaMs:Math.max(0,s-e),done:Math.min(e,s),total:s,unit:`ms`,phase:`update`}),e<s&&i(f,250)};t.emit({id:c,label:l,fraction:0,etaMs:s,done:0,total:s,unit:`ms`,phase:`start`}),i(f,250);try{return await e.execute(n,a)}finally{d=!1,t.emit({id:c,label:l,fraction:1,etaMs:0,done:s,total:s,unit:`ms`,phase:`end`})}}}}const KG=new Set(`sleep,echo,printf,true,false,test,[,cd,pwd,export,unset,set,shift,local,return,break,continue,exit,:,read,let,declare,typeset,readonly,eval,exec,source,.,alias,unalias,type,command,builtin,wait,trap,basename,dirname,seq,expr`.split(`,`));function qG(e,t,n={}){if((n.skip??KG).has(e.name))return e;let r=e.name;return{...e,async execute(n,i){if(!t.hasSink())return e.execute(n,i);let a=t.allocateId(`cmd`),o=vG(r,n);t.emit({id:a,label:o,phase:`start`});try{return await e.execute(n,i)}finally{t.emit({id:a,label:o,phase:`end`})}}}}function JG(e){return hr(`sudo`,e)}async function YG(e,t){let n=e.trim();if(!n||hee(xr(t.policy,n),t.defaultDisposition??`allow`)!==`require-approval`)return{allowed:!0};let r=await t.broker.requestApproval({kind:`command`,detail:n});if(r.decision===`deny`)return{allowed:!1,message:JG(r)};if(r.decision===`always`){let e=r.pattern?.trim()||n;await t.persistGrant(e)}return{allowed:!0}}function XG(e){if(e?.trim())return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function ZG(e){if(!e)return!1;let t=e.trim().toLowerCase();return t===`true`||t===`1`||t===`yes`}function QG(e){return e.map(e=>{let t=e.boost?parseFloat(e.boost):NaN,n=Number.isFinite(t)?t:void 0;return{name:e.name,displayName:e.displayName||e.name,description:e.description||``,source:{repo:e.repo,path:e.path||void 0,skill:e.skill||void 0,installAll:ZG(e.installAll)},affinity:{apps:XG(e.apps),tasks:XG(e.tasks),role:XG(e.role),purpose:XG(e.purpose)},priority:n}})}const $G={apps:3,tasks:2,role:1,purpose:1};function eK(e,t){return e.map(e=>{let n=0,r=[],i=(e.affinity.apps??[]).filter(e=>t.apps.includes(e));i.length&&(n+=i.length*$G.apps,r.push(`apps(${i.join(`, `)})`));let a=(e.affinity.tasks??[]).filter(e=>t.tasks.includes(e));return a.length&&(n+=a.length*$G.tasks,r.push(`tasks(${a.join(`, `)})`)),(e.affinity.role??[]).includes(t.role)&&(n+=$G.role,r.push(`role(${t.role})`)),(e.affinity.purpose??[]).includes(t.purpose)&&(n+=$G.purpose,r.push(`purpose(${t.purpose})`)),n*=e.priority??1,{entry:e,score:n,matchReasons:r}}).filter(e=>e.score>0).sort((e,t)=>t.score-e.score)}function tK(e){let t=`upskill ${e.repo}`;return e.path&&(t+=` --path ${e.path}`),e.installAll?t+=` --all`:e.skill&&(t+=` --skill ${e.skill}`),t}async function nK(e){let t=new Set;try{let n=await e.readDir(bi);for(let e of n)e.type===`directory`&&t.add(e.name)}catch{}let n=[`.agents`,`.claude`];try{let r=await e.readDir(`/`);for(let i of r)if(i.type===`directory`)for(let r of n)try{let n=`/${i.name}/${r}/skills`,a=await e.readDir(n);for(let e of a)e.type===`directory`&&t.add(e.name)}catch{}}catch{}return t}function rK(e){return{purpose:e.purpose??``,role:e.role??``,tasks:Array.isArray(e.tasks)?e.tasks:[],apps:Array.isArray(e.apps)?e.apps:[],name:e.name??``,company:typeof e.company==`string`?e.company:void 0}}function iK(e){return typeof e!=`string`||!e?null:e.toLowerCase().trim().replace(/[^a-z0-9]+/g,`-`).replace(/(^-+|-+$)/g,``)||null}function aK(e,t){if(t.length===0)return e;let n=new Set(t.map(e=>e.name));return[...e.filter(e=>!n.has(e.name)),...t]}async function oK(e,t){try{let n=iK(t);if(!n)return[];let r=await e(`${gi}${n}.json`,{headers:{Accept:`application/json`}});return r.status===200?QG(Lt(r.body).data):[]}catch{return[]}}async function sK(e){let t;try{t=await e(Oi,{headers:{Accept:`application/json`}})}catch(e){throw Error(Di(e,Oi))}if(t.status!==200)throw Error(`HTTP ${t.status}`);return QG(Lt(t.body).data)}function cK(e,t,n){let r=e.entry.source;if(r.skill){let e=n.get(r.skill);return e?{skillPath:e,skillName:r.skill}:r.path?{skillPath:r.path.replace(/^\/|\/$/g,``),skillName:r.skill}:{error:`skill "${r.skill}" not found in ${t}`}}if(r.path)return{skillPath:r.path.replace(/^\/|\/$/g,``),skillName:e.entry.name};let i=n.get(e.entry.name);return i?{skillPath:i,skillName:e.entry.name}:{error:`skill "${e.entry.name}" not found in ${t} and no explicit path provided`}}async function lK(e,t,n,r,i,a,o,s,c){let l=e.entry.source,u=l.path.replace(/^\/|\/$/g,``),d=o<s?` (~${Math.round((s-o)*(Date.now()-c)/o/1e3)}s remaining)`:``,f=[];for(let[e,t]of r)(t===u||t.startsWith(`${u}/`))&&f.push({name:e,path:t});if(f.length===0){let n=`no skills found under "${l.path}" in ${t}`;return{results:[{ok:!1,name:e.entry.name,error:n}],line:`[${o}/${s}] Failed "${e.entry.name}" bundle from ${t}: ${n}${d}\n`}}let p=Date.now(),m=0,h=0,g=[];for(let e of f){if(i.has(e.name))continue;let t=await Li(e.path,e.name,n,a,!1);t.ok?(g.push({ok:!0,name:e.name}),m++):(g.push({ok:!1,name:e.name,error:t.error}),h++)}let _=((Date.now()-p)/1e3).toFixed(1),v;return v=m===0&&h===0?`[${o}/${s}] Skipped "${e.entry.name}" bundle from ${t}: all sub-skills already installed${d}\n`:h===0?`[${o}/${s}] Installed "${e.entry.name}" bundle (${m} skill(s)) from ${t} (${_}s)${d}\n`:`[${o}/${s}] Installed "${e.entry.name}" bundle (${m}/${m+h} skill(s)) from ${t} (${_}s)${d}\n`,{results:g,line:v}}async function uK(e,t,n,r,i,a,o,s,c,l){let u=e.entry.source,d=s<c?` (~${Math.round((c-s)*(Date.now()-l)/s/1e3)}s remaining)`:``,f=await zi(n,r,i,u.path);if(f.error)return{results:[{ok:!1,name:e.entry.name,error:f.error}],line:`[${s}/${c}] Failed "${e.entry.name}" bundle from ${t}: ${f.error}${d}\n`};let p=Date.now(),m=0,h=0,g=[];for(let e of f.skills){if(a.has(e.name))continue;let t=await Ii(n,r,e.path,e.name,o,i,!1);t.exitCode===0?(g.push({ok:!0,name:e.name}),m++):(g.push({ok:!1,name:e.name,error:t.stderr.trim()}),h++)}let _=((Date.now()-p)/1e3).toFixed(1),v;return v=m===0&&h===0?`[${s}/${c}] Skipped "${e.entry.name}" bundle from ${t}: all sub-skills already installed${d}\n`:h===0?`[${s}/${c}] Installed "${e.entry.name}" bundle (${m} skill(s)) from ${t} (${_}s)${d}\n`:`[${s}/${c}] Installed "${e.entry.name}" bundle (${m}/${m+h} skill(s)) from ${t} (${_}s)${d}\n`,{results:g,line:v}}async function dK(e,t,n,r,i,a,o,s){let c=new Map;for(let e of Object.keys(n))if(e.endsWith(`/SKILL.md`)){let t=e.replace(/\/SKILL\.md$/,``);c.set(t.split(`/`).pop()||t,t)}let l=[],u=``;for(let d of t){let t=d.entry.source;if(t.installAll&&t.path){r.count++;let t=await lK(d,e,n,c,o,s,r.count,i,a);l.push(...t.results),u+=t.line;continue}let f=cK(d,e,c);if(`error`in f){l.push({ok:!1,name:d.entry.name,error:f.error}),r.count++;let t=r.count<i?` (~${Math.round((i-r.count)*(Date.now()-a)/r.count/1e3)}s remaining)`:``;u+=`[${r.count}/${i}] Failed "${d.entry.name}" from ${e}: ${f.error}${t}\n`;continue}let{skillPath:p,skillName:m}=f,h=Date.now(),g=await Li(p,m,n,s,!1);r.count++;let _=((Date.now()-h)/1e3).toFixed(1),v=(Date.now()-a)/r.count,y=Math.round((i-r.count)*v/1e3),b=r.count<i?` (~${y}s remaining)`:``;g.ok?(l.push({ok:!0,name:m}),u+=`[${r.count}/${i}] Installed "${m}" from ${e} (${_}s)${b}\n`):(l.push({ok:!1,name:m,error:g.error}),u+=`[${r.count}/${i}] Failed "${m}" from ${e}: ${g.error}${b}\n`)}return{errors:[],results:l,output:u}}async function fK(e,t,n,r,i,a,o,s,c,l){let u=await Si(c),d=[],f=``;for(let c of t){let t=c.entry.source;i.count++;let p=i.count<a?` (~${Math.round((a-i.count)*(Date.now()-o)/i.count/1e3)}s remaining)`:``;if(t.installAll&&t.path){let t=await uK(c,e,n,r,u,s,l,i.count,a,o);d.push(...t.results),f+=t.line;continue}let m=t.path?t.path.replace(/^\/|\/$/g,``):c.entry.name,h=t.skill||c.entry.name,g=await Ii(n,r,m,h,l,u,!1);g.exitCode===0?(f+=`[${i.count}/${a}] Installed "${h}" from ${e}${p}\n`,d.push({ok:!0,name:h})):(f+=`[${i.count}/${a}] Failed "${h}" from ${e}: ${g.stderr.trim()}${p}\n`,d.push({ok:!1,name:h,error:g.stderr.trim()}))}return{errors:[],results:d,output:f}}function pK(e,t,n){let r=``;for(let i of e){if(i.status===`rejected`){t.push(`upskill: unexpected error: ${i.reason}`);continue}r+=i.value.output;for(let e of i.value.errors)t.push(e);for(let e of i.value.results)e.ok?n.push(e.name):e.error&&t.push(`upskill: ${e.error}`)}return r}async function mK(e,t,n){let r=Date.now(),i=(e,t=[])=>({installedNames:[],errors:t,skipped:e,log:``,elapsedSeconds:(Date.now()-r)/1e3}),a=null;if(n)a=rK(n);else try{let t=await e.readDir(`/home`);for(let n of t)try{let t=await e.readTextFile(`/home/${n.name}/.welcome.json`);a=rK(JSON.parse(t));break}catch{}}catch{}if(!a)return i(`no-profile`);let o,s;try{let[n,r,i]=await Promise.all([sK(t),oK(t,a.company),nK(e)]);o=aK(n,r),s=i}catch(e){return i(`catalog-fetch`,[`upskill: failed to fetch skill catalog from ${Oi}: ${e instanceof Error?e.message:String(e)}`])}let c=eK(o,a).filter(e=>!s.has(e.entry.name));if(c.length===0)return i(`all-installed`);let l=new Map;for(let e of c){let t=e.entry.source.repo,n=l.get(t);n?n.push(e):l.set(t,[e])}let u=c.length,d={count:0},f=[],p=[],m=``;m=pK(await Promise.allSettled(Array.from(l.entries()).map(async([n,i])=>{let[a,o]=n.split(`/`),c=await Ei(a,o,t);return c.status===`error`?fK(n,i,a,o,d,u,r,s,t,e):dK(n,i,_i(c.files),d,u,r,s,e)})),f,p);let h=(Date.now()-r)/1e3;return p.length>0&&(await ji(),m+=`\nInstalled ${p.length} recommended skill(s) in ${h.toFixed(1)}s\n`),{installedNames:p,errors:f,skipped:null,log:m,elapsedSeconds:h}}function hK(e){let t=e.toLowerCase();return t.startsWith(`www.`)?t.slice(4):t}let gK,_K;async function vK(e){if(gK)return gK;if(_K!==void 0)return _K;_K=(async()=>{let t;try{t=await e(xi,{headers:{Accept:`application/json`}})}catch(e){throw Error(Di(e,xi))}if(t.status!==200)throw Error(`browse.sh returned HTTP ${t.status}`);let n=Lt(t.body),r=Array.isArray(n)?n:n.skills??[];return gK=r,r})();try{return await _K}catch(e){throw _K=void 0,e}}async function yK(e,t){let n=await vK(t),r=e.trim().toLowerCase();return r?n.filter(e=>[e.title??``,e.name??``,e.description??``,e.hostname??``,...e.tags??[]].join(` `).toLowerCase().includes(r)).map(e=>({name:e.slug,displayName:e.title||e.name||e.task||e.slug,summary:e.description||``,source:`browseSh`,qualityScore:null,installHint:`upskill browse:${e.hostname}/${e.task}`,sourceRepo:e.hostname})):[]}const bK=/^[A-Za-z0-9._-]+$/;function xK(e){return!e||e===`.`||e===`..`?!1:bK.test(e)}function SK(e){let t;if(e.startsWith(`browse:`))t=e.slice(7);else{let n=e.match(/^https:\/\/browse\.sh\/skills\/([^/?#]+)\/([^/?#]+?)\/?$/);n&&(t=`${n[1]}/${n[2]}`)}if(!t)return null;let n=t.indexOf(`/`);if(n<0)return null;let r=t.slice(0,n),i=t.slice(n+1);if(!r||!i||i.includes(`/`)||!xK(r)||!xK(i))return null;let a=hK(r);return xK(a)?{hostname:a,task:i}:null}function CK(e,t){let n=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(n)for(let e of n[1].split(/\r?\n/)){let n=e.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:\s*(.*)$/);if(!n||n[1]!==t)continue;let r=n[2].trim();return(r.startsWith(`"`)&&r.endsWith(`"`)||r.startsWith(`'`)&&r.endsWith(`'`))&&(r=r.slice(1,-1)),r||void 0}}function wK(e,t){let n=e.updated?` · updated ${e.updated}`:``;return[`> [!NOTE] **Imported from browse.sh** — original slug: \`${t}\``,`>`,"> **SLICC adaptation:** use `playwright-cli` — you are running inside the user's real browser session, so the bot-detection workarounds the upstream skill assumes are usually unnecessary.",`>`,`> Source: <https://browse.sh/skills/${t}>${n}`].join(`
5441
5441
  `)}function TK(e){return e.replace(/(?:^|\n)> \[!NOTE\] \*\*Imported from browse\.sh\*\*[\s\S]*?(?:\n\n|$)/,`
5442
5442
  `)}function EK(e,t){let n=e.match(/^(---\r?\n[\s\S]*?\r?\n---)(\r?\n|$)/);return n?`${n[1]}${n[2]||`
@@ -5543,7 +5543,7 @@ Examples:
5543
5543
  skill list
5544
5544
  skill info bluebubbles
5545
5545
  skill read bluebubbles
5546
- `,stderr:``,exitCode:0};let r=t[0],i=await import(`./skills-Qu2Xx97d.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${kK()}Install skills with: upskill owner/repo --all\n`,stderr:``,exitCode:0}:{stdout:jK(t,`Discoverable skills`),stderr:``,exitCode:0}}case`info`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: info requires a skill name
5546
+ `,stderr:``,exitCode:0};let r=t[0],i=await import(`./skills-DYa8ohlE.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${kK()}Install skills with: upskill owner/repo --all\n`,stderr:``,exitCode:0}:{stdout:jK(t,`Discoverable skills`),stderr:``,exitCode:0}}case`info`:{let n=t[1];if(!n)return{stdout:``,stderr:`skill: info requires a skill name
5547
5547
  `,exitCode:1};let r=await i.getSkillInfo(e,n);return r?{stdout:MK(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
5548
5548
  `,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+`
5549
5549
  `,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}}})}const FK=[{names:[`--branch`,`-b`],validate:e=>!e.startsWith(`-`)&&Yn(e),error:`upskill: --branch must be a git ref of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", trailing "/" or ".lock", or shell metacharacters`,apply:(e,t)=>{e.branch=t}},{names:[`--from`],validate:e=>Pi(e)!==null,error:`upskill: --from requires a GitHub source (owner/repo, owner/repo@branch, or a github.com URL)`,apply:(e,t)=>{e.from=t}},{names:[`--path`,`-p`],validate:e=>Qn(e),error:`upskill: --path must be a repo-relative sub-path of [A-Za-z0-9._/-]+ with no "..", leading "-"/"/", or shell metacharacters`,apply:(e,t)=>{e.path=t}}];function IK(e){let t={skills:[],dryRun:!1,json:!1};for(let n=0;n<e.length;n++){let r=e[n],i=FK.find(e=>e.names.includes(r));if(i){let r=e[++n];if(!r||!i.validate(r))return t.error=i.error,t;i.apply(t,r)}else if(r===`--dry-run`||r===`-n`)t.dryRun=!0;else if(r===`--json`)t.json=!0;else if(r.startsWith(`-`))return t.error=`upskill: unknown option "${r}" for update`,t;else t.skills.push(r)}return t}function LK(e,t){return!e||!t||e.byteLength!==t.byteLength?!1:e.every((e,n)=>e===t[n])}async function RK(e,t){try{let n=await e.readFile(t,{encoding:`binary`});return n instanceof Uint8Array?n:new TextEncoder().encode(String(n))}catch{return}}async function zK(e,t,n,r){let i=await RK(e,t);return Ti(n)?i?{status:`kept-local`,write:!1}:{status:`added`,write:!0}:i?LK(i,r)?{status:`unchanged`,write:!1}:{status:`updated`,write:!0}:{status:`added`,write:!0}}async function BK(e,t,n,r){let i={changes:[],writes:[],removals:[]};for(let[r,a]of n){let n=`${t}/${r}`,{status:o,write:s}=await zK(e,n,r,a);i.changes.push({path:r,status:o}),s&&i.writes.push({path:n,content:a})}let a=new Set(r.files??[]);for(let r of await Ci(e,t)){if(n.has(r))continue;let e=a.has(r);i.changes.push({path:r,status:e?`removed`:`kept-local`}),e&&i.removals.push(`${t}/${r}`)}return i.changes.sort((e,t)=>e.path.localeCompare(t.path)),i}async function VK(e,t,n,r,i,a){let o={skill:n,source:`${r.kind}:${r.source}`,ref:i??r.ref,from:r.sha,outcome:`current`,changes:[]},[s,c]=r.source.split(`/`);if(!s||!c)return{...o,outcome:`error`,error:`unusable source "${r.source}"`};let l=(r.path??``).replace(/^\/|\/$/g,``),u=await Si(t),d=await Ni(s,c,o.ref,u,!0);if(d&&r.sha===d&&await HK(e,n,r))return{...o,to:d,outcome:`current`,changes:[]};let f=await UK(s,c,l,n,o.ref,t,u);if(`error`in f)return{...o,outcome:`error`,error:f.error};let p=f.files,m=f.path;if(p.size===0)return{...o,outcome:`error`,error:`no files at ${s}/${c}${m?`/${m}`:``} — the skill may have moved or been removed upstream`};let{changes:h,writes:g,removals:_}=await BK(e,`${bi}/${n}`,p,r),v=g.length>0||_.length>0;if(a)return{...o,outcome:v?`updated`:`current`,changes:h};let y=d??r.sha;return v&&await JK(e,{changes:h,writes:g,removals:_}),await Ri(e,n,{...r,ref:o.ref,path:m,sha:y,files:[...p.keys()].sort()}),{...o,to:y,outcome:v?`updated`:`current`,changes:h}}async function HK(e,t,n){if(!n.files?.length)return!1;for(let r of n.files)if(!await e.exists(`/workspace/skills/${t}/${r}`))return!1;return!0}async function UK(e,t,n,r,i,a,o){let s=await Ei(e,t,a,i??`main`);if(s.status===`ok`){let i=_i(s.files),a=n||WK(i,r);return a===null?{error:`could not find "${r}/SKILL.md" in ${e}/${t} — pass --path <dir> to say where the skill lives`}:{files:qK(i,a),path:a}}try{return{files:KK(GK(await wi(e,t,n,i,o))),path:n}}catch(e){let t=e instanceof Error?e.message:String(e);return{error:`${s.message}; Contents API fallback failed: ${t}`}}}function WK(e,t){let n=[];for(let r of Object.keys(e))r===`SKILL.md`?n.push(``):(r.endsWith(`/${t}/SKILL.md`)||r===`${t}/SKILL.md`)&&n.push(r.slice(0,-9));return n.length===0?null:(n.sort((e,t)=>e.split(`/`).length-t.split(`/`).length||e.localeCompare(t)),n[0])}function GK(e){return new Map([...e].filter(([e])=>vi(e)))}function KK(e){return new Map([...e].sort(([e],[t])=>e.localeCompare(t)))}function qK(e,t){let n=t?`${t}/`:``,r=new Map;for(let[t,i]of Object.entries(e)){if(!t.startsWith(n)||t.endsWith(`/`))continue;let e=t.slice(n.length);vi(e)&&r.set(e,i)}return KK(r)}async function JK(e,t){for(let n of t.writes){let t=n.path.slice(0,n.path.lastIndexOf(`/`));await e.mkdir(t,{recursive:!0}),await e.writeFile(n.path,n.content)}for(let n of t.removals)await e.rm(n).catch(()=>{})}async function YK(e,t,n,r,i){let a={skill:n,source:`${r.kind}:${r.source}`,outcome:`current`,changes:[]},[o,s]=r.source.split(`/`);if(!o||!s)return{...a,outcome:`error`,error:`unusable source "${r.source}"`};let c=await DK(o,s,t);if(!c.ok)return{...a,outcome:`error`,error:c.error};let l=`${bi}/${n}/SKILL.md`,u=await RK(e,l),d=new TextEncoder().encode(c.content),f=u!==void 0&&TK(new TextDecoder().decode(u))===TK(c.content);if(LK(u,d)||f)return{...a,changes:[{path:`SKILL.md`,status:`unchanged`}]};let p=u?`updated`:`added`;return i||(await e.mkdir(`${bi}/${n}`,{recursive:!0}),await e.writeFile(l,d),await Ri(e,n,{...r,files:[`SKILL.md`]})),{...a,outcome:`updated`,changes:[{path:`SKILL.md`,status:p}]}}function XK(e,t){if(e.outcome===`error`)return` ${e.skill}: failed — ${e.error}\n`;let n=new Map;for(let t of e.changes)n.set(t.status,(n.get(t.status)??0)+1);let r=e.to&&e.to!==e.from?` → ${e.to.slice(0,7)}`:``;if(e.outcome===`current`)return` ${e.skill}: already current (${e.source}${r})\n`;let i=t?`would update`:`updated`,a=` ${e.skill}: ${i} from ${e.source}${r}\n`;for(let t of e.changes)t.status!==`unchanged`&&(a+=` ${t.status.padEnd(10)} ${t.path}\n`);let o=n.get(`kept-local`)??0;return o>0&&(a+=` (${o} kept-local — dotfiles and local additions are never touched)\n`),a}function ZK(e,t,n,r){let i=Pi(t);return i?{version:1,kind:`github`,source:`${i.owner}/${i.repo}`,skill:e,ref:r??i.branch,path:n??i.path,installed:new Date().toISOString()}:null}async function QK(e,t,n){if(t.length===0)return{targets:await Vi(e),missing:[]};let r=[],i=[];for(let a of t){let t=await Mi(e,a);if(t){r.push({name:a,provenance:t});continue}if(!await e.exists(`/workspace/skills/${a}`)){i.push({name:a,reason:`not-installed`});continue}let o=n.from?ZK(a,n.from,n.path,n.branch):null;o?r.push({name:a,provenance:o}):i.push({name:a,reason:`no-provenance`})}return{targets:r,missing:i}}function $K(e){return e.reason===`not-installed`?`upskill: no skill named "${e.name}" is installed — check \`upskill list\`
@@ -5577,7 +5577,7 @@ Nothing to update — all skills are current.
5577
5577
  `,{stdout:s,stderr:``,exitCode:0}}function pq(e){return!e||e.startsWith(`-`)?{stdout:``,stderr:`upskill: --branch requires a value
5578
5578
  `,exitCode:1}:Yn(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
5579
5579
  `,exitCode:1}}function mq(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`||!Qn(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
5580
- `,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=pq(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 hq(e){let t=await(await import(`./skills-Qu2Xx97d.js`).then(e=>e.t)).discoverSkills(e);return t.length===0?{stdout:`No discoverable local skills found.\n\n${kK()}`,stderr:``,exitCode:0}:{stdout:jK(t,`Discoverable local skills`),stderr:``,exitCode:0}}async function gq(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./skills-Qu2Xx97d.js`).then(e=>e.t);if(e===`info`){let e=await r.getSkillInfo(n,t);if(!e)return{stdout:``,stderr:`upskill: skill "${t}" not found\n`,exitCode:1};let i=await Mi(n,t),a=i?Fi(i):"Installed from: (no provenance recorded — reinstall to enable `upskill update`)\n";return{stdout:MK(e)+a,stderr:``,exitCode:0}}let i=await r.readSkillInstructions(n,t);return i===null?{stdout:``,stderr:`upskill: no SKILL.md found for "${t}"\n`,exitCode:1}:{stdout:i+`
5580
+ `,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=pq(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 hq(e){let t=await(await import(`./skills-DYa8ohlE.js`).then(e=>e.t)).discoverSkills(e);return t.length===0?{stdout:`No discoverable local skills found.\n\n${kK()}`,stderr:``,exitCode:0}:{stdout:jK(t,`Discoverable local skills`),stderr:``,exitCode:0}}async function gq(e,t,n){if(!t)return{stdout:``,stderr:`upskill: ${e} requires a skill name\n`,exitCode:1};let r=await import(`./skills-DYa8ohlE.js`).then(e=>e.t);if(e===`info`){let e=await r.getSkillInfo(n,t);if(!e)return{stdout:``,stderr:`upskill: skill "${t}" not found\n`,exitCode:1};let i=await Mi(n,t),a=i?Fi(i):"Installed from: (no provenance recorded — reinstall to enable `upskill update`)\n";return{stdout:MK(e)+a,stderr:``,exitCode:0}}let i=await r.readSkillInstructions(n,t);return i===null?{stdout:``,stderr:`upskill: no SKILL.md found for "${t}"\n`,exitCode:1}:{stdout:i+`
5581
5581
  `,stderr:``,exitCode:0}}async function _q(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 Li(p.path,p.name,r,i,a,s?{...s,path:p.path}:void 0),h=f+1,g=((Date.now()-o)/1e3).toFixed(1),_=(Date.now()-o)/h,v=h<d?` (~${Math.round((d-h)*_/1e3)}s remaining)`:``;m.ok?(c+=`[${h}/${d}] Installed "${p.name}" from ${t}/${n} (${g}s)${v}\n`,u++):(c+=`[${h}/${d}] Failed "${p.name}": ${m.error}${v}\n`,l+=`upskill: ${m.error}\n`)}return{output:c,errors:l,successCount:u}}async function vq(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 Ii(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 yq(e,t,n,r,i,a,o,s){let c=``,l=``,u=0;for(let d of e){let e=await Ii(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 bq(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 xq(e,t,n,r){let{owner:i,repo:a}=e,o=t.branch??e.branch,s=t.subPath??e.path,c=await Si(r),l=await zi(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:bq(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:bq(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 Ei(i,a,r,o);if(e.status===`ok`){let r=await Ni(i,a,o,c),s=await _q(u,i,a,_i(e.files),n,t.force,f,{kind:`github`,source:`${i}/${a}`,ref:o,sha:r});({output:p,errors:m,successCount:h}=s)}else{let e=await vq(u,i,a,c,n,t.force,o,f);({output:p,errors:m,successCount:h}=e)}}else({output:p,errors:m,successCount:h}=await yq(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 ji()),{stdout:p,stderr:m,exitCode:+!!m}}async function Sq(e,t,n,r){switch(e[0]){case`tabs`:return dq(t,n,r,e.includes(`--json`));case`recommendations`:return fq(t,n,e.includes(`--install`));case`update`:case`upgrade`:return tq(e.slice(1),t,n);case`list`:return hq(t);case`info`:case`read`:return gq(e[0],e[1],t);case`search`:return wq(e,n);default:return null}}function Cq(e,t,n){return H(`upskill`,async(r,i)=>{if(r.length===0||r.includes(`--help`)||r.includes(`-h`))return NK();let a=await Sq(r,e,t,n);if(a)return a;let o=mq(r);if(o.earlyReturn)return o.earlyReturn;if(!o.sourceRef)return NK();if(o.sourceRef.startsWith(`tessl:`))return Tq(o.sourceRef,o.force,e,t);let s=SK(o.sourceRef);if(s)return OK(s.hostname,s.task,e,t,o.force);let c=Pi(o.sourceRef);return c?xq(c,o,e,t):{stdout:``,stderr:`upskill: unrecognized source "${o.sourceRef}"\n\nExpected: owner/repo, tessl:<name>, or browse:<hostname>/<task>\n`,exitCode:1}})}async function wq(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?oq(a,t,i):NK()}async function Tq(e,t,n,r){let i=e.slice(6);if(!i)return{stdout:``,stderr:`upskill: tessl: requires a skill name
5582
5582
  `,exitCode:1};let a=await rq(i,r);if(`error`in a)return{stdout:``,stderr:`upskill: ${a.error}\n`,exitCode:1};let o=await Si(r);return Ii(a.owner,a.repo,a.skillPath,a.skillName,n,o,t,r)}function Eq(){return{stdout:`usage: afplay [-v volume] [-r rate] <file>
5583
5583
 
@@ -6980,7 +6980,7 @@ Common base URLs:
6980
6980
  llama.cpp http://localhost:8080/v1
6981
6981
  vLLM http://localhost:8000/v1
6982
6982
  Jan http://localhost:1337/v1
6983
- `}function _oe(){return H(Z6,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:goe(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./provider-settings-BkIna1v7.js`),{verifyConnection:a}=await import(`./local-llm-D1NRQkzz.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(Z6);if(!s)return{stdout:``,stderr:`Local LLM is not configured. Open Settings → Providers → Local LLM and set a base URL.
6983
+ `}function _oe(){return H(Z6,async e=>{if(e.includes(`--help`)||e.includes(`-h`))return{stdout:goe(),stderr:``,exitCode:0};let{getApiKeyForProvider:t,getRawApiKeyForProvider:n,getBaseUrlForProvider:r,addAccount:i}=await import(`./provider-settings-D04MyJwf.js`),{verifyConnection:a}=await import(`./local-llm-lLGlIItS.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(Z6);if(!s)return{stdout:``,stderr:`Local LLM is not configured. Open Settings → Providers → Local LLM and set a base URL.
6984
6984
  `,exitCode:1};let c=await a(s,t(Z6)??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(`
6985
6985
  `)+`
6986
6986
  `,exitCode:1}}if(o===`discover`){let e=n(Z6)??``;return i(Z6,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(`
@@ -7024,20 +7024,20 @@ authorization-code flow, stores the access token, and retries.
7024
7024
  On success, the server is persisted to /workspace/.mcp/servers.json and
7025
7025
  an alias shim is written to /workspace/.mcp/aliases/<name>.jsh so the
7026
7026
  short name resolves on the PATH.
7027
- `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return t8(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return t8(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_-]*$/.test(i))return t8(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-DLe-z7qR.js`).then(e=>e.r);if(await a(i,t.fs))return t8(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BTUV7dbh.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 woe(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>o8(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,protocolVersion:l.getNegotiatedProtocolVersion(),tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await Uoe(i,t);let m=await l8(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-D5-Ws4A3.js`);e({name:i,serverUrl:r,auth:u})}return e8([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${$6}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
7027
+ `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return t8(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return t8(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_-]*$/.test(i))return t8(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r);if(await a(i,t.fs))return t8(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BTUV7dbh.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 woe(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>o8(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,protocolVersion:l.getNegotiatedProtocolVersion(),tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await Uoe(i,t);let m=await l8(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-348mSHul.js`);e({name:i,serverUrl:r,auth:u})}return e8([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${$6}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
7028
7028
  `)+`
7029
- `)}async function woe(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-DR6XMm1M.js`),{saveOAuthAccount:s}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r),c=await Voe(r.oauthFetchImpl),l=r.oauthLauncher??await s8(),u=await i(e,n,c);Q6.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await na(),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,scopes:m.scope}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,redirectUri:d,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function Toe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return e8(`usage: mcp list
7030
- `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-D5-Ws4A3.js`);await n();let{listServers:r}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return e8("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 e8(n8(o))}function n8(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(`
7029
+ `)}async function woe(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-DR6XMm1M.js`),{saveOAuthAccount:s}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r),c=await Voe(r.oauthFetchImpl),l=r.oauthLauncher??await s8(),u=await i(e,n,c);Q6.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await na(),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,scopes:m.scope}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,redirectUri:d,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function Toe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return e8(`usage: mcp list
7030
+ `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-348mSHul.js`);await n();let{listServers:r}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return e8("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 e8(n8(o))}function n8(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(`
7031
7031
  `)+`
7032
7032
  `}async function Eoe(e,t){if(wZ(e))return e8(`usage: mcp search <query>
7033
7033
 
7034
7034
  Case-insensitive substring search across the cached tools of every
7035
7035
  registered MCP server. Matches tool name OR description and prints a
7036
7036
  table of (server, tool, description, match-field) rows.
7037
- `);if(e.length===0)return t8(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-D5-Ws4A3.js`);await i();let{listServers:a}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return e8("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 e8(`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,Doe(e.description),e.match]);return e8(n8(l))}function Doe(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Ooe(e,t){if(e.length===0||wZ(e))return e.length===0?t8(`mcp delete: expected <name>`):e8(`usage: mcp delete <name>
7038
- `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-D5-Ws4A3.js`);await r(n);let{deleteServer:a}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),o=await a(n,t.fs);await Woe(n,t),await Goe(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){Q6.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?t8(`mcp delete: no server, alias, or account found for "${n}"`):e8([`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(`
7037
+ `);if(e.length===0)return t8(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-348mSHul.js`);await i();let{listServers:a}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return e8("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 e8(`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,Doe(e.description),e.match]);return e8(n8(l))}function Doe(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Ooe(e,t){if(e.length===0||wZ(e))return e.length===0?t8(`mcp delete: expected <name>`):e8(`usage: mcp delete <name>
7038
+ `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-348mSHul.js`);await r(n);let{deleteServer:a}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),o=await a(n,t.fs);await Woe(n,t),await Goe(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){Q6.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?t8(`mcp delete: no server, alias, or account found for "${n}"`):e8([`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(`
7039
7039
  `)+`
7040
- `)}async function koe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?t8(`mcp invoke: expected <name>`):e8(joe());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-D5-Ws4A3.js`);await i(n);let{getServer:a}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return t8(`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 e8(Moe(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return t8(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=Aoe(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return e8(Noe(n,l));let p=Poe(d,l.inputSchema);if(!p.ok)return t8(`mcp invoke: ${p.error}`);let{McpClient:m}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>o8(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=Roe(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function Aoe(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=r8(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=r8(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 r8(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 joe(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
7040
+ `)}async function koe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?t8(`mcp invoke: expected <name>`):e8(joe());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-348mSHul.js`);await i(n);let{getServer:a}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return t8(`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 e8(Moe(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return t8(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=Aoe(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return e8(Noe(n,l));let p=Poe(d,l.inputSchema);if(!p.ok)return t8(`mcp invoke: ${p.error}`);let{McpClient:m}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>o8(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=Roe(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function Aoe(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=r8(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=r8(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 r8(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 joe(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
7041
7041
 
7042
7042
  mcp invoke <name> List tools on <name>.
7043
7043
  mcp invoke <name> <tool> --help Show flags for <tool>.
@@ -7067,7 +7067,7 @@ Arguments are coerced according to the tool's JSON Schema:
7067
7067
 
7068
7068
  Re-fetches the tool catalog and \`apps/list\` for <name>. Does NOT refresh
7069
7069
  OAuth tokens — for OAuth token refresh use \`mcp auth <name>\`.
7070
- `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-D5-Ws4A3.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return t8(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>o8(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return t8(`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,protocolVersion:l.getNegotiatedProtocolVersion(),tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await l8(n,d,t);return e8(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function Boe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return e8(`usage: mcp auth <name> [--silent | --interactive]
7070
+ `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-348mSHul.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return t8(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>o8(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return t8(`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,protocolVersion:l.getNegotiatedProtocolVersion(),tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await l8(n,d,t);return e8(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function Boe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return e8(`usage: mcp auth <name> [--silent | --interactive]
7071
7071
 
7072
7072
  Re-authenticate an existing MCP server. By default, attempts a silent
7073
7073
  token renewal using the persisted refresh_token; if that returns no
@@ -7079,7 +7079,7 @@ Options:
7079
7079
  -i, --interactive Skip silent renewal and open the OAuth popup
7080
7080
  directly. Use after revoking a refresh token or
7081
7081
  when the AS no longer accepts the cached one.
7082
- `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return t8(`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 t8(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-D5-Ws4A3.js`),s=await o(r,{fetchImpl:t.oauthFetchImpl,launcher:t.oauthLauncher}),{getServer:c}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return t8(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return t8(`mcp auth: server "${r}" does not use OAuth`);if(!s)return t8(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await import(`./providers-B9Tcuh9N.js`).then(e=>e.r),f=d(u);if(!f)return t8(`mcp auth: provider "${u}" is not registered`);if(a)return await a8(r,f,t);if(!f.onSilentRenew)return i?t8(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await a8(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 t8(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);Q6.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?e8(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?t8(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await a8(r,f,t)}async function a8(e,t,n){if(!t.onOAuthLogin)return t8(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await s8(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?e8(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):t8(`mcp auth: interactive login for "${e}" did not complete`)}async function o8(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await import(`./providers-B9Tcuh9N.js`).then(e=>e.r),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){Q6.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function s8(){let{createOAuthLauncher:e}=await import(`./oauth-service-Bbrrl8Mr.js`);return e()}async function Voe(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-n2pCvcgW.js`).then(e=>e.n),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 c8(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-CrXC-O2d.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DJXlpNui.js`).then(e=>e.n);return await t.create({dbName:n})}function Hoe(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
7082
+ `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return t8(`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 t8(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-348mSHul.js`),s=await o(r,{fetchImpl:t.oauthFetchImpl,launcher:t.oauthLauncher}),{getServer:c}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return t8(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return t8(`mcp auth: server "${r}" does not use OAuth`);if(!s)return t8(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await import(`./providers-mA21pCo6.js`).then(e=>e.r),f=d(u);if(!f)return t8(`mcp auth: provider "${u}" is not registered`);if(a)return await a8(r,f,t);if(!f.onSilentRenew)return i?t8(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await a8(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 t8(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);Q6.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?e8(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?t8(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await a8(r,f,t)}async function a8(e,t,n){if(!t.onOAuthLogin)return t8(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await s8(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?e8(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):t8(`mcp auth: interactive login for "${e}" did not complete`)}async function o8(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await import(`./providers-mA21pCo6.js`).then(e=>e.r),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){Q6.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function s8(){let{createOAuthLauncher:e}=await import(`./oauth-service-Bbrrl8Mr.js`);return e()}async function Voe(e){if(e)return e;let{createProxiedFetch:t}=await import(`./proxied-fetch-n2pCvcgW.js`).then(e=>e.n),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 c8(e){if(e)return e;let{VirtualFS:t}=await import(`./fs-Y-2f9vf-.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DJXlpNui.js`).then(e=>e.n);return await t.create({dbName:n})}function Hoe(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
7083
7083
  // Auto-generated by \`mcp add ${e}\`; do not edit by hand.
7084
7084
  const argv = Array.isArray(process.argv) ? process.argv.slice(2) : [];
7085
7085
  const escape = (s) => {
@@ -7093,7 +7093,7 @@ const r = await exec(cmd);
7093
7093
  if (r.stdout) process.stdout.write(r.stdout);
7094
7094
  if (r.stderr) process.stderr.write(r.stderr);
7095
7095
  process.exit(r.exitCode || 0);
7096
- `}async function Uoe(e,t){let n=await c8(t.fs);await n.mkdir($6,{recursive:!0}),await n.writeFile(`${$6}/${e}.jsh`,Hoe(e)),t.scriptCatalog?.invalidateJsh()}async function Woe(e,t){let n=await c8(t.fs),r=`${$6}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){Q6.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function Goe(e,t){let{removeAppSprinkles:n}=await import(`./apps-Cs8oR4Lg.js`);await n(e,t.fs)}async function l8(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-Cs8oR4Lg.js`);return(await r(e,t,n.fs)).length}catch(t){return Q6.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}function u8(e){return{stdout:``,stderr:`meminfo: ${e}\n`,exitCode:1}}function d8(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e,r=`B`;for(let e of t){if(n<1024)break;n/=1024,r=e}return`${n.toFixed(1)} ${r}`}function Koe(e){return e.attribution.length===0?`(shared)`:e.attribution.map(e=>{let t=e.container?.src??e.container?.id??e.url??`?`;return e.scope?`${e.scope} ${t}`:t}).join(`, `)}function qoe(){let e=globalThis.performance,t=e?.measureUserAgentSpecificMemory;return t?t.bind(e):null}function Joe(e){if(e[0]===`--help`||e[0]===`-h`||e[0]===`help`)return{help:!0};let t=!1;for(let n of e){if(n!==`--json`)return{error:`unknown option '${n}' — see \`meminfo --help\``};t=!0}return{help:!1,json:t}}function Yoe(e){let t=[`total: ${d8(e.bytes)}`],n=[...e.breakdown].filter(e=>e.bytes>0).sort((e,t)=>t.bytes-e.bytes);if(n.length>0){t.push(``,`BYTES TYPES ATTRIBUTION`);for(let e of n)t.push(`${d8(e.bytes).padEnd(10)} ${e.types.join(`,`).padEnd(20)} ${Koe(e)}`)}return`${t.join(`
7096
+ `}async function Uoe(e,t){let n=await c8(t.fs);await n.mkdir($6,{recursive:!0}),await n.writeFile(`${$6}/${e}.jsh`,Hoe(e)),t.scriptCatalog?.invalidateJsh()}async function Woe(e,t){let n=await c8(t.fs),r=`${$6}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){Q6.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function Goe(e,t){let{removeAppSprinkles:n}=await import(`./apps-BtecDEmW.js`);await n(e,t.fs)}async function l8(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-BtecDEmW.js`);return(await r(e,t,n.fs)).length}catch(t){return Q6.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}function u8(e){return{stdout:``,stderr:`meminfo: ${e}\n`,exitCode:1}}function d8(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e,r=`B`;for(let e of t){if(n<1024)break;n/=1024,r=e}return`${n.toFixed(1)} ${r}`}function Koe(e){return e.attribution.length===0?`(shared)`:e.attribution.map(e=>{let t=e.container?.src??e.container?.id??e.url??`?`;return e.scope?`${e.scope} ${t}`:t}).join(`, `)}function qoe(){let e=globalThis.performance,t=e?.measureUserAgentSpecificMemory;return t?t.bind(e):null}function Joe(e){if(e[0]===`--help`||e[0]===`-h`||e[0]===`help`)return{help:!0};let t=!1;for(let n of e){if(n!==`--json`)return{error:`unknown option '${n}' — see \`meminfo --help\``};t=!0}return{help:!1,json:t}}function Yoe(e){let t=[`total: ${d8(e.bytes)}`],n=[...e.breakdown].filter(e=>e.bytes>0).sort((e,t)=>t.bytes-e.bytes);if(n.length>0){t.push(``,`BYTES TYPES ATTRIBUTION`);for(let e of n)t.push(`${d8(e.bytes).padEnd(10)} ${e.types.join(`,`).padEnd(20)} ${Koe(e)}`)}return`${t.join(`
7097
7097
  `)}\n`}function Xoe(e={}){return H(`meminfo`,async t=>{let n=Joe(t);if(`error`in n)return u8(n.error);if(n.help)return{stdout:`meminfo - agent-cluster memory diagnostics
7098
7098
 
7099
7099
  Usage:
@@ -7119,7 +7119,7 @@ Options:
7119
7119
  -h, --help Show this help message
7120
7120
  `}function ese(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`.replace(`.0M`,`M`):e>=1e3?`${(e/1e3).toFixed(0)}K`:`${e}`}function m8(e){return`$${e.toFixed(2)}`}const tse=/\b(embedding|embed|tts|whisper|dall-e|image-gen|audio|vision-preview)\b/i;function nse(e){let t=`${e.id} ${e.name??``}`;return!tse.test(t)}function rse(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 ise(e){let t=new Map;for(let n of e){let e=rse(n.id);(!t.has(e)||n.selected)&&t.set(e,n)}return[...t.values()]}function ase(e,t,n,r,i){let a=i?Qoe(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 ose(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=`${m8(e.cost.input)} / ${m8(e.cost.output)}`,a=`${ese(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(`
7121
7121
  `)+`
7122
- `}function sse(e){return H(`models`,async t=>{let{getAccounts:n,getAvailableProviders:r,getProviderConfig:i,getProviderModels:a,getSelectedProvider:o,getSelectedModelId:s,resolveCurrentModel:c}=await import(`./provider-settings-BkIna1v7.js`);if(t.includes(`--help`)||t.includes(`-h`))return{stdout:$oe(),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.
7122
+ `}function sse(e){return H(`models`,async t=>{let{getAccounts:n,getAvailableProviders:r,getProviderConfig:i,getProviderModels:a,getSelectedProvider:o,getSelectedModelId:s,resolveCurrentModel:c}=await import(`./provider-settings-D04MyJwf.js`);if(t.includes(`--help`)||t.includes(`-h`))return{stdout:$oe(),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.
7123
7123
  `,exitCode:1};let y=c(),b=y.id,x=y.provider,S;p||(S=await Zoe(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(nse);if(t.length===0){if(!u)return{stdout:``,stderr:`No models available for provider ${e}.\n`,exitCode:1};continue}let n=t.map(t=>ase(t,e,b,x,S)).sort((e,t)=>t.cost.input-e.cost.input);if(d||(n=ise(n)),w.push(...n),!l){let t=i(e);T.push(ose(t.name,e,n,!!S))}}if(l)return{stdout:JSON.stringify(w,null,2)+`
7124
7124
  `,stderr:``,exitCode:0};!d&&!l&&T.push(`Showing latest versions only. Use --all-versions to see all.
7125
7125
  `);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(`
@@ -7159,7 +7159,7 @@ Examples:
7159
7159
  oauth-domain add adobe '*.da.live'
7160
7160
  oauth-domain list adobe
7161
7161
  oauth-domain remove adobe admin.da.live
7162
- `}function _se(){return H(`oauth-domain`,async e=>{if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return{stdout:g8(),stderr:``,exitCode:0};let{getExtraOAuthDomains:t,setExtraOAuthDomainsAsync:n,getAllExtraOAuthDomains:r}=await import(`./provider-settings-BkIna1v7.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(`
7162
+ `}function _se(){return H(`oauth-domain`,async e=>{if(e.length===0||e.includes(`--help`)||e.includes(`-h`))return{stdout:g8(),stderr:``,exitCode:0};let{getExtraOAuthDomains:t,setExtraOAuthDomainsAsync:n,getAllExtraOAuthDomains:r}=await import(`./provider-settings-D04MyJwf.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(`
7163
7163
  `)+`
7164
7164
  `,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)
7165
7165
  `,stderr:``,exitCode:0}:{stdout:n.map(([e,t])=>`${e}: ${t.join(`, `)}`).join(`
@@ -7231,7 +7231,7 @@ Examples:
7231
7231
  --authorize-url 'https://auth.x.ai/oauth2/auth?...' \\
7232
7232
  --redirect-pattern 'http://127.0.0.1:56121/*'
7233
7233
  curl -H "Authorization: Bearer $(oauth-token github)" https://api.github.com/user
7234
- `}function wse(){return H(`oauth-token`,Tse)}async function Tse(e,t){let n=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r),r=await import(`./providers-B9Tcuh9N.js`).then(e=>e.r);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Cse(),stderr:``,exitCode:0};if(e.includes(`--list`))return Hse(n.getAccounts,r.getRegisteredProviderIds,r.getRegisteredProviderConfig,n.getOAuthAccountInfo);if(e.includes(`--expire`))return Fse(e);if(e.includes(`--renew`))return Ise(e);if(e.includes(`--from-file`)||e.includes(`--intercept`))return Lse(e,t);let i=Ese(e);if(!i.ok)return i.result;let a=Dse(e),o=Ose(e,n,r);if(!o.ok)return o.result;let s=kse(o.value,r.getRegisteredProviderConfig);if(!s.ok)return s.result;if(!a){let e=await Ase(o.value,s.value,n.getOAuthAccountInfo,i.value);if(e)return e}return jse(o.value,s.value,i.value,n.getOAuthAccountInfo)}function Ese(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:w8(`oauth-token: --scope requires a value`)}:(e.splice(t,2),{ok:!0,value:n})}function Dse(e){let t=e.indexOf(`--force-login`);return t<0?!1:(e.splice(t,1),!0)}function Ose(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:w8(`oauth-token: --provider requires a value`)}}if(e.length>0)return{ok:!0,value:e[0]};let i=t.getSelectedProvider();if(v8(n.getRegisteredProviderConfig(i)))return{ok:!0,value:i};let a=n.getRegisteredProviderIds().find(e=>v8(n.getRegisteredProviderConfig(e)));return a?{ok:!0,value:a}:{ok:!1,result:w8(`oauth-token: no OAuth providers configured`)}}function v8(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function kse(e,t){let n=t(e);return n?v8(n)?{ok:!0,value:n}:{ok:!1,result:w8(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:w8(`oauth-token: unknown provider "${e}"`)}}async function Ase(e,t,n,r){let i=n(e);return i&&!i.expired?y8(e,i,r):!i?.expired||!t.onSilentRenew||!await Pse(t.onSilentRenew)?null:y8(e,n(e),r)}function y8(e,t,n){return n&&!Sse(t?.scopes,n)?null:b8(e,t?.maskedValue)}function b8(e,t){return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:w8(`oauth-token: no masked value for ${e} (try logging in again)`)}async function jse(e,t,n,r){try{let i=await Mse(e,t,n);return i.error?i.error:Nse(e,r,i.succeeded)}catch(t){let n=t instanceof Error?t.message:String(t);return t instanceof Error&&t.name===`OAuthLaunchError`?(console.error(`[oauth-token] Provider ${e}: login could not be shown:`,n),w8(`oauth-token: ${n}`)):(console.error(`[oauth-token] Provider ${e}: login failed:`,n),w8(`oauth-token: login failed: ${n}`))}}async function Mse(e,t,n){let r=n?{scopes:n}:void 0,i=!1,a=()=>{i=!0};if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-Bbrrl8Mr.js`),o=await n();return o?(await t.onOAuthLoginIntercepted(o,a,r),{error:null,succeeded:i}):{error:w8(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`),succeeded:!1}}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-Bbrrl8Mr.js`);return await t.onOAuthLogin(e(),a,r),{error:null,succeeded:i}}return{error:w8(`oauth-token: provider "${e}" has no OAuth login hook`),succeeded:!1}}function Nse(e,t,n){if(!n)return console.error(`[oauth-token] Provider ${e}: interactive login was not completed`),w8(`oauth-token: interactive login was not completed (cancelled, timed out, or no one could approve it)`);let r=t(e);return r?.token&&!r.expired?b8(e,r.maskedValue):r?.token?w8(`oauth-token: login completed but the saved token is already expired`):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),w8(`oauth-token: login completed but no token was saved`))}async function Pse(e){try{return await e()!==null}catch{return!1}}function x8(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 Fse(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-B9Tcuh9N.js`).then(e=>e.r),o=x8(e,n,i,a);if(!o)return w8(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return w8(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return w8(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return w8(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return w8(`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 Ise(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-Bwe7JMH-.js`).then(e=>e.r),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-B9Tcuh9N.js`).then(e=>e.r),a=x8(e,t,r,i);if(!a)return w8(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return w8(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return w8(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` before: ${S8(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: ${S8(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(`
7234
+ `}function wse(){return H(`oauth-token`,Tse)}async function Tse(e,t){let n=await import(`./account-store-BSkcgqia.js`).then(e=>e.r),r=await import(`./providers-mA21pCo6.js`).then(e=>e.r);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:Cse(),stderr:``,exitCode:0};if(e.includes(`--list`))return Hse(n.getAccounts,r.getRegisteredProviderIds,r.getRegisteredProviderConfig,n.getOAuthAccountInfo);if(e.includes(`--expire`))return Fse(e);if(e.includes(`--renew`))return Ise(e);if(e.includes(`--from-file`)||e.includes(`--intercept`))return Lse(e,t);let i=Ese(e);if(!i.ok)return i.result;let a=Dse(e),o=Ose(e,n,r);if(!o.ok)return o.result;let s=kse(o.value,r.getRegisteredProviderConfig);if(!s.ok)return s.result;if(!a){let e=await Ase(o.value,s.value,n.getOAuthAccountInfo,i.value);if(e)return e}return jse(o.value,s.value,i.value,n.getOAuthAccountInfo)}function Ese(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:w8(`oauth-token: --scope requires a value`)}:(e.splice(t,2),{ok:!0,value:n})}function Dse(e){let t=e.indexOf(`--force-login`);return t<0?!1:(e.splice(t,1),!0)}function Ose(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:w8(`oauth-token: --provider requires a value`)}}if(e.length>0)return{ok:!0,value:e[0]};let i=t.getSelectedProvider();if(v8(n.getRegisteredProviderConfig(i)))return{ok:!0,value:i};let a=n.getRegisteredProviderIds().find(e=>v8(n.getRegisteredProviderConfig(e)));return a?{ok:!0,value:a}:{ok:!1,result:w8(`oauth-token: no OAuth providers configured`)}}function v8(e){return!!(e?.isOAuth&&(e.onOAuthLogin||e.onOAuthLoginIntercepted))}function kse(e,t){let n=t(e);return n?v8(n)?{ok:!0,value:n}:{ok:!1,result:w8(`oauth-token: provider "${e}" is not an OAuth provider`)}:{ok:!1,result:w8(`oauth-token: unknown provider "${e}"`)}}async function Ase(e,t,n,r){let i=n(e);return i&&!i.expired?y8(e,i,r):!i?.expired||!t.onSilentRenew||!await Pse(t.onSilentRenew)?null:y8(e,n(e),r)}function y8(e,t,n){return n&&!Sse(t?.scopes,n)?null:b8(e,t?.maskedValue)}function b8(e,t){return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:w8(`oauth-token: no masked value for ${e} (try logging in again)`)}async function jse(e,t,n,r){try{let i=await Mse(e,t,n);return i.error?i.error:Nse(e,r,i.succeeded)}catch(t){let n=t instanceof Error?t.message:String(t);return t instanceof Error&&t.name===`OAuthLaunchError`?(console.error(`[oauth-token] Provider ${e}: login could not be shown:`,n),w8(`oauth-token: ${n}`)):(console.error(`[oauth-token] Provider ${e}: login failed:`,n),w8(`oauth-token: login failed: ${n}`))}}async function Mse(e,t,n){let r=n?{scopes:n}:void 0,i=!1,a=()=>{i=!0};if(t.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-Bbrrl8Mr.js`),o=await n();return o?(await t.onOAuthLoginIntercepted(o,a,r),{error:null,succeeded:i}):{error:w8(`oauth-token: provider "${e}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.`),succeeded:!1}}if(t.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-Bbrrl8Mr.js`);return await t.onOAuthLogin(e(),a,r),{error:null,succeeded:i}}return{error:w8(`oauth-token: provider "${e}" has no OAuth login hook`),succeeded:!1}}function Nse(e,t,n){if(!n)return console.error(`[oauth-token] Provider ${e}: interactive login was not completed`),w8(`oauth-token: interactive login was not completed (cancelled, timed out, or no one could approve it)`);let r=t(e);return r?.token&&!r.expired?b8(e,r.maskedValue):r?.token?w8(`oauth-token: login completed but the saved token is already expired`):(console.error(`[oauth-token] Provider ${e}: login completed but no token was saved`),w8(`oauth-token: login completed but no token was saved`))}async function Pse(e){try{return await e()!==null}catch{return!1}}function x8(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 Fse(e){let{getAccounts:t,getSelectedProvider:n,saveOAuthAccount:r}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await import(`./providers-mA21pCo6.js`).then(e=>e.r),o=x8(e,n,i,a);if(!o)return w8(`oauth-token --expire: no provider supports silent renewal`);let s=i(o);if(!s)return w8(`oauth-token --expire: unknown provider "${o}"`);if(!s.onSilentRenew)return w8(`oauth-token --expire: provider "${o}" has no onSilentRenew hook`);let c=t().find(e=>e.providerId===o);if(!c?.accessToken)return w8(`oauth-token --expire: no stored OAuth account for "${o}"`);try{await r({...c,accessToken:c.accessToken,tokenExpiresAt:Date.now()-1e3})}catch(e){return w8(`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 Ise(e){let{getSelectedProvider:t,getOAuthAccountInfo:n}=await import(`./account-store-BSkcgqia.js`).then(e=>e.r),{getRegisteredProviderConfig:r,getRegisteredProviderIds:i}=await import(`./providers-mA21pCo6.js`).then(e=>e.r),a=x8(e,t,r,i);if(!a)return w8(`oauth-token --renew: no provider supports silent renewal`);let o=r(a);if(!o)return w8(`oauth-token --renew: unknown provider "${a}"`);if(!o.onSilentRenew)return w8(`oauth-token --renew: provider "${a}" has no onSilentRenew hook`);let s=n(a),c=s?.token,l=[`oauth-token --renew ${a}`];l.push(` before: ${S8(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: ${S8(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(`
7235
7235
  `)+`
7236
7236
  `,stderr:``,exitCode:+!u}}function S8(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 Lse(e,t){let{parseInterceptOAuthConfig:n}=await import(`./intercepted-oauth-BIKnTjZm.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:r}=await import(`./oauth-service-Bbrrl8Mr.js`),i=await Rse(e,t);if(!i.ok)return i.result;let a=n(i.value);if(!a.ok)return w8(`oauth-token: invalid intercept config: ${a.error}`);let o=await r();if(!o)return w8(`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}:w8(`oauth-token: intercept timed out or was cancelled`)}function Rse(e,t){let n=e.indexOf(`--from-file`);return n>=0?zse(e[n+1],t):Bse(e)}async function zse(e,t){if(!e)return{ok:!1,result:w8(`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:w8(`oauth-token: failed to read ${e}: ${t instanceof Error?t.message:String(t)}`)}}}function Bse(e){let t=C8(e,`--authorize-url`),n=C8(e,`--redirect-pattern`);if(!t)return{ok:!1,result:w8(`oauth-token: --authorize-url is required`)};if(!n)return{ok:!1,result:w8(`oauth-token: --redirect-pattern is required`)};let r=Vse(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 Vse(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:w8(`oauth-token: --rewrite requires a value`)};let i=r.split(`=`);if(i.length<3)return{ok:!1,result:w8(`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 C8(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function w8(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function Hse(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
7237
7237
  `,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`)}}t.scopes&&n.push(`scopes: ${t.scopes}`),a.push(`${e} (${n.join(`, `)})`)}}return{stdout:a.join(`
@@ -7349,7 +7349,7 @@ Examples:
7349
7349
  plugin list
7350
7350
  plugin info my-plugin
7351
7351
  plugin remove my-plugin
7352
- `}function bce(e={}){return H(`plugin`,async(t,n)=>{if(t.length===0||t[0]===`--help`||t[0]===`-h`)return B8(yce());let r=t[0],i=t.slice(1),a=n?.cwd??`/`;try{switch(r){case`install`:case`add`:return await Sce(i,a,e);case`list`:case`ls`:return await Ece(i,e);case`info`:return await Dce(i,e);case`validate`:return await Oce(i,a,e);case`remove`:case`rm`:case`delete`:return await kce(i,e);default:return V8(`plugin: unknown subcommand "${r}" (try \`plugin --help\`)`)}}catch(e){return V8(`plugin ${r}: ${e instanceof Error?e.message:String(e)}`)}})}async function H8(e){if(e.fs)return e.fs;let{VirtualFS:t}=await import(`./fs-CrXC-O2d.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DJXlpNui.js`).then(e=>e.n);return t.create({dbName:n})}async function U8(e,t,n){let r=Ace(t,e);if(await n.exists(r))return{kind:`local`,root:r};let{parseGitHubRef:i}=await import(`./github-install-BdNHZlYI.js`).then(e=>e.t),a=i(e);if(a){let e=`${a.owner}/${a.repo}${a.branch?`@${a.branch}`:``}${a.path?`/${a.path}`:``}`;return{kind:`github`,ref:{...a,display:e}}}return{kind:`error`,message:`${r} does not exist and "${e}" is not a GitHub reference (owner/repo[@branch] or https://github.com/owner/repo[/tree/branch[/dir]])`}}function xce(e){let t=e.replace(/[^A-Za-z0-9._-]+/g,`-`);return/^\.+$/.test(t)?t.replace(/\./g,`_`):t}function W8(e){let t=[e.owner,e.repo,...e.path?[e.path]:[]];return`${z8}/${t.map(xce).join(`--`)}`}async function G8(e,t,n,r){let{fetchRepoZip:i,stripZipPrefix:a,writeZipFilesToDir:o}=await import(`./github-zip-CpmjWt7A.js`).then(e=>e.i),s=await i(e.owner,e.repo,r,e.branch);if(s.status===`error`)return`failed to download ${e.display}: ${s.message}`;let c=a(s.files),l=e.path?e.path.replace(/^\/|\/$/g,``)+`/`:``;if(!c[`${l}plugin.json`])return`no plugin.json found at ${e.display} — not an Agent Plugins package`;try{await n.rm(t,{recursive:!0})}catch{}return await n.mkdir(t,{recursive:!0}),(await o(c,l,t,n,!1)).length===0?`no files found at ${e.display}`:null}async function K8(e,t){try{await e.rm(t,{recursive:!0})}catch{}}async function Sce(e,t,n){if(e.includes(`--help`)||e.includes(`-h`))return B8(`usage: plugin install <path|repo>
7352
+ `}function bce(e={}){return H(`plugin`,async(t,n)=>{if(t.length===0||t[0]===`--help`||t[0]===`-h`)return B8(yce());let r=t[0],i=t.slice(1),a=n?.cwd??`/`;try{switch(r){case`install`:case`add`:return await Sce(i,a,e);case`list`:case`ls`:return await Ece(i,e);case`info`:return await Dce(i,e);case`validate`:return await Oce(i,a,e);case`remove`:case`rm`:case`delete`:return await kce(i,e);default:return V8(`plugin: unknown subcommand "${r}" (try \`plugin --help\`)`)}}catch(e){return V8(`plugin ${r}: ${e instanceof Error?e.message:String(e)}`)}})}async function H8(e){if(e.fs)return e.fs;let{VirtualFS:t}=await import(`./fs-Y-2f9vf-.js`).then(e=>e.t),{GLOBAL_FS_DB_NAME:n}=await import(`./global-db-DJXlpNui.js`).then(e=>e.n);return t.create({dbName:n})}async function U8(e,t,n){let r=Ace(t,e);if(await n.exists(r))return{kind:`local`,root:r};let{parseGitHubRef:i}=await import(`./github-install-XPjKx9g_.js`).then(e=>e.t),a=i(e);if(a){let e=`${a.owner}/${a.repo}${a.branch?`@${a.branch}`:``}${a.path?`/${a.path}`:``}`;return{kind:`github`,ref:{...a,display:e}}}return{kind:`error`,message:`${r} does not exist and "${e}" is not a GitHub reference (owner/repo[@branch] or https://github.com/owner/repo[/tree/branch[/dir]])`}}function xce(e){let t=e.replace(/[^A-Za-z0-9._-]+/g,`-`);return/^\.+$/.test(t)?t.replace(/\./g,`_`):t}function W8(e){let t=[e.owner,e.repo,...e.path?[e.path]:[]];return`${z8}/${t.map(xce).join(`--`)}`}async function G8(e,t,n,r){let{fetchRepoZip:i,stripZipPrefix:a,writeZipFilesToDir:o}=await import(`./github-zip-DJvZiicY.js`).then(e=>e.i),s=await i(e.owner,e.repo,r,e.branch);if(s.status===`error`)return`failed to download ${e.display}: ${s.message}`;let c=a(s.files),l=e.path?e.path.replace(/^\/|\/$/g,``)+`/`:``;if(!c[`${l}plugin.json`])return`no plugin.json found at ${e.display} — not an Agent Plugins package`;try{await n.rm(t,{recursive:!0})}catch{}return await n.mkdir(t,{recursive:!0}),(await o(c,l,t,n,!1)).length===0?`no files found at ${e.display}`:null}async function K8(e,t){try{await e.rm(t,{recursive:!0})}catch{}}async function Sce(e,t,n){if(e.includes(`--help`)||e.includes(`-h`))return B8(`usage: plugin install <path|repo>
7353
7353
 
7354
7354
  Loads the Agent Plugins package at <path>, or downloads it from a GitHub
7355
7355
  reference (owner/repo, owner/repo@branch, or
@@ -7360,19 +7360,19 @@ mcp.json. On success the plugin is recorded in
7360
7360
  /workspace/.plugins/plugins.json — its skills then surface through the
7361
7361
  standard skills discovery, and each supported streamable-http MCP server
7362
7362
  is registered in the MCP store as "<plugin>:<server>".
7363
- `);let r=e.filter(e=>!e.startsWith(`--`));if(r.length<1)return V8(`plugin install: expected <path|repo>`);let i=await H8(n),a=await U8(r[0],t,i);if(a.kind===`error`)return V8(`plugin install: ${a.message}`);let o,s;if(a.kind===`github`){if(!n.fetch)return V8(`plugin install: GitHub installs are unavailable (no network fetch configured)`);o=W8(a.ref),s=a.ref.display;let e=await G8(a.ref,o,i,n.fetch);if(e)return V8(`plugin install: ${e}`)}else o=a.root;let{loadPluginFromDirectory:c}=await import(`./loader-sgPDMLWT.js`),l=await c(i,o);if(!l.ok)return a.kind===`github`&&await K8(i,o),V8(`plugin install: plugin at ${s??o} was rejected:\n${q8(l.diagnostics)}`);let{plugin:u}=l,d=u.manifest.name,{getInstalledPlugin:f,setInstalledPlugin:p}=await import(`./store-BY8jHah-.js`),m=await f(d,n.fs);if(m&&m.root!==o)return a.kind===`github`&&await K8(i,o),V8(`plugin install: a plugin named "${d}" is already installed from ${m.root} (remove it first)`);let h=await Tce(u,n),g=await wce(d,m?.mcpServerNames,h.registered,n);return await p(d,{root:o,version:u.manifest.version,description:u.manifest.description,installedAt:new Date().toISOString(),mcpServerNames:h.registered,...s?{source:s}:{}},n.fs),B8(Cce(u,h,g,s??o,l.diagnostics))}function Cce(e,t,n,r,i){let a=e.manifest.name,o=t.registered,s=e.mcp.servers.filter(e=>e.status!==`supported`),c=[`Installed agent plugin "${a}"${e.manifest.version?` v${e.manifest.version}`:``} from ${r}`,` skills: ${e.skills.length}${e.skills.length>0?` (${e.skills.map(e=>e.name).join(`, `)})`:``}`,` mcp: ${o.length} registered${o.length>0?` (${o.join(`, `)})`:``}${s.length>0?`, ${s.length} skipped`:``}${n>0?`, ${n} removed from previous install`:``}`];return t.conflicts.length>0&&c.push(` warning: not bridged — MCP server name(s) already in use and not owned by this plugin: ${t.conflicts.join(`, `)} (remove them with \`mcp remove\` first)`),i.length>0&&c.push(`Diagnostics:`,q8(i)),c.join(`
7363
+ `);let r=e.filter(e=>!e.startsWith(`--`));if(r.length<1)return V8(`plugin install: expected <path|repo>`);let i=await H8(n),a=await U8(r[0],t,i);if(a.kind===`error`)return V8(`plugin install: ${a.message}`);let o,s;if(a.kind===`github`){if(!n.fetch)return V8(`plugin install: GitHub installs are unavailable (no network fetch configured)`);o=W8(a.ref),s=a.ref.display;let e=await G8(a.ref,o,i,n.fetch);if(e)return V8(`plugin install: ${e}`)}else o=a.root;let{loadPluginFromDirectory:c}=await import(`./loader-sgPDMLWT.js`),l=await c(i,o);if(!l.ok)return a.kind===`github`&&await K8(i,o),V8(`plugin install: plugin at ${s??o} was rejected:\n${q8(l.diagnostics)}`);let{plugin:u}=l,d=u.manifest.name,{getInstalledPlugin:f,setInstalledPlugin:p}=await import(`./store-C-zQM6gR.js`),m=await f(d,n.fs);if(m&&m.root!==o)return a.kind===`github`&&await K8(i,o),V8(`plugin install: a plugin named "${d}" is already installed from ${m.root} (remove it first)`);let h=await Tce(u,n),g=await wce(d,m?.mcpServerNames,h.registered,n);return await p(d,{root:o,version:u.manifest.version,description:u.manifest.description,installedAt:new Date().toISOString(),mcpServerNames:h.registered,...s?{source:s}:{}},n.fs),B8(Cce(u,h,g,s??o,l.diagnostics))}function Cce(e,t,n,r,i){let a=e.manifest.name,o=t.registered,s=e.mcp.servers.filter(e=>e.status!==`supported`),c=[`Installed agent plugin "${a}"${e.manifest.version?` v${e.manifest.version}`:``} from ${r}`,` skills: ${e.skills.length}${e.skills.length>0?` (${e.skills.map(e=>e.name).join(`, `)})`:``}`,` mcp: ${o.length} registered${o.length>0?` (${o.join(`, `)})`:``}${s.length>0?`, ${s.length} skipped`:``}${n>0?`, ${n} removed from previous install`:``}`];return t.conflicts.length>0&&c.push(` warning: not bridged — MCP server name(s) already in use and not owned by this plugin: ${t.conflicts.join(`, `)} (remove them with \`mcp remove\` first)`),i.length>0&&c.push(`Diagnostics:`,q8(i)),c.join(`
7364
7364
  `)+`
7365
- `}async function wce(e,t,n,r){let i=(t??[]).filter(e=>!n.includes(e));if(i.length===0)return 0;let{deleteServer:a,getServer:o}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),s=0;for(let t of i)(await o(t,r.fs))?.pluginOrigin===e&&await a(t,r.fs)&&(s+=1);return s}async function Tce(e,t){let n=e.mcp.servers.filter(e=>e.status===`supported`);if(n.length===0)return{registered:[],conflicts:[]};let{getServer:r,setServer:i}=await import(`./store-DLe-z7qR.js`).then(e=>e.r),{McpClient:a}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),o=[],s=[];for(let c of n){let n=c.config,l=`${e.manifest.name}:${c.name}`,u=await r(l,t.fs);if(u&&u.pluginOrigin!==e.manifest.name){s.push(l);continue}let d=[];try{let e=new a({url:n.url,headers:n.headers});await e.initialize(),d=await e.toolsList()}catch{}await i(l,{url:n.url,...n.headers?{headers:n.headers}:{},tools:d,addedAt:new Date().toISOString(),pluginOrigin:e.manifest.name},t.fs),o.push(l)}return{registered:o,conflicts:s}}async function Ece(e,t){if(e.includes(`--help`)||e.includes(`-h`))return B8(`usage: plugin list
7366
- `);let{listInstalledPlugins:n}=await import(`./store-BY8jHah-.js`),r=await n(t.fs),i=Object.keys(r).sort();if(i.length===0)return B8("No agent plugins installed. Use `plugin install <path>`.\n");let a=[[`NAME`,`VERSION`,`ROOT`,`MCP`]];for(let e of i){let t=r[e];a.push([e,t.version??`-`,t.root,String(t.mcpServerNames?.length??0)])}let o=a[0].map((e,t)=>Math.max(...a.map(e=>e[t].length)));return B8(a.map(e=>e.map((e,t)=>e.padEnd(o[t])).join(` `)).join(`
7365
+ `}async function wce(e,t,n,r){let i=(t??[]).filter(e=>!n.includes(e));if(i.length===0)return 0;let{deleteServer:a,getServer:o}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),s=0;for(let t of i)(await o(t,r.fs))?.pluginOrigin===e&&await a(t,r.fs)&&(s+=1);return s}async function Tce(e,t){let n=e.mcp.servers.filter(e=>e.status===`supported`);if(n.length===0)return{registered:[],conflicts:[]};let{getServer:r,setServer:i}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r),{McpClient:a}=await import(`./client-BTUV7dbh.js`).then(e=>e.n),o=[],s=[];for(let c of n){let n=c.config,l=`${e.manifest.name}:${c.name}`,u=await r(l,t.fs);if(u&&u.pluginOrigin!==e.manifest.name){s.push(l);continue}let d=[];try{let e=new a({url:n.url,headers:n.headers});await e.initialize(),d=await e.toolsList()}catch{}await i(l,{url:n.url,...n.headers?{headers:n.headers}:{},tools:d,addedAt:new Date().toISOString(),pluginOrigin:e.manifest.name},t.fs),o.push(l)}return{registered:o,conflicts:s}}async function Ece(e,t){if(e.includes(`--help`)||e.includes(`-h`))return B8(`usage: plugin list
7366
+ `);let{listInstalledPlugins:n}=await import(`./store-C-zQM6gR.js`),r=await n(t.fs),i=Object.keys(r).sort();if(i.length===0)return B8("No agent plugins installed. Use `plugin install <path>`.\n");let a=[[`NAME`,`VERSION`,`ROOT`,`MCP`]];for(let e of i){let t=r[e];a.push([e,t.version??`-`,t.root,String(t.mcpServerNames?.length??0)])}let o=a[0].map((e,t)=>Math.max(...a.map(e=>e[t].length)));return B8(a.map(e=>e.map((e,t)=>e.padEnd(o[t])).join(` `)).join(`
7367
7367
  `)+`
7368
7368
  `)}async function Dce(e,t){if(e.length===0||wZ(e))return e.length===0?V8(`plugin info: expected <name>`):B8(`usage: plugin info <name>
7369
- `);let n=e[0],{getInstalledPlugin:r}=await import(`./store-BY8jHah-.js`),i=await r(n,t.fs);if(!i)return V8(`plugin info: no installed plugin named "${n}"`);let a=await H8(t),{loadPluginFromDirectory:o}=await import(`./loader-sgPDMLWT.js`),s=await o(a,i.root);if(!s.ok)return V8(`plugin info: plugin at ${i.root} no longer loads:\n${q8(s.diagnostics)}`);let{plugin:c}=s,l=c.manifest,u=[`${l.name}${l.version?` v${l.version}`:``}`,...l.description?[` ${l.description}`]:[],` root: ${c.root}`,...l.license?[` license: ${l.license}`]:[],...l.homepage?[` home: ${l.homepage}`]:[],``,`Skills (${c.skills.length}):`,...c.skills.map(e=>` ${e.name} ${e.description}`),``,`MCP servers (${c.mcp.servers.length}):`,...c.mcp.servers.map(e=>e.status===`supported`?` ${e.name} ${e.config.type} ${e.config.url}`:` ${e.name} [skipped: ${e.reason}]`)];return s.diagnostics.length>0&&u.push(``,`Diagnostics:`,q8(s.diagnostics)),B8(u.join(`
7369
+ `);let n=e[0],{getInstalledPlugin:r}=await import(`./store-C-zQM6gR.js`),i=await r(n,t.fs);if(!i)return V8(`plugin info: no installed plugin named "${n}"`);let a=await H8(t),{loadPluginFromDirectory:o}=await import(`./loader-sgPDMLWT.js`),s=await o(a,i.root);if(!s.ok)return V8(`plugin info: plugin at ${i.root} no longer loads:\n${q8(s.diagnostics)}`);let{plugin:c}=s,l=c.manifest,u=[`${l.name}${l.version?` v${l.version}`:``}`,...l.description?[` ${l.description}`]:[],` root: ${c.root}`,...l.license?[` license: ${l.license}`]:[],...l.homepage?[` home: ${l.homepage}`]:[],``,`Skills (${c.skills.length}):`,...c.skills.map(e=>` ${e.name} ${e.description}`),``,`MCP servers (${c.mcp.servers.length}):`,...c.mcp.servers.map(e=>e.status===`supported`?` ${e.name} ${e.config.type} ${e.config.url}`:` ${e.name} [skipped: ${e.reason}]`)];return s.diagnostics.length>0&&u.push(``,`Diagnostics:`,q8(s.diagnostics)),B8(u.join(`
7370
7370
  `)+`
7371
7371
  `)}async function Oce(e,t,n){if(e.length===0||wZ(e))return e.length===0?V8(`plugin validate: expected <path|repo>`):B8(`usage: plugin validate <path|repo>
7372
7372
  `);let r=await H8(n),i=await U8(e[0],t,r);if(i.kind===`error`)return V8(`plugin validate: ${i.message}`);let a,o=null;if(i.kind===`github`){if(!n.fetch)return V8(`plugin validate: GitHub sources are unavailable (no network fetch configured)`);o=`/tmp/.plugin-validate/${W8(i.ref).split(`/`).pop()}`;let e=await G8(i.ref,o,r,n.fetch);if(e)return V8(`plugin validate: ${e}`);a=o}else a=i.root;let{loadPluginFromDirectory:s}=await import(`./loader-sgPDMLWT.js`),c;try{c=await s(r,a)}finally{o&&await K8(r,o)}if(!c.ok)return{stdout:``,stderr:`plugin validate: REJECTED\n${q8(c.diagnostics)}\n`,exitCode:1};let{plugin:l}=c,u=l.mcp.servers.filter(e=>e.status===`supported`).length,d=[`plugin validate: OK — "${l.manifest.name}"${l.manifest.version?` v${l.manifest.version}`:``}`,` skills: ${l.skills.length}`,` mcp servers: ${u} supported, ${l.mcp.servers.length-u} skipped (mcp.json ${l.mcp.status})`];return c.diagnostics.length>0&&d.push(`Diagnostics:`,q8(c.diagnostics)),B8(d.join(`
7373
7373
  `)+`
7374
7374
  `)}async function kce(e,t){if(e.length===0||wZ(e))return e.length===0?V8(`plugin remove: expected <name>`):B8(`usage: plugin remove <name>
7375
- `);let n=e[0],{getInstalledPlugin:r,deleteInstalledPlugin:i}=await import(`./store-BY8jHah-.js`),a=await r(n,t.fs);if(!a)return V8(`plugin remove: no installed plugin named "${n}"`);let o=0;if(a.mcpServerNames&&a.mcpServerNames.length>0){let{deleteServer:e,getServer:r}=await import(`./store-DLe-z7qR.js`).then(e=>e.r);for(let i of a.mcpServerNames)(await r(i,t.fs))?.pluginOrigin===n&&await e(i,t.fs)&&(o+=1)}await i(n,t.fs);let s=a.root.startsWith(`${z8}/`);return s&&await K8(await H8(t),a.root),B8([`Removed agent plugin "${n}"`,` registry: removed`,` mcp servers: ${o} removed`,s?` files: removed (${a.root})`:` files: left in place (${a.root})`].join(`
7375
+ `);let n=e[0],{getInstalledPlugin:r,deleteInstalledPlugin:i}=await import(`./store-C-zQM6gR.js`),a=await r(n,t.fs);if(!a)return V8(`plugin remove: no installed plugin named "${n}"`);let o=0;if(a.mcpServerNames&&a.mcpServerNames.length>0){let{deleteServer:e,getServer:r}=await import(`./store-SbJ_6YJe.js`).then(e=>e.r);for(let i of a.mcpServerNames)(await r(i,t.fs))?.pluginOrigin===n&&await e(i,t.fs)&&(o+=1)}await i(n,t.fs);let s=a.root.startsWith(`${z8}/`);return s&&await K8(await H8(t),a.root),B8([`Removed agent plugin "${n}"`,` registry: removed`,` mcp servers: ${o} removed`,s?` files: removed (${a.root})`:` files: left in place (${a.root})`].join(`
7376
7376
  `)+`
7377
7377
  `)}function Ace(e,t){let n=t.startsWith(`/`)?t:`${e.replace(/\/$/,``)}/${t}`,r=[];for(let e of n.split(`/`))e!==``&&e!==`.`&&(e===`..`?r.pop():r.push(e));return`/${r.join(`/`)}`}function q8(e){return e.map(e=>` ${e.level===`error`?`error`:`warn `} [${e.component}] ${e.message}`).join(`
7378
7378
  `)}const J8=[`pid`,`ppid`,`kind`,`stat`,`start`,`scoop`,`command`],jce=[`pid`,`ppid`,`stat`,`start`,`scoop`,`command`],Mce={running:`R`,pending:`S`,exited:`Z`,killed:`K`};function Nce(e={}){return H(`ps`,async t=>{if(t.includes(`--help`)||t.includes(`-h`))return Gce();let n=e.processManager??Pce();if(!n)return{stdout:``,stderr:`ps: no process manager available in this runtime
@@ -9068,7 +9068,7 @@ ${e}
9068
9068
  ${i?`CONE`:`SCOOP`} MEMORY (${this.scoop.name}):
9069
9069
  ${t}
9070
9070
  ---`);let c=vx(n);return c&&(s+=c),s}};const P9=r(`scoop-lifecycle-manager`);var Vhe=class{deps;units=new Map;constructor(e){this.deps=e}getUnit(e){return this.units.get(e)}ensureUnit(e){let t=this.units.get(e);return(!t||t.isClosed)&&(t=new $x(e,{getScoop:e=>this.deps.getScoops().get(e),sendPrompt:(e,t,n,r,i)=>this.sendPrompt(e,t,n,r,[],i),clearIdleTimer:e=>this.deps.idleTimers.clear(e),forgetCompletion:(e,t)=>this.deps.completionService.forgetScoop(e,t),unregister:e=>this.unregister(e)}),this.units.set(e,t)),t}getContexts(){let e=new Map;for(let[t,n]of this.units)n.context&&e.set(t,n.context);return e}getContext(e){return this.units.get(e)?.context??void 0}syncReadGrants(e){for(let t of this.deps.getScoops().values()){if(e!==void 0&&t.folder!==e)continue;let n=this.getContext(t.jid)?.getFS();this.applyPolicyReadGrants(t,n)}}getTab(e){return this.units.get(e)?.tab??void 0}observe(e,t){return this.ensureUnit(e).observe(t)}dispatch(e,t,...n){this.units.get(e)?.dispatch(t,...n)}parentOf(e){let t=this.deps.getScoops();return(e.parentJid===null?void 0:t.get(e.parentJid))??wh(t.values())[0]}rootOf(e){let t=this.deps.getScoops(),n=new Set,r=e;for(;r&&r.parentJid!==null&&!n.has(r.jid);)n.add(r.jid),r=t.get(r.parentJid);return r??wh(t.values())[0]}async ensureSudoersLoaded(e){let t=this.deps.getSudoManager(),n=this.deps.getSharedFs();if(!(!t||!n))try{let r=`/scoops/${e.folder}/etc/sudoers`;await n.exists(r)?await t.reloadScoopPolicyByFolder(e.folder):await t.seedScoopSudoers(e.folder,e.config)}catch(t){P9.warn(`Failed to seed per-scoop sudoers; continuing with existing policy`,{folder:e.folder,error:t instanceof Error?t.message:String(t)})}}applyPolicyReadGrants(e,t){if(!(t instanceof or))return;let n=this.deps.getSudoManager()?.getPolicyForScoop(e.folder);n&&t.setReadGrants(n.read.filter(e=>e.nopasswd).map(e=>e.pattern))}async createTab(e){let t=this.deps.getScoops().get(e);if(!t)throw Error(`Scoop not found: ${e}`);let n=this.ensureUnit(e);if(n.context)if(n.tab?.status===`error`)P9.info(`Re-creating context after error`,{jid:e}),n.disposeContext();else{P9.debug(`Context already exists`,{jid:e});return}let r=this.deps.getSharedFs();if(!r)throw Error(`Shared filesystem not initialized`);let i=`scoop-${t.folder}-${Date.now()}`,a=Rg(t).policy.filesystem,o=a.kind===`full-workspace`?r:new or(r,[...a.writablePaths],[...a.visiblePaths],`sudo-delegated`);a.kind===`restricted`&&(await this.ensureSudoersLoaded(t),this.applyPolicyReadGrants(t,o));let s=this.buildContextCallbacks(e,t),c=this.rootOf(t)?.jid,l=new Bhe(t,s,o,this.deps.getSessionStore()??void 0,r??void 0,c,this.deps.getProcessManager()??void 0,this.deps.getSudoManager());n.attachContext(l,i),await l.init(),n.tab?.status===`initializing`&&n.transition(`ready`)&&(this.deps.callbacks.onStatusChange(e,`ready`),this.dispatch(e,`onStatusChange`,`ready`),Promise.resolve().then(()=>this.deps.messageRouter.flushOnIdle(e)).catch(t=>{P9.warn(`Initial idle queue probe failed`,{jid:e,error:t instanceof Error?t.message:String(t)})}));let u=this.deps.getScoops().get(e);u&&u.parentJid!==null&&this.deps.idleTimers.start(e),P9.info(`Scoop context created`,{jid:e,contextId:i})}destroyTab(e){this.deps.idleTimers.clear(e);let t=this.units.get(e);t&&(t.teardown(),this.units.delete(e),P9.info(`Scoop context destroyed`,{jid:e}))}getTabsMap(){let e=new Map;for(let[t,n]of this.units)n.tab&&e.set(t,n.tab);return e}markTabError(e,t){let n=this.ensureUnit(e);n.transition(`error`,{contextId:n.tab?.contextId??`scoop-error-${e}`,error:t})}dispatchEvent(e,t,...n){this.dispatch(e,t,...n)}stopAndClearAllContexts(){for(let e of this.units.values())e.detachContext()}async destroyAllTabs(){for(let e of Array.from(this.units.keys()))this.destroyTab(e)}async waitForTabReady(e,t=1e4){let n=Date.now();for(;Date.now()-n<t;){let t=this.getTab(e);if(!t)return!1;if(t.status===`ready`||t.status===`processing`)return!0;if(t.status===`error`)return!1;await new Promise(e=>setTimeout(e,100))}return P9.warn(`Timed out waiting for tab to become ready`,{jid:e}),!1}async sendPrompt(e,t,n,r,i=[],a){let o=this.getContext(e);o||=(await this.createTab(e),this.getContext(e));let s=this.units.get(e);if(s?.tab?.status===`initializing`){if(P9.debug(`Context initializing, waiting to send message`,{jid:e}),!await this.waitForTabReady(e)){P9.error(`Context did not become ready in time, dropping prompt`,{jid:e});return}o=this.getContext(e)}if(!o||!s){P9.error(`Context not found after creation`,{jid:e});return}this.deps.idleTimers.clear(e),this.deps.completionService.clearResponse(e),s.tab&&s.transition(`processing`)&&(this.deps.callbacks.onStatusChange(e,`processing`),this.dispatch(e,`onStatusChange`,`processing`)),P9.debug(`Prompt sent to scoop`,{jid:e,textLength:t.length,imageCount:i.length}),await o.prompt(t,i,a)}async register(e){let t=this.deps.getScoops();Hg(e),await this.deps.db.saveScoop(e),t.set(e.jid,e),this.deps.messageRouter.ensureQueue(e.jid),P9.info(`Scoop registered`,{jid:e.jid,name:e.name});try{await this.createTab(e.jid),e.parentJid!==null&&Er(`spawn`,e.folder)}catch(n){P9.error(`Scoop init failed`,{jid:e.jid,name:e.name,error:n instanceof Error?n.message:String(n)});try{this.destroyTab(e.jid)}catch(t){P9.warn(`Failed to destroy scoop runtime during init rollback`,{jid:e.jid,name:e.name,error:t instanceof Error?t.message:String(t)})}throw t.delete(e.jid),this.deps.messageRouter.forgetScoop(e.jid),await this.deps.db.deleteScoop(e.jid).catch(t=>{P9.warn(`Failed to rollback scoop registration`,{jid:e.jid,name:e.name,error:t instanceof Error?t.message:String(t)})}),n}}async unregister(e){let t=this.deps.getScoops(),n=t.get(e);if(n&&n.parentJid===null&&wh(t.values()).length<=1)throw Error(`Cannot drop the last cone`);let r=this.deps.getLickManager();if(n&&r){let{webhooks:e,cronTasks:t}=await r.getLicksForScoopFromDb(n.name,n.folder),i=this.deps.buildActiveLicksError(n.folder,e,t);if(i)throw i}this.deps.costTracker.snapshot(e);let i=globalThis.__slicc_wsSubscribers;i&&i.dropForScoop(e).catch(t=>{P9.warn(`dropForScoop (ws subscribers) failed`,{jid:e,error:t instanceof Error?t.message:String(t)})}),this.destroyTab(e),this.deps.getSessionStore()?.delete(e).catch(t=>{P9.warn(`Failed to delete agent session`,{jid:e,error:t instanceof Error?t.message:String(t)})}),await this.deps.db.deleteScoop(e),t.delete(e),this.deps.messageRouter.forgetScoop(e),this.deps.completionService.forgetScoop(e,`unregister`);let a=this.deps.approvalRouter.failScoop(e);if(a>0&&P9.info(`Failed-closed pending sudo requests for unregistered scoop`,{jid:e,count:a}),P9.info(`Scoop unregistered`,{jid:e}),n)try{this.deps.callbacks.onScoopUnregistered?.(n)}catch(t){P9.warn(`onScoopUnregistered callback threw`,{jid:e,error:t instanceof Error?t.message:String(t)})}}updateModelOnAll(){let e=this.getContexts();for(let t of e.values())t.updateModel();P9.info(`Model updated on all active contexts`,{contextCount:e.size})}async reloadAllSkills(){let e=[];for(let[t,n]of this.getContexts()){let r=this.getTab(t);(r?.status===`ready`||r?.status===`processing`)&&e.push(n.reloadSkills().catch(e=>{P9.warn(`Failed to reload skills for scoop`,{jid:t,error:e instanceof Error?e.message:String(e)})}))}await Promise.all(e),P9.info(`Skills reloaded across all contexts`,{count:e.length})}async setThinkingLevel(e,t,n){let r=this.deps.getScoops().get(e);if(!r)return null;let i=this.getContext(e),a=i?i.setThinkingLevel(t,n):null;if(t===void 0){if(r.config&&r.config.thinkingLevel!==void 0){let{thinkingLevel:e,effortOverride:t,...n}=r.config;r.config=n}}else r.config={...r.config??{},thinkingLevel:t,effortOverride:n};try{await this.deps.db.saveScoop(r)}catch(t){P9.warn(`Failed to persist thinkingLevel`,{jid:e,error:t instanceof Error?t.message:String(t)})}return a}buildContextCallbacks(e,t){let{callbacks:n,completionService:r,cone:i}=this.deps,a=()=>this.deps.getScoops(),{policy:o,completion:s}=Rg(t),c=s.mode!==`interactive`;return{onResponse:(t,i)=>{a().has(e)&&(n.onResponse(e,t,i),this.dispatch(e,`onResponse`,t,i),c&&(i?r.appendResponseChunk(e,t):r.setResponseFull(e,t)))},onResponseDone:()=>{a().has(e)&&(this.units.get(e)?.touch(),n.onResponseDone(e))},onError:r=>{a().has(e)&&(this.units.get(e)?.transition(`error`,{error:r}),Er(`error`,t.folder,r),n.onError(e,r),n.onStatusChange(e,`error`),this.dispatch(e,`onError`,r),this.dispatch(e,`onStatusChange`,`error`))},onFatalError:t=>this.handleFatalError(e,t),onStatusChange:t=>{a().has(e)&&(this.units.get(e)?.transition(t),n.onStatusChange(e,t),this.dispatch(e,`onStatusChange`,t),t===`ready`&&this.deps.messageRouter.flushOnIdle(e),t===`ready`&&c&&r.notifyCompletion(e))},onCompactionStateChange:t=>{n.onCompactionStateChange?.(e,t)},onToolStart:(t,r)=>{n.onToolStart?.(e,t,r)},onToolEnd:(t,r,i)=>{n.onToolEnd?.(e,t,r,i)},onToolUI:(t,r,i)=>{n.onToolUI?.(e,t,r,i)},onToolUIDone:t=>{n.onToolUIDone?.(e,t)},onToolProgress:(t,r)=>{n.onToolProgress?.(e,t,r)},onSendMessage:(t,r)=>{let i=`${r?`[${r}] `:``}${t}`;n.onSendMessage(e,i),this.dispatch(e,`onSendMessage`,t)},getScoops:()=>i.getScoops(),getScoopTabState:o.canManageChildren?e=>this.getTab(e):void 0,onFeedScoop:o.canManageChildren?(e,n)=>i.delegateToScoop(e,n,t.assistantLabel):void 0,onScoopScoop:o.canCreateChildren?async e=>{let n={...e,jid:`scoop_${e.folder}_${Date.now()}`,parentJid:t.jid};return await i.registerScoop(n),n}:void 0,onDropScoop:o.canManageChildren?async e=>{await i.unregisterScoop(e)}:void 0,onMuteScoops:o.canManageChildren?e=>i.muteScoops(e):void 0,onUnmuteScoops:o.canManageChildren?e=>i.unmuteScoops(e):void 0,onScheduleScoopWait:o.canManageChildren?(e,t)=>i.scheduleScoopWait(e,t):void 0,getGlobalMemory:()=>i.getGlobalMemory(),setGlobalMemory:o.canWriteSharedMemory?e=>i.setGlobalMemory(e):void 0,appendConeMemory:o.canWriteSharedMemory?(e,t)=>i.appendConeMemory(e,t):void 0,onSudoRequest:o.approvalAuthority===`user`?void 0:t=>i.enqueueSudoRequest(e,t),onSudoResolve:o.canResolveApprovals?(e,t)=>i.resolveActionableLick(e,t):void 0,onListSudoRequests:o.canResolveApprovals?()=>i.listPendingSudoRequests():void 0,getBrowserAPI:()=>n.getBrowserAPI()}}handleFatalError(e,t){let n=this.deps.getScoops();if(!n.has(e))return;let r=n.get(e);if(P9.error(`Fatal scoop error`,{jid:e,folder:r.folder,error:t}),Er(`error`,r.folder,t),this.units.get(e)?.transition(`error`,{error:t}),this.deps.callbacks.onError(e,t),this.deps.callbacks.onStatusChange(e,`error`),this.dispatch(e,`onError`,t),this.dispatch(e,`onStatusChange`,`error`),Rg(r).completion.mode===`interactive`)return;this.deps.completionService.forgetScoop(e,`fatal-error`);let i=this.parentOf(r);if(!i)return;let a={id:`scoop-error-${e}-${Date.now()}`,chatJid:i.jid,senderId:r.folder,senderName:r.assistantLabel,content:`[@${r.assistantLabel} FAILED]: ${t}`,timestamp:new Date().toISOString(),fromAssistant:!1,channel:`scoop-error`};try{this.deps.callbacks.onIncomingMessage?.(i.jid,a)}catch(e){P9.warn(`onIncomingMessage for scoop-error threw`,{scoop:r.folder,error:e instanceof Error?e.message:String(e)})}this.deps.handleMessage(a).catch(e=>{P9.error(`Failed to route fatal error to cone`,{scoop:r.folder,error:e instanceof Error?e.message:String(e)})})}};const F9=r(`scoop-message-router`);var Hhe=class{deps;messageQueues=new Map;lastAgentTimestamp=new Map;pollInterval=null;debounceStates=new Map;processing=new Map;busyDeferrals=new Map;constructor(e){this.deps=e}ensureQueue(e){this.messageQueues.has(e)||this.messageQueues.set(e,[])}setLastAgentTimestamp(e,t){this.lastAgentTimestamp.set(e,t)}forgetScoop(e){this.cancelDebounce(e),this.messageQueues.delete(e),this.lastAgentTimestamp.delete(e),this.clearBusyDeferral(e)}async handleMessage(e){if(F9.info(`handleMessage`,{id:e.id,chatJid:e.chatJid,sender:e.senderName,channel:e.channel,contentPreview:e.content.slice(0,80)}),this.deps.isExternalLickChannel(e.channel))try{this.deps.notifyIncomingMessage(e.chatJid,e)}catch(t){F9.warn(`onIncomingMessage for external lick channel threw`,{channel:e.channel,error:t instanceof Error?t.message:String(t)})}await this.deps.db.saveMessage(e),await this.routeToScoop(e)}async delegateToScoop(e,t,n){let r=this.deps.getScoops().get(e);if(!r)throw Error(`Scoop not found: ${e}`);Er(`feed`,r.folder);let i={id:`delegate-${Date.now()}-${Math.random().toString(36).slice(2)}`,chatJid:e,senderId:`cone`,senderName:n,content:t,timestamp:new Date().toISOString(),fromAssistant:!0,channel:`delegation`};await this.deps.db.saveMessage(i),this.deps.notifyIncomingMessage(e,i),F9.info(`Delegating to scoop`,{scoopJid:e,scoopName:r.name,promptLength:t.length}),this.deps.sendPrompt(e,t,`cone`,n).catch(t=>{let n=t instanceof Error?t.message:String(t);F9.error(`Delegation failed`,{scoopJid:e,error:n}),this.deps.onError(e,`Delegation failed: ${n}`)})}async routeToScoop(e){let t=this.deps.getScoops().get(e.chatJid);if(!t){F9.info(`routeToScoop: unregistered target`,{chatJid:e.chatJid});return}if(!this.passesTriggerGate(t,e)){F9.info(`routeToScoop: trigger not found in content`,{chatJid:e.chatJid,trigger:t.trigger,contentPreview:e.content.slice(0,80)});return}let n=this.messageQueues.get(e.chatJid)??[];n.push(e),this.messageQueues.set(e.chatJid,n);let r=this.deps.getTabs().get(e.chatJid);if(F9.debug(`routeToScoop: queued`,{chatJid:e.chatJid,scoopName:t.name,tabStatus:r?.status??`no-tab`,queueLength:n.length}),r?.status===`error`){F9.info(`routeToScoop: tab in error state, retrying init`,{chatJid:e.chatJid});try{await this.deps.createScoopTab(e.chatJid),r=this.deps.getTabs().get(e.chatJid)}catch{F9.warn(`routeToScoop: retry init failed`,{chatJid:e.chatJid})}}if(r?.status===`ready`||r?.status===`processing`){if(this.deps.isExternalLickChannel(e.channel)){await this.scheduleScoopQueue(e.chatJid,e.id);return}await this.flushScoopQueue(e.chatJid)}}passesTriggerGate(e,t){let n=t.channel===`webhook`||t.channel===`cron`||t.channel===`fswatch`||t.channel===`sprinkle`||t.channel===`bash`;return!e||e.parentJid===null||!e.requiresTrigger||!e.trigger||n||t.content.includes(e.trigger)}scheduleScoopQueue(e,t){let n=this.debounceStates.get(e)??{startedAt:Date.now(),waiters:[]};n.timer!==void 0&&clearTimeout(n.timer);let r=new Promise((e,r)=>{n.waiters.push({messageId:t,resolve:e,reject:r})}),i=Math.max(0,3e3-(Date.now()-n.startedAt));return n.timer=setTimeout(()=>{n.timer=void 0,this.flushScoopQueue(e).catch(t=>{let n=t instanceof Error?t.message:String(t);F9.error(`Debounced message queue processing failed`,{jid:e,error:n}),this.deps.onError(e,`Queue processing failed: ${n}`)})},Math.min(1e3,i)),this.debounceStates.set(e,n),r}async flushScoopQueue(e){let t=this.takeDebounce(e);if(t&&this.processing.has(e)&&this.shouldDeferQueuedLicks(e)){for(let e of t.waiters)e.resolve();this.recordBusyDeferral(e,this.messageQueues.get(e)?.length??0);return}try{await this.processScoopQueue(e);for(let e of t?.waiters??[])e.resolve()}catch(e){for(let n of t?.waiters??[])n.reject(e);throw e}}async flushOnIdle(e){if(this.messageQueues.has(e))try{await this.flushScoopQueue(e)}catch(t){let n=t instanceof Error?t.message:String(t);F9.error(`Idle message queue processing failed`,{jid:e,error:n}),this.deps.onError(e,`Queue processing failed: ${n}`)}}shouldDeferQueuedLicks(e){let t=this.messageQueues.get(e);return t!==void 0&&t.length>0&&t.every(e=>this.deps.isExternalLickChannel(e.channel))}recordBusyDeferral(e,t){let n=this.busyDeferrals.get(e)??{startedAt:Date.now(),reported:!1,count:t??0};t!==void 0&&(n.count=t),this.busyDeferrals.set(e,n);let r=Date.now()-n.startedAt;if(n.reported||r<3e5)return;n.reported=!0;let i=`Lick queue remained deferred while scoop was busy for ${3e5/1e3}s`;F9.warn(`Busy lick queue may be starved`,{jid:e,error:i}),this.emitLickBackpressure(e,{count:n.count,waitingMs:r})}clearBusyDeferral(e){let t=this.busyDeferrals.get(e);this.busyDeferrals.delete(e),t?.reported&&this.emitLickBackpressure(e,{count:0,waitingMs:Date.now()-t.startedAt})}emitLickBackpressure(e,t){try{this.deps.onLickBackpressure?.(e,t)}catch(t){F9.warn(`Lick backpressure callback failed`,{jid:e,error:t instanceof Error?t.message:String(t)})}}takeDebounce(e){let t=this.debounceStates.get(e);return t?.timer!==void 0&&clearTimeout(t.timer),this.debounceStates.delete(e),t}cancelDebounce(e){let t=this.takeDebounce(e);for(let e of t?.waiters??[])e.resolve()}cancelDebounces(){for(let e of this.debounceStates.keys())this.cancelDebounce(e)}cancelDebounceWaiter(e,t){let n=this.debounceStates.get(e);if(!n)return;let r=[];for(let e of n.waiters)e.messageId===t?e.resolve():r.push(e);n.waiters=r,r.length===0&&this.cancelDebounce(e)}async processScoopQueue(e){let t=this.processing.get(e);if(t){t.rerun=!0,await t.done.catch(()=>{});return}let n={rerun:!1,done:Promise.resolve()};return this.processing.set(e,n),n.done=this.drainScoopQueue(e,n),n.done}async drainScoopQueue(e,t){let n=!1,r;try{do{t.rerun=!1;try{await this.runScoopQueue(e)}catch(e){n||(n=!0,r=e)}}while(t.rerun)}finally{this.processing.delete(e)}if(n)throw r}async runScoopQueue(e){let t=this.messageQueues.get(e);if(!t){F9.debug(`processScoopQueue: queue not registered`,{jid:e});return}let n=this.deps.getTabs().get(e);if(n?.status!==`ready`&&n?.status!==`processing`){F9.debug(`processScoopQueue: tab not ready`,{jid:e,status:n?.status??`no-tab`});return}let r=this.deps.getScoops().get(e),i=r?.assistantLabel??e,a=this.lastAgentTimestamp.get(e)??``,o=await this.deps.db.getMessagesSince(e,a,i),s=o.filter(e=>this.passesTriggerGate(r,e));if(F9.debug(`processScoopQueue: DB query`,{jid:e,scoopName:r?.name,excludeName:i,since:a,dbMessageCount:o.length,eligibleMessageCount:s.length,queueLength:t.length}),o.length===0){F9.debug(`processScoopQueue: no messages from DB, clearing queue`,{jid:e}),this.messageQueues.set(e,[]),this.clearBusyDeferral(e);return}if(s.length===0){F9.debug(`processScoopQueue: no messages passed trigger gate, clearing queue`,{jid:e}),this.messageQueues.set(e,[]),this.clearBusyDeferral(e);let t=wn(Ln(On(a),o));this.lastAgentTimestamp.set(e,t),await this.deps.db.setState(`lastAgentTs_${e}`,t);return}if(s.every(e=>this.deps.isExternalLickChannel(e.channel))&&this.deps.getContexts().get(e)?.isBusy){F9.debug(`processScoopQueue: deferring lick batch while scoop is busy`,{jid:e,messageCount:s.length}),this.recordBusyDeferral(e,s.length);return}this.clearBusyDeferral(e);let c=s.map(e=>`[${new Date(e.timestamp).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}] ${e.senderName}: ${ph(e.content,e.attachments)}`).join(`
9071
- `),l=s.flatMap(e=>mh(e.attachments));this.messageQueues.set(e,[]);let u=s[s.length-1],d=wn(Ln(On(a),o));this.lastAgentTimestamp.set(e,d),await this.deps.db.setState(`lastAgentTs_${e}`,d);let f=s.some(e=>e.steer);await this.deps.sendPrompt(e,c,u.senderId,u.senderName,l,{steer:f})}startMessageLoop(){this.pollInterval||=setInterval(()=>{let e=this.deps.getTabs();for(let t of this.deps.getScoops().keys()){let n=e.get(t);this.recordBusyDeferralIfPresent(t);let r=(this.messageQueues.get(t)?.length??0)>0;n?.status===`ready`&&r&&!this.debounceStates.has(t)&&this.processScoopQueue(t).catch(e=>{let n=e instanceof Error?e.message:String(e);F9.error(`Message queue processing failed`,{jid:t,error:n}),this.deps.onError(t,`Queue processing failed: ${n}`)})}},2e3)}recordBusyDeferralIfPresent(e){this.busyDeferrals.has(e)&&this.recordBusyDeferral(e)}stopMessageLoop(){this.cancelDebounces(),this.pollInterval&&=(clearInterval(this.pollInterval),null)}async clearScoopMessages(e,t){if(this.cancelDebounce(e),t){t.clearMessages();let n=this.deps.getSessionStore();if(n){let r=t.getSessionId();await n.delete(r).catch(t=>{F9.warn(`Failed to clear agent session for scoop`,{jid:e,error:t instanceof Error?t.message:String(t)})})}}await this.deps.db.clearMessagesForScoop(e).catch(t=>{F9.warn(`Failed to clear persisted channel history for scoop`,{jid:e,error:t instanceof Error?t.message:String(t)})}),this.lastAgentTimestamp.delete(e),this.messageQueues.set(e,[]),this.clearBusyDeferral(e),F9.info(`Scoop messages cleared`,{jid:e})}async clearAllMessages(){this.cancelDebounces(),await this.deps.db.clearAllMessages();let e=this.deps.getSessionStore();e&&await e.clearAll().catch(e=>{F9.warn(`Failed to clear agent sessions`,{error:e instanceof Error?e.message:String(e)})});for(let e of this.deps.getContexts().values())e.clearMessages();this.lastAgentTimestamp.clear();for(let e of this.busyDeferrals.keys())this.clearBusyDeferral(e);for(let e of this.deps.getScoops().keys())this.messageQueues.set(e,[]);this.deps.resetCostTracker(),F9.info(`All messages cleared`)}async clearQueuedMessages(e){this.cancelDebounce(e);let t=this.messageQueues.get(e)??[],n=this.deps.getScoops().get(e)?.assistantLabel??e,r=this.lastAgentTimestamp.get(e)??``,i=await this.deps.db.getMessagesSince(e,r,n),a=new Set([...t,...i].map(e=>e.id));for(let e of a)await this.deps.db.deleteMessage(e);this.messageQueues.set(e,[]),this.clearBusyDeferral(e)}async deleteQueuedMessage(e,t){let n=this.messageQueues.get(e);if(n){let r=n.findIndex(e=>e.id===t);r!==-1&&n.splice(r,1),n.length===0&&this.clearBusyDeferral(e)}this.cancelDebounceWaiter(e,t),await this.deps.db.deleteMessage(t)}};const I9=r(`orchestrator`);var Uhe=class{scoops=new Map;workUnits=new Vg(this);container;callbacks;config;scheduler=null;sharedFs=null;memoryStore=new Cx({getSharedFs:()=>this.sharedFs});lickManager=null;sessionStore=null;fsWatcher=null;sudoManager=null;llmsTxtIgnorePolicy=null;modelPolicyFile=null;lifecycle;idleTimers=new Xx({getScoops:()=>this.scoops,getTabs:()=>this.lifecycle.getTabsMap(),findParent:e=>this.parentOrDefaultRoot(e),handleMessage:e=>this.handleMessage(e),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t)});costTracker=new Jx({getScoops:()=>this.scoops,getContexts:()=>this.lifecycle.getContexts()});completionService=new Hx({getSharedFs:()=>this.sharedFs,getScoop:e=>this.scoops.get(e),findParent:e=>this.parentOrDefaultRoot(e),hasScoop:e=>this.scoops.has(e),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t),handleMessage:e=>this.handleMessage(e),reportError:(e,t)=>this.callbacks.onError(e,t)});processManager=null;unregisterExportService=null;approvalRouter=new Px({getScoops:()=>this.scoops,findApprover:e=>this.parentOrDefaultRoot(e),getSudoManager:()=>this.sudoManager,getLickManager:()=>this.lickManager,handleMessage:e=>this.handleMessage(e),onMessageUpdate:(e,t)=>this.callbacks.onMessageUpdate?.(e,t),getMessagesForScoop:e=>Mn(e),saveMessage:e=>Tn(e)});lickRegistry=new Ex({getConeShell:()=>{let e=this.defaultRoot();return e?this.lifecycle.getContext(e.jid)?.getShell()??null:null},getConeFs:()=>{let e=this.defaultRoot();return e?this.lifecycle.getContext(e.jid)?.getFS()??null:null},persistLickDecision:(e,t)=>this.approvalRouter.persistLickDecision(e,t)});messageRouter=new Hhe({getScoops:()=>this.scoops,getTabs:()=>this.lifecycle.getTabsMap(),getContexts:()=>this.lifecycle.getContexts(),createScoopTab:e=>this.createScoopTab(e),sendPrompt:(e,t,n,r,i,a)=>this.sendPrompt(e,t,n,r,i??[],a),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t),onError:(e,t)=>this.callbacks.onError(e,t),onLickBackpressure:(e,t)=>this.callbacks.onLickBackpressure?.(e,t),getSessionStore:()=>this.sessionStore,resetCostTracker:()=>this.costTracker.reset(),db:{saveMessage:e=>Tn(e),deleteMessage:e=>Dn(e),clearMessagesForScoop:e=>Fn(e),clearAllMessages:()=>Nn(),getMessagesSince:(e,t,n)=>jn(e,t,n),setState:(e,t)=>Cn(e,t)},isExternalLickChannel:fg});constructor(e,t,n={name:`sliccy`,triggerPattern:/^@sliccy\b/i}){this.container=e,this.callbacks=t,this.config=n,this.lifecycle=new Vhe({getScoops:()=>this.scoops,getSharedFs:()=>this.sharedFs,getSessionStore:()=>this.sessionStore,getProcessManager:()=>this.processManager,getSudoManager:()=>this.sudoManager,callbacks:this.callbacks,idleTimers:this.idleTimers,completionService:this.completionService,db:{saveScoop:e=>Sn(e),deleteScoop:e=>Pn(e)},getLickManager:()=>this.lickManager,buildActiveLicksError:(e,t,n)=>nr(e,t,n),messageRouter:{ensureQueue:e=>this.messageRouter.ensureQueue(e),forgetScoop:e=>this.messageRouter.forgetScoop(e),flushOnIdle:e=>this.messageRouter.flushOnIdle(e)},costTracker:{snapshot:e=>this.costTracker.snapshot(e)},approvalRouter:{failScoop:e=>this.approvalRouter.failScoop(e)},cone:{delegateToScoop:(e,t,n)=>this.delegateToScoop(e,t,n),registerScoop:e=>this.registerScoop(e),unregisterScoop:e=>this.unregisterScoop(e),muteScoops:e=>this.muteScoops(e),unmuteScoops:e=>this.unmuteScoops(e),scheduleScoopWait:(e,t)=>this.scheduleScoopWait(e,t),getScoops:()=>this.getScoops(),getGlobalMemory:()=>this.getGlobalMemory(),setGlobalMemory:e=>this.setGlobalMemory(e),appendConeMemory:(e,t)=>this.appendConeMemory(e,t),enqueueSudoRequest:(e,t)=>this.enqueueSudoRequest(e,t),resolveActionableLick:(e,t)=>this.resolveActionableLick(e,t),listPendingSudoRequests:()=>this.listPendingSudoRequests()},handleMessage:e=>this.handleMessage(e)})}setProcessManager(e){this.processManager=e}getProcessManager(){return this.processManager}async init(e){await Bn(),this.sharedFs=await Ax(()=>ar.create({dbName:`slicc-fs`}),e),this.sessionStore=new _h,this.fsWatcher=new ir,this.sharedFs.setWatcher(this.fsWatcher),globalThis.__slicc_fs_watcher=this.fsWatcher,await this.ensureRootStructure(),this.sudoManager=new Tv({fs:this.sharedFs,watcher:this.fsWatcher,onPolicyReload:e=>this.lifecycle.syncReadGrants(e)}),await this.sudoManager.init(),this.llmsTxtIgnorePolicy=new R_(this.sharedFs,this.fsWatcher),await this.llmsTxtIgnorePolicy.init(),this.modelPolicyFile=new kx(this.sharedFs,this.fsWatcher),await this.modelPolicyFile.init();let t=await Rn(),n=Object.values(t).find(e=>e.isCone)?.jid;for(let e of Object.values(t)){await this.backfillParent(e,n),Hg(e),this.migrateScoopConfig(e),this.scoops.set(e.jid,e),this.messageRouter.ensureQueue(e.jid);let t=await An(`lastAgentTs_${e.jid}`);t&&this.messageRouter.setLastAgentTimestamp(e.jid,t)}await this.memoryStore.ensureGlobalMemory(),await this.memoryStore.migrateLegacyConeMemory(),this.scheduler=new Mx({onTaskRun:async(e,t)=>{I9.info(`Running scheduled task`,{taskId:e.id,scoop:t.name}),await this.sendPrompt(t.jid,`[SCHEDULED TASK]\n\n${e.prompt}`,`scheduler`,`Scheduled Task`)},getScoop:e=>{for(let t of this.scoops.values())if(t.folder===e)return t}}),this.scheduler.start(),I9.info(`Orchestrator initialized`,{scoopCount:this.scoops.size});for(let t of this.scoops.values())try{await this.createScoopTab(t.jid)}catch(e){let n=e instanceof Error?e.message:String(e);I9.warn(`Skipping scoop whose context failed to initialize during boot`,{jid:t.jid,folder:t.folder,root:t.parentJid===null,error:n}),t.parentJid!==null&&this.lifecycle.markTabError(t.jid,n)}finally{e?.(`scoop-restored:${t.jid}`)}lr(e=>this.getSessionCostsForCommand(e)),this.unregisterExportService=Dv(this.buildWorkerExportService()),this.messageRouter.startMessageLoop()}async backfillParent(e,t){if(e.parentJid===void 0){e.parentJid=e.isCone?null:t??null;try{await Sn(e)}catch(t){I9.warn(`Failed to persist backfilled parentJid; will retry next boot`,{jid:e.jid,error:t instanceof Error?t.message:String(t)})}}}migrateScoopConfig(e){if(e.parentJid===null)return;let t=e.configSchemaVersion??0;t>=2||(t<1&&(e.config={...e.config,visiblePaths:e.config?.visiblePaths??[`/workspace/`]}),t<2&&(e.config={...e.config,writablePaths:e.config?.writablePaths??[`/scoops/${e.folder}/`,`/shared/`]}),e.configSchemaVersion=2)}async ensureRootStructure(){if(this.sharedFs)for(let e of[`/workspace`,`/shared`,`/scoops`,`/home`,`/home/user`,`/tmp`,`/mnt`])try{await this.sharedFs.mkdir(e,{recursive:!0})}catch{}}getGlobalMemory(){return this.memoryStore.getGlobalMemory()}setGlobalMemory(e){return this.memoryStore.setGlobalMemory(e)}appendConeMemory(e,t){return this.memoryStore.appendConeMemory(e,t)}getSharedFS(){return this.sharedFs}getSessionStore(){return this.sessionStore}getSudoManager(){return this.sudoManager}setLickManager(e){this.lickManager=e,e.setDiscoveryIgnore?.(e=>this.llmsTxtIgnorePolicy?.ignores(e)??!1),e.setScoopExistenceResolver(e=>this.getScoops().some(t=>$n(e,t.name,t.folder))),globalThis.__slicc_lick_handler=e=>{this.lickManager?.emitEvent(e)}}handleWebhookEvent(e,t,n){this.lickManager?.handleWebhookEvent(e,t,n)}handleCherryHostEvent(e,t,n){this.lickManager?.emitEvent({type:`cherry`,cherryRuntimeId:e,cherryName:t,cherryOrigin:void 0,body:n,timestamp:new Date().toISOString()})}handlePreviewLick(e){this.lickManager?.emitEvent(e)}observeScoop(e,t){return this.lifecycle.observe(e,t)}muteScoops(e){this.completionService.muteScoops(e)}unmuteScoops(e){return this.completionService.unmuteScoops(e)}isScoopMuted(e){return this.completionService.isScoopMuted(e)}waitForScoops(e,t){return this.completionService.waitForScoops(e,t)}scheduleScoopWait(e,t){return this.completionService.scheduleScoopWait(e,t)}async enqueueSudoRequest(e,t){return this.approvalRouter.enqueueSudoRequest(e,t)}resolveSudoRequest(e,t){return this.approvalRouter.resolveSudoRequest(e,t)}async resolveSudoRequestAndPersist(e,t){return this.approvalRouter.resolveSudoRequestAndPersist(e,t)}registerNavigateLick(e){return this.lickRegistry.registerNavigate(e)}registerSessionReloadLick(e){return this.lickRegistry.registerSessionReload(e)}registerUpgradeLick(e){return this.lickRegistry.registerUpgrade(e)}registerDiscoveryLick(e){return this.lickRegistry.registerDiscovery(e)}async resolveActionableLick(e,t){return await this.lickRegistry.resolve(e,t)||this.resolveSudoRequestAndPersist(e,t)}async resolveNavigateHandoffByHuman(e,t){return this.lickRegistry.resolveHandoffByHuman(e,t)}getConeSudoBroker(e){return this.approvalRouter.getConeSudoBroker(e)}listPendingSudoRequests(){return this.approvalRouter.listPendingSudoRequests()}registerScoop(e){return this.lifecycle.register(e)}unregisterScoop(e){return this.lifecycle.unregister(e)}getScoops(){return Array.from(this.scoops.values())}getScoop(e){return this.scoops.get(e)}getScoopTabState(e){return this.lifecycle.getTab(e)}defaultRoot(){return wh(this.scoops.values())[0]}parentOrDefaultRoot(e){let t=e===void 0?void 0:this.scoops.get(e);return(t?.parentJid?this.scoops.get(t.parentJid):void 0)??this.defaultRoot()}getWorkUnits(){return this.workUnits}getLiveUnit(e){return this.lifecycle.getUnit(e)}async resetFilesystem(){this.lifecycle.stopAndClearAllContexts(),this.sharedFs=await ar.create({dbName:`slicc-fs`,wipe:!0}),this.fsWatcher&&this.sharedFs.setWatcher(this.fsWatcher),await this.ensureRootStructure(),await this.memoryStore.ensureGlobalMemory(),await yx(this.sharedFs).catch(e=>{I9.warn(`Failed to re-seed default skills`,{error:e instanceof Error?e.message:String(e)})}),this.sudoManager?.dispose(),this.sudoManager=new Tv({fs:this.sharedFs,watcher:this.fsWatcher,onPolicyReload:e=>this.lifecycle.syncReadGrants(e)}),await this.sudoManager.init(),this.llmsTxtIgnorePolicy?.dispose(),this.llmsTxtIgnorePolicy=new R_(this.sharedFs,this.fsWatcher),await this.llmsTxtIgnorePolicy.init(),this.modelPolicyFile?.dispose(),this.modelPolicyFile=new kx(this.sharedFs,this.fsWatcher),await this.modelPolicyFile.init(),this.lickManager?.setDiscoveryIgnore?.(e=>this.llmsTxtIgnorePolicy?.ignores(e)??!1),this.costTracker.reset(),I9.info(`Filesystem reset and defaults re-seeded`)}clearScoopMessages(e){return this.messageRouter.clearScoopMessages(e,this.lifecycle.getContext(e))}clearAllMessages(){return this.messageRouter.clearAllMessages()}handleMessage(e){return this.messageRouter.handleMessage(e)}delegateToScoop(e,t,n){return this.messageRouter.delegateToScoop(e,t,n)}createScoopTab(e){return this.lifecycle.createTab(e)}async destroyScoopTab(e){this.lifecycle.destroyTab(e)}isProcessing(e){return this.lifecycle.getTab(e)?.status===`processing`}getScoopContext(e){return this.lifecycle.getContext(e)}clearQueuedMessages(e){return this.messageRouter.clearQueuedMessages(e)}deleteQueuedMessage(e,t){return this.messageRouter.deleteQueuedMessage(e,t)}async getMessagesForScoop(e){return Mn(e)}sendPrompt(e,t,n,r,i=[],a){return this.lifecycle.sendPrompt(e,t,n,r,i,a)}stopMessageLoop(){this.messageRouter.stopMessageLoop()}updateModel(){this.lifecycle.updateModelOnAll()}setScoopThinkingLevel(e,t,n){return this.lifecycle.setThinkingLevel(e,t,n)}reloadAllSkills(){return this.lifecycle.reloadAllSkills()}stopScoop(e){this.lifecycle.getContext(e)?.stop()}getSessionCosts(e){return this.costTracker.getSessionCosts(e)}async getSessionCostsForCommand(e){let t=this.getSessionCosts({includeDropped:e===`all`});if(e===`live`||!this.sharedFs)return t;let{readSessionsIndex:n}=await import(`./frozen-archive-format--7sONywg.js`).then(e=>e.t),r=await n(this.sharedFs);return[...t,...r.map(fr)]}getModelCosts(e){return this.costTracker.getModelCosts(e)}getBurnRate(e){return this.costTracker.getBurnRate(e)}getContextFills(){return this.costTracker.getContextFills()}async shutdown(){this.stopMessageLoop(),this.idleTimers.clearAll(),this.scheduler?.stop(),this.scheduler=null,this.completionService.shutdown();let e=this.approvalRouter.failAll();e>0&&I9.info(`Failed-closed pending sudo requests during shutdown`,{count:e}),await this.lifecycle.destroyAllTabs(),this.lickManager?.setDiscoveryIgnore?.(null),this.llmsTxtIgnorePolicy?.dispose(),this.llmsTxtIgnorePolicy=null,this.modelPolicyFile?.dispose(),this.modelPolicyFile=null,this.sudoManager?.dispose(),this.sudoManager=null,this.unregisterExportService?.(),this.unregisterExportService=null,I9.info(`Orchestrator shutdown`)}buildWorkerExportService(){let e=new cg,t=this.sharedFs;return new Xy({collection:{listScoops:()=>this.getScoops(),isProcessing:e=>this.isProcessing(e),getAgentMessages:e=>this.getScoopContext(e)?.getAgentMessages()??null,loadPersistedSessions:()=>this.sessionStore?.loadAll()??Promise.resolve([]),loadUiChatSessions:async()=>{let t=await e.list();return(await Promise.all(t.map(t=>e.load(t)))).filter(e=>e!==null)},wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:mb(),snapshotStore:{read:e=>sb(t,e),write:(e,n)=>ob(t,e,n)},vfs:t,getActiveSessionInfo:()=>{let e=this.defaultRoot();return{id:e?.jid??`session-${Date.now()}`,title:e?.name??`Active Session`}},version:`6.78.3`})}};const L9=r(`workflow-run-manager`),R9=`/shared/workflow-runs`,z9=1e3;function Whe(e){let t=new Map,n=new Map,r=e=>{let r=t.get(e);if(r)for(let t of n.get(e)??[])try{t(r)}catch(e){L9.warn(`observeRun handler threw`,e)}},i=t=>t===void 0?`terminal`:t===e.getConeJid()?`cone`:`scoop`,a=(e,n)=>Yhe(e,n,t,()=>r(n));async function o(o){let l=o.runId??e.makeRunId(),u=o.sentinel,d={id:l,name:o.name,source:o.source,origin:i(o.parentJid),status:`running`,currentPhase:null,agentsStarted:0,agentsDone:0,logs:[],startedAt:new Date().toISOString(),finishedAt:null,resultPath:null,preview:null,error:null,pid:null};t.set(l,d),qhe(t,n);let f=a(o.ctx,l),p=Jhe(e.processManager,d,l,()=>r(l));return e.runRealm(o.code,[`workflow`,o.filename,l],f).then(e=>s(l,u,e)).catch(e=>c(l,e instanceof Error?e.message:String(e))).finally(()=>p()).catch(e=>L9.warn(`workflow run lifecycle error`,e)),{runId:l}}async function s(t,n,r){let{result:i,hadResult:a}=e.splitResult(r.stdout,n);return r.exitCode===137?l(t,`killed`,null,r.stderr||`killed (SIGKILL)`):r.exitCode!==0||!a?l(t,`error`,null,r.stderr||(a?`exit ${r.exitCode}`:`script produced no result`)):l(t,`done`,i,null)}function c(e,t){return l(e,`error`,null,t)}async function l(n,i,a,o){let s=t.get(n);if(!s||s.status!==`running`&&s.status!==`paused`)return;let c=`${R9}/${n}.json`,l=new Date().toISOString();try{await e.sharedFs.mkdir(R9,{recursive:!0}),await e.sharedFs.writeFile(c,JSON.stringify({name:s.name,status:i,result:i===`done`?a:null,error:o,logs:s.logs,startedAt:s.startedAt,finishedAt:l},null,2)),s.resultPath=c}catch(e){let t=e instanceof Error?e.message:String(e);L9.error(`failed to write run result file`,{runId:n,resultPath:c,error:t}),o=`result file write failed: ${t}`,i===`done`&&(i=`error`)}s.status=i,s.error=o,s.finishedAt=l,s.preview=i===`done`?Khe(a):o??``,r(n),u(s)}function u(t){t.origin===`cone`&&e.fireLick({type:`workflow`,workflowRunId:t.id,workflowName:t.name??void 0,resultPath:t.resultPath??void 0,preview:t.preview??t.error??void 0,timestamp:new Date().toISOString(),body:{runId:t.id,status:t.status,error:t.error}})}return{start:o,getRun:e=>t.get(e)??null,listRuns:()=>Array.from(t.values()),observeRun(e,r){let i=n.get(e);i||(i=new Set,n.set(e,i)),i.add(r);let a=t.get(e);if(a)try{r(a)}catch(e){L9.warn(`observeRun handler threw on initial state`,e)}return()=>i.delete(r)}}}function Ghe(e){let t=Whe(e);return globalThis[X7]=t,L9.info(`workflow run manager published on globalThis.__slicc_workflows`),t}function Khe(e){return((typeof e==`string`?e:JSON.stringify(e))??`null`).slice(0,200)}function qhe(e,t,n=100){if(e.size<=n)return;let r=[...e.values()].filter(e=>e.status!==`running`&&e.status!==`paused`).sort((e,t)=>(e.finishedAt??e.startedAt).localeCompare(t.finishedAt??t.startedAt)),i=e.size-n;for(let n of r){if(i<=0)break;e.delete(n.id),t.delete(n.id),i--}}function Jhe(e,t,n,r){let i=e.on(`spawn`,e=>{t.pid===null&&e.argv.includes(n)&&(t.pid=e.pid,r(),i())});return i}function Yhe(e,t,n,r){let i=e.exec;if(!i)return e;let a=(async(e,a)=>e===`__wf_progress`?Xhe(n,t,a?.args??[],r):e===`agent`?Zhe(n,t,()=>i(e,a),r):i(e,a));return a.spawn=e.exec.spawn,{...e,exec:a}}function Xhe(e,t,n,r){let i=e.get(t);if(i&&i.status===`running`){let[e,t=``]=n;e===`phase`?(i.currentPhase=t,i.logs.push(t)):e===`log`&&i.logs.push(t),i.logs.length>z9&&i.logs.splice(0,i.logs.length-z9),r()}return{stdout:``,stderr:``,exitCode:0}}async function Zhe(e,t,n,r){let i=e.get(t);i&&i.status===`running`&&(i.agentsStarted++,r());try{return await n()}finally{let n=e.get(t);n&&n.status===`running`&&(n.agentsDone++,r())}}var Qhe=class{kind=`proc`;source=void 0;profile=void 0;mountId;pm;closed=!1;constructor(e,t={}){this.pm=e,this.mountId=t.mountId??`proc-${Date.now().toString(36)}`}async readDir(e){this.assertOpen(e);let t=V9(e);if(t.length===0){let e=this.pm.list(),t=e.map(e=>({name:String(e.pid),kind:`directory`}));return e.some(e=>e.pid===1)||t.push({name:`1`,kind:`directory`}),t.sort((e,t)=>Number(e.name)-Number(t.name))}if(t.length===1){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);return B9.map(e=>({name:e,kind:`file`,size:this.fileSize(n,e),lastModified:this.fileMtime(n)}))}throw new un(`ENOTDIR`,`not a directory`,e)}async readFile(e){this.assertOpen(e);let t=V9(e);if(t.length!==2)throw new un(`EISDIR`,`is a directory`,e);let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);let r=t[1];if(!B9.includes(r))throw new un(`ENOENT`,`no such file or directory`,e);let i=this.renderProcFile(n,r);return new TextEncoder().encode(i)}async writeFile(e){throw new un(`EACCES`,`read-only filesystem`,e)}async stat(e){this.assertOpen(e);let t=V9(e);if(t.length===0)return{kind:`directory`,size:0,mtime:0};if(t.length===1){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);return{kind:`directory`,size:0,mtime:this.fileMtime(n)}}if(t.length===2){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);let r=t[1];if(!B9.includes(r))throw new un(`ENOENT`,`no such file or directory`,e);return{kind:`file`,size:this.fileSize(n,r),mtime:this.fileMtime(n)}}throw new un(`ENOENT`,`no such file or directory`,e)}async mkdir(e){throw new un(`EACCES`,`read-only filesystem`,e)}async remove(e){throw new un(`EACCES`,`read-only filesystem`,e)}async refresh(){return{added:[],removed:[],changed:[],unchanged:0,errors:[]}}describe(){return{displayName:`/proc`,extra:`kernel processes (read-only)`}}async close(){this.closed=!0}assertOpen(e){if(this.closed)throw new un(`EBADF`,`mount closed`,e)}pidExists(e){return e===1||this.pm.get(e)!==null}fileSize(e,t){return this.renderProcFile(e,t).length}fileMtime(e){if(e===1)return 0;let t=this.pm.get(e);return t?t.finishedAt??t.startedAt:0}renderProcFile(e,t){if(e===1)return ige(t);let n=this.pm.get(e);switch(t){case`status`:return $he(n);case`cmdline`:return ege(n);case`cwd`:return tge(n);case`stat`:return nge(n)}}};const B9=[`status`,`cmdline`,`cwd`,`stat`];function V9(e){return e.replace(/^\/+/,``).replace(/\/+$/,``).split(`/`).filter(Boolean)}function H9(e){let t=Number.parseInt(e,10);return!Number.isFinite(t)||String(t)!==e?null:t}function $he(e){let t=[`Name:\t${e.kind}`,`Pid:\t${e.pid}`,`PPid:\t${e.ppid}`,`State:\t${U9(e.status)} (${e.status})`,`Owner:\t${rge(e)}`,`StartedAt:\t${new Date(e.startedAt).toISOString()}`];return e.finishedAt!==null&&t.push(`FinishedAt:\t${new Date(e.finishedAt).toISOString()}`),e.terminatedBy!==null&&t.push(`TerminatedBy:\t${e.terminatedBy}`),e.exitCode!==null&&t.push(`ExitCode:\t${e.exitCode}`),t.push(`Cmdline:\t${e.argv.join(` `)}`),t.join(`
9071
+ `),l=s.flatMap(e=>mh(e.attachments));this.messageQueues.set(e,[]);let u=s[s.length-1],d=wn(Ln(On(a),o));this.lastAgentTimestamp.set(e,d),await this.deps.db.setState(`lastAgentTs_${e}`,d);let f=s.some(e=>e.steer);await this.deps.sendPrompt(e,c,u.senderId,u.senderName,l,{steer:f})}startMessageLoop(){this.pollInterval||=setInterval(()=>{let e=this.deps.getTabs();for(let t of this.deps.getScoops().keys()){let n=e.get(t);this.recordBusyDeferralIfPresent(t);let r=(this.messageQueues.get(t)?.length??0)>0;n?.status===`ready`&&r&&!this.debounceStates.has(t)&&this.processScoopQueue(t).catch(e=>{let n=e instanceof Error?e.message:String(e);F9.error(`Message queue processing failed`,{jid:t,error:n}),this.deps.onError(t,`Queue processing failed: ${n}`)})}},2e3)}recordBusyDeferralIfPresent(e){this.busyDeferrals.has(e)&&this.recordBusyDeferral(e)}stopMessageLoop(){this.cancelDebounces(),this.pollInterval&&=(clearInterval(this.pollInterval),null)}async clearScoopMessages(e,t){if(this.cancelDebounce(e),t){t.clearMessages();let n=this.deps.getSessionStore();if(n){let r=t.getSessionId();await n.delete(r).catch(t=>{F9.warn(`Failed to clear agent session for scoop`,{jid:e,error:t instanceof Error?t.message:String(t)})})}}await this.deps.db.clearMessagesForScoop(e).catch(t=>{F9.warn(`Failed to clear persisted channel history for scoop`,{jid:e,error:t instanceof Error?t.message:String(t)})}),this.lastAgentTimestamp.delete(e),this.messageQueues.set(e,[]),this.clearBusyDeferral(e),F9.info(`Scoop messages cleared`,{jid:e})}async clearAllMessages(){this.cancelDebounces(),await this.deps.db.clearAllMessages();let e=this.deps.getSessionStore();e&&await e.clearAll().catch(e=>{F9.warn(`Failed to clear agent sessions`,{error:e instanceof Error?e.message:String(e)})});for(let e of this.deps.getContexts().values())e.clearMessages();this.lastAgentTimestamp.clear();for(let e of this.busyDeferrals.keys())this.clearBusyDeferral(e);for(let e of this.deps.getScoops().keys())this.messageQueues.set(e,[]);this.deps.resetCostTracker(),F9.info(`All messages cleared`)}async clearQueuedMessages(e){this.cancelDebounce(e);let t=this.messageQueues.get(e)??[],n=this.deps.getScoops().get(e)?.assistantLabel??e,r=this.lastAgentTimestamp.get(e)??``,i=await this.deps.db.getMessagesSince(e,r,n),a=new Set([...t,...i].map(e=>e.id));for(let e of a)await this.deps.db.deleteMessage(e);this.messageQueues.set(e,[]),this.clearBusyDeferral(e)}async deleteQueuedMessage(e,t){let n=this.messageQueues.get(e);if(n){let r=n.findIndex(e=>e.id===t);r!==-1&&n.splice(r,1),n.length===0&&this.clearBusyDeferral(e)}this.cancelDebounceWaiter(e,t),await this.deps.db.deleteMessage(t)}};const I9=r(`orchestrator`);var Uhe=class{scoops=new Map;workUnits=new Vg(this);container;callbacks;config;scheduler=null;sharedFs=null;memoryStore=new Cx({getSharedFs:()=>this.sharedFs});lickManager=null;sessionStore=null;fsWatcher=null;sudoManager=null;llmsTxtIgnorePolicy=null;modelPolicyFile=null;lifecycle;idleTimers=new Xx({getScoops:()=>this.scoops,getTabs:()=>this.lifecycle.getTabsMap(),findParent:e=>this.parentOrDefaultRoot(e),handleMessage:e=>this.handleMessage(e),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t)});costTracker=new Jx({getScoops:()=>this.scoops,getContexts:()=>this.lifecycle.getContexts()});completionService=new Hx({getSharedFs:()=>this.sharedFs,getScoop:e=>this.scoops.get(e),findParent:e=>this.parentOrDefaultRoot(e),hasScoop:e=>this.scoops.has(e),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t),handleMessage:e=>this.handleMessage(e),reportError:(e,t)=>this.callbacks.onError(e,t)});processManager=null;unregisterExportService=null;approvalRouter=new Px({getScoops:()=>this.scoops,findApprover:e=>this.parentOrDefaultRoot(e),getSudoManager:()=>this.sudoManager,getLickManager:()=>this.lickManager,handleMessage:e=>this.handleMessage(e),onMessageUpdate:(e,t)=>this.callbacks.onMessageUpdate?.(e,t),getMessagesForScoop:e=>Mn(e),saveMessage:e=>Tn(e)});lickRegistry=new Ex({getConeShell:()=>{let e=this.defaultRoot();return e?this.lifecycle.getContext(e.jid)?.getShell()??null:null},getConeFs:()=>{let e=this.defaultRoot();return e?this.lifecycle.getContext(e.jid)?.getFS()??null:null},persistLickDecision:(e,t)=>this.approvalRouter.persistLickDecision(e,t)});messageRouter=new Hhe({getScoops:()=>this.scoops,getTabs:()=>this.lifecycle.getTabsMap(),getContexts:()=>this.lifecycle.getContexts(),createScoopTab:e=>this.createScoopTab(e),sendPrompt:(e,t,n,r,i,a)=>this.sendPrompt(e,t,n,r,i??[],a),notifyIncomingMessage:(e,t)=>this.callbacks.onIncomingMessage?.(e,t),onError:(e,t)=>this.callbacks.onError(e,t),onLickBackpressure:(e,t)=>this.callbacks.onLickBackpressure?.(e,t),getSessionStore:()=>this.sessionStore,resetCostTracker:()=>this.costTracker.reset(),db:{saveMessage:e=>Tn(e),deleteMessage:e=>Dn(e),clearMessagesForScoop:e=>Fn(e),clearAllMessages:()=>Nn(),getMessagesSince:(e,t,n)=>jn(e,t,n),setState:(e,t)=>Cn(e,t)},isExternalLickChannel:fg});constructor(e,t,n={name:`sliccy`,triggerPattern:/^@sliccy\b/i}){this.container=e,this.callbacks=t,this.config=n,this.lifecycle=new Vhe({getScoops:()=>this.scoops,getSharedFs:()=>this.sharedFs,getSessionStore:()=>this.sessionStore,getProcessManager:()=>this.processManager,getSudoManager:()=>this.sudoManager,callbacks:this.callbacks,idleTimers:this.idleTimers,completionService:this.completionService,db:{saveScoop:e=>Sn(e),deleteScoop:e=>Pn(e)},getLickManager:()=>this.lickManager,buildActiveLicksError:(e,t,n)=>nr(e,t,n),messageRouter:{ensureQueue:e=>this.messageRouter.ensureQueue(e),forgetScoop:e=>this.messageRouter.forgetScoop(e),flushOnIdle:e=>this.messageRouter.flushOnIdle(e)},costTracker:{snapshot:e=>this.costTracker.snapshot(e)},approvalRouter:{failScoop:e=>this.approvalRouter.failScoop(e)},cone:{delegateToScoop:(e,t,n)=>this.delegateToScoop(e,t,n),registerScoop:e=>this.registerScoop(e),unregisterScoop:e=>this.unregisterScoop(e),muteScoops:e=>this.muteScoops(e),unmuteScoops:e=>this.unmuteScoops(e),scheduleScoopWait:(e,t)=>this.scheduleScoopWait(e,t),getScoops:()=>this.getScoops(),getGlobalMemory:()=>this.getGlobalMemory(),setGlobalMemory:e=>this.setGlobalMemory(e),appendConeMemory:(e,t)=>this.appendConeMemory(e,t),enqueueSudoRequest:(e,t)=>this.enqueueSudoRequest(e,t),resolveActionableLick:(e,t)=>this.resolveActionableLick(e,t),listPendingSudoRequests:()=>this.listPendingSudoRequests()},handleMessage:e=>this.handleMessage(e)})}setProcessManager(e){this.processManager=e}getProcessManager(){return this.processManager}async init(e){await Bn(),this.sharedFs=await Ax(()=>ar.create({dbName:`slicc-fs`}),e),this.sessionStore=new _h,this.fsWatcher=new ir,this.sharedFs.setWatcher(this.fsWatcher),globalThis.__slicc_fs_watcher=this.fsWatcher,await this.ensureRootStructure(),this.sudoManager=new Tv({fs:this.sharedFs,watcher:this.fsWatcher,onPolicyReload:e=>this.lifecycle.syncReadGrants(e)}),await this.sudoManager.init(),this.llmsTxtIgnorePolicy=new R_(this.sharedFs,this.fsWatcher),await this.llmsTxtIgnorePolicy.init(),this.modelPolicyFile=new kx(this.sharedFs,this.fsWatcher),await this.modelPolicyFile.init();let t=await Rn(),n=Object.values(t).find(e=>e.isCone)?.jid;for(let e of Object.values(t)){await this.backfillParent(e,n),Hg(e),this.migrateScoopConfig(e),this.scoops.set(e.jid,e),this.messageRouter.ensureQueue(e.jid);let t=await An(`lastAgentTs_${e.jid}`);t&&this.messageRouter.setLastAgentTimestamp(e.jid,t)}await this.memoryStore.ensureGlobalMemory(),await this.memoryStore.migrateLegacyConeMemory(),this.scheduler=new Mx({onTaskRun:async(e,t)=>{I9.info(`Running scheduled task`,{taskId:e.id,scoop:t.name}),await this.sendPrompt(t.jid,`[SCHEDULED TASK]\n\n${e.prompt}`,`scheduler`,`Scheduled Task`)},getScoop:e=>{for(let t of this.scoops.values())if(t.folder===e)return t}}),this.scheduler.start(),I9.info(`Orchestrator initialized`,{scoopCount:this.scoops.size});for(let t of this.scoops.values())try{await this.createScoopTab(t.jid)}catch(e){let n=e instanceof Error?e.message:String(e);I9.warn(`Skipping scoop whose context failed to initialize during boot`,{jid:t.jid,folder:t.folder,root:t.parentJid===null,error:n}),t.parentJid!==null&&this.lifecycle.markTabError(t.jid,n)}finally{e?.(`scoop-restored:${t.jid}`)}lr(e=>this.getSessionCostsForCommand(e)),this.unregisterExportService=Dv(this.buildWorkerExportService()),this.messageRouter.startMessageLoop()}async backfillParent(e,t){if(e.parentJid===void 0){e.parentJid=e.isCone?null:t??null;try{await Sn(e)}catch(t){I9.warn(`Failed to persist backfilled parentJid; will retry next boot`,{jid:e.jid,error:t instanceof Error?t.message:String(t)})}}}migrateScoopConfig(e){if(e.parentJid===null)return;let t=e.configSchemaVersion??0;t>=2||(t<1&&(e.config={...e.config,visiblePaths:e.config?.visiblePaths??[`/workspace/`]}),t<2&&(e.config={...e.config,writablePaths:e.config?.writablePaths??[`/scoops/${e.folder}/`,`/shared/`]}),e.configSchemaVersion=2)}async ensureRootStructure(){if(this.sharedFs)for(let e of[`/workspace`,`/shared`,`/scoops`,`/home`,`/home/user`,`/tmp`,`/mnt`])try{await this.sharedFs.mkdir(e,{recursive:!0})}catch{}}getGlobalMemory(){return this.memoryStore.getGlobalMemory()}setGlobalMemory(e){return this.memoryStore.setGlobalMemory(e)}appendConeMemory(e,t){return this.memoryStore.appendConeMemory(e,t)}getSharedFS(){return this.sharedFs}getSessionStore(){return this.sessionStore}getSudoManager(){return this.sudoManager}setLickManager(e){this.lickManager=e,e.setDiscoveryIgnore?.(e=>this.llmsTxtIgnorePolicy?.ignores(e)??!1),e.setScoopExistenceResolver(e=>this.getScoops().some(t=>$n(e,t.name,t.folder))),globalThis.__slicc_lick_handler=e=>{this.lickManager?.emitEvent(e)}}handleWebhookEvent(e,t,n){this.lickManager?.handleWebhookEvent(e,t,n)}handleCherryHostEvent(e,t,n){this.lickManager?.emitEvent({type:`cherry`,cherryRuntimeId:e,cherryName:t,cherryOrigin:void 0,body:n,timestamp:new Date().toISOString()})}handlePreviewLick(e){this.lickManager?.emitEvent(e)}observeScoop(e,t){return this.lifecycle.observe(e,t)}muteScoops(e){this.completionService.muteScoops(e)}unmuteScoops(e){return this.completionService.unmuteScoops(e)}isScoopMuted(e){return this.completionService.isScoopMuted(e)}waitForScoops(e,t){return this.completionService.waitForScoops(e,t)}scheduleScoopWait(e,t){return this.completionService.scheduleScoopWait(e,t)}async enqueueSudoRequest(e,t){return this.approvalRouter.enqueueSudoRequest(e,t)}resolveSudoRequest(e,t){return this.approvalRouter.resolveSudoRequest(e,t)}async resolveSudoRequestAndPersist(e,t){return this.approvalRouter.resolveSudoRequestAndPersist(e,t)}registerNavigateLick(e){return this.lickRegistry.registerNavigate(e)}registerSessionReloadLick(e){return this.lickRegistry.registerSessionReload(e)}registerUpgradeLick(e){return this.lickRegistry.registerUpgrade(e)}registerDiscoveryLick(e){return this.lickRegistry.registerDiscovery(e)}async resolveActionableLick(e,t){return await this.lickRegistry.resolve(e,t)||this.resolveSudoRequestAndPersist(e,t)}async resolveNavigateHandoffByHuman(e,t){return this.lickRegistry.resolveHandoffByHuman(e,t)}getConeSudoBroker(e){return this.approvalRouter.getConeSudoBroker(e)}listPendingSudoRequests(){return this.approvalRouter.listPendingSudoRequests()}registerScoop(e){return this.lifecycle.register(e)}unregisterScoop(e){return this.lifecycle.unregister(e)}getScoops(){return Array.from(this.scoops.values())}getScoop(e){return this.scoops.get(e)}getScoopTabState(e){return this.lifecycle.getTab(e)}defaultRoot(){return wh(this.scoops.values())[0]}parentOrDefaultRoot(e){let t=e===void 0?void 0:this.scoops.get(e);return(t?.parentJid?this.scoops.get(t.parentJid):void 0)??this.defaultRoot()}getWorkUnits(){return this.workUnits}getLiveUnit(e){return this.lifecycle.getUnit(e)}async resetFilesystem(){this.lifecycle.stopAndClearAllContexts(),this.sharedFs=await ar.create({dbName:`slicc-fs`,wipe:!0}),this.fsWatcher&&this.sharedFs.setWatcher(this.fsWatcher),await this.ensureRootStructure(),await this.memoryStore.ensureGlobalMemory(),await yx(this.sharedFs).catch(e=>{I9.warn(`Failed to re-seed default skills`,{error:e instanceof Error?e.message:String(e)})}),this.sudoManager?.dispose(),this.sudoManager=new Tv({fs:this.sharedFs,watcher:this.fsWatcher,onPolicyReload:e=>this.lifecycle.syncReadGrants(e)}),await this.sudoManager.init(),this.llmsTxtIgnorePolicy?.dispose(),this.llmsTxtIgnorePolicy=new R_(this.sharedFs,this.fsWatcher),await this.llmsTxtIgnorePolicy.init(),this.modelPolicyFile?.dispose(),this.modelPolicyFile=new kx(this.sharedFs,this.fsWatcher),await this.modelPolicyFile.init(),this.lickManager?.setDiscoveryIgnore?.(e=>this.llmsTxtIgnorePolicy?.ignores(e)??!1),this.costTracker.reset(),I9.info(`Filesystem reset and defaults re-seeded`)}clearScoopMessages(e){return this.messageRouter.clearScoopMessages(e,this.lifecycle.getContext(e))}clearAllMessages(){return this.messageRouter.clearAllMessages()}handleMessage(e){return this.messageRouter.handleMessage(e)}delegateToScoop(e,t,n){return this.messageRouter.delegateToScoop(e,t,n)}createScoopTab(e){return this.lifecycle.createTab(e)}async destroyScoopTab(e){this.lifecycle.destroyTab(e)}isProcessing(e){return this.lifecycle.getTab(e)?.status===`processing`}getScoopContext(e){return this.lifecycle.getContext(e)}clearQueuedMessages(e){return this.messageRouter.clearQueuedMessages(e)}deleteQueuedMessage(e,t){return this.messageRouter.deleteQueuedMessage(e,t)}async getMessagesForScoop(e){return Mn(e)}sendPrompt(e,t,n,r,i=[],a){return this.lifecycle.sendPrompt(e,t,n,r,i,a)}stopMessageLoop(){this.messageRouter.stopMessageLoop()}updateModel(){this.lifecycle.updateModelOnAll()}setScoopThinkingLevel(e,t,n){return this.lifecycle.setThinkingLevel(e,t,n)}reloadAllSkills(){return this.lifecycle.reloadAllSkills()}stopScoop(e){this.lifecycle.getContext(e)?.stop()}getSessionCosts(e){return this.costTracker.getSessionCosts(e)}async getSessionCostsForCommand(e){let t=this.getSessionCosts({includeDropped:e===`all`});if(e===`live`||!this.sharedFs)return t;let{readSessionsIndex:n}=await import(`./frozen-archive-format--7sONywg.js`).then(e=>e.t),r=await n(this.sharedFs);return[...t,...r.map(fr)]}getModelCosts(e){return this.costTracker.getModelCosts(e)}getBurnRate(e){return this.costTracker.getBurnRate(e)}getContextFills(){return this.costTracker.getContextFills()}async shutdown(){this.stopMessageLoop(),this.idleTimers.clearAll(),this.scheduler?.stop(),this.scheduler=null,this.completionService.shutdown();let e=this.approvalRouter.failAll();e>0&&I9.info(`Failed-closed pending sudo requests during shutdown`,{count:e}),await this.lifecycle.destroyAllTabs(),this.lickManager?.setDiscoveryIgnore?.(null),this.llmsTxtIgnorePolicy?.dispose(),this.llmsTxtIgnorePolicy=null,this.modelPolicyFile?.dispose(),this.modelPolicyFile=null,this.sudoManager?.dispose(),this.sudoManager=null,this.unregisterExportService?.(),this.unregisterExportService=null,I9.info(`Orchestrator shutdown`)}buildWorkerExportService(){let e=new cg,t=this.sharedFs;return new Xy({collection:{listScoops:()=>this.getScoops(),isProcessing:e=>this.isProcessing(e),getAgentMessages:e=>this.getScoopContext(e)?.getAgentMessages()??null,loadPersistedSessions:()=>this.sessionStore?.loadAll()??Promise.resolve([]),loadUiChatSessions:async()=>{let t=await e.list();return(await Promise.all(t.map(t=>e.load(t)))).filter(e=>e!==null)},wait:e=>new Promise(t=>setTimeout(t,e))},knownSecrets:mb(),snapshotStore:{read:e=>sb(t,e),write:(e,n)=>ob(t,e,n)},vfs:t,getActiveSessionInfo:()=>{let e=this.defaultRoot();return{id:e?.jid??`session-${Date.now()}`,title:e?.name??`Active Session`}},version:`6.78.5`})}};const L9=r(`workflow-run-manager`),R9=`/shared/workflow-runs`,z9=1e3;function Whe(e){let t=new Map,n=new Map,r=e=>{let r=t.get(e);if(r)for(let t of n.get(e)??[])try{t(r)}catch(e){L9.warn(`observeRun handler threw`,e)}},i=t=>t===void 0?`terminal`:t===e.getConeJid()?`cone`:`scoop`,a=(e,n)=>Yhe(e,n,t,()=>r(n));async function o(o){let l=o.runId??e.makeRunId(),u=o.sentinel,d={id:l,name:o.name,source:o.source,origin:i(o.parentJid),status:`running`,currentPhase:null,agentsStarted:0,agentsDone:0,logs:[],startedAt:new Date().toISOString(),finishedAt:null,resultPath:null,preview:null,error:null,pid:null};t.set(l,d),qhe(t,n);let f=a(o.ctx,l),p=Jhe(e.processManager,d,l,()=>r(l));return e.runRealm(o.code,[`workflow`,o.filename,l],f).then(e=>s(l,u,e)).catch(e=>c(l,e instanceof Error?e.message:String(e))).finally(()=>p()).catch(e=>L9.warn(`workflow run lifecycle error`,e)),{runId:l}}async function s(t,n,r){let{result:i,hadResult:a}=e.splitResult(r.stdout,n);return r.exitCode===137?l(t,`killed`,null,r.stderr||`killed (SIGKILL)`):r.exitCode!==0||!a?l(t,`error`,null,r.stderr||(a?`exit ${r.exitCode}`:`script produced no result`)):l(t,`done`,i,null)}function c(e,t){return l(e,`error`,null,t)}async function l(n,i,a,o){let s=t.get(n);if(!s||s.status!==`running`&&s.status!==`paused`)return;let c=`${R9}/${n}.json`,l=new Date().toISOString();try{await e.sharedFs.mkdir(R9,{recursive:!0}),await e.sharedFs.writeFile(c,JSON.stringify({name:s.name,status:i,result:i===`done`?a:null,error:o,logs:s.logs,startedAt:s.startedAt,finishedAt:l},null,2)),s.resultPath=c}catch(e){let t=e instanceof Error?e.message:String(e);L9.error(`failed to write run result file`,{runId:n,resultPath:c,error:t}),o=`result file write failed: ${t}`,i===`done`&&(i=`error`)}s.status=i,s.error=o,s.finishedAt=l,s.preview=i===`done`?Khe(a):o??``,r(n),u(s)}function u(t){t.origin===`cone`&&e.fireLick({type:`workflow`,workflowRunId:t.id,workflowName:t.name??void 0,resultPath:t.resultPath??void 0,preview:t.preview??t.error??void 0,timestamp:new Date().toISOString(),body:{runId:t.id,status:t.status,error:t.error}})}return{start:o,getRun:e=>t.get(e)??null,listRuns:()=>Array.from(t.values()),observeRun(e,r){let i=n.get(e);i||(i=new Set,n.set(e,i)),i.add(r);let a=t.get(e);if(a)try{r(a)}catch(e){L9.warn(`observeRun handler threw on initial state`,e)}return()=>i.delete(r)}}}function Ghe(e){let t=Whe(e);return globalThis[X7]=t,L9.info(`workflow run manager published on globalThis.__slicc_workflows`),t}function Khe(e){return((typeof e==`string`?e:JSON.stringify(e))??`null`).slice(0,200)}function qhe(e,t,n=100){if(e.size<=n)return;let r=[...e.values()].filter(e=>e.status!==`running`&&e.status!==`paused`).sort((e,t)=>(e.finishedAt??e.startedAt).localeCompare(t.finishedAt??t.startedAt)),i=e.size-n;for(let n of r){if(i<=0)break;e.delete(n.id),t.delete(n.id),i--}}function Jhe(e,t,n,r){let i=e.on(`spawn`,e=>{t.pid===null&&e.argv.includes(n)&&(t.pid=e.pid,r(),i())});return i}function Yhe(e,t,n,r){let i=e.exec;if(!i)return e;let a=(async(e,a)=>e===`__wf_progress`?Xhe(n,t,a?.args??[],r):e===`agent`?Zhe(n,t,()=>i(e,a),r):i(e,a));return a.spawn=e.exec.spawn,{...e,exec:a}}function Xhe(e,t,n,r){let i=e.get(t);if(i&&i.status===`running`){let[e,t=``]=n;e===`phase`?(i.currentPhase=t,i.logs.push(t)):e===`log`&&i.logs.push(t),i.logs.length>z9&&i.logs.splice(0,i.logs.length-z9),r()}return{stdout:``,stderr:``,exitCode:0}}async function Zhe(e,t,n,r){let i=e.get(t);i&&i.status===`running`&&(i.agentsStarted++,r());try{return await n()}finally{let n=e.get(t);n&&n.status===`running`&&(n.agentsDone++,r())}}var Qhe=class{kind=`proc`;source=void 0;profile=void 0;mountId;pm;closed=!1;constructor(e,t={}){this.pm=e,this.mountId=t.mountId??`proc-${Date.now().toString(36)}`}async readDir(e){this.assertOpen(e);let t=V9(e);if(t.length===0){let e=this.pm.list(),t=e.map(e=>({name:String(e.pid),kind:`directory`}));return e.some(e=>e.pid===1)||t.push({name:`1`,kind:`directory`}),t.sort((e,t)=>Number(e.name)-Number(t.name))}if(t.length===1){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);return B9.map(e=>({name:e,kind:`file`,size:this.fileSize(n,e),lastModified:this.fileMtime(n)}))}throw new un(`ENOTDIR`,`not a directory`,e)}async readFile(e){this.assertOpen(e);let t=V9(e);if(t.length!==2)throw new un(`EISDIR`,`is a directory`,e);let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);let r=t[1];if(!B9.includes(r))throw new un(`ENOENT`,`no such file or directory`,e);let i=this.renderProcFile(n,r);return new TextEncoder().encode(i)}async writeFile(e){throw new un(`EACCES`,`read-only filesystem`,e)}async stat(e){this.assertOpen(e);let t=V9(e);if(t.length===0)return{kind:`directory`,size:0,mtime:0};if(t.length===1){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);return{kind:`directory`,size:0,mtime:this.fileMtime(n)}}if(t.length===2){let n=H9(t[0]);if(n===null||!this.pidExists(n))throw new un(`ENOENT`,`no such file or directory`,e);let r=t[1];if(!B9.includes(r))throw new un(`ENOENT`,`no such file or directory`,e);return{kind:`file`,size:this.fileSize(n,r),mtime:this.fileMtime(n)}}throw new un(`ENOENT`,`no such file or directory`,e)}async mkdir(e){throw new un(`EACCES`,`read-only filesystem`,e)}async remove(e){throw new un(`EACCES`,`read-only filesystem`,e)}async refresh(){return{added:[],removed:[],changed:[],unchanged:0,errors:[]}}describe(){return{displayName:`/proc`,extra:`kernel processes (read-only)`}}async close(){this.closed=!0}assertOpen(e){if(this.closed)throw new un(`EBADF`,`mount closed`,e)}pidExists(e){return e===1||this.pm.get(e)!==null}fileSize(e,t){return this.renderProcFile(e,t).length}fileMtime(e){if(e===1)return 0;let t=this.pm.get(e);return t?t.finishedAt??t.startedAt:0}renderProcFile(e,t){if(e===1)return ige(t);let n=this.pm.get(e);switch(t){case`status`:return $he(n);case`cmdline`:return ege(n);case`cwd`:return tge(n);case`stat`:return nge(n)}}};const B9=[`status`,`cmdline`,`cwd`,`stat`];function V9(e){return e.replace(/^\/+/,``).replace(/\/+$/,``).split(`/`).filter(Boolean)}function H9(e){let t=Number.parseInt(e,10);return!Number.isFinite(t)||String(t)!==e?null:t}function $he(e){let t=[`Name:\t${e.kind}`,`Pid:\t${e.pid}`,`PPid:\t${e.ppid}`,`State:\t${U9(e.status)} (${e.status})`,`Owner:\t${rge(e)}`,`StartedAt:\t${new Date(e.startedAt).toISOString()}`];return e.finishedAt!==null&&t.push(`FinishedAt:\t${new Date(e.finishedAt).toISOString()}`),e.terminatedBy!==null&&t.push(`TerminatedBy:\t${e.terminatedBy}`),e.exitCode!==null&&t.push(`ExitCode:\t${e.exitCode}`),t.push(`Cmdline:\t${e.argv.join(` `)}`),t.join(`
9072
9072
  `)+`
9073
9073
  `}function ege(e){return e.argv.join(`\0`)+`\0`}function tge(e){return e.cwd+`
9074
9074
  `}function nge(e){return[e.pid,`(${e.kind})`,U9(e.status),e.ppid,e.exitCode??`-`,e.startedAt,e.finishedAt??`-`].join(` `)+`
@@ -9077,4 +9077,4 @@ ${t}
9077
9077
  `;case`cmdline`:return`kernel-host\0`;case`cwd`:return`/
9078
9078
  `;case`stat`:return`1 (kernel-host) R 0 - 0 -
9079
9079
  `}}function age(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(RB(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(!NB(n.token))return;let a=i.get(n.id);if(a){r({type:zB,id:n.id}),a.result&&r({type:BB,id:n.id,...a.result});return}let o={};i.set(n.id,o),r({type:zB,id:n.id});let s=e=>{o.result=e,o.timer=setTimeout(()=>i.delete(n.id),605e3),r({type:BB,id:n.id,...e})};(WB(n)?qB(n):LB(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 W9(){return globalThis}function oge(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`bash`:return e.bashJobId??`bash`;case`preview`:return e.previewOrigin??`preview`;case`discovery`:return e.discoveryUrl??e.discoveryOrigin;default:return e.cronName}}function sge(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`bash`:return`bash-${e.bashJobId??`unknown`}`;case`preview`:return e.previewConnId??`preview-${e.timestamp}`;case`discovery`:return e.discoveryUrl??`discovery-${e.timestamp}`;default:return e.cronId}}function cge(e,t){if(e.type===`sudo-request`){t.log.debug?.(`sudo-request lick: UI-chip-only path; orchestrator owns delivery`,{lickId:e.lickId});return}lge(e,t)}function lge(e,{orchestrator:t,log:n}){let r=t.getScoops(),i;if(i=e.targetScoop?r.find(t=>t.name===e.targetScoop||t.folder===e.targetScoop||t.folder===`${e.targetScoop}-scoop`):wh(r)[0],!i){n.warn(`Lick target scoop not found`,e.targetScoop);return}if(e.type===`discovery`&&!F_(i)){n.debug?.(`dropping discovery lick for non-browsing scoop`,{scoop:i.folder});return}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):e.type===`discovery`&&(e.lickId=t.registerDiscoveryLick(e)??void 0);let a=Eg(e);if(a===null){n.debug?.(`dropping lick event with no renderable content`,{type:e.type});return}let o=oge(e),s=sge(e),c=e.type,l={id:`${c}-${s}-${Date.now()}`,chatJid:i.jid,senderId:c,senderName:`${c}:${o}`,content:a.content,timestamp:e.timestamp,fromAssistant:!1,channel:c,...e.lickId?{lickId:e.lickId}:{}};t.handleMessage(l).catch(e=>{n.warn(`Lick message routing failed`,{channel:c,eventName:o,error:String(e)})})}async function uge(e,t,n,r,i){let a=new Br,o=new Uhe(e,{...r,getBrowserAPI:()=>t});o.setProcessManager(a),W9().__slicc_pm=a,aG(sG()),W9().__slicc_browser=t,await n.bind(o,t);let s=cee(()=>n.emitTrayRuntimeStatus()),c=i_(()=>n.emitTrayRuntimeStatus());return await o.init(i),await n.seedBuffersFromAgentState(),{processManager:a,orchestrator:o,unsubLeader:s,unsubFollower:c,sharedFs:o.getSharedFS()}}async function dge(e,t,n){let{registerSessionCostsProvider:r}=await import(`./cost-command-Be2VSQE-.js`).then(e=>e.t);r(t=>e.getSessionCostsForCommand(t));let{getLickManager:i}=await import(`./lick-manager-BJhAu_iX.js`).then(e=>e.r),a=i();await a.init(),e.setLickManager(a);let o=t.lickEventHandler??cge,s={orchestrator:e,lickManager:a,log:n};return a.setEventHandler(e=>o(e,s)),a}async function fge(e){wh(e.getScoops()).length>0||await e.registerScoop({jid:`cone_${Date.now()}`,name:`Cone`,folder:`cone`,isCone:!0,parentJid:null,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()})}function pge(e){let{orchestrator:t,processManager:n,lickManager:r,sharedFs:i}=e;Ghe({sharedFs:i,getConeJid:()=>t.getWorkUnits().resolveDefaultRoot()?.descriptor.id,fireLick:e=>r.emitEvent(e),processManager:n,runRealm:(e,t,n)=>lG(e,t,n,void 0,{filename:t[1]}),makeRunId:()=>Z7().slice(10,22),splitResult:(e,t)=>Q7(e,t)})}async function mge(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-CKHqIv8e.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))+`
9080
- `,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 hge(e,t,n){try{let{startLickWsBridge:t}=await import(`./lick-ws-bridge-DiPcVRfN.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 gge(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 E_(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})},_ge(t));return e.start(),()=>e.stop()}catch(e){return n.warn(`Failed to start NavigationWatcher`,e),null}}function _ge(e){let t=y();return{onDiscovery:t=>{e.emitEvent({type:`discovery`,targetScoop:void 0,timestamp:new Date().toISOString(),discoveryOrigin:t.origin,discoveryKind:t.kind,discoveryUrl:t.url,discoverySource:`live-navigation`,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:()=>D_()}}function vge(e,t,n){(async()=>{try{let{getAllMountEntries:r}=await import(`./mount-table-store-DrF_Ifaz.js`).then(e=>e.r),{recoverMounts:i}=await import(`./mount-recovery-_TjykwtG.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 yge(){Kn(async()=>{let{getLastSeenVersion:e}=await import(`./upgrade-detection-Bsw9PDXL.js`);return e()})}function bge(e,t){(async()=>{try{let{detectUpgrade:t,recordVersionSeen:n}=await import(`./upgrade-detection-Bsw9PDXL.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 xge(e,t,n){try{let{BshWatchdog:n}=await import(`./bsh-watchdog-BM2oq7W2.js`),{ScriptCatalog:r}=await import(`./script-catalog-Bt94D0RP.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 Sge(){return vt()}async function Cge(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1}=e,o=e.logger??console,s=t=>e.onBootProgress?.(t);yge();let{processManager:c,orchestrator:l,unsubLeader:u,unsubFollower:d,sharedFs:f}=await uge(t,n,r,i,e.onBootProgress);if(s(`orchestrator-ready`),f?qh(l,f,l.getSessionStore()):o.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new Qhe(c))}catch(e){o.warn(`Failed to mount /proc`,e)}let p=await dge(l,e,o);s(`lick-manager-ready`),f&&pge({orchestrator:l,processManager:c,lickManager:p,sharedFs:f}),W9().__slicc_lickManager=p;let{wsBridge:m,wsRegistry:h}=await mge({browser:n,lickManager:p,orchestrator:l,sharedFs:f,log:o});W9().__slicc_wsSubscribers=h;let g=null;Sge()&&(g=await hge(p,o,e.localLickWsUrl??null));let _=gge(n,p,o);f&&vge(f,p,o),a||await fge(l),s(`cone-bootstrapped`),f&&bge(p,o);let v=null,y=null;f&&({bshWatchdogStop:v,scriptCatalogDispose:y}=await xge(f,n,o));let b=null;f&&e.syncFsChannelNonce&&(b=age({nonce:e.syncFsChannelNonce}).dispose);let x=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:p,sharedFs:f??null,processManager:c,async dispose(){x||(x=!0,await wge({unsubLeader:u,unsubFollower:d,bshWatchdogStop:v,scriptCatalogDispose:y,lickWsBridgeStop:g,navigationWatcherStop:_,syncFsResponderDispose:b,sharedFs:f,wsRegistry:h,wsBridge:m,processManager:c,lickManager:p,browser:n,log:o}))}}}async function wge(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)}Tge({processManager:i,lickManager:a,browser:o,wsRegistry:n})}function Tge(e){let t=W9();t.__slicc_pm===e.processManager&&(delete t.__slicc_pm,aG(null)),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[X7]}const G9=`x-bypass-llm-proxy`;function Ege(e,t,n){return t?(r,i)=>{if(!Dge(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 Dge(e,t,n){if(kge(e,t))return!0;let r=n?.()??null;return r?Oge(e,r,t):!1}function Oge(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 kge(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 Age(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 jge=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(!Mge(e)||e.source!==`panel`)return;let t=e.payload;Nge(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,t.shell.applySessionOverrides?.({cwd:e.cwd,env:e.env});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 Mge(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 Nge(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 Pge=class extends u9{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 Fge(e){let{transport:t,fs:n,browser:r,processManager:i,sudoManager:a}=e,o=e.logger??console,s=a?.getShellConfig({transparentGating:!1}),c=new jge({transport:t,processManager:i,createShell:(a,o)=>new Pge(a,t,{fs:n,cwd:o.cwd,env:o.env,browserAPI:r,webhook:{hasLocalNodeServer:e.webhook?.hasLocalNodeServer??vt,getLeaderStatus:e.webhook?.getLeaderStatus??bn},processManager:i,processOwner:{kind:`system`},sudo:s}),logger:o});return{host:c,stop:c.start()}}function Ige(e){let t=new Lge(e);return t.start(),{stop:()=>t.dispose()}}var Lge=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(!Rge(e)||e.source!==`panel`)return;let t=e.payload;if(zge(t)){this.handleRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] handler unexpectedly threw`,e)});return}if(Bge(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 un(`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 un(`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(Vge(e.type),e.requestId,new un(`EACCES`,`vfs-rpc-host has no writable backend wired`),Hge(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 un(`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 un(`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 un(`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 Rge(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function zge(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 Bge(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 Vge(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 Hge(e){return e.type===`vfs-flush`||e.type===`vfs-list-mount-points`?``:e.path}function J9(e,t){return e instanceof un?{code:e.code,message:e.message,path:e.path??t}:{code:`EIO`,message:e instanceof Error?e.message:String(e),path:t}}function Uge(){let e=globalThis.fetch;if(!e)return;let t=self?.location?self.location.origin:void 0;globalThis.fetch=Ege(e.bind(globalThis),t,Wge)}function Wge(){let e=l();if(!e)return null;try{return new URL(e).origin}catch{return null}}function Gge(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 Kge=Age(e=>Yge(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&Kge.handle(e.data)});function qge(e){let t=Mee(e.pageBuildId,`6.78.3-mt3v0wft`);return()=>{t&&Cee(`mixed-build-graph`,`page ${e.pageBuildId} worker 6.78.3-mt3v0wft`)}}function Jge(e){Uge(),m(e.localApiBaseUrl??null),v(e.bridgeToken??null),XW(e.syncFsBridgeEnabled??!1),u(e.extensionDelegateId??null),Gge(e.localStorageSeed??{}),e.flagFloat&&Ra(e.flagFloat)}async function Yge(e){Aee(e.instanceId);let t=qge(e),n=t=>{e.kernelPort.postMessage({type:`kernel-worker-boot-progress`,stage:t})};try{Jge(e),Tee().then(t).catch(()=>{}),await s(),n(`providers-registered`);let r=Pee(e.kernelPort),a=new __(r),o=__.createCallbacks(a),c=new Fee(e.cdpPort);await c.connect(),n(`cdp-connected`);let l=new ha(c);Y9=await Cge({container:{},browser:l,bridge:a,callbacks:o,logger:console,localLickWsUrl:e.localLickWsUrl??null,syncFsChannelNonce:e.syncFsChannelNonce??null,onBootProgress:n});let{createSprinkleManagerProxyOverChannel:u}=await import(`./sprinkle-bridge-channel-CftxYQ9D.js`),d=u({instanceId:e.instanceId});globalThis.__slicc_sprinkleManager=d;let f=Y9.sharedFs?.getWatcher();if(f){let e=[`/workspace`,`/shared`,`/scoops`],t=null,n=new Set;for(let r of e)f.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)d.reload(e).catch(()=>{});n.clear()},300)})}let{createPanelRpcClient:p}=await import(`./panel-rpc-BPwAqRch.js`).then(e=>e.i);$9=p({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9,l.setTrayTargetProvider(xa(i));let m=await Zge({host:Y9,transport:r,browser:l,instanceId:e.instanceId});m&&(X9=m.stopTerminalHost,Z9=m.stopVfsRpcHost,Q9=m.stopSpeechAssetsResponder),e.kernelPort.postMessage({type:`kernel-worker-ready`})}catch(t){Xge(e.kernelPort,t)}}function Xge(e,t){jee(t);try{let n=t instanceof Error?t.message:String(t),r=t?.code;e.postMessage({type:`kernel-worker-boot-error`,message:n,...typeof r==`string`?{code:r}:{},...t instanceof Error&&t.stack?{stack:t.stack}:{}})}catch{}throw t}async function Zge(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=Fge({transport:e.transport,fs:t,browser:e.browser,processManager:e.host.processManager,sudoManager:e.host.orchestrator.getSudoManager(),logger:console}),r=Ige({transport:e.transport,client:t,writableClient:t,logger:console}),i=await Qge(t,e.instanceId);return{stopTerminalHost:n.stop,stopVfsRpcHost:r.stop,stopSpeechAssetsResponder:i}}async function Qge(e,t){let{installSpeechAssetsResponder:n}=await import(`./speech-assets-bridge-DequteUl.js`),{ensureSpeechAssetsStaged:r}=await import(`./ensure-speech-assets-DvFwJX-M.js`),{createProxiedFetch:i}=await import(`./proxied-fetch-n2pCvcgW.js`).then(e=>e.n),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())});
9080
+ `,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 hge(e,t,n){try{let{startLickWsBridge:t}=await import(`./lick-ws-bridge-DiPcVRfN.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 gge(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 E_(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})},_ge(t));return e.start(),()=>e.stop()}catch(e){return n.warn(`Failed to start NavigationWatcher`,e),null}}function _ge(e){let t=y();return{onDiscovery:t=>{e.emitEvent({type:`discovery`,targetScoop:void 0,timestamp:new Date().toISOString(),discoveryOrigin:t.origin,discoveryKind:t.kind,discoveryUrl:t.url,discoverySource:`live-navigation`,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:()=>D_()}}function vge(e,t,n){(async()=>{try{let{getAllMountEntries:r}=await import(`./mount-table-store-DrF_Ifaz.js`).then(e=>e.r),{recoverMounts:i}=await import(`./mount-recovery-DXsq8_k_.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 yge(){Kn(async()=>{let{getLastSeenVersion:e}=await import(`./upgrade-detection-X7d39PBZ.js`);return e()})}function bge(e,t){(async()=>{try{let{detectUpgrade:t,recordVersionSeen:n}=await import(`./upgrade-detection-X7d39PBZ.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 xge(e,t,n){try{let{BshWatchdog:n}=await import(`./bsh-watchdog-BM2oq7W2.js`),{ScriptCatalog:r}=await import(`./script-catalog-Bt94D0RP.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 Sge(){return vt()}async function Cge(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1}=e,o=e.logger??console,s=t=>e.onBootProgress?.(t);yge();let{processManager:c,orchestrator:l,unsubLeader:u,unsubFollower:d,sharedFs:f}=await uge(t,n,r,i,e.onBootProgress);if(s(`orchestrator-ready`),f?qh(l,f,l.getSessionStore()):o.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new Qhe(c))}catch(e){o.warn(`Failed to mount /proc`,e)}let p=await dge(l,e,o);s(`lick-manager-ready`),f&&pge({orchestrator:l,processManager:c,lickManager:p,sharedFs:f}),W9().__slicc_lickManager=p;let{wsBridge:m,wsRegistry:h}=await mge({browser:n,lickManager:p,orchestrator:l,sharedFs:f,log:o});W9().__slicc_wsSubscribers=h;let g=null;Sge()&&(g=await hge(p,o,e.localLickWsUrl??null));let _=gge(n,p,o);f&&vge(f,p,o),a||await fge(l),s(`cone-bootstrapped`),f&&bge(p,o);let v=null,y=null;f&&({bshWatchdogStop:v,scriptCatalogDispose:y}=await xge(f,n,o));let b=null;f&&e.syncFsChannelNonce&&(b=age({nonce:e.syncFsChannelNonce}).dispose);let x=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:p,sharedFs:f??null,processManager:c,async dispose(){x||(x=!0,await wge({unsubLeader:u,unsubFollower:d,bshWatchdogStop:v,scriptCatalogDispose:y,lickWsBridgeStop:g,navigationWatcherStop:_,syncFsResponderDispose:b,sharedFs:f,wsRegistry:h,wsBridge:m,processManager:c,lickManager:p,browser:n,log:o}))}}}async function wge(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)}Tge({processManager:i,lickManager:a,browser:o,wsRegistry:n})}function Tge(e){let t=W9();t.__slicc_pm===e.processManager&&(delete t.__slicc_pm,aG(null)),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[X7]}const G9=`x-bypass-llm-proxy`;function Ege(e,t,n){return t?(r,i)=>{if(!Dge(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 Dge(e,t,n){if(kge(e,t))return!0;let r=n?.()??null;return r?Oge(e,r,t):!1}function Oge(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 kge(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 Age(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 jge=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(!Mge(e)||e.source!==`panel`)return;let t=e.payload;Nge(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,t.shell.applySessionOverrides?.({cwd:e.cwd,env:e.env});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 Mge(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 Nge(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 Pge=class extends u9{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 Fge(e){let{transport:t,fs:n,browser:r,processManager:i,sudoManager:a}=e,o=e.logger??console,s=a?.getShellConfig({transparentGating:!1}),c=new jge({transport:t,processManager:i,createShell:(a,o)=>new Pge(a,t,{fs:n,cwd:o.cwd,env:o.env,browserAPI:r,webhook:{hasLocalNodeServer:e.webhook?.hasLocalNodeServer??vt,getLeaderStatus:e.webhook?.getLeaderStatus??bn},processManager:i,processOwner:{kind:`system`},sudo:s}),logger:o});return{host:c,stop:c.start()}}function Ige(e){let t=new Lge(e);return t.start(),{stop:()=>t.dispose()}}var Lge=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(!Rge(e)||e.source!==`panel`)return;let t=e.payload;if(zge(t)){this.handleRequest(t).catch(e=>{this.log.warn(`[vfs-rpc-host] handler unexpectedly threw`,e)});return}if(Bge(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 un(`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 un(`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(Vge(e.type),e.requestId,new un(`EACCES`,`vfs-rpc-host has no writable backend wired`),Hge(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 un(`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 un(`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 un(`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 Rge(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function zge(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 Bge(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 Vge(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 Hge(e){return e.type===`vfs-flush`||e.type===`vfs-list-mount-points`?``:e.path}function J9(e,t){return e instanceof un?{code:e.code,message:e.message,path:e.path??t}:{code:`EIO`,message:e instanceof Error?e.message:String(e),path:t}}function Uge(){let e=globalThis.fetch;if(!e)return;let t=self?.location?self.location.origin:void 0;globalThis.fetch=Ege(e.bind(globalThis),t,Wge)}function Wge(){let e=l();if(!e)return null;try{return new URL(e).origin}catch{return null}}function Gge(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 Kge=Age(e=>Yge(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&Kge.handle(e.data)});function qge(e){let t=Mee(e.pageBuildId,`6.78.5-mt3wxglr`);return()=>{t&&Cee(`mixed-build-graph`,`page ${e.pageBuildId} worker 6.78.5-mt3wxglr`)}}function Jge(e){Uge(),m(e.localApiBaseUrl??null),v(e.bridgeToken??null),XW(e.syncFsBridgeEnabled??!1),u(e.extensionDelegateId??null),Gge(e.localStorageSeed??{}),e.flagFloat&&Ra(e.flagFloat)}async function Yge(e){Aee(e.instanceId);let t=qge(e),n=t=>{e.kernelPort.postMessage({type:`kernel-worker-boot-progress`,stage:t})};try{Jge(e),Tee().then(t).catch(()=>{}),await s(),n(`providers-registered`);let r=Pee(e.kernelPort),a=new __(r),o=__.createCallbacks(a),c=new Fee(e.cdpPort);await c.connect(),n(`cdp-connected`);let l=new ha(c);Y9=await Cge({container:{},browser:l,bridge:a,callbacks:o,logger:console,localLickWsUrl:e.localLickWsUrl??null,syncFsChannelNonce:e.syncFsChannelNonce??null,onBootProgress:n});let{createSprinkleManagerProxyOverChannel:u}=await import(`./sprinkle-bridge-channel-CftxYQ9D.js`),d=u({instanceId:e.instanceId});globalThis.__slicc_sprinkleManager=d;let f=Y9.sharedFs?.getWatcher();if(f){let e=[`/workspace`,`/shared`,`/scoops`],t=null,n=new Set;for(let r of e)f.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)d.reload(e).catch(()=>{});n.clear()},300)})}let{createPanelRpcClient:p}=await import(`./panel-rpc-BPwAqRch.js`).then(e=>e.i);$9=p({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9,l.setTrayTargetProvider(xa(i));let m=await Zge({host:Y9,transport:r,browser:l,instanceId:e.instanceId});m&&(X9=m.stopTerminalHost,Z9=m.stopVfsRpcHost,Q9=m.stopSpeechAssetsResponder),e.kernelPort.postMessage({type:`kernel-worker-ready`})}catch(t){Xge(e.kernelPort,t)}}function Xge(e,t){jee(t);try{let n=t instanceof Error?t.message:String(t),r=t?.code;e.postMessage({type:`kernel-worker-boot-error`,message:n,...typeof r==`string`?{code:r}:{},...t instanceof Error&&t.stack?{stack:t.stack}:{}})}catch{}throw t}async function Zge(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=Fge({transport:e.transport,fs:t,browser:e.browser,processManager:e.host.processManager,sudoManager:e.host.orchestrator.getSudoManager(),logger:console}),r=Ige({transport:e.transport,client:t,writableClient:t,logger:console}),i=await Qge(t,e.instanceId);return{stopTerminalHost:n.stop,stopVfsRpcHost:r.stop,stopSpeechAssetsResponder:i}}async function Qge(e,t){let{installSpeechAssetsResponder:n}=await import(`./speech-assets-bridge-DequteUl.js`),{ensureSpeechAssetsStaged:r}=await import(`./ensure-speech-assets-DvFwJX-M.js`),{createProxiedFetch:i}=await import(`./proxied-fetch-n2pCvcgW.js`).then(e=>e.n),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())});