@inkeep/open-knowledge 0.59.0-beta.13 → 0.59.0-beta.14

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 (136) hide show
  1. package/dist/{acp-harness-probe-BLS1nK2w.mjs → acp-harness-probe-CNFNCUGz.mjs} +2 -2
  2. package/dist/cli.mjs +6 -6
  3. package/dist/constants-DN-9zlW1.mjs +2 -0
  4. package/dist/fs-traced-C1nHpvFb.mjs +1 -0
  5. package/dist/{fs-traced-CJ0NSnI0.mjs → fs-traced-Dy67FR5_.mjs} +2 -2
  6. package/dist/git-handle-BPPRdjZZ.mjs +1 -0
  7. package/dist/{git-handle-DDFppGcc.mjs → git-handle-KDk0khh5.mjs} +2 -2
  8. package/dist/index.mjs +2 -2
  9. package/dist/{init-DBtz-4P6.mjs → init-CfD5NARM.mjs} +3 -3
  10. package/dist/init-DWv8tT4O.mjs +1 -0
  11. package/dist/{launch-json-removal-CZFUI3we.mjs → launch-json-removal-D2sBQ6Ur.mjs} +2 -2
  12. package/dist/loader-BGkwEr7t.mjs +1 -0
  13. package/dist/{loader-DLrxB82t.mjs → loader-BofTct4Y.mjs} +2 -2
  14. package/dist/md-manager-CdRw_aqi.mjs +2 -0
  15. package/dist/{open-browser-CHSsUL5t.mjs → open-browser-BklPlV75.mjs} +2 -2
  16. package/dist/parse-worker.mjs +1 -1
  17. package/dist/{preview-B53ZHVpa.mjs → preview-B2a1S7UT.mjs} +2 -2
  18. package/dist/preview-D13Am20B.mjs +1 -0
  19. package/dist/public/assets/{ActivityModeContent-Dm80EO6I.js → ActivityModeContent-BIn008__.js} +1 -1
  20. package/dist/public/assets/{AgentDiffPane-CiDRNNtB.js → AgentDiffPane-3GMOCb2c.js} +1 -1
  21. package/dist/public/assets/{AgentThreadClientBinder-q7HjbS_V.js → AgentThreadClientBinder-Di2dPu4h.js} +1 -1
  22. package/dist/public/assets/{CodeMirrorPropInput-CAuN39X3.js → CodeMirrorPropInput-BKSuOOVi.js} +1 -1
  23. package/dist/public/assets/{DocumentContext-BQwDWNIp.js → DocumentContext-C-X4T4d9.js} +1 -1
  24. package/dist/public/assets/{EditorModeToggle-BPsUpNqB.js → EditorModeToggle-CPKSIpqP.js} +1 -1
  25. package/dist/public/assets/{EnableSyncConfirmDialog-SztigQDp.js → EnableSyncConfirmDialog-B9GQfDxa.js} +1 -1
  26. package/dist/public/assets/{ExcalidrawDocEditor-DUpN3hmr.js → ExcalidrawDocEditor-CiuG3mW7.js} +1 -1
  27. package/dist/public/assets/FeedbackForm-DYjADexF.js +1 -0
  28. package/dist/public/assets/{GraphPanel-B_Mg9p1O.js → GraphPanel-DT-1F3b4.js} +1 -1
  29. package/dist/public/assets/{ImportSkillDialog-Dlx0DBn5.js → ImportSkillDialog-d6lkfU9h.js} +1 -1
  30. package/dist/public/assets/{LintConfigEditor-DZNYgrQG.js → LintConfigEditor-BEaCP-Xa.js} +1 -1
  31. package/dist/public/assets/{ManagedArtifactProperties-B-0nFc46.js → ManagedArtifactProperties-CI77JvTy.js} +1 -1
  32. package/dist/public/assets/ManagedArtifactProperties-RawOG82I.js +1 -0
  33. package/dist/public/assets/{MermaidDocEditor-Bu0vzdBQ.js → MermaidDocEditor-3Qy_xxrY.js} +1 -1
  34. package/dist/public/assets/{PropertyDisplayRow-DFpnExTR.js → PropertyDisplayRow-jv0QSvvc.js} +1 -1
  35. package/dist/public/assets/{ReportBugDialogBody-CVQgnZSP.js → ReportBugDialogBody-CD42zSIE.js} +1 -1
  36. package/dist/public/assets/{SchemaConfigEditor-BQ_qrwXQ.js → SchemaConfigEditor-DRPb60r3.js} +1 -1
  37. package/dist/public/assets/{SessionsHost-CednqHmx.js → SessionsHost-0wztntvc.js} +2 -2
  38. package/dist/public/assets/{SettingsDialogBody-CDLuNlbr.js → SettingsDialogBody-CguEJilL.js} +2 -2
  39. package/dist/public/assets/{ShareBranchSwitchDialog-DIQmuIkz.js → ShareBranchSwitchDialog-DD3l5H06.js} +1 -1
  40. package/dist/public/assets/{ShareReceiveDialog-BWuqWxsw.js → ShareReceiveDialog-D5BGQzdA.js} +1 -1
  41. package/dist/public/assets/{ShareReceiveMissDialog-CEG6W1Ev.js → ShareReceiveMissDialog-QiuppiTF.js} +1 -1
  42. package/dist/public/assets/{SkillCostValue-6xiHOBnl.js → SkillCostValue-D8ebP6Zc.js} +1 -1
  43. package/dist/public/assets/{SkillEditBanner-BqzwArWv.js → SkillEditBanner-BkzopHHR.js} +1 -1
  44. package/dist/public/assets/{SkillInstallMenu-CiSsB_my.js → SkillInstallMenu-B7luagyu.js} +1 -1
  45. package/dist/public/assets/{SkillOriginInline-B1B3kTSz.js → SkillOriginInline-BvpULx0r.js} +1 -1
  46. package/dist/public/assets/{SkillToolbarControls-DzZ0Gk1t.js → SkillToolbarControls-Dzsdm7PA.js} +1 -1
  47. package/dist/public/assets/{SlidesToolbarControls-BZvu5Syj.js → SlidesToolbarControls-CoX9pn5-.js} +1 -1
  48. package/dist/public/assets/{SourceEditor-qlPmt6ym.js → SourceEditor-QZM8qnoP.js} +1 -1
  49. package/dist/public/assets/{TerminalPanel-DkxYnA6s.js → TerminalPanel-gvD8j_Io.js} +1 -1
  50. package/dist/public/assets/{TerminalWindowApp-BhcRGz-t.js → TerminalWindowApp-CAceqDR9.js} +1 -1
  51. package/dist/public/assets/{TextDocEditor-CCvc4Q5l.js → TextDocEditor-tkRGKEq5.js} +1 -1
  52. package/dist/public/assets/{ThreadView-BbaUHoL7.js → ThreadView-BMvSxzC4.js} +1 -1
  53. package/dist/public/assets/{TimelineDiffPane-QLS0U_1C.js → TimelineDiffPane-DDkbig_i.js} +1 -1
  54. package/dist/public/assets/{agent-diff-store-J11a-4Bd.js → agent-diff-store-kz-Y8I6f.js} +1 -1
  55. package/dist/public/assets/{auth-state-cache-_thFjwl-.js → auth-state-cache-CXBlrCdD.js} +2 -2
  56. package/dist/public/assets/client-version-B1ECEFiM.js +1 -0
  57. package/dist/public/assets/{comment-chips-CLyRlBJL.js → comment-chips-ZBz8P1qB.js} +1 -1
  58. package/dist/public/assets/{config-provider-C7upY2Yd.js → config-provider-j9ER9l4W.js} +1 -1
  59. package/dist/public/assets/{dist-DGemBD_J.js → dist-7P3QNiAv.js} +2 -2
  60. package/dist/public/assets/{doc-paths-BkpejoFL.js → doc-paths-DPQCXAM6.js} +1 -1
  61. package/dist/public/assets/{documents-events-B2g_1xMi.js → documents-events-DSYMSbrh.js} +1 -1
  62. package/dist/public/assets/{file-tree-adapter-Bo3rGytc.js → file-tree-adapter-DWQqMzJU.js} +1 -1
  63. package/dist/public/assets/{file-tree-utils-CzXn1zjH.js → file-tree-utils-CCGJg4dv.js} +1 -1
  64. package/dist/public/assets/{folder-config-api-DPWmRi8a.js → folder-config-api-BFcRWayL.js} +1 -1
  65. package/dist/public/assets/{follow-file-DaYTg7AY.js → follow-file-DInAFQK_.js} +1 -1
  66. package/dist/public/assets/{globals-t_AE56h0.css → globals-DZLrtRra.css} +1 -1
  67. package/dist/public/assets/i18n-8WVAXtMP.js +1 -0
  68. package/dist/public/assets/{index-8x_9u23T.js → index-CW5V3fEN.js} +7 -7
  69. package/dist/public/assets/{lint-config-client-sK38eqbj.js → lint-config-client-D0R0SOyp.js} +1 -1
  70. package/dist/public/assets/{markdownlint-rule-browser-T68WxSIo.js → markdownlint-rule-browser-C-ng_hpW.js} +1 -1
  71. package/dist/public/assets/{navigation-targets-D6rHX3Pq.js → navigation-targets-BI4fIUSN.js} +1 -1
  72. package/dist/public/assets/{open-managed-artifact-tab-ENQgQOde.js → open-managed-artifact-tab-DUwaeWfA.js} +1 -1
  73. package/dist/public/assets/{pending-receive-nav-store-CC2XknmZ.js → pending-receive-nav-store-Crc_XCGA.js} +1 -1
  74. package/dist/public/assets/{prop-types-CizsurD0.js → prop-types-tU6-fOmD.js} +1 -1
  75. package/dist/public/assets/{receive-store-DHalgzeU.js → receive-store-BzLz5gZK.js} +1 -1
  76. package/dist/public/assets/{selection-context-DdO1wltB.js → selection-context-CnpF-Ed9.js} +1 -1
  77. package/dist/public/assets/{skill-actions-BSweQ1qx.js → skill-actions-BdLNV2ET.js} +1 -1
  78. package/dist/public/assets/{skill-scope-gUkJkFRO.js → skill-scope-CRZYtnmj.js} +1 -1
  79. package/dist/public/assets/{skills-api-DO54o34O.js → skills-api-DT1cIHsu.js} +1 -1
  80. package/dist/public/assets/{src-B5lvdvjM.js → src-BHnBKao9.js} +1 -1
  81. package/dist/public/assets/{tag-pill-input-D2qVy9HA.js → tag-pill-input-Bcant_jp.js} +1 -1
  82. package/dist/public/assets/{target-navigation-intent-BqElNT05.js → target-navigation-intent-Bd_1P8q5.js} +1 -1
  83. package/dist/public/assets/{telemetry-impl-BcdvjHjJ.js → telemetry-impl-u08eIZFn.js} +1 -1
  84. package/dist/public/assets/{telemetry-startup-CmDjO4so.js → telemetry-startup-PYGQzY-J.js} +1 -1
  85. package/dist/public/assets/{terminal-cli-display-BTQdEy1j.js → terminal-cli-display-Dcm1esjR.js} +1 -1
  86. package/dist/public/assets/{terminal-launch-events-DNmxO4ft.js → terminal-launch-events-D8ytCf2E.js} +1 -1
  87. package/dist/public/assets/{terminal-telemetry-BC3JNC05.js → terminal-telemetry-LPAWl6sJ.js} +1 -1
  88. package/dist/public/assets/{typing-burst-detector-ChW315nG.js → typing-burst-detector-MvNJwskd.js} +1 -1
  89. package/dist/public/assets/{uninstall-C1RXngJE.js → uninstall-ACcONsCi.js} +1 -1
  90. package/dist/public/assets/{use-activity-panel-SBXuDVLV.js → use-activity-panel-DO4-UumZ.js} +1 -1
  91. package/dist/public/assets/{use-apply-config-color-theme-DZRctrdg.js → use-apply-config-color-theme-DpUYtbRe.js} +1 -1
  92. package/dist/public/assets/{use-collab-url-B7oEo69p.js → use-collab-url-B1V6TiLU.js} +1 -1
  93. package/dist/public/assets/{use-live-xterm-theme-C1EtEd_i.js → use-live-xterm-theme-DYp4WjiU.js} +1 -1
  94. package/dist/public/assets/{use-open-skill-DI2x1PKF.js → use-open-skill-8o6IZoY2.js} +1 -1
  95. package/dist/public/assets/{use-popular-skills-DfFoUUYd.js → use-popular-skills-CC2urVQ6.js} +1 -1
  96. package/dist/public/assets/{use-settings-route-BrzzIll2.js → use-settings-route-DYSuZnve.js} +1 -1
  97. package/dist/public/assets/{use-skill-origin-FTbTIS5Y.js → use-skill-origin-Cd9ipAH-.js} +1 -1
  98. package/dist/public/assets/{use-terminal-enabled-BL8teAd-.js → use-terminal-enabled-pw2WV2qk.js} +1 -1
  99. package/dist/public/assets/{use-timeline-entry-diff-BjMCsEI9.js → use-timeline-entry-diff-B3StRSt9.js} +1 -1
  100. package/dist/public/assets/{use-workspace-8Sxb8Z6Q.js → use-workspace-BP0fuu9O.js} +1 -1
  101. package/dist/public/index.html +47 -47
  102. package/dist/public/uninstall.html +5 -5
  103. package/dist/{repair-launch-json-BCLVdv5z.mjs → repair-launch-json-DNViuYZ7.mjs} +2 -2
  104. package/dist/{repair-mcp-configs-7QsJ5kRz.mjs → repair-mcp-configs-BM4qXgds.mjs} +2 -2
  105. package/dist/{repair-skills-9uic_lvC.mjs → repair-skills-BoMh5uOr.mjs} +2 -2
  106. package/dist/repair-skills-D3qrrU25.mjs +1 -0
  107. package/dist/{resolve-project-root-DxuF_Wkh.mjs → resolve-project-root-DpSmoodv.mjs} +2 -2
  108. package/dist/{server-lock-BmwIVWMl.mjs → server-lock-CSO3K0Ok.mjs} +2 -2
  109. package/dist/server-lock-D_MF6GOb.mjs +1 -0
  110. package/dist/{skill-teardown-BAqBOmoz.mjs → skill-teardown-D66Xjjil.mjs} +2 -2
  111. package/dist/{sleep-B416PNUo.mjs → sleep-CEs13Om_.mjs} +2 -2
  112. package/dist/{src-BjgAn2Yr.mjs → src-8LdfqLwC.mjs} +6 -6
  113. package/dist/{src-BxdlvOrw.mjs → src-BimG4LM6.mjs} +3 -3
  114. package/dist/{src-CBP82hxm.mjs → src-D72th7in.mjs} +2 -2
  115. package/dist/{src-CUYD9VhP.mjs → src-DorV8gmN.mjs} +1 -1
  116. package/dist/src-bwfEbl1P.mjs +1 -0
  117. package/dist/{start-CI1yLDi9.mjs → start-BfQkBca_.mjs} +4 -4
  118. package/dist/start-C3q0F7F6.mjs +1 -0
  119. package/dist/{ui-Z7Q_cw-H.mjs → ui-DRrmB9yI.mjs} +3 -3
  120. package/package.json +5 -5
  121. package/dist/constants-CnQt0oGf.mjs +0 -2
  122. package/dist/fs-traced-Bmqe7SqT.mjs +0 -1
  123. package/dist/git-handle-CDxQW_H0.mjs +0 -1
  124. package/dist/init-DRcsYZFT.mjs +0 -1
  125. package/dist/loader-D8NZH1TL.mjs +0 -1
  126. package/dist/md-manager-30E0O9b-.mjs +0 -2
  127. package/dist/preview-DyCQvwcK.mjs +0 -1
  128. package/dist/public/assets/FeedbackForm-BTUVYyRh.js +0 -1
  129. package/dist/public/assets/ManagedArtifactProperties-FyJ6IPjk.js +0 -1
  130. package/dist/public/assets/client-version-CR8MBZoD.js +0 -1
  131. package/dist/public/assets/i18n-BmV9TpxI.js +0 -1
  132. package/dist/repair-skills-DFvLHpTw.mjs +0 -1
  133. package/dist/server-lock-e6dYuoeq.mjs +0 -1
  134. package/dist/src-BPIgs9KB.mjs +0 -1
  135. package/dist/start-DzWMYSvd.mjs +0 -1
  136. /package/dist/public/assets/{globals-BEtYwZKH.js → globals-CQk8qCgW.js} +0 -0
@@ -1,7 +1,7 @@
1
- import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{$t as r,At as i,Bt as a,C as o,Ct as s,Dt as c,Et as l,F as u,Ft as d,Gt as f,Ht as p,I as m,It as h,Jt as g,Kt as _,L as v,Lt as y,Mt as b,N as x,Nt as S,P as C,Pt as w,Q as T,Qt as E,R as ee,Rt as D,S as te,St as O,T as ne,Tt as re,U as ie,V as k,Vt as ae,Xt as oe,Yt as se,Zt as ce,a as le,at as ue,bt as de,d as fe,dt as pe,en as A,ft as me,gt as he,ht as ge,i as _e,it as ve,j as ye,jt as j,kt as M,lt as be,m as xe,nn as Se,o as Ce,ot as we,p as Te,pt as Ee,qt as De,s as Oe,st as ke,t as Ae,tn as je,tt as Me,ut as Ne,vt as Pe,w as Fe,wt as Ie,x as Le,yt as Re,z as ze,zt as Be}from"./sleep-B416PNUo.mjs";import{$ as Ve,$a as He,$i as Ue,$n as We,$o as Ge,$r as Ke,$s as qe,$t as Je,A as Ye,Aa as Xe,Ai as Ze,An as Qe,Ao as $e,Ar as et,As as tt,At as nt,B as rt,Ba as it,Bi as at,Bn as ot,Bo as st,Br as ct,Bs as lt,Bt as ut,C as dt,Ca as ft,Ci as pt,Cn as mt,Co as ht,Cr as gt,Ct as _t,D as vt,Da as yt,Di as bt,Dn as xt,Do as St,Dr as Ct,Dt as wt,E as Tt,Ea as Et,Ei as Dt,En as Ot,Eo as kt,Er as At,Es as jt,Et as Mt,F as Nt,Fa as Pt,Fi as Ft,Fn as It,Fo as Lt,Fr as Rt,Fs as zt,Ft as Bt,G as Vt,Ga as Ht,Gi as Ut,Gn as Wt,Gr as Gt,Gt as Kt,H as qt,Ha as Jt,Hi as Yt,Hn as Xt,Ho as Zt,Hr as Qt,Hs as $t,Ht as en,I as tn,Ia as nn,Ii as rn,In as an,Io as on,Ir as sn,Is as cn,It as ln,J as un,Ja as dn,Ji as fn,Jn as pn,Jo as mn,Jr as hn,Js as eee,Jt as gn,Ka as _n,Ki as vn,Kn as yn,Kr as bn,Ks as xn,Kt as Sn,L as Cn,La as tee,Li as nee,Ln as ree,Lo as wn,Lr as Tn,Lt as En,M as Dn,Ma as iee,Mi as aee,Mn as oee,Mo as see,Mr as cee,Ms as On,Mt as kn,N as An,Na as jn,Ni as Mn,Nn,No as Pn,Nr as Fn,Ns as In,Nt as Ln,O as Rn,Oa as zn,Oi as Bn,On as lee,Oo as uee,Or as dee,Os as Vn,Ot as Hn,P as Un,Pa as fee,Pi as pee,Pn as mee,Po as Wn,Pr as hee,Ps as Gn,Pt as Kn,Q as qn,Qa as Jn,Qi as Yn,Qn as Xn,Qo as Zn,Qr as Qn,Qs as $n,Qt as er,R as tr,Ra as gee,Ri as nr,Rn as _ee,Ro as rr,Rr as ir,Rs as ar,S as or,Sa as vee,Si as yee,Sn as sr,So as bee,Sr as xee,Ss as cr,St as lr,T as ur,Ta as See,Ti as dr,Tn as Cee,To as wee,Tr as Tee,Ts as fr,Tt as pr,U as mr,Ua as hr,Ui as gr,Un as Eee,Ur as Dee,Us as _r,Ut as vr,V as yr,Va as br,Vi as xr,Vn as Sr,Vo as Cr,Vr as wr,Vs as Tr,Vt as Er,Wa as Dr,Wi as Or,Wn as Oee,Wo as kr,Wr as kee,Ws as Ar,Wt as jr,X as Mr,Xa as Nr,Xi as Pr,Xn as Aee,Xo as Fr,Xr as Ir,Xs as Lr,Xt as Rr,Y as zr,Ya as Br,Yi as Vr,Yn as Hr,Yo as Ur,Yr as Wr,Ys as Gr,Yt as Kr,Z as qr,Za as Jr,Zi as Yr,Zn as jee,Zr as Xr,Zs as Zr,Zt as Mee,_ as Qr,_a as $r,_c as ei,_i as Nee,_n as ti,_o as ni,_r as ri,_s as ii,_t as ai,a as oi,aa as si,ai as ci,an as li,ao as ui,ar as di,as as fi,b as pi,ba as mi,bi as Pee,bn as Fee,bo as Iee,br as hi,bs as gi,bt as _i,c as vi,ca as yi,cc as bi,ci as Lee,cn as Ree,co as xi,cr as zee,cs as Si,ct as Ci,d as wi,da as Ti,di as Ei,dn as Bee,do as Di,dr as Vee,ds as Oi,dt as ki,ea as Ai,ec as Hee,ei as ji,en as Mi,eo as Ni,er as Uee,et as Pi,f as Fi,fa as Ii,fi as Wee,fn as Gee,fo as Li,fr as Kee,fs as Ri,ft as zi,g as Bi,ga as Vi,gc as Hi,gi as qee,gn as Ui,go as Jee,gr as Wi,gt as Gi,h as Ki,ha as qi,hc as Ji,hi as Yi,hn as Xi,hr as Zi,hs as Qi,ht as $i,i as ea,ia as ta,ic as na,ii as ra,in as ia,io as aa,ir as oa,is as sa,j as ca,ja as la,ji as ua,jn as da,jo as fa,jr as pa,jt as ma,k as ha,ka as ga,ki as _a,kn as va,ko as ya,kr as Yee,ks as ba,kt as xa,l as Sa,la as Ca,li as wa,ln as Xee,lo as Ta,lr as Zee,lt as Ea,m as Da,ma as Oa,mi as ka,mn as Qee,mo as Aa,mr as $ee,ms as ja,mt as Ma,n as Na,na as Pa,nc as Fa,ni as ete,nn as tte,no as Ia,nr as nte,ns as La,nt as Ra,o as za,oa as Ba,oc as Va,oi as Ha,on as rte,or as Ua,os as Wa,ot as Ga,p as Ka,pa as qa,pi as Ja,pn as ite,po as Ya,pr as ate,ps as Xa,pt as Za,q as Qa,qa as $a,qi as eo,qn as to,qo as no,qr as ote,qs as ro,qt as io,r as ao,ra as oo,rc as ste,ri as cte,rn as so,ro as co,rr as lte,rt as lo,s as uo,sa as fo,sc as po,si as mo,sn as ute,so as ho,sr as go,ss as _o,st as vo,t as yo,ta as bo,tc as xo,ti as So,tn as Co,to as wo,tr as To,ts as Eo,tt as Do,u as Oo,ua as ko,ui as Ao,un as jo,uo as Mo,ur as No,us as Po,ut as Fo,v as Io,va as Lo,vc as Ro,vi as zo,vn as Bo,vo as Vo,vr as Ho,vs as Uo,vt as Wo,w as Go,wa as Ko,wi as qo,wn as Jo,wo as Yo,wr as dte,ws as Xo,wt as Zo,x as Qo,xa as $o,xc as es,xi as fte,xn as pte,xo as ts,xr as mte,xs as ns,xt as rs,y as is,ya as hte,yi as as,yn as gte,yo as os,yr as _te,yt as ss,z as cs,za as vte,zi as ls,zn as us,zr as ds,zs as fs}from"./src-BxdlvOrw.mjs";import{c as ps,i as ms,l as hs,n as gs,s as _s}from"./esm-DxvI2ZVA.mjs";import{n as vs,t as ys}from"./md-manager-30E0O9b-.mjs";import{A as bs,C as xs,E as Ss,I as Cs,M as ws,O as Ts,P as Es,S as Ds,T as Os,_ as ks,a as As,b as js,c as Ms,d as Ns,f as Ps,g as Fs,h as Is,i as Ls,j as Rs,k as zs,l as Bs,m as Vs,n as Hs,o as Us,p as Ws,r as Gs,s as Ks,t as qs,u as Js,v as Ys,w as Xs,x as Zs,y as Qs}from"./fs-traced-CJ0NSnI0.mjs";import{D as $s,E as ec,S as tc,T as nc,a as rc,b as ic,l as ac,p as oc,r as N,s as sc,x as cc,y as lc}from"./logger-DFxEUjvj.mjs";import{a as uc,c as dc,i as fc,l as pc,o as mc,r as hc,s as gc,t as _c}from"./git-handle-DDFppGcc.mjs";import{C as vc,S as yc,a as bc,b as xc,c as Sc,f as Cc,g as wc,h as Tc,i as Ec,l as Dc,n as Oc,p as kc,r as Ac,u as jc,v as Mc,y as Nc}from"./server-lock-BmwIVWMl.mjs";import{t as Pc}from"./libesm-DzwC_yFw.mjs";import{t as Fc}from"./yazl-DZr4PyKA.mjs";import{n as Ic,t as Lc}from"./build-CJW5ggp6.mjs";import{t as Rc}from"./chunk-B74TABJS-BSazPoW8.mjs";import{a as zc,c as Bc,d as Vc,f as Hc,h as Uc,i as Wc,l as Gc,m as Kc,n as qc,o as Jc,p as Yc,r as Xc,s as Zc,t as Qc,u as $c}from"./chunk-GFQRA5P5-JJS41DJS.mjs";import{A as el,B as tl,C as nl,D as rl,E as il,F as al,H as ol,I as sl,L as cl,M as ll,N as ul,O as dl,P as fl,S as pl,T as ml,V as hl,_ as gl,a as _l,b as vl,c as yl,d as bl,f as xl,g as Sl,h as Cl,i as wl,j as Tl,k as El,l as Dl,m as Ol,n as kl,o as Al,p as jl,r as Ml,s as Nl,t as yte,u as Pl,v as Fl,w as Il,x as Ll,y as Rl,z as zl}from"./chunk-BGSUD5R5-BIZeqUja.mjs";import{a as Bl,c as Vl,d as Hl,i as Ul,l as Wl,n as bte,o as xte,r as Ste,s as Gl,t as Cte,u as Kl}from"./chunk-KX3P26DQ-Di79jFtW.mjs";import{n as ql,r as Jl,t as Yl}from"./chunk-R6VWJ2ZL-CQWpbRHp.mjs";import{r as Xl}from"./chunk-CWQS3NFK-HnFncXpd.mjs";import{t as Zl}from"./chunk-DXB73IDG-q-dGnwlc.mjs";import{n as Ql,t as $l}from"./chunk-5QMZ5MUS-D8tv8KWc.mjs";import{n as wte,t as Tte}from"./chunk-A5O5YHGN-C27iG4wY.mjs";import{n as eu,r as tu,t as nu}from"./chunk-OJDRYQWQ-CmHyfN6x.mjs";import{r as Ete,t as ru}from"./chunk-24IMIIXA-BQtWA2ag.mjs";import{n as iu}from"./chunk-3THT3N7L-DcPtGCSm.mjs";import{t as au}from"./chunk-44UOCSGV-Dadyg26w.mjs";import{t as ou}from"./wrapper-BcpqREsI.mjs";import{createRequire as su}from"node:module";import{execFile as cu,execFileSync as lu,spawn as uu,spawnSync as du}from"node:child_process";import*as fu from"node:path";import{basename as pu,delimiter as mu,dirname as P,extname as hu,isAbsolute as gu,join as F,normalize as _u,parse as vu,posix as yu,relative as I,resolve as L,sep as R,win32 as bu}from"node:path";import{URLSearchParams as xu,fileURLToPath as Su,pathToFileURL as Cu}from"node:url";import*as wu from"node:fs";import{appendFileSync as Tu,chmodSync as Eu,closeSync as Du,constants as Ou,createReadStream as ku,createWriteStream as Au,existsSync as z,fstatSync as ju,lstatSync as Mu,mkdirSync as Nu,mkdtempSync as Pu,openSync as Fu,opendirSync as Iu,readFile as Lu,readFileSync as B,readSync as Ru,readdirSync as zu,readlinkSync as Bu,realpathSync as V,renameSync as Vu,rmSync as Hu,rmdirSync as Uu,statSync as Wu,unlinkSync as Gu,writeFileSync as Ku,writeSync as Dte}from"node:fs";import{arch as qu,availableParallelism as Ote,homedir as Ju,hostname as Yu,platform as Xu,tmpdir as Zu}from"node:os";import{access as Qu,chmod as kte,constants as $u,lstat as ed,readFile as td,readdir as nd,realpath as rd,stat as id,writeFile as Ate}from"node:fs/promises";import{Readable as ad,Transform as jte,Writable as Mte}from"node:stream";import od,{createHash as sd,randomUUID as cd,webcrypto as ld}from"node:crypto";import Nte from"crypto";import{Readable as ud}from"stream";import{EventEmitter as Pte}from"node:events";import{Worker as Fte}from"node:worker_threads";import{monitorEventLoopDelay as Ite,performance as dd}from"node:perf_hooks";import{createInterface as Lte}from"node:readline";import{pipeline as fd}from"node:stream/promises";import{setImmediate as Rte,setTimeout as pd}from"node:timers/promises";import{promisify as md}from"node:util";import{request as zte}from"node:http";import{Http2ServerRequest as hd,constants as Bte}from"node:http2";import{lookup as Vte}from"node:dns/promises";import{request as Hte}from"node:https";import{createBrotliDecompress as Ute,createGunzip as Wte,createInflate as Gte}from"node:zlib";import{Http2ServerRequest as gd,constants as Kte}from"http2";import{AsyncLocalStorage as qte}from"node:async_hooks";import{lookup as Jte}from"node:dns";import Yte from"node:tls";var _d=class{kind;projectRoot;projectSubPath;gitPath;gitDir;cachedCommonDir;constructor(e,t,n,r,i){this.kind=e,this.projectRoot=t,this.projectSubPath=n,this.gitPath=r,this.gitDir=i}readCommonDir(){if(this.cachedCommonDir!==void 0)return{kind:`resolved`,path:this.cachedCommonDir};let e=this.gitDir;try{let t=B(F(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=gu(t)?t:L(this.gitDir,t))}catch(e){if(!xd(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=B(F(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return xd(e)?{kind:`absent`}:{kind:`unreadable`,cause:e}}let t=/^ref:[ \t]*(refs\/heads\/(.+))$/.exec(e);return t?.[2]?{kind:`branch`,branch:t[2],ref:t[1]}:Cd(e)?{kind:`detached`,oid:e}:{kind:`malformed`,raw:e}}readRemoteUrl(e){let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n;try{n=B(F(t.path,`config`),`utf-8`)}catch(e){return xd(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=Xte(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Sd(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=L(t.path,e),r=I(t.path,n);if(r.startsWith(`..`)||gu(r))return{kind:`invalid`};try{let e=B(n,`utf-8`).trim(),t=$te(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!xd(e))return{kind:`unreadable`,cause:e}}let i;try{i=B(F(t.path,`packed-refs`),`utf-8`)}catch(e){return xd(e)?{kind:`absent`}:{kind:`unreadable`,cause:e}}for(let t of i.split(/\r?\n/)){let n=t.trim();if(n.length===0||n.startsWith(`#`)||n.startsWith(`^`))continue;let r=n.split(/\s+/);if(r.length===2&&r[1]===e)return Cd(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function vd(e){return bd(L(e),``)}function yd(e){let t=L(e),n=L(Ju());if(t===n)return{kind:`absent`};let r=bd(t,``);if(r.kind!==`absent`)return r;let i=t;for(let e=0;e<64;e++){if(i===n)return{kind:`absent`};let e=P(i);if(e===i||e===n)return{kind:`absent`};let r=bd(e,I(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function bd(e,t){let n=F(e,`.git`),r;try{r=Wu(n)}catch(e){return xd(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new _d(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=B(n,`utf-8`).trim()}catch(e){return{kind:`malformed-pointer`,gitPath:n,target:``,cause:e}}let a=/^gitdir:[ \t]*(.+)$/.exec(i);if(!a)return{kind:`malformed-pointer`,gitPath:n,target:``};let o=a[1].trim(),s=gu(o)?o:L(e,o);try{if(!Wu(s).isDirectory())return{kind:`malformed-pointer`,gitPath:n,target:s}}catch(e){return{kind:`malformed-pointer`,gitPath:n,target:s,cause:e}}return{kind:`repository`,repository:new _d(`linked`,e,t,n,s)}}function Xte(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=Zte(r);if(e.length===0)continue;if(e.startsWith(`[`)){n=/^\[\s*remote\s+["'](.+)["']\s*\]$/.exec(e)?.[1]===t;continue}if(!n)continue;let i=/^url\s*=\s*(.*)$/.exec(e);if(!i)continue;let a=Qte(i[1]);if(a.length>0)return a}return null}function Zte(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function Qte(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function xd(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Sd(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function $te(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Sd(t[1])?{kind:`symbolic`,target:t[1]}:null:Cd(e)?{kind:`oid`,oid:e}:null}function Cd(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const wd=`ok-generator`;function ene(e){return`git-author-${Ln(e.trim().toLowerCase())}`}const tne=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function Td(e){let t=yd(e);if(t.kind!==`repository`)return t;let{repository:n}=t;return n.kind===`directory`?{kind:`directory`,path:n.gitDir,projectSubPath:n.projectSubPath}:{kind:`linked`,path:n.gitDir,gitPath:n.gitPath,projectSubPath:n.projectSubPath}}function Ed(e){let t=Td(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Dd(e){let t=Td(e);switch(t.kind){case`directory`:return L(t.path,Od(t.projectSubPath));case`linked`:if(!z(t.path))throw new kd(t.gitPath,t.path);return L(t.path,Od(t.projectSubPath));case`malformed-pointer`:throw new kd(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Ad(t.gitPath,{cause:t.cause});case`absent`:return L(e,`.git/ok`)}}function Od(e){return e===``?`ok`:`ok-${nne(e)}`}function nne(e){let t=e.split(R).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=rne(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function rne(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var kd=class extends Error{gitPointerPath;resolvedTarget;constructor(e,t,n){let r=t?`references a missing or unreadable gitdir at ${t}`:`is unreadable or has no valid gitdir: pointer`;super(`\`.git\` pointer at ${e} ${r}. Run \`git worktree prune\` from the source repo and try again.`,n),this.name=`MalformedGitPointerError`,this.gitPointerPath=e,this.resolvedTarget=t}},Ad=class extends Error{gitPath;constructor(e,t){let n=t?.cause!==void 0&&t.cause!==null&&typeof t.cause==`object`&&`code`in t.cause&&typeof t.cause.code==`string`?` (${t.cause.code})`:``;super(`Cannot access \`.git\` at ${e}${n}. Check filesystem permissions and that the volume is mounted.`,t),this.name=`GitDirAccessError`,this.gitPath=e}};function ine(e){let t;try{t=Dd(e)}catch(e){if(e instanceof kd||e instanceof Ad)return null;throw e}return z(L(t,`HEAD`))?t:null}function jd(e){return`refs/wip/${e}/`}function ane(e){if(!e)return[];let t=[];for(let n of e.split(`
1
+ import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{$t as r,At as i,Bt as a,C as o,Ct as s,Dt as c,Et as l,F as u,Ft as d,Gt as f,Ht as p,I as m,It as h,Jt as g,Kt as _,L as v,Lt as y,Mt as b,N as x,Nt as S,P as C,Pt as w,Q as T,Qt as E,R as ee,Rt as D,S as te,St as O,T as ne,Tt as re,U as ie,V as k,Vt as ae,Xt as oe,Yt as se,Zt as ce,a as le,at as ue,bt as de,d as fe,dt as pe,en as A,ft as me,gt as he,ht as ge,i as _e,it as ve,j as ye,jt as j,kt as M,lt as be,m as xe,nn as Se,o as Ce,ot as we,p as Te,pt as Ee,qt as De,s as Oe,st as ke,t as Ae,tn as je,tt as Me,ut as Ne,vt as Pe,w as Fe,wt as Ie,x as Le,yt as Re,z as ze,zt as Be}from"./sleep-CEs13Om_.mjs";import{$ as Ve,$a as He,$i as Ue,$n as We,$o as Ge,$r as Ke,$s as qe,$t as Je,A as Ye,Aa as Xe,Ai as Ze,An as Qe,Ao as $e,Ar as et,As as tt,At as nt,B as rt,Ba as it,Bi as at,Bn as ot,Bo as st,Br as ct,Bs as lt,Bt as ut,C as dt,Ca as ft,Ci as pt,Cn as mt,Co as ht,Cr as gt,Ct as _t,D as vt,Da as yt,Di as bt,Dn as xt,Do as St,Dr as Ct,Dt as wt,E as Tt,Ea as Et,Ei as Dt,En as Ot,Eo as kt,Er as At,Es as jt,Et as Mt,F as Nt,Fa as Pt,Fi as Ft,Fn as It,Fo as Lt,Fr as Rt,Fs as zt,Ft as Bt,G as Vt,Ga as Ht,Gi as Ut,Gn as Wt,Gr as Gt,Gt as Kt,H as qt,Ha as Jt,Hi as Yt,Hn as Xt,Ho as Zt,Hr as Qt,Hs as $t,Ht as en,I as tn,Ia as nn,Ii as rn,In as an,Io as on,Ir as sn,Is as cn,It as ln,J as un,Ja as dn,Ji as fn,Jn as pn,Jo as mn,Jr as hn,Js as eee,Jt as gn,Ka as _n,Ki as vn,Kn as yn,Kr as bn,Ks as xn,Kt as Sn,L as Cn,La as tee,Li as nee,Ln as ree,Lo as wn,Lr as Tn,Lt as En,M as Dn,Ma as iee,Mi as aee,Mn as oee,Mo as see,Mr as cee,Ms as On,Mt as kn,N as An,Na as jn,Ni as Mn,Nn,No as Pn,Nr as Fn,Ns as In,Nt as Ln,O as Rn,Oa as zn,Oi as Bn,On as lee,Oo as uee,Or as dee,Os as Vn,Ot as Hn,P as Un,Pa as fee,Pi as pee,Pn as mee,Po as Wn,Pr as hee,Ps as Gn,Pt as Kn,Q as qn,Qa as Jn,Qi as Yn,Qn as Xn,Qo as Zn,Qr as Qn,Qs as $n,Qt as er,R as tr,Ra as gee,Ri as nr,Rn as _ee,Ro as rr,Rr as ir,Rs as ar,S as or,Sa as vee,Si as yee,Sn as sr,So as bee,Sr as xee,Ss as cr,St as lr,T as ur,Ta as See,Ti as dr,Tn as Cee,To as wee,Tr as Tee,Ts as fr,Tt as pr,U as mr,Ua as hr,Ui as gr,Un as Eee,Ur as Dee,Us as _r,Ut as vr,V as yr,Va as br,Vi as xr,Vn as Sr,Vo as Cr,Vr as wr,Vs as Tr,Vt as Er,Wa as Dr,Wi as Or,Wn as Oee,Wo as kr,Wr as kee,Ws as Ar,Wt as jr,X as Mr,Xa as Nr,Xi as Pr,Xn as Aee,Xo as Fr,Xr as Ir,Xs as Lr,Xt as Rr,Y as zr,Ya as Br,Yi as Vr,Yn as Hr,Yo as Ur,Yr as Wr,Ys as Gr,Yt as Kr,Z as qr,Za as Jr,Zi as Yr,Zn as jee,Zr as Xr,Zs as Zr,Zt as Mee,_ as Qr,_a as $r,_c as ei,_i as Nee,_n as ti,_o as ni,_r as ri,_s as ii,_t as ai,a as oi,aa as si,ai as ci,an as li,ao as ui,ar as di,as as fi,b as pi,ba as mi,bi as Pee,bn as Fee,bo as Iee,br as hi,bs as gi,bt as _i,c as vi,ca as yi,cc as bi,ci as Lee,cn as Ree,co as xi,cr as zee,cs as Si,ct as Ci,d as wi,da as Ti,di as Ei,dn as Bee,do as Di,dr as Vee,ds as Oi,dt as ki,ea as Ai,ec as Hee,ei as ji,en as Mi,eo as Ni,er as Uee,et as Pi,f as Fi,fa as Ii,fi as Wee,fn as Gee,fo as Li,fr as Kee,fs as Ri,ft as zi,g as Bi,ga as Vi,gc as Hi,gi as qee,gn as Ui,go as Jee,gr as Wi,gt as Gi,h as Ki,ha as qi,hc as Ji,hi as Yi,hn as Xi,hr as Zi,hs as Qi,ht as $i,i as ea,ia as ta,ic as na,ii as ra,in as ia,io as aa,ir as oa,is as sa,j as ca,ja as la,ji as ua,jn as da,jo as fa,jr as pa,jt as ma,k as ha,ka as ga,ki as _a,kn as va,ko as ya,kr as Yee,ks as ba,kt as xa,l as Sa,la as Ca,li as wa,ln as Xee,lo as Ta,lr as Zee,lt as Ea,m as Da,ma as Oa,mi as ka,mn as Qee,mo as Aa,mr as $ee,ms as ja,mt as Ma,n as Na,na as Pa,nc as Fa,ni as ete,nn as tte,no as Ia,nr as nte,ns as La,nt as Ra,o as za,oa as Ba,oc as Va,oi as Ha,on as rte,or as Ua,os as Wa,ot as Ga,p as Ka,pa as qa,pi as Ja,pn as ite,po as Ya,pr as ate,ps as Xa,pt as Za,q as Qa,qa as $a,qi as eo,qn as to,qo as no,qr as ote,qs as ro,qt as io,r as ao,ra as oo,rc as ste,ri as cte,rn as so,ro as co,rr as lte,rt as lo,s as uo,sa as fo,sc as po,si as mo,sn as ute,so as ho,sr as go,ss as _o,st as vo,t as yo,ta as bo,tc as xo,ti as So,tn as Co,to as wo,tr as To,ts as Eo,tt as Do,u as Oo,ua as ko,ui as Ao,un as jo,uo as Mo,ur as No,us as Po,ut as Fo,v as Io,va as Lo,vc as Ro,vi as zo,vn as Bo,vo as Vo,vr as Ho,vs as Uo,vt as Wo,w as Go,wa as Ko,wi as qo,wn as Jo,wo as Yo,wr as dte,ws as Xo,wt as Zo,x as Qo,xa as $o,xc as es,xi as fte,xn as pte,xo as ts,xr as mte,xs as ns,xt as rs,y as is,ya as hte,yi as as,yn as gte,yo as os,yr as _te,yt as ss,z as cs,za as vte,zi as ls,zn as us,zr as ds,zs as fs}from"./src-BimG4LM6.mjs";import{c as ps,i as ms,l as hs,n as gs,s as _s}from"./esm-DxvI2ZVA.mjs";import{n as vs,t as ys}from"./md-manager-CdRw_aqi.mjs";import{A as bs,C as xs,E as Ss,I as Cs,M as ws,O as Ts,P as Es,S as Ds,T as Os,_ as ks,a as As,b as js,c as Ms,d as Ns,f as Ps,g as Fs,h as Is,i as Ls,j as Rs,k as zs,l as Bs,m as Vs,n as Hs,o as Us,p as Ws,r as Gs,s as Ks,t as qs,u as Js,v as Ys,w as Xs,x as Zs,y as Qs}from"./fs-traced-Dy67FR5_.mjs";import{D as $s,E as ec,S as tc,T as nc,a as rc,b as ic,l as ac,p as oc,r as N,s as sc,x as cc,y as lc}from"./logger-DFxEUjvj.mjs";import{a as uc,c as dc,i as fc,l as pc,o as mc,r as hc,s as gc,t as _c}from"./git-handle-KDk0khh5.mjs";import{C as vc,S as yc,a as bc,b as xc,c as Sc,f as Cc,g as wc,h as Tc,i as Ec,l as Dc,n as Oc,p as kc,r as Ac,u as jc,v as Mc,y as Nc}from"./server-lock-CSO3K0Ok.mjs";import{t as Pc}from"./libesm-DzwC_yFw.mjs";import{t as Fc}from"./yazl-DZr4PyKA.mjs";import{n as Ic,t as Lc}from"./build-CJW5ggp6.mjs";import{t as Rc}from"./chunk-B74TABJS-BSazPoW8.mjs";import{a as zc,c as Bc,d as Vc,f as Hc,h as Uc,i as Wc,l as Gc,m as Kc,n as qc,o as Jc,p as Yc,r as Xc,s as Zc,t as Qc,u as $c}from"./chunk-GFQRA5P5-JJS41DJS.mjs";import{A as el,B as tl,C as nl,D as rl,E as il,F as al,H as ol,I as sl,L as cl,M as ll,N as ul,O as dl,P as fl,S as pl,T as ml,V as hl,_ as gl,a as _l,b as vl,c as yl,d as bl,f as xl,g as Sl,h as Cl,i as wl,j as Tl,k as El,l as Dl,m as Ol,n as kl,o as Al,p as jl,r as Ml,s as Nl,t as yte,u as Pl,v as Fl,w as Il,x as Ll,y as Rl,z as zl}from"./chunk-BGSUD5R5-BIZeqUja.mjs";import{a as Bl,c as Vl,d as Hl,i as Ul,l as Wl,n as bte,o as xte,r as Ste,s as Gl,t as Cte,u as Kl}from"./chunk-KX3P26DQ-Di79jFtW.mjs";import{n as ql,r as Jl,t as Yl}from"./chunk-R6VWJ2ZL-CQWpbRHp.mjs";import{r as Xl}from"./chunk-CWQS3NFK-HnFncXpd.mjs";import{t as Zl}from"./chunk-DXB73IDG-q-dGnwlc.mjs";import{n as Ql,t as $l}from"./chunk-5QMZ5MUS-D8tv8KWc.mjs";import{n as wte,t as Tte}from"./chunk-A5O5YHGN-C27iG4wY.mjs";import{n as eu,r as tu,t as nu}from"./chunk-OJDRYQWQ-CmHyfN6x.mjs";import{r as Ete,t as ru}from"./chunk-24IMIIXA-BQtWA2ag.mjs";import{n as iu}from"./chunk-3THT3N7L-DcPtGCSm.mjs";import{t as au}from"./chunk-44UOCSGV-Dadyg26w.mjs";import{t as ou}from"./wrapper-BcpqREsI.mjs";import{createRequire as su}from"node:module";import{execFile as cu,execFileSync as lu,spawn as uu,spawnSync as du}from"node:child_process";import*as fu from"node:path";import{basename as pu,delimiter as mu,dirname as P,extname as hu,isAbsolute as gu,join as F,normalize as _u,parse as vu,posix as yu,relative as I,resolve as L,sep as R,win32 as bu}from"node:path";import{URLSearchParams as xu,fileURLToPath as Su,pathToFileURL as Cu}from"node:url";import*as wu from"node:fs";import{appendFileSync as Tu,chmodSync as Eu,closeSync as Du,constants as Ou,createReadStream as ku,createWriteStream as Au,existsSync as z,fstatSync as ju,lstatSync as Mu,mkdirSync as Nu,mkdtempSync as Pu,openSync as Fu,opendirSync as Iu,readFile as Lu,readFileSync as B,readSync as Ru,readdirSync as zu,readlinkSync as Bu,realpathSync as V,renameSync as Vu,rmSync as Hu,rmdirSync as Uu,statSync as Wu,unlinkSync as Gu,writeFileSync as Ku,writeSync as Dte}from"node:fs";import{arch as qu,availableParallelism as Ote,homedir as Ju,hostname as Yu,platform as Xu,tmpdir as Zu}from"node:os";import{access as Qu,chmod as kte,constants as $u,lstat as ed,readFile as td,readdir as nd,realpath as rd,stat as id,writeFile as Ate}from"node:fs/promises";import{Readable as ad,Transform as jte,Writable as Mte}from"node:stream";import od,{createHash as sd,randomUUID as cd,webcrypto as ld}from"node:crypto";import Nte from"crypto";import{Readable as ud}from"stream";import{EventEmitter as Pte}from"node:events";import{Worker as Fte}from"node:worker_threads";import{monitorEventLoopDelay as Ite,performance as dd}from"node:perf_hooks";import{createInterface as Lte}from"node:readline";import{pipeline as fd}from"node:stream/promises";import{setImmediate as Rte,setTimeout as pd}from"node:timers/promises";import{promisify as md}from"node:util";import{request as zte}from"node:http";import{Http2ServerRequest as hd,constants as Bte}from"node:http2";import{lookup as Vte}from"node:dns/promises";import{request as Hte}from"node:https";import{createBrotliDecompress as Ute,createGunzip as Wte,createInflate as Gte}from"node:zlib";import{Http2ServerRequest as gd,constants as Kte}from"http2";import{AsyncLocalStorage as qte}from"node:async_hooks";import{lookup as Jte}from"node:dns";import Yte from"node:tls";var _d=class{kind;projectRoot;projectSubPath;gitPath;gitDir;cachedCommonDir;constructor(e,t,n,r,i){this.kind=e,this.projectRoot=t,this.projectSubPath=n,this.gitPath=r,this.gitDir=i}readCommonDir(){if(this.cachedCommonDir!==void 0)return{kind:`resolved`,path:this.cachedCommonDir};let e=this.gitDir;try{let t=B(F(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=gu(t)?t:L(this.gitDir,t))}catch(e){if(!xd(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=B(F(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return xd(e)?{kind:`absent`}:{kind:`unreadable`,cause:e}}let t=/^ref:[ \t]*(refs\/heads\/(.+))$/.exec(e);return t?.[2]?{kind:`branch`,branch:t[2],ref:t[1]}:Cd(e)?{kind:`detached`,oid:e}:{kind:`malformed`,raw:e}}readRemoteUrl(e){let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n;try{n=B(F(t.path,`config`),`utf-8`)}catch(e){return xd(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=Xte(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Sd(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=L(t.path,e),r=I(t.path,n);if(r.startsWith(`..`)||gu(r))return{kind:`invalid`};try{let e=B(n,`utf-8`).trim(),t=$te(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!xd(e))return{kind:`unreadable`,cause:e}}let i;try{i=B(F(t.path,`packed-refs`),`utf-8`)}catch(e){return xd(e)?{kind:`absent`}:{kind:`unreadable`,cause:e}}for(let t of i.split(/\r?\n/)){let n=t.trim();if(n.length===0||n.startsWith(`#`)||n.startsWith(`^`))continue;let r=n.split(/\s+/);if(r.length===2&&r[1]===e)return Cd(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function vd(e){return bd(L(e),``)}function yd(e){let t=L(e),n=L(Ju());if(t===n)return{kind:`absent`};let r=bd(t,``);if(r.kind!==`absent`)return r;let i=t;for(let e=0;e<64;e++){if(i===n)return{kind:`absent`};let e=P(i);if(e===i||e===n)return{kind:`absent`};let r=bd(e,I(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function bd(e,t){let n=F(e,`.git`),r;try{r=Wu(n)}catch(e){return xd(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new _d(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=B(n,`utf-8`).trim()}catch(e){return{kind:`malformed-pointer`,gitPath:n,target:``,cause:e}}let a=/^gitdir:[ \t]*(.+)$/.exec(i);if(!a)return{kind:`malformed-pointer`,gitPath:n,target:``};let o=a[1].trim(),s=gu(o)?o:L(e,o);try{if(!Wu(s).isDirectory())return{kind:`malformed-pointer`,gitPath:n,target:s}}catch(e){return{kind:`malformed-pointer`,gitPath:n,target:s,cause:e}}return{kind:`repository`,repository:new _d(`linked`,e,t,n,s)}}function Xte(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=Zte(r);if(e.length===0)continue;if(e.startsWith(`[`)){n=/^\[\s*remote\s+["'](.+)["']\s*\]$/.exec(e)?.[1]===t;continue}if(!n)continue;let i=/^url\s*=\s*(.*)$/.exec(e);if(!i)continue;let a=Qte(i[1]);if(a.length>0)return a}return null}function Zte(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function Qte(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function xd(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Sd(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function $te(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Sd(t[1])?{kind:`symbolic`,target:t[1]}:null:Cd(e)?{kind:`oid`,oid:e}:null}function Cd(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const wd=`ok-generator`;function ene(e){return`git-author-${Ln(e.trim().toLowerCase())}`}const tne=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function Td(e){let t=yd(e);if(t.kind!==`repository`)return t;let{repository:n}=t;return n.kind===`directory`?{kind:`directory`,path:n.gitDir,projectSubPath:n.projectSubPath}:{kind:`linked`,path:n.gitDir,gitPath:n.gitPath,projectSubPath:n.projectSubPath}}function Ed(e){let t=Td(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Dd(e){let t=Td(e);switch(t.kind){case`directory`:return L(t.path,Od(t.projectSubPath));case`linked`:if(!z(t.path))throw new kd(t.gitPath,t.path);return L(t.path,Od(t.projectSubPath));case`malformed-pointer`:throw new kd(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Ad(t.gitPath,{cause:t.cause});case`absent`:return L(e,`.git/ok`)}}function Od(e){return e===``?`ok`:`ok-${nne(e)}`}function nne(e){let t=e.split(R).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=rne(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function rne(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var kd=class extends Error{gitPointerPath;resolvedTarget;constructor(e,t,n){let r=t?`references a missing or unreadable gitdir at ${t}`:`is unreadable or has no valid gitdir: pointer`;super(`\`.git\` pointer at ${e} ${r}. Run \`git worktree prune\` from the source repo and try again.`,n),this.name=`MalformedGitPointerError`,this.gitPointerPath=e,this.resolvedTarget=t}},Ad=class extends Error{gitPath;constructor(e,t){let n=t?.cause!==void 0&&t.cause!==null&&typeof t.cause==`object`&&`code`in t.cause&&typeof t.cause.code==`string`?` (${t.cause.code})`:``;super(`Cannot access \`.git\` at ${e}${n}. Check filesystem permissions and that the volume is mounted.`,t),this.name=`GitDirAccessError`,this.gitPath=e}};function ine(e){let t;try{t=Dd(e)}catch(e){if(e instanceof kd||e instanceof Ad)return null;throw e}return z(L(t,`HEAD`))?t:null}function jd(e){return`refs/wip/${e}/`}function ane(e){if(!e)return[];let t=[];for(let n of e.split(`
2
2
  `)){let e=n.trim();if(e.startsWith(`ok-contributors: `))try{let n=JSON.parse(e.slice(17));if(typeof n==`object`&&n&&`id`in n&&typeof n.id==`string`&&`name`in n&&typeof n.name==`string`&&`docs`in n&&Array.isArray(n.docs)&&n.docs.every(e=>typeof e==`string`)&&(!(`colorSeed`in n)||typeof n.colorSeed==`string`)){let e=n;if(`summaries`in e){let t=e.summaries;(!Array.isArray(t)||!t.every(e=>typeof e==`string`))&&delete e.summaries}t.push(n)}}catch{}}return t}const Md=`ok-actor: `;function Nd(e){let{summaries:t,previous_paths:n,...r}=e,i={...r};return t&&t.length>0&&(i.summaries=t),n&&n.length>0&&(i.previous_paths=n),`${Md}${JSON.stringify(i)}`}function Pd(e){if(e.v!==1||!(`display_name`in e)||typeof e.display_name!=`string`||!(`docs`in e)||!Array.isArray(e.docs))return null;let t=typeof e.principal==`string`?e.principal:null,n=typeof e.agent_session==`string`?e.agent_session:null,r;if(typeof e.writer_id==`string`&&e.writer_id.length>0)r=e.writer_id;else if(n)r=`agent-${n}`;else if(t)r=t;else switch(e.display_name){case`File System`:r=`file-system`;break;case`Git (upstream)`:r=`git-upstream`;break;default:r=`openknowledge-service`}let i=`summaries`in e&&Array.isArray(e.summaries)&&e.summaries.every(e=>typeof e==`string`)?e.summaries:void 0,a=one(e);return{v:1,writer_id:r,principal:t,agent_session:n,agent_type:typeof e.agent_type==`string`?e.agent_type:null,client_name:typeof e.client_name==`string`?e.client_name:null,client_version:typeof e.client_version==`string`?e.client_version:null,label:typeof e.label==`string`?e.label:null,display_name:e.display_name,color_seed:typeof e.color_seed==`string`?e.color_seed:`unknown`,docs:e.docs.filter(e=>typeof e==`string`),...i&&i.length>0?{summaries:i}:{},...a&&a.length>0?{previous_paths:a}:{}}}function one(e){if(!(`previous_paths`in e)||!Array.isArray(e.previous_paths))return;let t=[];for(let n of e.previous_paths){if(typeof n!=`object`||!n)continue;let e=n;typeof e.from!=`string`||typeof e.to!=`string`||t.push({from:e.from,to:e.to})}return t}function sne(e){if(!e)return null;for(let t of e.split(`
3
3
  `)){let e=t.trim();if(!e.startsWith(Md))continue;let n;try{n=JSON.parse(e.slice(10))}catch{return null}return typeof n!=`object`||!n?null:Pd(n)}return null}function Fd(e){if(!e)return[];let t=[];for(let n of e.split(`
4
- `)){let e=n.trim();if(!e.startsWith(Md))continue;let r;try{r=JSON.parse(e.slice(10))}catch{continue}if(typeof r!=`object`||!r)continue;let i=Pd(r);i&&t.push(i)}return t}function cne(e){let t={v:1,id:e.writer_id,name:e.display_name,colorSeed:e.color_seed,docs:e.docs};return e.summaries&&e.summaries.length>0&&(t.summaries=e.summaries),t}function Id(e){let t=Fd(e);return t.length>0?t.map(cne):ane(e)}function Ld(e){return e.length===0?`wip: auto-save`:e.length===1?`wip: ${e[0]}`:`wip: ${e.length} docs`}function Rd(e){return`reconcile: ${e}`}function zd(e,t){return`rollback: ${e} to ${t.slice(0,7)}`}function lne(e,t){return`park: ${e} -> ${t}`}function Bd(e,t){return`rename: ${e} -> ${t}`}function Vd(e){return`checkpoint: ${e}`}function une(e,t){return e?`import: from ${e.slice(0,8)}..${t.slice(0,8)}`:`import: initial at ${t.slice(0,8)}`}const dne=RegExp(`[\\r\\n\\v\\f\\u0085\\u2028\\u2029]`,`g`);function Hd(e){return e.replace(dne,` `)}function fne(e,t){let n=Hd(e);if(t.length===0)return n;if(t.length>=2)return`${n} (${t.length} edits)`;let[r]=t;if(r===void 0)return n;let i=Hd(r),a=`${n} — ${i}`;if(a.length<=72)return a;let o=`${n} — `,s=72-o.length-1;return s<=0?a.slice(0,72):`${o}${i.slice(0,s)}…`}function Ud(e){return tne.test(e)?e.startsWith(`agent-`)?{id:e,classification:`agent`,isAgent:!0}:e.startsWith(`principal-`)?{id:e,classification:`principal`,isAgent:!1}:e.startsWith(`git-author-`)?{id:e,classification:`classified-git-author`,isAgent:null}:e===`file-system`?{id:e,classification:`classified-file-system`,isAgent:null}:e===`git-upstream`?{id:e,classification:`classified-git-upstream`,isAgent:null}:e===`openknowledge-service`?{id:e,classification:`classified-openknowledge-service`,isAgent:null}:e===`ok-generator`?{id:e,classification:`classified-ok-generator`,isAgent:null}:{id:e,classification:`unknown`,isAgent:null}:{id:e,classification:`unknown`,isAgent:null}}function Wd(e){let t=Td(e);if(t.kind!==`linked`)return L(e);try{let n=B(F(t.path,`commondir`),`utf-8`).trim();return n===``?L(e):L(P(L(t.path,n)),t.projectSubPath)}catch{return L(e)}}function Gd(e){return e.kind??`other`}function pne(e,t){for(let n of t){let t=e.find(e=>e.kind===n);if(t!==void 0)return t}}var Kd=class{filePath;log;grants=null;constructor(e,t){this.filePath=F(e,`acp-permissions.json`),this.log=t}decide(e,t,n){let r=Gd(t),i=pne(n,[`allow_once`,`allow_always`]);return i===void 0?{auto:null}:r===`read`||this.hasAllowAlways(e,r)?{auto:{optionId:i.optionId}}:{auto:null}}hasAllowAlways(e,t){return this.loadGrants().some(n=>n.agentId===e&&n.toolKind===t)}async recordChoice(e,t,n){if(n.kind!==`allow_always`)return;let r=Gd(t);if(this.hasAllowAlways(e,r))return;let i=[...this.loadGrants(),{agentId:e,toolKind:r}];this.grants=i;try{let{tracedMkdir:e,tracedWriteFile:t}=await import(`./fs-traced-Bmqe7SqT.mjs`);await e(F(this.filePath,`..`),{recursive:!0});let n={version:1,grants:i};await t(this.filePath,`${JSON.stringify(n,null,2)}\n`)}catch(e){this.log.warn({err:e},`[acp-permissions] persisting allow_always grant failed`)}}loadGrants(){if(this.grants!==null)return this.grants;try{let e=JSON.parse(B(this.filePath,`utf8`));this.grants=Array.isArray(e?.grants)?e.grants.filter(e=>typeof e?.agentId==`string`&&typeof e?.toolKind==`string`):[]}catch{this.grants=[]}return this.grants}};const qd=[`claude-acp`,`codex-acp`,`gemini`,`cursor`,`github-copilot-cli`,`opencode`],mne={"claude-acp":`claude`,"codex-acp":`codex`,cursor:`cursor`,opencode:`opencode`},Jd=`acp-agents.json`,Yd=`acp-registry-cache.json`;function Xd(){let e=Xu(),t=qu(),n=e===`darwin`?`darwin`:e===`linux`?`linux`:e===`win32`?`windows`:null,r=t===`arm64`?`aarch64`:t===`x64`?`x86_64`:null;return n===null||r===null?null:`${n}-${r}`}const hne=new Set([`goose`,`fast-agent`,`crow-cli`]);function gne(e,t){let n=t.trim();return n.length===0?e:hne.has(e)||n!==n.toLowerCase()?n:n.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function _ne(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&t.id.length>0&&typeof t.name==`string`&&typeof t.version==`string`&&typeof t.distribution==`object`&&t.distribution!==null}function Zd(e){let t;try{t=JSON.parse(e)}catch{return null}let n=t?.agents;return Array.isArray(n)?n.filter(_ne).map(e=>({...e,name:gne(e.id,e.name)})):null}var Qd=class{localDir;log;ttlMs;fetchImpl;memory=null;inflight=null;constructor(e){this.localDir=e.localDir,this.log=e.log,this.ttlMs=e.ttlMs??36e5,this.fetchImpl=e.fetchImpl??fetch}async getCatalog(){return this.memory!==null&&Date.now()-this.memory.fetchedAt<this.ttlMs&&!this.memory.stale?this.memory:(this.inflight===null&&(this.inflight=this.refresh().finally(()=>{this.inflight=null})),this.inflight)}async getAgent(e){let{agents:t}=await this.getCatalog();return t.find(t=>t.id===e)}async refresh(){try{let e=await this.fetchImpl(`https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json`,{signal:AbortSignal.timeout(15e3)});if(!e.ok)throw Error(`registry fetch failed: HTTP ${e.status}`);let t=await e.text(),n=Zd(t);if(n===null)throw Error(`registry payload did not parse as a catalog`);this.memory={agents:n,fetchedAt:Date.now(),stale:!1};try{let{tracedMkdir:e,tracedWriteFile:n}=await import(`./fs-traced-Bmqe7SqT.mjs`);await e(this.localDir,{recursive:!0}),await n(F(this.localDir,Yd),t)}catch(e){this.log.warn({err:e},`[acp-registry] disk cache write failed`)}return this.memory}catch(e){let t=await this.readDiskCache();if(t!==null)return this.log.warn({err:e},`[acp-registry] CDN unreachable — serving disk cache`),this.memory=t,t;if(this.memory!==null)return this.log.warn({err:e},`[acp-registry] CDN unreachable — serving stale memory copy`),this.memory={...this.memory,stale:!0},this.memory;throw e instanceof Error?e:Error(String(e))}}async readDiskCache(){try{let e=Zd(await td(F(this.localDir,Yd),`utf8`));return e===null?null:{agents:e,fetchedAt:0,stale:!0}}catch{return null}}};async function $d(e,t){let n;try{n=await td(F(e,Jd),`utf8`)}catch{return[]}let r;try{r=JSON.parse(n)}catch(e){return t.warn({err:e},`[acp-registry] ${Jd} is not valid JSON — ignoring`),[]}if(!Array.isArray(r))return[];let i=[];for(let e of r){let n=e;typeof n?.id==`string`&&/^[a-zA-Z0-9_-]+$/.test(n.id)&&typeof n.name==`string`&&typeof n.command==`string`&&n.command.length>0&&(n.args===void 0||Array.isArray(n.args)&&n.args.every(e=>typeof e==`string`))&&(n.env===void 0||typeof n.env==`object`&&n.env!==null&&!Array.isArray(n.env)&&Object.values(n.env).every(e=>typeof e==`string`))?i.push({id:n.id,name:n.name,command:n.command,args:n.args,env:n.env??void 0}):t.warn({entry:e},`[acp-registry] dropping malformed ${Jd} entry`)}return i}const H={initialize:`initialize`,authenticate:`authenticate`,providers_list:`providers/list`,providers_set:`providers/set`,providers_disable:`providers/disable`,session_new:`session/new`,session_load:`session/load`,session_set_mode:`session/set_mode`,session_set_config_option:`session/set_config_option`,session_prompt:`session/prompt`,session_cancel:`session/cancel`,mcp_message:`mcp/message`,session_list:`session/list`,session_delete:`session/delete`,session_fork:`session/fork`,session_resume:`session/resume`,session_close:`session/close`,logout:`logout`,nes_start:`nes/start`,nes_suggest:`nes/suggest`,nes_accept:`nes/accept`,nes_reject:`nes/reject`,nes_close:`nes/close`,document_did_open:`document/didOpen`,document_did_change:`document/didChange`,document_did_close:`document/didClose`,document_did_save:`document/didSave`,document_did_focus:`document/didFocus`},ef={session_request_permission:`session/request_permission`,session_update:`session/update`,fs_write_text_file:`fs/write_text_file`,fs_read_text_file:`fs/read_text_file`,terminal_create:`terminal/create`,terminal_output:`terminal/output`,terminal_release:`terminal/release`,terminal_wait_for_exit:`terminal/wait_for_exit`,terminal_kill:`terminal/kill`,mcp_connect:`mcp/connect`,mcp_message:`mcp/message`,mcp_disconnect:`mcp/disconnect`,elicitation_create:`elicitation/create`,elicitation_complete:`elicitation/complete`},vne={cancel_request:`$/cancel_request`},tf=Symbol(`skippedItem`);function U(e,t){return e.catch(t)}function nf(e,t){let n=e.catch(t);return D().transform((e,t)=>e===void 0?(t.addIssue({code:`custom`,message:`Required value is missing`}),Se):n.parse(e))}function rf(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];return typeof n==`string`?n:void 0}function af(e,t,n){return e.superRefine((e,r)=>{let i=rf(e,t);i!==void 0&&n.includes(i)&&r.addIssue({code:`custom`,path:[t],message:`${t} ${JSON.stringify(i)} is reserved by a known variant, but the value does not match that variant's schema`})})}function of(e,t,n){return D().transform((r,i)=>{let a=e.safeParse(r);if(!a.success){for(let e of a.error.issues)i.addIssue({...e,input:r});return Se}let o=a.data,s=rf(r,t);if(s!==void 0&&!n.includes(s)){let e=r;for(let[t,n]of Object.entries(e))t!==`__proto__`&&(Object.hasOwn(o,t)||(o[t]=n))}return o})}function sf(e){return O(e.catch(tf)).transform(e=>e.filter(e=>e!==tf))}const cf=y([j(),h()]).nullable(),lf=h(),uf=b({sessionId:lf,path:h(),content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),df=b({sessionId:lf,path:h(),line:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),limit:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ff=h(),pf=y([M(`read`),M(`edit`),M(`delete`),M(`move`),M(`search`),M(`execute`),M(`think`),M(`fetch`),M(`switch_mode`),M(`other`)]),mf=y([M(`pending`),M(`in_progress`),M(`completed`),M(`failed`)]),hf=b({audience:U(sf(y([M(`assistant`),M(`user`)])).nullish(),()=>void 0),lastModified:U(h().nullish(),()=>void 0),priority:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),gf=b({annotations:U(hf.nullish(),()=>void 0),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),_f=b({annotations:U(hf.nullish(),()=>void 0),data:h(),mimeType:h(),uri:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),vf=b({annotations:U(hf.nullish(),()=>void 0),data:h(),mimeType:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),yf=b({annotations:U(hf.nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),mimeType:U(h().nullish(),()=>void 0),name:h(),size:U(j().nullish(),()=>void 0),title:U(h().nullish(),()=>void 0),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bf=y([b({mimeType:U(h().nullish(),()=>void 0),text:h(),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),b({blob:h(),mimeType:U(h().nullish(),()=>void 0),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)})]),xf=b({annotations:U(hf.nullish(),()=>void 0),resource:bf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sf=y([gf.and(b({type:M(`text`)})),_f.and(b({type:M(`image`)})),vf.and(b({type:M(`audio`)})),yf.and(b({type:M(`resource_link`)})),xf.and(b({type:M(`resource`)}))]),Cf=b({content:Sf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wf=b({path:h(),oldText:U(h().nullish(),()=>void 0),newText:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tf=h(),Ef=b({terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Df=y([Cf.and(b({type:M(`content`)})),wf.and(b({type:M(`diff`)})),Ef.and(b({type:M(`terminal`)}))]),Of=b({path:h(),line:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kf=b({toolCallId:ff,kind:U(pf.nullish(),()=>void 0),status:U(mf.nullish(),()=>void 0),title:U(h().nullish(),()=>void 0),content:U(sf(Df).nullish(),()=>void 0),locations:U(sf(Of).nullish(),()=>void 0),rawInput:U(D().optional(),()=>void 0),rawOutput:U(D().optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Af=h(),jf=y([M(`allow_once`),M(`allow_always`),M(`reject_once`),M(`reject_always`)]),Mf=b({sessionId:lf,toolCall:kf,options:O(b({optionId:Af,name:h(),kind:jf,_meta:U(d(h(),D()).nullish(),()=>void 0)})),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nf=b({name:h(),value:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pf=b({sessionId:lf,command:h(),args:U(sf(h()).optional(),()=>[]),env:U(sf(Nf).optional(),()=>[]),cwd:U(h().nullish(),()=>void 0),outputByteLimit:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ff=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),If=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lf=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rf=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),zf=b({sessionId:lf,toolCallId:U(ff.nullish(),()=>void 0)}),Bf=b({requestId:cf}),Vf=M(`object`),Hf=y([M(`email`),M(`uri`),M(`date`),M(`date-time`)]),Uf=b({const:h(),title:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minLength:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),maxLength:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),pattern:h().nullish(),format:Hf.nullish(),default:U(h().nullish(),()=>void 0),enum:O(h()).nullish(),oneOf:O(Uf).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minimum:j().nullish(),maximum:j().nullish(),default:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minimum:j().nullish(),maximum:j().nullish(),default:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),qf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),default:U(s().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jf=b({enum:O(h()),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yf=b({anyOf:O(Uf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Xf=of(y([Jf.and(b({type:M(`string`)})),af(b({type:h()}),`type`,[`string`]),Yf]),`type`,[`string`]),Zf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minItems:j().nullish(),maxItems:j().nullish(),items:Xf,default:U(sf(h()).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Qf=of(y([Wf.and(b({type:M(`string`)})),Gf.and(b({type:M(`number`)})),Kf.and(b({type:M(`integer`)})),qf.and(b({type:M(`boolean`)})),Zf.and(b({type:M(`array`)})),af(b({type:h()}),`type`,[`array`,`boolean`,`integer`,`number`,`string`])]),`type`,[`array`,`boolean`,`integer`,`number`,`string`]),$f=b({type:U(Vf.optional().default(`object`),()=>`object`),title:U(h().nullish(),()=>void 0),properties:d(h(),Qf).optional().default({}),required:O(h()).nullish(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ep=c(y([zf,Bf]),b({requestedSchema:$f})),tp=h(),np=c(y([zf,Bf]),b({elicitationId:tp,url:Be()})),rp=of(c(y([ep.and(b({mode:M(`form`)})),np.and(b({mode:M(`url`)})),af(c(y([zf,Bf]),b({mode:h()})),`mode`,[`form`,`url`])]),b({message:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)})),`mode`,[`form`,`url`]),ip=h(),ap=b({serverId:ip,_meta:U(d(h(),D()).nullish(),()=>void 0)}),op=h(),sp=b({connectionId:op,method:h(),params:d(h(),D()).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cp=b({connectionId:op,_meta:U(d(h(),D()).nullish(),()=>void 0)}),lp=D();b({id:cf,method:h(),params:y([uf,df,Mf,Pf,Ff,If,Lf,Rf,rp,ap,sp,cp,lp]).nullish()});const up=l().gte(0).lte(65535),dp=b({image:U(s().optional().default(!1),()=>!1),audio:U(s().optional().default(!1),()=>!1),embeddedContext:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fp=b({http:U(s().optional().default(!1),()=>!1),sse:U(s().optional().default(!1),()=>!1),acp:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),pp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),mp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),gp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),_p=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),yp=b({list:U(pp.nullish(),()=>void 0),delete:U(mp.nullish(),()=>void 0),additionalDirectories:U(hp.nullish(),()=>void 0),fork:U(gp.nullish(),()=>void 0),resume:U(_p.nullish(),()=>void 0),close:U(vp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bp=b({logout:U(b({_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cp=b({syncKind:y([M(`full`),M(`incremental`)]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),wp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ep=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dp=b({document:U(b({didOpen:U(Sp.nullish(),()=>void 0),didChange:U(Cp.nullish(),()=>void 0),didClose:U(wp.nullish(),()=>void 0),didSave:U(Tp.nullish(),()=>void 0),didFocus:U(Ep.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Op=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ap=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jp=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Np=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pp=b({recentFiles:U(Op.nullish(),()=>void 0),relatedSnippets:U(kp.nullish(),()=>void 0),editHistory:U(Ap.nullish(),()=>void 0),userActions:U(jp.nullish(),()=>void 0),openFiles:U(Mp.nullish(),()=>void 0),diagnostics:U(Np.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fp=b({events:U(Dp.nullish(),()=>void 0),context:U(Pp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ip=y([M(`utf-16`),M(`utf-32`),M(`utf-8`)]),Lp=b({loadSession:U(s().optional().default(!1),()=>!1),promptCapabilities:U(dp.optional().default({image:!1,audio:!1,embeddedContext:!1}),()=>({image:!1,audio:!1,embeddedContext:!1})),mcpCapabilities:U(fp.optional().default({http:!1,sse:!1,acp:!1}),()=>({http:!1,sse:!1,acp:!1})),sessionCapabilities:U(yp.optional().default({}),()=>({})),auth:U(bp.optional().default({}),()=>({})),providers:U(xp.nullish(),()=>void 0),nes:U(Fp.nullish(),()=>void 0),positionEncoding:U(Ip.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rp=h(),zp=b({name:h(),label:U(h().nullish(),()=>void 0),secret:U(s().optional().default(!0),()=>!0),optional:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),vars:nf(sf(zp),()=>[]),link:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),args:U(sf(h()).optional(),()=>[]),env:U(d(h(),h()).optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Up=y([Bp.and(b({type:M(`env_var`)})),Vp.and(b({type:M(`terminal`)})),Hp]),Wp=b({name:h(),title:U(h().nullish(),()=>void 0),version:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),yne=b({protocolVersion:up,agentCapabilities:U(Lp.optional().default({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}}),()=>({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}})),authMethods:U(sf(Up).optional().default([]),()=>[]),agentInfo:U(Wp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gp=h(),Kp=y([M(`anthropic`),M(`openai`),M(`azure`),M(`vertex`),M(`bedrock`),h()]),xne=b({apiType:Kp,baseUrl:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sne=b({providers:O(b({providerId:Gp,supported:nf(sf(Kp),()=>[]),required:s(),current:xne.nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)})),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),wne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),qp=h(),Jp=b({currentModeId:qp,availableModes:nf(sf(b({id:qp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yp=h(),Ene=y([M(`mode`),M(`model`),M(`model_config`),M(`thought_level`),h()]),Xp=h(),Zp=b({value:Xp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dne=b({group:h(),name:h(),options:nf(sf(Zp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),One=b({currentValue:Xp,options:y([O(Zp),O(Dne)])}),kne=b({currentValue:s()}),Qp=c(y([One.and(b({type:M(`select`)})),kne.and(b({type:M(`boolean`)}))]),b({id:Yp,name:h(),description:U(h().nullish(),()=>void 0),category:U(Ene.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),Ane=b({sessionId:lf,modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jne=b({modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mne=b({sessions:nf(sf(b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),title:U(h().nullish(),()=>void 0),updatedAt:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),nextCursor:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pne=b({sessionId:lf,modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fne=b({modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ine=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rne=b({configOptions:nf(sf(Qp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zne=b({stopReason:y([M(`end_turn`),M(`max_tokens`),M(`max_turn_requests`),M(`refusal`),M(`cancelled`)]),usage:U(b({totalTokens:j(),inputTokens:j(),outputTokens:j(),thoughtTokens:U(j().nullish(),()=>void 0),cachedReadTokens:U(j().nullish(),()=>void 0),cachedWriteTokens:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bne=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),$p=h(),em=b({line:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),character:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),_meta:U(d(h(),D()).nullish(),()=>void 0)}),tm=b({start:em,end:em,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vne=b({range:tm,newText:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hne=b({id:$p,uri:h(),edits:O(Vne),cursorPosition:U(em.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Une=b({id:$p,uri:h(),position:em,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wne=b({id:$p,uri:h(),position:em,newName:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gne=b({id:$p,uri:h(),search:h(),replace:h(),isRegex:s().nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kne=b({suggestions:O(y([Hne.and(b({kind:M(`edit`)})),Une.and(b({kind:M(`jump`)})),Wne.and(b({kind:M(`rename`)})),Gne.and(b({kind:M(`searchAndReplace`)}))])),_meta:U(d(h(),D()).nullish(),()=>void 0)}),qne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),nm=D(),rm=D(),im=b({code:y([M(-32700),M(-32600),M(-32601),M(-32602),M(-32603),M(-32800),M(-32e3),M(-32002),l().min(-2147483648,{error:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{error:`Invalid value: Expected int32 to be <= 2147483647`})]),message:h(),data:U(D().optional(),()=>void 0)});y([b({id:cf,result:y([yne,bne,Sne,Cne,wne,Tne,Ane,jne,Mne,Nne,Pne,Fne,Ine,Lne,Rne,zne,Bne,Kne,qne,nm,rm])}),b({id:cf,error:im})]);const am=b({content:Sf,messageId:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jne=b({toolCallId:ff,title:h(),kind:U(pf.optional(),()=>void 0),status:U(mf.optional(),()=>void 0),content:U(sf(Df).optional(),()=>[]),locations:U(sf(Of).optional(),()=>[]),rawInput:U(D().optional(),()=>void 0),rawOutput:U(D().optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yne=y([M(`high`),M(`medium`),M(`low`)]),Xne=y([M(`pending`),M(`in_progress`),M(`completed`)]),om=b({content:h(),priority:Yne,status:Xne,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Zne=b({entries:nf(sf(om),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),sm=h(),Qne=b({planId:sm,entries:nf(sf(om),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),$ne=b({planId:sm,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ere=b({planId:sm,content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),tre=b({plan:y([Qne.and(b({type:M(`items`)})),$ne.and(b({type:M(`file`)})),ere.and(b({type:M(`markdown`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),nre=b({planId:sm,_meta:U(d(h(),D()).nullish(),()=>void 0)}),rre=b({hint:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ire=b({availableCommands:nf(sf(b({name:h(),description:h(),input:U(rre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),are=b({currentModeId:qp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),ore=b({configOptions:nf(sf(Qp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),sre=b({title:U(h().nullish(),()=>void 0),updatedAt:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cre=b({amount:j(),currency:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),lre=b({used:j(),size:j(),cost:U(cre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cm=b({sessionId:lf,update:y([am.and(b({sessionUpdate:M(`user_message_chunk`)})),am.and(b({sessionUpdate:M(`agent_message_chunk`)})),am.and(b({sessionUpdate:M(`agent_thought_chunk`)})),Jne.and(b({sessionUpdate:M(`tool_call`)})),kf.and(b({sessionUpdate:M(`tool_call_update`)})),Zne.and(b({sessionUpdate:M(`plan`)})),tre.and(b({sessionUpdate:M(`plan_update`)})),nre.and(b({sessionUpdate:M(`plan_removed`)})),ire.and(b({sessionUpdate:M(`available_commands_update`)})),are.and(b({sessionUpdate:M(`current_mode_update`)})),ore.and(b({sessionUpdate:M(`config_option_update`)})),sre.and(b({sessionUpdate:M(`session_info_update`)})),lre.and(b({sessionUpdate:M(`usage_update`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),lm=b({elicitationId:tp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),um=b({connectionId:op,method:h(),params:U(d(h(),D()).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),dm=D();b({method:h(),params:y([cm,lm,um,dm]).nullish()});const ure=b({readTextFile:U(s().optional().default(!1),()=>!1),writeTextFile:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),dre=b({configOptions:U(b({boolean:U(b({_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),pre=b({terminal:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),mre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),gre=b({form:U(mre.nullish(),()=>void 0),url:U(hre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),_re=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),yre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),bre=b({jump:U(_re.nullish(),()=>void 0),rename:U(vre.nullish(),()=>void 0),searchAndReplace:U(yre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fm=b({protocolVersion:up,clientCapabilities:U(b({fs:U(ure.optional().default({readTextFile:!1,writeTextFile:!1}),()=>({readTextFile:!1,writeTextFile:!1})),terminal:U(s().optional().default(!1),()=>!1),session:U(dre.nullish(),()=>void 0),plan:U(fre.nullish(),()=>void 0),auth:U(pre.optional().default({terminal:!1}),()=>({terminal:!1})),elicitation:U(gre.nullish(),()=>void 0),nes:U(bre.nullish(),()=>void 0),positionEncodings:U(sf(Ip).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}).optional().default({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}}),()=>({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}})),clientInfo:U(Wp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),pm=b({methodId:Rp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),mm=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hm=b({providerId:Gp,apiType:Kp,baseUrl:h(),headers:d(h(),h()).optional(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),gm=b({providerId:Gp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),_m=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vm=b({name:h(),value:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xre=b({name:h(),url:h(),headers:O(vm),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sre=b({name:h(),url:h(),headers:O(vm),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cre=b({name:h(),serverId:ip,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wre=b({name:h(),command:h(),args:O(h()),env:O(Nf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ym=y([xre.and(b({type:M(`http`)})),Sre.and(b({type:M(`sse`)})),Cre.and(b({type:M(`acp`)})),wre]),bm=b({cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:nf(sf(ym),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xm=b({mcpServers:nf(sf(ym),()=>[]),cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sm=b({cwd:h().nullish(),cursor:h().nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wm=b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:U(sf(ym).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tm=b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:U(sf(ym).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Em=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dm=b({sessionId:lf,modeId:qp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Om=c(y([b({value:s(),type:M(`boolean`)}),b({value:Xp})]),b({sessionId:lf,configId:Yp,_meta:U(d(h(),D()).nullish(),()=>void 0)})),km=b({sessionId:lf,prompt:O(Sf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tre=b({uri:h(),name:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ere=b({name:h(),owner:h(),remoteUrl:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Am=b({workspaceUri:U(h().nullish(),()=>void 0),workspaceFolders:O(Tre).nullish(),repository:U(Ere.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dre=y([M(`automatic`),M(`diagnostic`),M(`manual`)]),Ore=b({uri:h(),languageId:h(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kre=b({startLine:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),endLine:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Are=b({uri:h(),excerpts:O(kre),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jre=b({uri:h(),diff:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mre=b({action:h(),uri:h(),position:em,timestampMs:j(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nre=b({uri:h(),languageId:h(),visibleRange:U(tm.nullish(),()=>void 0),lastFocusedMs:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pre=y([M(`error`),M(`warning`),M(`information`),M(`hint`)]),Fre=b({uri:h(),range:tm,severity:Pre,message:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ire=b({recentFiles:O(Ore).nullish(),relatedSnippets:O(Are).nullish(),editHistory:O(jre).nullish(),userActions:O(Mre).nullish(),openFiles:O(Nre).nullish(),diagnostics:O(Fre).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jm=b({sessionId:lf,uri:h(),version:j(),position:em,selection:tm.nullish(),triggerKind:Dre,context:Ire.nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)});b({id:cf,method:h(),params:y([fm,pm,mm,hm,gm,_m,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,sp,lp]).nullish()});const Lre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rre=b({content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zre=b({optionId:Af,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bre=b({outcome:y([b({outcome:M(`cancelled`)}),zre.and(b({outcome:M(`selected`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vre=b({terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hre=b({exitCode:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ure=b({output:h(),truncated:s(),exitStatus:U(Hre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gre=b({exitCode:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),qre=y([h(),j(),j(),s(),O(h())]),Nm=b({content:d(h(),qre).nullish()});y([b({id:cf,result:y([Lre,Rre,Bre,Vre,Ure,Wre,Gre,Kre,of(c(y([Nm.and(b({action:M(`accept`)})),b({action:M(`decline`)}),b({action:M(`cancel`)}),af(b({action:h()}),`action`,[`accept`,`cancel`,`decline`])]),b({_meta:U(d(h(),D()).nullish(),()=>void 0)})),`action`,[`accept`,`cancel`,`decline`]),b({connectionId:op,_meta:U(d(h(),D()).nullish(),()=>void 0)}),b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),rm,nm])}),b({id:cf,error:im})]);const Pm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fm=b({sessionId:lf,uri:h(),languageId:h(),version:j(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jre=b({range:tm.nullish(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Im=b({sessionId:lf,uri:h(),version:j(),contentChanges:nf(sf(Jre),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lm=b({sessionId:lf,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rm=b({sessionId:lf,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zm=b({sessionId:lf,uri:h(),version:j(),position:em,visibleRange:tm,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bm=b({sessionId:lf,id:$p,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vm=b({sessionId:lf,id:$p,reason:U(y([M(`rejected`),M(`ignored`),M(`replaced`),M(`cancelled`)]).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)});b({method:h(),params:y([Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,um,dm]).nullish()}),b({requestId:cf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),ep.and(b({mode:M(`form`)})).and(b({message:h()})),np.and(b({mode:M(`url`)})).and(b({message:h()})),y([zf,Bf]).and(b({message:h()})),Wf.and(b({type:M(`string`)})),Gf.and(b({type:M(`number`)})),Kf.and(b({type:M(`integer`)})),qf.and(b({type:M(`boolean`)})),Zf.and(b({type:M(`array`)})),Jf.and(b({type:M(`string`)})),Nm.and(b({action:M(`accept`)})),b({action:M(`decline`)}),b({action:M(`cancel`)});const Hm=`$/cancel_request`;function Um(e){return typeof e==`object`&&!!e}function Yre(e){return e===null||typeof e==`string`||typeof e==`number`&&Number.isFinite(e)}function Xre(e){if(!(!Um(e)||!Yre(e.requestId)))return e.requestId}const Wm={yes(){return{handled:!0}},no(e,t=!1){return{handled:!1,message:e,retry:t}}};function Gm(e){let t=Promise.reject(e);return t.catch(()=>{}),t}function Zre(e){if(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)return e.message}function Qre(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`ZodError`&&`issues`in e&&Array.isArray(e.issues)&&`format`in e&&typeof e.format==`function`}function Km(e){if(e instanceof Ym)return e.toResult();if(Qre(e))return Ym.invalidParams(e.format()).toResult();let t=Zre(e);try{return Ym.internalError(t?JSON.parse(t):{}).toResult()}catch{return Ym.internalError({details:t}).toResult()}}function $re(e){return e instanceof Ym&&e.code===-32800?e:Ym.requestCancelled(e)}function eie(e,t){let n=tie(e,t);return n?n.toResult():Km(e)}function tie(e,t){if(!(!t.aborted||!nie(e)))return $re(t.reason)}function nie(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`AbortError`||t.code===`ABORT_ERR`}var rie=class{id;sendResult;signal;finishRequest;didRespond=!1;constructor(e,t,n=new AbortController().signal,r){this.id=e,this.sendResult=t,this.signal=n,this.finishRequest=r}get responded(){return this.didRespond}respond(e){return this.respondWithResult({result:e??null})}respondWithError(e){let t=e instanceof Ym?e.toErrorResponse():e;return this.respondWithResult({error:t})}respondWithResult(e){return this.didRespond?Gm(Error(`JSON-RPC request already responded`)):(this.didRespond=!0,this.sendResult(e).finally(()=>{this.finishRequest?.()}))}},qm=class{disposeHandler;active=!0;constructor(e){this.disposeHandler=e}dispose(){this.active&&(this.active=!1,this.disposeHandler())}[Symbol.dispose](){this.dispose()}runIndefinitely(){return this}},iie=class{connection;constructor(e){this.connection=e}sendRequest(e,t,n,r){return this.connection.sendRequest(e,t,n,r)}sendNotification(e,t){return this.connection.sendNotification(e,t)}sendCancelRequest(e){return this.connection.sendCancelRequest(e)}addDynamicHandler(e){return this.connection.addDynamicHandler(e)}get signal(){return this.connection.signal}get closed(){return this.connection.closed}},Jm=class{pendingResponses=new Map;incomingRequests=new Map;nextRequestId=0;staticHandlers=[];dynamicHandlers=new Set;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;retryQueue=[];context=new iie(this);receiveReader;constructor(e,t,n,r){if(typeof e==`function`){let i=e,a=t,o=n;this.initialize(o,[...r?.handlers??[],this.legacyHandler(i,a)]);return}let i=e,a=t,o=n;this.initialize(i,[...o?.handlers??[],...a])}static builder(){return new aie}runUntil(e){let t=!1,n=Promise.resolve().then(()=>e(this.context)).finally(()=>{t=!0}),r=this.closed.then(()=>{if(t)return new Promise(()=>{});throw this.closedReason()});return Promise.race([n,r]).finally(()=>{t=!0,this.close()})}addDynamicHandler(e){if(this.dynamicHandlers.add(e),this.retryQueue.length>0)for(let e of this.retryQueue.splice(0))this.processIncomingMessage(e).catch(e=>this.close(e));return new qm(()=>{this.dynamicHandlers.delete(e)})}get signal(){return this.abortController.signal}get closed(){return this.closedPromise}getContext(){return this.context}sendRequest(e,t,n,r={}){if(this.abortController.signal.aborted)return Gm(this.closedReason());let i=this.nextRequestId++,a=()=>{},o=new Promise((e,t)=>{let o={resolve:r=>{try{e(n?n(r):r)}catch(e){t(e)}},reject:t};a=()=>{o.cancellationSent||(o.cancellationSent=!0,o.cleanup?.(),this.sendCancelRequest(i).catch(()=>{}))},r.cancellationSignal?.addEventListener(`abort`,a,{once:!0}),o.cleanup=()=>{r.cancellationSignal?.removeEventListener(`abort`,a)},this.pendingResponses.set(i,o)});return o.catch(()=>{}),this.sendMessage({jsonrpc:`2.0`,id:i,method:e,params:t}).catch(()=>{}),r.cancellationSignal?.aborted&&a(),o}sendCancelRequest(e){return this.sendNotification(Hm,{requestId:e})}sendNotification(e,t){return this.abortController.signal.aborted?Gm(this.closedReason()):this.sendMessage({jsonrpc:`2.0`,method:e,params:t})}close(e){if(this.abortController.signal.aborted)return;let t=e??Error(`ACP connection closed`);this.abortController.abort(t);for(let e of this.pendingResponses.values())e.cleanup?.(),e.reject(t);this.pendingResponses.clear();for(let e of this.incomingRequests.values())e.abort(t);this.incomingRequests.clear(),this.receiveReader?.cancel(t).catch(()=>{})}initialize(e,t){this.stream=e,this.staticHandlers=t,this.closedPromise=new Promise(e=>{this.abortController.signal.addEventListener(`abort`,()=>e())}),this.receive()}legacyHandler(e,t){return{handleMessage:async(n,r)=>{if(n.kind===`request`){let t=await e(n.method,n.params,r);await n.responder.respond(t)}else await t(n.method,n.params,r);return Wm.yes()}}}async receive(){let e;try{let e=this.stream.readable.getReader();this.receiveReader=e;try{for(;!this.abortController.signal.aborted;){let{value:t,done:n}=await e.read();if(this.abortController.signal.aborted||n)break;t&&this.receiveMessage(t)}}finally{this.receiveReader===e&&(this.receiveReader=void 0),e.releaseLock()}}catch(t){e=t}finally{this.close(e)}}receiveMessage(e){if(!this.abortController.signal.aborted){if(!Um(e)){console.error(`Invalid message`,{message:e});return}`method`in e?(`id`in e||this.handleProtocolNotification(e),this.processIncomingMessage(this.toIncomingMessage(e)).catch(e=>this.close(e))):`id`in e?this.handleResponse(e):console.error(`Invalid message`,{message:e})}}async processIncomingMessage(e){if(this.abortController.signal.aborted)return;let t=e,n=!1;try{for(let e of[...this.staticHandlers,...this.dynamicHandlers.values()]){if(this.abortController.signal.aborted)return;let r=await e.handleMessage(t,this.context)??{handled:!0};if(r.handled)return;t=r.message??t,n||=!!r.retry}n?this.retryQueue.push(t):t.kind===`request`&&await t.responder.respondWithError(Ym.methodNotFound(t.method))}catch(n){if(this.abortController.signal.aborted)return;if(t.kind===`request`&&!t.responder.responded)await t.responder.respondWithResult(eie(n,t.responder.signal));else{let t=Km(n);`error`in t&&console.error(`Error handling notification`,e.raw,t.error)}}}toIncomingMessage(e){if(`id`in e){let t=new AbortController;return this.incomingRequests.set(e.id,t),{kind:`request`,method:e.method,params:e.params,raw:e,signal:t.signal,responder:new rie(e.id,t=>this.sendMessage({jsonrpc:`2.0`,id:e.id,...t}),t.signal,()=>{this.incomingRequests.get(e.id)===t&&this.incomingRequests.delete(e.id)})}}return{kind:`notification`,method:e.method,params:e.params,raw:e}}handleResponse(e){let t=this.pendingResponses.get(e.id);if(t)if(this.pendingResponses.delete(e.id),t.cleanup?.(),`result`in e)t.resolve(e.result);else if(`error`in e&&Um(e.error)){let{code:n,message:r,data:i}=e.error;t.reject(new Ym(n,r,i))}else t.reject(Ym.invalidRequest(e));else console.error(`Got response to unknown request`,e.id)}handleProtocolNotification(e){if(e.method!==Hm)return;let t=Xre(e.params);if(t===void 0)return;let n=this.incomingRequests.get(t);!n||n.signal.aborted||n.abort(Ym.requestCancelled({requestId:t}))}closedReason(){return this.abortController.signal.reason??Error(`ACP connection closed`)}async sendMessage(e){return this.abortController.signal.aborted?Gm(this.closedReason()):(this.writeQueue=this.writeQueue.then(async()=>{if(this.abortController.signal.aborted)throw this.closedReason();let t=this.stream.writable.getWriter();try{await t.write(e)}finally{t.releaseLock()}}).catch(e=>{throw this.close(e),e}),this.writeQueue)}},aie=class{handlers=[];connectionName;name(e){return this.connectionName=e,this}withHandler(e){return this.handlers.push(e),this}onReceiveMessage(e){return this.withHandler({handleMessage:async(t,n)=>await e(t,n)??Wm.no(t),describe:()=>this.connectionName??`onReceiveMessage`})}onReceiveRequest(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`request`||r.method!==e?Wm.no(r):await n(t(r.params),r.responder,i)??Wm.yes(),describe:()=>`${this.connectionName??`request`}:${e}`})}onReceiveNotification(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`notification`||r.method!==e?Wm.no(r):await n(t(r.params),i)??Wm.yes(),describe:()=>`${this.connectionName??`notification`}:${e}`})}connect(e,t){return new Jm(e,this.handlers,t)}connectWith(e,t,n){return this.connect(e,n).runUntil(t)}},Ym=class e extends Error{code;data;constructor(e,t,n){super(t),this.code=e,this.name=`RequestError`,this.data=n}static parseError(t,n){return new e(-32700,`Parse error${n?`: ${n}`:``}`,t)}static invalidRequest(t,n){return new e(-32600,`Invalid request${n?`: ${n}`:``}`,t)}static methodNotFound(t){return new e(-32601,`"Method not found": ${t}`,{method:t})}static invalidParams(t,n){return new e(-32602,`Invalid params${n?`: ${n}`:``}`,t)}static internalError(t,n){return new e(-32603,`Internal error${n?`: ${n}`:``}`,t)}static requestCancelled(t,n){return new e(-32800,`Request cancelled${n?`: ${n}`:``}`,t)}static authRequired(t,n){return new e(-32e3,`Authentication required${n?`: ${n}`:``}`,t)}static resourceNotFound(t){return new e(-32002,`Resource not found${t?`: ${t}`:``}`,t&&{uri:t})}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}},oie=class{#e=[];push(e){let t=[],n=0,r=e.indexOf(10,n);for(;r!==-1;)t.push(this.#t(e.subarray(n,r))),n=r+1,r=e.indexOf(10,n);return n<e.byteLength&&this.#e.push(n===0?e:new Uint8Array(e.subarray(n))),t}flush(){if(this.#e.length!==0)return this.#t(new Uint8Array)}#t(e){if(this.#e.length===0)return e;let t=e.byteLength;for(let e of this.#e)t+=e.byteLength;let n=new Uint8Array(t),r=0;for(let e of this.#e)n.set(e,r),r+=e.byteLength;return n.set(e,r),this.#e=[],n}};function sie(e,t){let n=new TextEncoder,r=new TextDecoder,i=!1,a;return{readable:new ReadableStream({async start(e){let n=new oie,o=t=>{let n=r.decode(t).trim();if(n)try{let t=JSON.parse(n);Um(t)?e.enqueue(t):console.warn(`Skipping JSON line that is not an object:`,n)}catch(e){console.error(`Failed to parse JSON message:`,n,e)}},s=t.getReader();a=s;try{for(;;){let{value:e,done:t}=await s.read();if(i)return;if(t)break;if(e){for(let t of n.push(e))if(o(t),i)return}}if(i)return;let e=n.flush();e&&o(e)}catch(t){if(i)return;e.error(t);return}finally{a===s&&(a=void 0),s.releaseLock()}i||e.close()},cancel(e){return i=!0,a?.cancel(e)}}),writable:new WritableStream({async write(t){let r=JSON.stringify(t)+`
4
+ `)){let e=n.trim();if(!e.startsWith(Md))continue;let r;try{r=JSON.parse(e.slice(10))}catch{continue}if(typeof r!=`object`||!r)continue;let i=Pd(r);i&&t.push(i)}return t}function cne(e){let t={v:1,id:e.writer_id,name:e.display_name,colorSeed:e.color_seed,docs:e.docs};return e.summaries&&e.summaries.length>0&&(t.summaries=e.summaries),t}function Id(e){let t=Fd(e);return t.length>0?t.map(cne):ane(e)}function Ld(e){return e.length===0?`wip: auto-save`:e.length===1?`wip: ${e[0]}`:`wip: ${e.length} docs`}function Rd(e){return`reconcile: ${e}`}function zd(e,t){return`rollback: ${e} to ${t.slice(0,7)}`}function lne(e,t){return`park: ${e} -> ${t}`}function Bd(e,t){return`rename: ${e} -> ${t}`}function Vd(e){return`checkpoint: ${e}`}function une(e,t){return e?`import: from ${e.slice(0,8)}..${t.slice(0,8)}`:`import: initial at ${t.slice(0,8)}`}const dne=RegExp(`[\\r\\n\\v\\f\\u0085\\u2028\\u2029]`,`g`);function Hd(e){return e.replace(dne,` `)}function fne(e,t){let n=Hd(e);if(t.length===0)return n;if(t.length>=2)return`${n} (${t.length} edits)`;let[r]=t;if(r===void 0)return n;let i=Hd(r),a=`${n} — ${i}`;if(a.length<=72)return a;let o=`${n} — `,s=72-o.length-1;return s<=0?a.slice(0,72):`${o}${i.slice(0,s)}…`}function Ud(e){return tne.test(e)?e.startsWith(`agent-`)?{id:e,classification:`agent`,isAgent:!0}:e.startsWith(`principal-`)?{id:e,classification:`principal`,isAgent:!1}:e.startsWith(`git-author-`)?{id:e,classification:`classified-git-author`,isAgent:null}:e===`file-system`?{id:e,classification:`classified-file-system`,isAgent:null}:e===`git-upstream`?{id:e,classification:`classified-git-upstream`,isAgent:null}:e===`openknowledge-service`?{id:e,classification:`classified-openknowledge-service`,isAgent:null}:e===`ok-generator`?{id:e,classification:`classified-ok-generator`,isAgent:null}:{id:e,classification:`unknown`,isAgent:null}:{id:e,classification:`unknown`,isAgent:null}}function Wd(e){let t=Td(e);if(t.kind!==`linked`)return L(e);try{let n=B(F(t.path,`commondir`),`utf-8`).trim();return n===``?L(e):L(P(L(t.path,n)),t.projectSubPath)}catch{return L(e)}}function Gd(e){return e.kind??`other`}function pne(e,t){for(let n of t){let t=e.find(e=>e.kind===n);if(t!==void 0)return t}}var Kd=class{filePath;log;grants=null;constructor(e,t){this.filePath=F(e,`acp-permissions.json`),this.log=t}decide(e,t,n){let r=Gd(t),i=pne(n,[`allow_once`,`allow_always`]);return i===void 0?{auto:null}:r===`read`||this.hasAllowAlways(e,r)?{auto:{optionId:i.optionId}}:{auto:null}}hasAllowAlways(e,t){return this.loadGrants().some(n=>n.agentId===e&&n.toolKind===t)}async recordChoice(e,t,n){if(n.kind!==`allow_always`)return;let r=Gd(t);if(this.hasAllowAlways(e,r))return;let i=[...this.loadGrants(),{agentId:e,toolKind:r}];this.grants=i;try{let{tracedMkdir:e,tracedWriteFile:t}=await import(`./fs-traced-C1nHpvFb.mjs`);await e(F(this.filePath,`..`),{recursive:!0});let n={version:1,grants:i};await t(this.filePath,`${JSON.stringify(n,null,2)}\n`)}catch(e){this.log.warn({err:e},`[acp-permissions] persisting allow_always grant failed`)}}loadGrants(){if(this.grants!==null)return this.grants;try{let e=JSON.parse(B(this.filePath,`utf8`));this.grants=Array.isArray(e?.grants)?e.grants.filter(e=>typeof e?.agentId==`string`&&typeof e?.toolKind==`string`):[]}catch{this.grants=[]}return this.grants}};const qd=[`claude-acp`,`codex-acp`,`gemini`,`cursor`,`github-copilot-cli`,`opencode`],mne={"claude-acp":`claude`,"codex-acp":`codex`,cursor:`cursor`,opencode:`opencode`},Jd=`acp-agents.json`,Yd=`acp-registry-cache.json`;function Xd(){let e=Xu(),t=qu(),n=e===`darwin`?`darwin`:e===`linux`?`linux`:e===`win32`?`windows`:null,r=t===`arm64`?`aarch64`:t===`x64`?`x86_64`:null;return n===null||r===null?null:`${n}-${r}`}const hne=new Set([`goose`,`fast-agent`,`crow-cli`]);function gne(e,t){let n=t.trim();return n.length===0?e:hne.has(e)||n!==n.toLowerCase()?n:n.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function _ne(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&t.id.length>0&&typeof t.name==`string`&&typeof t.version==`string`&&typeof t.distribution==`object`&&t.distribution!==null}function Zd(e){let t;try{t=JSON.parse(e)}catch{return null}let n=t?.agents;return Array.isArray(n)?n.filter(_ne).map(e=>({...e,name:gne(e.id,e.name)})):null}var Qd=class{localDir;log;ttlMs;fetchImpl;memory=null;inflight=null;constructor(e){this.localDir=e.localDir,this.log=e.log,this.ttlMs=e.ttlMs??36e5,this.fetchImpl=e.fetchImpl??fetch}async getCatalog(){return this.memory!==null&&Date.now()-this.memory.fetchedAt<this.ttlMs&&!this.memory.stale?this.memory:(this.inflight===null&&(this.inflight=this.refresh().finally(()=>{this.inflight=null})),this.inflight)}async getAgent(e){let{agents:t}=await this.getCatalog();return t.find(t=>t.id===e)}async refresh(){try{let e=await this.fetchImpl(`https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json`,{signal:AbortSignal.timeout(15e3)});if(!e.ok)throw Error(`registry fetch failed: HTTP ${e.status}`);let t=await e.text(),n=Zd(t);if(n===null)throw Error(`registry payload did not parse as a catalog`);this.memory={agents:n,fetchedAt:Date.now(),stale:!1};try{let{tracedMkdir:e,tracedWriteFile:n}=await import(`./fs-traced-C1nHpvFb.mjs`);await e(this.localDir,{recursive:!0}),await n(F(this.localDir,Yd),t)}catch(e){this.log.warn({err:e},`[acp-registry] disk cache write failed`)}return this.memory}catch(e){let t=await this.readDiskCache();if(t!==null)return this.log.warn({err:e},`[acp-registry] CDN unreachable — serving disk cache`),this.memory=t,t;if(this.memory!==null)return this.log.warn({err:e},`[acp-registry] CDN unreachable — serving stale memory copy`),this.memory={...this.memory,stale:!0},this.memory;throw e instanceof Error?e:Error(String(e))}}async readDiskCache(){try{let e=Zd(await td(F(this.localDir,Yd),`utf8`));return e===null?null:{agents:e,fetchedAt:0,stale:!0}}catch{return null}}};async function $d(e,t){let n;try{n=await td(F(e,Jd),`utf8`)}catch{return[]}let r;try{r=JSON.parse(n)}catch(e){return t.warn({err:e},`[acp-registry] ${Jd} is not valid JSON — ignoring`),[]}if(!Array.isArray(r))return[];let i=[];for(let e of r){let n=e;typeof n?.id==`string`&&/^[a-zA-Z0-9_-]+$/.test(n.id)&&typeof n.name==`string`&&typeof n.command==`string`&&n.command.length>0&&(n.args===void 0||Array.isArray(n.args)&&n.args.every(e=>typeof e==`string`))&&(n.env===void 0||typeof n.env==`object`&&n.env!==null&&!Array.isArray(n.env)&&Object.values(n.env).every(e=>typeof e==`string`))?i.push({id:n.id,name:n.name,command:n.command,args:n.args,env:n.env??void 0}):t.warn({entry:e},`[acp-registry] dropping malformed ${Jd} entry`)}return i}const H={initialize:`initialize`,authenticate:`authenticate`,providers_list:`providers/list`,providers_set:`providers/set`,providers_disable:`providers/disable`,session_new:`session/new`,session_load:`session/load`,session_set_mode:`session/set_mode`,session_set_config_option:`session/set_config_option`,session_prompt:`session/prompt`,session_cancel:`session/cancel`,mcp_message:`mcp/message`,session_list:`session/list`,session_delete:`session/delete`,session_fork:`session/fork`,session_resume:`session/resume`,session_close:`session/close`,logout:`logout`,nes_start:`nes/start`,nes_suggest:`nes/suggest`,nes_accept:`nes/accept`,nes_reject:`nes/reject`,nes_close:`nes/close`,document_did_open:`document/didOpen`,document_did_change:`document/didChange`,document_did_close:`document/didClose`,document_did_save:`document/didSave`,document_did_focus:`document/didFocus`},ef={session_request_permission:`session/request_permission`,session_update:`session/update`,fs_write_text_file:`fs/write_text_file`,fs_read_text_file:`fs/read_text_file`,terminal_create:`terminal/create`,terminal_output:`terminal/output`,terminal_release:`terminal/release`,terminal_wait_for_exit:`terminal/wait_for_exit`,terminal_kill:`terminal/kill`,mcp_connect:`mcp/connect`,mcp_message:`mcp/message`,mcp_disconnect:`mcp/disconnect`,elicitation_create:`elicitation/create`,elicitation_complete:`elicitation/complete`},vne={cancel_request:`$/cancel_request`},tf=Symbol(`skippedItem`);function U(e,t){return e.catch(t)}function nf(e,t){let n=e.catch(t);return D().transform((e,t)=>e===void 0?(t.addIssue({code:`custom`,message:`Required value is missing`}),Se):n.parse(e))}function rf(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];return typeof n==`string`?n:void 0}function af(e,t,n){return e.superRefine((e,r)=>{let i=rf(e,t);i!==void 0&&n.includes(i)&&r.addIssue({code:`custom`,path:[t],message:`${t} ${JSON.stringify(i)} is reserved by a known variant, but the value does not match that variant's schema`})})}function of(e,t,n){return D().transform((r,i)=>{let a=e.safeParse(r);if(!a.success){for(let e of a.error.issues)i.addIssue({...e,input:r});return Se}let o=a.data,s=rf(r,t);if(s!==void 0&&!n.includes(s)){let e=r;for(let[t,n]of Object.entries(e))t!==`__proto__`&&(Object.hasOwn(o,t)||(o[t]=n))}return o})}function sf(e){return O(e.catch(tf)).transform(e=>e.filter(e=>e!==tf))}const cf=y([j(),h()]).nullable(),lf=h(),uf=b({sessionId:lf,path:h(),content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),df=b({sessionId:lf,path:h(),line:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),limit:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ff=h(),pf=y([M(`read`),M(`edit`),M(`delete`),M(`move`),M(`search`),M(`execute`),M(`think`),M(`fetch`),M(`switch_mode`),M(`other`)]),mf=y([M(`pending`),M(`in_progress`),M(`completed`),M(`failed`)]),hf=b({audience:U(sf(y([M(`assistant`),M(`user`)])).nullish(),()=>void 0),lastModified:U(h().nullish(),()=>void 0),priority:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),gf=b({annotations:U(hf.nullish(),()=>void 0),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),_f=b({annotations:U(hf.nullish(),()=>void 0),data:h(),mimeType:h(),uri:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),vf=b({annotations:U(hf.nullish(),()=>void 0),data:h(),mimeType:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),yf=b({annotations:U(hf.nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),mimeType:U(h().nullish(),()=>void 0),name:h(),size:U(j().nullish(),()=>void 0),title:U(h().nullish(),()=>void 0),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bf=y([b({mimeType:U(h().nullish(),()=>void 0),text:h(),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),b({blob:h(),mimeType:U(h().nullish(),()=>void 0),uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)})]),xf=b({annotations:U(hf.nullish(),()=>void 0),resource:bf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sf=y([gf.and(b({type:M(`text`)})),_f.and(b({type:M(`image`)})),vf.and(b({type:M(`audio`)})),yf.and(b({type:M(`resource_link`)})),xf.and(b({type:M(`resource`)}))]),Cf=b({content:Sf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wf=b({path:h(),oldText:U(h().nullish(),()=>void 0),newText:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tf=h(),Ef=b({terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Df=y([Cf.and(b({type:M(`content`)})),wf.and(b({type:M(`diff`)})),Ef.and(b({type:M(`terminal`)}))]),Of=b({path:h(),line:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kf=b({toolCallId:ff,kind:U(pf.nullish(),()=>void 0),status:U(mf.nullish(),()=>void 0),title:U(h().nullish(),()=>void 0),content:U(sf(Df).nullish(),()=>void 0),locations:U(sf(Of).nullish(),()=>void 0),rawInput:U(D().optional(),()=>void 0),rawOutput:U(D().optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Af=h(),jf=y([M(`allow_once`),M(`allow_always`),M(`reject_once`),M(`reject_always`)]),Mf=b({sessionId:lf,toolCall:kf,options:O(b({optionId:Af,name:h(),kind:jf,_meta:U(d(h(),D()).nullish(),()=>void 0)})),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nf=b({name:h(),value:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pf=b({sessionId:lf,command:h(),args:U(sf(h()).optional(),()=>[]),env:U(sf(Nf).optional(),()=>[]),cwd:U(h().nullish(),()=>void 0),outputByteLimit:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ff=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),If=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lf=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rf=b({sessionId:lf,terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),zf=b({sessionId:lf,toolCallId:U(ff.nullish(),()=>void 0)}),Bf=b({requestId:cf}),Vf=M(`object`),Hf=y([M(`email`),M(`uri`),M(`date`),M(`date-time`)]),Uf=b({const:h(),title:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minLength:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),maxLength:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),pattern:h().nullish(),format:Hf.nullish(),default:U(h().nullish(),()=>void 0),enum:O(h()).nullish(),oneOf:O(Uf).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minimum:j().nullish(),maximum:j().nullish(),default:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minimum:j().nullish(),maximum:j().nullish(),default:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),qf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),default:U(s().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jf=b({enum:O(h()),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yf=b({anyOf:O(Uf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Xf=of(y([Jf.and(b({type:M(`string`)})),af(b({type:h()}),`type`,[`string`]),Yf]),`type`,[`string`]),Zf=b({title:U(h().nullish(),()=>void 0),description:U(h().nullish(),()=>void 0),minItems:j().nullish(),maxItems:j().nullish(),items:Xf,default:U(sf(h()).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Qf=of(y([Wf.and(b({type:M(`string`)})),Gf.and(b({type:M(`number`)})),Kf.and(b({type:M(`integer`)})),qf.and(b({type:M(`boolean`)})),Zf.and(b({type:M(`array`)})),af(b({type:h()}),`type`,[`array`,`boolean`,`integer`,`number`,`string`])]),`type`,[`array`,`boolean`,`integer`,`number`,`string`]),$f=b({type:U(Vf.optional().default(`object`),()=>`object`),title:U(h().nullish(),()=>void 0),properties:d(h(),Qf).optional().default({}),required:O(h()).nullish(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ep=c(y([zf,Bf]),b({requestedSchema:$f})),tp=h(),np=c(y([zf,Bf]),b({elicitationId:tp,url:Be()})),rp=of(c(y([ep.and(b({mode:M(`form`)})),np.and(b({mode:M(`url`)})),af(c(y([zf,Bf]),b({mode:h()})),`mode`,[`form`,`url`])]),b({message:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)})),`mode`,[`form`,`url`]),ip=h(),ap=b({serverId:ip,_meta:U(d(h(),D()).nullish(),()=>void 0)}),op=h(),sp=b({connectionId:op,method:h(),params:d(h(),D()).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cp=b({connectionId:op,_meta:U(d(h(),D()).nullish(),()=>void 0)}),lp=D();b({id:cf,method:h(),params:y([uf,df,Mf,Pf,Ff,If,Lf,Rf,rp,ap,sp,cp,lp]).nullish()});const up=l().gte(0).lte(65535),dp=b({image:U(s().optional().default(!1),()=>!1),audio:U(s().optional().default(!1),()=>!1),embeddedContext:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fp=b({http:U(s().optional().default(!1),()=>!1),sse:U(s().optional().default(!1),()=>!1),acp:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),pp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),mp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),gp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),_p=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),yp=b({list:U(pp.nullish(),()=>void 0),delete:U(mp.nullish(),()=>void 0),additionalDirectories:U(hp.nullish(),()=>void 0),fork:U(gp.nullish(),()=>void 0),resume:U(_p.nullish(),()=>void 0),close:U(vp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bp=b({logout:U(b({_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cp=b({syncKind:y([M(`full`),M(`incremental`)]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),wp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ep=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dp=b({document:U(b({didOpen:U(Sp.nullish(),()=>void 0),didChange:U(Cp.nullish(),()=>void 0),didClose:U(wp.nullish(),()=>void 0),didSave:U(Tp.nullish(),()=>void 0),didFocus:U(Ep.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Op=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ap=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jp=b({maxCount:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mp=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Np=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pp=b({recentFiles:U(Op.nullish(),()=>void 0),relatedSnippets:U(kp.nullish(),()=>void 0),editHistory:U(Ap.nullish(),()=>void 0),userActions:U(jp.nullish(),()=>void 0),openFiles:U(Mp.nullish(),()=>void 0),diagnostics:U(Np.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fp=b({events:U(Dp.nullish(),()=>void 0),context:U(Pp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ip=y([M(`utf-16`),M(`utf-32`),M(`utf-8`)]),Lp=b({loadSession:U(s().optional().default(!1),()=>!1),promptCapabilities:U(dp.optional().default({image:!1,audio:!1,embeddedContext:!1}),()=>({image:!1,audio:!1,embeddedContext:!1})),mcpCapabilities:U(fp.optional().default({http:!1,sse:!1,acp:!1}),()=>({http:!1,sse:!1,acp:!1})),sessionCapabilities:U(yp.optional().default({}),()=>({})),auth:U(bp.optional().default({}),()=>({})),providers:U(xp.nullish(),()=>void 0),nes:U(Fp.nullish(),()=>void 0),positionEncoding:U(Ip.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rp=h(),zp=b({name:h(),label:U(h().nullish(),()=>void 0),secret:U(s().optional().default(!0),()=>!0),optional:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),vars:nf(sf(zp),()=>[]),link:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),args:U(sf(h()).optional(),()=>[]),env:U(d(h(),h()).optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hp=b({id:Rp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Up=y([Bp.and(b({type:M(`env_var`)})),Vp.and(b({type:M(`terminal`)})),Hp]),Wp=b({name:h(),title:U(h().nullish(),()=>void 0),version:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),yne=b({protocolVersion:up,agentCapabilities:U(Lp.optional().default({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}}),()=>({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}})),authMethods:U(sf(Up).optional().default([]),()=>[]),agentInfo:U(Wp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),bne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gp=h(),Kp=y([M(`anthropic`),M(`openai`),M(`azure`),M(`vertex`),M(`bedrock`),h()]),xne=b({apiType:Kp,baseUrl:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sne=b({providers:O(b({providerId:Gp,supported:nf(sf(Kp),()=>[]),required:s(),current:xne.nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)})),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),wne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),qp=h(),Jp=b({currentModeId:qp,availableModes:nf(sf(b({id:qp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yp=h(),Ene=y([M(`mode`),M(`model`),M(`model_config`),M(`thought_level`),h()]),Xp=h(),Zp=b({value:Xp,name:h(),description:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dne=b({group:h(),name:h(),options:nf(sf(Zp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),One=b({currentValue:Xp,options:y([O(Zp),O(Dne)])}),kne=b({currentValue:s()}),Qp=c(y([One.and(b({type:M(`select`)})),kne.and(b({type:M(`boolean`)}))]),b({id:Yp,name:h(),description:U(h().nullish(),()=>void 0),category:U(Ene.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),Ane=b({sessionId:lf,modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jne=b({modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mne=b({sessions:nf(sf(b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),title:U(h().nullish(),()=>void 0),updatedAt:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),nextCursor:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pne=b({sessionId:lf,modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fne=b({modes:U(Jp.nullish(),()=>void 0),configOptions:U(sf(Qp).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ine=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rne=b({configOptions:nf(sf(Qp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zne=b({stopReason:y([M(`end_turn`),M(`max_tokens`),M(`max_turn_requests`),M(`refusal`),M(`cancelled`)]),usage:U(b({totalTokens:j(),inputTokens:j(),outputTokens:j(),thoughtTokens:U(j().nullish(),()=>void 0),cachedReadTokens:U(j().nullish(),()=>void 0),cachedWriteTokens:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bne=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),$p=h(),em=b({line:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),character:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),_meta:U(d(h(),D()).nullish(),()=>void 0)}),tm=b({start:em,end:em,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vne=b({range:tm,newText:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hne=b({id:$p,uri:h(),edits:O(Vne),cursorPosition:U(em.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Une=b({id:$p,uri:h(),position:em,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wne=b({id:$p,uri:h(),position:em,newName:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gne=b({id:$p,uri:h(),search:h(),replace:h(),isRegex:s().nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kne=b({suggestions:O(y([Hne.and(b({kind:M(`edit`)})),Une.and(b({kind:M(`jump`)})),Wne.and(b({kind:M(`rename`)})),Gne.and(b({kind:M(`searchAndReplace`)}))])),_meta:U(d(h(),D()).nullish(),()=>void 0)}),qne=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),nm=D(),rm=D(),im=b({code:y([M(-32700),M(-32600),M(-32601),M(-32602),M(-32603),M(-32800),M(-32e3),M(-32002),l().min(-2147483648,{error:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{error:`Invalid value: Expected int32 to be <= 2147483647`})]),message:h(),data:U(D().optional(),()=>void 0)});y([b({id:cf,result:y([yne,bne,Sne,Cne,wne,Tne,Ane,jne,Mne,Nne,Pne,Fne,Ine,Lne,Rne,zne,Bne,Kne,qne,nm,rm])}),b({id:cf,error:im})]);const am=b({content:Sf,messageId:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jne=b({toolCallId:ff,title:h(),kind:U(pf.optional(),()=>void 0),status:U(mf.optional(),()=>void 0),content:U(sf(Df).optional(),()=>[]),locations:U(sf(Of).optional(),()=>[]),rawInput:U(D().optional(),()=>void 0),rawOutput:U(D().optional(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Yne=y([M(`high`),M(`medium`),M(`low`)]),Xne=y([M(`pending`),M(`in_progress`),M(`completed`)]),om=b({content:h(),priority:Yne,status:Xne,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Zne=b({entries:nf(sf(om),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),sm=h(),Qne=b({planId:sm,entries:nf(sf(om),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),$ne=b({planId:sm,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ere=b({planId:sm,content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),tre=b({plan:y([Qne.and(b({type:M(`items`)})),$ne.and(b({type:M(`file`)})),ere.and(b({type:M(`markdown`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),nre=b({planId:sm,_meta:U(d(h(),D()).nullish(),()=>void 0)}),rre=b({hint:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ire=b({availableCommands:nf(sf(b({name:h(),description:h(),input:U(rre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)})),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),are=b({currentModeId:qp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),ore=b({configOptions:nf(sf(Qp),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),sre=b({title:U(h().nullish(),()=>void 0),updatedAt:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cre=b({amount:j(),currency:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),lre=b({used:j(),size:j(),cost:U(cre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),cm=b({sessionId:lf,update:y([am.and(b({sessionUpdate:M(`user_message_chunk`)})),am.and(b({sessionUpdate:M(`agent_message_chunk`)})),am.and(b({sessionUpdate:M(`agent_thought_chunk`)})),Jne.and(b({sessionUpdate:M(`tool_call`)})),kf.and(b({sessionUpdate:M(`tool_call_update`)})),Zne.and(b({sessionUpdate:M(`plan`)})),tre.and(b({sessionUpdate:M(`plan_update`)})),nre.and(b({sessionUpdate:M(`plan_removed`)})),ire.and(b({sessionUpdate:M(`available_commands_update`)})),are.and(b({sessionUpdate:M(`current_mode_update`)})),ore.and(b({sessionUpdate:M(`config_option_update`)})),sre.and(b({sessionUpdate:M(`session_info_update`)})),lre.and(b({sessionUpdate:M(`usage_update`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),lm=b({elicitationId:tp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),um=b({connectionId:op,method:h(),params:U(d(h(),D()).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),dm=D();b({method:h(),params:y([cm,lm,um,dm]).nullish()});const ure=b({readTextFile:U(s().optional().default(!1),()=>!1),writeTextFile:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),dre=b({configOptions:U(b({boolean:U(b({_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),pre=b({terminal:U(s().optional().default(!1),()=>!1),_meta:U(d(h(),D()).nullish(),()=>void 0)}),mre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),gre=b({form:U(mre.nullish(),()=>void 0),url:U(hre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),_re=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),yre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),bre=b({jump:U(_re.nullish(),()=>void 0),rename:U(vre.nullish(),()=>void 0),searchAndReplace:U(yre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),fm=b({protocolVersion:up,clientCapabilities:U(b({fs:U(ure.optional().default({readTextFile:!1,writeTextFile:!1}),()=>({readTextFile:!1,writeTextFile:!1})),terminal:U(s().optional().default(!1),()=>!1),session:U(dre.nullish(),()=>void 0),plan:U(fre.nullish(),()=>void 0),auth:U(pre.optional().default({terminal:!1}),()=>({terminal:!1})),elicitation:U(gre.nullish(),()=>void 0),nes:U(bre.nullish(),()=>void 0),positionEncodings:U(sf(Ip).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}).optional().default({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}}),()=>({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}})),clientInfo:U(Wp.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),pm=b({methodId:Rp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),mm=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),hm=b({providerId:Gp,apiType:Kp,baseUrl:h(),headers:d(h(),h()).optional(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),gm=b({providerId:Gp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),_m=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),vm=b({name:h(),value:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xre=b({name:h(),url:h(),headers:O(vm),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sre=b({name:h(),url:h(),headers:O(vm),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cre=b({name:h(),serverId:ip,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wre=b({name:h(),command:h(),args:O(h()),env:O(Nf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),ym=y([xre.and(b({type:M(`http`)})),Sre.and(b({type:M(`sse`)})),Cre.and(b({type:M(`acp`)})),wre]),bm=b({cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:nf(sf(ym),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),xm=b({mcpServers:nf(sf(ym),()=>[]),cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Sm=b({cwd:h().nullish(),cursor:h().nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Cm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),wm=b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:U(sf(ym).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tm=b({sessionId:lf,cwd:h(),additionalDirectories:U(sf(h()).optional(),()=>[]),mcpServers:U(sf(ym).optional(),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Em=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dm=b({sessionId:lf,modeId:qp,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Om=c(y([b({value:s(),type:M(`boolean`)}),b({value:Xp})]),b({sessionId:lf,configId:Yp,_meta:U(d(h(),D()).nullish(),()=>void 0)})),km=b({sessionId:lf,prompt:O(Sf),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Tre=b({uri:h(),name:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ere=b({name:h(),owner:h(),remoteUrl:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Am=b({workspaceUri:U(h().nullish(),()=>void 0),workspaceFolders:O(Tre).nullish(),repository:U(Ere.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Dre=y([M(`automatic`),M(`diagnostic`),M(`manual`)]),Ore=b({uri:h(),languageId:h(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),kre=b({startLine:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),endLine:l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Are=b({uri:h(),excerpts:O(kre),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jre=b({uri:h(),diff:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mre=b({action:h(),uri:h(),position:em,timestampMs:j(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Nre=b({uri:h(),languageId:h(),visibleRange:U(tm.nullish(),()=>void 0),lastFocusedMs:U(j().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Pre=y([M(`error`),M(`warning`),M(`information`),M(`hint`)]),Fre=b({uri:h(),range:tm,severity:Pre,message:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ire=b({recentFiles:O(Ore).nullish(),relatedSnippets:O(Are).nullish(),editHistory:O(jre).nullish(),userActions:O(Mre).nullish(),openFiles:O(Nre).nullish(),diagnostics:O(Fre).nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),jm=b({sessionId:lf,uri:h(),version:j(),position:em,selection:tm.nullish(),triggerKind:Dre,context:Ire.nullish(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Mm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)});b({id:cf,method:h(),params:y([fm,pm,mm,hm,gm,_m,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,sp,lp]).nullish()});const Lre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rre=b({content:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zre=b({optionId:Af,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bre=b({outcome:y([b({outcome:M(`cancelled`)}),zre.and(b({outcome:M(`selected`)}))]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vre=b({terminalId:Tf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Hre=b({exitCode:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Ure=b({output:h(),truncated:s(),exitStatus:U(Hre.nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Wre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),Gre=b({exitCode:U(l().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(h().nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Kre=b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),qre=y([h(),j(),j(),s(),O(h())]),Nm=b({content:d(h(),qre).nullish()});y([b({id:cf,result:y([Lre,Rre,Bre,Vre,Ure,Wre,Gre,Kre,of(c(y([Nm.and(b({action:M(`accept`)})),b({action:M(`decline`)}),b({action:M(`cancel`)}),af(b({action:h()}),`action`,[`accept`,`cancel`,`decline`])]),b({_meta:U(d(h(),D()).nullish(),()=>void 0)})),`action`,[`accept`,`cancel`,`decline`]),b({connectionId:op,_meta:U(d(h(),D()).nullish(),()=>void 0)}),b({_meta:U(d(h(),D()).nullish(),()=>void 0)}),rm,nm])}),b({id:cf,error:im})]);const Pm=b({sessionId:lf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Fm=b({sessionId:lf,uri:h(),languageId:h(),version:j(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Jre=b({range:tm.nullish(),text:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Im=b({sessionId:lf,uri:h(),version:j(),contentChanges:nf(sf(Jre),()=>[]),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Lm=b({sessionId:lf,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),Rm=b({sessionId:lf,uri:h(),_meta:U(d(h(),D()).nullish(),()=>void 0)}),zm=b({sessionId:lf,uri:h(),version:j(),position:em,visibleRange:tm,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Bm=b({sessionId:lf,id:$p,_meta:U(d(h(),D()).nullish(),()=>void 0)}),Vm=b({sessionId:lf,id:$p,reason:U(y([M(`rejected`),M(`ignored`),M(`replaced`),M(`cancelled`)]).nullish(),()=>void 0),_meta:U(d(h(),D()).nullish(),()=>void 0)});b({method:h(),params:y([Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,um,dm]).nullish()}),b({requestId:cf,_meta:U(d(h(),D()).nullish(),()=>void 0)}),ep.and(b({mode:M(`form`)})).and(b({message:h()})),np.and(b({mode:M(`url`)})).and(b({message:h()})),y([zf,Bf]).and(b({message:h()})),Wf.and(b({type:M(`string`)})),Gf.and(b({type:M(`number`)})),Kf.and(b({type:M(`integer`)})),qf.and(b({type:M(`boolean`)})),Zf.and(b({type:M(`array`)})),Jf.and(b({type:M(`string`)})),Nm.and(b({action:M(`accept`)})),b({action:M(`decline`)}),b({action:M(`cancel`)});const Hm=`$/cancel_request`;function Um(e){return typeof e==`object`&&!!e}function Yre(e){return e===null||typeof e==`string`||typeof e==`number`&&Number.isFinite(e)}function Xre(e){if(!(!Um(e)||!Yre(e.requestId)))return e.requestId}const Wm={yes(){return{handled:!0}},no(e,t=!1){return{handled:!1,message:e,retry:t}}};function Gm(e){let t=Promise.reject(e);return t.catch(()=>{}),t}function Zre(e){if(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)return e.message}function Qre(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`ZodError`&&`issues`in e&&Array.isArray(e.issues)&&`format`in e&&typeof e.format==`function`}function Km(e){if(e instanceof Ym)return e.toResult();if(Qre(e))return Ym.invalidParams(e.format()).toResult();let t=Zre(e);try{return Ym.internalError(t?JSON.parse(t):{}).toResult()}catch{return Ym.internalError({details:t}).toResult()}}function $re(e){return e instanceof Ym&&e.code===-32800?e:Ym.requestCancelled(e)}function eie(e,t){let n=tie(e,t);return n?n.toResult():Km(e)}function tie(e,t){if(!(!t.aborted||!nie(e)))return $re(t.reason)}function nie(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`AbortError`||t.code===`ABORT_ERR`}var rie=class{id;sendResult;signal;finishRequest;didRespond=!1;constructor(e,t,n=new AbortController().signal,r){this.id=e,this.sendResult=t,this.signal=n,this.finishRequest=r}get responded(){return this.didRespond}respond(e){return this.respondWithResult({result:e??null})}respondWithError(e){let t=e instanceof Ym?e.toErrorResponse():e;return this.respondWithResult({error:t})}respondWithResult(e){return this.didRespond?Gm(Error(`JSON-RPC request already responded`)):(this.didRespond=!0,this.sendResult(e).finally(()=>{this.finishRequest?.()}))}},qm=class{disposeHandler;active=!0;constructor(e){this.disposeHandler=e}dispose(){this.active&&(this.active=!1,this.disposeHandler())}[Symbol.dispose](){this.dispose()}runIndefinitely(){return this}},iie=class{connection;constructor(e){this.connection=e}sendRequest(e,t,n,r){return this.connection.sendRequest(e,t,n,r)}sendNotification(e,t){return this.connection.sendNotification(e,t)}sendCancelRequest(e){return this.connection.sendCancelRequest(e)}addDynamicHandler(e){return this.connection.addDynamicHandler(e)}get signal(){return this.connection.signal}get closed(){return this.connection.closed}},Jm=class{pendingResponses=new Map;incomingRequests=new Map;nextRequestId=0;staticHandlers=[];dynamicHandlers=new Set;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;retryQueue=[];context=new iie(this);receiveReader;constructor(e,t,n,r){if(typeof e==`function`){let i=e,a=t,o=n;this.initialize(o,[...r?.handlers??[],this.legacyHandler(i,a)]);return}let i=e,a=t,o=n;this.initialize(i,[...o?.handlers??[],...a])}static builder(){return new aie}runUntil(e){let t=!1,n=Promise.resolve().then(()=>e(this.context)).finally(()=>{t=!0}),r=this.closed.then(()=>{if(t)return new Promise(()=>{});throw this.closedReason()});return Promise.race([n,r]).finally(()=>{t=!0,this.close()})}addDynamicHandler(e){if(this.dynamicHandlers.add(e),this.retryQueue.length>0)for(let e of this.retryQueue.splice(0))this.processIncomingMessage(e).catch(e=>this.close(e));return new qm(()=>{this.dynamicHandlers.delete(e)})}get signal(){return this.abortController.signal}get closed(){return this.closedPromise}getContext(){return this.context}sendRequest(e,t,n,r={}){if(this.abortController.signal.aborted)return Gm(this.closedReason());let i=this.nextRequestId++,a=()=>{},o=new Promise((e,t)=>{let o={resolve:r=>{try{e(n?n(r):r)}catch(e){t(e)}},reject:t};a=()=>{o.cancellationSent||(o.cancellationSent=!0,o.cleanup?.(),this.sendCancelRequest(i).catch(()=>{}))},r.cancellationSignal?.addEventListener(`abort`,a,{once:!0}),o.cleanup=()=>{r.cancellationSignal?.removeEventListener(`abort`,a)},this.pendingResponses.set(i,o)});return o.catch(()=>{}),this.sendMessage({jsonrpc:`2.0`,id:i,method:e,params:t}).catch(()=>{}),r.cancellationSignal?.aborted&&a(),o}sendCancelRequest(e){return this.sendNotification(Hm,{requestId:e})}sendNotification(e,t){return this.abortController.signal.aborted?Gm(this.closedReason()):this.sendMessage({jsonrpc:`2.0`,method:e,params:t})}close(e){if(this.abortController.signal.aborted)return;let t=e??Error(`ACP connection closed`);this.abortController.abort(t);for(let e of this.pendingResponses.values())e.cleanup?.(),e.reject(t);this.pendingResponses.clear();for(let e of this.incomingRequests.values())e.abort(t);this.incomingRequests.clear(),this.receiveReader?.cancel(t).catch(()=>{})}initialize(e,t){this.stream=e,this.staticHandlers=t,this.closedPromise=new Promise(e=>{this.abortController.signal.addEventListener(`abort`,()=>e())}),this.receive()}legacyHandler(e,t){return{handleMessage:async(n,r)=>{if(n.kind===`request`){let t=await e(n.method,n.params,r);await n.responder.respond(t)}else await t(n.method,n.params,r);return Wm.yes()}}}async receive(){let e;try{let e=this.stream.readable.getReader();this.receiveReader=e;try{for(;!this.abortController.signal.aborted;){let{value:t,done:n}=await e.read();if(this.abortController.signal.aborted||n)break;t&&this.receiveMessage(t)}}finally{this.receiveReader===e&&(this.receiveReader=void 0),e.releaseLock()}}catch(t){e=t}finally{this.close(e)}}receiveMessage(e){if(!this.abortController.signal.aborted){if(!Um(e)){console.error(`Invalid message`,{message:e});return}`method`in e?(`id`in e||this.handleProtocolNotification(e),this.processIncomingMessage(this.toIncomingMessage(e)).catch(e=>this.close(e))):`id`in e?this.handleResponse(e):console.error(`Invalid message`,{message:e})}}async processIncomingMessage(e){if(this.abortController.signal.aborted)return;let t=e,n=!1;try{for(let e of[...this.staticHandlers,...this.dynamicHandlers.values()]){if(this.abortController.signal.aborted)return;let r=await e.handleMessage(t,this.context)??{handled:!0};if(r.handled)return;t=r.message??t,n||=!!r.retry}n?this.retryQueue.push(t):t.kind===`request`&&await t.responder.respondWithError(Ym.methodNotFound(t.method))}catch(n){if(this.abortController.signal.aborted)return;if(t.kind===`request`&&!t.responder.responded)await t.responder.respondWithResult(eie(n,t.responder.signal));else{let t=Km(n);`error`in t&&console.error(`Error handling notification`,e.raw,t.error)}}}toIncomingMessage(e){if(`id`in e){let t=new AbortController;return this.incomingRequests.set(e.id,t),{kind:`request`,method:e.method,params:e.params,raw:e,signal:t.signal,responder:new rie(e.id,t=>this.sendMessage({jsonrpc:`2.0`,id:e.id,...t}),t.signal,()=>{this.incomingRequests.get(e.id)===t&&this.incomingRequests.delete(e.id)})}}return{kind:`notification`,method:e.method,params:e.params,raw:e}}handleResponse(e){let t=this.pendingResponses.get(e.id);if(t)if(this.pendingResponses.delete(e.id),t.cleanup?.(),`result`in e)t.resolve(e.result);else if(`error`in e&&Um(e.error)){let{code:n,message:r,data:i}=e.error;t.reject(new Ym(n,r,i))}else t.reject(Ym.invalidRequest(e));else console.error(`Got response to unknown request`,e.id)}handleProtocolNotification(e){if(e.method!==Hm)return;let t=Xre(e.params);if(t===void 0)return;let n=this.incomingRequests.get(t);!n||n.signal.aborted||n.abort(Ym.requestCancelled({requestId:t}))}closedReason(){return this.abortController.signal.reason??Error(`ACP connection closed`)}async sendMessage(e){return this.abortController.signal.aborted?Gm(this.closedReason()):(this.writeQueue=this.writeQueue.then(async()=>{if(this.abortController.signal.aborted)throw this.closedReason();let t=this.stream.writable.getWriter();try{await t.write(e)}finally{t.releaseLock()}}).catch(e=>{throw this.close(e),e}),this.writeQueue)}},aie=class{handlers=[];connectionName;name(e){return this.connectionName=e,this}withHandler(e){return this.handlers.push(e),this}onReceiveMessage(e){return this.withHandler({handleMessage:async(t,n)=>await e(t,n)??Wm.no(t),describe:()=>this.connectionName??`onReceiveMessage`})}onReceiveRequest(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`request`||r.method!==e?Wm.no(r):await n(t(r.params),r.responder,i)??Wm.yes(),describe:()=>`${this.connectionName??`request`}:${e}`})}onReceiveNotification(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`notification`||r.method!==e?Wm.no(r):await n(t(r.params),i)??Wm.yes(),describe:()=>`${this.connectionName??`notification`}:${e}`})}connect(e,t){return new Jm(e,this.handlers,t)}connectWith(e,t,n){return this.connect(e,n).runUntil(t)}},Ym=class e extends Error{code;data;constructor(e,t,n){super(t),this.code=e,this.name=`RequestError`,this.data=n}static parseError(t,n){return new e(-32700,`Parse error${n?`: ${n}`:``}`,t)}static invalidRequest(t,n){return new e(-32600,`Invalid request${n?`: ${n}`:``}`,t)}static methodNotFound(t){return new e(-32601,`"Method not found": ${t}`,{method:t})}static invalidParams(t,n){return new e(-32602,`Invalid params${n?`: ${n}`:``}`,t)}static internalError(t,n){return new e(-32603,`Internal error${n?`: ${n}`:``}`,t)}static requestCancelled(t,n){return new e(-32800,`Request cancelled${n?`: ${n}`:``}`,t)}static authRequired(t,n){return new e(-32e3,`Authentication required${n?`: ${n}`:``}`,t)}static resourceNotFound(t){return new e(-32002,`Resource not found${t?`: ${t}`:``}`,t&&{uri:t})}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}},oie=class{#e=[];push(e){let t=[],n=0,r=e.indexOf(10,n);for(;r!==-1;)t.push(this.#t(e.subarray(n,r))),n=r+1,r=e.indexOf(10,n);return n<e.byteLength&&this.#e.push(n===0?e:new Uint8Array(e.subarray(n))),t}flush(){if(this.#e.length!==0)return this.#t(new Uint8Array)}#t(e){if(this.#e.length===0)return e;let t=e.byteLength;for(let e of this.#e)t+=e.byteLength;let n=new Uint8Array(t),r=0;for(let e of this.#e)n.set(e,r),r+=e.byteLength;return n.set(e,r),this.#e=[],n}};function sie(e,t){let n=new TextEncoder,r=new TextDecoder,i=!1,a;return{readable:new ReadableStream({async start(e){let n=new oie,o=t=>{let n=r.decode(t).trim();if(n)try{let t=JSON.parse(n);Um(t)?e.enqueue(t):console.warn(`Skipping JSON line that is not an object:`,n)}catch(e){console.error(`Failed to parse JSON message:`,n,e)}},s=t.getReader();a=s;try{for(;;){let{value:e,done:t}=await s.read();if(i)return;if(t)break;if(e){for(let t of n.push(e))if(o(t),i)return}}if(i)return;let e=n.flush();e&&o(e)}catch(t){if(i)return;e.error(t);return}finally{a===s&&(a=void 0),s.releaseLock()}i||e.close()},cancel(e){return i=!0,a?.cancel(e)}}),writable:new WritableStream({async write(t){let r=JSON.stringify(t)+`
5
5
  `,i=e.getWriter();try{await i.write(n.encode(r))}finally{i.releaseLock()}}})}}function Xm(e){return e??{}}function cie(e){return typeof e==`object`&&!!e&&`readable`in e&&`writable`in e}function lie(){let e=new TransformStream,t=new TransformStream;return[{readable:t.readable,writable:e.writable},{readable:e.readable,writable:t.writable}]}const Zm={agent:{initialize:H.initialize,authenticate:H.authenticate,logout:H.logout,providers:{list:H.providers_list,set:H.providers_set,disable:H.providers_disable},session:{new:H.session_new,load:H.session_load,list:H.session_list,delete:H.session_delete,fork:H.session_fork,resume:H.session_resume,close:H.session_close,setMode:H.session_set_mode,setConfigOption:H.session_set_config_option,prompt:H.session_prompt,cancel:H.session_cancel},nes:{start:H.nes_start,suggest:H.nes_suggest,accept:H.nes_accept,reject:H.nes_reject,close:H.nes_close},document:{didOpen:H.document_did_open,didChange:H.document_did_change,didClose:H.document_did_close,didSave:H.document_did_save,didFocus:H.document_did_focus}},client:{session:{requestPermission:ef.session_request_permission,update:ef.session_update},fs:{writeTextFile:ef.fs_write_text_file,readTextFile:ef.fs_read_text_file},terminal:{create:ef.terminal_create,output:ef.terminal_output,release:ef.terminal_release,waitForExit:ef.terminal_wait_for_exit,kill:ef.terminal_kill},elicitation:{create:ef.elicitation_create,complete:ef.elicitation_complete}},protocol:{cancelRequest:vne.cancel_request}},Qm=Symbol(`startActiveSession`);var $m=class{cx;currentRequestId;constructor(e,t){this.cx=e,this.currentRequestId=t}get requestId(){return this.currentRequestId}get connectionContext(){return this.cx}sendRequest(e,t,n,r){return this.cx.sendRequest(e,t,n,r)}sendNotification(e,t){return this.cx.sendNotification(e,t)}addDynamicHandler(e){return this.cx.addDynamicHandler(e)}},uie=class e extends $m{constructor(e,t){super(e,t)}static create(t,n){return new e(t,n)}request(e,t,n){let r=ch[e];return this.sendRequest(e,t,r?.mapResponse,n)}notify(e,t){return this.sendNotification(e,t)}},eh=class e extends $m{constructor(e,t){super(e,t)}static create(t,n){return new e(t,n)}[Qm](e,t){return this.sendRequest(H.session_new,e,e=>this.attachSession(e),t)}buildSession(e){return typeof e==`string`?rh.create(this,{cwd:e,mcpServers:[]}):rh.create(this,e)}attachSession(e){let t=new hie,n=this.connectionContext.signal,r=()=>{t.fail(n.reason??Error(`ACP connection closed`))};n.aborted?r():n.addEventListener(`abort`,r);let i=uh(this.connectionContext).attach(e,t),a=new qm(()=>{n.removeEventListener(`abort`,r)});return gie.create(this,e,t,[i,a])}request(e,t,n){let r=Cie[e];return this.sendRequest(e,t,r?.mapResponse,n)}notify(e,t){return this.sendNotification(e,t)}},th=class{connection;constructor(e){this.connection=e}get signal(){return this.connection.signal}get closed(){return this.connection.closed}close(e){this.connection.close(e)}},die=class extends th{connectHandlers;client;didStartConnectHandlers=!1;constructor(e,t=[]){super(e),this.connectHandlers=t,this.client=uie.create(e.getContext())}startConnectHandlers(){this.didStartConnectHandlers||(this.didStartConnectHandlers=!0,dh(this,this.connectHandlers))}},fie=class extends th{connectHandlers;agent;didStartConnectHandlers=!1;constructor(e,t=[]){super(e),this.connectHandlers=t,this.agent=eh.create(e.getContext())}startConnectHandlers(){this.didStartConnectHandlers||(this.didStartConnectHandlers=!0,dh(this,this.connectHandlers))}};function pie(e,t=[]){return new die(e,t)}function mie(e,t=[]){return new fie(e,t)}var hie=class{values=[];waiters=[];failed=!1;failure;enqueue(e){if(this.failed)return;let t=this.waiters.shift();t?t.resolve(e):this.values.push({kind:`value`,value:e})}reject(e){if(!this.failed){if(this.waiters.length>0){for(let t of this.waiters.splice(0))t.reject(e);return}this.values.push({kind:`error`,error:e})}}clearErrors(){this.values=this.values.filter(e=>e.kind===`value`)}fail(e){if(!this.failed){this.failed=!0,this.failure=e;for(let t of this.waiters.splice(0))t.reject(e)}}next(){if(this.values.length>0){let e=this.values.shift();return e.kind===`error`?Promise.reject(e.error):Promise.resolve(e.value)}return this.failed?Promise.reject(this.failure):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}};function nh(e){return{...e,additionalDirectories:e.additionalDirectories?[...e.additionalDirectories]:void 0,mcpServers:[...e.mcpServers]}}var rh=class e{cx;request;constructor(e,t){this.cx=e,this.request=nh(t)}static create(t,n){return new e(t,n)}toRequest(){return nh(this.request)}withAdditionalDirectories(e){return this.request={...this.request,additionalDirectories:[...e]},this}withMcpServer(e){return this.request={...this.request,mcpServers:[...this.request.mcpServers,e]},this}async start(e){return this.cx[Qm](this.toRequest(),e)}async withSession(e){let t=await this.start();try{return await e(t)}finally{t.dispose()}}},gie=class e{cx;sessionResponse;updates;registrations;constructor(e,t,n,r){this.cx=e,this.sessionResponse=t,this.updates=n,this.registrations=r}static create(t,n,r,i){return new e(t,n,r,i)}get sessionId(){return this.sessionResponse.sessionId}get modes(){return this.sessionResponse.modes}get meta(){return this.sessionResponse._meta}get newSessionResponse(){return this.sessionResponse}prompt(e,t){this.updates.clearErrors();let n=this.cx.request(H.session_prompt,{sessionId:this.sessionId,prompt:this.promptBlocks(e)},t);return n.then(e=>{this.updates.enqueue({kind:`stop`,response:e,stopReason:e.stopReason})},e=>{this.updates.reject(e)}),n}nextUpdate(){return this.updates.next()}async readText(){let e=``;for(;;){let t=await this.nextUpdate();if(t.kind===`stop`)return e;let{update:n}=t;n.sessionUpdate===`agent_message_chunk`&&n.content.type===`text`&&(e+=n.content.text)}}dispose(){for(let e of this.registrations.splice(0))e.dispose();this.updates.fail(Error(`Active session disposed`))}[Symbol.dispose](){this.dispose()}promptBlocks(e){return typeof e==`string`?[{type:`text`,text:e}]:Array.isArray(e)?e:[e]}};function ih(e,t){return e?typeof e==`function`?e(t):e.parse(t):t}function ah(e,t,n){return{method:e,params:t,mapResponse:n}}function oh(e,t){return{method:e,params:t}}function _ie(e,t,n,r){e.onReceiveRequest(t.method,e=>ih(t.params,e),async(e,i,a)=>{let o=await r(n(e,a,i.signal,i.id));await i.respond(t.mapResponse?t.mapResponse(o):o)})}function vie(e,t,n,r){e.onReceiveNotification(t.method,e=>ih(t.params,e),(e,t)=>r(n(e,t,t.signal)))}function sh(e){let t={};for(let n of Object.values(e))t[n.method]=n;return t}const yie={initialize:ah(H.initialize,fm),newSession:ah(H.session_new,bm),loadSession:ah(H.session_load,xm,Xm),unstable_forkSession:ah(H.session_fork,wm),listSessions:ah(H.session_list,Sm),deleteSession:ah(H.session_delete,Cm,Xm),resumeSession:ah(H.session_resume,Tm),closeSession:ah(H.session_close,Em,Xm),setSessionMode:ah(H.session_set_mode,Dm,Xm),setSessionConfigOption:ah(H.session_set_config_option,Om),authenticate:ah(H.authenticate,pm,Xm),unstable_listProviders:ah(H.providers_list,mm),unstable_setProvider:ah(H.providers_set,hm,Xm),unstable_disableProvider:ah(H.providers_disable,gm,Xm),logout:ah(H.logout,_m,Xm),prompt:ah(H.session_prompt,km),unstable_startNes:ah(H.nes_start,Am),unstable_suggestNes:ah(H.nes_suggest,jm),unstable_closeNes:ah(H.nes_close,Mm,Xm)},bie={cancel:oh(H.session_cancel,Pm),unstable_didOpenDocument:oh(H.document_did_open,Fm),unstable_didChangeDocument:oh(H.document_did_change,Im),unstable_didCloseDocument:oh(H.document_did_close,Lm),unstable_didSaveDocument:oh(H.document_did_save,Rm),unstable_didFocusDocument:oh(H.document_did_focus,zm),unstable_acceptNes:oh(H.nes_accept,Bm),unstable_rejectNes:oh(H.nes_reject,Vm)},xie={requestPermission:ah(ef.session_request_permission,Mf),writeTextFile:ah(ef.fs_write_text_file,uf,Xm),readTextFile:ah(ef.fs_read_text_file,df),createTerminal:ah(ef.terminal_create,Pf),terminalOutput:ah(ef.terminal_output,Ff),releaseTerminal:ah(ef.terminal_release,If,Xm),waitForTerminalExit:ah(ef.terminal_wait_for_exit,Lf),killTerminal:ah(ef.terminal_kill,Rf,Xm),unstable_createElicitation:ah(ef.elicitation_create,rp)},Sie={sessionUpdate:oh(ef.session_update,cm),unstable_completeElicitation:oh(ef.elicitation_complete,lm)},Cie=sh(yie);sh(bie);const ch=sh(xie),wie=sh(Sie);function Tie(e,t,n,r){return{params:e,requestId:r,signal:n,agent:t}}function Eie(e,t,n){return{params:e,signal:n,agent:t}}var Die=class{activeSessions=new Map;handleMessage(e){if(e.kind!==`notification`||e.method!==ef.session_update)return Wm.no(e);let t=cm.parse(e.params),n={kind:`session_update`,notification:t,update:t.update},r=this.activeSessions.get(t.sessionId);if(r&&r.size>0)for(let e of r)e.enqueue(n);return Wm.no(e)}attach(e,t){let n=this.activeSessions.get(e.sessionId)??new Set;return n.add(t),this.activeSessions.set(e.sessionId,n),new qm(()=>{n.delete(t),n.size===0&&this.activeSessions.delete(e.sessionId)})}};const lh=new WeakMap;function uh(e){let t=lh.get(e);return t||(t=new Die,lh.set(e,t)),t}function dh(e,t){for(let n of t){let t;try{t=n(e)}catch(t){throw e.close(t),t}Promise.resolve(t).catch(t=>{e.close(t)})}}const fh=Symbol(`appBuilder`),Oie=Symbol(`runAgentConnectHandlers`),ph=Symbol(`runClientConnectHandlers`);function kie(e){return new Aie(e)}var Aie=class{builder=Jm.builder();connectHandlers=[];constructor(e={}){e.name&&this.builder.name(e.name),this.builder.withHandler({handleMessage:(e,t)=>uh(t).handleMessage(e),describe:()=>`client-session-update-router`})}[fh](){return this.builder}[ph](e){dh(e,this.connectHandlers)}connect(e){return this.connectConnection(e).connection}connectWith(e,t){let{rawConnection:n,connection:r}=this.connectConnection(e);return n.runUntil(()=>t(r.agent))}onConnect(e){return this.connectHandlers.push(e),this}onRequest(e,t,n){if(n)return this.request({method:e,params:t},n);let r=ch[e];if(!r)throw Error(`Unknown ACP request method '${e}'. Pass a params parser for custom methods.`);return this.request(r,t)}onNotification(e,t,n){if(n)return this.notification({method:e,params:t},n);let r=wie[e];if(!r)throw Error(`Unknown ACP notification method '${e}'. Pass a params parser for custom methods.`);return this.notification(r,t)}request(e,t){return _ie(this.builder,e,(e,t,n,r)=>Tie(e,eh.create(t,r),n,r),t),this}notification(e,t){return vie(this.builder,e,(e,t,n)=>Eie(e,eh.create(t),n),t),this}connectConnection(e){if(cie(e)){let t=this.openStreamConnection(e);return this[ph](t.connection),t}let[t,n]=lie(),r=e[fh]().connect(n),i=pie(r),a=this.openStreamConnection(t);a.rawConnection.closed.then(()=>i.close()),r.closed.then(()=>a.connection.close());try{e[Oie](i),this[ph](a.connection)}catch(e){throw i.close(e),a.connection.close(e),e}return a}openStreamConnection(e){let t=this.builder.connect(e);return{rawConnection:t,connection:mie(t,this.connectHandlers)}}};new Set([H.initialize,H.authenticate,H.providers_list,H.providers_set,H.providers_disable,H.session_new,H.session_load,H.session_set_mode,H.session_set_config_option,H.session_prompt,H.session_list,H.session_delete,H.session_fork,H.session_resume,H.session_close,H.logout,H.nes_start,H.nes_suggest,H.nes_close]),new Set([H.session_cancel,H.nes_accept,H.nes_reject,H.document_did_open,H.document_did_change,H.document_did_close,H.document_did_save,H.document_did_focus]),new Set([ef.session_request_permission,ef.fs_write_text_file,ef.fs_read_text_file,ef.terminal_create,ef.terminal_output,ef.terminal_release,ef.terminal_wait_for_exit,ef.terminal_kill,ef.elicitation_create]),new Set([ef.session_update,ef.elicitation_complete]);function mh(e){return e.replace(/[<>\r\n]/g,``).trim().slice(0,128)}const hh=/^[a-zA-Z0-9_-]+$/,jie=64;function gh(e){return typeof e!=`string`||e.length===0||e.length>64||!hh.test(e)?null:e}function _h(e){return e.startsWith(`agent-`)?e:`agent-${e}`}function vh(e){return!e.startsWith(`principal-`)}function yh(e){if(!e)return`bot`;let t=e.toLowerCase();return t.includes(`claude`)||t.startsWith(`local-agent-mode-`)?`claude`:t.includes(`cursor`)?`cursor`:t.includes(`codex`)?`codex`:t.includes(`cline`)?`cline`:t.includes(`windsurf`)?`windsurf`:`bot`}function bh(e){let t=gh(typeof e.agentId==`string`?e.agentId:null)??void 0;return{rawAgentId:t,writerId:t===void 0?void 0:_h(t),displayName:typeof e.agentName==`string`?mh(e.agentName):`Claude`,clientName:typeof e.clientName==`string`?mh(e.clientName):void 0,clientVersion:typeof e.clientVersion==`string`?mh(e.clientVersion):void 0,label:typeof e.label==`string`?mh(e.label):void 0,colorSeed:typeof e.colorSeed==`string`&&e.colorSeed.length>0?e.colorSeed.slice(0,128):void 0}}function xh(e){let t=Ur(e);return t.frontmatter===``?t:wa(Fr(t.frontmatter)).map===null?{frontmatter:``,body:e}:t}const Sh=()=>new Map,Ch=e=>{let t=Sh();return e.forEach((e,n)=>{t.set(n,e)}),t},wh=(e,t,n)=>{let r=e.get(t);return r===void 0&&e.set(t,r=n()),r},Mie=(e,t)=>{for(let[n,r]of e)if(t(r,n))return!0;return!1},Th=()=>new Set,Eh=e=>e[e.length-1],Nie=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},Dh=Array.from,Pie=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n],n,e))return!0;return!1},Oh=Array.isArray;var kh=class{constructor(){this._observers=Sh()}on(e,t){return wh(this._observers,e,Th).add(t),t}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){let n=this._observers.get(e);n!==void 0&&(n.delete(t),n.size===0&&this._observers.delete(e))}emit(e,t){return Dh((this._observers.get(e)||Sh()).values()).forEach(e=>e(...t))}destroy(){this._observers=Sh()}};const Ah=Math.floor,jh=Math.abs,Mh=(e,t)=>e<t?e:t,Nh=(e,t)=>e>t?e:t;Number.isNaN;const Ph=e=>e===0?1/e<0:e<0,Fh=2**53-1,Fie=Number.isInteger||(e=>typeof e==`number`&&isFinite(e)&&Ah(e)===e);Number.isNaN,Number.parseInt;const Ih=String.fromCharCode;String.fromCodePoint,Ih(65535);const Iie=e=>e.toLowerCase(),Lie=/^\s*/g,Rie=e=>e.replace(Lie,``),zie=/([A-Z])/g,Lh=(e,t)=>Rie(e.replace(zie,e=>`${t}${Iie(e)}`)),Bie=e=>{let t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r},Rh=typeof TextEncoder<`u`?new TextEncoder:null,Vie=Rh?e=>Rh.encode(e):Bie;let zh=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0});zh&&zh.decode(new Uint8Array).length===1&&(zh=null);var Bh=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};const Vh=()=>new Bh,Hie=e=>{let t=Vh();return e(t),Hh(t)},Uie=e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},Hh=e=>{let t=new Uint8Array(Uie(e)),n=0;for(let r=0;r<e.bufs.length;r++){let i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},Wie=(e,t)=>{let n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(Nh(n,t)*2),e.cpos=0)},Uh=(e,t)=>{let n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(n*2),e.cpos=0),e.cbuf[e.cpos++]=t},Wh=Uh,Gh=(e,t)=>{for(;t>127;)Uh(e,128|127&t),t=Ah(t/128);Uh(e,127&t)},Kh=(e,t)=>{let n=Ph(t);for(n&&(t=-t),Uh(e,(t>63?128:0)|(n?64:0)|63&t),t=Ah(t/64);t>0;)Uh(e,(t>127?128:0)|127&t),t=Ah(t/128)},qh=new Uint8Array(3e4),Gie=qh.length/3,Jh=Rh&&Rh.encodeInto?(e,t)=>{if(t.length<Gie){let n=Rh.encodeInto(t,qh).written||0;Gh(e,n);for(let t=0;t<n;t++)Uh(e,qh[t])}else Xh(e,Vie(t))}:(e,t)=>{let n=unescape(encodeURIComponent(t)),r=n.length;Gh(e,r);for(let t=0;t<r;t++)Uh(e,n.codePointAt(t))},Yh=(e,t)=>{let n=e.cbuf.length,r=e.cpos,i=Mh(n-r,t.length),a=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,a>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Nh(n*2,a)),e.cbuf.set(t.subarray(i)),e.cpos=a)},Xh=(e,t)=>{Gh(e,t.byteLength),Yh(e,t)},Zh=(e,t)=>{Wie(e,t);let n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Kie=(e,t)=>Zh(e,4).setFloat32(0,t,!1),qie=(e,t)=>Zh(e,8).setFloat64(0,t,!1),Jie=(e,t)=>Zh(e,8).setBigInt64(0,t,!1),Qh=new DataView(new ArrayBuffer(4)),Yie=e=>(Qh.setFloat32(0,e),Qh.getFloat32(0)===e),$h=(e,t)=>{switch(typeof t){case`string`:Uh(e,119),Jh(e,t);break;case`number`:Fie(t)&&jh(t)<=2147483647?(Uh(e,125),Kh(e,t)):Yie(t)?(Uh(e,124),Kie(e,t)):(Uh(e,123),qie(e,t));break;case`bigint`:Uh(e,122),Jie(e,t);break;case`object`:if(t===null)Uh(e,126);else if(Oh(t)){Uh(e,117),Gh(e,t.length);for(let n=0;n<t.length;n++)$h(e,t[n])}else if(t instanceof Uint8Array)Uh(e,116),Xh(e,t);else{Uh(e,118);let n=Object.keys(t);Gh(e,n.length);for(let r=0;r<n.length;r++){let i=n[r];Jh(e,i),$h(e,t[i])}}break;case`boolean`:Uh(e,t?120:121);break;default:Uh(e,127)}};var eg=class extends Bh{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&Gh(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}};const tg=e=>{e.count>0&&(Kh(e.encoder,e.count===1?e.s:-e.s),e.count>1&&Gh(e.encoder,e.count-2))};var ng=class{constructor(){this.encoder=new Bh,this.s=0,this.count=0}write(e){this.s===e?this.count++:(tg(this),this.count=1,this.s=e)}toUint8Array(){return tg(this),Hh(this.encoder)}};const rg=e=>{if(e.count>0){let t=e.diff*2+(e.count===1?0:1);Kh(e.encoder,t),e.count>1&&Gh(e.encoder,e.count-2)}};var ig=class{constructor(){this.encoder=new Bh,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(rg(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return rg(this),Hh(this.encoder)}},Xie=class{constructor(){this.sarr=[],this.s=``,this.lensE=new ng}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=``),this.lensE.write(e.length)}toUint8Array(){let e=new Bh;return this.sarr.push(this.s),this.s=``,Jh(e,this.sarr.join(``)),Yh(e,this.lensE.toUint8Array()),Hh(e)}};const ag=e=>Error(e),og=()=>{throw ag(`Method unimplemented`)},sg=()=>{throw ag(`Unexpected case`)},cg=ag(`Unexpected end of array`),lg=ag(`Integer out of Range`);var ug=class{constructor(e){this.arr=e,this.pos=0}};const dg=e=>new ug(e),fg=e=>e.pos!==e.arr.length,pg=(e,t)=>{let n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n},mg=e=>pg(e,gg(e)),hg=e=>e.arr[e.pos++],gg=e=>{let t=0,n=1,r=e.arr.length;for(;e.pos<r;){let r=e.arr[e.pos++];if(t+=(r&127)*n,n*=128,r<128)return t;if(t>Fh)throw lg}throw cg},_g=e=>{let t=e.arr[e.pos++],n=t&63,r=64,i=(t&64)>0?-1:1;if(!(t&128))return i*n;let a=e.arr.length;for(;e.pos<a;){if(t=e.arr[e.pos++],n+=(t&127)*r,r*=128,t<128)return i*n;if(n>Fh)throw lg}throw cg},vg=zh?e=>zh.decode(mg(e)):e=>{let t=gg(e);if(t===0)return``;{let n=String.fromCodePoint(hg(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(hg(e));else for(;t>0;){let r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},yg=(e,t)=>{let n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},bg=[e=>void 0,e=>null,_g,e=>yg(e,4).getFloat32(0,!1),e=>yg(e,8).getFloat64(0,!1),e=>yg(e,8).getBigInt64(0,!1),e=>!1,e=>!0,vg,e=>{let t=gg(e),n={};for(let r=0;r<t;r++){let t=vg(e);n[t]=xg(e)}return n},e=>{let t=gg(e),n=[];for(let r=0;r<t;r++)n.push(xg(e));return n},mg],xg=e=>bg[127-hg(e)](e);var Sg=class extends ug{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),fg(this)?this.count=gg(this)+1:this.count=-1),this.count--,this.s}},Cg=class extends ug{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=_g(this);let e=Ph(this.s);this.count=1,e&&(this.s=-this.s,this.count=gg(this)+2)}return this.count--,this.s}},wg=class extends ug{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){let e=_g(this),t=e&1;this.diff=Ah(e/2),this.count=1,t&&(this.count=gg(this)+2)}return this.s+=this.diff,this.count--,this.s}},Tg=class{constructor(e){this.decoder=new Cg(e),this.str=vg(this.decoder),this.spos=0}read(){let e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}};ld.subtle;const Eg=ld.getRandomValues.bind(ld),Dg=()=>Eg(new Uint32Array(1))[0],Og=()=>`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^Dg()&15>>e/4).toString(16)),kg=Date.now,Ag=e=>new Promise(e);Promise.all.bind(Promise);const jg=e=>e===void 0?null:e;let Mg=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{typeof localStorage<`u`&&localStorage&&(Mg=localStorage)}catch{}const Ng=Mg,Pg=Symbol(`Equality`),Fg=(e,t)=>e===t||!!e?.[Pg]?.(t)||!1,Ig=Object.assign,Lg=Object.keys,Rg=(e,t)=>{for(let n in e)t(e[n],n)},zg=e=>Lg(e).length,Bg=e=>{for(let t in e)return!1;return!0},Vg=(e,t)=>{for(let n in e)if(!t(e[n],n))return!1;return!0},Hg=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ug=(e,t)=>e===t||zg(e)===zg(t)&&Vg(e,(e,n)=>(e!==void 0||Hg(t,n))&&Fg(t[n],e)),Wg=Object.freeze,Gg=e=>{for(let t in e){let n=e[t];(typeof n==`object`||typeof n==`function`)&&Gg(e[t])}return Wg(e)},Kg=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Kg(e,t,n+1)}},qg=e=>e,Jg=(e,t)=>t.includes(e),Yg=typeof process<`u`&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<`u`?process:0)===`[object process]`,Xg=typeof window<`u`&&typeof document<`u`&&!Yg;typeof navigator<`u`&&/Mac/.test(navigator.platform);let Zg;const Qg=[],$g=()=>{if(Zg===void 0)if(Yg){Zg=Sh();let e=process.argv,t=null;for(let n=0;n<e.length;n++){let r=e[n];r[0]===`-`?(t!==null&&Zg.set(t,``),t=r):t===null?Qg.push(r):(Zg.set(t,r),t=null)}t!==null&&Zg.set(t,``)}else typeof location==`object`?(Zg=Sh(),(location.search||`?`).slice(1).split(`&`).forEach(e=>{if(e.length!==0){let[t,n]=e.split(`=`);Zg.set(`--${Lh(t,`-`)}`,n),Zg.set(`-${Lh(t,`-`)}`,n)}})):Zg=Sh();return Zg},e_=e=>$g().has(e),t_=e=>jg(Yg?process.env[e.toUpperCase().replaceAll(`-`,`_`)]:Ng.getItem(e)),n_=e=>e_(`--`+e)||t_(e)!==null;n_(`production`);const r_=Yg&&Jg(process.env.FORCE_COLOR,[`true`,`1`,`2`])||!e_(`--no-colors`)&&!n_(`no-color`)&&(!Yg||process.stdout.isTTY)&&(!Yg||e_(`--color`)||t_(`COLORTERM`)!==null||(t_(`TERM`)||``).includes(`color`)),i_=e=>new Uint8Array(e),a_=Xg?e=>{let t=``;for(let n=0;n<e.byteLength;n++)t+=Ih(e[n]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`base64`),o_=e=>{let t=i_(e.byteLength);return t.set(e),t},s_=e=>Hie(t=>$h(t,e)),c_=Symbol,l_=c_(),u_=c_(),d_=c_(),f_=c_(),p_=c_(),m_=c_(),h_=c_(),g_=c_(),__=c_(),v_=e=>{e.length===1&&e[0]?.constructor===Function&&(e=e[0]());let t=[],n=[],r=0;for(;r<e.length;r++){let n=e[r];if(n===void 0)break;if(n.constructor===String||n.constructor===Number)t.push(n);else if(n.constructor===Object)break}for(r>0&&n.push(t.join(``));r<e.length;r++){let t=e[r];t instanceof Symbol||n.push(t)}return n};kg();const y_={[l_]:`\x1B[1m`,[u_]:`\x1B[2m`,[d_]:`\x1B[34m`,[p_]:`\x1B[32m`,[f_]:`\x1B[37m`,[m_]:`\x1B[31m`,[h_]:`\x1B[35m`,[g_]:`\x1B[38;5;208m`,[__]:`\x1B[0m`},b_=r_?e=>{e.length===1&&e[0]?.constructor===Function&&(e=e[0]());let t=[],n=[],r=0;for(;r<e.length;r++){let n=e[r],i=y_[n];if(i!==void 0)t.push(i);else if(n===void 0)break;else if(n.constructor===String||n.constructor===Number)t.push(n);else break}for(r>0&&(t.push(`\x1B[0m`),n.push(t.join(``)));r<e.length;r++){let t=e[r];t instanceof Symbol||n.push(t)}return n}:v_,x_=(...e)=>{console.log(...b_(e))},S_=(...e)=>{console.warn(...b_(e))},C_=e=>({[Symbol.iterator](){return this},next:e}),w_=(e,t)=>C_(()=>{let n;do n=e.next();while(!n.done&&!t(n.value));return n}),T_=(e,t)=>C_(()=>{let{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}});var E_=class{constructor(e,t){this.clock=e,this.len=t}},D_=class{constructor(){this.clients=new Map}};const O_=(e,t,n)=>t.clients.forEach((t,r)=>{let i=e.doc.store.clients.get(r);if(i!=null){let r=i[i.length-1],a=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<a;o=t[++r])Bv(e,i,o.clock,o.len,n)}}),k_=(e,t)=>{let n=0,r=e.length-1;for(;n<=r;){let i=Ah((n+r)/2),a=e[i],o=a.clock;if(o<=t){if(t<o+a.len)return i;n=i+1}else r=i-1}return null},A_=(e,t)=>{let n=e.clients.get(t.client);return n!==void 0&&k_(n,t.clock)!==null},j_=e=>{e.clients.forEach(e=>{e.sort((e,t)=>e.clock-t.clock);let t,n;for(t=1,n=1;t<e.length;t++){let r=e[n-1],i=e[t];r.clock+r.len>=i.clock?e[n-1]=new E_(r.clock,Nh(r.len,i.clock+i.len-r.clock)):(n<t&&(e[n]=i),n++)}e.length=n})},M_=e=>{let t=new D_;for(let n=0;n<e.length;n++)e[n].clients.forEach((r,i)=>{if(!t.clients.has(i)){let a=r.slice();for(let t=n+1;t<e.length;t++)Nie(a,e[t].clients.get(i)||[]);t.clients.set(i,a)}});return j_(t),t},N_=(e,t,n,r)=>{wh(e.clients,t,()=>[]).push(new E_(n,r))},P_=()=>new D_,F_=e=>{let t=P_();return e.clients.forEach((e,n)=>{let r=[];for(let t=0;t<e.length;t++){let n=e[t];if(n.deleted){let i=n.id.clock,a=n.length;if(t+1<e.length)for(let n=e[t+1];t+1<e.length&&n.deleted;n=e[++t+1])a+=n.length;r.push(new E_(i,a))}}r.length>0&&t.clients.set(n,r)}),t},I_=(e,t)=>{Gh(e.restEncoder,t.clients.size),Dh(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),Gh(e.restEncoder,t);let r=n.length;Gh(e.restEncoder,r);for(let t=0;t<r;t++){let r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},L_=e=>{let t=new D_,n=gg(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();let n=gg(e.restDecoder),r=gg(e.restDecoder);if(r>0){let i=wh(t.clients,n,()=>[]);for(let t=0;t<r;t++)i.push(new E_(e.readDsClock(),e.readDsLen()))}}return t},R_=(e,t,n)=>{let r=new D_,i=gg(e.restDecoder);for(let a=0;a<i;a++){e.resetDsCurVal();let i=gg(e.restDecoder),a=gg(e.restDecoder),o=n.clients.get(i)||[],s=Mv(n,i);for(let n=0;n<a;n++){let n=e.readDsClock(),a=n+e.readDsLen();if(n<s){s<a&&N_(r,i,s,a-s);let e=Pv(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,ib(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<a);)c.deleted||(a<c.id.clock+c.length&&o.splice(e,0,ib(t,c,a-c.id.clock)),c.delete(t))}else N_(r,i,n,a-n)}}if(r.clients.size>0){let e=new Y_;return Gh(e.restEncoder,0),I_(e,r),e.toUint8Array()}return null},z_=(e,t)=>{if(e.clients.size!==t.clients.size)return!1;for(let[n,r]of e.clients.entries()){let e=t.clients.get(n);if(e===void 0||r.length!==e.length)return!1;for(let t=0;t<r.length;t++){let n=r[t],i=e[t];if(n.clock!==i.clock||n.len!==i.len)return!1}}return!0},B_=Dg;var V_=class e extends kh{constructor({guid:e=Og(),collectionid:t=null,gc:n=!0,gcFilter:r=()=>!0,meta:i=null,autoLoad:a=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=B_(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Av,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=a,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Ag(e=>{this.on(`load`,()=>{this.isLoaded=!0,e(this)})});let s=()=>Ag(e=>{let t=n=>{(n===void 0||n===!0)&&(this.off(`sync`,t),e())};this.on(`sync`,t)});this.on(`sync`,e=>{e===!1&&this.isSynced&&(this.whenSynced=s()),this.isSynced=e===void 0||e===!0,this.isSynced&&!this.isLoaded&&this.emit(`load`,[this])}),this.whenSynced=s()}load(){let e=this._item;e!==null&&!this.shouldLoad&&Jv(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Dh(this.subdocs).map(e=>e.guid))}transact(e,t=null){return Jv(this,e,t)}get(e,t=dy){let n=wh(this.share,e,()=>{let e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==dy&&r!==t)if(r===dy){let r=new t;r._map=n._map,n._map.forEach(e=>{for(;e!==null;e=e.left)e.parent=r}),r._start=n._start;for(let e=r._start;e!==null;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}else throw Error(`Type with the name ${e} has already been defined with a different constructor`);return n}getArray(e=``){return this.get(e,Dy)}getText(e=``){return this.get(e,Vy)}getMap(e=``){return this.get(e,Oy)}getXmlElement(e=``){return this.get(e,Wy)}getXmlFragment(e=``){return this.get(e,Uy)}toJSON(){let e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,Dh(this.subdocs).forEach(e=>e.destroy());let t=this._item;if(t!==null){this._item=null;let n=t.content;n.doc=new e({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=t,Jv(t.parent.doc,e=>{let r=n.doc;t.deleted||e.subdocsAdded.add(r),e.subdocsRemoved.add(this)},null,!0)}this.emit(`destroyed`,[!0]),this.emit(`destroy`,[this]),super.destroy()}},H_=class{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return gg(this.restDecoder)}readDsLen(){return gg(this.restDecoder)}},U_=class extends H_{readLeftID(){return bv(gg(this.restDecoder),gg(this.restDecoder))}readRightID(){return bv(gg(this.restDecoder),gg(this.restDecoder))}readClient(){return gg(this.restDecoder)}readInfo(){return hg(this.restDecoder)}readString(){return vg(this.restDecoder)}readParentInfo(){return gg(this.restDecoder)===1}readTypeRef(){return gg(this.restDecoder)}readLen(){return gg(this.restDecoder)}readAny(){return xg(this.restDecoder)}readBuf(){return o_(mg(this.restDecoder))}readJSON(){return JSON.parse(vg(this.restDecoder))}readKey(){return vg(this.restDecoder)}},W_=class{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=gg(this.restDecoder),this.dsCurrVal}readDsLen(){let e=gg(this.restDecoder)+1;return this.dsCurrVal+=e,e}},G_=class extends W_{constructor(e){super(e),this.keys=[],gg(e),this.keyClockDecoder=new wg(mg(e)),this.clientDecoder=new Cg(mg(e)),this.leftClockDecoder=new wg(mg(e)),this.rightClockDecoder=new wg(mg(e)),this.infoDecoder=new Sg(mg(e),hg),this.stringDecoder=new Tg(mg(e)),this.parentInfoDecoder=new Sg(mg(e),hg),this.typeRefDecoder=new Cg(mg(e)),this.lenDecoder=new Cg(mg(e))}readLeftID(){return new vv(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new vv(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return xg(this.restDecoder)}readBuf(){return mg(this.restDecoder)}readJSON(){return xg(this.restDecoder)}readKey(){let e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{let e=this.stringDecoder.read();return this.keys.push(e),e}}},K_=class{constructor(){this.restEncoder=Vh()}toUint8Array(){return Hh(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){Gh(this.restEncoder,e)}writeDsLen(e){Gh(this.restEncoder,e)}},q_=class extends K_{writeLeftID(e){Gh(this.restEncoder,e.client),Gh(this.restEncoder,e.clock)}writeRightID(e){Gh(this.restEncoder,e.client),Gh(this.restEncoder,e.clock)}writeClient(e){Gh(this.restEncoder,e)}writeInfo(e){Wh(this.restEncoder,e)}writeString(e){Jh(this.restEncoder,e)}writeParentInfo(e){Gh(this.restEncoder,+!!e)}writeTypeRef(e){Gh(this.restEncoder,e)}writeLen(e){Gh(this.restEncoder,e)}writeAny(e){$h(this.restEncoder,e)}writeBuf(e){Xh(this.restEncoder,e)}writeJSON(e){Jh(this.restEncoder,JSON.stringify(e))}writeKey(e){Jh(this.restEncoder,e)}},J_=class{constructor(){this.restEncoder=Vh(),this.dsCurrVal=0}toUint8Array(){return Hh(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){let t=e-this.dsCurrVal;this.dsCurrVal=e,Gh(this.restEncoder,t)}writeDsLen(e){e===0&&sg(),Gh(this.restEncoder,e-1),this.dsCurrVal+=e}},Y_=class extends J_{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new ig,this.clientEncoder=new ng,this.leftClockEncoder=new ig,this.rightClockEncoder=new ig,this.infoEncoder=new eg(Wh),this.stringEncoder=new Xie,this.parentInfoEncoder=new eg(Wh),this.typeRefEncoder=new ng,this.lenEncoder=new ng}toUint8Array(){let e=Vh();return Gh(e,0),Xh(e,this.keyClockEncoder.toUint8Array()),Xh(e,this.clientEncoder.toUint8Array()),Xh(e,this.leftClockEncoder.toUint8Array()),Xh(e,this.rightClockEncoder.toUint8Array()),Xh(e,Hh(this.infoEncoder)),Xh(e,this.stringEncoder.toUint8Array()),Xh(e,Hh(this.parentInfoEncoder)),Xh(e,this.typeRefEncoder.toUint8Array()),Xh(e,this.lenEncoder.toUint8Array()),Yh(e,Hh(this.restEncoder)),Hh(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(+!!e)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){$h(this.restEncoder,e)}writeBuf(e){Xh(this.restEncoder,e)}writeJSON(e){$h(this.restEncoder,e)}writeKey(e){let t=this.keyMap.get(e);t===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}};const X_=(e,t,n,r)=>{r=Nh(r,t[0].id.clock);let i=Pv(t,r);Gh(e.restEncoder,t.length-i),e.writeClient(n),Gh(e.restEncoder,r);let a=t[i];a.write(e,r-a.id.clock);for(let n=i+1;n<t.length;n++)t[n].write(e,0)},Z_=(e,t,n)=>{let r=new Map;n.forEach((e,n)=>{Mv(t,n)>e&&r.set(n,e)}),jv(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),Gh(e.restEncoder,r.size),Dh(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{X_(e,t.clients.get(n),n,r)})},Q_=(e,t)=>{let n=Sh(),r=gg(e.restDecoder);for(let i=0;i<r;i++){let r=gg(e.restDecoder),i=Array(r),a=e.readClient(),o=gg(e.restDecoder);n.set(a,{i:0,refs:i});for(let n=0;n<r;n++){let r=e.readInfo();switch(31&r){case 0:{let t=e.readLen();i[n]=new qy(bv(a,o),t),o+=t;break}case 10:{let t=gg(e.restDecoder);i[n]=new lb(bv(a,o),t),o+=t;break}default:{let s=(r&192)==0,c=new sb(bv(a,o),null,(r&128)==128?e.readLeftID():null,null,(r&64)==64?e.readRightID():null,s?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,s&&(r&32)==32?e.readString():null,cb(e,r));i[n]=c,o+=c.length}}}}return n},$_=(e,t,n)=>{let r=[],i=Dh(n.keys()).sort((e,t)=>e-t);if(i.length===0)return null;let a=()=>{if(i.length===0)return null;let e=n.get(i[i.length-1]);for(;e.refs.length===e.i;)if(i.pop(),i.length>0)e=n.get(i[i.length-1]);else return null;return e},o=a();if(o===null)return null;let s=new Av,c=new Map,l=(e,t)=>{let n=c.get(e);(n==null||n>t)&&c.set(e,t)},u=o.refs[o.i++],d=new Map,f=()=>{for(let e of r){let t=e.id.client,r=n.get(t);r?(r.i--,s.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):s.clients.set(t,[e]),i=i.filter(e=>e!==t)}r.length=0};for(;;){if(u.constructor!==lb){let i=wh(d,u.id.client,()=>Mv(t,u.id.client))-u.id.clock;if(i<0)r.push(u),l(u.id.client,u.id.clock-1),f();else{let a=u.getMissing(e,t);if(a!==null){r.push(u);let e=n.get(a)||{refs:[],i:0};if(e.refs.length===e.i)l(a,Mv(t,a)),f();else{u=e.refs[e.i++];continue}}else (i===0||i<u.length)&&(u.integrate(e,i),d.set(u.id.client,u.id.clock+u.length))}}if(r.length>0)u=r.pop();else if(o!==null&&o.i<o.refs.length)u=o.refs[o.i++];else{if(o=a(),o===null)break;u=o.refs[o.i++]}}if(s.clients.size>0){let e=new Y_;return Z_(e,s,new Map),Gh(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null},ev=(e,t)=>Z_(e,t.doc.store,t.beforeState),tv=(e,t,n,r=new G_(e))=>Jv(t,e=>{e.local=!1;let t=!1,n=e.doc,i=n.store,a=$_(e,i,Q_(r,n)),o=i.pendingStructs;if(o){for(let[e,n]of o.missing)if(n<Mv(i,e)){t=!0;break}if(a){for(let[e,t]of a.missing){let n=o.missing.get(e);(n==null||n>t)&&o.missing.set(e,t)}o.update=$v([o.update,a.update])}}else i.pendingStructs=a;let s=R_(r,e,i);if(i.pendingDs){let t=new G_(dg(i.pendingDs));gg(t.restDecoder);let n=R_(t,e,i);s&&n?i.pendingDs=$v([s,n]):i.pendingDs=s||n}else i.pendingDs=s;if(t){let t=i.pendingStructs.update;i.pendingStructs=null,nv(e.doc,t)}},n,!1),nv=(e,t,n,r=G_)=>{let i=dg(t);tv(i,e,n,new r(i))},rv=(e,t,n)=>nv(e,t,n,U_),iv=(e,t,n=new Map)=>{Z_(e,t.store,n),I_(e,F_(t.store))},av=(e,t=new Uint8Array([0]),n=new Y_)=>{iv(n,e,cv(t));let r=[n.toUint8Array()];if(e.store.pendingDs&&r.push(e.store.pendingDs),e.store.pendingStructs&&r.push(nae(e.store.pendingStructs.update,t)),r.length>1){if(n.constructor===q_)return eae(r.map((e,t)=>t===0?e:iae(e)));if(n.constructor===Y_)return $v(r)}return r[0]},ov=(e,t)=>av(e,t,new q_),sv=e=>{let t=new Map,n=gg(e.restDecoder);for(let r=0;r<n;r++){let n=gg(e.restDecoder),r=gg(e.restDecoder);t.set(n,r)}return t},cv=e=>sv(new H_(dg(e))),lv=(e,t)=>(Gh(e.restEncoder,t.size),Dh(t.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{Gh(e.restEncoder,t),Gh(e.restEncoder,n)}),e),uv=(e,t)=>lv(e,jv(t.store)),dv=(e,t=new J_)=>(e instanceof Map?lv(t,e):uv(t,e),t.toUint8Array()),fv=e=>dv(e,new K_);var pv=class{constructor(){this.l=[]}};const mv=()=>new pv,hv=(e,t)=>e.l.push(t),gv=(e,t)=>{let n=e.l,r=n.length;e.l=n.filter(e=>t!==e),r===e.l.length&&console.error(`[yjs] Tried to remove event handler that doesn't exist.`)},_v=(e,t,n)=>Kg(e.l,[t,n]);var vv=class{constructor(e,t){this.client=e,this.clock=t}};const yv=(e,t)=>e===t||e!==null&&t!==null&&e.client===t.client&&e.clock===t.clock,bv=(e,t)=>new vv(e,t),xv=e=>{for(let[t,n]of e.doc.share.entries())if(n===e)return t;throw sg()},Sv=(e,t)=>{for(;t!==null;){if(t.parent===e)return!0;t=t.parent._item}return!1};var Cv=class{constructor(e,t){this.ds=e,this.sv=t}};const wv=(e,t)=>new Cv(e,t);wv(P_(),new Map);const Tv=e=>wv(F_(e.store),jv(e.store)),Ev=(e,t)=>t===void 0?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!A_(t.ds,e.id),Dv=(e,t)=>{let n=wh(e.meta,Dv,Th),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<Mv(r,n)&&Lv(e,bv(n,t))}),O_(e,t.ds,e=>{}),n.add(t))},Ov=(e,t,n=G_)=>{let r=new n(dg(t)),i=new Zv(r,!1);for(let t=i.curr;t!==null;t=i.next())if((e.sv.get(t.id.client)||0)<t.id.clock+t.length)return!1;let a=M_([e.ds,L_(r)]);return z_(e.ds,a)},kv=(e,t)=>Ov(e,t,U_);var Av=class{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}};const jv=e=>{let t=new Map;return e.clients.forEach((e,n)=>{let r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},Mv=(e,t)=>{let n=e.clients.get(t);if(n===void 0)return 0;let r=n[n.length-1];return r.id.clock+r.length},Nv=(e,t)=>{let n=e.clients.get(t.id.client);if(n===void 0)n=[],e.clients.set(t.id.client,n);else{let e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw sg()}n.push(t)},Pv=(e,t)=>{let n=0,r=e.length-1,i=e[r],a=i.id.clock;if(a===t)return r;let o=Ah(t/(a+i.length-1)*r);for(;n<=r;){if(i=e[o],a=i.id.clock,a<=t){if(t<a+i.length)return o;n=o+1}else r=o-1;o=Ah((n+r)/2)}throw sg()},Fv=(e,t)=>{let n=e.clients.get(t.client);return n[Pv(n,t.clock)]},Iv=(e,t,n)=>{let r=Pv(t,n),i=t[r];return i.id.clock<n&&i instanceof sb?(t.splice(r+1,0,ib(e,i,n-i.id.clock)),r+1):r},Lv=(e,t)=>{let n=e.doc.store.clients.get(t.client);return n[Iv(e,n,t.clock)]},Rv=(e,t,n)=>{let r=t.clients.get(n.client),i=Pv(r,n.clock),a=r[i];return n.clock!==a.id.clock+a.length-1&&a.constructor!==qy&&r.splice(i+1,0,ib(e,a,n.clock-a.id.clock+1)),a},zv=(e,t,n)=>{let r=e.clients.get(t.id.client);r[Pv(r,t.id.clock)]=n},Bv=(e,t,n,r,i)=>{if(r===0)return;let a=n+r,o=Iv(e,t,n),s;do s=t[o++],a<s.id.clock+s.length&&Iv(e,t,a),i(s);while(o<t.length&&t[o].id.clock<a)};var Vv=class{constructor(e,t,n){this.doc=e,this.deleteSet=new D_,this.beforeState=jv(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}};const Hv=(e,t)=>t.deleteSet.clients.size===0&&!Mie(t.afterState,(e,n)=>t.beforeState.get(n)!==e)?!1:(j_(t.deleteSet),ev(e,t),I_(e,t.deleteSet),!0),Uv=(e,t,n)=>{let r=t._item;(r===null||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&wh(e.changed,t,Th).add(n)},Wv=(e,t)=>{let n=e[t],r=e[t-1],i=t;for(;i>0;n=r,r=e[--i-1]){if(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n)){n instanceof sb&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);continue}break}let a=t-i;return a&&e.splice(t+1-a,a),a},Gv=(e,t,n)=>{for(let[r,i]of e.clients.entries()){let e=t.clients.get(r);for(let r=i.length-1;r>=0;r--){let a=i[r],o=a.clock+a.len;for(let r=Pv(e,a.clock),i=e[r];r<e.length&&i.id.clock<o;i=e[++r]){let i=e[r];if(a.clock+a.len<=i.id.clock)break;i instanceof sb&&i.deleted&&!i.keep&&n(i)&&i.gc(t,!1)}}}},Kv=(e,t)=>{e.clients.forEach((e,n)=>{let r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){let n=e[t],i=Mh(r.length-1,1+Pv(r,n.clock+n.len-1));for(let e=i,t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Wv(r,e)}})},qv=(e,t)=>{if(t<e.length){let n=e[t],r=n.doc,i=r.store,a=n.deleteSet,o=n._mergeStructs;try{j_(a),n.afterState=jv(n.doc.store),r.emit(`beforeObserverCalls`,[n,r]);let e=[];n.changed.forEach((t,r)=>e.push(()=>{(r._item===null||!r._item.deleted)&&r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((t,r)=>{r._dEH.l.length>0&&(r._item===null||!r._item.deleted)&&(t=t.filter(e=>e.target._item===null||!e.target._item.deleted),t.forEach(e=>{e.currentTarget=r,e._path=null}),t.sort((e,t)=>e.path.length-t.path.length),e.push(()=>{_v(r._dEH,t,n)}))}),e.push(()=>r.emit(`afterTransaction`,[n,r])),e.push(()=>{n._needFormattingCleanup&&yae(n)})}),Kg(e,[])}finally{r.gc&&Gv(a,i,r.gcFilter),Kv(a,i),n.afterState.forEach((e,t)=>{let r=n.beforeState.get(t)||0;if(r!==e){let e=i.clients.get(t),n=Nh(Pv(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Wv(e,t)}});for(let e=o.length-1;e>=0;e--){let{client:t,clock:n}=o[e].id,r=i.clients.get(t),a=Pv(r,n);a+1<r.length&&Wv(r,a+1)>1||a>0&&Wv(r,a)}if(!n.local&&n.afterState.get(r.clientID)!==n.beforeState.get(r.clientID)&&(x_(g_,l_,`[yjs] `,u_,m_,`Changed the client-id because another client seems to be using it.`),r.clientID=B_()),r.emit(`afterTransactionCleanup`,[n,r]),r._observers.has(`update`)){let e=new q_;Hv(e,n)&&r.emit(`update`,[e.toUint8Array(),n.origin,r,n])}if(r._observers.has(`updateV2`)){let e=new Y_;Hv(e,n)&&r.emit(`updateV2`,[e.toUint8Array(),n.origin,r,n])}let{subdocsAdded:s,subdocsLoaded:c,subdocsRemoved:l}=n;(s.size>0||l.size>0||c.size>0)&&(s.forEach(e=>{e.clientID=r.clientID,e.collectionid??=r.collectionid,r.subdocs.add(e)}),l.forEach(e=>r.subdocs.delete(e)),r.emit(`subdocs`,[{loaded:c,added:s,removed:l},r,n]),l.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit(`afterAllTransactions`,[r,e])):qv(e,t+1)}}},Jv=(e,t,n=null,r=!0)=>{let i=e._transactionCleanups,a=!1,o=null;e._transaction===null&&(a=!0,e._transaction=new Vv(e,n,r),i.push(e._transaction),i.length===1&&e.emit(`beforeAllTransactions`,[e]),e.emit(`beforeTransaction`,[e._transaction,e]));try{o=t(e._transaction)}finally{if(a){let t=e._transaction===i[0];e._transaction=null,t&&qv(i,0)}}return o};var Zie=class{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}};const Yv=(e,t,n)=>{O_(e,n.deletions,n=>{n instanceof sb&&t.scope.some(t=>t===e.doc||Sv(t,n))&&rb(n,!1)})},Xv=(e,t,n)=>{let r=null,i=e.doc,a=e.scope;Jv(i,n=>{for(;t.length>0&&e.currStackItem===null;){let r=i.store,o=t.pop(),s=new Set,c=[],l=!1;O_(n,o.insertions,e=>{if(e instanceof sb){if(e.redone!==null){let{item:t,diff:i}=qae(r,e.id);i>0&&(t=Lv(n,bv(t.id.client,t.id.clock+i))),e=t}!e.deleted&&a.some(t=>t===n.doc||Sv(t,e))&&c.push(e)}}),O_(n,o.deletions,e=>{e instanceof sb&&a.some(t=>t===n.doc||Sv(t,e))&&!A_(o.insertions,e.id)&&s.add(e)}),s.forEach(t=>{l=ob(n,t,s,o.insertions,e.ignoreRemoteMapChanges,e)!==null||l});for(let t=c.length-1;t>=0;t--){let r=c[t];e.deleteFilter(r)&&(r.delete(n),l=!0)}e.currStackItem=l?o:null}n.changed.forEach((e,t)=>{e.has(null)&&t._searchMarker&&(t._searchMarker.length=0)}),r=n},e);let o=e.currStackItem;if(o!=null){let t=r.changedParentTypes;e.emit(`stack-item-popped`,[{stackItem:o,type:n,changedParentTypes:t,origin:e},e]),e.currStackItem=null}return o};var Qie=class extends kh{constructor(e,{captureTimeout:t=500,captureTransaction:n=e=>!0,deleteFilter:r=()=>!0,trackedOrigins:i=new Set([null]),ignoreRemoteMapChanges:a=!1,doc:o=Oh(e)?e[0].doc:e instanceof V_?e:e.doc}={}){super(),this.scope=[],this.doc=o,this.addToScope(e),this.deleteFilter=r,i.add(this),this.trackedOrigins=i,this.captureTransaction=n,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=a,this.captureTimeout=t,this.afterTransactionHandler=e=>{if(!this.captureTransaction(e)||!this.scope.some(t=>e.changedParentTypes.has(t)||t===this.doc)||!this.trackedOrigins.has(e.origin)&&(!e.origin||!this.trackedOrigins.has(e.origin.constructor)))return;let t=this.undoing,n=this.redoing,r=t?this.redoStack:this.undoStack;t?this.stopCapturing():n||this.clear(!1,!0);let i=new D_;e.afterState.forEach((t,n)=>{let r=e.beforeState.get(n)||0,a=t-r;a>0&&N_(i,n,r,a)});let a=kg(),o=!1;if(this.lastChange>0&&a-this.lastChange<this.captureTimeout&&r.length>0&&!t&&!n){let t=r[r.length-1];t.deletions=M_([t.deletions,e.deleteSet]),t.insertions=M_([t.insertions,i])}else r.push(new Zie(e.deleteSet,i)),o=!0;!t&&!n&&(this.lastChange=a),O_(e,e.deleteSet,t=>{t instanceof sb&&this.scope.some(n=>n===e.doc||Sv(n,t))&&rb(t,!0)});let s=[{stackItem:r[r.length-1],origin:e.origin,type:t?`redo`:`undo`,changedParentTypes:e.changedParentTypes},this];o?this.emit(`stack-item-added`,s):this.emit(`stack-item-updated`,s)},this.doc.on(`afterTransaction`,this.afterTransactionHandler),this.doc.on(`destroy`,()=>{this.destroy()})}addToScope(e){let t=new Set(this.scope);e=Oh(e)?e:[e],e.forEach(e=>{t.has(e)||(t.add(e),(e instanceof dy?e.doc!==this.doc:e!==this.doc)&&S_(`[yjs#509] Not same Y.Doc`),this.scope.push(e))})}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,t=!0){(e&&this.canUndo()||t&&this.canRedo())&&this.doc.transact(n=>{e&&(this.undoStack.forEach(e=>Yv(n,this,e)),this.undoStack=[]),t&&(this.redoStack.forEach(e=>Yv(n,this,e)),this.redoStack=[]),this.emit(`stack-cleared`,[{undoStackCleared:e,redoStackCleared:t}])})}stopCapturing(){this.lastChange=0}undo(){this.undoing=!0;let e;try{e=Xv(this,this.undoStack,`undo`)}finally{this.undoing=!1}return e}redo(){this.redoing=!0;let e;try{e=Xv(this,this.redoStack,`redo`)}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off(`afterTransaction`,this.afterTransactionHandler),super.destroy()}};function*$ie(e){let t=gg(e.restDecoder);for(let n=0;n<t;n++){let t=gg(e.restDecoder),n=e.readClient(),r=gg(e.restDecoder);for(let i=0;i<t;i++){let t=e.readInfo();if(t===10){let t=gg(e.restDecoder);yield new lb(bv(n,r),t),r+=t}else if(31&t){let i=(t&192)==0,a=new sb(bv(n,r),null,(t&128)==128?e.readLeftID():null,null,(t&64)==64?e.readRightID():null,i?e.readParentInfo()?e.readString():e.readLeftID():null,i&&(t&32)==32?e.readString():null,cb(e,t));yield a,r+=a.length}else{let t=e.readLen();yield new qy(bv(n,r),t),r+=t}}}}var Zv=class{constructor(e,t){this.gen=$ie(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do this.curr=this.gen.next().value||null;while(this.filterSkips&&this.curr!==null&&this.curr.constructor===lb);return this.curr}},Qv=class{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}};const eae=e=>$v(e,U_,q_),tae=(e,t)=>{if(e.constructor===qy){let{client:n,clock:r}=e.id;return new qy(bv(n,r+t),e.length-t)}else if(e.constructor===lb){let{client:n,clock:r}=e.id;return new lb(bv(n,r+t),e.length-t)}else{let n=e,{client:r,clock:i}=n.id;return new sb(bv(r,i+t),null,bv(r,i+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},$v=(e,t=G_,n=Y_)=>{if(e.length===1)return e[0];let r=e.map(e=>new t(dg(e))),i=r.map(e=>new Zv(e,!0)),a=null,o=new n,s=new Qv(o);for(;i=i.filter(e=>e.curr!==null),i.sort((e,t)=>{if(e.curr.id.client===t.curr.id.client){let n=e.curr.id.clock-t.curr.id.clock;return n===0?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===lb?1:-1:n}else return t.curr.id.client-e.curr.id.client}),i.length!==0;){let e=i[0],t=e.curr.id.client;if(a!==null){let n=e.curr,r=!1;for(;n!==null&&n.id.clock+n.length<=a.struct.id.clock+a.struct.length&&n.id.client>=a.struct.id.client;)n=e.next(),r=!0;if(n===null||n.id.client!==t||r&&n.id.clock>a.struct.id.clock+a.struct.length)continue;if(t!==a.struct.id.client)ty(s,a.struct,a.offset),a={struct:n,offset:0},e.next();else if(a.struct.id.clock+a.struct.length<n.id.clock)if(a.struct.constructor===lb)a.struct.length=n.id.clock+n.length-a.struct.id.clock;else{ty(s,a.struct,a.offset);let e=n.id.clock-a.struct.id.clock-a.struct.length;a={struct:new lb(bv(t,a.struct.id.clock+a.struct.length),e),offset:0}}else{let t=a.struct.id.clock+a.struct.length-n.id.clock;t>0&&(a.struct.constructor===lb?a.struct.length-=t:n=tae(n,t)),a.struct.mergeWith(n)||(ty(s,a.struct,a.offset),a={struct:n,offset:0},e.next())}}else a={struct:e.curr,offset:0},e.next();for(let n=e.curr;n!==null&&n.id.client===t&&n.id.clock===a.struct.id.clock+a.struct.length&&n.constructor!==lb;n=e.next())ty(s,a.struct,a.offset),a={struct:n,offset:0}}return a!==null&&(ty(s,a.struct,a.offset),a=null),ny(s),I_(o,M_(r.map(e=>L_(e)))),o.toUint8Array()},nae=(e,t,n=G_,r=Y_)=>{let i=cv(t),a=new r,o=new Qv(a),s=new n(dg(e)),c=new Zv(s,!1);for(;c.curr;){let e=c.curr,t=e.id.client,n=i.get(t)||0;if(c.curr.constructor===lb){c.next();continue}if(e.id.clock+e.length>n)for(ty(o,e,Nh(n-e.id.clock,0)),c.next();c.curr&&c.curr.id.client===t;)ty(o,c.curr,0),c.next();else for(;c.curr&&c.curr.id.client===t&&c.curr.id.clock+c.curr.length<=n;)c.next()}return ny(o),I_(a,L_(s)),a.toUint8Array()},ey=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Hh(e.encoder.restEncoder)}),e.encoder.restEncoder=Vh(),e.written=0)},ty=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&ey(e),e.written===0&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Gh(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},ny=e=>{ey(e);let t=e.encoder.restEncoder;Gh(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){let r=e.clientStructs[n];Gh(t,r.written),Yh(t,r.restEncoder)}},rae=(e,t,n,r)=>{let i=new n(dg(e)),a=new Zv(i,!1),o=new r,s=new Qv(o);for(let e=a.curr;e!==null;e=a.next())ty(s,t(e),0);return ny(s),I_(o,L_(i)),o.toUint8Array()},iae=e=>rae(e,qg,G_,q_),ry=`You must not compute changes after the event-handler fired.`;var iy=class{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||=aae(this.currentTarget,this.target)}deletes(e){return A_(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw ag(ry);let e=new Map,t=this.target;this.transaction.changed.get(t).forEach(n=>{if(n!==null){let r=t._map.get(n),i,a;if(this.adds(r)){let e=r.left;for(;e!==null&&this.adds(e);)e=e.left;if(this.deletes(r))if(e!==null&&this.deletes(e))i=`delete`,a=Eh(e.content.getContent());else return;else e!==null&&this.deletes(e)?(i=`update`,a=Eh(e.content.getContent())):(i=`add`,a=void 0)}else if(this.deletes(r))i=`delete`,a=Eh(r.content.getContent());else return;e.set(n,{action:i,oldValue:a})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw ag(ry);let t=this.target,n=Th(),r=Th(),i=[];if(e={added:n,deleted:r,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null,a=()=>{e&&i.push(e)};for(let i=t._start;i!==null;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&((e===null||e.delete===void 0)&&(a(),e={delete:0}),e.delete+=i.length,r.add(i)):this.adds(i)?((e===null||e.insert===void 0)&&(a(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),n.add(i)):((e===null||e.retain===void 0)&&(a(),e={retain:0}),e.retain+=i.length);e!==null&&e.retain===void 0&&a()}this._changes=e}return e}};const aae=(e,t)=>{let n=[];for(;t._item!==null&&t!==e;){if(t._item.parentSub!==null)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&r!==null;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},ay=()=>{S_(`Invalid access: Add Yjs type to a document before reading data.`)};let oy=0;var oae=class{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=oy++}};const sae=e=>{e.timestamp=oy++},sy=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=oy++},cae=(e,t,n)=>{if(e.length>=80){let r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return sy(r,t,n),r}else{let r=new oae(t,n);return e.push(r),r}},cy=(e,t)=>{if(e._start===null||t===0||e._searchMarker===null)return null;let n=e._searchMarker.length===0?null:e._searchMarker.reduce((e,n)=>jh(t-e.index)<jh(t-n.index)?e:n),r=e._start,i=0;for(n!==null&&(r=n.p,i=n.index,sae(n));r.right!==null&&i<t;){if(!r.deleted&&r.countable){if(t<i+r.length)break;i+=r.length}r=r.right}for(;r.left!==null&&i>t;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;r.left!==null&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return n!==null&&jh(n.index-i)<r.parent.length/80?(sy(n,r,i),n):cae(e._searchMarker,r,i)},ly=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){let i=e[r];if(n>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(t===null||t.marker===!0){e.splice(r,1);continue}i.p=t,t.marker=!0}(t<i.index||n>0&&t===i.index)&&(i.index=Nh(t,i.index+n))}},uy=(e,t,n)=>{let r=e,i=t.changedParentTypes;for(;wh(i,e,()=>[]).push(n),e._item!==null;)e=e._item.parent;_v(r._eH,n,t)};var dy=class{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=mv(),this._dEH=mv(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw og()}clone(){throw og()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){hv(this._eH,e)}observeDeep(e){hv(this._dEH,e)}unobserve(e){gv(this._eH,e)}unobserveDeep(e){gv(this._dEH,e)}toJSON(){}};const fy=(e,t,n)=>{e.doc??ay(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t,i=[],a=e._start;for(;a!==null&&r>0;){if(a.countable&&!a.deleted){let e=a.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)i.push(e[n]),r--;t=0}}a=a.right}return i},py=e=>{e.doc??ay();let t=[],n=e._start;for(;n!==null;){if(n.countable&&!n.deleted){let e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},lae=(e,t)=>{let n=[],r=e._start;for(;r!==null;){if(r.countable&&Ev(r,t)){let e=r.content.getContent();for(let t=0;t<e.length;t++)n.push(e[t])}r=r.right}return n},my=(e,t)=>{let n=0,r=e._start;for(e.doc??ay();r!==null;){if(r.countable&&!r.deleted){let i=r.content.getContent();for(let r=0;r<i.length;r++)t(i[r],n++,e)}r=r.right}},hy=(e,t)=>{let n=[];return my(e,(r,i)=>{n.push(t(r,i,e))}),n},uae=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;t!==null&&t.deleted;)t=t.right;if(t===null)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}let e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},gy=(e,t)=>{e.doc??ay();let n=cy(e,t),r=e._start;for(n!==null&&(r=n.p,t-=n.index);r!==null;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},_y=(e,t,n,r)=>{let i=n,a=e.doc,o=a.clientID,s=a.store,c=n===null?t._start:n.right,l=[],u=()=>{l.length>0&&(i=new sb(bv(o,Mv(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new eb(l)),i.integrate(e,0),l=[])};r.forEach(n=>{if(n===null)l.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:l.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:i=new sb(bv(o,Mv(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new Jy(new Uint8Array(n))),i.integrate(e,0);break;case V_:i=new sb(bv(o,Mv(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new Zy(n)),i.integrate(e,0);break;default:if(n instanceof dy)i=new sb(bv(o,Mv(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new nb(n)),i.integrate(e,0);else throw Error(`Unexpected content type in insert operation`)}}}),u()},vy=()=>ag(`Length exceeded!`),yy=(e,t,n,r)=>{if(n>t._length)throw vy();if(n===0)return t._searchMarker&&ly(t._searchMarker,n,r.length),_y(e,t,null,r);let i=n,a=cy(t,n),o=t._start;for(a!==null&&(o=a.p,n-=a.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Lv(e,bv(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ly(t._searchMarker,i,r.length),_y(e,t,o,r)},dae=(e,t,n)=>{let r=(t._searchMarker||[]).reduce((e,t)=>t.index>e.index?t:e,{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;return _y(e,t,r,n)},by=(e,t,n,r)=>{if(r===0)return;let i=n,a=r,o=cy(t,n),s=t._start;for(o!==null&&(s=o.p,n-=o.index);s!==null&&n>0;s=s.right)!s.deleted&&s.countable&&(n<s.length&&Lv(e,bv(s.id.client,s.id.clock+n)),n-=s.length);for(;r>0&&s!==null;)s.deleted||(r<s.length&&Lv(e,bv(s.id.client,s.id.clock+r)),s.delete(e),r-=s.length),s=s.right;if(r>0)throw vy();t._searchMarker&&ly(t._searchMarker,i,-a+r)},xy=(e,t,n)=>{let r=t._map.get(n);r!==void 0&&r.delete(e)},Sy=(e,t,n,r)=>{let i=t._map.get(n)||null,a=e.doc,o=a.clientID,s;if(r==null)s=new eb([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:s=new eb([r]);break;case Uint8Array:s=new Jy(r);break;case V_:s=new Zy(r);break;default:if(r instanceof dy)s=new nb(r);else throw Error(`Unexpected content type`)}new sb(bv(o,Mv(a.store,o)),i,i&&i.lastId,null,null,t,n,s).integrate(e,0)},Cy=(e,t)=>{e.doc??ay();let n=e._map.get(t);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},wy=e=>{let t={};return e.doc??ay(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Ty=(e,t)=>{e.doc??ay();let n=e._map.get(t);return n!==void 0&&!n.deleted},fae=(e,t)=>{let n={};return e._map.forEach((e,r)=>{let i=e;for(;i!==null&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;i!==null&&Ev(i,t)&&(n[r]=i.content.getContent()[i.length-1])}),n},Ey=e=>(e.doc??ay(),w_(e._map.entries(),e=>!e[1].deleted));var pae=class extends iy{},Dy=class e extends dy{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(t){let n=new e;return n.push(t),n}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof dy?e.clone():e)),t}get length(){return this.doc??ay(),this._length}_callObserver(e,t){super._callObserver(e,t),uy(this,e,new pae(this,e))}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):Jv(this.doc,n=>{yy(n,this,e,t)})}push(e){this.doc===null?this._prelimContent.push(...e):Jv(this.doc,t=>{dae(t,this,e)})}unshift(e){this.insert(0,e)}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):Jv(this.doc,n=>{by(n,this,e,t)})}get(e){return gy(this,e)}toArray(){return py(this)}slice(e=0,t=this.length){return fy(this,e,t)}toJSON(){return this.map(e=>e instanceof dy?e.toJSON():e)}map(e){return hy(this,e)}forEach(e){my(this,e)}[Symbol.iterator](){return uae(this)}_write(e){e.writeTypeRef(zae)}};const mae=e=>new Dy;var hae=class extends iy{constructor(e,t,n){super(e,t),this.keysChanged=n}},Oy=class e extends dy{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return this.forEach((e,n)=>{t.set(n,e instanceof dy?e.clone():e)}),t}_callObserver(e,t){uy(this,e,new hae(this,e,t))}toJSON(){this.doc??ay();let e={};return this._map.forEach((t,n)=>{if(!t.deleted){let r=t.content.getContent()[t.length-1];e[n]=r instanceof dy?r.toJSON():r}}),e}get size(){return[...Ey(this)].length}keys(){return T_(Ey(this),e=>e[0])}values(){return T_(Ey(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return T_(Ey(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??ay(),this._map.forEach((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc===null?this._prelimContent.delete(e):Jv(this.doc,t=>{xy(t,this,e)})}set(e,t){return this.doc===null?this._prelimContent.set(e,t):Jv(this.doc,n=>{Sy(n,this,e,t)}),t}get(e){return Cy(this,e)}has(e){return Ty(this,e)}clear(){this.doc===null?this._prelimContent.clear():Jv(this.doc,e=>{this.forEach(function(t,n,r){xy(e,r,n)})})}_write(e){e.writeTypeRef(Bae)}};const gae=e=>new Oy,ky=(e,t)=>e===t||typeof e==`object`&&typeof t==`object`&&e&&t&&Ug(e,t);var Ay=class{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){switch(this.right===null&&sg(),this.right.content.constructor){case $y:this.right.deleted||Py(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right}};const jy=(e,t,n)=>{for(;t.right!==null&&n>0;){switch(t.right.content.constructor){case $y:t.right.deleted||Py(t.currentAttributes,t.right.content);break;default:t.right.deleted||(n<t.right.length&&Lv(e,bv(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);break}t.left=t.right,t.right=t.right.right}return t},My=(e,t,n,r)=>{let i=new Map,a=r?cy(t,n):null;return a?jy(e,new Ay(a.p.left,a.p,a.index,i),n-a.index):jy(e,new Ay(null,t._start,0,i),n)},Ny=(e,t,n,r)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===$y&&ky(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();let i=e.doc,a=i.clientID;r.forEach((r,o)=>{let s=n.left,c=n.right,l=new sb(bv(a,Mv(i.store,a)),s,s&&s.lastId,c,c&&c.id,t,null,new $y(o,r));l.integrate(e,0),n.right=l,n.forward()})},Py=(e,t)=>{let{key:n,value:r}=t;r===null?e.delete(n):e.set(n,r)},Fy=(e,t)=>{for(;e.right!==null&&(e.right.deleted||e.right.content.constructor===$y&&ky(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Iy=(e,t,n,r)=>{let i=e.doc,a=i.clientID,o=new Map;for(let s in r){let c=r[s],l=n.currentAttributes.get(s)??null;if(!ky(l,c)){o.set(s,l);let{left:r,right:u}=n;n.right=new sb(bv(a,Mv(i.store,a)),r,r&&r.lastId,u,u&&u.id,t,null,new $y(s,c)),n.right.integrate(e,0),n.forward()}}return o},Ly=(e,t,n,r,i)=>{n.currentAttributes.forEach((e,t)=>{i[t]===void 0&&(i[t]=null)});let a=e.doc,o=a.clientID;Fy(n,i);let s=Iy(e,t,n,i),c=r.constructor===String?new tb(r):r instanceof dy?new nb(r):new Qy(r),{left:l,right:u,index:d}=n;t._searchMarker&&ly(t._searchMarker,n.index,c.getLength()),u=new sb(bv(o,Mv(a.store,o)),l,l&&l.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Ny(e,t,n,s)},Ry=(e,t,n,r,i)=>{let a=e.doc,o=a.clientID;Fy(n,i);let s=Iy(e,t,n,i);iterationLoop:for(;n.right!==null&&(r>0||s.size>0&&(n.right.deleted||n.right.content.constructor===$y));){if(!n.right.deleted)switch(n.right.content.constructor){case $y:{let{key:t,value:a}=n.right.content,o=i[t];if(o!==void 0){if(ky(o,a))s.delete(t);else{if(r===0)break iterationLoop;s.set(t,a)}n.right.delete(e)}else n.currentAttributes.set(t,a);break}default:r<n.right.length&&Lv(e,bv(n.right.id.client,n.right.id.clock+r)),r-=n.right.length;break}n.forward()}if(r>0){let i=``;for(;r>0;r--)i+=`
6
6
  `;n.right=new sb(bv(o,Mv(a.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new tb(i)),n.right.integrate(e,0),n.forward()}Ny(e,t,n,s)},zy=(e,t,n,r,i)=>{let a=t,o=Sh();for(;a&&(!a.countable||a.deleted);){if(!a.deleted&&a.content.constructor===$y){let e=a.content;o.set(e.key,e)}a=a.right}let s=0,c=!1;for(;t!==a;){if(n===t&&(c=!0),!t.deleted){let n=t.content;switch(n.constructor){case $y:{let{key:a,value:l}=n,u=r.get(a)??null;(o.get(a)!==n||u===l)&&(t.delete(e),s++,!c&&(i.get(a)??null)===l&&u!==l&&(u===null?i.delete(a):i.set(a,u))),!c&&!t.deleted&&Py(i,n);break}}}t=t.right}return s},_ae=(e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;let n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===$y){let r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}},vae=e=>{let t=0;return Jv(e.doc,n=>{let r=e._start,i=e._start,a=Sh(),o=Ch(a);for(;i;){if(i.deleted===!1)switch(i.content.constructor){case $y:Py(o,i.content);break;default:t+=zy(n,r,i,a,o),a=Ch(o),r=i;break}i=i.right}}),t},yae=e=>{let t=new Set,n=e.doc;for(let[r,i]of e.afterState.entries()){let a=e.beforeState.get(r)||0;i!==a&&Bv(e,n.store.clients.get(r),a,i,e=>{!e.deleted&&e.content.constructor===$y&&e.constructor!==qy&&t.add(e.parent)})}Jv(n,n=>{O_(e,e.deleteSet,e=>{if(e instanceof qy||!e.parent._hasFormatting||t.has(e.parent))return;let r=e.parent;e.content.constructor===$y?t.add(r):_ae(n,e)});for(let e of t)vae(e)})},By=(e,t,n)=>{let r=n,i=Ch(t.currentAttributes),a=t.right;for(;n>0&&t.right!==null;){if(t.right.deleted===!1)switch(t.right.content.constructor){case nb:case Qy:case tb:n<t.right.length&&Lv(e,bv(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e);break}t.forward()}a&&zy(e,a,t.right,i,t.currentAttributes);let o=(t.left||t.right).parent;return o._searchMarker&&ly(o._searchMarker,t.index,-r+n),t};var bae=class extends iy{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach(e=>{e===null?this.childListChanged=!0:this.keysChanged.add(e)})}get changes(){if(this._changes===null){let e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(this._delta===null){let e=this.target.doc,t=[];Jv(e,e=>{let n=new Map,r=new Map,i=this.target._start,a=null,o={},s=``,c=0,l=0,u=()=>{if(a!==null){let e=null;switch(a){case`delete`:l>0&&(e={delete:l}),l=0;break;case`insert`:(typeof s==`object`||s.length>0)&&(e={insert:s},n.size>0&&(e.attributes={},n.forEach((t,n)=>{t!==null&&(e.attributes[n]=t)}))),s=``;break;case`retain`:c>0&&(e={retain:c},Bg(o)||(e.attributes=Ig({},o))),c=0;break}e&&t.push(e),a=null}};for(;i!==null;){switch(i.content.constructor){case nb:case Qy:this.adds(i)?this.deletes(i)||(u(),a=`insert`,s=i.content.getContent()[0],u()):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=1):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=1);break;case tb:this.adds(i)?this.deletes(i)||(a!==`insert`&&(u(),a=`insert`),s+=i.content.str):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=i.length):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=i.length);break;case $y:{let{key:t,value:s}=i.content;if(this.adds(i))this.deletes(i)||(ky(n.get(t)??null,s)?s!==null&&i.delete(e):(a===`retain`&&u(),ky(s,r.get(t)??null)?delete o[t]:o[t]=s));else if(this.deletes(i)){r.set(t,s);let e=n.get(t)??null;ky(e,s)||(a===`retain`&&u(),o[t]=e)}else if(!i.deleted){r.set(t,s);let n=o[t];n!==void 0&&(ky(n,s)?n!==null&&i.delete(e):(a===`retain`&&u(),s===null?delete o[t]:o[t]=s))}i.deleted||(a===`insert`&&u(),Py(n,i.content));break}}i=i.right}for(u();t.length>0;){let e=t[t.length-1];if(e.retain!==void 0&&e.attributes===void 0)t.pop();else break}}),this._delta=t}return this._delta}},Vy=class e extends dy{constructor(e){super(),this._pending=e===void 0?[]:[()=>this.insert(0,e)],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??ay(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){console.error(e)}this._pending=null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}_callObserver(e,t){super._callObserver(e,t);let n=new bae(this,e,t);uy(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??ay();let e=``,t=this._start;for(;t!==null;)!t.deleted&&t.countable&&t.content.constructor===tb&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){this.doc===null?this._pending.push(()=>this.applyDelta(e)):Jv(this.doc,n=>{let r=new Ay(null,this._start,0,new Map);for(let i=0;i<e.length;i++){let a=e[i];if(a.insert!==void 0){let o=!t&&typeof a.insert==`string`&&i===e.length-1&&r.right===null&&a.insert.slice(-1)===`
7
7
  `?a.insert.slice(0,-1):a.insert;(typeof o!=`string`||o.length>0)&&Ly(n,this,r,o,a.attributes||{})}else a.retain===void 0?a.delete!==void 0&&By(n,r,a.delete):Ry(n,this,r,a.retain,a.attributes||{})}})}toDelta(e,t,n){this.doc??ay();let r=[],i=new Map,a=this.doc,o=``,s=this._start;function c(){if(o.length>0){let e={},t=!1;i.forEach((n,r)=>{t=!0,e[r]=n});let n={insert:o};t&&(n.attributes=e),r.push(n),o=``}}let l=()=>{for(;s!==null;){if(Ev(s,e)||t!==void 0&&Ev(s,t))switch(s.content.constructor){case tb:{let r=i.get(`ychange`);e!==void 0&&!Ev(s,e)?(r===void 0||r.user!==s.id.client||r.type!==`removed`)&&(c(),i.set(`ychange`,n?n(`removed`,s.id):{type:`removed`})):t!==void 0&&!Ev(s,t)?(r===void 0||r.user!==s.id.client||r.type!==`added`)&&(c(),i.set(`ychange`,n?n(`added`,s.id):{type:`added`})):r!==void 0&&(c(),i.delete(`ychange`)),o+=s.content.str;break}case nb:case Qy:{c();let e={insert:s.content.getContent()[0]};if(i.size>0){let t={};e.attributes=t,i.forEach((e,n)=>{t[n]=e})}r.push(e);break}case $y:Ev(s,e)&&(c(),Py(i,s.content));break}s=s.right}c()};return e||t?Jv(a,n=>{e&&Dv(n,e),t&&Dv(n,t),l()},`cleanup`):l(),r}insert(e,t,n){if(t.length<=0)return;let r=this.doc;r===null?this._pending.push(()=>this.insert(e,t,n)):Jv(r,r=>{let i=My(r,this,e,!n);n||(n={},i.currentAttributes.forEach((e,t)=>{n[t]=e})),Ly(r,this,i,t,n)})}insertEmbed(e,t,n){let r=this.doc;r===null?this._pending.push(()=>this.insertEmbed(e,t,n||{})):Jv(r,r=>{let i=My(r,this,e,!n);Ly(r,this,i,t,n||{})})}delete(e,t){if(t===0)return;let n=this.doc;n===null?this._pending.push(()=>this.delete(e,t)):Jv(n,n=>{By(n,My(n,this,e,!0),t)})}format(e,t,n){if(t===0)return;let r=this.doc;r===null?this._pending.push(()=>this.format(e,t,n)):Jv(r,r=>{let i=My(r,this,e,!1);i.right!==null&&Ry(r,this,i,t,n)})}removeAttribute(e){this.doc===null?this._pending.push(()=>this.removeAttribute(e)):Jv(this.doc,t=>{xy(t,this,e)})}setAttribute(e,t){this.doc===null?this._pending.push(()=>this.setAttribute(e,t)):Jv(this.doc,n=>{Sy(n,this,e,t)})}getAttribute(e){return Cy(this,e)}getAttributes(){return wy(this)}_write(e){e.writeTypeRef(Vae)}};const xae=e=>new Vy;var Hy=class{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??ay()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(t)))do if(t=e.content.type,!e.deleted&&(t.constructor===Wy||t.constructor===Uy)&&t._start!==null)e=t._start;else for(;e!==null;){let t=e.next;if(t!==null){e=t;break}else e=e.parent===this._root?null:e.parent._item}while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}},Uy=class e extends dy{constructor(){super(),this._prelimContent=[]}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof dy?e.clone():e)),t}get length(){return this.doc??ay(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new Hy(this,e)}querySelector(e){e=e.toUpperCase();let t=new Hy(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),Dh(new Hy(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){uy(this,e,new wae(this,t,e))}toString(){return hy(this,e=>e.toString()).join(``)}toJSON(){return this.toString()}toDOM(e=document,t={},n){let r=e.createDocumentFragment();return n!==void 0&&n._createAssociation(r,this),my(this,i=>{r.insertBefore(i.toDOM(e,t,n),null)}),r}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):Jv(this.doc,n=>{yy(n,this,e,t)})}insertAfter(e,t){if(this.doc!==null)Jv(this.doc,n=>{let r=e&&e instanceof dy?e._item:e;_y(n,this,r,t)});else{let n=this._prelimContent,r=e===null?0:n.findIndex(t=>t===e)+1;if(r===0&&e!==null)throw ag(`Reference item not found`);n.splice(r,0,...t)}}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):Jv(this.doc,n=>{by(n,this,e,t)})}toArray(){return py(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return gy(this,e)}slice(e=0,t=this.length){return fy(this,e,t)}forEach(e){my(this,e)}_write(e){e.writeTypeRef(Uae)}};const Sae=e=>new Uy;var Wy=class e extends Uy{constructor(e=`UNDEFINED`){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((e,t)=>{this.setAttribute(t,e)}),this._prelimAttrs=null}_copy(){return new e(this.nodeName)}clone(){let t=new e(this.nodeName);return Rg(this.getAttributes(),(e,n)=>{t.setAttribute(n,e)}),t.insert(0,this.toArray().map(e=>e instanceof dy?e.clone():e)),t}toString(){let e=this.getAttributes(),t=[],n=[];for(let t in e)n.push(t);n.sort();let r=n.length;for(let i=0;i<r;i++){let r=n[i];t.push(r+`="`+e[r]+`"`)}let i=this.nodeName.toLocaleLowerCase();return`<${i}${t.length>0?` `+t.join(` `):``}>${super.toString()}</${i}>`}removeAttribute(e){this.doc===null?this._prelimAttrs.delete(e):Jv(this.doc,t=>{xy(t,this,e)})}setAttribute(e,t){this.doc===null?this._prelimAttrs.set(e,t):Jv(this.doc,n=>{Sy(n,this,e,t)})}getAttribute(e){return Cy(this,e)}hasAttribute(e){return Ty(this,e)}getAttributes(e){return e?fae(this,e):wy(this)}toDOM(e=document,t={},n){let r=e.createElement(this.nodeName),i=this.getAttributes();for(let e in i){let t=i[e];typeof t==`string`&&r.setAttribute(e,t)}return my(this,i=>{r.appendChild(i.toDOM(e,t,n))}),n!==void 0&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Hae),e.writeKey(this.nodeName)}};const Cae=e=>new Wy(e.readKey());var wae=class extends iy{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{e===null?this.childListChanged=!0:this.attributesChanged.add(e)})}},Tae=class e extends Oy{constructor(e){super(),this.hookName=e}_copy(){return new e(this.hookName)}clone(){let t=new e(this.hookName);return this.forEach((e,n)=>{t.set(n,e)}),t}toDOM(e=document,t={},n){let r=t[this.hookName],i;return i=r===void 0?document.createElement(this.hookName):r.createDom(this),i.setAttribute(`data-yjs-hook`,this.hookName),n!==void 0&&n._createAssociation(i,this),i}_write(e){e.writeTypeRef(Wae),e.writeKey(this.hookName)}};const Eae=e=>new Tae(e.readKey());var Gy=class e extends Vy{get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}toDOM(e=document,t,n){let r=e.createTextNode(this.toString());return n!==void 0&&n._createAssociation(r,this),r}toString(){return this.toDelta().map(e=>{let t=[];for(let n in e.attributes){let r=[];for(let t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort((e,t)=>e.key<t.key?-1:1),t.push({nodeName:n,attrs:r})}t.sort((e,t)=>e.nodeName<t.nodeName?-1:1);let n=``;for(let e=0;e<t.length;e++){let r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){let t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=`>`}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n}).join(``)}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Gae)}};const Dae=e=>new Gy;var Ky=class{constructor(e,t){this.id=e,this.length=t}get deleted(){throw og()}mergeWith(e){return!1}write(e,t,n){throw og()}integrate(e,t){throw og()}},qy=class extends Ky{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor?(this.length+=e.length,!0):!1}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Nv(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}},Jy=class e{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new e(this.content)}splice(e){throw og()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}};const Oae=e=>new Jy(e.readBuf());var Yy=class e{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.len)}splice(t){let n=new e(this.len-t);return this.len=t,n}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){N_(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}};const kae=e=>new Yy(e.readLen()),Xy=(e,t)=>new V_({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});var Zy=class e{constructor(e){e._item&&console.error(`This document was already integrated as a sub-document. You should create a second instance instead with the same guid.`),this.doc=e;let t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),e.meta!==null&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new e(Xy(this.doc.guid,this.opts))}splice(e){throw og()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}};const Aae=e=>new Zy(Xy(e.readString(),e.readAny()));var Qy=class e{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new e(this.embed)}splice(e){throw og()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}};const jae=e=>new Qy(e.readJSON());var $y=class e{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.key,this.value)}splice(e){throw og()}mergeWith(e){return!1}integrate(e,t){let n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}};const Mae=e=>new $y(e.readKey(),e.readJSON());var Nae=class e{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeString(t===void 0?`undefined`:JSON.stringify(t))}}getRef(){return 2}};const Pae=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++){let t=e.readString();t===`undefined`?n.push(void 0):n.push(JSON.parse(t))}return new Nae(n)},Fae=t_(`node_env`)===`development`;var eb=class e{constructor(e){this.arr=e,Fae&&Gg(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeAny(t)}}getRef(){return 8}};const Iae=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new eb(n)};var tb=class e{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split(``)}isCountable(){return!0}copy(){return new e(this.str)}splice(t){let n=new e(this.str.slice(t));this.str=this.str.slice(0,t);let r=this.str.charCodeAt(t-1);return r>=55296&&r<=56319&&(this.str=this.str.slice(0,t-1)+`�`,n.str=`�`+n.str.slice(1)),n}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(t===0?this.str:this.str.slice(t))}getRef(){return 4}};const Lae=e=>new tb(e.readString()),Rae=[mae,gae,xae,Cae,Sae,Eae,Dae],zae=0,Bae=1,Vae=2,Hae=3,Uae=4,Wae=5,Gae=6;var nb=class e{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new e(this.type._copy())}splice(e){throw og()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;t!==null;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;t!==null;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;t!==null;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}};const Kae=e=>new nb(Rae[e.readTypeRef()](e)),qae=(e,t)=>{let n=t,r=0,i;do r>0&&(n=bv(n.client,n.clock+r)),i=Fv(e,n),r=n.clock-i.id.clock,n=i.redone;while(n!==null&&i instanceof sb);return{item:i,diff:r}},rb=(e,t)=>{for(;e!==null&&e.keep!==t;)e.keep=t,e=e.parent._item},ib=(e,t,n)=>{let{client:r,clock:i}=t.id,a=new sb(bv(r,i+n),t,bv(r,i+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&a.markDeleted(),t.keep&&(a.keep=!0),t.redone!==null&&(a.redone=bv(t.redone.client,t.redone.clock+n)),t.right=a,a.right!==null&&(a.right.left=a),e._mergeStructs.push(a),a.parentSub!==null&&a.right===null&&a.parent._map.set(a.parentSub,a),t.length=n,a},ab=(e,t)=>Pie(e,e=>A_(e.deletions,t)),ob=(e,t,n,r,i,a)=>{let o=e.doc,s=o.store,c=o.clientID,l=t.redone;if(l!==null)return Lv(e,l);let u=t.parent._item,d=null,f;if(u!==null&&u.deleted===!0){if(u.redone===null&&(!n.has(u)||ob(e,u,n,r,i,a)===null))return null;for(;u.redone!==null;)u=Lv(e,u.redone)}let p=u===null?t.parent:u.content.type;if(t.parentSub===null){for(d=t.left,f=t;d!==null;){let t=d;for(;t!==null&&t.parent._item!==u;)t=t.redone===null?null:Lv(e,t.redone);if(t!==null&&t.parent._item===u){d=t;break}d=d.left}for(;f!==null;){let t=f;for(;t!==null&&t.parent._item!==u;)t=t.redone===null?null:Lv(e,t.redone);if(t!==null&&t.parent._item===u){f=t;break}f=f.right}}else{if(f=null,t.right&&!i){for(d=t;d!==null&&d.right!==null&&(d.right.redone||A_(r,d.right.id)||ab(a.undoStack,d.right.id)||ab(a.redoStack,d.right.id));)for(d=d.right;d.redone;)d=Lv(e,d.redone);if(d&&d.right!==null)return null}else d=p._map.get(t.parentSub)||null;d!==null&&d.parent._item!==u&&(d=p._map.get(t.parentSub)||null)}let m=bv(c,Mv(s,c)),h=new sb(m,d,d&&d.lastId,f,f&&f.id,p,t.parentSub,t.content.copy());return t.redone=m,rb(h,!0),h.integrate(e,0),h};var sb=class e extends Ky{constructor(e,t,n,r,i,a,o,s){super(e,s.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=i,this.parent=a,this.parentSub=o,this.redone=null,this.content=s,this.info=this.content.isCountable()?2:0}set marker(e){(this.info&8)>0!==e&&(this.info^=8)}get marker(){return(this.info&8)>0}get keep(){return(this.info&1)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(this.info&2)>0}get deleted(){return(this.info&4)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(t,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Mv(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Mv(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===vv&&this.id.client!==this.parent.client&&this.parent.clock>=Mv(n,this.parent.client))return this.parent.client;if(this.origin&&=(this.left=Rv(t,n,this.origin),this.left.lastId),this.rightOrigin&&=(this.right=Lv(t,this.rightOrigin),this.right.id),this.left&&this.left.constructor===qy||this.right&&this.right.constructor===qy)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===e?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===e&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===vv){let e=Fv(n,this.parent);e.constructor===qy?this.parent=null:this.parent=e.content.type}return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=Rv(e,e.doc.store,bv(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let t=this.left,n;if(t!==null)n=t.right;else if(this.parentSub!==null)for(n=this.parent._map.get(this.parentSub)||null;n!==null&&n.left!==null;)n=n.left;else n=this.parent._start;let r=new Set,i=new Set;for(;n!==null&&n!==this.right;){if(i.add(n),r.add(n),yv(this.origin,n.origin)){if(n.id.client<this.id.client)t=n,r.clear();else if(yv(this.rightOrigin,n.rightOrigin))break}else if(n.origin!==null&&i.has(Fv(e.doc.store,n.origin)))r.has(Fv(e.doc.store,n.origin))||(t=n,r.clear());else break;n=n.right}this.left=t}if(this.left!==null){let e=this.left.right;this.right=e,this.left.right=this}else{let e;if(this.parentSub!==null)for(e=this.parent._map.get(this.parentSub)||null;e!==null&&e.left!==null;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}this.right===null?this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(e)):this.right.left=this,this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Nv(e.doc.store,this),this.content.integrate(e,this),Uv(e,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(e)}else new qy(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;e!==null&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;e!==null&&e.deleted;)e=e.left;return e}get lastId(){return this.length===1?this.id:bv(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&yv(e.origin,this.lastId)&&this.right===e&&yv(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&this.redone===null&&e.redone===null&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){let t=this.parent;this.countable&&this.parentSub===null&&(t._length-=this.length),this.markDeleted(),N_(e.deleteSet,this.id.client,this.id.clock,this.length),Uv(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw sg();this.content.gc(e),t?zv(e,this,new qy(this.id,this.length)):this.content=new Yy(this.length)}write(e,t){let n=t>0?bv(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,i=this.parentSub,a=this.content.getRef()&31|(n===null?0:128)|(r===null?0:64)|(i===null?0:32);if(e.writeInfo(a),n!==null&&e.writeLeftID(n),r!==null&&e.writeRightID(r),n===null&&r===null){let t=this.parent;if(t._item!==void 0){let n=t._item;if(n===null){let n=xv(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===vv?(e.writeParentInfo(!1),e.writeLeftID(t)):sg();i!==null&&e.writeString(i)}this.content.write(e,t)}};const cb=(e,t)=>Jae[t&31](e),Jae=[()=>{sg()},kae,Pae,Oae,Lae,jae,Mae,Kae,Iae,Aae,()=>{sg()}];var lb=class extends Ky{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor?(this.length+=e.length,!0):!1}integrate(e,t){sg()}write(e,t){e.writeInfo(10),Gh(e.restEncoder,this.length-t)}getMissing(e,t){return null}};const ub=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:{},db=`__ $YJS$ __`;ub[db]===!0&&console.error(`Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438`),ub[db]=!0;const Yae=/[\uD800-\uDBFF]/,Xae=/[\uDC00-\uDFFF]/,Zae=(e,t)=>{let n=0,r=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n++;for(n>0&&Yae.test(e[n-1])&&n--;r+n<e.length&&r+n<t.length&&e[e.length-r-1]===t[t.length-r-1];)r++;return r>0&&Xae.test(e[e.length-r])&&r--,{index:n,remove:e.length-n-r,insert:t.slice(n,t.length-r)}},Qae=e=>{let t=sd(`sha256`);return t.update(e),t.digest()},$ae=new Zn(`y-sync`);new Zn(`y-undo`),new Zn(`yjs-cursor`);const eoe=e=>{for(let t=6;t<e.length;t++)e[t%6]=e[t%6]^e[t];return e.slice(0,6)},toe=e=>a_(eoe(Qae(s_(e)))),noe=()=>({mapping:new Map,isOMark:new Map}),fb=(e,t)=>t===void 0?!e.deleted:t.sv.has(e.id.client)&&t.sv.get(e.id.client)>e.id.clock&&!A_(t.ds,e.id),roe=(e,t,n,r,i,a)=>{let o=n.mapping.get(e);if(o===void 0){if(e instanceof Wy)return pb(e,t,n,r,i,a);throw og()}return o},pb=(e,t,n,r,i,a)=>{let o=[],s=e=>{if(e instanceof Wy){let s=roe(e,t,n,r,i,a);s!==null&&o.push(s)}else{let s=e._item.right?.content?.type;s instanceof Vy&&!s._item.deleted&&s._item.id.client===s.doc.clientID&&(e.applyDelta([{retain:e.length},...s.toDelta()]),s.doc.transact(e=>{s._item.delete(e)}));let c=ioe(e,t,n,r,i,a);c!==null&&c.forEach(e=>{e!==null&&o.push(e)})}};r===void 0||i===void 0?e.toArray().forEach(s):lae(e,new Cv(i.ds,r.sv)).forEach(s);try{let s=e.getAttributes(r);r!==void 0&&(fb(e._item,r)?fb(e._item,i)||(s.ychange=a?a(`added`,e._item.id):{type:`added`}):s.ychange=a?a(`removed`,e._item.id):{type:`removed`});let c=bb(s),l=Tb(c.marks,t),u=t.node(e.nodeName,c.plain,o,l.length?l:void 0);return n.mapping.set(e,u),u}catch(r){console.warn(`[y-prosemirror] schema.node(`+e.nodeName+`) threw:`,String(r&&r.message||r));let i=globalThis.__okYpsCounters=globalThis.__okYpsCounters||{block:0,inline:0};if(t.nodes[e.nodeName]&&t.nodes[e.nodeName].spec&&t.nodes[e.nodeName].spec.inline)i.inline++;else if(i.block++,t.nodes.rawMdxFallback)try{let i=t.node(`rawMdxFallback`,{reason:String(r&&r.message||r)},[t.text(e.nodeName)]);return n.mapping.set(e,i),i}catch(e){console.warn(`[y-prosemirror] rawMdxFallback substitution also failed:`,String(e&&e.message||e))}return n.mapping.delete(e),null}},ioe=(e,t,n,r,i,a)=>{let o=[],s=e.toDelta(r,i,a);try{for(let e=0;e<s.length;e++){let n=s[e];o.push(t.text(n.insert,Tb(n.attributes,t)))}}catch(e){console.warn(`[y-prosemirror] schema.text() threw:`,String(e&&e.message||e));let t=globalThis.__okYpsCounters=globalThis.__okYpsCounters||{block:0,inline:0};return t.inline++,null}return o},aoe=(e,t)=>{let n=new Gy,r=e.map(e=>({insert:e.text,attributes:Eb(e.marks,t)}));return n.applyDelta(r),t.mapping.set(n,e),n},ooe=(e,t)=>{let n=new Wy(e.type.name);for(let t in e.attrs){let r=e.attrs[t];r!==null&&t!==`ychange`&&n.setAttribute(t,r)}let r=Eb(e.marks||[],t);for(let e in r)n.setAttribute(yb+e,{...r[e]});return n.insert(0,_b(e).map(e=>mb(e,t))),t.mapping.set(n,e),n},mb=(e,t)=>e instanceof Array?aoe(e,t):ooe(e,t),hb=e=>typeof e==`object`&&!!e,gb=(e,t)=>{let n=Object.keys(e).filter(t=>e[t]!==null),r=n.length===Object.keys(t).filter(e=>t[e]!==null).length;for(let i=0;i<n.length&&r;i++){let a=n[i],o=e[a],s=t[a];r=a===`ychange`||o===s||hb(o)&&hb(s)&&gb(o,s)}return r},_b=e=>{let t=e.content.content,n=[];for(let e=0;e<t.length;e++){let r=t[e];if(r.isText){let r=[];for(let n=t[e];e<t.length&&n.isText;n=t[++e])r.push(n);e--,n.push(r)}else n.push(r)}return n},vb=(e,t)=>{let n=e.toDelta();return n.length===t.length&&n.every((e,n)=>e.insert===t[n].text&&Lg(e.attributes||{}).length===t[n].marks.length&&Vg(e.attributes,(e,r)=>{let i=wb(r),a=t[n].marks;return a.find(e=>e.type.name===i)?gb(e,a.find(e=>e.type.name===i)?.attrs):!1}))},yb=`ymark:`,bb=e=>{let t={},n={};for(let r in e)r.startsWith(yb)?n[r.slice(6)]=e[r]:t[r]=e[r];return{plain:t,marks:n}},soe=(e,t)=>{let n=Object.keys(e);return n.length===t.length?n.every(n=>{let r=wb(n),i=t.find(e=>e.type.name===r);return i?gb(e[n],i.attrs):!1}):!1},xb=(e,t)=>{if(e instanceof Wy&&!(t instanceof Array)&&Ob(e,t)){let n=_b(t),r=bb(e.getAttributes());return e._length===n.length&&soe(r.marks,t.marks)&&gb(r.plain,t.attrs)&&e.toArray().every((e,t)=>xb(e,n[t]))}return e instanceof Gy&&t instanceof Array&&vb(e,t)},Sb=(e,t)=>e===t||e instanceof Array&&t instanceof Array&&e.length===t.length&&e.every((e,n)=>t[n]===e),Cb=(e,t,n)=>{let r=e.toArray(),i=_b(t),a=i.length,o=r.length,s=Mh(o,a),c=0,l=0,u=!1;for(;c<s;c++){let e=r[c],t=i[c];if(Sb(n.mapping.get(e),t))u=!0;else if(!xb(e,t))break}for(;c+l<s;l++){let e=r[o-l-1],t=i[a-l-1];if(Sb(n.mapping.get(e),t))u=!0;else if(!xb(e,t))break}return{equalityFactor:c+l,foundMappedChild:u}},coe=e=>{let t=``,n=e._start,r={};for(;n!==null;)n.deleted||(n.countable&&n.content instanceof tb?t+=n.content.str:n.content instanceof $y&&(r[n.content.key]=null)),n=n.right;return{str:t,nAttrs:r}},loe=(e,t,n)=>{n.mapping.set(e,t);let{nAttrs:r,str:i}=coe(e),a=t.map(e=>({insert:e.text,attributes:Object.assign({},r,Eb(e.marks,n))})),{insert:o,remove:s,index:c}=Zae(i,a.map(e=>e.insert).join(``));e.delete(c,s),e.insert(c,o),e.applyDelta(a.map(e=>({retain:e.insert.length,attributes:e.attributes})))},uoe=/(.*)(--[a-zA-Z0-9+/=]{8})$/,wb=e=>uoe.exec(e)?.[1]??e,Tb=(e,t)=>{let n=[];for(let r in e)n.push(t.mark(wb(r),e[r]));return n},Eb=(e,t)=>{let n={};return e.forEach(e=>{if(e.type.name!==`ychange`){let r=wh(t.isOMark,e.type,()=>!e.type.excludes(e.type));n[r?`${e.type.name}--${toe(e.toJSON())}`:e.type.name]=e.attrs}}),n},Db=(e,t,n,r)=>{if(t instanceof Wy&&t.nodeName!==n.type.name)throw Error(`node name mismatch!`);if(r.mapping.set(t,n),t instanceof Wy){let e=t.getAttributes(),i=n.attrs;for(let n in i)i[n]===null?t.removeAttribute(n):e[n]!==i[n]&&n!==`ychange`&&t.setAttribute(n,i[n]);for(let n in e)i[n]===void 0&&!n.startsWith(yb)&&t.removeAttribute(n);let a=Eb(n.marks||[],r);for(let n in a){let r=e[yb+n];(r===void 0||!gb(r,a[n]))&&t.setAttribute(yb+n,{...a[n]})}for(let n in e)n.startsWith(yb)&&a[n.slice(6)]===void 0&&t.removeAttribute(n)}let i=_b(n),a=i.length,o=t.toArray(),s=o.length,c=Mh(a,s),l=0,u=0;for(;l<c;l++){let e=o[l],t=i[l];if(!Sb(r.mapping.get(e),t))if(xb(e,t))r.mapping.set(e,t);else break}for(;u+l+1<c;u++){let e=o[s-u-1],t=i[a-u-1];if(!Sb(r.mapping.get(e),t))if(xb(e,t))r.mapping.set(e,t);else break}e.transact(()=>{for(;s-l-u>0&&a-l-u>0;){let n=o[l],c=i[l],d=o[s-u-1],f=i[a-u-1];if(n instanceof Gy&&c instanceof Array)vb(n,c)||loe(n,c,r),l+=1;else{let i=n instanceof Wy&&Ob(n,c),a=d instanceof Wy&&Ob(d,f);if(i&&a){let e=Cb(n,c,r),t=Cb(d,f,r);e.foundMappedChild&&!t.foundMappedChild?a=!1:!e.foundMappedChild&&t.foundMappedChild||e.equalityFactor<t.equalityFactor?i=!1:a=!1}i?(Db(e,n,c,r),l+=1):a?(Db(e,d,f,r),u+=1):(r.mapping.delete(t.get(l)),t.delete(l,1),t.insert(l,[mb(c,r)]),l+=1)}}let n=s-l-u;if(s===1&&a===0&&o[0]instanceof Gy?(r.mapping.delete(o[0]),o[0].delete(0,o[0].length)):n>0&&(t.slice(l,l+n).forEach(e=>r.mapping.delete(e)),t.delete(l,n)),l+u<a){let e=[];for(let t=l;t<a-u;t++)e.push(mb(i[t],r));t.insert(l,e)}},$ae)},Ob=(e,t)=>!(t instanceof Array)&&e.nodeName===t.type.name,doe=(e,t)=>{let n=e.toArray().map(e=>pb(e,t,noe())).filter(e=>e!==null);return Ge.fromArray(n)},kb=(e,t)=>t.topNodeType.create(null,doe(e,t));function Ab(e,t,n,r){let{body:i}=Ur(t);return r!==void 0&&r.rawContent===t?r.parsedJson:Ss(`md.parseWithFallback`,{attributes:{"body.bytes":i.length,"doc.name":e.guid}},()=>ys.parseWithFallback(i,jb(n)))}function jb(e){return e?{resolveEmbed:e.resolveEmbed,resolveSize:e.resolveSize,sourcePath:e.sourcePath}:void 0}function Mb(e){return ys.serialize(kb(e,vs).toJSON())}function Nb(e,t,n,r,i,a){let o=Mb(r),s=ys.serialize(n),{body:c}=Ur(e.baselineFullMd),l=ys.serialize(ys.parseWithFallback(c,a));e.report({pendingBody:t,baselineBody:l,ytextDerivedBody:s,rebuiltBody:o,restorePayload:Kn(i,t).md})}function Pb(e,t,n,r,i,a){Ss(`bridge.composeAndWriteRawBody`,{attributes:{surface:n,"body.bytes":t.length,"doc.name":e.guid}},()=>{let n=e.getXmlFragment(`default`),o=e.getText(`source`),s=o.toString(),c=Ab(e,t,r,i),l=vs.nodeFromJSON(c),u=a?Mb(n):void 0;if(s!==t&&ln(o,s,t),Db(e,n,l,{mapping:new Map,isOMark:new Map}),a&&u!==void 0){let{frontmatter:e}=Ur(a.baselineFullMd);Nb(a,u,c,n,e,jb(r))}})}function Fb(e,t,n,r,i){Ss(`bridge.replaceRawBody`,{attributes:{"body.bytes":t.length,"doc.name":e.guid}},()=>{let a=e.getXmlFragment(`default`),o=e.getText(`source`),s=Ab(e,t,n,r),c=vs.nodeFromJSON(s),l=i?Mb(a):void 0,u=o.toString();if(u!==t&&(o.delete(0,u.length),o.insert(0,t)),Db(e,a,c,{mapping:new Map,isOMark:new Map}),i&&l!==void 0){let{frontmatter:e}=Ur(i.baselineFullMd);Nb(i,l,s,a,e,jb(n))}})}function foe(e,t,n){let r=e.getXmlFragment(`default`),{frontmatter:i,body:a}=Ur(e.getText(`source`).toString()),o=jb(t),s=ys.parseWithFallback(a,o),c=vs.nodeFromJSON(s),l=n?ys.serialize(kb(r,vs).toJSON()):void 0;if(Db(e,r,c,{mapping:new Map,isOMark:new Map}),n&&l!==void 0){let e=ys.serialize(kb(r,vs).toJSON()),t=ys.serialize(s),{body:a}=Ur(n.baselineFullMd),c=ys.serialize(ys.parseWithFallback(a,o));n.report({pendingBody:l,baselineBody:c,ytextDerivedBody:t,rebuiltBody:e,restorePayload:Kn(i,l).md})}}const poe=N(`loss-capture`),Ib=`detector-trip`,Lb=`backstop-trip`,Rb=`checkpoint-write`;b({ts:j(),schemaVersion:j(),seq:j(),event:h(),docName:h(),writerId:h().nullable(),site:h().optional(),direction:h().optional(),lostLen:j().optional(),digest:h().optional(),checkpointSha:h().optional(),which:h().optional(),witnessAvailable:s().optional(),connections:j().optional()});const zb=[`.ok`,`local`,`loss-capture`];function moe(e){return F(e,...zb,`loss-current.jsonl`)}function hoe(e){return F(e,...zb,`loss-prev.jsonl`)}var goe=class{#e;#t;#n=new Map;constructor(e){this.#e=new sc({currentPath:moe(e.projectDir),previousPath:hoe(e.projectDir),maxBytes:e.maxBytes}),this.#t=e.now??Date.now}record(e){let t=(this.#n.get(e.docName)??0)+1;this.#n.set(e.docName,t);let n={ts:this.#t(),schemaVersion:1,seq:t,event:e.event,docName:e.docName,writerId:e.writerId,...e.site===void 0?{}:{site:e.site},...e.direction===void 0?{}:{direction:e.direction},...e.lostLen===void 0?{}:{lostLen:e.lostLen},...e.digest===void 0?{}:{digest:e.digest},...e.checkpointSha===void 0?{}:{checkpointSha:e.checkpointSha},...e.which===void 0?{}:{which:e.which},...e.witnessAvailable===void 0?{}:{witnessAvailable:e.witnessAvailable},...e.connections===void 0?{}:{connections:e.connections}};return this.#e.append(`${JSON.stringify(n)}\n`).catch(t=>{poe.warn({event:e.event,err:t},`[loss-capture] failed to write loss-class event`)})}async drain(){await this.#e.drain()}};const Bb=N(`checkpoint-chain`);async function Vb(e,t){let n;try{n=await e.raw(`for-each-ref`,`--format=%(objectname)`,`refs/checkpoints/${t}/`)}catch(e){throw Bb.warn({branch:t,err:e},`[checkpoint-chain] for-each-ref failed; anchors are unknown`),e}let r=n.trim().split(`
@@ -25,7 +25,7 @@ import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{$t as r,At as i,Bt
25
25
  `))n.trim()!==``&&(e.stderrTail.push(n.slice(0,500)),e.stderrTail.length>40&&e.stderrTail.shift(),e.authStderr!==null&&(e.authStderr.push(n.slice(0,500)),e.authStderr.length>6&&e.authStderr.shift(),e.info.signInOutput=[...e.authStderr],this.broadcastInfo(e)))}),o.on(`error`,t=>{this.emitStatus(e,`error`,`agent failed to start: ${t.message}`,{reason:`connect`,agentMessage:t.message})}),o.on(`exit`,(t,n)=>{if(e.child=null,a.disposeAll().catch(t=>{this.opts.log.warn({err:t,threadId:e.info.threadId},`[acp-threads] terminal cleanup on agent exit failed`)}),e.closed||e.info.archived===!0)return;if(e.info.status===`error`){this.failPendingPermissions(e);return}let r=e.stderrTail.slice(-10).join(`
26
26
  `);this.opts.log.warn({threadId:e.info.threadId,agentId:e.info.agent.id,code:t,signal:n,machineDetail:KE(e)},`[acp-threads] agent exited unexpectedly`),this.emitStatus(e,`exited`,`agent exited (${n??t??`unknown`})${r?`\n${r}`:``}`),this.failPendingPermissions(e)}),o.stdin===null||o.stdout===null)throw new ME(`spawn-failed`,`agent process has no stdio`);let s=sie(Mte.toWeb(o.stdin),ad.toWeb(o.stdout)),c=kie({name:`open-knowledge`}).onRequest(Zm.client.session.requestPermission,t=>this.handlePermissionRequest(e,t.params.toolCall,t.params.options)).onRequest(Zm.client.fs.readTextFile,e=>this.handleFsRead(e.params.path,e.params.line??null,e.params.limit??null)).onRequest(Zm.client.fs.writeTextFile,async t=>(await this.handleFsWrite(e,t.params.path,t.params.content),{})).onRequest(Zm.client.terminal.create,t=>(e.info.lastActivityAt=Date.now(),a.create(t.params))).onRequest(Zm.client.terminal.output,e=>a.output(e.params.terminalId)).onRequest(Zm.client.terminal.waitForExit,e=>a.waitForExit(e.params.terminalId)).onRequest(Zm.client.terminal.kill,async e=>(await a.kill(e.params.terminalId),{})).onRequest(Zm.client.terminal.release,async e=>(await a.release(e.params.terminalId),{})).onNotification(Zm.client.session.update,t=>this.handleSessionUpdate(e,t.params)).connect(s);e.conn=c,c.closed.then(()=>{!e.closed&&e.info.archived!==!0&&e.info.status!==`exited`&&e.info.status!==`error`&&this.emitStatus(e,`exited`,`agent connection closed`)},t=>{this.opts.log.warn({err:t,threadId:e.info.threadId},`[acp-threads] agent connection closed with error`),!e.closed&&e.info.archived!==!0&&e.info.status!==`exited`&&e.info.status!==`error`&&this.emitStatus(e,`error`,`agent connection failed: ${t instanceof Error?t.message:String(t)}`)});let l;try{l=await c.agent.request(Zm.agent.initialize,{protocolVersion:1,clientInfo:{name:`open-knowledge`,title:`Open Knowledge`,version:xc},clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0,session:{configOptions:{boolean:{}}}}})}catch(t){throw this.opts.log.warn({err:t,threadId:e.info.threadId},`[acp-threads] initialize failed`),new ME(`spawn-failed`,`initialize failed: ${UE(t)}`)}return e.closed?null:(e.lastInit=l,e.info.promptCapabilities=l.agentCapabilities?.promptCapabilities??{},this.emitInfo(e),{conn:c,init:l,launch:n})}async ensureLaunchable(e,t){let n;try{await TT(t),n=await this.withLoginShellPathIfEligible(t)}catch(r){if(!(r instanceof oT)||r.code!==`command-not-found`)throw r;let i=await this.retryWithLoginShellPath(t);if(i===null)return this.fallbackToManagedRuntime(e,t,r);n=i}return e.closed?null:this.ensureInterpreterRuns(e,n)}async ensureInterpreterRuns(e,t){if(t.kind!==`npx`&&t.kind!==`uvx`)return t;let n=await this.probeInterpreterOnce(t);if(e.closed)return null;if(n===null)return t;this.opts.log.warn({threadId:e.info.threadId,agentId:e.info.agent.id,cmd:t.cmd,kind:t.kind,detail:n},`[acp-threads] interpreter is installed but failed to run — offering the managed runtime`);let r=new oT(`command-not-found`,DT(t,n));return this.fallbackToManagedRuntime(e,t,r,r)}async fallbackToManagedRuntime(e,t,n,r){if(t.kind!==`npx`&&t.kind!==`uvx`)throw n;let i=YT(t.kind);if(!iE(i))throw n;let a=await this.provideManagedRuntime(e,i,r===void 0?`missing`:`broken`).catch(e=>{throw r!==void 0&&e instanceof oT&&e.code===`command-not-found`?r:e});if(a===null)return null;let o=mT(t,a);await TT(o);let s=await this.probeInterpreterOnce(o);return s===null?o:this.repairManagedRuntime(e,t,i,s)}async repairManagedRuntime(e,t,n,r){let i={threadId:e.info.threadId,agentId:e.info.agent.id,runtime:n,detail:r};if(this.opts.log.warn(i,`[acp-threads] OK's own managed runtime failed to run — replacing it`),!await dE(n,this.opts.log,this.opts.runtimeInstall?.root))throw new oT(`install-failed`,kT(t,r));let a=await this.provideManagedRuntime(e,n,`damaged`).catch(e=>{throw e instanceof oT&&e.code===`command-not-found`?new oT(`command-not-found`,AT(t)):e});if(a===null)return null;let o=mT(t,a);await TT(o);let s=await this.probeInterpreterOnce(o);if(s===null)return o;throw this.opts.log.error({...i,detail:s},`[acp-threads] a freshly downloaded managed runtime failed to run`),new oT(`install-failed`,OT(o,s))}async probeInterpreterOnce(e){let t=JSON.stringify([e.cmd,MT(e.env)??``]);if(this.healthyInterpreters.has(t))return null;let n=await jT(e,void 0,this.opts.log);return n===null&&this.healthyInterpreters.add(t),n}async retryWithLoginShellPath(e){let t=await this.withLoginShellPathIfEligible(e);if(MT(t.env)===MT(e.env))return null;try{await TT(t)}catch(t){if(!(t instanceof oT))throw t;return this.opts.log.debug({cmd:e.cmd,kind:e.kind},`[acp] login-shell PATH did not resolve the command either`),null}return this.opts.log.info({cmd:e.cmd,kind:e.kind},`[acp] command resolved via the login-shell PATH; skipping the managed-runtime offer`),t}async withLoginShellPathIfEligible(e){if(e.pathFromOverlay||NT(e.cmd))return e;let t=await this.resolveLoginShellPath().catch(()=>null);return t===null?e:hT(e,t)}async provideManagedRuntime(e,t,n){let r=this.opts.runtimeInstall?.root;await uE(t,this.opts.log,r);let i=await cE(t,r).catch(()=>null);if(i!==null)return i;let a=await this.requestRuntimeConsent(e,t,n);if(a===`closed`||e.closed)return null;if(a!==`granted`)throw new oT(`command-not-found`,VE(t));try{let n=await this.downloadRuntime(e,t);return e.closed?null:n}catch(e){let n=XT(t).displayName;throw new oT(`install-failed`,`couldn't install ${n}: ${e instanceof Error?e.message:String(e)}`)}}requestRuntimeConsent(e,t,n){let r=crypto.randomUUID(),i=XT(t);return this.appendEvent(e,{kind:`runtime_consent_request`,requestId:r,runtime:t,displayName:i.displayName,provides:i.provides,version:i.version,approxSizeMB:i.approxSizeMB,sourceHost:i.sourceHost,agentName:e.info.agent.name,reason:n,ts:Date.now()}),new Promise(t=>{let n=setTimeout(()=>{e.pendingRuntimeConsent.delete(r),this.appendEvent(e,{kind:`runtime_consent_resolved`,requestId:r,decision:`timeout`,ts:Date.now()}),t(`timeout`)},3e5);n.unref?.(),e.pendingRuntimeConsent.set(r,{resolve:t,timer:n})})}respondRuntimeConsent(e,t,n){let r=this.mustGet(e),i=r.pendingRuntimeConsent.get(t);if(i===void 0)return;r.pendingRuntimeConsent.delete(t),clearTimeout(i.timer);let a=n.kind===`granted`?`granted`:`declined`;this.appendEvent(r,{kind:`runtime_consent_resolved`,requestId:t,decision:a,ts:Date.now()}),i.resolve(a)}async downloadRuntime(e,t){this.emitStatus(e,`installing`);let n=0;return fE(t,this.opts.log,{root:this.opts.runtimeInstall?.root,fetchImpl:this.opts.runtimeInstall?.fetchImpl,onProgress:r=>{let i=Date.now();i-n<400||(n=i,!e.closed&&this.appendEvent(e,{kind:`runtime_install_progress`,runtime:t,phase:`downloading`,receivedBytes:r.receivedBytes,totalBytes:r.totalBytes??void 0,ts:i}))}})}async buildMcpServers(e,t){if(await this.harnessAlreadyHasOkMcp(e)!==null)return[];let n=[],r=this.opts.getServerUrl?.();if(r!==void 0&&t.agentCapabilities?.mcpCapabilities?.http===!0)n.push({type:`http`,name:`open-knowledge`,url:`${r}/mcp`,headers:[{name:vw,value:`1`}]});else{let e=this.opts.getMcpStdioCommand?.();e!=null&&n.push({name:`open-knowledge`,command:e.command,args:[...e.args],env:[{name:Qi,value:`1`}]})}return n}async harnessAlreadyHasOkMcp(e){let t=this.opts.probeHarnessManagedMcpEntry;if(t===void 0||e.agentRef.source!==`registry`)return null;let n=mne[e.agentRef.id];if(n===void 0)return null;let r;try{r=await t(n,e.cwd)}catch(t){return this.opts.log.warn({err:t,threadId:e.info.threadId,editorId:n},`[acp-threads] harness MCP-config probe failed — injecting OK MCP`),null}return r!==null&&this.opts.log.info({threadId:e.info.threadId,agentId:e.agentRef.id,editorId:r.editorId,scope:r.scope,configPath:r.configPath},`[acp-threads] skipping OK MCP injection — the agent's harness already loads OK's managed entry`),r}async startThread(e,t,n){let r;try{r=await this.connectAgent(e,n)}catch(t){let n=t instanceof oT||t instanceof ME?t.message:String(t);this.emitStatus(e,`error`,n,{reason:`connect`,agentMessage:n,machineDetail:KE(e)}),await this.teardownFailedAgent(e);return}if(r===null)return;let{conn:i,init:a,launch:o}=r;await this.openSession(e,i,a,t.settings)===!0&&(this.opts.log.info({threadId:e.info.threadId,agentId:e.info.agent.id,launchKind:o.kind,msToReady:Date.now()-e.info.createdAt},`[acp-threads] agent ready`),(t.prompt!==void 0&&t.prompt!==``||t.attachments!==void 0&&t.attachments.length>0)&&this.sendPrompt(e.info.threadId,t.prompt??``,t.attachments))}async openSession(e,t,n,r,i=`park`){e.info.availableCommands=null;let a=await this.buildMcpServers(e,n);try{let n=await t.agent.request(Zm.agent.session.new,{cwd:e.cwd,mcpServers:a});e.sessionId=n.sessionId,e.envNotePending=!0,this.persistence.queueMetaWrite(e.info.threadId,this.buildMeta(e)),n.modes!==void 0&&n.modes!==null&&(e.info.modes=n.modes,this.emitInfo(e)),n.configOptions!==void 0&&n.configOptions!==null&&(e.info.configOptions=n.configOptions,this.emitInfo(e))}catch(t){if(HE(t)){if(i===`report`)return`auth-required`;this.emitStatus(e,`auth_required`,`sign in required: ${UE(t)}`,{reason:`auth-required`,agentMessage:UE(t),machineDetail:JE(t,e),authMethods:YE(n.authMethods)})}else this.emitStatus(e,`error`,`session setup failed: ${UE(t)}`,{reason:`session-setup`,agentMessage:UE(t),machineDetail:qE(WE(t),KE(e))}),await this.teardownFailedAgent(e);return!1}return e.closed||r?.config!==void 0&&(await this.applyInitialConfig(e,t,r.config),e.closed)||r?.modeId!==void 0&&(await this.applyInitialMode(e,t,r.modeId),e.closed)?!1:(this.emitStatus(e,`ready`),!0)}async resumeThread(e,t,n){if(this.destroyed)throw new ME(`capacity`,`server is shutting down`);let r=this.mustGet(e);if(r.info.archived!==!0)throw new ME(`not-ready`,`thread is not archived`);if(r.resumeInFlight)throw new ME(`not-ready`,`a resume is already in progress`);if(this.liveThreadCount()>=this.maxThreads)throw new ME(`capacity`,`maximum of ${this.maxThreads} concurrent agent threads`);r.resumeInFlight=!0;let i=Date.now();try{await this.ensureLogResolved(r);let a=r.sessionId,{info:o,custom:s}=await this.resolveAgentInfo(r.agentRef);if(this.destroyed)throw new ME(`capacity`,`server is shutting down`);if(this.liveThreadCount()>=this.maxThreads)throw new ME(`capacity`,`maximum of ${this.maxThreads} concurrent agent threads`);r.info.agent=o,r.info.archived=!1,r.info.availableCommands=null,r.stderrTail=[],r.midTurnOnDisk&&(r.midTurnOnDisk=!1,this.appendEvent(r,{kind:`turn_ended`,stopReason:`cancelled`,ts:Date.now()}));let c=t!==void 0&&t!==``||n!==void 0&&n.length>0;c&&(this.echoUserMessage(r,t??``,n),this.flushBroadcast(r)),this.emitStatus(r,`installing`);try{if(a===null)throw new ME(`resume-unsupported`,`this thread never completed an agent session`);let o=await this.connectAgent(r,s);if(o===null)throw new ME(`not-ready`,`thread closed during resume`);let{conn:l,init:u}=o,d=await this.buildMcpServers(r,u),f=u.agentCapabilities,p=f?.sessionCapabilities?.resume!=null,m;if(p)m=await l.agent.request(Zm.agent.session.resume,{sessionId:a,cwd:r.cwd,mcpServers:d});else if(f?.loadSession===!0){r.suppressUpdates=!0,r.lastSuppressedAt=Date.now();try{m=await l.agent.request(Zm.agent.session.load,{sessionId:a,cwd:r.cwd,mcpServers:d}),await this.awaitReplayQuiescence(r)}finally{r.suppressUpdates=!1}}else throw new ME(`resume-unsupported`,`${r.info.agent.name} doesn't support resuming previous sessions`);r.sessionId=a;let h=m.modes;h!=null&&(r.info.modes=h);let g=m.configOptions;return g!=null&&(r.info.configOptions=g),this.emitStatus(r,`ready`),this.opts.log.info({threadId:e,agentId:r.info.agent.id,method:p?`session/resume`:`session/load`,msToResumed:Date.now()-i},`[acp-threads] thread resumed`),c&&this.dispatchPrompt(r,t??``,n,{echo:!1}),{...r.info}}catch(t){throw await this.abortResume(r),t instanceof ME?t:t instanceof oT?new ME(t.code===`install-failed`?`install-failed`:`spawn-failed`,t.message):(this.opts.log.warn({err:t,threadId:e},`[acp-threads] resume rejected by the agent`),new ME(`resume-unsupported`,`couldn't resume the previous session: ${UE(t)}`))}}finally{r.resumeInFlight=!1}}async retryThread(e){if(this.destroyed)throw new ME(`capacity`,`server is shutting down`);let t=this.mustGet(e);if(t.info.archived===!0)throw new ME(`not-ready`,`the thread is archived — resume it instead`);if(t.info.status!==`error`&&t.info.status!==`auth_required`&&!t.authInFlight)throw new ME(`not-ready`,`this thread did not fail to start`);if(t.sessionId!==null)throw new ME(`not-ready`,`this thread already has an agent session`);if(t.resumeInFlight)throw new ME(`not-ready`,`a retry is already in progress`);t.resumeInFlight=!0;try{tT(),this.healthyInterpreters.clear();let{info:n,custom:r}=await this.resolveAgentInfo(t.agentRef);await this.teardownFailedAgent(t),t.info.agent=n,t.stderrTail=[],t.cancelRequested=!1,t.turnActive=!1,this.emitStatus(t,`installing`);try{await this.startThread(t,{agent:t.agentRef,settings:t.launchSettings},r)}catch(e){let n=e instanceof Error?e.message:String(e);throw this.emitStatus(t,`error`,n,{reason:`connect`,agentMessage:n}),new ME(`spawn-failed`,n)}if(t.closed)throw new ME(`not-ready`,`thread closed during retry`);let i=this.getInfo(e)?.status;if(i===`ready`||i===`running`)return this.opts.log.info({threadId:e,agentId:t.info.agent.id},`[acp-threads] thread retry succeeded`),{...t.info};throw new ME(`spawn-failed`,GE(t)??`the agent failed to start`)}finally{t.resumeInFlight=!1}}async authenticateThread(e,t){if(this.destroyed)throw new ME(`capacity`,`server is shutting down`);let n=this.mustGet(e);if(n.info.archived===!0)throw new ME(`not-ready`,`the thread is archived — resume it instead`);if(n.info.status!==`auth_required`)throw new ME(`not-ready`,`this thread is not waiting for a sign-in`);let r=n.conn,i=n.lastInit;if(r===null||i===null||n.child===null)throw new ME(`not-ready`,`${n.info.agent.name} is no longer running — use Retry to start it again`);if(n.resumeInFlight)throw new ME(`not-ready`,`the thread is starting over — wait for the retry`);if(n.authInFlight)throw new ME(`not-ready`,`a sign-in is already in progress`);n.authInFlight=!0,n.authStderr=[],n.info.signInOutput=void 0;try{this.emitStatus(n,`authenticating`);try{await this.requestAuthenticate(r,t)}catch(e){if(n.conn!==r)throw FE();let t=e instanceof NE?`the sign-in didn't complete in time — try again`:UE(e);throw this.emitStatus(n,`auth_required`,`sign-in failed: ${t}`,{reason:`auth-required`,agentMessage:t,machineDetail:JE(e,n),authMethods:YE(i.authMethods)}),new ME(`not-ready`,t)}if(n.closed)throw new ME(`not-ready`,`thread closed during sign-in`);if(n.conn!==r)throw FE();let a=await this.openSession(n,r,i,n.launchSettings,`report`);if(a===`auth-required`){this.opts.log.info({threadId:e,agentId:n.info.agent.id,methodId:t},`[acp-threads] signed in but session still refused — relaunching the agent`),this.closeSignInCapture(n);try{return await this.retryThread(e)}catch(t){throw this.getInfo(e)?.status===`authenticating`&&this.emitStatus(n,`auth_required`,`sign in required: ${UE(t)}`,{reason:`auth-required`,agentMessage:UE(t),machineDetail:JE(t,n),authMethods:YE(i.authMethods)}),t}}if(a!==!0)throw new ME(`not-ready`,GE(n)??`${n.info.agent.name} still couldn't start a conversation`);return this.opts.log.info({threadId:e,agentId:n.info.agent.id,methodId:t},`[acp-threads] thread signed in`),{...n.info}}finally{n.authInFlight=!1,this.closeSignInCapture(n)}}async requestAuthenticate(e,t){let n,r=new Promise((e,t)=>{n=setTimeout(()=>t(new NE),this.authenticateTimeoutMs),n.unref?.()});try{await Promise.race([e.agent.request(Zm.agent.authenticate,{methodId:t}),r])}finally{n!==void 0&&clearTimeout(n)}}async abortResume(e){e.closed=!0,e.suppressUpdates=!1,this.failPendingPermissions(e),this.failPendingRuntimeConsent(e);try{e.conn?.close()}catch{}let t=e.child;t!==null&&await UT(t,{graceMs:jE}),e.child=null,e.conn=null,e.lastInit=null,e.closed=!1,e.turnActive=!1,this.opts.agentPresenceBroadcaster?.clearPresence(_h(e.agentSessionId)),e.info.archived=!0,this.emitStatus(e,`exited`,`resume failed`),this.flushBroadcast(e),this.persistence.queueMetaWrite(e.info.threadId,this.buildMeta(e)),await this.persistence.whenIdle(e.info.threadId),e.baseSeq=e.info.lastSeq+1,e.events=[]}async awaitReplayQuiescence(e){let t=Date.now()+3e3;for(;Date.now()-e.lastSuppressedAt<300&&Date.now()<t;)await new Promise(e=>setTimeout(e,50))}sendPrompt(e,t,n){let r=this.mustGet(e);if(r.info.archived===!0)throw new ME(`not-ready`,`the thread is archived — resume it first`);if(r.resumeInFlight)throw new ME(`not-ready`,`the thread is still resuming`);if(r.authInFlight)throw new ME(`not-ready`,`the thread is still signing in`);if(r.sessionId===null||r.conn===null)throw new ME(`not-ready`,`thread has no live agent session`);if(r.turnActive){let e=r.info.queue??[];if(e.length>=20)throw new ME(`not-ready`,`20 messages are already waiting — let the agent catch up`);let i={id:crypto.randomUUID(),content:t,ts:Date.now()};n!==void 0&&n.length>0&&(i.attachments=n),r.info.queue=[...e,i],r.info.lastActivityAt=Date.now(),this.emitInfo(r);return}this.dispatchPrompt(r,t,n,{echo:!0})}steerPrompt(e,t,n){let r=this.mustGet(e);if(r.info.archived===!0)throw new ME(`not-ready`,`the thread is archived — resume it first`);if(r.resumeInFlight)throw new ME(`not-ready`,`the thread is still resuming`);if(r.authInFlight)throw new ME(`not-ready`,`the thread is still signing in`);if(r.sessionId===null||r.conn===null)throw new ME(`not-ready`,`thread has no live agent session`);if(!r.turnActive){this.dispatchPrompt(r,t,n,{echo:!0});return}this.clearSteer(r);let i={content:t,ts:Date.now()};n!==void 0&&n.length>0&&(i.attachments=n),r.info.steer=i,r.info.lastActivityAt=Date.now(),this.emitInfo(r);let a=setTimeout(()=>this.demoteStalledSteer(r),this.steerStallMs);a.unref?.(),r.steerStallTimer=a,this.cancelTurn(r,{clearQueue:!1})}demoteStalledSteer(e){e.steerStallTimer=null;let t=e.info.steer;if(t===void 0||e.closed||!e.turnActive)return;e.info.steer=void 0;let n={id:crypto.randomUUID(),content:t.content,ts:t.ts};t.attachments!==void 0&&t.attachments.length>0&&(n.attachments=t.attachments),e.info.queue=[n,...e.info.queue??[]],this.emitInfo(e)}clearSteer(e){e.steerStallTimer!==null&&(clearTimeout(e.steerStallTimer),e.steerStallTimer=null),e.info.steer=void 0}takeSteer(e){let t=e.info.steer;return t===void 0?null:(this.clearSteer(e),t)}editQueued(e,t,n){let r=this.mustGet(e),i=r.info.queue??[];return i.some(e=>e.id===t)?(r.info.queue=i.map(e=>e.id===t?{...e,content:n,held:!1}:e),this.emitInfo(r),this.drainIfIdle(r),!0):!1}holdQueued(e,t,n){let r=this.mustGet(e),i=r.info.queue??[];return i.some(e=>e.id===t)?(r.info.queue=i.map(e=>e.id===t?{...e,held:n}:e),this.emitInfo(r),n||this.drainIfIdle(r),!0):!1}removeQueued(e,t){let n=this.mustGet(e),r=n.info.queue??[],i=r.filter(e=>e.id!==t);return i.length===r.length?!1:(n.info.queue=i.length>0?i:void 0,this.emitInfo(n),!0)}drainIfIdle(e){if(e.turnActive||e.closed||e.resumeInFlight||e.info.archived===!0||e.sessionId===null||e.conn===null)return;let t=this.takeNextQueued(e);t!==null&&this.dispatchPrompt(e,t.content,t.attachments,{echo:!0})}takeNextQueued(e){let t=e.info.queue;if(t===void 0||t.length===0)return null;let n=t.findIndex(e=>e.held!==!0);if(n===-1)return null;let r=t[n],i=[...t.slice(0,n),...t.slice(n+1)];return e.info.queue=i.length>0?i:void 0,r??null}echoUserMessage(e,t,n){if(e.hadUserMessage=!0,e.info.title===e.info.agent.name&&t.trim()!==``){let n=e.titleHint!==void 0&&e.titleHint.trim()!==``?e.titleHint:t;e.titleHint=void 0,e.info.title=DE(n),this.appendEvent(e,{kind:`title_changed`,title:e.info.title,ts:Date.now()}),this.emitInfo(e)}let r={kind:`user_message`,content:t,ts:Date.now()};n!==void 0&&n.length>0&&(r.attachments=n),this.appendEvent(e,r)}async renameThread(e,t){let n=this.mustGet(e);if(n.closed)throw new ME(`not-ready`,`the thread is closing`);let r=EE(t);r===``||r===n.info.title||(await this.ensureLogResolved(n),n.info.title=r,n.info.lastActivityAt=Date.now(),this.appendEvent(n,{kind:`title_changed`,title:r,ts:Date.now()}),this.flushBroadcast(n),this.emitInfo(n),await this.persistence.whenIdle(n.info.threadId))}dispatchPrompt(e,t,n,r){if(e.sessionId===null||e.conn===null)throw new ME(`not-ready`,`thread has no live agent session`);r.echo&&this.echoUserMessage(e,t,n);let i=t;e.envNotePending&&!t.startsWith(`/`)&&(e.envNotePending=!1,i=`Note on your environment: you are running inside the OpenKnowledge app, connected over ACP (Agent Client Protocol) — not inside your own terminal app. Your host CLI's terminal UI is not present, so its built-in slash commands (such as /tasks or /bashes) and keyboard shortcuts (such as Ctrl+O) do not exist here; never recommend them. The only slash commands available to the user are the ones you advertise over ACP.\n\n${t}`),e.turnActive=!0,e.cancelRequested=!1,this.appendEvent(e,{kind:`turn_started`,ts:Date.now()}),this.emitStatus(e,`running`);let a=e.sessionId;ww(i,n,e.info.promptCapabilities,e=>this.confinePath(e).then(({abs:e,rel:t})=>({abs:e,rel:t}))).then(t=>{if(t.dropped.length>0){this.opts.log.warn({threadId:e.info.threadId,dropped:t.dropped.map(e=>({kind:e.part.kind,reason:e.reason}))},`[acp-threads] dropped attachment parts before session/prompt`);let n=Date.now();for(let r of t.dropped){let t=r.part.kind===`image`||r.part.kind===`blob`?r.part.name:r.part.name||r.part.path;this.appendEvent(e,{kind:`agent_stderr`,line:`[attachment dropped] ${t}: ${r.reason}`,ts:n})}}if(e.sessionId===null||e.conn===null)throw new ME(`not-ready`,`thread has no live agent session`);if(e.cancelRequested)throw new PE;return e.conn.agent.request(Zm.agent.session.prompt,{sessionId:a,prompt:[...t.blocks]})}).then(t=>{if(e.turnActive=!1,!e.closed){if(this.appendEvent(e,{kind:`turn_ended`,stopReason:t.stopReason,ts:Date.now()}),e.sessionId!==null&&e.conn!==null){let t=this.takeSteer(e);if(t!==null){this.dispatchPrompt(e,t.content,t.attachments,{echo:!0});return}let n=this.takeNextQueued(e);if(n!==null){this.dispatchPrompt(e,n.content,n.attachments,{echo:!0});return}}this.emitStatus(e,`ready`)}}).catch(t=>{if(e.turnActive=!1,!e.closed){if(this.appendEvent(e,{kind:`turn_ended`,stopReason:`cancelled`,ts:Date.now()}),e.sessionId!==null&&e.conn!==null){let t=this.takeSteer(e);if(t!==null){this.dispatchPrompt(e,t.content,t.attachments,{echo:!0});return}}if(e.cancelRequested){this.emitStatus(e,`ready`),this.drainIfIdle(e);return}if(HE(t)){this.emitStatus(e,`auth_required`,`sign in required: ${UE(t)}`,{reason:`auth-required`,agentMessage:UE(t),machineDetail:JE(t,e),authMethods:YE(e.lastInit?.authMethods)});return}this.emitStatus(e,`error`,`prompt failed: ${UE(t)}`,{reason:`prompt`,agentMessage:UE(t),machineDetail:qE(WE(t),KE(e))})}})}cancel(e){this.cancelTurn(this.mustGet(e),{clearQueue:!0})}cancelTurn(e,t){t.clearQueue&&(e.info.queue!==void 0||e.info.steer!==void 0)&&(e.info.queue=void 0,this.clearSteer(e),this.emitInfo(e)),!(e.conn===null||e.sessionId===null)&&(e.turnActive&&(e.cancelRequested=!0),this.failPendingPermissions(e),this.restoreRunningAfterPermission(e),e.conn.agent.notify(Zm.agent.session.cancel,{sessionId:e.sessionId}).catch(t=>{this.opts.log.debug({err:t,threadId:e.info.threadId},`[acp-threads] cancel notification never reached the agent`)}))}setMode(e,t){let n=this.mustGet(e);if(n.conn===null||n.sessionId===null)throw new ME(`not-ready`,`thread has no live agent session`);n.conn.agent.request(Zm.agent.session.setMode,{sessionId:n.sessionId,modeId:t}).then(()=>{n.info.modes&&(n.info.modes={...n.info.modes,currentModeId:t},this.emitInfo(n))}).catch(t=>{this.opts.log.warn({err:t,threadId:e},`[acp-threads] set_mode failed`)})}setConfigOption(e,t,n){let r=this.mustGet(e);if(r.conn===null||r.sessionId===null)throw new ME(`not-ready`,`thread has no live agent session`);let i=typeof n==`boolean`?{sessionId:r.sessionId,configId:t,type:`boolean`,value:n}:{sessionId:r.sessionId,configId:t,value:n};r.conn.agent.request(Zm.agent.session.setConfigOption,i).then(e=>{r.info.configOptions=e.configOptions,this.emitInfo(r)}).catch(n=>{this.opts.log.warn({err:n,threadId:e,configId:t},`[acp-threads] set_config_option failed`)})}async applyInitialConfig(e,t,n){let r=e.sessionId;if(r===null)return;let i=t=>(e.info.configOptions??[]).find(e=>e.id===t)?.category===`model`,a=Object.keys(n).sort((e,t)=>Number(i(t))-Number(i(e))),o=!1,s=[];for(let i of a){let a=n[i];if(a===void 0)continue;let c=(e.info.configOptions??[]).find(e=>e.id===i);if(c===void 0||c.currentValue===a||!BE(c,a))continue;let l=typeof a==`boolean`?{sessionId:r,configId:i,type:`boolean`,value:a}:{sessionId:r,configId:i,value:a};try{let n=await t.agent.request(Zm.agent.session.setConfigOption,l);e.info.configOptions=n.configOptions,o=!0}catch(t){s.push(i),this.opts.log.warn({err:t,threadId:e.info.threadId,configId:i},`[acp-threads] initial config apply failed`)}if(e.closed)return}s.length>0&&this.opts.log.warn({threadId:e.info.threadId,rejectedConfigIds:s},`[acp-threads] some remembered config options could not be applied to the new session`),o&&this.emitInfo(e)}async applyInitialMode(e,t,n){let r=e.sessionId;if(r===null)return;let i=e.info.modes;if(i!=null&&i.availableModes.some(e=>e.id===n)){if(i.currentModeId===n)return;try{await t.agent.request(Zm.agent.session.setMode,{sessionId:r,modeId:n}),e.info.modes={...i,currentModeId:n},this.emitInfo(e)}catch(t){this.opts.log.warn({err:t,threadId:e.info.threadId,modeId:n,method:`set_mode`},`[acp-threads] initial mode apply failed`)}return}let a=(e.info.configOptions??[]).find(e=>e.category===`mode`&&BE(e,n));if(!(a===void 0||a.currentValue===n))try{let i=await t.agent.request(Zm.agent.session.setConfigOption,{sessionId:r,configId:a.id,value:n});e.info.configOptions=i.configOptions,this.emitInfo(e)}catch(t){this.opts.log.warn({err:t,threadId:e.info.threadId,modeId:n,method:`set_config_option`},`[acp-threads] initial mode apply failed`)}}respondPermission(e,t,n){let r=this.mustGet(e),i=r.pendingPermissions.get(t);i!==void 0&&(r.pendingPermissions.delete(t),clearTimeout(i.timer),n.kind===`selected`?(i.resolve({outcome:{outcome:`selected`,optionId:n.optionId}}),this.appendEvent(r,{kind:`permission_resolved`,requestId:t,optionId:n.optionId,auto:!1,ts:Date.now()})):(i.resolve({outcome:{outcome:`cancelled`}}),this.appendEvent(r,{kind:`permission_resolved`,requestId:t,optionId:null,auto:!1,ts:Date.now()})),this.restoreRunningAfterPermission(r))}restoreRunningAfterPermission(e){e.pendingPermissions.size===0&&e.turnActive&&e.info.status===`awaiting_permission`&&this.emitStatus(e,`running`)}async closeThread(e,t){let n=this.threads.get(e);if(n===void 0||n.info.archived===!0||n.closed)return;n.closed=!0,this.clearSteer(n),this.failPendingPermissions(n),this.failPendingRuntimeConsent(n);try{n.conn?.close()}catch{}let r=n.child;r!==null&&(await UT(r,{graceMs:t?.killGraceMs??AE})||this.opts.log.error({threadId:e,pid:r.pid},`[acp-threads] agent process survived SIGKILL escalation`)),n.child=null,n.conn=null,n.lastInit=null,await n.terminals?.disposeAll(),n.terminals=null,this.opts.agentPresenceBroadcaster?.clearPresence(_h(n.agentSessionId)),await this.opts.sessionManager.closeAllForAgent(n.agentSessionId).catch(t=>{this.opts.log.warn({err:t,threadId:e},`[acp-threads] session cleanup failed`)});let i=n.info.status===`error`||n.info.status===`auth_required`;if(!n.hadUserMessage&&!i){this.threads.delete(e),n.subscribers.clear(),n.flushTimer!==null&&(clearTimeout(n.flushTimer),n.flushTimer=null),await this.persistence.whenIdle(e),await this.persistence.delete(e),this.opts.log.info({threadId:e},`[acp-threads] empty thread discarded on close`);return}n.turnActive&&(n.turnActive=!1,this.appendEvent(n,{kind:`turn_ended`,stopReason:`cancelled`,ts:Date.now()})),n.info.archived=!0,this.emitStatus(n,`exited`,`thread closed`),this.flushBroadcast(n),this.persistence.queueMetaWrite(e,this.buildMeta(n)),await this.persistence.whenIdle(e),n.baseSeq=n.info.lastSeq+1,n.events=[],n.pendingBroadcast=[],n.closed=!1,this.opts.log.info({threadId:e},`[acp-threads] thread archived`)}async deleteThread(e){let t=this.mustGet(e);if(t.info.archived!==!0)throw new ME(`not-ready`,`close the thread before deleting it`);if(t.resumeInFlight)throw new ME(`not-ready`,`a resume is in progress`);this.threads.delete(e),t.subscribers.clear(),t.flushTimer!==null&&(clearTimeout(t.flushTimer),t.flushTimer=null),await this.persistence.whenIdle(e),await this.persistence.delete(e),this.opts.log.info({threadId:e},`[acp-threads] thread deleted`)}async destroy(){this.destroyed=!0,clearInterval(this.reapTimer),await Promise.allSettled([...this.threads.keys()].map(e=>this.closeThread(e,{killGraceMs:jE})))}async handlePermissionRequest(e,t,n){e.info.lastActivityAt=Date.now();let r=this.opts.permissions.decide(e.info.agent.id,t,n);if(r.auto!==null){let t=crypto.randomUUID();return this.appendEvent(e,{kind:`permission_resolved`,requestId:t,optionId:r.auto.optionId,auto:!0,ts:Date.now()}),{outcome:{outcome:`selected`,optionId:r.auto.optionId}}}let i=crypto.randomUUID();return this.appendEvent(e,{kind:`permission_request`,requestId:i,toolCall:t,options:n,ts:Date.now()}),e.turnActive&&e.info.status===`running`&&this.emitStatus(e,`awaiting_permission`),new Promise(r=>{let a=setTimeout(()=>{e.pendingPermissions.delete(i),this.appendEvent(e,{kind:`permission_resolved`,requestId:i,optionId:null,auto:!0,ts:Date.now()}),this.restoreRunningAfterPermission(e),r({outcome:{outcome:`cancelled`}})},6e5);a.unref?.(),e.pendingPermissions.set(i,{timer:a,resolve:i=>{if(i.outcome.outcome===`selected`){let r=n.find(e=>i.outcome.outcome===`selected`&&e.optionId===i.outcome.optionId);r!==void 0&&this.opts.permissions.recordChoice(e.info.agent.id,t,r)}r(i)}})})}handleSessionUpdate(e,t){e.info.lastActivityAt=Date.now();let n=t.update;if(n.sessionUpdate===`current_mode_update`&&e.info.modes&&(e.info.modes={...e.info.modes,currentModeId:n.currentModeId},this.emitInfo(e)),n.sessionUpdate===`config_option_update`&&(e.info.configOptions=n.configOptions,this.emitInfo(e)),n.sessionUpdate===`available_commands_update`&&(e.info.availableCommands=n.availableCommands,this.emitInfo(e)),e.suppressUpdates){e.lastSuppressedAt=Date.now();return}this.appendEvent(e,{kind:`session_update`,update:kw(n),ts:Date.now()})}async handleFsRead(e,t,n){let r=await this.confinePath(e),i;if(i=r.docName===null?await td(r.abs,`utf8`):this.opts.getLoadedDocText?.(r.docName)??await td(r.abs,`utf8`),t!==null||n!==null){let e=i.split(`
27
27
  `),r=Math.max((t??1)-1,0),a=n===null?e.length:r+n;i=e.slice(r,a).join(`
28
- `)}return{content:i}}async handleFsWrite(e,t,n){e.info.lastActivityAt=Date.now();let r=await this.confinePath(t);if(r.docName!==null){let t=await this.opts.sessionManager.getSession(r.docName,e.agentSessionId,{displayName:e.info.agent.name,colorSeed:e.agentSessionId,clientName:e.info.agent.id}),i=this.opts.resolveEmbed===void 0?void 0:{resolveEmbed:this.opts.resolveEmbed,sourcePath:r.rel};t.dc.document.transact(()=>{let r=iw(t.dc.document);rw(t.dc.document,n,`replace`,i,void 0,tw(t));let a=na(r,iw(t.dc.document))??void 0;t.dc.document.getMap(`agent-flash`).set(e.agentSessionId,{agentId:e.agentSessionId,timestamp:Date.now(),type:`insert`,description:`Added (${e.info.agent.name}): ${n.slice(0,50)}`,...a===void 0?{}:{changedBlocks:a}})},t.origin),this.setPresence(e,r.docName)}else{if(this.opts.isIgnoredPath(r.rel))throw Error(`path is excluded from the project content scope: ${t}`);let{tracedMkdir:e,tracedWriteFile:i}=await import(`./fs-traced-Bmqe7SqT.mjs`);await e(P(r.abs),{recursive:!0}),await i(r.abs,n)}}confinePath(e){return RE(this.opts.contentDir,e,this.opts.isExcludedPath)}mustGet(e){let t=this.threads.get(e);if(t===void 0)throw new ME(`unknown-thread`,`no thread '${e}'`);return t}appendEvent(e,t){let n=e.pendingBroadcast;if(n.length>0&&Pw(n[n.length-1],t))return;let r=e.baseSeq+e.events.length;if(e.events.push(t),e.info.lastSeq=r,e.events.length>kE){let t=e.events.length-kE;e.events.splice(0,t),e.baseSeq+=t}e.pendingBroadcast.length===0&&(e.pendingBroadcastFromSeq=r),e.pendingBroadcast.push(t),e.flushTimer===null&&(e.flushTimer=setTimeout(()=>this.flushBroadcast(e),25),e.flushTimer.unref?.())}flushBroadcast(e){if(e.flushTimer!==null&&(clearTimeout(e.flushTimer),e.flushTimer=null),e.pendingBroadcast.length===0)return;let t={op:`events`,threadId:e.info.threadId,fromSeq:e.pendingBroadcastFromSeq,events:e.pendingBroadcast};this.persistence.appendEvents(e.info.threadId,e.pendingBroadcast),e.pendingBroadcast=[];for(let n of e.subscribers)try{n(t)}catch{}}emitStatus(e,t,n,r){(t===`exited`||t===`error`)&&(e.info.queue=void 0,this.clearSteer(e)),e.info.status=t,e.info.lastActivityAt=Date.now(),(t===`error`||t===`auth_required`)&&this.opts.log.warn({threadId:e.info.threadId,agentId:e.info.agent.id,status:t,detail:n,reason:r?.reason,machineDetail:r?.machineDetail},`[acp-threads] thread failure status`),this.appendEvent(e,{kind:`status`,status:t,detail:n,...r===void 0?{}:{failure:r},ts:Date.now()}),this.emitInfo(e)}async teardownFailedAgent(e){let t=e.child,n=e.conn,r=e.terminals;e.child=null,e.conn=null,e.lastInit=null,e.terminals=null;try{n?.close()}catch{}await r?.disposeAll().catch(t=>{this.opts.log.warn({err:t,threadId:e.info.threadId},`[acp-threads] terminal cleanup on failed-agent teardown failed`)}),t!==null&&await UT(t,{graceMs:AE})}emitInfo(e){this.persistence.queueMetaWrite(e.info.threadId,this.buildMeta(e)),this.broadcastInfo(e)}broadcastInfo(e){for(let t of e.subscribers)try{t({op:`info`,info:{...e.info}})}catch{}}closeSignInCapture(e){e.authStderr=null,e.info.signInOutput!==void 0&&(e.info.signInOutput=void 0,this.broadcastInfo(e))}buildMeta(e){let{queue:t,steer:n,signInOutput:r,...i}=e.info;return{version:1,info:i,sessionId:e.sessionId,cwd:e.cwd,agentRef:e.agentRef,docName:e.docName}}failPendingPermissions(e){for(let[t,n]of e.pendingPermissions)clearTimeout(n.timer),n.resolve({outcome:{outcome:`cancelled`}}),this.appendEvent(e,{kind:`permission_resolved`,requestId:t,optionId:null,auto:!0,ts:Date.now()});e.pendingPermissions.clear()}failPendingRuntimeConsent(e){for(let t of e.pendingRuntimeConsent.values())clearTimeout(t.timer),t.resolve(`closed`);e.pendingRuntimeConsent.clear()}setPresence(e,t){let n=this.opts.agentPresenceBroadcaster;if(n!=null)try{let r=Io(e.info.agent.id),i=Da[r]??Bi(e.agentSessionId);n.setPresence(_h(e.agentSessionId),{displayName:e.info.agent.name,icon:r,color:i,currentDoc:t,mode:`writing`,ts:Date.now()})}catch(e){this.opts.log.warn({err:e},`[acp-threads] presence update failed`)}}reapIdleThreads(){let e=Date.now(),t=e-this.idleReapMs;for(let n of this.threads.values()){if(n.info.archived===!0)continue;if(n.subscribers.size===0&&!n.turnActive&&n.info.lastActivityAt<t){this.opts.log.info({threadId:n.info.threadId},`[acp-threads] reaping idle thread`),this.closeThread(n.info.threadId).catch(e=>{this.opts.log.error({err:e,threadId:n.info.threadId},`[acp-threads] reap failed`)});continue}if(!n.turnActive||n.unwatchedSince===null)continue;let r=e-n.unwatchedSince;r>=this.unwatchedTurnKillMs?(this.opts.log.warn({threadId:n.info.threadId,unwatchedFor:r},`[acp-threads] force-closing unwatched turn that ignored cancel`),this.closeThread(n.info.threadId).catch(e=>{this.opts.log.error({err:e,threadId:n.info.threadId},`[acp-threads] force-close failed`)})):r>=this.unwatchedTurnCancelMs&&!n.unwatchedCancelSent&&(n.unwatchedCancelSent=!0,this.opts.log.warn({threadId:n.info.threadId,unwatchedFor:r},`[acp-threads] cancelling turn running with zero subscribers`),this.cancel(n.info.threadId))}}};async function RE(e,t,n){let r=await rd(e),i=_u(gu(t)?t:L(r,t)),a=i,o=``;for(;;)try{let e=await rd(a),i=o===``?e:F(e,o),s=I(r,i);if(s===``||s.startsWith(`..`)||gu(s))throw Error(`path escapes the content directory: ${t}`);let c=/\.(md|mdx)$/.exec(s),l=null;if(c!==null){let e=s.slice(0,-c[0].length).split(R).join(`/`),t=s.split(R).join(`/`);!Xx(e)&&!Zx(e)&&!n(t)&&(l=e)}return{abs:i,rel:s.split(R).join(`/`),docName:l}}catch(e){if(e.code!==`ENOENT`)throw e;let t=P(a);if(t===a)throw e;o=o===``?i.slice(t.length+1):F(a.slice(t.length+1),o),a=t}}function zE(e){let t=e.info.status===`error`?`error`:`exited`;return{info:{...e.info,status:t,archived:!0,queue:void 0,steer:void 0,signInOutput:void 0},docName:e.docName,agentRef:e.agentRef,cwd:e.cwd,child:null,conn:null,lastInit:null,sessionId:e.sessionId,agentSessionId:`acp-${e.info.threadId}`,events:[],baseSeq:e.info.lastSeq+1,logResolved:!1,logResolution:null,midTurnOnDisk:!1,resumeInFlight:!1,authInFlight:!1,suppressUpdates:!1,lastSuppressedAt:0,subscribers:new Set,pendingPermissions:new Map,pendingRuntimeConsent:new Map,stderrTail:[],authStderr:null,terminals:null,turnActive:!1,cancelRequested:!1,steerStallTimer:null,unwatchedSince:null,unwatchedCancelSent:!1,pendingBroadcast:[],pendingBroadcastFromSeq:0,flushTimer:null,closed:!1,hadUserMessage:!0,envNotePending:!1}}function BE(e,t){if(typeof t==`boolean`)return e.type===`boolean`;if(e.type!==`select`)return!1;for(let n of e.options)if(`value`in n){if(n.value===t)return!0}else if(n.options.some(e=>e.value===t))return!0;return!1}function VE(e){let t=XT(e),n=e===`node`?`https://nodejs.org`:`https://docs.astral.sh/uv/getting-started/installation/`;return`This agent needs \`${t.provides}\`, which isn't installed. OK can download a private copy of ${t.displayName} for you, or install ${t.displayName} yourself (${n}) and it'll be used automatically.`}function HE(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.code===-32e3||typeof t.data==`object`&&t.data!==null&&t.data.errorKind===`authentication_failed`}function UE(e){return e instanceof Error?e.message:String(e)}function WE(e){if(typeof e!=`object`||!e)return;let t=e.data;if(t!=null)try{return JSON.stringify(t).slice(0,300)}catch{return}}function GE(e){for(let t=e.events.length-1;t>=0;--t){let n=e.events[t];if(!(n===void 0||n.kind!==`status`)&&!(n.status!==`error`&&n.status!==`auth_required`))return n.detail??n.failure?.agentMessage}}function KE(e){let t=e.stderrTail.join(`
28
+ `)}return{content:i}}async handleFsWrite(e,t,n){e.info.lastActivityAt=Date.now();let r=await this.confinePath(t);if(r.docName!==null){let t=await this.opts.sessionManager.getSession(r.docName,e.agentSessionId,{displayName:e.info.agent.name,colorSeed:e.agentSessionId,clientName:e.info.agent.id}),i=this.opts.resolveEmbed===void 0?void 0:{resolveEmbed:this.opts.resolveEmbed,sourcePath:r.rel};t.dc.document.transact(()=>{let r=iw(t.dc.document);rw(t.dc.document,n,`replace`,i,void 0,tw(t));let a=na(r,iw(t.dc.document))??void 0;t.dc.document.getMap(`agent-flash`).set(e.agentSessionId,{agentId:e.agentSessionId,timestamp:Date.now(),type:`insert`,description:`Added (${e.info.agent.name}): ${n.slice(0,50)}`,...a===void 0?{}:{changedBlocks:a}})},t.origin),this.setPresence(e,r.docName)}else{if(this.opts.isIgnoredPath(r.rel))throw Error(`path is excluded from the project content scope: ${t}`);let{tracedMkdir:e,tracedWriteFile:i}=await import(`./fs-traced-C1nHpvFb.mjs`);await e(P(r.abs),{recursive:!0}),await i(r.abs,n)}}confinePath(e){return RE(this.opts.contentDir,e,this.opts.isExcludedPath)}mustGet(e){let t=this.threads.get(e);if(t===void 0)throw new ME(`unknown-thread`,`no thread '${e}'`);return t}appendEvent(e,t){let n=e.pendingBroadcast;if(n.length>0&&Pw(n[n.length-1],t))return;let r=e.baseSeq+e.events.length;if(e.events.push(t),e.info.lastSeq=r,e.events.length>kE){let t=e.events.length-kE;e.events.splice(0,t),e.baseSeq+=t}e.pendingBroadcast.length===0&&(e.pendingBroadcastFromSeq=r),e.pendingBroadcast.push(t),e.flushTimer===null&&(e.flushTimer=setTimeout(()=>this.flushBroadcast(e),25),e.flushTimer.unref?.())}flushBroadcast(e){if(e.flushTimer!==null&&(clearTimeout(e.flushTimer),e.flushTimer=null),e.pendingBroadcast.length===0)return;let t={op:`events`,threadId:e.info.threadId,fromSeq:e.pendingBroadcastFromSeq,events:e.pendingBroadcast};this.persistence.appendEvents(e.info.threadId,e.pendingBroadcast),e.pendingBroadcast=[];for(let n of e.subscribers)try{n(t)}catch{}}emitStatus(e,t,n,r){(t===`exited`||t===`error`)&&(e.info.queue=void 0,this.clearSteer(e)),e.info.status=t,e.info.lastActivityAt=Date.now(),(t===`error`||t===`auth_required`)&&this.opts.log.warn({threadId:e.info.threadId,agentId:e.info.agent.id,status:t,detail:n,reason:r?.reason,machineDetail:r?.machineDetail},`[acp-threads] thread failure status`),this.appendEvent(e,{kind:`status`,status:t,detail:n,...r===void 0?{}:{failure:r},ts:Date.now()}),this.emitInfo(e)}async teardownFailedAgent(e){let t=e.child,n=e.conn,r=e.terminals;e.child=null,e.conn=null,e.lastInit=null,e.terminals=null;try{n?.close()}catch{}await r?.disposeAll().catch(t=>{this.opts.log.warn({err:t,threadId:e.info.threadId},`[acp-threads] terminal cleanup on failed-agent teardown failed`)}),t!==null&&await UT(t,{graceMs:AE})}emitInfo(e){this.persistence.queueMetaWrite(e.info.threadId,this.buildMeta(e)),this.broadcastInfo(e)}broadcastInfo(e){for(let t of e.subscribers)try{t({op:`info`,info:{...e.info}})}catch{}}closeSignInCapture(e){e.authStderr=null,e.info.signInOutput!==void 0&&(e.info.signInOutput=void 0,this.broadcastInfo(e))}buildMeta(e){let{queue:t,steer:n,signInOutput:r,...i}=e.info;return{version:1,info:i,sessionId:e.sessionId,cwd:e.cwd,agentRef:e.agentRef,docName:e.docName}}failPendingPermissions(e){for(let[t,n]of e.pendingPermissions)clearTimeout(n.timer),n.resolve({outcome:{outcome:`cancelled`}}),this.appendEvent(e,{kind:`permission_resolved`,requestId:t,optionId:null,auto:!0,ts:Date.now()});e.pendingPermissions.clear()}failPendingRuntimeConsent(e){for(let t of e.pendingRuntimeConsent.values())clearTimeout(t.timer),t.resolve(`closed`);e.pendingRuntimeConsent.clear()}setPresence(e,t){let n=this.opts.agentPresenceBroadcaster;if(n!=null)try{let r=Io(e.info.agent.id),i=Da[r]??Bi(e.agentSessionId);n.setPresence(_h(e.agentSessionId),{displayName:e.info.agent.name,icon:r,color:i,currentDoc:t,mode:`writing`,ts:Date.now()})}catch(e){this.opts.log.warn({err:e},`[acp-threads] presence update failed`)}}reapIdleThreads(){let e=Date.now(),t=e-this.idleReapMs;for(let n of this.threads.values()){if(n.info.archived===!0)continue;if(n.subscribers.size===0&&!n.turnActive&&n.info.lastActivityAt<t){this.opts.log.info({threadId:n.info.threadId},`[acp-threads] reaping idle thread`),this.closeThread(n.info.threadId).catch(e=>{this.opts.log.error({err:e,threadId:n.info.threadId},`[acp-threads] reap failed`)});continue}if(!n.turnActive||n.unwatchedSince===null)continue;let r=e-n.unwatchedSince;r>=this.unwatchedTurnKillMs?(this.opts.log.warn({threadId:n.info.threadId,unwatchedFor:r},`[acp-threads] force-closing unwatched turn that ignored cancel`),this.closeThread(n.info.threadId).catch(e=>{this.opts.log.error({err:e,threadId:n.info.threadId},`[acp-threads] force-close failed`)})):r>=this.unwatchedTurnCancelMs&&!n.unwatchedCancelSent&&(n.unwatchedCancelSent=!0,this.opts.log.warn({threadId:n.info.threadId,unwatchedFor:r},`[acp-threads] cancelling turn running with zero subscribers`),this.cancel(n.info.threadId))}}};async function RE(e,t,n){let r=await rd(e),i=_u(gu(t)?t:L(r,t)),a=i,o=``;for(;;)try{let e=await rd(a),i=o===``?e:F(e,o),s=I(r,i);if(s===``||s.startsWith(`..`)||gu(s))throw Error(`path escapes the content directory: ${t}`);let c=/\.(md|mdx)$/.exec(s),l=null;if(c!==null){let e=s.slice(0,-c[0].length).split(R).join(`/`),t=s.split(R).join(`/`);!Xx(e)&&!Zx(e)&&!n(t)&&(l=e)}return{abs:i,rel:s.split(R).join(`/`),docName:l}}catch(e){if(e.code!==`ENOENT`)throw e;let t=P(a);if(t===a)throw e;o=o===``?i.slice(t.length+1):F(a.slice(t.length+1),o),a=t}}function zE(e){let t=e.info.status===`error`?`error`:`exited`;return{info:{...e.info,status:t,archived:!0,queue:void 0,steer:void 0,signInOutput:void 0},docName:e.docName,agentRef:e.agentRef,cwd:e.cwd,child:null,conn:null,lastInit:null,sessionId:e.sessionId,agentSessionId:`acp-${e.info.threadId}`,events:[],baseSeq:e.info.lastSeq+1,logResolved:!1,logResolution:null,midTurnOnDisk:!1,resumeInFlight:!1,authInFlight:!1,suppressUpdates:!1,lastSuppressedAt:0,subscribers:new Set,pendingPermissions:new Map,pendingRuntimeConsent:new Map,stderrTail:[],authStderr:null,terminals:null,turnActive:!1,cancelRequested:!1,steerStallTimer:null,unwatchedSince:null,unwatchedCancelSent:!1,pendingBroadcast:[],pendingBroadcastFromSeq:0,flushTimer:null,closed:!1,hadUserMessage:!0,envNotePending:!1}}function BE(e,t){if(typeof t==`boolean`)return e.type===`boolean`;if(e.type!==`select`)return!1;for(let n of e.options)if(`value`in n){if(n.value===t)return!0}else if(n.options.some(e=>e.value===t))return!0;return!1}function VE(e){let t=XT(e),n=e===`node`?`https://nodejs.org`:`https://docs.astral.sh/uv/getting-started/installation/`;return`This agent needs \`${t.provides}\`, which isn't installed. OK can download a private copy of ${t.displayName} for you, or install ${t.displayName} yourself (${n}) and it'll be used automatically.`}function HE(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.code===-32e3||typeof t.data==`object`&&t.data!==null&&t.data.errorKind===`authentication_failed`}function UE(e){return e instanceof Error?e.message:String(e)}function WE(e){if(typeof e!=`object`||!e)return;let t=e.data;if(t!=null)try{return JSON.stringify(t).slice(0,300)}catch{return}}function GE(e){for(let t=e.events.length-1;t>=0;--t){let n=e.events[t];if(!(n===void 0||n.kind!==`status`)&&!(n.status!==`error`&&n.status!==`auth_required`))return n.detail??n.failure?.agentMessage}}function KE(e){let t=e.stderrTail.join(`
29
29
  `);return t===``?void 0:t}function qE(...e){let t=e.filter(e=>e!==void 0&&e!==``).join(`
30
30
  `);return t===``?void 0:t}function JE(e,t){let n=t.authStderr===null?void 0:t.authStderr.join(`
31
31
  `);return qE(WE(e),n)}function YE(e){return(e??[]).flatMap(e=>{if(typeof e!=`object`||!e)return[];let{id:t,name:n,description:r,type:i}=e;return typeof t!=`string`||typeof n!=`string`?[]:[{id:t,name:n,...typeof r==`string`?{description:r}:{},...typeof i==`string`?{kind:i}:{}}]})}const XE=new Set([`create`,`subscribe`,`unsubscribe`,`prompt`,`steer`,`queue_edit`,`queue_hold`,`queue_remove`,`permission_response`,`runtime_consent_response`,`cancel`,`set_mode`,`set_config_option`,`close`,`rename`,`resume`,`retry`,`authenticate`,`delete`,`list`]);function ZE(e){if(e===void 0)return!0;if(!Array.isArray(e))return!1;for(let t of e){if(typeof t!=`object`||!t)return!1;let e=t;if(e.kind===`file`||e.kind===`folder`){if(typeof e.path!=`string`||typeof e.name!=`string`)return!1}else if(e.kind===`image`){if(typeof e.data!=`string`||typeof e.mimeType!=`string`||typeof e.name!=`string`||e.sizeBytes!==void 0&&typeof e.sizeBytes!=`number`)return!1}else if(e.kind===`blob`){if(typeof e.data!=`string`||typeof e.textPayload!=`boolean`||typeof e.mimeType!=`string`||typeof e.name!=`string`||e.sizeBytes!==void 0&&typeof e.sizeBytes!=`number`)return!1}else return!1}return!0}function QE(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t;if(typeof n.op!=`string`||!XE.has(n.op))return null;let r=e=>typeof n[e]==`string`&&n[e]!==``;switch(n.op){case`create`:{if(!r(`reqId`))return null;let e=n.agent;if(typeof e!=`object`||!e||e.source!==`registry`&&e.source!==`custom`||typeof e.id!=`string`||e.id===``||n.prompt!==void 0&&typeof n.prompt!=`string`||n.docName!==void 0&&typeof n.docName!=`string`)return null;if(n.settings!==void 0){let e=n.settings;if(typeof e!=`object`||!e)return null;if(e.config!==void 0){let t=e.config;if(typeof t!=`object`||!t||Array.isArray(t))return null;for(let e of Object.values(t))if(typeof e!=`string`&&typeof e!=`boolean`)return null}if(e.modeId!==void 0&&typeof e.modeId!=`string`)return null}return ZE(n.attachments)?n:null}case`subscribe`:return!r(`threadId`)||n.sinceSeq!==void 0&&typeof n.sinceSeq!=`number`?null:n;case`prompt`:return!r(`threadId`)||!r(`reqId`)||typeof n.content!=`string`||!ZE(n.attachments)?null:n;case`steer`:{if(!r(`threadId`)||!r(`reqId`)||typeof n.content!=`string`||!ZE(n.attachments))return null;let e=Array.isArray(n.attachments)&&n.attachments.length>0;return n.content===``&&!e?null:n}case`queue_edit`:return!r(`threadId`)||!r(`id`)||!r(`content`)||n.reqId!==void 0&&!r(`reqId`)?null:n;case`queue_hold`:return!r(`threadId`)||!r(`id`)||typeof n.held!=`boolean`?null:n;case`queue_remove`:return!r(`threadId`)||!r(`id`)?null:n;case`permission_response`:{if(!r(`threadId`)||!r(`requestId`))return null;let e=n.outcome;if(typeof e!=`object`||!e)return null;if(e.kind===`selected`){if(typeof e.optionId!=`string`||e.optionId===``)return null}else if(e.kind!==`cancelled`)return null;return n}case`runtime_consent_response`:{if(!r(`threadId`)||!r(`requestId`))return null;let e=n.outcome;return typeof e!=`object`||!e||e.kind!==`granted`&&e.kind!==`declined`?null:n}case`set_mode`:return!r(`threadId`)||!r(`modeId`)?null:n;case`rename`:return!r(`threadId`)||!r(`title`)?null:n;case`set_config_option`:return!r(`threadId`)||!r(`configId`)||typeof n.value!=`string`&&typeof n.value!=`boolean`||n.value===``?null:n;case`resume`:return!r(`threadId`)||!r(`reqId`)||n.prompt!==void 0&&typeof n.prompt!=`string`||!ZE(n.attachments)?null:n;case`retry`:return!r(`threadId`)||!r(`reqId`)?null:n;case`authenticate`:return!r(`threadId`)||!r(`reqId`)||!r(`methodId`)?null:n;case`unsubscribe`:case`cancel`:case`close`:case`delete`:return r(`threadId`)?n:null;case`list`:return n;default:return null}}function $E(e,t,n){let r=new Map,i=t=>{try{e.send(JSON.stringify(t))}catch(e){n.warn({err:e},`[acp-thread-socket] send failed`)}},a=(e,t,n)=>i(eD(e,t,n));e.on(`message`,e=>{let s=QE(typeof e==`string`?e:Buffer.isBuffer(e)?e.toString(`utf8`):``);if(s===null){a(`bad-frame`,`unrecognized frame`);return}(async()=>{try{switch(s.op){case`list`:i({op:`threads`,threads:t.listThreads()});return;case`create`:{let e=await t.createThread({agent:s.agent,prompt:s.prompt,attachments:s.attachments,docName:s.docName,titleHint:s.titleHint,settings:s.settings});i({op:`created`,reqId:s.reqId,info:e}),await o(e.threadId,0);return}case`subscribe`:await o(s.threadId,s.sinceSeq??0);return;case`resume`:{let e=await t.resumeThread(s.threadId,s.prompt,s.attachments);i({op:`resumed`,reqId:s.reqId,info:e}),await o(s.threadId,0);return}case`retry`:{let e=await t.retryThread(s.threadId);i({op:`retried`,reqId:s.reqId,info:e});return}case`authenticate`:{let e=await t.authenticateThread(s.threadId,s.methodId);i({op:`authenticated`,reqId:s.reqId,info:e});return}case`delete`:{let e=r.get(s.threadId);e!==void 0&&(t.unsubscribe(s.threadId,e),r.delete(s.threadId)),await t.deleteThread(s.threadId),i({op:`threads`,threads:t.listThreads()});return}case`unsubscribe`:{let e=r.get(s.threadId);e!==void 0&&(t.unsubscribe(s.threadId,e),r.delete(s.threadId));return}case`prompt`:t.sendPrompt(s.threadId,s.content,s.attachments);return;case`steer`:t.steerPrompt(s.threadId,s.content,s.attachments);return;case`queue_edit`:{let e=t.editQueued(s.threadId,s.id,s.content);s.reqId!==void 0&&(e?i({op:`queue_edited`,reqId:s.reqId,threadId:s.threadId}):a(`not-ready`,`queued message already dispatched`,{reqId:s.reqId,threadId:s.threadId}));return}case`queue_hold`:t.holdQueued(s.threadId,s.id,s.held);return;case`queue_remove`:t.removeQueued(s.threadId,s.id);return;case`permission_response`:t.respondPermission(s.threadId,s.requestId,s.outcome);return;case`runtime_consent_response`:t.respondRuntimeConsent(s.threadId,s.requestId,s.outcome);return;case`cancel`:t.cancel(s.threadId);return;case`set_mode`:t.setMode(s.threadId,s.modeId);return;case`rename`:await t.renameThread(s.threadId,s.title);return;case`set_config_option`:t.setConfigOption(s.threadId,s.configId,s.value);return;case`close`:{let e=r.get(s.threadId);e!==void 0&&(t.unsubscribe(s.threadId,e),r.delete(s.threadId)),await t.closeThread(s.threadId),i({op:`threads`,threads:t.listThreads()});return}}}catch(e){e instanceof ME?a(e.code,e.message,{reqId:`reqId`in s?s.reqId:void 0,threadId:`threadId`in s?s.threadId:void 0}):(n.error({err:e,op:s.op},`[acp-thread-socket] frame handling failed`),a(`internal`,`internal error`,{reqId:`reqId`in s?s.reqId:void 0}))}})()});let o=async(e,n)=>{if(r.has(e))return;let o=e=>i(e);r.set(e,o);try{let s=t.getInfo(e);if(s===void 0){r.delete(e),a(`unknown-thread`,`no thread '${e}'`,{threadId:e});return}i({op:`subscribed`,threadId:e,fromSeq:Math.max(n,0),info:s}),await t.subscribe(e,n,o)}catch(t){if(r.delete(e),t instanceof ME)a(t.code,t.message,{threadId:e});else throw t}};e.on(`close`,()=>{for(let[e,n]of r)t.unsubscribe(e,n);r.clear()}),e.on(`error`,e=>{n.warn({err:e},`[acp-thread-socket] socket error`)})}function eD(e,t,n){return{op:`error`,code:e,message:t,...n}}var tD=class{hocuspocus;log=N(`agent-focus`);warnedMissing=!1;constructor(e){this.hocuspocus=e}setFocus(e,t){vh(e)&&this.mutateAgentFocus(n=>({...n,[e]:t}))}clearFocus(e){vh(e)&&this.mutateAgentFocus(t=>{if(!(e in t))return t;let{[e]:n,...r}=t;return r})}getFocusMap(){let e=this.resolveAwareness();return e?e.getLocalState()?.agentFocus??{}:{}}mutateAgentFocus(e){let t=this.resolveAwareness();if(t)try{let n=t.getLocalState()??{},r=e(n.agentFocus??{});t.setLocalState({...n,agentFocus:r})}catch(e){this.log.error({err:e},`[agent-focus] awareness mutation failed`)}}resolveAwareness(){let e=this.hocuspocus.documents.get(ro);return e?(this.warnedMissing&&=(this.log.info({},`[agent-focus] __system__ document now available — resuming focus updates`),!1),nD(e)):(this.warnedMissing||=(this.log.warn({},`[agent-focus] __system__ document not found — focus updates will be dropped until it is materialized`),!0),null)}};function nD(e){return e?.awareness??null}var rD=class{hocuspocus;log=N(`agent-presence`);warnedMissing=!1;destroyed=!1;constructor(e){this.hocuspocus=e}setPresence(e,t){if(!vh(e))return;let n=0;this.mutateAgentPresence(r=>{let i=Date.now(),a={};for(let[t,o]of Object.entries(r)){if(i-o.ts>=2e4&&t!==e){n++;continue}a[t]=o}return a[e]=t,a})&&(this.log.debug({agentId:e,action:`set`,currentDoc:t.currentDoc,ts:t.ts},`[agent-presence] set`),n>0&&this.log.info({evictedCount:n,thresholdMs:2e4},`[agent-presence] evicted stale entries`))}clearPresence(e){if(!vh(e))return;let t=!1;this.mutateAgentPresence(n=>{if(!n[e])return n;t=!0;let{[e]:r,...i}=n;return i})&&t&&this.log.info({agentId:e,action:`clear`,currentDoc:null,ts:Date.now()},`[agent-presence] clear`)}touchMode(e,t){if(!vh(e))return;let n=[],r=!1,i=this.mutateAgentPresence(i=>{let a=i[e];if(!a)return i;r=!0;let o=Date.now();return n.push({currentDoc:a.currentDoc,ts:o}),{...i,[e]:{...a,mode:t,ts:o}}}),a=n[0];i&&a?this.log.debug({agentId:e,action:`touchMode`,currentDoc:a.currentDoc,ts:a.ts,mode:t},`[agent-presence] touchMode`):r||this.log.debug({agentId:e,action:`touchMode`,mode:t,reason:`entry-missing`},`[agent-presence] touchMode skipped — no entry for agentId`)}bumpPresenceTs(e){if(!vh(e))return;let t=null;this.mutateAgentPresence(n=>{let r=n[e];if(!r)return n;let i=Date.now();return t=i,{...n,[e]:{...r,ts:i}}}),t!==null&&this.log.debug({agentId:e,action:`bumpTs`,ts:t},`[agent-presence] bumpTs`)}getPresenceMap(){let e=this.resolveAwareness();return e?e.getLocalState()?.agentPresence??{}:{}}destroy(){this.destroyed=!0}mutateAgentPresence(e){if(this.destroyed)return!1;let t=this.resolveAwareness();if(!t)return!1;try{let n=t.getLocalState()??{},r=e(n.agentPresence??{});return t.setLocalState({...n,agentPresence:r}),!0}catch(e){return Pse(),this.log.error({err:e},`[agent-presence] awareness mutation failed`),!1}}resolveAwareness(){let e=this.hocuspocus.documents.get(ro);return e?(this.warnedMissing&&=(this.log.info({},`[agent-presence] __system__ document now available — resuming presence updates`),!1),iD(e)):(this.warnedMissing||=(this.log.warn({},`[agent-presence] __system__ document not found — presence updates will be dropped until it is materialized`),!0),null)}};function iD(e){return e?.awareness??null}var aD=class extends Error{};const oD=[`/.well-known/agent-skills/index.json`,`/.well-known/skills/index.json`],sD=1024*1024;async function cD(e,t,n,r){let i=t;for(let t=0;t<=5;t++){let t=await e(i,{...r,redirect:`manual`});if(t.status<300||t.status>=400)return t;let a=t.headers.get(`location`);if(a===null||a===``)throw new aD(`Website skill redirect carried no location: ${i}`);let o;try{o=new URL(a,i)}catch{throw new aD(`Website skill redirect target is not a URL: ${a}`)}if(o.protocol!==`https:`||o.origin!==n)throw new aD(`Website skill redirect left the origin (${n}): ${o.href}`);i=o.href}throw new aD(`Website skill fetch exceeded 5 redirects: ${t}`)}function lD(e){let t;try{t=new URL(e)}catch{throw new aD(`Invalid website skill origin: ${e}`)}if(t.protocol!==`https:`||t.username||t.password)throw new aD(`Website skill origins must be credential-free HTTPS URLs: ${e}`);if(t.pathname!==`/`||t.search||t.hash)throw new aD(`Website skill origins cannot include a path, query, or fragment: ${e}`);return t.origin}function uD(e){return!e||e.includes(`\\`)||e.includes(`\0`)||e.startsWith(`/`)?!1:e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`)}function dD(e){if(!e||typeof e!=`object`)return null;let t=e.skills;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(!e||typeof e!=`object`)return null;let{name:t,description:r,files:i}=e;if(typeof t!=`string`||!uD(t)||t.includes(`/`)||r!==void 0&&typeof r!=`string`||!Array.isArray(i)||i.length===0||i.length>513||!i.every(e=>typeof e==`string`&&uD(e))||new Set(i).size!==i.length||!i.includes(`SKILL.md`))return null;n.push({name:t,description:r??``,files:i})}return n}function fD(e,t,n,r){let i=[n,...r.split(`/`)].map(encodeURIComponent).join(`/`);return new URL(`${t}/${i}`,e).href}async function pD(e,t,n){let r=[];for(let i of oD){let a=new URL(i,e).href;try{let o=await cD(t,a,e,{signal:AbortSignal.timeout(n)});if(!o.ok){r.push(`${i}: HTTP ${o.status}`);continue}let s=await o.text();if(Buffer.byteLength(s)>sD){r.push(`${i}: index exceeds ${sD} bytes`);continue}let c;try{c=JSON.parse(s)}catch{r.push(`${i}: response is not JSON`);continue}let l=dD(c);if(!l){r.push(`${i}: unsupported or malformed index`);continue}return{basePath:i.slice(0,-11),skills:l}}catch(e){r.push(`${i}: ${e instanceof Error?e.message:String(e)}`)}}throw new aD(`No usable website skill index at ${e} (${r.join(`; `)})`)}async function mD(e,t={}){let{skills:n}=t.index??await hD(e,t);return n.map(({name:e,description:t})=>({name:e,description:t}))}async function hD(e,t={}){let n=lD(e),r=t.fetchImpl??globalThis.fetch;if(!r)throw new aD(`No fetch implementation available.`);return pD(n,r,t.timeoutMs??15e3)}async function gD(e,t={}){if(!uD(e.skill)||e.skill.includes(`/`))throw new aD(`Invalid website skill name: ${e.skill}`);let n=lD(e.origin),r=t.fetchImpl??globalThis.fetch;if(!r)throw new aD(`No fetch implementation available.`);let i=t.timeoutMs??15e3,{basePath:a,skills:o}=t.index??await pD(n,r,i),s=o.find(t=>t.name===e.skill);if(!s)throw new aD(`Website skill index does not contain ${e.skill}`);let c=Pu(F(Zu(),`ok-skill-site-`)),l=F(c,s.name),u=0;try{let e=[...s.files],t=async e=>{let t=await cD(r,fD(n,a,s.name,e),n,{signal:AbortSignal.timeout(i)});if(!t.ok)throw new aD(`Website skill file returned HTTP ${t.status}: ${e}`);let o=Number(t.headers.get(`content-length`));if(Number.isFinite(o)&&o>16777216)throw new aD(`Website skill file exceeds ${Cn} bytes: ${e}`);let c=new Uint8Array(await t.arrayBuffer());if(c.byteLength>16777216)throw new aD(`Website skill file exceeds ${Cn} bytes: ${e}`);if(u+=c.byteLength,u>67108864)throw new aD(`Website skill bundle exceeds ${tr} bytes.`);let d=F(l,...e.split(`/`));Nu(P(d),{recursive:!0}),Ku(d,c)};return await Promise.all(Array.from({length:Math.min(8,e.length)},async()=>{for(let n=e.shift();n!==void 0;n=e.shift())await t(n)})),{dir:l,cleanup:()=>Hu(c,{recursive:!0,force:!0})}}catch(t){throw Hu(c,{recursive:!0,force:!0}),t instanceof aD?t:new aD(`Could not fetch website skill ${e.skill}: ${t instanceof Error?t.message:String(t)}`)}}const _D=md(cu),vD=/^(?:github\s+)?([\w.-]+)\/([\w.-]+?)(?:\.git)?(?:\/(.+))?$/,yD=[/^https?:\/\//i,/^ssh:\/\//i,/^git:\/\//i,/^git@[^:]+:/];function bD(e){let t=e.trim();if(t===``)return null;if(t.startsWith(`file://`))return{kind:`local`,path:t.slice(7)};if(t.startsWith(`/`)||t.startsWith(`.`)||t.startsWith(`~`))return{kind:`local`,path:t};if(t.startsWith(`git@`)||t.includes(`://`))return yD.some(e=>e.test(t))?{kind:`git`,url:t}:null;let n=vD.exec(t);if(n){let[,e,t,r]=n;return{kind:`git`,url:`https://github.com/${e}/${t}.git`,subpath:r}}return null}function xD(e){let t=e.trim();if(t===``)return null;let n=e=>{let t=e.split(`/`).filter(Boolean).map(decodeURIComponent);if(t.length!==3)return null;let[n,r,i]=t,a=n===`site`?r:n,o=i;return a&&o?{owner:a,skill:o}:null};if(/^https?:\/\//i.test(t))try{let e=new URL(t),r=e.hostname.toLowerCase();return r!==`skills.sh`&&r!==`www.skills.sh`?null:n(e.pathname)}catch{return null}let r=/^skills\.sh\/(.+)$/i.exec(t);if(r)return n(r[1]??``);let i=/^skills\.sh\s+([\w.-]+)\/([\w.-]+)$/i.exec(t);if(i){let[,e,t]=i;return e&&t?{owner:e,skill:t}:null}return null}async function SD(e,t={}){if(e.kind===`well-known`)return gD(e,t);if(e.kind===`local`){let t=L(e.path.replace(/^~(?=\/|$)/,process.env.HOME??`~`));if(!z(t))throw new aD(`Local path not found: ${t}`);return{dir:t,cleanup:()=>{}}}if(/^[a-z][a-z0-9+.-]+:/i.test(e.url)&&!yD.some(t=>t.test(e.url)))throw new aD(`Unsupported git transport: ${e.url}`);let n=Pu(F(Zu(),`ok-skill-import-`));try{await _D(`git`,[`-c`,`core.symlinks=false`,`clone`,`-q`,`--depth`,`1`,`--`,e.url,n],{timeout:6e4,maxBuffer:16*1024*1024,env:{...process.env,GIT_TERMINAL_PROMPT:`0`}})}catch(t){Hu(n,{recursive:!0,force:!0});let r=t instanceof Error?t.message:String(t);throw new aD(`git clone failed for ${e.url}: ${r}`)}let r;try{r=lu(`git`,[`-C`,n,`rev-parse`,`HEAD`],{stdio:`pipe`}).toString().trim()}catch{}let i=e.subpath?L(n,e.subpath):n,a=I(n,i);if(a.startsWith(`..`)||gu(a))throw Hu(n,{recursive:!0,force:!0}),new aD(`subpath escapes the clone: ${e.subpath}`);if(!z(i))throw Hu(n,{recursive:!0,force:!0}),new aD(`subpath not found in repo: ${e.subpath}`);return{dir:i,ref:r,cleanup:()=>Hu(n,{recursive:!0,force:!0})}}const CD=[`.ok`,`skills-lock.json`],wD=i({source:h(),pluginProvider:h().optional(),skill:h().optional(),ref:h().optional(),contentHash:h(),files:O(h()).optional(),localHash:h().optional(),baselineRef:h().optional(),publisher:h().optional(),importedAt:ae(),autoUpdate:s().optional()}),TD=i({schema:M(1),skills:d(h(),wD).default({})});function ED(){return{schema:1,skills:{}}}function DD(e){let t;try{t=JSON.parse(e)}catch{return null}let n=TD.safeParse(t);return n.success?n.data:null}function OD(e,t,n){return{...e,skills:{...e.skills,[t]:n}}}const kD=new Set(Object.values(sa));function AD(e,t,n,r){return e.startsWith(`open-knowledge-pack-`)?jD(e,t,n):!kD.has(e)||r?.selfIdentifiesAsPack!==!0?null:jD(e,t,n)}function jD(e,t,n){return{source:La,skill:e,contentHash:t,importedAt:n}}function MD(e,t){for(let[n,r]of Object.entries(e.skills))if(r.contentHash===t)return n;return null}function ND(e,t){let n=t,r=``,{frontmatter:i}=Ur(e);if(i!==``){let{map:e}=wa(Fr(i)),t=e?.name,a=e?.description;typeof t==`string`&&t.trim()!==``&&(n=t),typeof a==`string`&&(r=a)}return{name:n,description:r}}const PD=new Set([`.git`,`node_modules`]),FD=new Set([...PD,`scripts`,`references`]);function ID(e){let t=[],n=r=>{for(let i of zu(r,{withFileTypes:!0})){let a=F(r,i.name);if(i.isDirectory()){PD.has(i.name)||n(a);continue}if(!i.isFile())continue;let o=I(e,a).split(`\\`).join(`/`);if(o===`SKILL.md`)continue;let s=B(a);t.push(s.includes(0)?{relPath:o,content:null,bytes:new Uint8Array(s)}:{relPath:o,content:s.toString(`utf-8`)})}};return n(e),t.sort((e,t)=>e.relPath.localeCompare(t.relPath))}function LD(e){let t=F(e,`SKILL.md`);return z(t)?ND(B(t,`utf-8`),pu(e)):null}function RD(e){let t=0,n=0,r=null,i=(e,t)=>(r=`Skill bundle could not be read (${e}): ${t instanceof Error?t.message:String(t)}`,null);try{n=z(F(e,`SKILL.md`))?Wu(F(e,`SKILL.md`)).size:0}catch(e){return i(`stat SKILL.md`,e)??r}if(n>16777216)return`SKILL.md is ${n} bytes; the import per-file cap is ${Cn}.`;if(n>67108864)return`Skill exceeds ${tr} bytes; that is the import bundle cap.`;let a=o=>{if(r!==null)return;let s;try{s=zu(o,{withFileTypes:!0})}catch(e){i(`read directory`,e);return}for(let c of s){if(r!==null)return;let s=F(o,c.name);if(c.isDirectory()){PD.has(c.name)||a(s);continue}if(!c.isFile())continue;let l=I(e,s).split(`\\`).join(`/`);if(l===`SKILL.md`)continue;if(t+=1,t>512){r=`Skill has more than 512 dependent files; that is the import cap.`;return}let u;try{u=Wu(s).size}catch(e){i(`stat ${l}`,e);return}if(u>16777216){r=`${l} is ${u} bytes; the import per-file cap is ${Cn}.`;return}if(n+=u,n>67108864){r=`Skill exceeds ${tr} bytes; that is the import bundle cap.`;return}}};try{a(e)}catch(e){return`Skill bundle could not be measured: ${e instanceof Error?e.message:String(e)}`}return r}function zD(e){let t=F(e,`SKILL.md`);if(!z(t))return null;let n=B(t,`utf-8`),{name:r,description:i}=ND(n,pu(e)),a=ID(e),o=sd(`sha256`);o.update(`SKILL.md\n${n}\n`);for(let e of a)o.update(`${e.relPath}\n`),o.update(e.bytes??e.content??``),o.update(`
@@ -1176,7 +1176,7 @@ tags: [lore, history]
1176
1176
  `);l=n.pop()??``;for(let e of n){if(!e.trim())continue;let n=null;try{n=JSON.parse(e)}catch{}if(n&&n.type===`error`){i(500,`urn:ok:error:auth-failed`,`Auth repos subprocess reported an error.`,{detail:typeof n.message==`string`?n.message:void 0});continue}if(!t.writableEnded&&!t.destroyed)try{t.write(`${e}\n`)}catch{}}}),u.stderr.on(`data`,e=>{Y.debug({msg:e.toString(`utf-8`).trim()},`[local-op/auth/repos] stderr`)}),u.on(`close`,e=>{clearTimeout(d),c||(c=!0,e!==0&&!t.writableEnded&&i(500,`urn:ok:error:auth-failed`,`Auth repos subprocess exited with code ${e}.`),t.end(),ze.release(Ti))}),u.on(`error`,e=>{clearTimeout(d),c||(c=!0,t.writableEnded||(i(500,`urn:ok:error:auth-failed`,`Failed to spawn the auth repos subprocess.`,{cause:e}),t.end()),ze.release(Ti))}),t.on(`close`,()=>{c||(c=!0,clearTimeout(d),u.kill(`SIGTERM`),ze.release(Ti))})}let ta=`local-op-auth-signout`,aa=K(ka,async(e,t,n)=>{let r=n.host??ji();if(!ze.tryAcquire(Ei)){G(t,429,`urn:ok:error:concurrent-operation`,`An auth signout operation is already in progress.`,{handler:ta,extraHeaders:{"Retry-After":`5`}});return}try{let[e,...n]=de,i=[...n,`auth`,`signout`,`--host`,r];await new Promise((t,n)=>{let r=uu(e,i,UM({...pi,env:{...process.env}})),a=setTimeout(()=>{r.kill(`SIGTERM`)},3e4);r.on(`close`,()=>{clearTimeout(a),t()}),r.on(`error`,e=>{clearTimeout(a),n(e)})}),q(t,200,Ja,{},{handler:ta})}catch(e){G(t,500,`urn:ok:error:auth-failed`,`Auth signout failed.`,{handler:ta,cause:e})}finally{ze.release(Ei)}},{handler:ta,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:ta})}),ca=`/api/local-op/auth/set-identity`,ma=`local-op-auth-set-identity`,ga=K(Nee,async(e,t,n)=>{let r=n.name.trim(),i=n.email.trim();if(!A){G(t,503,`urn:ok:error:no-project-dir`,`No project directory configured.`,{handler:ma});return}if(!ze.tryAcquire(ca)){G(t,429,`urn:ok:error:concurrent-operation`,`A set-identity operation is already in progress.`,{handler:ma,extraHeaders:{"Retry-After":`5`}});return}try{cB(A,r,i),le?.()?.refreshIdentity().catch(()=>{}),q(t,200,Ja,{},{handler:ma})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Set-identity failed.`,{handler:ma,cause:e})}finally{ze.release(ca)}},{handler:ma,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:ma})});async function ba(e,t){if(r(e,t,{handler:`sync-status`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-status`,extraHeaders:{Allow:`GET`}});return}try{let e=le?.();if(!e){q(t,200,hi,{state:`dormant`,lastSyncUtc:null,lastFetchUtc:null,lastPushedSha:null,ahead:0,behind:0,consecutiveFailures:0,conflictCount:0,hasRemote:!1,syncEnabled:!1,identityUnresolved:!1,remote:null},{handler:`sync-status`});return}await e.refreshRemote(),q(t,200,hi,e.getStatus(),{handler:`sync-status`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-status`,cause:e})}}}let xa=K(mte,async(e,t,n)=>{let r=le?.();if(!r){G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`});return}let i=n.op??`sync`;q(t,202,xee,{op:i},{handler:`sync-trigger`}),r.trigger(i)},{handler:`sync-trigger`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-trigger`})?le?.()?!0:(G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`}),!1):!1});async function Sa(e,t){if(r(e,t,{handler:`sync-conflicts`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflicts`,extraHeaders:{Allow:`GET`}});return}try{let e=le?.();q(t,200,ri,{conflicts:e?e.getConflicts():[]},{handler:`sync-conflicts`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-conflicts`,cause:e})}}}let Ca=K(Ho,async(e,t,n)=>{let r=le?.();if(!r){G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-conflict`});return}let{file:i,strategy:a,content:o}=n;try{await r.resolveConflict(i,a,o),q(t,200,_te,{},{handler:`sync-resolve-conflict`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve conflict.`,{handler:`sync-resolve-conflict`,cause:e,detail:e instanceof Error?e.message:void 0})}},{handler:`sync-resolve-conflict`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-resolve-conflict`})?le?.()?!0:(G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-conflict`}),!1):!1});async function wa(e,t){if(!r(e,t,{handler:`sync-conflict-content`}))return;if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflict-content`,extraHeaders:{Allow:`GET`}});return}if(!A){G(t,503,`urn:ok:error:project-repo-not-configured`,`Project repo not configured.`,{handler:`sync-conflict-content`});return}let n=new URL(e.url??`/`,`http://${e.headers.host??`localhost`}`),i=n.searchParams.get(`file`);if(!i){G(t,400,`urn:ok:error:invalid-request`,`Missing required query param: file.`,{handler:`sync-conflict-content`});return}if(i.includes(`..`)||i.startsWith(`/`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid file path.`,{handler:`sync-conflict-content`});return}let a=Bx(i),s=o.documents.get(a)?.getMap(`lifecycle`).get(`status`)===`conflict`,c=le?.(),l=c?c.getConflicts().some(e=>e.file===i):!1;if(!s&&!l){G(t,404,`urn:ok:error:no-conflict-tracked`,`No conflict is tracked for this path.`,{handler:`sync-conflict-content`,extensions:{file:i}});return}let u=n.searchParams.get(`source`),d=gc({baseDir:A,timeout:{block:15e3}}),f=c?.getConflicts().find(e=>e.file===i&&e.variant===`working-tree`);if(f){try{let e=async e=>{if(!e)return``;try{return await d.raw([`cat-file`,`blob`,e])}catch(e){throw console.warn(JSON.stringify({event:`conflict-content-readblob-failed`,file:i,detail:e instanceof Error?e.message:String(e),handler:`sync-conflict-content`})),e}},n=await e(f.theirsSha),r=await e(f.baseSha),a=Bx(i),s=o.documents.get(a),c=``,l=!1,u=null;if(s){let e=s.getMap(`lifecycle`).get(`status`);u=typeof e==`string`&&e.length>0?e:null;let t=Ee?Ee(a):null;t!==null&&(c=t,l=!0)}else{gL(F(A,i),A);try{c=B(F(A,i),`utf-8`),l=!0}catch{l=!1}}let p=l?n.length===0?`modify-delete`:`both-modified`:`delete-modify`;q(t,200,Wi,{file:i,base:r,ours:c,theirs:n,kind:p,lifecycleStatus:u},{handler:`sync-conflict-content`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read conflict content.`,{handler:`sync-conflict-content`,cause:e})}return}async function p(e){try{return{present:!0,content:await d.raw([`show`,`:${e}:${i}`])}}catch(t){let n=t instanceof Error?t.message:String(t);if(!/pathspec|did not match|exists on disk, but not in|is in the index, but not at stage/i.test(n))throw console.warn(JSON.stringify({event:`showstage-unexpected-error`,stage:e,file:i,detail:n,handler:`sync-conflict-content`})),t;return{present:!1}}}try{let[e,n,r]=await Promise.all([p(1),p(2),p(3)]),a=e.present?e.content:``,s=r.present?r.content:``,c=n.present&&r.present?`both-modified`:!n.present&&r.present?`delete-modify`:n.present&&!r.present?`modify-delete`:`both-modified`,l=n.present?n.content:``,d=null;if(u===`ytext`){let e=Bx(i),t=o.documents.get(e);if(t){let n=t.getMap(`lifecycle`).get(`status`);if(d=typeof n==`string`&&n.length>0?n:null,c!==`delete-modify`){let t=Ee?Ee(e):null;t!==null&&!Rve(t)?l=t:t!==null&&console.warn(JSON.stringify({event:`ytext-conflict-marker-detected`,"doc.name":e,handler:`sync-conflict-content`}))}}else Y.warn({docName:e},`[conflict-content] doc ${e} not loaded; lifecycleStatus unavailable`)}q(t,200,Wi,{file:i,base:a,ours:l,theirs:s,kind:c,lifecycleStatus:d},{handler:`sync-conflict-content`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read conflict content.`,{handler:`sync-conflict-content`,cause:e})}}async function Ta(e,t){if(!r(e,t,{handler:`seed-plan`}))return;if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`seed-plan`,extraHeaders:{Allow:`GET`}});return}let n=new URL(e.url??`/`,`http://localhost`),i=n.searchParams.get(`rootDir`)??void 0,a=n.searchParams.get(`packId`),o=NJ(a);if(a!==null&&a!==``&&o===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-plan`,detail:`Pack id "${a}" is not registered.`});return}try{q(t,200,Zi,{plan:await BJ({projectDir:l,rootDir:i,packId:o})},{handler:`seed-plan`})}catch(e){if(e instanceof bJ){G(t,422,`urn:ok:error:seed-prerequisite-missing`,`Seed prerequisite missing.`,{handler:`seed-plan`,cause:e});return}if(e instanceof xJ){G(t,400,`urn:ok:error:seed-invalid-root`,`Invalid seed root directory.`,{handler:`seed-plan`,detail:`The provided root directory is not within the workspace content directory.`,cause:e});return}G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`seed-plan`,cause:e})}}let Ea=K(No,async(e,t,n)=>{let r=n.plan;if(!r||typeof r!=`object`){G(t,400,`urn:ok:error:invalid-request`,`Invalid plan payload.`,{handler:`seed-apply`});return}let i=r,a=n.packId,o=NJ(a);if(typeof a==`string`&&a.length>0&&o===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-apply`,detail:`Pack id "${a}" is not registered.`});return}try{q(t,200,Vee,{result:await RJ(i,{projectDir:l,packId:o})},{handler:`seed-apply`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to apply seed plan.`,{handler:`seed-apply`,cause:e})}},{handler:`seed-apply`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`seed-apply`})}),Oa=K(Kee,async(e,t,n)=>{let r=NJ(n.packId);if(r===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-install-pack-skill`,detail:`Pack id "${n.packId}" is not registered.`});return}try{q(t,200,ate,await lge(l,r),{handler:`seed-install-pack-skill`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install pack skill.`,{handler:`seed-install-pack-skill`,cause:e})}},{handler:`seed-install-pack-skill`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`seed-install-pack-skill`})});async function Aa(e,t){if(r(e,t,{handler:`seed-packs`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`seed-packs`,extraHeaders:{Allow:`GET`}});return}q(t,200,$ee,{packs:PJ()},{handler:`seed-packs`})}}let ja=K(zee,async(e,t,n)=>{if(n.out!==void 0&&!jG(n.out)){G(t,400,`urn:ok:error:invalid-request`,`Output path must be within home directory.`,{handler:`install-skill`});return}try{q(t,200,Zee,await NI({...n.noOpen===void 0?{}:{noOpen:n.noOpen},...n.out===void 0?{}:{out:n.out}}),{handler:`install-skill`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`install-skill`,cause:e})}},{handler:`install-skill`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`install-skill`})});async function Ma(e,t){if(r(e,t,{handler:`installed-agents`}))try{await yfe(e,t,nt.probeAll)}catch(n){t.headersSent||(Y.error({err:n,requestId:cS(e)},`[installed-agents] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`installed-agents`,cause:n}))}}function Na(e,t,n=`path`,r=`folder-config`){let i=e.replace(/^\.\//,``).replace(/^\/+/,``).replace(/\/+$/,``);if(i.split(`/`).some(e=>e===`..`)||e.startsWith(`/`))return G(t,400,`urn:ok:error:invalid-request`,`Invalid ${n}: must be project-root-relative.`,{handler:r}),null;let a=L(l),o=i===``?a:L(a,i);return o!==a&&!o.startsWith(`${a}${R}`)?(G(t,400,`urn:ok:error:invalid-request`,`Path escapes content directory.`,{handler:r}),null):{folderRel:i,resolvedContentDir:a}}function Pa(e,t,n=`template`){return!e||!to.test(e)?(G(t,400,`urn:ok:error:invalid-request`,"Invalid name: must be letters / digits / `_` / `-` only (no `.md` extension).",{handler:n}),!1):!0}function Ia(e,t,n){let r=t===``?[]:t.split(`/`);for(let t=r.length;t>=0;t--){let i=t===0?``:r.slice(0,t).join(`/`),a=i===``?e:L(e,i);if(a!==e&&!a.startsWith(`${e}${R}`))continue;let o=L(a,`.ok`,`templates`,`${n}.md`);if(z(o))return{abs:o,folder:i,scope:t===r.length?`local`:`inherited`}}return null}function za(e){let t={};if(!e||typeof e!=`object`||Array.isArray(e))return t;for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}let Va=cW({GET:K(Tn,async(e,t)=>{try{let n=Na(new URL(e.url??``,`http://localhost`).searchParams.get(`path`)??``,t,`path`,`folder-config-get`);if(!n)return;let r=await WA(n.folderRel,{projectDir:n.resolvedContentDir}),i=L(L(n.resolvedContentDir,n.folderRel,`.ok`),`frontmatter.yml`),a=null;if(z(i))try{let e=(0,nk.parse)(await td(i,`utf-8`));a=e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){let t=e instanceof Error?e.message:String(e);Y.warn({path:i,reason:t},`[folder-config:get] malformed YAML in ${i}: ${t}`),a=null}q(t,200,Mee,{folder:r,frontmatter_local:a},{handler:`folder-config-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read folder config.`,{handler:`folder-config-get`,cause:e})}},{handler:`folder-config-get`,method:`GET`,skipBodyParse:!0}),PUT:K(er,async(e,t,n)=>{try{if(Pe){G(t,403,`urn:ok:error:single-file-mode`,`Folder configuration is not available in single-file mode.`,{handler:`folder-config-put`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`folder-config-put`});return}let r=Na(n.path,t,`path`,`folder-config-put`);if(!r)return;let i=[];if(n.frontmatter!==void 0){let a=Mue({anchorDir:r.resolvedContentDir,folderRel:r.folderRel,patch:n.frontmatter});if(!a.ok){let e=a.error.code===`WRITE_ERROR`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to write folder config.`:a.error.message,{handler:`folder-config-put`,detail:a.error.code,cause:Error(a.error.message)});return}i.push({path:a.path,action:a.action}),a.action!==`noop`&&(ir(e,rr(`folder-frontmatter`,r.folderRel),`folder-frontmatter-${a.action===`deleted`?`delete`:`edit`}: ${a.path}`),await ar(`folder-config-put`))}q(t,200,Je,{applied:i},{handler:`folder-config-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write folder config.`,{handler:`folder-config-put`,cause:e})}},{handler:`folder-config-put`,method:`PUT`})},{handler:`folder-config`}),Ua=K(Tn,async(e,t)=>{try{let{entries:e,truncated:n}=dme({homedirOverride:ge});q(t,200,dee,{themes:e,truncated:n},{handler:`saved-themes-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list saved themes.`,{handler:`saved-themes-list`,cause:e})}},{handler:`saved-themes-list`,method:`GET`,skipBodyParse:!0}),Ga=K(dte,async(e,t,n)=>{try{let e=await mme({name:n.name,stem:n.stem,scheme:n.scheme,extension:n.extension,homedirOverride:ge,lockTimeoutMs:ve});if(!e.ok){if(e.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-save`,detail:e.code,extraHeaders:{"Retry-After":`5`}});return}if(e.code===`name-taken`){G(t,409,`urn:ok:error:theme-name-taken`,`A saved theme with that name already exists.`,{handler:`saved-theme-save`,detail:n.name});return}G(t,400,`urn:ok:error:theme-name-invalid`,`That name cannot be used as a theme id.`,{handler:`saved-theme-save`,detail:e.code});return}q(t,201,Tee,{id:e.id,filename:e.filename},{handler:`saved-theme-save`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to save theme.`,{handler:`saved-theme-save`,cause:e})}},{handler:`saved-theme-save`,method:`POST`}),Ka=K(Tn,async(e,t)=>{try{let n=Nc(e).get(`id`)??``;if(n===``){G(t,400,`urn:ok:error:invalid-request`,`Missing theme id.`,{handler:`saved-theme-delete`});return}let r=await gme({id:n,homedirOverride:ge,lockTimeoutMs:ve});if(!r.ok){if(r.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-delete`,detail:r.code,extraHeaders:{"Retry-After":`5`}});return}G(t,r.code===`invalid-id`?400:409,`urn:ok:error:invalid-request`,`Cannot delete saved theme.`,{handler:`saved-theme-delete`,detail:r.code});return}q(t,200,gt,r.existed?{existed:!0,filename:r.filename,scheme:r.scheme}:{existed:!1},{handler:`saved-theme-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete theme.`,{handler:`saved-theme-delete`,cause:e})}},{handler:`saved-theme-delete`,method:`DELETE`,skipBodyParse:!0}),qa=cW({POST:Ga,PUT:K(At,async(e,t,n)=>{try{let e=await hme({id:n.id,scheme:n.scheme,homedirOverride:ge,lockTimeoutMs:ve});if(!e.ok){if(e.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-update`,detail:e.code,extraHeaders:{"Retry-After":`5`}});return}if(e.code===`not-found`){G(t,404,`urn:ok:error:not-found`,`Saved theme not found.`,{handler:`saved-theme-update`});return}if(e.code===`ambiguous-id`||e.code===`unsafe-target`){G(t,409,`urn:ok:error:invalid-request`,e.code===`ambiguous-id`?`Multiple saved theme files claim that id.`:`The saved theme id conflicts with a file that cannot be safely updated.`,{handler:`saved-theme-update`,detail:e.code});return}G(t,400,`urn:ok:error:invalid-request`,`Not a saved theme id.`,{handler:`saved-theme-update`,detail:e.code});return}q(t,200,Ct,{id:e.id,filename:e.filename},{handler:`saved-theme-update`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to update theme.`,{handler:`saved-theme-update`,cause:e})}},{handler:`saved-theme-update`,method:`PUT`}),DELETE:Ka},{handler:`saved-theme`});function Ya(e,t,n){let r=o.documents.get(e);return r&&mS(r)?(_S(n,new gS({file:`${e}.md`}),t),!0):!1}function Xa(e,t,n){let r=o.documents.get(e);return r&&mS(r)?(_S(n,new gS({file:`${e}.md`}),t),!0):!1}let Za=K(Tn,MB(async(e,t)=>{let n=await fue(L(l));q(t,200,oa,{templates:n.templates.map(e=>{let{scope:t,...n}=e;return n}),truncated:n.truncated},{handler:`templates-list`})},{handler:`templates-list`,title:`Failed to list templates.`}),{handler:`templates-list`,method:`GET`,skipBodyParse:!0}),Qa=e=>{let{body:t}=Ur(e);return{frontmatter:Ra(e)??{},body:t}},$a=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Pa(r,t,`template-get`))return;let i=Na(n.searchParams.get(`folder`)??``,t,`folder`,`template-get`);if(!i)return;let{folderRel:a,resolvedContentDir:o}=i,s=Ia(o,a,r);if(!s){G(t,404,`urn:ok:error:template-not-found`,`Template not found.`,{handler:`template-get`,detail:`Template "${r}" not found for folder "${a||`.`}". Walked leaf → root.`});return}let{abs:c,folder:l,scope:u}=s,d=dt(await td(c,`utf-8`)),f=d.identity,p=d.starterContent;q(t,200,jee,{template:{name:r,folder:l,scope:u,path:I(o,c).split(/[\\/]/).filter(Boolean).join(`/`),frontmatter:f,body:p}},{handler:`template-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read template.`,{handler:`template-get`,cause:e})}},{handler:`template-get`,method:`GET`,skipBodyParse:!0}),eo=K(nte,async(e,t,n)=>{try{if(Pe){G(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-put`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-put`});return}let r=n.name;if(!Pa(r,t,`template-put`))return;let i=Na(n.folder,t,`folder`,`template-put`);if(!i||Ya(Ro(i.folderRel,r),`template-put`,t))return;let a=mj({name:r,body:typeof n.body==`string`?n.body:``,frontmatter:za(n.frontmatter)});if(!a.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid template request.`,{handler:`template-put`,detail:a.error.code,cause:Error(a.error.message)});return}let o=L(i.resolvedContentDir,i.folderRel,`.ok`,`templates`,`${r}.md`),s=!z(o),l=I(i.resolvedContentDir,o).split(/[\\/]/).filter(Boolean).join(`/`),u=Ro(i.folderRel,r),{agentId:d,agentName:f,colorSeed:p,clientName:m}=Jn(n),h=await c.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{Pb(h.dc.document,a.content,`agent`)},h.origin);let g=await zt(u);if(g?.kind===`failure`){Ut(t,g.failure,`template-put`);return}if(g?.kind===`divergence`){Kt(t,`template-put`);return}hn(u,a.content),ir(e,rr(`template`,i.folderRel,r),`${s?`template-create`:`template-edit`}: ${l}`),await ar(`template-put`),q(t,200,lte,{path:l,created:s,warnings:a.warnings},{handler:`template-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write template.`,{handler:`template-put`,cause:e})}},{handler:`template-put`,method:`PUT`}),no=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Pa(r,t,`template-delete`))return;let i=Na(n.searchParams.get(`folder`)??``,t,`folder`,`template-delete`);if(!i)return;let a=po(n,he);if(a.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-delete`});return}if(Ya(Ro(i.folderRel,r),`template-delete`,t))return;await Sn([Ro(i.folderRel,r)],`deleted-upstream`);let o=Uue({projectDir:i.resolvedContentDir,folder:i.folderRel,name:r});if(!o.ok){let e=o.error.code===`WRITE_ERROR`||o.error.code===`UNLINK_FAILED`||o.error.code===`BAD_PROJECT_DIR`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete template.`:`Invalid template request.`,{handler:`template-delete`,detail:o.error.code,cause:Error(o.error.message)});return}o.existed&&(ir(a,rr(`template`,i.folderRel,r),`template-delete: ${o.path}`),await ar(`template-delete`),Te?.setDeleted(Ro(i.folderRel,r))),q(t,200,Aee,{existed:o.existed,path:o.path},{handler:`template-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete template.`,{handler:`template-delete`,cause:e})}},{handler:`template-delete`,method:`DELETE`,skipBodyParse:!0}),ro=cW({GET:$a,PUT:eo,POST:K(Uee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-move`});return}if(!Pa(n.fromName,t,`template-move`)||!Pa(n.toName,t,`template-move`))return;let r=Na(n.fromFolder,t,`folder`,`template-move`);if(!r)return;let i=Na(n.toFolder,t,`folder`,`template-move`);if(!i||Ya(Ro(r.folderRel,n.fromName),`template-move`,t))return;await Sn([Ro(r.folderRel,n.fromName)],`renamed`);let a=await Wue({projectDir:r.resolvedContentDir,fromFolder:r.folderRel,fromName:n.fromName,toFolder:i.folderRel,toName:n.toName,relocate:async(e,t)=>{let n=await SZ(A,e,t);return n||xZ(e,t),n}});if(!a.ok){if(a.error.code===`TEMPLATE_NOT_FOUND`){let e=Ia(r.resolvedContentDir,r.folderRel,n.fromName);if(e?.scope===`inherited`){G(t,400,`urn:ok:error:invalid-request`,`Template "${n.fromName}" is inherited from "${e.folder||`(root)`}", not local to "${r.folderRel||`(root)`}". Move it from the folder that owns it, or create a local copy here first (then move that).`,{handler:`template-move`,detail:`TEMPLATE_INHERITED`});return}G(t,404,`urn:ok:error:template-not-found`,`Template not found.`,{handler:`template-move`,detail:a.error.message});return}if(a.error.code===`TEMPLATE_EXISTS`){G(t,409,`urn:ok:error:doc-already-exists`,a.error.message,{handler:`template-move`,detail:a.error.code});return}let e=a.error.code===`WRITE_ERROR`||a.error.code===`MOVE_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to move template.`:`Invalid template move request.`,{handler:`template-move`,detail:a.error.code,cause:Error(a.error.message)});return}Te?.setDeleted(Ro(r.folderRel,n.fromName));let o=null;if(n.body!==void 0||n.frontmatter!==void 0){let e;if(typeof n.body==`string`)e=n.body;else try{e=or(B(L(i.resolvedContentDir,a.toPath),`utf-8`))}catch{e=null}if(e===null)o={code:`READ_FAILED`,message:`could not read the moved template to apply the metadata change; the move succeeded with the original content intact — retry the edit`};else{let t=Hue({projectDir:i.resolvedContentDir,folder:i.folderRel,name:n.toName,body:e,frontmatter:za(n.frontmatter)});t.ok||(o=t.error)}}try{hn(Ro(i.folderRel,n.toName),B(L(i.resolvedContentDir,a.toPath),`utf-8`))}catch{}if(ir(e,rr(`template`,i.folderRel,n.toName),`template-rename: ${a.fromPath} -> ${a.toPath}`,[{from:a.fromPath,to:a.toPath}]),await ar(`template-move`),ae?.(`files`),o){let e=o.code===`WRITE_ERROR`||o.code===`READ_FAILED`;G(t,e?500:400,e?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,`Template moved to "${a.toPath}", but updating its content failed.`,{handler:`template-move`,detail:o.code,cause:Error(o.message)});return}q(t,200,To,{from:a.fromPath,to:a.toPath,committed:a.committed},{handler:`template-move`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move template.`,{handler:`template-move`,cause:e})}},{handler:`template-move`,method:`POST`}),DELETE:no},{handler:`template`}),io=K(Xn,async(e,t,n)=>{try{if(Pe){G(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-import`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-import`});return}let r=n.sourcePath;if(!TZ(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid sourcePath.`,{handler:`template-import`});return}let i=wt(r);if(Xx(i)||Zx(i)){G(t,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`template-import`});return}let a=sZ(l,`file`,i);if(!z(a)){G(t,404,`urn:ok:error:doc-not-found`,`Source document not found: ${i}.`,{handler:`template-import`});return}let s=o.documents.get(i);if(n.deleteSource){let e=le?.(),n=new Set(e?e.getConflicts().map(e=>e.file):[]),i=s!==void 0&&mS(s),a=n.has(r);if(i||a){_S(t,new gS({file:r}),`template-import`);return}}let u=``;if(s)u=s.getText(`source`).toString();else{let e=await o.openDirectConnection(i);try{let n=e.document;if(!n){G(t,500,`urn:ok:error:doc-not-available`,`Source document is not available.`,{handler:`template-import`});return}u=n.getText(`source`).toString()}finally{await e.disconnect()}}let d=n.name;if(!d){let{basename:e}=cZ(r);d=e.replace(/\.(md|mdx)$/i,``).replace(/[^A-Za-z0-9_-]/g,`-`).toLowerCase(),d=d.replace(/^[-_]+|[-_]+$/g,``),d||=`imported-template`}if(!Pa(d,t,`template-import`))return;let f=Na(n.targetFolder,t,`folder`,`template-import`);if(!f||Ya(Ro(f.folderRel,d),`template-import`,t))return;let{frontmatter:p,body:m}=Ur(u),h=Fr(p),g={};try{h.trim()&&(g=(0,nk.parse)(h))}catch{}let v=n.title||g?.title||CA(u,d),y=g?.description||``,b=Array.isArray(g?.tags)?g.tags:[],x={...g};delete x.template,delete x.title;let S=``;Object.keys(x).length>0&&(S=`${(0,nk.stringify)(x).trim()}\n`),S=S?`---\n${S}---\n${m}`:m;let C=mj({name:d,body:S,frontmatter:{title:v,description:y,tags:b}});if(!C.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid template request.`,{handler:`template-import`,detail:C.error.code,cause:Error(C.error.message)});return}let w=L(f.resolvedContentDir,f.folderRel,`.ok`,`templates`,`${d}.md`),T=!z(w),E=I(f.resolvedContentDir,w).split(/[\\/]/).filter(Boolean).join(`/`),ee=Ro(f.folderRel,d),{agentId:D,agentName:te,colorSeed:O,clientName:ne}=Jn(n),re=await c.getSession(ee,D,{displayName:te,colorSeed:O,clientName:ne});re.dc.document.transact(()=>{Pb(re.dc.document,C.content,`agent`)},re.origin);let ie=await zt(ee);if(ie?.kind===`failure`){Ut(t,ie.failure,`template-import`);return}if(ie?.kind===`divergence`){Kt(t,`template-import`);return}hn(ee,C.content),ir(e,rr(`template`,f.folderRel,d),`template-import: ${E}`),n.deleteSource&&(await Sn([i],`deleted-upstream`),Te&&Te.setDeleted(i),Fs(a),_?.({kind:`delete`,path:a,docName:i})),await ar(`template-import`),ae?.(`files`),q(t,200,We,{path:E,created:T,warnings:C.warnings},{handler:`template-import`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import template.`,{handler:`template-import`,cause:e})}},{handler:`template-import`,method:`POST`});function ao(e,t,n){return!e||e.length>64||!Co.test(e)?(G(t,400,`urn:ok:error:invalid-request`,`Invalid skill name: lowercase letters, digits, and hyphens only (≤64 chars; no slashes, dots, spaces, or uppercase).`,{handler:n}),!1):!0}function oo(e,t,n){let r=an.safeParse(e??`project`);return r.success?r.data:(G(t,400,`urn:ok:error:invalid-request`,`Invalid skill scope (expected "project" or "global").`,{handler:n}),null)}let co=ge??Ju(),lo=uve({contentDir:l,skillsHome:co,effectiveInstallMode:wo});function uo(e){return L(e===`global`?co:l,`.ok`,`skills`)}function fo(e,t,n){let r=L(uo(e),t);if(e===`global`){if(n!==void 0){let e=pL(co).find(e=>e.name===t&&e.hosts.includes(n));return e?L(co,e.dir):null}let e=mL(co,t);return e===null?z(F(r,`SKILL.md`))?r:null:e}let i=fL(l).find(e=>e.name===t&&(n===void 0||e.hosts.includes(n)));return i?L(l,i.dir):n===void 0&&z(F(r,`SKILL.md`))?r:null}function po(e,t){let n=e.searchParams;return ok({agentId:n.get(`agentId`)??void 0,agentName:n.get(`agentName`)??void 0,colorSeed:n.get(`colorSeed`)??void 0,clientName:n.get(`clientName`)??void 0,clientVersion:n.get(`clientVersion`)??void 0,label:n.get(`label`)??void 0,summary:n.get(`summary`)??void 0},t)}function ho(e,t){let n=e===`project`?A:co;if(!n)return`symlink`;try{return Ts(F(n,...CD)).skills[t]===void 0?`symlink`:`copy`}catch{return`symlink`}}function _o(e){let t=e===`project`?A:co;return t?F(t,...CD):null}function vo(e,t,n,r={}){let i=_o(e);return i?fJ(i,e=>{let i=e.skills[t];if(!i)return e;let a={...e.skills};return delete a[t],a[n]={...i,...r},{...e,skills:a}}):Promise.resolve()}async function yo(e,t,n){let r=_o(e),i=_o(t);if(!r||!i)return!1;let a=dJ(r).skills[n];if(!a)return!1;let o={...a};return t===`global`&&delete o.baselineRef,await fJ(i,e=>({...e,skills:{...e.skills,[n]:o}})),await fJ(r,e=>{let t={...e.skills};return delete t[n],{...e,skills:t}}),!0}function bo(e,t,n){let r=_o(e);return r?fJ(r,e=>{let r=e.skills[t];return r?{...e,skills:{...e.skills,[t]:{...r,...n}}}:e}):Promise.resolve()}function xo(e,t,n){let[r,i]={"no-shadow":[409,`urn:ok:error:shadow-not-configured`],"version-not-found":[404,`urn:ok:error:not-found`],"skill-absent":[404,`urn:ok:error:not-found`],"io-error":[500,`urn:ok:error:storage-error`],"path-escape":[500,`urn:ok:error:path-escape`]}[t.code];G(e,r,i,t.error,{handler:n,detail:t.code})}function wo(e,t,n){let r=e===`project`?A:co;return(r?cve(r,t):void 0)||(n.hosts.length-1<=0||n.linkedHosts.some(e=>n.hosts.includes(e))?`link`:`copy`)}function Do(e){let t=fo(`project`,e);return t?I(l,t).split(R).join(`/`):`${_r}/${e}`}let Oo=JF.project;function ko(e,t,n){let r=[],i=null,a=[...Vn.map(e=>({id:e,root:fr[e]??``})),{id:`agents`,root:Eo}];for(let{id:o,root:s}of a){if(!s)continue;let a=L(e,...s.split(`/`),t);z(L(a,`SKILL.md`))&&(r.push(o),(n===void 0?i===null:o===n)&&(i=a))}if(i===null)return null;let o=L(i,`SKILL.md`);return{dir:i,skillMd:o,hosts:r,relPath:I(e,o).split(/[\\/]/).filter(Boolean).join(`/`)}}function Ao(e){let t=NO(e.source,e.pluginProvider);return{source:e.source,...e.publisher===void 0?{}:{publisher:e.publisher},...e.skill===void 0?{}:{skill:e.skill},...t?{marketplaceUrl:t}:{},importedAt:e.importedAt,...e.autoUpdate===void 0?{}:{autoUpdate:e.autoUpdate}}}function Mo(e,t){if(!XF(t))return null;let n=ko(e,t);if(!n)return null;let r=zD(n.dir)?.contentHash??``,i;try{i=Wu(n.skillMd).mtime.toISOString()}catch{i=new Date(0).toISOString()}return{source:La,skill:t,contentHash:r,autoUpdate:!1,importedAt:i}}function Po(e,t,n){let r=ko(e,t);if(!r)return null;let i;try{let{frontmatter:e}=Qa(B(r.skillMd,`utf-8`));typeof e.description==`string`&&(i=e.description)}catch{}let a=Mo(e,t);return{name:t,...i===void 0?{}:{description:i},scope:n,path:r.relPath,absolutePath:r.skillMd,installed:r.hosts.length>0,hosts:r.hosts,managed:!0,...a?{origin:Ao(a)}:{}}}function Fo(e,t,n){return XF(e)?(G(t,400,`urn:ok:error:reserved-doc-name`,`"${e}" is one of OpenKnowledge's runtime skills — its content is read-only in-app (updates arrive via reimport). Duplicate it under a new name to make your own version.`,{handler:n}),!0):!1}function Ro(e,t){return ste(e,t)}function Uo(e){return e===`navigation`||e===`relevance`?e:void 0}function Wo(e,t){return I(t===`global`?co:l,e).split(/[\\/]/).filter(Boolean).join(`/`)}function Go(e){return e===`global`?co:A}async function qo(e,t,n,r={}){let i=await vN(e,t),a=n===`project`?l:co;if(r.purge!==void 0){ZI(t,e,Vn,zI(n));for(let e of xhe(a,n,t,r.purge.contentHash))Ws(e,{recursive:!0,force:!0});return i!==null}if(!z(L(uo(n),t,`SKILL.md`))){let r=(n===`project`?fL(l):pL(co)).find(e=>e.name===t);if(r){let a=n===`project`?l:co,o=L(a,r.dir),s=L(a,`.agents`,`skills`),c=F(s,t);if(z(s)&&!z(F(c,`SKILL.md`))){let e=!1;try{e=V(o)===V(c)}catch{e=!1}e||Us(o,c,{recursive:!0,dereference:!0})}return XI({canonicalAbs:z(F(c,`SKILL.md`))?c:o,canonicalHash:r.contentHash,name:t,cwd:e,targets:[...Vn],roots:zI(n)}),i!==null}}return ZI(t,e,Vn,zI(n)),i!==null}function Yo(e,t){let n=[];if(!z(e))return{skills:n,truncated:!1};let r;try{r=zu(e,{withFileTypes:!0})}catch(r){return N(`skills`).warn({err:r,skillsRoot:e,scope:t},`failed to read skills root — returning empty skills list`),{skills:n,truncated:!1}}let i=!1;for(let a of r.sort((e,t)=>e.name.localeCompare(t.name))){if(!a.isDirectory()||!Co.test(a.name))continue;if(n.length>=500){i=!0;break}let r=L(e,a.name,`SKILL.md`);if(!z(r))continue;let o;try{let{frontmatter:e}=Qa(B(r,`utf-8`));typeof e.description==`string`&&(o=e.description)}catch{}n.push({name:a.name,...o===void 0?{}:{description:o},scope:t,path:Wo(r,t),absolutePath:r})}return{skills:n,truncated:i}}function Xo(e){return`!/${P(e).split(R).join(`/`)}/`}let Zo=K(ot,MB(async(e,t,n)=>{if(!ao(n.name,t,`skill-track-in-git`))return;if(n.scope!==`project`){G(t,400,`urn:ok:error:invalid-request`,`Only project skills live in the repository; a global skill is outside any .gitignore.`,{handler:`skill-track-in-git`});return}if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project directory.`,{handler:`skill-track-in-git`});return}let r=fL(l).find(e=>e.name===n.name)?.dir??`.ok/skills/${n.name}`,i=ZX(L(l,r,`SKILL.md`),l)??`${r}/SKILL.md`,a=P(i),o=i,s=Xo(a),c=`.gitignore`,u=L(l,c);if(xe&&!xe.isPathIgnored(o)){q(t,200,Sr,{line:s,gitignorePath:c,applied:!1,alreadyTracked:!0},{handler:`skill-track-in-git`});return}if(n.apply!==!0){q(t,200,Sr,{line:s,gitignorePath:c,applied:!1},{handler:`skill-track-in-git`});return}let d=z(u)?B(u,`utf-8`):null;if((d??``).split(`
1177
1177
  `).some(e=>e.trim()===s)){G(t,409,`urn:ok:error:invalid-request`,`"${s}" is already in ${c}, but ${o} is still ignored — another rule excludes it.`,{handler:`skill-track-in-git`});return}if(Ku(u,`${d===null||d.endsWith(`
1178
1178
  `)||d===``?d??``:`${d}\n`}${s}\n`,`utf-8`),await xe?.rebuildIgnorePatterns(),xe?.isPathIgnored(o)){d===null?Hu(u,{force:!0}):Ku(u,d,`utf-8`),await xe.rebuildIgnorePatterns(),G(t,409,`urn:ok:error:invalid-request`,`Adding "${s}" did not make ${o} trackable — another .gitignore rule excludes a parent directory. ${c} was left unchanged.`,{handler:`skill-track-in-git`});return}ae?.(`files`),q(t,200,Sr,{line:s,gitignorePath:c,applied:!0},{handler:`skill-track-in-git`})},{handler:`skill-track-in-git`,title:`Failed to update .gitignore.`}),{handler:`skill-track-in-git`,method:`POST`}),Qo={lastKey:null},es=K(Tn,MB(async(e,t)=>{let n=uo(`project`),r=Yo(n,`project`),i=Yo(uo(`global`),`global`),a=A?ohe(A):[],o=MI(co).map(e=>e.editorId),s=A?hN(A).skills:{},c=hN(co).skills,u=A?DD(z(F(A,...CD))?B(F(A,...CD),`utf-8`):``)??null:null,d=Ao,f=(e,t,r)=>e.skills.map(e=>{let i=t[e.name]?.hosts??[],a=r?u?.skills[e.name]:void 0,o=a?d(a):void 0,s=a?.localHash!==void 0&&Es(n,e.name)!==a.localHash,c=a?.baselineRef!==void 0;return{...e,installed:i.length>0,hosts:i,...o?{origin:o}:{},...s?{modified:!0}:{},...c?{revertable:!0}:{}}}),p=A?eX(A):{},m=(e,t,n)=>{let r=[];for(let i of t??[]){let t=L(e,i.path);if(n!==void 0&&t===L(n))continue;let a=!1;try{a=Mu(t).isSymbolicLink()}catch{continue}if((a?`link`:`copy`)!==i.mode){if(a&&n!==void 0)try{if(V(t)===V(n))continue}catch{}r.push(i.path)}}return{drift:r}},h=A?rL(l,`project`):{},g=cL(h,`project`),_=(e,t)=>[...t].some(t=>e===t||e.startsWith(`${t}/`)),v=oL(`project`),y=oL(`global`),b=(e,t)=>(e??[]).filter(e=>![...t].some(t=>e.path===t||e.path.startsWith(`${t}/`))),x=new Set,S=A?fL(l).map(e=>{let t=!x.has(e.name);x.add(e.name);let n=t?u?.skills[e.name]??Mo(l,e.name):void 0,r=n?d(n):void 0,i=n?.localHash!==void 0&&e.contentHash!==n.localHash;return{name:e.name,...e.description?{description:e.description}:{},scope:`project`,path:`${e.dir}/SKILL.md`,absolutePath:L(l,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],size:e.size,installableEditors:a,...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(h).length>0?{hostAliases:h}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...(()=>{let n=b(t?p[e.name]:void 0,g).filter(e=>!_(e.path,v));return n.length?{customPlacements:n.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...(()=>{let n=m(A,b(t?p[e.name]:void 0,g),L(l,e.dir));return n.drift.length>0?{driftPaths:n.drift}:{}})(),...wo(`project`,e.name,e)===`link`?{linkMode:!0}:{},...r?{origin:r}:{},...i?{modified:!0}:{},...n?.baselineRef===void 0?{}:{revertable:!0},...XF(e.name)?{managed:!0}:{}}}):[],C=eX(co),w=Ts(F(co,...CD)),T=rL(co,`global`),E=cL(T,`global`),ee=new Set(pL(co).map(e=>e.name));i.skills=i.skills.filter(e=>!ee.has(e.name));let D=new Set,te=pL(co).map(e=>{let t=!D.has(e.name);D.add(e.name);let n=t?C[e.name]:void 0;return{name:e.name,...e.description?{description:e.description}:{},scope:`global`,path:`${e.dir}/SKILL.md`,absolutePath:L(co,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],size:e.size,installableEditors:o,...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(T).length>0?{hostAliases:T}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...(()=>{let t=m(co,b(n,E),L(co,e.dir));return t.drift.length>0?{driftPaths:t.drift}:{}})(),...(()=>{let e=b(n,E).filter(e=>!_(e.path,y));return e.length?{customPlacements:e.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...wo(`global`,e.name,e)===`link`?{linkMode:!0}:{},...XF(e.name)?{managed:!0}:{},...(()=>{if(!t)return{};let n=w.skills[e.name]??Mo(co,e.name);return n?{origin:d(n),...n.localHash!==void 0&&e.contentHash!==n.localHash?{modified:!0}:{}}:{}})()}}),O=new Set(S.map(e=>e.name)),ne=A&&!r.skills.some(e=>e.name===Oo)&&!O.has(Oo)?Po(A,Oo,`project`):null,re=new Set(te.map(e=>e.name)),ie=$F.map(e=>JF[e]).filter(e=>!i.skills.some(t=>t.name===e)&&!re.has(e)).map(e=>Po(co,e,`global`)).filter(e=>e!==null),k=new Set(S.map(e=>e.name)),ae={skills:[...f(r,s,!0).filter(e=>!k.has(e.name)),...S,...f(i,c,!1),...te,...ne?[ne]:[],...ie].map(e=>{let t=e.scope===`project`&&e.absolutePath?ZX(e.absolutePath,l):null,n=t===null||t===e.path?e:{...e,canonicalPath:t},r=t??e.path;return e.scope===`project`&&xe?.isPathIgnored(r)===!0?{...n,ignored:!0}:n}),truncated:r.truncated||i.truncated};await Bve(S.map(e=>e.path),xe??null,Qo),q(t,200,yn,ae,{handler:`skills-list`})},{handler:`skills-list`,title:`Failed to list skills.`}),{handler:`skills-list`,method:`GET`,skipBodyParse:!0}),ts=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!ao(r,t,`skill-get`))return;let i=oo(n.searchParams.get(`scope`),t,`skill-get`);if(i===null)return;if(XF(r)){let e=i===`global`?co:A,a=e?ko(e,r,n.searchParams.get(`host`)??void 0):null;if(a){let{frontmatter:e,body:n}=Qa(await td(a.skillMd,`utf-8`));q(t,200,ti,{skill:{name:r,scope:i,path:a.relPath,frontmatter:{name:typeof e.name==`string`?e.name:r,description:typeof e.description==`string`?e.description:``},body:n,files:$I(a.dir),managed:!0}},{handler:`skill-get`});return}}let a=n.searchParams.get(`host`)??void 0,o=fo(i,r,a);if(o===null){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-get`,detail:a===void 0?`Skill "${r}" not found in ${i} scope.`:`No skill "${r}" (${i}) in ${a}.`});return}let s=L(o,`SKILL.md`),{frontmatter:c,body:l}=Qa(await td(s,`utf-8`));q(t,200,ti,{skill:{name:r,scope:i,path:Wo(s,i),frontmatter:{name:typeof c.name==`string`?c.name:r,description:typeof c.description==`string`?c.description:``},body:l,files:$I(o)}},{handler:`skill-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill.`,{handler:`skill-get`,cause:e})}},{handler:`skill-get`,method:`GET`,skipBodyParse:!0});async function ns(e,t){if(!(!k||rS(e))){if(xe)try{await xe.rebuildIgnorePatterns()}catch{}await en(e,t,`skill-put`)}}let rs=K(lee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-put`});return}if(!ao(n.name,t,`skill-put`)||Fo(n.name,t,`skill-put`))return;let r=ZA({name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!r.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill request.`,{handler:`skill-put`,detail:r.error.code,cause:Error(r.error.message)});return}let i=n.scope===`project`?l:co,a=fo(n.scope,n.name);if(a===null){let a=lL(i,n.scope);if(a===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-put`,detail:`NO_USABLE_SKILL_HOME`});return}let o=QA({skillsRoot:L(i,a),name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!o.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill request.`,{handler:`skill-put`,detail:o.error.code,cause:Error(o.error.message)});return}n.scope===`project`&&(ir(e,`${a}/${n.name}/SKILL`,`skill-create: ${a}/${n.name}/SKILL.md`),await ar(`skill-put`)),await ns(n.scope===`project`?`${a}/${n.name}/SKILL`:Fa(`global`,n.name),r.content),ae?.(`files`),q(t,200,va,{path:`${a}/${n.name}/SKILL.md`,created:!0,warnings:[...r.warnings,...o.warnings]},{handler:`skill-put`});return}let o=I(i,a).split(R).join(`/`),s=`${o}/SKILL.md`,u=n.scope===`project`?`${o}/SKILL`:Fa(n.scope,n.name);if(Xa(u,`skill-put`,t))return;let{agentId:d,agentName:f,colorSeed:p,clientName:m}=Jn(n),h=await c.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{Pb(h.dc.document,r.content,`agent`)},h.origin);let g=await zt(u);if(g?.kind===`failure`){Ut(t,g.failure,`skill-put`);return}if(g?.kind===`divergence`){Kt(t,`skill-put`);return}n.scope===`project`&&(ir(e,rr(`skill`,``,n.name),`skill-edit: ${s}`),await ar(`skill-put`)),await ns(u,r.content),ae?.(`files`),q(t,200,va,{path:s,created:!1,warnings:r.warnings},{handler:`skill-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write skill.`,{handler:`skill-put`,cause:e})}},{handler:`skill-put`,method:`PUT`});function is(e,t){let n=e===`project`?l:co,r=fo(e,t);return{root:r===null?uo(e):P(r),dirRel:r===null?`.ok/skills/${t}`:I(n,r).split(R).join(`/`),realDir:r}}function os(e,t){let n=e===`project`?l:co,r=(e===`project`?fL(l):pL(co)).find(e=>e.name===t);r&&XI({canonicalAbs:L(n,r.dir),canonicalHash:r.contentHash,name:t,cwd:n,targets:r.hosts.filter(e=>go(e)),roots:zI(e)})}let ss=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!ao(r,t,`skill-delete`))return;let i=oo(n.searchParams.get(`scope`),t,`skill-delete`);if(i===null)return;let{root:a,dirRel:o}=is(i,r),s=po(n,he);if(s.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-delete`});return}await Sn(i===`project`?[...new Set([`${o}/SKILL`,Fa(i,r)])]:[Fa(i,r)],`deleted-upstream`),os(i,r);let c=rj({skillsRoot:a,name:r}),l=uo(i);if(c.ok&&l!==a&&z(L(l,r,`SKILL.md`))){let e=rj({skillsRoot:l,name:r});e.ok||Y.warn({name:r,scope:i,detail:e.error.code},`[skill-delete] legacy store resident survived the delete`)}if(!c.ok){let e=c.error.code===`UNLINK_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete skill.`:`Invalid skill request.`,{handler:`skill-delete`,detail:c.error.code,cause:Error(c.error.message)});return}c.existed&&(i===`project`&&(ir(s,o,`skill-delete: ${o}`),await ar(`skill-delete`)),ae?.(`files`));let u=Go(i);u&&await qo(u,r,i),q(t,200,li,{existed:c.existed,path:c.path},{handler:`skill-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete skill.`,{handler:`skill-delete`,cause:e})}},{handler:`skill-delete`,method:`DELETE`,skipBodyParse:!0}),cs=K(Jo,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-move`});return}if(!ao(n.fromName,t,`skill-move`)||!ao(n.toName,t,`skill-move`)||Fo(n.toName,t,`skill-move`))return;let{root:r,dirRel:i}=is(n.scope,n.fromName);if(fo(n.scope,n.toName)!==null){G(t,409,`urn:ok:error:doc-already-exists`,`A skill named "${n.toName}" already exists.`,{handler:`skill-move`});return}let a=Go(n.scope),o=a?hN(a).skills[n.fromName]:void 0,s=n.scope===`project`?l:co,c=(n.scope===`project`?fL(l):pL(co)).find(e=>e.name===n.fromName),u=c?P(c.dir):null,d=u===null?[]:Object.entries(rL(s,n.scope)).filter(([,e])=>e===u).map(([e])=>e),f=[...new Set([...o?FI(o.hosts):[],...c?FI(c.hosts):[],...FI(d)])];await Sn(n.scope===`project`?[...new Set([`${i}/SKILL`,Fa(n.scope,n.fromName)])]:[Fa(n.scope,n.fromName)],`renamed`),os(n.scope,n.fromName);let p=await Iue({skillsRoot:r,fromName:n.fromName,toName:n.toName,relocate:async(e,t)=>{let n=await SZ(A,e,t);return n||xZ(e,t),n}});if(!p.ok){if(p.error.code===`SKILL_NOT_FOUND`){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move`,detail:p.error.message});return}if(p.error.code===`SKILL_EXISTS`){G(t,409,`urn:ok:error:doc-already-exists`,p.error.message,{handler:`skill-move`,detail:p.error.code});return}let e=p.error.code===`MOVE_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to move skill.`:`Invalid skill move request.`,{handler:`skill-move`,detail:p.error.code,cause:Error(p.error.message)});return}let m=null,h=L(r,n.toName,`SKILL.md`),g=``,_=``;try{let e=Qa(B(h,`utf-8`));g=e.body,typeof e.frontmatter.description==`string`&&(_=e.frontmatter.description)}catch{}let v=typeof n.body==`string`?n.body:g,y=n.frontmatter===void 0?_:n.frontmatter.description,b=QA({skillsRoot:r,name:n.toName,body:v,frontmatter:{name:n.toName,description:y}});b.ok||(m=b.error);let x=[];if(!m)try{x=Ohe({base:n.scope===`project`?l:co,scope:n.scope,fromName:n.fromName,toName:n.toName})}catch(e){N(`skill-move`).warn({err:e,fromName:n.fromName,toName:n.toName},`skill-ref rewrite failed — rename succeeded, refs to the old name are left as authored`)}if(n.scope===`project`&&!m)try{await xe?.rebuildIgnorePatterns(),await ys(r,n.fromName,n.toName),await bs(x,n.toName)}catch(e){N(`skill-move`).warn({err:e,fromName:n.fromName,toName:n.toName},`reindex of moved project skill docs failed — rename succeeded, deferring to next rescan`)}let S=Wo(L(r,n.fromName),n.scope),C=Wo(L(r,n.toName),n.scope);n.scope===`project`&&(ir(e,rr(`skill`,``,n.toName),`skill-rename: ${S} -> ${C}`,[{from:S,to:C}]),await ar(`skill-move`));let w=Es(r,n.toName),T=n.scope===`project`?await Ds(ks(e),C):void 0;if(await vo(n.scope,n.fromName,n.toName,{localHash:w,...n.scope===`project`?{baselineRef:T}:{}}),a){await vN(a,n.fromName),ZI(n.fromName,a,f,zI(n.scope));let e=L(r,n.toName);if(f.length>0){let t=WI(e,n.toName,a,f,ho(n.scope,n.toName),zI(n.scope));await _N(a,n.toName,{...o,scope:n.scope,hosts:t,scripts:o?.scripts??LI(e,n.toName).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}}if(ae?.(`files`),m){let e=m.code===`WRITE_ERROR`;G(t,e?500:400,e?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,`Skill renamed to "${n.toName}", but updating its SKILL.md failed — its name frontmatter may not match the new directory.`,{handler:`skill-move`,detail:m.code,cause:Error(m.message)});return}q(t,200,xt,{from:S,to:C,committed:p.committed},{handler:`skill-move`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill.`,{handler:`skill-move`,cause:e})}},{handler:`skill-move`,method:`POST`}),ls=K(Ree,async(e,t,n)=>{let{name:r,home:i}=n;if(!ao(r,t,`skill-edit-external`))return;let a;try{a=V(i)}catch{G(t,404,`urn:ok:error:not-found`,`Skill directory not found.`,{handler:`skill-edit-external`,detail:`HOME_NOT_FOUND`});return}if(!Wu(a).isDirectory()||!z(L(a,`SKILL.md`))){G(t,400,`urn:ok:error:invalid-request`,`Not a skill directory (no SKILL.md).`,{handler:`skill-edit-external`});return}XR(r,a),q(t,200,Xee,{docName:eee(r)},{handler:`skill-edit-external`})},{handler:`skill-edit-external`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`skill-edit-external`})}),ds=K(Cee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-move-scope`});return}let{name:r,fromScope:i,toScope:a}=n;if(!ao(r,t,`skill-move-scope`))return;if(i===a){G(t,400,`urn:ok:error:invalid-request`,`Source and destination scope are the same.`,{handler:`skill-move-scope`});return}if(a===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`Cannot move to project scope — no project root is resolved for this server.`,{handler:`skill-move-scope`,detail:`NO_PROJECT_ROOT`});return}let{root:o,dirRel:s,realDir:c}=is(i,r),u=L(o,r),d=(()=>{try{return V(u)}catch{return u}})(),f=a===`project`?l:co,p=lL(f,a);if(p===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available in the destination scope.`,{handler:`skill-move-scope`,detail:`NO_USABLE_SKILL_HOME`});return}let m=L(f,p),h=L(m,r);if(c===null||!z(u)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move-scope`,detail:`Skill "${r}" not found in ${i} scope.`});return}if(L(c)===L(h)||z(h)&&V(c)===V(h)){G(t,409,`urn:ok:error:doc-already-exists`,`The source and destination resolve to the same skill directory.`,{handler:`skill-move-scope`,detail:`SAME_STORAGE`});return}if(fo(a,r)!==null||z(h)){G(t,409,`urn:ok:error:doc-already-exists`,`A ${a} skill named "${r}" already exists.`,{handler:`skill-move-scope`});return}let g=Go(i),_=Go(a),v=g?hN(g).skills[r]:void 0,y=i===`project`?l:co,b=(i===`project`?fL(l):pL(co)).find(e=>e.name===r),x=b?P(b.dir):null,S=x===null?[]:Object.entries(rL(y,i)).filter(([,e])=>e===x).map(([e])=>e),C=[...new Set([...v?FI(v.hosts):[],...b?FI(b.hosts):[],...FI(S)])];await Sn([...new Set([...i===`project`?[`${s}/SKILL`]:[],Fa(i,r),Fa(a,r)])],`renamed`),Bs(m,{recursive:!0}),Us(d,h,{recursive:!0,dereference:!0}),os(i,r);let w=rj({skillsRoot:o,name:r});if(w.ok&&d!==u){let e=I((()=>{try{return V(y)}catch{return y}})(),d);e!==``&&!e.startsWith(`..`)&&!gu(e)&&Ws(d,{recursive:!0,force:!0})}if(!w.ok){rj({skillsRoot:m,name:r}),G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill (source removal failed); rolled back the copy.`,{handler:`skill-move-scope`,detail:w.error.code,cause:Error(w.error.message)});return}let T=await yo(i,a,r);if(g&&await qo(g,r,i,b?{purge:{contentHash:b.contentHash}}:{}),g&&await lve(g,r),_&&C.length>0){let e=WI(h,r,_,C,ho(a,n.name),zI(a));await _N(_,r,{...v,scope:a,hosts:e,scripts:v?.scripts??LI(h,r).hasScripts,installedAt:v?.installedAt??new Date().toISOString()})}if((i===`project`||a===`project`)&&(ir(e,i===`project`?s:I(l,h).split(R).join(`/`),`skill-move-scope: ${i} -> ${a} ${r}`),await ar(`skill-move-scope`)),T){let t=Es(m,r),n=a===`project`?await Ds(ks(e),I(l,h).split(R).join(`/`)):void 0;await bo(a,r,{localHash:t,...a===`project`?{baselineRef:n}:{}})}if(!z(F(h,`SKILL.md`))){G(t,500,`urn:ok:error:internal-server-error`,`The move did not leave a readable skill at the destination; nothing was reported as moved.`,{handler:`skill-move-scope`,detail:I(f,h).split(R).join(`/`)});return}await xe?.rebuildIgnorePatterns(),ae?.(`files`),q(t,200,Ot,{scope:a,path:I(f,h).split(R).join(`/`)},{handler:`skill-move-scope`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill across scopes.`,{handler:`skill-move-scope`,cause:e})}},{handler:`skill-move-scope`,method:`POST`}),ps=K(rte,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-duplicate`});return}if(!ao(n.name,t,`skill-duplicate`)||!ao(n.toName,t,`skill-duplicate`)||Fo(n.toName,t,`skill-duplicate`))return;let r=fo(n.scope,n.name);if(r===null||!z(F(r,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-duplicate`,detail:`SOURCE_NOT_FOUND`});return}let i=n.scope===`project`?l:co,a=lL(i,n.scope);if(a===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-duplicate`,detail:`NO_USABLE_SKILL_HOME`});return}let o=L(i,a),s=L(o,n.toName);if(fo(n.scope,n.toName)!==null||z(s)){G(t,409,`urn:ok:error:doc-already-exists`,`A ${n.scope} skill named "${n.toName}" already exists.`,{handler:`skill-duplicate`});return}let c=zD(r);if(!c){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-duplicate`});return}Bs(o,{recursive:!0}),Us(r,s,{recursive:!0,dereference:!0});let{fenced:u,body:d}=mo(c.skillMd),f=Ha(u,{name:n.toName});if(!f.ok){rj({skillsRoot:o,name:n.toName}),G(t,400,`urn:ok:error:invalid-request`,`Failed to write duplicated skill.`,{handler:`skill-duplicate`,detail:f.error.kind});return}try{Ys(F(s,`SKILL.md`),`${f.nextFenced}${d}`)}catch(e){throw rj({skillsRoot:o,name:n.toName}),e}if(n.scope===`project`){let t=I(l,s).split(R).join(`/`);ir(e,rr(`skill`,``,n.toName),`skill-duplicate: ${n.name} -> ${t}`),await ar(`skill-duplicate`)}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,ute,{name:n.toName},{handler:`skill-duplicate`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to duplicate skill.`,{handler:`skill-duplicate`,cause:e})}},{handler:`skill-duplicate`,method:`POST`}),ms=cW({GET:ts,PUT:rs,POST:cs,DELETE:ss},{handler:`skill`});function hs(e){if(e.includes(`\0`))return null;let t=e.replace(/\\/g,`/`).split(`/`).filter(e=>e!==``&&e!==`.`);return t.length<1||t.some(e=>e===`..`)||t.length===1&&t[0].toLowerCase()===`skill.md`?null:t[0]===`references`&&t.length>=2?`reference`:t[0]===`scripts`&&t.length>=2?`script`:`file`}function gs(e,t,n){return e===`project`&&t===`reference`&&n.toLowerCase().endsWith(`.md`)}function _s(e,t){let n=t.replace(/\.md$/i,``);return`${Hee(e).replace(/\/SKILL$/,``)}/${n}`}function vs(e,t){let n=L(e,t,`references`);if(!z(n))return[];let r=[],i=(e,t)=>{for(let n of zu(e,{withFileTypes:!0})){let a=t?`${t}/${n.name}`:n.name;n.isDirectory()?i(L(e,n.name),a):n.isFile()&&n.name.toLowerCase().endsWith(`.md`)&&r.push(`references/${a}`)}};return i(n,``),r}async function ys(e,t,n){if(!k){N(`skill-move`).warn({fromName:t,toName:n},`no derived-document index available — skipping re-index of the moved skill (its old entries will be dropped with no replacement)`);return}let r=[],i=(e,t,n)=>{let i;try{i=B(n,`utf-8`)}catch(i){N(`skill-move`).warn({err:i,absFile:n,oldDocName:e,newDocName:t},`relocated skill file unreadable after move — dropping the old index entry with no replacement`),r.push({kind:`delete`,documentName:e});return}r.push({kind:`rename`,oldDocumentName:e,newDocumentName:t,markdown:i})},a=I(l,e).split(R).join(`/`),o=(e,t)=>`${a}/${e}/${t?t.replace(/\.mdx?$/i,``):`SKILL`}`;i(o(t),o(n),L(e,n,`SKILL.md`));for(let r of vs(e,n))i(o(t,r),o(n,r),L(e,n,r));await k.recordDirectMutations(r)}async function bs(e,t){if(!k||e.length===0)return;let n=[];for(let r of e)r.dir.split(`/`).pop()!==t&&n.push({kind:`link-rewrite`,documentName:`${r.dir}/${r.rel.replace(/\.mdx?$/i,``)}`,markdown:r.markdown});n.length>0&&await k.recordDirectMutations(n)}let xs=cW({GET:K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!ao(r,t,`skill-file-get`))return;let i=oo(n.searchParams.get(`scope`),t,`skill-file-get`);if(i===null)return;let a=n.searchParams.get(`path`)??``,o=XF(r)?i===`global`?co:A:void 0,s=n.searchParams.get(`host`)??void 0,c=o?ko(o,r,s):null;if(a===``||a.includes(`\0`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill file path.`,{handler:`skill-file-get`});return}let l=(c&&a===`SKILL.md`?`reference`:hs(a))??`reference`,u=s,d=o?c?.dir??null:fo(i,r,u);if(d===null&&u!==void 0){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-get`,detail:`No skill "${r}" (${i}) in ${u}.`});return}let f=d??L(uo(i),r),p=L(f,a);if(p!==f&&!p.startsWith(`${f}${R}`)){G(t,400,`urn:ok:error:invalid-request`,`Skill file path escapes the skill dir.`,{handler:`skill-file-get`});return}let m=p,h=a;if(!z(m)){let e=a.match(/^(.*)\.(?:md|mdx)$/),n=e?cn.map(t=>`${e[1]}${t}`).find(e=>e!==a&&z(L(f,e))):void 0;if(n===void 0){G(t,404,`urn:ok:error:not-found`,`Skill file not found.`,{handler:`skill-file-get`,detail:`${a} not found in skill "${r}" (${i}).`});return}h=n,m=L(f,n)}let g=await td(m);if(g.includes(0)){G(t,415,`urn:ok:error:invalid-request`,`Skill file is binary — only text bundle files are readable via MCP.`,{handler:`skill-file-get`});return}q(t,200,Bee,{path:h.replace(/\\/g,`/`),kind:l,text:g.toString(`utf-8`)},{handler:`skill-file-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill file.`,{handler:`skill-file-get`,cause:e})}},{handler:`skill-file-get`,method:`GET`,skipBodyParse:!0}),PUT:K(Gee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-put`});return}if(!ao(n.name,t,`skill-file-put`)||Fo(n.name,t,`skill-file-put`))return;let r=hs(n.path);if(r===null){G(t,400,`urn:ok:error:invalid-request`,"Invalid skill file path (must name a file inside the skill dir, no `..`).",{handler:`skill-file-put`});return}if(Buffer.byteLength(n.content,`utf-8`)>262144){G(t,400,`urn:ok:error:invalid-request`,`Skill file exceeds the 256 KB per-file cap.`,{handler:`skill-file-put`});return}let i=fo(n.scope,n.name);if(i===null||!z(F(i,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-put`,detail:`Create skill "${n.name}" before adding bundle files.`});return}let a=I(n.scope===`project`?l:co,i).split(R).join(`/`),o=n.path.replace(/\\/g,`/`),s=gs(n.scope,r,o),u;if(s){let e=`${a}/${o.replace(/\.mdx?$/i,``)}`;if(Xa(e,`skill-file-put`,t))return;if(u=!z(L(i,o)),u&&ej(i)>=50){G(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" already holds 50 bundle files (the cap) — delete one before adding another.`,{handler:`skill-file-put`});return}let{agentId:r,agentName:s,colorSeed:l,clientName:d}=Jn(n),f=await c.getSession(e,r,{displayName:s,colorSeed:l,clientName:d});f.dc.document.transact(()=>{Pb(f.dc.document,n.content,`agent`)},f.origin);let p=await zt(e);if(p?.kind===`failure`){Ut(t,p.failure,`skill-file-put`);return}if(p?.kind===`divergence`){Kt(t,`skill-file-put`);return}}else{let e=tj({skillsRoot:P(i),name:n.name,relPath:o,content:n.content});if(!e.ok){let n=e.error.code===`WRITE_ERROR`?500:e.error.code===`SKILL_NOT_FOUND`?404:400;G(t,n,n===500?`urn:ok:error:internal-server-error`:n===404?`urn:ok:error:not-found`:`urn:ok:error:invalid-request`,n===500?`Failed to write skill file.`:`Invalid skill file request.`,{handler:`skill-file-put`,detail:e.error.code,cause:Error(e.error.message)});return}u=e.created}n.scope===`project`&&(ir(e,rr(`skill`,``,n.name),`${u?`skill-file-create`:`skill-file-edit`}: ${a}/${o}`),await ar(`skill-file-put`)),ae?.(`files`),q(t,200,ite,{path:o,created:u,kind:r,content:s},{handler:`skill-file-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write skill file.`,{handler:`skill-file-put`,cause:e})}},{handler:`skill-file-put`,method:`PUT`}),DELETE:K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams,i=r.get(`name`)??``;if(!ao(i,t,`skill-file-delete`)||Fo(i,t,`skill-file-delete`))return;let a=oo(r.get(`scope`),t,`skill-file-delete`);if(a===null)return;let o=(r.get(`path`)??``).replace(/\\/g,`/`),s=hs(o);if(s===null){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill file path (must name a file inside the skill dir).`,{handler:`skill-file-delete`});return}let c=po(n,he);if(c.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-delete`});return}let u=fo(a,i),d=u===null?uo(a):P(u);if(z(L(u??F(d,i),o))&&gs(a,s,o)){let e=o.replace(/\.md$/i,``);await Sn([u===null?_s(i,o):`${I(l,u).split(R).join(`/`)}/${e}`],`deleted-upstream`)}let f=nj({skillsRoot:d,name:i,relPath:o});if(!f.ok){let e=f.error.code===`UNLINK_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete skill file.`:`Invalid skill file request.`,{handler:`skill-file-delete`,detail:f.error.code,cause:Error(f.error.message)});return}f.existed&&a===`project`&&(ir(c,rr(`skill`,``,i),`skill-file-delete: ${u===null?`${i}/${o}`:`${I(l,u).split(R).join(`/`)}/${o}`}`),await ar(`skill-file-delete`)),f.existed&&ae?.(`files`),q(t,200,jo,{path:o,existed:f.existed,kind:s},{handler:`skill-file-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete skill file.`,{handler:`skill-file-delete`,cause:e})}},{handler:`skill-file-delete`,method:`DELETE`,skipBodyParse:!0})},{handler:`skill-file`}),Cs=K(Qee,async(e,t,n)=>{try{if(!ao(n.name,t,`skill-file-rename`)||Fo(n.name,t,`skill-file-rename`))return;let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-rename`});return}let r=n.from.replace(/\\/g,`/`),i=n.to.replace(/\\/g,`/`),a=hs(r),o=hs(i);if(a===null||o===null){G(t,400,`urn:ok:error:invalid-request`,`Both paths must stay inside the skill dir.`,{handler:`skill-file-rename`,detail:a===null?r:i});return}let s=fo(n.scope,n.name);if(s===null){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-rename`});return}let c=P(s),u=gs(n.scope,a,r),d=gs(n.scope,o,i),f=I(l,s).split(R).join(`/`),p=u?`${f}/${r.replace(/\.md$/i,``)}`:null,m=d?`${f}/${i.replace(/\.md$/i,``)}`:null;if(p!==null&&Xa(p,`skill-file-rename`,t))return;p!==null&&await Sn([p],`deleted-upstream`);let h=Fue({skillsRoot:c,name:n.name,relPath:r,toRelPath:i});if(!h.ok){let e=h.error.code===`RENAME_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,h.error.message,{handler:`skill-file-rename`,detail:h.error.code});return}if(k){let e=[];if(p!==null&&m!==null)try{e.push({kind:`rename`,oldDocumentName:p,newDocumentName:m,markdown:B(L(c,n.name,i),`utf-8`)})}catch{e.push({kind:`delete`,documentName:p})}else if(p!==null)e.push({kind:`delete`,documentName:p});else if(m!==null)try{e.push({kind:`upsert`,documentName:m,markdown:B(L(c,n.name,i),`utf-8`)})}catch{}await $t(e,`skill-file-rename`)}n.scope===`project`&&(ir(e,rr(`skill`,``,n.name),`skill-file-rename: ${n.name}/${r} -> ${i}`),await ar(`skill-file-rename`)),ae?.(`files`),q(t,200,Xi,{from:r,to:i,...p===null?{}:{fromDocName:p},...m===null?{}:{toDocName:m}},{handler:`skill-file-rename`})}catch(e){Y.error({err:e},`[skill-file-rename] failed`),t.headersSent||G(t,500,`urn:ok:error:internal-server-error`,`Failed to rename skill file.`,{handler:`skill-file-rename`})}},{handler:`skill-file-rename`,method:`POST`});function ws(e){let t=/github\.com[/:]([\w.-]+)\//.exec(e);return t?t[1]:void 0}let Ts=dJ;function Es(e,t){return zD(L(e,t))?.contentHash}async function Ds(e,t){let n=ee?.current;if(!(!n||!e))try{let r=hx(n),i=async()=>{let t=(await r.raw(`for-each-ref`,`--format=%(refname)`,`refs/wip/`)).trim().split(`
1179
- `).filter(Boolean).find(t=>t.endsWith(`/${e}`));if(t)return(await r.raw(`rev-parse`,t)).trim()},a=async(e,t)=>(await r.raw(`ls-tree`,`-r`,`--name-only`,e,`--`,t)).trim().length>0,o=await i();return o!==void 0&&t!==void 0&&!await a(o,t)&&(await ar(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let ks=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function As(e){try{let t=Go(e.scope);if(!t)return;let n=RI(t);if(n.length===0)return;let r=WI(L(e.skillsRoot,e.name),e.name,t,n,`copy`,zI(e.scope));if(r.length===0)return;await _N(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){Y.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function js(e,t){if(t.ok){q(e,200,gte,t.body,{handler:`skill-import`});return}G(e,t.status,t.urn,t.title,{handler:`skill-import`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}let Ms=nve({contentDir:l,skillsHome:co,...A===void 0?{}:{projectDir:A},resolveSkillDirForRead:fo,parseFrontmatterDoc:Qa,attributeOkArtifactWrite:ir,commitOkArtifactWrite:ar,shadowHeadSha:Ds,artifactWriterId:ks,effectiveInstallMode:wo,signalFiles:()=>ae?.(`files`)}),Ns=K(Bo,async(e,t,n)=>{let r=()=>{};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-import`});return}let i=n.scope,a=null,o,s,c,l,u=n.source;{let e=n.source;try{let i=await YD(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??bD(d);if(!p){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skill-import`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(sX(t,p,`skill-import`))return;let m=await SD(p);r=m.cleanup,s=m.ref;let h=BD(m.dir);if(h.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skill-import`});return}let g=h[0];if(f){let e=h.find(e=>e.name===f)??h.find(e=>LD(e.dir)?.name===f)??h.find(e=>e.name===sa[f]);if(!e){G(t,404,`urn:ok:error:not-found`,`Named skill not in source.`,{handler:`skill-import`,detail:`--skill "${f}" not among: ${h.map(e=>e.name).join(`, `)}.`});return}g=e}else if(h.length>1){G(t,400,`urn:ok:error:invalid-request`,"Source has multiple skills; pass `skill` to choose one.",{handler:`skill-import`,detail:h.map(e=>e.name).join(`, `)});return}a=g.dir,l=g.name,o=e,c=i?.publisher??ws(d)}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await Ms.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Wa(u))&&kI({source:u,skills:[d.body.name]},cI()),await xe?.rebuildIgnorePatterns(),js(t,d)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skill.`,{handler:`skill-import`,cause:e})}finally{r()}},{handler:`skill-import`,method:`POST`}),Ps=K(Oee,async(e,t,n)=>{let r=()=>{};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-import-bulk`});return}let i=n.source,a=null,o=null,s=[],c,l,u=i;try{let e=await YD(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??bD(d);if(!f){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skills-import-bulk`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(sX(t,f,`skills-import-bulk`))return;if(l=e?.publisher??ws(d),f.kind===`well-known`)a=f,o=await hD(f.origin);else{let e=await SD(f);r=e.cleanup,c=e.ref,s=BD(e.dir)}}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skills-import-bulk`,cause:e});return}throw e}if(a===null&&s.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skills-import-bulk`});return}let d=[];for(let t of new Set(n.skills)){let r,u,f=()=>{};if(a!==null)try{let e=await SD({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof aD?`not-found`:`failed`,warnings:[],...e instanceof aD?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>zD(e.dir)?.name===t)??s.find(e=>e.name===sa[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await Ms.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){N(`skills-import-bulk`).warn({skill:t,err:a.cause,detail:a.detail},`bulk import: one skill failed (rest continue)`),d.push({requested:t,status:`failed`,warnings:[],error:a.detail??a.title});continue}d.push({requested:t,status:a.body.alreadyImported?`already-imported`:`imported`,name:a.body.name,...a.body.collisionRenamedFrom===void 0?{}:{collisionRenamedFrom:a.body.collisionRenamedFrom},warnings:a.body.warnings})}catch(e){N(`skills-import-bulk`).warn({skill:t,err:e},`bulk import: one skill threw (rest continue)`),d.push({requested:t,status:`failed`,warnings:[],error:e instanceof Error?e.message:String(e)})}finally{f()}}if(n.marketplace===!0||Wa(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&kI({source:u,skills:e},cI())}await xe?.rebuildIgnorePatterns(),q(t,200,Wt,{results:d,imported:d.filter(e=>e.status===`imported`).length,alreadyImported:d.filter(e=>e.status===`already-imported`).length,failed:d.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-import-bulk`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skills.`,{handler:`skills-import-bulk`,cause:e})}finally{r()}},{handler:`skills-import-bulk`,method:`POST`}),Is=8*1024*1024,Ls=32*1024*1024;function Rs(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=L(e,n);return r!==e&&!r.startsWith(e+R)?null:r}function zs(e){return new Promise((t,n)=>{let r;try{r=Cq(e,{files:200,fields:10,fieldSize:2*1024,fileSize:Is})}catch(e){n(e);return}let i=[],a=0,o=null,s=t=>{o||(o=t,e.unpipe(r),e.destroy(),r.destroy(),n(t))};r.on(`file`,(e,t,n)=>{let r=[],c=!1;t.on(`data`,e=>{if(!o){if(a+=e.length,a>Ls){s(Error(`Upload too large.`));return}r.push(e)}}),t.on(`limit`,()=>{c=!0}),t.on(`end`,()=>{if(!o){if(c){o=Error(`File "${n.filename}" exceeds the per-file size limit.`);return}i.push({relPath:n.filename||`file`,data:Buffer.concat(r)})}})}),r.on(`error`,n),r.on(`close`,()=>o?n(o):t(i)),e.pipe(r)})}function Vs(e,t){return new Promise((n,r)=>{(0,yle.fromBuffer)(e,{lazyEntries:!0},(e,i)=>{if(e||!i){r(e??Error(`Unreadable archive.`));return}let a=0,o=0,s=e=>{try{i.close()}catch{}r(e instanceof Error?e:Error(String(e)))};i.on(`entry`,e=>{if(++o>200){s(Error(`Archive has too many entries.`));return}let n=Rs(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Bs(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>Is){s(Error(`Archive entry too large: ${e.fileName}`));return}i.openReadStream(e,(e,t)=>{if(e||!t){s(e??Error(`Could not read archive entry.`));return}let r=[];t.on(`data`,e=>{if(a+=e.length,a>Ls){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Bs(P(n),{recursive:!0}),Ys(n,Buffer.concat(r))}catch(e){s(e instanceof Error?e:Error(String(e)));return}i.readEntry()})})}),i.on(`end`,()=>n()),i.on(`error`,s),i.readEntry()})})}async function Gs(e,t){let n=Pu(F(Zu(),`ok-skill-upload-`)),r=()=>{try{Ws(n,{recursive:!0,force:!0})}catch{}};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){G(t,405,`urn:ok:error:invalid-request`,`Use POST to upload a skill.`,{handler:`skill-upload`});return}let r=new URL(e.url??``,`http://localhost`),i=oo(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=ok({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},he);if(o.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await zs(e)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){G(t,400,`urn:ok:error:invalid-request`,`No files uploaded.`,{handler:`skill-upload`});return}let c=s.length===1?s[0]:null,l=c&&/\.(zip|skill)$/i.test(c.relPath)?c.relPath:null;if(c&&l)try{await Vs(c.data,n)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not unpack the archive.`,{handler:`skill-upload`,cause:e});return}else for(let e of s){let r=Rs(n,e.relPath);if(!r){G(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Bs(P(r),{recursive:!0}),Ys(r,e.data)}let u=BD(n);if(u.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){G(t,400,`urn:ok:error:invalid-request`,`Upload contains multiple skills; upload one at a time.`,{handler:`skill-upload`,detail:u.map(e=>e.name).join(`, `)});return}let d=u[0];js(t,await Ms.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let Ks=K(Fee,async(e,t,n)=>{try{let e=uo(n.scope);if(!ao(n.name,t,`skill-install`))return;if(n.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`Cannot install — no project root is resolved for this server. Skills project into editor host dirs at the project root.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=Go(n.scope),i=L(e,n.name),a=n.scope===`project`?l:co,o=(n.scope===`project`?fL(l):pL(co)).find(e=>e.name===n.name),s=o?L(a,o.dir):i;if(!z(s)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-install`,detail:`Skill "${n.name}" not found in ${n.scope} scope — create it with write({ skill }) first.`});return}await zt(n.scope===`project`?`${I(a,s).split(R).join(`/`)}/SKILL`:Fa(n.scope,n.name));let c=LI(s,n.name,{allowReservedName:XF(n.name)});if(!c.ok){G(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" cannot be installed: ${c.errors.join(` `)}`,{handler:`skill-install`,detail:`INVALID_SKILL_SOURCE`});return}if(n.fork!==void 0){if(!o){G(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=lo.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:G(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:G(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:G(t,400,`urn:ok:error:invalid-request`,`That copy matches the source — nothing to resolve.`,{handler:`skill-install`,detail:`NOT_A_FORK`});return;case`invalid-new-name`:G(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:G(t,400,`urn:ok:error:invalid-request`,`Name already taken.`,{handler:`skill-install`,detail:e.toName});return;default:throw Error(`Unhandled fork outcome: ${String(e.kind)}`)}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o.hosts.filter(go),scripts:!1,warnings:e.warnings,warningCodes:e.warnings.length>0?[`skill-fork-name-unpatched`]:[]},{handler:`skill-install`});return}let u=n.setSource??n.source,d=n.linkMode??(n.mode===void 0?void 0:n.mode===`link`),f=n.targets,p=[],m=[];if(n.add!==void 0||n.remove!==void 0){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before using add/remove.",{handler:`skill-install`,detail:`STORE_BACKED_ADDITIVE`});return}let e=await lo.applyAddRemove({scope:n.scope,name:n.name,inPlaceEntry:o,...n.add===void 0?{}:{add:n.add},...n.remove===void 0?{}:{remove:n.remove}});if(!e.ok){e.kind===`remove-source`?G(t,400,`urn:ok:error:invalid-request`,`"${e.sourceId}" is the skill's SOURCE — its folder is the skill itself, so removing it would delete the skill. Move the source first (\`source\`) or use \`delete\`.`,{handler:`skill-install`,detail:`REMOVE_SOURCE`}):G(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}f=e.targets.filter(go),p.push(...e.rootAdds),m.push(...e.rootRemoves)}if(u&&!o){let e=await lo.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:s,newSource:u});if(!e.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.kind===`source-occupied`?e.reason:e.target});return}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:e.hosts,scripts:c.hasScripts,warnings:[],warningCodes:[],sourceMovedTo:e.sourceMovedTo},{handler:`skill-install`});return}if(n.place){let e=n.scope===`project`?A:co;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot place — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await kr.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:s,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?G(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):G(t,409,`urn:ok:error:doc-already-exists`,`Something already exists at that path — placement never overwrites.`,{handler:`skill-install`,detail:`PLACE_DEST_EXISTS`});return}`alreadyAtSource`in r||ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:c.hasScripts,warnings:[],warningCodes:[],placedAt:r.placedAt},{handler:`skill-install`});return}if(n.unplace){let e=n.scope===`project`?A:co;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot remove a placement — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await kr.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:s});if(!r.ok)switch(r.kind){case`not-recorded`:G(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:G(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — remove it manually if you mean it.`,{handler:`skill-install`,detail:r.path});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — it can't be removed here.`,{handler:`skill-install`,detail:r.path});return;default:throw Error(`Unhandled unplace outcome: ${String(r.kind)}`)}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:c.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before converting one.",{handler:`skill-install`,detail:`STORE_BACKED_CONVERT`});return}let{target:e,mode:i}=n.convert,a=n.scope===`project`?A:co,l=await kr.convert({ledgerBase:a??r,scope:n.scope,name:n.name,target:e,mode:i,skillDir:s,canonicalHash:o.contentHash});if(!l.ok)switch(l.kind){case`invalid-location`:G(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — move the source instead of converting it.`,{handler:`skill-install`,detail:e});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — resolve the fork before converting it.`,{handler:`skill-install`,detail:e});return;case`not-installed`:G(t,404,`urn:ok:error:not-found`,`The skill is not installed there.`,{handler:`skill-install`,detail:e});return;default:throw Error(`Unhandled convert outcome: ${String(l.kind)}`)}ae?.(`files`),q(t,200,sr,{name:n.name,hosts:[...o.hosts],scripts:c.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let h=n.scope===`global`?f===void 0?MI(co).map(e=>e.editorId).filter(e=>Vn.includes(e)):Vn.filter(e=>f?.some(t=>t===e)):f===void 0?RI(r):Vn.filter(e=>f?.some(t=>t===e)),g=[],_=[];if(h.length===0&&f===void 0&&(g.push(n.scope===`global`?`No editor skill folders are configured to install into.`:"No project-configured editors detected — nothing was projected. Set up an editor for this project (add .mcp.json / .cursor/mcp.json / .codex/config.toml) or pass explicit `targets`."),_.push(`no-targets`)),c.hasScripts&&(g.push("This skill includes executable `scripts/`. After you install it, the AI agent in your editor (Claude, Cursor, Codex) can run them — Open Knowledge itself never runs anything. Review the scripts before sharing."),_.push(`scripts-present`)),c.warnings.length>0&&(g.push(c.warnings[0]),_.push(`no-description`)),o){let e=o.dir.split(`/`).slice(0,-1).join(`/`),i=(f===void 0?n.scope===`global`&&z(F(co,`.agents`)):f.includes(`agents`))?[...h,`agents`]:[...h],a=n.scope===`project`?A:co,l=d===void 0?wo(n.scope,n.name,o):d?`link`:`copy`;if(u){let e=await lo.promoteInPlaceSource({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:s,inPlaceEntry:o,newSource:u});if(!e.ok){e.kind===`invalid-target`?G(t,400,`urn:ok:error:invalid-request`,`Source target must be an editor id, "agents", or a project-relative skills root.`,{handler:`skill-install`,detail:e.target}):G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.reason});return}ae?.(`files`),q(t,200,sr,{name:n.name,hosts:e.hosts,scripts:c.hasScripts,warnings:[],warningCodes:[],...e.sourceMovedTo===void 0?{}:{sourceMovedTo:e.sourceMovedTo}},{handler:`skill-install`});return}let v=await lo.fanOutInPlace({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:s,inPlaceEntry:o,canonicalRootRel:e,inPlaceTargets:i,setExact:f!==void 0,installMode:l,...d===void 0?{}:{linkModeReq:d},rootAdds:p,rootRemoves:m});if(!v.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:v.reason});return}g.push(...v.warnings),_.push(...v.warningCodes),ae?.(`files`),q(t,200,sr,{name:n.name,hosts:v.hosts,scripts:c.hasScripts,warnings:g,warningCodes:_,...v.sourceMovedTo===void 0?{}:{sourceMovedTo:v.sourceMovedTo}},{handler:`skill-install`});return}let v=FI(hN(r).skills[n.name]?.hosts??[]).filter(e=>!h.includes(e));v.length>0&&ZI(n.name,r,v,zI(n.scope));let y=F(r,...CD),b=z(y)?B(y,`utf-8`):null,x=b===null?null:DD(b);b!==null&&x===null&&Y.warn({skill:n.name},`skills-lock.json failed to parse — projecting as symlink (import origin unknown)`);let S=x?.skills[n.name]!==void 0,C=d===void 0?S?`copy`:`symlink`:d?`symlink`:`copy`,w=WI(s,n.name,r,h,C,zI(n.scope));w.length===0?await vN(r,n.name):await _N(r,n.name,{hosts:w,scope:n.scope,scripts:c.hasScripts,installedAt:new Date().toISOString(),projection:C}),ae?.(`files`),q(t,200,sr,{name:n.name,hosts:w,scripts:c.hasScripts,warnings:g,warningCodes:_},{handler:`skill-install`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),Js=K(Xt,async(e,t,n)=>{try{if(!ao(n.name,t,`skill-uninstall`))return;let e=Go(n.scope);if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot uninstall — no project root is resolved for this server.`,{handler:`skill-uninstall`,detail:`NO_PROJECT_ROOT`});return}let r=await qo(e,n.name,n.scope);ae?.(`files`),q(t,200,Eee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),Xs=cW({GET:K(Tn,async(e,t)=>{try{let e=RI(A??``),n=(e,t)=>{let n=ove(e)[t.root];return n===void 0||(n.expect===`link`?t.state===`linked`&&t.target===n.target:t.state===`own`)?{}:{drift:!0,expected:n.expect===`link`?`link → ${n.target}`:`own folder`}};q(t,200,ree,{targets:e,configured:!1,folders:[...A?qY(l,aL(l,`project`)).filter(e=>sL(l,`project`,e.root)).map(e=>({...e,scope:`project`,...n(l,e)})):[],...qY(co,aL(co,`global`)).filter(e=>sL(co,`global`,e.root)).map(e=>({...e,scope:`global`,...n(co,e)}))]},{handler:`skill-targets-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill targets.`,{handler:`skill-targets-get`,cause:e})}},{handler:`skill-targets-get`,method:`GET`,skipBodyParse:!0}),PUT:K(_ee,async(e,t,n)=>{try{{let e=n.folderAction,r=e.scope===`project`?l:co;if(e.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`Cannot manage skill folders — no project root is resolved for this server.`,{handler:`skill-targets-put`,detail:`NO_PROJECT_ROOT`});return}if(e.action===`add-root`){let n=e.root.replace(/\\/g,`/`).replace(/\/+$/g,``),i=n.split(`/`).filter(e=>e!==``&&e!==`.`);if(n===``||n.startsWith(`/`)||n.startsWith(`~`)||/^[A-Za-z]:/.test(n)||n.includes(`\0`)||i.length===0||i.some(e=>e===`..`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid folder path.`,{handler:`skill-targets-put`,detail:e.root});return}await sve(r,i.join(`/`)),ae?.(`files`),q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[]},{handler:`skill-targets-put`});return}let i=new Set(aL(r,e.scope).map(e=>e.root).filter(e=>!e.startsWith(`/`)&&!e.split(`/`).includes(`..`))),a=e.action===`link`?e.target??``:e.root;if(!i.has(e.root)||e.action===`link`&&(!i.has(a)||e.root===a)){G(t,400,`urn:ok:error:invalid-request`,`Folder and target must be distinct standard skills roots.`,{handler:`skill-targets-put`,detail:`${e.root} -> ${a}`});return}if(e.action===`link`&&e.preview){let n=YY({base:r,folderRel:e.root,targetRootRel:a}),i=n.kind===`plan`?n.plan:null;q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[],preview:{moves:i?[...i.linkedBundlesToMove.map(({name:e})=>e),...i.toMove]:[],drops:i?.toDrop??[],removes:i?.removes??[],replaces:i?.liveDestLinks??[],conflicts:n.kind===`conflicts`?n.conflicts:[],strays:n.kind===`stray-entries`?n.strays:[]}},{handler:`skill-targets-put`});return}let o=e.action===`link`?ave({base:r,folderRel:e.root,targetRootRel:a}):XY({base:r,folderRel:e.root,...e.exclude===void 0?{}:{exclude:e.exclude}});if(!o.ok){G(t,409,`urn:ok:error:invalid-request`,o.reason===`conflicts`?`Cannot link — differing skills exist in both folders: ${(o.conflicts??[]).join(`, `)}. Resolve them first.`:o.reason===`stray-entries`?`Cannot link — the folder holds non-skill entries: ${(o.strays??[]).join(`, `)}.`:o.reason===`partial-move`?`The merge stopped partway (${(o.moved??[]).length} skill(s) already moved — nothing lost). Run Link again to resume and complete it. (${o.error??``})`:o.reason===`not-linked`?`That folder is not a symlink — nothing to unlink.`:`That folder cannot be linked (it is already a link or the same directory).`,{handler:`skill-targets-put`,detail:o.reason});return}await $Y(r,e.root,e.action===`link`?{expect:`link`,target:a}:{expect:`own`}),ae?.(`files`),q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[],folder:{moved:o.moved,dropped:o.dropped,linked:o.linked}},{handler:`skill-targets-put`});return}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to set skill targets.`,{handler:`skill-targets-put`,cause:e})}},{handler:`skill-targets-put`,method:`PUT`})},{handler:`skill-targets`}),Zs=K(oee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!ao(n.name,t,`skill-restore`)||Fo(n.name,t,`skill-restore`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is no version history to restore from.`,{handler:`skill-restore`,detail:`GLOBAL_SCOPE_UNVERSIONED`});return}let r=ee?.current;if(!r){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to restore from.`,{handler:`skill-restore`,detail:`NO_SHADOW_REPO`});return}let i=await lX({shadow:r,contentDir:l,contentRoot:ie??`.`,name:n.name,version:n.version,skillDirRel:Do(n.name)});if(!i.ok){xo(t,i,`skill-restore`);return}let a=[],o=LI(L(l,Do(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),ir(e,rr(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await ar(`skill-restore`),ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,Nn,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),Qs=K(Qe,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!ao(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?co:l,{root:a,dirRel:o,realDir:s}=is(n.scope,n.name),c=!o.startsWith(`${_r}/`);if(s===null||!z(L(i,o,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let u=F(n.scope===`global`?co:A,...CD),d=Ts(u).skills[n.name];if(!d){let e=AD(n.name,zD(L(a,n.name))?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Pve(L(a,n.name))})??Mo(i,n.name);e&&(d=e)}if(!d){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded import source to update from.`,{handler:`skill-reimport`,detail:`NOT_IMPORTED`});return}if(n.setAutoUpdate!==void 0){await fJ(u,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??d,autoUpdate:n.setAutoUpdate}}})),await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!1,source:d.source,warnings:[]},{handler:`skill-reimport`});return}let f,p=null,m=!1;try{let e=d.skill??n.name,i=sa[e],a=await YD(d.source,e).catch(async e=>{if(i===void 0)throw e;return YD(d.source,i)}),o=a?.source??PO(d.source,d.pluginProvider),s=a?.skill??d.skill,c=a?.spec??bD(o);if(!c){G(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:d.source});return}if(sX(t,c,`skill-reimport`))return;let l=await SD(c);r=l.cleanup,f=l.ref;let u=BD(l.dir),m=(s?u.find(e=>e.name===s):void 0)??u.find(e=>e.name===n.name)??u.find(e=>zD(e.dir)?.name===n.name)??u.find(e=>e.name===sa[s??n.name])??(u.length===1?u[0]:void 0);if(!m){G(t,404,`urn:ok:error:not-found`,`Could not locate this skill in its source anymore.`,{handler:`skill-reimport`,detail:u.map(e=>e.name).join(`, `)});return}let h=RD(m.dir);if(h){G(t,400,`urn:ok:error:invalid-request`,`Skill bundle exceeds import limits.`,{handler:`skill-reimport`,detail:h});return}p=zD(m.dir)}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!p){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let h=KY(p);if(h){G(t,400,`urn:ok:error:invalid-request`,`Skill bundle exceeds import limits.`,{handler:`skill-reimport`,detail:h});return}m=p.files.some(e=>e.relPath.startsWith(`scripts/`));let g=zD(L(a,n.name)),_=new Set(p.files.map(e=>e.relPath)),v=new Set((g?.files??[]).map(e=>e.relPath)),y=(d.files??(d.localHash!==void 0&&g?.contentHash===d.localHash?g.files.map(e=>e.relPath):[])).filter(e=>!_.has(e)).filter(e=>v.has(e));if(p.contentHash===d.contentHash&&y.length===0){await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!1,source:d.source,warnings:[]},{handler:`skill-reimport`});return}let b=Qa(p.skillMd).body;if(n.dryRun){let e=zD(L(a,n.name))?.skillMd??``,r;if(n.scope===`project`&&A)try{let e=gc({baseDir:A,timeout:{block:15e3}}),t=I(A,L(a,n.name)).split(R).join(`/`);r=(await e.raw(`ls-files`,`--`,t)).trim().length>0}catch{r=void 0}await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!0,source:d.source,localBody:Qa(e).body,upstreamBody:b,...r===void 0?{}:{gitTracked:r},warnings:[]},{handler:`skill-reimport`});return}if(n.scope===`project`){let e=y.filter(e=>/\.mdx?$/i.test(e)).map(e=>`${o}/${e.replace(/\.mdx?$/i,``)}`);e.length>0&&await Sn(e,`deleted-upstream`)}let x=QA({skillsRoot:a,name:n.name,body:b,frontmatter:{name:n.name,description:p.description}});if(!x.ok){G(t,400,`urn:ok:error:invalid-request`,`Failed to write skill.`,{handler:`skill-reimport`,detail:x.error.code,cause:Error(x.error.message)});return}let S=[...x.warnings];for(let e of p.files){let r=tj({skillsRoot:a,name:n.name,relPath:e.relPath,content:e.content,bytes:e.bytes,limits:GY});if(!r.ok){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the complete refreshed skill bundle.`,{handler:`skill-reimport`,detail:`${e.relPath}: ${r.error.code}`,cause:Error(r.error.message)});return}}for(let e of y){let r=nj({skillsRoot:a,name:n.name,relPath:e});if(!r.ok){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reconcile files removed upstream.`,{handler:`skill-reimport`,detail:`${e}: ${r.error.code}`,cause:Error(r.error.message)});return}}n.scope===`project`&&(ir(e,rr(`skill`,``,n.name),`skill-reimport: ${d.source} -> ${o}`),await ar(`skill-reimport`));let C=Es(a,n.name),w=n.scope===`project`?await Ds(ks(e),o):void 0;await fJ(u,e=>OD(e,n.name,{...e.skills[n.name]??d,contentHash:p.contentHash,files:p.files.map(e=>e.relPath),...C===void 0?{}:{localHash:C},...w===void 0?{}:{baselineRef:w},ref:f,importedAt:new Date().toISOString()})),!c&&n.scope===`project`&&await As({skillsRoot:a,name:n.name,scope:`project`,hasScripts:m,handler:`skill-reimport`}),ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!0,source:d.source,warnings:S},{handler:`skill-reimport`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),$s=K(mee,async(e,t,n)=>{try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!ao(n.name,t,`skill-revert`)||Fo(n.name,t,`skill-revert`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is nothing to revert to.`,{handler:`skill-revert`,detail:`GLOBAL_SCOPE`});return}let r=F(A,...CD),i=Ts(r).skills[n.name];if(!i?.baselineRef){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded install baseline to revert to.`,{handler:`skill-revert`,detail:`NO_BASELINE`});return}let a=ee?.current;if(!a){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to revert from.`,{handler:`skill-revert`,detail:`NO_SHADOW_REPO`});return}let o=await lX({shadow:a,contentDir:l,contentRoot:ie??`.`,name:n.name,version:i.baselineRef,skillDirRel:Do(n.name)});if(!o.ok){xo(t,o,`skill-revert`);return}ir(e,rr(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await ar(`skill-revert`);let s=L(l,Do(n.name),`..`),c=Es(s,n.name);await fJ(r,e=>OD(e,n.name,{...e.skills[n.name]??i,...c===void 0?{}:{localHash:c}})),s===uo(`project`)&&await As({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),ae?.(`files`),q(t,200,It,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`});function ec(e){return e===`autocomplete`||e===`full_text`||e===`omnibar`?e:`omnibar`}function tc(e){let t=typeof e==`string`?e.split(`,`):Array.isArray(e)?e:void 0;if(!t)return;let n=t.filter(e=>e===`page`||e===`folder`||e===`content`||e===`file`);return n.length>0?n:void 0}function nc(e){if(typeof e==`boolean`)return e;if(e===`true`)return!0;if(e===`false`)return!1}function rc(e){return e===`omnibar`||e===`mcp`||e===`http`?e:`http`}let ic=eve({contentDir:l,projectDir:A,getAllFilesIndex:g,getFileIndexGeneration:v,getSearchMaxEntries:Hve,semanticSearch:Oe,getSemanticSimilarityFloor:ke,ready:we,getProjectSkillsRoot:()=>uo(`project`),parseFrontmatterDoc:Qa});ic.prewarm();let ac=cW({GET:K(Tn,MB(async(e,t)=>{let n=Nc(e),r=n.get(`limit`),i=n.get(`query`)??``,a=ec(n.get(`intent`)),o=Uo(n.get(`ranking`)),s=tc(n.get(`scope`)??n.get(`scopes`)),c=nc(n.get(`semantic`)),l=rc(n.get(`source`)),u=r===null?void 0:Number(r);if(i.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-get`});return}q(t,200,so,await ic.buildSearchResponse({query:i,intent:a,ranking:o,scopes:s,limit:u,semanticParam:c,source:l}),{handler:`search-get`})},{handler:`search-get`,title:`Failed to search workspace.`}),{handler:`search-get`,method:`GET`,skipBodyParse:!0}),POST:K(tte,MB(async(e,t,n)=>{let r=typeof n.query==`string`?n.query:``,i=ec(n.intent),a=Uo(n.ranking),o=tc(n.scopes??n.scope),s=typeof n.limit==`number`?n.limit:void 0,c=nc(n.semantic),l=rc(n.source);if(r.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-post`});return}q(t,200,so,await ic.buildSearchResponse({query:r,intent:i,ranking:a,scopes:o,limit:s,semanticParam:c,source:l}),{handler:`search-post`})},{handler:`search-post`,title:`Failed to search workspace.`}),{handler:`search-post`,method:`POST`})},{handler:`search`}),oc=K(Tn,MB(async(e,t)=>{q(t,200,pte,{...await EI(Ju())},{handler:`skill-install-state`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`skill-install-state`,title:`Failed to read skill install state.`}),{handler:`skill-install-state`,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:`skill-install-state`})});async function sc(e,t){if(r(e,t,{handler:`handoff`}))try{await Efe(e,t,{contentDir:l,platform:process.platform,isSchemeRegistered:nt.probeWithCache})}catch(n){t.headersSent||(Y.error({err:n,requestId:cS(e)},`[handoff] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function cc(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await ZM(e,t,{contentDir:l,platform:process.platform})}catch(n){t.headersSent||(Y.error({err:n,requestId:cS(e)},`[spawn-cursor] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let lc=K(uee,async(e,t,n)=>{try{if(!A){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!_me(e,n.kind)){AF(`invalid-path`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`invalid-path`},{handler:kF});return}let r=Sme(A);if(r===null){if(PF(A).kind===`no-remote`){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}AF(`detached-head`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`detached-head`},{handler:kF});return}let i=PF(A);if(i.kind===`no-remote`){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}if(i.kind===`non-github`){AF(`non-github-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`non-github-remote`},{handler:kF});return}if(!Dme(A,r)){AF(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),q(t,200,ya,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:kF});return}let a=gZ(A,l);if(a===null)throw Error(`content dir is not contained within the project dir`);let o=n.kind===`doc`?n.docPath!==``:n.folderPath!==``;a!==``&&o&&N(`share`).warn({action:`construct-url`,kind:n.kind},`[share] content.dir != "." — non-root share URL omits the content.dir prefix; the github.com link may point at the wrong subtree. In-app receive navigation is content-relative and lands correctly.`);let s;if(n.kind===`doc`)s=vme(i.host,i.owner,i.repo,r,n.docPath);else{let e=n.folderPath===``?a:n.folderPath;s=yme(i.host,i.owner,i.repo,r,e)}let c=`https://openknowledge.ai/d/${Vt(s)}`,u=await bme(A,r,a===``?e:e===``?a:`${a}/${e}`,n.kind);AF(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),q(t,200,ya,{ok:!0,shareUrl:c,sharedUrl:s,branch:r,freshness:u},{handler:kF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:kF,cause:e})}},{handler:kF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:kF})}),dc=K(Tn,async(e,t)=>{try{if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:Yz});return}let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`branch`),i=n.searchParams.get(`path`),a=n.searchParams.get(`kind`)===`folder`?`folder`:`doc`;if(!st(r)){G(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:Yz});return}if(!qz(i,a)){G(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:Yz});return}q(t,200,wee,await Jz(A,r,i,a),{handler:Yz})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Yz,cause:e})}},{handler:Yz,method:`GET`,skipBodyParse:!0});function fc(e,t,n){let r=e.split(`/`),i=t.split(`/`);if(n>=r.length||n>=i.length)return{verdict:`unknown`};for(let e=0;e<n;e+=1)if(r[e]!==i[e])return{verdict:`unknown`};return{verdict:`renamed`,renamedTo:i.slice(n).join(`/`)}}let pc=K(Lt,async(e,t,n)=>{try{if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:qF});return}if(!qz(n.path,n.kind)){G(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:qF});return}let e=await Fme(A,n.branch,n.path,n.kind,{credentialConfig:hc(de,{resetAmbient:IF(A)})});q(t,200,on,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:fc(n.path,e.renamedTo,n.contentRootDepth),{handler:qF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:qF,cause:e})}},{handler:qF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:qF})}),mc=K(kt,async(e,t,n)=>{if(ok(n,he).kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:eB});return}if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:eB});return}try{q(t,200,St,await uc(()=>nB(A,n.branch,{fastForward:n.fastForward===!0,credentialConfig:hc(de,{resetAmbient:IF(A)})})),{handler:eB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eB,cause:e})}},{handler:eB,method:`POST`});async function _c(e){let[t,...n]=de,r=[...n,...e];return await new Promise((e,n)=>{let i=uu(t,r,UM({...fi,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},BF),s=[],c=[];i.stdout.on(`data`,e=>s.push(e)),i.stderr.on(`data`,e=>c.push(e)),i.on(`close`,t=>{if(clearTimeout(o),a){n(Error(`share subprocess timed out after ${BF}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=KF(Buffer.concat(c).toString(`utf-8`)).slice(0,500);Y.warn({code:t,stderr:e},`[share] subprocess exited code=${t} stderr=${e}`)}e({stdout:r,code:t})}),i.on(`error`,e=>{clearTimeout(o),n(e)})})}let vc=K(Tn,async(e,t)=>{if(!ze.tryAcquire(`/api/share/publish/owners`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:LF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await _c([`share`,`owners`,`--json`]),n=Ome(UF(e));GF(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),q(t,200,see,n,{handler:LF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:LF,cause:e})}finally{ze.release(`/api/share/publish/owners`)}},{handler:LF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:LF})}),yc=K(Tn,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!HF(r)||!VF(i)){G(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:RF});return}if(!ze.tryAcquire(`/api/share/publish/name-check`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:RF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await _c([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=kme(UF(e));GF(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),q(t,200,fa,n,{handler:RF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:RF,cause:e})}finally{ze.release(`/api/share/publish/name-check`)}},{handler:RF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:RF})}),bc=K(Pn,async(e,t,n)=>{if(!A){GF(`publish-create`,`no-project`),q(t,200,Wn,{ok:!1,error:`no-project`},{handler:zF});return}if(!HF(n.owner)||!VF(n.name)){G(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:zF});return}if(!ze.tryAcquire(`/api/share/publish`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:zF,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,A,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await _c(e),i=Mme(UF(r));GF(`publish-create`,i.ok?`ok`:i.error),i.ok&&le?.()?.refreshRemote().catch(()=>{}),q(t,200,Wn,i,{handler:zF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:zF,cause:e})}finally{ze.release(`/api/share/publish`)}},{handler:zF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:zF})}),xc=K(Yn,async(e,t,n)=>{try{let e=N(`renderer`);n.droppedSinceLastFlush!==void 0&&n.droppedSinceLastFlush>0&&e.warn({source:`renderer-console`,transport:`web`,event:`client-log-entries-dropped`,droppedSinceLastFlush:n.droppedSinceLastFlush},`client-log-entries-dropped`);for(let t of n.entries)try{e[t.level]({...t.fields,source:`renderer-console`,transport:`web`,...t.sourceId?{sourceId:t.sourceId}:{},...t.lineNumber===void 0?{}:{lineNumber:t.lineNumber},...t.ts===void 0?{}:{clientTs:t.ts}},t.event??t.message)}catch{}q(t,200,Ue,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`client-logs`,cause:e})}},{handler:`client-logs`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`client-logs`})}),Sc=A?Pk(A):null;async function Cc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n={collabUrl:Ele(e.headers),previewUrl:null,port:Sc?Ec(Sc)?.port??0:0,singleFile:Pe};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,Jee,n,{handler:`api-config`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config`,extraHeaders:{Allow:`GET, HEAD`}})}async function wc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n=Le?.()??{diagnostics:[]};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,fe,n,{handler:`api-config-diagnostics`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config-diagnostics`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config-diagnostics`,extraHeaders:{Allow:`GET, HEAD`}})}let Tc=`local-op-embeddings-set-key`,Dc=`local-op-embeddings-clear-key`,Oc=`/api/local-op/embeddings`;function kc(){let e=je?.();return{projectDir:A??l,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let Ac=K(Pee,async(e,t,n)=>{if(!ze.tryAcquire(Oc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Tc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=kc();await new qj(Ae).setForProject(e,r,n.key),Oe?.reloadCredential(),q(t,200,as,{keyPresent:!0},{handler:Tc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:Tc,cause:e})}finally{ze.release(Oc)}},{handler:Tc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Tc})}),jc=K(Tn,async(e,t)=>{if(!ze.tryAcquire(Oc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Dc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:n}=kc();await new qj(Ae).clearForProject(e,n),Oe?.reloadCredential(),q(t,200,as,{keyPresent:!1},{handler:Dc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:Dc,cause:e})}finally{ze.release(Oc)}},{handler:Dc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Dc})}),Pc=`local-op-embeddings-test`,Fc=`/api/local-op/embeddings/test`,Ic=K(Tn,async(e,t)=>{if(!ze.tryAcquire(Fc)){G(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:Pc,extraHeaders:{"Retry-After":`5`}});return}try{let e=je?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await Bj(new qj(Ae),A??l,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await Sde({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};q(t,200,fte,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:Pc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:Pc,cause:e})}finally{ze.release(Fc)}},{handler:Pc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Pc})}),Lc=K(Tn,async(e,t)=>{try{let e=!1,n=!1,r=!1,i=0;if(Oe){let t=Oe.getStatus();e=t.enabled,n=t.ready,r=t.capable,i=t.embeddedCount}let a=je?.()?.baseUrl??`https://api.openai.com/v1`,o=await Bj(new qj(Ae),A??l,a),s=o.apiKey!==null,c=!s&&o.keyless,u=s?o.source:null,d=o.apiKey&&o.apiKey.length>=8?o.apiKey.slice(-4):null,f=0;for(let[e]of p())!Xx(e)&&!Zx(e)&&!Cr(e)&&(f+=1);q(t,200,ia,{enabled:e,keyPresent:s,keyNotRequired:c,keySource:u,keyHint:d,ready:n,capable:r,embedded:i,total:f},{handler:`semantic-status`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`semantic-status`,cause:e})}},{handler:`semantic-status`,method:`GET`,skipBodyParse:!0}),Rc=0;function zc(){Rc+=1,ae?.(`lint-config`)}let Bc=()=>`${Rc} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function Vc(e,t){let n=Me?.()??Ht;try{let r=await Ba(e,IP(l,n,{docName:t,projectDir:A??l,onProblem:e=>Y.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Ne?.()??`warning`;if(k&&a!==`off`&&!rS(t)){await tn(t,e,`lint-validation`);let r=dF({projectDir:A??l,contentDir:l,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:Zt,docFilePathFor:e=>pZ(l,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:pZ(l,t)??`${t}.md`})).files.flatMap(e=>e.diagnostics))}return[...r,...i].sort((e,t)=>e.range.start.line-t.range.start.line||e.range.start.character-t.range.start.character).slice(0,10).map(e=>({kind:`lint-violation`,source:e.source,code:e.code,message:e.message,severity:e.severity,line:e.range.start.line+1,column:e.range.start.character+1,...`linkTarget`in e&&e.linkTarget!==void 0?{linkTarget:e.linkTarget}:{},...`localTarget`in e&&e.localTarget!==void 0?{localTarget:e.localTarget}:{}}))}catch(e){return Y.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function Hc(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=zP({projectDir:A??l,contentDir:l});return aP(t.schemas,n)}let Uc=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`);if(n!==null&&(n===``||!TZ(n))){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`lint-config`});return}let r=Me?.()??Ht,i=[],a=NP(l,n??void 0,e=>i.push(e)),o=FP(A??l,PP(r,a),e=>i.push(e));n===null&&i.push(...Hc(o)),q(t,200,$o,{effective:o,configFile:a?.file??null,configProblems:i},{handler:`lint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve lint config.`,{handler:`lint-config`,cause:e})}},{handler:`lint-config`,method:`GET`,skipBodyParse:!0}),Wc=K(See,async(e,t,n)=>{let r;try{r=YP(L(l),n.ruleId,n.value)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){G(t,409,`urn:ok:error:config-not-writable`,`The native markdownlint config (${r.file}) is an executable module OK will not rewrite — edit it directly or convert it to JSON/JSONC/YAML.`,{handler:`markdownlint-config`});return}zc();try{let e=Me?.()??Ht,n=[],r=NP(l,void 0,e=>n.push(e)),i=FP(A??l,PP(e,r),e=>n.push(e));n.push(...Hc(i)),q(t,200,$o,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The markdownlint rule was saved, but the effective config could not be re-read.`,{handler:`markdownlint-config`,cause:e})}},{handler:`markdownlint-config`,method:`POST`}),Gc=K(Lo,async(e,t,n)=>{let r;try{let e=L(A??l),t=n.parentPath??[];r=n.delete?wpe(e,n.file):n.field!==void 0&&n.removeField?Spe(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Cpe(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?bpe(e,n.file,n.field,n.constraint,t):xpe(e,n.file)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){G(t,409,`urn:ok:error:config-not-writable`,`The frontmatter schema (${r.file}) was not written: ${r.reason}.`,{handler:`frontmatter-schema`});return}(r.action===`created`||r.action===`deleted`)&&ae?.(`files`),zc();try{let e=Me?.()??Ht,n=[],r=NP(l,void 0,e=>n.push(e)),i=FP(A??l,PP(e,r),e=>n.push(e));n.push(...Hc(i)),q(t,200,$o,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The schema was saved, but the effective config could not be re-read.`,{handler:`frontmatter-schema`,cause:e})}},{handler:`frontmatter-schema`,method:`POST`}),Kc=K(Tn,async(e,t)=>{try{let e=L(A??l),{schemas:n,truncated:r}=Qfe(e),i=new Set(n),a=!1;if(xe!==void 0){let t=rZ({contentDir:l,contentFilter:xe,dirFilter:null,maxEntries:2e4}),n=await t.next();for(;!n.done;){let r=n.value,a=r.kind===`asset`?r.path:void 0;if(a!==void 0&&qi(a)){let t=I(e,L(l,a));!t.startsWith(`..`)&&!gu(t)&&i.add(t)}n=await t.next()}a=n.value.truncated}let o=[...i].sort((e,t)=>e.localeCompare(t));q(t,200,hte,{schemas:o.slice(0,500),truncated:r||a||o.length>500},{handler:`frontmatter-schemas-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list frontmatter schemas.`,{handler:`frontmatter-schemas-list`,cause:e})}},{handler:`frontmatter-schemas-list`,method:`GET`,skipBodyParse:!0}),qc=e=>{let t=e.replace(/\.(md|mdx)$/i,``),n=o.documents.get(t);return n===void 0?null:n.getText(`source`).toString()},Jc=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`)??``;if(n===``||!TZ(n)){G(t,400,`urn:ok:error:invalid-request`,`Missing or invalid doc.`,{handler:`lint`});return}let r=pZ(l,n);if(r===null){G(t,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint`});return}let i=Me?.()??Ht,a=[],o=await RP({projectDir:A??l,contentDir:l,baseConfig:i,docRelPath:r,onConfigProblem:e=>a.push(e),liveSourceFor:qc});q(t,200,vee,a.length>0?{...o,warnings:a}:o,{handler:`lint`})}catch(e){if(e instanceof MM){G(t,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint`});return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to lint document.`,{handler:`lint`,cause:e})}},{handler:`lint`,method:`GET`,skipBodyParse:!0}),Yc=new tP,Xc=oX();function Zc(e,t,n){let r=`${n} ${Bc()} ${t??``}`;return Xc.run(r,()=>Upe(e,{targetPath:t})).promise}function Qc(e,t){G(e,409,`urn:ok:error:audit-superseded`,`The lint configuration or branch changed while the audit was running; re-run it.`,{handler:t})}let $c=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`path`),r=n===null||n===``?void 0:n;if(r!==void 0&&!iZ(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`lint-audit`});return}let i=Me?.()??Ht;q(t,200,mi,await BP({projectDir:A??l,contentDir:l,baseConfig:i,targetPath:r,liveSourceFor:qc,cache:Yc,auditGeneration:Bc}),{handler:`lint-audit`})}catch(e){if(e instanceof LP){Qc(t,`lint-audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`lint-audit`,cause:e})}},{handler:`lint-audit`,method:`GET`,skipBodyParse:!0}),el=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`path`),i=r===null||r===``?void 0:r;if(i!==void 0&&!iZ(i)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`audit`});return}let a=n.searchParams.get(`doc`),o=a===null||a===``?void 0:a;if(o!==void 0){if(i!==void 0||!iZ(o)){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`audit`});return}i=pZ(l,o)??`${o}.md`}let s=Me?.()??Ht,c=await Zc(dF({projectDir:A??l,contentDir:l,baseConfig:s,liveSourceFor:qc,derivedDocumentIndex:k??null,linksValidation:Ne?.(),admittedDocNames:Zt,docFilePathFor:e=>pZ(l,e),cache:Yc,auditGeneration:Bc}),i,tP.fingerprintConfig(s));if(n.searchParams.get(`counts`)===`1`){q(t,200,Et,Hpe(c),{handler:`audit`});return}q(t,200,yt,c,{handler:`audit`})}catch(e){if(e instanceof LP){Qc(t,`audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`audit`,cause:e})}},{handler:`audit`,method:`GET`,skipBodyParse:!0}),tl=K(ft,async(t,n,r)=>{try{let t=oZ(r.docName,n,`lint-fix`);if(t===null)return;let i=wt(t),a=ok(r,he);if(a.kind===`invalid-summary`){G(n,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`lint-fix`});return}let o=a.kind===`anonymous`?`principal-anonymous`:a.writerId,s=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(Xx(i)||Zx(i)){G(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=pZ(l,i);if(f===null){G(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}VM(L(l,f),l);let p=Me?.()??Ht,{stored:m}=Qn(a.summary),h=await c.getSession(i,o,{displayName:s,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),{cfg:_,before:v,fixed:y}=await _pe({projectDir:A??l,contentDir:l,baseConfig:p,docRelPath:f,source:g}),b=v,x;if(y!==g){try{let t=Io(d),n=Da[t]??Bi(u??o);se?.setPresence(o,{displayName:s,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{rw(h.dc.document,y,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,tw(h))},h.origin),a.kind!==`anonymous`&&xj(i,o,s,u,void 0,a.kind===`agent`?Zn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{se?.touchMode(o,`idle`)}let t=await zt(i);if(t?.kind===`failure`){Ut(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){Kt(n,`lint-fix`);return}Mt(i,`lint-fix`);try{b=await Ba(h.dc.document.getText(`source`).toString(),_,f)}catch(e){x=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,Y.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),b=v}}let S=b.filter(e=>e.severity===`error`).length,C=b.length-S;q(n,200,Ko,{file:f,fixedCount:Math.max(0,v.length-b.length),diagnostics:b,errorCount:S,warningCount:C,...x?{warning:x}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof MM){G(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof gS){_S(n,e,`lint-fix`);return}if(e instanceof xS){wS(n,e,`lint-fix`);return}if(e instanceof pw){G(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}Y.error({err:e},`[lint-fix] handler failed`),G(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),nl=`link-preview`,rl=new bG({cacheDir:Pe?null:L(A??l,`.ok`,`local`,`link-previews`)}),il=null,al=()=>(il??=rl.init(),il),ol=Fe??dG;async function sl(e){let t=await ol(e);return t.ok?{ok:!0,metadata:await gG({html:new TextDecoder().decode(t.body),requestUrl:e,finalUrl:t.finalUrl,fetch:ol})}:{ok:!1,reason:t.reason}}let cl=()=>{try{return Ie?.()===!0}catch{return!1}},ll=K(_a,async(e,t,n)=>{try{if(!cl()){Y.debug({outcome:`disabled`},`[link-preview] request outcome`),q(t,200,Ze,{ok:!1,reason:`disabled`},{handler:nl});return}await al();let e=!1,r=await rl.load(n.url,()=>(e=!0,sl(n.url)));rl.persist();let i=r.ok?r:{ok:!1,reason:`blocked`};Y.debug({outcome:e?r.ok?`fetched-ok`:`fallback`:`cache-hit`},`[link-preview] request outcome`),q(t,200,Ze,i,{handler:nl})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:nl,cause:e})}},{handler:nl,method:`POST`,preBodyGate:(e,t)=>{let n=CG({origin:e.headers.origin,contentType:e.headers[`content-type`]});return n.ok?!0:(n.reason===`origin`?G(t,403,`urn:ok:error:invalid-origin`,`Origin not allowed.`,{handler:nl}):G(t,400,`urn:ok:error:invalid-request`,`Content-Type must be application/json.`,{handler:nl}),!1)}}),ul=Ile({service:it,getPrincipal:he,onChanged:()=>ae?.(`comments`)}),dl=cW({GET:ul.list,POST:ul.create},{handler:`comments`}),fl=cW({GET:ul.read,POST:ul.mutate,DELETE:ul.remove},{handler:`comment`}),{handleSkillsSearch:pl,handleSkillsPopular:ml,handleSkillsPublisher:hl,handleSkillsDetail:gl,handleSkillsPreview:_l,handleSkillsDiscover:vl,handleSkillsResolveRef:yl}=vve({log:Y,skillsHome:co,projectDir:A,contentDir:l,resolveSkillDirForRead:fo}),bl={"/api/config":Cc,"/api/config/diagnostics":wc,"/api/generated-index/settings":cW({GET:K(Tn,async(e,t)=>{if(!u){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-get`});return}q(t,200,CZ,u(),{handler:`generated-index-settings-get`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-get`,method:`GET`,skipBodyParse:!0}),POST:K(nye,async(e,t,n)=>{if(!d){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-set`});return}q(t,200,CZ,await d(n.enabled),{handler:`generated-index-settings-set`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-set`,method:`POST`})},{handler:`generated-index-settings`}),"/api/comments":dl,"/api/comment":fl,"/api/asset":Kr,"/api/asset-text":Jr,"/api/comment-counts":mr,"/api/link-preview":ll,"/api/folder-config":Va,"/api/saved-themes":Ua,"/api/saved-theme":qa,"/api/template":ro,"/api/template/import":io,"/api/templates":Za,"/api/skill":ms,"/api/skill-file":xs,"/api/skill-file/rename":Cs,"/api/skills":es,"/api/skills/installed":pr,"/api/skills/search":pl,"/api/skills/popular":ml,"/api/skills/publisher":hl,"/api/skills/detail":gl,"/api/skills/preview":_l,"/api/skills/discover":vl,"/api/skills/resolve-ref":yl,"/api/skill/import":Ns,"/api/skills/import-bulk":Ps,"/api/skill/edit-external":ls,"/api/skill/duplicate":ps,"/api/skill/move-scope":ds,"/api/skill-upload":Gs,"/api/skill/install":Ks,"/api/skill/uninstall":Js,"/api/skill/restore":Zs,"/api/skill/reimport":Qs,"/api/skill/revert":$s,"/api/skill/track-in-git":Zo,"/api/skill-targets":Xs,"/api/search":ac,"/api/semantic-status":Lc,"/api/lint/config":Uc,"/api/lint/markdownlint-config":Wc,"/api/lint/frontmatter-schema":Gc,"/api/lint/frontmatter-schemas":Kc,"/api/lint":Jc,"/api/lint/audit":$c,"/api/lint/fix":tl,"/api/audit":el,"/api/create-page":Xr,"/api/create-folder":Qr,"/api/duplicate-path":$r,"/api/rename-path":ei,"/api/delete-path":ii,"/api/trash/cleanup":ai,"/api/upload":oi,"/api/agent-write":cr,"/api/agent-write-md":lr,"/api/agent-write-batch":ur,"/api/frontmatter-patch":dr,"/api/agent-patch":hr,"/api/agent-undo":gr,"/api/agent-activity":vr,"/api/agent-burst-diff":yr,"/api/save-version":jr,"/api/history":Mr,"/api/rollback":Pr,"/api/__embed-detect":Br,"/api/server-info":Ir,"/api/acp/catalog":Rr,"/api/share/construct-url":lc,"/api/share/target-status":pc,"/api/git/branch-info":dc,"/api/git/checkout":mc,"/api/share/publish/owners":vc,"/api/share/publish/name-check":yc,"/api/share/publish":bc,"/api/principal":zr,"/api/rescue":Yr,"/api/workspace":Vr,"/api/sync/status":ba,"/api/sync/trigger":xa,"/api/sync/conflicts":Sa,"/api/sync/conflict-content":wa,"/api/sync/resolve-conflict":Ca,"/api/local-op/clone":_i,"/api/local-op/ok-init":Si,"/api/local-op/auth/login":Ii,"/api/local-op/auth/status":Gi,"/api/local-op/auth/pat":Ji,"/api/local-op/auth/gh-login":zi,"/api/local-op/auth/cancel":Hi,"/api/local-op/auth/repos":$i,"/api/local-op/auth/signout":aa,"/api/local-op/auth/set-identity":ga,"/api/local-op/embeddings/set-key":Ac,"/api/local-op/embeddings/clear-key":jc,"/api/local-op/embeddings/test":Ic,"/api/installed-agents":Ma,"/api/spawn-cursor":cc,"/api/handoff":sc,"/api/install-skill":ja,"/api/skill/install-state":oc,"/api/seed/plan":Ta,"/api/seed/apply":Ea,"/api/seed/install-pack-skill":Oa,"/api/seed/packs":Aa,"/api/client-logs":xc};E&&(bl[`/api/test-reset`]=Tr,bl[`/api/test-flush-git`]=xr,bl[`/api/test-rescan-backlinks`]=Er,bl[`/api/test-rescan-files`]=Dr);let xl=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./api/generated-index/settings./api/create-page./api/create-folder./api/duplicate-path./api/rename-path./api/delete-path./api/trash/cleanup./api/agent-write./api/agent-write-md./api/agent-write-batch./api/frontmatter-patch./api/agent-patch./api/agent-undo./api/save-version./api/rollback./api/sync/trigger./api/sync/resolve-conflict./api/git/checkout./api/test-reset./api/test-flush-git./api/test-rescan-backlinks./api/test-rescan-files./api/install-skill./api/folder-config./api/saved-theme./api/template./api/template/import./api/skill./api/skill-file./api/skill-file/rename./api/skill/import./api/skills/import-bulk./api/skill/duplicate./api/skill/move-scope./api/skill/edit-external./api/skill-upload./api/skill/install./api/skill/uninstall./api/skill/restore./api/skill/reimport./api/skill/revert./api/skill/track-in-git./api/skills/preview./api/skills/discover./api/skills/resolve-ref./api/skill-targets./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Sl=[`/api/local-op/`],Cl=jB({log:Y,policy:n,ephemeral:Pe,table:{resolve(e){let t=bl[e];if(t)return{template:e,dispatch:(e,n)=>t(e,n)};if(e.startsWith(`/api/history/`)){let t=e.slice(13);return{template:`/api/history/:sha`,dispatch:t?async(e,n)=>{await Nr(e,n,decodeURIComponent(t))}:void 0}}return{template:`/api/*`}},isMutating:e=>xl.has(e)||Sl.some(t=>e.startsWith(t))}}),wl=iW({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:p,isSafeDocName:TZ,readPageTitleForDocName:lt,readPageTitleForLinkedDocName:ut,readFrontmatterMetadataForLinkedDocName:vt,collectAdmittedDocNames:Zt,resolveAlias:wt,respondToDerivedIndexQueryFailure:un}),Tl=[wl,lW({hocuspocus:o,agentPresenceBroadcaster:se,isAllowedWorkspaceHostHeader:i,log:Y}),Ve],El=Tl.flatMap(e=>[...e.paths]);jU(El,bl);let Dl=Tl.map(e=>jB({log:Y,policy:n,ephemeral:Pe,table:e.table})),Ol={paths:El,dispatch:async(e,t)=>{for(let n of Dl)if(await n(e,t))return!0;return!1}},kl=new Set([`/api/search`,`/api/delete-path`,`/api/create-folder`,`/api/save-version`,`/api/skill/import`,`/api/skill/install`,`/api/upload`,`/api/orphans`,`/api/hubs`,`/api/backlinks`,`/api/forward-links`,`/api/dead-links`,`/api/suggest-links`]);for(let e of kl)if(bl[e]===void 0&&wl.table.resolve(e)?.dispatch===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await Cl(e,t)},nativeApi:Ol,localApi:sW({resolve:e=>{if(!kl.has(e))return;let t=bl[e];return t===void 0?wl.table.resolve(e)?.dispatch:t}})}}function DZ(e){let{contentFilter:t,contentSirv:n,inlineExtensions:r,assetExtensions:i,blocklistExtensions:a,ingressPolicy:o}=e;return(e,s,c)=>{let l;try{l=decodeURIComponent(e.url?.split(`?`)[0]?.replace(/^\//,``)??``)}catch{return c()}let u=hu(l).slice(1).toLowerCase(),d=u===`md`||u===`mdx`;if(!l||t.isPathIgnored(l)||!d&&!i.has(u))return c();let f=e.socket?.remoteAddress;if(f!==void 0&&!xB(f,o)){G(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!CB(e.headers.host,o)){G(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:gB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=IY(u,r);d||s.setHeader(`Content-Disposition`,p.disposition),p.csp!==null&&s.setHeader(`Content-Security-Policy`,p.csp),p.sandboxedHtml&&s.setHeader(`Cache-Control`,`no-store`),n(e,s,()=>{if(s.headersSent)return;let e=ke.has(u);if(!e&&(i.has(u)||a.has(u))){s.statusCode=404,s.end();return}e&&(s.removeHeader(`Content-Security-Policy`),s.removeHeader(`Content-Disposition`),s.removeHeader(`X-Content-Type-Options`),s.removeHeader(`Cache-Control`)),c()})}}function OZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function iye(e){let t;try{t=zu(e.contentDir,{withFileTypes:!0})}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&zx(n.name,T)&&e.basenameIndex.add(n.name)}async function kZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await nd(i,{withFileTypes:!0})}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=F(i,o.name),s=LM(I(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await ed(a)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await rd(a)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!RM(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await id(i)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`symlink-stat-failed`,n,i);continue}if(n.has(o.ino))continue;n.add(o.ino),o.isDirectory()?await r(i):o.isFile()&&zx(a,ue)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s);continue}if(c.isDirectory()){if(n.has(c.ino))continue;n.add(c.ino),await r(a);continue}c.isFile()&&zx(a,ue)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const AZ=b({principalId:h().optional(),tabSessionId:h().optional(),expectedServerInstanceId:h().optional(),expectedBranch:h().optional(),expectedDocLineageEpoch:h().optional(),clientProtocolVersion:j().optional(),clientRuntimeVersion:h().optional(),clientKind:h().optional()}).loose(),jZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function MZ(e){return jZ.includes(e)}function NZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function aye(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!MZ(n))return{kind:null,payload:void 0};if(t===-1)return{kind:n,payload:void 0};let r=e.slice(t+1);return{kind:n,payload:r.length>0?r:void 0}}var PZ=class extends Error{kind;payload;reason;constructor(e,t,n){super(t),this.name=`HocuspocusAuthRejection`,this.kind=e,this.payload=typeof n==`string`&&n.length>0?n:void 0,this.reason=NZ(e,this.payload)}};function FZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=AZ.safeParse(t);return n.success?n.data:void 0}var IZ=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};const LZ=N(`conflict-storage`);var RZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=F(Pk(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!z(this.storePath)){this.conflicts=[];return}try{let e=B(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){LZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){LZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=P(this.storePath);z(e)||Nu(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return Ku(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return LZ.warn({err:e},`[conflicts] failed to save conflicts.json`),!1}}addConflict(e){if(e.variant===`working-tree`&&!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let t=this.conflicts.findIndex(t=>t.file===e.file);return t===-1?this.conflicts.push(e):this.conflicts[t]=e,this.save()}removeConflict(e){return this.conflicts=this.conflicts.filter(t=>t.file!==e),this.save()}clear(){this.conflicts=[],this.save()}count(){return this.conflicts.length}list(){return[...this.conflicts]}hasConflicts(){return this.conflicts.length>0}setBranch(e){this.branch=e}async resolveConflict(e,t,n){let r=this.conflicts.find(t=>t.file===e);if(!r)throw Error(`[conflicts] no conflict tracked for file: ${e}`);if(t===`content`&&n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);if(r.variant===`working-tree`){await this.resolveWorkingTreeConflict(r,t,n);return}let{createGitInstance:i}=await import(`./git-handle-CDxQW_H0.mjs`),a=i(this.projectDir,{credentialConfig:[]});switch(t){case`mine`:await a.git.raw([`checkout`,`--ours`,`--`,e]),await a.git.raw([`add`,`--`,e]);break;case`theirs`:await a.git.raw([`checkout`,`--theirs`,`--`,e]),await a.git.raw([`add`,`--`,e]);break;case`content`:{if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);let t=L(this.projectDir),r=L(t,e);if(!RM(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);gL(r,t),Ys(r,n,`utf-8`),await a.git.raw([`add`,`--`,e]);break}case`delete`:await a.git.raw([`rm`,`--`,e]);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}if(this.removeConflict(e),!this.hasConflicts())try{await a.git.raw([`commit`,`--no-edit`]),LZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await Ub(a.git,[`diff`,`--name-only`,`--diff-filter=U`]);for(let t of e)this.addConflict({file:t,detectedAt:n});r=e.length>0}catch(e){LZ.warn({err:e},`[conflicts] commit failed and re-scan of unmerged files failed — falling back to single-file re-add`)}r||this.addConflict({file:e,detectedAt:n}),LZ.warn({err:t},`[conflicts] failed to commit merge after all conflicts resolved — unmerged files re-added`);let i=t instanceof Error?t.message:String(t);throw Error(`Merge commit failed after resolving ${e}; ${r?`unmerged files re-added`:`original file re-added`} — ${i}`,{cause:t})}}async resolveWorkingTreeConflict(e,t,n){let r=L(this.projectDir),i=L(r,e.file);if(!RM(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(gL(i,r),t){case`mine`:break;case`theirs`:{if(!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let{createGitInstance:t}=await import(`./git-handle-CDxQW_H0.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);gL(i,r),Ys(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Ys(i,n,`utf-8`);break;case`delete`:z(i)&&Fs(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function oye(e,t){let n=e instanceof Error?{name:e.name,message:e.message,stack:e.stack??null}:{name:`NonError`,message:String(e),stack:null};return{timestamp:new Date().toISOString(),origin:t,error:n,pid:process.pid,uptimeSec:Math.round(process.uptime()*1e3)/1e3}}function sye(e,t){let n=Pk(e);try{Nu(n,{recursive:!0}),Ku(F(n,lo),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=ac(e);Nu(P(n),{recursive:!0});let r={level:60,time:Date.parse(t.timestamp),name:`crash`,origin:t.origin,err:t.error,pid:t.pid,uptimeSec:t.uptimeSec,msg:`fatal ${t.origin} — process crashing`};Ku(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const zZ=new Map;let BZ=!1;function cye(e,t){try{let n=oye(e,t);for(let e of zZ.keys())sye(e,n)}catch{}}function lye(e){zZ.set(e,(zZ.get(e)??0)+1),BZ||(BZ=!0,process.on(`uncaughtExceptionMonitor`,cye));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=zZ.get(e)??0;n<=1?zZ.delete(e):zZ.set(e,n-1)}}}function VZ(e){let t=e.scheduler??zi,n=e.warnBeforeMs??3e5,r=0,i=null,a=null,o=!1,s=!1;function c(){i!==null&&(t.clearTimeout(i),i=null),a!==null&&(t.clearTimeout(a),a=null)}function l(){c(),!(s||o)&&r===0&&(n>0&&n<e.thresholdMs&&(a=t.setTimeout(()=>{a=null,r===0&&!o&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),i=t.setTimeout(()=>{if(i=null,!(s||o)&&r===0){o=!0,e.log?.info({webSocketClientCount:0},`idle shutdown firing`);try{let t=e.onShutdown();t&&typeof t.then==`function`&&t.catch(t=>{e.log?.error({err:t},`idle shutdown handler rejected`)})}catch(t){e.log?.error({err:t},`idle shutdown handler threw`)}}},e.thresholdMs))}let u=(e,t)=>{e.url?.startsWith(`/collab`)&&(r++,c(),t.once(`close`,()=>{r--,r<0&&(r=0),r===0&&l()}))};return e.httpServer.on(`upgrade`,u),l(),{detach:()=>{s||(s=!0,e.httpServer.off(`upgrade`,u),c())}}}function HZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function UZ(e){if(!z(e))return{};let t;try{t=(0,nk.parse)(B(e,`utf-8`))}catch(t){return console.warn(`[telemetry.localSink] failed to parse ${e}; falling back to schema defaults — any explicit telemetry.localSink fields in this file are being ignored. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!HZ(t))return{};let n=t.telemetry;if(!HZ(n))return{};let r=n.localSink;return HZ(r)?r:{}}function WZ(e){return typeof e==`boolean`?e:void 0}function uye(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function GZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function KZ(e){if(HZ(e))return uye(e.maxBytes)}function dye(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=UZ(zs(`project`,e.projectDir)),n=UZ(zs(`project-local`,e.projectDir));if((WZ(n.enabled)??WZ(t.enabled)??!0)===!1)return null;let r=KZ(n.spans)??KZ(t.spans)??52428800,i=KZ(n.logs)??KZ(t.logs)??26214400,a=GZ(n.attributeDenylist)??GZ(t.attributeDenylist)??ye;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:a},logs:{projectDir:e.projectDir,maxBytes:i}}}var qZ;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(qZ||={});var fye;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(fye||={});const JZ=qZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),YZ=e=>{switch(typeof e){case`undefined`:return JZ.undefined;case`string`:return JZ.string;case`number`:return Number.isNaN(e)?JZ.nan:JZ.number;case`boolean`:return JZ.boolean;case`function`:return JZ.function;case`bigint`:return JZ.bigint;case`symbol`:return JZ.symbol;case`object`:return Array.isArray(e)?JZ.array:e===null?JZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?JZ.promise:typeof Map<`u`&&e instanceof Map?JZ.map:typeof Set<`u`&&e instanceof Set?JZ.set:typeof Date<`u`&&e instanceof Date?JZ.date:JZ.object;default:return JZ.unknown}},X=qZ.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]);var XZ=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,qZ.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};XZ.create=e=>new XZ(e);const ZZ=(e,t)=>{let n;switch(e.code){case X.invalid_type:n=e.received===JZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case X.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,qZ.jsonStringifyReplacer)}`;break;case X.unrecognized_keys:n=`Unrecognized key(s) in object: ${qZ.joinValues(e.keys,`, `)}`;break;case X.invalid_union:n=`Invalid input`;break;case X.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${qZ.joinValues(e.options)}`;break;case X.invalid_enum_value:n=`Invalid enum value. Expected ${qZ.joinValues(e.options)}, received '${e.received}'`;break;case X.invalid_arguments:n=`Invalid function arguments`;break;case X.invalid_return_type:n=`Invalid function return type`;break;case X.invalid_date:n=`Invalid date`;break;case X.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:qZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case X.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case X.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case X.custom:n=`Invalid input`;break;case X.invalid_intersection_types:n=`Intersection results could not be merged`;break;case X.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case X.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,qZ.assertNever(e)}return{message:n}};let pye=ZZ;function QZ(){return pye}const $Z=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function eQ(e,t){let n=QZ(),r=$Z({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ZZ?void 0:ZZ].filter(e=>!!e)});e.common.issues.push(r)}var tQ=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return nQ;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return nQ;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}};const nQ=Object.freeze({status:`aborted`}),rQ=e=>({status:`dirty`,value:e}),iQ=e=>({status:`valid`,value:e}),aQ=e=>e.status===`aborted`,oQ=e=>e.status===`dirty`,sQ=e=>e.status===`valid`,cQ=e=>typeof Promise<`u`&&e instanceof Promise;var lQ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(lQ||={});var uQ=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};const dQ=(e,t)=>{if(sQ(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new XZ(e.common.issues);return this._error=t,this._error}}};function fQ(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var pQ=class{get description(){return this._def.description}_getType(e){return YZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:YZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new tQ,ctx:{common:e.parent.common,data:e.data,parsedType:YZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(cQ(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)};return dQ(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return sQ(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>sQ(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)},r=this._parse({data:e,path:n.path,parent:n});return dQ(n,await(cQ(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:X.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new GQ({schema:this,typeName:Z.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return KQ.create(this,this._def)}nullable(){return qQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return kQ.create(this)}promise(){return WQ.create(this,this._def)}or(e){return MQ.create([this,e],this._def)}and(e){return FQ.create(this,e,this._def)}transform(e){return new GQ({...fQ(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new JQ({...fQ(this._def),innerType:this,defaultValue:t,typeName:Z.ZodDefault})}brand(){return new ZQ({typeName:Z.ZodBranded,type:this,...fQ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new YQ({...fQ(this._def),innerType:this,catchValue:t,typeName:Z.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return QQ.create(this,e)}readonly(){return $Q.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const mye=/^c[^\s-]{8,}$/i,hye=/^[0-9a-z]+$/,gye=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_ye=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,vye=/^[a-z0-9_-]{21}$/i,yye=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bye=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,xye=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let mQ;const Sye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Cye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,wye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Tye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Eye=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dye=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,hQ=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Oye=RegExp(`^${hQ}$`);function gQ(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function kye(e){return RegExp(`^${gQ(e)}$`)}function Aye(e){let t=`${hQ}T${gQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function jye(e,t){return!!((t===`v4`||!t)&&Sye.test(e)||(t===`v6`||!t)&&wye.test(e))}function Mye(e,t){if(!yye.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Nye(e,t){return!!((t===`v4`||!t)&&Cye.test(e)||(t===`v6`||!t)&&Tye.test(e))}var _Q=class e extends pQ{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==JZ.string){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.string,received:t.parsedType}),nQ}let t=new tQ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?eQ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&eQ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)xye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`email`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)mQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),mQ.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`emoji`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)_ye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`uuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)vye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`nanoid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)mye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)hye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cuid2`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)gye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`ulid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),eQ(n,{validation:`url`,code:X.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`regex`,code:X.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Aye(r).test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Oye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?kye(r).test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?bye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`duration`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?jye(e.data,r.version)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`ip`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Mye(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`jwt`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Nye(e.data,r.version)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cidr`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Eye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`base64`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Dye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`base64url`,code:X.invalid_string,message:r.message}),t.dirty()):qZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:X.invalid_string,...lQ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...lQ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...lQ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...lQ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...lQ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...lQ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...lQ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...lQ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...lQ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...lQ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...lQ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...lQ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...lQ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...lQ.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...lQ.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...lQ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...lQ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...lQ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...lQ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...lQ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...lQ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...lQ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...lQ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...lQ.errToObj(t)})}nonempty(e){return this.min(1,lQ.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};_Q.create=e=>new _Q({checks:[],typeName:Z.ZodString,coerce:e?.coerce??!1,...fQ(e)});function Pye(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var vQ=class e extends pQ{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==JZ.number){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.number,received:t.parsedType}),nQ}let t,n=new tQ;for(let r of this._def.checks)r.kind===`int`?qZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Pye(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_finite,message:r.message}),n.dirty()):qZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,lQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,lQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,lQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,lQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:lQ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:lQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:lQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:lQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:lQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:lQ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:lQ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:lQ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:lQ.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&qZ.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};vQ.create=e=>new vQ({checks:[],typeName:Z.ZodNumber,coerce:e?.coerce||!1,...fQ(e)});var yQ=class e extends pQ{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==JZ.bigint)return this._getInvalidInput(e);let t,n=new tQ;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):qZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.bigint,received:t.parsedType}),nQ}gte(e,t){return this.setLimit(`min`,e,!0,lQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,lQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,lQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,lQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:lQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:lQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:lQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:lQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:lQ.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};yQ.create=e=>new yQ({checks:[],typeName:Z.ZodBigInt,coerce:e?.coerce??!1,...fQ(e)});var bQ=class extends pQ{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==JZ.boolean){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.boolean,received:t.parsedType}),nQ}return iQ(e.data)}};bQ.create=e=>new bQ({typeName:Z.ZodBoolean,coerce:e?.coerce||!1,...fQ(e)});var xQ=class e extends pQ{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==JZ.date){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.date,received:t.parsedType}),nQ}if(Number.isNaN(e.data.getTime()))return eQ(this._getOrReturnCtx(e),{code:X.invalid_date}),nQ;let t=new tQ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):qZ.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:lQ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:lQ.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};xQ.create=e=>new xQ({checks:[],coerce:e?.coerce||!1,typeName:Z.ZodDate,...fQ(e)});var SQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.symbol){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.symbol,received:t.parsedType}),nQ}return iQ(e.data)}};SQ.create=e=>new SQ({typeName:Z.ZodSymbol,...fQ(e)});var CQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.undefined){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.undefined,received:t.parsedType}),nQ}return iQ(e.data)}};CQ.create=e=>new CQ({typeName:Z.ZodUndefined,...fQ(e)});var wQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.null){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.null,received:t.parsedType}),nQ}return iQ(e.data)}};wQ.create=e=>new wQ({typeName:Z.ZodNull,...fQ(e)});var TQ=class extends pQ{constructor(){super(...arguments),this._any=!0}_parse(e){return iQ(e.data)}};TQ.create=e=>new TQ({typeName:Z.ZodAny,...fQ(e)});var EQ=class extends pQ{constructor(){super(...arguments),this._unknown=!0}_parse(e){return iQ(e.data)}};EQ.create=e=>new EQ({typeName:Z.ZodUnknown,...fQ(e)});var DQ=class extends pQ{_parse(e){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.never,received:t.parsedType}),nQ}};DQ.create=e=>new DQ({typeName:Z.ZodNever,...fQ(e)});var OQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.undefined){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.void,received:t.parsedType}),nQ}return iQ(e.data)}};OQ.create=e=>new OQ({typeName:Z.ZodVoid,...fQ(e)});var kQ=class e extends pQ{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==JZ.array)return eQ(t,{code:X.invalid_type,expected:JZ.array,received:t.parsedType}),nQ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(eQ(t,{code:e?X.too_big:X.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(eQ(t,{code:X.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(eQ(t,{code:X.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new uQ(t,e,t.path,n)))).then(e=>tQ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new uQ(t,e,t.path,n)));return tQ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lQ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lQ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lQ.toString(n)}})}nonempty(e){return this.min(1,e)}};kQ.create=(e,t)=>new kQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...fQ(t)});function AQ(e){if(e instanceof jQ){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=KQ.create(AQ(r))}return new jQ({...e._def,shape:()=>t})}else if(e instanceof kQ)return new kQ({...e._def,type:AQ(e.element)});else if(e instanceof KQ)return KQ.create(AQ(e.unwrap()));else if(e instanceof qQ)return qQ.create(AQ(e.unwrap()));else if(e instanceof IQ)return IQ.create(e.items.map(e=>AQ(e)));else return e}var jQ=class e extends pQ{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=qZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==JZ.object){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.object,received:t.parsedType}),nQ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof DQ&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new uQ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof DQ){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(eQ(n,{code:X.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new uQ(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>tQ.mergeObjectSync(t,e)):tQ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return lQ.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:lQ.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Z.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of qZ.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of qZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return AQ(this)}partial(t){let n={};for(let e of qZ.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of qZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof KQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return VQ(qZ.objectKeys(this.shape))}};jQ.create=(e,t)=>new jQ({shape:()=>e,unknownKeys:`strip`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)}),jQ.strictCreate=(e,t)=>new jQ({shape:()=>e,unknownKeys:`strict`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)}),jQ.lazycreate=(e,t)=>new jQ({shape:e,unknownKeys:`strip`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)});var MQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new XZ(e.ctx.common.issues));return eQ(t,{code:X.invalid_union,unionErrors:n}),nQ}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new XZ(e));return eQ(t,{code:X.invalid_union,unionErrors:i}),nQ}}get options(){return this._def.options}};MQ.create=(e,t)=>new MQ({options:e,typeName:Z.ZodUnion,...fQ(t)});const NQ=e=>e instanceof zQ?NQ(e.schema):e instanceof GQ?NQ(e.innerType()):e instanceof BQ?[e.value]:e instanceof HQ?e.options:e instanceof UQ?qZ.objectValues(e.enum):e instanceof JQ?NQ(e._def.innerType):e instanceof CQ?[void 0]:e instanceof wQ?[null]:e instanceof KQ?[void 0,...NQ(e.unwrap())]:e instanceof qQ?[null,...NQ(e.unwrap())]:e instanceof ZQ||e instanceof $Q?NQ(e.unwrap()):e instanceof YQ?NQ(e._def.innerType):[];var Fye=class e extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==JZ.object)return eQ(t,{code:X.invalid_type,expected:JZ.object,received:t.parsedType}),nQ;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(eQ(t,{code:X.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),nQ)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=NQ(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Z.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...fQ(r)})}};function PQ(e,t){let n=YZ(e),r=YZ(t);if(e===t)return{valid:!0,data:e};if(n===JZ.object&&r===JZ.object){let n=qZ.objectKeys(t),r=qZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=PQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===JZ.array&&r===JZ.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=PQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===JZ.date&&r===JZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var FQ=class extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(aQ(e)||aQ(r))return nQ;let i=PQ(e.value,r.value);return i.valid?((oQ(e)||oQ(r))&&t.dirty(),{status:t.value,value:i.data}):(eQ(n,{code:X.invalid_intersection_types}),nQ)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};FQ.create=(e,t,n)=>new FQ({left:e,right:t,typeName:Z.ZodIntersection,...fQ(n)});var IQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.array)return eQ(n,{code:X.invalid_type,expected:JZ.array,received:n.parsedType}),nQ;if(n.data.length<this._def.items.length)return eQ(n,{code:X.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),nQ;!this._def.rest&&n.data.length>this._def.items.length&&(eQ(n,{code:X.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new uQ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>tQ.mergeArray(t,e)):tQ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};IQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new IQ({items:e,typeName:Z.ZodTuple,rest:null,...fQ(t)})};var Iye=class e extends pQ{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.object)return eQ(n,{code:X.invalid_type,expected:JZ.object,received:n.parsedType}),nQ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new uQ(n,e,n.path,e)),value:a._parse(new uQ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?tQ.mergeObjectAsync(t,r):tQ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof pQ?new e({keyType:t,valueType:n,typeName:Z.ZodRecord,...fQ(r)}):new e({keyType:_Q.create(),valueType:t,typeName:Z.ZodRecord,...fQ(n)})}},LQ=class extends pQ{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.map)return eQ(n,{code:X.invalid_type,expected:JZ.map,received:n.parsedType}),nQ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new uQ(n,e,n.path,[a,`key`])),value:i._parse(new uQ(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return nQ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return nQ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};LQ.create=(e,t,n)=>new LQ({valueType:t,keyType:e,typeName:Z.ZodMap,...fQ(n)});var RQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.set)return eQ(n,{code:X.invalid_type,expected:JZ.set,received:n.parsedType}),nQ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(eQ(n,{code:X.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(eQ(n,{code:X.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return nQ;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new uQ(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:lQ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lQ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};RQ.create=(e,t)=>new RQ({valueType:e,minSize:null,maxSize:null,typeName:Z.ZodSet,...fQ(t)});var Lye=class e extends pQ{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==JZ.function)return eQ(t,{code:X.invalid_type,expected:JZ.function,received:t.parsedType}),nQ;function n(e,n){return $Z({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,QZ(),ZZ].filter(e=>!!e),issueData:{code:X.invalid_arguments,argumentsError:n}})}function r(e,n){return $Z({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,QZ(),ZZ].filter(e=>!!e),issueData:{code:X.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof WQ){let e=this;return iQ(async function(...t){let o=new XZ([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return iQ(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new XZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new XZ([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:IQ.create(t).rest(EQ.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||IQ.create([]).rest(EQ.create()),returns:n||EQ.create(),typeName:Z.ZodFunction,...fQ(r)})}},zQ=class extends pQ{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};zQ.create=(e,t)=>new zQ({getter:e,typeName:Z.ZodLazy,...fQ(t)});var BQ=class extends pQ{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return eQ(t,{received:t.data,code:X.invalid_literal,expected:this._def.value}),nQ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};BQ.create=(e,t)=>new BQ({value:e,typeName:Z.ZodLiteral,...fQ(t)});function VQ(e,t){return new HQ({values:e,typeName:Z.ZodEnum,...fQ(t)})}var HQ=class e extends pQ{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return eQ(t,{expected:qZ.joinValues(n),received:t.parsedType,code:X.invalid_type}),nQ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return eQ(t,{received:t.data,code:X.invalid_enum_value,options:n}),nQ}return iQ(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};HQ.create=VQ;var UQ=class extends pQ{_parse(e){let t=qZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==JZ.string&&n.parsedType!==JZ.number){let e=qZ.objectValues(t);return eQ(n,{expected:qZ.joinValues(e),received:n.parsedType,code:X.invalid_type}),nQ}if(this._cache||=new Set(qZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=qZ.objectValues(t);return eQ(n,{received:n.data,code:X.invalid_enum_value,options:e}),nQ}return iQ(e.data)}get enum(){return this._def.values}};UQ.create=(e,t)=>new UQ({values:e,typeName:Z.ZodNativeEnum,...fQ(t)});var WQ=class extends pQ{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==JZ.promise&&t.common.async===!1?(eQ(t,{code:X.invalid_type,expected:JZ.promise,received:t.parsedType}),nQ):iQ((t.parsedType===JZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};WQ.create=(e,t)=>new WQ({type:e,typeName:Z.ZodPromise,...fQ(t)});var GQ=class extends pQ{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{eQ(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return nQ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?nQ:r.status===`dirty`||t.value===`dirty`?rQ(r.value):r});{if(t.value===`aborted`)return nQ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?nQ:r.status===`dirty`||t.value===`dirty`?rQ(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?nQ:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?nQ:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!sQ(e))return nQ;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>sQ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):nQ);qZ.assertNever(r)}};GQ.create=(e,t,n)=>new GQ({schema:e,typeName:Z.ZodEffects,effect:t,...fQ(n)}),GQ.createWithPreprocess=(e,t,n)=>new GQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Z.ZodEffects,...fQ(n)});var KQ=class extends pQ{_parse(e){return this._getType(e)===JZ.undefined?iQ(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};KQ.create=(e,t)=>new KQ({innerType:e,typeName:Z.ZodOptional,...fQ(t)});var qQ=class extends pQ{_parse(e){return this._getType(e)===JZ.null?iQ(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};qQ.create=(e,t)=>new qQ({innerType:e,typeName:Z.ZodNullable,...fQ(t)});var JQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===JZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};JQ.create=(e,t)=>new JQ({innerType:e,typeName:Z.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...fQ(t)});var YQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return cQ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new XZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new XZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};YQ.create=(e,t)=>new YQ({innerType:e,typeName:Z.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...fQ(t)});var XQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.nan){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.nan,received:t.parsedType}),nQ}return{status:`valid`,value:e.data}}};XQ.create=e=>new XQ({typeName:Z.ZodNaN,...fQ(e)});var ZQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},QQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?nQ:e.status===`dirty`?(t.dirty(),rQ(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?nQ:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Z.ZodPipeline})}},$Q=class extends pQ{_parse(e){let t=this._def.innerType._parse(e),n=e=>(sQ(e)&&(e.value=Object.freeze(e.value)),e);return cQ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};$Q.create=(e,t)=>new $Q({innerType:e,typeName:Z.ZodReadonly,...fQ(t)}),jQ.lazycreate;var Z;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Z||={}),_Q.create,vQ.create,XQ.create,yQ.create,bQ.create,xQ.create,SQ.create,CQ.create,wQ.create,TQ.create,EQ.create,DQ.create,OQ.create,kQ.create;const Rye=jQ.create;jQ.strictCreate,MQ.create,Fye.create,FQ.create,IQ.create,Iye.create,LQ.create,RQ.create,Lye.create,zQ.create,BQ.create,HQ.create,UQ.create,WQ.create,GQ.create,KQ.create,qQ.create,GQ.createWithPreprocess,QQ.create;const zye=je(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);_.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>De(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>se(e,t,n),e.parseAsync=async(t,n)=>g(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>oe(e,t,n),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]},{parent:!0}),e.with=e.check,e.clone=(t,n)=>E(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),Bye=je(`ZodMiniObject`,(e,t)=>{f.init(e,t),zye.init(e,t),r(e,`shape`,()=>t.shape)});function e$(e,t){return new Bye({type:`object`,shape:e??{},...A(t)})}function t$(e){return!!e._zod}function n$(e){let t=Object.values(e);if(t.length===0)return e$({});let n=t.every(t$),r=t.every(e=>!t$(e));if(n)return e$(e);if(r)return Rye(e);throw Error(`Mixed Zod versions detected in object shape.`)}function r$(e,t){return t$(e)?se(e,t):e.safeParse(t)}async function i$(e,t){return t$(e)?await oe(e,t):await e.safeParseAsync(t)}function a$(e){if(!e)return;let t;if(t=t$(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function o$(e){if(e){if(typeof e==`object`){let t=e,n=e;if(!t._def&&!n._zod){let t=Object.values(e);if(t.length>0&&t.every(e=>typeof e==`object`&&!!e&&(e._def!==void 0||e._zod!==void 0||typeof e.parse==`function`)))return n$(e)}}if(t$(e)){let t=e._zod?.def;if(t&&(t.type===`object`||t.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function s$(e){if(e&&typeof e==`object`){if(`message`in e&&typeof e.message==`string`)return e.message;if(`issues`in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t==`object`&&`message`in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Vye(e){return e.description}function Hye(e){if(t$(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function c$(e){if(t$(e)){let t=e._zod?.def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=e.value;if(n!==void 0)return n}const l$=`2025-11-25`,u$=[l$,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],d$=`io.modelcontextprotocol/related-task`,f$=Ie(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),p$=y([h(),j().int()]),m$=h();i({ttl:j().optional(),pollInterval:j().optional()});const Uye=b({ttl:j().optional()}),Wye=b({taskId:h()}),h$=i({progressToken:p$.optional(),[d$]:Wye.optional()}),g$=b({_meta:h$.optional()}),_$=g$.extend({task:Uye.optional()}),Gye=e=>_$.safeParse(e).success,v$=b({method:h(),params:g$.loose().optional()}),y$=b({_meta:h$.optional()}),b$=b({method:h(),params:y$.loose().optional()}),x$=i({_meta:h$.optional()}),S$=y([h(),j().int()]),C$=b({jsonrpc:M(`2.0`),id:S$,...v$.shape}).strict(),w$=e=>C$.safeParse(e).success,T$=b({jsonrpc:M(`2.0`),...b$.shape}).strict(),Kye=e=>T$.safeParse(e).success,E$=b({jsonrpc:M(`2.0`),id:S$,result:x$}).strict(),D$=e=>E$.safeParse(e).success;var O$;(function(e){e[e.ConnectionClosed=-32e3]=`ConnectionClosed`,e[e.RequestTimeout=-32001]=`RequestTimeout`,e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`})(O$||={});const k$=b({jsonrpc:M(`2.0`),id:S$.optional(),error:b({code:j().int(),message:h(),data:D().optional()})}).strict(),A$=e=>k$.safeParse(e).success,j$=y([C$,T$,E$,k$]);y([E$,k$]);const M$=x$.strict(),qye=y$.extend({requestId:S$.optional(),reason:h().optional()}),N$=b$.extend({method:M(`notifications/cancelled`),params:qye}),P$=b({icons:O(b({src:h(),mimeType:h().optional(),sizes:O(h()).optional(),theme:Re([`light`,`dark`]).optional()})).optional()}),F$=b({name:h(),title:h().optional()}),I$=F$.extend({...F$.shape,...P$.shape,version:h(),websiteUrl:h().optional(),description:h().optional()}),Jye=w(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,c(b({form:c(b({applyDefaults:s().optional()}),d(h(),D())).optional(),url:f$.optional()}),d(h(),D()).optional())),Yye=i({list:f$.optional(),cancel:f$.optional(),requests:i({sampling:i({createMessage:f$.optional()}).optional(),elicitation:i({create:f$.optional()}).optional()}).optional()}),Xye=i({list:f$.optional(),cancel:f$.optional(),requests:i({tools:i({call:f$.optional()}).optional()}).optional()}),Zye=b({experimental:d(h(),f$).optional(),sampling:b({context:f$.optional(),tools:f$.optional()}).optional(),elicitation:Jye.optional(),roots:b({listChanged:s().optional()}).optional(),tasks:Yye.optional(),extensions:d(h(),f$).optional()}),Qye=g$.extend({protocolVersion:h(),capabilities:Zye,clientInfo:I$}),L$=v$.extend({method:M(`initialize`),params:Qye}),R$=e=>L$.safeParse(e).success,$ye=b({experimental:d(h(),f$).optional(),logging:f$.optional(),completions:f$.optional(),prompts:b({listChanged:s().optional()}).optional(),resources:b({subscribe:s().optional(),listChanged:s().optional()}).optional(),tools:b({listChanged:s().optional()}).optional(),tasks:Xye.optional(),extensions:d(h(),f$).optional()}),ebe=x$.extend({protocolVersion:h(),capabilities:$ye,serverInfo:I$,instructions:h().optional()}),z$=b$.extend({method:M(`notifications/initialized`),params:y$.optional()}),tbe=e=>z$.safeParse(e).success,B$=v$.extend({method:M(`ping`),params:g$.optional()}),nbe=b({progress:j(),total:S(j()),message:S(h())}),rbe=b({...y$.shape,...nbe.shape,progressToken:p$}),V$=b$.extend({method:M(`notifications/progress`),params:rbe}),ibe=g$.extend({cursor:m$.optional()}),H$=v$.extend({params:ibe.optional()}),U$=x$.extend({nextCursor:m$.optional()}),abe=Re([`working`,`input_required`,`completed`,`failed`,`cancelled`]),W$=b({taskId:h(),status:abe,ttl:y([j(),de()]),createdAt:h(),lastUpdatedAt:h(),pollInterval:S(j()),statusMessage:S(h())}),G$=x$.extend({task:W$}),obe=y$.merge(W$),K$=b$.extend({method:M(`notifications/tasks/status`),params:obe}),q$=v$.extend({method:M(`tasks/get`),params:g$.extend({taskId:h()})}),J$=x$.merge(W$),Y$=v$.extend({method:M(`tasks/result`),params:g$.extend({taskId:h()})});x$.loose();const X$=H$.extend({method:M(`tasks/list`)}),Z$=U$.extend({tasks:O(W$)}),Q$=v$.extend({method:M(`tasks/cancel`),params:g$.extend({taskId:h()})}),sbe=x$.merge(W$),$$=b({uri:h(),mimeType:S(h()),_meta:d(h(),D()).optional()}),e1=$$.extend({text:h()}),t1=h().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),n1=$$.extend({blob:t1}),r1=Re([`user`,`assistant`]),i1=b({audience:O(r1).optional(),priority:j().min(0).max(1).optional(),lastModified:ae({offset:!0}).optional()}),a1=b({...F$.shape,...P$.shape,uri:h(),description:S(h()),mimeType:S(h()),size:S(j()),annotations:i1.optional(),_meta:S(i({}))}),cbe=b({...F$.shape,...P$.shape,uriTemplate:h(),description:S(h()),mimeType:S(h()),annotations:i1.optional(),_meta:S(i({}))}),o1=H$.extend({method:M(`resources/list`)}),lbe=U$.extend({resources:O(a1)}),s1=H$.extend({method:M(`resources/templates/list`)}),ube=U$.extend({resourceTemplates:O(cbe)}),c1=g$.extend({uri:h()}),dbe=c1,l1=v$.extend({method:M(`resources/read`),params:dbe}),fbe=x$.extend({contents:O(y([e1,n1]))}),pbe=b$.extend({method:M(`notifications/resources/list_changed`),params:y$.optional()}),mbe=c1,hbe=v$.extend({method:M(`resources/subscribe`),params:mbe}),gbe=c1,_be=v$.extend({method:M(`resources/unsubscribe`),params:gbe}),vbe=y$.extend({uri:h()}),ybe=b$.extend({method:M(`notifications/resources/updated`),params:vbe}),bbe=b({name:h(),description:S(h()),required:S(s())}),xbe=b({...F$.shape,...P$.shape,description:S(h()),arguments:S(O(bbe)),_meta:S(i({}))}),u1=H$.extend({method:M(`prompts/list`)}),Sbe=U$.extend({prompts:O(xbe)}),Cbe=g$.extend({name:h(),arguments:d(h(),h()).optional()}),d1=v$.extend({method:M(`prompts/get`),params:Cbe}),f1=b({type:M(`text`),text:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),p1=b({type:M(`image`),data:t1,mimeType:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),m1=b({type:M(`audio`),data:t1,mimeType:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),wbe=b({type:M(`tool_use`),name:h(),id:h(),input:d(h(),D()),_meta:d(h(),D()).optional()}),Tbe=b({type:M(`resource`),resource:y([e1,n1]),annotations:i1.optional(),_meta:d(h(),D()).optional()}),h1=y([f1,p1,m1,a1.extend({type:M(`resource_link`)}),Tbe]),Ebe=b({role:r1,content:h1}),Dbe=x$.extend({description:h().optional(),messages:O(Ebe)}),Obe=b$.extend({method:M(`notifications/prompts/list_changed`),params:y$.optional()}),kbe=b({title:h().optional(),readOnlyHint:s().optional(),destructiveHint:s().optional(),idempotentHint:s().optional(),openWorldHint:s().optional()}),Abe=b({taskSupport:Re([`required`,`optional`,`forbidden`]).optional()}),g1=b({...F$.shape,...P$.shape,description:h().optional(),inputSchema:b({type:M(`object`),properties:d(h(),f$).optional(),required:O(h()).optional()}).catchall(D()),outputSchema:b({type:M(`object`),properties:d(h(),f$).optional(),required:O(h()).optional()}).catchall(D()).optional(),annotations:kbe.optional(),execution:Abe.optional(),_meta:d(h(),D()).optional()}),_1=H$.extend({method:M(`tools/list`)}),jbe=U$.extend({tools:O(g1)}),v1=x$.extend({content:O(h1).default([]),structuredContent:d(h(),D()).optional(),isError:s().optional()});v1.or(x$.extend({toolResult:D()}));const Mbe=_$.extend({name:h(),arguments:d(h(),D()).optional()}),y1=v$.extend({method:M(`tools/call`),params:Mbe}),Nbe=b$.extend({method:M(`notifications/tools/list_changed`),params:y$.optional()});b({autoRefresh:s().default(!0),debounceMs:j().int().nonnegative().default(300)});const b1=Re([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Pbe=g$.extend({level:b1}),x1=v$.extend({method:M(`logging/setLevel`),params:Pbe}),Fbe=y$.extend({level:b1,logger:h().optional(),data:D()}),Ibe=b$.extend({method:M(`notifications/message`),params:Fbe}),Lbe=b({hints:O(b({name:h().optional()})).optional(),costPriority:j().min(0).max(1).optional(),speedPriority:j().min(0).max(1).optional(),intelligencePriority:j().min(0).max(1).optional()}),Rbe=b({mode:Re([`auto`,`required`,`none`]).optional()}),zbe=b({type:M(`tool_result`),toolUseId:h().describe(`The unique identifier for the corresponding tool call.`),content:O(h1).default([]),structuredContent:b({}).loose().optional(),isError:s().optional(),_meta:d(h(),D()).optional()}),Bbe=re(`type`,[f1,p1,m1]),S1=re(`type`,[f1,p1,m1,wbe,zbe]),Vbe=b({role:r1,content:y([S1,O(S1)]),_meta:d(h(),D()).optional()}),Hbe=_$.extend({messages:O(Vbe),modelPreferences:Lbe.optional(),systemPrompt:h().optional(),includeContext:Re([`none`,`thisServer`,`allServers`]).optional(),temperature:j().optional(),maxTokens:j().int(),stopSequences:O(h()).optional(),metadata:f$.optional(),tools:O(g1).optional(),toolChoice:Rbe.optional()}),Ube=v$.extend({method:M(`sampling/createMessage`),params:Hbe}),C1=x$.extend({model:h(),stopReason:S(Re([`endTurn`,`stopSequence`,`maxTokens`]).or(h())),role:r1,content:Bbe}),w1=x$.extend({model:h(),stopReason:S(Re([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(h())),role:r1,content:y([S1,O(S1)])}),Wbe=b({type:M(`boolean`),title:h().optional(),description:h().optional(),default:s().optional()}),Gbe=b({type:M(`string`),title:h().optional(),description:h().optional(),minLength:j().optional(),maxLength:j().optional(),format:Re([`email`,`uri`,`date`,`date-time`]).optional(),default:h().optional()}),Kbe=b({type:Re([`number`,`integer`]),title:h().optional(),description:h().optional(),minimum:j().optional(),maximum:j().optional(),default:j().optional()}),qbe=b({type:M(`string`),title:h().optional(),description:h().optional(),enum:O(h()),default:h().optional()}),Jbe=b({type:M(`string`),title:h().optional(),description:h().optional(),oneOf:O(b({const:h(),title:h()})),default:h().optional()}),Ybe=y([y([b({type:M(`string`),title:h().optional(),description:h().optional(),enum:O(h()),enumNames:O(h()).optional(),default:h().optional()}),y([qbe,Jbe]),y([b({type:M(`array`),title:h().optional(),description:h().optional(),minItems:j().optional(),maxItems:j().optional(),items:b({type:M(`string`),enum:O(h())}),default:O(h()).optional()}),b({type:M(`array`),title:h().optional(),description:h().optional(),minItems:j().optional(),maxItems:j().optional(),items:b({anyOf:O(b({const:h(),title:h()}))}),default:O(h()).optional()})])]),Wbe,Gbe,Kbe]),Xbe=y([_$.extend({mode:M(`form`).optional(),message:h(),requestedSchema:b({type:M(`object`),properties:d(h(),Ybe),required:O(h()).optional()})}),_$.extend({mode:M(`url`),message:h(),elicitationId:h(),url:h().url()})]),Zbe=v$.extend({method:M(`elicitation/create`),params:Xbe}),Qbe=y$.extend({elicitationId:h()}),$be=b$.extend({method:M(`notifications/elicitation/complete`),params:Qbe}),T1=x$.extend({action:Re([`accept`,`decline`,`cancel`]),content:w(e=>e===null?void 0:e,d(h(),y([h(),j(),s(),O(h())])).optional())}),exe=b({type:M(`ref/resource`),uri:h()}),txe=b({type:M(`ref/prompt`),name:h()}),nxe=g$.extend({ref:y([txe,exe]),argument:b({name:h(),value:h()}),context:b({arguments:d(h(),h()).optional()}).optional()}),E1=v$.extend({method:M(`completion/complete`),params:nxe});function rxe(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function ixe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const axe=x$.extend({completion:i({values:O(h()).max(100),total:S(j().int()),hasMore:S(s())})}),oxe=b({uri:h().startsWith(`file://`),name:h().optional(),_meta:d(h(),D()).optional()}),sxe=v$.extend({method:M(`roots/list`),params:g$.optional()}),D1=x$.extend({roots:O(oxe)}),cxe=b$.extend({method:M(`notifications/roots/list_changed`),params:y$.optional()});y([B$,L$,E1,x1,d1,u1,o1,s1,l1,hbe,_be,y1,_1,q$,Y$,X$,Q$]),y([N$,V$,z$,cxe,K$]),y([M$,C1,w1,T1,D1,J$,Z$,G$]),y([B$,Ube,Zbe,sxe,q$,Y$,X$,Q$]),y([N$,V$,Ibe,ybe,pbe,Nbe,Obe,K$,$be]),y([M$,ebe,axe,Dbe,Sbe,lbe,ube,fbe,v1,jbe,J$,Z$,G$]);var O1=class e extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name=`McpError`}static fromError(t,n,r){if(t===O$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new lxe(e.elicitations,n)}return new e(t,n,r)}},lxe=class extends O1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(O$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function k1(e){return e===`completed`||e===`failed`||e===`cancelled`}const uxe=Symbol(`Let zodToJsonSchema decide on which parser to use`),A1={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,target:`jsonSchema7`,strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`,openAiAnyTypeName:`OpenAiAnyType`},dxe=e=>typeof e==`string`?{...A1,name:e}:{...A1,...e},fxe=e=>{let t=dxe(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}};function j1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function M1(e,t,n,r,i){e[t]=n,j1(e,t,r,i)}const N1=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function P1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?N1(t,e.currentPath):t.join(`/`)}}function pxe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Z.ZodAny&&(n.items=q1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&M1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&M1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(M1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),M1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function mxe(e,t){let n={type:`integer`,format:`int64`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`min`:t.target===`jsonSchema7`?r.inclusive?M1(n,`minimum`,r.value,r.message,t):M1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),M1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?M1(n,`maximum`,r.value,r.message,t):M1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),M1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:M1(n,`multipleOf`,r.value,r.message,t);break}return n}function hxe(){return{type:`boolean`}}function F1(e,t){return q1(e.type._def,t)}const gxe=(e,t)=>q1(e.innerType._def,t);function I1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>I1(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return _xe(e,t)}}const _xe=(e,t)=>{let n={type:`integer`,format:`unix-time`};if(t.target===`openApi3`)return n;for(let r of e.checks)switch(r.kind){case`min`:M1(n,`minimum`,r.value,r.message,t);break;case`max`:M1(n,`maximum`,r.value,r.message,t);break}return n};function vxe(e,t){return{...q1(e.innerType._def,t),default:e.defaultValue()}}function yxe(e,t){return t.effectStrategy===`input`?q1(e.schema._def,t):P1(t)}function bxe(e){return{type:`string`,enum:Array.from(e.values)}}const xxe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function Sxe(e,t){let n=[q1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),q1(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=t.target===`jsonSchema2019-09`?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(e=>{if(xxe(e))i.push(...e.allOf),e.unevaluatedProperties===void 0&&(r=void 0);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}else r=void 0;i.push(t)}}),i.length?{allOf:i,...r}:void 0}function Cxe(e,t){let n=typeof e.value;return n!==`bigint`&&n!==`number`&&n!==`boolean`&&n!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:t.target===`openApi3`?{type:n===`bigint`?`integer`:n,enum:[e.value]}:{type:n===`bigint`?`integer`:n,const:e.value}}let L1;const R1={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(L1===void 0&&(L1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),L1),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function z1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:M1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:M1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`email`:switch(t.emailStrategy){case`format:email`:V1(n,`email`,r.message,t);break;case`format:idn-email`:V1(n,`idn-email`,r.message,t);break;case`pattern:zod`:H1(n,R1.email,r.message,t);break}break;case`url`:V1(n,`uri`,r.message,t);break;case`uuid`:V1(n,`uuid`,r.message,t);break;case`regex`:H1(n,r.regex,r.message,t);break;case`cuid`:H1(n,R1.cuid,r.message,t);break;case`cuid2`:H1(n,R1.cuid2,r.message,t);break;case`startsWith`:H1(n,RegExp(`^${B1(r.value,t)}`),r.message,t);break;case`endsWith`:H1(n,RegExp(`${B1(r.value,t)}$`),r.message,t);break;case`datetime`:V1(n,`date-time`,r.message,t);break;case`date`:V1(n,`date`,r.message,t);break;case`time`:V1(n,`time`,r.message,t);break;case`duration`:V1(n,`duration`,r.message,t);break;case`length`:M1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),M1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:H1(n,RegExp(B1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&V1(n,`ipv4`,r.message,t),r.version!==`v4`&&V1(n,`ipv6`,r.message,t);break;case`base64url`:H1(n,R1.base64url,r.message,t);break;case`jwt`:H1(n,R1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&H1(n,R1.ipv4Cidr,r.message,t),r.version!==`v4`&&H1(n,R1.ipv6Cidr,r.message,t);break;case`emoji`:H1(n,R1.emoji(),r.message,t);break;case`ulid`:H1(n,R1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:V1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:M1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:H1(n,R1.base64,r.message,t);break}break;case`nanoid`:H1(n,R1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function B1(e,t){return t.patternStrategy===`escape`?Txe(e):e}const wxe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function Txe(e){let t=``;for(let n=0;n<e.length;n++)wxe.has(e[n])||(t+=`\\`),t+=e[n];return t}function V1(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):M1(e,`format`,t,n,r)}function H1(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:U1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):M1(e,`pattern`,U1(t,r),n,r)}function U1(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
1179
+ `).filter(Boolean).find(t=>t.endsWith(`/${e}`));if(t)return(await r.raw(`rev-parse`,t)).trim()},a=async(e,t)=>(await r.raw(`ls-tree`,`-r`,`--name-only`,e,`--`,t)).trim().length>0,o=await i();return o!==void 0&&t!==void 0&&!await a(o,t)&&(await ar(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let ks=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function As(e){try{let t=Go(e.scope);if(!t)return;let n=RI(t);if(n.length===0)return;let r=WI(L(e.skillsRoot,e.name),e.name,t,n,`copy`,zI(e.scope));if(r.length===0)return;await _N(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){Y.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function js(e,t){if(t.ok){q(e,200,gte,t.body,{handler:`skill-import`});return}G(e,t.status,t.urn,t.title,{handler:`skill-import`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}let Ms=nve({contentDir:l,skillsHome:co,...A===void 0?{}:{projectDir:A},resolveSkillDirForRead:fo,parseFrontmatterDoc:Qa,attributeOkArtifactWrite:ir,commitOkArtifactWrite:ar,shadowHeadSha:Ds,artifactWriterId:ks,effectiveInstallMode:wo,signalFiles:()=>ae?.(`files`)}),Ns=K(Bo,async(e,t,n)=>{let r=()=>{};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-import`});return}let i=n.scope,a=null,o,s,c,l,u=n.source;{let e=n.source;try{let i=await YD(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??bD(d);if(!p){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skill-import`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(sX(t,p,`skill-import`))return;let m=await SD(p);r=m.cleanup,s=m.ref;let h=BD(m.dir);if(h.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skill-import`});return}let g=h[0];if(f){let e=h.find(e=>e.name===f)??h.find(e=>LD(e.dir)?.name===f)??h.find(e=>e.name===sa[f]);if(!e){G(t,404,`urn:ok:error:not-found`,`Named skill not in source.`,{handler:`skill-import`,detail:`--skill "${f}" not among: ${h.map(e=>e.name).join(`, `)}.`});return}g=e}else if(h.length>1){G(t,400,`urn:ok:error:invalid-request`,"Source has multiple skills; pass `skill` to choose one.",{handler:`skill-import`,detail:h.map(e=>e.name).join(`, `)});return}a=g.dir,l=g.name,o=e,c=i?.publisher??ws(d)}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await Ms.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Wa(u))&&kI({source:u,skills:[d.body.name]},cI()),await xe?.rebuildIgnorePatterns(),js(t,d)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skill.`,{handler:`skill-import`,cause:e})}finally{r()}},{handler:`skill-import`,method:`POST`}),Ps=K(Oee,async(e,t,n)=>{let r=()=>{};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-import-bulk`});return}let i=n.source,a=null,o=null,s=[],c,l,u=i;try{let e=await YD(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??bD(d);if(!f){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skills-import-bulk`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(sX(t,f,`skills-import-bulk`))return;if(l=e?.publisher??ws(d),f.kind===`well-known`)a=f,o=await hD(f.origin);else{let e=await SD(f);r=e.cleanup,c=e.ref,s=BD(e.dir)}}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skills-import-bulk`,cause:e});return}throw e}if(a===null&&s.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skills-import-bulk`});return}let d=[];for(let t of new Set(n.skills)){let r,u,f=()=>{};if(a!==null)try{let e=await SD({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof aD?`not-found`:`failed`,warnings:[],...e instanceof aD?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>zD(e.dir)?.name===t)??s.find(e=>e.name===sa[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await Ms.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){N(`skills-import-bulk`).warn({skill:t,err:a.cause,detail:a.detail},`bulk import: one skill failed (rest continue)`),d.push({requested:t,status:`failed`,warnings:[],error:a.detail??a.title});continue}d.push({requested:t,status:a.body.alreadyImported?`already-imported`:`imported`,name:a.body.name,...a.body.collisionRenamedFrom===void 0?{}:{collisionRenamedFrom:a.body.collisionRenamedFrom},warnings:a.body.warnings})}catch(e){N(`skills-import-bulk`).warn({skill:t,err:e},`bulk import: one skill threw (rest continue)`),d.push({requested:t,status:`failed`,warnings:[],error:e instanceof Error?e.message:String(e)})}finally{f()}}if(n.marketplace===!0||Wa(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&kI({source:u,skills:e},cI())}await xe?.rebuildIgnorePatterns(),q(t,200,Wt,{results:d,imported:d.filter(e=>e.status===`imported`).length,alreadyImported:d.filter(e=>e.status===`already-imported`).length,failed:d.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-import-bulk`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skills.`,{handler:`skills-import-bulk`,cause:e})}finally{r()}},{handler:`skills-import-bulk`,method:`POST`}),Is=8*1024*1024,Ls=32*1024*1024;function Rs(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=L(e,n);return r!==e&&!r.startsWith(e+R)?null:r}function zs(e){return new Promise((t,n)=>{let r;try{r=Cq(e,{files:200,fields:10,fieldSize:2*1024,fileSize:Is})}catch(e){n(e);return}let i=[],a=0,o=null,s=t=>{o||(o=t,e.unpipe(r),e.destroy(),r.destroy(),n(t))};r.on(`file`,(e,t,n)=>{let r=[],c=!1;t.on(`data`,e=>{if(!o){if(a+=e.length,a>Ls){s(Error(`Upload too large.`));return}r.push(e)}}),t.on(`limit`,()=>{c=!0}),t.on(`end`,()=>{if(!o){if(c){o=Error(`File "${n.filename}" exceeds the per-file size limit.`);return}i.push({relPath:n.filename||`file`,data:Buffer.concat(r)})}})}),r.on(`error`,n),r.on(`close`,()=>o?n(o):t(i)),e.pipe(r)})}function Vs(e,t){return new Promise((n,r)=>{(0,yle.fromBuffer)(e,{lazyEntries:!0},(e,i)=>{if(e||!i){r(e??Error(`Unreadable archive.`));return}let a=0,o=0,s=e=>{try{i.close()}catch{}r(e instanceof Error?e:Error(String(e)))};i.on(`entry`,e=>{if(++o>200){s(Error(`Archive has too many entries.`));return}let n=Rs(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Bs(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>Is){s(Error(`Archive entry too large: ${e.fileName}`));return}i.openReadStream(e,(e,t)=>{if(e||!t){s(e??Error(`Could not read archive entry.`));return}let r=[];t.on(`data`,e=>{if(a+=e.length,a>Ls){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Bs(P(n),{recursive:!0}),Ys(n,Buffer.concat(r))}catch(e){s(e instanceof Error?e:Error(String(e)));return}i.readEntry()})})}),i.on(`end`,()=>n()),i.on(`error`,s),i.readEntry()})})}async function Gs(e,t){let n=Pu(F(Zu(),`ok-skill-upload-`)),r=()=>{try{Ws(n,{recursive:!0,force:!0})}catch{}};try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){G(t,405,`urn:ok:error:invalid-request`,`Use POST to upload a skill.`,{handler:`skill-upload`});return}let r=new URL(e.url??``,`http://localhost`),i=oo(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=ok({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},he);if(o.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await zs(e)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){G(t,400,`urn:ok:error:invalid-request`,`No files uploaded.`,{handler:`skill-upload`});return}let c=s.length===1?s[0]:null,l=c&&/\.(zip|skill)$/i.test(c.relPath)?c.relPath:null;if(c&&l)try{await Vs(c.data,n)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not unpack the archive.`,{handler:`skill-upload`,cause:e});return}else for(let e of s){let r=Rs(n,e.relPath);if(!r){G(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Bs(P(r),{recursive:!0}),Ys(r,e.data)}let u=BD(n);if(u.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){G(t,400,`urn:ok:error:invalid-request`,`Upload contains multiple skills; upload one at a time.`,{handler:`skill-upload`,detail:u.map(e=>e.name).join(`, `)});return}let d=u[0];js(t,await Ms.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let Ks=K(Fee,async(e,t,n)=>{try{let e=uo(n.scope);if(!ao(n.name,t,`skill-install`))return;if(n.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`Cannot install — no project root is resolved for this server. Skills project into editor host dirs at the project root.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=Go(n.scope),i=L(e,n.name),a=n.scope===`project`?l:co,o=(n.scope===`project`?fL(l):pL(co)).find(e=>e.name===n.name),s=o?L(a,o.dir):i;if(!z(s)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-install`,detail:`Skill "${n.name}" not found in ${n.scope} scope — create it with write({ skill }) first.`});return}await zt(n.scope===`project`?`${I(a,s).split(R).join(`/`)}/SKILL`:Fa(n.scope,n.name));let c=LI(s,n.name,{allowReservedName:XF(n.name)});if(!c.ok){G(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" cannot be installed: ${c.errors.join(` `)}`,{handler:`skill-install`,detail:`INVALID_SKILL_SOURCE`});return}if(n.fork!==void 0){if(!o){G(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=lo.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:G(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:G(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:G(t,400,`urn:ok:error:invalid-request`,`That copy matches the source — nothing to resolve.`,{handler:`skill-install`,detail:`NOT_A_FORK`});return;case`invalid-new-name`:G(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:G(t,400,`urn:ok:error:invalid-request`,`Name already taken.`,{handler:`skill-install`,detail:e.toName});return;default:throw Error(`Unhandled fork outcome: ${String(e.kind)}`)}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o.hosts.filter(go),scripts:!1,warnings:e.warnings,warningCodes:e.warnings.length>0?[`skill-fork-name-unpatched`]:[]},{handler:`skill-install`});return}let u=n.setSource??n.source,d=n.linkMode??(n.mode===void 0?void 0:n.mode===`link`),f=n.targets,p=[],m=[];if(n.add!==void 0||n.remove!==void 0){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before using add/remove.",{handler:`skill-install`,detail:`STORE_BACKED_ADDITIVE`});return}let e=await lo.applyAddRemove({scope:n.scope,name:n.name,inPlaceEntry:o,...n.add===void 0?{}:{add:n.add},...n.remove===void 0?{}:{remove:n.remove}});if(!e.ok){e.kind===`remove-source`?G(t,400,`urn:ok:error:invalid-request`,`"${e.sourceId}" is the skill's SOURCE — its folder is the skill itself, so removing it would delete the skill. Move the source first (\`source\`) or use \`delete\`.`,{handler:`skill-install`,detail:`REMOVE_SOURCE`}):G(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}f=e.targets.filter(go),p.push(...e.rootAdds),m.push(...e.rootRemoves)}if(u&&!o){let e=await lo.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:s,newSource:u});if(!e.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.kind===`source-occupied`?e.reason:e.target});return}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:e.hosts,scripts:c.hasScripts,warnings:[],warningCodes:[],sourceMovedTo:e.sourceMovedTo},{handler:`skill-install`});return}if(n.place){let e=n.scope===`project`?A:co;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot place — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await kr.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:s,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?G(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):G(t,409,`urn:ok:error:doc-already-exists`,`Something already exists at that path — placement never overwrites.`,{handler:`skill-install`,detail:`PLACE_DEST_EXISTS`});return}`alreadyAtSource`in r||ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:c.hasScripts,warnings:[],warningCodes:[],placedAt:r.placedAt},{handler:`skill-install`});return}if(n.unplace){let e=n.scope===`project`?A:co;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot remove a placement — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await kr.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:s});if(!r.ok)switch(r.kind){case`not-recorded`:G(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:G(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — remove it manually if you mean it.`,{handler:`skill-install`,detail:r.path});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — it can't be removed here.`,{handler:`skill-install`,detail:r.path});return;default:throw Error(`Unhandled unplace outcome: ${String(r.kind)}`)}ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,sr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:c.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before converting one.",{handler:`skill-install`,detail:`STORE_BACKED_CONVERT`});return}let{target:e,mode:i}=n.convert,a=n.scope===`project`?A:co,l=await kr.convert({ledgerBase:a??r,scope:n.scope,name:n.name,target:e,mode:i,skillDir:s,canonicalHash:o.contentHash});if(!l.ok)switch(l.kind){case`invalid-location`:G(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — move the source instead of converting it.`,{handler:`skill-install`,detail:e});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — resolve the fork before converting it.`,{handler:`skill-install`,detail:e});return;case`not-installed`:G(t,404,`urn:ok:error:not-found`,`The skill is not installed there.`,{handler:`skill-install`,detail:e});return;default:throw Error(`Unhandled convert outcome: ${String(l.kind)}`)}ae?.(`files`),q(t,200,sr,{name:n.name,hosts:[...o.hosts],scripts:c.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let h=n.scope===`global`?f===void 0?MI(co).map(e=>e.editorId).filter(e=>Vn.includes(e)):Vn.filter(e=>f?.some(t=>t===e)):f===void 0?RI(r):Vn.filter(e=>f?.some(t=>t===e)),g=[],_=[];if(h.length===0&&f===void 0&&(g.push(n.scope===`global`?`No editor skill folders are configured to install into.`:"No project-configured editors detected — nothing was projected. Set up an editor for this project (add .mcp.json / .cursor/mcp.json / .codex/config.toml) or pass explicit `targets`."),_.push(`no-targets`)),c.hasScripts&&(g.push("This skill includes executable `scripts/`. After you install it, the AI agent in your editor (Claude, Cursor, Codex) can run them — Open Knowledge itself never runs anything. Review the scripts before sharing."),_.push(`scripts-present`)),c.warnings.length>0&&(g.push(c.warnings[0]),_.push(`no-description`)),o){let e=o.dir.split(`/`).slice(0,-1).join(`/`),i=(f===void 0?n.scope===`global`&&z(F(co,`.agents`)):f.includes(`agents`))?[...h,`agents`]:[...h],a=n.scope===`project`?A:co,l=d===void 0?wo(n.scope,n.name,o):d?`link`:`copy`;if(u){let e=await lo.promoteInPlaceSource({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:s,inPlaceEntry:o,newSource:u});if(!e.ok){e.kind===`invalid-target`?G(t,400,`urn:ok:error:invalid-request`,`Source target must be an editor id, "agents", or a project-relative skills root.`,{handler:`skill-install`,detail:e.target}):G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.reason});return}ae?.(`files`),q(t,200,sr,{name:n.name,hosts:e.hosts,scripts:c.hasScripts,warnings:[],warningCodes:[],...e.sourceMovedTo===void 0?{}:{sourceMovedTo:e.sourceMovedTo}},{handler:`skill-install`});return}let v=await lo.fanOutInPlace({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:s,inPlaceEntry:o,canonicalRootRel:e,inPlaceTargets:i,setExact:f!==void 0,installMode:l,...d===void 0?{}:{linkModeReq:d},rootAdds:p,rootRemoves:m});if(!v.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:v.reason});return}g.push(...v.warnings),_.push(...v.warningCodes),ae?.(`files`),q(t,200,sr,{name:n.name,hosts:v.hosts,scripts:c.hasScripts,warnings:g,warningCodes:_,...v.sourceMovedTo===void 0?{}:{sourceMovedTo:v.sourceMovedTo}},{handler:`skill-install`});return}let v=FI(hN(r).skills[n.name]?.hosts??[]).filter(e=>!h.includes(e));v.length>0&&ZI(n.name,r,v,zI(n.scope));let y=F(r,...CD),b=z(y)?B(y,`utf-8`):null,x=b===null?null:DD(b);b!==null&&x===null&&Y.warn({skill:n.name},`skills-lock.json failed to parse — projecting as symlink (import origin unknown)`);let S=x?.skills[n.name]!==void 0,C=d===void 0?S?`copy`:`symlink`:d?`symlink`:`copy`,w=WI(s,n.name,r,h,C,zI(n.scope));w.length===0?await vN(r,n.name):await _N(r,n.name,{hosts:w,scope:n.scope,scripts:c.hasScripts,installedAt:new Date().toISOString(),projection:C}),ae?.(`files`),q(t,200,sr,{name:n.name,hosts:w,scripts:c.hasScripts,warnings:g,warningCodes:_},{handler:`skill-install`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),Js=K(Xt,async(e,t,n)=>{try{if(!ao(n.name,t,`skill-uninstall`))return;let e=Go(n.scope);if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot uninstall — no project root is resolved for this server.`,{handler:`skill-uninstall`,detail:`NO_PROJECT_ROOT`});return}let r=await qo(e,n.name,n.scope);ae?.(`files`),q(t,200,Eee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),Xs=cW({GET:K(Tn,async(e,t)=>{try{let e=RI(A??``),n=(e,t)=>{let n=ove(e)[t.root];return n===void 0||(n.expect===`link`?t.state===`linked`&&t.target===n.target:t.state===`own`)?{}:{drift:!0,expected:n.expect===`link`?`link → ${n.target}`:`own folder`}};q(t,200,ree,{targets:e,configured:!1,folders:[...A?qY(l,aL(l,`project`)).filter(e=>sL(l,`project`,e.root)).map(e=>({...e,scope:`project`,...n(l,e)})):[],...qY(co,aL(co,`global`)).filter(e=>sL(co,`global`,e.root)).map(e=>({...e,scope:`global`,...n(co,e)}))]},{handler:`skill-targets-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill targets.`,{handler:`skill-targets-get`,cause:e})}},{handler:`skill-targets-get`,method:`GET`,skipBodyParse:!0}),PUT:K(_ee,async(e,t,n)=>{try{{let e=n.folderAction,r=e.scope===`project`?l:co;if(e.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`Cannot manage skill folders — no project root is resolved for this server.`,{handler:`skill-targets-put`,detail:`NO_PROJECT_ROOT`});return}if(e.action===`add-root`){let n=e.root.replace(/\\/g,`/`).replace(/\/+$/g,``),i=n.split(`/`).filter(e=>e!==``&&e!==`.`);if(n===``||n.startsWith(`/`)||n.startsWith(`~`)||/^[A-Za-z]:/.test(n)||n.includes(`\0`)||i.length===0||i.some(e=>e===`..`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid folder path.`,{handler:`skill-targets-put`,detail:e.root});return}await sve(r,i.join(`/`)),ae?.(`files`),q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[]},{handler:`skill-targets-put`});return}let i=new Set(aL(r,e.scope).map(e=>e.root).filter(e=>!e.startsWith(`/`)&&!e.split(`/`).includes(`..`))),a=e.action===`link`?e.target??``:e.root;if(!i.has(e.root)||e.action===`link`&&(!i.has(a)||e.root===a)){G(t,400,`urn:ok:error:invalid-request`,`Folder and target must be distinct standard skills roots.`,{handler:`skill-targets-put`,detail:`${e.root} -> ${a}`});return}if(e.action===`link`&&e.preview){let n=YY({base:r,folderRel:e.root,targetRootRel:a}),i=n.kind===`plan`?n.plan:null;q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[],preview:{moves:i?[...i.linkedBundlesToMove.map(({name:e})=>e),...i.toMove]:[],drops:i?.toDrop??[],removes:i?.removes??[],replaces:i?.liveDestLinks??[],conflicts:n.kind===`conflicts`?n.conflicts:[],strays:n.kind===`stray-entries`?n.strays:[]}},{handler:`skill-targets-put`});return}let o=e.action===`link`?ave({base:r,folderRel:e.root,targetRootRel:a}):XY({base:r,folderRel:e.root,...e.exclude===void 0?{}:{exclude:e.exclude}});if(!o.ok){G(t,409,`urn:ok:error:invalid-request`,o.reason===`conflicts`?`Cannot link — differing skills exist in both folders: ${(o.conflicts??[]).join(`, `)}. Resolve them first.`:o.reason===`stray-entries`?`Cannot link — the folder holds non-skill entries: ${(o.strays??[]).join(`, `)}.`:o.reason===`partial-move`?`The merge stopped partway (${(o.moved??[]).length} skill(s) already moved — nothing lost). Run Link again to resume and complete it. (${o.error??``})`:o.reason===`not-linked`?`That folder is not a symlink — nothing to unlink.`:`That folder cannot be linked (it is already a link or the same directory).`,{handler:`skill-targets-put`,detail:o.reason});return}await $Y(r,e.root,e.action===`link`?{expect:`link`,target:a}:{expect:`own`}),ae?.(`files`),q(t,200,us,{targets:RI(A??``),reprojected:[],bundleHosts:[],removedFrom:[],folder:{moved:o.moved,dropped:o.dropped,linked:o.linked}},{handler:`skill-targets-put`});return}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to set skill targets.`,{handler:`skill-targets-put`,cause:e})}},{handler:`skill-targets-put`,method:`PUT`})},{handler:`skill-targets`}),Zs=K(oee,async(e,t,n)=>{try{let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!ao(n.name,t,`skill-restore`)||Fo(n.name,t,`skill-restore`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is no version history to restore from.`,{handler:`skill-restore`,detail:`GLOBAL_SCOPE_UNVERSIONED`});return}let r=ee?.current;if(!r){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to restore from.`,{handler:`skill-restore`,detail:`NO_SHADOW_REPO`});return}let i=await lX({shadow:r,contentDir:l,contentRoot:ie??`.`,name:n.name,version:n.version,skillDirRel:Do(n.name)});if(!i.ok){xo(t,i,`skill-restore`);return}let a=[],o=LI(L(l,Do(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),ir(e,rr(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await ar(`skill-restore`),ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,Nn,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),Qs=K(Qe,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!ao(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?co:l,{root:a,dirRel:o,realDir:s}=is(n.scope,n.name),c=!o.startsWith(`${_r}/`);if(s===null||!z(L(i,o,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let u=F(n.scope===`global`?co:A,...CD),d=Ts(u).skills[n.name];if(!d){let e=AD(n.name,zD(L(a,n.name))?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Pve(L(a,n.name))})??Mo(i,n.name);e&&(d=e)}if(!d){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded import source to update from.`,{handler:`skill-reimport`,detail:`NOT_IMPORTED`});return}if(n.setAutoUpdate!==void 0){await fJ(u,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??d,autoUpdate:n.setAutoUpdate}}})),await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!1,source:d.source,warnings:[]},{handler:`skill-reimport`});return}let f,p=null,m=!1;try{let e=d.skill??n.name,i=sa[e],a=await YD(d.source,e).catch(async e=>{if(i===void 0)throw e;return YD(d.source,i)}),o=a?.source??PO(d.source,d.pluginProvider),s=a?.skill??d.skill,c=a?.spec??bD(o);if(!c){G(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:d.source});return}if(sX(t,c,`skill-reimport`))return;let l=await SD(c);r=l.cleanup,f=l.ref;let u=BD(l.dir),m=(s?u.find(e=>e.name===s):void 0)??u.find(e=>e.name===n.name)??u.find(e=>zD(e.dir)?.name===n.name)??u.find(e=>e.name===sa[s??n.name])??(u.length===1?u[0]:void 0);if(!m){G(t,404,`urn:ok:error:not-found`,`Could not locate this skill in its source anymore.`,{handler:`skill-reimport`,detail:u.map(e=>e.name).join(`, `)});return}let h=RD(m.dir);if(h){G(t,400,`urn:ok:error:invalid-request`,`Skill bundle exceeds import limits.`,{handler:`skill-reimport`,detail:h});return}p=zD(m.dir)}catch(e){if(e instanceof aD){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!p){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let h=KY(p);if(h){G(t,400,`urn:ok:error:invalid-request`,`Skill bundle exceeds import limits.`,{handler:`skill-reimport`,detail:h});return}m=p.files.some(e=>e.relPath.startsWith(`scripts/`));let g=zD(L(a,n.name)),_=new Set(p.files.map(e=>e.relPath)),v=new Set((g?.files??[]).map(e=>e.relPath)),y=(d.files??(d.localHash!==void 0&&g?.contentHash===d.localHash?g.files.map(e=>e.relPath):[])).filter(e=>!_.has(e)).filter(e=>v.has(e));if(p.contentHash===d.contentHash&&y.length===0){await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!1,source:d.source,warnings:[]},{handler:`skill-reimport`});return}let b=Qa(p.skillMd).body;if(n.dryRun){let e=zD(L(a,n.name))?.skillMd??``,r;if(n.scope===`project`&&A)try{let e=gc({baseDir:A,timeout:{block:15e3}}),t=I(A,L(a,n.name)).split(R).join(`/`);r=(await e.raw(`ls-files`,`--`,t)).trim().length>0}catch{r=void 0}await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!0,source:d.source,localBody:Qa(e).body,upstreamBody:b,...r===void 0?{}:{gitTracked:r},warnings:[]},{handler:`skill-reimport`});return}if(n.scope===`project`){let e=y.filter(e=>/\.mdx?$/i.test(e)).map(e=>`${o}/${e.replace(/\.mdx?$/i,``)}`);e.length>0&&await Sn(e,`deleted-upstream`)}let x=QA({skillsRoot:a,name:n.name,body:b,frontmatter:{name:n.name,description:p.description}});if(!x.ok){G(t,400,`urn:ok:error:invalid-request`,`Failed to write skill.`,{handler:`skill-reimport`,detail:x.error.code,cause:Error(x.error.message)});return}let S=[...x.warnings];for(let e of p.files){let r=tj({skillsRoot:a,name:n.name,relPath:e.relPath,content:e.content,bytes:e.bytes,limits:GY});if(!r.ok){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the complete refreshed skill bundle.`,{handler:`skill-reimport`,detail:`${e.relPath}: ${r.error.code}`,cause:Error(r.error.message)});return}}for(let e of y){let r=nj({skillsRoot:a,name:n.name,relPath:e});if(!r.ok){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reconcile files removed upstream.`,{handler:`skill-reimport`,detail:`${e}: ${r.error.code}`,cause:Error(r.error.message)});return}}n.scope===`project`&&(ir(e,rr(`skill`,``,n.name),`skill-reimport: ${d.source} -> ${o}`),await ar(`skill-reimport`));let C=Es(a,n.name),w=n.scope===`project`?await Ds(ks(e),o):void 0;await fJ(u,e=>OD(e,n.name,{...e.skills[n.name]??d,contentHash:p.contentHash,files:p.files.map(e=>e.relPath),...C===void 0?{}:{localHash:C},...w===void 0?{}:{baselineRef:w},ref:f,importedAt:new Date().toISOString()})),!c&&n.scope===`project`&&await As({skillsRoot:a,name:n.name,scope:`project`,hasScripts:m,handler:`skill-reimport`}),ae?.(`files`),await xe?.rebuildIgnorePatterns(),q(t,200,da,{name:n.name,updated:!0,source:d.source,warnings:S},{handler:`skill-reimport`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),$s=K(mee,async(e,t,n)=>{try{if(!A){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=ok(n,he);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!ao(n.name,t,`skill-revert`)||Fo(n.name,t,`skill-revert`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is nothing to revert to.`,{handler:`skill-revert`,detail:`GLOBAL_SCOPE`});return}let r=F(A,...CD),i=Ts(r).skills[n.name];if(!i?.baselineRef){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded install baseline to revert to.`,{handler:`skill-revert`,detail:`NO_BASELINE`});return}let a=ee?.current;if(!a){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to revert from.`,{handler:`skill-revert`,detail:`NO_SHADOW_REPO`});return}let o=await lX({shadow:a,contentDir:l,contentRoot:ie??`.`,name:n.name,version:i.baselineRef,skillDirRel:Do(n.name)});if(!o.ok){xo(t,o,`skill-revert`);return}ir(e,rr(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await ar(`skill-revert`);let s=L(l,Do(n.name),`..`),c=Es(s,n.name);await fJ(r,e=>OD(e,n.name,{...e.skills[n.name]??i,...c===void 0?{}:{localHash:c}})),s===uo(`project`)&&await As({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),ae?.(`files`),q(t,200,It,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`});function ec(e){return e===`autocomplete`||e===`full_text`||e===`omnibar`?e:`omnibar`}function tc(e){let t=typeof e==`string`?e.split(`,`):Array.isArray(e)?e:void 0;if(!t)return;let n=t.filter(e=>e===`page`||e===`folder`||e===`content`||e===`file`);return n.length>0?n:void 0}function nc(e){if(typeof e==`boolean`)return e;if(e===`true`)return!0;if(e===`false`)return!1}function rc(e){return e===`omnibar`||e===`mcp`||e===`http`?e:`http`}let ic=eve({contentDir:l,projectDir:A,getAllFilesIndex:g,getFileIndexGeneration:v,getSearchMaxEntries:Hve,semanticSearch:Oe,getSemanticSimilarityFloor:ke,ready:we,getProjectSkillsRoot:()=>uo(`project`),parseFrontmatterDoc:Qa});ic.prewarm();let ac=cW({GET:K(Tn,MB(async(e,t)=>{let n=Nc(e),r=n.get(`limit`),i=n.get(`query`)??``,a=ec(n.get(`intent`)),o=Uo(n.get(`ranking`)),s=tc(n.get(`scope`)??n.get(`scopes`)),c=nc(n.get(`semantic`)),l=rc(n.get(`source`)),u=r===null?void 0:Number(r);if(i.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-get`});return}q(t,200,so,await ic.buildSearchResponse({query:i,intent:a,ranking:o,scopes:s,limit:u,semanticParam:c,source:l}),{handler:`search-get`})},{handler:`search-get`,title:`Failed to search workspace.`}),{handler:`search-get`,method:`GET`,skipBodyParse:!0}),POST:K(tte,MB(async(e,t,n)=>{let r=typeof n.query==`string`?n.query:``,i=ec(n.intent),a=Uo(n.ranking),o=tc(n.scopes??n.scope),s=typeof n.limit==`number`?n.limit:void 0,c=nc(n.semantic),l=rc(n.source);if(r.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-post`});return}q(t,200,so,await ic.buildSearchResponse({query:r,intent:i,ranking:a,scopes:o,limit:s,semanticParam:c,source:l}),{handler:`search-post`})},{handler:`search-post`,title:`Failed to search workspace.`}),{handler:`search-post`,method:`POST`})},{handler:`search`}),oc=K(Tn,MB(async(e,t)=>{q(t,200,pte,{...await EI(Ju())},{handler:`skill-install-state`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`skill-install-state`,title:`Failed to read skill install state.`}),{handler:`skill-install-state`,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:`skill-install-state`})});async function sc(e,t){if(r(e,t,{handler:`handoff`}))try{await Efe(e,t,{contentDir:l,platform:process.platform,isSchemeRegistered:nt.probeWithCache})}catch(n){t.headersSent||(Y.error({err:n,requestId:cS(e)},`[handoff] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function cc(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await ZM(e,t,{contentDir:l,platform:process.platform})}catch(n){t.headersSent||(Y.error({err:n,requestId:cS(e)},`[spawn-cursor] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let lc=K(uee,async(e,t,n)=>{try{if(!A){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!_me(e,n.kind)){AF(`invalid-path`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`invalid-path`},{handler:kF});return}let r=Sme(A);if(r===null){if(PF(A).kind===`no-remote`){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}AF(`detached-head`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`detached-head`},{handler:kF});return}let i=PF(A);if(i.kind===`no-remote`){AF(`no-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`no-remote`},{handler:kF});return}if(i.kind===`non-github`){AF(`non-github-remote`,{kind:n.kind}),q(t,200,ya,{ok:!1,error:`non-github-remote`},{handler:kF});return}if(!Dme(A,r)){AF(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),q(t,200,ya,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:kF});return}let a=gZ(A,l);if(a===null)throw Error(`content dir is not contained within the project dir`);let o=n.kind===`doc`?n.docPath!==``:n.folderPath!==``;a!==``&&o&&N(`share`).warn({action:`construct-url`,kind:n.kind},`[share] content.dir != "." — non-root share URL omits the content.dir prefix; the github.com link may point at the wrong subtree. In-app receive navigation is content-relative and lands correctly.`);let s;if(n.kind===`doc`)s=vme(i.host,i.owner,i.repo,r,n.docPath);else{let e=n.folderPath===``?a:n.folderPath;s=yme(i.host,i.owner,i.repo,r,e)}let c=`https://openknowledge.ai/d/${Vt(s)}`,u=await bme(A,r,a===``?e:e===``?a:`${a}/${e}`,n.kind);AF(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),q(t,200,ya,{ok:!0,shareUrl:c,sharedUrl:s,branch:r,freshness:u},{handler:kF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:kF,cause:e})}},{handler:kF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:kF})}),dc=K(Tn,async(e,t)=>{try{if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:Yz});return}let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`branch`),i=n.searchParams.get(`path`),a=n.searchParams.get(`kind`)===`folder`?`folder`:`doc`;if(!st(r)){G(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:Yz});return}if(!qz(i,a)){G(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:Yz});return}q(t,200,wee,await Jz(A,r,i,a),{handler:Yz})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Yz,cause:e})}},{handler:Yz,method:`GET`,skipBodyParse:!0});function fc(e,t,n){let r=e.split(`/`),i=t.split(`/`);if(n>=r.length||n>=i.length)return{verdict:`unknown`};for(let e=0;e<n;e+=1)if(r[e]!==i[e])return{verdict:`unknown`};return{verdict:`renamed`,renamedTo:i.slice(n).join(`/`)}}let pc=K(Lt,async(e,t,n)=>{try{if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:qF});return}if(!qz(n.path,n.kind)){G(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:qF});return}let e=await Fme(A,n.branch,n.path,n.kind,{credentialConfig:hc(de,{resetAmbient:IF(A)})});q(t,200,on,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:fc(n.path,e.renamedTo,n.contentRootDepth),{handler:qF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:qF,cause:e})}},{handler:qF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:qF})}),mc=K(kt,async(e,t,n)=>{if(ok(n,he).kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:eB});return}if(!A){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:eB});return}try{q(t,200,St,await uc(()=>nB(A,n.branch,{fastForward:n.fastForward===!0,credentialConfig:hc(de,{resetAmbient:IF(A)})})),{handler:eB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eB,cause:e})}},{handler:eB,method:`POST`});async function _c(e){let[t,...n]=de,r=[...n,...e];return await new Promise((e,n)=>{let i=uu(t,r,UM({...fi,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},BF),s=[],c=[];i.stdout.on(`data`,e=>s.push(e)),i.stderr.on(`data`,e=>c.push(e)),i.on(`close`,t=>{if(clearTimeout(o),a){n(Error(`share subprocess timed out after ${BF}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=KF(Buffer.concat(c).toString(`utf-8`)).slice(0,500);Y.warn({code:t,stderr:e},`[share] subprocess exited code=${t} stderr=${e}`)}e({stdout:r,code:t})}),i.on(`error`,e=>{clearTimeout(o),n(e)})})}let vc=K(Tn,async(e,t)=>{if(!ze.tryAcquire(`/api/share/publish/owners`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:LF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await _c([`share`,`owners`,`--json`]),n=Ome(UF(e));GF(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),q(t,200,see,n,{handler:LF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:LF,cause:e})}finally{ze.release(`/api/share/publish/owners`)}},{handler:LF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:LF})}),yc=K(Tn,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!HF(r)||!VF(i)){G(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:RF});return}if(!ze.tryAcquire(`/api/share/publish/name-check`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:RF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await _c([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=kme(UF(e));GF(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),q(t,200,fa,n,{handler:RF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:RF,cause:e})}finally{ze.release(`/api/share/publish/name-check`)}},{handler:RF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:RF})}),bc=K(Pn,async(e,t,n)=>{if(!A){GF(`publish-create`,`no-project`),q(t,200,Wn,{ok:!1,error:`no-project`},{handler:zF});return}if(!HF(n.owner)||!VF(n.name)){G(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:zF});return}if(!ze.tryAcquire(`/api/share/publish`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:zF,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,A,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await _c(e),i=Mme(UF(r));GF(`publish-create`,i.ok?`ok`:i.error),i.ok&&le?.()?.refreshRemote().catch(()=>{}),q(t,200,Wn,i,{handler:zF})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:zF,cause:e})}finally{ze.release(`/api/share/publish`)}},{handler:zF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:zF})}),xc=K(Yn,async(e,t,n)=>{try{let e=N(`renderer`);n.droppedSinceLastFlush!==void 0&&n.droppedSinceLastFlush>0&&e.warn({source:`renderer-console`,transport:`web`,event:`client-log-entries-dropped`,droppedSinceLastFlush:n.droppedSinceLastFlush},`client-log-entries-dropped`);for(let t of n.entries)try{e[t.level]({...t.fields,source:`renderer-console`,transport:`web`,...t.sourceId?{sourceId:t.sourceId}:{},...t.lineNumber===void 0?{}:{lineNumber:t.lineNumber},...t.ts===void 0?{}:{clientTs:t.ts}},t.event??t.message)}catch{}q(t,200,Ue,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`client-logs`,cause:e})}},{handler:`client-logs`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`client-logs`})}),Sc=A?Pk(A):null;async function Cc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n={collabUrl:Ele(e.headers),previewUrl:null,port:Sc?Ec(Sc)?.port??0:0,singleFile:Pe};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,Jee,n,{handler:`api-config`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config`,extraHeaders:{Allow:`GET, HEAD`}})}async function wc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n=Le?.()??{diagnostics:[]};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,fe,n,{handler:`api-config-diagnostics`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config-diagnostics`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config-diagnostics`,extraHeaders:{Allow:`GET, HEAD`}})}let Tc=`local-op-embeddings-set-key`,Dc=`local-op-embeddings-clear-key`,Oc=`/api/local-op/embeddings`;function kc(){let e=je?.();return{projectDir:A??l,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let Ac=K(Pee,async(e,t,n)=>{if(!ze.tryAcquire(Oc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Tc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=kc();await new qj(Ae).setForProject(e,r,n.key),Oe?.reloadCredential(),q(t,200,as,{keyPresent:!0},{handler:Tc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:Tc,cause:e})}finally{ze.release(Oc)}},{handler:Tc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Tc})}),jc=K(Tn,async(e,t)=>{if(!ze.tryAcquire(Oc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Dc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:n}=kc();await new qj(Ae).clearForProject(e,n),Oe?.reloadCredential(),q(t,200,as,{keyPresent:!1},{handler:Dc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:Dc,cause:e})}finally{ze.release(Oc)}},{handler:Dc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Dc})}),Pc=`local-op-embeddings-test`,Fc=`/api/local-op/embeddings/test`,Ic=K(Tn,async(e,t)=>{if(!ze.tryAcquire(Fc)){G(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:Pc,extraHeaders:{"Retry-After":`5`}});return}try{let e=je?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await Bj(new qj(Ae),A??l,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await Sde({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};q(t,200,fte,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:Pc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:Pc,cause:e})}finally{ze.release(Fc)}},{handler:Pc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Pc})}),Lc=K(Tn,async(e,t)=>{try{let e=!1,n=!1,r=!1,i=0;if(Oe){let t=Oe.getStatus();e=t.enabled,n=t.ready,r=t.capable,i=t.embeddedCount}let a=je?.()?.baseUrl??`https://api.openai.com/v1`,o=await Bj(new qj(Ae),A??l,a),s=o.apiKey!==null,c=!s&&o.keyless,u=s?o.source:null,d=o.apiKey&&o.apiKey.length>=8?o.apiKey.slice(-4):null,f=0;for(let[e]of p())!Xx(e)&&!Zx(e)&&!Cr(e)&&(f+=1);q(t,200,ia,{enabled:e,keyPresent:s,keyNotRequired:c,keySource:u,keyHint:d,ready:n,capable:r,embedded:i,total:f},{handler:`semantic-status`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`semantic-status`,cause:e})}},{handler:`semantic-status`,method:`GET`,skipBodyParse:!0}),Rc=0;function zc(){Rc+=1,ae?.(`lint-config`)}let Bc=()=>`${Rc} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function Vc(e,t){let n=Me?.()??Ht;try{let r=await Ba(e,IP(l,n,{docName:t,projectDir:A??l,onProblem:e=>Y.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Ne?.()??`warning`;if(k&&a!==`off`&&!rS(t)){await tn(t,e,`lint-validation`);let r=dF({projectDir:A??l,contentDir:l,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:Zt,docFilePathFor:e=>pZ(l,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:pZ(l,t)??`${t}.md`})).files.flatMap(e=>e.diagnostics))}return[...r,...i].sort((e,t)=>e.range.start.line-t.range.start.line||e.range.start.character-t.range.start.character).slice(0,10).map(e=>({kind:`lint-violation`,source:e.source,code:e.code,message:e.message,severity:e.severity,line:e.range.start.line+1,column:e.range.start.character+1,...`linkTarget`in e&&e.linkTarget!==void 0?{linkTarget:e.linkTarget}:{},...`localTarget`in e&&e.localTarget!==void 0?{localTarget:e.localTarget}:{}}))}catch(e){return Y.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function Hc(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=zP({projectDir:A??l,contentDir:l});return aP(t.schemas,n)}let Uc=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`);if(n!==null&&(n===``||!TZ(n))){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`lint-config`});return}let r=Me?.()??Ht,i=[],a=NP(l,n??void 0,e=>i.push(e)),o=FP(A??l,PP(r,a),e=>i.push(e));n===null&&i.push(...Hc(o)),q(t,200,$o,{effective:o,configFile:a?.file??null,configProblems:i},{handler:`lint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve lint config.`,{handler:`lint-config`,cause:e})}},{handler:`lint-config`,method:`GET`,skipBodyParse:!0}),Wc=K(See,async(e,t,n)=>{let r;try{r=YP(L(l),n.ruleId,n.value)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){G(t,409,`urn:ok:error:config-not-writable`,`The native markdownlint config (${r.file}) is an executable module OK will not rewrite — edit it directly or convert it to JSON/JSONC/YAML.`,{handler:`markdownlint-config`});return}zc();try{let e=Me?.()??Ht,n=[],r=NP(l,void 0,e=>n.push(e)),i=FP(A??l,PP(e,r),e=>n.push(e));n.push(...Hc(i)),q(t,200,$o,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The markdownlint rule was saved, but the effective config could not be re-read.`,{handler:`markdownlint-config`,cause:e})}},{handler:`markdownlint-config`,method:`POST`}),Gc=K(Lo,async(e,t,n)=>{let r;try{let e=L(A??l),t=n.parentPath??[];r=n.delete?wpe(e,n.file):n.field!==void 0&&n.removeField?Spe(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Cpe(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?bpe(e,n.file,n.field,n.constraint,t):xpe(e,n.file)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){G(t,409,`urn:ok:error:config-not-writable`,`The frontmatter schema (${r.file}) was not written: ${r.reason}.`,{handler:`frontmatter-schema`});return}(r.action===`created`||r.action===`deleted`)&&ae?.(`files`),zc();try{let e=Me?.()??Ht,n=[],r=NP(l,void 0,e=>n.push(e)),i=FP(A??l,PP(e,r),e=>n.push(e));n.push(...Hc(i)),q(t,200,$o,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The schema was saved, but the effective config could not be re-read.`,{handler:`frontmatter-schema`,cause:e})}},{handler:`frontmatter-schema`,method:`POST`}),Kc=K(Tn,async(e,t)=>{try{let e=L(A??l),{schemas:n,truncated:r}=Qfe(e),i=new Set(n),a=!1;if(xe!==void 0){let t=rZ({contentDir:l,contentFilter:xe,dirFilter:null,maxEntries:2e4}),n=await t.next();for(;!n.done;){let r=n.value,a=r.kind===`asset`?r.path:void 0;if(a!==void 0&&qi(a)){let t=I(e,L(l,a));!t.startsWith(`..`)&&!gu(t)&&i.add(t)}n=await t.next()}a=n.value.truncated}let o=[...i].sort((e,t)=>e.localeCompare(t));q(t,200,hte,{schemas:o.slice(0,500),truncated:r||a||o.length>500},{handler:`frontmatter-schemas-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list frontmatter schemas.`,{handler:`frontmatter-schemas-list`,cause:e})}},{handler:`frontmatter-schemas-list`,method:`GET`,skipBodyParse:!0}),qc=e=>{let t=e.replace(/\.(md|mdx)$/i,``),n=o.documents.get(t);return n===void 0?null:n.getText(`source`).toString()},Jc=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`)??``;if(n===``||!TZ(n)){G(t,400,`urn:ok:error:invalid-request`,`Missing or invalid doc.`,{handler:`lint`});return}let r=pZ(l,n);if(r===null){G(t,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint`});return}let i=Me?.()??Ht,a=[],o=await RP({projectDir:A??l,contentDir:l,baseConfig:i,docRelPath:r,onConfigProblem:e=>a.push(e),liveSourceFor:qc});q(t,200,vee,a.length>0?{...o,warnings:a}:o,{handler:`lint`})}catch(e){if(e instanceof MM){G(t,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint`});return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to lint document.`,{handler:`lint`,cause:e})}},{handler:`lint`,method:`GET`,skipBodyParse:!0}),Yc=new tP,Xc=oX();function Zc(e,t,n){let r=`${n} ${Bc()} ${t??``}`;return Xc.run(r,()=>Upe(e,{targetPath:t})).promise}function Qc(e,t){G(e,409,`urn:ok:error:audit-superseded`,`The lint configuration or branch changed while the audit was running; re-run it.`,{handler:t})}let $c=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`path`),r=n===null||n===``?void 0:n;if(r!==void 0&&!iZ(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`lint-audit`});return}let i=Me?.()??Ht;q(t,200,mi,await BP({projectDir:A??l,contentDir:l,baseConfig:i,targetPath:r,liveSourceFor:qc,cache:Yc,auditGeneration:Bc}),{handler:`lint-audit`})}catch(e){if(e instanceof LP){Qc(t,`lint-audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`lint-audit`,cause:e})}},{handler:`lint-audit`,method:`GET`,skipBodyParse:!0}),el=K(Tn,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`path`),i=r===null||r===``?void 0:r;if(i!==void 0&&!iZ(i)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`audit`});return}let a=n.searchParams.get(`doc`),o=a===null||a===``?void 0:a;if(o!==void 0){if(i!==void 0||!iZ(o)){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`audit`});return}i=pZ(l,o)??`${o}.md`}let s=Me?.()??Ht,c=await Zc(dF({projectDir:A??l,contentDir:l,baseConfig:s,liveSourceFor:qc,derivedDocumentIndex:k??null,linksValidation:Ne?.(),admittedDocNames:Zt,docFilePathFor:e=>pZ(l,e),cache:Yc,auditGeneration:Bc}),i,tP.fingerprintConfig(s));if(n.searchParams.get(`counts`)===`1`){q(t,200,Et,Hpe(c),{handler:`audit`});return}q(t,200,yt,c,{handler:`audit`})}catch(e){if(e instanceof LP){Qc(t,`audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`audit`,cause:e})}},{handler:`audit`,method:`GET`,skipBodyParse:!0}),tl=K(ft,async(t,n,r)=>{try{let t=oZ(r.docName,n,`lint-fix`);if(t===null)return;let i=wt(t),a=ok(r,he);if(a.kind===`invalid-summary`){G(n,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`lint-fix`});return}let o=a.kind===`anonymous`?`principal-anonymous`:a.writerId,s=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(Xx(i)||Zx(i)){G(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=pZ(l,i);if(f===null){G(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}VM(L(l,f),l);let p=Me?.()??Ht,{stored:m}=Qn(a.summary),h=await c.getSession(i,o,{displayName:s,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),{cfg:_,before:v,fixed:y}=await _pe({projectDir:A??l,contentDir:l,baseConfig:p,docRelPath:f,source:g}),b=v,x;if(y!==g){try{let t=Io(d),n=Da[t]??Bi(u??o);se?.setPresence(o,{displayName:s,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{rw(h.dc.document,y,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,tw(h))},h.origin),a.kind!==`anonymous`&&xj(i,o,s,u,void 0,a.kind===`agent`?Zn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{se?.touchMode(o,`idle`)}let t=await zt(i);if(t?.kind===`failure`){Ut(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){Kt(n,`lint-fix`);return}Mt(i,`lint-fix`);try{b=await Ba(h.dc.document.getText(`source`).toString(),_,f)}catch(e){x=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,Y.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),b=v}}let S=b.filter(e=>e.severity===`error`).length,C=b.length-S;q(n,200,Ko,{file:f,fixedCount:Math.max(0,v.length-b.length),diagnostics:b,errorCount:S,warningCount:C,...x?{warning:x}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof MM){G(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof gS){_S(n,e,`lint-fix`);return}if(e instanceof xS){wS(n,e,`lint-fix`);return}if(e instanceof pw){G(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}Y.error({err:e},`[lint-fix] handler failed`),G(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),nl=`link-preview`,rl=new bG({cacheDir:Pe?null:L(A??l,`.ok`,`local`,`link-previews`)}),il=null,al=()=>(il??=rl.init(),il),ol=Fe??dG;async function sl(e){let t=await ol(e);return t.ok?{ok:!0,metadata:await gG({html:new TextDecoder().decode(t.body),requestUrl:e,finalUrl:t.finalUrl,fetch:ol})}:{ok:!1,reason:t.reason}}let cl=()=>{try{return Ie?.()===!0}catch{return!1}},ll=K(_a,async(e,t,n)=>{try{if(!cl()){Y.debug({outcome:`disabled`},`[link-preview] request outcome`),q(t,200,Ze,{ok:!1,reason:`disabled`},{handler:nl});return}await al();let e=!1,r=await rl.load(n.url,()=>(e=!0,sl(n.url)));rl.persist();let i=r.ok?r:{ok:!1,reason:`blocked`};Y.debug({outcome:e?r.ok?`fetched-ok`:`fallback`:`cache-hit`},`[link-preview] request outcome`),q(t,200,Ze,i,{handler:nl})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:nl,cause:e})}},{handler:nl,method:`POST`,preBodyGate:(e,t)=>{let n=CG({origin:e.headers.origin,contentType:e.headers[`content-type`]});return n.ok?!0:(n.reason===`origin`?G(t,403,`urn:ok:error:invalid-origin`,`Origin not allowed.`,{handler:nl}):G(t,400,`urn:ok:error:invalid-request`,`Content-Type must be application/json.`,{handler:nl}),!1)}}),ul=Ile({service:it,getPrincipal:he,onChanged:()=>ae?.(`comments`)}),dl=cW({GET:ul.list,POST:ul.create},{handler:`comments`}),fl=cW({GET:ul.read,POST:ul.mutate,DELETE:ul.remove},{handler:`comment`}),{handleSkillsSearch:pl,handleSkillsPopular:ml,handleSkillsPublisher:hl,handleSkillsDetail:gl,handleSkillsPreview:_l,handleSkillsDiscover:vl,handleSkillsResolveRef:yl}=vve({log:Y,skillsHome:co,projectDir:A,contentDir:l,resolveSkillDirForRead:fo}),bl={"/api/config":Cc,"/api/config/diagnostics":wc,"/api/generated-index/settings":cW({GET:K(Tn,async(e,t)=>{if(!u){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-get`});return}q(t,200,CZ,u(),{handler:`generated-index-settings-get`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-get`,method:`GET`,skipBodyParse:!0}),POST:K(nye,async(e,t,n)=>{if(!d){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-set`});return}q(t,200,CZ,await d(n.enabled),{handler:`generated-index-settings-set`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-set`,method:`POST`})},{handler:`generated-index-settings`}),"/api/comments":dl,"/api/comment":fl,"/api/asset":Kr,"/api/asset-text":Jr,"/api/comment-counts":mr,"/api/link-preview":ll,"/api/folder-config":Va,"/api/saved-themes":Ua,"/api/saved-theme":qa,"/api/template":ro,"/api/template/import":io,"/api/templates":Za,"/api/skill":ms,"/api/skill-file":xs,"/api/skill-file/rename":Cs,"/api/skills":es,"/api/skills/installed":pr,"/api/skills/search":pl,"/api/skills/popular":ml,"/api/skills/publisher":hl,"/api/skills/detail":gl,"/api/skills/preview":_l,"/api/skills/discover":vl,"/api/skills/resolve-ref":yl,"/api/skill/import":Ns,"/api/skills/import-bulk":Ps,"/api/skill/edit-external":ls,"/api/skill/duplicate":ps,"/api/skill/move-scope":ds,"/api/skill-upload":Gs,"/api/skill/install":Ks,"/api/skill/uninstall":Js,"/api/skill/restore":Zs,"/api/skill/reimport":Qs,"/api/skill/revert":$s,"/api/skill/track-in-git":Zo,"/api/skill-targets":Xs,"/api/search":ac,"/api/semantic-status":Lc,"/api/lint/config":Uc,"/api/lint/markdownlint-config":Wc,"/api/lint/frontmatter-schema":Gc,"/api/lint/frontmatter-schemas":Kc,"/api/lint":Jc,"/api/lint/audit":$c,"/api/lint/fix":tl,"/api/audit":el,"/api/create-page":Xr,"/api/create-folder":Qr,"/api/duplicate-path":$r,"/api/rename-path":ei,"/api/delete-path":ii,"/api/trash/cleanup":ai,"/api/upload":oi,"/api/agent-write":cr,"/api/agent-write-md":lr,"/api/agent-write-batch":ur,"/api/frontmatter-patch":dr,"/api/agent-patch":hr,"/api/agent-undo":gr,"/api/agent-activity":vr,"/api/agent-burst-diff":yr,"/api/save-version":jr,"/api/history":Mr,"/api/rollback":Pr,"/api/__embed-detect":Br,"/api/server-info":Ir,"/api/acp/catalog":Rr,"/api/share/construct-url":lc,"/api/share/target-status":pc,"/api/git/branch-info":dc,"/api/git/checkout":mc,"/api/share/publish/owners":vc,"/api/share/publish/name-check":yc,"/api/share/publish":bc,"/api/principal":zr,"/api/rescue":Yr,"/api/workspace":Vr,"/api/sync/status":ba,"/api/sync/trigger":xa,"/api/sync/conflicts":Sa,"/api/sync/conflict-content":wa,"/api/sync/resolve-conflict":Ca,"/api/local-op/clone":_i,"/api/local-op/ok-init":Si,"/api/local-op/auth/login":Ii,"/api/local-op/auth/status":Gi,"/api/local-op/auth/pat":Ji,"/api/local-op/auth/gh-login":zi,"/api/local-op/auth/cancel":Hi,"/api/local-op/auth/repos":$i,"/api/local-op/auth/signout":aa,"/api/local-op/auth/set-identity":ga,"/api/local-op/embeddings/set-key":Ac,"/api/local-op/embeddings/clear-key":jc,"/api/local-op/embeddings/test":Ic,"/api/installed-agents":Ma,"/api/spawn-cursor":cc,"/api/handoff":sc,"/api/install-skill":ja,"/api/skill/install-state":oc,"/api/seed/plan":Ta,"/api/seed/apply":Ea,"/api/seed/install-pack-skill":Oa,"/api/seed/packs":Aa,"/api/client-logs":xc};E&&(bl[`/api/test-reset`]=Tr,bl[`/api/test-flush-git`]=xr,bl[`/api/test-rescan-backlinks`]=Er,bl[`/api/test-rescan-files`]=Dr);let xl=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./api/generated-index/settings./api/create-page./api/create-folder./api/duplicate-path./api/rename-path./api/delete-path./api/trash/cleanup./api/agent-write./api/agent-write-md./api/agent-write-batch./api/frontmatter-patch./api/agent-patch./api/agent-undo./api/save-version./api/rollback./api/sync/trigger./api/sync/resolve-conflict./api/git/checkout./api/test-reset./api/test-flush-git./api/test-rescan-backlinks./api/test-rescan-files./api/install-skill./api/folder-config./api/saved-theme./api/template./api/template/import./api/skill./api/skill-file./api/skill-file/rename./api/skill/import./api/skills/import-bulk./api/skill/duplicate./api/skill/move-scope./api/skill/edit-external./api/skill-upload./api/skill/install./api/skill/uninstall./api/skill/restore./api/skill/reimport./api/skill/revert./api/skill/track-in-git./api/skills/preview./api/skills/discover./api/skills/resolve-ref./api/skill-targets./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Sl=[`/api/local-op/`],Cl=jB({log:Y,policy:n,ephemeral:Pe,table:{resolve(e){let t=bl[e];if(t)return{template:e,dispatch:(e,n)=>t(e,n)};if(e.startsWith(`/api/history/`)){let t=e.slice(13);return{template:`/api/history/:sha`,dispatch:t?async(e,n)=>{await Nr(e,n,decodeURIComponent(t))}:void 0}}return{template:`/api/*`}},isMutating:e=>xl.has(e)||Sl.some(t=>e.startsWith(t))}}),wl=iW({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:p,isSafeDocName:TZ,readPageTitleForDocName:lt,readPageTitleForLinkedDocName:ut,readFrontmatterMetadataForLinkedDocName:vt,collectAdmittedDocNames:Zt,resolveAlias:wt,respondToDerivedIndexQueryFailure:un}),Tl=[wl,lW({hocuspocus:o,agentPresenceBroadcaster:se,isAllowedWorkspaceHostHeader:i,log:Y}),Ve],El=Tl.flatMap(e=>[...e.paths]);jU(El,bl);let Dl=Tl.map(e=>jB({log:Y,policy:n,ephemeral:Pe,table:e.table})),Ol={paths:El,dispatch:async(e,t)=>{for(let n of Dl)if(await n(e,t))return!0;return!1}},kl=new Set([`/api/search`,`/api/delete-path`,`/api/create-folder`,`/api/save-version`,`/api/skill/import`,`/api/skill/install`,`/api/upload`,`/api/orphans`,`/api/hubs`,`/api/backlinks`,`/api/forward-links`,`/api/dead-links`,`/api/suggest-links`]);for(let e of kl)if(bl[e]===void 0&&wl.table.resolve(e)?.dispatch===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await Cl(e,t)},nativeApi:Ol,localApi:sW({resolve:e=>{if(!kl.has(e))return;let t=bl[e];return t===void 0?wl.table.resolve(e)?.dispatch:t}})}}function DZ(e){let{contentFilter:t,contentSirv:n,inlineExtensions:r,assetExtensions:i,blocklistExtensions:a,ingressPolicy:o}=e;return(e,s,c)=>{let l;try{l=decodeURIComponent(e.url?.split(`?`)[0]?.replace(/^\//,``)??``)}catch{return c()}let u=hu(l).slice(1).toLowerCase(),d=u===`md`||u===`mdx`;if(!l||t.isPathIgnored(l)||!d&&!i.has(u))return c();let f=e.socket?.remoteAddress;if(f!==void 0&&!xB(f,o)){G(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!CB(e.headers.host,o)){G(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:gB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=IY(u,r);d||s.setHeader(`Content-Disposition`,p.disposition),p.csp!==null&&s.setHeader(`Content-Security-Policy`,p.csp),p.sandboxedHtml&&s.setHeader(`Cache-Control`,`no-store`),n(e,s,()=>{if(s.headersSent)return;let e=ke.has(u);if(!e&&(i.has(u)||a.has(u))){s.statusCode=404,s.end();return}e&&(s.removeHeader(`Content-Security-Policy`),s.removeHeader(`Content-Disposition`),s.removeHeader(`X-Content-Type-Options`),s.removeHeader(`Cache-Control`)),c()})}}function OZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function iye(e){let t;try{t=zu(e.contentDir,{withFileTypes:!0})}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&zx(n.name,T)&&e.basenameIndex.add(n.name)}async function kZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await nd(i,{withFileTypes:!0})}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=F(i,o.name),s=LM(I(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await ed(a)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await rd(a)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!RM(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await id(i)}catch(t){let n=OZ(t);n!==`ENOENT`&&e.onSkip?.(`symlink-stat-failed`,n,i);continue}if(n.has(o.ino))continue;n.add(o.ino),o.isDirectory()?await r(i):o.isFile()&&zx(a,ue)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s);continue}if(c.isDirectory()){if(n.has(c.ino))continue;n.add(c.ino),await r(a);continue}c.isFile()&&zx(a,ue)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const AZ=b({principalId:h().optional(),tabSessionId:h().optional(),expectedServerInstanceId:h().optional(),expectedBranch:h().optional(),expectedDocLineageEpoch:h().optional(),clientProtocolVersion:j().optional(),clientRuntimeVersion:h().optional(),clientKind:h().optional()}).loose(),jZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function MZ(e){return jZ.includes(e)}function NZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function aye(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!MZ(n))return{kind:null,payload:void 0};if(t===-1)return{kind:n,payload:void 0};let r=e.slice(t+1);return{kind:n,payload:r.length>0?r:void 0}}var PZ=class extends Error{kind;payload;reason;constructor(e,t,n){super(t),this.name=`HocuspocusAuthRejection`,this.kind=e,this.payload=typeof n==`string`&&n.length>0?n:void 0,this.reason=NZ(e,this.payload)}};function FZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=AZ.safeParse(t);return n.success?n.data:void 0}var IZ=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};const LZ=N(`conflict-storage`);var RZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=F(Pk(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!z(this.storePath)){this.conflicts=[];return}try{let e=B(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){LZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){LZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=P(this.storePath);z(e)||Nu(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return Ku(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return LZ.warn({err:e},`[conflicts] failed to save conflicts.json`),!1}}addConflict(e){if(e.variant===`working-tree`&&!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let t=this.conflicts.findIndex(t=>t.file===e.file);return t===-1?this.conflicts.push(e):this.conflicts[t]=e,this.save()}removeConflict(e){return this.conflicts=this.conflicts.filter(t=>t.file!==e),this.save()}clear(){this.conflicts=[],this.save()}count(){return this.conflicts.length}list(){return[...this.conflicts]}hasConflicts(){return this.conflicts.length>0}setBranch(e){this.branch=e}async resolveConflict(e,t,n){let r=this.conflicts.find(t=>t.file===e);if(!r)throw Error(`[conflicts] no conflict tracked for file: ${e}`);if(t===`content`&&n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);if(r.variant===`working-tree`){await this.resolveWorkingTreeConflict(r,t,n);return}let{createGitInstance:i}=await import(`./git-handle-BPPRdjZZ.mjs`),a=i(this.projectDir,{credentialConfig:[]});switch(t){case`mine`:await a.git.raw([`checkout`,`--ours`,`--`,e]),await a.git.raw([`add`,`--`,e]);break;case`theirs`:await a.git.raw([`checkout`,`--theirs`,`--`,e]),await a.git.raw([`add`,`--`,e]);break;case`content`:{if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);let t=L(this.projectDir),r=L(t,e);if(!RM(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);gL(r,t),Ys(r,n,`utf-8`),await a.git.raw([`add`,`--`,e]);break}case`delete`:await a.git.raw([`rm`,`--`,e]);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}if(this.removeConflict(e),!this.hasConflicts())try{await a.git.raw([`commit`,`--no-edit`]),LZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await Ub(a.git,[`diff`,`--name-only`,`--diff-filter=U`]);for(let t of e)this.addConflict({file:t,detectedAt:n});r=e.length>0}catch(e){LZ.warn({err:e},`[conflicts] commit failed and re-scan of unmerged files failed — falling back to single-file re-add`)}r||this.addConflict({file:e,detectedAt:n}),LZ.warn({err:t},`[conflicts] failed to commit merge after all conflicts resolved — unmerged files re-added`);let i=t instanceof Error?t.message:String(t);throw Error(`Merge commit failed after resolving ${e}; ${r?`unmerged files re-added`:`original file re-added`} — ${i}`,{cause:t})}}async resolveWorkingTreeConflict(e,t,n){let r=L(this.projectDir),i=L(r,e.file);if(!RM(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(gL(i,r),t){case`mine`:break;case`theirs`:{if(!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let{createGitInstance:t}=await import(`./git-handle-BPPRdjZZ.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);gL(i,r),Ys(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Ys(i,n,`utf-8`);break;case`delete`:z(i)&&Fs(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function oye(e,t){let n=e instanceof Error?{name:e.name,message:e.message,stack:e.stack??null}:{name:`NonError`,message:String(e),stack:null};return{timestamp:new Date().toISOString(),origin:t,error:n,pid:process.pid,uptimeSec:Math.round(process.uptime()*1e3)/1e3}}function sye(e,t){let n=Pk(e);try{Nu(n,{recursive:!0}),Ku(F(n,lo),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=ac(e);Nu(P(n),{recursive:!0});let r={level:60,time:Date.parse(t.timestamp),name:`crash`,origin:t.origin,err:t.error,pid:t.pid,uptimeSec:t.uptimeSec,msg:`fatal ${t.origin} — process crashing`};Ku(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const zZ=new Map;let BZ=!1;function cye(e,t){try{let n=oye(e,t);for(let e of zZ.keys())sye(e,n)}catch{}}function lye(e){zZ.set(e,(zZ.get(e)??0)+1),BZ||(BZ=!0,process.on(`uncaughtExceptionMonitor`,cye));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=zZ.get(e)??0;n<=1?zZ.delete(e):zZ.set(e,n-1)}}}function VZ(e){let t=e.scheduler??zi,n=e.warnBeforeMs??3e5,r=0,i=null,a=null,o=!1,s=!1;function c(){i!==null&&(t.clearTimeout(i),i=null),a!==null&&(t.clearTimeout(a),a=null)}function l(){c(),!(s||o)&&r===0&&(n>0&&n<e.thresholdMs&&(a=t.setTimeout(()=>{a=null,r===0&&!o&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),i=t.setTimeout(()=>{if(i=null,!(s||o)&&r===0){o=!0,e.log?.info({webSocketClientCount:0},`idle shutdown firing`);try{let t=e.onShutdown();t&&typeof t.then==`function`&&t.catch(t=>{e.log?.error({err:t},`idle shutdown handler rejected`)})}catch(t){e.log?.error({err:t},`idle shutdown handler threw`)}}},e.thresholdMs))}let u=(e,t)=>{e.url?.startsWith(`/collab`)&&(r++,c(),t.once(`close`,()=>{r--,r<0&&(r=0),r===0&&l()}))};return e.httpServer.on(`upgrade`,u),l(),{detach:()=>{s||(s=!0,e.httpServer.off(`upgrade`,u),c())}}}function HZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function UZ(e){if(!z(e))return{};let t;try{t=(0,nk.parse)(B(e,`utf-8`))}catch(t){return console.warn(`[telemetry.localSink] failed to parse ${e}; falling back to schema defaults — any explicit telemetry.localSink fields in this file are being ignored. Reason: ${t instanceof Error?t.message:String(t)}`),{}}if(!HZ(t))return{};let n=t.telemetry;if(!HZ(n))return{};let r=n.localSink;return HZ(r)?r:{}}function WZ(e){return typeof e==`boolean`?e:void 0}function uye(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function GZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function KZ(e){if(HZ(e))return uye(e.maxBytes)}function dye(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=UZ(zs(`project`,e.projectDir)),n=UZ(zs(`project-local`,e.projectDir));if((WZ(n.enabled)??WZ(t.enabled)??!0)===!1)return null;let r=KZ(n.spans)??KZ(t.spans)??52428800,i=KZ(n.logs)??KZ(t.logs)??26214400,a=GZ(n.attributeDenylist)??GZ(t.attributeDenylist)??ye;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:a},logs:{projectDir:e.projectDir,maxBytes:i}}}var qZ;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(qZ||={});var fye;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(fye||={});const JZ=qZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),YZ=e=>{switch(typeof e){case`undefined`:return JZ.undefined;case`string`:return JZ.string;case`number`:return Number.isNaN(e)?JZ.nan:JZ.number;case`boolean`:return JZ.boolean;case`function`:return JZ.function;case`bigint`:return JZ.bigint;case`symbol`:return JZ.symbol;case`object`:return Array.isArray(e)?JZ.array:e===null?JZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?JZ.promise:typeof Map<`u`&&e instanceof Map?JZ.map:typeof Set<`u`&&e instanceof Set?JZ.set:typeof Date<`u`&&e instanceof Date?JZ.date:JZ.object;default:return JZ.unknown}},X=qZ.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]);var XZ=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,qZ.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};XZ.create=e=>new XZ(e);const ZZ=(e,t)=>{let n;switch(e.code){case X.invalid_type:n=e.received===JZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case X.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,qZ.jsonStringifyReplacer)}`;break;case X.unrecognized_keys:n=`Unrecognized key(s) in object: ${qZ.joinValues(e.keys,`, `)}`;break;case X.invalid_union:n=`Invalid input`;break;case X.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${qZ.joinValues(e.options)}`;break;case X.invalid_enum_value:n=`Invalid enum value. Expected ${qZ.joinValues(e.options)}, received '${e.received}'`;break;case X.invalid_arguments:n=`Invalid function arguments`;break;case X.invalid_return_type:n=`Invalid function return type`;break;case X.invalid_date:n=`Invalid date`;break;case X.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:qZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case X.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case X.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case X.custom:n=`Invalid input`;break;case X.invalid_intersection_types:n=`Intersection results could not be merged`;break;case X.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case X.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,qZ.assertNever(e)}return{message:n}};let pye=ZZ;function QZ(){return pye}const $Z=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function eQ(e,t){let n=QZ(),r=$Z({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ZZ?void 0:ZZ].filter(e=>!!e)});e.common.issues.push(r)}var tQ=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return nQ;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return nQ;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}};const nQ=Object.freeze({status:`aborted`}),rQ=e=>({status:`dirty`,value:e}),iQ=e=>({status:`valid`,value:e}),aQ=e=>e.status===`aborted`,oQ=e=>e.status===`dirty`,sQ=e=>e.status===`valid`,cQ=e=>typeof Promise<`u`&&e instanceof Promise;var lQ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(lQ||={});var uQ=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};const dQ=(e,t)=>{if(sQ(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new XZ(e.common.issues);return this._error=t,this._error}}};function fQ(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var pQ=class{get description(){return this._def.description}_getType(e){return YZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:YZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new tQ,ctx:{common:e.parent.common,data:e.data,parsedType:YZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(cQ(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)};return dQ(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return sQ(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>sQ(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:YZ(e)},r=this._parse({data:e,path:n.path,parent:n});return dQ(n,await(cQ(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:X.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new GQ({schema:this,typeName:Z.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return KQ.create(this,this._def)}nullable(){return qQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return kQ.create(this)}promise(){return WQ.create(this,this._def)}or(e){return MQ.create([this,e],this._def)}and(e){return FQ.create(this,e,this._def)}transform(e){return new GQ({...fQ(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new JQ({...fQ(this._def),innerType:this,defaultValue:t,typeName:Z.ZodDefault})}brand(){return new ZQ({typeName:Z.ZodBranded,type:this,...fQ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new YQ({...fQ(this._def),innerType:this,catchValue:t,typeName:Z.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return QQ.create(this,e)}readonly(){return $Q.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const mye=/^c[^\s-]{8,}$/i,hye=/^[0-9a-z]+$/,gye=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_ye=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,vye=/^[a-z0-9_-]{21}$/i,yye=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bye=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,xye=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let mQ;const Sye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Cye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,wye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Tye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Eye=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dye=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,hQ=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Oye=RegExp(`^${hQ}$`);function gQ(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function kye(e){return RegExp(`^${gQ(e)}$`)}function Aye(e){let t=`${hQ}T${gQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function jye(e,t){return!!((t===`v4`||!t)&&Sye.test(e)||(t===`v6`||!t)&&wye.test(e))}function Mye(e,t){if(!yye.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Nye(e,t){return!!((t===`v4`||!t)&&Cye.test(e)||(t===`v6`||!t)&&Tye.test(e))}var _Q=class e extends pQ{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==JZ.string){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.string,received:t.parsedType}),nQ}let t=new tQ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?eQ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&eQ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)xye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`email`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)mQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),mQ.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`emoji`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)_ye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`uuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)vye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`nanoid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)mye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)hye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cuid2`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)gye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`ulid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),eQ(n,{validation:`url`,code:X.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`regex`,code:X.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Aye(r).test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Oye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?kye(r).test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?bye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`duration`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?jye(e.data,r.version)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`ip`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Mye(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`jwt`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Nye(e.data,r.version)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`cidr`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Eye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`base64`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Dye.test(e.data)||(n=this._getOrReturnCtx(e,n),eQ(n,{validation:`base64url`,code:X.invalid_string,message:r.message}),t.dirty()):qZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:X.invalid_string,...lQ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...lQ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...lQ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...lQ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...lQ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...lQ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...lQ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...lQ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...lQ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...lQ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...lQ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...lQ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...lQ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...lQ.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...lQ.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...lQ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...lQ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...lQ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...lQ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...lQ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...lQ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...lQ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...lQ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...lQ.errToObj(t)})}nonempty(e){return this.min(1,lQ.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};_Q.create=e=>new _Q({checks:[],typeName:Z.ZodString,coerce:e?.coerce??!1,...fQ(e)});function Pye(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var vQ=class e extends pQ{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==JZ.number){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.number,received:t.parsedType}),nQ}let t,n=new tQ;for(let r of this._def.checks)r.kind===`int`?qZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Pye(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_finite,message:r.message}),n.dirty()):qZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,lQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,lQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,lQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,lQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:lQ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:lQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:lQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:lQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:lQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:lQ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:lQ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:lQ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:lQ.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&qZ.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};vQ.create=e=>new vQ({checks:[],typeName:Z.ZodNumber,coerce:e?.coerce||!1,...fQ(e)});var yQ=class e extends pQ{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==JZ.bigint)return this._getInvalidInput(e);let t,n=new tQ;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),eQ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):qZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.bigint,received:t.parsedType}),nQ}gte(e,t){return this.setLimit(`min`,e,!0,lQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,lQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,lQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,lQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:lQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:lQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:lQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:lQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:lQ.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};yQ.create=e=>new yQ({checks:[],typeName:Z.ZodBigInt,coerce:e?.coerce??!1,...fQ(e)});var bQ=class extends pQ{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==JZ.boolean){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.boolean,received:t.parsedType}),nQ}return iQ(e.data)}};bQ.create=e=>new bQ({typeName:Z.ZodBoolean,coerce:e?.coerce||!1,...fQ(e)});var xQ=class e extends pQ{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==JZ.date){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.date,received:t.parsedType}),nQ}if(Number.isNaN(e.data.getTime()))return eQ(this._getOrReturnCtx(e),{code:X.invalid_date}),nQ;let t=new tQ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),eQ(n,{code:X.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):qZ.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:lQ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:lQ.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};xQ.create=e=>new xQ({checks:[],coerce:e?.coerce||!1,typeName:Z.ZodDate,...fQ(e)});var SQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.symbol){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.symbol,received:t.parsedType}),nQ}return iQ(e.data)}};SQ.create=e=>new SQ({typeName:Z.ZodSymbol,...fQ(e)});var CQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.undefined){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.undefined,received:t.parsedType}),nQ}return iQ(e.data)}};CQ.create=e=>new CQ({typeName:Z.ZodUndefined,...fQ(e)});var wQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.null){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.null,received:t.parsedType}),nQ}return iQ(e.data)}};wQ.create=e=>new wQ({typeName:Z.ZodNull,...fQ(e)});var TQ=class extends pQ{constructor(){super(...arguments),this._any=!0}_parse(e){return iQ(e.data)}};TQ.create=e=>new TQ({typeName:Z.ZodAny,...fQ(e)});var EQ=class extends pQ{constructor(){super(...arguments),this._unknown=!0}_parse(e){return iQ(e.data)}};EQ.create=e=>new EQ({typeName:Z.ZodUnknown,...fQ(e)});var DQ=class extends pQ{_parse(e){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.never,received:t.parsedType}),nQ}};DQ.create=e=>new DQ({typeName:Z.ZodNever,...fQ(e)});var OQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.undefined){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.void,received:t.parsedType}),nQ}return iQ(e.data)}};OQ.create=e=>new OQ({typeName:Z.ZodVoid,...fQ(e)});var kQ=class e extends pQ{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==JZ.array)return eQ(t,{code:X.invalid_type,expected:JZ.array,received:t.parsedType}),nQ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(eQ(t,{code:e?X.too_big:X.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(eQ(t,{code:X.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(eQ(t,{code:X.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new uQ(t,e,t.path,n)))).then(e=>tQ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new uQ(t,e,t.path,n)));return tQ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lQ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lQ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lQ.toString(n)}})}nonempty(e){return this.min(1,e)}};kQ.create=(e,t)=>new kQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...fQ(t)});function AQ(e){if(e instanceof jQ){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=KQ.create(AQ(r))}return new jQ({...e._def,shape:()=>t})}else if(e instanceof kQ)return new kQ({...e._def,type:AQ(e.element)});else if(e instanceof KQ)return KQ.create(AQ(e.unwrap()));else if(e instanceof qQ)return qQ.create(AQ(e.unwrap()));else if(e instanceof IQ)return IQ.create(e.items.map(e=>AQ(e)));else return e}var jQ=class e extends pQ{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=qZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==JZ.object){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.object,received:t.parsedType}),nQ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof DQ&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new uQ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof DQ){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(eQ(n,{code:X.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new uQ(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>tQ.mergeObjectSync(t,e)):tQ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return lQ.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:lQ.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Z.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of qZ.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of qZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return AQ(this)}partial(t){let n={};for(let e of qZ.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of qZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof KQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return VQ(qZ.objectKeys(this.shape))}};jQ.create=(e,t)=>new jQ({shape:()=>e,unknownKeys:`strip`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)}),jQ.strictCreate=(e,t)=>new jQ({shape:()=>e,unknownKeys:`strict`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)}),jQ.lazycreate=(e,t)=>new jQ({shape:e,unknownKeys:`strip`,catchall:DQ.create(),typeName:Z.ZodObject,...fQ(t)});var MQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new XZ(e.ctx.common.issues));return eQ(t,{code:X.invalid_union,unionErrors:n}),nQ}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new XZ(e));return eQ(t,{code:X.invalid_union,unionErrors:i}),nQ}}get options(){return this._def.options}};MQ.create=(e,t)=>new MQ({options:e,typeName:Z.ZodUnion,...fQ(t)});const NQ=e=>e instanceof zQ?NQ(e.schema):e instanceof GQ?NQ(e.innerType()):e instanceof BQ?[e.value]:e instanceof HQ?e.options:e instanceof UQ?qZ.objectValues(e.enum):e instanceof JQ?NQ(e._def.innerType):e instanceof CQ?[void 0]:e instanceof wQ?[null]:e instanceof KQ?[void 0,...NQ(e.unwrap())]:e instanceof qQ?[null,...NQ(e.unwrap())]:e instanceof ZQ||e instanceof $Q?NQ(e.unwrap()):e instanceof YQ?NQ(e._def.innerType):[];var Fye=class e extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==JZ.object)return eQ(t,{code:X.invalid_type,expected:JZ.object,received:t.parsedType}),nQ;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(eQ(t,{code:X.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),nQ)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=NQ(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Z.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...fQ(r)})}};function PQ(e,t){let n=YZ(e),r=YZ(t);if(e===t)return{valid:!0,data:e};if(n===JZ.object&&r===JZ.object){let n=qZ.objectKeys(t),r=qZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=PQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===JZ.array&&r===JZ.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=PQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===JZ.date&&r===JZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var FQ=class extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(aQ(e)||aQ(r))return nQ;let i=PQ(e.value,r.value);return i.valid?((oQ(e)||oQ(r))&&t.dirty(),{status:t.value,value:i.data}):(eQ(n,{code:X.invalid_intersection_types}),nQ)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};FQ.create=(e,t,n)=>new FQ({left:e,right:t,typeName:Z.ZodIntersection,...fQ(n)});var IQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.array)return eQ(n,{code:X.invalid_type,expected:JZ.array,received:n.parsedType}),nQ;if(n.data.length<this._def.items.length)return eQ(n,{code:X.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),nQ;!this._def.rest&&n.data.length>this._def.items.length&&(eQ(n,{code:X.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new uQ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>tQ.mergeArray(t,e)):tQ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};IQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new IQ({items:e,typeName:Z.ZodTuple,rest:null,...fQ(t)})};var Iye=class e extends pQ{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.object)return eQ(n,{code:X.invalid_type,expected:JZ.object,received:n.parsedType}),nQ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new uQ(n,e,n.path,e)),value:a._parse(new uQ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?tQ.mergeObjectAsync(t,r):tQ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof pQ?new e({keyType:t,valueType:n,typeName:Z.ZodRecord,...fQ(r)}):new e({keyType:_Q.create(),valueType:t,typeName:Z.ZodRecord,...fQ(n)})}},LQ=class extends pQ{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.map)return eQ(n,{code:X.invalid_type,expected:JZ.map,received:n.parsedType}),nQ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new uQ(n,e,n.path,[a,`key`])),value:i._parse(new uQ(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return nQ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return nQ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};LQ.create=(e,t,n)=>new LQ({valueType:t,keyType:e,typeName:Z.ZodMap,...fQ(n)});var RQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==JZ.set)return eQ(n,{code:X.invalid_type,expected:JZ.set,received:n.parsedType}),nQ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(eQ(n,{code:X.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(eQ(n,{code:X.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return nQ;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new uQ(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:lQ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lQ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};RQ.create=(e,t)=>new RQ({valueType:e,minSize:null,maxSize:null,typeName:Z.ZodSet,...fQ(t)});var Lye=class e extends pQ{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==JZ.function)return eQ(t,{code:X.invalid_type,expected:JZ.function,received:t.parsedType}),nQ;function n(e,n){return $Z({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,QZ(),ZZ].filter(e=>!!e),issueData:{code:X.invalid_arguments,argumentsError:n}})}function r(e,n){return $Z({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,QZ(),ZZ].filter(e=>!!e),issueData:{code:X.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof WQ){let e=this;return iQ(async function(...t){let o=new XZ([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return iQ(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new XZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new XZ([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:IQ.create(t).rest(EQ.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||IQ.create([]).rest(EQ.create()),returns:n||EQ.create(),typeName:Z.ZodFunction,...fQ(r)})}},zQ=class extends pQ{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};zQ.create=(e,t)=>new zQ({getter:e,typeName:Z.ZodLazy,...fQ(t)});var BQ=class extends pQ{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return eQ(t,{received:t.data,code:X.invalid_literal,expected:this._def.value}),nQ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};BQ.create=(e,t)=>new BQ({value:e,typeName:Z.ZodLiteral,...fQ(t)});function VQ(e,t){return new HQ({values:e,typeName:Z.ZodEnum,...fQ(t)})}var HQ=class e extends pQ{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return eQ(t,{expected:qZ.joinValues(n),received:t.parsedType,code:X.invalid_type}),nQ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return eQ(t,{received:t.data,code:X.invalid_enum_value,options:n}),nQ}return iQ(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};HQ.create=VQ;var UQ=class extends pQ{_parse(e){let t=qZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==JZ.string&&n.parsedType!==JZ.number){let e=qZ.objectValues(t);return eQ(n,{expected:qZ.joinValues(e),received:n.parsedType,code:X.invalid_type}),nQ}if(this._cache||=new Set(qZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=qZ.objectValues(t);return eQ(n,{received:n.data,code:X.invalid_enum_value,options:e}),nQ}return iQ(e.data)}get enum(){return this._def.values}};UQ.create=(e,t)=>new UQ({values:e,typeName:Z.ZodNativeEnum,...fQ(t)});var WQ=class extends pQ{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==JZ.promise&&t.common.async===!1?(eQ(t,{code:X.invalid_type,expected:JZ.promise,received:t.parsedType}),nQ):iQ((t.parsedType===JZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};WQ.create=(e,t)=>new WQ({type:e,typeName:Z.ZodPromise,...fQ(t)});var GQ=class extends pQ{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{eQ(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return nQ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?nQ:r.status===`dirty`||t.value===`dirty`?rQ(r.value):r});{if(t.value===`aborted`)return nQ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?nQ:r.status===`dirty`||t.value===`dirty`?rQ(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?nQ:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?nQ:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!sQ(e))return nQ;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>sQ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):nQ);qZ.assertNever(r)}};GQ.create=(e,t,n)=>new GQ({schema:e,typeName:Z.ZodEffects,effect:t,...fQ(n)}),GQ.createWithPreprocess=(e,t,n)=>new GQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Z.ZodEffects,...fQ(n)});var KQ=class extends pQ{_parse(e){return this._getType(e)===JZ.undefined?iQ(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};KQ.create=(e,t)=>new KQ({innerType:e,typeName:Z.ZodOptional,...fQ(t)});var qQ=class extends pQ{_parse(e){return this._getType(e)===JZ.null?iQ(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};qQ.create=(e,t)=>new qQ({innerType:e,typeName:Z.ZodNullable,...fQ(t)});var JQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===JZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};JQ.create=(e,t)=>new JQ({innerType:e,typeName:Z.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...fQ(t)});var YQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return cQ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new XZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new XZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};YQ.create=(e,t)=>new YQ({innerType:e,typeName:Z.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...fQ(t)});var XQ=class extends pQ{_parse(e){if(this._getType(e)!==JZ.nan){let t=this._getOrReturnCtx(e);return eQ(t,{code:X.invalid_type,expected:JZ.nan,received:t.parsedType}),nQ}return{status:`valid`,value:e.data}}};XQ.create=e=>new XQ({typeName:Z.ZodNaN,...fQ(e)});var ZQ=class extends pQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},QQ=class e extends pQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?nQ:e.status===`dirty`?(t.dirty(),rQ(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?nQ:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Z.ZodPipeline})}},$Q=class extends pQ{_parse(e){let t=this._def.innerType._parse(e),n=e=>(sQ(e)&&(e.value=Object.freeze(e.value)),e);return cQ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};$Q.create=(e,t)=>new $Q({innerType:e,typeName:Z.ZodReadonly,...fQ(t)}),jQ.lazycreate;var Z;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Z||={}),_Q.create,vQ.create,XQ.create,yQ.create,bQ.create,xQ.create,SQ.create,CQ.create,wQ.create,TQ.create,EQ.create,DQ.create,OQ.create,kQ.create;const Rye=jQ.create;jQ.strictCreate,MQ.create,Fye.create,FQ.create,IQ.create,Iye.create,LQ.create,RQ.create,Lye.create,zQ.create,BQ.create,HQ.create,UQ.create,WQ.create,GQ.create,KQ.create,qQ.create,GQ.createWithPreprocess,QQ.create;const zye=je(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);_.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>De(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>se(e,t,n),e.parseAsync=async(t,n)=>g(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>oe(e,t,n),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]},{parent:!0}),e.with=e.check,e.clone=(t,n)=>E(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),Bye=je(`ZodMiniObject`,(e,t)=>{f.init(e,t),zye.init(e,t),r(e,`shape`,()=>t.shape)});function e$(e,t){return new Bye({type:`object`,shape:e??{},...A(t)})}function t$(e){return!!e._zod}function n$(e){let t=Object.values(e);if(t.length===0)return e$({});let n=t.every(t$),r=t.every(e=>!t$(e));if(n)return e$(e);if(r)return Rye(e);throw Error(`Mixed Zod versions detected in object shape.`)}function r$(e,t){return t$(e)?se(e,t):e.safeParse(t)}async function i$(e,t){return t$(e)?await oe(e,t):await e.safeParseAsync(t)}function a$(e){if(!e)return;let t;if(t=t$(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function o$(e){if(e){if(typeof e==`object`){let t=e,n=e;if(!t._def&&!n._zod){let t=Object.values(e);if(t.length>0&&t.every(e=>typeof e==`object`&&!!e&&(e._def!==void 0||e._zod!==void 0||typeof e.parse==`function`)))return n$(e)}}if(t$(e)){let t=e._zod?.def;if(t&&(t.type===`object`||t.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function s$(e){if(e&&typeof e==`object`){if(`message`in e&&typeof e.message==`string`)return e.message;if(`issues`in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t==`object`&&`message`in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Vye(e){return e.description}function Hye(e){if(t$(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function c$(e){if(t$(e)){let t=e._zod?.def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=e.value;if(n!==void 0)return n}const l$=`2025-11-25`,u$=[l$,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],d$=`io.modelcontextprotocol/related-task`,f$=Ie(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),p$=y([h(),j().int()]),m$=h();i({ttl:j().optional(),pollInterval:j().optional()});const Uye=b({ttl:j().optional()}),Wye=b({taskId:h()}),h$=i({progressToken:p$.optional(),[d$]:Wye.optional()}),g$=b({_meta:h$.optional()}),_$=g$.extend({task:Uye.optional()}),Gye=e=>_$.safeParse(e).success,v$=b({method:h(),params:g$.loose().optional()}),y$=b({_meta:h$.optional()}),b$=b({method:h(),params:y$.loose().optional()}),x$=i({_meta:h$.optional()}),S$=y([h(),j().int()]),C$=b({jsonrpc:M(`2.0`),id:S$,...v$.shape}).strict(),w$=e=>C$.safeParse(e).success,T$=b({jsonrpc:M(`2.0`),...b$.shape}).strict(),Kye=e=>T$.safeParse(e).success,E$=b({jsonrpc:M(`2.0`),id:S$,result:x$}).strict(),D$=e=>E$.safeParse(e).success;var O$;(function(e){e[e.ConnectionClosed=-32e3]=`ConnectionClosed`,e[e.RequestTimeout=-32001]=`RequestTimeout`,e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`})(O$||={});const k$=b({jsonrpc:M(`2.0`),id:S$.optional(),error:b({code:j().int(),message:h(),data:D().optional()})}).strict(),A$=e=>k$.safeParse(e).success,j$=y([C$,T$,E$,k$]);y([E$,k$]);const M$=x$.strict(),qye=y$.extend({requestId:S$.optional(),reason:h().optional()}),N$=b$.extend({method:M(`notifications/cancelled`),params:qye}),P$=b({icons:O(b({src:h(),mimeType:h().optional(),sizes:O(h()).optional(),theme:Re([`light`,`dark`]).optional()})).optional()}),F$=b({name:h(),title:h().optional()}),I$=F$.extend({...F$.shape,...P$.shape,version:h(),websiteUrl:h().optional(),description:h().optional()}),Jye=w(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,c(b({form:c(b({applyDefaults:s().optional()}),d(h(),D())).optional(),url:f$.optional()}),d(h(),D()).optional())),Yye=i({list:f$.optional(),cancel:f$.optional(),requests:i({sampling:i({createMessage:f$.optional()}).optional(),elicitation:i({create:f$.optional()}).optional()}).optional()}),Xye=i({list:f$.optional(),cancel:f$.optional(),requests:i({tools:i({call:f$.optional()}).optional()}).optional()}),Zye=b({experimental:d(h(),f$).optional(),sampling:b({context:f$.optional(),tools:f$.optional()}).optional(),elicitation:Jye.optional(),roots:b({listChanged:s().optional()}).optional(),tasks:Yye.optional(),extensions:d(h(),f$).optional()}),Qye=g$.extend({protocolVersion:h(),capabilities:Zye,clientInfo:I$}),L$=v$.extend({method:M(`initialize`),params:Qye}),R$=e=>L$.safeParse(e).success,$ye=b({experimental:d(h(),f$).optional(),logging:f$.optional(),completions:f$.optional(),prompts:b({listChanged:s().optional()}).optional(),resources:b({subscribe:s().optional(),listChanged:s().optional()}).optional(),tools:b({listChanged:s().optional()}).optional(),tasks:Xye.optional(),extensions:d(h(),f$).optional()}),ebe=x$.extend({protocolVersion:h(),capabilities:$ye,serverInfo:I$,instructions:h().optional()}),z$=b$.extend({method:M(`notifications/initialized`),params:y$.optional()}),tbe=e=>z$.safeParse(e).success,B$=v$.extend({method:M(`ping`),params:g$.optional()}),nbe=b({progress:j(),total:S(j()),message:S(h())}),rbe=b({...y$.shape,...nbe.shape,progressToken:p$}),V$=b$.extend({method:M(`notifications/progress`),params:rbe}),ibe=g$.extend({cursor:m$.optional()}),H$=v$.extend({params:ibe.optional()}),U$=x$.extend({nextCursor:m$.optional()}),abe=Re([`working`,`input_required`,`completed`,`failed`,`cancelled`]),W$=b({taskId:h(),status:abe,ttl:y([j(),de()]),createdAt:h(),lastUpdatedAt:h(),pollInterval:S(j()),statusMessage:S(h())}),G$=x$.extend({task:W$}),obe=y$.merge(W$),K$=b$.extend({method:M(`notifications/tasks/status`),params:obe}),q$=v$.extend({method:M(`tasks/get`),params:g$.extend({taskId:h()})}),J$=x$.merge(W$),Y$=v$.extend({method:M(`tasks/result`),params:g$.extend({taskId:h()})});x$.loose();const X$=H$.extend({method:M(`tasks/list`)}),Z$=U$.extend({tasks:O(W$)}),Q$=v$.extend({method:M(`tasks/cancel`),params:g$.extend({taskId:h()})}),sbe=x$.merge(W$),$$=b({uri:h(),mimeType:S(h()),_meta:d(h(),D()).optional()}),e1=$$.extend({text:h()}),t1=h().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),n1=$$.extend({blob:t1}),r1=Re([`user`,`assistant`]),i1=b({audience:O(r1).optional(),priority:j().min(0).max(1).optional(),lastModified:ae({offset:!0}).optional()}),a1=b({...F$.shape,...P$.shape,uri:h(),description:S(h()),mimeType:S(h()),size:S(j()),annotations:i1.optional(),_meta:S(i({}))}),cbe=b({...F$.shape,...P$.shape,uriTemplate:h(),description:S(h()),mimeType:S(h()),annotations:i1.optional(),_meta:S(i({}))}),o1=H$.extend({method:M(`resources/list`)}),lbe=U$.extend({resources:O(a1)}),s1=H$.extend({method:M(`resources/templates/list`)}),ube=U$.extend({resourceTemplates:O(cbe)}),c1=g$.extend({uri:h()}),dbe=c1,l1=v$.extend({method:M(`resources/read`),params:dbe}),fbe=x$.extend({contents:O(y([e1,n1]))}),pbe=b$.extend({method:M(`notifications/resources/list_changed`),params:y$.optional()}),mbe=c1,hbe=v$.extend({method:M(`resources/subscribe`),params:mbe}),gbe=c1,_be=v$.extend({method:M(`resources/unsubscribe`),params:gbe}),vbe=y$.extend({uri:h()}),ybe=b$.extend({method:M(`notifications/resources/updated`),params:vbe}),bbe=b({name:h(),description:S(h()),required:S(s())}),xbe=b({...F$.shape,...P$.shape,description:S(h()),arguments:S(O(bbe)),_meta:S(i({}))}),u1=H$.extend({method:M(`prompts/list`)}),Sbe=U$.extend({prompts:O(xbe)}),Cbe=g$.extend({name:h(),arguments:d(h(),h()).optional()}),d1=v$.extend({method:M(`prompts/get`),params:Cbe}),f1=b({type:M(`text`),text:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),p1=b({type:M(`image`),data:t1,mimeType:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),m1=b({type:M(`audio`),data:t1,mimeType:h(),annotations:i1.optional(),_meta:d(h(),D()).optional()}),wbe=b({type:M(`tool_use`),name:h(),id:h(),input:d(h(),D()),_meta:d(h(),D()).optional()}),Tbe=b({type:M(`resource`),resource:y([e1,n1]),annotations:i1.optional(),_meta:d(h(),D()).optional()}),h1=y([f1,p1,m1,a1.extend({type:M(`resource_link`)}),Tbe]),Ebe=b({role:r1,content:h1}),Dbe=x$.extend({description:h().optional(),messages:O(Ebe)}),Obe=b$.extend({method:M(`notifications/prompts/list_changed`),params:y$.optional()}),kbe=b({title:h().optional(),readOnlyHint:s().optional(),destructiveHint:s().optional(),idempotentHint:s().optional(),openWorldHint:s().optional()}),Abe=b({taskSupport:Re([`required`,`optional`,`forbidden`]).optional()}),g1=b({...F$.shape,...P$.shape,description:h().optional(),inputSchema:b({type:M(`object`),properties:d(h(),f$).optional(),required:O(h()).optional()}).catchall(D()),outputSchema:b({type:M(`object`),properties:d(h(),f$).optional(),required:O(h()).optional()}).catchall(D()).optional(),annotations:kbe.optional(),execution:Abe.optional(),_meta:d(h(),D()).optional()}),_1=H$.extend({method:M(`tools/list`)}),jbe=U$.extend({tools:O(g1)}),v1=x$.extend({content:O(h1).default([]),structuredContent:d(h(),D()).optional(),isError:s().optional()});v1.or(x$.extend({toolResult:D()}));const Mbe=_$.extend({name:h(),arguments:d(h(),D()).optional()}),y1=v$.extend({method:M(`tools/call`),params:Mbe}),Nbe=b$.extend({method:M(`notifications/tools/list_changed`),params:y$.optional()});b({autoRefresh:s().default(!0),debounceMs:j().int().nonnegative().default(300)});const b1=Re([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Pbe=g$.extend({level:b1}),x1=v$.extend({method:M(`logging/setLevel`),params:Pbe}),Fbe=y$.extend({level:b1,logger:h().optional(),data:D()}),Ibe=b$.extend({method:M(`notifications/message`),params:Fbe}),Lbe=b({hints:O(b({name:h().optional()})).optional(),costPriority:j().min(0).max(1).optional(),speedPriority:j().min(0).max(1).optional(),intelligencePriority:j().min(0).max(1).optional()}),Rbe=b({mode:Re([`auto`,`required`,`none`]).optional()}),zbe=b({type:M(`tool_result`),toolUseId:h().describe(`The unique identifier for the corresponding tool call.`),content:O(h1).default([]),structuredContent:b({}).loose().optional(),isError:s().optional(),_meta:d(h(),D()).optional()}),Bbe=re(`type`,[f1,p1,m1]),S1=re(`type`,[f1,p1,m1,wbe,zbe]),Vbe=b({role:r1,content:y([S1,O(S1)]),_meta:d(h(),D()).optional()}),Hbe=_$.extend({messages:O(Vbe),modelPreferences:Lbe.optional(),systemPrompt:h().optional(),includeContext:Re([`none`,`thisServer`,`allServers`]).optional(),temperature:j().optional(),maxTokens:j().int(),stopSequences:O(h()).optional(),metadata:f$.optional(),tools:O(g1).optional(),toolChoice:Rbe.optional()}),Ube=v$.extend({method:M(`sampling/createMessage`),params:Hbe}),C1=x$.extend({model:h(),stopReason:S(Re([`endTurn`,`stopSequence`,`maxTokens`]).or(h())),role:r1,content:Bbe}),w1=x$.extend({model:h(),stopReason:S(Re([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(h())),role:r1,content:y([S1,O(S1)])}),Wbe=b({type:M(`boolean`),title:h().optional(),description:h().optional(),default:s().optional()}),Gbe=b({type:M(`string`),title:h().optional(),description:h().optional(),minLength:j().optional(),maxLength:j().optional(),format:Re([`email`,`uri`,`date`,`date-time`]).optional(),default:h().optional()}),Kbe=b({type:Re([`number`,`integer`]),title:h().optional(),description:h().optional(),minimum:j().optional(),maximum:j().optional(),default:j().optional()}),qbe=b({type:M(`string`),title:h().optional(),description:h().optional(),enum:O(h()),default:h().optional()}),Jbe=b({type:M(`string`),title:h().optional(),description:h().optional(),oneOf:O(b({const:h(),title:h()})),default:h().optional()}),Ybe=y([y([b({type:M(`string`),title:h().optional(),description:h().optional(),enum:O(h()),enumNames:O(h()).optional(),default:h().optional()}),y([qbe,Jbe]),y([b({type:M(`array`),title:h().optional(),description:h().optional(),minItems:j().optional(),maxItems:j().optional(),items:b({type:M(`string`),enum:O(h())}),default:O(h()).optional()}),b({type:M(`array`),title:h().optional(),description:h().optional(),minItems:j().optional(),maxItems:j().optional(),items:b({anyOf:O(b({const:h(),title:h()}))}),default:O(h()).optional()})])]),Wbe,Gbe,Kbe]),Xbe=y([_$.extend({mode:M(`form`).optional(),message:h(),requestedSchema:b({type:M(`object`),properties:d(h(),Ybe),required:O(h()).optional()})}),_$.extend({mode:M(`url`),message:h(),elicitationId:h(),url:h().url()})]),Zbe=v$.extend({method:M(`elicitation/create`),params:Xbe}),Qbe=y$.extend({elicitationId:h()}),$be=b$.extend({method:M(`notifications/elicitation/complete`),params:Qbe}),T1=x$.extend({action:Re([`accept`,`decline`,`cancel`]),content:w(e=>e===null?void 0:e,d(h(),y([h(),j(),s(),O(h())])).optional())}),exe=b({type:M(`ref/resource`),uri:h()}),txe=b({type:M(`ref/prompt`),name:h()}),nxe=g$.extend({ref:y([txe,exe]),argument:b({name:h(),value:h()}),context:b({arguments:d(h(),h()).optional()}).optional()}),E1=v$.extend({method:M(`completion/complete`),params:nxe});function rxe(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function ixe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const axe=x$.extend({completion:i({values:O(h()).max(100),total:S(j().int()),hasMore:S(s())})}),oxe=b({uri:h().startsWith(`file://`),name:h().optional(),_meta:d(h(),D()).optional()}),sxe=v$.extend({method:M(`roots/list`),params:g$.optional()}),D1=x$.extend({roots:O(oxe)}),cxe=b$.extend({method:M(`notifications/roots/list_changed`),params:y$.optional()});y([B$,L$,E1,x1,d1,u1,o1,s1,l1,hbe,_be,y1,_1,q$,Y$,X$,Q$]),y([N$,V$,z$,cxe,K$]),y([M$,C1,w1,T1,D1,J$,Z$,G$]),y([B$,Ube,Zbe,sxe,q$,Y$,X$,Q$]),y([N$,V$,Ibe,ybe,pbe,Nbe,Obe,K$,$be]),y([M$,ebe,axe,Dbe,Sbe,lbe,ube,fbe,v1,jbe,J$,Z$,G$]);var O1=class e extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name=`McpError`}static fromError(t,n,r){if(t===O$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new lxe(e.elicitations,n)}return new e(t,n,r)}},lxe=class extends O1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(O$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function k1(e){return e===`completed`||e===`failed`||e===`cancelled`}const uxe=Symbol(`Let zodToJsonSchema decide on which parser to use`),A1={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,target:`jsonSchema7`,strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`,openAiAnyTypeName:`OpenAiAnyType`},dxe=e=>typeof e==`string`?{...A1,name:e}:{...A1,...e},fxe=e=>{let t=dxe(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}};function j1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function M1(e,t,n,r,i){e[t]=n,j1(e,t,r,i)}const N1=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function P1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?N1(t,e.currentPath):t.join(`/`)}}function pxe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Z.ZodAny&&(n.items=q1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&M1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&M1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(M1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),M1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function mxe(e,t){let n={type:`integer`,format:`int64`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`min`:t.target===`jsonSchema7`?r.inclusive?M1(n,`minimum`,r.value,r.message,t):M1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),M1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?M1(n,`maximum`,r.value,r.message,t):M1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),M1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:M1(n,`multipleOf`,r.value,r.message,t);break}return n}function hxe(){return{type:`boolean`}}function F1(e,t){return q1(e.type._def,t)}const gxe=(e,t)=>q1(e.innerType._def,t);function I1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>I1(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return _xe(e,t)}}const _xe=(e,t)=>{let n={type:`integer`,format:`unix-time`};if(t.target===`openApi3`)return n;for(let r of e.checks)switch(r.kind){case`min`:M1(n,`minimum`,r.value,r.message,t);break;case`max`:M1(n,`maximum`,r.value,r.message,t);break}return n};function vxe(e,t){return{...q1(e.innerType._def,t),default:e.defaultValue()}}function yxe(e,t){return t.effectStrategy===`input`?q1(e.schema._def,t):P1(t)}function bxe(e){return{type:`string`,enum:Array.from(e.values)}}const xxe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function Sxe(e,t){let n=[q1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),q1(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=t.target===`jsonSchema2019-09`?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(e=>{if(xxe(e))i.push(...e.allOf),e.unevaluatedProperties===void 0&&(r=void 0);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}else r=void 0;i.push(t)}}),i.length?{allOf:i,...r}:void 0}function Cxe(e,t){let n=typeof e.value;return n!==`bigint`&&n!==`number`&&n!==`boolean`&&n!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:t.target===`openApi3`?{type:n===`bigint`?`integer`:n,enum:[e.value]}:{type:n===`bigint`?`integer`:n,const:e.value}}let L1;const R1={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(L1===void 0&&(L1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),L1),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function z1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:M1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:M1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`email`:switch(t.emailStrategy){case`format:email`:V1(n,`email`,r.message,t);break;case`format:idn-email`:V1(n,`idn-email`,r.message,t);break;case`pattern:zod`:H1(n,R1.email,r.message,t);break}break;case`url`:V1(n,`uri`,r.message,t);break;case`uuid`:V1(n,`uuid`,r.message,t);break;case`regex`:H1(n,r.regex,r.message,t);break;case`cuid`:H1(n,R1.cuid,r.message,t);break;case`cuid2`:H1(n,R1.cuid2,r.message,t);break;case`startsWith`:H1(n,RegExp(`^${B1(r.value,t)}`),r.message,t);break;case`endsWith`:H1(n,RegExp(`${B1(r.value,t)}$`),r.message,t);break;case`datetime`:V1(n,`date-time`,r.message,t);break;case`date`:V1(n,`date`,r.message,t);break;case`time`:V1(n,`time`,r.message,t);break;case`duration`:V1(n,`duration`,r.message,t);break;case`length`:M1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),M1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:H1(n,RegExp(B1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&V1(n,`ipv4`,r.message,t),r.version!==`v4`&&V1(n,`ipv6`,r.message,t);break;case`base64url`:H1(n,R1.base64url,r.message,t);break;case`jwt`:H1(n,R1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&H1(n,R1.ipv4Cidr,r.message,t),r.version!==`v4`&&H1(n,R1.ipv6Cidr,r.message,t);break;case`emoji`:H1(n,R1.emoji(),r.message,t);break;case`ulid`:H1(n,R1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:V1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:M1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:H1(n,R1.base64,r.message,t);break}break;case`nanoid`:H1(n,R1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function B1(e,t){return t.patternStrategy===`escape`?Txe(e):e}const wxe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function Txe(e){let t=``;for(let n=0;n<e.length;n++)wxe.has(e[n])||(t+=`\\`),t+=e[n];return t}function V1(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):M1(e,`format`,t,n,r)}function H1(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:U1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):M1(e,`pattern`,U1(t,r),n,r)}function U1(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
1180
1180
  ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
1181
1181
  ]))`;continue}}if(n.s&&r[e]===`.`){i+=o?`${r[e]}\r\n`:`[${r[e]}\r\n]`;continue}i+=r[e],r[e]===`\\`?a=!0:o&&r[e]===`]`?o=!1:!o&&r[e]===`[`&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function W1(e,t){if(t.target===`openAi`&&console.warn(`Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.`),t.target===`openApi3`&&e.keyType?._def.typeName===Z.ZodEnum)return{type:`object`,required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,r)=>({...n,[r]:q1(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??P1(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:`object`,additionalProperties:q1(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(t.target===`openApi3`)return n;if(e.keyType?._def.typeName===Z.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=z1(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===Z.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===Z.ZodBranded&&e.keyType._def.type._def.typeName===Z.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=F1(e.keyType._def,t);return{...n,propertyNames:i}}return n}function Exe(e,t){return t.mapStrategy===`record`?W1(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[q1(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||P1(t),q1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||P1(t)],minItems:2,maxItems:2}}}function Dxe(e){let t=e.values,n=Object.keys(e.values).filter(e=>typeof t[t[e]]!=`number`).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:r.length===1?r[0]===`string`?`string`:`number`:[`string`,`number`],enum:n}}function Oxe(e){return e.target===`openAi`?void 0:{not:P1({...e,currentPath:[...e.currentPath,`not`]})}}function kxe(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}const G1={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function Axe(e,t){if(t.target===`openApi3`)return K1(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in G1&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=G1[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}else if(n.every(e=>e._def.typeName===`ZodLiteral`&&!e.description)){let e=n.reduce((e,t)=>{let n=typeof t._def.value;switch(n){case`string`:case`number`:case`boolean`:return[...e,n];case`bigint`:return[...e,`integer`];case`object`:if(t._def.value===null)return[...e,`null`];default:return e}},[]);if(e.length===n.length){let t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>e._def.typeName===`ZodEnum`))return{type:`string`,enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return K1(e,t)}const K1=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>q1(e._def,{...t,currentPath:[...t.currentPath,`anyOf`,`${n}`]})).filter(e=>!!e&&(!t.strictUnions||typeof e==`object`&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0};function jxe(e,t){if([`ZodString`,`ZodNumber`,`ZodBigInt`,`ZodBoolean`,`ZodNull`].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target===`openApi3`?{type:G1[e.innerType._def.typeName],nullable:!0}:{type:[G1[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let n=q1(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&`$ref`in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let n=q1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function Mxe(e,t){let n={type:`number`};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case`int`:n.type=`integer`,j1(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?M1(n,`minimum`,r.value,r.message,t):M1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),M1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?M1(n,`maximum`,r.value,r.message,t):M1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),M1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:M1(n,`multipleOf`,r.value,r.message,t);break}return n}function Nxe(e,t){let n=t.target===`openAi`,r={type:`object`,properties:{}},i=[],a=e.shape();for(let e in a){let o=a[e];if(o===void 0||o._def===void 0)continue;let s=Fxe(o);s&&n&&(o._def.typeName===`ZodOptional`&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),s=!1);let c=q1(o._def,{...t,currentPath:[...t.currentPath,`properties`,e],propertyPath:[...t.currentPath,`properties`,e]});c!==void 0&&(r.properties[e]=c,s||i.push(e))}i.length&&(r.required=i);let o=Pxe(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Pxe(e,t){if(e.catchall._def.typeName!==`ZodNever`)return q1(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]});switch(e.unknownKeys){case`passthrough`:return t.allowedAdditionalProperties;case`strict`:return t.rejectedAdditionalProperties;case`strip`:return t.removeAdditionalStrategy===`strict`?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function Fxe(e){try{return e.isOptional()}catch{return!0}}const Ixe=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return q1(e.innerType._def,t);let n=q1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:P1(t)},n]}:P1(t)},Lxe=(e,t)=>{if(t.pipeStrategy===`input`)return q1(e.in._def,t);if(t.pipeStrategy===`output`)return q1(e.out._def,t);let n=q1(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,q1(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function Rxe(e,t){return q1(e.type._def,t)}function zxe(e,t){let n={type:`array`,uniqueItems:!0,items:q1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&M1(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&M1(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function Bxe(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>q1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:q1(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>q1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function Vxe(e){return{not:P1(e)}}function Hxe(e){return P1(e)}const Uxe=(e,t)=>q1(e.innerType._def,t),Wxe=(e,t,n)=>{switch(t){case Z.ZodString:return z1(e,n);case Z.ZodNumber:return Mxe(e,n);case Z.ZodObject:return Nxe(e,n);case Z.ZodBigInt:return mxe(e,n);case Z.ZodBoolean:return hxe();case Z.ZodDate:return I1(e,n);case Z.ZodUndefined:return Vxe(n);case Z.ZodNull:return kxe(n);case Z.ZodArray:return pxe(e,n);case Z.ZodUnion:case Z.ZodDiscriminatedUnion:return Axe(e,n);case Z.ZodIntersection:return Sxe(e,n);case Z.ZodTuple:return Bxe(e,n);case Z.ZodRecord:return W1(e,n);case Z.ZodLiteral:return Cxe(e,n);case Z.ZodEnum:return bxe(e);case Z.ZodNativeEnum:return Dxe(e);case Z.ZodNullable:return jxe(e,n);case Z.ZodOptional:return Ixe(e,n);case Z.ZodMap:return Exe(e,n);case Z.ZodSet:return zxe(e,n);case Z.ZodLazy:return()=>e.getter()._def;case Z.ZodPromise:return Rxe(e,n);case Z.ZodNaN:case Z.ZodNever:return Oxe(n);case Z.ZodEffects:return yxe(e,n);case Z.ZodAny:return P1(n);case Z.ZodUnknown:return Hxe(n);case Z.ZodDefault:return vxe(e,n);case Z.ZodBranded:return F1(e,n);case Z.ZodReadonly:return Uxe(e,n);case Z.ZodCatch:return gxe(e,n);case Z.ZodPipeline:return Lxe(e,n);case Z.ZodFunction:case Z.ZodVoid:case Z.ZodSymbol:return;default:return(e=>void 0)(t)}};function q1(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==uxe)return i}if(r&&!n){let e=Gxe(r,t);if(e!==void 0)return e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let a=Wxe(e,e.typeName,t),o=typeof a==`function`?q1(a(),t):a;if(o&&Kxe(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}const Gxe=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:N1(t.currentPath,e.path)};case`none`:case`seen`:return e.path.length<t.currentPath.length&&e.path.every((e,n)=>t.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join(`/`)}! Defaulting to any`),P1(t)):t.$refStrategy===`seen`?P1(t):void 0}},Kxe=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),qxe=(e,t)=>{let n=fxe(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:q1(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??P1(n)}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=q1(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??P1(n),o=typeof t==`object`&&t.name!==void 0&&t.nameStrategy===`title`?t.name:void 0;o!==void 0&&(a.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||={},r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:[`string`,`number`,`integer`,`boolean`,`array`,`null`],items:{$ref:n.$refStrategy===`relative`?`1`:[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join(`/`)}}));let s=i===void 0?r?{...a,[n.definitionPath]:r}:a:{$ref:[...n.$refStrategy===`relative`?[]:n.basePath,n.definitionPath,i].join(`/`),[n.definitionPath]:{...r,[i]:a}};return n.target===`jsonSchema7`?s.$schema=`http://json-schema.org/draft-07/schema#`:(n.target===`jsonSchema2019-09`||n.target===`openAi`)&&(s.$schema=`https://json-schema.org/draft/2019-09/schema#`),n.target===`openAi`&&(`anyOf`in s||`oneOf`in s||`allOf`in s||`type`in s&&Array.isArray(s.type))&&console.warn(`Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.`),s};function Jxe(e){return!e||e===`jsonSchema7`||e===`draft-7`?`draft-7`:e===`jsonSchema2019-09`||e===`draft-2020-12`?`draft-2020-12`:`draft-7`}function J1(e,t){return t$(e)?p(e,{target:Jxe(t?.target),io:t?.pipeStrategy??`input`}):qxe(e,{strictUnions:t?.strictUnions??!0,pipeStrategy:t?.pipeStrategy??`input`})}function Y1(e){let t=a$(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=c$(t);if(typeof n!=`string`)throw Error(`Schema method literal must be a string`);return n}function X1(e,t){let n=r$(e,t);if(!n.success)throw n.error;return n.data}var Yxe=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(N$,e=>{this._oncancel(e)}),this.setNotificationHandler(V$,e=>{this._onprogress(e)}),this.setRequestHandler(B$,e=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(q$,async(e,t)=>{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new O1(O$.InvalidParams,`Failed to retrieve task: Task not found`);return{...n}}),this.setRequestHandler(Y$,async(e,t)=>{let n=async()=>{let r=e.params.taskId;if(this._taskMessageQueue){let e;for(;e=await this._taskMessageQueue.dequeue(r,t.sessionId);){if(e.type===`response`||e.type===`error`){let t=e.message,n=t.id,r=this._requestResolvers.get(n);if(r)if(this._requestResolvers.delete(n),e.type===`response`)r(t);else{let e=t;r(new O1(e.error.code,e.error.message,e.error.data))}else{let t=e.type===`response`?`Response`:`Error`;this._onerror(Error(`${t} handler missing for request ${n}`))}continue}await this._transport?.send(e.message,{relatedRequestId:t.requestId})}}let i=await this._taskStore.getTask(r,t.sessionId);if(!i)throw new O1(O$.InvalidParams,`Task not found: ${r}`);if(!k1(i.status))return await this._waitForTaskUpdate(r,t.signal),await n();if(k1(i.status)){let e=await this._taskStore.getTaskResult(r,t.sessionId);return this._clearTaskQueue(r),{...e,_meta:{...e._meta,[d$]:{taskId:r}}}}return await n()};return await n()}),this.setRequestHandler(X$,async(e,t)=>{try{let{tasks:n,nextCursor:r}=await this._taskStore.listTasks(e.params?.cursor,t.sessionId);return{tasks:n,nextCursor:r,_meta:{}}}catch(e){throw new O1(O$.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}),this.setRequestHandler(Q$,async(e,t)=>{try{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new O1(O$.InvalidParams,`Task not found: ${e.params.taskId}`);if(k1(n.status))throw new O1(O$.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(e.params.taskId,`cancelled`,`Client cancelled task execution.`,t.sessionId),this._clearTaskQueue(e.params.taskId);let r=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!r)throw new O1(O$.InvalidParams,`Task not found after cancellation: ${e.params.taskId}`);return{_meta:{},...r}}catch(e){throw e instanceof O1?e:new O1(O$.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}))}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),O1.fromError(O$.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw Error(`Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.`);this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{t?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),D$(e)||A$(e)?this._onresponse(e):w$(e)?this._onrequest(e,t):Kye(e)?this._onnotification(e):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();for(let e of this._requestHandlerAbortControllers.values())e.abort();this._requestHandlerAbortControllers.clear();let t=O1.fromError(O$.ConnectionClosed,`Connection closed`);this._transport=void 0,this.onclose?.();for(let n of e.values())n(t)}_onerror(e){this.onerror?.(e)}_onnotification(e){let t=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,r=this._transport,i=e.params?._meta?.[d$]?.taskId;if(n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:O$.MethodNotFound,message:`Method not found`}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:`error`,message:t,timestamp:Date.now()},r?.sessionId).catch(e=>this._onerror(Error(`Failed to enqueue error response: ${e}`))):r?.send(t).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=Gye(e.params)?e.params.task:void 0,s=this._taskStore?this.requestTaskStore(e,r?.sessionId):void 0,c={signal:a.signal,sessionId:r?.sessionId,_meta:e.params?._meta,sendNotification:async t=>{if(a.signal.aborted)return;let n={relatedRequestId:e.id};i&&(n.relatedTask={taskId:i}),await this.notification(t,n)},sendRequest:async(t,n,r)=>{if(a.signal.aborted)throw new O1(O$.ConnectionClosed,`Request was cancelled`);let o={...r,relatedRequestId:e.id};i&&!o.relatedTask&&(o.relatedTask={taskId:i});let c=o.relatedTask?.taskId??i;return c&&s&&await s.updateTaskStatus(c,`input_required`),await this.request(t,n,o)},authInfo:t?.authInfo,requestId:e.id,requestInfo:t?.requestInfo,taskId:i,taskStore:s,taskRequestedTtl:o?.ttl,closeSSEStream:t?.closeSSEStream,closeStandaloneSSEStream:t?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,c)).then(async t=>{if(a.signal.aborted)return;let n={result:t,jsonrpc:`2.0`,id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`response`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)},async t=>{if(a.signal.aborted)return;let n={jsonrpc:`2.0`,id:e.id,error:{code:Number.isSafeInteger(t.code)?t.code:O$.InternalError,message:t.message??`Internal error`,...t.data!==void 0&&{data:t.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`error`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);if(n){this._requestResolvers.delete(t),D$(e)?n(e):n(new O1(e.error.code,e.error.message,e.error.data));return}let r=this._responseHandlers.get(t);if(r===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t);let i=!1;if(D$(e)&&e.result&&typeof e.result==`object`){let n=e.result;if(n.task&&typeof n.task==`object`){let e=n.task;typeof e.taskId==`string`&&(i=!0,this._taskProgressTokens.set(e.taskId,t))}}i||this._progressHandlers.delete(t),D$(e)?r(e):r(O1.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,t,n){let{task:r}=n??{};if(!r){try{yield{type:`result`,result:await this.request(e,t,n)}}catch(e){yield{type:`error`,error:e instanceof O1?e:new O1(O$.InternalError,String(e))}}return}let i;try{let r=await this.request(e,G$,n);if(r.task)i=r.task.taskId,yield{type:`taskCreated`,task:r.task};else throw new O1(O$.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:i},n);if(yield{type:`taskStatus`,task:e},k1(e.status)){e.status===`completed`?yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)}:e.status===`failed`?yield{type:`error`,error:new O1(O$.InternalError,`Task ${i} failed`)}:e.status===`cancelled`&&(yield{type:`error`,error:new O1(O$.InternalError,`Task ${i} was cancelled`)});return}if(e.status===`input_required`){yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)};return}let r=e.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(e=>setTimeout(e,r)),n?.signal?.throwIfAborted()}}catch(e){yield{type:`error`,error:e instanceof O1?e:new O1(O$.InternalError,String(e))}}}request(e,t,n){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:s}=n??{};return new Promise((c,l)=>{let u=e=>{l(e)};if(!this._transport){u(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(e){u(e);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,f={...e,jsonrpc:`2.0`,id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(f.params={...f.params,task:o}),s&&(f.params={...f.params,_meta:{...f.params?._meta||{},[d$]:s}});let p=e=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:d,reason:String(e)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))),l(e instanceof O1?e:new O1(O$.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=r$(t,e.result);n.success?c(n.data):l(n.error)}catch(e){l(e)}}}),n?.signal?.addEventListener(`abort`,()=>{p(n?.signal?.reason)});let m=n?.timeout??6e4;this._setupTimeout(d,m,n?.maxTotalTimeout,()=>p(O1.fromError(O$.RequestTimeout,`Request timed out`,{timeout:m})),n?.resetTimeoutOnProgress??!1);let h=s?.taskId;h?(this._requestResolvers.set(d,e=>{let t=this._responseHandlers.get(d);t?t(e):this._onerror(Error(`Response handler missing for side-channeled request ${d}`))}),this._enqueueTaskMessage(h,{type:`request`,message:f,timestamp:Date.now()}).catch(e=>{this._cleanupTimeout(d),l(e)})):this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>{this._cleanupTimeout(d),l(e)})})}async getTask(e,t){return this.request({method:`tasks/get`,params:e},J$,t)}async getTaskResult(e,t,n){return this.request({method:`tasks/result`,params:e},t,n)}async listTasks(e,t){return this.request({method:`tasks/list`,params:e},Z$,t)}async cancelTask(e,t){return this.request({method:`tasks/cancel`,params:e},sbe,t)}async notification(e,t){if(!this._transport)throw Error(`Not connected`);this.assertNotificationCapability(e.method);let n=t?.relatedTask?.taskId;if(n){let r={...e,jsonrpc:`2.0`,params:{...e.params,_meta:{...e.params?._meta||{},[d$]:t.relatedTask}}};await this._enqueueTaskMessage(n,{type:`notification`,message:r,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!t?.relatedRequestId&&!t?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let n={...e,jsonrpc:`2.0`};t?.relatedTask&&(n={...n,params:{...n.params,_meta:{...n.params?._meta||{},[d$]:t.relatedTask}}}),this._transport?.send(n,t).catch(e=>this._onerror(e))});return}let r={...e,jsonrpc:`2.0`};t?.relatedTask&&(r={...r,params:{...r.params,_meta:{...r.params?._meta||{},[d$]:t.relatedTask}}}),await this._transport.send(r,t)}setRequestHandler(e,t){let n=Y1(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(n,r)=>{let i=X1(e,n);return Promise.resolve(t(i,r))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=Y1(e);this._notificationHandlers.set(n,n=>{let r=X1(e,n);return Promise.resolve(t(r))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._progressHandlers.delete(t),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,t,n){if(!this._taskStore||!this._taskMessageQueue)throw Error(`Cannot enqueue task message: taskStore and taskMessageQueue are not configured`);let r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,t,n,r)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let t of n)if(t.type===`request`&&w$(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new O1(O$.InternalError,`Task cancelled or completed`)),this._requestResolvers.delete(n)):this._onerror(Error(`Resolver missing for request ${n} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){let n=this._options?.defaultTaskPollInterval??1e3;try{let t=await this._taskStore?.getTask(e);t?.pollInterval&&(n=t.pollInterval)}catch{}return new Promise((e,r)=>{if(t.aborted){r(new O1(O$.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new O1(O$.InvalidRequest,`Request cancelled`))},{once:!0})})}requestTaskStore(e,t){let n=this._taskStore;if(!n)throw Error(`No task store configured`);return{createTask:async r=>{if(!e)throw Error(`No request provided`);return await n.createTask(r,e.id,{method:e.method,params:e.params},t)},getTask:async e=>{let r=await n.getTask(e,t);if(!r)throw new O1(O$.InvalidParams,`Failed to retrieve task: Task not found`);return r},storeTaskResult:async(e,r,i)=>{await n.storeTaskResult(e,r,i,t);let a=await n.getTask(e,t);if(a){let t=K$.parse({method:`notifications/tasks/status`,params:a});await this.notification(t),k1(a.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>n.getTaskResult(e,t),updateTaskStatus:async(e,r,i)=>{let a=await n.getTask(e,t);if(!a)throw new O1(O$.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(k1(a.status))throw new O1(O$.InvalidParams,`Cannot update task "${e}" from terminal status "${a.status}" to "${r}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(e,r,i,t);let o=await n.getTask(e,t);if(o){let t=K$.parse({method:`notifications/tasks/status`,params:o});await this.notification(t),k1(o.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}};function Z1(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Xxe(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];Z1(a)&&Z1(i)?n[r]={...a,...i}:n[r]=i}return n}var Zxe=t(aa(),1),Qxe=t(co(),1);function $xe(){let e=new Zxe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Qxe.default)(e),e}var eSe=class{constructor(e){this._ajv=e??$xe()}getValidator(e){let t=`$id`in e&&typeof e.$id==`string`?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return e=>t(e)?{valid:!0,data:e,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(t.errors)}}},tSe=class{constructor(e){this._server=e}requestStream(e,t,n){return this._server.requestStream(e,t,n)}createMessageStream(e,t){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.sampling?.tools)throw Error(`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages[e.messages.length-1],n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return this.requestStream({method:`sampling/createMessage`,params:e},C1,t)}elicitInputStream(e,t){let n=this._server.getClientCapabilities(),r=e.mode??`form`;switch(r){case`url`:if(!n?.elicitation?.url)throw Error(`Client does not support url elicitation.`);break;case`form`:if(!n?.elicitation?.form)throw Error(`Client does not support form elicitation.`);break}let i=r===`form`&&e.mode===void 0?{...e,mode:`form`}:e;return this.requestStream({method:`elicitation/create`,params:i},T1,t)}async getTask(e,t){return this._server.getTask({taskId:e},t)}async getTaskResult(e,t,n){return this._server.getTaskResult({taskId:e},t,n)}async listTasks(e,t){return this._server.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._server.cancelTask({taskId:e},t)}};function nSe(e,t,n){if(!e)throw Error(`${n} does not support task creation (required for ${t})`);switch(t){case`tools/call`:if(!e.tools?.call)throw Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function rSe(e,t,n){if(!e)throw Error(`${n} does not support task creation (required for ${t})`);switch(t){case`sampling/createMessage`:if(!e.sampling?.createMessage)throw Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case`elicitation/create`:if(!e.elicitation?.create)throw Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var iSe=class extends Yxe{constructor(e,t){super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(b1.options.map((e,t)=>[e,t])),this.isMessageIgnored=(e,t)=>{let n=this._loggingLevels.get(t);return n?this.LOG_LEVEL_SEVERITY.get(e)<this.LOG_LEVEL_SEVERITY.get(n):!1},this._capabilities=t?.capabilities??{},this._instructions=t?.instructions,this._jsonSchemaValidator=t?.jsonSchemaValidator??new eSe,this.setRequestHandler(L$,e=>this._oninitialize(e)),this.setNotificationHandler(z$,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(x1,async(e,t)=>{let n=t.sessionId||t.requestInfo?.headers[`mcp-session-id`]||void 0,{level:r}=e.params,i=b1.safeParse(r);return i.success&&this._loggingLevels.set(n,i.data),{}})}get experimental(){return this._experimental||={tasks:new tSe(this)},this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=Xxe(this._capabilities,e)}setRequestHandler(e,t){let n=a$(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(t$(n)){let e=n;r=e._zod?.def?.value??e.value}else{let e=n;r=e._def?.value??e.value}if(typeof r!=`string`)throw Error(`Schema method literal must be a string`);return r===`tools/call`?super.setRequestHandler(e,async(e,n)=>{let r=r$(y1,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new O1(O$.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=r$(G$,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new O1(O$.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=r$(v1,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new O1(O$.InvalidParams,`Invalid tools/call result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${e})`);break;case`elicitation/create`:if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${e})`);break;case`roots/list`:if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${e})`);break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/message`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`notifications/resources/updated`:case`notifications/resources/list_changed`:if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${e})`);break;case`notifications/tools/list_changed`:if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case`notifications/prompts/list_changed`:if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case`notifications/elicitation/complete`:if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${e})`);break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case`completion/complete`:if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${e})`);break;case`logging/setLevel`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`tasks/get`:case`tasks/list`:case`tasks/result`:case`tasks/cancel`:if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${e})`);break;case`ping`:case`initialize`:break}}assertTaskCapability(e){rSe(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){this._capabilities&&nSe(this._capabilities.tasks?.requests,e,`Server`)}async _oninitialize(e){let t=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:u$.includes(t)?t:l$,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:`ping`},M$)}async createMessage(e,t){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw Error(`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages[e.messages.length-1],n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return e.tools?this.request({method:`sampling/createMessage`,params:e},w1,t):this.request({method:`sampling/createMessage`,params:e},C1,t)}async elicitInput(e,t){switch(e.mode??`form`){case`url`:{if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support url elicitation.`);let n=e;return this.request({method:`elicitation/create`,params:n},T1,t)}case`form`:{if(!this._clientCapabilities?.elicitation?.form)throw Error(`Client does not support form elicitation.`);let n=e.mode===`form`?e:{...e,mode:`form`},r=await this.request({method:`elicitation/create`,params:n},T1,t);if(r.action===`accept`&&r.content&&n.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(n.requestedSchema)(r.content);if(!e.valid)throw new O1(O$.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof O1?e:new O1(O$.InternalError,`Error validating elicitation response: ${e instanceof Error?e.message:String(e)}`)}return r}}}createElicitationCompletionNotifier(e,t){if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for notifications/elicitation/complete)`);return()=>this.notification({method:`notifications/elicitation/complete`,params:{elicitationId:e}},t)}async listRoots(e,t){return this.request({method:`roots/list`,params:e},D1,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}async sendResourceListChanged(){return this.notification({method:`notifications/resources/list_changed`})}async sendToolListChanged(){return this.notification({method:`notifications/tools/list_changed`})}async sendPromptListChanged(){return this.notification({method:`notifications/prompts/list_changed`})}};const Q1=Symbol.for(`mcp.completable`);function $1(e){return!!e&&typeof e==`object`&&Q1 in e}function aSe(e){return e[Q1]?.complete}var oSe;(function(e){e.Completable=`McpCompletable`})(oSe||={});const sSe=/^[A-Za-z0-9._-]{1,128}$/;function cSe(e){let t=[];if(e.length===0)return{isValid:!1,warnings:[`Tool name cannot be empty`]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(` `)&&t.push(`Tool name contains spaces, which may cause parsing issues`),e.includes(`,`)&&t.push(`Tool name contains commas, which may cause parsing issues`),(e.startsWith(`-`)||e.endsWith(`-`))&&t.push(`Tool name starts or ends with a dash, which may cause parsing issues in some contexts`),(e.startsWith(`.`)||e.endsWith(`.`))&&t.push(`Tool name starts or ends with a dot, which may cause parsing issues in some contexts`),!sSe.test(e)){let n=e.split(``).filter(e=>!/[A-Za-z0-9._-]/.test(e)).filter((e,t,n)=>n.indexOf(e)===t);return t.push(`Tool name contains invalid characters: ${n.map(e=>`"${e}"`).join(`, `)}`,`Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)`),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function lSe(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let e of t)console.warn(` - ${e}`);console.warn(`Tool registration will proceed, but this may cause compatibility issues.`),console.warn(`Consider updating the tool name to conform to the MCP tool naming standard.`),console.warn(`See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.`)}}function e0(e){let t=cSe(e);return lSe(e,t.warnings),t.isValid}var uSe=class{constructor(e){this._mcpServer=e}registerToolTask(e,t,n){let r={taskSupport:`required`,...t.execution};if(r.taskSupport===`forbidden`)throw Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,t.title,t.description,t.inputSchema,t.outputSchema,t.annotations,r,t._meta,n)}},t0=class{constructor(e,t){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new iSe(e,t)}get experimental(){return this._experimental||={tasks:new uSe(this)},this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||=(this.server.assertCanSetRequestHandler(o0(_1)),this.server.assertCanSetRequestHandler(o0(y1)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(_1,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:(()=>{let e=o$(t.inputSchema);return e?J1(e,{strictUnions:!0,pipeStrategy:`input`}):dSe})(),annotations:t.annotations,execution:t.execution,_meta:t._meta};if(t.outputSchema){let e=o$(t.outputSchema);e&&(n.outputSchema=J1(e,{strictUnions:!0,pipeStrategy:`output`}))}return n})})),this.server.setRequestHandler(y1,async(e,t)=>{try{let n=this._registeredTools[e.params.name];if(!n)throw new O1(O$.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new O1(O$.InvalidParams,`Tool ${e.params.name} disabled`);let r=!!e.params.task,i=n.execution?.taskSupport,a=`createTask`in n.handler;if((i===`required`||i===`optional`)&&!a)throw new O1(O$.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i===`required`&&!r)throw new O1(O$.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(i===`optional`&&!r&&a)return await this.handleAutomaticTaskPolling(n,e,t);let o=await this.validateToolInput(n,e.params.arguments,e.params.name),s=await this.executeToolHandler(n,o,t);return r||await this.validateToolOutput(n,s,e.params.name),s}catch(e){if(e instanceof O1&&e.code===O$.UrlElicitationRequired)throw e;return this.createToolError(e instanceof Error?e.message:String(e))}}),!0)}createToolError(e){return{content:[{type:`text`,text:e}],isError:!0}}async validateToolInput(e,t,n){if(!e.inputSchema)return;let r=await i$(o$(e.inputSchema)??e.inputSchema,t);if(!r.success){let e=s$(`error`in r?r.error:`Unknown error`);throw new O1(O$.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${e}`)}return r.data}async validateToolOutput(e,t,n){if(!e.outputSchema||!(`content`in t)||t.isError)return;if(!t.structuredContent)throw new O1(O$.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let r=await i$(o$(e.outputSchema),t.structuredContent);if(!r.success){let e=s$(`error`in r?r.error:`Unknown error`);throw new O1(O$.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${e}`)}}async executeToolHandler(e,t,n){let r=e.handler;if(`createTask`in r){if(!n.taskStore)throw Error(`No task store provided.`);let i={...n,taskStore:n.taskStore};if(e.inputSchema){let e=r;return await Promise.resolve(e.createTask(t,i))}else{let e=r;return await Promise.resolve(e.createTask(i))}}if(e.inputSchema){let e=r;return await Promise.resolve(e(t,n))}else{let e=r;return await Promise.resolve(e(n))}}async handleAutomaticTaskPolling(e,t,n){if(!n.taskStore)throw Error(`No task store provided for task-capable tool.`);let r=await this.validateToolInput(e,t.params.arguments,t.params.name),i=e.handler,a={...n,taskStore:n.taskStore},o=r?await Promise.resolve(i.createTask(r,a)):await Promise.resolve(i.createTask(a)),s=o.task.taskId,c=o.task,l=c.pollInterval??5e3;for(;c.status!==`completed`&&c.status!==`failed`&&c.status!==`cancelled`;){await new Promise(e=>setTimeout(e,l));let e=await n.taskStore.getTask(s);if(!e)throw new O1(O$.InternalError,`Task ${s} not found during polling`);c=e}return await n.taskStore.getTaskResult(s)}setCompletionRequestHandler(){this._completionHandlerInitialized||=(this.server.assertCanSetRequestHandler(o0(E1)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(E1,async e=>{switch(e.params.ref.type){case`ref/prompt`:return rxe(e),this.handlePromptCompletion(e,e.params.ref);case`ref/resource`:return ixe(e),this.handleResourceCompletion(e,e.params.ref);default:throw new O1(O$.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new O1(O$.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new O1(O$.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return c0;let r=a$(n.argsSchema)?.[e.params.argument.name];if(!$1(r))return c0;let i=aSe(r);return i?s0(await i(e.params.argument.value,e.params.context)):c0}async handleResourceCompletion(e,t){let n=Object.values(this._registeredResourceTemplates).find(e=>e.resourceTemplate.uriTemplate.toString()===t.uri);if(!n){if(this._registeredResources[t.uri])return c0;throw new O1(O$.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let r=n.resourceTemplate.completeCallback(e.params.argument.name);return r?s0(await r(e.params.argument.value,e.params.context)):c0}setResourceRequestHandlers(){this._resourceHandlersInitialized||=(this.server.assertCanSetRequestHandler(o0(o1)),this.server.assertCanSetRequestHandler(o0(s1)),this.server.assertCanSetRequestHandler(o0(l1)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(o1,async(e,t)=>{let n=Object.entries(this._registeredResources).filter(([e,t])=>t.enabled).map(([e,t])=>({uri:e,name:t.name,...t.metadata})),r=[];for(let e of Object.values(this._registeredResourceTemplates)){if(!e.resourceTemplate.listCallback)continue;let n=await e.resourceTemplate.listCallback(t);for(let t of n.resources)r.push({...e.metadata,...t})}return{resources:[...n,...r]}}),this.server.setRequestHandler(s1,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([e,t])=>({name:e,uriTemplate:t.resourceTemplate.uriTemplate.toString(),...t.metadata}))})),this.server.setRequestHandler(l1,async(e,t)=>{let n=new URL(e.params.uri),r=this._registeredResources[n.toString()];if(r){if(!r.enabled)throw new O1(O$.InvalidParams,`Resource ${n} disabled`);return r.readCallback(n,t)}for(let e of Object.values(this._registeredResourceTemplates)){let r=e.resourceTemplate.uriTemplate.match(n.toString());if(r)return e.readCallback(n,r,t)}throw new O1(O$.InvalidParams,`Resource ${n} not found`)}),!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||=(this.server.assertCanSetRequestHandler(o0(u1)),this.server.assertCanSetRequestHandler(o0(d1)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(u1,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?fSe(t.argsSchema):void 0}))})),this.server.setRequestHandler(d1,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new O1(O$.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new O1(O$.InvalidParams,`Prompt ${e.params.name} disabled`);if(n.argsSchema){let r=await i$(o$(n.argsSchema),e.params.arguments);if(!r.success){let t=s$(`error`in r?r.error:`Unknown error`);throw new O1(O$.InvalidParams,`Invalid arguments for prompt ${e.params.name}: ${t}`)}let i=r.data,a=n.callback;return await Promise.resolve(a(i,t))}else{let e=n.callback;return await Promise.resolve(e(t))}}),!0)}resource(e,t,...n){let r;typeof n[0]==`object`&&(r=n.shift());let i=n[0];if(typeof t==`string`){if(this._registeredResources[t])throw Error(`Resource ${t} is already registered`);let n=this._createRegisteredResource(e,void 0,t,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),n}else{if(this._registeredResourceTemplates[e])throw Error(`Resource template ${e} is already registered`);let n=this._createRegisteredResourceTemplate(e,void 0,t,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),n}}registerResource(e,t,n,r){if(typeof t==`string`){if(this._registeredResources[t])throw Error(`Resource ${t} is already registered`);let i=this._createRegisteredResource(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}else{if(this._registeredResourceTemplates[e])throw Error(`Resource template ${e} is already registered`);let i=this._createRegisteredResourceTemplate(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(e,t,n,r,i){let a={name:e,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({uri:null}),update:e=>{e.uri!==void 0&&e.uri!==n&&(delete this._registeredResources[n],e.uri&&(this._registeredResources[e.uri]=a)),e.name!==void 0&&(a.name=e.name),e.title!==void 0&&(a.title=e.title),e.metadata!==void 0&&(a.metadata=e.metadata),e.callback!==void 0&&(a.readCallback=e.callback),e.enabled!==void 0&&(a.enabled=e.enabled),this.sendResourceListChanged()}};return this._registeredResources[n]=a,a}_createRegisteredResourceTemplate(e,t,n,r,i){let a={resourceTemplate:n,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredResourceTemplates[e],t.name&&(this._registeredResourceTemplates[t.name]=a)),t.title!==void 0&&(a.title=t.title),t.template!==void 0&&(a.resourceTemplate=t.template),t.metadata!==void 0&&(a.metadata=t.metadata),t.callback!==void 0&&(a.readCallback=t.callback),t.enabled!==void 0&&(a.enabled=t.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=a;let o=n.uriTemplate.variableNames;return Array.isArray(o)&&o.some(e=>!!n.completeCallback(e))&&this.setCompletionRequestHandler(),a}_createRegisteredPrompt(e,t,n,r,i){let a={title:t,description:n,argsSchema:r===void 0?void 0:n$(r),callback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredPrompts[e],t.name&&(this._registeredPrompts[t.name]=a)),t.title!==void 0&&(a.title=t.title),t.description!==void 0&&(a.description=t.description),t.argsSchema!==void 0&&(a.argsSchema=n$(t.argsSchema)),t.callback!==void 0&&(a.callback=t.callback),t.enabled!==void 0&&(a.enabled=t.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[e]=a,r&&Object.values(r).some(e=>$1(e instanceof Pe?e._def?.innerType:e))&&this.setCompletionRequestHandler(),a}_createRegisteredTool(e,t,n,r,i,a,o,s,c){e0(e);let l={title:t,description:n,inputSchema:a0(r),outputSchema:a0(i),annotations:a,execution:o,_meta:s,handler:c,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(typeof t.name==`string`&&e0(t.name),delete this._registeredTools[e],t.name&&(this._registeredTools[t.name]=l)),t.title!==void 0&&(l.title=t.title),t.description!==void 0&&(l.description=t.description),t.paramsSchema!==void 0&&(l.inputSchema=n$(t.paramsSchema)),t.outputSchema!==void 0&&(l.outputSchema=n$(t.outputSchema)),t.callback!==void 0&&(l.handler=t.callback),t.annotations!==void 0&&(l.annotations=t.annotations),t._meta!==void 0&&(l._meta=t._meta),t.enabled!==void 0&&(l.enabled=t.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(e,...t){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let n,r,i;if(typeof t[0]==`string`&&(n=t.shift()),t.length>1){let n=t[0];if(i0(n))r=t.shift(),t.length>1&&typeof t[0]==`object`&&t[0]!==null&&!i0(t[0])&&(i=t.shift());else if(typeof n==`object`&&n){if(Object.values(n).some(e=>typeof e==`object`&&!!e))throw Error(`Tool ${e} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);i=t.shift()}}let a=t[0];return this._createRegisteredTool(e,void 0,n,r,void 0,i,{taskSupport:`forbidden`},void 0,a)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let{title:r,description:i,inputSchema:a,outputSchema:o,annotations:s,_meta:c}=t;return this._createRegisteredTool(e,r,i,a,o,s,{taskSupport:`forbidden`},c,n)}prompt(e,...t){if(this._registeredPrompts[e])throw Error(`Prompt ${e} is already registered`);let n;typeof t[0]==`string`&&(n=t.shift());let r;t.length>1&&(r=t.shift());let i=t[0],a=this._createRegisteredPrompt(e,void 0,n,r,i);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}registerPrompt(e,t,n){if(this._registeredPrompts[e])throw Error(`Prompt ${e} is already registered`);let{title:r,description:i,argsSchema:a}=t,o=this._createRegisteredPrompt(e,r,i,a,n);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,t){return this.server.sendLoggingMessage(e,t)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}};const dSe={type:`object`,properties:{}};function n0(e){return typeof e==`object`&&!!e&&`parse`in e&&typeof e.parse==`function`&&`safeParse`in e&&typeof e.safeParse==`function`}function r0(e){return`_def`in e||`_zod`in e||n0(e)}function i0(e){return typeof e!=`object`||!e||r0(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(n0)}function a0(e){if(e){if(i0(e))return n$(e);if(!r0(e))throw Error(`inputSchema must be a Zod schema or raw shape, received an unrecognized object`);return e}}function fSe(e){let t=a$(e);return t?Object.entries(t).map(([e,t])=>({name:e,description:Vye(t),required:!Hye(t)})):[]}function o0(e){let t=a$(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=c$(t);if(typeof n==`string`)return n;throw Error(`Schema method literal must be a string`)}function s0(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}const c0={completion:{values:[],hasMore:!1}};var l0=class extends Error{constructor(e,t){super(e,t),this.name=`RequestError`}},pSe=e=>e instanceof l0?e:new l0(e.message,{cause:e}),mSe=global.Request,u0=class extends mSe{constructor(e,t){typeof e==`object`&&f0 in e&&(e=e[f0]()),t?.body?.getReader!==void 0&&(t.duplex??=`half`),super(e,t)}},hSe=e=>{let t=[],n=e.rawHeaders;for(let e=0;e<n.length;e+=2){let{[e]:r,[e+1]:i}=n;r.charCodeAt(0)!==58&&t.push([r,i])}return new Headers(t)},d0=Symbol(`wrapBodyStream`),gSe=(e,t,n,r,i)=>{let a={method:e,headers:n,signal:i.signal};if(e===`TRACE`){a.method=`GET`;let e=new u0(t,a);return Object.defineProperty(e,`method`,{get(){return`TRACE`}}),e}if(!(e===`GET`||e===`HEAD`))if(`rawBody`in r&&r.rawBody instanceof Buffer)a.body=new ReadableStream({start(e){e.enqueue(r.rawBody),e.close()}});else if(r[d0]){let e;a.body=new ReadableStream({async pull(t){try{e||=ud.toWeb(r).getReader();let{done:n,value:i}=await e.read();n?t.close():t.enqueue(i)}catch(e){t.error(e)}}})}else a.body=ud.toWeb(r);return new u0(t,a)},f0=Symbol(`getRequestCache`),p0=Symbol(`requestCache`),m0=Symbol(`incomingKey`),h0=Symbol(`urlKey`),_Se=Symbol(`headersKey`),g0=Symbol(`abortControllerKey`),_0={get method(){return this[m0].method||`GET`},get url(){return this[h0]},get headers(){return this[_Se]||=hSe(this[m0])},[Symbol(`getAbortController`)](){return this[f0](),this[g0]},[f0](){return this[g0]||=new AbortController,this[p0]||=gSe(this.method,this[h0],this.headers,this[m0],this[g0])}};[`body`,`bodyUsed`,`cache`,`credentials`,`destination`,`integrity`,`mode`,`redirect`,`referrer`,`referrerPolicy`,`signal`,`keepalive`].forEach(e=>{Object.defineProperty(_0,e,{get(){return this[f0]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(_0,e,{value:function(){return this[f0]()[e]()}})}),Object.defineProperty(_0,Symbol.for(`nodejs.util.inspect.custom`),{value:function(e,t,n){return`Request (lightweight) ${n({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[p0]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(_0,u0.prototype);var vSe=(e,t)=>{let n=Object.create(_0);n[m0]=e;let r=e.url||``;if(r[0]!==`/`&&(r.startsWith(`http://`)||r.startsWith(`https://`))){if(e instanceof gd)throw new l0(`Absolute URL for :path is not allowed in HTTP/2`);try{n[h0]=new URL(r).href}catch(e){throw new l0(`Invalid absolute URL`,{cause:e})}return n}let i=(e instanceof gd?e.authority:e.headers.host)||t;if(!i)throw new l0(`Missing host header`);let a;if(e instanceof gd){if(a=e.scheme,!(a===`http`||a===`https`))throw new l0(`Unsupported scheme`)}else a=e.socket&&e.socket.encrypted?`https`:`http`;let o=new URL(`${a}://${i}${r}`);if(o.hostname.length!==i.length&&o.hostname!==i.replace(/:\d+$/,``))throw new l0(`Invalid host header`);return n[h0]=o.href,n},v0=Symbol(`responseCache`),y0=Symbol(`getResponseCache`),b0=Symbol(`cache`),x0=global.Response,S0=class e{#e;#t;[y0](){return delete this[b0],this[v0]||=new x0(this.#e,this.#t)}constructor(t,n){let r;if(this.#e=t,n instanceof e){let e=n[v0];if(e){this.#t=e,this[y0]();return}else this.#t=n.#t,r=new Headers(n.#t.headers)}else this.#t=n;(typeof t==`string`||t?.getReader!==void 0||t instanceof Blob||t instanceof Uint8Array)&&(this[b0]=[n?.status||200,t,r||n?.headers])}get headers(){let e=this[b0];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||{"content-type":`text/plain; charset=UTF-8`})),e[2]):this[y0]().headers}get status(){return this[b0]?.[0]??this[y0]().status}get ok(){let e=this.status;return e>=200&&e<300}};[`body`,`bodyUsed`,`redirected`,`statusText`,`trailers`,`type`,`url`].forEach(e=>{Object.defineProperty(S0.prototype,e,{get(){return this[y0]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(S0.prototype,e,{value:function(){return this[y0]()[e]()}})}),Object.defineProperty(S0.prototype,Symbol.for(`nodejs.util.inspect.custom`),{value:function(e,t,n){return`Response (lightweight) ${n({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[v0]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(S0,x0),Object.setPrototypeOf(S0.prototype,x0.prototype);async function ySe(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function C0(e,t,n){let r=t=>{e.cancel(t).catch(()=>{})};return t.on(`close`,r),t.on(`error`,r),(n??e.read()).then(o,i),e.closed.finally(()=>{t.off(`close`,r),t.off(`error`,r)});function i(e){e&&t.destroy(e)}function a(){e.read().then(o,i)}function o({done:n,value:r}){try{if(n)t.end();else if(!t.write(r))t.once(`drain`,a);else return e.read().then(o,i)}catch(e){i(e)}}}function bSe(e,t){if(e.locked)throw TypeError(`ReadableStream is locked.`);return t.destroyed?void 0:C0(e.getReader(),t)}var w0=e=>{let t={};e instanceof Headers||(e=new Headers(e??void 0));let n=[];for(let[r,i]of e)r===`set-cookie`?n.push(i):t[r]=i;return n.length>0&&(t[`set-cookie`]=n),t[`content-type`]??=`text/plain; charset=UTF-8`,t},xSe=`x-hono-already-sent`;global.crypto===void 0&&(global.crypto=Nte);var T0=Symbol(`outgoingEnded`),E0=Symbol(`incomingDraining`),SSe=500,CSe=64*1024*1024,D0=e=>{let t=e;if(e.destroyed||t[E0])return;if(t[E0]=!0,e instanceof gd){try{e.stream?.close?.(Kte.NGHTTP2_NO_ERROR)}catch{}return}let n=0,r=()=>{clearTimeout(a),e.off(`data`,o),e.off(`end`,r),e.off(`error`,r)},i=()=>{r();let t=e.socket;t&&!t.destroyed&&t.destroySoon()},a=setTimeout(i,SSe);a.unref?.();let o=e=>{n+=e.length,n>CSe&&i()};e.on(`data`,o),e.on(`end`,r),e.on(`error`,r),e.resume()},wSe=()=>new Response(null,{status:400}),O0=e=>new Response(null,{status:e instanceof Error&&(e.name===`TimeoutError`||e.constructor.name===`TimeoutError`)?504:500}),k0=(e,t)=>{let n=e instanceof Error?e:Error(`unknown error`,{cause:e});n.code===`ERR_STREAM_PREMATURE_CLOSE`?console.info(`The user aborted a request.`):(console.error(e),t.headersSent||t.writeHead(500,{"Content-Type":`text/plain`}),t.end(`Error: ${n.message}`),t.destroy(n))},A0=e=>{`flushHeaders`in e&&e.writable&&e.flushHeaders()},j0=async(e,t)=>{let[n,r,i]=e[b0],a=!1;if(!i)i={"content-type":`text/plain; charset=UTF-8`};else if(i instanceof Headers)a=i.has(`content-length`),i=w0(i);else if(Array.isArray(i)){let e=new Headers(i);a=e.has(`content-length`),i=w0(e)}else for(let e in i)if(e.length===14&&e.toLowerCase()===`content-length`){a=!0;break}a||(typeof r==`string`?i[`Content-Length`]=Buffer.byteLength(r):r instanceof Uint8Array?i[`Content-Length`]=r.byteLength:r instanceof Blob&&(i[`Content-Length`]=r.size)),t.writeHead(n,i),typeof r==`string`||r instanceof Uint8Array?t.end(r):r instanceof Blob?t.end(new Uint8Array(await r.arrayBuffer())):(A0(t),await bSe(r,t)?.catch(e=>k0(e,t))),t[T0]?.()},TSe=e=>typeof e.then==`function`,ESe=async(e,t,n={})=>{if(TSe(e))if(n.errorHandler)try{e=await e}catch(t){let r=await n.errorHandler(t);if(!r)return;e=r}else e=await e.catch(O0);if(b0 in e)return j0(e,t);let r=w0(e.headers);if(e.body){let n=e.body.getReader(),i=[],a=!1,o;if(r[`transfer-encoding`]!==`chunked`){let e=2;for(let t=0;t<e;t++){o||=n.read();let r=await ySe(o).catch(e=>{console.error(e),a=!0});if(!r){if(t===1){await new Promise(e=>setTimeout(e)),e=3;continue}break}if(o=void 0,r.value&&i.push(r.value),r.done){a=!0;break}}a&&!(`content-length`in r)&&(r[`content-length`]=i.reduce((e,t)=>e+t.length,0))}t.writeHead(e.status,r),i.forEach(e=>{t.write(e)}),a?t.end():(i.length===0&&A0(t),await C0(n,t,o))}else r[xSe]||(t.writeHead(e.status,r),t.end());t[T0]?.()},M0=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==u0&&(Object.defineProperty(global,`Request`,{value:u0}),Object.defineProperty(global,`Response`,{value:S0})),async(r,i)=>{let a,o;try{o=vSe(r,t.hostname);let s=!n||r.method===`GET`||r.method===`HEAD`;if(s||(r[d0]=!0,r.on(`end`,()=>{s=!0}),r instanceof gd&&(i[T0]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{D0(r)})})}),i.on(`finish`,()=>{s||D0(r)})),i.on(`close`,()=>{o[g0]&&(r.errored?o[g0].abort(r.errored.toString()):i.writableFinished||o[g0].abort(`Client connection prematurely closed.`)),s||setTimeout(()=>{s||setTimeout(()=>{D0(r)})})}),a=e(o,{incoming:r,outgoing:i}),b0 in a)return j0(a,i)}catch(e){if(a)return k0(e,i);if(t.errorHandler){if(a=await t.errorHandler(o?e:pSe(e)),!a)return}else a=o?O0(e):wSe()}try{return await ESe(a,i,t)}catch(e){return k0(e,i)}}},DSe=class{constructor(e={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId=`_GET_stream`,this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval}async start(){if(this._started)throw Error(`Transport already started`);this._started=!0}createJsonErrorResponse(e,t,n,r){let i={code:t,message:n};return r?.data!==void 0&&(i.data=r.data),new Response(JSON.stringify({jsonrpc:`2.0`,error:i,id:null}),{status:e,headers:{"Content-Type":`application/json`,...r?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let t=e.headers.get(`host`);if(!t||!this._allowedHosts.includes(t)){let e=`Invalid Host header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let t=e.headers.get(`origin`);if(t&&!this._allowedOrigins.includes(t)){let e=`Invalid Origin header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}}}async handleRequest(e,t){if(!this.sessionIdGenerator&&this._hasHandledRequest)throw Error(`Stateless transport cannot be reused across requests. Create a new transport per request.`);this._hasHandledRequest=!0;let n=this.validateRequestHeaders(e);if(n)return n;switch(e.method){case`POST`:return this.handlePostRequest(e,t);case`GET`:return this.handleGetRequest(e);case`DELETE`:return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,t,n,r){if(!this._eventStore||r<`2025-11-25`)return;let i=await this._eventStore.storeEvent(n,{}),a=`id: ${i}\ndata: \n\n`;this._retryInterval!==void 0&&(a=`id: ${i}\nretry: ${this._retryInterval}\ndata: \n\n`),e.enqueue(t.encode(a))}async handleGetRequest(e){if(!e.headers.get(`accept`)?.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept text/event-stream`);let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n;if(this._eventStore){let t=e.headers.get(`last-event-id`);if(t)return this.replayEvents(t)}if(this._streamMapping.get(this._standaloneSseStreamId)!==void 0)return this.onerror?.(Error(`Conflict: Only one SSE stream is allowed per session`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Only one SSE stream is allowed per session`);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{this._streamMapping.delete(this._standaloneSseStreamId)}}),o={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};return this.sessionId!==void 0&&(o[`mcp-session-id`]=this.sessionId),this._streamMapping.set(this._standaloneSseStreamId,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(this._standaloneSseStreamId);try{i.close()}catch{}}}),new Response(a,{headers:o})}async replayEvents(e){if(!this._eventStore)return this.onerror?.(Error(`Event store not configured`)),this.createJsonErrorResponse(400,-32e3,`Event store not configured`);try{let t;if(this._eventStore.getStreamIdForEventId){if(t=await this._eventStore.getStreamIdForEventId(e),!t)return this.onerror?.(Error(`Invalid event ID format`)),this.createJsonErrorResponse(400,-32e3,`Invalid event ID format`);if(this._streamMapping.get(t)!==void 0)return this.onerror?.(Error(`Conflict: Stream already has an active connection`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Stream already has an active connection`)}let n={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};this.sessionId!==void 0&&(n[`mcp-session-id`]=this.sessionId);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{}}),o=await this._eventStore.replayEventsAfter(e,{send:async(e,t)=>{if(!this.writeSSEEvent(i,r,t,e)){this.onerror?.(Error(`Failed replay events`));try{i.close()}catch{}}}});return this._streamMapping.set(o,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(o);try{i.close()}catch{}}}),new Response(a,{headers:n})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32e3,`Error replaying events`)}}writeSSEEvent(e,t,n,r){try{let i=`event: message
1182
1182
  `;return r&&(i+=`id: ${r}\n`),i+=`data: ${JSON.stringify(n)}\n\n`,e.enqueue(t.encode(i)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error(`Method not allowed.`)),new Response(JSON.stringify({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null}),{status:405,headers:{Allow:`GET, POST, DELETE`,"Content-Type":`application/json`}})}async handlePostRequest(e,t){try{let n=e.headers.get(`accept`);if(!n?.includes(`application/json`)||!n.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept both application/json and text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept both application/json and text/event-stream`);let r=e.headers.get(`content-type`);if(!r||!r.includes(`application/json`))return this.onerror?.(Error(`Unsupported Media Type: Content-Type must be application/json`)),this.createJsonErrorResponse(415,-32e3,`Unsupported Media Type: Content-Type must be application/json`);let i={headers:Object.fromEntries(e.headers.entries()),url:new URL(e.url)},a;if(t?.parsedBody!==void 0)a=t.parsedBody;else try{a=await e.json()}catch{return this.onerror?.(Error(`Parse error: Invalid JSON`)),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON`)}let o;try{o=Array.isArray(a)?a.map(e=>j$.parse(e)):[j$.parse(a)]}catch{return this.onerror?.(Error(`Parse error: Invalid JSON-RPC message`)),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON-RPC message`)}let s=o.some(R$);if(s){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(Error(`Invalid Request: Server already initialized`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Server already initialized`);if(o.length>1)return this.onerror?.(Error(`Invalid Request: Only one initialization request is allowed`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Only one initialization request is allowed`);this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!s){let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n}if(!o.some(w$)){for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,requestInfo:i});return new Response(null,{status:202})}let c=crypto.randomUUID(),l=o.find(e=>R$(e)),u=l?l.params.protocolVersion:e.headers.get(`mcp-protocol-version`)??`2025-03-26`;if(this._enableJsonResponse)return new Promise(e=>{this._streamMapping.set(c,{resolveJson:e,cleanup:()=>{this._streamMapping.delete(c)}});for(let e of o)w$(e)&&this._requestToStreamMapping.set(e.id,c);for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,requestInfo:i})});let d=new TextEncoder,f,p=new ReadableStream({start:e=>{f=e},cancel:()=>{this._streamMapping.delete(c)}}),m={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`};this.sessionId!==void 0&&(m[`mcp-session-id`]=this.sessionId);for(let e of o)w$(e)&&(this._streamMapping.set(c,{controller:f,encoder:d,cleanup:()=>{this._streamMapping.delete(c);try{f.close()}catch{}}}),this._requestToStreamMapping.set(e.id,c));await this.writePrimingEvent(f,d,c,u);for(let e of o){let n,r;w$(e)&&this._eventStore&&u>=`2025-11-25`&&(n=()=>{this.closeSSEStream(e.id)},r=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(e,{authInfo:t?.authInfo,requestInfo:i,closeSSEStream:n,closeStandaloneSSEStream:r})}return new Response(p,{status:200,headers:m})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error`,{data:String(e)})}}async handleDeleteRequest(e){return this.validateSession(e)||this.validateProtocolVersion(e)||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(Error(`Bad Request: Server not initialized`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Server not initialized`);let t=e.headers.get(`mcp-session-id`);if(!t)return this.onerror?.(Error(`Bad Request: Mcp-Session-Id header is required`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Mcp-Session-Id header is required`);if(t!==this.sessionId)return this.onerror?.(Error(`Session not found`)),this.createJsonErrorResponse(404,-32001,`Session not found`)}validateProtocolVersion(e){let t=e.headers.get(`mcp-protocol-version`);if(t!==null&&!u$.includes(t))return this.onerror?.(Error(`Bad Request: Unsupported protocol version: ${t} (supported versions: ${u$.join(`, `)})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${t} (supported versions: ${u$.join(`, `)})`)}async close(){this._streamMapping.forEach(({cleanup:e})=>{e()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let n=this._streamMapping.get(t);n&&n.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let n=t?.relatedRequestId;if((D$(e)||A$(e))&&(n=e.id),n===void 0){if(D$(e)||A$(e))throw Error(`Cannot send a response on a standalone SSE stream unless resuming a previous client request`);let t;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let n=this._streamMapping.get(this._standaloneSseStreamId);if(n===void 0)return;n.controller&&n.encoder&&this.writeSSEEvent(n.controller,n.encoder,e,t);return}let r=this._requestToStreamMapping.get(n);if(!r)throw Error(`No connection established for request ID: ${String(n)}`);let i=this._streamMapping.get(r);if(!this._enableJsonResponse&&i?.controller&&i?.encoder){let t;this._eventStore&&(t=await this._eventStore.storeEvent(r,e)),this.writeSSEEvent(i.controller,i.encoder,e,t)}if(D$(e)||A$(e)){this._requestResponseMap.set(n,e);let t=Array.from(this._requestToStreamMapping.entries()).filter(([e,t])=>t===r).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!i)throw Error(`No connection established for request ID: ${String(n)}`);if(this._enableJsonResponse&&i.resolveJson){let e={"Content-Type":`application/json`};this.sessionId!==void 0&&(e[`mcp-session-id`]=this.sessionId);let n=t.map(e=>this._requestResponseMap.get(e));n.length===1?i.resolveJson(new Response(JSON.stringify(n[0]),{status:200,headers:e})):i.resolveJson(new Response(JSON.stringify(n),{status:200,headers:e}))}else i.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}},OSe=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new DSe(e),this._requestListener=M0(async e=>{let t=this._requestContext.get(e);return this._webStandardTransport.handleRequest(e,{authInfo:t?.authInfo,parsedBody:t?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(e){this._webStandardTransport.onclose=e}get onclose(){return this._webStandardTransport.onclose}set onerror(e){this._webStandardTransport.onerror=e}get onerror(){return this._webStandardTransport.onerror}set onmessage(e){this._webStandardTransport.onmessage=e}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(e,t){return this._webStandardTransport.send(e,t)}async handleRequest(e,t,n){let r=e.auth;await M0(async e=>this._webStandardTransport.handleRequest(e,{authInfo:r,parsedBody:n}),{overrideGlobalObjects:!1})(e,t)}closeSSEStream(e){this._webStandardTransport.closeSSEStream(e)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};const N0=`https://json-schema.org/draft/2020-12/schema`,P0=`tools/list`;function F0(e){let t=e;if(t.__jsonSchemaDialectInstalled===!0)return;let n=e.server._requestHandlers?.get(P0);if(typeof n!=`function`){console.warn(`[json-schema-dialect] No ${P0} handler found. Either the SDK internals changed, or this ran before tools were registered. Tool schemas will keep the SDK's draft-07 dialect.`);return}e.server.setRequestHandler(_1,async(e,t)=>{let r=await n(e,t);for(let e of r.tools??[])e.inputSchema&&(e.inputSchema.$schema=N0),e.outputSchema&&(e.outputSchema.$schema=N0);return r}),t.__jsonSchemaDialectInstalled=!0}function I0(e){let t=e;if(t.__prettyZodErrorsInstalled===!0)return;let n=t.validateToolInput;if(typeof n!=`function`){console.warn(`[pretty-zod-errors] McpServer.validateToolInput not found — SDK internals may have changed. Falling back to default error formatting.`);return}t.validateToolInput=async function(e,t,r){if(!e.inputSchema||!kSe(e.inputSchema))return n.call(this,e,t,r);let i=await e.inputSchema.safeParseAsync(t);if(i.success)return i.data;let a=ce(i.error);throw new O1(O$.InvalidParams,`Input validation error: Invalid arguments for tool ${r}:\n${a}`)},t.__prettyZodErrorsInstalled=!0}function kSe(e){return typeof e!=`object`||!e?!1:typeof e.safeParseAsync==`function`}const L0=2e3,R0=2e3,ASe=[/cli\.mjs/,/(^|[\s/])(open-knowledge|ok)\s+(start|mcp|ui)(\s|$)/,/Open ?Knowledge(?:\.app| Helper)/,/(^|[\s/])bun([\s/]).*?(run dev|packages\/app|vite|hocuspocus)/,/(^|[\s/])node([\s/]).*?(packages\/(cli|app)|vite|hocuspocus)/,/(^|\s)--ok-lock-dir-b64=/,/(^|\s)--ok-project-path=/];function z0(e){return ASe.some(t=>t.test(e))}function jSe(e){let t=e.trim().split(/\s+/).find(e=>e.startsWith(`--ok-lock-dir-b64=`));if(t==null)return null;let n=t.slice(18);if(!n)return null;try{let e=Buffer.from(n,`base64url`).toString(`utf8`);return gu(e)?e:null}catch{return null}}function MSe(e){let t=e.indexOf(`--ok-project-path=`);if(t===-1)return null;let n=t+18,r=e.slice(n),i=r.search(/\s--/),a=(i===-1?r:r.slice(0,i)).trim();return a&&gu(a)?a:null}function NSe(e){let t=[];for(let n of e.split(`
@@ -2023,7 +2023,7 @@ native-divergence-injected
2023
2023
  `);return o=a?`${o.replace(/\n+$/,``)}\n`:o.replace(/\n+$/,``),i&&(o=o.replace(/\n/g,`\r
2024
2024
  `)),`${n}${o}`}function ENe(e,t){let{bom:n,body:r}=G7(e),i=[],a=SP(r,i,{allowTrailingComma:!0,disallowComments:!1});if(!a||i.length>0||a.type!==`object`)return{kind:`declined`,reason:`unparseable`};if(TNe(a,t.topLevelKey)>1)return{kind:`declined`,reason:`duplicate-container`};let o=[t.topLevelKey,`open-knowledge`],s=CP(a,o);if(!s)return{kind:`no-entry`,raw:e,shell:e};let c=wP(s);if(!U7(c))return{kind:`declined`,reason:`foreign-entry`};let l=Xa(c);if(l.kind===`declined`)return{kind:`declined`,reason:`foreign-entry`};let u=r,d=t.managedKeys.map(e=>({key:e,node:CP(a,[...o,e])})).filter(e=>e.node!==void 0).sort((e,t)=>t.node.offset-e.node.offset);for(let{key:e,node:n}of d){let r=JSON.stringify(q7(t,e));u=`${u.slice(0,n.offset)}${r}${u.slice(n.offset+n.length)}`}return{kind:`managed`,raw:e,shell:`${n}${u}`,entry:c,descriptor:l.descriptor}}function q7(e,t){return e.topLevelKey===`mcp`&&t===`type`?`__ok_managed_type__`:t===`command`&&e.topLevelKey===`mcp`?[`__ok_managed_command__`]:t===`command`?`__ok_managed_command__`:[`__ok_managed_args__`]}function DNe(e,t,n){if(!n)return{kind:`declined`,reason:`no-native-writer`};let{bom:r,body:i}=G7(e),a;try{a=n.parseToObject(i)}catch{return{kind:`declined`,reason:`unparseable`}}let o=a[t.topLevelKey],s=U7(o)?o[`open-knowledge`]:void 0;if(s===void 0)return{kind:`no-entry`,raw:e,shell:e};if(!U7(s))return{kind:`declined`,reason:`foreign-entry`};let c=Xa(s);if(c.kind===`declined`)return{kind:`declined`,reason:`foreign-entry`};let l;try{l=n.upsertEntry(i,`open-knowledge`,Object.fromEntries(t.managedKeys.map(e=>[e,q7(t,e)])))}catch{return{kind:`declined`,reason:`unparseable`}}let u=K7(e,l.text);return{kind:`managed`,raw:`${r}${i}`,shell:u,entry:s,descriptor:c.descriptor}}function J7(e,t,n){return e===null?{kind:`absent`}:Buffer.byteLength(e,`utf8`)>10485760?{kind:`declined`,reason:`oversize`}:t.format===`json`?ENe(e,t):DNe(e,t,n)}function ONe(e,t,n){let{bom:r,body:i}=G7(e),a=i;for(let e of t.managedKeys){let r=SP(a,[],{allowTrailingComma:!0,disallowComments:!1}),o=r?CP(r,[t.topLevelKey,`open-knowledge`,e]):void 0;o&&JSON.stringify(wP(o))===JSON.stringify(n[e])||(a=EP(a,TP(a,[t.topLevelKey,`open-knowledge`,e],n[e],{formattingOptions:wNe(i)})))}return`${r}${a}`}function Y7(e,t,n,r){if(t.format===`json`)return ONe(e,t,n);if(!r)return null;let{body:i}=G7(e),a=Object.fromEntries(t.managedKeys.map(e=>[e,n[e]]));try{return K7(e,r.upsertEntry(i,`open-knowledge`,a).text)}catch{return null}}function kNe(e){let t=W7(e.target);return t?Y7(e.raw,t,e.entry,e.tomlEditor):null}function X7(e){let t=W7(e.target);if(!t)return null;let n=J7(e.raw,t,e.tomlEditor);return n.kind===`managed`||n.kind===`no-entry`?n.shell:null}function ANe(e,t,n){return t.shell===n.shell?t.shell:t.shell===e.shell?n.shell:n.shell===e.shell?t.shell:null}function Z7(e){let t=W7(e.target);if(!t)return{kind:`declined`,reason:`unsupported-target`};let n={base:J7(e.layers.base,t,e.tomlEditor),head:J7(e.layers.head,t,e.tomlEditor),index:J7(e.layers.index,t,e.tomlEditor),worktree:J7(e.layers.worktree,t,e.tomlEditor),incoming:J7(e.layers.incoming,t,e.tomlEditor)},r=Object.values(n),i=r.find(e=>e.kind===`declined`);if(i?.kind===`declined`)return i;if(r.some(e=>e.kind===`absent`))return r.every(e=>e.kind===`absent`)?{kind:`unchanged`}:{kind:`declined`,reason:`file-deletion-ambiguity`};if(r.some(e=>e.kind===`no-entry`))return r.every(e=>e.kind===`no-entry`)?{kind:`declined`,reason:`no-entry`}:{kind:`declined`,reason:`entry-deletion-ambiguity`};let a=n;if(a.index.shell!==a.worktree.shell)return{kind:`declined`,reason:`index-worktree-divergence`};let o=ANe(a.base,a.worktree,a.incoming);if(o===null)return{kind:`declined`,reason:`unowned-shell-conflict`};let s=Object.values(a).map(e=>({entry:e.entry,descriptor:e.descriptor}));if(e.runningEntry){let t=Xa(e.runningEntry);t.kind===`recognized`&&s.push({entry:e.runningEntry,descriptor:t.descriptor})}if(new Set(s.map(e=>e.descriptor.family)).size!==1)return{kind:`declined`,reason:`mixed-launcher-family`};let c=s.reduce((e,t)=>t.descriptor.revision>e.descriptor.revision?t:e),l=[a.worktree,a.index,a.head,a.incoming,a.base].find(e=>e.shell===o);if(!l)return{kind:`declined`,reason:`unowned-shell-conflict`};let u=Y7(l.raw,t,c.entry,e.tomlEditor);return u===null?{kind:`declined`,reason:e.tomlEditor?`unparseable`:`no-native-writer`}:{kind:`resolved`,raw:u,winner:c.descriptor,winnerEntry:c.entry}}function Q7(e,t,n=Date.now()){if(!e)return 0;let r=new Date(e).getTime();if(Number.isNaN(r))return 0;let i=r+t*1e3;return Math.max(0,i-n)}function jNe(e,t){return t===`anonymous`?Math.max(180,e):e}const $=N(`sync-engine`),$7=new Set(CNe),e9=/^[0-9a-f]{40}$/i,MNe=md(cu);var t9=class extends Error{constructor(e,t){super(`Shareable .ok subtree "${e}" could not be fully enumerated; sync staging aborted`,{cause:t}),this.name=`ShareableOkEnumerationError`}};function NNe(e){let{exitCode:t,stderr:n}=e,r=n??``;return t===128||/^fatal:/m.test(r)&&/not possible to fast-forward/i.test(r)?`divergence`:/^error:/m.test(r)&&/would be overwritten by merge/i.test(r)?`overlay-overlap`:`unknown`}function PNe(e){return e.kind===`allowed`?{checkStatus:`allowed`}:e.kind===`denied`?{checkStatus:`denied`,deniedReason:e.reason}:{checkStatus:`unknown`,unknownError:e.error}}function n9(e,t){return e===t?!0:e===null||t===null||e.checkStatus!==t.checkStatus?!1:e.checkStatus===`denied`&&t.checkStatus===`denied`?e.deniedReason===t.deniedReason:e.checkStatus===`unknown`&&t.checkStatus===`unknown`?e.unknownError===t.unknownError:!0}const r9={syncScope:{pathBase:`content`}},i9={syncScope:{pathBase:`project`}};function a9(e){let t=e*1e3,n=t*.15*(2*Math.random()-1);return Math.round(t+n)}function o9(e){let t=vd(e);if(t.kind!==`repository`)return!1;let n=t.repository.readHead();return n.kind===`branch`?t.repository.readRef(n.ref).kind===`absent`:!1}function FNe(e){return e>=8?3600*1e3:e>=5?900*1e3:e>=3?300*1e3:0}const s9=12e4;var INe=class{state=`dormant`;projectDir;contentDir;contentFilter;contentRoot;rootOkOutsideContentWalk;pullIntervalSeconds;pushIntervalSeconds;mode;credentialConfig;cc1Broadcaster;onStateChange;onContentConflictsDetected;onContentConflictsResolved;setBatchInProgress;onAutoDisable;checkpointBeforeStrandedConversion;checkpointBeforeOverlayRestore;mcpTomlEditor;detectGh;ghTokenSource;tokenStore;checkPushPermissionFn;pushPermission=null;pushPermissionProbeInFlight=!1;authTier=`unknown`;pullTimer=null;pushTimer=null;stateSaveTimer=null;lastSyncUtc=null;lastFetchUtc=null;lastPushedSha=null;lastPullUtc=null;lastPullOutcome=null;consecutiveFailures=0;ahead=0;behind=0;conflictCount=0;pushError;pushErrorCode;pullError;pullErrorCode;pausedReason;currentBranch=`main`;pullInFlight=!1;pushInFlight=!1;hasRemote=!1;identityUnresolved=!1;statePath;conflictStore;constructor(e){this.projectDir=e.projectDir,this.contentDir=e.contentDir,this.contentFilter=e.contentFilter,this.contentRoot=e.contentRoot??``,this.rootOkOutsideContentWalk=LM(I(this.contentDir,F(this.projectDir,`.ok`))).startsWith(`..`),this.pullIntervalSeconds=e.pullIntervalSeconds??30,this.pushIntervalSeconds=e.pushIntervalSeconds??60,this.mode=e.mode??(e.syncEnabled===!0?`full`:`off`),this.credentialConfig=e.credentialConfig??[],this.cc1Broadcaster=e.cc1Broadcaster??null,this.onStateChange=e.onStateChange,this.onContentConflictsDetected=e.onContentConflictsDetected,this.onContentConflictsResolved=e.onContentConflictsResolved,this.setBatchInProgress=e.setBatchInProgress,this.onAutoDisable=e.onAutoDisable,this.checkpointBeforeStrandedConversion=e.checkpointBeforeStrandedConversion,this.checkpointBeforeOverlayRestore=e.checkpointBeforeOverlayRestore,this.mcpTomlEditor=e.mcpTomlEditor,this.detectGh=e.detectGh,this.ghTokenSource=dNe(e.detectGh),this.tokenStore=e.tokenStore,this.checkPushPermissionFn=e.checkPushPermissionFn??vNe,this.statePath=L(Pk(this.projectDir),`sync-state.json`),this.conflictStore=new RZ(this.projectDir,this.currentBranch)}syncGhTokenHost(){return FF(this.projectDir)}gitHandle(e){return fc(this.projectDir,{credentialConfig:this.credentialConfig,gitIndexFile:e,ghToken:this.ghTokenSource.get(this.syncGhTokenHost())??void 0,timeoutMs:12e4})}async start(){if(this.state!==`dormant`)return;this.loadState();let e=!1;try{let t=this.gitHandle();e=(await t.git.raw(`remote`,`-v`)).trim().length>0,this.hasRemote=e;try{let e=(await t.git.raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();e&&e!==`HEAD`&&(this.currentBranch=e,this.conflictStore.setBranch(e))}catch{}}catch(e){$.warn({err:e},`[sync] remote detection failed`)}if(e&&this.probePushPermissionInternal(`start`),this.mode===`off`){e&&this.transitionTo(`disabled`),$.info({hasRemote:e,mode:this.mode},`[sync] sync not enabled — staying inactive`);return}if(!e){$.info({},`[sync] no remote detected — staying dormant`);return}this.transitionTo(`idle`);let t=Ed(this.projectDir),n=t?F(t,`MERGE_HEAD`):null,r=n!==null&&z(n);this.conflictCount=this.conflictStore.count();let i=()=>this.conflictStore.list().filter(e=>e.variant!==`working-tree`);if(i().length>0&&!r){$.warn({count:i().length},`[sync] persisted merge conflicts but no MERGE_HEAD — clearing stale state`);for(let e of i())this.conflictStore.removeConflict(e.file);this.conflictCount=this.conflictStore.count()}else if(i().length>0&&r)try{let e=this.gitHandle(),t=new Set(await Ub(e.git,[`diff`,`--name-only`,`--diff-filter=U`])),n=this.conflictCount;for(let e of i())t.has(e.file)||this.conflictStore.removeConflict(e.file);this.conflictCount=this.conflictStore.count(),this.conflictCount<n&&$.info({cleared:n-this.conflictCount,remaining:this.conflictCount},`[sync] reconciled conflicts.json against git unmerged index`)}catch(e){$.warn({err:e},`[sync] failed to reconcile conflicts with git index`)}if(r&&i().length===0){$.warn({},`[sync] stale MERGE_HEAD detected with no tracked conflicts — aborting merge`);try{await this.gitHandle().git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e},`[sync] git merge --abort for stale MERGE_HEAD failed`)}}if(i().length>0){await this.notifyContentConflictsDetected(this.conflictStore.list().map(e=>e.file)),this.transitionTo(`conflict`),$.warn({count:this.conflictCount},`[sync] restarted with active conflicts — sync paused`);return}let a=this.conflictStore.list().filter(e=>e.variant===`working-tree`);a.length>0&&await this.notifyContentConflictsDetected(a.map(e=>e.file)),this.mode===`follow`&&await this.refreshAuthTier();let o=Q7(this.lastFetchUtc,this.currentPullIntervalSeconds()),s=Q7(this.lastSyncUtc,this.pushIntervalSeconds);this.schedulePull(o>0?o:void 0),this.schedulePush(s>0?s:void 0),$.info({branch:this.currentBranch,pullDelayMs:o,pushDelayMs:s},`[sync] started`)}stop(){this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null),this.stateSaveTimer!==null&&(clearTimeout(this.stateSaveTimer),this.stateSaveTimer=null),this.state!==`dormant`&&this.transitionTo(`dormant`)}async destroy(){this.stop(),this.saveStateNow()}async setMode(e,t=`config`){if(this.mode===e)return;let n=this.mode;if(this.mode=e,$.info({from:n,to:e,source:t},`[sync] mode changed`),e===`off`){this.cancelScheduledCycles(),await this.drainInFlightCycles(),this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.transitionTo(this.hasRemote?`disabled`:`dormant`),this.saveStateNow();return}if(this.hasRemote=await this.probeRemote(),this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.consecutiveFailures=0,!this.hasRemote){this.transitionTo(`dormant`),this.saveStateNow();return}e===`follow`&&(await this.drainInFlightCycles(),this.cancelScheduledCycles(),await this.convertStrandedCommitsToOverlay()),this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush(),this.saveStateNow(),this.probePushPermissionInternal(`refresh`)}async setEnabled(e){await this.setMode(e?`full`:`off`)}cancelScheduledCycles(){this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null)}async drainInFlightCycles(){let e=Date.now();for(;this.pullInFlight||this.pushInFlight;){if(Date.now()-e>3e4){$.warn({pullInFlight:this.pullInFlight,pushInFlight:this.pushInFlight},`[sync] drain: timed out waiting for in-flight cycle`);break}await pd(50)}}async probeUnpushedCommitCount(){return!this.hasRemote||o9(this.projectDir)?0:this.unpushedCommitCount(this.gitHandle())}async unpushedCommitCount(e){try{let t=await e.git.status();if(t.tracking)return t.ahead}catch{}try{let t=(await e.git.raw([`rev-list`,`--count`,`origin/${this.currentBranch}..HEAD`])).trim(),n=Number.parseInt(t,10);return Number.isFinite(n)?n:0}catch{return 0}}async convertStrandedCommitsToOverlay(){if(!this.hasRemote||o9(this.projectDir))return;let e=this.gitHandle(),t;try{t=await this.unpushedCommitCount(e)}catch(e){$.warn({err:e},`[sync] pull-only: could not probe stranded commits — skipping conversion`);return}if(t!==0){try{await this.checkpointBeforeStrandedConversion?.({branch:this.currentBranch,ahead:t})}catch(e){$.warn({err:e},`[sync] pull-only: stranded-commit checkpoint failed — proceeding`)}try{let n=(await e.git.raw([`merge-base`,`HEAD`,`origin/${this.currentBranch}`])).trim();this.setBatchInProgress?.(!0);try{await uc(()=>e.git.raw([`reset`,`--mixed`,n]))}finally{this.setBatchInProgress?.(!1)}let r=await e.git.status();this.ahead=r.ahead,this.behind=r.behind,this.pausedReason=void 0,$.info({ahead:t,behind:this.behind},`[sync] pull-only: folded stranded local commits into a working-tree overlay`)}catch(e){this.pausedReason=`diverged-local-commits`,$.warn({err:e},`[sync] pull-only: stranded-commit conversion failed — leaving branch as-is`)}}}async notifyCredentialsChanged(){if(this.mode!==`off`&&(this.ghTokenSource.invalidate(),!(this.state!==`auth-error`&&this.pausedReason!==`auth-error`))){if(this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.consecutiveFailures=0,this.hasRemote=await this.probeRemote(),!this.hasRemote){this.transitionTo(`dormant`),this.saveStateNow();return}this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush(),this.saveStateNow(),this.probePushPermissionInternal(`refresh`)}}async trigger(e=`sync`){if(this.consecutiveFailures=0,(this.pausedReason===`dirty-tree`||this.pausedReason===`external-changes-pending`||this.pausedReason===`non-content-merge-failure`)&&(this.pausedReason=void 0,this.clearPullError()),this.probePushPermissionInternal(`refresh`),e===`pull`){await this.pullOnce();return}this.state===`dormant`||this.state===`disabled`||this.state===`conflict`||this.state===`auth-error`?$.warn({op:e,state:this.state,mode:this.mode,hasRemote:this.hasRemote,pausedReason:this.pausedReason,conflictCount:this.conflictCount},`[sync] trigger(${e}) ignored — state=${this.state}`):$.info({op:e,state:this.state},`[sync] trigger(${e}) running`),e===`push`?await this.runPushCycle():(await this.runPushCycle(),await this.runPullCycle())}async pullOnce(){let e=this.mode,t=await this.runOneShotPull();return $.info({mode:e,outcome:t},`[sync] one-shot pull complete`),t}async runOneShotPull(){if(this.pullInFlight||this.pushInFlight||this.state===`conflict`||!this.hasRemote||o9(this.projectDir))return this.recordPullOutcome(`refused`);let e=this.mode,t=this.state,n=this.pausedReason;this.pullInFlight=!0;try{return this.recordPullOutcome(await this.doPullCycle())}finally{this.pullInFlight=!1,e===`off`?(this.pausedReason=n,this.transitionTo(t)):this.schedulePull()}}recordPullOutcome(e){return this.lastPullUtc=new Date().toISOString(),this.lastPullOutcome=e,this.cc1Broadcaster?.signal(`sync-status`),e}getStatus(){return{state:this.state,lastSyncUtc:this.lastSyncUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,lastPullUtc:this.lastPullUtc,lastPullOutcome:this.lastPullOutcome,ahead:this.ahead,behind:this.behind,consecutiveFailures:this.consecutiveFailures,conflictCount:this.conflictCount,hasRemote:this.hasRemote,syncEnabled:this.mode!==`off`,syncMode:this.mode,identityUnresolved:this.identityUnresolved,remote:this.hasRemote?Tme(this.projectDir):null,...this.pushError===void 0?{}:{pushError:this.pushError},...this.pushErrorCode===void 0?{}:{pushErrorCode:this.pushErrorCode},...this.pullError===void 0?{}:{pullError:this.pullError},...this.pullErrorCode===void 0?{}:{pullErrorCode:this.pullErrorCode},pausedReason:this.pausedReason,...this.pushPermission===null?{}:{pushPermission:this.pushPermission}}}async refreshPushPermission(){return this.probePushPermissionInternal(`refresh`)}async refreshIdentity(){let e=await sB(this.projectDir)===null;this.identityUnresolved!==e&&(this.identityUnresolved=e,this.cc1Broadcaster?.signal(`sync-status`))}async applyCommitIdentity(e){let t=await sB(this.projectDir),n=t===null;this.identityUnresolved!==n&&(this.identityUnresolved=n,this.cc1Broadcaster?.signal(`sync-status`));let r=t?.name??`OpenKnowledge`,i=t?.email??`sync@open-knowledge.local`;_c(e,{GIT_AUTHOR_NAME:r,GIT_AUTHOR_EMAIL:i,GIT_COMMITTER_NAME:r,GIT_COMMITTER_EMAIL:i})}async probePushPermissionInternal(e){if(!this.hasRemote||this.pushPermissionProbeInFlight)return null;let t=PF(this.projectDir);if(t.kind!==`ok`){let e={checkStatus:`unknown`},t=this.pushPermission;return this.pushPermission=e,n9(t,e)||this.cc1Broadcaster?.signal(`sync-status`),e}this.pushPermissionProbeInFlight=!0,$.info({caller:e,host:t.host,hasDetectGh:this.detectGh!==void 0,hasTokenStore:this.tokenStore!==void 0&&this.tokenStore!==null},`[sync] push-permission probe dispatching`);let n;try{n=await this.checkPushPermissionFn({owner:t.owner,repo:t.repo,host:t.host,transport:t.transport,detectGh:this.detectGh,tokenStore:this.tokenStore})}catch(t){$.warn({err:t,caller:e},`[sync] push-permission probe threw — recording unknown/network`),n={kind:`unknown`,error:`network`}}finally{this.pushPermissionProbeInFlight=!1}let r=PNe(n),i=this.pushPermission;this.pushPermission=r;let a=!1;return r.checkStatus===`denied`&&this.mode===`full`?(this.pausedReason!==`no-push-permission`||this.state!==`disabled`)&&(this.pausedReason=`no-push-permission`,this.transitionTo(`disabled`),a=!0,$.info({reason:r.deniedReason,caller:e},`[sync] paused — no push permission on origin`)):r.checkStatus===`allowed`&&this.pausedReason===`no-push-permission`&&(this.pausedReason=void 0,this.state===`disabled`&&this.mode===`full`&&this.transitionTo(`idle`),a=!0,$.info({caller:e,priorState:this.state},`[sync] push permission restored`)),!a&&!n9(i,r)&&this.cc1Broadcaster?.signal(`sync-status`),r}async refreshRemote(){this.hasRemote||await this.probeRemote()&&(this.hasRemote=!0,$.info({mode:this.mode},`[sync] remote detected post-boot — re-evaluating state`),this.mode===`off`?this.transitionTo(`disabled`):(this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush()))}async probeRemote(){if(!z(F(this.projectDir,`.git`)))return!1;try{return(await this.gitHandle().git.raw(`remote`,`-v`)).trim().length>0}catch(e){return $.warn({err:e},`[sync] remote detection failed`),!1}}getConflicts(){return this.conflictStore.list()}async reconcileConflictsFromGit(){let e=this.conflictStore.list().filter(e=>e.variant!==`working-tree`);if(e.length===0)return;let t=this.conflictCount,n=Ed(this.projectDir),r=n?F(n,`MERGE_HEAD`):null;if(r!==null&&z(r))try{let n=this.gitHandle(),r=new Set(await Ub(n.git,[`diff`,`--name-only`,`--diff-filter=U`]));for(let t of e)r.has(t.file)||this.conflictStore.removeConflict(t.file);this.conflictCount=this.conflictStore.count(),this.conflictCount<t&&$.info({cleared:t-this.conflictCount,remaining:this.conflictCount},`[sync] external resolve detected (mid-merge) — pruned resolved entries`)}catch(e){$.warn({err:e},`[sync] reconcileConflictsFromGit: git probe failed`);return}else{$.info({cleared:e.length},`[sync] external resolve detected (no MERGE_HEAD) — clearing merge-native conflicts`);for(let t of e)this.conflictStore.removeConflict(t.file);this.conflictCount=this.conflictStore.count()}this.conflictCount!==t&&(this.conflictCount===0&&this.state===`conflict`?(this.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush()):this.cc1Broadcaster?.signal(`sync-status`),this.scheduleSaveState())}async resolveConflict(e,t,n){let r=this.conflictStore.list().find(t=>t.file===e)?.variant===`working-tree`;this.setBatchInProgress?.(!0);try{try{await this.conflictStore.resolveConflict(e,t,n)}catch(e){throw this.conflictCount=this.conflictStore.count(),this.scheduleSaveState(),e}r&&($.info({choice:t},`[sync] pull-only: conflict resolved by choice`),await this.notifyContentConflictsResolved([e])),this.conflictCount=this.conflictStore.count(),this.conflictCount===0&&this.state===`conflict`?(this.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush()):this.cc1Broadcaster?.signal(`sync-status`),this.scheduleSaveState()}finally{this.setBatchInProgress?.(!1)}}updateCurrentBranch(e){e===null?this.state!==`dormant`&&this.state!==`disabled`&&(this.transitionTo(`disabled`),this.pausedReason=`detached-head`,this.scheduleSaveState()):this.currentBranch!==e&&(this.currentBranch=e,this.conflictStore.setBranch(e),this.state===`disabled`&&this.pausedReason===`detached-head`&&(this.pausedReason=void 0,this.transitionTo(`idle`),this.schedulePull(),this.schedulePush()))}schedulePull(e){this.pullTimer!==null&&clearTimeout(this.pullTimer);let t=e??this.effectivePullDelayMs();this.pullTimer=setTimeout(()=>{this.pullTimer=null,this.runPullCycle().catch(e=>{$.error({err:e},`[sync] pull cycle uncaught error`)})},t)}schedulePush(e){if(this.mode!==`full`)return;this.pushTimer!==null&&clearTimeout(this.pushTimer);let t=e??a9(this.pushIntervalSeconds);this.pushTimer=setTimeout(()=>{this.pushTimer=null,this.runPushCycle().catch(e=>{$.error({err:e},`[sync] push cycle uncaught error`)})},t)}async resolveAuthTier(){let e=this.syncGhTokenHost();if(this.ghTokenSource.get(e)!==null)return`authenticated`;if(this.tokenStore)try{if((await this.tokenStore.get(e))?.token)return`authenticated`}catch(e){$.warn({err:e},`[sync] auth-tier token-store lookup threw — treating as anonymous`)}return`anonymous`}async refreshAuthTier(){this.authTier=await this.resolveAuthTier()}currentPullIntervalSeconds(){return this.mode===`follow`?jNe(this.pullIntervalSeconds,this.authTier===`anonymous`?`anonymous`:`authenticated`):this.pullIntervalSeconds}effectivePullDelayMs(){let e=FNe(this.consecutiveFailures);return a9(e>0?e/1e3:this.currentPullIntervalSeconds())}async runPullCycle(){if(!this.pullInFlight&&!(this.state===`dormant`||this.state===`disabled`||this.state===`auth-error`)){if(this.state===`conflict`){this.schedulePull();return}if(o9(this.projectDir)){this.schedulePull();return}this.mode===`follow`&&await this.refreshAuthTier(),this.pullInFlight=!0;try{this.recordPullOutcome(await this.doPullCycle())}finally{this.pullInFlight=!1,this.schedulePull()}}}async doPullCycle(){let e=this.gitHandle(),t;try{let n=(await e.git.raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();if(!n||n===`HEAD`)return this.transitionTo(`disabled`),this.pausedReason=`detached-head`,$.warn({},`[sync] detached HEAD — pausing sync`),`refused`;t=n,this.currentBranch=t}catch(e){return this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}this.transitionTo(`fetching`);try{await e.git.fetch(`origin`),this.lastFetchUtc=new Date().toISOString(),this.consecutiveFailures=0,this.clearPullError()}catch(e){let t=R7(e instanceof Error?e:Error(String(e)));return this.handleError(t,`pull`),`error`}try{let t=await e.git.status();this.ahead=t.ahead,this.behind=t.behind}catch{}if(this.behind>0&&this.mode!==`full`){let n=await this.doPullCycleB1(e,t);return this.scheduleSaveState(),n}if(this.behind>0&&this.conflictCount===0){this.transitionTo(`pulling`),this.setBatchInProgress?.(!0);try{await this.commitDirtyContentFilesToHead(e);let n=await this.prepareForMerge(e,t);if(!n.proceed)return`refused`;let r=!0,i=!0;try{await this.applyCommitIdentity(e),await e.git.merge([`origin/${t}`]),this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.transitionTo(`idle`)}finally{n.needsStashPop&&(r=await this.popPreMergeStash(e)),i=this.restoreReconciledMcpOverlays(n.reconciled)}if(!r)throw Error(`failed to replay pre-merge working-tree state`);if(!i)throw Error(`failed to restore reconciled MCP overlays`);return await this.persistReconciledMcpEntries(n.reconciled),this.scheduleSaveState(),`succeeded`}catch(e){let t=R7(e instanceof Error?e:Error(String(e)));return t.class===`semantic`&&t.subclass===`merge-conflict`?(await this.handleMergeConflict(),this.state===`conflict`?`conflict`:this.pullError?`error`:`succeeded`):(this.handleError(t,`pull`),`error`)}finally{this.setBatchInProgress?.(!1)}}return this.transitionTo(`idle`),this.scheduleSaveState(),this.behind===0?`up-to-date`:`conflict`}async doPullCycleB1(e,t){if(this.transitionTo(`pulling`),this.ahead>0)return this.clearPullError(),this.pausedReason=`diverged-local-commits`,this.transitionTo(`idle`),$.warn({ahead:this.ahead,behind:this.behind},`[sync] pull-only: local history diverged — not fast-forwardable, skipping cycle`),`refused`;let n,r;try{n=(await e.git.revparse([`HEAD`])).trim();let i=await Ub(e.git,[`diff-index`,`--name-only`,`HEAD`]),a=new Set(await Ub(e.git,[`diff`,`--name-only`,`HEAD..origin/${t}`]));r=i.filter(e=>a.has(e))}catch(e){return this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}let i=new Map;for(let e of this.conflictStore.list())e.variant===`working-tree`&&i.set(e.file,e);let a;try{a=await this.planOverlapReconciliation(e,t,n,r,i)}catch(e){return this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}this.setBatchInProgress?.(!0);try{if(r.length>0){try{await this.checkpointBeforeOverlayRestore?.({branch:t,paths:r.length})}catch(e){$.warn({err:e,paths:r.length},`[sync] pull-only: overlay checkpoint failed before restore — proceeding`)}try{await e.git.raw([`restore`,`--source=HEAD`,`--staged`,`--worktree`,`--`,...r])}catch(e){return $.warn({err:e},`[sync] pull-only: failed to restore overlay before fast-forward — skipping cycle`),this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}}let n=await this.fastForwardOnly(e,t);if(!n.ok){try{this.applyOverlayPlan(a.mineRestore,a.deletions)}catch(e){return $.error({err:e,refusal:n.refusal},`[sync] pull-only: failed to restore overlay after fast-forward refusal`),this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}return n.timedOut?($.warn({},`[sync] pull-only: fast-forward timed out — backing off`),this.handleError(R7(Error(`git merge --ff-only timed out after ${s9}ms`)),`pull`),`error`):(n.refusal===`divergence`&&(this.pausedReason=`diverged-local-commits`),this.transitionTo(`idle`),$.warn({refusal:n.refusal,stderr:n.stderr.slice(0,200)},`[sync] pull-only: fast-forward refused — skipping cycle`),`refused`)}try{this.applyOverlayPlan(a.writes,a.deletions)}catch(e){return $.error({err:e},`[sync] pull-only: failed to apply overlay after fast-forward`),this.handleError(R7(e instanceof Error?e:Error(String(e))),`pull`),`error`}let i=!0;for(let e of a.upserts)i=this.conflictStore.addConflict(e)&&i;for(let e of a.dissolved)i=this.conflictStore.removeConflict(e)&&i;if(this.conflictCount=this.conflictStore.count(),!i)return $.error({},`[sync] pull-only: failed to persist conflict state after fast-forward — surfacing as error`),this.handleError(R7(Error(`failed to persist conflict state after fast-forward`)),`pull`),`error`;this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.clearPullError(),this.pausedReason=void 0,this.transitionTo(`idle`),a.newConflicts.length>0&&await this.notifyContentConflictsDetected(a.newConflicts),a.dissolved.length>0&&await this.notifyContentConflictsResolved(a.dissolved),(a.newConflicts.length>0||a.dissolved.length>0)&&this.cc1Broadcaster?.signal(`sync-status`);let o=await this.countStandingOverlay(e);return $.info({created:a.newConflicts.length,autoCombined:a.autoCombined.length,autoDissolved:a.dissolved.length,autoRestored:a.autoRestored.length,overlayStock:o},`[sync] pull-only: fast-forwarded to origin tip`),a.newConflicts.length>0?`conflict`:`succeeded`}finally{this.setBatchInProgress?.(!1)}}async fastForwardOnly(e,t){try{return await MNe(`git`,[`-c`,`core.autocrlf=false`,`merge`,`--ff-only`,`origin/${t}`],{cwd:this.projectDir,env:e.env,windowsHide:!0,timeout:s9}),{ok:!0}}catch(e){let t=e,n=t.killed===!0||t.signal===`SIGTERM`,r=typeof t.code==`number`?t.code:null,i=typeof t.stderr==`string`?t.stderr:e instanceof Error?e.message:String(e);return{ok:!1,refusal:NNe({exitCode:r,stderr:i}),stderr:i,exitCode:r,timedOut:n}}}async planOverlapReconciliation(e,t,n,r,i){let a=[],o=[],s=[],c=[],l=[],u=[],d=[],f=[];for(let p of r){let r=i.get(p),m=r!==void 0;if(!z(F(this.projectDir,p))){try{await e.git.revparse([`origin/${t}:${p}`])}catch(e){if(this.classifyRefReadFailure(e)===`error`){s.push(p),$.warn({err:e,path:p},`[sync] pull-only: unexpected error probing origin for a deleted overlay — deferring reconcile`);continue}s.push(p),m&&l.push(p);continue}if(!this.isContentConflictPath(p)){s.push(p);continue}f.push(p),m&&l.push(p);continue}let h;try{h=B(F(this.projectDir,p))}catch{continue}o.push({path:p,bytes:h});let g=h.toString(`utf-8`),_=null;try{_=await e.git.raw([`show`,`origin/${t}:${p}`])}catch(e){this.classifyRefReadFailure(e)===`error`&&$.warn({err:e,path:p},`[sync] pull-only: unexpected error reading origin blob — keeping overlay, deferring reconcile`),_=null}if(_!==null&&_===g){m&&l.push(p);continue}if(_!==null&&$7.has(p)){let t=await this.readMcpGitBlob(e,n,p),r=Z7({target:p,layers:{base:t,head:t,index:await this.readMcpGitBlob(e,``,p),worktree:g,incoming:_},tomlEditor:this.mcpTomlEditor});if(r.kind===`resolved`){r.raw!==_&&a.push({path:p,bytes:Buffer.from(r.raw,`utf8`)}),$.info({event:`mcp-config-reconcile`,target:p,outcome:`auto-resolved`},`[sync] pull-only: auto-resolved OpenKnowledge MCP entry overlap`);continue}r.kind===`declined`&&$.warn({event:`mcp-config-reconcile`,target:p,outcome:`declined`,reason:r.reason},`[sync] pull-only: declined OpenKnowledge MCP entry reconciliation`)}if(_===null||!this.isContentConflictPath(p)){a.push({path:p,bytes:h});continue}let v=m?r.baseSha:await this.gitBlobSha(e,`${n}:${p}`),y=rs(v?await this.gitBlobContent(e,v):``,g,_);if(y.clean){a.push({path:p,bytes:Buffer.from(y.merged,`utf-8`)}),d.push(p),m&&l.push(p);continue}a.push({path:p,bytes:h});let b=await this.gitBlobSha(e,`origin/${t}:${p}`);if(b===void 0){$.warn({path:p},`[sync] pull-only: could not pin origin blob for a collision — keeping overlay, deferring`);continue}c.push({file:p,detectedAt:r?.detectedAt??new Date().toISOString(),variant:`working-tree`,theirsSha:b,baseSha:v}),m||u.push(p)}return{writes:a,mineRestore:o,deletions:s,upserts:c,dissolved:l,newConflicts:u,autoCombined:d,autoRestored:f}}applyOverlayPlan(e,t){for(let{path:t,bytes:n}of e){let e=F(this.projectDir,t);gL(e,this.projectDir),Ys(e,n)}for(let e of t){let t=F(this.projectDir,e);gL(t,this.projectDir);try{Fs(t)}catch(e){if(e.code!==`ENOENT`)throw e}}}isContentConflictPath(e){let t=F(this.projectDir,e),n=LM(I(this.contentDir,t));return!n.startsWith(`..`)&&Rx(n)&&!this.contentFilter.isExcluded(n)}async gitBlobSha(e,t){try{return(await e.git.revparse([t])).trim()}catch{return}}classifyRefReadFailure(e){let t=e instanceof Error?e.message:String(e);return/does not exist in|exists on disk, but not in/i.test(t)?`absent`:`error`}async gitBlobContent(e,t){return e.git.raw([`cat-file`,`blob`,t])}async countStandingOverlay(e){try{return(await Ub(e.git,[`diff-index`,`--name-only`,`HEAD`])).filter(e=>this.isContentConflictPath(e)).length}catch{return null}}async runPushCycle(){if(!this.pushInFlight&&this.mode===`full`&&!(this.state===`dormant`||this.state===`disabled`)&&!(this.state===`conflict`||this.state===`auth-error`)){if(o9(this.projectDir)){this.schedulePush();return}this.pushInFlight=!0;try{await this.doPushCycle(1)}finally{this.pushInFlight=!1,this.schedulePush()}}}async doPushCycle(e=0){let t=F(Zu(),`ok-sync-idx-${process.pid}-${Date.now()}.idx`),n=null;this.transitionTo(`pushing`);try{let e=this.gatherContentFilesSync();await uc(async()=>{let r=this.gitHandle(t);if(o9(this.projectDir)){$.info({},`[sync] repo has no commits yet — skipping push cycle`),this.transitionTo(`idle`);return}let i;try{i=(await r.git.revparse(`HEAD`)).trim()}catch(e){let t=e instanceof Error?e.message:String(e),n=`${t}\n${e.git?.toString()??t}`;if(/unknown revision or path not in the working tree/i.test(n)||/ambiguous argument 'HEAD'/i.test(n)||/does not have any commits yet/i.test(n)){$.info({},`[sync] repo has no commits yet — skipping push cycle`),this.transitionTo(`idle`);return}this.handleError(R7(e instanceof Error?e:Error(String(e))),`push`);return}await r.git.raw([`read-tree`,i]);let a=await this.listHeadContentPaths(r,i),o=await this.stageContentFiles(r,e),s=new Set(o.map(e=>e.projectRelPath)),c=[...a].filter(e=>!s.has(e));await this.removePathsFromIndex(r,c);let l=(await r.git.raw([`write-tree`])).trim(),u=``;try{u=(await r.git.raw([`rev-parse`,`${i}^{tree}`])).trim()}catch{}if(u&&u===l){let t=null;try{t=(await r.git.raw([`rev-parse`,`origin/${this.currentBranch}`])).trim()}catch{}if(t===i){$.info({contentFileCount:e.length,headSha:i},`[sync] push cycle: nothing to commit (tree unchanged, origin matches HEAD)`),this.lastPushedSha=i,this.lastSyncUtc=new Date().toISOString(),this.clearPushError(),this.transitionTo(`idle`);return}$.info({headSha:i,upstreamSha:t},`[sync] push cycle: tree unchanged but local ahead of origin — pushing existing commits`);let a=!1;try{await r.git.raw([`rev-parse`,`--abbrev-ref`,`${this.currentBranch}@{u}`]),a=!0}catch{}a?await r.git.raw([`push`,`origin`,this.currentBranch]):await r.git.raw([`push`,`--set-upstream`,`origin`,this.currentBranch]),n=i;return}let d=[],f=[];try{let t=await Ub(r.git,[`diff-tree`,`--name-only`,`-r`,i,l]);if(t.length>0){let n=new Map(e.map(e=>[e.projectRelPath,e.contentRelPath]));for(let e of t){d.push(e);let t=n.get(e)??LM(I(this.contentDir,F(this.projectDir,e)));t&&!t.startsWith(`..`)&&f.push(t)}}}catch{d=e.map(e=>e.projectRelPath).concat(c),f=e.map(e=>e.contentRelPath)}let p=this.buildCommitMessage(f);await this.applyCommitIdentity(r);let m=(await r.git.raw([`commit-tree`,l,`-p`,i,`-m`,p])).trim();if(!m||!e9.test(m)){$.warn({raw:m},`[sync] commit-tree returned invalid SHA — aborting push`),this.transitionTo(`idle`);return}await r.git.raw([`update-ref`,`refs/heads/${this.currentBranch}`,m,i]),await this.resetRealIndexForPaths(d);let h=!1;try{await r.git.raw([`rev-parse`,`--abbrev-ref`,`${this.currentBranch}@{u}`]),h=!0}catch{}h?await r.git.raw([`push`,`origin`,this.currentBranch]):await r.git.raw([`push`,`--set-upstream`,`origin`,this.currentBranch]),n=m}),n&&(this.lastPushedSha=n,this.lastSyncUtc=new Date().toISOString(),this.ahead=0,this.clearPushError(),this.state===`pushing`&&this.transitionTo(`idle`),this.pausedReason===`dirty-tree`&&(this.pausedReason=void 0,this.clearPullError(),this.schedulePull(0)))}catch(t){let n=t instanceof Error?t:Error(String(t));n instanceof t9&&$.warn({err:n},`[sync] push cycle: staging error detail`);let r=R7(n);if(r.class===`semantic`&&r.subclass===`non-fast-forward`){if(e>0){$.info({},`[sync] push rejected (non-fast-forward) — fetching, merging, retrying`);let e=this.gitHandle();this.setBatchInProgress?.(!0);try{await e.git.fetch(`origin`),await this.commitDirtyContentFilesToHead(e);let t=await this.prepareForMerge(e,this.currentBranch);if(!t.proceed){this.setBatchInProgress?.(!1);return}let n=!0,r=!0;try{await this.applyCommitIdentity(e),await e.git.merge([`origin/${this.currentBranch}`])}finally{t.needsStashPop&&(n=await this.popPreMergeStash(e)),r=this.restoreReconciledMcpOverlays(t.reconciled)}if(!n)throw Error(`failed to replay pre-merge working-tree state`);if(!r)throw Error(`failed to restore reconciled MCP overlays`);await this.persistReconciledMcpEntries(t.reconciled)}catch(e){let t=R7(e instanceof Error?e:Error(String(e)));if(t.class===`semantic`&&t.subclass===`merge-conflict`)await this.handleMergeConflict();else if(e instanceof t9)throw e;else this.handleError(t,`pull`);this.scheduleSaveState();return}finally{this.setBatchInProgress?.(!1)}await this.doPushCycle(0);return}$.info({},`[sync] push still rejected after retry — waiting for next pull cycle`),this.consecutiveFailures++,this.state===`pushing`&&this.transitionTo(`idle`)}else this.handleError(r,`push`)}finally{try{Gu(t)}catch{}}this.scheduleSaveState()}async commitDirtyContentFilesToHead(e){if((await e.git.status()).files.length===0)return null;let t=(await e.git.revparse(`HEAD`)).trim(),n=this.gatherContentFilesSync(),r=await this.listHeadContentPaths(e,t);if(n.length===0&&r.size===0)return null;let i=F(Zu(),`ok-sync-retry-idx-${process.pid}-${Date.now()}.idx`),a=this.gitHandle(i);try{await a.git.raw([`read-tree`,t]);let i=await this.stageContentFiles(a,n),o=new Set(i.map(e=>e.projectRelPath)),s=[...r].filter(e=>!o.has(e));await this.removePathsFromIndex(a,s);let c=(await a.git.raw([`write-tree`])).trim();if(c===(await a.git.raw([`rev-parse`,`${t}^{tree}`])).trim())return null;let l=[];try{l=await Ub(a.git,[`diff-tree`,`--name-only`,`-r`,t,c])}catch{l=n.map(e=>e.projectRelPath).concat(s)}await this.applyCommitIdentity(a);let u=(await a.git.raw([`commit-tree`,c,`-p`,t,`-m`,`Auto-save: interim before merge`])).trim();return!u||!e9.test(u)?($.warn({raw:u},`[sync] commit-tree returned invalid SHA in commitDirtyContentFilesToHead`),null):(await e.git.raw([`update-ref`,`refs/heads/${this.currentBranch}`,u,t]),await this.resetRealIndexForPaths(l,e),u)}finally{try{Gu(i)}catch{}}}async readMcpGitBlob(e,t,n){try{return await e.git.raw([`cat-file`,`-e`,`${t}:${n}`]),await e.git.raw([`show`,`${t}:${n}`])}catch{return null}}async planTrackedMcpOverlap(e,t,n){let r;try{r=(await e.git.raw([`merge-base`,`HEAD`,`origin/${t}`])).trim()}catch(e){return $.warn({err:e,branch:t,path:n},`[sync] MCP reconciliation merge-base unavailable — declining`),{kind:`declined`,reason:`merge-base-unavailable`}}let[i,a,o,s]=await Promise.all([this.readMcpGitBlob(e,r,n),this.readMcpGitBlob(e,`HEAD`,n),this.readMcpGitBlob(e,``,n),this.readMcpGitBlob(e,`origin/${t}`,n)]),c=null;try{c=B(F(this.projectDir,n),`utf8`)}catch{}return Z7({target:n,layers:{base:i,head:a,index:o,worktree:c,incoming:s},tomlEditor:this.mcpTomlEditor})}async prepareForMerge(e,t){let n=[],r;try{r=await Ub(e.git,[`diff-index`,`--name-only`,`HEAD`])}catch(e){return $.warn({err:e,branch:t},`[sync] diff-index failed — allowing merge attempt`),{proceed:!0,needsStashPop:!1,reconciled:n}}if(r.length===0)return{proceed:!0,needsStashPop:!1,reconciled:n};let i;try{i=new Set(await Ub(e.git,[`diff`,`--name-only`,`HEAD..origin/${t}`]))}catch(e){return $.warn({err:e,branch:t},`[sync] merge-path diff failed — allowing merge attempt`),{proceed:!0,needsStashPop:!1,reconciled:n}}let a=r.filter(e=>i.has(e)),o=$7,s=a.filter(e=>o.has(e));if(s.length>0){let r=await Promise.all(s.map(async n=>({path:n,plan:await this.planTrackedMcpOverlap(e,t,n)}))),i=r.find(({plan:e})=>e.kind===`declined`),c=a.some(e=>!o.has(e));if(!i&&!c){for(let{path:e,plan:t}of r)t.kind===`resolved`&&(n.push({path:e,raw:t.raw,winnerEntry:t.winnerEntry}),$.info({event:`mcp-config-reconcile`,target:e,outcome:`auto-resolved`},`[sync] auto-resolved OpenKnowledge MCP entry overlap`));a=a.filter(e=>!o.has(e))}else i?$.warn({event:`mcp-config-reconcile`,target:i.path,outcome:`declined`,reason:i.plan.kind===`declined`?i.plan.reason:void 0},`[sync] declined OpenKnowledge MCP entry reconciliation`):c&&$.info({event:`mcp-config-reconcile`,targets:s,outcome:`suppressed`,reason:`other-blocking-path`},`[sync] suppressed MCP entry reconciliation because another path blocks the merge`)}if(a.length>0){let e=a.slice(0,3).join(`, `),t=a.length>3?`, +${a.length-3} more`:``;return this.pullErrorCode=void 0,this.pullError=`Sync paused — your local changes to ${e}${t} conflict with incoming changes. Commit, stash, or discard them before syncing.`,this.pausedReason=`external-changes-pending`,this.consecutiveFailures=0,this.transitionTo(`idle`),this.scheduleSaveState(),$.warn({files:a},`[sync] paused — dirty paths overlap incoming merge`),{proceed:!1,needsStashPop:!1,reconciled:[]}}if(n.length>0)try{await e.git.raw([`restore`,`--source=HEAD`,`--staged`,`--worktree`,`--`,...n.map(e=>e.path)])}catch(e){return $.warn({err:e},`[sync] could not isolate reconciled MCP paths from pre-merge stash`),this.pullError=`Sync paused — OpenKnowledge could not safely isolate local MCP launcher changes before merging.`,this.pausedReason=`external-changes-pending`,this.transitionTo(`idle`),this.scheduleSaveState(),{proceed:!1,needsStashPop:!1,reconciled:[]}}let c=new Set(n.map(e=>e.path));if(r.every(e=>c.has(e)))return{proceed:!0,needsStashPop:!1,reconciled:n};let l=`ok-sync: pre-merge stash @ ${new Date().toISOString()}`;try{await e.git.raw([`stash`,`push`,`-m`,l])}catch(e){return $.warn({err:e},`[sync] stash push failed — proceeding without stash`),{proceed:!0,needsStashPop:!1,reconciled:n}}return{proceed:!0,needsStashPop:!0,reconciled:n}}restoreReconciledMcpOverlays(e){let t=!0;for(let n of e)try{let e=F(this.projectDir,n.path);gL(e,this.projectDir);let t=null;try{t=B(e,`utf8`)}catch(e){$.warn({err:e,path:n.path},`[sync] could not read MCP config before restoring reconciled overlay`)}t!==n.raw&&Ys(e,n.raw,`utf8`)}catch(e){t=!1,$.warn({err:e,path:n.path},`[sync] could not restore reconciled MCP overlay`)}return t}async popPreMergeStash(e){try{return await e.git.raw([`stash`,`pop`]),!0}catch(e){return $.warn({err:e},`[sync] stash pop failed — stash remains on stack`),!1}}hasGitOperationInProgress(){let e=Ed(this.projectDir);return e?[`MERGE_HEAD`,`CHERRY_PICK_HEAD`,`REVERT_HEAD`,`rebase-merge`,`rebase-apply`].some(t=>z(F(e,t))):!0}async persistReconciledMcpEntries(e){if(e.length!==0){if(this.hasGitOperationInProgress())throw Error(`refusing MCP entry commit while a Git operation is in progress`);await uc(async()=>{let t=F(Zu(),`ok-mcp-sync-idx-${process.pid}-${Date.now()}.idx`),n=[];try{let r=this.gitHandle(),i=this.gitHandle(t),a=(await i.git.revparse(`HEAD`)).trim(),o=(await i.git.revparse([`--abbrev-ref`,`HEAD`])).trim();if(o===`HEAD`)throw Error(`refusing MCP entry commit on detached HEAD`);await i.git.raw([`read-tree`,a]);let s=[];for(let r=0;r<e.length;r++){let o=e[r];if(!o)continue;let c=await this.readMcpGitBlob(i,a,o.path);if(c===null)throw Error(`tracked MCP path disappeared: ${o.path}`);let l=kNe({target:o.path,raw:c,entry:o.winnerEntry,tomlEditor:this.mcpTomlEditor});if(l===null)throw Error(`cannot edit tracked MCP path: ${o.path}`);let u=(await i.git.raw([`ls-tree`,a,`--`,o.path])).match(/^(100644|100755)\s/)?.[1];if(!u)throw Error(`unsafe tracked MCP mode: ${o.path}`);let d=`${t}.commit-${r}`;n.push(d),Ku(d,l,`utf8`);let f=(await i.git.raw([`hash-object`,`-w`,d])).trim();await i.git.raw([`update-index`,`--add`,`--cacheinfo`,`${u},${f},${o.path}`]);let p=X7({target:o.path,raw:l,tomlEditor:this.mcpTomlEditor}),m=X7({target:o.path,raw:o.raw,tomlEditor:this.mcpTomlEditor}),h=p!==null&&p===m?l:o.raw,g=`${t}.replay-${r}`;n.push(g),Ku(g,h,`utf8`);let _=(await i.git.raw([`hash-object`,`-w`,g])).trim();s.push({path:o.path,mode:u,blobSha:_,raw:h})}let c=(await i.git.raw([`write-tree`])).trim();if(c===(await i.git.raw([`rev-parse`,`${a}^{tree}`])).trim())return;await this.applyCommitIdentity(i);let l=(await i.git.raw([`commit-tree`,c,`-p`,a,`-m`,`Update OpenKnowledge MCP launcher`])).trim();if(!e9.test(l))throw Error(`commit-tree returned an invalid SHA`);try{await i.git.raw([`update-ref`,`refs/heads/${o}`,l,a])}catch(e){$.info({event:`mcp-config-reconcile`,outcome:`ref-race`,branch:o,err:e},`[sync] skipped MCP launcher commit because the branch moved`);return}try{for(let e of s){await r.git.raw([`update-index`,`--add`,`--cacheinfo`,`${e.mode},${e.blobSha},${e.path}`]);let t=F(this.projectDir,e.path);gL(t,this.projectDir),B(t,`utf8`)!==e.raw&&Ys(t,e.raw,`utf8`)}}catch(t){$.warn({event:`mcp-config-reconcile`,outcome:`overlay-replay-failed`,err:t},`[sync] MCP overlay replay failed; resetting the affected index entries`),await this.resetRealIndexForPaths(s.map(e=>e.path)),this.restoreReconciledMcpOverlays(e)}$.info({event:`mcp-config-reconcile`,outcome:`persisted-entry-commit`},`[sync] persisted OpenKnowledge MCP launcher entry commit`)}finally{for(let e of n)try{Gu(e)}catch{}try{Gu(t)}catch{}}})}}async stageContentFiles(e,t){if(t.length===0)return t;let n=new Set,r=!0;for(let i=0;i<t.length;i+=100){let a=t.slice(i,i+100).map(e=>e.projectRelPath);try{let t=await Ub(e.git,[`ls-files`,`--others`,`--ignored`,`--exclude-standard`,`--`,...a]);for(let e of t)n.add(e)}catch(e){r=!1,$.warn({err:e},`[sync] ignored-path probe failed — staging unfiltered without -f`)}}n.size>0&&$.info({count:n.size,sample:[...n].slice(0,5)},`[sync] skipping gitignored untracked path(s) — in content scope but excluded from git`);let i=r?t.filter(e=>!n.has(e.projectRelPath)):t,a=e=>e.startsWith(`.ok/`)||e.includes(`/.ok/`),o=r?i.filter(e=>a(e.projectRelPath)):[],s=r?i.filter(e=>!a(e.projectRelPath)):i;for(let[t,n]of[[[`add`,`--`],s],[[`add`,`-f`,`--`],o]])for(let r=0;r<n.length;r+=100){let i=n.slice(r,r+100).map(e=>e.projectRelPath);await e.git.raw([...t,...i])}return i}gatherContentFilesSync(){let e=[],t=(e,t)=>{throw new t9(LM(I(this.projectDir,t))||`.`,e)},n=(r,i,a,o)=>{let s;try{s=zu(r,{withFileTypes:!0})}catch(e){o?.(e,r);return}for(let c of s){let s=F(r,c.name);if(c.isDirectory()){let e=LM(I(i,s));if(!e.startsWith(`..`)&&this.contentFilter.isDirExcluded(e,a))continue;let r=e.split(`/`).some(e=>e.toLowerCase()===`.ok`);n(s,i,a,o??(r?t:void 0))}else if(c.isFile()||c.isSymbolicLink()){let t=LM(I(i,s));if(!t.startsWith(`..`)&&!this.contentFilter.isExcluded(t,a)){let t=LM(I(this.contentDir,s)),n=LM(I(this.projectDir,s));e.push({contentRelPath:t,projectRelPath:n})}}}};if(z(this.contentDir)&&n(this.contentDir,this.contentDir,r9),this.rootOkOutsideContentWalk){let e=F(this.projectDir,`.ok`);z(e)&&!this.contentFilter.isDirExcluded(`.ok`,i9)&&n(e,this.projectDir,i9,t)}return e}async listHeadContentPaths(e,t){let n=new Set;try{let r=await Ub(e.git,[`ls-tree`,`-r`,`--name-only`,t]);for(let e of r){let t=F(this.projectDir,e),r=LM(I(this.contentDir,t)),i=!r.startsWith(`..`)&&!this.contentFilter.isExcluded(r,r9),a=this.rootOkOutsideContentWalk&&e.startsWith(`.ok/`)&&!this.contentFilter.isExcluded(e,i9);(i||a)&&n.add(e)}}catch{}return n}async removePathsFromIndex(e,t){if(t.length===0)return;let n=[...new Set(t)];for(let t=0;t<n.length;t+=100){let r=n.slice(t,t+100);await e.git.raw([`rm`,`--cached`,`--`,...r])}}async resetRealIndexForPaths(e,t){if(e.length===0)return;let n=t??this.gitHandle(),r=[...new Set(e)];for(let e=0;e<r.length;e+=100){let t=r.slice(e,e+100);try{await n.git.raw([`reset`,`HEAD`,`--`,...t])}catch{}}}buildCommitMessage(e){return e.length===0?`Auto-save: changes saved`:e.length<=3?`Auto-save: Updated ${e.join(`, `)}`:`Auto-save: ${e.length} files changed`}async handleMergeConflict(){let e=this.gitHandle(),t=[];try{t=await Ub(e.git,[`diff`,`--name-only`,`--diff-filter=U`])}catch(t){$.error({err:t},`[sync] failed to list conflicted files — aborting merge to avoid committing unresolved state`);try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e},`[sync] git merge --abort failed during cleanup`)}this.pullErrorCode=void 0,this.pullError=`Failed to detect conflict files — merge aborted`,this.pausedReason=void 0,this.transitionTo(`idle`);return}let n=[],r=[];for(let e of t)this.isContentConflictPath(e)?n.push(e):r.push(e);let i=[],a=LM(I(this.projectDir,zs(`project`,this.projectDir)));for(let t of r)try{await e.git.raw([`checkout`,`--theirs`,`--`,t]),await e.git.raw([`add`,`--`,t]),t.toLowerCase()===a.toLowerCase()?$.warn({file:t},`[sync] auto-resolved .ok/config.yml conflict with theirs: local project config edits were overwritten by the remote version`):$.info({file:t},`[sync] auto-resolved non-content conflict with theirs`)}catch(e){$.warn({err:e,file:t},`[sync] non-content auto-resolve failed — will abort merge and pause sync`),i.push({file:t,err:e})}if(i.length>0){let t=i.map(e=>e.file);try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e,files:t},`[sync] git merge --abort failed during non-content cleanup`)}let n=t.slice(0,3).join(`, `),r=t.length>3?`, +${t.length-3} more`:``;this.pullErrorCode=void 0,this.pullError=`Sync paused — couldn't auto-resolve ${n}${r}. Resolve in your terminal (e.g. \`git rm <file>\` or \`git checkout --ours/--theirs <file> && git add <file>\`), then retry sync.`,this.pausedReason=`non-content-merge-failure`,this.consecutiveFailures=0,this.transitionTo(`idle`),this.scheduleSaveState(),$.warn({files:t},`[sync] non-content auto-resolve failed — merge aborted, sync paused`);return}if(n.length>0){for(let e of n)this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count(),await this.notifyContentConflictsDetected(n),this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null),this.transitionTo(`conflict`),$.warn({files:n},`[sync] content conflicts — sync paused until resolved`)}else{let t=!1;try{await this.applyCommitIdentity(e),await e.git.raw([`commit`,`--no-edit`]);let n=Ed(this.projectDir);t=n===null||!z(F(n,`MERGE_HEAD`))}catch(e){$.warn({err:e},`[sync] failed to commit after auto-resolving conflicts`)}if(t)this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.transitionTo(`idle`),$.info({},`[sync] all conflicts auto-resolved — merge committed`);else{try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e},`[sync] git merge --abort failed during cleanup`)}this.pullError=`Sync paused — could not finalize the merge. Retry sync to try again.`,this.transitionTo(`idle`),$.warn({},`[sync] could not finalize merge after auto-resolving conflicts — merge aborted`)}}}async notifyContentConflictsDetected(e){if(e.length!==0)try{await this.onContentConflictsDetected?.(e)}catch(t){$.warn({err:t,files:e},`[sync] content conflict callback failed`)}}async notifyContentConflictsResolved(e){if(e.length!==0)try{await this.onContentConflictsResolved?.(e)}catch(t){$.warn({err:t,files:e},`[sync] content conflict resolved callback failed`)}}clearPushError(){this.pushError=void 0,this.pushErrorCode=void 0}clearPullError(){this.pullError=void 0,this.pullErrorCode=void 0}handleError(e,t){e.userFacingCode===null?t===`push`?(this.pushErrorCode=void 0,this.pushError=e.message):(this.pullErrorCode=void 0,this.pullError=e.message):t===`push`?(this.pushErrorCode=e.userFacingCode,this.pushError=void 0):(this.pullErrorCode=e.userFacingCode,this.pullError=void 0),$.warn({class:e.class,subclass:e.subclass,retryable:e.retryable,rawStderr:e.rawStderr},`[sync-error] ${e.message}`),e.class===`auth`?(this.ghTokenSource.invalidate(),this.transitionTo(`auth-error`),this.pausedReason=`auth-error`):e.class===`semantic`&&e.subclass===`protected-branch`?(this.mode=`off`,this.transitionTo(`disabled`),this.pausedReason=`protected-branch`,this.onAutoDisable?.(`protected-branch`)):e.class===`local`&&e.subclass===`dirty-tree`?(this.consecutiveFailures++,this.transitionTo(`idle`),this.pausedReason=`dirty-tree`,this.schedulePush(0)):e.retryable?(this.consecutiveFailures++,this.transitionTo(`offline`)):(this.consecutiveFailures++,this.transitionTo(`idle`))}transitionTo(e){if(this.state===e)return;let t=this.state;this.state=e,$.info({from:t,to:e},`[sync] state: ${t} → ${e}`),this.onStateChange?.(e),this.cc1Broadcaster?.signal(`sync-status`)}scheduleSaveState(){this.stateSaveTimer===null&&(this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.saveStateNow()},5e3))}saveStateNow(){try{let e=this.pausedReason===`no-push-permission`||this.pausedReason===`auth-error`?void 0:this.pausedReason,t={version:1,lastSyncUtc:this.lastSyncUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,consecutiveFailures:this.consecutiveFailures,pausedReason:e,pausedSinceUtc:e?new Date().toISOString():void 0,inflightConflicts:this.conflictStore.list().map(e=>e.file)};Ku(this.statePath,JSON.stringify(t,null,2),`utf-8`)}catch(e){$.warn({err:e},`[sync] failed to persist sync state`)}}loadState(){if(z(this.statePath))try{let e=B(this.statePath,`utf-8`),t=JSON.parse(e);if(t.version!==1)return;this.lastSyncUtc=t.lastSyncUtc??null,this.lastFetchUtc=t.lastFetchUtc??null,this.lastPushedSha=t.lastPushedSha??null,this.consecutiveFailures=t.consecutiveFailures??0,this.pausedReason=t.pausedReason===`no-push-permission`||t.pausedReason===`auth-error`?void 0:t.pausedReason;let n=t.inflightConflicts??[];if(n.length>0){for(let e of n)this.conflictStore.list().some(t=>t.file===e)||this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count()}}catch(e){$.warn({err:e},`[sync] failed to load sync state`)}}};gs();const LNe=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function RNe(){return{async afterLoadDocument({documentName:e,requestParameters:t}){if(Xx(e)||Zx(e))return;let n=t?.get(`mountId`)??void 0,r={"doc.name":e};n!==void 0&&LNe.test(n)&&(r[`mount.id`]=n);try{let e=()=>{Ss(`sync.handshake`,{attributes:r},()=>{})},n=t?.get(`traceparent`);if(n!=null){let r={traceparent:n},i=t?.get(`tracestate`);i!=null&&(r.tracestate=i),_s.with(ms.extract(_s.active(),r),e)}else e()}catch(e){N(`sync-handshake-span`).warn({err:e instanceof Error?e:Error(String(e))},`emission failed`)}}}}let c9=!1;function l9(){if(c9)return;let e=Yte;if(typeof e.getCACertificates!=`function`||typeof e.setDefaultCACertificates!=`function`){c9=!0;return}try{e.setDefaultCACertificates([...e.getCACertificates(`default`),...e.getCACertificates(`system`)]),c9=!0}catch(e){N(`trust-system-ca`).warn({err:e},`system CA setup failed; falling back to the bundled CA set`)}}const zNe=(()=>{let e=Object.freeze({origin:`park-snapshot`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})(),BNe=(()=>{let e=Object.freeze({origin:`generated-index`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})();function VNe(e,t,n,r){let i=new Map;if(!n)return i;let a;try{a=du(`git`,[`-c`,`core.quotePath=false`,`log`,`${n}..${r}`,`--no-merges`,`--name-only`,`--format=C%x00%an%x00%ae`],UM({cwd:e,encoding:`utf-8`,timeout:5e3}))}catch(e){return N(`upstream-attribution`).warn({err:e,oldHead:n,newHead:r},`git log spawn threw; upstream docs keep file-system attribution`),i}if(a.error||a.status!==0||typeof a.stdout!=`string`)return N(`upstream-attribution`).warn({err:a.error,status:a.status,signal:a.signal,stderr:typeof a.stderr==`string`?a.stderr.slice(0,500):void 0,oldHead:n,newHead:r},`git log failed; upstream docs keep file-system attribution`),i;let o=null;for(let n of a.stdout.split(`
2025
2025
  `)){let r=n.trim();if(r===``)continue;if(r.startsWith(`C\0`)){let[,e,t]=r.split(`\0`);o=e&&t?{name:e,email:t}:null;continue}if(!o||!r.endsWith(`.md`)&&!r.endsWith(`.mdx`))continue;let a=L(e,r);if(!BM(a,t))continue;let s=_z(a,t);i.has(s)||z(a)&&i.set(s,o)}return i}function u9(e){l9();let t=e.ingressPolicy??bB({}),{contentDir:n,projectDir:r=n,quiet:i=!0,debounce:a=2e3,maxDebounce:o=1e4,gitEnabled:s=!0,commitDebounceMs:c=3e4,wipRef:l=`refs/wip/main`,configHomedirOverride:u,enableTestRoutes:d=!1,shadowRepo:f,contentRoot:p,destroyTimeoutMs:m=1e4,localOpCliArgs:h,authStreamHeartbeatMs:g,skipStateManifestCheck:_=!1,singleDocRelPath:v,ephemeral:y=!1}=e,b=N(`server`),x=new G5,S=()=>x.getActiveBranch(),C=e=>x.getReconciledBase(e),w=(e,t)=>x.setReconciledBase(e,t),T=e=>x.deleteReconciledBase(e),E=e=>x.switchReconciledBaseScope(e),ee=e=>x.setBatchInProgress(e),D=()=>x.isBatchInProgress();function te(e){let t=Cs({absPath:zs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config`)});if(!t.valid){let n=xe(t.error)&&t.error.code===`SCHEMA_INVALID`?t.error.issues.filter(e=>e.path.map(String).join(`.`)===`content.attachmentFolderPath`):[];if(n.length>0){let e=n.map(e=>e.message).join(`; `);throw Error(`Invalid content.attachmentFolderPath in project config: ${e}`)}if(e?.requireValid)throw Error(`Project config is invalid`,{cause:t.error});b.warn({},`[config] committed content.attachmentFolderPath unavailable (project config invalid) — using default attachment placement`)}return t.value.content.attachmentFolderPath??`./`}function O(){let e=Cs({absPath:zs(`project-local`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project-local config`)}),t=he(e.value.autoSync);if(t!==null)return{mode:t,source:`config`};e.valid||b.warn({},`[config] project-local autoSync.mode unavailable (config invalid) — falling back to the committed project default`);let n=Cs({absPath:zs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config`)});return n.valid||b.warn({},`[config] committed autoSync.default unavailable (project config invalid) — defaulting to disabled`),{mode:ge(n.value.autoSync?.default)??`off`,source:`committed-default`}}function ne(){let e=Cs({absPath:zs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for linter`)}).value.contentRules,t=e?zn(e):Ht;return lMe(r,t.plugins.okf),t}function re(){return Cs({absPath:zs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for link validation`)}).value.validation?.links??`warning`}function ie(){return Jj(r,{configHomedirOverride:u,onWarn:e=>b.warn({message:e},`[config] could not read project-local config`)})}function k(){let e=Cs({absPath:zs(`project-local`,r,u),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project-local config`)});return e.valid?e.value.linkPreviews?.enabled===!0:!1}function ae(){return Ts({cwd:r,homedirOverride:u,warn:e=>b.debug({message:e},`[config] diagnostics read`)})}function oe(){for(let e of ae().diagnostics)e.code===`REMOVED_KEY`&&b.warn({scope:e.scope,file:e.file,path:e.path.join(`.`)},`[config] ${e.path.join(`.`)} is no longer read and was ignored. ${e.redirect}`)}function se(e){return`${Rj(e.baseUrl)}|${e.model}|${e.dimensions??`auto`}`}let ce;function le(e,t){let i;if(e===`__config__/project`||e===`__local__/project`){let t=O();i=t.mode,tn?.setMode(t.mode,t.source).catch(n=>{b.warn({err:n,mode:t.mode,docName:e},`[sync] failed to apply autoSync mode from config`)})}let a=ie();if(Ie.applyConfig({enabled:a.enabled,providerFingerprint:se(a)}),e===`__config__/project`){try{let e=te({requireValid:!0});ve?.setAttachmentFolderPath(e),ce!==void 0&&e!==ce&&b.warn({previous:ce,next:e},`[content-filter] attachment folder changed — files under the previous folder no longer sync`),ce=e}catch(e){b.warn({err:e},`[content-filter] project config invalid — keeping previous attachment admission`)}ke?.signal(`lint-config`),(t??ne().plugins.okf?.generate?.index===!0)||M5({projectDir:r,contentDir:n,generatedDocNames:Ct(),enabled:!1}).then(e=>{e.ok||b.warn({state:e.status.state},`[index] could not remove Open Knowledge generated-index Git attributes`)}),vt()}b.info({docName:e,autoSyncMode:i,semanticEnabled:a.enabled},`[config] applied persisted config to in-process consumers`)}Zs();let ue=cd(),de=Pk(r),fe=new Qd({localDir:de,log:N(`acp-registry`)}),pe=new Kd(de,N(`acp-permissions`));if(Oc(de,{port:0,worktreeRoot:r,kind:e.lockKind??`interactive`,capabilities:e.capabilities??[`http`,`ws`]}),!_)try{F7({lockDir:de,shadowRepoDir:Dd(r)})}catch(e){throw bc(de),e}let A=uo(),me=(e,t)=>A.resolveEmbed(e,t),_e=(e,t)=>{let r=A.resolveEmbed(e,t);if(!r&&e.includes(`/`)&&(r=e.replace(/^\.?\//,``)),!r)return null;let i=L(n,r);if(!RM(i,L(n)))return null;try{let e=Wu(i);return e.isFile()?e.size:null}catch{return null}},ve,ye,j,M,be,Se,Ce,we,Ee,De,Oe,ke=null,Ae=null,je=null,Me=null,Ne=null,Pe=null,Fe=ie(),Ie=new Fde({loadEmbedder:e.embedderLoader??(()=>{let t=ie();return xde({keyStore:e.embeddingsKeyStore??null,projectDir:r,config:{baseUrl:t.baseUrl,model:t.model,dimensions:t.dimensions}})}),cacheDir:F(Pk(r),`embeddings`),enabled:Fe.enabled,providerFingerprint:se(Fe)}),Le=null,Re=new Set,ze=!1,Be=[],Ve,He,Ue,We=new Promise((e,t)=>{He=e,Ue=t}),Ge,Ke=new Promise(e=>{Ge=e});async function qe(){let e,t=Symbol(`branch-scope-gate-timeout`),n=new Promise(n=>{e=setTimeout(()=>n(t),1e4),e.unref?.()});try{if(await Promise.race([Ke,n])!==t)return S()}finally{e&&clearTimeout(e)}try{return J5(r).branch??null}catch(e){return b.warn({err:e},`[auth] branch scope gate expired and HEAD is unreadable — skipping the branch claim check`),null}}function Je(e){ke?.signal(e)}let Ye,Xe,Ze,Qe=!1,$e=!1,et=new AbortController,tt=new Set,nt=!1,rt=!1,it=!1,at=0,ot,st=new Promise(e=>{ot=e});function ct(e){it||(it=!0,ot(e))}function ut(){return nt||tt.size>0}function dt(){$e||!Qe||(Ye!==void 0&&clearTimeout(Ye),Ye=setTimeout(()=>{Ye=void 0,pt()},500),Ye.unref?.())}function ft(){if($e){ct({status:`cancelled`,indexCount:0});return}nt=!0,rt=!0,Xe=setImmediate(()=>{Xe=void 0,pt()})}function pt(){if($e||!Qe||!ut())return;if(Ze!==void 0){e.generatedIndexTestHooks?.onKickWhileInFlight?.();return}if(x.isBatchInProgress()){dt();return}let t=nt,n=new Set(tt),r=rt;nt=!1,tt.clear(),rt=!1;let i=t?{fullSweep:!0}:{fullSweep:!1,directories:n};Ze=(async()=>{let e=await Dt(i,et.signal);if(e.status===`deferred`){nt=!0,r&&(at+=e.indexCount,rt=!0);return}r&&(at+=e.indexCount,e.status===`completed`&&ut()?rt=!0:ct({...e,indexCount:at}))})().catch(e=>{b.warn({err:e},`[index] index regeneration coordinator failed`),r&&ct({status:`failed`,indexCount:0})}).finally(()=>{if(Ze=void 0,$e){r&&ct({status:`cancelled`,indexCount:0});return}ut()&&Ye===void 0?dt():!ut()&&Ye===void 0&&e.generatedIndexTestHooks?.onIdle?.()})}async function mt(){if(!$e){let e=Ze;$e=!0,et.abort(),Ye!==void 0&&(clearTimeout(Ye),Ye=void 0),Xe!==void 0&&(clearImmediate(Xe),Xe=void 0),tt.clear(),nt=!1,rt=!1,e===void 0&&ct({status:`cancelled`,indexCount:0})}await Ze}function ht(e){$e||Zje(e)||(tt.add(z5(e)),dt())}function gt(e){if(!$e){for(let t of Xje(e))tt.add(t);dt()}}function _t(e){let t=Qt?.getFileIndex();if(!t){ht(e);return}let n=z5(e);if(H5(t.keys()).has(n)){ht(e);return}gt(z5(n))}function vt(){$e||(nt=!0,dt())}function yt(e){let t=Qt?.getFileIndex().get(e);if(t)return{title:t.title,description:t.description,type:t.type}}let bt=!1,xt={origin:BNe,writer:Jse,isConflict:e=>tn?.getConflicts().some(t=>v5(t,e,r,n))===!0,getDocument:e=>Ce.documents.get(e),writeDisk:async(e,t)=>{Bs(P(e),{recursive:!0}),await Es(e,t,{fs:As})},registerWrite:(e,t)=>iz(e,oz(t)),noteFileIndex:e=>Qt?.mutateFileIndex({kind:e.kind,path:e.absPath,docName:e.docName,content:e.markdown}),signalFiles:()=>Je(`files`),attribute:async(e,t)=>{xj(e,t.id,t.name,t.id),bt=!0}};function St(e){return e===``?L5:`${e}/${L5}`}function Ct(){return[...Qt?H5(Qt.getFileIndex().keys()):new Set([``])].map(St)}function wt(e){let t=ne().plugins.okf?.generate?.index===!0,n=e.state===`ready`||e.state===`not-applicable`;return{enabled:t,active:t&&n,git:e.state===`ready`?{state:e.state,ownership:e.ownership}:{state:e.state}}}function Tt(){return wt(A5({projectDir:r,contentDir:n,generatedDocNames:Ct()}))}async function Et(e){let t=await M5({projectDir:r,contentDir:n,generatedDocNames:Ct(),enabled:e});if(!t.ok)return{...Tt(),applied:!1,reason:t.status.state===`conflict`?`git-conflict`:`git-unavailable`};let i=await bs({cwd:r,scope:`project`,patch:{contentRules:{okf:{generate:{index:e}}}}});if(!i.ok){try{await t.rollback()}catch(e){b.error({err:e},`[index] could not roll back generated-index Git attributes`)}return{...Tt(),applied:!1,reason:`config-write`}}try{let e=B(i.path,`utf-8`);_5(Ce.documents.get(`__config__/project`)??null,lt,e,be.configPersistenceCtx)}catch(e){b.warn({err:e},`[index] generated-index settings reflection deferred to config watcher`)}return le(lt,e),{...Tt(),applied:!0}}async function Dt(t,i){let a=0,o=t.fullSweep?performance.now():void 0,s=()=>ne().plugins.okf?.generate?.index!==!0;try{if(i.aborted)return{status:`cancelled`,indexCount:0};if(s())return{status:`disabled`,indexCount:0};let c=Qt?.getFileIndex();if(!c)return{status:`failed`,indexCount:0};try{if(await e.generatedIndexTestHooks?.beforePlan?.({fullSweep:t.fullSweep,signal:i}),i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};if(x.isBatchInProgress())return{status:`deferred`,indexCount:a};let o=Qje({docs:c,docExtension:Gx,currentMarkdownFor:()=>null}),l=A5({projectDir:r,contentDir:n,generatedDocNames:o.map(({directory:e})=>St(e))});if(l.state!==`ready`&&l.state!==`not-applicable`)return b.warn({state:l.state},`[index] generated index regeneration paused by Git attributes`),{status:`blocked`,indexCount:a};for(let{directory:r,markdown:c}of o){if(!t.fullSweep&&!t.directories.has(r))continue;if(i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};if(x.isBatchInProgress())return{status:`deferred`,indexCount:a};if(await e.generatedIndexTestHooks?.beforeDecision?.({directory:r,fullSweep:t.fullSweep,signal:i}),i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};let o=St(r),l=L(n,`${o}.md`),u;try{u=B(l,`utf-8`)}catch(e){e.code!==`ENOENT`&&b.warn({err:e,path:Hs(l)},`[index] could not read the existing generated index; treating it as absent`),u=null}a+=1;let d=await Mje({docName:o,absPath:l,markdown:c,currentMarkdown:u},xt);d===`blocked-conflict`?b.warn({event:`generated-index-regeneration`,outcome:`blocked`,directory:r,reason:`conflict`},`[index] generated index regeneration blocked by active conflict`):b.info({event:`generated-index-regeneration`,outcome:d===`unchanged`?`unchanged`:`written`,directory:r},`[index] generated index regeneration completed`),await e.generatedIndexTestHooks?.afterWrite?.({docName:o,fullSweep:t.fullSweep,signal:i}),!t.fullSweep&&r!==``&&u===null&&gt(z5(r))}}finally{bt&&=(await be.waitForPendingCommits(),await be.flushContributors(),!1),o!==void 0&&(EL(`generatedIndexSweepMs`,Math.round((performance.now()-o)*100)/100),DL(`generatedIndexCount`,a))}return{status:`completed`,indexCount:a}}catch(e){return b.warn({err:e},`[index] index regeneration failed`),{status:`failed`,indexCount:a}}}let Ot=null,kt=!1,At=()=>{try{E7(r,jt.entries())}catch(e){b.warn({err:e},`[removed-docs-journal] failed to persist removal journal`)}},jt=new VMe(void 0,{onEviction:()=>Dse(),onSizeChange:e=>Ose(e),onMutate:()=>{!kt||Ot!==null||(Ot=setTimeout(()=>{Ot=null,At()},2e3))}});for(let[e,t]of KMe(r))nS(e)||TZ(e)&&([`.md`,`.mdx`].some(t=>{let r=L(n,`${e}${t}`);return RM(r,L(n))&&z(r)})||jt.restore(e,t));kt=!0;let Mt={current:null},Nt=(e,t)=>{nS(e)||jt.setRenamed(e,t)},Pt=e=>{if(!nS(e)){if(jt.peek(e)?.kind===`renamed`){console.info(JSON.stringify({event:`recently-removed-docs-unpaired-delete-suppressed`,docName:e,source:`watcher-delete`}));return}jt.setDeleted(e),Mt.current?.deleted(e)}},Ft=e=>{nS(e)||jt.delete(e)};try{let m=`./`;try{m=te()}catch(e){b.warn({err:e},`[content-filter] invalid attachment folder at boot — using sibling admission`)}ce=m,ve=YN({projectDir:r,contentDir:n,singleDocRelPath:v,attachmentFolderPath:m,inPlaceSkillDirs:hL(n),rescanInPlaceSkillDirs:()=>hL(n),skillRootPaths:Ehe(n),onAfterRebuild:()=>{ye.refreshContentScope().catch(e=>{N(`server-factory`).warn({err:e},`[content-filter] derived-index rebuild failed after onAfterRebuild`)}),Uz(Qt).then(({prunedFiles:e,prunedFolders:t})=>{let n=e+t;n>0?N(`server-factory`).info({pruned:n,prunedFiles:e,prunedFolders:t},`[content-filter] reconciled file indexes after onAfterRebuild`):N(`server-factory`).debug({prunedFiles:e,prunedFolders:t},`[content-filter] file index reconcile completed after onAfterRebuild (no entries pruned; rescan may have added entries)`)}).catch(e=>{N(`server-factory`).warn({err:e},`[content-filter] file index reconcile failed after onAfterRebuild`)})}}),ye=new PR({projectDir:r,contentDir:n,contentFilter:ve,getGlobalSkillRoots:()=>VK(be.managedArtifactCtx),signalChannel:Je,getLocalTargetInventory:()=>FK(Qt,n),onRecoveredFileTarget:(e,t)=>{Qt&&UMe({watcher:Qt,contentDir:n,relativePath:e,exists:t,invalidateReferencedAssetsCache:Ne})}}),j={current:f},M=s?OMe({getShadow:()=>j.current??null,getCurrentBranch:()=>en?.getLastKnownBranch()??null,contentRoot:p??``,projectGitDir:Ed(r)??void 0,isWriterLive:e=>{if(!Me&&!we)return N(`server-factory`).debug({writerId:e},`[server-factory] isWriterLive called before liveness deps populated — treating writer as dead`),!1;if(Me?.getPresenceMap()[e])return!0;let t=e.startsWith(`agent-`)?e.slice(6):e;for(let e of we?.sessionsForConnection(t)??[])return!0;return!1}}):void 0,be=y7({contentDir:n,projectDir:r,gitEnabled:s,commitDebounceMs:c,wipRef:l,shadowRef:j,ephemeral:y,contentRoot:p,derivedDocumentIndex:ye,configHomedirOverride:u,getCurrentBranch:()=>en?.getLastKnownBranch()??null,resolveEmbed:me,resolveSize:_e,getPrincipal:()=>Le,onAgentCommit:()=>ke?.signal(`session-activity`),onFlushCommit:()=>M?.noteFlushCommit(),onDiskFlush:(e,t,n,r)=>{ke?.emitDiskAck(e,t),!nS(e)&&($je(r,n,e)&&ht(e),zB(r,n)&&(Ne?.(),Je(`files`)))},onConfigRejected:(e,t)=>ke?.emitConfigValidationRejected(e,t),onConfigPersisted:le,isRecentlyRemoved:e=>jt.has(e),mdManager:e.mdManager,getLossRing:()=>Se,durabilityState:x}),Ce=new gje({quiet:i,debounce:a,maxDebounce:o,extensions:[be.extension]});let _=Ce;Be.push(Qce(()=>_.documents.size),$ce(()=>be.getQueueDepths()),tle(()=>{let e=0;for(let t of _.documents.values())e+=t.directConnectionsCount;return{websocket:_.getConnectionsCount()-e,direct:e}})),rle(),y||(Pe=zMe({getLoadedDocuments:()=>_.documents,forceStore:(e,t)=>be.forceStore(e,t),getBase:e=>x.getReconciledBase(e),isBatchActive:()=>x.isBatchInProgress(),peekInFlight:e=>x.peekInFlightFlush(e),readDiskBytes:e=>{let t=zM(e,n),r,i;try{r=V(t),i=Wu(r).size}catch(t){let n=Mc(t);if(n===`ENOENT`)return null;throw n===`ELOOP`?new x7(`symlink cycle at content path: ${e}`):t}if(!BM(r,n))throw new x7(`symlink-escape: ${t} resolves outside the content dir`);if(i>524288)throw new x7(`document exceeds the open byte limit: ${e}`);try{return B(r,`utf-8`)}catch(e){if(Mc(e)===`ENOENT`)return null;throw e}},graceMs:e.stalenessGraceMs,sweepIntervalMs:e.stalenessSweepIntervalMs}));let S=Ce.shouldUnloadDocument.bind(Ce);Ce.shouldUnloadDocument=e=>{if(Re.has(e)||ze&&S(e))return!0;let t=e.name;return nS(t)||C(t)!==void 0||e.getXmlFragment(`default`).length!==0||e.getText(`source`).length!==0?!1:S(e)},Ve=async e=>{Re.add(e);try{await Ce.unloadDocument(e)}finally{Re.delete(e)}},ke=new aS(Ce),je=new tD(Ce),Me=new rD(Ce),we=new gw(Ce,e.agentSessionOptions);let w=we;Be.push(nle(()=>({active:w.liveSessionCount,limit:w.sessionLimit})));let T=Z5({derivedDocumentIndex:ye,onDocumentSettled:e=>Mt.current?.changed(e)});Ce.configuration.extensions.push(T);function E(e,t,n={}){b.warn({reason:e,docName:t,...n},`[auth-rejection] ${e}`)}Ce.configuration.extensions.push({__kind:`principal-auth`,async onAuthenticate(e){let t=e.token,n=FZ(t),r=n?.expectedServerInstanceId;if(typeof r==`string`&&r.length>0&&r!==ue)throw E(`server-instance-mismatch`,e.documentName,{claimedServerInstanceId:r,currentServerInstanceId:ue}),new PZ(`server-instance-mismatch`,`server instance mismatch: client claimed ${r}, this server is ${ue}`);let i=n?.expectedBranch;if(typeof i==`string`&&i.length>0){let t=await qe();if(t!==null&&i!==t)throw E(`branch-mismatch`,e.documentName,{claimedBranch:i,currentBranch:t}),new PZ(`branch-mismatch`,`branch mismatch: client claimed ${i}, server is on ${t}`)}if(!n)return;let a=e.context;typeof n.principalId==`string`&&(Le&&n.principalId===Le.id?a.principalId=Le.id:Le?console.warn(JSON.stringify({event:`principal-token-mismatch`,claimed:n.principalId,loaded:Le.id})):a.principalId=n.principalId),typeof n.tabSessionId==`string`&&(a.tabSessionId=n.tabSessionId),a.kind=`human`}}),Ce.configuration.extensions.push({__kind:`config-doc-admission-guard`,async onAuthenticate(e){if(!Zx(e.documentName)&&!Qx(e.documentName))return;let n=e.request,r=n.socket?.remoteAddress;if(r!==void 0&&!xB(r,t))throw E(`config-doc-admission-denied`,e.documentName,{check:`peer`}),Error(`config-doc admission requires loopback peer (peer=${r}, doc=${e.documentName})`);let i=e.requestHeaders,a=(i&&typeof i.get==`function`?i.get(`host`):null)??n.headers?.host??void 0;if(!CB(a,t))throw E(`config-doc-admission-denied`,e.documentName,{check:`host`}),Error(`config-doc admission requires a loopback or remote Host header (host=${a??`<absent>`}, doc=${e.documentName})`)}});let ee=L(n);function D(e){if(!TZ(e))return null;let t=L(ee,qx(e));return RM(t,ee)?t:null}Ce.configuration.extensions.push({__kind:`removal-redirect-guard`,async onAuthenticate(e){await WMe(e.documentName,{recentlyRemovedDocs:jt,resolveFilePath:D,fileExists:z})}}),Ce.configuration.extensions.push({__kind:`doc-lineage-guard`,async onAuthenticate(e){let t=FZ(e.token);eMe(e.documentName,t?.expectedDocLineageEpoch,{getLoadedDoc:e=>Ce.documents.get(e)})}}),Ce.configuration.extensions.push({__kind:`system-doc-broadcast-guard`,async beforeHandleMessage(e){if(e.documentName!==`__system__`)return;let t=new L8(e.update);if(t.readVarString(),t.readVarUint()===J8.BroadcastStateless)throw Error(`inbound BroadcastStateless on ${ro} rejected — server-only channel`)}});let O=EZ({hocuspocus:Ce,durabilityState:x,ingressPolicy:t,sessionManager:we,commentDocHooksRef:Mt,contentDir:n,getGeneratedIndexSettingsStatus:Tt,setGeneratedIndexEnabled:Et,contentFilter:ve,serverInstanceId:ue,getFileIndex:()=>Qt?Qt.getFileIndex():new Map,getAttachmentFolderPath:te,getAllFilesIndex:()=>Qt?Qt.getAllFilesIndex():new Map,getFileIndexGeneration:()=>Qt?.getFileIndexGeneration()??0,mutateFileIndex:e=>{let t=e.kind===`update`?yt(e.docName):void 0;switch(Qt?.mutateFileIndex(e),e.kind){case`update`:W5(t,e.content,e.docName)&&ht(e.docName);break;case`create`:case`conflict`:ht(e.docName);break;case`delete`:_t(e.docName);break;case`rename`:_t(e.oldDocName),ht(e.newDocName);break;case`folder-create`:case`folder-delete`:gt(e.relativePath);break;case`asset-create`:case`asset-delete`:case`file-create`:case`file-update`:case`file-delete`:break;default:$R(e)}},getFolderIndex:()=>Qt?Qt.getFolderIndex():new Map,getAliasMap:()=>Qt?Qt.getAliasMap():new Map,getFolderAliasIndex:()=>Qt?Qt.getFolderAliasIndex():new Map,rescanFiles:()=>Qt?.rescanFromDisk(),enableTestRoutes:d,shadowRef:j,flushGitCommit:()=>be.flushPendingGitCommit(),flushContributors:()=>be.flushContributors(),getCurrentBranch:()=>en?.getLastKnownBranch()??null,getDiskAckSVs:()=>ke?.getLatestDiskAckSVsAsBase64()??{},contentRoot:p,derivedDocumentIndex:ye,signalChannel:Je,agentFocusBroadcaster:je,agentPresenceBroadcaster:Me,onAgentWrite:e.onAgentWrite,getSyncEngine:()=>tn,localOpCliArgs:h,authStreamHeartbeatMs:g,projectDir:r,resolveEmbed:me,getBridgeLossReporter:()=>Oe,getPrincipal:()=>Le,acpRegistry:fe,loadAcpCustomAgents:()=>$d(de,N(`acp-registry`)),homeDirOverride:u,forceUnloadDocument:Ve,ready:We,recentlyRemovedDocs:jt,serializeDoc:Bt,evictManagedArtifactLkg:e=>{be.managedArtifactCtx.lkgCache.delete(e)},semanticSearch:Ie,getSemanticSimilarityFloor:()=>ie().similarityFloor,getLinterBaseConfig:()=>ne(),getLinksValidationSetting:()=>re(),getLinkPreviewsEnabled:k,getConfigDiagnostics:ae,embeddingsSecretsFile:Gj(u),readSemanticProviderConfig:ie,ephemeral:y,onReferencedAssetsCacheInvalidator:e=>{Ne=e}});Ce.configuration.extensions.push(O),Ee=O.nativeApi,De=O.localApi;let oe=Cs({absPath:zs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for bridge guards`)}),se=oe.value.bridge.deferGuard.enabled,pe=oe.value.bridge.fixedPoint.enabled,A=oe.value.bridge.preDrain.enabled;Se=oe.value.lossCapture.enabled?new goe({projectDir:r,maxBytes:oe.value.lossCapture.maxBytes}):void 0,oe.value.bridge.lossDetector.enabled&&(Oe=cce({shadow:()=>j.current,ring:Se,getBranch:()=>en?.getLastKnownBranch()??`main`,contentRoot:p??``}),we.attachBridgeLossReporter(Oe)),Ce.configuration.extensions.push(O7({mdManager:ys,schema:vs,shadowRef:j,contentRoot:p,getCurrentBranch:()=>en?.getLastKnownBranch()??null,resolveEmbed:me,resolveSize:_e,deferGuardEnabled:se,lossDetectorEnabled:oe.value.bridge.lossDetector.enabled,fixedPointBackstopEnabled:pe,preDrainEnabled:A,lossRing:Se})),Ce.configuration.extensions.push(RNe()),Ce.configuration.extensions.push(jje({getSyncEngine:()=>tn,projectDir:r,contentDir:n}))}catch(e){for(let e of Be.splice(0))e();throw Pe?.dispose(),Pe=null,bc(de),e}let It=null,Lt=new Map,Rt=[];function zt(e,t){let n=L(e,`rescue`),r=L(n,qx(t));return RM(r,n)?r:null}function Bt(e){let t=Ce.documents.get(e);return t?qR(t):null}let Vt=(e,t)=>WR(x,Ce,e,t,me,_e,Oe);function Ut(e){if(!mS(e)||tn?.getConflicts().some(t=>v5(t,e.name,r,n)))return;let t=e.getMap(`lifecycle`);t.delete(`status`),t.delete(`reason`)}let Wt=e=>{if(!e)return;let t=`[[${e}]]`;for(let[n]of Ce.documents){if(nS(n))continue;let r=Ce.documents.get(n);if(!r)continue;let i=r.getText(`source`).toString();if(i.includes(t))try{r.transact(()=>{IR(r,i,me,n)},FR)}catch(t){b.error({err:t,docName:n,assetBasename:e},`[asset-event] failed to re-render ${n} for asset basename ${e}`)}}},Gt=null,Kt=e=>{e&&(Gt===null&&(Gt=new Set,setImmediate(()=>{let e=Gt;if(Gt=null,e)try{for(let t of e)Wt(t)}catch(t){b.error({err:t,basenames:[...e]},`[asset-event] dedup rerender pass crashed`)}})),Gt.add(e))};function qt(e){switch(e.kind){case`rename`:return e.newDocName;case`asset-create`:case`asset-delete`:case`folder-create`:case`folder-delete`:case`file-create`:case`file-update`:case`file-delete`:return e.relativePath;case`create`:case`update`:case`delete`:case`conflict`:return e.docName;default:return $R(e)}}async function Jt(e){try{switch(e.kind){case`create`:b.info({docName:e.docName},`[reconcile] create: ${e.docName}`),await ye.recordDiskUpsert(e.docName,e.content),Je(`files`),ht(e.docName),Ft(e.docName);break;case`update`:{let{docName:t,content:n}=e;W5(e.previousIndexedFields,n,t)&&ht(t);let r=Ce.documents.get(t);if(!r){await ye.recordDiskUpsert(t,n);return}let i=C(t)??``,a=Bt(t)??i,o=BR({docName:t,base:i,ours:a,theirs:n}),s=oz(i).slice(0,6),c=oz(a).slice(0,6),l=oz(n).slice(0,6);switch(b.info({docName:t,base:s,ours:c,theirs:l,result:o.kind},`[reconcile] ${t} base=${s} ours=${c} theirs=${l} result=${o.kind}`),o.kind){case`noop`:Ut(r),await ye.recordDiskUpsert(t,n);break;case`clean`:{let e=!1;try{Vt(t,o.newContent),w(t,o.newContent),Wb(),Ut(r),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply clean content to Y.Doc for ${t}`),w(t,n),Ut(r)}e&&await ye.recordDiskUpsert(t,n)}break;case`merged`:{let e=!1;try{Vt(t,o.newContent),w(t,n),Wb(),Ut(r),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply merged content to Y.Doc for ${t}`),w(t,n),Ut(r)}e&&await ye.recordDiskUpsert(t,n)}break;case`conflicts`:{let e=!1;try{Vt(t,o.newContent),w(t,o.newContent),Wb(),Gb(),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply conflict content to Y.Doc for ${t}`),w(t,n)}{let e=r.getMap(`lifecycle`);e.set(`status`,`conflict`),e.set(`reason`,`merged-with-markers`)}e&&await ye.recordDiskUpsert(t,n);break}case`refused`:{Gb();let e=r.getMap(`lifecycle`);e.set(`status`,`conflict`),e.set(`reason`,o.reason);break}}break}case`delete`:{let{docName:t}=e,n=Ce.documents.get(t);if(!n){await ye.recordDiskDelete(t),Je(`files`),Pt(t),_t(t),console.info(JSON.stringify({event:`recently-removed-docs-populate`,docName:t,kind:`deleted`,source:`watcher-delete`}));return}let r=C(t)??``,i=Bt(t)??``,a=i!==r;if(a&&j.current){let e=j.current,n=en?.getLastKnownBranch()??`main`;queueMicrotask(()=>{jx(e,p??``,{kind:`external-change-rescue`,docName:t,contents:i,label:`External change recovered @ ${new Date().toISOString()}`,branch:n,metadata:{incomingDiskSha:``}}).then(()=>{qb(),b.info({docName:t},`[reconcile] rescue checkpoint saved (delete): ${t}`)}).catch(e=>{b.error({docName:t,err:e},`[reconcile] rescue checkpoint write failed: ${t}`)})})}n.getMap(`lifecycle`).set(`status`,`deleted-upstream`),T(t),await ye.recordDiskDelete(t),b.info({docName:t,isDirty:a},`[reconcile] delete: ${t} (dirty=${a})`),Ce.closeConnections(t),await Ve(n),Je(`files`),Pt(t),_t(t),console.info(JSON.stringify({event:`recently-removed-docs-populate`,docName:t,kind:`deleted`,source:`watcher-delete`}));break}case`rename`:{let{oldDocName:t,newDocName:n,content:r}=e,i=Ce.documents.get(t);if(T(t),w(n,r),await ye.recordDiskRename(t,n,r),i){let e=i.getMap(`lifecycle`);e.set(`status`,`renamed`),e.set(`newPath`,n)}b.info({oldDocName:t,newDocName:n},`[reconcile] rename: ${t} → ${n}`),Je(`files`),Nt(t,n),console.info(JSON.stringify({event:`recently-removed-docs-populate`,from:t,to:n,kind:`renamed`,source:`watcher-rename`})),_t(t),ht(n);break}case`conflict`:{let{docName:t}=e,n=Ce.documents.get(t);if(!n)return;let r=Bt(t);r===null?b.warn({docName:t},`[reconcile] case 'conflict': serializeDoc returned null for ${t}; reconciledBase snapshot skipped — post-resolution reconcile may degrade to 3-way merge`):w(t,r);let i=n.getMap(`lifecycle`);i.set(`status`,`conflict`),i.set(`reason`,`conflict-markers`),b.info({docName:t},`[reconcile] conflict markers detected: ${t}`);break}case`asset-create`:A.add(e.relativePath),Je(`files`),Kt(pu(e.relativePath));break;case`asset-delete`:A.remove(e.relativePath),Je(`files`),Kt(pu(e.relativePath));break;case`folder-create`:case`folder-delete`:Je(`files`),gt(e.relativePath);break;case`file-create`:case`file-update`:await ye.recordFileTargetUpsert(e.relativePath),Ne?.(),Je(`files`);break;case`file-delete`:await ye.recordFileTargetDelete(e.relativePath),Ne?.(),Je(`files`);break;default:$R(e)}}catch(t){let n=qt(e);b.error({err:t,kind:e.kind,label:n},`[reconcile] failed to handle ${e.kind} for ${n}`)}}let Yt=[];async function Xt(e){if(D()){Yt.push(e);return}await Jt(e)}async function Zt(){let e=Yt.splice(0,Yt.length);for(let t of e)await Jt(t)}let Qt=null,en=null,tn=null,nn=null;async function rn(e){if(Ce.documents.size===0)return;let t=!1,n=new Promise(e=>{Ce.configuration.extensions.push({async afterUnloadDocument({instance:n}){!t&&n.getDocumentsCount()===0&&(t=!0,e())}})}),r=Array.from(Ce.documents.keys());Ce.closeConnections(),Ce.flushPendingStores();for(let e of Ce.documents.values())e.getConnectionsCount()===0&&Ce.unloadDocument(e).catch(t=>{console.warn(JSON.stringify({event:`ok-shutdown-unload-document-failed`,docName:e.name,reason:t instanceof Error?t.message:String(t)}))});let i,a=new Promise((n,a)=>{i=setTimeout(()=>{t=!0;let n=Array.from(Ce.documents.keys()),i=[],o=[];if(j.current){for(let e of n)if(!nS(e))try{let t=Bt(e);if(t===null){b.warn({docName:e},`[rescue] skipping ${e} — document dropped from map mid-rescue`),o.push(e);continue}let n=zt(j.current.gitDir,e);if(!n){b.warn({docName:e,gitDir:j.current.gitDir},`[rescue] path-traversal guard rejected docName: ${e}`),o.push(e);continue}Nu(P(n),{recursive:!0}),Ku(n,t,`utf-8`),qb(),i.push(e),b.info({docName:e},`[rescue] rescue buffer saved on flush timeout: ${e}`)}catch(t){o.push(e),b.error({err:t,docName:e},`[rescue] failed to write rescue buffer for ${e}`)}}else b.warn({stillLoadedCount:n.length},`[rescue] shadow repo unavailable at flush timeout — ${n.length} doc(s) will be lost: [${n.join(`, `)}]`),o.push(...n);let s=i.length>0||o.length>0?` — rescued [${i.join(`, `)}]${o.length>0?`, lost [${o.join(`, `)}]`:``}`:``;a(Error(`flushAllStoresAndWait timeout after ${e}ms — ${n.length}/${r.length} docs did not unload: [${n.join(`, `)}]${s}`))},e)});try{await Promise.race([n,a])}finally{i!==void 0&&clearTimeout(i)}}async function an(){return nn||(nn=(async()=>{let e=Date.now(),t=[];ze=!0;try{await mt()}catch(e){b.warn({err:e},`[index] generated index shutdown drain failed`),t.push({phase:`generated-index-drain`,error:String(e)})}for(let e of Be.splice(0))e();try{await Pe?.dispose()}catch(e){b.warn({err:e},`[server] staleness watchdog drain failed during destroy`)}Pe=null;try{Ac(de)}catch(e){b.warn({err:e},`[server] failed to mark server.lock draining`)}if(Ot!==null&&(clearTimeout(Ot),Ot=null),kt)try{E7(r,jt.entries())}catch(e){b.warn({err:e},`[removed-docs-journal] failed to persist removal journal during shutdown`),t.push({phase:`removed-docs-journal-flush`,error:String(e)})}let n,i=await Promise.race([We.then(()=>`completed`,e=>(b.debug({err:e},`[server] init incomplete during shutdown`),`failed`)),new Promise(e=>{n=setTimeout(()=>e(`timeout`),5e3)})]);n!==void 0&&clearTimeout(n),i===`timeout`&&b.warn({},`[server] init did not complete within 5s during shutdown`);let a=Ce.documents.size;M?.destroy();try{try{try{Ae&&=(clearTimeout(Ae),null),en&&=(await en.unsubscribe(),null),Qt&&=(await Qt.unsubscribe(),null);for(let{docName:e,cleanup:t}of Rt)try{await t()}catch(t){b.warn({err:t,docName:e},`[server] failed to stop config-file-watcher for ${e}`)}Rt.length=0}catch(e){t.push({phase:`watcher-unsubscribe`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-1 watcher unsubscribe failed`)}try{ke?.destroy(),Me?.destroy(),It&&=(await It.disconnect(),null);for(let[e,t]of Lt)try{await t.disconnect()}catch(t){b.warn({err:t,docName:e},`[server] failed to disconnect ${e} during shutdown`)}Lt.clear()}catch(e){t.push({phase:`cc1-teardown`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-1b CC1 teardown failed`)}try{await we.closeAll()}catch(e){t.push({phase:`agent-session-drain`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-2 agent session drain failed`)}try{await wce()}catch(e){t.push({phase:`parse-pool-teardown`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-2b parse pool teardown failed`)}try{await rn(m)}catch(e){t.push({phase:`flush-all-stores`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-3 flush failed`)}ye.close();let e;try{await Promise.race([(async()=>{await be.flushPendingGitCommit(),await be.waitForPendingCommits()})(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`L2 git flush timeout`)),m)})])}catch(e){t.push({phase:`git-commit-flush`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-4 git commit flush failed`)}finally{e!==void 0&&clearTimeout(e)}try{tn&&=(await tn.destroy(),null)}catch(e){t.push({phase:`sync-engine-stop`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown sync-engine-stop failed`)}}finally{if(j.current){let e;try{await Promise.race([dx(j.current).drain(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`shadow mutator drain timeout`)),m)})])}catch(e){t.push({phase:`shadow-mutator-drain`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-5 shadow mutator drain failed`)}finally{e!==void 0&&clearTimeout(e)}try{let e=(await gc({baseDir:r,timeout:{block:5e3}}).revparse(`HEAD`)).trim();e&&Ku(L(j.current.gitDir,`last-known-head`),e,`utf-8`)}catch{}try{Hse(j.current)}catch(e){t.push({phase:`shadow-repo-release`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-5 destroyShadowRepo failed`)}}let n=Date.now()-e;t.length===0?b.info({documentCount:a,durationMs:n},`[server] shutdown flushed ${a} documents in ${n}ms`):b.warn({documentCount:a,durationMs:n,phaseErrors:t},`[server] shutdown flushed ${a} documents in ${n}ms with ${t.length} phase error(s)`)}}finally{try{bc(de,{deferUnlinkToExit:!0})}catch(e){t.push({phase:`server-lock-release`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-6 releaseServerLock failed`)}try{await Xs()}catch(e){t.push({phase:`telemetry-shutdown`,error:e instanceof Error?e.message:String(e)})}}})(),nn)}let on=[];async function sn(){try{Le=await S7(r),b.info({principalId:Le.id},`[server] principal loaded`)}catch(e){b.warn({err:e},`[server] principal load failed — browser writes will use SERVICE_WRITER`)}if(!j.current)try{j.current=await _x(r),b.info({gitDir:j.current.gitDir},`[server] history repo initialized at ${j.current.gitDir}`)}catch(e){b.error({err:e},`[server] history repo init failed`),on.push(`shadow-repo`)}if(j.current){let e=null;try{e=Lq(j.current.gitDir),oJ(j.current.gitDir,e),Hq(j.current.gitDir,e),b.info({entries:e.byTo.size},`[server] rename log loaded (${e.byTo.size} entries)`)}catch(e){b.warn({err:e},`[rename-log] boot-time load/sweep failed; rename history unavailable`)}if(e){let t=1e4;try{await Promise.race([sJ(j.current,e,{rebuild:!0}),new Promise((e,n)=>setTimeout(()=>n(Error(`boot-time GC exceeded ${t}ms`)),t))])}catch(e){b.warn({err:e},`[rename-log] boot-time GC/rebuild failed; index loaded without GC`)}}try{await M?.runBootMaintenance()}catch(e){b.warn({err:e},`[shadow-maintenance] boot maintenance failed (non-fatal)`)}}if(j.current)try{await hx(j.current).raw(`rev-parse`,`--git-dir`)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`not a git repository`)||t.includes(`invalid object`)){b.warn({},`[server] history repo appears corrupted — reinitializing`);try{j.current=await _x(r)}catch(e){b.error({err:e},`[server] history repo reinit failed`),j.current=void 0,on.includes(`shadow-repo`)||on.push(`shadow-repo`)}}else b.error({err:e},`[server] history repo check failed (transient?)`)}if(j.current)try{let e=L(j.current.gitDir,`last-known-head`),t=null;try{t=B(e,`utf-8`).trim()||null}catch{}let n=null;try{n=(await gc({baseDir:r,timeout:{block:1e4}}).revparse(`HEAD`)).trim()||null}catch{}if(n!==null){if(n!==t){let e=`main`;try{let t=(await gc({baseDir:r,timeout:{block:1e4}}).raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();t&&t!==`HEAD`&&(e=t)}catch{}b.info({lastKnownHead:t,currentHead:n,branch:e},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=import`);try{await Ox(j.current,p??``,t,n,e),Kb()}catch(e){b.warn({err:e},`[head-drift] commitUpstreamImport failed — continuing`)}}else b.info({currentHead:n},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=noop`);try{Ku(e,n,`utf-8`)}catch(e){b.warn({err:e},`[head-drift] failed to write last-known-head`)}}}catch(e){b.warn({err:e},`[head-drift] check failed — continuing`)}try{let e=_q(n,r);if(e.recovered&&e.journal){let t=e.journal.version===2?e.journal.fromPath:e.journal.sourceDocName,n=e.journal.version===2?e.journal.toPath:e.journal.destinationDocName;b.warn({journalVersion:e.journal.version,fromPath:t,toPath:n,restoredDocNames:e.restoredDocNames},`[managed-rename] recovered pending rename ${t} -> ${n}`)}}catch(e){b.error({err:e},`[server] managed rename recovery failed`),on.push(`managed-rename-recovery`)}try{let e=Nhe(r);(e.deleted>0||e.errors>0)&&b.info({scanned:e.scanned,deleted:e.deleted,errors:e.errors},`[upload-tempfile-sweep] swept ${e.deleted} orphan tempfile(s)`)}catch(e){b.error({err:e},`[server] upload-tempfile sweep failed`),on.push(`upload-tempfile-sweep`)}try{It=await Ce.openDirectConnection(ro),ke?.emitServerInfo(ue,S())}catch(e){b.error({err:e},`[server] failed to open __system__ direct connection — CC1 push disabled`),on.push(`cc1-push`)}let t=y?[]:ar;for(let e of t)try{let t=await Ce.openDirectConnection(e);Lt.set(e,t)}catch(t){b.error({err:t,docName:e},`[server] failed to open ${e} direct connection — config bind degraded`),on.push(`config-doc:${e}`)}let i=new Map([[lt,zs(`project`,r)],[Tr,zs(`project-local`,r)],[$t,zs(`user`,r,u)]]);for(let e of t){let t=i.get(e);if(t)try{b.info({docName:e,path:t},`[config-file-watcher] starting`);let n=await s5(t,t=>{let n=Ce.documents.get(e);b.info({docName:e,hasDocument:n!==void 0,contentLength:t.length},`[config-file-watcher] file changed`);let r=_5(n??null,e,t,be.configPersistenceCtx);b.info({docName:e,outcome:r},`[config-file-watcher] applyExternalConfigChange outcome`),le(e)});Rt.push({docName:e,cleanup:n}),b.info({docName:e,path:t},`[config-file-watcher] started`)}catch(n){b.warn({err:n,docName:e,path:t},`[config-file-watcher] failed to start for ${e}`),on.push(`config-file-watcher:${e}`)}}if(!y){let e=(e,t)=>{let n=KK(e,be.managedArtifactCtx);if(!n)return;let r=ZK(Ce.documents.get(n)??null,n,t,be.managedArtifactCtx);b.info({docName:n,outcome:r},`[managed-artifact-watcher] external change`),Je(`files`),Zr(n)&&ye.refreshGlobalSkillNodes().catch(e=>{b.warn({err:e,docName:n},`[backlinks] global skill bundle re-ingest failed`)})},t=e=>{let t=KK(e,be.managedArtifactCtx);Je(`files`),t&&Zr(t)&&ye.refreshGlobalSkillNodes().catch(e=>{b.warn({err:e,docName:t},`[backlinks] global skill bundle prune failed`)})};try{let n=VK(be.managedArtifactCtx),r=await kMe(n,e,t);Rt.push({docName:`__skill-files__`,cleanup:r}),b.info({roots:n},`[managed-artifact-watcher] skills started`)}catch(e){b.warn({err:e},`[managed-artifact-watcher] skills failed to start`),on.push(`managed-artifact-watcher:skills`)}try{let e=L(RK(be.managedArtifactCtx),`.ok`,`skill-state.yml`),t=await s5(e,()=>{Je(`files`)});Rt.push({docName:`__skill-state__`,cleanup:t}),b.info({path:e},`[skill-state-watcher] started`)}catch(e){b.warn({err:e},`[skill-state-watcher] failed to start`),on.push(`skill-state-watcher`)}}try{let e=L(n,`.okignore`),t=L(r,`.gitignore`),i=null;try{let e=du(`git`,[`rev-parse`,`--git-common-dir`],UM({cwd:r,encoding:`utf-8`,timeout:5e3}));if(e.status===0&&e.stdout){let t=F(L(r,e.stdout.trim()),`info`,`exclude`);z(P(t))&&(i=t)}}catch{}let a=i?[e,t,i]:[e,t],o=b;o.info({okignorePath:e,gitignorePath:t,gitInfoExcludePath:i,ephemeral:y},`[ignore-watcher] starting multi-path watcher for .okignore + .gitignore (+ .git/info/exclude when present)`);let s=y?null:await Sje(a,(t,n)=>{(async()=>{if(t===e)try{let e=_5(Ce.documents.get(`__config__/okignore`)??null,fs,n,be.configPersistenceCtx);o.info({docName:fs,outcome:e},`[ignore-watcher] applyExternalConfigChange outcome`)}catch(e){o.error({err:e,changedPath:I(r,t)},`[ignore-watcher] applyExternalConfigChange failed; rebuild proceeds independently`)}let i=await ve.rebuildIgnorePatterns();if(i.ok)o.info({changedPath:I(r,t),patternCount:i.patternCount,nestedFileCount:i.nestedFileCount,durationMs:i.durationMs},`[ignore-watcher] rebuild succeeded — broadcasting files channel`),ke?.signal(`files`);else{let e=I(r,t)||`.`;o.warn({changedPath:e,error:i.error.message},`[ignore-watcher] rebuild failed — emitting config-ignore-nested-error`),ke?.emitConfigIgnoreNestedError(e,i.error.message)}})().catch(e=>{o.error({err:e,changedPath:I(r,t)||`.`},`[ignore-watcher] handler threw`)})});s&&(Rt.push({docName:`__ignore-files__`,cleanup:s}),o.info({okignorePath:e,gitignorePath:t},`[ignore-watcher] multi-path watcher started`))}catch(e){b.warn({err:e,projectDir:r,contentDir:n},`[ignore-watcher] failed to start multi-path watcher`),on.push(`ignore-files-watcher`)}let a=J5(r).branch??`main`;E(a),Ge();let o=ye.beginStartup(a),s=!1,c=performance.now();try{await Os(`ok.boot.indexes`,void 0,async()=>{let{deletedDocNames:e,backlinkIndexDegraded:t}=await o.backlinksReady;t&&on.push(`backlink-index`);let i=0;for(let t of e)nS(t)||jt.peek(t)?.kind!==`renamed`&&(jt.setDeleted(t),i++);i>0&&b.info({count:i},`[removal-guard] tombstoned docs deleted while the server was down`);let a=performance.now(),c=/^\.(?!ok\/)[A-Za-z0-9_-]+\/skills\//,l=ve?hL(n):new Set,d=e=>{e.some(e=>c.test(I(n,e).split(R).join(`/`)))&&(Ae&&clearTimeout(Ae),Ae=setTimeout(()=>{Ae=null;try{rX(r,n).then(e=>{e>0&&(b.info({refreshed:e},`[in-place-skills] re-synced recorded copies`),ke?.signal(`files`))}).catch(e=>b.warn({err:e},`[in-place-skills] copy re-sync failed`));let e=hL(n);if(!(e.size!==l.size||[...e].some(e=>!l.has(e))))return;l=e,ve.rebuildIgnorePatterns().then(t=>{t.ok?(b.info({skillDirs:e.size},`[in-place-skills] canonical set changed — filter rebuilt`),ke?.signal(`files`)):b.warn({error:t.error.message},`[in-place-skills] filter rebuild failed after skill re-scan`)}).catch(e=>b.warn({err:e},`[in-place-skills] rebuild threw`))}catch(e){b.warn({err:e},`[in-place-skills] re-scan trigger failed`)}},500))};Qt=await Os(`ok.boot.seed-walk`,void 0,async()=>Hz(n,Xt,ve,{onRawBatch:d})),rX(r,n).then(e=>{e>0&&b.info({refreshed:e},`[in-place-skills] boot copy re-sync`)}).catch(e=>b.warn({err:e},`[in-place-skills] boot copy re-sync failed`));{let e=u??Ju();rX(e,e,pL(e)).then(e=>{e>0&&b.info({refreshed:e},`[in-place-skills] global boot copy re-sync`)}).catch(e=>b.warn({err:e},`[in-place-skills] global copy re-sync failed`))}EL(`seedWalkMs`,Math.round(performance.now()-a));{let e=L(n),t=0;for(let[n]of jt.entries()){if(!TZ(n))continue;let r=L(e,`${n}${Gx(n)}`);RM(r,e)&&z(r)&&(jt.delete(n),t++)}t>0&&b.info({count:t},`[removal-guard] dropped journaled removal entries whose file re-appeared while the server was down`)}let f=await ye.settleStartupAfterWatcherSeed();s=!0,f.tagIndexDegraded&&on.push(`tag-index`);let p=0;try{v===void 0?await kZ({contentDir:n,contentFilter:ve,basenameIndex:A,onSkip:(e,t,n)=>{p++,b.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during seed (${e}${t?` ${t}`:``})`)}}):iye({contentDir:n,basenameIndex:A,onSkip:(e,t,n)=>{p++,b.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during single-file seed (${e}${t?` ${t}`:``})`)}}),p>0&&(b.warn({count:p},`[basename-index] startup seed completed with ${p} skipped entries — embeds under inaccessible subtrees will not resolve`),on.push(`basename-index-partial`))}catch(e){b.error({err:e},`[basename-index] startup seed failed`),on.push(`basename-index`)}})}catch(e){if(b.error({err:e},`[server] disk bridge watcher failed to start`),on.push(`file-watcher`),!s){let e=await ye.settleStartupAfterWatcherSeed();s=!0,e.tagIndexDegraded&&on.push(`tag-index`)}}finally{EL(`indexesMs`,Math.round(performance.now()-c)),Qt&&DL(`fileCount`,Qt.getFileIndex().size)}try{en=await aMe(r,async({trigger:e})=>{if(b.info({trigger:e},`[batch] begin trigger=${e}`),woe(),Ce.flushPendingStores(),await be.flushPendingGitCommit(),ee(!0),j.current){let e=S(),t=J5(r).branch??e,n=[];for(let[e,t]of Ce.documents){if(nS(e))continue;let r=null;if(t.transact(()=>{r=Bt(e)},zNe),r===null)continue;let i=C(e)??r;n.push({docName:e,markdown:r,diskSnapshot:i})}if(n.length>0)try{let r=await $se(j.current,e,Ex.id,n,t);r&&(Doe(),b.info({count:n.length,branch:e,sha:r.slice(0,8)},`[history] parked ${n.length} docs on ${e} → ${r.slice(0,8)}`))}catch(e){b.error({err:e},`[shadow] park failed`)}}},async e=>{let t=Yt.length,i=e.newBranch??`main`;if(b.info({kind:e.batchKind,headMoved:e.headMoved,docs:t,timeout:!!e.timeout},`[batch] end kind=${e.batchKind} headMoved=${e.headMoved} docs=${t}${e.timeout?` timeout`:``}`),e.batchKind===`within-branch`){if(ee(!1),await Zt(),e.headMoved&&e.newHead){let t=VNe(r,L(n),e.oldHead,e.newHead);if(t.size>0){Jue(t.keys());for(let[e,n]of t)xj(e,ene(n.email),n.name,n.email,Rd(e));await be.flushContributors()}}if(await be.flushDeferredStores(`within-branch`),tn!==null)try{await tn.reconcileConflictsFromGit()}catch(e){b.warn({err:e},`[head-watcher] sync engine conflict reconcile failed`)}}else{Eoe(),Yt.splice(0,Yt.length);let t=!1,r;try{E(i),r=await ye.beginBranchSwitch(i),ve.rebuildDirCount();try{let e=0;A.clear(),await kZ({contentDir:n,contentFilter:ve,basenameIndex:A,onSkip:(t,n,r)=>{e++,b.warn({reason:t,code:n,path:r,branch:i},`[basename-index] skipped entry during branch-switch reseed (${t}${n?` ${n}`:``})`)}}),e>0&&(b.warn({count:e,branch:i},`[basename-index] branch-switch reseed completed with ${e} skipped entries — embeds under inaccessible subtrees will not resolve on this branch`),on.includes(`basename-index-partial`)||on.push(`basename-index-partial`))}catch(e){b.error({err:e,branch:i},`[basename-index] branch-switch reseed failed`)}for(let[e,t]of Ce.documents)if(!nS(e))try{let r=zM(e,n);if(!z(r)){let n=C(e)??``,r=Bt(e)??``;if(r!==n&&j.current){let t=j.current;queueMicrotask(()=>{jx(t,p??``,{kind:`external-change-rescue`,docName:e,contents:r,label:`External change recovered @ ${new Date().toISOString()}`,branch:i,metadata:{incomingDiskSha:``}}).then(()=>{qb(),b.info({docName:e},`[reconcile] rescue checkpoint saved on branch switch: ${e}`)}).catch(t=>{b.error({docName:e,err:t},`[reconcile] rescue checkpoint write failed: ${e}`)})})}t.getMap(`lifecycle`).set(`status`,`deleted-upstream`),b.info({docName:e,branch:i},`[branch-switch] tombstone: ${e} (not on ${i})`);continue}let a=B(r,`utf-8`);Vt(e,a),w(e,a),b.info({docName:e},`[branch-switch] reset: ${e}`)}catch(t){b.error({err:t,docName:e},`[branch-switch] failed to reset ${e}`)}b.info({branch:i,docCount:Ce.documents.size},`[branch-switch] loaded branch ${i} (${Ce.documents.size} docs)`);try{await ye.settleBranchFromDisk(r)}catch(e){ye.abortBranchSwitch(r),b.error({err:e,branch:i},`[derived-index] branch-switch rebuild failed; relationship views may be stale`)}if(j.current&&e.batchKind===`cross-branch`){let e=0;for(let[t]of Ce.documents)if(!nS(t))try{let n=await tce(j.current,i,Ex.id,t);if(!n||n.markdown===n.diskSnapshot)continue;let r=C(t);if(!r)continue;let a=BR({docName:t,base:n.diskSnapshot,ours:n.markdown,theirs:r});switch(a.kind){case`merged`:case`clean`:Vt(t,a.newContent),w(t,a.newContent),e++;break;case`conflicts`:Vt(t,a.newContent),w(t,a.newContent),Gb(),e++;{let e=Ce.documents.get(t);if(e){let t=e.getMap(`lifecycle`);t.set(`status`,`conflict`),t.set(`reason`,`merged-with-markers`)}}break;case`noop`:case`refused`:break}}catch(e){b.error({err:e,docName:t},`[branch-switch] restore WIP failed for ${t}`)}e>0&&b.info({count:e,branch:i},`[branch-switch] restored ${e} parked docs on ${i}`)}if(e.oldBranch?.startsWith(`detached-`)&&j.current)try{let t=hx(j.current),n=(await t.raw(`for-each-ref`,`refs/wip/${e.oldBranch}/`,`--format=%(refname)`)).trim();n&&(await dx(j.current).withMutator(async()=>{for(let e of n.split(`
2026
- `))e&&await t.raw(`update-ref`,`-d`,e)}),b.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){b.error({err:e},`[branch-switch] detached cleanup failed`)}ee(!1),await be.flushDeferredStores(`discard-stale`),t=!0,ke?.emitBranchSwitched(i)}finally{ye.abortBranchSwitch(r),t||(ee(!1),await be.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&j.current&&t>0){let t=p??`.`;try{let n=await Ox(j.current,t,e.oldHead,e.newHead,i);Kb(),b.info({oldHead:e.oldHead?.slice(0,8)??`null`,newHead:e.newHead.slice(0,8),sha:n.slice(0,8)},`[history] upstream-import from ${e.oldHead?.slice(0,8)??`null`}..${e.newHead.slice(0,8)} → ${n.slice(0,8)}`)}catch(e){b.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){b.error({err:e},`[server] HEAD watcher failed to start`),on.push(`head-watcher`)}function l(e){for(let t of e)try{let e=LM(I(n,F(r,t)));if(e.startsWith(`..`))continue;let i=Bx(e),a=Ce.documents.get(i);if(!a)continue;let o=Bt(i);o===null?b.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):w(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),b.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){b.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function d(e){for(let t of e)try{let e=LM(I(n,F(r,t)));if(e.startsWith(`..`))continue;let i=Ce.documents.get(Bx(e));i&&Ut(i)}catch(e){b.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=IF(r);b.debug({resetAmbientCredentials:f,originKind:PF(r).kind},`[sync] ambient credential-chain reset decision at boot`);let m=hc(h,{resetAmbient:f}),g=O();g.mode!==`off`&&b.info({mode:g.mode,source:g.source},`[sync] mode active at boot`);try{tn=new INe({projectDir:r,contentDir:n,contentFilter:ve,contentRoot:p,mcpTomlEditor:e.mcpTomlEditor,mode:g.mode,pullIntervalSeconds:e.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds,credentialConfig:m,cc1Broadcaster:ke,detectGh:e.detectGh,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{ee(e),e||be.flushDeferredStores(`within-branch`).catch(e=>{b.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{b.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:d,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=j.current;n&&await Ax(n,p??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=j.current;n&&await Ax(n,p??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{b.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await bs({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||b.error({result:t,reason:e,humanError:Te(t.error),configPath:zs(`project-local`,r)},`[sync] failed to persist auto-disable — next restart WILL re-enable sync and re-trigger the same failure. Check permissions on the config path.`)}}),await tn.start()}catch(e){b.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),tn=null}Je(`files`),ye.announceReadyViews();let _=TL();_!==void 0&&EL(`readyMs`,_),oe()}return sn().then(()=>{Qe=!0,He(),ft()},e=>{$e=!0,et.abort(),ct({status:`failed`,indexCount:0}),ye.close(),Ge(),Ue(e)}),{hocuspocus:Ce,durabilityState:x,sessionManager:we,nativeApi:Ee,localApi:De,cc1Broadcaster:ke,agentFocusBroadcaster:je,agentPresenceBroadcaster:Me,maintenanceCoordinator:M,contentFilter:ve,basenameIndex:A,serverInstanceId:ue,destroy:an,ready:We,generatedIndexSweepReady:st,degraded:on,lockDir:de,get syncEngine(){return tn},getLinkPreviewsEnabled:k,resolveEmbed:me,acpRegistry:fe,acpPermissions:pe}}function d9(e){return e/1048576}function HNe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:d9(e.rss),heapTotalMb:d9(e.heapTotal),heapUsedMb:d9(e.heapUsed),externalMb:d9(e.external),arrayBuffersMb:d9(e.arrayBuffers)}}}let f9=null,p9=null,m9=null;const h9=1e6;let g9=null,_9=null;Ds(()=>{f9=null,p9=null,m9=null,g9?.disable(),g9=null,_9=null});function UNe(){if(f9)return;let e=Qs().createObservableGauge(`ok.server.memory.usage_megabytes`,{description:`Server process memory by section. Bounded labels: section ∈ {heap_used, heap_total, rss, external, array_buffers}.`,unit:`MB`});e.addCallback(e=>{let{snapshot:t}=HNe();e.observe(t.heapUsedMb,{section:`heap_used`}),e.observe(t.heapTotalMb,{section:`heap_total`}),e.observe(t.rssMb,{section:`rss`}),e.observe(t.externalMb,{section:`external`}),e.observe(t.arrayBuffersMb,{section:`array_buffers`})}),f9=e}function WNe(){if(!p9){let e=Qs().createObservableGauge(`ok.server.event_loop.delay_ms`,{description:`Event-loop delay percentiles over the last export window. Bounded labels: stat ∈ {p50, p99}.`,unit:`ms`});e.addCallback(e=>{if(!g9){g9=Ite({resolution:20}),g9.enable();return}e.observe(g9.percentile(50)/h9,{stat:`p50`}),e.observe(g9.percentile(99)/h9,{stat:`p99`}),g9.reset()}),p9=e}if(!m9){let e=Qs().createObservableGauge(`ok.server.cpu.utilization`,{description:`Process CPU time as a fraction of wall time since the previous export. Bounded labels: mode ∈ {user, system}.`,unit:`1`});e.addCallback(e=>{let t=process.cpuUsage(),n=process.hrtime.bigint(),r=_9;if(_9={cpu:t,hrtimeNs:n},!r)return;let i=Number(n-r.hrtimeNs)/1e3;i<=0||(e.observe((t.user-r.cpu.user)/i,{mode:`user`}),e.observe((t.system-r.cpu.system)/i,{mode:`system`}))}),m9=e}}const v9=N(`skill-migrate`);function y9(e){return[{host:`agents`,root:Eo},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=XD.indexOf(e.host),r=XD.indexOf(t.host);return(n===-1?XD.length:n)-(r===-1?XD.length:r)||e.host.localeCompare(t.host)})}const GNe=y9(fr),KNe=y9(jt);function qNe(e,t){return z(L(e,In(t)))}function JNe(e,t){Bs(P(t),{recursive:!0});try{Ns(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Us(e,t,{recursive:!0}),Ws(e,{recursive:!0,force:!0})}}function YNe(e,t,n){let r=PI(e,t,n);switch(r.kind){case`absent`:return{kind:`absent`};case`other`:return{kind:`occupied`,by:`different`};case`symlink`:return r.resolution===`target`?{kind:`store-link`}:{kind:`occupied`,by:`foreign-link`};case`dir`:return r.identity===`different`?{kind:`occupied`,by:`different`}:{kind:`same-copy`}}}function b9(e,t){let n;try{n=V(L(e,`.ok`,`skills`))}catch{n=L(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!V(L(e,t.dir)).startsWith(n+R)}catch{return!0}}).map(e=>e.name))}async function x9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??GNe,a={migrated:[],skipped:[]};if(!z(n))return a;let o;try{o=zu(n)}catch{return a}let s=I(t,n).split(R).join(`/`),c=new Set;for(let[e,n]of Object.entries(eX(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Co.test(e)||YF.has(e))continue;if(r.has(e)){a.skipped.push({name:e,reason:`placement-of-in-place`});continue}if(c.has(e)){a.skipped.push({name:e,reason:`recorded-placement`});continue}let o=L(n,e);if(!z(F(o,`SKILL.md`)))continue;let s=zD(o)?.contentHash;if(s===void 0)continue;let l=V(o),u=i.map(({host:n,root:r})=>{let i=L(t,r);return{host:n,root:r,path:F(i,e),escapes:HI(t,i),state:YNe(F(i,e),l,s)}}).filter(e=>!e.escapes),d=u.find(e=>e.state.kind===`store-link`||e.state.kind===`same-copy`)??u.find(e=>qNe(t,e.root));if(!d){a.skipped.push({name:e,reason:`no-usable-target`});continue}if(d.state.kind===`occupied`){a.skipped.push({name:e,reason:`target-occupied:${d.root} (${d.state.by})`});continue}d.state.kind===`same-copy`?Ws(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&Ws(d.path,{recursive:!0,force:!0}),JNe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(Ws(e.path,{recursive:!0,force:!0}),Us(d.path,e.path,{recursive:!0}));await vN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),v9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),v9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const S9=N(`skill-reconcile`),XNe=YF;function C9(){let e=[];for(let t of Vn){let n=fr[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:Eo,editor:null}),e}function ZNe(e,t){let n=I(e,L(t));return gu(n)?L(t):n}function w9(e){let{frontmatter:t,body:n}=Ur(e),r={};if(t!==``)try{let e=(0,nk.parse)(Fr(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function QNe(e,t){let n=w9(e),r=w9(t);if(n.body!==r.body)return!1;for(let e of Object.keys(n.fm))if(e in r.fm&&JSON.stringify(n.fm[e])!==JSON.stringify(r.fm[e]))return!1;return!0}function T9(e,t){let n=E9(e),r=E9(t);if(n.length!==r.length)return!1;let i=0;for(let a=0;a<n.length;a+=1){if(n[a]!==r[a])return!1;let o=n[a],s=F(e,o),c=F(t,o);if(i+=Wu(s).size+Wu(c).size,i>1048576)return!1;let l=B(s),u=B(c);if(!l.equals(u)&&(o!==`SKILL.md`||!QNe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function E9(e,t=``){let n=[];for(let r of zu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...E9(F(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function D9(e,t,n){Ws(t,{recursive:!0,force:!0}),Bs(e,{recursive:!0}),Is(ZNe(e,n),t,`dir`)}function O9(e,t){try{let n=Bu(e);return L(gu(n)?n:L(P(e),n))===L(t)}catch{return!1}}function $Ne(e,t){try{let n=Bu(e),r=gu(n)?L(n):L(P(e),n);if(!z(r))return!1;let i=I(L(t),r);return i!==``&&(i.startsWith(`..`)||gu(i))}catch(t){return S9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const ePe=[...Vn,`agents`];function tPe(e){for(let t of ePe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function nPe(e){let{projectDir:t,skillsRoot:n}=e;if(!z(n))return;let r;try{r=zu(n)}catch{return}let i=C9();for(let e of r){let r=tPe(e);if(r===null)continue;let a=L(n,e),o=L(n,r);if(z(o))try{let n=Mu(a);if(n.isSymbolicLink()||!n.isDirectory()||!z(F(a,`SKILL.md`))||!z(F(o,`SKILL.md`))||!T9(o,a))continue;for(let{rel:n}of i){let r=L(t,n);if(HI(t,r))continue;let i=F(r,e);O9(i,a)&&D9(r,i,o)}Ws(a,{recursive:!0,force:!0}),S9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){S9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function rPe(e){let{projectDir:t,skillsRoot:n}=e,r={healed:[],replaced:[],orphansRemoved:[],skipped:[]},i=new Map,a=(e,t)=>{if(t===null)return;let n=i.get(e)??new Set;n.add(t),i.set(e,n)};for(let{rel:e,editor:i}of C9()){let o=L(t,e);if(!z(o)||HI(t,o))continue;let s;try{s=zu(o)}catch(e){S9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(XNe.has(e))continue;let t=F(o,e),s=L(n,e),c=z(s);try{let l=Mu(t);if(l.isSymbolicLink()){if(O9(t,s)&&c)continue;if($Ne(t,n)){r.skipped.push({name:e,editor:i});continue}c?(D9(o,t,s),r.healed.push({name:e,editor:i})):(Ws(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Co.test(e)){S9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&T9(t,s)){D9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){S9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=hN(t);for(let[r,a]of i){let i=L(n,r);if(!z(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await _N(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??LI(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){S9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{nPe({projectDir:t,skillsRoot:n})}catch(e){S9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let k9=null,A9=!1;function j9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function M9(e){if(!j9())return;let t=Pk(e);k9=new sc({currentPath:L(t,`tolerance-telemetry.jsonl`),previousPath:L(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),nt(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};k9?.append(`${JSON.stringify(t)}\n`).catch(e=>{A9||(A9=!0,N(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function N9(){nt(null),await k9?.drain(),k9=null,A9=!1}gs();const iPe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],aPe=[`cache`,`tmp`];function oPe(e){let t=L(e,_e);if(!(()=>{if(!z(t))return!0;try{return zu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of iPe)z(L(e,t))&&n.push(t);for(let t of aPe){let r=L(e,t);try{z(r)&&Wu(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function sPe(e){let t=Td(e);switch(t.kind){case`directory`:return{kind:`main`,gitdir:t.path};case`linked`:return{kind:`linked`,gitdir:t.path};case`malformed-pointer`:return{kind:`linked`,gitdir:null};case`inaccessible`:case`absent`:return{kind:`main`,gitdir:null}}}const P9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function cPe(e){Phe();let t=e.projectDir??e.contentDir,n=dye({projectDir:t});if(n){let e=n.telemetry.attributeDenylist,t=[];for(let n of e){t.push(n);for(let e=1;e<=5;e++)t.push(`${`*.`.repeat(e)}${n}`)}rc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Zs({localSink:n?.telemetry}),M9(t),UNe(),WNe();let{kind:r,gitdir:i}=sPe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=Hs(i));let o=lye(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>Os(`ok.boot`,{attributes:a},async()=>lPe(e)),l=()=>{if(s)try{let e=ms.extract(_s.active(),{traceparent:s});return _s.with(e,c)}catch(e){N(`boot`).warn({err:e},`ok.boot trace-join failed — starting unparented boot`)}return c()},u;try{u=await l()}catch(e){throw o.uninstall(),e}let d=u.destroy;return u.destroy=async()=>{try{await d()}finally{o.uninstall()}},u}async function lPe(e){let t=e.skipAutoInit??!1,n=e.log??N(`boot`),r=e.serverRuntime??{...bi(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((po(r)||!Va(i))&&!r.allowExternal)throw new _B(`refusing to start: the server would bind a non-loopback address (${(Va(i)?r.bind:i).join(`, `)}), which exposes this server beyond this machine. Consent with OK_ALLOW_EXTERNAL=1, or server.allowExternal: true in .ok/local/config.yml.`);let a=bB({serverRuntime:r});r.allowExternal&&!r.loopbackOnly&&r.externalUrlSource!==`server`&&(a.bindLiterals.length===0?n.warn({bind:r.bind},`[ingress] server.allowExternal is set on a wildcard bind (0.0.0.0/::) with no server.externalUrl — external requests will be REFUSED (403 host-not-allowed) because no external Host name is admitted. Set server.externalUrl to the public origin clients dial (e.g. behind a reverse proxy or platform edge), or bind a specific address instead of a wildcard.`):n.info({bind:r.bind},`[ingress] server.allowExternal is set with no server.externalUrl — the bind-address literals are admitted as Host names (direct IP access). Set server.externalUrl to admit a hostname.`));let o=process.env.OK_LOCK_KIND===`mcp-spawned`||process.env.OK_LOCK_KIND===`interactive`?process.env.OK_LOCK_KIND:void 0,s=e.lockKind??o??`interactive`,{createServer:c}=await import(`node:http`),{markServerLockDraining:l,releaseServerLock:u,updateServerLockPort:d}=await import(`./server-lock-e6dYuoeq.mjs`),f=!1;if(!t&&e.autoInitFn)try{f=!!await e.autoInitFn()}catch(e){n.warn({err:e},`autoInitFn failed`)}let p=e.projectDir??e.contentDir,m=L(p,`.ok`);if(!z(L(m,`config.yml`)))throw new o8(z(m)?`config`:`okdir`,p);let h=L(m,`.gitignore`);z(h)||N(`boot`).warn({path:h},"Note: .ok/.gitignore is missing — per-machine state files in .ok/ may show up as untracked changes. Run `ok init` to add the recommended ignore entries.");let g=e.gitPreflight??ZG;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof JG||e instanceof YG){let t=e instanceof YG?e.detected:``,r=e instanceof YG?`too_old`:`not_available`;gK(e),n.warn({event:`git_preflight_fail`,platform:e.platform,reason:r,detectedVersion:t},r===`not_available`?`git binary not found`:`git binary too old`),process.stderr.write(`${e.message}\n`)}throw await Xs(),await Promise.race([N9(),new Promise(e=>setTimeout(e,P9))]),e}let _=oPe(m);_.length>0&&N(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${_e}/.`);let v=u9({contentDir:e.contentDir,projectDir:e.projectDir,ingressPolicy:a,contentRoot:e.contentRoot,port:e.port,host:e.host,quiet:e.quiet??!1,debounce:e.debounce,maxDebounce:e.maxDebounce,gitEnabled:e.gitEnabled,mcpTomlEditor:e.mcpTomlEditor,commitDebounceMs:e.commitDebounceMs,wipRef:e.wipRef,enableTestRoutes:e.enableTestRoutes,shadowRepo:e.shadowRepo,destroyTimeoutMs:e.destroyTimeoutMs,localOpCliArgs:e.localOpCliArgs,authStreamHeartbeatMs:e.authStreamHeartbeatMs,onAgentWrite:e.onAgentWrite,lockKind:s,capabilities:e.reactShellDistDir?[`http`,`ws`,`ui`]:[`http`,`ws`],skipStateManifestCheck:e.skipStateManifestCheck,detectGh:e.detectGh,tokenStore:e.tokenStore,embeddingsKeyStore:e.embeddingsKeyStore,singleDocRelPath:e.singleDocRelPath,ephemeral:e.ephemeral}),{hocuspocus:y,destroy:b,ready:x,degraded:S,lockDir:C,sessionManager:w,agentFocusBroadcaster:E,agentPresenceBroadcaster:ee,maintenanceCoordinator:D}=v,te=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),O=e.port??0,ne=()=>`http://${te}:${O}`,re=e.ephemeral?void 0:$6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>ne(),localApi:v.localApi,log:n}),ie=c();ie.headersTimeout=3e4,ie.requestTimeout=6e4;let k=e.serveContentAssets===!1?void 0:DZ({contentFilter:v.contentFilter,contentSirv:Lc(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:ve,assetExtensions:T,blocklistExtensions:Me,ingressPolicy:a}),ae=!1;if(e.reactShellDistDir)try{AX(C,{port:0,worktreeRoot:e.projectDir??e.contentDir}),ae=!0}catch(e){if(e instanceof kX)n.info({event:`ui-lock-yielded-to-live-holder`,pid:process.pid,existingPid:e.existing.pid,existingPort:e.existing.port,lockDir:C},`ui.lock already held by a live process — yielding (advertisement is fulfilled)`);else throw await b().catch(()=>{}),u(C),e}let oe=e.reactShellDistDir?Lc(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,se=e.ephemeral?null:new LE({contentDir:e.contentDir,localDir:C,globalDir:L(Ju(),`.ok`),registry:v.acpRegistry,permissions:v.acpPermissions,sessionManager:w,agentPresenceBroadcaster:ee,resolveEmbed:v.resolveEmbed,isExcludedPath:e=>v.contentFilter.isExcluded(e),isIgnoredPath:e=>v.contentFilter.isPathIgnored(e),getLoadedDocText:e=>y.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>ne(),getMcpStdioCommand:()=>IE(e.localOpCliArgs,O),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,log:n});se!==null&&await se.init();let ce=`pending`;x.then(()=>{ce=`ready`},()=>{ce=`failed`});let le=i8({httpServer:ie,hocuspocus:y,nativeApi:v.nativeApi,mcpHttpHandler:re,ingressPolicy:a,health:{readiness:()=>ce,degraded:()=>S},log:n,sessionManager:w,agentFocusBroadcaster:E,agentPresenceBroadcaster:ee,maintenanceCoordinator:D,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:k,reactShellMiddleware:oe,ephemeral:e.ephemeral,acpThreadManager:se}),ue=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)},de=null;e.idleShutdownMs!==null&&(de=VZ({httpServer:ie,thresholdMs:e.idleShutdownMs??18e5,log:n,onShutdown:(e.idleShutdownHandler??(e=>async()=>{await e()}))(async()=>{await ue()})})),await F9({hocuspocus:y,projectDir:e.projectDir??e.contentDir,log:n});let fe=[...new Set(i)],pe=fe[0],A=async()=>{if(ae)try{NX(C)}catch(e){n.warn({err:e},`releaseUiLock failed during listen-error cleanup`)}await b().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(C)},me=(e,t,n)=>new Promise((r,i)=>{let a=e=>i(e);e.once(`error`,a),e.listen(t,n,()=>{e.removeListener(`error`,a),r()})});try{await me(ie,e.port??0,pe??`127.0.0.1`)}catch(e){throw await A(),e}let he=ie.address(),ge=typeof he==`object`&&he?he.port:e.port??0,ye=[];for(let e of fe.slice(1)){let t=c();t.headersTimeout=ie.headersTimeout,t.requestTimeout=ie.requestTimeout;for(let e of ie.listeners(`request`))t.on(`request`,e);for(let e of ie.listeners(`upgrade`))t.on(`upgrade`,e);try{await me(t,ge,e)}catch(t){n.error({err:t,failedAddress:e,port:ge,alreadyBound:ye.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...ye,ie])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await A(),t}ye.push(t)}let j=TL();j!==void 0&&EL(`httpListenMs`,j);let M=ie.address(),be=typeof M==`object`&&M?M.port:e.port??0;O=be;let xe=ne();d(C,be,xe),ae&&jX(C,be,xe);let Se=!1,Ce=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${P9}ms`))},P9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};ue=async()=>{if(Se)return;Se=!0,ce=`draining`;let e=[],t=async(t,r)=>{try{await Ce(t,r)}catch(r){e.push(r),n.warn({err:r,step:t},`bootServer destroy step failed`)}};try{l(C),ae&&Nve(C)}catch(e){n.warn({err:e,step:`markLocksDraining`},`bootServer destroy step failed`)}try{de?.detach()}catch(t){e.push(t),n.warn({err:t,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(se!==null&&await t(`acpThreads.destroy`,()=>se.destroy()),await t(`secondaryListeners.close`,async()=>{for(let e of ye)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await t(`mount.shutdown`,()=>le.shutdown()),re!==void 0&&await t(`mcpHttpHandler.close`,()=>re.close()),await t(`mount.wss.close`,()=>new Promise((e,t)=>{le.wss.close(n=>n?t(n):e())})),await t(`httpServer.closeAllConnections`,async()=>{ie.closeAllConnections?.()}),await t(`httpServer.close`,()=>new Promise((e,t)=>{ie.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await t(`destroyHocuspocus`,()=>b()),ae&&await t(`releaseUiLock`,async()=>NX(C,{deferUnlinkToExit:!0})),await t(`shutdownTelemetry`,()=>Xs()),await t(`teardownToleranceTelemetry`,()=>N9()),await t(`flushLogFileSinks`,()=>rc.flushAllFileSinks()),e.length>0)throw AggregateError(e,`bootServer destroy completed with errors`)};try{let t=await x9({projectDir:p,skillsRoot:L(e.contentDir,`.ok`,`skills`),inPlaceNames:b9(e.contentDir,fL(e.contentDir))});t.migrated.length+t.skipped.length>0&&n.info?.({event:`store-skills-migrated-in-place`,migrated:t.migrated,skipped:t.skipped},`Migrated ${t.migrated.length} store skill(s) in place (${t.skipped.length} skipped).`)}catch(e){n.warn?.({err:e,event:`store-skill-migration-failed`},`Store-skill in-place migration failed (non-fatal).`)}try{let e=Ju(),t=await x9({projectDir:e,skillsRoot:L(e,`.ok`,`skills`),hostRoots:KNe,inPlaceNames:b9(e,pL(e))});t.migrated.length+t.skipped.length>0&&n.info?.({event:`global-store-skills-migrated-in-place`,migrated:t.migrated,skipped:t.skipped},`Migrated ${t.migrated.length} global store skill(s) in place (${t.skipped.length} skipped).`)}catch(e){n.warn?.({err:e,event:`global-store-skill-migration-failed`},`Global store-skill in-place migration failed (non-fatal).`)}try{let t=await rPe({projectDir:p,skillsRoot:L(e.contentDir,`.ok`,`skills`)}),r=t.healed.length+t.replaced.length+t.orphansRemoved.length;r>0&&n.info?.({event:`installed-skills-reconciled`,healed:t.healed.length,replaced:t.replaced.length,orphansRemoved:t.orphansRemoved.length},`Reconciled ${r} editor skill entr${r===1?`y`:`ies`} to the symlink model.`)}catch(e){n.warn?.({event:`installed-skills-reconcile-failed`,err:e},`Installed-skills reconcile failed (non-fatal).`)}return{httpServer:ie,destroy:ue,lockDir:C,contentDir:e.contentDir,port:be,ready:x,generatedIndexSweepReady:v.generatedIndexSweepReady,degraded:S,didAutoInit:f,serverInstance:v,runtime:yAe(v,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:se}}async function F9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new RZ(n),a=i.list()}catch(e){r.warn({err:e,projectDir:n},`[boot] lifecycle restore: failed to read conflicts.json — skipping`);return}if(a.length===0)return;let o=e=>e.variant===`working-tree`,s=null;try{let e=Ed(n),t=e?F(e,`MERGE_HEAD`):null;if(!t||!z(t)){let e=a.filter(e=>!o(e));for(let t of e)i.removeConflict(t.file);if(a=a.filter(o),e.length>0&&console.warn(JSON.stringify({event:`lifecycle-restore-cleared-stale-conflicts`,reason:`no-merge-head`,count:e.length})),a.length===0)return}else{let e=dc({baseDir:n,timeout:{block:5e3}});s=new Set(await Ub(e,[`diff`,`--name-only`,`--diff-filter=U`]))}}catch(e){r.warn({err:e,projectDir:n},`[boot] lifecycle restore: git unmerged probe failed — restoring all entries`)}if(s!==null){let e=0;for(let t of a)!o(t)&&!s.has(t.file)&&(i.removeConflict(t.file),e++);if(e>0&&console.warn(JSON.stringify({event:`lifecycle-restore-pruned-resolved-entries`,pruned:e,remaining:a.length-e})),a=a.filter(e=>o(e)||s?.has(e.file)),a.length===0)return}for(let e of a){let n=Bx(e.file),i=null,a=!1;try{i=await t.openDirectConnection(n);let e=i.document;if(!e)continue;let r=e.getMap(`lifecycle`);r.set(`status`,`conflict`),r.set(`reason`,`conflict-markers`),a=!0,console.warn(JSON.stringify({event:`lifecycle-restored-from-conflicts-json`,"doc.name":n}))}catch(e){r.warn({err:e,docName:n},`[boot] lifecycle restore: failed to set lifecycle for doc — skipping`)}finally{if(i)try{await i.disconnect()}catch(e){r.warn({err:e,docName:n,restored:a},`[boot] lifecycle restore: disconnect failed after lifecycle write`)}}}}const uPe=Fe;function dPe(e={}){let t=e.home??Ju(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?z(F(t,`Library`,`Application Support`,`Claude`)):n===`win32`?z(F(r.APPDATA??F(t,`AppData`,`Roaming`),`Claude`)):!1}var I9=t(oc(),1);const L9=F(Ju(),`.ok`,`logs`),fPe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function pPe(){let e=process.env.OK_LOG_LEVEL??process.env.LOG_LEVEL;if(e){let t=[`fatal`,`error`,`warn`,`info`,`debug`],n=e.toLowerCase();if(t.includes(n))return n}return process.env.NODE_ENV===`test`?`silent`:`info`}function mPe(e){Nu(e,{recursive:!0})}function R9(){return new Date().toISOString().slice(0,10)}function hPe(e){try{if(Wu(e).size<5242880)return}catch{return}for(let t=2;t>=1;t--){let n=t===1?e:`${e}.${t-1}`,r=`${e}.${t}`;try{Vu(n,r)}catch{}}try{Gu(`${e}.3`)}catch{}}function gPe(e){try{let t=Date.now(),n=10080*60*1e3,r=zu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=Wu(F(e,t));return{name:t,mtime:n.mtimeMs,size:n.size}}catch{return null}}).filter(Boolean);for(let i of r)if(t-i.mtime>n)try{Gu(F(e,i.name))}catch{}let i=r.filter(e=>t-e.mtime<=n).sort((e,t)=>e.mtime-t.mtime),a=i.reduce((e,t)=>e+t.size,0);for(let t of i){if(a<=47185920)break;try{Gu(F(e,t.name)),a-=t.size}catch{}}}catch{}}function _Pe(e){mPe(L9);let t=R9(),n=e.filePath??F(L9,`${e.name}.${t}.log`);hPe(n),(e._setTimeout??setTimeout)(()=>gPe(L9),5e3).unref();let r=I9.default.destination({dest:n,append:!0,sync:!0});return(0,I9.default)({level:pPe(),name:e.name,redact:{paths:fPe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:I9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function vPe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[I9.default.symbols.streamSym],i=!1,a=()=>{i||(i=!0,n())};if(!r||typeof r.flushSync!=`function`){a();return}let o=()=>{try{r.flushSync?.()}catch{}a()},s=setTimeout(a,t);typeof s.unref==`function`&&s.unref(),typeof r.fd==`number`&&r.fd>=0?(clearTimeout(s),o()):typeof r.once==`function`?r.once(`ready`,()=>{clearTimeout(s),o()}):(clearTimeout(s),o())})}function yPe(e){return F(L9,`${e}.${R9()}.log`)}function bPe(){return L9}function xPe(e){let t=L(e),n=0;for(;n<30;){let e=!1;try{e=z(L(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=P(t);if(r===t)return null;t=r,n+=1}return null}const z9=md(cu),B9=N(`project-git`);var V9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function SPe(e,t){try{return await z9(e,[`var`,`GIT_COMMITTER_IDENT`],UM({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function CPe(e,t){try{let{stdout:n}=await z9(e,[`for-each-ref`,`--count=1`,`refs/`],UM({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return B9.warn({path:t,stderr:H9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function wPe(e){let t=L(e,`packed-refs`);if(z(t))try{if(B(t,`utf-8`).split(`
2026
+ `))e&&await t.raw(`update-ref`,`-d`,e)}),b.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){b.error({err:e},`[branch-switch] detached cleanup failed`)}ee(!1),await be.flushDeferredStores(`discard-stale`),t=!0,ke?.emitBranchSwitched(i)}finally{ye.abortBranchSwitch(r),t||(ee(!1),await be.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&j.current&&t>0){let t=p??`.`;try{let n=await Ox(j.current,t,e.oldHead,e.newHead,i);Kb(),b.info({oldHead:e.oldHead?.slice(0,8)??`null`,newHead:e.newHead.slice(0,8),sha:n.slice(0,8)},`[history] upstream-import from ${e.oldHead?.slice(0,8)??`null`}..${e.newHead.slice(0,8)} → ${n.slice(0,8)}`)}catch(e){b.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){b.error({err:e},`[server] HEAD watcher failed to start`),on.push(`head-watcher`)}function l(e){for(let t of e)try{let e=LM(I(n,F(r,t)));if(e.startsWith(`..`))continue;let i=Bx(e),a=Ce.documents.get(i);if(!a)continue;let o=Bt(i);o===null?b.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):w(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),b.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){b.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function d(e){for(let t of e)try{let e=LM(I(n,F(r,t)));if(e.startsWith(`..`))continue;let i=Ce.documents.get(Bx(e));i&&Ut(i)}catch(e){b.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=IF(r);b.debug({resetAmbientCredentials:f,originKind:PF(r).kind},`[sync] ambient credential-chain reset decision at boot`);let m=hc(h,{resetAmbient:f}),g=O();g.mode!==`off`&&b.info({mode:g.mode,source:g.source},`[sync] mode active at boot`);try{tn=new INe({projectDir:r,contentDir:n,contentFilter:ve,contentRoot:p,mcpTomlEditor:e.mcpTomlEditor,mode:g.mode,pullIntervalSeconds:e.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds,credentialConfig:m,cc1Broadcaster:ke,detectGh:e.detectGh,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{ee(e),e||be.flushDeferredStores(`within-branch`).catch(e=>{b.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{b.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:d,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=j.current;n&&await Ax(n,p??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=j.current;n&&await Ax(n,p??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{b.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await bs({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||b.error({result:t,reason:e,humanError:Te(t.error),configPath:zs(`project-local`,r)},`[sync] failed to persist auto-disable — next restart WILL re-enable sync and re-trigger the same failure. Check permissions on the config path.`)}}),await tn.start()}catch(e){b.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),tn=null}Je(`files`),ye.announceReadyViews();let _=TL();_!==void 0&&EL(`readyMs`,_),oe()}return sn().then(()=>{Qe=!0,He(),ft()},e=>{$e=!0,et.abort(),ct({status:`failed`,indexCount:0}),ye.close(),Ge(),Ue(e)}),{hocuspocus:Ce,durabilityState:x,sessionManager:we,nativeApi:Ee,localApi:De,cc1Broadcaster:ke,agentFocusBroadcaster:je,agentPresenceBroadcaster:Me,maintenanceCoordinator:M,contentFilter:ve,basenameIndex:A,serverInstanceId:ue,destroy:an,ready:We,generatedIndexSweepReady:st,degraded:on,lockDir:de,get syncEngine(){return tn},getLinkPreviewsEnabled:k,resolveEmbed:me,acpRegistry:fe,acpPermissions:pe}}function d9(e){return e/1048576}function HNe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:d9(e.rss),heapTotalMb:d9(e.heapTotal),heapUsedMb:d9(e.heapUsed),externalMb:d9(e.external),arrayBuffersMb:d9(e.arrayBuffers)}}}let f9=null,p9=null,m9=null;const h9=1e6;let g9=null,_9=null;Ds(()=>{f9=null,p9=null,m9=null,g9?.disable(),g9=null,_9=null});function UNe(){if(f9)return;let e=Qs().createObservableGauge(`ok.server.memory.usage_megabytes`,{description:`Server process memory by section. Bounded labels: section ∈ {heap_used, heap_total, rss, external, array_buffers}.`,unit:`MB`});e.addCallback(e=>{let{snapshot:t}=HNe();e.observe(t.heapUsedMb,{section:`heap_used`}),e.observe(t.heapTotalMb,{section:`heap_total`}),e.observe(t.rssMb,{section:`rss`}),e.observe(t.externalMb,{section:`external`}),e.observe(t.arrayBuffersMb,{section:`array_buffers`})}),f9=e}function WNe(){if(!p9){let e=Qs().createObservableGauge(`ok.server.event_loop.delay_ms`,{description:`Event-loop delay percentiles over the last export window. Bounded labels: stat ∈ {p50, p99}.`,unit:`ms`});e.addCallback(e=>{if(!g9){g9=Ite({resolution:20}),g9.enable();return}e.observe(g9.percentile(50)/h9,{stat:`p50`}),e.observe(g9.percentile(99)/h9,{stat:`p99`}),g9.reset()}),p9=e}if(!m9){let e=Qs().createObservableGauge(`ok.server.cpu.utilization`,{description:`Process CPU time as a fraction of wall time since the previous export. Bounded labels: mode ∈ {user, system}.`,unit:`1`});e.addCallback(e=>{let t=process.cpuUsage(),n=process.hrtime.bigint(),r=_9;if(_9={cpu:t,hrtimeNs:n},!r)return;let i=Number(n-r.hrtimeNs)/1e3;i<=0||(e.observe((t.user-r.cpu.user)/i,{mode:`user`}),e.observe((t.system-r.cpu.system)/i,{mode:`system`}))}),m9=e}}const v9=N(`skill-migrate`);function y9(e){return[{host:`agents`,root:Eo},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=XD.indexOf(e.host),r=XD.indexOf(t.host);return(n===-1?XD.length:n)-(r===-1?XD.length:r)||e.host.localeCompare(t.host)})}const GNe=y9(fr),KNe=y9(jt);function qNe(e,t){return z(L(e,In(t)))}function JNe(e,t){Bs(P(t),{recursive:!0});try{Ns(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Us(e,t,{recursive:!0}),Ws(e,{recursive:!0,force:!0})}}function YNe(e,t,n){let r=PI(e,t,n);switch(r.kind){case`absent`:return{kind:`absent`};case`other`:return{kind:`occupied`,by:`different`};case`symlink`:return r.resolution===`target`?{kind:`store-link`}:{kind:`occupied`,by:`foreign-link`};case`dir`:return r.identity===`different`?{kind:`occupied`,by:`different`}:{kind:`same-copy`}}}function b9(e,t){let n;try{n=V(L(e,`.ok`,`skills`))}catch{n=L(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!V(L(e,t.dir)).startsWith(n+R)}catch{return!0}}).map(e=>e.name))}async function x9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??GNe,a={migrated:[],skipped:[]};if(!z(n))return a;let o;try{o=zu(n)}catch{return a}let s=I(t,n).split(R).join(`/`),c=new Set;for(let[e,n]of Object.entries(eX(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Co.test(e)||YF.has(e))continue;if(r.has(e)){a.skipped.push({name:e,reason:`placement-of-in-place`});continue}if(c.has(e)){a.skipped.push({name:e,reason:`recorded-placement`});continue}let o=L(n,e);if(!z(F(o,`SKILL.md`)))continue;let s=zD(o)?.contentHash;if(s===void 0)continue;let l=V(o),u=i.map(({host:n,root:r})=>{let i=L(t,r);return{host:n,root:r,path:F(i,e),escapes:HI(t,i),state:YNe(F(i,e),l,s)}}).filter(e=>!e.escapes),d=u.find(e=>e.state.kind===`store-link`||e.state.kind===`same-copy`)??u.find(e=>qNe(t,e.root));if(!d){a.skipped.push({name:e,reason:`no-usable-target`});continue}if(d.state.kind===`occupied`){a.skipped.push({name:e,reason:`target-occupied:${d.root} (${d.state.by})`});continue}d.state.kind===`same-copy`?Ws(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&Ws(d.path,{recursive:!0,force:!0}),JNe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(Ws(e.path,{recursive:!0,force:!0}),Us(d.path,e.path,{recursive:!0}));await vN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),v9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),v9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const S9=N(`skill-reconcile`),XNe=YF;function C9(){let e=[];for(let t of Vn){let n=fr[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:Eo,editor:null}),e}function ZNe(e,t){let n=I(e,L(t));return gu(n)?L(t):n}function w9(e){let{frontmatter:t,body:n}=Ur(e),r={};if(t!==``)try{let e=(0,nk.parse)(Fr(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function QNe(e,t){let n=w9(e),r=w9(t);if(n.body!==r.body)return!1;for(let e of Object.keys(n.fm))if(e in r.fm&&JSON.stringify(n.fm[e])!==JSON.stringify(r.fm[e]))return!1;return!0}function T9(e,t){let n=E9(e),r=E9(t);if(n.length!==r.length)return!1;let i=0;for(let a=0;a<n.length;a+=1){if(n[a]!==r[a])return!1;let o=n[a],s=F(e,o),c=F(t,o);if(i+=Wu(s).size+Wu(c).size,i>1048576)return!1;let l=B(s),u=B(c);if(!l.equals(u)&&(o!==`SKILL.md`||!QNe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function E9(e,t=``){let n=[];for(let r of zu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...E9(F(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function D9(e,t,n){Ws(t,{recursive:!0,force:!0}),Bs(e,{recursive:!0}),Is(ZNe(e,n),t,`dir`)}function O9(e,t){try{let n=Bu(e);return L(gu(n)?n:L(P(e),n))===L(t)}catch{return!1}}function $Ne(e,t){try{let n=Bu(e),r=gu(n)?L(n):L(P(e),n);if(!z(r))return!1;let i=I(L(t),r);return i!==``&&(i.startsWith(`..`)||gu(i))}catch(t){return S9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const ePe=[...Vn,`agents`];function tPe(e){for(let t of ePe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function nPe(e){let{projectDir:t,skillsRoot:n}=e;if(!z(n))return;let r;try{r=zu(n)}catch{return}let i=C9();for(let e of r){let r=tPe(e);if(r===null)continue;let a=L(n,e),o=L(n,r);if(z(o))try{let n=Mu(a);if(n.isSymbolicLink()||!n.isDirectory()||!z(F(a,`SKILL.md`))||!z(F(o,`SKILL.md`))||!T9(o,a))continue;for(let{rel:n}of i){let r=L(t,n);if(HI(t,r))continue;let i=F(r,e);O9(i,a)&&D9(r,i,o)}Ws(a,{recursive:!0,force:!0}),S9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){S9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function rPe(e){let{projectDir:t,skillsRoot:n}=e,r={healed:[],replaced:[],orphansRemoved:[],skipped:[]},i=new Map,a=(e,t)=>{if(t===null)return;let n=i.get(e)??new Set;n.add(t),i.set(e,n)};for(let{rel:e,editor:i}of C9()){let o=L(t,e);if(!z(o)||HI(t,o))continue;let s;try{s=zu(o)}catch(e){S9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(XNe.has(e))continue;let t=F(o,e),s=L(n,e),c=z(s);try{let l=Mu(t);if(l.isSymbolicLink()){if(O9(t,s)&&c)continue;if($Ne(t,n)){r.skipped.push({name:e,editor:i});continue}c?(D9(o,t,s),r.healed.push({name:e,editor:i})):(Ws(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Co.test(e)){S9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&T9(t,s)){D9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){S9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=hN(t);for(let[r,a]of i){let i=L(n,r);if(!z(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await _N(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??LI(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){S9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{nPe({projectDir:t,skillsRoot:n})}catch(e){S9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let k9=null,A9=!1;function j9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function M9(e){if(!j9())return;let t=Pk(e);k9=new sc({currentPath:L(t,`tolerance-telemetry.jsonl`),previousPath:L(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),nt(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};k9?.append(`${JSON.stringify(t)}\n`).catch(e=>{A9||(A9=!0,N(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function N9(){nt(null),await k9?.drain(),k9=null,A9=!1}gs();const iPe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],aPe=[`cache`,`tmp`];function oPe(e){let t=L(e,_e);if(!(()=>{if(!z(t))return!0;try{return zu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of iPe)z(L(e,t))&&n.push(t);for(let t of aPe){let r=L(e,t);try{z(r)&&Wu(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function sPe(e){let t=Td(e);switch(t.kind){case`directory`:return{kind:`main`,gitdir:t.path};case`linked`:return{kind:`linked`,gitdir:t.path};case`malformed-pointer`:return{kind:`linked`,gitdir:null};case`inaccessible`:case`absent`:return{kind:`main`,gitdir:null}}}const P9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function cPe(e){Phe();let t=e.projectDir??e.contentDir,n=dye({projectDir:t});if(n){let e=n.telemetry.attributeDenylist,t=[];for(let n of e){t.push(n);for(let e=1;e<=5;e++)t.push(`${`*.`.repeat(e)}${n}`)}rc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Zs({localSink:n?.telemetry}),M9(t),UNe(),WNe();let{kind:r,gitdir:i}=sPe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=Hs(i));let o=lye(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>Os(`ok.boot`,{attributes:a},async()=>lPe(e)),l=()=>{if(s)try{let e=ms.extract(_s.active(),{traceparent:s});return _s.with(e,c)}catch(e){N(`boot`).warn({err:e},`ok.boot trace-join failed — starting unparented boot`)}return c()},u;try{u=await l()}catch(e){throw o.uninstall(),e}let d=u.destroy;return u.destroy=async()=>{try{await d()}finally{o.uninstall()}},u}async function lPe(e){let t=e.skipAutoInit??!1,n=e.log??N(`boot`),r=e.serverRuntime??{...bi(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((po(r)||!Va(i))&&!r.allowExternal)throw new _B(`refusing to start: the server would bind a non-loopback address (${(Va(i)?r.bind:i).join(`, `)}), which exposes this server beyond this machine. Consent with OK_ALLOW_EXTERNAL=1, or server.allowExternal: true in .ok/local/config.yml.`);let a=bB({serverRuntime:r});r.allowExternal&&!r.loopbackOnly&&r.externalUrlSource!==`server`&&(a.bindLiterals.length===0?n.warn({bind:r.bind},`[ingress] server.allowExternal is set on a wildcard bind (0.0.0.0/::) with no server.externalUrl — external requests will be REFUSED (403 host-not-allowed) because no external Host name is admitted. Set server.externalUrl to the public origin clients dial (e.g. behind a reverse proxy or platform edge), or bind a specific address instead of a wildcard.`):n.info({bind:r.bind},`[ingress] server.allowExternal is set with no server.externalUrl — the bind-address literals are admitted as Host names (direct IP access). Set server.externalUrl to admit a hostname.`));let o=process.env.OK_LOCK_KIND===`mcp-spawned`||process.env.OK_LOCK_KIND===`interactive`?process.env.OK_LOCK_KIND:void 0,s=e.lockKind??o??`interactive`,{createServer:c}=await import(`node:http`),{markServerLockDraining:l,releaseServerLock:u,updateServerLockPort:d}=await import(`./server-lock-D_MF6GOb.mjs`),f=!1;if(!t&&e.autoInitFn)try{f=!!await e.autoInitFn()}catch(e){n.warn({err:e},`autoInitFn failed`)}let p=e.projectDir??e.contentDir,m=L(p,`.ok`);if(!z(L(m,`config.yml`)))throw new o8(z(m)?`config`:`okdir`,p);let h=L(m,`.gitignore`);z(h)||N(`boot`).warn({path:h},"Note: .ok/.gitignore is missing — per-machine state files in .ok/ may show up as untracked changes. Run `ok init` to add the recommended ignore entries.");let g=e.gitPreflight??ZG;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof JG||e instanceof YG){let t=e instanceof YG?e.detected:``,r=e instanceof YG?`too_old`:`not_available`;gK(e),n.warn({event:`git_preflight_fail`,platform:e.platform,reason:r,detectedVersion:t},r===`not_available`?`git binary not found`:`git binary too old`),process.stderr.write(`${e.message}\n`)}throw await Xs(),await Promise.race([N9(),new Promise(e=>setTimeout(e,P9))]),e}let _=oPe(m);_.length>0&&N(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${_e}/.`);let v=u9({contentDir:e.contentDir,projectDir:e.projectDir,ingressPolicy:a,contentRoot:e.contentRoot,port:e.port,host:e.host,quiet:e.quiet??!1,debounce:e.debounce,maxDebounce:e.maxDebounce,gitEnabled:e.gitEnabled,mcpTomlEditor:e.mcpTomlEditor,commitDebounceMs:e.commitDebounceMs,wipRef:e.wipRef,enableTestRoutes:e.enableTestRoutes,shadowRepo:e.shadowRepo,destroyTimeoutMs:e.destroyTimeoutMs,localOpCliArgs:e.localOpCliArgs,authStreamHeartbeatMs:e.authStreamHeartbeatMs,onAgentWrite:e.onAgentWrite,lockKind:s,capabilities:e.reactShellDistDir?[`http`,`ws`,`ui`]:[`http`,`ws`],skipStateManifestCheck:e.skipStateManifestCheck,detectGh:e.detectGh,tokenStore:e.tokenStore,embeddingsKeyStore:e.embeddingsKeyStore,singleDocRelPath:e.singleDocRelPath,ephemeral:e.ephemeral}),{hocuspocus:y,destroy:b,ready:x,degraded:S,lockDir:C,sessionManager:w,agentFocusBroadcaster:E,agentPresenceBroadcaster:ee,maintenanceCoordinator:D}=v,te=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),O=e.port??0,ne=()=>`http://${te}:${O}`,re=e.ephemeral?void 0:$6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>ne(),localApi:v.localApi,log:n}),ie=c();ie.headersTimeout=3e4,ie.requestTimeout=6e4;let k=e.serveContentAssets===!1?void 0:DZ({contentFilter:v.contentFilter,contentSirv:Lc(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:ve,assetExtensions:T,blocklistExtensions:Me,ingressPolicy:a}),ae=!1;if(e.reactShellDistDir)try{AX(C,{port:0,worktreeRoot:e.projectDir??e.contentDir}),ae=!0}catch(e){if(e instanceof kX)n.info({event:`ui-lock-yielded-to-live-holder`,pid:process.pid,existingPid:e.existing.pid,existingPort:e.existing.port,lockDir:C},`ui.lock already held by a live process — yielding (advertisement is fulfilled)`);else throw await b().catch(()=>{}),u(C),e}let oe=e.reactShellDistDir?Lc(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,se=e.ephemeral?null:new LE({contentDir:e.contentDir,localDir:C,globalDir:L(Ju(),`.ok`),registry:v.acpRegistry,permissions:v.acpPermissions,sessionManager:w,agentPresenceBroadcaster:ee,resolveEmbed:v.resolveEmbed,isExcludedPath:e=>v.contentFilter.isExcluded(e),isIgnoredPath:e=>v.contentFilter.isPathIgnored(e),getLoadedDocText:e=>y.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>ne(),getMcpStdioCommand:()=>IE(e.localOpCliArgs,O),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,log:n});se!==null&&await se.init();let ce=`pending`;x.then(()=>{ce=`ready`},()=>{ce=`failed`});let le=i8({httpServer:ie,hocuspocus:y,nativeApi:v.nativeApi,mcpHttpHandler:re,ingressPolicy:a,health:{readiness:()=>ce,degraded:()=>S},log:n,sessionManager:w,agentFocusBroadcaster:E,agentPresenceBroadcaster:ee,maintenanceCoordinator:D,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:k,reactShellMiddleware:oe,ephemeral:e.ephemeral,acpThreadManager:se}),ue=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)},de=null;e.idleShutdownMs!==null&&(de=VZ({httpServer:ie,thresholdMs:e.idleShutdownMs??18e5,log:n,onShutdown:(e.idleShutdownHandler??(e=>async()=>{await e()}))(async()=>{await ue()})})),await F9({hocuspocus:y,projectDir:e.projectDir??e.contentDir,log:n});let fe=[...new Set(i)],pe=fe[0],A=async()=>{if(ae)try{NX(C)}catch(e){n.warn({err:e},`releaseUiLock failed during listen-error cleanup`)}await b().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(C)},me=(e,t,n)=>new Promise((r,i)=>{let a=e=>i(e);e.once(`error`,a),e.listen(t,n,()=>{e.removeListener(`error`,a),r()})});try{await me(ie,e.port??0,pe??`127.0.0.1`)}catch(e){throw await A(),e}let he=ie.address(),ge=typeof he==`object`&&he?he.port:e.port??0,ye=[];for(let e of fe.slice(1)){let t=c();t.headersTimeout=ie.headersTimeout,t.requestTimeout=ie.requestTimeout;for(let e of ie.listeners(`request`))t.on(`request`,e);for(let e of ie.listeners(`upgrade`))t.on(`upgrade`,e);try{await me(t,ge,e)}catch(t){n.error({err:t,failedAddress:e,port:ge,alreadyBound:ye.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...ye,ie])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await A(),t}ye.push(t)}let j=TL();j!==void 0&&EL(`httpListenMs`,j);let M=ie.address(),be=typeof M==`object`&&M?M.port:e.port??0;O=be;let xe=ne();d(C,be,xe),ae&&jX(C,be,xe);let Se=!1,Ce=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${P9}ms`))},P9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};ue=async()=>{if(Se)return;Se=!0,ce=`draining`;let e=[],t=async(t,r)=>{try{await Ce(t,r)}catch(r){e.push(r),n.warn({err:r,step:t},`bootServer destroy step failed`)}};try{l(C),ae&&Nve(C)}catch(e){n.warn({err:e,step:`markLocksDraining`},`bootServer destroy step failed`)}try{de?.detach()}catch(t){e.push(t),n.warn({err:t,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(se!==null&&await t(`acpThreads.destroy`,()=>se.destroy()),await t(`secondaryListeners.close`,async()=>{for(let e of ye)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await t(`mount.shutdown`,()=>le.shutdown()),re!==void 0&&await t(`mcpHttpHandler.close`,()=>re.close()),await t(`mount.wss.close`,()=>new Promise((e,t)=>{le.wss.close(n=>n?t(n):e())})),await t(`httpServer.closeAllConnections`,async()=>{ie.closeAllConnections?.()}),await t(`httpServer.close`,()=>new Promise((e,t)=>{ie.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await t(`destroyHocuspocus`,()=>b()),ae&&await t(`releaseUiLock`,async()=>NX(C,{deferUnlinkToExit:!0})),await t(`shutdownTelemetry`,()=>Xs()),await t(`teardownToleranceTelemetry`,()=>N9()),await t(`flushLogFileSinks`,()=>rc.flushAllFileSinks()),e.length>0)throw AggregateError(e,`bootServer destroy completed with errors`)};try{let t=await x9({projectDir:p,skillsRoot:L(e.contentDir,`.ok`,`skills`),inPlaceNames:b9(e.contentDir,fL(e.contentDir))});t.migrated.length+t.skipped.length>0&&n.info?.({event:`store-skills-migrated-in-place`,migrated:t.migrated,skipped:t.skipped},`Migrated ${t.migrated.length} store skill(s) in place (${t.skipped.length} skipped).`)}catch(e){n.warn?.({err:e,event:`store-skill-migration-failed`},`Store-skill in-place migration failed (non-fatal).`)}try{let e=Ju(),t=await x9({projectDir:e,skillsRoot:L(e,`.ok`,`skills`),hostRoots:KNe,inPlaceNames:b9(e,pL(e))});t.migrated.length+t.skipped.length>0&&n.info?.({event:`global-store-skills-migrated-in-place`,migrated:t.migrated,skipped:t.skipped},`Migrated ${t.migrated.length} global store skill(s) in place (${t.skipped.length} skipped).`)}catch(e){n.warn?.({err:e,event:`global-store-skill-migration-failed`},`Global store-skill in-place migration failed (non-fatal).`)}try{let t=await rPe({projectDir:p,skillsRoot:L(e.contentDir,`.ok`,`skills`)}),r=t.healed.length+t.replaced.length+t.orphansRemoved.length;r>0&&n.info?.({event:`installed-skills-reconciled`,healed:t.healed.length,replaced:t.replaced.length,orphansRemoved:t.orphansRemoved.length},`Reconciled ${r} editor skill entr${r===1?`y`:`ies`} to the symlink model.`)}catch(e){n.warn?.({event:`installed-skills-reconcile-failed`,err:e},`Installed-skills reconcile failed (non-fatal).`)}return{httpServer:ie,destroy:ue,lockDir:C,contentDir:e.contentDir,port:be,ready:x,generatedIndexSweepReady:v.generatedIndexSweepReady,degraded:S,didAutoInit:f,serverInstance:v,runtime:yAe(v,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:se}}async function F9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new RZ(n),a=i.list()}catch(e){r.warn({err:e,projectDir:n},`[boot] lifecycle restore: failed to read conflicts.json — skipping`);return}if(a.length===0)return;let o=e=>e.variant===`working-tree`,s=null;try{let e=Ed(n),t=e?F(e,`MERGE_HEAD`):null;if(!t||!z(t)){let e=a.filter(e=>!o(e));for(let t of e)i.removeConflict(t.file);if(a=a.filter(o),e.length>0&&console.warn(JSON.stringify({event:`lifecycle-restore-cleared-stale-conflicts`,reason:`no-merge-head`,count:e.length})),a.length===0)return}else{let e=dc({baseDir:n,timeout:{block:5e3}});s=new Set(await Ub(e,[`diff`,`--name-only`,`--diff-filter=U`]))}}catch(e){r.warn({err:e,projectDir:n},`[boot] lifecycle restore: git unmerged probe failed — restoring all entries`)}if(s!==null){let e=0;for(let t of a)!o(t)&&!s.has(t.file)&&(i.removeConflict(t.file),e++);if(e>0&&console.warn(JSON.stringify({event:`lifecycle-restore-pruned-resolved-entries`,pruned:e,remaining:a.length-e})),a=a.filter(e=>o(e)||s?.has(e.file)),a.length===0)return}for(let e of a){let n=Bx(e.file),i=null,a=!1;try{i=await t.openDirectConnection(n);let e=i.document;if(!e)continue;let r=e.getMap(`lifecycle`);r.set(`status`,`conflict`),r.set(`reason`,`conflict-markers`),a=!0,console.warn(JSON.stringify({event:`lifecycle-restored-from-conflicts-json`,"doc.name":n}))}catch(e){r.warn({err:e,docName:n},`[boot] lifecycle restore: failed to set lifecycle for doc — skipping`)}finally{if(i)try{await i.disconnect()}catch(e){r.warn({err:e,docName:n,restored:a},`[boot] lifecycle restore: disconnect failed after lifecycle write`)}}}}const uPe=Fe;function dPe(e={}){let t=e.home??Ju(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?z(F(t,`Library`,`Application Support`,`Claude`)):n===`win32`?z(F(r.APPDATA??F(t,`AppData`,`Roaming`),`Claude`)):!1}var I9=t(oc(),1);const L9=F(Ju(),`.ok`,`logs`),fPe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function pPe(){let e=process.env.OK_LOG_LEVEL??process.env.LOG_LEVEL;if(e){let t=[`fatal`,`error`,`warn`,`info`,`debug`],n=e.toLowerCase();if(t.includes(n))return n}return process.env.NODE_ENV===`test`?`silent`:`info`}function mPe(e){Nu(e,{recursive:!0})}function R9(){return new Date().toISOString().slice(0,10)}function hPe(e){try{if(Wu(e).size<5242880)return}catch{return}for(let t=2;t>=1;t--){let n=t===1?e:`${e}.${t-1}`,r=`${e}.${t}`;try{Vu(n,r)}catch{}}try{Gu(`${e}.3`)}catch{}}function gPe(e){try{let t=Date.now(),n=10080*60*1e3,r=zu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=Wu(F(e,t));return{name:t,mtime:n.mtimeMs,size:n.size}}catch{return null}}).filter(Boolean);for(let i of r)if(t-i.mtime>n)try{Gu(F(e,i.name))}catch{}let i=r.filter(e=>t-e.mtime<=n).sort((e,t)=>e.mtime-t.mtime),a=i.reduce((e,t)=>e+t.size,0);for(let t of i){if(a<=47185920)break;try{Gu(F(e,t.name)),a-=t.size}catch{}}}catch{}}function _Pe(e){mPe(L9);let t=R9(),n=e.filePath??F(L9,`${e.name}.${t}.log`);hPe(n),(e._setTimeout??setTimeout)(()=>gPe(L9),5e3).unref();let r=I9.default.destination({dest:n,append:!0,sync:!0});return(0,I9.default)({level:pPe(),name:e.name,redact:{paths:fPe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:I9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function vPe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[I9.default.symbols.streamSym],i=!1,a=()=>{i||(i=!0,n())};if(!r||typeof r.flushSync!=`function`){a();return}let o=()=>{try{r.flushSync?.()}catch{}a()},s=setTimeout(a,t);typeof s.unref==`function`&&s.unref(),typeof r.fd==`number`&&r.fd>=0?(clearTimeout(s),o()):typeof r.once==`function`?r.once(`ready`,()=>{clearTimeout(s),o()}):(clearTimeout(s),o())})}function yPe(e){return F(L9,`${e}.${R9()}.log`)}function bPe(){return L9}function xPe(e){let t=L(e),n=0;for(;n<30;){let e=!1;try{e=z(L(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=P(t);if(r===t)return null;t=r,n+=1}return null}const z9=md(cu),B9=N(`project-git`);var V9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function SPe(e,t){try{return await z9(e,[`var`,`GIT_COMMITTER_IDENT`],UM({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function CPe(e,t){try{let{stdout:n}=await z9(e,[`for-each-ref`,`--count=1`,`refs/`],UM({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return B9.warn({path:t,stderr:H9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function wPe(e){let t=L(e,`packed-refs`);if(z(t))try{if(B(t,`utf-8`).split(`
2027
2027
  `).some(e=>e.trim()!==``&&!e.startsWith(`#`)))return!0}catch{return!0}try{return zu(L(e,`refs/heads`)).length>0}catch{return!1}}function H9(e){let t=typeof e==`object`&&e?e:null,n=t?.stderr;return n==null?String(t?.message??e):Buffer.isBuffer(n)?n.toString(`utf-8`):String(n)}async function U9(e,t){if(await CPe(e,t))return;let n=[`commit`,`--allow-empty`,`--no-verify`,`--no-gpg-sign`,`-m`,`Initial commit`],r=await SPe(e,t),i=r?n:[`-c`,`user.name=Open Knowledge`,`-c`,`user.email=noreply@openknowledge.local`,...n];try{await z9(e,i,UM({cwd:t,encoding:`utf-8`})),r||B9.info({path:t},`created initial commit with fallback identity (git identity unset)`)}catch(e){B9.warn({path:t,stderr:H9(e)},`could not create initial commit`)}}async function TPe(e,t){try{let{stdout:n}=await z9(e,[`rev-parse`,`--is-inside-work-tree`],UM({cwd:t,encoding:`utf-8`}));return n.trim()===`true`}catch{return!1}}async function EPe(e){let t=L(e);pW(t);let n=L(t,`.git`),r=L(n,`HEAD`),i=!1,a=!1;if(z(n)){if(!Wu(n).isDirectory())return{didInit:!1};if(z(r)){if(wPe(n))return{didInit:!1};a=!0}else B9.info({},`detected partial .git/ — running git init to repair`),i=!0}let o;try{o=ZG()}catch(e){throw e instanceof JG||e instanceof YG?(gK(e),B9.warn({event:`git_preflight_fail`,platform:e.platform,reason:e instanceof YG?`too_old`:`not_available`,detectedVersion:e instanceof YG?e.detected:``},e instanceof YG?`git binary too old`:`git binary not found`)):B9.warn({event:`git_preflight_unexpected_error`,err:e},`unexpected error during git preflight`),e}let s=o.resolvedPath;if(a)return await U9(s,t),{didInit:!1};if(!i&&await TPe(s,t))return{didInit:!1};let c=``;try{c=(await z9(s,[`init`,`--initial-branch=main`,t],UM({encoding:`utf-8`}))).stderr??``}catch(e){let n=typeof e==`object`&&e&&`stderr`in e?String(e.stderr??``):``;throw new V9(`git init failed at ${t}: ${e instanceof Error?e.message:String(e)}`,n,{cause:e})}if(!z(r))throw new V9(`git init reported success but ${n}/HEAD is missing (partial init detected)`,c);return await U9(s,t),i?(B9.info({path:t},`backfilled missing .git/HEAD`),{didInit:!0,repaired:!0}):(B9.info({path:t,branch:`main`},`initialized .git/`),{didInit:!0})}const W9=N(`project-skill-git`),G9=/^[0-9a-f]{40}$/,DPe=ba.map(e=>e.replace(/\/$/,``));async function OPe(e){let t=Ed(e);if(t===null)return{kind:`skipped`,reason:`no-git`};if(jPe(t))return{kind:`skipped`,reason:`operation-in-progress`};let n=fc(e,{credentialConfig:[]});if((await K9(n)).length===0)return{kind:`nothing-tracked`};try{return await uc(async()=>{let t=await kPe(n);if(t===null)return{kind:`skipped`,reason:`detached-head`};let r=await q9(n);if(r===null)return{kind:`skipped`,reason:`unborn-head`};let i=await K9(n);if(i.length===0)return{kind:`nothing-tracked`};let a=fc(e,{gitIndexFile:F(Zu(),`ok-untrack-idx-${process.pid}-${Date.now()}.idx`),credentialConfig:[]});await a.git.raw([`read-tree`,r]),await a.git.raw([`rm`,`--cached`,`-r`,`--ignore-unmatch`,`--`,...i]);let o=(await a.git.raw([`write-tree`])).trim(),s=await APe(n,r);if(s!==null&&s===o)return{kind:`nothing-tracked`};let c=await sB(e),l=c?.name??`OpenKnowledge`,u=c?.email??`sync@open-knowledge.local`;_c(a,{GIT_AUTHOR_NAME:l,GIT_AUTHOR_EMAIL:u,GIT_COMMITTER_NAME:l,GIT_COMMITTER_EMAIL:u});let d=`Stop tracking the OpenKnowledge project skill\n\nThe \`${tt}\` skill is regenerated per machine and version-stamped per app build, so tracking it causes recurring sync conflicts. It is now git-ignored.`,f=(await a.git.raw([`commit-tree`,o,`-p`,r,`-m`,d])).trim();if(!G9.test(f))return W9.warn({raw:f},`commit-tree returned invalid SHA — aborting untrack`),{kind:`failed`,error:`commit-tree returned invalid SHA`};try{await n.git.raw([`update-ref`,`refs/heads/${t}`,f,r])}catch(e){return W9.info({branch:t,err:J9(e)},`update-ref CAS failed — ref moved, retry next open`),{kind:`skipped`,reason:`ref-race`}}try{await n.git.raw([`reset`,`-q`,f,`--`,...i])}catch(e){W9.info({err:J9(e)},`real-index reset after untrack failed (cosmetic)`)}return W9.info({dirs:i,commitSha:f},`untracked project-skill projection`),{kind:`untracked`,dirs:i,commitSha:f}})}catch(e){return{kind:`failed`,error:J9(e)}}}async function K9(e){let t=[];for(let n of DPe){let r=``;try{r=(await e.git.raw([`ls-files`,`--`,n])).trim()}catch{r=``}r.length>0&&t.push(n)}return t}async function kPe(e){try{let t=(await e.git.raw([`rev-parse`,`--abbrev-ref`,`HEAD`])).trim();return t.length===0||t===`HEAD`?null:t}catch{return null}}async function q9(e){try{let t=(await e.git.raw([`rev-parse`,`--verify`,`HEAD`])).trim();return G9.test(t)?t:null}catch{return null}}async function APe(e,t){try{let n=(await e.git.raw([`rev-parse`,`${t}^{tree}`])).trim();return G9.test(n)?n:null}catch{return null}}function jPe(e){return z(F(e,`MERGE_HEAD`))||z(F(e,`rebase-merge`))||z(F(e,`rebase-apply`))||z(F(e,`CHERRY_PICK_HEAD`))||z(F(e,`REVERT_HEAD`))}function J9(e){return e instanceof Error?e.message:String(e)}async function MPe(e,t){let n;try{n=su(t).resolve(e)}catch(e){if(e?.code===`MODULE_NOT_FOUND`)return;throw e}for(let t=P(n),r=0;r<32;r+=1){let n=F(t,`package.json`);if(z(n))try{let t=JSON.parse(await td(n,`utf-8`));if(t.name===e&&typeof t.version==`string`)return t.version}catch{}let r=P(t);if(r===t)return;t=r}}const NPe=[{regex:/\/Users\/[^/]+\//g,replacement:`~/`},{regex:/\/home\/[^/]+\//g,replacement:`~/`},{regex:/C:\\\\Users\\\\[^\\\\]+\\\\/g,replacement:`~\\`},{regex:/C:\\Users\\[^\\]+\\/g,replacement:`~\\`}];function Y9(e){if(e===void 0)return;let t=e;for(let{regex:e,replacement:n}of NPe)t=t.replace(e,n);return t}function X9(e,t=0,n=new WeakSet){if(t>=5)return{name:`SerializedError.CauseDepthExceeded`,message:`cause chain depth > 5; truncated`};if(typeof e==`object`&&e){if(n.has(e))return{name:`SerializedError.CauseCycle`,message:`cyclic cause; truncated`};n.add(e)}if(e instanceof Error)return{name:e.name,message:Y9(e.message)??``,stack:Y9(e.stack),code:e.code,cause:e.cause===void 0?void 0:X9(e.cause,t+1,n)};if(e==null)return{name:`UnknownError`,message:String(e)};if(typeof e==`string`)return{name:`StringError`,message:Y9(e)??e};if(typeof e==`object`){let r=e;return{name:String(r.name??`ObjectError`),message:Y9(String(r.message??``))??``,stack:Y9(r.stack),code:r.code,cause:r.cause===void 0?void 0:X9(r.cause,t+1,n)}}return{name:`UnknownError`,message:String(e)}}var Z9=class extends Error{constructor(e){super(`File not found: ${e}`),this.filePath=e,this.name=`SingleFileNotFoundError`}},Q9=class extends Error{constructor(e){super(`Not a file: ${e}. \`ok <file>\` opens a single markdown file.`),this.filePath=e,this.name=`SingleFileNotAFileError`}},$9=class extends Error{constructor(e){super(`OpenKnowledge edits markdown files (.md / .mdx): ${e}`),this.filePath=e,this.name=`SingleFileNotMarkdownError`}};function PPe(e){if(!Rx(e))throw new $9(e);let t;try{t=V(L(e))}catch(t){throw t.code===`ENOENT`?new Z9(e):t}if(!Wu(t).isFile())throw new Q9(e);let n=P(t),r=Gz(n);if(r){let e=r.rootPath;return{mode:`project`,projectRoot:e,docName:Bx(I(FPe(e),t).split(R).join(`/`)),canonicalFilePath:t}}let i=pu(t);return{mode:`ephemeral`,canonicalFilePath:t,contentDir:n,singleDocRelPath:i,docName:Bx(i)}}function FPe(e){return L(e,Cs({absPath:zs(`project`,e),sideline:!1,warn:()=>{}}).value.content?.dir??`.`)}function IPe(e){let t=Pu(L(Zu(),`ok-ephemeral-`)),n=L(t,`.ok`);return Nu(n,{recursive:!0}),Ku(L(n,`config.yml`),`# Ephemeral single-file session (\`ok <file>\`). Throwaway — safe to delete.\ncontent:\n dir: ${JSON.stringify(e)}\n`,`utf-8`),Ku(L(n,`.gitignore`),`local/
2028
2028
  `,`utf-8`),t}export{s2 as $,Qx as $i,WR as $n,tN as $r,jJ as $t,P7 as A,Ad as Aa,rD as Ai,bB as An,JF as Ar,Wve as At,J5 as B,gw as Bi,Wz as Bn,gpe as Br,BJ as Bt,u9 as C,hh as Ca,xj as Ci,gW as Cn,oI as Cr,aye as Ct,F7 as D,qd as Da,Nk as Di,dW as Dn,iI as Dr,qX as Dt,M7 as E,Qd as Ea,Pk as Ei,pW as En,nI as Er,DZ as Et,wMe as F,IE as Fi,xB as Fn,YP as Fr,AX as Ft,r8 as G,MC as Gi,Ez as Gn,wP as Gr,FJ as Gt,a8 as H,fw as Hi,Tz as Hn,kP as Hr,TJ as Ht,a7 as I,_w as Ii,dB as In,PP as Ir,MX as It,X6 as J,G as Ji,iz as Jn,SP as Jr,hge as Jt,t8 as K,YC as Ki,Sz as Kn,TP as Kr,kJ as Kt,i7 as L,yw as Li,uB as Ln,FP as Lr,NX as Lt,S7 as M,Wd as Ma,$E as Mi,hB as Mn,$F as Mr,wZ as Mt,y7 as N,Dd as Na,LE as Ni,CB as Nn,Lme as Nr,XX as Nt,A7 as O,$d as Oa,Fk as Oi,fW as On,ZF as Or,KX as Ot,r7 as P,yd as Pa,OE as Pi,wB as Pn,FF as Pr,kX as Pt,n2 as Q,rS as Qi,nz as Qn,ZM as Qr,PJ as Qt,fMe as R,ZC as Ri,lB as Rn,IP as Rr,jX as Rt,N9 as S,jie as Sa,wj as Si,wW as Sn,cI as Sr,MZ as St,k7 as T,gh as Ta,Sj as Ti,uW as Tn,aI as Tr,kZ as Tt,o8 as U,rw as Ui,oz as Un,OP as Ur,gge as Ut,G5 as V,dw as Vi,$R as Vn,DP as Vr,RJ as Vt,i8 as W,jC as Wi,az as Wn,EP as Wr,mge as Wt,e2 as X,aS as Xi,Hz as Xn,Zfe as Xr,NJ as Xt,B6 as Y,fS as Yi,wz as Yn,YN as Yr,IJ as Yt,t2 as Z,Zx as Zi,Cz as Zn,QM as Zr,MJ as Zt,uPe as _,cx as _a,Nj as _i,mW as _n,EI as _r,IZ as _t,PPe as a,Ex as aa,UM as ai,gK as an,FR as ar,LSe as at,M9 as b,Zb as ba,Tj as bi,vW as bn,Zme as br,AZ as bt,OPe as c,yx as ca,wM as ci,KG as cn,aR as cr,N0 as ct,xPe as d,_x as da,Wj as di,XG as dn,dhe as dr,j$ as dt,nS as ea,$M as ei,bJ as en,GR as er,YSe as et,_Pe as f,Mx as fa,Ode as fi,rK as fn,ahe as fr,l$ as ft,dPe as g,hx as ga,hde as gi,zG as gn,TI as gr,VZ as gt,bPe as h,Fx as ha,Ede as hi,HG as hn,wI as hr,D$ as ht,IPe as i,Tx as ia,qM as ii,hK as in,zR as ir,ISe as it,O7 as j,kd as ja,tD as ji,OB as jn,Ime as jr,EZ as jt,N7 as k,Kd as ka,WO as ki,_B as kn,QF as kr,Uve as kt,V9 as l,Cx as la,Jj as li,ZG as ln,NI as lr,F0 as lt,yPe as m,jx as ma,Dde as mi,UG as mn,DI as mr,w$ as mt,Z9 as n,Nx as na,YM as ni,bK as nn,RR as nr,q0 as nt,X9 as o,xx as oa,zM as oi,JG as on,ER as or,RSe as ot,vPe as p,Ax as pa,Tde as pi,$G as pn,kI as pr,tbe as pt,$6 as q,pS as qi,_z as qn,xP as qr,AJ as qt,$9 as r,wx as ra,WM as ri,vK as rn,BR as rr,H0 as rt,MPe as s,Ox as sa,TM as si,YG as sn,dR as sr,I0 as st,Q9 as t,Xx as ta,eN as ti,xJ as tn,LR as tr,J0 as tt,EPe as u,Px as ua,qj as ui,mK as un,MI as ur,t0 as ut,cPe as v,ox as va,Bj as vi,SW as vn,SI as vr,jZ as vt,l9 as w,_h as wa,Cj as wi,TW as wn,sI as wr,FZ as wt,j9 as x,Fse as xa,Yue as xi,DW as xn,CI as xr,NZ as xt,F9 as y,ix as ya,Zue as yi,CW as yn,xI as yr,PZ as yt,Z5 as z,pw as zi,Gz as zn,NP as zr,Cge as zt};
2029
- //# sourceMappingURL=src-BjgAn2Yr.mjs.map
2029
+ //# sourceMappingURL=src-8LdfqLwC.mjs.map