@inkeep/open-knowledge 0.66.1 → 0.66.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/{acp-harness-probe-Bk3Dz297.mjs → acp-harness-probe-C-bmwKC0.mjs} +2 -2
  2. package/dist/cli.mjs +6 -6
  3. package/dist/constants-m3Xu5_Pm.mjs +2 -0
  4. package/dist/{git-handle-C9RPCwJN.mjs → git-handle-CehgIzoK.mjs} +2 -2
  5. package/dist/git-handle-DEJ8aYeH.mjs +1 -0
  6. package/dist/index.mjs +2 -2
  7. package/dist/init-CkmKaAE9.mjs +1 -0
  8. package/dist/{init-DNQN84w4.mjs → init-DwE-82L_.mjs} +3 -3
  9. package/dist/{launch-json-removal-CsfA7Q9t.mjs → launch-json-removal-C5njpRMR.mjs} +2 -2
  10. package/dist/{loader-DOE8T0bD.mjs → loader-Da9QChC_.mjs} +2 -2
  11. package/dist/loader-Dt_OoEGe.mjs +1 -0
  12. package/dist/md-manager-BZCd3Vha.mjs +2 -0
  13. package/dist/{open-browser-Bzfc84xQ.mjs → open-browser-DIMVmm0o.mjs} +2 -2
  14. package/dist/parse-worker.mjs +1 -1
  15. package/dist/{preview-Doha4cmP.mjs → preview-BBdR6vmw.mjs} +2 -2
  16. package/dist/preview-oAaqMEbf.mjs +1 -0
  17. package/dist/public/assets/{ActivityModeContent-xON2KhOz.js → ActivityModeContent-B37XJHxx.js} +1 -1
  18. package/dist/public/assets/{AddPropertiesButton-CC1Bimpt.js → AddPropertiesButton-eMa8eBGf.js} +1 -1
  19. package/dist/public/assets/{AgentDiffPane-BPGzdN_g.js → AgentDiffPane-DHlBPg3c.js} +1 -1
  20. package/dist/public/assets/{AgentThreadClientBinder-Sg80UfOQ.js → AgentThreadClientBinder-lpLw9XDN.js} +1 -1
  21. package/dist/public/assets/{BugReportHistory-BOcChnxP.js → BugReportHistory-CuN8iDlA.js} +1 -1
  22. package/dist/public/assets/{BugReportHistoryDialog-BgcEcCCO.js → BugReportHistoryDialog-DGj_pTZf.js} +1 -1
  23. package/dist/public/assets/{CodeMirrorPropInput-Dp0ghtC3.js → CodeMirrorPropInput-Be4UuxHJ.js} +1 -1
  24. package/dist/public/assets/{ConsentDialogBody-DQlUb8Vu.js → ConsentDialogBody-XPmv8PGk.js} +1 -1
  25. package/dist/public/assets/{DocumentContext-Ak51fAXi.js → DocumentContext-CZ1LyjXH.js} +1 -1
  26. package/dist/public/assets/{EditorModeToggle-DpkS50Z0.js → EditorModeToggle-jAYPDv4d.js} +1 -1
  27. package/dist/public/assets/{EnableSyncConfirmDialog-DyPeGiVT.js → EnableSyncConfirmDialog-DGwynRzU.js} +1 -1
  28. package/dist/public/assets/{ExcalidrawDocEditor-BKndnS9g.js → ExcalidrawDocEditor-BWNQPfhq.js} +1 -1
  29. package/dist/public/assets/FeedbackForm-BAO3lafp.js +1 -0
  30. package/dist/public/assets/{GraphPanel-BdWJsnt-.js → GraphPanel-DDKxNmOr.js} +1 -1
  31. package/dist/public/assets/{ImportSkillDialog-C5f6Lj0b.js → ImportSkillDialog-D_3ApyBv.js} +1 -1
  32. package/dist/public/assets/{LintConfigEditor-C21DnP0H.js → LintConfigEditor-B3Gj07cI.js} +1 -1
  33. package/dist/public/assets/ManagedArtifactProperties-CV1Prpoj.js +1 -0
  34. package/dist/public/assets/{ManagedArtifactProperties-Dd9YEu9g.js → ManagedArtifactProperties-DeYta-00.js} +1 -1
  35. package/dist/public/assets/{MermaidDocEditor-CftOutDD.js → MermaidDocEditor-CiHzMRN9.js} +1 -1
  36. package/dist/public/assets/{PropertyDisplayRow-B3tLCY9W.js → PropertyDisplayRow-sm9qwuBw.js} +1 -1
  37. package/dist/public/assets/{ReportBugDialogBody-DRDozPGc.js → ReportBugDialogBody-DZA9GXnC.js} +1 -1
  38. package/dist/public/assets/{ReportBugMenuTrigger-Sbn4B06b.js → ReportBugMenuTrigger-D4qlc7zz.js} +2 -2
  39. package/dist/public/assets/{SchemaConfigEditor-DXhpWbEp.js → SchemaConfigEditor-D17w4XxC.js} +1 -1
  40. package/dist/public/assets/{SessionsHost-CGbrz5ge.js → SessionsHost-Cl-gIFYH.js} +2 -2
  41. package/dist/public/assets/{SettingsDialogBody-GRqpQyOX.js → SettingsDialogBody-Cqc-yl4k.js} +1 -1
  42. package/dist/public/assets/{ShareBranchSwitchDialog-DgKD1FWp.js → ShareBranchSwitchDialog-Ct4sBRfQ.js} +1 -1
  43. package/dist/public/assets/{ShareReceiveDialog-BsGWPO5t.js → ShareReceiveDialog-B92aqQEx.js} +1 -1
  44. package/dist/public/assets/{ShareReceiveMissDialog-DX4YDzpC.js → ShareReceiveMissDialog-C9VJyG_D.js} +1 -1
  45. package/dist/public/assets/{SkillCostValue-B4D7Ysdc.js → SkillCostValue-DLUxO68c.js} +1 -1
  46. package/dist/public/assets/{SkillEditBanner-BruoXTh-.js → SkillEditBanner-b0gL75iO.js} +1 -1
  47. package/dist/public/assets/{SkillInstallMenu-QBcuRLjh.js → SkillInstallMenu-BwbbztKY.js} +1 -1
  48. package/dist/public/assets/{SkillOriginInline-Dshp1Rdi.js → SkillOriginInline-DpPKdpar.js} +1 -1
  49. package/dist/public/assets/{SkillToolbarControls-BCXxl3_M.js → SkillToolbarControls-Bap6lIv8.js} +1 -1
  50. package/dist/public/assets/{SlidesToolbarControls-CJxgVynH.js → SlidesToolbarControls-BNqlGZ8e.js} +1 -1
  51. package/dist/public/assets/{SourceEditor-D9_q6g5_.js → SourceEditor-RCKX4Ohe.js} +1 -1
  52. package/dist/public/assets/{TerminalPanel-Lt1-XHX1.js → TerminalPanel-Zo-UDi-u.js} +1 -1
  53. package/dist/public/assets/{TerminalWindowApp-VUZguLdJ.js → TerminalWindowApp-DjRpidld.js} +1 -1
  54. package/dist/public/assets/{TextDocEditor-Cb7BPpJA.js → TextDocEditor--IKVxg88.js} +1 -1
  55. package/dist/public/assets/{ThreadView-Bf53-ggV.js → ThreadView-CUArcRSL.js} +1 -1
  56. package/dist/public/assets/{TimelineDiffPane-B1HLCcW9.js → TimelineDiffPane-D8HcBg2n.js} +1 -1
  57. package/dist/public/assets/{agent-diff-store-XWhp_hqN.js → agent-diff-store-DgFkR0kV.js} +1 -1
  58. package/dist/public/assets/{auth-state-cache-D22yWCCz.js → auth-state-cache-DNrEadrI.js} +1 -1
  59. package/dist/public/assets/{bug-report-send-manager-BBNXam8A.js → bug-report-send-manager-5nrn8Psu.js} +1 -1
  60. package/dist/public/assets/{client-version-B_H8duw7.js → client-version-DewpIoVp.js} +1 -1
  61. package/dist/public/assets/{comment-chips-D0prCEAx.js → comment-chips-mYvhrkxj.js} +1 -1
  62. package/dist/public/assets/{config-provider-D-Y4Wg0x.js → config-provider-DWieljqa.js} +1 -1
  63. package/dist/public/assets/{dist-D1GzYuCD.js → dist-As2x8uCt.js} +1 -1
  64. package/dist/public/assets/{doc-paths-ByyIE836.js → doc-paths-BkNaaTOB.js} +1 -1
  65. package/dist/public/assets/{documents-events-DPqTvBXn.js → documents-events-2g_OBjKU.js} +1 -1
  66. package/dist/public/assets/{file-tree-adapter-Ccbih42A.js → file-tree-adapter-Q4uvZiQM.js} +1 -1
  67. package/dist/public/assets/{file-tree-utils-Jz2v-e9t.js → file-tree-utils-Cy2QEG_5.js} +1 -1
  68. package/dist/public/assets/{folder-config-api-BddKQIga.js → folder-config-api-DhiWnWlS.js} +1 -1
  69. package/dist/public/assets/i18n-CpxzRV_v.js +1 -0
  70. package/dist/public/assets/{index-nJnxhQRq.js → index-DrzqbmWI.js} +7 -7
  71. package/dist/public/assets/{launcher-selection-CUAKUPGW.js → launcher-selection-DTBWt8s2.js} +1 -1
  72. package/dist/public/assets/{lint-config-client-DeGP10La.js → lint-config-client-CQNYXMfG.js} +1 -1
  73. package/dist/public/assets/{markdownlint-rule-browser-Bir8KkrK.js → markdownlint-rule-browser-BTovNATK.js} +1 -1
  74. package/dist/public/assets/{page-list-cache-D2OX_WDU.js → page-list-cache-AR7XhC2q.js} +1 -1
  75. package/dist/public/assets/{pending-receive-nav-store-sErL2uzl.js → pending-receive-nav-store-DXWRYoc_.js} +1 -1
  76. package/dist/public/assets/{progress-DfDRMpm4.js → progress-YLRB2n7w.js} +1 -1
  77. package/dist/public/assets/{project-paths-DX_YsFET.js → project-paths-BmMTa57i.js} +1 -1
  78. package/dist/public/assets/{prop-types-NHOECtyl.js → prop-types-CTZ-Zcfm.js} +1 -1
  79. package/dist/public/assets/{receive-store-6Dih24L8.js → receive-store-RexqPtVU.js} +1 -1
  80. package/dist/public/assets/{selection-context-C95IJZrT.js → selection-context-BcWEVrAI.js} +1 -1
  81. package/dist/public/assets/{skill-scope-4RF9DbEf.js → skill-scope-CauFSzAn.js} +1 -1
  82. package/dist/public/assets/{skills-api-D5W0J2dk.js → skills-api-KE9J-94z.js} +1 -1
  83. package/dist/public/assets/{src-qGi8ucyG.js → src-B5LNuYlK.js} +1 -1
  84. package/dist/public/assets/{startup-marks-Bvho0uc6.js → startup-marks-CUyZjhyC.js} +1 -1
  85. package/dist/public/assets/{tag-pill-input-CtA1wFQO.js → tag-pill-input-CcAyDLGe.js} +1 -1
  86. package/dist/public/assets/{target-navigation-intent-BFUFQkcA.js → target-navigation-intent-D6pgYTG-.js} +1 -1
  87. package/dist/public/assets/{telemetry-startup-C_zn8gFF.js → telemetry-startup-BFCbpnFp.js} +1 -1
  88. package/dist/public/assets/{terminal-cli-display-ZGFW9kw3.js → terminal-cli-display-C2L3vHWw.js} +1 -1
  89. package/dist/public/assets/{typing-burst-detector-B0lg7vla.js → typing-burst-detector-BO09cycJ.js} +1 -1
  90. package/dist/public/assets/{uninstall-BkDWS7iv.js → uninstall-DJhzaTa1.js} +1 -1
  91. package/dist/public/assets/{use-activity-panel-CuqTH-mx.js → use-activity-panel-BCJavN8T.js} +1 -1
  92. package/dist/public/assets/{use-apply-config-color-theme-Ba8Smkdy.js → use-apply-config-color-theme-CwClEWrd.js} +1 -1
  93. package/dist/public/assets/{use-collab-url-DFpuF-wX.js → use-collab-url-DHOOSaDb.js} +1 -1
  94. package/dist/public/assets/{use-live-xterm-theme-c1fyCaal.js → use-live-xterm-theme-_zomIp7z.js} +1 -1
  95. package/dist/public/assets/{use-open-skill-DJmjKHgr.js → use-open-skill-DzG96lKz.js} +1 -1
  96. package/dist/public/assets/{use-settings-route-BQW0aTo0.js → use-settings-route-Dq3eM_ye.js} +1 -1
  97. package/dist/public/assets/{use-skill-origin-WyyVjfzt.js → use-skill-origin-uUY8unvE.js} +1 -1
  98. package/dist/public/assets/{use-skills-BOMFaoLg.js → use-skills-RpG-BeVz.js} +1 -1
  99. package/dist/public/assets/{use-terminal-enabled-T9hbZCmo.js → use-terminal-enabled-DIQ4qqYj.js} +1 -1
  100. package/dist/public/assets/{use-timeline-entry-diff-Blkn7mx5.js → use-timeline-entry-diff-_fLA4Pt0.js} +1 -1
  101. package/dist/public/assets/{use-workspace-BeSzHXgL.js → use-workspace-DRylP9vX.js} +1 -1
  102. package/dist/public/index.html +47 -47
  103. package/dist/public/uninstall.html +3 -3
  104. package/dist/{repair-launch-json-AsKV5LiF.mjs → repair-launch-json-DO_3ABvq.mjs} +2 -2
  105. package/dist/{repair-mcp-configs-BYASBYNt.mjs → repair-mcp-configs-Bmw9_91L.mjs} +2 -2
  106. package/dist/{repair-skills-AGXJVKE-.mjs → repair-skills-BftHPTbX.mjs} +2 -2
  107. package/dist/repair-skills-CPy4iDny.mjs +1 -0
  108. package/dist/{resolve-project-root-XrNPFGNY.mjs → resolve-project-root-BCdGoKNz.mjs} +2 -2
  109. package/dist/{server-lock-DaOXwt6C.mjs → server-lock-CBDjdfxH.mjs} +2 -2
  110. package/dist/server-lock-xg5Njzvf.mjs +1 -0
  111. package/dist/{skill-teardown-BEnDXQv2.mjs → skill-teardown-Bxy5NV-V.mjs} +2 -2
  112. package/dist/src-B13TeG7U.mjs +1 -0
  113. package/dist/{src-BUfAkcnU.mjs → src-CP2xsmg5.mjs} +2 -2
  114. package/dist/{src-Gpb82U0M.mjs → src-D4A03H49.mjs} +2 -2
  115. package/dist/{src-D79M3x9g.mjs → src-DXJo3hyx.mjs} +1 -1
  116. package/dist/{src-Dyk9iCzv.mjs → src-HFlqeGnA.mjs} +4 -4
  117. package/dist/{start-hZ8_kSuC.mjs → start-7t3OZSc5.mjs} +3 -3
  118. package/dist/start-C1hXUjiR.mjs +1 -0
  119. package/package.json +4 -4
  120. package/dist/constants-DXEhJ197.mjs +0 -2
  121. package/dist/git-handle-pDdbSsMj.mjs +0 -1
  122. package/dist/init-D9KKXAfB.mjs +0 -1
  123. package/dist/loader-hcc6a20d.mjs +0 -1
  124. package/dist/md-manager-BUn7RZOJ.mjs +0 -2
  125. package/dist/preview-CHdEIdwL.mjs +0 -1
  126. package/dist/public/assets/FeedbackForm-BNeQXmJD.js +0 -1
  127. package/dist/public/assets/ManagedArtifactProperties-AGHZbLhh.js +0 -1
  128. package/dist/public/assets/i18n-BFtoQNCd.js +0 -1
  129. package/dist/repair-skills-DUxV_xLI.mjs +0 -1
  130. package/dist/server-lock-VtTnds5h.mjs +0 -1
  131. package/dist/src-s7hpfSip.mjs +0 -1
  132. package/dist/start-ky9sRyOI.mjs +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e,o as t,t as n}from"./chunk-DTipWd-i.mjs";import{$t as r,A as i,At as a,B as o,Bt as s,Ct as c,D as l,Dt as u,Et as d,Gt as f,H as p,Ht as m,I as h,It as g,J as _,Jt as v,K as y,Kt as b,Lt as x,Mt as S,Nt as C,O as w,Pt as T,Qt as E,R as D,Rt as O,St as ee,Tt as te,U as k,Ut as A,V as ne,Vt as re,W as ie,Wt as j,Yt as ae,_ as oe,_t as M,an as se,b as ce,cn as le,d as ue,dt as de,en as fe,f as pe,ft as me,gt as he,ht as ge,in as _e,it as ve,j as ye,jt as be,k as xe,kt as N,ln as Se,n as Ce,nn as we,on as Te,p as Ee,pt as De,qt as Oe,rn as ke,sn as Ae,st as je,t as Me,tn as Ne,u as Pe,ut as Fe,vt as Ie,xt as Le,y as Re,yt as ze,z as Be,zt as P}from"./sleep-CKSyI4wt.mjs";import{$ as Ve,$a as He,$i as Ue,$n as We,$r as Ge,$s as Ke,$t as qe,A as Je,Aa as Ye,Ai as Xe,An as Ze,Ao as Qe,Ar as $e,As as et,At as tt,B as nt,Ba as rt,Bi as it,Bn as at,Bo as ot,Br as st,Bs as ct,Bt as lt,C as ut,Ca as dt,Cc as ft,Ci as pt,Cn as mt,Co as ht,Cr as gt,Cs as _t,Ct as vt,D as yt,Da as bt,Di as xt,Dn as St,Do as Ct,Dr as wt,Ds as Tt,Dt as Et,E as Dt,Ea as Ot,Ei as kt,En as At,Eo as jt,Er as Mt,Es as Nt,Et as Pt,F as Ft,Fa as It,Fc as Lt,Fi as Rt,Fn as zt,Fo as Bt,Fr as Vt,Fs as Ht,Ft as Ut,G as Wt,Ga as Gt,Gi as Kt,Gn as qt,Go as Jt,Gr as Yt,Gs as Xt,Gt as Zt,H as Qt,Ha as $t,Hi as en,Hn as tn,Ho as nn,Hr as rn,I as an,Ia as on,Ii as sn,In as cn,Io as ln,Ir as un,Is as dn,It as fn,Ja as pn,Ji as mn,Jn as hn,Jo as gn,Jr as _n,Js as eee,Jt as vn,K as yn,Ka as bn,Ki as xn,Kn as tee,Ko as nee,Kr as Sn,Ks as Cn,Kt as wn,L as Tn,La as ree,Li as En,Ln as iee,Lo as Dn,Lr as On,Ls as kn,Lt as An,M as jn,Ma as Mn,Mc as Nn,Mi as Pn,Mn as Fn,Mo as In,Mr as Ln,Ms as Rn,Mt as zn,N as Bn,Na as Vn,Nc as Hn,Ni as Un,Nn as aee,No as Wn,Nr as Gn,Ns as Kn,Nt as qn,O as Jn,Oa as Yn,Oi as oee,On as see,Or as cee,Os as Xn,Ot as Zn,P as Qn,Pa as $n,Pc as er,Pi as tr,Pn as nr,Po as rr,Pr as ir,Pt as ar,Qa as or,Qi as sr,Qn as cr,Qo as lr,Qr as lee,Qs as ur,Qt as dr,R as fr,Ra as pr,Rc as mr,Ri as hr,Rn as gr,Ro as _r,Rr as vr,Rt as yr,S as br,Sa as xr,Si as Sr,Sn as Cr,So as wr,Sr as uee,Ss as Tr,St as Er,T as Dr,Ta as Or,Tc as kr,Ti as Ar,Tn as jr,To as Mr,Tr as dee,Ts as Nr,Tt as Pr,U as Fr,Ua as Ir,Ui as Lr,Un as Rr,Uo as zr,Ur as Br,Us as Vr,Ut as Hr,V as Ur,Va as Wr,Vi as Gr,Vn as Kr,Vo as qr,Vr as Jr,Vs as Yr,W as Xr,Wa as fee,Wi as Zr,Wn as Qr,Wo as $r,Wr as ei,Ws as ti,Wt as ni,X as pee,Xa as mee,Xi as ri,Xn as hee,Xo as gee,Xr as _ee,Xs as ii,Xt as ai,Y as vee,Ya as yee,Yi as oi,Yn as si,Yo as bee,Yr as ci,Ys as li,Yt as ui,Z as di,Za as fi,Zi as pi,Zn as mi,Zo as hi,Zr as gi,Zs as _i,Zt as vi,_ as yi,_a as bi,_c as xi,_i as Si,_n as Ci,_o as wi,_r as Ti,_s as Ei,_t as Di,a as Oi,aa as ki,ac as Ai,ai as ji,an as Mi,ao as Ni,ar as xee,as as Pi,at as Fi,b as Ii,ba as Li,bc as See,bi as Ri,bn as zi,bo as Bi,br as Cee,bs as Vi,bt as Hi,c as Ui,ca as wee,ci as Tee,cn as Eee,co as Wi,cr as Dee,cs as Gi,ct as Ki,d as qi,da as Ji,dc as Oee,di as kee,dn as Aee,do as Yi,dr as Xi,ds as Zi,dt as Qi,ea as $i,ei as ea,en as ta,eo as na,er as ra,es as ia,et as aa,f as oa,fa as sa,fc as ca,fi as la,fn as ua,fo as da,fr as fa,ft as pa,g as ma,ga as ha,gc as ga,gi as _a,gn as va,go as ya,gr as ba,gs as xa,gt as Sa,h as Ca,ha as wa,hc as Ta,hi as Ea,hn as Da,ho as Oa,hr as ka,ht as Aa,i as ja,ia as Ma,ic as Na,ii as Pa,in as Fa,io as Ia,ir as jee,it as La,j as Ra,ja as za,ji as Ba,jn as Mee,jo as Va,jr as Ha,jt as Ua,k as Wa,ka as Ga,ki as Nee,kn as Pee,ko as Ka,kr as Fee,ks as qa,kt as Ja,l as Ya,la as Xa,lc as Za,li as Iee,ln as Lee,lo as Qa,lr as $a,ls as eo,lt as to,m as no,ma as ro,mc as io,mi as ao,mn as Ree,mo as oo,mr as zee,ms as so,mt as co,n as lo,na as uo,nc as fo,ni as po,nn as mo,no as ho,nr as go,ns as _o,nt as vo,o as yo,oa as bo,oc as xo,oi as So,on as Co,oo as wo,or as To,ot as Eo,p as Do,pa as Oo,pc as ko,pi as Ao,pn as jo,po as Mo,pr as No,ps as Po,pt as Fo,q as Io,qa as Lo,qi as Ro,qn as zo,qo as Bo,qr as Vo,qt as Ho,r as Uo,ra as Wo,rc as Go,ri as Ko,rn as qo,ro as Jo,rr as Yo,rs as Xo,rt as Zo,s as Qo,sa as Bee,sc as $o,si as es,sn as ts,so as ns,sr as Vee,st as rs,t as is,ta as as,tc as os,ti as ss,tn as Hee,to as cs,tr as Uee,ts as ls,tt as us,u as ds,ua as fs,uc as ps,ui as Wee,un as Gee,uo as ms,ur as hs,us as gs,ut as _s,v as vs,va as ys,vc as bs,vi as xs,vn as Kee,vr as qee,vt as Ss,w as Cs,wa as ws,wc as Ts,wi as Jee,wn as Es,wo as Ds,wr as Yee,wt as Os,x as ks,xa as As,xc as js,xi as Ms,xn as Xee,xo as Ns,xr as Ps,xs as Fs,xt as Is,y as Ls,ya as Rs,yc as zs,yi as Bs,yn as Vs,yo as Hs,yr as Us,ys as Ws,yt as Gs,z as Ks,za as qs,zi as Js,zn as Ys,zo as Xs,zr as Zs,zs as Qs,zt as $s}from"./src-BUfAkcnU.mjs";import{c as ec,i as tc,l as nc,n as rc,s as ic}from"./esm-DxvI2ZVA.mjs";import{n as ac,t as oc}from"./md-manager-BUn7RZOJ.mjs";import{A as sc,C as cc,E as lc,F as uc,L as dc,M as fc,N as pc,S as mc,T as hc,_ as gc,a as _c,b as vc,c as yc,d as bc,f as xc,g as Sc,h as Cc,i as wc,j as Tc,k as Ec,l as Dc,m as Oc,n as kc,o as Ac,p as jc,r as Mc,s as Nc,t as Pc,u as Fc,v as Ic,w as Lc,x as Rc,y as zc}from"./fs-traced-DcgvOGgW.mjs";import{E as Zee,T as Qee,a as Bc,b as Vc,l as $ee,p as ete,r as F,s as Hc,v as tte,w as nte,x as Uc,y as Wc}from"./logger-Dq-cRhcP.mjs";import{a as Gc,c as rte,i as Kc,l as ite,o as ate,r as qc,s as Jc,t as Yc}from"./git-handle-C9RPCwJN.mjs";import{C as ote,S as Xc,a as Zc,b as Qc,d as $c,i as ste,n as cte,o as el,r as tl,v as nl,y as rl}from"./server-lock-DaOXwt6C.mjs";import{t as lte}from"./libesm-DzwC_yFw.mjs";import{t as ute}from"./yazl-DejPO9b3.mjs";import{t as il}from"./chunk-B74TABJS-CK4NFJp-.mjs";import{a as al,c as ol,d as dte,f as sl,h as fte,i as cl,l as ll,m as ul,n as dl,o as fl,p as pl,r as ml,s as hl,t as gl,u as _l}from"./chunk-GFQRA5P5-BWmec-I9.mjs";import{A as vl,B as yl,C as bl,D as xl,E as pte,F as mte,H as hte,I as gte,L as Sl,M as Cl,N as wl,O as Tl,P as El,S as _te,T as vte,V as yte,_ as bte,a as Dl,b as Ol,c as kl,d as Al,f as jl,g as Ml,h as Nl,i as Pl,j as Fl,k as Il,l as Ll,m as Rl,n as zl,o as Bl,p as Vl,r as Hl,s as Ul,t as Wl,u as Gl,v as Kl,w as ql,x as Jl,y as Yl,z as Xl}from"./chunk-BGSUD5R5-Cj4a16wX.mjs";import{a as Zl,c as Ql,d as $l,i as eu,l as tu,n as nu,o as ru,r as iu,s as au,t as ou,u as su}from"./chunk-KX3P26DQ-KA7oOKfS.mjs";import{n as cu,r as lu,t as uu}from"./chunk-R6VWJ2ZL-B9eBwYXQ.mjs";import{r as du}from"./chunk-CWQS3NFK-BmYxhDXa.mjs";import{t as fu}from"./chunk-DXB73IDG-Dx7prHrO.mjs";import{n as pu,t as mu}from"./chunk-5QMZ5MUS-BliBLsUm.mjs";import{n as hu,t as gu}from"./chunk-A5O5YHGN-OOtvVl24.mjs";import{n as _u,r as vu,t as yu}from"./chunk-OJDRYQWQ-DqalHi82.mjs";import{r as bu,t as xu}from"./chunk-24IMIIXA-C3WrrB2N.mjs";import{n as Su}from"./chunk-3THT3N7L-Be-SmWEj.mjs";import{t as Cu}from"./chunk-44UOCSGV-CZohvp0c.mjs";import{t as wu}from"./wrapper-BR9ZCXZF.mjs";import{createRequire as Tu}from"node:module";import{execFile as Eu,execFileSync as Du,spawn as Ou,spawnSync as ku}from"node:child_process";import*as Au from"node:path";import{basename as ju,delimiter as Mu,dirname as I,extname as Nu,isAbsolute as Pu,join as L,normalize as Fu,parse as Iu,posix as Lu,relative as R,resolve as z,sep as B,win32 as xte}from"node:path";import{URLSearchParams as Ste,fileURLToPath as Ru,pathToFileURL as zu}from"node:url";import*as Bu from"node:fs";import{appendFileSync as Cte,chmodSync as Vu,closeSync as Hu,constants as Uu,createReadStream as Wu,createWriteStream as Gu,existsSync as V,fstatSync as wte,lstatSync as Ku,mkdirSync as qu,mkdtempSync as Ju,openSync as Yu,opendirSync as Xu,readFile as Tte,readFileSync as H,readSync as Zu,readdirSync as Qu,readlinkSync as $u,realpathSync as U,renameSync as ed,rmSync as td,rmdirSync as nd,statSync as rd,unlinkSync as id,writeFileSync as ad,writeSync as Ete}from"node:fs";import{arch as od,availableParallelism as Dte,homedir as sd,hostname as cd,platform as ld,tmpdir as ud}from"node:os";import{access as dd,chmod as Ote,constants as fd,lstat as pd,readFile as md,readdir as hd,realpath as gd,stat as _d,writeFile as kte}from"node:fs/promises";import{Readable as vd,Transform as Ate,Writable as jte}from"node:stream";import yd,{createHash as bd,randomUUID as xd,webcrypto as Sd}from"node:crypto";import Mte from"crypto";import{Readable as Cd}from"stream";import{EventEmitter as Nte}from"node:events";import{readdirSync as Pte,statSync as Fte}from"fs";import{join as wd,resolve as Ite}from"path";import{Worker as Lte}from"node:worker_threads";import{monitorEventLoopDelay as Rte,performance as Td}from"node:perf_hooks";import{createInterface as zte}from"node:readline";import{pipeline as Ed}from"node:stream/promises";import{setImmediate as Bte,setTimeout as Dd}from"node:timers/promises";import{promisify as Od}from"node:util";import{request as Vte}from"node:http";import{Http2ServerRequest as kd,constants as Hte}from"node:http2";import{lookup as Ute}from"node:dns/promises";import{request as Wte}from"node:https";import{createBrotliDecompress as Gte,createGunzip as Kte,createInflate as qte}from"node:zlib";import*as Jte from"node:querystring";import{Http2ServerRequest as Ad,constants as Yte}from"http2";import{AsyncLocalStorage as Xte}from"node:async_hooks";import{lookup as Zte}from"node:dns";import Qte from"node:tls";var jd=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=H(L(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=Pu(t)?t:z(this.gitDir,t))}catch(e){if(!Fd(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=H(L(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return Fd(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]}:Ld(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=H(L(t.path,`config`),`utf-8`)}catch(e){return Fd(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=$te(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Id(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=z(t.path,e),r=R(t.path,n);if(r.startsWith(`..`)||Pu(r))return{kind:`invalid`};try{let e=H(n,`utf-8`).trim(),t=nne(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!Fd(e))return{kind:`unreadable`,cause:e}}let i;try{i=H(L(t.path,`packed-refs`),`utf-8`)}catch(e){return Fd(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 Ld(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function Md(e){return Pd(z(e),``)}function Nd(e){let t=z(e),n=z(sd());if(t===n)return{kind:`absent`};let r=Pd(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=I(i);if(e===i||e===n)return{kind:`absent`};let r=Pd(e,R(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function Pd(e,t){let n=L(e,`.git`),r;try{r=rd(n)}catch(e){return Fd(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new jd(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=H(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=Pu(o)?o:z(e,o);try{if(!rd(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 jd(`linked`,e,t,n,s)}}function $te(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=ene(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=tne(i[1]);if(a.length>0)return a}return null}function ene(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function tne(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Fd(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Id(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function nne(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Id(t[1])?{kind:`symbolic`,target:t[1]}:null:Ld(e)?{kind:`oid`,oid:e}:null}function Ld(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const Rd=`ok-generator`;function rne(e){return`git-author-${fn(e.trim().toLowerCase())}`}const ine=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function zd(e){let t=Nd(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 Bd(e){let t=zd(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Vd(e){let t=zd(e);switch(t.kind){case`directory`:return z(t.path,Hd(t.projectSubPath));case`linked`:if(!V(t.path))throw new Ud(t.gitPath,t.path);return z(t.path,Hd(t.projectSubPath));case`malformed-pointer`:throw new Ud(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Wd(t.gitPath,{cause:t.cause});case`absent`:return z(e,`.git/ok`)}}function Hd(e){return e===``?`ok`:`ok-${ane(e)}`}function ane(e){let t=e.split(B).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=one(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function one(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var Ud=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}},Wd=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 sne(e){let t;try{t=Vd(e)}catch(e){if(e instanceof Ud||e instanceof Wd)return null;throw e}return V(z(t,`HEAD`))?t:null}function Gd(e){return`refs/wip/${e}/`}function cne(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,A as i,At as a,B as o,Bt as s,Ct as c,D as l,Dt as u,Et as d,Gt as f,H as p,Ht as m,I as h,It as g,J as _,Jt as v,K as y,Kt as b,Lt as x,Mt as S,Nt as C,O as w,Pt as T,Qt as E,R as D,Rt as O,St as ee,Tt as te,U as k,Ut as A,V as ne,Vt as re,W as ie,Wt as j,Yt as ae,_ as oe,_t as M,an as se,b as ce,cn as le,d as ue,dt as de,en as fe,f as pe,ft as me,gt as he,ht as ge,in as _e,it as ve,j as ye,jt as be,k as xe,kt as N,ln as Se,n as Ce,nn as we,on as Te,p as Ee,pt as De,qt as Oe,rn as ke,sn as Ae,st as je,t as Me,tn as Ne,u as Pe,ut as Fe,vt as Ie,xt as Le,y as Re,yt as ze,z as Be,zt as P}from"./sleep-CKSyI4wt.mjs";import{$ as Ve,$a as He,$i as Ue,$n as We,$r as Ge,$s as Ke,$t as qe,A as Je,Aa as Ye,Ai as Xe,An as Ze,Ao as Qe,Ar as $e,As as et,At as tt,B as nt,Ba as rt,Bi as it,Bn as at,Bo as ot,Br as st,Bs as ct,Bt as lt,C as ut,Ca as dt,Cc as ft,Ci as pt,Cn as mt,Co as ht,Cr as gt,Cs as _t,Ct as vt,D as yt,Da as bt,Di as xt,Dn as St,Do as Ct,Dr as wt,Ds as Tt,Dt as Et,E as Dt,Ea as Ot,Ei as kt,En as At,Eo as jt,Er as Mt,Es as Nt,Et as Pt,F as Ft,Fa as It,Fc as Lt,Fi as Rt,Fn as zt,Fo as Bt,Fr as Vt,Fs as Ht,Ft as Ut,G as Wt,Ga as Gt,Gi as Kt,Gn as qt,Go as Jt,Gr as Yt,Gs as Xt,Gt as Zt,H as Qt,Ha as $t,Hi as en,Hn as tn,Ho as nn,Hr as rn,I as an,Ia as on,Ii as sn,In as cn,Io as ln,Ir as un,Is as dn,It as fn,Ja as pn,Ji as mn,Jn as hn,Jo as gn,Jr as _n,Js as eee,Jt as vn,K as yn,Ka as bn,Ki as xn,Kn as tee,Ko as nee,Kr as Sn,Ks as Cn,Kt as wn,L as Tn,La as ree,Li as En,Ln as iee,Lo as Dn,Lr as On,Ls as kn,Lt as An,M as jn,Ma as Mn,Mc as Nn,Mi as Pn,Mn as Fn,Mo as In,Mr as Ln,Ms as Rn,Mt as zn,N as Bn,Na as Vn,Nc as Hn,Ni as Un,Nn as aee,No as Wn,Nr as Gn,Ns as Kn,Nt as qn,O as Jn,Oa as Yn,Oi as oee,On as see,Or as cee,Os as Xn,Ot as Zn,P as Qn,Pa as $n,Pc as er,Pi as tr,Pn as nr,Po as rr,Pr as ir,Pt as ar,Qa as or,Qi as sr,Qn as cr,Qo as lr,Qr as lee,Qs as ur,Qt as dr,R as fr,Ra as pr,Rc as mr,Ri as hr,Rn as gr,Ro as _r,Rr as vr,Rt as yr,S as br,Sa as xr,Si as Sr,Sn as Cr,So as wr,Sr as uee,Ss as Tr,St as Er,T as Dr,Ta as Or,Tc as kr,Ti as Ar,Tn as jr,To as Mr,Tr as dee,Ts as Nr,Tt as Pr,U as Fr,Ua as Ir,Ui as Lr,Un as Rr,Uo as zr,Ur as Br,Us as Vr,Ut as Hr,V as Ur,Va as Wr,Vi as Gr,Vn as Kr,Vo as qr,Vr as Jr,Vs as Yr,W as Xr,Wa as fee,Wi as Zr,Wn as Qr,Wo as $r,Wr as ei,Ws as ti,Wt as ni,X as pee,Xa as mee,Xi as ri,Xn as hee,Xo as gee,Xr as _ee,Xs as ii,Xt as ai,Y as vee,Ya as yee,Yi as oi,Yn as si,Yo as bee,Yr as ci,Ys as li,Yt as ui,Z as di,Za as fi,Zi as pi,Zn as mi,Zo as hi,Zr as gi,Zs as _i,Zt as vi,_ as yi,_a as bi,_c as xi,_i as Si,_n as Ci,_o as wi,_r as Ti,_s as Ei,_t as Di,a as Oi,aa as ki,ac as Ai,ai as ji,an as Mi,ao as Ni,ar as xee,as as Pi,at as Fi,b as Ii,ba as Li,bc as See,bi as Ri,bn as zi,bo as Bi,br as Cee,bs as Vi,bt as Hi,c as Ui,ca as wee,ci as Tee,cn as Eee,co as Wi,cr as Dee,cs as Gi,ct as Ki,d as qi,da as Ji,dc as Oee,di as kee,dn as Aee,do as Yi,dr as Xi,ds as Zi,dt as Qi,ea as $i,ei as ea,en as ta,eo as na,er as ra,es as ia,et as aa,f as oa,fa as sa,fc as ca,fi as la,fn as ua,fo as da,fr as fa,ft as pa,g as ma,ga as ha,gc as ga,gi as _a,gn as va,go as ya,gr as ba,gs as xa,gt as Sa,h as Ca,ha as wa,hc as Ta,hi as Ea,hn as Da,ho as Oa,hr as ka,ht as Aa,i as ja,ia as Ma,ic as Na,ii as Pa,in as Fa,io as Ia,ir as jee,it as La,j as Ra,ja as za,ji as Ba,jn as Mee,jo as Va,jr as Ha,jt as Ua,k as Wa,ka as Ga,ki as Nee,kn as Pee,ko as Ka,kr as Fee,ks as qa,kt as Ja,l as Ya,la as Xa,lc as Za,li as Iee,ln as Lee,lo as Qa,lr as $a,ls as eo,lt as to,m as no,ma as ro,mc as io,mi as ao,mn as Ree,mo as oo,mr as zee,ms as so,mt as co,n as lo,na as uo,nc as fo,ni as po,nn as mo,no as ho,nr as go,ns as _o,nt as vo,o as yo,oa as bo,oc as xo,oi as So,on as Co,oo as wo,or as To,ot as Eo,p as Do,pa as Oo,pc as ko,pi as Ao,pn as jo,po as Mo,pr as No,ps as Po,pt as Fo,q as Io,qa as Lo,qi as Ro,qn as zo,qo as Bo,qr as Vo,qt as Ho,r as Uo,ra as Wo,rc as Go,ri as Ko,rn as qo,ro as Jo,rr as Yo,rs as Xo,rt as Zo,s as Qo,sa as Bee,sc as $o,si as es,sn as ts,so as ns,sr as Vee,st as rs,t as is,ta as as,tc as os,ti as ss,tn as Hee,to as cs,tr as Uee,ts as ls,tt as us,u as ds,ua as fs,uc as ps,ui as Wee,un as Gee,uo as ms,ur as hs,us as gs,ut as _s,v as vs,va as ys,vc as bs,vi as xs,vn as Kee,vr as qee,vt as Ss,w as Cs,wa as ws,wc as Ts,wi as Jee,wn as Es,wo as Ds,wr as Yee,wt as Os,x as ks,xa as As,xc as js,xi as Ms,xn as Xee,xo as Ns,xr as Ps,xs as Fs,xt as Is,y as Ls,ya as Rs,yc as zs,yi as Bs,yn as Vs,yo as Hs,yr as Us,ys as Ws,yt as Gs,z as Ks,za as qs,zi as Js,zn as Ys,zo as Xs,zr as Zs,zs as Qs,zt as $s}from"./src-CP2xsmg5.mjs";import{c as ec,i as tc,l as nc,n as rc,s as ic}from"./esm-DxvI2ZVA.mjs";import{n as ac,t as oc}from"./md-manager-BZCd3Vha.mjs";import{A as sc,C as cc,E as lc,F as uc,L as dc,M as fc,N as pc,S as mc,T as hc,_ as gc,a as _c,b as vc,c as yc,d as bc,f as xc,g as Sc,h as Cc,i as wc,j as Tc,k as Ec,l as Dc,m as Oc,n as kc,o as Ac,p as jc,r as Mc,s as Nc,t as Pc,u as Fc,v as Ic,w as Lc,x as Rc,y as zc}from"./fs-traced-DcgvOGgW.mjs";import{E as Zee,T as Qee,a as Bc,b as Vc,l as $ee,p as ete,r as F,s as Hc,v as tte,w as nte,x as Uc,y as Wc}from"./logger-Dq-cRhcP.mjs";import{a as Gc,c as rte,i as Kc,l as ite,o as ate,r as qc,s as Jc,t as Yc}from"./git-handle-CehgIzoK.mjs";import{C as ote,S as Xc,a as Zc,b as Qc,d as $c,i as ste,n as cte,o as el,r as tl,v as nl,y as rl}from"./server-lock-CBDjdfxH.mjs";import{t as lte}from"./libesm-DzwC_yFw.mjs";import{t as ute}from"./yazl-DejPO9b3.mjs";import{t as il}from"./chunk-B74TABJS-CK4NFJp-.mjs";import{a as al,c as ol,d as dte,f as sl,h as fte,i as cl,l as ll,m as ul,n as dl,o as fl,p as pl,r as ml,s as hl,t as gl,u as _l}from"./chunk-GFQRA5P5-BWmec-I9.mjs";import{A as vl,B as yl,C as bl,D as xl,E as pte,F as mte,H as hte,I as gte,L as Sl,M as Cl,N as wl,O as Tl,P as El,S as _te,T as vte,V as yte,_ as bte,a as Dl,b as Ol,c as kl,d as Al,f as jl,g as Ml,h as Nl,i as Pl,j as Fl,k as Il,l as Ll,m as Rl,n as zl,o as Bl,p as Vl,r as Hl,s as Ul,t as Wl,u as Gl,v as Kl,w as ql,x as Jl,y as Yl,z as Xl}from"./chunk-BGSUD5R5-Cj4a16wX.mjs";import{a as Zl,c as Ql,d as $l,i as eu,l as tu,n as nu,o as ru,r as iu,s as au,t as ou,u as su}from"./chunk-KX3P26DQ-KA7oOKfS.mjs";import{n as cu,r as lu,t as uu}from"./chunk-R6VWJ2ZL-B9eBwYXQ.mjs";import{r as du}from"./chunk-CWQS3NFK-BmYxhDXa.mjs";import{t as fu}from"./chunk-DXB73IDG-Dx7prHrO.mjs";import{n as pu,t as mu}from"./chunk-5QMZ5MUS-BliBLsUm.mjs";import{n as hu,t as gu}from"./chunk-A5O5YHGN-OOtvVl24.mjs";import{n as _u,r as vu,t as yu}from"./chunk-OJDRYQWQ-DqalHi82.mjs";import{r as bu,t as xu}from"./chunk-24IMIIXA-C3WrrB2N.mjs";import{n as Su}from"./chunk-3THT3N7L-Be-SmWEj.mjs";import{t as Cu}from"./chunk-44UOCSGV-CZohvp0c.mjs";import{t as wu}from"./wrapper-BR9ZCXZF.mjs";import{createRequire as Tu}from"node:module";import{execFile as Eu,execFileSync as Du,spawn as Ou,spawnSync as ku}from"node:child_process";import*as Au from"node:path";import{basename as ju,delimiter as Mu,dirname as I,extname as Nu,isAbsolute as Pu,join as L,normalize as Fu,parse as Iu,posix as Lu,relative as R,resolve as z,sep as B,win32 as xte}from"node:path";import{URLSearchParams as Ste,fileURLToPath as Ru,pathToFileURL as zu}from"node:url";import*as Bu from"node:fs";import{appendFileSync as Cte,chmodSync as Vu,closeSync as Hu,constants as Uu,createReadStream as Wu,createWriteStream as Gu,existsSync as V,fstatSync as wte,lstatSync as Ku,mkdirSync as qu,mkdtempSync as Ju,openSync as Yu,opendirSync as Xu,readFile as Tte,readFileSync as H,readSync as Zu,readdirSync as Qu,readlinkSync as $u,realpathSync as U,renameSync as ed,rmSync as td,rmdirSync as nd,statSync as rd,unlinkSync as id,writeFileSync as ad,writeSync as Ete}from"node:fs";import{arch as od,availableParallelism as Dte,homedir as sd,hostname as cd,platform as ld,tmpdir as ud}from"node:os";import{access as dd,chmod as Ote,constants as fd,lstat as pd,readFile as md,readdir as hd,realpath as gd,stat as _d,writeFile as kte}from"node:fs/promises";import{Readable as vd,Transform as Ate,Writable as jte}from"node:stream";import yd,{createHash as bd,randomUUID as xd,webcrypto as Sd}from"node:crypto";import Mte from"crypto";import{Readable as Cd}from"stream";import{EventEmitter as Nte}from"node:events";import{readdirSync as Pte,statSync as Fte}from"fs";import{join as wd,resolve as Ite}from"path";import{Worker as Lte}from"node:worker_threads";import{monitorEventLoopDelay as Rte,performance as Td}from"node:perf_hooks";import{createInterface as zte}from"node:readline";import{pipeline as Ed}from"node:stream/promises";import{setImmediate as Bte,setTimeout as Dd}from"node:timers/promises";import{promisify as Od}from"node:util";import{request as Vte}from"node:http";import{Http2ServerRequest as kd,constants as Hte}from"node:http2";import{lookup as Ute}from"node:dns/promises";import{request as Wte}from"node:https";import{createBrotliDecompress as Gte,createGunzip as Kte,createInflate as qte}from"node:zlib";import*as Jte from"node:querystring";import{Http2ServerRequest as Ad,constants as Yte}from"http2";import{AsyncLocalStorage as Xte}from"node:async_hooks";import{lookup as Zte}from"node:dns";import Qte from"node:tls";var jd=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=H(L(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=Pu(t)?t:z(this.gitDir,t))}catch(e){if(!Fd(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=H(L(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return Fd(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]}:Ld(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=H(L(t.path,`config`),`utf-8`)}catch(e){return Fd(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=$te(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Id(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=z(t.path,e),r=R(t.path,n);if(r.startsWith(`..`)||Pu(r))return{kind:`invalid`};try{let e=H(n,`utf-8`).trim(),t=nne(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!Fd(e))return{kind:`unreadable`,cause:e}}let i;try{i=H(L(t.path,`packed-refs`),`utf-8`)}catch(e){return Fd(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 Ld(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function Md(e){return Pd(z(e),``)}function Nd(e){let t=z(e),n=z(sd());if(t===n)return{kind:`absent`};let r=Pd(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=I(i);if(e===i||e===n)return{kind:`absent`};let r=Pd(e,R(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function Pd(e,t){let n=L(e,`.git`),r;try{r=rd(n)}catch(e){return Fd(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new jd(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=H(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=Pu(o)?o:z(e,o);try{if(!rd(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 jd(`linked`,e,t,n,s)}}function $te(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=ene(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=tne(i[1]);if(a.length>0)return a}return null}function ene(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function tne(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Fd(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Id(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function nne(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Id(t[1])?{kind:`symbolic`,target:t[1]}:null:Ld(e)?{kind:`oid`,oid:e}:null}function Ld(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const Rd=`ok-generator`;function rne(e){return`git-author-${fn(e.trim().toLowerCase())}`}const ine=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function zd(e){let t=Nd(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 Bd(e){let t=zd(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Vd(e){let t=zd(e);switch(t.kind){case`directory`:return z(t.path,Hd(t.projectSubPath));case`linked`:if(!V(t.path))throw new Ud(t.gitPath,t.path);return z(t.path,Hd(t.projectSubPath));case`malformed-pointer`:throw new Ud(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Wd(t.gitPath,{cause:t.cause});case`absent`:return z(e,`.git/ok`)}}function Hd(e){return e===``?`ok`:`ok-${ane(e)}`}function ane(e){let t=e.split(B).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=one(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function one(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var Ud=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}},Wd=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 sne(e){let t;try{t=Vd(e)}catch(e){if(e instanceof Ud||e instanceof Wd)return null;throw e}return V(z(t,`HEAD`))?t:null}function Gd(e){return`refs/wip/${e}/`}function cne(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 Kd=`ok-actor: `;function qd(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),`${Kd}${JSON.stringify(i)}`}function Jd(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=lne(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 lne(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 une(e){if(!e)return null;for(let t of e.split(`
3
3
  `)){let e=t.trim();if(!e.startsWith(Kd))continue;let n;try{n=JSON.parse(e.slice(10))}catch{return null}return typeof n!=`object`||!n?null:Jd(n)}return null}function Yd(e){if(!e)return[];let t=[];for(let n of e.split(`
4
4
  `)){let e=n.trim();if(!e.startsWith(Kd))continue;let r;try{r=JSON.parse(e.slice(10))}catch{continue}if(typeof r!=`object`||!r)continue;let i=Jd(r);i&&t.push(i)}return t}function Xd(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 Zd(e){let t=Yd(e);return t.length>0?t.map(Xd):cne(e)}function Qd(e){return e.length===0?`wip: auto-save`:e.length===1?`wip: ${e[0]}`:`wip: ${e.length} docs`}function $d(e){return`reconcile: ${e}`}function ef(e,t){return`rollback: ${e} to ${t.slice(0,7)}`}function tf(e,t){return`park: ${e} -> ${t}`}function nf(e,t){return`rename: ${e} -> ${t}`}function rf(e){return`checkpoint: ${e}`}function af(e,t){return e?`import: from ${e.slice(0,8)}..${t.slice(0,8)}`:`import: initial at ${t.slice(0,8)}`}const of=RegExp(`[\\r\\n\\v\\f\\u0085\\u2028\\u2029]`,`g`);function sf(e){return e.replace(of,` `)}function cf(e,t){let n=sf(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=sf(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 lf(e){return ine.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 uf(e){let t=zd(e);if(t.kind!==`linked`)return z(e);try{let n=H(L(t.path,`commondir`),`utf-8`).trim();return n===``?z(e):z(I(z(t.path,n)),t.projectSubPath)}catch{return z(e)}}function df(e){return e.kind??`other`}function ff(e,t){for(let n of t){let t=e.find(e=>e.kind===n);if(t!==void 0)return t}}var pf=class{filePath;log;grants=null;constructor(e,t){this.filePath=L(e,`acp-permissions.json`),this.log=t}decide(e,t,n){let r=df(t),i=ff(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=df(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-CJauRo0X.mjs`);await e(L(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(H(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 mf=[`claude-acp`,`codex-acp`,`gemini`,`cursor`,`github-copilot-cli`,`opencode`],hf={"claude-acp":`claude`,"codex-acp":`codex`,opencode:`opencode`,"pi-acp":`pi`},gf=`acp-agents.json`,_f=`acp-registry-cache.json`;function vf(){let e=ld(),t=od(),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 yf=new Set([`goose`,`fast-agent`,`crow-cli`]);function bf(e,t){let n=t.trim();return n.length===0?e:yf.has(e)||n!==n.toLowerCase()?n:n.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function xf(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 Sf(e){let t;try{t=JSON.parse(e)}catch{return null}let n=t?.agents;return Array.isArray(n)?n.filter(xf).map(e=>({...e,name:bf(e.id,e.name)})):null}var Cf=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=Sf(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-CJauRo0X.mjs`);await e(this.localDir,{recursive:!0}),await n(L(this.localDir,_f),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=Sf(await md(L(this.localDir,_f),`utf8`));return e===null?null:{agents:e,fetchedAt:0,stale:!0}}catch{return null}}};async function wf(e,t){let n;try{n=await md(L(e,gf),`utf8`)}catch{return[]}let r;try{r=JSON.parse(n)}catch(e){return t.warn({err:e},`[acp-registry] ${gf} 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 ${gf} entry`)}return i}const Tf={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`},Df={cancel_request:`$/cancel_request`},Of=Symbol(`skippedItem`);function W(e,t){return e.catch(t)}function kf(e,t){let n=e.catch(t);return f().transform((e,t)=>e===void 0?(t.addIssue({code:`custom`,message:`Required value is missing`}),Se):n.parse(e))}function Af(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];return typeof n==`string`?n:void 0}function jf(e,t,n){return e.superRefine((e,r)=>{let i=Af(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 Mf(e,t,n){return f().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=Af(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 Nf(e){return N(e.catch(Of)).transform(e=>e.filter(e=>e!==Of))}const Pf=j([O(),A()]).nullable(),Ff=A(),If=P({sessionId:Ff,path:A(),content:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Lf=P({sessionId:Ff,path:A(),line:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),limit:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Rf=A(),zf=j([g(`read`),g(`edit`),g(`delete`),g(`move`),g(`search`),g(`execute`),g(`think`),g(`fetch`),g(`switch_mode`),g(`other`)]),Bf=j([g(`pending`),g(`in_progress`),g(`completed`),g(`failed`)]),Vf=P({audience:W(Nf(j([g(`assistant`),g(`user`)])).nullish(),()=>void 0),lastModified:W(A().nullish(),()=>void 0),priority:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Hf=P({annotations:W(Vf.nullish(),()=>void 0),text:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Uf=P({annotations:W(Vf.nullish(),()=>void 0),data:A(),mimeType:A(),uri:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Wf=P({annotations:W(Vf.nullish(),()=>void 0),data:A(),mimeType:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Gf=P({annotations:W(Vf.nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),mimeType:W(A().nullish(),()=>void 0),name:A(),size:W(O().nullish(),()=>void 0),title:W(A().nullish(),()=>void 0),uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Kf=j([P({mimeType:W(A().nullish(),()=>void 0),text:A(),uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),P({blob:A(),mimeType:W(A().nullish(),()=>void 0),uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)})]),qf=P({annotations:W(Vf.nullish(),()=>void 0),resource:Kf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Jf=j([Hf.and(P({type:g(`text`)})),Uf.and(P({type:g(`image`)})),Wf.and(P({type:g(`audio`)})),Gf.and(P({type:g(`resource_link`)})),qf.and(P({type:g(`resource`)}))]),Yf=P({content:Jf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Xf=P({path:A(),oldText:W(A().nullish(),()=>void 0),newText:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Zf=A(),Qf=P({terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),$f=j([Yf.and(P({type:g(`content`)})),Xf.and(P({type:g(`diff`)})),Qf.and(P({type:g(`terminal`)}))]),ep=P({path:A(),line:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),tp=P({toolCallId:Rf,kind:W(zf.nullish(),()=>void 0),status:W(Bf.nullish(),()=>void 0),title:W(A().nullish(),()=>void 0),content:W(Nf($f).nullish(),()=>void 0),locations:W(Nf(ep).nullish(),()=>void 0),rawInput:W(f().optional(),()=>void 0),rawOutput:W(f().optional(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),np=A(),rp=j([g(`allow_once`),g(`allow_always`),g(`reject_once`),g(`reject_always`)]),ip=P({sessionId:Ff,toolCall:tp,options:N(P({optionId:np,name:A(),kind:rp,_meta:W(m(A(),f()).nullish(),()=>void 0)})),_meta:W(m(A(),f()).nullish(),()=>void 0)}),ap=P({name:A(),value:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),op=P({sessionId:Ff,command:A(),args:W(Nf(A()).optional(),()=>[]),env:W(Nf(ap).optional(),()=>[]),cwd:W(A().nullish(),()=>void 0),outputByteLimit:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),sp=P({sessionId:Ff,terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),cp=P({sessionId:Ff,terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),lp=P({sessionId:Ff,terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),up=P({sessionId:Ff,terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),dp=P({sessionId:Ff,toolCallId:W(Rf.nullish(),()=>void 0)}),fp=P({requestId:Pf}),pp=g(`object`),mp=j([g(`email`),g(`uri`),g(`date`),g(`date-time`)]),hp=P({const:A(),title:A(),description:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),gp=P({title:W(A().nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),minLength:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),maxLength:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),pattern:A().nullish(),format:mp.nullish(),default:W(A().nullish(),()=>void 0),enum:N(A()).nullish(),oneOf:N(hp).nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),_p=P({title:W(A().nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),minimum:O().nullish(),maximum:O().nullish(),default:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),vp=P({title:W(A().nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),minimum:O().nullish(),maximum:O().nullish(),default:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),yp=P({title:W(A().nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),default:W(a().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),bp=P({enum:N(A()),_meta:W(m(A(),f()).nullish(),()=>void 0)}),xp=P({anyOf:N(hp),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Sp=Mf(j([bp.and(P({type:g(`string`)})),jf(P({type:A()}),`type`,[`string`]),xp]),`type`,[`string`]),Cp=P({title:W(A().nullish(),()=>void 0),description:W(A().nullish(),()=>void 0),minItems:O().nullish(),maxItems:O().nullish(),items:Sp,default:W(Nf(A()).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),wp=Mf(j([gp.and(P({type:g(`string`)})),_p.and(P({type:g(`number`)})),vp.and(P({type:g(`integer`)})),yp.and(P({type:g(`boolean`)})),Cp.and(P({type:g(`array`)})),jf(P({type:A()}),`type`,[`array`,`boolean`,`integer`,`number`,`string`])]),`type`,[`array`,`boolean`,`integer`,`number`,`string`]),Tp=P({type:W(pp.optional().default(`object`),()=>`object`),title:W(A().nullish(),()=>void 0),properties:m(A(),wp).optional().default({}),required:N(A()).nullish(),description:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ep=T(j([dp,fp]),P({requestedSchema:Tp})),Dp=A(),Op=T(j([dp,fp]),P({elicitationId:Dp,url:b()})),kp=Mf(T(j([Ep.and(P({mode:g(`form`)})),Op.and(P({mode:g(`url`)})),jf(T(j([dp,fp]),P({mode:A()})),`mode`,[`form`,`url`])]),P({message:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)})),`mode`,[`form`,`url`]),Ap=A(),dne=P({serverId:Ap,_meta:W(m(A(),f()).nullish(),()=>void 0)}),jp=A(),Mp=P({connectionId:jp,method:A(),params:m(A(),f()).nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),fne=P({connectionId:jp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Np=f();P({id:Pf,method:A(),params:j([If,Lf,ip,op,sp,cp,lp,up,kp,dne,Mp,fne,Np]).nullish()});const Pp=C().gte(0).lte(65535),pne=P({image:W(a().optional().default(!1),()=>!1),audio:W(a().optional().default(!1),()=>!1),embeddedContext:W(a().optional().default(!1),()=>!1),_meta:W(m(A(),f()).nullish(),()=>void 0)}),mne=P({http:W(a().optional().default(!1),()=>!1),sse:W(a().optional().default(!1),()=>!1),acp:W(a().optional().default(!1),()=>!1),_meta:W(m(A(),f()).nullish(),()=>void 0)}),hne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),gne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),_ne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),vne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),yne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),bne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),xne=P({list:W(hne.nullish(),()=>void 0),delete:W(gne.nullish(),()=>void 0),additionalDirectories:W(_ne.nullish(),()=>void 0),fork:W(vne.nullish(),()=>void 0),resume:W(yne.nullish(),()=>void 0),close:W(bne.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Sne=P({logout:W(P({_meta:W(m(A(),f()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Cne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),wne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Tne=P({syncKind:j([g(`full`),g(`incremental`)]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ene=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Dne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),One=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),kne=P({document:W(P({didOpen:W(wne.nullish(),()=>void 0),didChange:W(Tne.nullish(),()=>void 0),didClose:W(Ene.nullish(),()=>void 0),didSave:W(Dne.nullish(),()=>void 0),didFocus:W(One.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ane=P({maxCount:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),jne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Mne=P({maxCount:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Nne=P({maxCount:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Pne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Fne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ine=P({recentFiles:W(Ane.nullish(),()=>void 0),relatedSnippets:W(jne.nullish(),()=>void 0),editHistory:W(Mne.nullish(),()=>void 0),userActions:W(Nne.nullish(),()=>void 0),openFiles:W(Pne.nullish(),()=>void 0),diagnostics:W(Fne.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Lne=P({events:W(kne.nullish(),()=>void 0),context:W(Ine.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Fp=j([g(`utf-16`),g(`utf-32`),g(`utf-8`)]),Rne=P({loadSession:W(a().optional().default(!1),()=>!1),promptCapabilities:W(pne.optional().default({image:!1,audio:!1,embeddedContext:!1}),()=>({image:!1,audio:!1,embeddedContext:!1})),mcpCapabilities:W(mne.optional().default({http:!1,sse:!1,acp:!1}),()=>({http:!1,sse:!1,acp:!1})),sessionCapabilities:W(xne.optional().default({}),()=>({})),auth:W(Sne.optional().default({}),()=>({})),providers:W(Cne.nullish(),()=>void 0),nes:W(Lne.nullish(),()=>void 0),positionEncoding:W(Fp.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ip=A(),zne=P({name:A(),label:W(A().nullish(),()=>void 0),secret:W(a().optional().default(!0),()=>!0),optional:W(a().optional().default(!1),()=>!1),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Bne=P({id:Ip,name:A(),description:W(A().nullish(),()=>void 0),vars:kf(Nf(zne),()=>[]),link:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Vne=P({id:Ip,name:A(),description:W(A().nullish(),()=>void 0),args:W(Nf(A()).optional(),()=>[]),env:W(m(A(),A()).optional(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Hne=P({id:Ip,name:A(),description:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Une=j([Bne.and(P({type:g(`env_var`)})),Vne.and(P({type:g(`terminal`)})),Hne]),Lp=P({name:A(),title:W(A().nullish(),()=>void 0),version:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Wne=P({protocolVersion:Pp,agentCapabilities:W(Rne.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:W(Nf(Une).optional().default([]),()=>[]),agentInfo:W(Lp.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Gne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Rp=A(),zp=j([g(`anthropic`),g(`openai`),g(`azure`),g(`vertex`),g(`bedrock`),A()]),Kne=P({apiType:zp,baseUrl:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),qne=P({providers:N(P({providerId:Rp,supported:kf(Nf(zp),()=>[]),required:a(),current:Kne.nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)})),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Jne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Yne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Xne=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Bp=A(),Vp=P({currentModeId:Bp,availableModes:kf(Nf(P({id:Bp,name:A(),description:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)})),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Hp=A(),Zne=j([g(`mode`),g(`model`),g(`model_config`),g(`thought_level`),A()]),Up=A(),Wp=P({value:Up,name:A(),description:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Qne=P({group:A(),name:A(),options:kf(Nf(Wp),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),$ne=P({currentValue:Up,options:j([N(Wp),N(Qne)])}),ere=P({currentValue:a()}),Gp=T(j([$ne.and(P({type:g(`select`)})),ere.and(P({type:g(`boolean`)}))]),P({id:Hp,name:A(),description:W(A().nullish(),()=>void 0),category:W(Zne.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)})),tre=P({sessionId:Ff,modes:W(Vp.nullish(),()=>void 0),configOptions:W(Nf(Gp).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),nre=P({modes:W(Vp.nullish(),()=>void 0),configOptions:W(Nf(Gp).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),rre=P({sessions:kf(Nf(P({sessionId:Ff,cwd:A(),additionalDirectories:W(Nf(A()).optional(),()=>[]),title:W(A().nullish(),()=>void 0),updatedAt:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)})),()=>[]),nextCursor:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),ire=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),are=P({sessionId:Ff,modes:W(Vp.nullish(),()=>void 0),configOptions:W(Nf(Gp).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),ore=P({modes:W(Vp.nullish(),()=>void 0),configOptions:W(Nf(Gp).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),sre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),cre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),lre=P({configOptions:kf(Nf(Gp),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),ure=P({stopReason:j([g(`end_turn`),g(`max_tokens`),g(`max_turn_requests`),g(`refusal`),g(`cancelled`)]),usage:W(P({totalTokens:O(),inputTokens:O(),outputTokens:O(),thoughtTokens:W(O().nullish(),()=>void 0),cachedReadTokens:W(O().nullish(),()=>void 0),cachedWriteTokens:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),dre=P({sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Kp=A(),qp=P({line:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),character:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Jp=P({start:qp,end:qp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),fre=P({range:Jp,newText:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),pre=P({id:Kp,uri:A(),edits:N(fre),cursorPosition:W(qp.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),mre=P({id:Kp,uri:A(),position:qp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),hre=P({id:Kp,uri:A(),position:qp,newName:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),gre=P({id:Kp,uri:A(),search:A(),replace:A(),isRegex:a().nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),_re=P({suggestions:N(j([pre.and(P({kind:g(`edit`)})),mre.and(P({kind:g(`jump`)})),hre.and(P({kind:g(`rename`)})),gre.and(P({kind:g(`searchAndReplace`)}))])),_meta:W(m(A(),f()).nullish(),()=>void 0)}),vre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Yp=f(),Xp=f(),Zp=P({code:j([g(-32700),g(-32600),g(-32601),g(-32602),g(-32603),g(-32800),g(-32e3),g(-32002),C().min(-2147483648,{error:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{error:`Invalid value: Expected int32 to be <= 2147483647`})]),message:A(),data:W(f().optional(),()=>void 0)});j([P({id:Pf,result:j([Wne,Gne,qne,Jne,Yne,Xne,tre,nre,rre,ire,are,ore,sre,cre,lre,ure,dre,_re,vre,Yp,Xp])}),P({id:Pf,error:Zp})]);const Qp=P({content:Jf,messageId:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),yre=P({toolCallId:Rf,title:A(),kind:W(zf.optional(),()=>void 0),status:W(Bf.optional(),()=>void 0),content:W(Nf($f).optional(),()=>[]),locations:W(Nf(ep).optional(),()=>[]),rawInput:W(f().optional(),()=>void 0),rawOutput:W(f().optional(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),bre=j([g(`high`),g(`medium`),g(`low`)]),xre=j([g(`pending`),g(`in_progress`),g(`completed`)]),$p=P({content:A(),priority:bre,status:xre,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Sre=P({entries:kf(Nf($p),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),em=A(),Cre=P({planId:em,entries:kf(Nf($p),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),wre=P({planId:em,uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Tre=P({planId:em,content:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ere=P({plan:j([Cre.and(P({type:g(`items`)})),wre.and(P({type:g(`file`)})),Tre.and(P({type:g(`markdown`)}))]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Dre=P({planId:em,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ore=P({hint:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),kre=P({availableCommands:kf(Nf(P({name:A(),description:A(),input:W(Ore.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)})),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Are=P({currentModeId:Bp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),jre=P({configOptions:kf(Nf(Gp),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Mre=P({title:W(A().nullish(),()=>void 0),updatedAt:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Nre=P({amount:O(),currency:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Pre=P({used:O(),size:O(),cost:W(Nre.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),tm=P({sessionId:Ff,update:j([Qp.and(P({sessionUpdate:g(`user_message_chunk`)})),Qp.and(P({sessionUpdate:g(`agent_message_chunk`)})),Qp.and(P({sessionUpdate:g(`agent_thought_chunk`)})),yre.and(P({sessionUpdate:g(`tool_call`)})),tp.and(P({sessionUpdate:g(`tool_call_update`)})),Sre.and(P({sessionUpdate:g(`plan`)})),Ere.and(P({sessionUpdate:g(`plan_update`)})),Dre.and(P({sessionUpdate:g(`plan_removed`)})),kre.and(P({sessionUpdate:g(`available_commands_update`)})),Are.and(P({sessionUpdate:g(`current_mode_update`)})),jre.and(P({sessionUpdate:g(`config_option_update`)})),Mre.and(P({sessionUpdate:g(`session_info_update`)})),Pre.and(P({sessionUpdate:g(`usage_update`)}))]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),nm=P({elicitationId:Dp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),rm=P({connectionId:jp,method:A(),params:W(m(A(),f()).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),im=f();P({method:A(),params:j([tm,nm,rm,im]).nullish()});const Fre=P({readTextFile:W(a().optional().default(!1),()=>!1),writeTextFile:W(a().optional().default(!1),()=>!1),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ire=P({configOptions:W(P({boolean:W(P({_meta:W(m(A(),f()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Lre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Rre=P({terminal:W(a().optional().default(!1),()=>!1),_meta:W(m(A(),f()).nullish(),()=>void 0)}),zre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Bre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Vre=P({form:W(zre.nullish(),()=>void 0),url:W(Bre.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Hre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ure=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Wre=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Gre=P({jump:W(Hre.nullish(),()=>void 0),rename:W(Ure.nullish(),()=>void 0),searchAndReplace:W(Wre.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),am=P({protocolVersion:Pp,clientCapabilities:W(P({fs:W(Fre.optional().default({readTextFile:!1,writeTextFile:!1}),()=>({readTextFile:!1,writeTextFile:!1})),terminal:W(a().optional().default(!1),()=>!1),session:W(Ire.nullish(),()=>void 0),plan:W(Lre.nullish(),()=>void 0),auth:W(Rre.optional().default({terminal:!1}),()=>({terminal:!1})),elicitation:W(Vre.nullish(),()=>void 0),nes:W(Gre.nullish(),()=>void 0),positionEncodings:W(Nf(Fp).optional(),()=>[]),_meta:W(m(A(),f()).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:W(Lp.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),om=P({methodId:Ip,_meta:W(m(A(),f()).nullish(),()=>void 0)}),sm=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),cm=P({providerId:Rp,apiType:zp,baseUrl:A(),headers:m(A(),A()).optional(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),lm=P({providerId:Rp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),um=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),dm=P({name:A(),value:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Kre=P({name:A(),url:A(),headers:N(dm),_meta:W(m(A(),f()).nullish(),()=>void 0)}),qre=P({name:A(),url:A(),headers:N(dm),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Jre=P({name:A(),serverId:Ap,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Yre=P({name:A(),command:A(),args:N(A()),env:N(ap),_meta:W(m(A(),f()).nullish(),()=>void 0)}),fm=j([Kre.and(P({type:g(`http`)})),qre.and(P({type:g(`sse`)})),Jre.and(P({type:g(`acp`)})),Yre]),pm=P({cwd:A(),additionalDirectories:W(Nf(A()).optional(),()=>[]),mcpServers:kf(Nf(fm),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),mm=P({mcpServers:kf(Nf(fm),()=>[]),cwd:A(),additionalDirectories:W(Nf(A()).optional(),()=>[]),sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)}),hm=P({cwd:A().nullish(),cursor:A().nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),gm=P({sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)}),_m=P({sessionId:Ff,cwd:A(),additionalDirectories:W(Nf(A()).optional(),()=>[]),mcpServers:W(Nf(fm).optional(),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),vm=P({sessionId:Ff,cwd:A(),additionalDirectories:W(Nf(A()).optional(),()=>[]),mcpServers:W(Nf(fm).optional(),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),ym=P({sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)}),bm=P({sessionId:Ff,modeId:Bp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),xm=T(j([P({value:a(),type:g(`boolean`)}),P({value:Up})]),P({sessionId:Ff,configId:Hp,_meta:W(m(A(),f()).nullish(),()=>void 0)})),Sm=P({sessionId:Ff,prompt:N(Jf),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Xre=P({uri:A(),name:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Zre=P({name:A(),owner:A(),remoteUrl:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Cm=P({workspaceUri:W(A().nullish(),()=>void 0),workspaceFolders:N(Xre).nullish(),repository:W(Zre.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Qre=j([g(`automatic`),g(`diagnostic`),g(`manual`)]),$re=P({uri:A(),languageId:A(),text:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),eie=P({startLine:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),endLine:C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),text:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),tie=P({uri:A(),excerpts:N(eie),_meta:W(m(A(),f()).nullish(),()=>void 0)}),nie=P({uri:A(),diff:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),rie=P({action:A(),uri:A(),position:qp,timestampMs:O(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),iie=P({uri:A(),languageId:A(),visibleRange:W(Jp.nullish(),()=>void 0),lastFocusedMs:W(O().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),aie=j([g(`error`),g(`warning`),g(`information`),g(`hint`)]),oie=P({uri:A(),range:Jp,severity:aie,message:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),sie=P({recentFiles:N($re).nullish(),relatedSnippets:N(tie).nullish(),editHistory:N(nie).nullish(),userActions:N(rie).nullish(),openFiles:N(iie).nullish(),diagnostics:N(oie).nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),wm=P({sessionId:Ff,uri:A(),version:O(),position:qp,selection:Jp.nullish(),triggerKind:Qre,context:sie.nullish(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Tm=P({sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)});P({id:Pf,method:A(),params:j([am,om,sm,cm,lm,um,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm,wm,Tm,Mp,Np]).nullish()});const cie=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),lie=P({content:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),uie=P({optionId:np,_meta:W(m(A(),f()).nullish(),()=>void 0)}),die=P({outcome:j([P({outcome:g(`cancelled`)}),uie.and(P({outcome:g(`selected`)}))]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),fie=P({terminalId:Zf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),pie=P({exitCode:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),mie=P({output:A(),truncated:a(),exitStatus:W(pie.nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),hie=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),gie=P({exitCode:W(C().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:W(A().nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)}),_ie=P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),vie=j([A(),O(),O(),a(),N(A())]),Em=P({content:m(A(),vie).nullish()});j([P({id:Pf,result:j([cie,lie,die,fie,mie,hie,gie,_ie,Mf(T(j([Em.and(P({action:g(`accept`)})),P({action:g(`decline`)}),P({action:g(`cancel`)}),jf(P({action:A()}),`action`,[`accept`,`cancel`,`decline`])]),P({_meta:W(m(A(),f()).nullish(),()=>void 0)})),`action`,[`accept`,`cancel`,`decline`]),P({connectionId:jp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),P({_meta:W(m(A(),f()).nullish(),()=>void 0)}),Xp,Yp])}),P({id:Pf,error:Zp})]);const Dm=P({sessionId:Ff,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Om=P({sessionId:Ff,uri:A(),languageId:A(),version:O(),text:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),yie=P({range:Jp.nullish(),text:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),km=P({sessionId:Ff,uri:A(),version:O(),contentChanges:kf(Nf(yie),()=>[]),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Am=P({sessionId:Ff,uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),jm=P({sessionId:Ff,uri:A(),_meta:W(m(A(),f()).nullish(),()=>void 0)}),Mm=P({sessionId:Ff,uri:A(),version:O(),position:qp,visibleRange:Jp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Nm=P({sessionId:Ff,id:Kp,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Pm=P({sessionId:Ff,id:Kp,reason:W(j([g(`rejected`),g(`ignored`),g(`replaced`),g(`cancelled`)]).nullish(),()=>void 0),_meta:W(m(A(),f()).nullish(),()=>void 0)});P({method:A(),params:j([Dm,Om,km,Am,jm,Mm,Nm,Pm,rm,im]).nullish()}),P({requestId:Pf,_meta:W(m(A(),f()).nullish(),()=>void 0)}),Ep.and(P({mode:g(`form`)})).and(P({message:A()})),Op.and(P({mode:g(`url`)})).and(P({message:A()})),j([dp,fp]).and(P({message:A()})),gp.and(P({type:g(`string`)})),_p.and(P({type:g(`number`)})),vp.and(P({type:g(`integer`)})),yp.and(P({type:g(`boolean`)})),Cp.and(P({type:g(`array`)})),bp.and(P({type:g(`string`)})),Em.and(P({action:g(`accept`)})),P({action:g(`decline`)}),P({action:g(`cancel`)});const Fm=`$/cancel_request`;function Im(e){return typeof e==`object`&&!!e}function bie(e){return e===null||typeof e==`string`||typeof e==`number`&&Number.isFinite(e)}function xie(e){if(!(!Im(e)||!bie(e.requestId)))return e.requestId}const Lm={yes(){return{handled:!0}},no(e,t=!1){return{handled:!1,message:e,retry:t}}};function Rm(e){let t=Promise.reject(e);return t.catch(()=>{}),t}function Sie(e){if(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)return e.message}function Cie(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 zm(e){if(e instanceof Hm)return e.toResult();if(Cie(e))return Hm.invalidParams(e.format()).toResult();let t=Sie(e);try{return Hm.internalError(t?JSON.parse(t):{}).toResult()}catch{return Hm.internalError({details:t}).toResult()}}function wie(e){return e instanceof Hm&&e.code===-32800?e:Hm.requestCancelled(e)}function Tie(e,t){let n=Eie(e,t);return n?n.toResult():zm(e)}function Eie(e,t){if(!(!t.aborted||!Die(e)))return wie(t.reason)}function Die(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`AbortError`||t.code===`ABORT_ERR`}var Oie=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 Hm?e.toErrorResponse():e;return this.respondWithResult({error:t})}respondWithResult(e){return this.didRespond?Rm(Error(`JSON-RPC request already responded`)):(this.didRespond=!0,this.sendResult(e).finally(()=>{this.finishRequest?.()}))}},Bm=class{disposeHandler;active=!0;constructor(e){this.disposeHandler=e}dispose(){this.active&&(this.active=!1,this.disposeHandler())}[Symbol.dispose](){this.dispose()}runIndefinitely(){return this}},kie=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}},Vm=class{pendingResponses=new Map;incomingRequests=new Map;nextRequestId=0;staticHandlers=[];dynamicHandlers=new Set;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;retryQueue=[];context=new kie(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 Bm(()=>{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 Rm(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(Fm,{requestId:e})}sendNotification(e,t){return this.abortController.signal.aborted?Rm(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 Lm.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(!Im(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(Hm.methodNotFound(t.method))}catch(n){if(this.abortController.signal.aborted)return;if(t.kind===`request`&&!t.responder.responded)await t.responder.respondWithResult(Tie(n,t.responder.signal));else{let t=zm(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 Oie(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&&Im(e.error)){let{code:n,message:r,data:i}=e.error;t.reject(new Hm(n,r,i))}else t.reject(Hm.invalidRequest(e));else console.error(`Got response to unknown request`,e.id)}handleProtocolNotification(e){if(e.method!==Fm)return;let t=xie(e.params);if(t===void 0)return;let n=this.incomingRequests.get(t);!n||n.signal.aborted||n.abort(Hm.requestCancelled({requestId:t}))}closedReason(){return this.abortController.signal.reason??Error(`ACP connection closed`)}async sendMessage(e){return this.abortController.signal.aborted?Rm(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)??Lm.no(t),describe:()=>this.connectionName??`onReceiveMessage`})}onReceiveRequest(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`request`||r.method!==e?Lm.no(r):await n(t(r.params),r.responder,i)??Lm.yes(),describe:()=>`${this.connectionName??`request`}:${e}`})}onReceiveNotification(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`notification`||r.method!==e?Lm.no(r):await n(t(r.params),i)??Lm.yes(),describe:()=>`${this.connectionName??`notification`}:${e}`})}connect(e,t){return new Vm(e,this.handlers,t)}connectWith(e,t,n){return this.connect(e,n).runUntil(t)}},Hm=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}}},jie=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 Mie(e,t){let n=new TextEncoder,r=new TextDecoder,i=!1,a;return{readable:new ReadableStream({async start(e){let n=new jie,o=t=>{let n=r.decode(t).trim();if(n)try{let t=JSON.parse(n);Im(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)+`
@@ -1186,7 +1186,7 @@ tags: [lore, history]
1186
1186
  `);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=>{X.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(),Me.release($r))}),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()),Me.release($r))}),t.on(`close`,()=>{c||(c=!0,clearTimeout(d),u.kill(`SIGTERM`),Me.release($r))})}let Ii=`local-op-auth-signout`,Li=q(Ms,async(e,t,n)=>{let r=n.host??li();if(!Me.tryAcquire(ni)){K(t,429,`urn:ok:error:concurrent-operation`,`An auth signout operation is already in progress.`,{handler:Ii,extraHeaders:{"Retry-After":`5`}});return}try{let[e,...n]=ae,i=[...n,`auth`,`signout`,`--host`,r];await new Promise((t,n)=>{let r=Ou(e,i,Cw({...Lr,env:{...process.env}})),a=setTimeout(()=>{r.kill(`SIGTERM`)},3e4);r.on(`close`,()=>{clearTimeout(a),t()}),r.on(`error`,e=>{clearTimeout(a),n(e)})}),J(t,200,Ri,{},{handler:Ii})}catch(e){K(t,500,`urn:ok:error:auth-failed`,`Auth signout failed.`,{handler:Ii,cause:e})}finally{Me.release(ni)}},{handler:Ii,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Ii})}),Bi=`/api/local-op/auth/set-identity`,Vi=`local-op-auth-set-identity`,Hi=q(Jee,async(e,t,n)=>{let r=n.name.trim(),i=n.email.trim();if(!M){K(t,503,`urn:ok:error:no-project-dir`,`No project directory configured.`,{handler:Vi});return}if(!Me.tryAcquire(Bi)){K(t,429,`urn:ok:error:concurrent-operation`,`A set-identity operation is already in progress.`,{handler:Vi,extraHeaders:{"Retry-After":`5`}});return}try{dB(M,r,i),j?.()?.refreshIdentity().catch(()=>{}),J(t,200,Ri,{},{handler:Vi})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Set-identity failed.`,{handler:Vi,cause:e})}finally{Me.release(Bi)}},{handler:Vi,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Vi})});async function Ui(e,t){if(r(e,t,{handler:`sync-status`})){if(e.method!==`GET`){K(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-status`,extraHeaders:{Allow:`GET`}});return}try{let e=j?.();if(!e){J(t,200,wt,{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(),J(t,200,wt,e.getStatus(),{handler:`sync-status`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-status`,cause:e})}}}function Wi(e){let t=L(M??c,e),n=nN(R(c,t));if(!n||n.startsWith(`..`))return;let r=Ix(n);if(f().has(r))return{kind:`doc`,docName:r};if(he&&!he.isExcluded(n,{bypassFilters:!0,showOk:!0})&&V(t))return{kind:`asset`,path:n}}async function Gi(e,t){if(r(e,t,{handler:`git-worktree-status`})){if(e.method!==`GET`){K(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`git-worktree-status`,extraHeaders:{Allow:`GET`}});return}try{let e=j?.();J(t,200,Kt,await gB(M??c,e?t=>e.isSyncScopedPath(t):()=>!1,Wi),{handler:`git-worktree-status`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`git-worktree-status`,cause:e})}}}let qi=q(cee,async(e,t,n)=>{let r=j?.();if(!r){K(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`});return}let i=n.op??`sync`;J(t,202,Fee,{op:i},{handler:`sync-trigger`}),r.trigger(i).catch(e=>{X.error({err:e,op:i},`[sync] fire-and-forget trigger failed`)})},{handler:`sync-trigger`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-trigger`})?j?.()?!0:(K(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`}),!1):!1}),Ji=q(gt,async(e,t,n)=>{let r=j?.();if(!r){K(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-blocking`});return}if(r.getBlockingPaths().length===0){K(t,409,`urn:ok:error:no-blocking-changes`,`No local changes are blocking a merge.`,{handler:`sync-resolve-blocking`});return}try{let e=r.getBlockingPaths(),n=await r.commitBlockingPaths();J(t,200,Yee,{action:`commit`,paths:e,...n===null?{}:{commitSha:n}},{handler:`sync-resolve-blocking`}),r.trigger(`sync`).catch(e=>{X.error({err:e},`[sync] resolve-blocking follow-up sync failed`)})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-resolve-blocking`,cause:e})}},{handler:`sync-resolve-blocking`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-resolve-blocking`})});async function Yi(e,t){if(r(e,t,{handler:`sync-conflicts`})){if(e.method!==`GET`){K(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflicts`,extraHeaders:{Allow:`GET`}});return}try{let e=j?.();J(t,200,uee,{conflicts:e?e.getConflicts():[]},{handler:`sync-conflicts`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-conflicts`,cause:e})}}}let Qi=q(dee,async(e,t,n)=>{let r=j?.();if(!r){K(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),J(t,200,Mt,{},{handler:`sync-resolve-conflict`})}catch(e){K(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`})?j?.()?!0:(K(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-conflict`}),!1):!1});async function $i(e,t){if(!r(e,t,{handler:`sync-conflict-content`}))return;if(e.method!==`GET`){K(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflict-content`,extraHeaders:{Allow:`GET`}});return}if(!M){K(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){K(t,400,`urn:ok:error:invalid-request`,`Missing required query param: file.`,{handler:`sync-conflict-content`});return}if(i.includes(`..`)||i.startsWith(`/`)){K(t,400,`urn:ok:error:invalid-request`,`Invalid file path.`,{handler:`sync-conflict-content`});return}let a=Ix(i),s=o.documents.get(a)?.getMap(`lifecycle`).get(`status`)===`conflict`,c=j?.(),l=c?c.getConflicts().some(e=>e.file===i):!1;if(!s&&!l){K(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=Jc({baseDir:M,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=Ix(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=be?be(a):null;t!==null&&(c=t,l=!0)}else{xL(L(M,i),M,{allowShareableOkArtifact:nP});try{c=H(L(M,i),`utf-8`),l=!0}catch{l=!1}}let p=l?n.length===0?`modify-delete`:`both-modified`:`delete-modify`;J(t,200,Ps,{file:i,base:r,ours:c,theirs:n,kind:p,lifecycleStatus:u},{handler:`sync-conflict-content`})}catch(e){K(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=Ix(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=be?be(e):null;t!==null&&!Gbe(t)?l=t:t!==null&&console.warn(JSON.stringify({event:`ytext-conflict-marker-detected`,"doc.name":e,handler:`sync-conflict-content`}))}}else X.warn({docName:e},`[conflict-content] doc ${e} not loaded; lifecycleStatus unavailable`)}J(t,200,Ps,{file:i,base:a,ours:l,theirs:s,kind:c,lifecycleStatus:d},{handler:`sync-conflict-content`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to read conflict content.`,{handler:`sync-conflict-content`,cause:e})}}async function ra(e,t){if(!r(e,t,{handler:`seed-plan`}))return;if(e.method!==`GET`){K(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=XJ(a);if(a!==null&&a!==``&&o===void 0){K(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-plan`,detail:`Pack id "${a}" is not registered.`});return}try{J(t,200,Cee,{plan:await rY({projectDir:c,rootDir:i,packId:o})},{handler:`seed-plan`})}catch(e){if(e instanceof LJ){K(t,422,`urn:ok:error:seed-prerequisite-missing`,`Seed prerequisite missing.`,{handler:`seed-plan`,cause:e});return}if(e instanceof RJ){K(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}K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`seed-plan`,cause:e})}}let aa=q(ka,async(e,t,n)=>{let r=n.plan;if(!r||typeof r!=`object`){K(t,400,`urn:ok:error:invalid-request`,`Invalid plan payload.`,{handler:`seed-apply`});return}let i=r,a=n.packId,o=XJ(a);if(typeof a==`string`&&a.length>0&&o===void 0){K(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-apply`,detail:`Pack id "${a}" is not registered.`});return}try{J(t,200,ba,{result:await tY(i,{projectDir:c,packId:o})},{handler:`seed-apply`})}catch(e){K(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=q(Ti,async(e,t,n)=>{let r=XJ(n.packId);if(r===void 0){K(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-install-pack-skill`,detail:`Pack id "${n.packId}" is not registered.`});return}try{J(t,200,qee,await zve(c,r),{handler:`seed-install-pack-skill`})}catch(e){K(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 sa(e,t){if(r(e,t,{handler:`seed-packs`})){if(e.method!==`GET`){K(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`seed-packs`,extraHeaders:{Allow:`GET`}});return}J(t,200,Us,{packs:ZJ()},{handler:`seed-packs`})}}let la=q(No,async(e,t,n)=>{if(n.out!==void 0&&!SK(n.out)){K(t,400,`urn:ok:error:invalid-request`,`Output path must be within home directory.`,{handler:`install-skill`});return}try{J(t,200,zee,await LI({...n.noOpen===void 0?{}:{noOpen:n.noOpen},...n.out===void 0?{}:{out:n.out}}),{handler:`install-skill`})}catch(e){K(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`})});function da(e,t,n=`path`,r=`folder-config`){let i=e.replace(/^\.\//,``).replace(/^\/+/,``).replace(/\/+$/,``);if(i.split(`/`).some(e=>e===`..`)||e.startsWith(`/`))return K(t,400,`urn:ok:error:invalid-request`,`Invalid ${n}: must be project-root-relative.`,{handler:r}),null;let a=z(c),o=i===``?a:z(a,i);return o!==a&&!o.startsWith(`${a}${B}`)?(K(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||!cr.test(e)?(K(t,400,`urn:ok:error:invalid-request`,"Invalid name: must be letters / digits / `_` / `-` only (no `.md` extension).",{handler:n}),!1):!0}function ma(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:z(e,i);if(a!==e&&!a.startsWith(`${e}${B}`))continue;let o=z(a,`.ok`,`templates`,`${n}.md`);if(V(o))return{abs:o,folder:i,scope:t===r.length?`local`:`inherited`}}return null}function ha(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 ga=fK({GET:q(ei,async(e,t)=>{try{let n=da(new URL(e.url??``,`http://localhost`).searchParams.get(`path`)??``,t,`path`,`folder-config-get`);if(!n)return;let r=await fj(n.folderRel,{projectDir:n.resolvedContentDir}),i=z(z(n.resolvedContentDir,n.folderRel,`.ok`),`frontmatter.yml`),a=null;if(V(i))try{let e=(0,uk.parse)(await md(i,`utf-8`));a=e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){let t=e instanceof Error?e.message:String(e);X.warn({path:i,reason:t},`[folder-config:get] malformed YAML in ${i}: ${t}`),a=null}J(t,200,ta,{folder:r,frontmatter_local:a},{handler:`folder-config-get`})}catch(e){K(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:q(Hee,async(e,t,n)=>{try{if(De){K(t,403,`urn:ok:error:single-file-mode`,`Folder configuration is not available in single-file mode.`,{handler:`folder-config-put`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`folder-config-put`});return}let r=da(n.path,t,`path`,`folder-config-put`);if(!r)return;let i=[];if(n.frontmatter!==void 0){let a=sfe({anchorDir:r.resolvedContentDir,folderRel:r.folderRel,patch:n.frontmatter});if(!a.ok){let e=a.error.code===`WRITE_ERROR`?500:400;K(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`&&(Mn(e,jn(`folder-frontmatter`,r.folderRel),`folder-frontmatter-${a.action===`deleted`?`delete`:`edit`}: ${a.path}`),Un(`folder-config-put`))}J(t,200,mo,{applied:i},{handler:`folder-config-put`})}catch(e){K(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`});function _a(e,t,n){let r=o.documents.get(e);return r&&pS(r)?(gS(n,new hS({file:`${e}.md`}),t),!0):!1}function ya(e,t,n){let r=o.documents.get(e);return r&&pS(r)?(gS(n,new hS({file:`${e}.md`}),t),!0):!1}let Sa=e=>{let{body:t}=gs(e);return{frontmatter:Ki(e)??{},body:t}},Ca=q(ei,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=da(n.searchParams.get(`folder`)??``,t,`folder`,`template-get`);if(!i)return;let{folderRel:a,resolvedContentDir:o}=i,s=ma(o,a,r);if(!s){K(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 md(c,`utf-8`)),f=d.identity,p=d.starterContent;J(t,200,go,{template:{name:r,folder:l,scope:u,path:R(o,c).split(/[\\/]/).filter(Boolean).join(`/`),frontmatter:f,body:p}},{handler:`template-get`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to read template.`,{handler:`template-get`,cause:e})}},{handler:`template-get`,method:`GET`,skipBodyParse:!0}),Ta=q(Vee,async(e,t,n)=>{try{if(De){K(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-put`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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=da(n.folder,t,`folder`,`template-put`);if(!i||_a(lo(i.folderRel,r),`template-put`,t))return;let a=Fj({name:r,body:typeof n.body==`string`?n.body:``,frontmatter:ha(n.frontmatter)});if(!a.ok){K(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=z(i.resolvedContentDir,i.folderRel,`.ok`,`templates`,`${r}.md`),c=!V(o),l=R(i.resolvedContentDir,o).split(/[\\/]/).filter(Boolean).join(`/`),u=lo(i.folderRel,r),{agentId:d,agentName:f,colorSeed:p,clientName:m}=wn(n),h=await s.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{Db(h.dc.document,a.content,`agent`)},h.origin);let g=await dt(u);if(g?.kind===`failure`){ft(t,g.failure,`template-put`);return}if(g?.kind===`divergence`){ht(t,`template-put`);return}Pt(u,a.content),Mn(e,jn(`template`,i.folderRel,r),`${c?`template-create`:`template-edit`}: ${l}`),Un(`template-put`),J(t,200,Dee,{path:l,created:c,warnings:a.warnings},{handler:`template-put`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write template.`,{handler:`template-put`,cause:e})}},{handler:`template-put`,method:`PUT`}),Oa=q(ei,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=da(n.searchParams.get(`folder`)??``,t,`folder`,`template-delete`);if(!i)return;let a=Ba(n,ce);if(a.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-delete`});return}if(_a(lo(i.folderRel,r),`template-delete`,t))return;await Ht([lo(i.folderRel,r)],`deleted-upstream`);let o=yfe({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;K(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&&(Mn(a,jn(`template`,i.folderRel,r),`template-delete: ${o.path}`),Un(`template-delete`),ye?.setDeleted(lo(i.folderRel,r))),J(t,200,Uee,{existed:o.existed,path:o.path},{handler:`template-delete`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to delete template.`,{handler:`template-delete`,cause:e})}},{handler:`template-delete`,method:`DELETE`,skipBodyParse:!0}),Aa=fK({GET:Ca,PUT:Ta,POST:q(xee,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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=da(n.fromFolder,t,`folder`,`template-move`);if(!r)return;let i=da(n.toFolder,t,`folder`,`template-move`);if(!i||_a(lo(r.folderRel,n.fromName),`template-move`,t))return;await Ht([lo(r.folderRel,n.fromName)],`renamed`);let a=await bfe({projectDir:r.resolvedContentDir,fromFolder:r.folderRel,fromName:n.fromName,toFolder:i.folderRel,toName:n.toName,relocate:async(e,t)=>{let n=await iZ(M,e,t);return n||rZ(e,t),n}});if(!a.ok){if(a.error.code===`TEMPLATE_NOT_FOUND`){let e=ma(r.resolvedContentDir,r.folderRel,n.fromName);if(e?.scope===`inherited`){K(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}K(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`){K(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;K(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}ye?.setDeleted(lo(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=Dr(H(z(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=vfe({projectDir:i.resolvedContentDir,folder:i.folderRel,name:n.toName,body:e,frontmatter:ha(n.frontmatter)});t.ok||(o=t.error)}}try{Pt(lo(i.folderRel,n.toName),H(z(i.resolvedContentDir,a.toPath),`utf-8`))}catch{}if(Mn(e,jn(`template`,i.folderRel,n.toName),`template-rename: ${a.fromPath} -> ${a.toPath}`,[{from:a.fromPath,to:a.toPath}]),Un(`template-move`),je?.(`files`),o){let e=o.code===`WRITE_ERROR`||o.code===`READ_FAILED`;K(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}J(t,200,To,{from:a.fromPath,to:a.toPath,committed:a.committed},{handler:`template-move`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to move template.`,{handler:`template-move`,cause:e})}},{handler:`template-move`,method:`POST`}),DELETE:Oa},{handler:`template`}),ja=q(Yo,async(e,t,n)=>{try{if(De){K(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-import`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-import`});return}let r=n.sourcePath;if(!oZ(r)){K(t,400,`urn:ok:error:invalid-request`,`Invalid sourcePath.`,{handler:`template-import`});return}let i=rt(r);if(Jx(i)||Yx(i)){K(t,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`template-import`});return}let a=UX(c,`file`,i);if(!V(a)){K(t,404,`urn:ok:error:doc-not-found`,`Source document not found: ${i}.`,{handler:`template-import`});return}let l=o.documents.get(i);if(n.deleteSource){let e=j?.(),n=new Set(e?e.getConflicts().map(e=>e.file):[]),i=l!==void 0&&pS(l),a=n.has(r);if(i||a){gS(t,new hS({file:r}),`template-import`);return}}let u=``;if(l)u=l.getText(`source`).toString();else{let e=await o.openDirectConnection(i);try{let n=e.document;if(!n){K(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}=WX(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=da(n.targetFolder,t,`folder`,`template-import`);if(!f||_a(lo(f.folderRel,d),`template-import`,t))return;let{frontmatter:p,body:m}=gs(u),g=Zi(p),_={};try{g.trim()&&(_=(0,uk.parse)(g))}catch{}let v=n.title||_?.title||GA(u,d),y=_?.description||``,b=Array.isArray(_?.tags)?_.tags:[],x={..._};delete x.template,delete x.title;let S=``;Object.keys(x).length>0&&(S=`${(0,uk.stringify)(x).trim()}\n`),S=S?`---\n${S}---\n${m}`:m;let C=Fj({name:d,body:S,frontmatter:{title:v,description:y,tags:b}});if(!C.ok){K(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=z(f.resolvedContentDir,f.folderRel,`.ok`,`templates`,`${d}.md`),T=!V(w),E=R(f.resolvedContentDir,w).split(/[\\/]/).filter(Boolean).join(`/`),D=lo(f.folderRel,d),{agentId:O,agentName:ee,colorSeed:te,clientName:k}=wn(n),A=await s.getSession(D,O,{displayName:ee,colorSeed:te,clientName:k});A.dc.document.transact(()=>{Db(A.dc.document,C.content,`agent`)},A.origin);let ne=await dt(D);if(ne?.kind===`failure`){ft(t,ne.failure,`template-import`);return}if(ne?.kind===`divergence`){ht(t,`template-import`);return}Pt(D,C.content),Mn(e,jn(`template`,f.folderRel,d),`template-import: ${E}`),n.deleteSource&&(await Ht([i],`deleted-upstream`),ye&&ye.setDeleted(i),Sc(a),h?.({kind:`delete`,path:a,docName:i})),Un(`template-import`),je?.(`files`),J(t,200,jee,{path:E,created:T,warnings:C.warnings},{handler:`template-import`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to import template.`,{handler:`template-import`,cause:e})}},{handler:`template-import`,method:`POST`});function Ma(e){return!!e&&e.length<=64&&Fa.test(e)}function Na(e,t,n){return Ma(e)?!0:(K(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)}function Pa(e,t,n){let r=Ys.safeParse(e??`project`);return r.success?r.data:(K(t,400,`urn:ok:error:invalid-request`,`Invalid skill scope (expected "project" or "global").`,{handler:n}),null)}let Ia=le??sd(),La=Pbe({contentDir:c,skillsHome:Ia,effectiveInstallMode:qa});function Ra(e){return z(e===`global`?Ia:c,`.ok`,`skills`)}function za(e,t,n){let r=z(Ra(e),t);if(e===`global`){if(n!==void 0){let e=vL(Ia).find(e=>e.name===t&&e.hosts.includes(n));return e?z(Ia,e.dir):null}let e=yL(Ia,t);return e===null?V(L(r,`SKILL.md`))?r:null:e}let i=_L(c).find(e=>e.name===t&&(n===void 0||e.hosts.includes(n)));return i?z(c,i.dir):n===void 0&&V(L(r,`SKILL.md`))?r:null}function Ba(e,t){let n=e.searchParams;return Ek({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 Va(e,t){let n=e===`project`?M:Ia;if(!n)return`symlink`;try{return ts(L(n,...pO)).skills[t]===void 0?`symlink`:`copy`}catch{return`symlink`}}function Ha(e){let t=e===`project`?M:Ia;return t?L(t,...pO):null}function Ua(e,t,n,r={}){let i=Ha(e);return i?HK(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 Wa(e,t,n){let r=Ha(e),i=Ha(t);if(!r||!i)return!1;let a=BK(r).skills[n];if(!a)return!1;let o={...a};return t===`global`&&delete o.baselineRef,await HK(i,e=>({...e,skills:{...e.skills,[n]:o}})),await HK(r,e=>{let t={...e.skills};return delete t[n],{...e,skills:t}}),!0}function Ga(e,t,n){let r=Ha(e);return r?HK(r,e=>{let r=e.skills[t];return r?{...e,skills:{...e.skills,[t]:{...r,...n}}}:e}):Promise.resolve()}function Ka(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];K(e,r,i,t.error,{handler:n,detail:t.code})}function qa(e,t,n){let r=e===`project`?M:Ia;return(r?U_e(r,t):void 0)||(n.hosts.length-1<=0||n.linkedHosts.some(e=>n.hosts.includes(e))?`link`:`copy`)}function Ja(e){let t=za(`project`,e);return t?R(c,t).split(B).join(`/`):`${xo}/${e}`}let Ya=mk.project;function Xa(e,t,n){let r=[],i=null,a=[...ti.map(e=>({id:e,root:ct[e]??``})),{id:`agents`,root:xa}];for(let{id:o,root:s}of a){if(!s)continue;let a=z(e,...s.split(`/`),t);V(z(a,`SKILL.md`))&&(r.push(o),(n===void 0?i===null:o===n)&&(i=a))}if(i===null)return null;let o=z(i,`SKILL.md`);return{dir:i,skillMd:o,hosts:r,relPath:R(e,o).split(/[\\/]/).filter(Boolean).join(`/`)}}function Za(e){let t=cue(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 Qa(e,t){if(!gk(t))return null;let n=Xa(e,t);if(!n)return null;let r=AO(n.dir)?.contentHash??``,i;try{i=rd(n.skillMd).mtime.toISOString()}catch{i=new Date(0).toISOString()}return{source:Ei,skill:t,contentHash:r,autoUpdate:!1,importedAt:i}}let $a=null;function to(e){let t=Date.now();if($a&&$a.identity===e&&t-$a.at<3e4)return $a.byName;let n=new Map;try{n=nt(Rn(le===void 0?{}:{home:le}).skills,e=>AO(e)?.contentHash)}catch(e){X.warn({err:e},`plugin upstream index failed; origins will be omitted`)}return $a={at:t,identity:e,byName:n},n}function no(e,t){return to(t).get(e)?.contentHash??null}function ro(e,t,n){let r=to(t).get(e);if(!r)return null;try{if(U(n)!==U(r.home))return null}catch{return null}return{name:r.plugin,marketplace:r.marketplace,provider:r.provider,...r.repositoryUrl?{url:r.repositoryUrl}:{}}}function io(e,t,n){let r=to(t).get(e);if(!r)return null;if(n!==void 0)try{if(U(n)===U(r.home))return null}catch{}let i;try{i=rd(L(r.home,`SKILL.md`)).mtime.toISOString()}catch(e){X.warn({err:e,home:r.home},`plugin bundle unreadable; origin dated epoch`),i=new Date(0).toISOString()}return{source:r.home,skill:e,contentHash:r.contentHash,autoUpdate:!1,importedAt:i}}function oo(e,t){let n=_k.find(t=>mk[t]===e);if(n===void 0||t!==void 0&&vk[n]!==(t===`global`?`user`:`project`))return null;try{let e=z(Sk(n,{checkDesktop:!0}),`SKILL.md`);return V(e)?e:null}catch(t){return X.warn({name:e,err:t},`[skills] bundle asset dir unresolved for built-in ${e}`),null}}function so(e,t,n){let r=Xa(e,t),i=r?.skillMd??oo(t);if(i===null)return null;let a;try{let{frontmatter:e}=Sa(H(i,`utf-8`));typeof e.description==`string`&&(a=e.description)}catch{}let o=Qa(e,t),s=AO(I(i));return{name:t,...a===void 0?{}:{description:a},scope:n,path:r?.relPath??i,absolutePath:i,installed:(r?.hosts.length??0)>0,hosts:r?.hosts??[],managed:!0,...s?{size:Xi(s)}:{},...o?{origin:Za(o)}:{}}}function co(e,t,n){return gk(e)?(K(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 lo(e,t){return See(e,t)}function uo(e,t){return R(t===`global`?Ia:c,e).split(/[\\/]/).filter(Boolean).join(`/`)}function po(e){return e===`global`?Ia:M}async function ho(e,t,n,r={}){let i=await IN(e,t),a=n===`project`?c:Ia;if(r.purge!==void 0){nL(t,e,ti,UI(n));for(let e of Ege(a,n,t,r.purge.contentHash))jc(e,{recursive:!0,force:!0});return i!==null}if(!V(z(Ra(n),t,`SKILL.md`))){let r=(n===`project`?_L(c):vL(Ia)).find(e=>e.name===t);if(r){let a=n===`project`?c:Ia,o=z(a,r.dir),s=z(a,`.agents`,`skills`),l=L(s,t);if(V(s)&&!V(L(l,`SKILL.md`))){let e=!1;try{e=U(o)===U(l)}catch{e=!1}e||Ac(o,l,{recursive:!0,dereference:!0})}return tL({canonicalAbs:V(L(l,`SKILL.md`))?l:o,canonicalHash:r.contentHash,name:t,cwd:e,targets:[...ti],roots:UI(n)}),i!==null}}return nL(t,e,ti,UI(n)),i!==null}function _o(e,t){let n=[];if(!V(e))return{skills:n,truncated:!1};let r;try{r=Qu(e,{withFileTypes:!0})}catch(r){return F(`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()||!Fa.test(a.name))continue;if(n.length>=500){i=!0;break}let r=z(e,a.name,`SKILL.md`);if(!V(r))continue;let o;try{let{frontmatter:e}=Sa(H(r,`utf-8`));typeof e.description==`string`&&(o=e.description)}catch{}n.push({name:a.name,...o===void 0?{}:{description:o},scope:t,path:uo(r,t),absolutePath:r})}return{skills:n,truncated:i}}function vo(e){return`!/${I(e).split(B).join(`/`)}/`}let yo=q(Rr,JB(async(e,t,n)=>{if(!Na(n.name,t,`skill-track-in-git`))return;if(n.scope!==`project`){K(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(!M){K(t,400,`urn:ok:error:invalid-request`,`No project directory.`,{handler:`skill-track-in-git`});return}let r=_L(c).find(e=>e.name===n.name)?.dir??`.ok/skills/${n.name}`,i=NX(z(c,r,`SKILL.md`),c)??`${r}/SKILL.md`,a=I(i),o=i,s=vo(a),l=`.gitignore`,u=z(c,l);if(he&&!he.isPathIgnored(o)){J(t,200,Qr,{line:s,gitignorePath:l,applied:!1,alreadyTracked:!0},{handler:`skill-track-in-git`});return}if(n.apply!==!0){J(t,200,Qr,{line:s,gitignorePath:l,applied:!1},{handler:`skill-track-in-git`});return}let d=V(u)?H(u,`utf-8`):null;if((d??``).split(`
1187
1187
  `).some(e=>e.trim()===s)){K(t,409,`urn:ok:error:invalid-request`,`"${s}" is already in ${l}, but ${o} is still ignored — another rule excludes it.`,{handler:`skill-track-in-git`});return}if(ad(u,`${d===null||d.endsWith(`
1188
1188
  `)||d===``?d??``:`${d}\n`}${s}\n`,`utf-8`),Ln(),await he?.rebuildIgnorePatterns(),he?.isPathIgnored(o)){d===null?td(u,{force:!0}):ad(u,d,`utf-8`),Ln(),await he.rebuildIgnorePatterns(),K(t,409,`urn:ok:error:invalid-request`,`Adding "${s}" did not make ${o} trackable — another .gitignore rule excludes a parent directory. ${l} was left unchanged.`,{handler:`skill-track-in-git`});return}je?.(`files`),J(t,200,Qr,{line:s,gitignorePath:l,applied:!0},{handler:`skill-track-in-git`})},{handler:`skill-track-in-git`,title:`Failed to update .gitignore.`}),{handler:`skill-track-in-git`,method:`POST`}),bo={lastKey:null},So=q(ei,JB(async(e,t)=>{let n=(he?.peekFreshInPlaceSkillDirsFingerprint()??``)+``+(M?II(M).join(`,`):``)+``+FI(Ia).map(e=>e.editorId).join(`,`)+``+vL(Ia).map(e=>e.dir).sort().join(`,`);if(Pn!==null&&Pn.fp!==n&&Ln(),Pn!==null&&Pn.gen===Nn&&Pn.fp===n&&Date.now()-Pn.at<5e3){J(t,200,si,Pn.body,{handler:`skills-list`});return}let r=Ra(`project`),i=_o(r,`project`),a=_o(Ra(`global`),`global`),o=M?II(M):[],s=FI(Ia).map(e=>e.editorId),l=M?fL(M,`project`,xa,Ia):!1,u=fL(Ia,`global`,xa,Ia),d=M?NN(M).skills:{},f=NN(Ia).skills,p=M?_O(V(L(M,...pO))?H(L(M,...pO),`utf-8`):``)??null:null,m=Za,h=(e,t,n)=>e.skills.map(e=>{let i=t[e.name]?.hosts??[],a=n?p?.skills[e.name]:void 0,o=a?m(a):void 0,s=a?.localHash!==void 0&&ns(r,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}:{}}}),g=M?Rq(M):{},_=(e,t,n)=>{let r=[];for(let i of t??[]){let t=z(e,i.path);if(n!==void 0&&t===z(n))continue;let a=!1;try{a=Ku(t).isSymbolicLink()}catch{continue}if((a?`link`:`copy`)!==i.mode){if(a&&n!==void 0)try{if(U(t)===U(n))continue}catch{}r.push(i.path)}}return{drift:r}},v=M?cL(c,`project`):{},y=pL(v,`project`),b=(e,t)=>[...t].some(t=>e===t||e.startsWith(`${t}/`)),x=uf(M??c),S=Pve(c),C=dL(`project`),w=dL(`global`),T=(e,t)=>(e??[]).filter(e=>![...t].some(t=>e.path===t||e.path.startsWith(`${t}/`))),E=new Set,D=Due(c),O=e=>{let t=kue(D,e);return t?{name:t.name,marketplace:t.marketplace,provider:`claude`,...t.url?{url:t.url}:{}}:null},ee=M?_L(c).map(e=>{let t=!E.has(e.name);E.add(e.name);let n=z(c,e.dir),r=t?ro(e.name,x,n)??O(n):null,i=t&&r===null?p?.skills[e.name]??Qa(c,e.name)??io(e.name,x,n):void 0,a=i?m(i):void 0,s=i?.localHash===void 0?(()=>{if(!i||!t)return!1;let n=no(e.name,x);return n!==null&&S.isModified(`project`,e.name,e.contentHash,n)})():e.contentHash!==i.localHash;return{name:e.name,...e.description?{description:e.description}:{},scope:`project`,path:`${e.dir}/SKILL.md`,absolutePath:z(c,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],size:e.size,installableEditors:o,hubOffered:l,...e.pack===void 0?{}:{pack:e.pack},...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(v).length>0?{hostAliases:v}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...r===null?{}:{plugin:r},...(()=>{let n=T(t?g[e.name]:void 0,y).filter(e=>!b(e.path,C));return n.length?{customPlacements:n.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...(()=>{let n=_(M,T(t?g[e.name]:void 0,y),z(c,e.dir));return n.drift.length>0?{driftPaths:n.drift}:{}})(),...qa(`project`,e.name,e)===`link`?{linkMode:!0}:{},...a?{origin:a}:{},...s?{modified:!0}:{},...i?.baselineRef===void 0?{}:{revertable:!0},...gk(e.name)?{managed:!0}:{}}}):[],te=Rq(Ia),k=ts(L(Ia,...pO)),A=cL(Ia,`global`),ne=pL(A,`global`),re=new Set(vL(Ia).map(e=>e.name));a.skills=a.skills.filter(e=>!re.has(e.name));let ie=new Set,j=vL(Ia).map(e=>{let t=!ie.has(e.name);ie.add(e.name);let n=t?te[e.name]:void 0,r=yL(Ia,e.name),i=r!==null&&z(Ia,e.dir)!==z(r)?e.hosts[0]:void 0;return{name:e.name,...e.description?{description:e.description}:{},scope:`global`,path:`${e.dir}/SKILL.md`,absolutePath:z(Ia,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],...i===void 0?{}:{hostQualifier:i},size:e.size,installableEditors:s,hubOffered:u,...e.pack===void 0?{}:{pack:e.pack},...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(A).length>0?{hostAliases:A}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...(()=>{let t=_(Ia,T(n,ne),z(Ia,e.dir));return t.drift.length>0?{driftPaths:t.drift}:{}})(),...(()=>{let e=T(n,ne).filter(e=>!b(e.path,w));return e.length?{customPlacements:e.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...qa(`global`,e.name,e)===`link`?{linkMode:!0}:{},...gk(e.name)?{managed:!0}:{},...(()=>{if(!t)return{};let n=z(Ia,e.dir),r=ro(e.name,x,n);if(r!==null)return{plugin:r};let i=k.skills[e.name]??Qa(Ia,e.name)??io(e.name,x,n);if(!i)return{};let a=i.localHash===void 0?(()=>{let t=no(e.name,x);return t!==null&&S.isModified(`global`,e.name,e.contentHash,t)})():e.contentHash!==i.localHash;return{origin:m(i),...a?{modified:!0}:{}}})()}}),ae=new Set(ee.map(e=>e.name)),oe=M&&!i.skills.some(e=>e.name===Ya)&&!ae.has(Ya)?so(M,Ya,`project`):null,se=new Set(j.map(e=>e.name)),ce=yk.map(e=>mk[e]).filter(e=>!a.skills.some(t=>t.name===e)&&!se.has(e)).map(e=>so(Ia,e,`global`)).filter(e=>e!==null),le=new Set(ee.map(e=>e.name)),ue=[...h(i,d,!0).filter(e=>!le.has(e.name)),...ee,...h(a,f,!1),...j,...oe?[oe]:[],...ce];S.flush();let de={skills:ue.map(e=>{let t=e.scope===`project`&&e.absolutePath?NX(e.absolutePath,c):null,n=e.absolutePath?wge(I(e.absolutePath)):[],r=n.length>0?{...e,filePaths:n}:e,i=t===null||t===e.path?r:{...r,canonicalPath:t},a=t??e.path;return e.scope===`project`&&he?.isPathIgnored(a)===!0?{...i,ignored:!0}:i}),truncated:i.truncated||a.truncated},fe=await qbe(ee.map(e=>e.path),he??null,bo)?{...de,skills:de.skills.map(e=>{if(e.scope!==`project`)return e;let t=e.canonicalPath??e.path,n=he?.isPathIgnored(t)===!0;if(n===(e.ignored===!0))return e;if(n)return{...e,ignored:!0};let{ignored:r,...i}=e;return i})}:de;Pn={at:Date.now(),gen:Nn,fp:n,body:fe},J(t,200,si,fe,{handler:`skills-list`})},{handler:`skills-list`,title:`Failed to list skills.`}),{handler:`skills-list`,method:`GET`,skipBodyParse:!0}),Co=q(ei,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Na(r,t,`skill-get`))return;let i=Pa(n.searchParams.get(`scope`),t,`skill-get`);if(i===null)return;if(gk(r)){let e=i===`global`?Ia:M,a=e?Xa(e,r,n.searchParams.get(`host`)??void 0):null;if(a){let{frontmatter:e,body:n}=Sa(await md(a.skillMd,`utf-8`));J(t,200,zi,{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:iL(a.dir),managed:!0}},{handler:`skill-get`});return}}let a=n.searchParams.get(`host`)??void 0,o=za(i,r,a);if(o===null){K(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=z(o,`SKILL.md`),{frontmatter:c,body:l}=Sa(await md(s,`utf-8`));J(t,200,zi,{skill:{name:r,scope:i,path:uo(s,i),frontmatter:{name:typeof c.name==`string`?c.name:r,description:typeof c.description==`string`?c.description:``},body:l,files:iL(o)}},{handler:`skill-get`})}catch(e){K(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 wo(e,t){!k||tS(e)||(he&&(Ln(),he.refreshInPlaceSkillDirs(),Bn()),Ct(e,t,`skill-put`))}let Eo=q(Mee,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-put`});return}if(!Na(n.name,t,`skill-put`)||co(n.name,t,`skill-put`))return;let r=vj({name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!r.ok){K(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`?c:Ia,a=za(n.scope,n.name);if(a===null){let a=mL(i,n.scope);if(a===null){K(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-put`,detail:`NO_USABLE_SKILL_HOME`});return}let o=yj({skillsRoot:z(i,a),name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!o.ok){K(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`&&(Mn(e,`${a}/${n.name}/SKILL`,`skill-create: ${a}/${n.name}/SKILL.md`),Un(`skill-put`)),await wo(n.scope===`project`?`${a}/${n.name}/SKILL`:zs(`global`,n.name),r.content),je?.(`files`),J(t,200,Fn,{path:`${a}/${n.name}/SKILL.md`,created:!0,warnings:[...r.warnings,...o.warnings]},{handler:`skill-put`});return}let o=R(i,a).split(B).join(`/`),l=`${o}/SKILL.md`,u=n.scope===`project`?`${o}/SKILL`:zs(n.scope,n.name);if(ya(u,`skill-put`,t))return;let{agentId:d,agentName:f,colorSeed:p,clientName:m}=wn(n),h=await s.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{Db(h.dc.document,r.content,`agent`)},h.origin);let g=await dt(u);if(g?.kind===`failure`){ft(t,g.failure,`skill-put`);return}if(g?.kind===`divergence`){ht(t,`skill-put`);return}n.scope===`project`&&(Mn(e,jn(`skill`,``,n.name),`skill-edit: ${l}`),Un(`skill-put`)),await wo(u,r.content),je?.(`files`),J(t,200,Fn,{path:l,created:!1,warnings:r.warnings},{handler:`skill-put`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write skill.`,{handler:`skill-put`,cause:e})}},{handler:`skill-put`,method:`PUT`});function Do(e,t,n){let r=e===`project`?c:Ia,i=za(e,t,n);return{root:i===null?Ra(e):I(i),dirRel:i===null?`.ok/skills/${t}`:R(r,i).split(B).join(`/`),realDir:i}}function Oo(e,t){let n=e===`project`?c:Ia,r=(e===`project`?_L(c):vL(Ia)).find(e=>e.name===t);r&&tL({canonicalAbs:z(n,r.dir),canonicalHash:r.contentHash,name:t,cwd:n,targets:r.hosts.filter(e=>fa(e)),roots:UI(e)})}let ko=q(ei,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Na(r,t,`skill-delete`))return;let i=Pa(n.searchParams.get(`scope`),t,`skill-delete`);if(i===null)return;let a=n.searchParams.get(`host`)??void 0,{root:o,dirRel:s,realDir:c}=Do(i,r,a);if(a!==void 0&&c===null){K(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-delete`,detail:`No skill "${r}" (${i}) in ${a}.`});return}let l=Ba(n,ce);if(l.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-delete`});return}await Ht(i===`project`?[...new Set([`${s}/SKILL`,zs(i,r)])]:[zs(i,r,a)],`deleted-upstream`),a===void 0&&Oo(i,r);let u=wj({skillsRoot:o,name:r}),d=Ra(i);if(a===void 0&&u.ok&&d!==o&&V(z(d,r,`SKILL.md`))){let e=wj({skillsRoot:d,name:r});e.ok||X.warn({name:r,scope:i,detail:e.error.code},`[skill-delete] legacy store resident survived the delete`)}if(!u.ok){let e=u.error.code===`UNLINK_FAILED`?500:400;K(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:u.error.code,cause:Error(u.error.message)});return}u.existed&&(i===`project`&&(Mn(l,s,`skill-delete: ${s}`),Ln(),Wn(`skill-delete`)),je?.(`files`));let f=po(i);a===void 0&&f&&await ho(f,r,i),J(t,200,Eee,{existed:u.existed,path:u.path},{handler:`skill-delete`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to delete skill.`,{handler:`skill-delete`,cause:e})}},{handler:`skill-delete`,method:`DELETE`,skipBodyParse:!0}),Mo=q(St,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-move`});return}if(!Na(n.fromName,t,`skill-move`)||!Na(n.toName,t,`skill-move`)||co(n.toName,t,`skill-move`))return;let{root:r,dirRel:i}=Do(n.scope,n.fromName);if(za(n.scope,n.toName)!==null){K(t,409,`urn:ok:error:doc-already-exists`,`A skill named "${n.toName}" already exists.`,{handler:`skill-move`});return}let a=po(n.scope),o=a?NN(a).skills[n.fromName]:void 0,s=n.scope===`project`?c:Ia,l=(n.scope===`project`?_L(c):vL(Ia)).find(e=>e.name===n.fromName),u=l?I(l.dir):null,d=u===null?[]:Object.entries(cL(s,n.scope)).filter(([,e])=>e===u).map(([e])=>e),f=[...new Set([...o?zI(o.hosts):[],...l?zI(l.hosts):[],...zI(d)])];await Ht(n.scope===`project`?[...new Set([`${i}/SKILL`,zs(n.scope,n.fromName)])]:[zs(n.scope,n.fromName)],`renamed`),Oo(n.scope,n.fromName);let p=await ffe({skillsRoot:r,fromName:n.fromName,toName:n.toName,relocate:async(e,t)=>{let n=await iZ(M,e,t);return n||rZ(e,t),n}});if(!p.ok){if(p.error.code===`SKILL_NOT_FOUND`){K(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move`,detail:p.error.message});return}if(p.error.code===`SKILL_EXISTS`){K(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;K(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=z(r,n.toName,`SKILL.md`),g=``,_=``;try{let e=Sa(H(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=yj({skillsRoot:r,name:n.toName,body:v,frontmatter:{name:n.toName,description:y}});b.ok||(m=b.error);let x=[];if(!m)try{x=Nge({base:n.scope===`project`?c:Ia,scope:n.scope,fromName:n.fromName,toName:n.toName})}catch(e){F(`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`)}n.scope===`project`&&!m&&(Ln(),he?.refreshInPlaceSkillDirs(),qo(r,n.fromName,n.toName).then(()=>Xo(x,n.toName)).catch(()=>{}),Bn());let S=uo(z(r,n.fromName),n.scope),C=uo(z(r,n.toName),n.scope),w=ns(r,n.toName);if(await Ua(n.scope,n.fromName,n.toName,{localHash:w}),n.scope===`project`&&(Mn(e,jn(`skill`,``,n.toName),`skill-rename: ${S} -> ${C}`,[{from:S,to:C}]),(async()=>{try{await Wn(`skill-move`);let t=await rs(is(e),C);t!==void 0&&await Ga(`project`,n.toName,{baselineRef:t})}catch(e){F(`skill-move`).warn({err:e,toName:n.toName},`deferred shadow flush / revert-baseline failed — Revert stays unarmed until the next flush`)}})()),a){await IN(a,n.fromName),nL(n.fromName,a,f,UI(n.scope));let e=z(r,n.toName);if(f.length>0){let t=JI(e,n.toName,a,f,Va(n.scope,n.toName),UI(n.scope));await FN(a,n.toName,{...o,scope:n.scope,hosts:t,scripts:o?.scripts??VI(e,n.toName).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}}if(je?.(`files`),m){let e=m.code===`WRITE_ERROR`;K(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}J(t,200,Ze,{from:S,to:C,committed:p.committed},{handler:`skill-move`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill.`,{handler:`skill-move`,cause:e})}},{handler:`skill-move`,method:`POST`}),Po=q(Aee,async(e,t,n)=>{let{name:r,home:i}=n;if(!Na(r,t,`skill-edit-external`))return;let a;try{a=U(i)}catch{K(t,404,`urn:ok:error:not-found`,`Skill directory not found.`,{handler:`skill-edit-external`,detail:`HOME_NOT_FOUND`});return}if(!rd(a).isDirectory()||!V(z(a,`SKILL.md`))){K(t,400,`urn:ok:error:invalid-request`,`Not a skill directory (no SKILL.md).`,{handler:`skill-edit-external`});return}tz(r,a),J(t,200,ua,{docName:Oee(r)},{handler:`skill-edit-external`})},{handler:`skill-edit-external`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`skill-edit-external`})}),Fo=q(see,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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(!Na(r,t,`skill-move-scope`))return;if(gk(r)){K(t,400,`urn:ok:error:invalid-request`,`"${r}" is a built-in skill and always lives at its own scope.`,{handler:`skill-move-scope`,detail:`BUILTIN_SCOPE_FIXED`});return}if(i===a){K(t,400,`urn:ok:error:invalid-request`,`Source and destination scope are the same.`,{handler:`skill-move-scope`});return}if(a===`project`&&!M){K(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:l}=Do(i,r),u=z(o,r),d=(()=>{try{return U(u)}catch{return u}})(),f=a===`project`?c:Ia,p=mL(f,a);if(p===null){K(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=z(f,p),h=z(m,r);if(l===null||!V(u)){K(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move-scope`,detail:`Skill "${r}" not found in ${i} scope.`});return}if(z(l)===z(h)||V(h)&&U(l)===U(h)){K(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(za(a,r)!==null||V(h)){K(t,409,`urn:ok:error:doc-already-exists`,`A ${a} skill named "${r}" already exists.`,{handler:`skill-move-scope`});return}let g=po(i),_=po(a),v=g?NN(g).skills[r]:void 0,y=i===`project`?c:Ia,b=(i===`project`?_L(c):vL(Ia)).find(e=>e.name===r),x=b?I(b.dir):null,S=x===null?[]:Object.entries(cL(y,i)).filter(([,e])=>e===x).map(([e])=>e),C=[...new Set([...v?zI(v.hosts):[],...b?zI(b.hosts):[],...zI(S)])];await Ht([...new Set([...i===`project`?[`${s}/SKILL`]:[],zs(i,r),zs(a,r)])],`renamed`),Dc(m,{recursive:!0}),Ac(d,h,{recursive:!0,dereference:!0}),Oo(i,r);let w=wj({skillsRoot:o,name:r});if(w.ok&&d!==u){let e=R((()=>{try{return U(y)}catch{return y}})(),d);e!==``&&!e.startsWith(`..`)&&!Pu(e)&&jc(d,{recursive:!0,force:!0})}if(!w.ok){wj({skillsRoot:m,name:r}),K(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 Wa(i,a,r);if(g&&await ho(g,r,i,b?{purge:{contentHash:b.contentHash}}:{}),g&&await W_e(g,r),_&&C.length>0){let e=JI(h,r,_,C,Va(a,n.name),UI(a));await FN(_,r,{...v,scope:a,hosts:e,scripts:v?.scripts??VI(h,r).hasScripts,installedAt:v?.installedAt??new Date().toISOString()})}if(T&&await Ga(a,r,{localHash:ns(m,r)}),i===`project`||a===`project`){Mn(e,i===`project`?s:R(c,h).split(B).join(`/`),`skill-move-scope: ${i} -> ${a} ${r}`);let t=R(c,h).split(B).join(`/`),n=!!T&&a===`project`;(async()=>{try{if(await Wn(`skill-move-scope`),n){let n=await rs(is(e),t);n!==void 0&&await Ga(a,r,{baselineRef:n})}}catch(e){F(`skill-move-scope`).warn({err:e,name:r},`deferred shadow flush / revert-baseline failed — Revert stays unarmed until the next flush`)}})()}if(!V(L(h,`SKILL.md`))){K(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:R(f,h).split(B).join(`/`)});return}Ln(),he?.refreshInPlaceSkillDirs(),Bn(),je?.(`files`),J(t,200,Pee,{scope:a,path:R(f,h).split(B).join(`/`)},{handler:`skill-move-scope`})}catch(e){K(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`}),Io=q(Lee,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-duplicate`});return}if(!Na(n.name,t,`skill-duplicate`)||!Na(n.toName,t,`skill-duplicate`)||co(n.toName,t,`skill-duplicate`))return;let r=za(n.scope,n.name);if(r===null||!V(L(r,`SKILL.md`))){K(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-duplicate`,detail:`SOURCE_NOT_FOUND`});return}let i=n.scope===`project`?c:Ia,a=mL(i,n.scope);if(a===null){K(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-duplicate`,detail:`NO_USABLE_SKILL_HOME`});return}let o=z(i,a),s=z(o,n.toName);if(za(n.scope,n.toName)!==null||V(s)){K(t,409,`urn:ok:error:doc-already-exists`,`A ${n.scope} skill named "${n.toName}" already exists.`,{handler:`skill-duplicate`});return}let l=AO(r);if(!l){K(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-duplicate`});return}Dc(o,{recursive:!0}),Ac(r,s,{recursive:!0,dereference:!0});let{fenced:u,body:d}=ao(l.skillMd),f=Ao(u,{name:n.toName});if(!f.ok){wj({skillsRoot:o,name:n.toName}),K(t,400,`urn:ok:error:invalid-request`,`Failed to write duplicated skill.`,{handler:`skill-duplicate`,detail:f.error.kind});return}try{Ic(L(s,`SKILL.md`),`${f.nextFenced}${d}`)}catch(e){throw wj({skillsRoot:o,name:n.toName}),e}if(n.scope===`project`){let t=R(c,s).split(B).join(`/`);Mn(e,jn(`skill`,``,n.toName),`skill-duplicate: ${n.name} -> ${t}`),Wn(`skill-duplicate`)}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,Gee,{name:n.toName},{handler:`skill-duplicate`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to duplicate skill.`,{handler:`skill-duplicate`,cause:e})}},{handler:`skill-duplicate`,method:`POST`}),Ro=fK({GET:Co,PUT:Eo,POST:Mo,DELETE:ko},{handler:`skill`});function Ho(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 Uo(e,t,n){return e===`project`&&t===`reference`&&n.toLowerCase().endsWith(`.md`)}function Wo(e,t){let n=z(e,t),r=R(c,e).split(B).join(`/`),i;try{i=Qu(n,{recursive:!0,encoding:`utf-8`})}catch{return[]}return i.filter(e=>/\.md$/i.test(e)).map(e=>`${r}/${t}/${e.split(B).join(`/`).replace(/\.md$/i,``)}`)}function Go(e,t){let n=t.replace(/\.md$/i,``);return`${xi(e).replace(/\/SKILL$/,``)}/${n}`}function Ko(e,t){let n=z(e,t,`references`);if(!V(n))return[];let r=[],i=(e,t)=>{for(let n of Qu(e,{withFileTypes:!0})){let a=t?`${t}/${n.name}`:n.name;n.isDirectory()?i(z(e,n.name),a):n.isFile()&&n.name.toLowerCase().endsWith(`.md`)&&r.push(`references/${a}`)}};return i(n,``),r}async function qo(e,t,n){if(!k){F(`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=H(n,`utf-8`)}catch(i){F(`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=R(c,e).split(B).join(`/`),o=(e,t)=>`${a}/${e}/${t?t.replace(/\.mdx?$/i,``):`SKILL`}`;i(o(t),o(n),z(e,n,`SKILL.md`));for(let r of Ko(e,n))i(o(t,r),o(n,r),z(e,n,r));await k.recordDirectMutations(r)}async function Xo(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 Zo=fK({GET:q(ei,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Na(r,t,`skill-file-get`))return;let i=Pa(n.searchParams.get(`scope`),t,`skill-file-get`);if(i===null)return;let a=n.searchParams.get(`path`)??``,o=gk(r)?i===`global`?Ia:M:void 0,s=n.searchParams.get(`host`)??void 0,c=o?Xa(o,r,s):null;if(a===``||a.includes(`\0`)){K(t,400,`urn:ok:error:invalid-request`,`Invalid skill file path.`,{handler:`skill-file-get`});return}let l=(c&&a===`SKILL.md`?`reference`:Ho(a))??`reference`,u=s,d=o?c?.dir??null:za(i,r,u);if(d===null&&u!==void 0){K(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??z(Ra(i),r),p=z(f,a);if(p!==f&&!p.startsWith(`${f}${B}`)){K(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(!V(m)){let e=a.match(/^(.*)\.(?:md|mdx)$/),n=e?Ke.map(t=>`${e[1]}${t}`).find(e=>e!==a&&V(z(f,e))):void 0;if(n===void 0){K(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=z(f,n)}let g=await md(m);if(g.includes(0)){K(t,415,`urn:ok:error:invalid-request`,`Skill file is binary — only text bundle files are readable via MCP.`,{handler:`skill-file-get`});return}J(t,200,Ree,{path:h.replace(/\\/g,`/`),kind:l,text:g.toString(`utf-8`)},{handler:`skill-file-get`})}catch(e){K(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:q(Da,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-put`});return}if(!Na(n.name,t,`skill-file-put`)||co(n.name,t,`skill-file-put`))return;let r=Ho(n.path);if(r===null){K(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){K(t,400,`urn:ok:error:invalid-request`,`Skill file exceeds the 256 KB per-file cap.`,{handler:`skill-file-put`});return}let i=za(n.scope,n.name);if(i===null||!V(L(i,`SKILL.md`))){K(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=R(n.scope===`project`?c:Ia,i).split(B).join(`/`),o=n.path.replace(/\\/g,`/`),l=Uo(n.scope,r,o),u;if(l){let e=`${a}/${o.replace(/\.mdx?$/i,``)}`;if(ya(e,`skill-file-put`,t))return;if(u=!V(z(i,o)),u&&xj(i)>=50){K(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:c,colorSeed:l,clientName:d}=wn(n),f=await s.getSession(e,r,{displayName:c,colorSeed:l,clientName:d});f.dc.document.transact(()=>{Db(f.dc.document,n.content,`agent`)},f.origin);let p=await dt(e);if(p?.kind===`failure`){ft(t,p.failure,`skill-file-put`);return}if(p?.kind===`divergence`){ht(t,`skill-file-put`);return}}else{let e=Sj({skillsRoot:I(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;K(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`&&(Mn(e,jn(`skill`,``,n.name),`${u?`skill-file-create`:`skill-file-edit`}: ${a}/${o}`),Wn(`skill-file-put`)),je?.(`files`),J(t,200,va,{path:o,created:u,kind:r,content:l},{handler:`skill-file-put`})}catch(e){K(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:q(ei,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams,i=r.get(`name`)??``;if(!Na(i,t,`skill-file-delete`)||co(i,t,`skill-file-delete`))return;let a=Pa(r.get(`scope`),t,`skill-file-delete`);if(a===null)return;let o=(r.get(`path`)??``).replace(/\\/g,`/`),s=Ho(o);if(s===null){K(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 l=Ba(n,ce);if(l.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-delete`});return}let u=za(a,i),d=u===null?Ra(a):I(u),f=z(u??L(d,i),o);if(V(f)&&Uo(a,s,o)){let e=o.replace(/\.md$/i,``);await Ht([u===null?Go(i,o):`${R(c,u).split(B).join(`/`)}/${e}`],`deleted-upstream`)}else if(a===`project`&&u!==null&&V(f)&&rd(f).isDirectory()){let e=Wo(u,o);e.length>0&&await Ht(e,`deleted-upstream`)}let p=Cj({skillsRoot:d,name:i,relPath:o});if(!p.ok){let e=p.error.code===`UNLINK_FAILED`?500:400;K(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:p.error.code,cause:Error(p.error.message)});return}p.existed&&a===`project`&&(Mn(l,jn(`skill`,``,i),`skill-file-delete: ${u===null?`${i}/${o}`:`${R(c,u).split(B).join(`/`)}/${o}`}`),Wn(`skill-file-delete`)),p.existed&&je?.(`files`),J(t,200,jo,{path:o,existed:p.existed,kind:s},{handler:`skill-file-delete`})}catch(e){K(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`}),Qo=q(Ci,async(e,t,n)=>{try{if(!Na(n.name,t,`skill-file-rename`)||co(n.name,t,`skill-file-rename`))return;let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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=Ho(r),o=Ho(i);if(a===null||o===null){K(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=za(n.scope,n.name);if(s===null){K(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-rename`});return}let l=I(s),u=Uo(n.scope,a,r),d=Uo(n.scope,o,i),f=R(c,s).split(B).join(`/`),p=u?`${f}/${r.replace(/\.md$/i,``)}`:null,m=d?`${f}/${i.replace(/\.md$/i,``)}`:null;if(p!==null&&ya(p,`skill-file-rename`,t))return;if(p!==null)await Ht([p],`deleted-upstream`);else if(n.scope===`project`){let e=z(s,r);if(V(e)&&rd(e).isDirectory()){let e=Wo(s,r);e.length>0&&await Ht(e,`deleted-upstream`)}}let h=dfe({skillsRoot:l,name:n.name,relPath:r,toRelPath:i});if(!h.ok){let e=h.error.code===`RENAME_FAILED`?500:400;K(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:H(z(l,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:H(z(l,n.name,i),`utf-8`)})}catch{}await bt(e,`skill-file-rename`)}n.scope===`project`&&(Mn(e,jn(`skill`,``,n.name),`skill-file-rename: ${n.name}/${r} -> ${i}`),Wn(`skill-file-rename`)),je?.(`files`),J(t,200,Kee,{from:r,to:i,...p===null?{}:{fromDocName:p},...m===null?{}:{toDocName:m}},{handler:`skill-file-rename`})}catch(e){X.error({err:e},`[skill-file-rename] failed`),t.headersSent||K(t,500,`urn:ok:error:internal-server-error`,`Failed to rename skill file.`,{handler:`skill-file-rename`})}},{handler:`skill-file-rename`,method:`POST`});function es(e){let t=/github\.com[/:]([\w.-]+)\//.exec(e);return t?t[1]:void 0}let ts=BK;function ns(e,t){return AO(z(e,t))?.contentHash}async function rs(e,t){let n=w?.current;if(!(!n||!e))try{let r=ux(n),i=async()=>{let t=(await r.raw(`for-each-ref`,`--format=%(refname)`,`refs/wip/`)).trim().split(`
1189
- `).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 Wn(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let is=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function as(e){try{let t=po(e.scope);if(!t)return;let n=HI(t);if(n.length===0)return;let r=JI(z(e.skillsRoot,e.name),e.name,t,n,`copy`,UI(e.scope));if(r.length===0)return;await FN(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){X.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function os(e,t){if(t.ok){J(e,200,Cr,t.body,{handler:`skill-import`});return}K(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 ss=Nbe({contentDir:c,skillsHome:Ia,...M===void 0?{}:{projectDir:M},resolveSkillDirForRead:za,parseFrontmatterDoc:Sa,attributeOkArtifactWrite:Mn,commitOkArtifactWrite:Wn,shadowHeadSha:rs,artifactWriterId:is,effectiveInstallMode:qa,signalFiles:()=>je?.(`files`)}),cs=Rbe({contentDir:c,skillsHome:Ia,...M===void 0?{}:{projectDir:M},legacyStoreRoot:xo,effectiveSkillRoot:Do,parseFrontmatterDoc:Sa,attributeOkArtifactWrite:Mn,commitOkArtifactWrite:Wn,shadowHeadSha:rs,artifactWriterId:is,skillArtifactKey:e=>jn(`skill`,``,e),captureAndCloseDocuments:Ht,projectImportedSkillCopy:as,signalFiles:()=>je?.(`files`)});function ls(e,t){if(t.ok){J(e,200,nr,t.body,{handler:`skill-reimport`});return}K(e,t.status,t.urn,t.title,{handler:`skill-reimport`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}function us(e,t,n){let r=e===`project`?c:Ia,i=(e===`project`?_L(c):vL(Ia)).find(e=>e.name===t);return i?z(r,i.dir):z(n,t)}function ds(e,t,n,r){let i=r.skills[t];if(i)return i;let a=us(e,t,n);return xO(t,AO(a)?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Vbe(a)})??Qa(e===`global`?Ia:c,t)??io(t,uf(M??c),a)}let fs=q(Xee,async(e,t,n)=>{let r=()=>{};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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 FO(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??uO(d);if(!p){K(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(kK(t,p,`skill-import`))return;let m=await fO(p);r=m.cleanup,s=m.ref;let h=jO(m.dir);if(h.length===0){K(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=>OO(e.dir)?.name===f)??h.find(e=>e.name===Ws[f]);if(!e){K(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){K(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??es(d)}catch(e){if(e instanceof YD){K(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){K(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await ss.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Fs(u))&&MI({source:u,skills:[d.body.name]},dI()),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),je?.(`files`),os(t,d)}catch(e){K(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=q(zo,async(e,t,n)=>{let r=()=>{};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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 FO(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??uO(d);if(!f){K(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(kK(t,f,`skills-import-bulk`))return;if(l=e?.publisher??es(d),f.kind===`well-known`)a=f,o=await aO(f.origin);else{let e=await fO(f);r=e.cleanup,c=e.ref,s=jO(e.dir)}}catch(e){if(e instanceof YD){K(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){K(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 fO({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof YD?`not-found`:`failed`,warnings:[],...e instanceof YD?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>AO(e.dir)?.name===t)??s.find(e=>e.name===Ws[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await ss.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){F(`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){F(`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||Fs(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&MI({source:u,skills:e},dI())}Ln(),he?.refreshInPlaceSkillDirs(),Bn(),je?.(`files`),J(t,200,hn,{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){K(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`}),ms=8*1024*1024,hs=32*1024*1024;function _s(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=z(e,n);return r!==e&&!r.startsWith(e+B)?null:r}function vs(e){return new Promise((t,n)=>{let r;try{r=TJ(e,{files:200,fields:10,fieldSize:2*1024,fileSize:ms})}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>hs){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 ys(e,t){return new Promise((n,r)=>{(0,Lue.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=_s(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Dc(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>ms){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>hs){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Dc(I(n),{recursive:!0}),Ic(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 bs(e,t){let n=Ju(L(ud(),`ok-skill-upload-`)),r=()=>{try{jc(n,{recursive:!0,force:!0})}catch{}};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){K(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=Pa(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=Ek({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},ce);if(o.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await vs(e)}catch(e){K(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){K(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 ys(c.data,n)}catch(e){K(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=_s(n,e.relPath);if(!r){K(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Dc(I(r),{recursive:!0}),Ic(r,e.data)}let u=jO(n);if(u.length===0){K(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){K(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];os(t,await ss.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let xs=q(mt,async(e,t,n)=>{try{let e=Ra(n.scope);if(!Na(n.name,t,`skill-install`))return;if(n.scope===`project`&&!M){K(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=po(n.scope),i=z(e,n.name),a=n.scope===`project`?c:Ia,o=(n.scope===`project`?_L(c):vL(Ia)).find(e=>e.name===n.name),s=gk(n.name)?oo(n.name,n.scope):null,l=o?z(a,o.dir):V(i)||s===null?i:I(s);if(!V(l)){K(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 dt(n.scope===`project`?`${R(a,l).split(B).join(`/`)}/SKILL`:zs(n.scope,n.name));let u=VI(l,n.name,{allowReservedName:gk(n.name)});if(!u.ok){K(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" cannot be installed: ${u.errors.join(` `)}`,{handler:`skill-install`,detail:`INVALID_SKILL_SOURCE`});return}if(n.fork!==void 0){if(!o){K(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=La.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:K(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:K(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:K(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`:K(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:K(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)}`)}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o.hosts.filter(fa),scripts:!1,warnings:e.warnings,warningCodes:e.warnings.length>0?[`skill-fork-name-unpatched`]:[]},{handler:`skill-install`});return}let d=n.setSource??n.source,f=n.linkMode??(n.mode===void 0?void 0:n.mode===`link`),p=n.targets,m=[],h=[];if(n.add!==void 0||n.remove!==void 0){if(!o){K(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 La.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`?K(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`}):K(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}p=e.targets.filter(fa),m.push(...e.rootAdds),h.push(...e.rootRemoves)}if(d&&!o){let e=await La.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:l,newSource:d});if(!e.ok){K(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}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:e.hosts,scripts:u.hasScripts,warnings:[],warningCodes:[],sourceMovedTo:e.sourceMovedTo},{handler:`skill-install`});return}if(n.place){let e=n.scope===`project`?M:Ia;if(!e){K(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 ar.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:l,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?K(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):K(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||je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[],placedAt:r.placedAt},{handler:`skill-install`});return}if(n.unplace){let e=n.scope===`project`?M:Ia;if(!e){K(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 ar.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:l});if(!r.ok)switch(r.kind){case`not-recorded`:K(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:K(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:K(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`:K(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)}`)}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){K(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`?M:Ia,s=await ar.convert({ledgerBase:a??r,scope:n.scope,name:n.name,target:e,mode:i,skillDir:l,canonicalHash:o.contentHash});if(!s.ok)switch(s.kind){case`invalid-location`:K(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:K(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`:K(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`:K(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(s.kind)}`)}je?.(`files`),J(t,200,jr,{name:n.name,hosts:[...o.hosts],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let g=n.scope===`global`?p===void 0?FI(Ia).map(e=>e.editorId):eee.filter(e=>p?.some(t=>t===e)):p===void 0?HI(r):ti.filter(e=>p?.some(t=>t===e)),_=[],v=[];if(g.length===0&&p===void 0&&(_.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`."),v.push(`no-targets`)),u.hasScripts&&(_.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."),v.push(`scripts-present`)),u.warnings.length>0&&(_.push(u.warnings[0]),v.push(`no-description`)),o){let e=o.dir.split(`/`).slice(0,-1).join(`/`),i=(p===void 0?n.scope===`global`&&V(L(Ia,`.agents`)):p.includes(`agents`))?[...g,`agents`]:[...g],a=n.scope===`project`?M:Ia,s=f===void 0?qa(n.scope,n.name,o):f?`link`:`copy`;if(d){let e=await La.promoteInPlaceSource({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:l,inPlaceEntry:o,newSource:d});if(!e.ok){e.kind===`invalid-target`?K(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}):K(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}je?.(`files`),J(t,200,jr,{name:n.name,hosts:e.hosts,scripts:u.hasScripts,warnings:[],warningCodes:[],...e.sourceMovedTo===void 0?{}:{sourceMovedTo:e.sourceMovedTo}},{handler:`skill-install`});return}let c=await La.fanOutInPlace({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:l,inPlaceEntry:o,canonicalRootRel:e,inPlaceTargets:i,setExact:p!==void 0,installMode:s,...f===void 0?{}:{linkModeReq:f},rootAdds:m,rootRemoves:h});if(!c.ok){K(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:c.reason});return}_.push(...c.warnings),v.push(...c.warningCodes),je?.(`files`),J(t,200,jr,{name:n.name,hosts:c.hosts,scripts:u.hasScripts,warnings:_,warningCodes:v,...c.sourceMovedTo===void 0?{}:{sourceMovedTo:c.sourceMovedTo}},{handler:`skill-install`});return}let y=zI(NN(r).skills[n.name]?.hosts??[]).filter(e=>!g.includes(e));y.length>0&&nL(n.name,r,y,UI(n.scope));let b=L(r,...pO),x=V(b)?H(b,`utf-8`):null,S=x===null?null:_O(x);x!==null&&S===null&&X.warn({skill:n.name},`skills-lock.json failed to parse — projecting as symlink (import origin unknown)`);let C=S?.skills[n.name]!==void 0,w=f===void 0?C?`copy`:`symlink`:f?`symlink`:`copy`,T=JI(l,n.name,r,g,w,UI(n.scope));T.length===0?await IN(r,n.name):await FN(r,n.name,{hosts:T,scope:n.scope,scripts:u.hasScripts,installedAt:new Date().toISOString(),projection:w}),je?.(`files`),J(t,200,jr,{name:n.name,hosts:T,scripts:u.hasScripts,warnings:_,warningCodes:v},{handler:`skill-install`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),Ss=q(qt,async(e,t,n)=>{try{if(!Na(n.name,t,`skill-uninstall`))return;let e=po(n.scope);if(!e){K(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 ho(e,n.name,n.scope);je?.(`files`),J(t,200,tee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),Cs=q(zt,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!Na(n.name,t,`skill-restore`)||co(n.name,t,`skill-restore`))return;if(n.scope===`global`){K(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=w?.current;if(!r){K(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 hX({shadow:r,contentDir:c,contentRoot:te??`.`,name:n.name,version:n.version,skillDirRel:Ja(n.name)});if(!i.ok){Ka(t,i,`skill-restore`);return}let a=[],o=VI(z(c,Ja(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),Mn(e,jn(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await Wn(`skill-restore`),je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,cn,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),ws=q(aee,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!Na(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?Ia:c,{root:a,dirRel:o,realDir:s}=Do(n.scope,n.name);if(s===null||!V(z(i,o,`SKILL.md`))){K(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let l=L(n.scope===`global`?Ia:M,...pO),u=ds(n.scope,n.name,a,ts(l));if(!u){K(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 HK(l,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??u,autoUpdate:n.setAutoUpdate}}})),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,nr,{name:n.name,updated:!1,source:u.source,warnings:[]},{handler:`skill-reimport`});return}let d,f=null;try{let e=u.skill??n.name,i=Ws[e],a=await FO(u.source,e).catch(async e=>{if(i===void 0)throw e;return FO(u.source,i)}),o=a?.source??rk(u.source,u.pluginProvider),s=a?.skill??u.skill,c=a?.spec??uO(o);if(!c){K(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:u.source});return}if(kK(t,c,`skill-reimport`))return;let l=await fO(c);r=l.cleanup,d=l.ref;let p=jO(l.dir),m=fX(p,{...s===void 0?{}:{recordedSkill:s},localName:n.name,frontmatterNameOf:e=>AO(e)?.name});if(!m){K(t,404,`urn:ok:error:not-found`,`Could not locate this skill in its source anymore.`,{handler:`skill-reimport`,detail:p.map(e=>e.name).join(`, `)});return}f=m.dir}catch(e){if(e instanceof YD){K(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!f){K(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let p=await cs.runSkillReimport({acquiredDir:f,name:n.name,scope:n.scope,entry:u,lockPath:l,ref:d,actor:e,...n.dryRun===void 0?{}:{dryRun:n.dryRun}});Ln(),he?.refreshInPlaceSkillDirs(),Bn(),ls(t,p)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),Ts=q(hee,async(e,t,n)=>{try{if(n.scope===`project`&&!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-reimport-bulk`,detail:`NO_PROJECT_ROOT`});return}let r=Ek(n,ce);if(r.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-reimport-bulk`});return}let i=L(n.scope===`global`?Ia:M,...pO),a=ts(i),o=[],{bySource:s,unrecorded:c}=Lbe([...new Set(n.names)].filter(e=>Ma(e)?!0:(o.push({requested:e,status:`failed`,warnings:[],error:`INVALID_NAME`}),!1)),e=>ds(n.scope,e,Do(n.scope,e).root,a));for(let e of c)o.push({requested:e,status:`not-found`,warnings:[]});for(let t of s){let s=()=>{};try{let c,l=[];try{let e=t.names[0],n=await FO(t.source,e).catch(async n=>{let r=Ws[e];if(r===void 0)throw n;return FO(t.source,r)}),r=n?.source??rk(t.source,a.skills[t.names[0]]?.pluginProvider),i=n?.spec??uO(r);if(!i||OK(i)){for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:`INVALID_SOURCE`});continue}let u=await fO(i);s=u.cleanup,c=u.ref,l=jO(u.dir)}catch(n){F(`skills-reimport-bulk`).warn({source:t.source,err:n,requestId:sS(e)},`bulk update: one source could not be fetched (rest continue)`);for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:n instanceof Error?n.message:String(n)});continue}for(let s of t.names){let t=ds(n.scope,s,Do(n.scope,s).root,a);if(!t){o.push({requested:s,status:`not-found`,warnings:[]});continue}let u=fX(l,{...t.skill===void 0?{}:{recordedSkill:t.skill},localName:s,frontmatterNameOf:e=>AO(e)?.name});if(!u){o.push({requested:s,status:`not-found`,source:t.source,warnings:[]});continue}try{let a=await cs.runSkillReimport({acquiredDir:u.dir,name:s,scope:n.scope,entry:t,lockPath:i,ref:c,actor:r});if(!a.ok){F(`skills-reimport-bulk`).warn({skill:s,err:a.cause,detail:a.detail,requestId:sS(e)},`bulk update: one skill failed (rest continue)`),o.push({requested:s,status:`failed`,source:t.source,warnings:[],error:a.detail??a.title});continue}o.push({requested:s,status:a.body.updated?`updated`:`up-to-date`,source:a.body.source,warnings:a.body.warnings})}catch(n){F(`skills-reimport-bulk`).warn({skill:s,err:n,requestId:sS(e)},`bulk update: one skill threw (rest continue)`),o.push({requested:s,status:`failed`,source:t.source,warnings:[],error:n instanceof Error?n.message:String(n)})}}}finally{s()}}J(t,200,mi,{results:o,updated:o.filter(e=>e.status===`updated`).length,upToDate:o.filter(e=>e.status===`up-to-date`).length,failed:o.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-reimport-bulk`});try{Ln(),he?.refreshInPlaceSkillDirs(),Ln(),await he?.rebuildIgnorePatterns()}catch(e){F(`skills-reimport-bulk`).warn({err:e},`bulk update: ignore-pattern rebuild failed after a reported success`)}}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to update skills.`,{handler:`skills-reimport-bulk`,cause:e})}},{handler:`skills-reimport-bulk`,method:`POST`}),Es=q(iee,async(e,t,n)=>{try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!Na(n.name,t,`skill-revert`)||co(n.name,t,`skill-revert`))return;if(n.scope===`global`){K(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=L(M,...pO),i=ts(r).skills[n.name];if(!i?.baselineRef){K(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=w?.current;if(!a){K(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 hX({shadow:a,contentDir:c,contentRoot:te??`.`,name:n.name,version:i.baselineRef,skillDirRel:Ja(n.name)});if(!o.ok){Ka(t,o,`skill-revert`);return}Mn(e,jn(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await Wn(`skill-revert`);let s=z(c,Ja(n.name),`..`),l=ns(s,n.name);await HK(r,e=>vO(e,n.name,{...e.skills[n.name]??i,...l===void 0?{}:{localHash:l}})),s===Ra(`project`)&&await as({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),je?.(`files`),J(t,200,gr,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`}),Ds=jbe({contentDir:c,projectDir:M,getAllFilesIndex:m,getFileIndexGeneration:g,getSearchMaxEntries:Ybe,semanticSearch:N,getSemanticSimilarityFloor:Se,ready:ve,getProjectSkillsRoot:()=>Ra(`project`),parseFrontmatterDoc:Sa});Ds.prewarm();async function Os(e,t){if(r(e,t,{handler:`handoff`}))try{await Xpe(e,t,{contentDir:c,platform:process.platform,isSchemeRegistered:P.probeWithCache})}catch(n){t.headersSent||(X.error({err:n,requestId:sS(e)},`[handoff] route wrapper failed`),K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function Ns(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await hN(e,t,{contentDir:c,platform:process.platform})}catch(n){t.headersSent||(X.error({err:n,requestId:sS(e)},`[spawn-cursor] route wrapper failed`),K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let Is=q(nn,async(e,t,n)=>{try{if(!M){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!Ehe(e,n.kind)){zF(`invalid-path`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`invalid-path`},{handler:LF});return}let r=Ahe(M);if(r===null){if(YF(M).kind===`no-remote`){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}zF(`detached-head`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`detached-head`},{handler:LF});return}let i=YF(M);if(i.kind===`no-remote`){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}if(i.kind===`non-github`){zF(`non-github-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`non-github-remote`},{handler:LF});return}if(!zhe(M,r)){zF(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),J(t,200,zr,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:LF});return}let a=QX(M,c);if(a===null)throw Error(`content dir is not contained within the project dir`);let o=a===``?e:e===``?a:`${a}/${e}`,s;s=n.kind===`doc`?Dhe(i.host,i.owner,i.repo,r,o):RF(i.host,i.owner,i.repo,r,o);let l;try{let e=a===``?0:di(RF(i.host,i.owner,i.repo,r,a)).targetSegments.length;l=`https://openknowledge.ai/d/${pee(s,e)}`}catch(e){if(!(e instanceof vee))throw e;zF(`unsupported-share-url`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`unsupported-share-url`},{handler:LF});return}let u=await Ohe(M,r,o,n.kind);zF(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),J(t,200,zr,{ok:!0,shareUrl:l,sharedUrl:s,branch:r,freshness:u},{handler:LF})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:LF,cause:e})}},{handler:LF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:LF})}),Rs=q(ei,async(e,t)=>{try{if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:Qz});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(!ia(r)){K(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:Qz});return}if(!Xz(i,a)){K(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:Qz});return}J(t,200,_r,await Zz(M,r,i,a),{handler:Qz})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Qz,cause:e})}},{handler:Qz,method:`GET`,skipBodyParse:!0});function Vs(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 Hs=q(bee,async(e,t,n)=>{try{if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:cI});return}if(!Xz(n.path,n.kind)){K(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:cI});return}let e=await qhe(M,n.branch,n.path,n.kind,{credentialConfig:qc(ae,{resetAmbient:ZF(M)})});J(t,200,gee,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:Vs(n.path,e.renamedTo,n.contentRootDepth),{handler:cI})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:cI,cause:e})}},{handler:cI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:cI})}),Gs=q(Xs,async(e,t,n)=>{if(Ek(n,ce).kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:rB});return}if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:rB});return}try{J(t,200,ot,await Gc(()=>aB(M,n.branch,{fastForward:n.fastForward===!0,credentialConfig:qc(ae,{resetAmbient:ZF(M)})})),{handler:rB})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:rB,cause:e})}},{handler:rB,method:`POST`});async function Ks(e){let[t,...n]=ae,r=[...n,...e];return await new Promise((e,n)=>{let i=Ou(t,r,Cw({...Fr,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},tI),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 ${tI}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=sI(Buffer.concat(c).toString(`utf-8`)).slice(0,500);X.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 qs=q(ei,async(e,t)=>{if(!Me.tryAcquire(`/api/share/publish/owners`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:QF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Ks([`share`,`owners`,`--json`]),n=Bhe(iI(e));oI(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),J(t,200,nee,n,{handler:QF})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:QF,cause:e})}finally{Me.release(`/api/share/publish/owners`)}},{handler:QF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:QF})}),Js=q(ei,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!rI(r)||!nI(i)){K(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:$F});return}if(!Me.tryAcquire(`/api/share/publish/name-check`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:$F,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Ks([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=Vhe(iI(e));oI(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),J(t,200,Jt,n,{handler:$F})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:$F,cause:e})}finally{Me.release(`/api/share/publish/name-check`)}},{handler:$F,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:$F})}),Qs=q(Bo,async(e,t,n)=>{if(!M){oI(`publish-create`,`no-project`),J(t,200,gn,{ok:!1,error:`no-project`},{handler:eI});return}if(!rI(n.owner)||!nI(n.name)){K(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:eI});return}if(!Me.tryAcquire(`/api/share/publish`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:eI,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,M,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await Ks(e),i=Whe(iI(r));oI(`publish-create`,i.ok?`ok`:i.error),i.ok&&j?.()?.refreshRemote().catch(()=>{}),J(t,200,gn,i,{handler:eI})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eI,cause:e})}finally{Me.release(`/api/share/publish`)}},{handler:eI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:eI})}),$s=q(Bee,async(e,t,n)=>{try{let e=F(`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{}J(t,200,wee,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){K(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`})}),ec=`local-op-embeddings-set-key`,tc=`local-op-embeddings-clear-key`,nc=`/api/local-op/embeddings`;function rc(){let e=we?.();return{projectDir:M??c,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let ic=q(xt,async(e,t,n)=>{if(!Me.tryAcquire(nc)){K(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:ec,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=rc();await new fM(Ce).setForProject(e,r,n.key),N?.reloadCredential(),J(t,200,kt,{keyPresent:!0},{handler:ec,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:ec,cause:e})}finally{Me.release(nc)}},{handler:ec,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:ec})}),ac=q(ei,async(e,t)=>{if(!Me.tryAcquire(nc)){K(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:n}=rc();await new fM(Ce).clearForProject(e,n),N?.reloadCredential(),J(t,200,kt,{keyPresent:!1},{handler:tc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:tc,cause:e})}finally{Me.release(nc)}},{handler:tc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:tc})}),oc=`local-op-embeddings-test`,sc=`/api/local-op/embeddings/test`,cc=q(ei,async(e,t)=>{if(!Me.tryAcquire(sc)){K(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:oc,extraHeaders:{"Retry-After":`5`}});return}try{let e=we?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await aM(new fM(Ce),M??c,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await qfe({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};J(t,200,oee,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:oc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:oc,cause:e})}finally{Me.release(sc)}},{handler:oc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:oc})}),uc=0;function dc(){uc+=1,je?.(`lint-config`)}let fc=()=>`${uc} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function pc(e,t){let n=Te?.()??Jo;try{let r=await wa(e,rF(c,n,{docName:t,projectDir:M??c,onProblem:e=>X.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Ee?.()??`warning`;if(k&&a!==`off`&&!tS(t)){await Tt(t,e,`lint-validation`);let r=NF({projectDir:M??c,contentDir:c,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:yt,docFilePathFor:e=>YX(c,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:YX(c,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 X.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function mc(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=oF({projectDir:M??c,contentDir:c});return EP(t.schemas,n)}let gc=q(ree,async(e,t,n)=>{let r;try{r=gF(z(c),n.ruleId,n.value)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){K(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}dc();try{let e=Te?.()??Jo,n=[],r=eF(c,void 0,e=>n.push(e)),i=nF(M??c,tF(e,r),e=>n.push(e));n.push(...mc(i)),J(t,200,Vn,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){K(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`}),_c=q(Ye,async(e,t,n)=>{let r;try{let e=z(M??c),t=n.parentPath??[];r=n.delete?Yme(e,n.file):n.field!==void 0&&n.removeField?qme(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Jme(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?Gme(e,n.file,n.field,n.constraint,t):Kme(e,n.file)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){K(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`)&&je?.(`files`),dc();try{let e=Te?.()??Jo,n=[],r=eF(c,void 0,e=>n.push(e)),i=nF(M??c,tF(e,r),e=>n.push(e));n.push(...mc(i)),J(t,200,Vn,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){K(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`}),vc=q(It,async(t,n,r)=>{try{let t=HX(r.docName,n,`lint-fix`);if(t===null)return;let i=rt(t),a=Ek(r,ce);if(a.kind===`invalid-summary`){K(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,l=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(Jx(i)||Yx(i)){K(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=YX(c,i);if(f===null){K(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}oN(z(c,f),c);let p=Te?.()??Jo,{stored:m}=En(a.summary),h=await s.getSession(i,o,{displayName:l,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),_=[],{cfg:v,before:y,fixed:b,ran:x,failures:S}=await Hme({projectDir:M??c,contentDir:c,baseConfig:p,docRelPath:f,source:g,onConfigProblem:e=>_.push(e)}),C=y,w,T=[];if(b!==g){try{let t=ks(d),n=yi[t]??Ls(u??o);re?.setPresence(o,{displayName:l,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{lw(h.dc.document,b,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,sw(h))},h.origin),a.kind!==`anonymous`&&Hj(i,o,l,u,void 0,a.kind===`agent`?Tn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{re?.touchMode(o,`idle`)}let t=await dt(i);if(t?.kind===`failure`){ft(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){ht(n,`lint-fix`);return}ut(i,`lint-fix`);try{C=await wa(h.dc.document.getText(`source`).toString(),v,f,e=>T.push(e))}catch(e){w=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,X.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),C=y}}let E=C.filter(e=>e.severity===`error`).length,D=C.length-E,O=Math.max(0,y.length-C.length),ee=[..._,...As([...S,...T]),...w?[w]:[]];J(n,200,on,{file:f,fixedCount:O,diagnostics:C,errorCount:E,warningCount:D,ran:x,...ee.length>0?{warnings:ee}:{},...w?{warning:w}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof ZM){K(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof hS){gS(n,e,`lint-fix`);return}if(e instanceof bS){CS(n,e,`lint-fix`);return}if(e instanceof yw){K(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}X.error({err:e},`[lint-fix] handler failed`),K(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),yc=ude({service:Ue,getPrincipal:ce,onChanged:()=>je?.(`comments`)}),bc={"/api/comments":fK({GET:yc.list,POST:yc.create},{handler:`comments`}),"/api/comment":fK({GET:yc.read,POST:yc.mutate,DELETE:yc.remove},{handler:`comment`}),"/api/asset":dr,"/api/asset-text":pr,"/api/folder-config":ga,"/api/template":Aa,"/api/template/import":ja,"/api/skill":Ro,"/api/skill-file":Zo,"/api/skill-file/rename":Qo,"/api/skills":So,"/api/skill/import":fs,"/api/skills/import-bulk":ps,"/api/skill/edit-external":Po,"/api/skill/duplicate":Io,"/api/skill/move-scope":Fo,"/api/skill-upload":bs,"/api/skill/install":xs,"/api/skill/uninstall":Ss,"/api/skill/restore":Cs,"/api/skill/reimport":ws,"/api/skills/reimport-bulk":Ts,"/api/skill/revert":Es,"/api/skill/track-in-git":yo,"/api/lint/markdownlint-config":gc,"/api/lint/frontmatter-schema":_c,"/api/lint/fix":vc,"/api/create-page":mr,"/api/create-folder":br,"/api/duplicate-path":xr,"/api/rename-path":wr,"/api/delete-path":Tr,"/api/trash/cleanup":Er,"/api/upload":Or,"/api/agent-write":Gn,"/api/agent-write-md":Kn,"/api/agent-write-batch":qn,"/api/frontmatter-patch":Jn,"/api/agent-patch":Yn,"/api/agent-undo":Xn,"/api/agent-activity":Zn,"/api/agent-burst-diff":Qn,"/api/save-version":or,"/api/rollback":sr,"/api/share/construct-url":Is,"/api/share/target-status":Hs,"/api/git/branch-info":Rs,"/api/git/worktree-status":Gi,"/api/git/checkout":Gs,"/api/share/publish/owners":qs,"/api/share/publish/name-check":Js,"/api/share/publish":Qs,"/api/sync/status":Ui,"/api/sync/trigger":qi,"/api/sync/conflicts":Yi,"/api/sync/conflict-content":$i,"/api/sync/resolve-conflict":Qi,"/api/sync/resolve-blocking":Ji,"/api/local-op/clone":Hr,"/api/local-op/ok-init":Yr,"/api/local-op/auth/login":vi,"/api/local-op/auth/status":Ai,"/api/local-op/auth/pat":Mi,"/api/local-op/auth/gh-login":wi,"/api/local-op/auth/cancel":Oi,"/api/local-op/auth/repos":Pi,"/api/local-op/auth/signout":Li,"/api/local-op/auth/set-identity":Hi,"/api/local-op/embeddings/set-key":ic,"/api/local-op/embeddings/clear-key":ac,"/api/local-op/embeddings/test":cc,"/api/spawn-cursor":Ns,"/api/handoff":Os,"/api/install-skill":la,"/api/seed/plan":ra,"/api/seed/apply":aa,"/api/seed/install-pack-skill":oa,"/api/seed/packs":sa,"/api/client-logs":$s};C&&(bc[`/api/test-reset`]=er,bc[`/api/test-flush-git`]=$n,bc[`/api/test-rescan-backlinks`]=tr,bc[`/api/test-rescan-files`]=rr);let xc=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./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/sync/resolve-blocking./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/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/skills/reimport-bulk./api/skill/revert./api/skill/track-in-git./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Cc=[`/api/local-op/`],wc=qB({log:X,policy:n,ephemeral:De,table:{resolve(e){let t=bc[e];return t?{template:e,dispatch:(e,n)=>t(e,n)}:{template:`/api/*`}},isMutating:e=>xc.has(e)||Cc.some(t=>e.startsWith(t))}}),Tc=[sK({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:f,isSafeDocName:oZ,readPageTitleForDocName:We,readPageTitleForLinkedDocName:qe,readFrontmatterMetadataForLinkedDocName:et,collectAdmittedDocNames:yt,resolveAlias:rt,respondToDerivedIndexQueryFailure:Ot}),pK({hocuspocus:o,agentPresenceBroadcaster:re,isAllowedWorkspaceHostHeader:i,log:X}),Ne,rV({contentDir:c,projectDir:M,ephemeral:De,log:X,ready:ve,durabilityState:t,serverInstanceId:d,getDiskAckSVs:O,getCollabClientCount:ee,getConfigDiagnostics:Ae,acpRegistry:fe,loadAcpCustomAgents:pe,acpHarnessAvailability:me,isRoutePeerAdmitted:a,isAllowedWorkspaceHostHeader:i,checkLocalOpSecurity:r,getPrincipal:ce,semanticSearch:N,readSemanticProviderConfig:we,embeddingsSecretsFile:Ce,getFileIndex:f,shadowRef:w,getCurrentBranch:D,installedAgentsCache:P}),cK({hocuspocus:o,contentDir:c,projectDir:M,contentFilter:he,isSafeDocName:oZ,resolveDocFilePath:YX,isValidRelativeContentPath:BX,streamShowAllEntries:zX,getLinterBaseConfig:Te,getLinksValidationSetting:Ee,derivedDocumentIndex:k,collectAdmittedDocNames:yt,unmatchedGlobProblems:mc,readAuditGeneration:fc}),$H({contentRoot:te,log:X,shadowRef:w,flushGitCommit:T,commitOkArtifactWrite:Wn,getCurrentBranch:D,validateFolderRel:da,safeDocPath:AX,docTreePathCandidates:jX}),mK({contentDir:c,projectDir:M,homeDirOverride:le,skillsHome:Ia,isSafeDocName:oZ,commentService:Ue,enumerateInstalledSkillsCached:Rn,checkLocalOpSecurity:r}),WK({log:X,skillsHome:Ia,projectDir:M,contentDir:c,resolveSkillDirForRead:za}),K_e({contentDir:c,projectDir:M,skillsHome:Ia,homeDirOverride:le,savedThemeLockTimeoutMs:ue,ephemeral:De,log:X,signalChannel:je,searchService:Ds,linkPreviewFetch:Oe,getLinkPreviewsEnabled:ke,getGeneratedIndexSettingsStatus:l,setGeneratedIndexEnabled:u})],Ec=Tc.flatMap(e=>[...e.paths]);PG(Ec,bc);let Oc=Tc.map(e=>qB({log:X,policy:n,ephemeral:De,table:e.table})),Mc={paths:Ec,dispatch:async(e,t)=>{for(let n of Oc)if(await n(e,t))return!0;return!1}},Nc=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`]),Fc=Tc.map(e=>e.table),Lc=e=>{for(let t of Fc){let n=t.resolve(e)?.dispatch;if(n!==void 0)return n}};for(let e of Nc)if(bc[e]===void 0&&Lc(e)===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await wc(e,t)},nativeApi:Mc,localApi:dK({resolve:e=>{if(!Nc.has(e))return;let t=bc[e];return t===void 0?Lc(e):t}})}}function cZ(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=Nu(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&&!IB(f,o)){K(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!RB(e.headers.host,o)){K(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:jB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=eX(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=De.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 lZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function uxe(e){let t;try{t=Qu(e.contentDir,{withFileTypes:!0})}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&Fx(n.name,ve)&&e.basenameIndex.add(n.name)}async function uZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await hd(i,{withFileTypes:!0})}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=L(i,o.name),s=nN(R(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await pd(a)}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await gd(a)}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!rN(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await _d(i)}catch(t){let n=lZ(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()&&Fx(a,de)&&!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()&&Fx(a,de)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const dZ=P({principalId:A().optional(),tabSessionId:A().optional(),expectedServerInstanceId:A().optional(),expectedBranch:A().optional(),expectedDocLineageEpoch:A().optional(),clientProtocolVersion:O().optional(),clientRuntimeVersion:A().optional(),clientKind:A().optional()}).loose(),fZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function pZ(e){return fZ.includes(e)}function mZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function dxe(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!pZ(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 hZ=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=mZ(e,this.payload)}};function gZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=dZ.safeParse(t);return n.success?n.data:void 0}var _Z=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};function vZ(e,t,n=``){e=Ite(`.`,e);let r=Pte(e),i=0,a,o;for(;i<r.length;i++)a=wd(e,r[i]),o=Fte(a),o.isDirectory()?vZ(a,t,wd(n,r[i])):t(wd(n,r[i]),a,o)}function fxe(e){let t=e.url;if(t==null)return;let n=e._parsedUrl;if(n&&n.raw===t)return n;let r=t,i=``,a,o;if(t.length>1){let e=t.indexOf(`#`,1);e!==-1&&(o=t.substring(e),r=t.substring(0,e)),e=r.indexOf(`?`,1),e!==-1&&(i=r.substring(e),r=r.substring(0,e),i.length>1&&(a=Jte.parse(i.substring(1))))}return e._parsedUrl={pathname:r,search:i,query:a,hash:o,raw:t}}const pxe=()=>{};function mxe(e,t){for(let n=0;n<t.length;n++)if(t[n].test(e))return!0}function yZ(e,t){let n=0,r,i=e.length-1;e.charCodeAt(i)===47&&(e=e.substring(0,i));let a=[],o=`${e}/index`;for(;n<t.length;n++)r=t[n]?`.${t[n]}`:``,e&&a.push(e+r),a.push(o+r);return a}function hxe(e,t,n){let r=0,i,a=yZ(t,n);for(;r<a.length;r++)if(i=e[a[r]])return i}function gxe(e,t,n,r){let i=0,a=yZ(n,r),o,s,c,l;for(;i<a.length;i++)if(o=Fu(L(e,c=a[i])),o.startsWith(e)&&Bu.existsSync(o)){if(s=Bu.statSync(o),s.isDirectory())continue;return l=bZ(c,s,t),l[`Cache-Control`]=t?`no-cache`:`no-store`,{abs:o,stats:s,headers:l}}}function _xe(e,t){return t.statusCode=404,t.end()}function vxe(e,t,n,r,i){let a=200,o,s={};i={...i};for(let e in i)o=t.getHeader(e),o&&(i[e]=o);if((o=t.getHeader(`content-type`))&&(i[`Content-Type`]=o),e.headers.range){a=206;let[n,o]=e.headers.range.replace(`bytes=`,``).split(`-`),c=s.end=parseInt(o,10)||r.size-1,l=s.start=parseInt(n,10)||0;if(c>=r.size&&(c=r.size-1),l>=r.size)return t.setHeader(`Content-Range`,`bytes */${r.size}`),t.statusCode=416,t.end();i[`Content-Range`]=`bytes ${l}-${c}/${r.size}`,i[`Content-Length`]=c-l+1,i[`Accept-Ranges`]=`bytes`}t.writeHead(a,i),Bu.createReadStream(n,s).pipe(t)}const yxe={".br":`br`,".gz":`gzip`};function bZ(e,t,n){let r=yxe[e.slice(-3)],i=vbe(e.slice(0,r&&-3))||``;i===`text/html`&&(i+=`;charset=utf-8`);let a={"Content-Length":t.size,"Content-Type":i,"Last-Modified":t.mtime.toUTCString()};return r&&(a[`Content-Encoding`]=r),n&&(a.ETag=`W/"${t.size}-${t.mtime.getTime()}"`),a}function xZ(e,t={}){e=z(e||`.`);let n=t.onNoMatch||_xe,r=t.setHeaders||pxe,i=t.extensions||[`html`,`htm`],a=t.gzip&&i.map(e=>`${e}.gz`).concat(`gz`),o=t.brotli&&i.map(e=>`${e}.br`).concat(`br`),s={},c=`/`,l=!!t.etag,u=!!t.single;if(typeof t.single==`string`){let e=t.single.lastIndexOf(`.`);c+=~e?t.single.substring(0,e):t.single}let d=[];t.ignores!==!1&&(d.push(/[/]([A-Za-z\s\d~$._-]+\.\w+){1,}$/),t.dotfiles?d.push(/\/\.\w/):d.push(/\/\.well-known/),[].concat(t.ignores||[]).forEach(e=>{d.push(new RegExp(e,`i`))}));let f=t.maxAge!=null&&`public,max-age=${t.maxAge}`;f&&t.immutable?f+=`,immutable`:f&&t.maxAge===0&&(f+=`,must-revalidate`),t.dev||vZ(e,(e,n,r)=>{if(!/\.well-known[\\+\/]/.test(e)&&!t.dotfiles&&/(^\.|[\\+|\/+]\.)/.test(e))return;let i=bZ(e,r,l);f&&(i[`Cache-Control`]=f),s[`/`+e.normalize().replace(/\\+/g,`/`)]={abs:n,stats:r,headers:i}});let p=t.dev?gxe.bind(0,e+B,l):hxe.bind(0,s);return function(e,t,s){let f=[``],m=fxe(e).pathname,h=e.headers[`accept-encoding`]||``;if(a&&h.includes(`gzip`)&&f.unshift(...a),o&&/(br|brotli)/i.test(h)&&f.unshift(...o),f.push(...i),m.indexOf(`%`)!==-1)try{m=decodeURI(m)}catch{}let g=p(m,f)||u&&!mxe(m,d)&&p(c,f);if(!g)return s?s():n(e,t);if(l&&e.headers[`if-none-match`]===g.headers.ETag)return t.writeHead(304),t.end();(a||o)&&t.setHeader(`Vary`,`Accept-Encoding`),r(t,m,g.stats),vxe(e,t,g.abs,g.stats,g.headers)}}const SZ=F(`conflict-storage`);var CZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=L(eA(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!V(this.storePath)){this.conflicts=[];return}try{let e=H(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){SZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){SZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=I(this.storePath);V(e)||qu(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return ad(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return SZ.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-pDdbSsMj.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=z(this.projectDir),r=z(t,e);if(!rN(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);xL(r,t,{allowShareableOkArtifact:nP}),Ic(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`]),SZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await Ib(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){SZ.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}),SZ.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=z(this.projectDir),i=z(r,e.file);if(!rN(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(xL(i,r,{allowShareableOkArtifact:nP}),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-pDdbSsMj.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);xL(i,r,{allowShareableOkArtifact:nP}),Ic(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Ic(i,n,`utf-8`);break;case`delete`:V(i)&&Sc(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function bxe(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 xxe(e,t){let n=eA(e);try{qu(n,{recursive:!0}),ad(L(n,Ce),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=$ee(e);qu(I(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`};ad(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const wZ=new Map;let TZ=!1;function Sxe(e,t){try{let n=bxe(e,t);for(let e of wZ.keys())xxe(e,n)}catch{}}function Cxe(e){wZ.set(e,(wZ.get(e)??0)+1),TZ||(TZ=!0,process.on(`uncaughtExceptionMonitor`,Sxe));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=wZ.get(e)??0;n<=1?wZ.delete(e):wZ.set(e,n-1)}}}function EZ(e,t){let n=0,r=!1,i=new Set;t&&i.add(t);let a=e=>{for(let t of i)t(e)},o=(e,t)=>{e.url?.startsWith(`/collab`)&&(n++,a(n),t.once(`close`,()=>{n--,n<0&&(n=0),a(n)}))};return e.on(`upgrade`,o),{getCount:()=>n,subscribe:e=>(i.add(e),()=>i.delete(e)),detach:()=>{r||(r=!0,e.off(`upgrade`,o))}}}function DZ(e){let t=e.scheduler??Aa,n=e.warnBeforeMs??3e5,r=null,i=null,a=!1,o=!1;function s(){r!==null&&(t.clearTimeout(r),r=null),i!==null&&(t.clearTimeout(i),i=null)}function c(){s(),!(o||a)&&d.getCount()===0&&(n>0&&n<e.thresholdMs&&(i=t.setTimeout(()=>{i=null,d.getCount()===0&&!a&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),r=t.setTimeout(()=>{if(r=null,!(o||a)&&d.getCount()===0){a=!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 l=e=>{e===0?c():s()},u=e.counter===void 0,d=e.counter??EZ(e.httpServer),f=d.subscribe(l);return c(),{detach:()=>{o||(o=!0,f(),u&&d.detach(),s())}}}function OZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function kZ(e){if(!V(e))return{};let t;try{t=(0,uk.parse)(H(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(!OZ(t))return{};let n=t.telemetry;if(!OZ(n))return{};let r=n.localSink;return OZ(r)?r:{}}function AZ(e){return typeof e==`boolean`?e:void 0}function wxe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function jZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function MZ(e){if(OZ(e))return wxe(e.maxBytes)}function Txe(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=kZ(sc(`project`,e.projectDir)),n=kZ(sc(`project-local`,e.projectDir));if((AZ(n.enabled)??AZ(t.enabled)??!0)===!1)return null;let r=MZ(n.spans)??MZ(t.spans)??52428800,i=MZ(n.logs)??MZ(t.logs)??26214400,a=jZ(n.attributeDenylist)??jZ(t.attributeDenylist)??h;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:a},logs:{projectDir:e.projectDir,maxBytes:i}}}var NZ;(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})(NZ||={});var Exe;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Exe||={});const PZ=NZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),FZ=e=>{switch(typeof e){case`undefined`:return PZ.undefined;case`string`:return PZ.string;case`number`:return Number.isNaN(e)?PZ.nan:PZ.number;case`boolean`:return PZ.boolean;case`function`:return PZ.function;case`bigint`:return PZ.bigint;case`symbol`:return PZ.symbol;case`object`:return Array.isArray(e)?PZ.array:e===null?PZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?PZ.promise:typeof Map<`u`&&e instanceof Map?PZ.map:typeof Set<`u`&&e instanceof Set?PZ.set:typeof Date<`u`&&e instanceof Date?PZ.date:PZ.object;default:return PZ.unknown}},Z=NZ.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 IZ=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,NZ.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()}};IZ.create=e=>new IZ(e);const LZ=(e,t)=>{let n;switch(e.code){case Z.invalid_type:n=e.received===PZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case Z.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,NZ.jsonStringifyReplacer)}`;break;case Z.unrecognized_keys:n=`Unrecognized key(s) in object: ${NZ.joinValues(e.keys,`, `)}`;break;case Z.invalid_union:n=`Invalid input`;break;case Z.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${NZ.joinValues(e.options)}`;break;case Z.invalid_enum_value:n=`Invalid enum value. Expected ${NZ.joinValues(e.options)}, received '${e.received}'`;break;case Z.invalid_arguments:n=`Invalid function arguments`;break;case Z.invalid_return_type:n=`Invalid function return type`;break;case Z.invalid_date:n=`Invalid date`;break;case Z.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}"`:NZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case Z.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 Z.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 Z.custom:n=`Invalid input`;break;case Z.invalid_intersection_types:n=`Intersection results could not be merged`;break;case Z.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Z.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,NZ.assertNever(e)}return{message:n}};let Dxe=LZ;function RZ(){return Dxe}const zZ=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 BZ(e,t){let n=RZ(),r=zZ({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===LZ?void 0:LZ].filter(e=>!!e)});e.common.issues.push(r)}var VZ=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 HZ;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 HZ;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 HZ=Object.freeze({status:`aborted`}),UZ=e=>({status:`dirty`,value:e}),WZ=e=>({status:`valid`,value:e}),GZ=e=>e.status===`aborted`,KZ=e=>e.status===`dirty`,qZ=e=>e.status===`valid`,JZ=e=>typeof Promise<`u`&&e instanceof Promise;var YZ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(YZ||={});var XZ=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 ZZ=(e,t)=>{if(qZ(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 IZ(e.common.issues);return this._error=t,this._error}}};function QZ(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 $Z=class{get description(){return this._def.description}_getType(e){return FZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:FZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new VZ,ctx:{common:e.parent.common,data:e.data,parsedType:FZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(JZ(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:FZ(e)};return ZZ(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:FZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return qZ(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=>qZ(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:FZ(e)},r=this._parse({data:e,path:n.path,parent:n});return ZZ(n,await(JZ(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:Z.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 jQ({schema:this,typeName:Q.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 MQ.create(this,this._def)}nullable(){return NQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return hQ.create(this)}promise(){return AQ.create(this,this._def)}or(e){return vQ.create([this,e],this._def)}and(e){return xQ.create(this,e,this._def)}transform(e){return new jQ({...QZ(this._def),schema:this,typeName:Q.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new PQ({...QZ(this._def),innerType:this,defaultValue:t,typeName:Q.ZodDefault})}brand(){return new LQ({typeName:Q.ZodBranded,type:this,...QZ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new FQ({...QZ(this._def),innerType:this,catchValue:t,typeName:Q.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return RQ.create(this,e)}readonly(){return zQ.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Oxe=/^c[^\s-]{8,}$/i,kxe=/^[0-9a-z]+$/,Axe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jxe=/^[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,Mxe=/^[a-z0-9_-]{21}$/i,Nxe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pxe=/^[-+]?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)?)??$/,Fxe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let eQ;const Ixe=/^(?:(?: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])$/,Lxe=/^(?:(?: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])$/,Rxe=/^(([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]))$/,zxe=/^(([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])$/,Bxe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vxe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,tQ=`((\\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])))`,Hxe=RegExp(`^${tQ}$`);function nQ(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 Uxe(e){return RegExp(`^${nQ(e)}$`)}function Wxe(e){let t=`${tQ}T${nQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Gxe(e,t){return!!((t===`v4`||!t)&&Ixe.test(e)||(t===`v6`||!t)&&Rxe.test(e))}function Kxe(e,t){if(!Nxe.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 qxe(e,t){return!!((t===`v4`||!t)&&Lxe.test(e)||(t===`v6`||!t)&&zxe.test(e))}var rQ=class e extends $Z{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==PZ.string){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.string,received:t.parsedType}),HZ}let t=new VZ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.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),BZ(n,{code:Z.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?BZ(n,{code:Z.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&BZ(n,{code:Z.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Fxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`email`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)eQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),eQ.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`emoji`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)jxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`uuid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Mxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`nanoid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Oxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cuid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)kxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cuid2`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Axe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`ulid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),BZ(n,{validation:`url`,code:Z.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),BZ(n,{validation:`regex`,code:Z.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),BZ(n,{code:Z.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),BZ(n,{code:Z.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Wxe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Hxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Uxe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Pxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`duration`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Gxe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`ip`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Kxe(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`jwt`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?qxe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cidr`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Bxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`base64`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Vxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`base64url`,code:Z.invalid_string,message:r.message}),t.dirty()):NZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:Z.invalid_string,...YZ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...YZ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...YZ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...YZ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...YZ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...YZ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...YZ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...YZ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...YZ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...YZ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...YZ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...YZ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...YZ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...YZ.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,...YZ.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,...YZ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...YZ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...YZ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...YZ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...YZ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...YZ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...YZ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...YZ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...YZ.errToObj(t)})}nonempty(e){return this.min(1,YZ.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}};rQ.create=e=>new rQ({checks:[],typeName:Q.ZodString,coerce:e?.coerce??!1,...QZ(e)});function Jxe(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 iQ=class e extends $Z{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)!==PZ.number){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.number,received:t.parsedType}),HZ}let t,n=new VZ;for(let r of this._def.checks)r.kind===`int`?NZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.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),BZ(t,{code:Z.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),BZ(t,{code:Z.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Jxe(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.not_finite,message:r.message}),n.dirty()):NZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,YZ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,YZ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,YZ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,YZ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:YZ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:YZ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:YZ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:YZ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:YZ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:YZ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:YZ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:YZ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:YZ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:YZ.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`&&NZ.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)}};iQ.create=e=>new iQ({checks:[],typeName:Q.ZodNumber,coerce:e?.coerce||!1,...QZ(e)});var aQ=class e extends $Z{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)!==PZ.bigint)return this._getInvalidInput(e);let t,n=new VZ;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),BZ(t,{code:Z.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),BZ(t,{code:Z.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),BZ(t,{code:Z.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):NZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.bigint,received:t.parsedType}),HZ}gte(e,t){return this.setLimit(`min`,e,!0,YZ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,YZ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,YZ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,YZ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:YZ.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:YZ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:YZ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:YZ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:YZ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:YZ.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}};aQ.create=e=>new aQ({checks:[],typeName:Q.ZodBigInt,coerce:e?.coerce??!1,...QZ(e)});var oQ=class extends $Z{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==PZ.boolean){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.boolean,received:t.parsedType}),HZ}return WZ(e.data)}};oQ.create=e=>new oQ({typeName:Q.ZodBoolean,coerce:e?.coerce||!1,...QZ(e)});var sQ=class e extends $Z{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==PZ.date){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.date,received:t.parsedType}),HZ}if(Number.isNaN(e.data.getTime()))return BZ(this._getOrReturnCtx(e),{code:Z.invalid_date}),HZ;let t=new VZ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.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),BZ(n,{code:Z.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):NZ.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:YZ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:YZ.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)}};sQ.create=e=>new sQ({checks:[],coerce:e?.coerce||!1,typeName:Q.ZodDate,...QZ(e)});var cQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.symbol){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.symbol,received:t.parsedType}),HZ}return WZ(e.data)}};cQ.create=e=>new cQ({typeName:Q.ZodSymbol,...QZ(e)});var lQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.undefined){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.undefined,received:t.parsedType}),HZ}return WZ(e.data)}};lQ.create=e=>new lQ({typeName:Q.ZodUndefined,...QZ(e)});var uQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.null){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.null,received:t.parsedType}),HZ}return WZ(e.data)}};uQ.create=e=>new uQ({typeName:Q.ZodNull,...QZ(e)});var dQ=class extends $Z{constructor(){super(...arguments),this._any=!0}_parse(e){return WZ(e.data)}};dQ.create=e=>new dQ({typeName:Q.ZodAny,...QZ(e)});var fQ=class extends $Z{constructor(){super(...arguments),this._unknown=!0}_parse(e){return WZ(e.data)}};fQ.create=e=>new fQ({typeName:Q.ZodUnknown,...QZ(e)});var pQ=class extends $Z{_parse(e){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.never,received:t.parsedType}),HZ}};pQ.create=e=>new pQ({typeName:Q.ZodNever,...QZ(e)});var mQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.undefined){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.void,received:t.parsedType}),HZ}return WZ(e.data)}};mQ.create=e=>new mQ({typeName:Q.ZodVoid,...QZ(e)});var hQ=class e extends $Z{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==PZ.array)return BZ(t,{code:Z.invalid_type,expected:PZ.array,received:t.parsedType}),HZ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(BZ(t,{code:e?Z.too_big:Z.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&&(BZ(t,{code:Z.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&&(BZ(t,{code:Z.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 XZ(t,e,t.path,n)))).then(e=>VZ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new XZ(t,e,t.path,n)));return VZ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:YZ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:YZ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:YZ.toString(n)}})}nonempty(e){return this.min(1,e)}};hQ.create=(e,t)=>new hQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Q.ZodArray,...QZ(t)});function gQ(e){if(e instanceof _Q){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=MQ.create(gQ(r))}return new _Q({...e._def,shape:()=>t})}else if(e instanceof hQ)return new hQ({...e._def,type:gQ(e.element)});else if(e instanceof MQ)return MQ.create(gQ(e.unwrap()));else if(e instanceof NQ)return NQ.create(gQ(e.unwrap()));else if(e instanceof SQ)return SQ.create(e.items.map(e=>gQ(e)));else return e}var _Q=class e extends $Z{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=NZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==PZ.object){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.object,received:t.parsedType}),HZ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof pQ&&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 XZ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof pQ){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&&(BZ(n,{code:Z.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 XZ(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=>VZ.mergeObjectSync(t,e)):VZ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return YZ.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:YZ.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:Q.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 NZ.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 NZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return gQ(this)}partial(t){let n={};for(let e of NZ.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 NZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof MQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return DQ(NZ.objectKeys(this.shape))}};_Q.create=(e,t)=>new _Q({shape:()=>e,unknownKeys:`strip`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)}),_Q.strictCreate=(e,t)=>new _Q({shape:()=>e,unknownKeys:`strict`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)}),_Q.lazycreate=(e,t)=>new _Q({shape:e,unknownKeys:`strip`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)});var vQ=class extends $Z{_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 IZ(e.ctx.common.issues));return BZ(t,{code:Z.invalid_union,unionErrors:n}),HZ}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 IZ(e));return BZ(t,{code:Z.invalid_union,unionErrors:i}),HZ}}get options(){return this._def.options}};vQ.create=(e,t)=>new vQ({options:e,typeName:Q.ZodUnion,...QZ(t)});const yQ=e=>e instanceof TQ?yQ(e.schema):e instanceof jQ?yQ(e.innerType()):e instanceof EQ?[e.value]:e instanceof OQ?e.options:e instanceof kQ?NZ.objectValues(e.enum):e instanceof PQ?yQ(e._def.innerType):e instanceof lQ?[void 0]:e instanceof uQ?[null]:e instanceof MQ?[void 0,...yQ(e.unwrap())]:e instanceof NQ?[null,...yQ(e.unwrap())]:e instanceof LQ||e instanceof zQ?yQ(e.unwrap()):e instanceof FQ?yQ(e._def.innerType):[];var Yxe=class e extends $Z{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==PZ.object)return BZ(t,{code:Z.invalid_type,expected:PZ.object,received:t.parsedType}),HZ;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}):(BZ(t,{code:Z.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),HZ)}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=yQ(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:Q.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...QZ(r)})}};function bQ(e,t){let n=FZ(e),r=FZ(t);if(e===t)return{valid:!0,data:e};if(n===PZ.object&&r===PZ.object){let n=NZ.objectKeys(t),r=NZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=bQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===PZ.array&&r===PZ.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=bQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===PZ.date&&r===PZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var xQ=class extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(GZ(e)||GZ(r))return HZ;let i=bQ(e.value,r.value);return i.valid?((KZ(e)||KZ(r))&&t.dirty(),{status:t.value,value:i.data}):(BZ(n,{code:Z.invalid_intersection_types}),HZ)};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}))}};xQ.create=(e,t,n)=>new xQ({left:e,right:t,typeName:Q.ZodIntersection,...QZ(n)});var SQ=class e extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==PZ.array)return BZ(n,{code:Z.invalid_type,expected:PZ.array,received:n.parsedType}),HZ;if(n.data.length<this._def.items.length)return BZ(n,{code:Z.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),HZ;!this._def.rest&&n.data.length>this._def.items.length&&(BZ(n,{code:Z.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 XZ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>VZ.mergeArray(t,e)):VZ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};SQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new SQ({items:e,typeName:Q.ZodTuple,rest:null,...QZ(t)})};var Xxe=class e extends $Z{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!==PZ.object)return BZ(n,{code:Z.invalid_type,expected:PZ.object,received:n.parsedType}),HZ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new XZ(n,e,n.path,e)),value:a._parse(new XZ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?VZ.mergeObjectAsync(t,r):VZ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof $Z?new e({keyType:t,valueType:n,typeName:Q.ZodRecord,...QZ(r)}):new e({keyType:rQ.create(),valueType:t,typeName:Q.ZodRecord,...QZ(n)})}},CQ=class extends $Z{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!==PZ.map)return BZ(n,{code:Z.invalid_type,expected:PZ.map,received:n.parsedType}),HZ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new XZ(n,e,n.path,[a,`key`])),value:i._parse(new XZ(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 HZ;(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 HZ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};CQ.create=(e,t,n)=>new CQ({valueType:t,keyType:e,typeName:Q.ZodMap,...QZ(n)});var wQ=class e extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==PZ.set)return BZ(n,{code:Z.invalid_type,expected:PZ.set,received:n.parsedType}),HZ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(BZ(n,{code:Z.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&&(BZ(n,{code:Z.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 HZ;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 XZ(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:YZ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:YZ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};wQ.create=(e,t)=>new wQ({valueType:e,minSize:null,maxSize:null,typeName:Q.ZodSet,...QZ(t)});var Zxe=class e extends $Z{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==PZ.function)return BZ(t,{code:Z.invalid_type,expected:PZ.function,received:t.parsedType}),HZ;function n(e,n){return zZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,RZ(),LZ].filter(e=>!!e),issueData:{code:Z.invalid_arguments,argumentsError:n}})}function r(e,n){return zZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,RZ(),LZ].filter(e=>!!e),issueData:{code:Z.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof AQ){let e=this;return WZ(async function(...t){let o=new IZ([]),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 WZ(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new IZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new IZ([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:SQ.create(t).rest(fQ.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||SQ.create([]).rest(fQ.create()),returns:n||fQ.create(),typeName:Q.ZodFunction,...QZ(r)})}},TQ=class extends $Z{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})}};TQ.create=(e,t)=>new TQ({getter:e,typeName:Q.ZodLazy,...QZ(t)});var EQ=class extends $Z{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return BZ(t,{received:t.data,code:Z.invalid_literal,expected:this._def.value}),HZ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};EQ.create=(e,t)=>new EQ({value:e,typeName:Q.ZodLiteral,...QZ(t)});function DQ(e,t){return new OQ({values:e,typeName:Q.ZodEnum,...QZ(t)})}var OQ=class e extends $Z{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return BZ(t,{expected:NZ.joinValues(n),received:t.parsedType,code:Z.invalid_type}),HZ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return BZ(t,{received:t.data,code:Z.invalid_enum_value,options:n}),HZ}return WZ(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})}};OQ.create=DQ;var kQ=class extends $Z{_parse(e){let t=NZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==PZ.string&&n.parsedType!==PZ.number){let e=NZ.objectValues(t);return BZ(n,{expected:NZ.joinValues(e),received:n.parsedType,code:Z.invalid_type}),HZ}if(this._cache||=new Set(NZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=NZ.objectValues(t);return BZ(n,{received:n.data,code:Z.invalid_enum_value,options:e}),HZ}return WZ(e.data)}get enum(){return this._def.values}};kQ.create=(e,t)=>new kQ({values:e,typeName:Q.ZodNativeEnum,...QZ(t)});var AQ=class extends $Z{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==PZ.promise&&t.common.async===!1?(BZ(t,{code:Z.invalid_type,expected:PZ.promise,received:t.parsedType}),HZ):WZ((t.parsedType===PZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};AQ.create=(e,t)=>new AQ({type:e,typeName:Q.ZodPromise,...QZ(t)});var jQ=class extends $Z{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Q.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=>{BZ(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 HZ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?HZ:r.status===`dirty`||t.value===`dirty`?UZ(r.value):r});{if(t.value===`aborted`)return HZ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?HZ:r.status===`dirty`||t.value===`dirty`?UZ(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`?HZ:(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`?HZ:(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(!qZ(e))return HZ;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=>qZ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):HZ);NZ.assertNever(r)}};jQ.create=(e,t,n)=>new jQ({schema:e,typeName:Q.ZodEffects,effect:t,...QZ(n)}),jQ.createWithPreprocess=(e,t,n)=>new jQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Q.ZodEffects,...QZ(n)});var MQ=class extends $Z{_parse(e){return this._getType(e)===PZ.undefined?WZ(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};MQ.create=(e,t)=>new MQ({innerType:e,typeName:Q.ZodOptional,...QZ(t)});var NQ=class extends $Z{_parse(e){return this._getType(e)===PZ.null?WZ(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};NQ.create=(e,t)=>new NQ({innerType:e,typeName:Q.ZodNullable,...QZ(t)});var PQ=class extends $Z{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===PZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};PQ.create=(e,t)=>new PQ({innerType:e,typeName:Q.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...QZ(t)});var FQ=class extends $Z{_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 JZ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new IZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new IZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};FQ.create=(e,t)=>new FQ({innerType:e,typeName:Q.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...QZ(t)});var IQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.nan){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.nan,received:t.parsedType}),HZ}return{status:`valid`,value:e.data}}};IQ.create=e=>new IQ({typeName:Q.ZodNaN,...QZ(e)});var LQ=class extends $Z{_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}},RQ=class e extends $Z{_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`?HZ:e.status===`dirty`?(t.dirty(),UZ(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`?HZ: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:Q.ZodPipeline})}},zQ=class extends $Z{_parse(e){let t=this._def.innerType._parse(e),n=e=>(qZ(e)&&(e.value=Object.freeze(e.value)),e);return JZ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};zQ.create=(e,t)=>new zQ({innerType:e,typeName:Q.ZodReadonly,...QZ(t)}),_Q.lazycreate;var Q;(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`})(Q||={}),rQ.create,iQ.create,IQ.create,aQ.create,oQ.create,sQ.create,cQ.create,lQ.create,uQ.create,dQ.create,fQ.create,pQ.create,mQ.create,hQ.create;const Qxe=_Q.create;_Q.strictCreate,vQ.create,Yxe.create,xQ.create,SQ.create,Xxe.create,CQ.create,wQ.create,Zxe.create,TQ.create,EQ.create,OQ.create,kQ.create,AQ.create,jQ.create,MQ.create,NQ.create,jQ.createWithPreprocess,RQ.create;const $xe=le(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);r.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>fe(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>we(e,t,n),e.parseAsync=async(t,n)=>Ne(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>ke(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)=>se(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),eSe=le(`ZodMiniObject`,(e,t)=>{E.init(e,t),$xe.init(e,t),Te(e,`shape`,()=>t.shape)});function BQ(e,t){return new eSe({type:`object`,shape:e??{},...Ae(t)})}function VQ(e){return!!e._zod}function HQ(e){let t=Object.values(e);if(t.length===0)return BQ({});let n=t.every(VQ),r=t.every(e=>!VQ(e));if(n)return BQ(e);if(r)return Qxe(e);throw Error(`Mixed Zod versions detected in object shape.`)}function UQ(e,t){return VQ(e)?we(e,t):e.safeParse(t)}async function WQ(e,t){return VQ(e)?await ke(e,t):await e.safeParseAsync(t)}function GQ(e){if(!e)return;let t;if(t=VQ(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function KQ(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 HQ(e)}}if(VQ(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 qQ(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 tSe(e){return e.description}function nSe(e){if(VQ(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function JQ(e){if(VQ(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 YQ=`2025-11-25`,XQ=[YQ,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],ZQ=`io.modelcontextprotocol/related-task`,QQ=be(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),$Q=j([A(),O().int()]),e$=A();x({ttl:O().optional(),pollInterval:O().optional()});const rSe=P({ttl:O().optional()}),iSe=P({taskId:A()}),t$=x({progressToken:$Q.optional(),[ZQ]:iSe.optional()}),n$=P({_meta:t$.optional()}),r$=n$.extend({task:rSe.optional()}),aSe=e=>r$.safeParse(e).success,i$=P({method:A(),params:n$.loose().optional()}),a$=P({_meta:t$.optional()}),o$=P({method:A(),params:a$.loose().optional()}),s$=x({_meta:t$.optional()}),c$=j([A(),O().int()]),l$=P({jsonrpc:g(`2.0`),id:c$,...i$.shape}).strict(),u$=e=>l$.safeParse(e).success,d$=P({jsonrpc:g(`2.0`),...o$.shape}).strict(),oSe=e=>d$.safeParse(e).success,f$=P({jsonrpc:g(`2.0`),id:c$,result:s$}).strict(),p$=e=>f$.safeParse(e).success;var m$;(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`})(m$||={});const h$=P({jsonrpc:g(`2.0`),id:c$.optional(),error:P({code:O().int(),message:A(),data:f().optional()})}).strict(),g$=e=>h$.safeParse(e).success,_$=j([l$,d$,f$,h$]);j([f$,h$]);const v$=s$.strict(),sSe=a$.extend({requestId:c$.optional(),reason:A().optional()}),y$=o$.extend({method:g(`notifications/cancelled`),params:sSe}),b$=P({icons:N(P({src:A(),mimeType:A().optional(),sizes:N(A()).optional(),theme:d([`light`,`dark`]).optional()})).optional()}),x$=P({name:A(),title:A().optional()}),S$=x$.extend({...x$.shape,...b$.shape,version:A(),websiteUrl:A().optional(),description:A().optional()}),cSe=re(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,T(P({form:T(P({applyDefaults:a().optional()}),m(A(),f())).optional(),url:QQ.optional()}),m(A(),f()).optional())),lSe=x({list:QQ.optional(),cancel:QQ.optional(),requests:x({sampling:x({createMessage:QQ.optional()}).optional(),elicitation:x({create:QQ.optional()}).optional()}).optional()}),uSe=x({list:QQ.optional(),cancel:QQ.optional(),requests:x({tools:x({call:QQ.optional()}).optional()}).optional()}),dSe=P({experimental:m(A(),QQ).optional(),sampling:P({context:QQ.optional(),tools:QQ.optional()}).optional(),elicitation:cSe.optional(),roots:P({listChanged:a().optional()}).optional(),tasks:lSe.optional(),extensions:m(A(),QQ).optional()}),fSe=n$.extend({protocolVersion:A(),capabilities:dSe,clientInfo:S$}),C$=i$.extend({method:g(`initialize`),params:fSe}),w$=e=>C$.safeParse(e).success,pSe=P({experimental:m(A(),QQ).optional(),logging:QQ.optional(),completions:QQ.optional(),prompts:P({listChanged:a().optional()}).optional(),resources:P({subscribe:a().optional(),listChanged:a().optional()}).optional(),tools:P({listChanged:a().optional()}).optional(),tasks:uSe.optional(),extensions:m(A(),QQ).optional()}),mSe=s$.extend({protocolVersion:A(),capabilities:pSe,serverInfo:S$,instructions:A().optional()}),T$=o$.extend({method:g(`notifications/initialized`),params:a$.optional()}),hSe=e=>T$.safeParse(e).success,E$=i$.extend({method:g(`ping`),params:n$.optional()}),gSe=P({progress:O(),total:s(O()),message:s(A())}),_Se=P({...a$.shape,...gSe.shape,progressToken:$Q}),D$=o$.extend({method:g(`notifications/progress`),params:_Se}),vSe=n$.extend({cursor:e$.optional()}),O$=i$.extend({params:vSe.optional()}),k$=s$.extend({nextCursor:e$.optional()}),ySe=d([`working`,`input_required`,`completed`,`failed`,`cancelled`]),A$=P({taskId:A(),status:ySe,ttl:j([O(),u()]),createdAt:A(),lastUpdatedAt:A(),pollInterval:s(O()),statusMessage:s(A())}),j$=s$.extend({task:A$}),bSe=a$.merge(A$),M$=o$.extend({method:g(`notifications/tasks/status`),params:bSe}),N$=i$.extend({method:g(`tasks/get`),params:n$.extend({taskId:A()})}),P$=s$.merge(A$),F$=i$.extend({method:g(`tasks/result`),params:n$.extend({taskId:A()})});s$.loose();const I$=O$.extend({method:g(`tasks/list`)}),L$=k$.extend({tasks:N(A$)}),R$=i$.extend({method:g(`tasks/cancel`),params:n$.extend({taskId:A()})}),xSe=s$.merge(A$),z$=P({uri:A(),mimeType:s(A()),_meta:m(A(),f()).optional()}),B$=z$.extend({text:A()}),V$=A().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),H$=z$.extend({blob:V$}),U$=d([`user`,`assistant`]),W$=P({audience:N(U$).optional(),priority:O().min(0).max(1).optional(),lastModified:v({offset:!0}).optional()}),G$=P({...x$.shape,...b$.shape,uri:A(),description:s(A()),mimeType:s(A()),size:s(O()),annotations:W$.optional(),_meta:s(x({}))}),SSe=P({...x$.shape,...b$.shape,uriTemplate:A(),description:s(A()),mimeType:s(A()),annotations:W$.optional(),_meta:s(x({}))}),K$=O$.extend({method:g(`resources/list`)}),CSe=k$.extend({resources:N(G$)}),q$=O$.extend({method:g(`resources/templates/list`)}),wSe=k$.extend({resourceTemplates:N(SSe)}),J$=n$.extend({uri:A()}),TSe=J$,Y$=i$.extend({method:g(`resources/read`),params:TSe}),ESe=s$.extend({contents:N(j([B$,H$]))}),DSe=o$.extend({method:g(`notifications/resources/list_changed`),params:a$.optional()}),OSe=J$,kSe=i$.extend({method:g(`resources/subscribe`),params:OSe}),ASe=J$,jSe=i$.extend({method:g(`resources/unsubscribe`),params:ASe}),MSe=a$.extend({uri:A()}),NSe=o$.extend({method:g(`notifications/resources/updated`),params:MSe}),PSe=P({name:A(),description:s(A()),required:s(a())}),FSe=P({...x$.shape,...b$.shape,description:s(A()),arguments:s(N(PSe)),_meta:s(x({}))}),X$=O$.extend({method:g(`prompts/list`)}),ISe=k$.extend({prompts:N(FSe)}),LSe=n$.extend({name:A(),arguments:m(A(),A()).optional()}),Z$=i$.extend({method:g(`prompts/get`),params:LSe}),Q$=P({type:g(`text`),text:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),$$=P({type:g(`image`),data:V$,mimeType:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),e1=P({type:g(`audio`),data:V$,mimeType:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),RSe=P({type:g(`tool_use`),name:A(),id:A(),input:m(A(),f()),_meta:m(A(),f()).optional()}),zSe=P({type:g(`resource`),resource:j([B$,H$]),annotations:W$.optional(),_meta:m(A(),f()).optional()}),t1=j([Q$,$$,e1,G$.extend({type:g(`resource_link`)}),zSe]),BSe=P({role:U$,content:t1}),VSe=s$.extend({description:A().optional(),messages:N(BSe)}),HSe=o$.extend({method:g(`notifications/prompts/list_changed`),params:a$.optional()}),USe=P({title:A().optional(),readOnlyHint:a().optional(),destructiveHint:a().optional(),idempotentHint:a().optional(),openWorldHint:a().optional()}),WSe=P({taskSupport:d([`required`,`optional`,`forbidden`]).optional()}),n1=P({...x$.shape,...b$.shape,description:A().optional(),inputSchema:P({type:g(`object`),properties:m(A(),QQ).optional(),required:N(A()).optional()}).catchall(f()),outputSchema:P({type:g(`object`),properties:m(A(),QQ).optional(),required:N(A()).optional()}).catchall(f()).optional(),annotations:USe.optional(),execution:WSe.optional(),_meta:m(A(),f()).optional()}),r1=O$.extend({method:g(`tools/list`)}),GSe=k$.extend({tools:N(n1)}),i1=s$.extend({content:N(t1).default([]),structuredContent:m(A(),f()).optional(),isError:a().optional()});i1.or(s$.extend({toolResult:f()}));const KSe=r$.extend({name:A(),arguments:m(A(),f()).optional()}),a1=i$.extend({method:g(`tools/call`),params:KSe}),qSe=o$.extend({method:g(`notifications/tools/list_changed`),params:a$.optional()});P({autoRefresh:a().default(!0),debounceMs:O().int().nonnegative().default(300)});const o1=d([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),JSe=n$.extend({level:o1}),s1=i$.extend({method:g(`logging/setLevel`),params:JSe}),YSe=a$.extend({level:o1,logger:A().optional(),data:f()}),XSe=o$.extend({method:g(`notifications/message`),params:YSe}),ZSe=P({hints:N(P({name:A().optional()})).optional(),costPriority:O().min(0).max(1).optional(),speedPriority:O().min(0).max(1).optional(),intelligencePriority:O().min(0).max(1).optional()}),QSe=P({mode:d([`auto`,`required`,`none`]).optional()}),$Se=P({type:g(`tool_result`),toolUseId:A().describe(`The unique identifier for the corresponding tool call.`),content:N(t1).default([]),structuredContent:P({}).loose().optional(),isError:a().optional(),_meta:m(A(),f()).optional()}),eCe=S(`type`,[Q$,$$,e1]),c1=S(`type`,[Q$,$$,e1,RSe,$Se]),tCe=P({role:U$,content:j([c1,N(c1)]),_meta:m(A(),f()).optional()}),nCe=r$.extend({messages:N(tCe),modelPreferences:ZSe.optional(),systemPrompt:A().optional(),includeContext:d([`none`,`thisServer`,`allServers`]).optional(),temperature:O().optional(),maxTokens:O().int(),stopSequences:N(A()).optional(),metadata:QQ.optional(),tools:N(n1).optional(),toolChoice:QSe.optional()}),rCe=i$.extend({method:g(`sampling/createMessage`),params:nCe}),l1=s$.extend({model:A(),stopReason:s(d([`endTurn`,`stopSequence`,`maxTokens`]).or(A())),role:U$,content:eCe}),u1=s$.extend({model:A(),stopReason:s(d([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(A())),role:U$,content:j([c1,N(c1)])}),iCe=P({type:g(`boolean`),title:A().optional(),description:A().optional(),default:a().optional()}),aCe=P({type:g(`string`),title:A().optional(),description:A().optional(),minLength:O().optional(),maxLength:O().optional(),format:d([`email`,`uri`,`date`,`date-time`]).optional(),default:A().optional()}),oCe=P({type:d([`number`,`integer`]),title:A().optional(),description:A().optional(),minimum:O().optional(),maximum:O().optional(),default:O().optional()}),sCe=P({type:g(`string`),title:A().optional(),description:A().optional(),enum:N(A()),default:A().optional()}),cCe=P({type:g(`string`),title:A().optional(),description:A().optional(),oneOf:N(P({const:A(),title:A()})),default:A().optional()}),lCe=j([j([P({type:g(`string`),title:A().optional(),description:A().optional(),enum:N(A()),enumNames:N(A()).optional(),default:A().optional()}),j([sCe,cCe]),j([P({type:g(`array`),title:A().optional(),description:A().optional(),minItems:O().optional(),maxItems:O().optional(),items:P({type:g(`string`),enum:N(A())}),default:N(A()).optional()}),P({type:g(`array`),title:A().optional(),description:A().optional(),minItems:O().optional(),maxItems:O().optional(),items:P({anyOf:N(P({const:A(),title:A()}))}),default:N(A()).optional()})])]),iCe,aCe,oCe]),uCe=j([r$.extend({mode:g(`form`).optional(),message:A(),requestedSchema:P({type:g(`object`),properties:m(A(),lCe),required:N(A()).optional()})}),r$.extend({mode:g(`url`),message:A(),elicitationId:A(),url:A().url()})]),dCe=i$.extend({method:g(`elicitation/create`),params:uCe}),fCe=a$.extend({elicitationId:A()}),pCe=o$.extend({method:g(`notifications/elicitation/complete`),params:fCe}),d1=s$.extend({action:d([`accept`,`decline`,`cancel`]),content:re(e=>e===null?void 0:e,m(A(),j([A(),O(),a(),N(A())])).optional())}),mCe=P({type:g(`ref/resource`),uri:A()}),hCe=P({type:g(`ref/prompt`),name:A()}),gCe=n$.extend({ref:j([hCe,mCe]),argument:P({name:A(),value:A()}),context:P({arguments:m(A(),A()).optional()}).optional()}),f1=i$.extend({method:g(`completion/complete`),params:gCe});function _Ce(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function vCe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const yCe=s$.extend({completion:x({values:N(A()).max(100),total:s(O().int()),hasMore:s(a())})}),bCe=P({uri:A().startsWith(`file://`),name:A().optional(),_meta:m(A(),f()).optional()}),xCe=i$.extend({method:g(`roots/list`),params:n$.optional()}),p1=s$.extend({roots:N(bCe)}),SCe=o$.extend({method:g(`notifications/roots/list_changed`),params:a$.optional()});j([E$,C$,f1,s1,Z$,X$,K$,q$,Y$,kSe,jSe,a1,r1,N$,F$,I$,R$]),j([y$,D$,T$,SCe,M$]),j([v$,l1,u1,d1,p1,P$,L$,j$]),j([E$,rCe,dCe,xCe,N$,F$,I$,R$]),j([y$,D$,XSe,NSe,DSe,qSe,HSe,M$,pCe]),j([v$,mSe,yCe,VSe,ISe,CSe,wSe,ESe,i1,GSe,P$,L$,j$]);var m1=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===m$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new CCe(e.elicitations,n)}return new e(t,n,r)}},CCe=class extends m1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(m$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function h1(e){return e===`completed`||e===`failed`||e===`cancelled`}const wCe=Symbol(`Let zodToJsonSchema decide on which parser to use`),g1={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`},TCe=e=>typeof e==`string`?{...g1,name:e}:{...g1,...e},ECe=e=>{let t=TCe(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 _1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function v1(e,t,n,r,i){e[t]=n,_1(e,t,r,i)}const y1=(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 b1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?y1(t,e.currentPath):t.join(`/`)}}function DCe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Q.ZodAny&&(n.items=N1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&v1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&v1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(v1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),v1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function OCe(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?v1(n,`minimum`,r.value,r.message,t):v1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),v1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?v1(n,`maximum`,r.value,r.message,t):v1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),v1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:v1(n,`multipleOf`,r.value,r.message,t);break}return n}function kCe(){return{type:`boolean`}}function x1(e,t){return N1(e.type._def,t)}const ACe=(e,t)=>N1(e.innerType._def,t);function S1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>S1(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 jCe(e,t)}}const jCe=(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`:v1(n,`minimum`,r.value,r.message,t);break;case`max`:v1(n,`maximum`,r.value,r.message,t);break}return n};function MCe(e,t){return{...N1(e.innerType._def,t),default:e.defaultValue()}}function NCe(e,t){return t.effectStrategy===`input`?N1(e.schema._def,t):b1(t)}function PCe(e){return{type:`string`,enum:Array.from(e.values)}}const FCe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function ICe(e,t){let n=[N1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),N1(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(FCe(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 LCe(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 C1;const w1={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:()=>(C1===void 0&&(C1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),C1),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 T1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:v1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:v1(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`:D1(n,`email`,r.message,t);break;case`format:idn-email`:D1(n,`idn-email`,r.message,t);break;case`pattern:zod`:O1(n,w1.email,r.message,t);break}break;case`url`:D1(n,`uri`,r.message,t);break;case`uuid`:D1(n,`uuid`,r.message,t);break;case`regex`:O1(n,r.regex,r.message,t);break;case`cuid`:O1(n,w1.cuid,r.message,t);break;case`cuid2`:O1(n,w1.cuid2,r.message,t);break;case`startsWith`:O1(n,RegExp(`^${E1(r.value,t)}`),r.message,t);break;case`endsWith`:O1(n,RegExp(`${E1(r.value,t)}$`),r.message,t);break;case`datetime`:D1(n,`date-time`,r.message,t);break;case`date`:D1(n,`date`,r.message,t);break;case`time`:D1(n,`time`,r.message,t);break;case`duration`:D1(n,`duration`,r.message,t);break;case`length`:v1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),v1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:O1(n,RegExp(E1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&D1(n,`ipv4`,r.message,t),r.version!==`v4`&&D1(n,`ipv6`,r.message,t);break;case`base64url`:O1(n,w1.base64url,r.message,t);break;case`jwt`:O1(n,w1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&O1(n,w1.ipv4Cidr,r.message,t),r.version!==`v4`&&O1(n,w1.ipv6Cidr,r.message,t);break;case`emoji`:O1(n,w1.emoji(),r.message,t);break;case`ulid`:O1(n,w1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:D1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:v1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:O1(n,w1.base64,r.message,t);break}break;case`nanoid`:O1(n,w1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function E1(e,t){return t.patternStrategy===`escape`?zCe(e):e}const RCe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function zCe(e){let t=``;for(let n=0;n<e.length;n++)RCe.has(e[n])||(t+=`\\`),t+=e[n];return t}function D1(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}}})):v1(e,`format`,t,n,r)}function O1(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:k1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):v1(e,`pattern`,k1(t,r),n,r)}function k1(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
1189
+ `).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 Wn(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let is=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function as(e){try{let t=po(e.scope);if(!t)return;let n=HI(t);if(n.length===0)return;let r=JI(z(e.skillsRoot,e.name),e.name,t,n,`copy`,UI(e.scope));if(r.length===0)return;await FN(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){X.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function os(e,t){if(t.ok){J(e,200,Cr,t.body,{handler:`skill-import`});return}K(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 ss=Nbe({contentDir:c,skillsHome:Ia,...M===void 0?{}:{projectDir:M},resolveSkillDirForRead:za,parseFrontmatterDoc:Sa,attributeOkArtifactWrite:Mn,commitOkArtifactWrite:Wn,shadowHeadSha:rs,artifactWriterId:is,effectiveInstallMode:qa,signalFiles:()=>je?.(`files`)}),cs=Rbe({contentDir:c,skillsHome:Ia,...M===void 0?{}:{projectDir:M},legacyStoreRoot:xo,effectiveSkillRoot:Do,parseFrontmatterDoc:Sa,attributeOkArtifactWrite:Mn,commitOkArtifactWrite:Wn,shadowHeadSha:rs,artifactWriterId:is,skillArtifactKey:e=>jn(`skill`,``,e),captureAndCloseDocuments:Ht,projectImportedSkillCopy:as,signalFiles:()=>je?.(`files`)});function ls(e,t){if(t.ok){J(e,200,nr,t.body,{handler:`skill-reimport`});return}K(e,t.status,t.urn,t.title,{handler:`skill-reimport`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}function us(e,t,n){let r=e===`project`?c:Ia,i=(e===`project`?_L(c):vL(Ia)).find(e=>e.name===t);return i?z(r,i.dir):z(n,t)}function ds(e,t,n,r){let i=r.skills[t];if(i)return i;let a=us(e,t,n);return xO(t,AO(a)?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Vbe(a)})??Qa(e===`global`?Ia:c,t)??io(t,uf(M??c),a)}let fs=q(Xee,async(e,t,n)=>{let r=()=>{};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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 FO(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??uO(d);if(!p){K(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(kK(t,p,`skill-import`))return;let m=await fO(p);r=m.cleanup,s=m.ref;let h=jO(m.dir);if(h.length===0){K(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=>OO(e.dir)?.name===f)??h.find(e=>e.name===Ws[f]);if(!e){K(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){K(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??es(d)}catch(e){if(e instanceof YD){K(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){K(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await ss.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Fs(u))&&MI({source:u,skills:[d.body.name]},dI()),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),je?.(`files`),os(t,d)}catch(e){K(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=q(zo,async(e,t,n)=>{let r=()=>{};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(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 FO(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??uO(d);if(!f){K(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(kK(t,f,`skills-import-bulk`))return;if(l=e?.publisher??es(d),f.kind===`well-known`)a=f,o=await aO(f.origin);else{let e=await fO(f);r=e.cleanup,c=e.ref,s=jO(e.dir)}}catch(e){if(e instanceof YD){K(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){K(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 fO({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof YD?`not-found`:`failed`,warnings:[],...e instanceof YD?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>AO(e.dir)?.name===t)??s.find(e=>e.name===Ws[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await ss.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){F(`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){F(`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||Fs(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&MI({source:u,skills:e},dI())}Ln(),he?.refreshInPlaceSkillDirs(),Bn(),je?.(`files`),J(t,200,hn,{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){K(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`}),ms=8*1024*1024,hs=32*1024*1024;function _s(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=z(e,n);return r!==e&&!r.startsWith(e+B)?null:r}function vs(e){return new Promise((t,n)=>{let r;try{r=TJ(e,{files:200,fields:10,fieldSize:2*1024,fileSize:ms})}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>hs){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 ys(e,t){return new Promise((n,r)=>{(0,Lue.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=_s(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Dc(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>ms){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>hs){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Dc(I(n),{recursive:!0}),Ic(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 bs(e,t){let n=Ju(L(ud(),`ok-skill-upload-`)),r=()=>{try{jc(n,{recursive:!0,force:!0})}catch{}};try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){K(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=Pa(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=Ek({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},ce);if(o.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await vs(e)}catch(e){K(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){K(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 ys(c.data,n)}catch(e){K(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=_s(n,e.relPath);if(!r){K(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Dc(I(r),{recursive:!0}),Ic(r,e.data)}let u=jO(n);if(u.length===0){K(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){K(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];os(t,await ss.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let xs=q(mt,async(e,t,n)=>{try{let e=Ra(n.scope);if(!Na(n.name,t,`skill-install`))return;if(n.scope===`project`&&!M){K(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=po(n.scope),i=z(e,n.name),a=n.scope===`project`?c:Ia,o=(n.scope===`project`?_L(c):vL(Ia)).find(e=>e.name===n.name),s=gk(n.name)?oo(n.name,n.scope):null,l=o?z(a,o.dir):V(i)||s===null?i:I(s);if(!V(l)){K(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 dt(n.scope===`project`?`${R(a,l).split(B).join(`/`)}/SKILL`:zs(n.scope,n.name));let u=VI(l,n.name,{allowReservedName:gk(n.name)});if(!u.ok){K(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" cannot be installed: ${u.errors.join(` `)}`,{handler:`skill-install`,detail:`INVALID_SKILL_SOURCE`});return}if(n.fork!==void 0){if(!o){K(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=La.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:K(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:K(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:K(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`:K(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:K(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)}`)}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o.hosts.filter(fa),scripts:!1,warnings:e.warnings,warningCodes:e.warnings.length>0?[`skill-fork-name-unpatched`]:[]},{handler:`skill-install`});return}let d=n.setSource??n.source,f=n.linkMode??(n.mode===void 0?void 0:n.mode===`link`),p=n.targets,m=[],h=[];if(n.add!==void 0||n.remove!==void 0){if(!o){K(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 La.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`?K(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`}):K(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}p=e.targets.filter(fa),m.push(...e.rootAdds),h.push(...e.rootRemoves)}if(d&&!o){let e=await La.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:l,newSource:d});if(!e.ok){K(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}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:e.hosts,scripts:u.hasScripts,warnings:[],warningCodes:[],sourceMovedTo:e.sourceMovedTo},{handler:`skill-install`});return}if(n.place){let e=n.scope===`project`?M:Ia;if(!e){K(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 ar.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:l,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?K(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):K(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||je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[],placedAt:r.placedAt},{handler:`skill-install`});return}if(n.unplace){let e=n.scope===`project`?M:Ia;if(!e){K(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 ar.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:l});if(!r.ok)switch(r.kind){case`not-recorded`:K(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:K(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:K(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`:K(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)}`)}je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,jr,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){K(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`?M:Ia,s=await ar.convert({ledgerBase:a??r,scope:n.scope,name:n.name,target:e,mode:i,skillDir:l,canonicalHash:o.contentHash});if(!s.ok)switch(s.kind){case`invalid-location`:K(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:K(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`:K(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`:K(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(s.kind)}`)}je?.(`files`),J(t,200,jr,{name:n.name,hosts:[...o.hosts],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let g=n.scope===`global`?p===void 0?FI(Ia).map(e=>e.editorId):eee.filter(e=>p?.some(t=>t===e)):p===void 0?HI(r):ti.filter(e=>p?.some(t=>t===e)),_=[],v=[];if(g.length===0&&p===void 0&&(_.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`."),v.push(`no-targets`)),u.hasScripts&&(_.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."),v.push(`scripts-present`)),u.warnings.length>0&&(_.push(u.warnings[0]),v.push(`no-description`)),o){let e=o.dir.split(`/`).slice(0,-1).join(`/`),i=(p===void 0?n.scope===`global`&&V(L(Ia,`.agents`)):p.includes(`agents`))?[...g,`agents`]:[...g],a=n.scope===`project`?M:Ia,s=f===void 0?qa(n.scope,n.name,o):f?`link`:`copy`;if(d){let e=await La.promoteInPlaceSource({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:l,inPlaceEntry:o,newSource:d});if(!e.ok){e.kind===`invalid-target`?K(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}):K(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}je?.(`files`),J(t,200,jr,{name:n.name,hosts:e.hosts,scripts:u.hasScripts,warnings:[],warningCodes:[],...e.sourceMovedTo===void 0?{}:{sourceMovedTo:e.sourceMovedTo}},{handler:`skill-install`});return}let c=await La.fanOutInPlace({scope:n.scope,name:n.name,base:r,...a?{prefBase:a}:{},skillDir:l,inPlaceEntry:o,canonicalRootRel:e,inPlaceTargets:i,setExact:p!==void 0,installMode:s,...f===void 0?{}:{linkModeReq:f},rootAdds:m,rootRemoves:h});if(!c.ok){K(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:c.reason});return}_.push(...c.warnings),v.push(...c.warningCodes),je?.(`files`),J(t,200,jr,{name:n.name,hosts:c.hosts,scripts:u.hasScripts,warnings:_,warningCodes:v,...c.sourceMovedTo===void 0?{}:{sourceMovedTo:c.sourceMovedTo}},{handler:`skill-install`});return}let y=zI(NN(r).skills[n.name]?.hosts??[]).filter(e=>!g.includes(e));y.length>0&&nL(n.name,r,y,UI(n.scope));let b=L(r,...pO),x=V(b)?H(b,`utf-8`):null,S=x===null?null:_O(x);x!==null&&S===null&&X.warn({skill:n.name},`skills-lock.json failed to parse — projecting as symlink (import origin unknown)`);let C=S?.skills[n.name]!==void 0,w=f===void 0?C?`copy`:`symlink`:f?`symlink`:`copy`,T=JI(l,n.name,r,g,w,UI(n.scope));T.length===0?await IN(r,n.name):await FN(r,n.name,{hosts:T,scope:n.scope,scripts:u.hasScripts,installedAt:new Date().toISOString(),projection:w}),je?.(`files`),J(t,200,jr,{name:n.name,hosts:T,scripts:u.hasScripts,warnings:_,warningCodes:v},{handler:`skill-install`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),Ss=q(qt,async(e,t,n)=>{try{if(!Na(n.name,t,`skill-uninstall`))return;let e=po(n.scope);if(!e){K(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 ho(e,n.name,n.scope);je?.(`files`),J(t,200,tee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),Cs=q(zt,async(e,t,n)=>{try{let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!Na(n.name,t,`skill-restore`)||co(n.name,t,`skill-restore`))return;if(n.scope===`global`){K(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=w?.current;if(!r){K(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 hX({shadow:r,contentDir:c,contentRoot:te??`.`,name:n.name,version:n.version,skillDirRel:Ja(n.name)});if(!i.ok){Ka(t,i,`skill-restore`);return}let a=[],o=VI(z(c,Ja(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),Mn(e,jn(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await Wn(`skill-restore`),je?.(`files`),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,cn,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),ws=q(aee,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!Na(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?Ia:c,{root:a,dirRel:o,realDir:s}=Do(n.scope,n.name);if(s===null||!V(z(i,o,`SKILL.md`))){K(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let l=L(n.scope===`global`?Ia:M,...pO),u=ds(n.scope,n.name,a,ts(l));if(!u){K(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 HK(l,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??u,autoUpdate:n.setAutoUpdate}}})),Ln(),he?.refreshInPlaceSkillDirs(),Bn(),J(t,200,nr,{name:n.name,updated:!1,source:u.source,warnings:[]},{handler:`skill-reimport`});return}let d,f=null;try{let e=u.skill??n.name,i=Ws[e],a=await FO(u.source,e).catch(async e=>{if(i===void 0)throw e;return FO(u.source,i)}),o=a?.source??rk(u.source,u.pluginProvider),s=a?.skill??u.skill,c=a?.spec??uO(o);if(!c){K(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:u.source});return}if(kK(t,c,`skill-reimport`))return;let l=await fO(c);r=l.cleanup,d=l.ref;let p=jO(l.dir),m=fX(p,{...s===void 0?{}:{recordedSkill:s},localName:n.name,frontmatterNameOf:e=>AO(e)?.name});if(!m){K(t,404,`urn:ok:error:not-found`,`Could not locate this skill in its source anymore.`,{handler:`skill-reimport`,detail:p.map(e=>e.name).join(`, `)});return}f=m.dir}catch(e){if(e instanceof YD){K(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!f){K(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let p=await cs.runSkillReimport({acquiredDir:f,name:n.name,scope:n.scope,entry:u,lockPath:l,ref:d,actor:e,...n.dryRun===void 0?{}:{dryRun:n.dryRun}});Ln(),he?.refreshInPlaceSkillDirs(),Bn(),ls(t,p)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),Ts=q(hee,async(e,t,n)=>{try{if(n.scope===`project`&&!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-reimport-bulk`,detail:`NO_PROJECT_ROOT`});return}let r=Ek(n,ce);if(r.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-reimport-bulk`});return}let i=L(n.scope===`global`?Ia:M,...pO),a=ts(i),o=[],{bySource:s,unrecorded:c}=Lbe([...new Set(n.names)].filter(e=>Ma(e)?!0:(o.push({requested:e,status:`failed`,warnings:[],error:`INVALID_NAME`}),!1)),e=>ds(n.scope,e,Do(n.scope,e).root,a));for(let e of c)o.push({requested:e,status:`not-found`,warnings:[]});for(let t of s){let s=()=>{};try{let c,l=[];try{let e=t.names[0],n=await FO(t.source,e).catch(async n=>{let r=Ws[e];if(r===void 0)throw n;return FO(t.source,r)}),r=n?.source??rk(t.source,a.skills[t.names[0]]?.pluginProvider),i=n?.spec??uO(r);if(!i||OK(i)){for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:`INVALID_SOURCE`});continue}let u=await fO(i);s=u.cleanup,c=u.ref,l=jO(u.dir)}catch(n){F(`skills-reimport-bulk`).warn({source:t.source,err:n,requestId:sS(e)},`bulk update: one source could not be fetched (rest continue)`);for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:n instanceof Error?n.message:String(n)});continue}for(let s of t.names){let t=ds(n.scope,s,Do(n.scope,s).root,a);if(!t){o.push({requested:s,status:`not-found`,warnings:[]});continue}let u=fX(l,{...t.skill===void 0?{}:{recordedSkill:t.skill},localName:s,frontmatterNameOf:e=>AO(e)?.name});if(!u){o.push({requested:s,status:`not-found`,source:t.source,warnings:[]});continue}try{let a=await cs.runSkillReimport({acquiredDir:u.dir,name:s,scope:n.scope,entry:t,lockPath:i,ref:c,actor:r});if(!a.ok){F(`skills-reimport-bulk`).warn({skill:s,err:a.cause,detail:a.detail,requestId:sS(e)},`bulk update: one skill failed (rest continue)`),o.push({requested:s,status:`failed`,source:t.source,warnings:[],error:a.detail??a.title});continue}o.push({requested:s,status:a.body.updated?`updated`:`up-to-date`,source:a.body.source,warnings:a.body.warnings})}catch(n){F(`skills-reimport-bulk`).warn({skill:s,err:n,requestId:sS(e)},`bulk update: one skill threw (rest continue)`),o.push({requested:s,status:`failed`,source:t.source,warnings:[],error:n instanceof Error?n.message:String(n)})}}}finally{s()}}J(t,200,mi,{results:o,updated:o.filter(e=>e.status===`updated`).length,upToDate:o.filter(e=>e.status===`up-to-date`).length,failed:o.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-reimport-bulk`});try{Ln(),he?.refreshInPlaceSkillDirs(),Ln(),await he?.rebuildIgnorePatterns()}catch(e){F(`skills-reimport-bulk`).warn({err:e},`bulk update: ignore-pattern rebuild failed after a reported success`)}}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to update skills.`,{handler:`skills-reimport-bulk`,cause:e})}},{handler:`skills-reimport-bulk`,method:`POST`}),Es=q(iee,async(e,t,n)=>{try{if(!M){K(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=Ek(n,ce);if(e.kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!Na(n.name,t,`skill-revert`)||co(n.name,t,`skill-revert`))return;if(n.scope===`global`){K(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=L(M,...pO),i=ts(r).skills[n.name];if(!i?.baselineRef){K(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=w?.current;if(!a){K(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 hX({shadow:a,contentDir:c,contentRoot:te??`.`,name:n.name,version:i.baselineRef,skillDirRel:Ja(n.name)});if(!o.ok){Ka(t,o,`skill-revert`);return}Mn(e,jn(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await Wn(`skill-revert`);let s=z(c,Ja(n.name),`..`),l=ns(s,n.name);await HK(r,e=>vO(e,n.name,{...e.skills[n.name]??i,...l===void 0?{}:{localHash:l}})),s===Ra(`project`)&&await as({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),je?.(`files`),J(t,200,gr,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`}),Ds=jbe({contentDir:c,projectDir:M,getAllFilesIndex:m,getFileIndexGeneration:g,getSearchMaxEntries:Ybe,semanticSearch:N,getSemanticSimilarityFloor:Se,ready:ve,getProjectSkillsRoot:()=>Ra(`project`),parseFrontmatterDoc:Sa});Ds.prewarm();async function Os(e,t){if(r(e,t,{handler:`handoff`}))try{await Xpe(e,t,{contentDir:c,platform:process.platform,isSchemeRegistered:P.probeWithCache})}catch(n){t.headersSent||(X.error({err:n,requestId:sS(e)},`[handoff] route wrapper failed`),K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function Ns(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await hN(e,t,{contentDir:c,platform:process.platform})}catch(n){t.headersSent||(X.error({err:n,requestId:sS(e)},`[spawn-cursor] route wrapper failed`),K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let Is=q(nn,async(e,t,n)=>{try{if(!M){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!Ehe(e,n.kind)){zF(`invalid-path`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`invalid-path`},{handler:LF});return}let r=Ahe(M);if(r===null){if(YF(M).kind===`no-remote`){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}zF(`detached-head`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`detached-head`},{handler:LF});return}let i=YF(M);if(i.kind===`no-remote`){zF(`no-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`no-remote`},{handler:LF});return}if(i.kind===`non-github`){zF(`non-github-remote`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`non-github-remote`},{handler:LF});return}if(!zhe(M,r)){zF(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),J(t,200,zr,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:LF});return}let a=QX(M,c);if(a===null)throw Error(`content dir is not contained within the project dir`);let o=a===``?e:e===``?a:`${a}/${e}`,s;s=n.kind===`doc`?Dhe(i.host,i.owner,i.repo,r,o):RF(i.host,i.owner,i.repo,r,o);let l;try{let e=a===``?0:di(RF(i.host,i.owner,i.repo,r,a)).targetSegments.length;l=`https://openknowledge.ai/d/${pee(s,e)}`}catch(e){if(!(e instanceof vee))throw e;zF(`unsupported-share-url`,{kind:n.kind}),J(t,200,zr,{ok:!1,error:`unsupported-share-url`},{handler:LF});return}let u=await Ohe(M,r,o,n.kind);zF(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),J(t,200,zr,{ok:!0,shareUrl:l,sharedUrl:s,branch:r,freshness:u},{handler:LF})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:LF,cause:e})}},{handler:LF,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:LF})}),Rs=q(ei,async(e,t)=>{try{if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:Qz});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(!ia(r)){K(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:Qz});return}if(!Xz(i,a)){K(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:Qz});return}J(t,200,_r,await Zz(M,r,i,a),{handler:Qz})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Qz,cause:e})}},{handler:Qz,method:`GET`,skipBodyParse:!0});function Vs(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 Hs=q(bee,async(e,t,n)=>{try{if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:cI});return}if(!Xz(n.path,n.kind)){K(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:cI});return}let e=await qhe(M,n.branch,n.path,n.kind,{credentialConfig:qc(ae,{resetAmbient:ZF(M)})});J(t,200,gee,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:Vs(n.path,e.renamedTo,n.contentRootDepth),{handler:cI})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:cI,cause:e})}},{handler:cI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:cI})}),Gs=q(Xs,async(e,t,n)=>{if(Ek(n,ce).kind===`invalid-summary`){K(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:rB});return}if(!M){K(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:rB});return}try{J(t,200,ot,await Gc(()=>aB(M,n.branch,{fastForward:n.fastForward===!0,credentialConfig:qc(ae,{resetAmbient:ZF(M)})})),{handler:rB})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:rB,cause:e})}},{handler:rB,method:`POST`});async function Ks(e){let[t,...n]=ae,r=[...n,...e];return await new Promise((e,n)=>{let i=Ou(t,r,Cw({...Fr,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},tI),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 ${tI}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=sI(Buffer.concat(c).toString(`utf-8`)).slice(0,500);X.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 qs=q(ei,async(e,t)=>{if(!Me.tryAcquire(`/api/share/publish/owners`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:QF,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Ks([`share`,`owners`,`--json`]),n=Bhe(iI(e));oI(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),J(t,200,nee,n,{handler:QF})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:QF,cause:e})}finally{Me.release(`/api/share/publish/owners`)}},{handler:QF,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:QF})}),Js=q(ei,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!rI(r)||!nI(i)){K(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:$F});return}if(!Me.tryAcquire(`/api/share/publish/name-check`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:$F,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Ks([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=Vhe(iI(e));oI(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),J(t,200,Jt,n,{handler:$F})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:$F,cause:e})}finally{Me.release(`/api/share/publish/name-check`)}},{handler:$F,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:$F})}),Qs=q(Bo,async(e,t,n)=>{if(!M){oI(`publish-create`,`no-project`),J(t,200,gn,{ok:!1,error:`no-project`},{handler:eI});return}if(!rI(n.owner)||!nI(n.name)){K(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:eI});return}if(!Me.tryAcquire(`/api/share/publish`)){K(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:eI,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,M,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await Ks(e),i=Whe(iI(r));oI(`publish-create`,i.ok?`ok`:i.error),i.ok&&j?.()?.refreshRemote().catch(()=>{}),J(t,200,gn,i,{handler:eI})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eI,cause:e})}finally{Me.release(`/api/share/publish`)}},{handler:eI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:eI})}),$s=q(Bee,async(e,t,n)=>{try{let e=F(`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{}J(t,200,wee,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){K(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`})}),ec=`local-op-embeddings-set-key`,tc=`local-op-embeddings-clear-key`,nc=`/api/local-op/embeddings`;function rc(){let e=we?.();return{projectDir:M??c,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let ic=q(xt,async(e,t,n)=>{if(!Me.tryAcquire(nc)){K(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:ec,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=rc();await new fM(Ce).setForProject(e,r,n.key),N?.reloadCredential(),J(t,200,kt,{keyPresent:!0},{handler:ec,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:ec,cause:e})}finally{Me.release(nc)}},{handler:ec,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:ec})}),ac=q(ei,async(e,t)=>{if(!Me.tryAcquire(nc)){K(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:n}=rc();await new fM(Ce).clearForProject(e,n),N?.reloadCredential(),J(t,200,kt,{keyPresent:!1},{handler:tc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:tc,cause:e})}finally{Me.release(nc)}},{handler:tc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:tc})}),oc=`local-op-embeddings-test`,sc=`/api/local-op/embeddings/test`,cc=q(ei,async(e,t)=>{if(!Me.tryAcquire(sc)){K(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:oc,extraHeaders:{"Retry-After":`5`}});return}try{let e=we?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await aM(new fM(Ce),M??c,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await qfe({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};J(t,200,oee,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:oc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:oc,cause:e})}finally{Me.release(sc)}},{handler:oc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:oc})}),uc=0;function dc(){uc+=1,je?.(`lint-config`)}let fc=()=>`${uc} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function pc(e,t){let n=Te?.()??Jo;try{let r=await wa(e,rF(c,n,{docName:t,projectDir:M??c,onProblem:e=>X.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Ee?.()??`warning`;if(k&&a!==`off`&&!tS(t)){await Tt(t,e,`lint-validation`);let r=NF({projectDir:M??c,contentDir:c,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:yt,docFilePathFor:e=>YX(c,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:YX(c,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 X.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function mc(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=oF({projectDir:M??c,contentDir:c});return EP(t.schemas,n)}let gc=q(ree,async(e,t,n)=>{let r;try{r=gF(z(c),n.ruleId,n.value)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){K(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}dc();try{let e=Te?.()??Jo,n=[],r=eF(c,void 0,e=>n.push(e)),i=nF(M??c,tF(e,r),e=>n.push(e));n.push(...mc(i)),J(t,200,Vn,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){K(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`}),_c=q(Ye,async(e,t,n)=>{let r;try{let e=z(M??c),t=n.parentPath??[];r=n.delete?Yme(e,n.file):n.field!==void 0&&n.removeField?qme(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Jme(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?Gme(e,n.file,n.field,n.constraint,t):Kme(e,n.file)}catch(e){K(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){K(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`)&&je?.(`files`),dc();try{let e=Te?.()??Jo,n=[],r=eF(c,void 0,e=>n.push(e)),i=nF(M??c,tF(e,r),e=>n.push(e));n.push(...mc(i)),J(t,200,Vn,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){K(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`}),vc=q(It,async(t,n,r)=>{try{let t=HX(r.docName,n,`lint-fix`);if(t===null)return;let i=rt(t),a=Ek(r,ce);if(a.kind===`invalid-summary`){K(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,l=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(Jx(i)||Yx(i)){K(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=YX(c,i);if(f===null){K(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}oN(z(c,f),c);let p=Te?.()??Jo,{stored:m}=En(a.summary),h=await s.getSession(i,o,{displayName:l,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),_=[],{cfg:v,before:y,fixed:b,ran:x,failures:S}=await Hme({projectDir:M??c,contentDir:c,baseConfig:p,docRelPath:f,source:g,onConfigProblem:e=>_.push(e)}),C=y,w,T=[];if(b!==g){try{let t=ks(d),n=yi[t]??Ls(u??o);re?.setPresence(o,{displayName:l,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{lw(h.dc.document,b,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,sw(h))},h.origin),a.kind!==`anonymous`&&Hj(i,o,l,u,void 0,a.kind===`agent`?Tn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{re?.touchMode(o,`idle`)}let t=await dt(i);if(t?.kind===`failure`){ft(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){ht(n,`lint-fix`);return}ut(i,`lint-fix`);try{C=await wa(h.dc.document.getText(`source`).toString(),v,f,e=>T.push(e))}catch(e){w=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,X.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),C=y}}let E=C.filter(e=>e.severity===`error`).length,D=C.length-E,O=Math.max(0,y.length-C.length),ee=[..._,...As([...S,...T]),...w?[w]:[]];J(n,200,on,{file:f,fixedCount:O,diagnostics:C,errorCount:E,warningCount:D,ran:x,...ee.length>0?{warnings:ee}:{},...w?{warning:w}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof ZM){K(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof hS){gS(n,e,`lint-fix`);return}if(e instanceof bS){CS(n,e,`lint-fix`);return}if(e instanceof yw){K(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}X.error({err:e},`[lint-fix] handler failed`),K(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),yc=ude({service:Ue,getPrincipal:ce,onChanged:()=>je?.(`comments`)}),bc={"/api/comments":fK({GET:yc.list,POST:yc.create},{handler:`comments`}),"/api/comment":fK({GET:yc.read,POST:yc.mutate,DELETE:yc.remove},{handler:`comment`}),"/api/asset":dr,"/api/asset-text":pr,"/api/folder-config":ga,"/api/template":Aa,"/api/template/import":ja,"/api/skill":Ro,"/api/skill-file":Zo,"/api/skill-file/rename":Qo,"/api/skills":So,"/api/skill/import":fs,"/api/skills/import-bulk":ps,"/api/skill/edit-external":Po,"/api/skill/duplicate":Io,"/api/skill/move-scope":Fo,"/api/skill-upload":bs,"/api/skill/install":xs,"/api/skill/uninstall":Ss,"/api/skill/restore":Cs,"/api/skill/reimport":ws,"/api/skills/reimport-bulk":Ts,"/api/skill/revert":Es,"/api/skill/track-in-git":yo,"/api/lint/markdownlint-config":gc,"/api/lint/frontmatter-schema":_c,"/api/lint/fix":vc,"/api/create-page":mr,"/api/create-folder":br,"/api/duplicate-path":xr,"/api/rename-path":wr,"/api/delete-path":Tr,"/api/trash/cleanup":Er,"/api/upload":Or,"/api/agent-write":Gn,"/api/agent-write-md":Kn,"/api/agent-write-batch":qn,"/api/frontmatter-patch":Jn,"/api/agent-patch":Yn,"/api/agent-undo":Xn,"/api/agent-activity":Zn,"/api/agent-burst-diff":Qn,"/api/save-version":or,"/api/rollback":sr,"/api/share/construct-url":Is,"/api/share/target-status":Hs,"/api/git/branch-info":Rs,"/api/git/worktree-status":Gi,"/api/git/checkout":Gs,"/api/share/publish/owners":qs,"/api/share/publish/name-check":Js,"/api/share/publish":Qs,"/api/sync/status":Ui,"/api/sync/trigger":qi,"/api/sync/conflicts":Yi,"/api/sync/conflict-content":$i,"/api/sync/resolve-conflict":Qi,"/api/sync/resolve-blocking":Ji,"/api/local-op/clone":Hr,"/api/local-op/ok-init":Yr,"/api/local-op/auth/login":vi,"/api/local-op/auth/status":Ai,"/api/local-op/auth/pat":Mi,"/api/local-op/auth/gh-login":wi,"/api/local-op/auth/cancel":Oi,"/api/local-op/auth/repos":Pi,"/api/local-op/auth/signout":Li,"/api/local-op/auth/set-identity":Hi,"/api/local-op/embeddings/set-key":ic,"/api/local-op/embeddings/clear-key":ac,"/api/local-op/embeddings/test":cc,"/api/spawn-cursor":Ns,"/api/handoff":Os,"/api/install-skill":la,"/api/seed/plan":ra,"/api/seed/apply":aa,"/api/seed/install-pack-skill":oa,"/api/seed/packs":sa,"/api/client-logs":$s};C&&(bc[`/api/test-reset`]=er,bc[`/api/test-flush-git`]=$n,bc[`/api/test-rescan-backlinks`]=tr,bc[`/api/test-rescan-files`]=rr);let xc=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./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/sync/resolve-blocking./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/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/skills/reimport-bulk./api/skill/revert./api/skill/track-in-git./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Cc=[`/api/local-op/`],wc=qB({log:X,policy:n,ephemeral:De,table:{resolve(e){let t=bc[e];return t?{template:e,dispatch:(e,n)=>t(e,n)}:{template:`/api/*`}},isMutating:e=>xc.has(e)||Cc.some(t=>e.startsWith(t))}}),Tc=[sK({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:f,isSafeDocName:oZ,readPageTitleForDocName:We,readPageTitleForLinkedDocName:qe,readFrontmatterMetadataForLinkedDocName:et,collectAdmittedDocNames:yt,resolveAlias:rt,respondToDerivedIndexQueryFailure:Ot}),pK({hocuspocus:o,agentPresenceBroadcaster:re,isAllowedWorkspaceHostHeader:i,log:X}),Ne,rV({contentDir:c,projectDir:M,ephemeral:De,log:X,ready:ve,durabilityState:t,serverInstanceId:d,getDiskAckSVs:O,getCollabClientCount:ee,getConfigDiagnostics:Ae,acpRegistry:fe,loadAcpCustomAgents:pe,acpHarnessAvailability:me,isRoutePeerAdmitted:a,isAllowedWorkspaceHostHeader:i,checkLocalOpSecurity:r,getPrincipal:ce,semanticSearch:N,readSemanticProviderConfig:we,embeddingsSecretsFile:Ce,getFileIndex:f,shadowRef:w,getCurrentBranch:D,installedAgentsCache:P}),cK({hocuspocus:o,contentDir:c,projectDir:M,contentFilter:he,isSafeDocName:oZ,resolveDocFilePath:YX,isValidRelativeContentPath:BX,streamShowAllEntries:zX,getLinterBaseConfig:Te,getLinksValidationSetting:Ee,derivedDocumentIndex:k,collectAdmittedDocNames:yt,unmatchedGlobProblems:mc,readAuditGeneration:fc}),$H({contentRoot:te,log:X,shadowRef:w,flushGitCommit:T,commitOkArtifactWrite:Wn,getCurrentBranch:D,validateFolderRel:da,safeDocPath:AX,docTreePathCandidates:jX}),mK({contentDir:c,projectDir:M,homeDirOverride:le,skillsHome:Ia,isSafeDocName:oZ,commentService:Ue,enumerateInstalledSkillsCached:Rn,checkLocalOpSecurity:r}),WK({log:X,skillsHome:Ia,projectDir:M,contentDir:c,resolveSkillDirForRead:za}),K_e({contentDir:c,projectDir:M,skillsHome:Ia,homeDirOverride:le,savedThemeLockTimeoutMs:ue,ephemeral:De,log:X,signalChannel:je,searchService:Ds,linkPreviewFetch:Oe,getLinkPreviewsEnabled:ke,getGeneratedIndexSettingsStatus:l,setGeneratedIndexEnabled:u})],Ec=Tc.flatMap(e=>[...e.paths]);PG(Ec,bc);let Oc=Tc.map(e=>qB({log:X,policy:n,ephemeral:De,table:e.table})),Mc={paths:Ec,dispatch:async(e,t)=>{for(let n of Oc)if(await n(e,t))return!0;return!1}},Nc=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`]),Fc=Tc.map(e=>e.table),Lc=e=>{for(let t of Fc){let n=t.resolve(e)?.dispatch;if(n!==void 0)return n}};for(let e of Nc)if(bc[e]===void 0&&Lc(e)===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await wc(e,t)},nativeApi:Mc,localApi:dK({resolve:e=>{if(!Nc.has(e))return;let t=bc[e];return t===void 0?Lc(e):t}})}}function cZ(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=Nu(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&&!IB(f,o)){K(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!RB(e.headers.host,o)){K(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:jB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=eX(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=De.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 lZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function uxe(e){let t;try{t=Qu(e.contentDir,{withFileTypes:!0})}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&Fx(n.name,ve)&&e.basenameIndex.add(n.name)}async function uZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await hd(i,{withFileTypes:!0})}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=L(i,o.name),s=nN(R(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await pd(a)}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await gd(a)}catch(t){let n=lZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!rN(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await _d(i)}catch(t){let n=lZ(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()&&Fx(a,de)&&!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()&&Fx(a,de)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const dZ=P({principalId:A().optional(),tabSessionId:A().optional(),expectedServerInstanceId:A().optional(),expectedBranch:A().optional(),expectedDocLineageEpoch:A().optional(),clientProtocolVersion:O().optional(),clientRuntimeVersion:A().optional(),clientKind:A().optional()}).loose(),fZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function pZ(e){return fZ.includes(e)}function mZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function dxe(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!pZ(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 hZ=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=mZ(e,this.payload)}};function gZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=dZ.safeParse(t);return n.success?n.data:void 0}var _Z=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};function vZ(e,t,n=``){e=Ite(`.`,e);let r=Pte(e),i=0,a,o;for(;i<r.length;i++)a=wd(e,r[i]),o=Fte(a),o.isDirectory()?vZ(a,t,wd(n,r[i])):t(wd(n,r[i]),a,o)}function fxe(e){let t=e.url;if(t==null)return;let n=e._parsedUrl;if(n&&n.raw===t)return n;let r=t,i=``,a,o;if(t.length>1){let e=t.indexOf(`#`,1);e!==-1&&(o=t.substring(e),r=t.substring(0,e)),e=r.indexOf(`?`,1),e!==-1&&(i=r.substring(e),r=r.substring(0,e),i.length>1&&(a=Jte.parse(i.substring(1))))}return e._parsedUrl={pathname:r,search:i,query:a,hash:o,raw:t}}const pxe=()=>{};function mxe(e,t){for(let n=0;n<t.length;n++)if(t[n].test(e))return!0}function yZ(e,t){let n=0,r,i=e.length-1;e.charCodeAt(i)===47&&(e=e.substring(0,i));let a=[],o=`${e}/index`;for(;n<t.length;n++)r=t[n]?`.${t[n]}`:``,e&&a.push(e+r),a.push(o+r);return a}function hxe(e,t,n){let r=0,i,a=yZ(t,n);for(;r<a.length;r++)if(i=e[a[r]])return i}function gxe(e,t,n,r){let i=0,a=yZ(n,r),o,s,c,l;for(;i<a.length;i++)if(o=Fu(L(e,c=a[i])),o.startsWith(e)&&Bu.existsSync(o)){if(s=Bu.statSync(o),s.isDirectory())continue;return l=bZ(c,s,t),l[`Cache-Control`]=t?`no-cache`:`no-store`,{abs:o,stats:s,headers:l}}}function _xe(e,t){return t.statusCode=404,t.end()}function vxe(e,t,n,r,i){let a=200,o,s={};i={...i};for(let e in i)o=t.getHeader(e),o&&(i[e]=o);if((o=t.getHeader(`content-type`))&&(i[`Content-Type`]=o),e.headers.range){a=206;let[n,o]=e.headers.range.replace(`bytes=`,``).split(`-`),c=s.end=parseInt(o,10)||r.size-1,l=s.start=parseInt(n,10)||0;if(c>=r.size&&(c=r.size-1),l>=r.size)return t.setHeader(`Content-Range`,`bytes */${r.size}`),t.statusCode=416,t.end();i[`Content-Range`]=`bytes ${l}-${c}/${r.size}`,i[`Content-Length`]=c-l+1,i[`Accept-Ranges`]=`bytes`}t.writeHead(a,i),Bu.createReadStream(n,s).pipe(t)}const yxe={".br":`br`,".gz":`gzip`};function bZ(e,t,n){let r=yxe[e.slice(-3)],i=vbe(e.slice(0,r&&-3))||``;i===`text/html`&&(i+=`;charset=utf-8`);let a={"Content-Length":t.size,"Content-Type":i,"Last-Modified":t.mtime.toUTCString()};return r&&(a[`Content-Encoding`]=r),n&&(a.ETag=`W/"${t.size}-${t.mtime.getTime()}"`),a}function xZ(e,t={}){e=z(e||`.`);let n=t.onNoMatch||_xe,r=t.setHeaders||pxe,i=t.extensions||[`html`,`htm`],a=t.gzip&&i.map(e=>`${e}.gz`).concat(`gz`),o=t.brotli&&i.map(e=>`${e}.br`).concat(`br`),s={},c=`/`,l=!!t.etag,u=!!t.single;if(typeof t.single==`string`){let e=t.single.lastIndexOf(`.`);c+=~e?t.single.substring(0,e):t.single}let d=[];t.ignores!==!1&&(d.push(/[/]([A-Za-z\s\d~$._-]+\.\w+){1,}$/),t.dotfiles?d.push(/\/\.\w/):d.push(/\/\.well-known/),[].concat(t.ignores||[]).forEach(e=>{d.push(new RegExp(e,`i`))}));let f=t.maxAge!=null&&`public,max-age=${t.maxAge}`;f&&t.immutable?f+=`,immutable`:f&&t.maxAge===0&&(f+=`,must-revalidate`),t.dev||vZ(e,(e,n,r)=>{if(!/\.well-known[\\+\/]/.test(e)&&!t.dotfiles&&/(^\.|[\\+|\/+]\.)/.test(e))return;let i=bZ(e,r,l);f&&(i[`Cache-Control`]=f),s[`/`+e.normalize().replace(/\\+/g,`/`)]={abs:n,stats:r,headers:i}});let p=t.dev?gxe.bind(0,e+B,l):hxe.bind(0,s);return function(e,t,s){let f=[``],m=fxe(e).pathname,h=e.headers[`accept-encoding`]||``;if(a&&h.includes(`gzip`)&&f.unshift(...a),o&&/(br|brotli)/i.test(h)&&f.unshift(...o),f.push(...i),m.indexOf(`%`)!==-1)try{m=decodeURI(m)}catch{}let g=p(m,f)||u&&!mxe(m,d)&&p(c,f);if(!g)return s?s():n(e,t);if(l&&e.headers[`if-none-match`]===g.headers.ETag)return t.writeHead(304),t.end();(a||o)&&t.setHeader(`Vary`,`Accept-Encoding`),r(t,m,g.stats),vxe(e,t,g.abs,g.stats,g.headers)}}const SZ=F(`conflict-storage`);var CZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=L(eA(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!V(this.storePath)){this.conflicts=[];return}try{let e=H(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){SZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){SZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=I(this.storePath);V(e)||qu(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return ad(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return SZ.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-DEJ8aYeH.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=z(this.projectDir),r=z(t,e);if(!rN(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);xL(r,t,{allowShareableOkArtifact:nP}),Ic(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`]),SZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await Ib(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){SZ.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}),SZ.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=z(this.projectDir),i=z(r,e.file);if(!rN(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(xL(i,r,{allowShareableOkArtifact:nP}),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-DEJ8aYeH.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);xL(i,r,{allowShareableOkArtifact:nP}),Ic(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Ic(i,n,`utf-8`);break;case`delete`:V(i)&&Sc(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function bxe(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 xxe(e,t){let n=eA(e);try{qu(n,{recursive:!0}),ad(L(n,Ce),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=$ee(e);qu(I(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`};ad(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const wZ=new Map;let TZ=!1;function Sxe(e,t){try{let n=bxe(e,t);for(let e of wZ.keys())xxe(e,n)}catch{}}function Cxe(e){wZ.set(e,(wZ.get(e)??0)+1),TZ||(TZ=!0,process.on(`uncaughtExceptionMonitor`,Sxe));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=wZ.get(e)??0;n<=1?wZ.delete(e):wZ.set(e,n-1)}}}function EZ(e,t){let n=0,r=!1,i=new Set;t&&i.add(t);let a=e=>{for(let t of i)t(e)},o=(e,t)=>{e.url?.startsWith(`/collab`)&&(n++,a(n),t.once(`close`,()=>{n--,n<0&&(n=0),a(n)}))};return e.on(`upgrade`,o),{getCount:()=>n,subscribe:e=>(i.add(e),()=>i.delete(e)),detach:()=>{r||(r=!0,e.off(`upgrade`,o))}}}function DZ(e){let t=e.scheduler??Aa,n=e.warnBeforeMs??3e5,r=null,i=null,a=!1,o=!1;function s(){r!==null&&(t.clearTimeout(r),r=null),i!==null&&(t.clearTimeout(i),i=null)}function c(){s(),!(o||a)&&d.getCount()===0&&(n>0&&n<e.thresholdMs&&(i=t.setTimeout(()=>{i=null,d.getCount()===0&&!a&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),r=t.setTimeout(()=>{if(r=null,!(o||a)&&d.getCount()===0){a=!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 l=e=>{e===0?c():s()},u=e.counter===void 0,d=e.counter??EZ(e.httpServer),f=d.subscribe(l);return c(),{detach:()=>{o||(o=!0,f(),u&&d.detach(),s())}}}function OZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function kZ(e){if(!V(e))return{};let t;try{t=(0,uk.parse)(H(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(!OZ(t))return{};let n=t.telemetry;if(!OZ(n))return{};let r=n.localSink;return OZ(r)?r:{}}function AZ(e){return typeof e==`boolean`?e:void 0}function wxe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function jZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function MZ(e){if(OZ(e))return wxe(e.maxBytes)}function Txe(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=kZ(sc(`project`,e.projectDir)),n=kZ(sc(`project-local`,e.projectDir));if((AZ(n.enabled)??AZ(t.enabled)??!0)===!1)return null;let r=MZ(n.spans)??MZ(t.spans)??52428800,i=MZ(n.logs)??MZ(t.logs)??26214400,a=jZ(n.attributeDenylist)??jZ(t.attributeDenylist)??h;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:a},logs:{projectDir:e.projectDir,maxBytes:i}}}var NZ;(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})(NZ||={});var Exe;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Exe||={});const PZ=NZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),FZ=e=>{switch(typeof e){case`undefined`:return PZ.undefined;case`string`:return PZ.string;case`number`:return Number.isNaN(e)?PZ.nan:PZ.number;case`boolean`:return PZ.boolean;case`function`:return PZ.function;case`bigint`:return PZ.bigint;case`symbol`:return PZ.symbol;case`object`:return Array.isArray(e)?PZ.array:e===null?PZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?PZ.promise:typeof Map<`u`&&e instanceof Map?PZ.map:typeof Set<`u`&&e instanceof Set?PZ.set:typeof Date<`u`&&e instanceof Date?PZ.date:PZ.object;default:return PZ.unknown}},Z=NZ.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 IZ=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,NZ.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()}};IZ.create=e=>new IZ(e);const LZ=(e,t)=>{let n;switch(e.code){case Z.invalid_type:n=e.received===PZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case Z.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,NZ.jsonStringifyReplacer)}`;break;case Z.unrecognized_keys:n=`Unrecognized key(s) in object: ${NZ.joinValues(e.keys,`, `)}`;break;case Z.invalid_union:n=`Invalid input`;break;case Z.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${NZ.joinValues(e.options)}`;break;case Z.invalid_enum_value:n=`Invalid enum value. Expected ${NZ.joinValues(e.options)}, received '${e.received}'`;break;case Z.invalid_arguments:n=`Invalid function arguments`;break;case Z.invalid_return_type:n=`Invalid function return type`;break;case Z.invalid_date:n=`Invalid date`;break;case Z.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}"`:NZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case Z.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 Z.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 Z.custom:n=`Invalid input`;break;case Z.invalid_intersection_types:n=`Intersection results could not be merged`;break;case Z.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Z.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,NZ.assertNever(e)}return{message:n}};let Dxe=LZ;function RZ(){return Dxe}const zZ=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 BZ(e,t){let n=RZ(),r=zZ({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===LZ?void 0:LZ].filter(e=>!!e)});e.common.issues.push(r)}var VZ=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 HZ;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 HZ;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 HZ=Object.freeze({status:`aborted`}),UZ=e=>({status:`dirty`,value:e}),WZ=e=>({status:`valid`,value:e}),GZ=e=>e.status===`aborted`,KZ=e=>e.status===`dirty`,qZ=e=>e.status===`valid`,JZ=e=>typeof Promise<`u`&&e instanceof Promise;var YZ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(YZ||={});var XZ=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 ZZ=(e,t)=>{if(qZ(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 IZ(e.common.issues);return this._error=t,this._error}}};function QZ(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 $Z=class{get description(){return this._def.description}_getType(e){return FZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:FZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new VZ,ctx:{common:e.parent.common,data:e.data,parsedType:FZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(JZ(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:FZ(e)};return ZZ(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:FZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return qZ(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=>qZ(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:FZ(e)},r=this._parse({data:e,path:n.path,parent:n});return ZZ(n,await(JZ(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:Z.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 jQ({schema:this,typeName:Q.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 MQ.create(this,this._def)}nullable(){return NQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return hQ.create(this)}promise(){return AQ.create(this,this._def)}or(e){return vQ.create([this,e],this._def)}and(e){return xQ.create(this,e,this._def)}transform(e){return new jQ({...QZ(this._def),schema:this,typeName:Q.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new PQ({...QZ(this._def),innerType:this,defaultValue:t,typeName:Q.ZodDefault})}brand(){return new LQ({typeName:Q.ZodBranded,type:this,...QZ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new FQ({...QZ(this._def),innerType:this,catchValue:t,typeName:Q.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return RQ.create(this,e)}readonly(){return zQ.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Oxe=/^c[^\s-]{8,}$/i,kxe=/^[0-9a-z]+$/,Axe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jxe=/^[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,Mxe=/^[a-z0-9_-]{21}$/i,Nxe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pxe=/^[-+]?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)?)??$/,Fxe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let eQ;const Ixe=/^(?:(?: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])$/,Lxe=/^(?:(?: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])$/,Rxe=/^(([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]))$/,zxe=/^(([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])$/,Bxe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vxe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,tQ=`((\\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])))`,Hxe=RegExp(`^${tQ}$`);function nQ(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 Uxe(e){return RegExp(`^${nQ(e)}$`)}function Wxe(e){let t=`${tQ}T${nQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Gxe(e,t){return!!((t===`v4`||!t)&&Ixe.test(e)||(t===`v6`||!t)&&Rxe.test(e))}function Kxe(e,t){if(!Nxe.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 qxe(e,t){return!!((t===`v4`||!t)&&Lxe.test(e)||(t===`v6`||!t)&&zxe.test(e))}var rQ=class e extends $Z{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==PZ.string){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.string,received:t.parsedType}),HZ}let t=new VZ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.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),BZ(n,{code:Z.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?BZ(n,{code:Z.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&BZ(n,{code:Z.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Fxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`email`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)eQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),eQ.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`emoji`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)jxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`uuid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Mxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`nanoid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Oxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cuid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)kxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cuid2`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Axe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`ulid`,code:Z.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),BZ(n,{validation:`url`,code:Z.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),BZ(n,{validation:`regex`,code:Z.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),BZ(n,{code:Z.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),BZ(n,{code:Z.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Wxe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Hxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Uxe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Pxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`duration`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Gxe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`ip`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Kxe(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`jwt`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?qxe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`cidr`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Bxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`base64`,code:Z.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Vxe.test(e.data)||(n=this._getOrReturnCtx(e,n),BZ(n,{validation:`base64url`,code:Z.invalid_string,message:r.message}),t.dirty()):NZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:Z.invalid_string,...YZ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...YZ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...YZ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...YZ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...YZ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...YZ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...YZ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...YZ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...YZ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...YZ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...YZ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...YZ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...YZ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...YZ.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,...YZ.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,...YZ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...YZ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...YZ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...YZ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...YZ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...YZ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...YZ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...YZ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...YZ.errToObj(t)})}nonempty(e){return this.min(1,YZ.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}};rQ.create=e=>new rQ({checks:[],typeName:Q.ZodString,coerce:e?.coerce??!1,...QZ(e)});function Jxe(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 iQ=class e extends $Z{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)!==PZ.number){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.number,received:t.parsedType}),HZ}let t,n=new VZ;for(let r of this._def.checks)r.kind===`int`?NZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.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),BZ(t,{code:Z.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),BZ(t,{code:Z.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Jxe(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),BZ(t,{code:Z.not_finite,message:r.message}),n.dirty()):NZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,YZ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,YZ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,YZ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,YZ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:YZ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:YZ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:YZ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:YZ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:YZ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:YZ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:YZ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:YZ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:YZ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:YZ.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`&&NZ.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)}};iQ.create=e=>new iQ({checks:[],typeName:Q.ZodNumber,coerce:e?.coerce||!1,...QZ(e)});var aQ=class e extends $Z{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)!==PZ.bigint)return this._getInvalidInput(e);let t,n=new VZ;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),BZ(t,{code:Z.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),BZ(t,{code:Z.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),BZ(t,{code:Z.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):NZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.bigint,received:t.parsedType}),HZ}gte(e,t){return this.setLimit(`min`,e,!0,YZ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,YZ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,YZ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,YZ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:YZ.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:YZ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:YZ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:YZ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:YZ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:YZ.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}};aQ.create=e=>new aQ({checks:[],typeName:Q.ZodBigInt,coerce:e?.coerce??!1,...QZ(e)});var oQ=class extends $Z{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==PZ.boolean){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.boolean,received:t.parsedType}),HZ}return WZ(e.data)}};oQ.create=e=>new oQ({typeName:Q.ZodBoolean,coerce:e?.coerce||!1,...QZ(e)});var sQ=class e extends $Z{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==PZ.date){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.date,received:t.parsedType}),HZ}if(Number.isNaN(e.data.getTime()))return BZ(this._getOrReturnCtx(e),{code:Z.invalid_date}),HZ;let t=new VZ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),BZ(n,{code:Z.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),BZ(n,{code:Z.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):NZ.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:YZ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:YZ.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)}};sQ.create=e=>new sQ({checks:[],coerce:e?.coerce||!1,typeName:Q.ZodDate,...QZ(e)});var cQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.symbol){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.symbol,received:t.parsedType}),HZ}return WZ(e.data)}};cQ.create=e=>new cQ({typeName:Q.ZodSymbol,...QZ(e)});var lQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.undefined){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.undefined,received:t.parsedType}),HZ}return WZ(e.data)}};lQ.create=e=>new lQ({typeName:Q.ZodUndefined,...QZ(e)});var uQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.null){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.null,received:t.parsedType}),HZ}return WZ(e.data)}};uQ.create=e=>new uQ({typeName:Q.ZodNull,...QZ(e)});var dQ=class extends $Z{constructor(){super(...arguments),this._any=!0}_parse(e){return WZ(e.data)}};dQ.create=e=>new dQ({typeName:Q.ZodAny,...QZ(e)});var fQ=class extends $Z{constructor(){super(...arguments),this._unknown=!0}_parse(e){return WZ(e.data)}};fQ.create=e=>new fQ({typeName:Q.ZodUnknown,...QZ(e)});var pQ=class extends $Z{_parse(e){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.never,received:t.parsedType}),HZ}};pQ.create=e=>new pQ({typeName:Q.ZodNever,...QZ(e)});var mQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.undefined){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.void,received:t.parsedType}),HZ}return WZ(e.data)}};mQ.create=e=>new mQ({typeName:Q.ZodVoid,...QZ(e)});var hQ=class e extends $Z{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==PZ.array)return BZ(t,{code:Z.invalid_type,expected:PZ.array,received:t.parsedType}),HZ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(BZ(t,{code:e?Z.too_big:Z.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&&(BZ(t,{code:Z.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&&(BZ(t,{code:Z.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 XZ(t,e,t.path,n)))).then(e=>VZ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new XZ(t,e,t.path,n)));return VZ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:YZ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:YZ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:YZ.toString(n)}})}nonempty(e){return this.min(1,e)}};hQ.create=(e,t)=>new hQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Q.ZodArray,...QZ(t)});function gQ(e){if(e instanceof _Q){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=MQ.create(gQ(r))}return new _Q({...e._def,shape:()=>t})}else if(e instanceof hQ)return new hQ({...e._def,type:gQ(e.element)});else if(e instanceof MQ)return MQ.create(gQ(e.unwrap()));else if(e instanceof NQ)return NQ.create(gQ(e.unwrap()));else if(e instanceof SQ)return SQ.create(e.items.map(e=>gQ(e)));else return e}var _Q=class e extends $Z{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=NZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==PZ.object){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.object,received:t.parsedType}),HZ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof pQ&&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 XZ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof pQ){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&&(BZ(n,{code:Z.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 XZ(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=>VZ.mergeObjectSync(t,e)):VZ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return YZ.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:YZ.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:Q.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 NZ.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 NZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return gQ(this)}partial(t){let n={};for(let e of NZ.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 NZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof MQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return DQ(NZ.objectKeys(this.shape))}};_Q.create=(e,t)=>new _Q({shape:()=>e,unknownKeys:`strip`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)}),_Q.strictCreate=(e,t)=>new _Q({shape:()=>e,unknownKeys:`strict`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)}),_Q.lazycreate=(e,t)=>new _Q({shape:e,unknownKeys:`strip`,catchall:pQ.create(),typeName:Q.ZodObject,...QZ(t)});var vQ=class extends $Z{_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 IZ(e.ctx.common.issues));return BZ(t,{code:Z.invalid_union,unionErrors:n}),HZ}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 IZ(e));return BZ(t,{code:Z.invalid_union,unionErrors:i}),HZ}}get options(){return this._def.options}};vQ.create=(e,t)=>new vQ({options:e,typeName:Q.ZodUnion,...QZ(t)});const yQ=e=>e instanceof TQ?yQ(e.schema):e instanceof jQ?yQ(e.innerType()):e instanceof EQ?[e.value]:e instanceof OQ?e.options:e instanceof kQ?NZ.objectValues(e.enum):e instanceof PQ?yQ(e._def.innerType):e instanceof lQ?[void 0]:e instanceof uQ?[null]:e instanceof MQ?[void 0,...yQ(e.unwrap())]:e instanceof NQ?[null,...yQ(e.unwrap())]:e instanceof LQ||e instanceof zQ?yQ(e.unwrap()):e instanceof FQ?yQ(e._def.innerType):[];var Yxe=class e extends $Z{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==PZ.object)return BZ(t,{code:Z.invalid_type,expected:PZ.object,received:t.parsedType}),HZ;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}):(BZ(t,{code:Z.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),HZ)}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=yQ(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:Q.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...QZ(r)})}};function bQ(e,t){let n=FZ(e),r=FZ(t);if(e===t)return{valid:!0,data:e};if(n===PZ.object&&r===PZ.object){let n=NZ.objectKeys(t),r=NZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=bQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===PZ.array&&r===PZ.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=bQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===PZ.date&&r===PZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var xQ=class extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(GZ(e)||GZ(r))return HZ;let i=bQ(e.value,r.value);return i.valid?((KZ(e)||KZ(r))&&t.dirty(),{status:t.value,value:i.data}):(BZ(n,{code:Z.invalid_intersection_types}),HZ)};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}))}};xQ.create=(e,t,n)=>new xQ({left:e,right:t,typeName:Q.ZodIntersection,...QZ(n)});var SQ=class e extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==PZ.array)return BZ(n,{code:Z.invalid_type,expected:PZ.array,received:n.parsedType}),HZ;if(n.data.length<this._def.items.length)return BZ(n,{code:Z.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),HZ;!this._def.rest&&n.data.length>this._def.items.length&&(BZ(n,{code:Z.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 XZ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>VZ.mergeArray(t,e)):VZ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};SQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new SQ({items:e,typeName:Q.ZodTuple,rest:null,...QZ(t)})};var Xxe=class e extends $Z{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!==PZ.object)return BZ(n,{code:Z.invalid_type,expected:PZ.object,received:n.parsedType}),HZ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new XZ(n,e,n.path,e)),value:a._parse(new XZ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?VZ.mergeObjectAsync(t,r):VZ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof $Z?new e({keyType:t,valueType:n,typeName:Q.ZodRecord,...QZ(r)}):new e({keyType:rQ.create(),valueType:t,typeName:Q.ZodRecord,...QZ(n)})}},CQ=class extends $Z{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!==PZ.map)return BZ(n,{code:Z.invalid_type,expected:PZ.map,received:n.parsedType}),HZ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new XZ(n,e,n.path,[a,`key`])),value:i._parse(new XZ(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 HZ;(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 HZ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};CQ.create=(e,t,n)=>new CQ({valueType:t,keyType:e,typeName:Q.ZodMap,...QZ(n)});var wQ=class e extends $Z{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==PZ.set)return BZ(n,{code:Z.invalid_type,expected:PZ.set,received:n.parsedType}),HZ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(BZ(n,{code:Z.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&&(BZ(n,{code:Z.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 HZ;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 XZ(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:YZ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:YZ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};wQ.create=(e,t)=>new wQ({valueType:e,minSize:null,maxSize:null,typeName:Q.ZodSet,...QZ(t)});var Zxe=class e extends $Z{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==PZ.function)return BZ(t,{code:Z.invalid_type,expected:PZ.function,received:t.parsedType}),HZ;function n(e,n){return zZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,RZ(),LZ].filter(e=>!!e),issueData:{code:Z.invalid_arguments,argumentsError:n}})}function r(e,n){return zZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,RZ(),LZ].filter(e=>!!e),issueData:{code:Z.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof AQ){let e=this;return WZ(async function(...t){let o=new IZ([]),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 WZ(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new IZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new IZ([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:SQ.create(t).rest(fQ.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||SQ.create([]).rest(fQ.create()),returns:n||fQ.create(),typeName:Q.ZodFunction,...QZ(r)})}},TQ=class extends $Z{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})}};TQ.create=(e,t)=>new TQ({getter:e,typeName:Q.ZodLazy,...QZ(t)});var EQ=class extends $Z{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return BZ(t,{received:t.data,code:Z.invalid_literal,expected:this._def.value}),HZ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};EQ.create=(e,t)=>new EQ({value:e,typeName:Q.ZodLiteral,...QZ(t)});function DQ(e,t){return new OQ({values:e,typeName:Q.ZodEnum,...QZ(t)})}var OQ=class e extends $Z{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return BZ(t,{expected:NZ.joinValues(n),received:t.parsedType,code:Z.invalid_type}),HZ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return BZ(t,{received:t.data,code:Z.invalid_enum_value,options:n}),HZ}return WZ(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})}};OQ.create=DQ;var kQ=class extends $Z{_parse(e){let t=NZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==PZ.string&&n.parsedType!==PZ.number){let e=NZ.objectValues(t);return BZ(n,{expected:NZ.joinValues(e),received:n.parsedType,code:Z.invalid_type}),HZ}if(this._cache||=new Set(NZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=NZ.objectValues(t);return BZ(n,{received:n.data,code:Z.invalid_enum_value,options:e}),HZ}return WZ(e.data)}get enum(){return this._def.values}};kQ.create=(e,t)=>new kQ({values:e,typeName:Q.ZodNativeEnum,...QZ(t)});var AQ=class extends $Z{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==PZ.promise&&t.common.async===!1?(BZ(t,{code:Z.invalid_type,expected:PZ.promise,received:t.parsedType}),HZ):WZ((t.parsedType===PZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};AQ.create=(e,t)=>new AQ({type:e,typeName:Q.ZodPromise,...QZ(t)});var jQ=class extends $Z{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Q.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=>{BZ(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 HZ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?HZ:r.status===`dirty`||t.value===`dirty`?UZ(r.value):r});{if(t.value===`aborted`)return HZ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?HZ:r.status===`dirty`||t.value===`dirty`?UZ(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`?HZ:(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`?HZ:(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(!qZ(e))return HZ;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=>qZ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):HZ);NZ.assertNever(r)}};jQ.create=(e,t,n)=>new jQ({schema:e,typeName:Q.ZodEffects,effect:t,...QZ(n)}),jQ.createWithPreprocess=(e,t,n)=>new jQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Q.ZodEffects,...QZ(n)});var MQ=class extends $Z{_parse(e){return this._getType(e)===PZ.undefined?WZ(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};MQ.create=(e,t)=>new MQ({innerType:e,typeName:Q.ZodOptional,...QZ(t)});var NQ=class extends $Z{_parse(e){return this._getType(e)===PZ.null?WZ(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};NQ.create=(e,t)=>new NQ({innerType:e,typeName:Q.ZodNullable,...QZ(t)});var PQ=class extends $Z{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===PZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};PQ.create=(e,t)=>new PQ({innerType:e,typeName:Q.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...QZ(t)});var FQ=class extends $Z{_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 JZ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new IZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new IZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};FQ.create=(e,t)=>new FQ({innerType:e,typeName:Q.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...QZ(t)});var IQ=class extends $Z{_parse(e){if(this._getType(e)!==PZ.nan){let t=this._getOrReturnCtx(e);return BZ(t,{code:Z.invalid_type,expected:PZ.nan,received:t.parsedType}),HZ}return{status:`valid`,value:e.data}}};IQ.create=e=>new IQ({typeName:Q.ZodNaN,...QZ(e)});var LQ=class extends $Z{_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}},RQ=class e extends $Z{_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`?HZ:e.status===`dirty`?(t.dirty(),UZ(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`?HZ: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:Q.ZodPipeline})}},zQ=class extends $Z{_parse(e){let t=this._def.innerType._parse(e),n=e=>(qZ(e)&&(e.value=Object.freeze(e.value)),e);return JZ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};zQ.create=(e,t)=>new zQ({innerType:e,typeName:Q.ZodReadonly,...QZ(t)}),_Q.lazycreate;var Q;(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`})(Q||={}),rQ.create,iQ.create,IQ.create,aQ.create,oQ.create,sQ.create,cQ.create,lQ.create,uQ.create,dQ.create,fQ.create,pQ.create,mQ.create,hQ.create;const Qxe=_Q.create;_Q.strictCreate,vQ.create,Yxe.create,xQ.create,SQ.create,Xxe.create,CQ.create,wQ.create,Zxe.create,TQ.create,EQ.create,OQ.create,kQ.create,AQ.create,jQ.create,MQ.create,NQ.create,jQ.createWithPreprocess,RQ.create;const $xe=le(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);r.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>fe(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>we(e,t,n),e.parseAsync=async(t,n)=>Ne(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>ke(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)=>se(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),eSe=le(`ZodMiniObject`,(e,t)=>{E.init(e,t),$xe.init(e,t),Te(e,`shape`,()=>t.shape)});function BQ(e,t){return new eSe({type:`object`,shape:e??{},...Ae(t)})}function VQ(e){return!!e._zod}function HQ(e){let t=Object.values(e);if(t.length===0)return BQ({});let n=t.every(VQ),r=t.every(e=>!VQ(e));if(n)return BQ(e);if(r)return Qxe(e);throw Error(`Mixed Zod versions detected in object shape.`)}function UQ(e,t){return VQ(e)?we(e,t):e.safeParse(t)}async function WQ(e,t){return VQ(e)?await ke(e,t):await e.safeParseAsync(t)}function GQ(e){if(!e)return;let t;if(t=VQ(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function KQ(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 HQ(e)}}if(VQ(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 qQ(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 tSe(e){return e.description}function nSe(e){if(VQ(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function JQ(e){if(VQ(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 YQ=`2025-11-25`,XQ=[YQ,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],ZQ=`io.modelcontextprotocol/related-task`,QQ=be(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),$Q=j([A(),O().int()]),e$=A();x({ttl:O().optional(),pollInterval:O().optional()});const rSe=P({ttl:O().optional()}),iSe=P({taskId:A()}),t$=x({progressToken:$Q.optional(),[ZQ]:iSe.optional()}),n$=P({_meta:t$.optional()}),r$=n$.extend({task:rSe.optional()}),aSe=e=>r$.safeParse(e).success,i$=P({method:A(),params:n$.loose().optional()}),a$=P({_meta:t$.optional()}),o$=P({method:A(),params:a$.loose().optional()}),s$=x({_meta:t$.optional()}),c$=j([A(),O().int()]),l$=P({jsonrpc:g(`2.0`),id:c$,...i$.shape}).strict(),u$=e=>l$.safeParse(e).success,d$=P({jsonrpc:g(`2.0`),...o$.shape}).strict(),oSe=e=>d$.safeParse(e).success,f$=P({jsonrpc:g(`2.0`),id:c$,result:s$}).strict(),p$=e=>f$.safeParse(e).success;var m$;(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`})(m$||={});const h$=P({jsonrpc:g(`2.0`),id:c$.optional(),error:P({code:O().int(),message:A(),data:f().optional()})}).strict(),g$=e=>h$.safeParse(e).success,_$=j([l$,d$,f$,h$]);j([f$,h$]);const v$=s$.strict(),sSe=a$.extend({requestId:c$.optional(),reason:A().optional()}),y$=o$.extend({method:g(`notifications/cancelled`),params:sSe}),b$=P({icons:N(P({src:A(),mimeType:A().optional(),sizes:N(A()).optional(),theme:d([`light`,`dark`]).optional()})).optional()}),x$=P({name:A(),title:A().optional()}),S$=x$.extend({...x$.shape,...b$.shape,version:A(),websiteUrl:A().optional(),description:A().optional()}),cSe=re(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,T(P({form:T(P({applyDefaults:a().optional()}),m(A(),f())).optional(),url:QQ.optional()}),m(A(),f()).optional())),lSe=x({list:QQ.optional(),cancel:QQ.optional(),requests:x({sampling:x({createMessage:QQ.optional()}).optional(),elicitation:x({create:QQ.optional()}).optional()}).optional()}),uSe=x({list:QQ.optional(),cancel:QQ.optional(),requests:x({tools:x({call:QQ.optional()}).optional()}).optional()}),dSe=P({experimental:m(A(),QQ).optional(),sampling:P({context:QQ.optional(),tools:QQ.optional()}).optional(),elicitation:cSe.optional(),roots:P({listChanged:a().optional()}).optional(),tasks:lSe.optional(),extensions:m(A(),QQ).optional()}),fSe=n$.extend({protocolVersion:A(),capabilities:dSe,clientInfo:S$}),C$=i$.extend({method:g(`initialize`),params:fSe}),w$=e=>C$.safeParse(e).success,pSe=P({experimental:m(A(),QQ).optional(),logging:QQ.optional(),completions:QQ.optional(),prompts:P({listChanged:a().optional()}).optional(),resources:P({subscribe:a().optional(),listChanged:a().optional()}).optional(),tools:P({listChanged:a().optional()}).optional(),tasks:uSe.optional(),extensions:m(A(),QQ).optional()}),mSe=s$.extend({protocolVersion:A(),capabilities:pSe,serverInfo:S$,instructions:A().optional()}),T$=o$.extend({method:g(`notifications/initialized`),params:a$.optional()}),hSe=e=>T$.safeParse(e).success,E$=i$.extend({method:g(`ping`),params:n$.optional()}),gSe=P({progress:O(),total:s(O()),message:s(A())}),_Se=P({...a$.shape,...gSe.shape,progressToken:$Q}),D$=o$.extend({method:g(`notifications/progress`),params:_Se}),vSe=n$.extend({cursor:e$.optional()}),O$=i$.extend({params:vSe.optional()}),k$=s$.extend({nextCursor:e$.optional()}),ySe=d([`working`,`input_required`,`completed`,`failed`,`cancelled`]),A$=P({taskId:A(),status:ySe,ttl:j([O(),u()]),createdAt:A(),lastUpdatedAt:A(),pollInterval:s(O()),statusMessage:s(A())}),j$=s$.extend({task:A$}),bSe=a$.merge(A$),M$=o$.extend({method:g(`notifications/tasks/status`),params:bSe}),N$=i$.extend({method:g(`tasks/get`),params:n$.extend({taskId:A()})}),P$=s$.merge(A$),F$=i$.extend({method:g(`tasks/result`),params:n$.extend({taskId:A()})});s$.loose();const I$=O$.extend({method:g(`tasks/list`)}),L$=k$.extend({tasks:N(A$)}),R$=i$.extend({method:g(`tasks/cancel`),params:n$.extend({taskId:A()})}),xSe=s$.merge(A$),z$=P({uri:A(),mimeType:s(A()),_meta:m(A(),f()).optional()}),B$=z$.extend({text:A()}),V$=A().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),H$=z$.extend({blob:V$}),U$=d([`user`,`assistant`]),W$=P({audience:N(U$).optional(),priority:O().min(0).max(1).optional(),lastModified:v({offset:!0}).optional()}),G$=P({...x$.shape,...b$.shape,uri:A(),description:s(A()),mimeType:s(A()),size:s(O()),annotations:W$.optional(),_meta:s(x({}))}),SSe=P({...x$.shape,...b$.shape,uriTemplate:A(),description:s(A()),mimeType:s(A()),annotations:W$.optional(),_meta:s(x({}))}),K$=O$.extend({method:g(`resources/list`)}),CSe=k$.extend({resources:N(G$)}),q$=O$.extend({method:g(`resources/templates/list`)}),wSe=k$.extend({resourceTemplates:N(SSe)}),J$=n$.extend({uri:A()}),TSe=J$,Y$=i$.extend({method:g(`resources/read`),params:TSe}),ESe=s$.extend({contents:N(j([B$,H$]))}),DSe=o$.extend({method:g(`notifications/resources/list_changed`),params:a$.optional()}),OSe=J$,kSe=i$.extend({method:g(`resources/subscribe`),params:OSe}),ASe=J$,jSe=i$.extend({method:g(`resources/unsubscribe`),params:ASe}),MSe=a$.extend({uri:A()}),NSe=o$.extend({method:g(`notifications/resources/updated`),params:MSe}),PSe=P({name:A(),description:s(A()),required:s(a())}),FSe=P({...x$.shape,...b$.shape,description:s(A()),arguments:s(N(PSe)),_meta:s(x({}))}),X$=O$.extend({method:g(`prompts/list`)}),ISe=k$.extend({prompts:N(FSe)}),LSe=n$.extend({name:A(),arguments:m(A(),A()).optional()}),Z$=i$.extend({method:g(`prompts/get`),params:LSe}),Q$=P({type:g(`text`),text:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),$$=P({type:g(`image`),data:V$,mimeType:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),e1=P({type:g(`audio`),data:V$,mimeType:A(),annotations:W$.optional(),_meta:m(A(),f()).optional()}),RSe=P({type:g(`tool_use`),name:A(),id:A(),input:m(A(),f()),_meta:m(A(),f()).optional()}),zSe=P({type:g(`resource`),resource:j([B$,H$]),annotations:W$.optional(),_meta:m(A(),f()).optional()}),t1=j([Q$,$$,e1,G$.extend({type:g(`resource_link`)}),zSe]),BSe=P({role:U$,content:t1}),VSe=s$.extend({description:A().optional(),messages:N(BSe)}),HSe=o$.extend({method:g(`notifications/prompts/list_changed`),params:a$.optional()}),USe=P({title:A().optional(),readOnlyHint:a().optional(),destructiveHint:a().optional(),idempotentHint:a().optional(),openWorldHint:a().optional()}),WSe=P({taskSupport:d([`required`,`optional`,`forbidden`]).optional()}),n1=P({...x$.shape,...b$.shape,description:A().optional(),inputSchema:P({type:g(`object`),properties:m(A(),QQ).optional(),required:N(A()).optional()}).catchall(f()),outputSchema:P({type:g(`object`),properties:m(A(),QQ).optional(),required:N(A()).optional()}).catchall(f()).optional(),annotations:USe.optional(),execution:WSe.optional(),_meta:m(A(),f()).optional()}),r1=O$.extend({method:g(`tools/list`)}),GSe=k$.extend({tools:N(n1)}),i1=s$.extend({content:N(t1).default([]),structuredContent:m(A(),f()).optional(),isError:a().optional()});i1.or(s$.extend({toolResult:f()}));const KSe=r$.extend({name:A(),arguments:m(A(),f()).optional()}),a1=i$.extend({method:g(`tools/call`),params:KSe}),qSe=o$.extend({method:g(`notifications/tools/list_changed`),params:a$.optional()});P({autoRefresh:a().default(!0),debounceMs:O().int().nonnegative().default(300)});const o1=d([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),JSe=n$.extend({level:o1}),s1=i$.extend({method:g(`logging/setLevel`),params:JSe}),YSe=a$.extend({level:o1,logger:A().optional(),data:f()}),XSe=o$.extend({method:g(`notifications/message`),params:YSe}),ZSe=P({hints:N(P({name:A().optional()})).optional(),costPriority:O().min(0).max(1).optional(),speedPriority:O().min(0).max(1).optional(),intelligencePriority:O().min(0).max(1).optional()}),QSe=P({mode:d([`auto`,`required`,`none`]).optional()}),$Se=P({type:g(`tool_result`),toolUseId:A().describe(`The unique identifier for the corresponding tool call.`),content:N(t1).default([]),structuredContent:P({}).loose().optional(),isError:a().optional(),_meta:m(A(),f()).optional()}),eCe=S(`type`,[Q$,$$,e1]),c1=S(`type`,[Q$,$$,e1,RSe,$Se]),tCe=P({role:U$,content:j([c1,N(c1)]),_meta:m(A(),f()).optional()}),nCe=r$.extend({messages:N(tCe),modelPreferences:ZSe.optional(),systemPrompt:A().optional(),includeContext:d([`none`,`thisServer`,`allServers`]).optional(),temperature:O().optional(),maxTokens:O().int(),stopSequences:N(A()).optional(),metadata:QQ.optional(),tools:N(n1).optional(),toolChoice:QSe.optional()}),rCe=i$.extend({method:g(`sampling/createMessage`),params:nCe}),l1=s$.extend({model:A(),stopReason:s(d([`endTurn`,`stopSequence`,`maxTokens`]).or(A())),role:U$,content:eCe}),u1=s$.extend({model:A(),stopReason:s(d([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(A())),role:U$,content:j([c1,N(c1)])}),iCe=P({type:g(`boolean`),title:A().optional(),description:A().optional(),default:a().optional()}),aCe=P({type:g(`string`),title:A().optional(),description:A().optional(),minLength:O().optional(),maxLength:O().optional(),format:d([`email`,`uri`,`date`,`date-time`]).optional(),default:A().optional()}),oCe=P({type:d([`number`,`integer`]),title:A().optional(),description:A().optional(),minimum:O().optional(),maximum:O().optional(),default:O().optional()}),sCe=P({type:g(`string`),title:A().optional(),description:A().optional(),enum:N(A()),default:A().optional()}),cCe=P({type:g(`string`),title:A().optional(),description:A().optional(),oneOf:N(P({const:A(),title:A()})),default:A().optional()}),lCe=j([j([P({type:g(`string`),title:A().optional(),description:A().optional(),enum:N(A()),enumNames:N(A()).optional(),default:A().optional()}),j([sCe,cCe]),j([P({type:g(`array`),title:A().optional(),description:A().optional(),minItems:O().optional(),maxItems:O().optional(),items:P({type:g(`string`),enum:N(A())}),default:N(A()).optional()}),P({type:g(`array`),title:A().optional(),description:A().optional(),minItems:O().optional(),maxItems:O().optional(),items:P({anyOf:N(P({const:A(),title:A()}))}),default:N(A()).optional()})])]),iCe,aCe,oCe]),uCe=j([r$.extend({mode:g(`form`).optional(),message:A(),requestedSchema:P({type:g(`object`),properties:m(A(),lCe),required:N(A()).optional()})}),r$.extend({mode:g(`url`),message:A(),elicitationId:A(),url:A().url()})]),dCe=i$.extend({method:g(`elicitation/create`),params:uCe}),fCe=a$.extend({elicitationId:A()}),pCe=o$.extend({method:g(`notifications/elicitation/complete`),params:fCe}),d1=s$.extend({action:d([`accept`,`decline`,`cancel`]),content:re(e=>e===null?void 0:e,m(A(),j([A(),O(),a(),N(A())])).optional())}),mCe=P({type:g(`ref/resource`),uri:A()}),hCe=P({type:g(`ref/prompt`),name:A()}),gCe=n$.extend({ref:j([hCe,mCe]),argument:P({name:A(),value:A()}),context:P({arguments:m(A(),A()).optional()}).optional()}),f1=i$.extend({method:g(`completion/complete`),params:gCe});function _Ce(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function vCe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const yCe=s$.extend({completion:x({values:N(A()).max(100),total:s(O().int()),hasMore:s(a())})}),bCe=P({uri:A().startsWith(`file://`),name:A().optional(),_meta:m(A(),f()).optional()}),xCe=i$.extend({method:g(`roots/list`),params:n$.optional()}),p1=s$.extend({roots:N(bCe)}),SCe=o$.extend({method:g(`notifications/roots/list_changed`),params:a$.optional()});j([E$,C$,f1,s1,Z$,X$,K$,q$,Y$,kSe,jSe,a1,r1,N$,F$,I$,R$]),j([y$,D$,T$,SCe,M$]),j([v$,l1,u1,d1,p1,P$,L$,j$]),j([E$,rCe,dCe,xCe,N$,F$,I$,R$]),j([y$,D$,XSe,NSe,DSe,qSe,HSe,M$,pCe]),j([v$,mSe,yCe,VSe,ISe,CSe,wSe,ESe,i1,GSe,P$,L$,j$]);var m1=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===m$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new CCe(e.elicitations,n)}return new e(t,n,r)}},CCe=class extends m1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(m$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function h1(e){return e===`completed`||e===`failed`||e===`cancelled`}const wCe=Symbol(`Let zodToJsonSchema decide on which parser to use`),g1={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`},TCe=e=>typeof e==`string`?{...g1,name:e}:{...g1,...e},ECe=e=>{let t=TCe(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 _1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function v1(e,t,n,r,i){e[t]=n,_1(e,t,r,i)}const y1=(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 b1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?y1(t,e.currentPath):t.join(`/`)}}function DCe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Q.ZodAny&&(n.items=N1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&v1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&v1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(v1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),v1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function OCe(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?v1(n,`minimum`,r.value,r.message,t):v1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),v1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?v1(n,`maximum`,r.value,r.message,t):v1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),v1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:v1(n,`multipleOf`,r.value,r.message,t);break}return n}function kCe(){return{type:`boolean`}}function x1(e,t){return N1(e.type._def,t)}const ACe=(e,t)=>N1(e.innerType._def,t);function S1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>S1(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 jCe(e,t)}}const jCe=(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`:v1(n,`minimum`,r.value,r.message,t);break;case`max`:v1(n,`maximum`,r.value,r.message,t);break}return n};function MCe(e,t){return{...N1(e.innerType._def,t),default:e.defaultValue()}}function NCe(e,t){return t.effectStrategy===`input`?N1(e.schema._def,t):b1(t)}function PCe(e){return{type:`string`,enum:Array.from(e.values)}}const FCe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function ICe(e,t){let n=[N1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),N1(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(FCe(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 LCe(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 C1;const w1={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:()=>(C1===void 0&&(C1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),C1),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 T1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:v1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:v1(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`:D1(n,`email`,r.message,t);break;case`format:idn-email`:D1(n,`idn-email`,r.message,t);break;case`pattern:zod`:O1(n,w1.email,r.message,t);break}break;case`url`:D1(n,`uri`,r.message,t);break;case`uuid`:D1(n,`uuid`,r.message,t);break;case`regex`:O1(n,r.regex,r.message,t);break;case`cuid`:O1(n,w1.cuid,r.message,t);break;case`cuid2`:O1(n,w1.cuid2,r.message,t);break;case`startsWith`:O1(n,RegExp(`^${E1(r.value,t)}`),r.message,t);break;case`endsWith`:O1(n,RegExp(`${E1(r.value,t)}$`),r.message,t);break;case`datetime`:D1(n,`date-time`,r.message,t);break;case`date`:D1(n,`date`,r.message,t);break;case`time`:D1(n,`time`,r.message,t);break;case`duration`:D1(n,`duration`,r.message,t);break;case`length`:v1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),v1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:O1(n,RegExp(E1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&D1(n,`ipv4`,r.message,t),r.version!==`v4`&&D1(n,`ipv6`,r.message,t);break;case`base64url`:O1(n,w1.base64url,r.message,t);break;case`jwt`:O1(n,w1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&O1(n,w1.ipv4Cidr,r.message,t),r.version!==`v4`&&O1(n,w1.ipv6Cidr,r.message,t);break;case`emoji`:O1(n,w1.emoji(),r.message,t);break;case`ulid`:O1(n,w1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:D1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:v1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:O1(n,w1.base64,r.message,t);break}break;case`nanoid`:O1(n,w1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function E1(e,t){return t.patternStrategy===`escape`?zCe(e):e}const RCe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function zCe(e){let t=``;for(let n=0;n<e.length;n++)RCe.has(e[n])||(t+=`\\`),t+=e[n];return t}function D1(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}}})):v1(e,`format`,t,n,r)}function O1(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:k1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):v1(e,`pattern`,k1(t,r),n,r)}function k1(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
1190
1190
  ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
1191
1191
  ]))`;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 A1(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===Q.ZodEnum)return{type:`object`,required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,r)=>({...n,[r]:N1(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??b1(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:`object`,additionalProperties:N1(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(t.target===`openApi3`)return n;if(e.keyType?._def.typeName===Q.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=T1(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===Q.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===Q.ZodBranded&&e.keyType._def.type._def.typeName===Q.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=x1(e.keyType._def,t);return{...n,propertyNames:i}}return n}function BCe(e,t){return t.mapStrategy===`record`?A1(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[N1(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||b1(t),N1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||b1(t)],minItems:2,maxItems:2}}}function VCe(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 HCe(e){return e.target===`openAi`?void 0:{not:b1({...e,currentPath:[...e.currentPath,`not`]})}}function UCe(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}const j1={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function WCe(e,t){if(t.target===`openApi3`)return M1(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in j1&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=j1[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 M1(e,t)}const M1=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>N1(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 GCe(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:j1[e.innerType._def.typeName],nullable:!0}:{type:[j1[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let n=N1(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&`$ref`in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let n=N1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function KCe(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`,_1(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?v1(n,`minimum`,r.value,r.message,t):v1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),v1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?v1(n,`maximum`,r.value,r.message,t):v1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),v1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:v1(n,`multipleOf`,r.value,r.message,t);break}return n}function qCe(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=YCe(o);s&&n&&(o._def.typeName===`ZodOptional`&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),s=!1);let c=N1(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=JCe(e,t);return o!==void 0&&(r.additionalProperties=o),r}function JCe(e,t){if(e.catchall._def.typeName!==`ZodNever`)return N1(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 YCe(e){try{return e.isOptional()}catch{return!0}}const XCe=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return N1(e.innerType._def,t);let n=N1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:b1(t)},n]}:b1(t)},ZCe=(e,t)=>{if(t.pipeStrategy===`input`)return N1(e.in._def,t);if(t.pipeStrategy===`output`)return N1(e.out._def,t);let n=N1(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,N1(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function QCe(e,t){return N1(e.type._def,t)}function $Ce(e,t){let n={type:`array`,uniqueItems:!0,items:N1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&v1(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&v1(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function ewe(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>N1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:N1(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>N1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function twe(e){return{not:b1(e)}}function nwe(e){return b1(e)}const rwe=(e,t)=>N1(e.innerType._def,t),iwe=(e,t,n)=>{switch(t){case Q.ZodString:return T1(e,n);case Q.ZodNumber:return KCe(e,n);case Q.ZodObject:return qCe(e,n);case Q.ZodBigInt:return OCe(e,n);case Q.ZodBoolean:return kCe();case Q.ZodDate:return S1(e,n);case Q.ZodUndefined:return twe(n);case Q.ZodNull:return UCe(n);case Q.ZodArray:return DCe(e,n);case Q.ZodUnion:case Q.ZodDiscriminatedUnion:return WCe(e,n);case Q.ZodIntersection:return ICe(e,n);case Q.ZodTuple:return ewe(e,n);case Q.ZodRecord:return A1(e,n);case Q.ZodLiteral:return LCe(e,n);case Q.ZodEnum:return PCe(e);case Q.ZodNativeEnum:return VCe(e);case Q.ZodNullable:return GCe(e,n);case Q.ZodOptional:return XCe(e,n);case Q.ZodMap:return BCe(e,n);case Q.ZodSet:return $Ce(e,n);case Q.ZodLazy:return()=>e.getter()._def;case Q.ZodPromise:return QCe(e,n);case Q.ZodNaN:case Q.ZodNever:return HCe(n);case Q.ZodEffects:return NCe(e,n);case Q.ZodAny:return b1(n);case Q.ZodUnknown:return nwe(n);case Q.ZodDefault:return MCe(e,n);case Q.ZodBranded:return x1(e,n);case Q.ZodReadonly:return rwe(e,n);case Q.ZodCatch:return ACe(e,n);case Q.ZodPipeline:return ZCe(e,n);case Q.ZodFunction:case Q.ZodVoid:case Q.ZodSymbol:return;default:return(e=>void 0)(t)}};function N1(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==wCe)return i}if(r&&!n){let e=awe(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=iwe(e,e.typeName,t),o=typeof a==`function`?N1(a(),t):a;if(o&&owe(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}const awe=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:y1(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`),b1(t)):t.$refStrategy===`seen`?b1(t):void 0}},owe=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),swe=(e,t)=>{let n=ECe(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:N1(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??b1(n)}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=N1(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??b1(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 cwe(e){return!e||e===`jsonSchema7`||e===`draft-7`?`draft-7`:e===`jsonSchema2019-09`||e===`draft-2020-12`?`draft-2020-12`:`draft-7`}function P1(e,t){return VQ(e)?ae(e,{target:cwe(t?.target),io:t?.pipeStrategy??`input`}):swe(e,{strictUnions:t?.strictUnions??!0,pipeStrategy:t?.pipeStrategy??`input`})}function F1(e){let t=GQ(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=JQ(t);if(typeof n!=`string`)throw Error(`Schema method literal must be a string`);return n}function I1(e,t){let n=UQ(e,t);if(!n.success)throw n.error;return n.data}var lwe=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(y$,e=>{this._oncancel(e)}),this.setNotificationHandler(D$,e=>{this._onprogress(e)}),this.setRequestHandler(E$,e=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(N$,async(e,t)=>{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new m1(m$.InvalidParams,`Failed to retrieve task: Task not found`);return{...n}}),this.setRequestHandler(F$,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 m1(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 m1(m$.InvalidParams,`Task not found: ${r}`);if(!h1(i.status))return await this._waitForTaskUpdate(r,t.signal),await n();if(h1(i.status)){let e=await this._taskStore.getTaskResult(r,t.sessionId);return this._clearTaskQueue(r),{...e,_meta:{...e._meta,[ZQ]:{taskId:r}}}}return await n()};return await n()}),this.setRequestHandler(I$,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 m1(m$.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}),this.setRequestHandler(R$,async(e,t)=>{try{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new m1(m$.InvalidParams,`Task not found: ${e.params.taskId}`);if(h1(n.status))throw new m1(m$.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 m1(m$.InvalidParams,`Task not found after cancellation: ${e.params.taskId}`);return{_meta:{},...r}}catch(e){throw e instanceof m1?e:new m1(m$.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),m1.fromError(m$.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),p$(e)||g$(e)?this._onresponse(e):u$(e)?this._onrequest(e,t):oSe(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=m1.fromError(m$.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?.[ZQ]?.taskId;if(n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:m$.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=aSe(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 m1(m$.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:m$.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),p$(e)?n(e):n(new m1(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(p$(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),p$(e)?r(e):r(m1.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 m1?e:new m1(m$.InternalError,String(e))}}return}let i;try{let r=await this.request(e,j$,n);if(r.task)i=r.task.taskId,yield{type:`taskCreated`,task:r.task};else throw new m1(m$.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:i},n);if(yield{type:`taskStatus`,task:e},h1(e.status)){e.status===`completed`?yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)}:e.status===`failed`?yield{type:`error`,error:new m1(m$.InternalError,`Task ${i} failed`)}:e.status===`cancelled`&&(yield{type:`error`,error:new m1(m$.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 m1?e:new m1(m$.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||{},[ZQ]: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 m1?e:new m1(m$.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=UQ(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(m1.fromError(m$.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},P$,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},L$,t)}async cancelTask(e,t){return this.request({method:`tasks/cancel`,params:e},xSe,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||{},[ZQ]: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||{},[ZQ]: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||{},[ZQ]:t.relatedTask}}}),await this._transport.send(r,t)}setRequestHandler(e,t){let n=F1(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(n,r)=>{let i=I1(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=F1(e);this._notificationHandlers.set(n,n=>{let r=I1(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`&&u$(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new m1(m$.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 m1(m$.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new m1(m$.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 m1(m$.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=M$.parse({method:`notifications/tasks/status`,params:a});await this.notification(t),h1(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 m1(m$.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(h1(a.status))throw new m1(m$.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=M$.parse({method:`notifications/tasks/status`,params:o});await this.notification(t),h1(o.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}};function L1(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function uwe(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];L1(a)&&L1(i)?n[r]={...a,...i}:n[r]=i}return n}var dwe=t(ya(),1),fwe=t(Oa(),1);function pwe(){let e=new dwe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,fwe.default)(e),e}var mwe=class{constructor(e){this._ajv=e??pwe()}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)}}},hwe=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},l1,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},d1,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 gwe(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 _we(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 vwe=class extends lwe{constructor(e,t){super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(o1.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 mwe,this.setRequestHandler(C$,e=>this._oninitialize(e)),this.setNotificationHandler(T$,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(s1,async(e,t)=>{let n=t.sessionId||t.requestInfo?.headers[`mcp-session-id`]||void 0,{level:r}=e.params,i=o1.safeParse(r);return i.success&&this._loggingLevels.set(n,i.data),{}})}get experimental(){return this._experimental||={tasks:new hwe(this)},this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=uwe(this._capabilities,e)}setRequestHandler(e,t){let n=GQ(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(VQ(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=UQ(a1,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new m1(m$.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=UQ(j$,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new m1(m$.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=UQ(i1,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new m1(m$.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){_we(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){this._capabilities&&gwe(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:XQ.includes(t)?t:YQ,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`},v$)}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},u1,t):this.request({method:`sampling/createMessage`,params:e},l1,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},d1,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},d1,t);if(r.action===`accept`&&r.content&&n.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(n.requestedSchema)(r.content);if(!e.valid)throw new m1(m$.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof m1?e:new m1(m$.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},p1,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 R1=Symbol.for(`mcp.completable`);function z1(e){return!!e&&typeof e==`object`&&R1 in e}function ywe(e){return e[R1]?.complete}var bwe;(function(e){e.Completable=`McpCompletable`})(bwe||={});const xwe=/^[A-Za-z0-9._-]{1,128}$/;function Swe(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`),!xwe.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 Cwe(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 B1(e){let t=Swe(e);return Cwe(e,t.warnings),t.isValid}var wwe=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)}},V1=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 vwe(e,t)}get experimental(){return this._experimental||={tasks:new wwe(this)},this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||=(this.server.assertCanSetRequestHandler(K1(r1)),this.server.assertCanSetRequestHandler(K1(a1)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(r1,()=>({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=KQ(t.inputSchema);return e?P1(e,{strictUnions:!0,pipeStrategy:`input`}):Twe})(),annotations:t.annotations,execution:t.execution,_meta:t._meta};if(t.outputSchema){let e=KQ(t.outputSchema);e&&(n.outputSchema=P1(e,{strictUnions:!0,pipeStrategy:`output`}))}return n})})),this.server.setRequestHandler(a1,async(e,t)=>{try{let n=this._registeredTools[e.params.name];if(!n)throw new m1(m$.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new m1(m$.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 m1(m$.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i===`required`&&!r)throw new m1(m$.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 m1&&e.code===m$.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 WQ(KQ(e.inputSchema)??e.inputSchema,t);if(!r.success){let e=qQ(`error`in r?r.error:`Unknown error`);throw new m1(m$.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 m1(m$.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let r=await WQ(KQ(e.outputSchema),t.structuredContent);if(!r.success){let e=qQ(`error`in r?r.error:`Unknown error`);throw new m1(m$.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 m1(m$.InternalError,`Task ${s} not found during polling`);c=e}return await n.taskStore.getTaskResult(s)}setCompletionRequestHandler(){this._completionHandlerInitialized||=(this.server.assertCanSetRequestHandler(K1(f1)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(f1,async e=>{switch(e.params.ref.type){case`ref/prompt`:return _Ce(e),this.handlePromptCompletion(e,e.params.ref);case`ref/resource`:return vCe(e),this.handleResourceCompletion(e,e.params.ref);default:throw new m1(m$.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new m1(m$.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new m1(m$.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return J1;let r=GQ(n.argsSchema)?.[e.params.argument.name];if(!z1(r))return J1;let i=ywe(r);return i?q1(await i(e.params.argument.value,e.params.context)):J1}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 J1;throw new m1(m$.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let r=n.resourceTemplate.completeCallback(e.params.argument.name);return r?q1(await r(e.params.argument.value,e.params.context)):J1}setResourceRequestHandlers(){this._resourceHandlersInitialized||=(this.server.assertCanSetRequestHandler(K1(K$)),this.server.assertCanSetRequestHandler(K1(q$)),this.server.assertCanSetRequestHandler(K1(Y$)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(K$,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(q$,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([e,t])=>({name:e,uriTemplate:t.resourceTemplate.uriTemplate.toString(),...t.metadata}))})),this.server.setRequestHandler(Y$,async(e,t)=>{let n=new URL(e.params.uri),r=this._registeredResources[n.toString()];if(r){if(!r.enabled)throw new m1(m$.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 m1(m$.InvalidParams,`Resource ${n} not found`)}),!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||=(this.server.assertCanSetRequestHandler(K1(X$)),this.server.assertCanSetRequestHandler(K1(Z$)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(X$,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?Ewe(t.argsSchema):void 0}))})),this.server.setRequestHandler(Z$,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new m1(m$.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new m1(m$.InvalidParams,`Prompt ${e.params.name} disabled`);if(n.argsSchema){let r=await WQ(KQ(n.argsSchema),e.params.arguments);if(!r.success){let t=qQ(`error`in r?r.error:`Unknown error`);throw new m1(m$.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:HQ(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=HQ(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=>z1(e instanceof te?e._def?.innerType:e))&&this.setCompletionRequestHandler(),a}_createRegisteredTool(e,t,n,r,i,a,o,s,c){B1(e);let l={title:t,description:n,inputSchema:G1(r),outputSchema:G1(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`&&B1(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=HQ(t.paramsSchema)),t.outputSchema!==void 0&&(l.outputSchema=HQ(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(W1(n))r=t.shift(),t.length>1&&typeof t[0]==`object`&&t[0]!==null&&!W1(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 Twe={type:`object`,properties:{}};function H1(e){return typeof e==`object`&&!!e&&`parse`in e&&typeof e.parse==`function`&&`safeParse`in e&&typeof e.safeParse==`function`}function U1(e){return`_def`in e||`_zod`in e||H1(e)}function W1(e){return typeof e!=`object`||!e||U1(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(H1)}function G1(e){if(e){if(W1(e))return HQ(e);if(!U1(e))throw Error(`inputSchema must be a Zod schema or raw shape, received an unrecognized object`);return e}}function Ewe(e){let t=GQ(e);return t?Object.entries(t).map(([e,t])=>({name:e,description:tSe(t),required:!nSe(t)})):[]}function K1(e){let t=GQ(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=JQ(t);if(typeof n==`string`)return n;throw Error(`Schema method literal must be a string`)}function q1(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}const J1={completion:{values:[],hasMore:!1}};var Y1=class extends Error{constructor(e,t){super(e,t),this.name=`RequestError`}},Dwe=e=>e instanceof Y1?e:new Y1(e.message,{cause:e}),Owe=global.Request,X1=class extends Owe{constructor(e,t){typeof e==`object`&&Q1 in e&&(e=e[Q1]()),t?.body?.getReader!==void 0&&(t.duplex??=`half`),super(e,t)}},kwe=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)},Z1=Symbol(`wrapBodyStream`),Awe=(e,t,n,r,i)=>{let a={method:e,headers:n,signal:i.signal};if(e===`TRACE`){a.method=`GET`;let e=new X1(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[Z1]){let e;a.body=new ReadableStream({async pull(t){try{e||=Cd.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=Cd.toWeb(r);return new X1(t,a)},Q1=Symbol(`getRequestCache`),$1=Symbol(`requestCache`),e0=Symbol(`incomingKey`),t0=Symbol(`urlKey`),jwe=Symbol(`headersKey`),n0=Symbol(`abortControllerKey`),r0={get method(){return this[e0].method||`GET`},get url(){return this[t0]},get headers(){return this[jwe]||=kwe(this[e0])},[Symbol(`getAbortController`)](){return this[Q1](),this[n0]},[Q1](){return this[n0]||=new AbortController,this[$1]||=Awe(this.method,this[t0],this.headers,this[e0],this[n0])}};[`body`,`bodyUsed`,`cache`,`credentials`,`destination`,`integrity`,`mode`,`redirect`,`referrer`,`referrerPolicy`,`signal`,`keepalive`].forEach(e=>{Object.defineProperty(r0,e,{get(){return this[Q1]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(r0,e,{value:function(){return this[Q1]()[e]()}})}),Object.defineProperty(r0,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[$1]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(r0,X1.prototype);var Mwe=(e,t)=>{let n=Object.create(r0);n[e0]=e;let r=e.url||``;if(r[0]!==`/`&&(r.startsWith(`http://`)||r.startsWith(`https://`))){if(e instanceof Ad)throw new Y1(`Absolute URL for :path is not allowed in HTTP/2`);try{n[t0]=new URL(r).href}catch(e){throw new Y1(`Invalid absolute URL`,{cause:e})}return n}let i=(e instanceof Ad?e.authority:e.headers.host)||t;if(!i)throw new Y1(`Missing host header`);let a;if(e instanceof Ad){if(a=e.scheme,!(a===`http`||a===`https`))throw new Y1(`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 Y1(`Invalid host header`);return n[t0]=o.href,n},i0=Symbol(`responseCache`),a0=Symbol(`getResponseCache`),o0=Symbol(`cache`),s0=global.Response,c0=class e{#e;#t;[a0](){return delete this[o0],this[i0]||=new s0(this.#e,this.#t)}constructor(t,n){let r;if(this.#e=t,n instanceof e){let e=n[i0];if(e){this.#t=e,this[a0]();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[o0]=[n?.status||200,t,r||n?.headers])}get headers(){let e=this[o0];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||{"content-type":`text/plain; charset=UTF-8`})),e[2]):this[a0]().headers}get status(){return this[o0]?.[0]??this[a0]().status}get ok(){let e=this.status;return e>=200&&e<300}};[`body`,`bodyUsed`,`redirected`,`statusText`,`trailers`,`type`,`url`].forEach(e=>{Object.defineProperty(c0.prototype,e,{get(){return this[a0]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(c0.prototype,e,{value:function(){return this[a0]()[e]()}})}),Object.defineProperty(c0.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[i0]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(c0,s0),Object.setPrototypeOf(c0.prototype,s0.prototype);async function Nwe(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function l0(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 Pwe(e,t){if(e.locked)throw TypeError(`ReadableStream is locked.`);return t.destroyed?void 0:l0(e.getReader(),t)}var u0=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},Fwe=`x-hono-already-sent`;global.crypto===void 0&&(global.crypto=Mte);var d0=Symbol(`outgoingEnded`),f0=Symbol(`incomingDraining`),Iwe=500,Lwe=64*1024*1024,p0=e=>{let t=e;if(e.destroyed||t[f0])return;if(t[f0]=!0,e instanceof Ad){try{e.stream?.close?.(Yte.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,Iwe);a.unref?.();let o=e=>{n+=e.length,n>Lwe&&i()};e.on(`data`,o),e.on(`end`,r),e.on(`error`,r),e.resume()},Rwe=()=>new Response(null,{status:400}),m0=e=>new Response(null,{status:e instanceof Error&&(e.name===`TimeoutError`||e.constructor.name===`TimeoutError`)?504:500}),h0=(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))},g0=e=>{`flushHeaders`in e&&e.writable&&e.flushHeaders()},_0=async(e,t)=>{let[n,r,i]=e[o0],a=!1;if(!i)i={"content-type":`text/plain; charset=UTF-8`};else if(i instanceof Headers)a=i.has(`content-length`),i=u0(i);else if(Array.isArray(i)){let e=new Headers(i);a=e.has(`content-length`),i=u0(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())):(g0(t),await Pwe(r,t)?.catch(e=>h0(e,t))),t[d0]?.()},zwe=e=>typeof e.then==`function`,Bwe=async(e,t,n={})=>{if(zwe(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(m0);if(o0 in e)return _0(e,t);let r=u0(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 Nwe(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&&g0(t),await l0(n,t,o))}else r[Fwe]||(t.writeHead(e.status,r),t.end());t[d0]?.()},v0=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==X1&&(Object.defineProperty(global,`Request`,{value:X1}),Object.defineProperty(global,`Response`,{value:c0})),async(r,i)=>{let a,o;try{o=Mwe(r,t.hostname);let s=!n||r.method===`GET`||r.method===`HEAD`;if(s||(r[Z1]=!0,r.on(`end`,()=>{s=!0}),r instanceof Ad&&(i[d0]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{p0(r)})})}),i.on(`finish`,()=>{s||p0(r)})),i.on(`close`,()=>{o[n0]&&(r.errored?o[n0].abort(r.errored.toString()):i.writableFinished||o[n0].abort(`Client connection prematurely closed.`)),s||setTimeout(()=>{s||setTimeout(()=>{p0(r)})})}),a=e(o,{incoming:r,outgoing:i}),o0 in a)return _0(a,i)}catch(e){if(a)return h0(e,i);if(t.errorHandler){if(a=await t.errorHandler(o?e:Dwe(e)),!a)return}else a=o?m0(e):Rwe()}try{return await Bwe(a,i,t)}catch(e){return h0(e,i)}}},Vwe=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
1192
1192
  `;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=>_$.parse(e)):[_$.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(w$);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(u$)){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=>w$(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)u$(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)u$(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;u$(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&&!XQ.includes(t))return this.onerror?.(Error(`Bad Request: Unsupported protocol version: ${t} (supported versions: ${XQ.join(`, `)})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${t} (supported versions: ${XQ.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((p$(e)||g$(e))&&(n=e.id),n===void 0){if(p$(e)||g$(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(p$(e)||g$(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)}}}},Hwe=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new Vwe(e),this._requestListener=v0(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 v0(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 y0=`https://json-schema.org/draft/2020-12/schema`,b0=`tools/list`;function x0(e){let t=e;if(t.__jsonSchemaDialectInstalled===!0)return;let n=e.server._requestHandlers?.get(b0);if(typeof n!=`function`){console.warn(`[json-schema-dialect] No ${b0} 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(r1,async(e,t)=>{let r=await n(e,t);for(let e of r.tools??[])e.inputSchema&&(e.inputSchema.$schema=y0),e.outputSchema&&(e.outputSchema.$schema=y0);return r}),t.__jsonSchemaDialectInstalled=!0}function S0(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||!Uwe(e.inputSchema))return n.call(this,e,t,r);let i=await e.inputSchema.safeParseAsync(t);if(i.success)return i.data;let a=_e(i.error);throw new m1(m$.InvalidParams,`Input validation error: Invalid arguments for tool ${r}:\n${a}`)},t.__prettyZodErrorsInstalled=!0}function Uwe(e){return typeof e!=`object`||!e?!1:typeof e.safeParseAsync==`function`}const C0=2e3,w0=2e3,Wwe=[/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 T0(e){return Wwe.some(t=>t.test(e))}function Gwe(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 Pu(e)?e:null}catch{return null}}function Kwe(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&&Pu(a)?a:null}function qwe(e){let t=[];for(let n of e.split(`
@@ -2035,7 +2035,7 @@ native-divergence-injected
2035
2035
  `)),`${n}${o}`}function HFe(e,t){let{bom:n,body:r}=R7(e),i=[],a=UP(r,i,{allowTrailingComma:!0,disallowComments:!1});if(!a||i.length>0||a.type!==`object`)return{kind:`declined`,reason:`unparseable`};if(VFe(a,t.topLevelKey)>1)return{kind:`declined`,reason:`duplicate-container`};let o=[t.topLevelKey,`open-knowledge`],s=WP(a,o);if(!s)return{kind:`no-entry`,raw:e,shell:e};let c=GP(s);if(!I7(c))return{kind:`declined`,reason:`foreign-entry`};let l=Xn(c);if(l.kind===`declined`)return{kind:`declined`,reason:`foreign-entry`};let u=r,d=t.managedKeys.map(e=>({key:e,node:WP(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(B7(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 B7(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 UFe(e,t,n){if(!n)return{kind:`declined`,reason:`no-native-writer`};let{bom:r,body:i}=R7(e),a;try{a=n.parseToObject(i)}catch{return{kind:`declined`,reason:`unparseable`}}let o=a[t.topLevelKey],s=I7(o)?o[`open-knowledge`]:void 0;if(s===void 0)return{kind:`no-entry`,raw:e,shell:e};if(!I7(s))return{kind:`declined`,reason:`foreign-entry`};let c=Xn(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,B7(t,e)])))}catch{return{kind:`declined`,reason:`unparseable`}}let u=z7(e,l.text);return{kind:`managed`,raw:`${r}${i}`,shell:u,entry:s,descriptor:c.descriptor}}function V7(e,t,n){return e===null?{kind:`absent`}:Buffer.byteLength(e,`utf8`)>10485760?{kind:`declined`,reason:`oversize`}:t.format===`json`?HFe(e,t):UFe(e,t,n)}function WFe(e,t,n){let{bom:r,body:i}=R7(e),a=i;for(let e of t.managedKeys){let r=UP(a,[],{allowTrailingComma:!0,disallowComments:!1}),o=r?WP(r,[t.topLevelKey,`open-knowledge`,e]):void 0;o&&JSON.stringify(GP(o))===JSON.stringify(n[e])||(a=qP(a,KP(a,[t.topLevelKey,`open-knowledge`,e],n[e],{formattingOptions:BFe(i)})))}return`${r}${a}`}function H7(e,t,n,r){if(t.format===`json`)return WFe(e,t,n);if(!r)return null;let{body:i}=R7(e),a=Object.fromEntries(t.managedKeys.map(e=>[e,n[e]]));try{return z7(e,r.upsertEntry(i,`open-knowledge`,a).text)}catch{return null}}function GFe(e){let t=L7(e.target);return t?H7(e.raw,t,e.entry,e.tomlEditor):null}function U7(e){let t=L7(e.target);if(!t)return null;let n=V7(e.raw,t,e.tomlEditor);return n.kind===`managed`||n.kind===`no-entry`?n.shell:null}function KFe(e,t,n){return t.shell===n.shell?t.shell:t.shell===e.shell?n.shell:n.shell===e.shell?t.shell:null}function W7(e){let t=L7(e.target);if(!t)return{kind:`declined`,reason:`unsupported-target`};let n={base:V7(e.layers.base,t,e.tomlEditor),head:V7(e.layers.head,t,e.tomlEditor),index:V7(e.layers.index,t,e.tomlEditor),worktree:V7(e.layers.worktree,t,e.tomlEditor),incoming:V7(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=KFe(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=Xn(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=H7(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}}const qFe=F(`github-account`),JFe=(e,t)=>{let n=ku(`git`,[`config`,`--get-urlmatch`,`credential`,e],Cw({cwd:t,encoding:`utf-8`,timeout:5e3}));return n.error||n.status===null||n.status!==0&&n.status!==1?(qFe.warn({status:n.status,signal:n.signal,err:n.error,stderr:typeof n.stderr==`string`?sI(n.stderr).slice(0,200):void 0},`[github-account] git config --get-urlmatch failed — treating the URL as declaring no account`),null):n.status!==0||!n.stdout?null:n.stdout};function YFe(e){return e.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/]*@/i,`$1`)}function XFe(e){let t;for(let n of e.split(`
2036
2036
  `)){let e=n.startsWith(`credential.username `)?n.slice(20).trim():void 0;e&&(t=e)}return t}function G7(e,t={}){let n=qF(e);if(!n)return{source:`active`};let r=n.host;if(n.login)return{host:r,login:n.login,source:`remote-url`};if(n.transport!==`https`)return{host:r,source:`active`};let i=(t._readCredentialUrlMatch??JFe)(YFe(e),t.cwd??process.cwd()),a=i?WF(XFe(i)):void 0;return a?{host:r,login:a,source:`credential-config`}:{host:r,source:`active`}}function ZFe(e={}){let t=e.ttlMs??6e4,n=e.now??Date.now,r;return{resolve(i){let a=Ihe(i);if(!a)return{source:`active`};let o=n();if(r&&r.projectDir===i&&r.url===a&&r.expiresAt>o)return r.account;let s=G7(a,{cwd:i,_readCredentialUrlMatch:e._readCredentialUrlMatch});return r={projectDir:i,url:a,account:s,expiresAt:o+t},s},invalidate(){r=void 0}}}function K7(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 QFe(e,t){return t===`anonymous`?Math.max(180,e):e}const $=F(`sync-engine`),q7=new Set(zFe),J7=/^[0-9a-f]{40}$/i,$Fe=Od(Eu);var Y7=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 eIe(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 tIe(e){return e.kind===`allowed`?{checkStatus:`allowed`}:e.kind===`denied`?{checkStatus:`denied`,deniedReason:e.reason,...e.resolvedLogin===void 0?{}:{resolvedLogin:e.resolvedLogin},...e.declaredLogin===void 0?{}:{declaredLogin:e.declaredLogin},...e.declaredSource===void 0?{}:{declaredSource:e.declaredSource}}:{checkStatus:`unknown`,unknownError:e.error}}function X7(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.resolvedLogin===t.resolvedLogin&&e.declaredLogin===t.declaredLogin&&e.declaredSource===t.declaredSource:e.checkStatus===`unknown`&&t.checkStatus===`unknown`?e.unknownError===t.unknownError:!0}const Z7={syncScope:{pathBase:`content`}},Q7={syncScope:{pathBase:`project`}},$7=new Set([`diverged-local-commits`,`external-changes-pending`]);function e9(e){let t=e*1e3,n=t*.15*(2*Math.random()-1);return Math.round(t+n)}function t9(e){let t=Md(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 nIe(e){return e.class===`network`&&e.subclass!==`429`&&e.subclass!==`5xx`}function n9(e){return e>=8?3600*1e3:e>=5?900*1e3:e>=3?300*1e3:0}const r9=12e4;var rIe=class{state=`dormant`;projectDir;contentDir;contentFilter;contentRoot;rootOkOutsideContentWalk;pullIntervalSeconds;pushIntervalSeconds;mode;credentialConfig;cc1Broadcaster;onStateChange;onContentConflictsDetected;onContentConflictsResolved;setBatchInProgress;onAutoDisable;checkpointBeforeStrandedConversion;checkpointBeforeOverlayRestore;mcpTomlEditor;detectGh;detectGhAccounts;ghTokenSource;ghAccountResolver;declaredAccountWarnKey;tokenStore;checkPushPermissionFn;pushPermission=null;pushPermissionProbeInFlight=!1;authTier=`unknown`;pullTimer=null;pushTimer=null;stateSaveTimer=null;lastSyncUtc=null;get lastRunUtc(){return this.lastPullOkUtc===null?this.lastPushOkUtc:this.lastPushOkUtc===null||this.lastPullOkUtc>this.lastPushOkUtc?this.lastPullOkUtc:this.lastPushOkUtc}lastPullOkUtc=null;lastPushOkUtc=null;pushCycleLanded=!1;fetchOnlyInFlight=!1;lastFetchUtc=null;lastPushedSha=null;lastPullUtc=null;lastPullOutcome=null;consecutivePullFailures=0;consecutivePushFailures=0;pushStreakIsConnectivity=!1;consecutiveContentions=0;ahead=0;behind=0;conflictCount=0;pushError;pushErrorCode;pullError;pullErrorCode;pausedReason;blockingPaths=[];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=nN(R(this.contentDir,L(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.detectGhAccounts=e.detectGhAccounts,this.ghTokenSource=EFe(e.detectGh),this.ghAccountResolver=ZFe({_readCredentialUrlMatch:e._readCredentialUrlMatch}),this.tokenStore=e.tokenStore,this.checkPushPermissionFn=e.checkPushPermissionFn??PFe,this.statePath=z(eA(this.projectDir),`sync-state.json`),this.conflictStore=new CZ(this.projectDir,this.currentBranch)}syncGhTarget(){let e=this.ghAccountResolver.resolve(this.projectDir);return{account:e,host:e.host??`github.com`}}resolveRelayGhToken(){let{account:e,host:t}=this.syncGhTarget(),n=this.ghTokenSource.get(t,e.login);return this.noteDeclaredAccountOutcome(e,t,n),n}noteDeclaredAccountOutcome(e,t,n){let r=e.login,i=n===null?void 0:n.login??this.activeGhLogin(t);if(!(r!==void 0&&(n===null||!UF(i,r)))){this.declaredAccountWarnKey=void 0;return}let a=`${t}\0${r}\0${e.source}\0${n===null?`none`:`fallback`}`;a!==this.declaredAccountWarnKey&&(n===null?$.warn({host:t,declaredLogin:r,declaredSource:e.source},`[sync] declared GitHub account produced no gh token — git runs with no relayed credential`):$.warn({host:t,declaredLogin:r,declaredSource:e.source,resolvedLogin:i},`[sync] declared GitHub account did not produce the gh token — using the active account`)),this.declaredAccountWarnKey=a}parkedOnAmbiguousNotFound(){return(this.state===`auth-error`||this.pausedReason===`auth-error`)&&(this.pushErrorCode===`auth-not-found-as-identity`||this.pullErrorCode===`auth-not-found-as-identity`)}activeGhLogin(e){if(this.detectGhAccounts)try{return this.detectGhAccounts(e)?.find(e=>e.active)?.login}catch(t){$.warn({err:t,host:e},`[sync] detectGhAccounts failed — fallback identity stays unnamed`);return}}gitHandle(e){return Kc(this.projectDir,{credentialConfig:this.credentialConfig,gitIndexFile:e,ghToken:this.resolveRelayGhToken()??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=Bd(this.projectDir),n=t?L(t,`MERGE_HEAD`):null,r=n!==null&&V(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 Ib(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=K7(this.lastFetchUtc,this.currentPullIntervalSeconds()),s=K7(this.lastPushOkUtc,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()}setIntervals(e,t){let n=this.pullIntervalSeconds!==e,r=this.pushIntervalSeconds!==t;!n&&!r||($.info({pullFrom:this.pullIntervalSeconds,pullTo:e,pushFrom:this.pushIntervalSeconds,pushTo:t},`[sync] cycle intervals changed`),this.pullIntervalSeconds=e,this.pushIntervalSeconds=t,n&&this.pullTimer!==null&&this.schedulePull(),r&&this.pushTimer!==null&&this.schedulePush())}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.consecutivePullFailures=0,this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,!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(0),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 Dd(50)}}async probeUnpushedCommitCount(){return!this.hasRemote||t9(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||t9(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 Gc(()=>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.ghAccountResolver.invalidate(),!(this.state!==`auth-error`&&this.pausedReason!==`auth-error`))){if(this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.consecutivePullFailures=0,this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,this.hasRemote=await this.probeRemote(),!this.hasRemote){this.transitionTo(`dormant`),this.saveStateNow();return}this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush(0),this.saveStateNow(),this.probePushPermissionInternal(`refresh`)}}async trigger(e=`sync`){if(e===`fetch`){await this.fetchOnly();return}if(this.consecutivePullFailures=0,this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,this.consecutiveContentions=0,(this.pausedReason===`dirty-tree`||this.pausedReason===`external-changes-pending`||this.pausedReason===`non-content-merge-failure`)&&(this.pausedReason=void 0,this.clearPullError()),this.parkedOnAmbiguousNotFound()&&(this.ghTokenSource.invalidate(),this.ghAccountResolver.invalidate(),this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.transitionTo(`idle`),this.schedulePull(),this.schedulePush()),this.probePushPermissionInternal(`refresh`),e===`pull`){await this.pullOnce();return}if(e===`push`){await this.pushOnce();return}this.state===`dormant`||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`),await this.pushOnce(),await this.pullOnce(`sync`)}async pushOnce(){if(this.mode===`full`){await this.runPushCycle();return}await this.runOneShotPush()}async runOneShotPush(){if(this.pushInFlight||this.pullInFlight){$.info({pushInFlight:this.pushInFlight,pullInFlight:this.pullInFlight},`[sync] one-shot push refused — a cycle is already in flight`);return}if(this.state===`conflict`||this.state===`auth-error`){$.info({state:this.state},`[sync] one-shot push refused — state=${this.state}`);return}if(this.conflictCount>0){$.info({conflictCount:this.conflictCount},`[sync] one-shot push refused — unresolved conflicts hold the tree`);return}if(!this.hasRemote||t9(this.projectDir)){$.info({hasRemote:this.hasRemote},`[sync] one-shot push refused — no remote, or no commits yet`);return}let e=this.state;this.pushInFlight=!0;try{await this.doPushCycle(1)}finally{this.pushInFlight=!1,this.pushCycleLanded&&this.markRun();let t=this.currentState();t!==`conflict`&&t!==`auth-error`&&this.transitionTo(e),this.cc1Broadcaster?.signal(`sync-status`)}}async fetchOnly(){if(!this.hasRemote||t9(this.projectDir)||this.pullInFlight||this.pushInFlight||this.fetchOnlyInFlight)return!1;this.fetchOnlyInFlight=!0;let e=this.gitHandle();try{await e.git.fetch(`origin`),this.lastFetchUtc=new Date().toISOString(),this.scheduleSaveState()}catch(e){return $.debug({err:e},`[sync] panel-open fetch failed — counts left as they were`),!1}finally{this.fetchOnlyInFlight=!1}return await this.refreshDivergenceCounts(e),this.cc1Broadcaster?.signal(`sync-status`),!0}async refreshDivergenceCounts(e){try{let t=await e.git.status();this.ahead=t.ahead,this.behind=t.behind}catch(e){$.debug({err:e},`[sync] divergence-count refresh failed — keeping previous counts`)}}async pullOnce(e=`explicit`){let t=this.mode,n=await this.runOneShotPull(e);return $.info({mode:t,outcome:n},`[sync] one-shot pull complete`),n}async runOneShotPull(e){if(this.pullInFlight||this.pushInFlight)return $.info({pullInFlight:this.pullInFlight,pushInFlight:this.pushInFlight},`[sync] one-shot pull refused — a cycle is already in flight`),this.recordPullOutcome(`refused`);if(this.state===`conflict`)return $.info({state:this.state},`[sync] one-shot pull refused — the conflict resolver holds the tree`),this.recordPullOutcome(`refused`);if(!this.hasRemote||t9(this.projectDir))return $.info({hasRemote:this.hasRemote},`[sync] one-shot pull refused — no remote, or no commits yet`),this.recordPullOutcome(`refused`);let t=this.mode,n=this.state,r=this.pausedReason;this.pullInFlight=!0;try{return this.recordPullOutcome(await this.doPullCycle(e))}finally{this.pullInFlight=!1,t===`off`?($7.has(this.pausedReason)||$7.has(r)||(this.pausedReason=r),this.transitionTo(n)):this.schedulePull()}}recordPullOutcome(e){return this.lastPullUtc=new Date().toISOString(),this.lastPullOutcome=e,(e===`succeeded`||e===`up-to-date`||e===`conflict`)&&(this.lastPullOkUtc=new Date().toISOString()),this.cc1Broadcaster?.signal(`sync-status`),e}getStatus(){return{state:this.state,lastSyncUtc:this.lastSyncUtc,lastRunUtc:this.lastRunUtc,lastPullOkUtc:this.lastPullOkUtc,lastPushOkUtc:this.lastPushOkUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,lastPullUtc:this.lastPullUtc,lastPullOutcome:this.lastPullOutcome,ahead:this.ahead,behind:this.behind,consecutiveFailures:this.consecutivePullFailures,consecutivePushFailures:this.consecutivePushFailures,conflictCount:this.conflictCount,hasRemote:this.hasRemote,syncEnabled:this.mode!==`off`,syncMode:this.mode,identityUnresolved:this.identityUnresolved,remote:this.hasRemote?Lhe(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.blockingPathsForStatus().length>0?{blockingPaths:this.blockingPathsForStatus()}:{},...this.pushPermission===null?{}:{pushPermission:this.pushPermission}}}blockingPathsForStatus(){return this.pausedReason===`external-changes-pending`?this.blockingPaths.slice(0,50):[]}getBlockingPaths(){return this.pausedReason===`external-changes-pending`?[...this.blockingPaths]:[]}async commitBlockingPaths(){let e=this.getBlockingPaths();if(e.length===0)return null;let t=this.gitHandle();return Gc(async()=>{await this.applyCommitIdentity(t);try{if(await t.git.raw([`add`,`--`,...e]),(await Ib(t.git,[`diff`,`--cached`,`--name-only`,`--`,...e])).length===0)return null;await t.git.raw([`commit`,`-m`,`Commit local changes before syncing`,`--`,...e])}catch(n){throw await t.git.raw([`reset`,`--`,...e]).catch(()=>{}),$.error({err:n,files:e.length},`[sync] commit of blocking paths failed`),n}let n=(await t.git.revparse(`HEAD`)).trim();return this.clearBlockingPause(),$.info({files:e.length},`[sync] committed overlapping paths at user request`),n})}clearBlockingPause(){this.blockingPaths=[],this.pausedReason=void 0,this.clearPullError(),this.consecutivePullFailures=0,this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,this.cc1Broadcaster?.signal(`sync-status`),this.scheduleSaveState()}async refreshPushPermission(){return this.probePushPermissionInternal(`refresh`)}async refreshIdentity(){let e=await uB(this.projectDir)===null;this.identityUnresolved!==e&&(this.identityUnresolved=e,this.cc1Broadcaster?.signal(`sync-status`))}async applyCommitIdentity(e){let t=await uB(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`;Yc(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=YF(this.projectDir);if(t.kind!==`ok`){let e={checkStatus:`unknown`},t=this.pushPermission;return this.pushPermission=e,X7(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{account:n}=this.syncGhTarget(),r;try{r=await this.checkPushPermissionFn({owner:t.owner,repo:t.repo,host:t.host,transport:t.transport,account:n,detectGh:this.detectGh,detectGhAccounts:this.detectGhAccounts,tokenStore:this.tokenStore})}catch(t){$.warn({err:t,caller:e},`[sync] push-permission probe threw — recording unknown/network`),r={kind:`unknown`,error:`network`}}finally{this.pushPermissionProbeInFlight=!1}let i=tIe(r),a=this.pushPermission;this.pushPermission=i;let o=!1;return i.checkStatus===`denied`&&this.mode===`full`&&this.parkedOnAmbiguousNotFound()&&$.info({reason:i.deniedReason,caller:e},`[sync] probe denial not applied — repository-not-found park is the more specific diagnosis`),i.checkStatus===`denied`&&this.mode===`full`&&!this.parkedOnAmbiguousNotFound()?(this.pausedReason!==`no-push-permission`||this.state!==`disabled`)&&(this.pausedReason=`no-push-permission`,this.transitionTo(`disabled`),o=!0,$.info({reason:i.deniedReason,caller:e},`[sync] paused — no push permission on origin`)):i.checkStatus===`allowed`&&this.pausedReason===`no-push-permission`&&(this.pausedReason=void 0,this.state===`disabled`&&this.mode===`full`&&this.transitionTo(`idle`),o=!0,$.info({caller:e,priorState:this.state},`[sync] push permission restored`)),!o&&!X7(a,i)&&this.cc1Broadcaster?.signal(`sync-status`),i}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(!V(L(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=Bd(this.projectDir),r=n?L(n,`MERGE_HEAD`):null;if(r!==null&&V(r))try{let n=this.gitHandle(),r=new Set(await Ib(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.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush(0)):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.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush(0)):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(0)))}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??this.effectivePushDelayMs();this.pushTimer=setTimeout(()=>{this.pushTimer=null,this.runPushCycle().catch(e=>{$.error({err:e},`[sync] push cycle uncaught error`)})},t)}async resolveAuthTier(){if(this.resolveRelayGhToken()!==null)return`authenticated`;if(this.tokenStore)try{if((await this.tokenStore.get(this.syncGhTarget().host))?.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`?QFe(this.pullIntervalSeconds,this.authTier===`anonymous`?`anonymous`:`authenticated`):this.pullIntervalSeconds}effectivePullDelayMs(){let e=n9(this.consecutivePullFailures),t=e>0?e/1e3:0;return e9(Math.max(t,this.currentPullIntervalSeconds()))}effectivePushDelayMs(){let e=n9(this.consecutivePushFailures),t=e>0?e/1e3:0;return e9(Math.max(t,this.pushIntervalSeconds))}logContention(){let e={consecutiveContentions:this.consecutiveContentions,consecutivePushFailures:this.consecutivePushFailures,releasedConnectivityStreak:this.pushStreakIsConnectivity};this.consecutiveContentions>=3?$.warn(e,`[sync] push repeatedly losing to remote contention — not backing off by design`):$.info(e,`[sync] push still rejected after retry (contention) — scheduling next push at base cadence`)}bumpFailureCount(e,t=!1){e===`push`?(this.consecutiveContentions=0,this.consecutivePushFailures++,this.pushStreakIsConnectivity=(this.consecutivePushFailures===1||this.pushStreakIsConnectivity)&&t):this.consecutivePullFailures++}async runPullCycle(){if(!this.pullInFlight&&!(this.state===`dormant`||this.state===`disabled`||this.state===`auth-error`)){if(this.state===`conflict`){this.schedulePull();return}if(t9(this.projectDir)){this.schedulePull();return}this.mode===`follow`&&await this.refreshAuthTier(),this.pullInFlight=!0;try{this.recordPullOutcome(await this.doPullCycle(this.mode===`full`?`sync`:`explicit`))}finally{this.pullInFlight=!1,this.schedulePull()}}}async doPullCycle(e){let t=this.gitHandle(),n;try{let e=(await t.git.raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();if(!e||e===`HEAD`)return this.transitionTo(`disabled`),this.pausedReason=`detached-head`,$.warn({},`[sync] detached HEAD — pausing sync`),`refused`;n=e,this.currentBranch=n}catch(e){return this.handleError(k7(e instanceof Error?e:Error(String(e))),`pull`),`error`}this.transitionTo(`fetching`);try{await t.git.fetch(`origin`),this.lastFetchUtc=new Date().toISOString(),this.consecutivePullFailures=0,this.clearPullError(),this.consecutivePushFailures>0&&this.pushStreakIsConnectivity&&($.info({cleared:this.consecutivePushFailures},`[sync] fetch succeeded — releasing connectivity-class push backoff`),this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,this.schedulePush())}catch(e){let t=k7(e instanceof Error?e:Error(String(e)));return this.handleError(t,`pull`),`error`}if(await this.refreshDivergenceCounts(t),this.behind>0&&e===`explicit`){let e=await this.doPullCycleB1(t,n);return this.scheduleSaveState(),e}if(this.behind>0&&this.conflictCount===0){this.pausedReason===`diverged-local-commits`&&(this.pausedReason=void 0),this.transitionTo(`pulling`),this.setBatchInProgress?.(!0);try{await this.commitDirtyContentFilesToHead(t);let e=await this.prepareForMerge(t,n);if(!e.proceed)return`refused`;let r=!0,i=!0;try{await this.applyCommitIdentity(t),await t.git.merge([`origin/${n}`]),this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.pausedReason===`external-changes-pending`&&this.clearBlockingPause(),this.transitionTo(`idle`)}finally{e.needsStashPop&&(r=await this.popPreMergeStash(t)),i=this.restoreReconciledMcpOverlays(e.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(e.reconciled),this.scheduleSaveState(),`succeeded`}catch(e){let t=k7(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 Ib(e.git,[`diff-index`,`--name-only`,`HEAD`]),a=new Set(await Ib(e.git,[`diff`,`--name-only`,`HEAD..origin/${t}`]));r=i.filter(e=>a.has(e))}catch(e){return this.handleError(k7(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(k7(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(k7(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(k7(e instanceof Error?e:Error(String(e))),`pull`),`error`}return n.timedOut?($.warn({},`[sync] pull-only: fast-forward timed out — backing off`),this.handleError(k7(Error(`git merge --ff-only timed out after ${r9}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(k7(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(k7(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.blockingPaths=[],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 $Fe(`git`,[`-c`,`core.autocrlf=false`,`merge`,`--ff-only`,`origin/${t}`],{cwd:this.projectDir,env:e.env,windowsHide:!0,timeout:r9}),{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:eIe({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(!V(L(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=H(L(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&&q7.has(p)){let t=await this.readMcpGitBlob(e,n,p),r=W7({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=Os(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){let n={allowShareableOkArtifact:nP};for(let{path:t,bytes:r}of e){let e=L(this.projectDir,t);xL(e,this.projectDir,n),Ic(e,r)}for(let e of t){let t=L(this.projectDir,e);xL(t,this.projectDir,n);try{Sc(t)}catch(e){if(e.code!==`ENOENT`)throw e}}}isContentConflictPath(e){let t=L(this.projectDir,e),n=nN(R(this.contentDir,t));return!n.startsWith(`..`)&&Px(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 Ib(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(this.conflictCount>0){this.schedulePush();return}if(t9(this.projectDir)){this.schedulePush();return}if(this.pullInFlight){$.info({pullInFlight:!0},`[sync] push cycle deferred — a pull cycle holds the tree`),this.pushTimer===null&&this.schedulePush();return}this.pushInFlight=!0;try{await this.doPushCycle(1)}finally{this.pushInFlight=!1,this.pushCycleLanded&&this.markRun(),this.schedulePush()}}}async doPushCycle(e=0){this.pushCycleLanded=!1;let t=L(ud(),`ok-sync-idx-${process.pid}-${Date.now()}.idx`),n=null;this.transitionTo(`pushing`);try{let e=this.gatherContentFilesSync();await Gc(async()=>{let r=this.gitHandle(t);if(t9(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(k7(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.pushCycleLanded=!0,this.consecutivePushFailures=0,this.consecutiveContentions=0,this.pushStreakIsConnectivity=!1,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 Ib(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)??nN(R(this.contentDir,L(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||!J7.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.pushCycleLanded=!0,this.ahead=0,this.consecutivePushFailures=0,this.consecutiveContentions=0,this.pushStreakIsConnectivity=!1,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 Y7&&$.warn({err:n},`[sync] push cycle: staging error detail`);let r=k7(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);let t=`fetch`;try{await e.git.fetch(`origin`),t=`push`,await this.commitDirtyContentFilesToHead(e);let n=await this.prepareForMerge(e,this.currentBranch);if(!n.proceed){this.setBatchInProgress?.(!1);return}let r=!0,i=!0;try{await this.applyCommitIdentity(e),t=`merge`,await e.git.merge([`origin/${this.currentBranch}`]),t=`push`}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`);await this.persistReconciledMcpEntries(n.reconciled)}catch(e){let n=k7(e instanceof Error?e:Error(String(e)));if(n.class===`semantic`&&n.subclass===`merge-conflict`)await this.handleMergeConflict();else{let r=t===`merge`||t===`fetch`?`pull`:`push`;$.warn({err:e,stage:t},`[sync] push retry error detail`),this.handleError(n,r)}this.scheduleSaveState();return}finally{this.setBatchInProgress?.(!1)}await this.doPushCycle(0);return}this.consecutiveContentions++,this.logContention(),this.pushStreakIsConnectivity&&(this.consecutivePushFailures=0,this.pushStreakIsConnectivity=!1,this.clearPushError()),this.state===`pushing`&&this.transitionTo(`idle`)}else this.handleError(r,`push`)}finally{try{id(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=L(ud(),`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 Ib(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||!J7.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{id(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=H(L(this.projectDir,n),`utf8`)}catch{}return W7({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 Ib(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 Ib(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=q7,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.blockingPaths=a,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.consecutivePullFailures=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.blockingPaths=[],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=L(this.projectDir,n.path);xL(e,this.projectDir);let t=null;try{t=H(e,`utf8`)}catch(e){$.warn({err:e,path:n.path},`[sync] could not read MCP config before restoring reconciled overlay`)}t!==n.raw&&Ic(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=Bd(this.projectDir);return e?[`MERGE_HEAD`,`CHERRY_PICK_HEAD`,`REVERT_HEAD`,`rebase-merge`,`rebase-apply`].some(t=>V(L(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 Gc(async()=>{let t=L(ud(),`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=GFe({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),ad(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=U7({target:o.path,raw:l,tomlEditor:this.mcpTomlEditor}),m=U7({target:o.path,raw:o.raw,tomlEditor:this.mcpTomlEditor}),h=p!==null&&p===m?l:o.raw,g=`${t}.replay-${r}`;n.push(g),ad(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(!J7.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=L(this.projectDir,e.path);xL(t,this.projectDir),H(t,`utf8`)!==e.raw&&Ic(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{id(e)}catch{}try{id(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 Ib(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 Y7(nN(R(this.projectDir,t))||`.`,e)},n=(r,i,a,o)=>{let s;try{s=Qu(r,{withFileTypes:!0})}catch(e){o?.(e,r);return}for(let c of s){let s=L(r,c.name);if(c.isDirectory()){let e=nN(R(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=nN(R(i,s));if(!t.startsWith(`..`)&&!this.contentFilter.isExcluded(t,a)){let t=nN(R(this.contentDir,s)),n=nN(R(this.projectDir,s));e.push({contentRelPath:t,projectRelPath:n})}}}};if(V(this.contentDir)&&n(this.contentDir,this.contentDir,Z7),this.rootOkOutsideContentWalk){let e=L(this.projectDir,`.ok`);V(e)&&!this.contentFilter.isDirExcluded(`.ok`,Q7)&&n(e,this.projectDir,Q7,t)}return e}isSyncScopedPath(e){let t=L(this.projectDir,e),n=nN(R(this.contentDir,t)),r=!n.startsWith(`..`)&&!this.contentFilter.isExcluded(n,Z7),i=this.rootOkOutsideContentWalk&&e.startsWith(`.ok/`)&&!this.contentFilter.isExcluded(e,Q7);return r||i}async listHeadContentPaths(e,t){let n=new Set;try{let r=await Ib(e.git,[`ls-tree`,`-r`,`--name-only`,t]);for(let e of r)this.isSyncScopedPath(e)&&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 Ib(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=nN(R(this.projectDir,sc(`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.consecutivePullFailures=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=Bd(this.projectDir);t=n===null||!V(L(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.ghAccountResolver.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.bumpFailureCount(t),this.transitionTo(`idle`),this.pausedReason=`dirty-tree`,this.schedulePush(0)):e.retryable?(this.bumpFailureCount(t,nIe(e)),this.transitionTo(`offline`)):(this.bumpFailureCount(t),this.transitionTo(`idle`))}currentState(){return this.state}markRun(){this.lastPushOkUtc=new Date().toISOString(),this.cc1Broadcaster?.signal(`sync-status`)}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,lastPullOkUtc:this.lastPullOkUtc,lastPushOkUtc:this.lastPushOkUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,consecutiveFailures:this.consecutivePullFailures,consecutivePushFailures:this.consecutivePushFailures,pushStreakIsConnectivity:this.pushStreakIsConnectivity,pausedReason:e,pausedSinceUtc:e?new Date().toISOString():void 0,inflightConflicts:this.conflictStore.list().map(e=>e.file)};ad(this.statePath,JSON.stringify(t,null,2),`utf-8`)}catch(e){$.warn({err:e},`[sync] failed to persist sync state`)}}loadState(){if(V(this.statePath))try{let e=H(this.statePath,`utf-8`),t=JSON.parse(e);if(t.version!==1)return;this.lastSyncUtc=t.lastSyncUtc??null,this.lastPullOkUtc=t.lastPullOkUtc??null,this.lastPushOkUtc=t.lastPushOkUtc??null,this.lastFetchUtc=t.lastFetchUtc??null,this.lastPushedSha=t.lastPushedSha??null,this.consecutivePullFailures=t.consecutiveFailures??0,this.consecutivePushFailures=t.consecutivePushFailures??0,this.pushStreakIsConnectivity=t.pushStreakIsConnectivity??!1,this.pausedReason=t.pausedReason===`no-push-permission`||t.pausedReason===`auth-error`||t.pausedReason===`external-changes-pending`?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`)}}};rc();const iIe=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function aIe(){return{async afterLoadDocument({documentName:e,requestParameters:t}){if(Jx(e)||Yx(e))return;let n=t?.get(`mountId`)??void 0,r={"doc.name":e};n!==void 0&&iIe.test(n)&&(r[`mount.id`]=n);try{let e=()=>{lc(`sync.handshake`,{attributes:r},()=>{})},n=t?.get(`traceparent`);if(n!=null){let r={traceparent:n},i=t?.get(`tracestate`);i!=null&&(r.tracestate=i),ic.with(tc.extract(ic.active(),r),e)}else e()}catch(e){F(`sync-handshake-span`).warn({err:e instanceof Error?e:Error(String(e))},`emission failed`)}}}}let i9=!1;function a9(){if(i9)return;let e=Qte;if(typeof e.getCACertificates!=`function`||typeof e.setDefaultCACertificates!=`function`){i9=!0;return}try{e.setDefaultCACertificates([...e.getCACertificates(`default`),...e.getCACertificates(`system`)]),i9=!0}catch(e){F(`trust-system-ca`).warn({err:e},`system CA setup failed; falling back to the bundled CA set`)}}const oIe=(()=>{let e=Object.freeze({origin:`park-snapshot`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})(),sIe=(()=>{let e=Object.freeze({origin:`generated-index`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})();function cIe(e,t,n,r){let i=new Map;if(!n)return i;let a;try{a=ku(`git`,[`-c`,`core.quotePath=false`,`log`,`${n}..${r}`,`--no-merges`,`--name-only`,`--format=C%x00%an%x00%ae`],Cw({cwd:e,encoding:`utf-8`,timeout:5e3}))}catch(e){return F(`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 F(`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(`
2037
2037
  `)){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=z(e,r);if(!aN(a,t))continue;let s=Sz(a,t);i.has(s)||V(a)&&i.set(s,o)}return i}function o9(e){a9();let t=e.ingressPolicy??FB({}),{contentDir:n,projectDir:r=n,quiet:i=!0,debounce:a=2e3,maxDebounce:o=1e4,gitEnabled:s=!0,commitDebounceMs:l=3e4,wipRef:u=`refs/wip/main`,configHomedirOverride:d,enableTestRoutes:f=!1,shadowRepo:p,contentRoot:m,destroyTimeoutMs:h=1e4,localOpCliArgs:g,authStreamHeartbeatMs:_,skipStateManifestCheck:v=!1,singleDocRelPath:y,ephemeral:b=!1}=e,x=F(`server`),S=new I5,C=()=>S.getActiveBranch(),w=e=>S.getReconciledBase(e),T=(e,t)=>S.setReconciledBase(e,t),E=e=>S.deleteReconciledBase(e),D=e=>S.switchReconciledBaseScope(e),O=e=>S.setBatchInProgress(e),te=()=>S.isBatchInProgress();function k(e){let t=dc({absPath:sc(`project`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project config`)});if(!t.valid){let n=ce(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});x.warn({},`[config] committed content.attachmentFolderPath unavailable (project config invalid) — using default attachment placement`)}return t.value.content.attachmentFolderPath??`./`}function A(){let e=dc({absPath:sc(`project-local`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project-local config`)}),t=c(e.value.autoSync);if(t!==null)return{mode:t,source:`config`};e.valid||x.warn({},`[config] project-local autoSync.mode unavailable (config invalid) — falling back to the committed project default`);let n=dc({absPath:sc(`project`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project config`)});return n.valid||x.warn({},`[config] committed autoSync.default unavailable (project config invalid) — defaulting to disabled`),{mode:Le(n.value.autoSync?.default)??`off`,source:`committed-default`}}function ne(){return ee(dc({absPath:sc(`project-local`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project-local config`)}).value.autoSync)}function re(){let e=dc({absPath:sc(`project`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project config for linter`)}).value.contentRules,t=e?rt(e):Jo;return wPe(r,t.plugins.okf),t}function ie(){return dc({absPath:sc(`project`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project config for link validation`)}).value.validation?.links??`warning`}function j(){return pM(r,{configHomedirOverride:d,onWarn:e=>x.warn({message:e},`[config] could not read project-local config`)})}function ae(){let e=dc({absPath:sc(`project-local`,r,d),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project-local config`)});return e.valid?e.value.linkPreviews?.enabled===!0:!1}function oe(){return Ec({cwd:r,homedirOverride:d,warn:e=>x.debug({message:e},`[config] diagnostics read`)})}function M(){for(let e of oe().diagnostics)e.code===`REMOVED_KEY`&&x.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`${rM(e.baseUrl)}|${e.model}|${e.dimensions??`auto`}`}let le;function ue(e,t){let i;if(e===`__config__/project`||e===`__local__/project`){let t=A();i=t.mode,sn?.setMode(t.mode,t.source).catch(n=>{x.warn({err:n,mode:t.mode,docName:e},`[sync] failed to apply autoSync mode from config`)});let n=ne();sn?.setIntervals(n.pullIntervalSeconds,n.pushIntervalSeconds)}let a=j();if(Fe.applyConfig({enabled:a.enabled,providerFingerprint:se(a)}),e===`__config__/project`){try{let e=k({requireValid:!0});ve?.setAttachmentFolderPath(e),le!==void 0&&e!==le&&x.warn({previous:le,next:e},`[content-filter] attachment folder changed — files under the previous folder no longer sync`),le=e}catch(e){x.warn({err:e},`[content-filter] project config invalid — keeping previous attachment admission`)}Oe?.signal(`lint-config`),(t??re().plugins.okf?.generate?.index===!0)||y5({projectDir:r,contentDir:n,generatedDocNames:At(),enabled:!1}).then(e=>{e.ok||x.warn({state:e.status.state},`[index] could not remove Open Knowledge generated-index Git attributes`)}),Tt()}x.info({docName:e,autoSyncMode:i,semanticEnabled:a.enabled},`[config] applied persisted config to in-process consumers`)}Rc();let de=xd(),fe=eA(r),pe=new Cf({localDir:fe,log:F(`acp-registry`)}),me=new pf(fe,F(`acp-permissions`));if(cte(fe,{port:0,worktreeRoot:r,kind:e.lockKind??`interactive`,capabilities:e.capabilities??[`http`,`ws`]}),!v)try{E7({lockDir:fe,shadowRepoDir:Vd(r)})}catch(e){throw el(fe),e}let he=Qo(),ge=(e,t)=>he.resolveEmbed(e,t),_e=(e,t)=>{let r=he.resolveEmbed(e,t);if(!r&&e.includes(`/`)&&(r=e.replace(/^\.?\//,``)),!r)return null;let i=z(n,r);if(!rN(i,z(n)))return null;try{let e=rd(i);return e.isFile()?e.size:null}catch{return null}},ve,ye,be,xe,N,Se,Ce,we,Te,Ee,De,Oe=null,ke=null,Ae=null,je=null,Me=null,Ne=null,Pe=j(),Fe=new ope({loadEmbedder:e.embedderLoader??(()=>{let t=j();return Kfe({keyStore:e.embeddingsKeyStore??null,projectDir:r,config:{baseUrl:t.baseUrl,model:t.model,dimensions:t.dimensions}})}),cacheDir:L(eA(r),`embeddings`),enabled:Pe.enabled,providerFingerprint:se(Pe)}),Ie=null,ze=new Set,Be=!1,P=[],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 C()}finally{e&&clearTimeout(e)}try{return z5(r).branch??null}catch(e){return x.warn({err:e},`[auth] branch scope gate expired and HEAD is unreadable — skipping the branch claim check`),null}}function Je(e){Oe?.signal(e)}let Ye,Xe,Ze,Qe=!1,$e=!1,et=new AbortController,tt=new Set,nt=!1,it=!1,at=!1,ot=0,st,ct=new Promise(e=>{st=e});function lt(e){at||(at=!0,st(e))}function ut(){return nt||tt.size>0}function dt(){$e||!Qe||(Ye!==void 0&&clearTimeout(Ye),Ye=setTimeout(()=>{Ye=void 0,bt()},500),Ye.unref?.())}function ft(){if($e){lt({status:`cancelled`,indexCount:0});return}nt=!0,it=!0,Xe=setImmediate(()=>{Xe=void 0,bt()})}let pt,mt,ht=!1,gt=null;async function _t(){let e=be.current;if(!e||ht)return;let t=performance.now();x.info({gitDir:e.gitDir},`[shadow-housekeeping] deferred boot housekeeping started`);try{await dx(e)}catch(e){x.warn({err:e},`failed to write gc config (non-fatal)`)}if(!ht){if(gt)try{let t=Number.parseInt(process.env.OK_BOOT_RENAME_GC_RETRY_INTERVAL_MS??``,10)||1e3,n=!1;for(let r=0;r<30;r++){if(!(await iH(e,gt,{rebuild:!0})).skipped){n=!0;break}if(r===29)break;if(await new Promise(e=>{setTimeout(e,t).unref?.()}),ht)return}n||x.warn({gitDir:e.gitDir},`[rename-log] deferred boot GC/rebuild retry budget exhausted (persistent GC contention); rebuild deferred to next boot`)}catch(t){x.warn({err:t,gitDir:e.gitDir},`[rename-log] deferred boot GC/rebuild failed; index loaded without GC`)}if(!ht){try{await xe?.runBootMaintenance()}catch(e){x.warn({err:e},`[shadow-maintenance] boot maintenance failed (non-fatal)`)}x.info({gitDir:e.gitDir,durationMs:Math.round(performance.now()-t)},`[shadow-housekeeping] deferred boot housekeeping complete`)}}}function vt(){ht||(pt=setImmediate(()=>{pt=void 0,mt=_t().catch(e=>{x.error({err:e},`[shadow-housekeeping] unexpected uncaught failure`)})}))}async function yt(){if(ht=!0,pt!==void 0&&(clearImmediate(pt),pt=void 0),!mt)return;let e,t=new Promise(t=>{e=setTimeout(()=>t(`timeout`),h)});try{if(await Promise.race([mt,t])===`timeout`)throw Error(`shadow housekeeping drain timed out after ${h}ms — abandoning in-flight housekeeping`)}finally{e!==void 0&&clearTimeout(e)}}function bt(){if($e||!Qe||!ut())return;if(Ze!==void 0){e.generatedIndexTestHooks?.onKickWhileInFlight?.();return}if(S.isBatchInProgress()){dt();return}let t=nt,n=new Set(tt),r=it;nt=!1,tt.clear(),it=!1;let i=t?{fullSweep:!0}:{fullSweep:!1,directories:n};Ze=(async()=>{let e=await Pt(i,et.signal);if(e.status===`deferred`){nt=!0,r&&(ot+=e.indexCount,it=!0);return}r&&(ot+=e.indexCount,e.status===`completed`&&ut()?it=!0:lt({...e,indexCount:ot}))})().catch(e=>{x.warn({err:e},`[index] index regeneration coordinator failed`),r&&lt({status:`failed`,indexCount:0})}).finally(()=>{if(Ze=void 0,$e){r&&lt({status:`cancelled`,indexCount:0});return}ut()&&Ye===void 0?dt():!ut()&&Ye===void 0&&e.generatedIndexTestHooks?.onIdle?.()})}async function xt(){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,it=!1,e===void 0&&lt({status:`cancelled`,indexCount:0})}await Ze}function St(e){$e||fPe(e)||(tt.add(A5(e)),dt())}function Ct(e){if(!$e){for(let t of dPe(e))tt.add(t);dt()}}function wt(e){let t=an?.getFileIndex();if(!t){St(e);return}let n=A5(e);if(N5(t.keys()).has(n)){St(e);return}Ct(A5(n))}function Tt(){$e||(nt=!0,dt())}function Et(e){let t=an?.getFileIndex().get(e);if(t)return{title:t.title,description:t.description,type:t.type}}let Dt=!1,Ot={origin:sIe,writer:Sce,isConflict:e=>sn?.getConflicts().some(t=>a5(t,e,r,n))===!0,getDocument:e=>Ce.documents.get(e),writeDisk:async(e,t)=>{Dc(I(e),{recursive:!0}),await uc(e,t,{fs:_c})},registerWrite:(e,t)=>lz(e,dz(t)),noteFileIndex:e=>an?.mutateFileIndex({kind:e.kind,path:e.absPath,docName:e.docName,content:e.markdown}),signalFiles:()=>Je(`files`),attribute:async(e,t)=>{Hj(e,t.id,t.name,t.id),Dt=!0}};function kt(e){return e===``?O5:`${e}/${O5}`}function At(){return[...an?N5(an.getFileIndex().keys()):new Set([``])].map(kt)}function jt(e){let t=re().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 Mt(){return jt(_5({projectDir:r,contentDir:n,generatedDocNames:At()}))}async function Nt(e){let t=await y5({projectDir:r,contentDir:n,generatedDocNames:At(),enabled:e});if(!t.ok)return{...Mt(),applied:!1,reason:t.status.state===`conflict`?`git-conflict`:`git-unavailable`};let i=await Tc({cwd:r,scope:`project`,patch:{contentRules:{okf:{generate:{index:e}}}}});if(!i.ok){try{await t.rollback()}catch(e){x.error({err:e},`[index] could not roll back generated-index Git attributes`)}return{...Mt(),applied:!1,reason:`config-write`}}try{let e=H(i.path,`utf-8`);i5(Ce.documents.get(`__config__/project`)??null,Go,e,N.configPersistenceCtx)}catch(e){x.warn({err:e},`[index] generated-index settings reflection deferred to config watcher`)}return ue(Go,e),{...Mt(),applied:!0}}async function Pt(t,i){let a=0,o=t.fullSweep?performance.now():void 0,s=()=>re().plugins.okf?.generate?.index!==!0;try{if(i.aborted)return{status:`cancelled`,indexCount:0};if(s())return{status:`disabled`,indexCount:0};let c=an?.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(S.isBatchInProgress())return{status:`deferred`,indexCount:a};let o=pPe({docs:c,docExtension:Hx,currentMarkdownFor:()=>null}),l=_5({projectDir:r,contentDir:n,generatedDocNames:o.map(({directory:e})=>kt(e))});if(l.state!==`ready`&&l.state!==`not-applicable`)return x.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(S.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=kt(r),l=z(n,`${o}.md`),u;try{u=H(l,`utf-8`)}catch(e){e.code!==`ENOENT`&&x.warn({err:e,path:kc(l)},`[index] could not read the existing generated index; treating it as absent`),u=null}a+=1;let d=await qNe({docName:o,absPath:l,markdown:c,currentMarkdown:u},Ot);d===`blocked-conflict`?x.warn({event:`generated-index-regeneration`,outcome:`blocked`,directory:r,reason:`conflict`},`[index] generated index regeneration blocked by active conflict`):x.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&&Ct(A5(r))}}finally{Dt&&=(await N.waitForPendingCommits(),await N.flushContributors(),!1),o!==void 0&&($B(`generatedIndexSweepMs`,Math.round((performance.now()-o)*100)/100),eV(`generatedIndexCount`,a))}return{status:`completed`,indexCount:a}}catch(e){return x.warn({err:e},`[index] index regeneration failed`),{status:`failed`,indexCount:a}}}let Ft=null,It=!1,Lt=()=>{try{_7(r,Rt.entries())}catch(e){x.warn({err:e},`[removed-docs-journal] failed to persist removal journal`)}},Rt=new nFe(void 0,{onEviction:()=>nce(),onSizeChange:e=>rce(e),onMutate:()=>{!It||Ft!==null||(Ft=setTimeout(()=>{Ft=null,Lt()},2e3))}});for(let[e,t]of sFe(r))eS(e)||oZ(e)&&([`.md`,`.mdx`].some(t=>{let r=z(n,`${e}${t}`);return rN(r,z(n))&&V(r)})||Rt.restore(e,t));It=!0;let zt={current:null},Bt=(e,t)=>{eS(e)||Rt.setRenamed(e,t)},Vt=e=>{if(!eS(e)){if(Rt.peek(e)?.kind===`renamed`){console.info(JSON.stringify({event:`recently-removed-docs-unpaired-delete-suppressed`,docName:e,source:`watcher-delete`}));return}Rt.setDeleted(e),zt.current?.deleted(e)}},Ht=e=>{eS(e)||Rt.delete(e)};try{let c=`./`;try{c=k()}catch(e){x.warn({err:e},`[content-filter] invalid attachment folder at boot — using sibling admission`)}le=c,ve=gP({projectDir:r,contentDir:n,singleDocRelPath:y,attachmentFolderPath:c,inPlaceSkillDirs:bL(n),rescanInPlaceSkillDirs:()=>bL(n),skillRootPaths:jge(n),onAfterRebuild:()=>{ye.refreshContentScope().catch(e=>{F(`server-factory`).warn({err:e},`[content-filter] derived-index rebuild failed after onAfterRebuild`)}),Jz(an).then(({prunedFiles:e,prunedFolders:t})=>{let n=e+t;n>0?F(`server-factory`).info({pruned:n,prunedFiles:e,prunedFolders:t},`[content-filter] reconciled file indexes after onAfterRebuild`):F(`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=>{F(`server-factory`).warn({err:e},`[content-filter] file index reconcile failed after onAfterRebuild`)})}}),ye=new zR({projectDir:r,contentDir:n,contentFilter:ve,getGlobalSkillRoots:()=>hH(N.managedArtifactCtx),signalChannel:Je,getLocalTargetInventory:()=>mve(an,n),onRecoveredFileTarget:(e,t)=>{an&&iFe({watcher:an,contentDir:n,relativePath:e,exists:t,invalidateReferencedAssetsCache:Me})}}),be={current:p},xe=s?UPe({getShadow:()=>be.current??null,getCurrentBranch:()=>on?.getLastKnownBranch()??null,contentRoot:m??``,projectGitDir:Bd(r)??void 0,isWriterLive:e=>{if(!je&&!we)return F(`server-factory`).debug({writerId:e},`[server-factory] isWriterLive called before liveness deps populated — treating writer as dead`),!1;if(je?.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;let h=null;N=u7({contentDir:n,projectDir:r,gitEnabled:s,commitDebounceMs:l,wipRef:u,shadowRef:be,ephemeral:b,contentRoot:m,derivedDocumentIndex:ye,configHomedirOverride:d,getCurrentBranch:()=>on?.getLastKnownBranch()??null,resolveEmbed:ge,resolveSize:_e,getPrincipal:()=>Ie,onAgentCommit:()=>Oe?.signal(`session-activity`),onFlushCommit:()=>xe?.noteFlushCommit(),onDiskFlush:(e,t,n,r)=>{Oe?.emitDiskAck(e,t),!eS(e)&&(mPe(r,n,e)&&St(e),uV(r,n)&&(Me?.(),Je(`files`)))},onConfigRejected:(e,t)=>Oe?.emitConfigValidationRejected(e,t),onConfigPersisted:ue,onManagedSkillPersisted:e=>{let t=Ta(e);t?.kind!==`skill`||t.scope!==`global`||(h!==null&&clearTimeout(h),h=setTimeout(()=>{h=null;let e=d??sd();Vq(e,e,vL(e)).then(e=>{e>0&&x.info({refreshed:e},`[in-place-skills] post-edit copy re-sync`)}).catch(e=>x.warn({err:e},`[in-place-skills] post-edit copy re-sync failed`))},2e3),h.unref?.())},isRecentlyRemoved:e=>Rt.has(e),mdManager:e.mdManager,getLossRing:()=>Se,durabilityState:S}),Ce=new jNe({quiet:i,debounce:a,maxDebounce:o,extensions:[N.extension]});let v=Ce.openDirectConnection.bind(Ce);Ce.openDirectConnection=((e,t)=>v(Wx(e),t));let C=Ce;P.push(Ole(()=>C.documents.size),kle(()=>N.getQueueDepths()),jle(()=>{let e=0;for(let t of C.documents.values())e+=t.directConnectionsCount;return{websocket:C.getConnectionsCount()-e,direct:e}})),Nle(),b||(Ne=eFe({getLoadedDocuments:()=>C.documents,forceStore:(e,t)=>N.forceStore(e,t),getBase:e=>S.getReconciledBase(e),isBatchActive:()=>S.isBatchInProgress(),peekInFlight:e=>S.peekInFlightFlush(e),readDiskBytes:e=>{let t=iN(e,n),r,i;try{r=U(t),i=rd(r).size}catch(t){let n=nl(t);if(n===`ENOENT`)return null;throw n===`ELOOP`?new f7(`symlink cycle at content path: ${e}`):t}if(!aN(r,n))throw new f7(`symlink-escape: ${t} resolves outside the content dir`);if(i>524288)throw new f7(`document exceeds the open byte limit: ${e}`);try{return H(r,`utf-8`)}catch(e){if(nl(e)===`ENOENT`)return null;throw e}},graceMs:e.stalenessGraceMs,sweepIntervalMs:e.stalenessSweepIntervalMs}));let T=Ce.shouldUnloadDocument.bind(Ce);Ce.shouldUnloadDocument=e=>{if(ze.has(e)||Be&&T(e))return!0;let t=e.name;return eS(t)||w(t)!==void 0||e.getXmlFragment(`default`).length!==0||e.getText(`source`).length!==0?!1:T(e)},Ve=async e=>{ze.add(e);try{await Ce.unloadDocument(e)}finally{ze.delete(e)}},Oe=new iS(Ce),Ae=new GD(Ce),je=new qD(Ce),we=new Sw(Ce,e.agentSessionOptions);let E=we;P.push(Mle(()=>({active:E.liveSessionCount,limit:E.sessionLimit})));let D=H5({derivedDocumentIndex:ye,onDocumentSettled:e=>zt.current?.changed(e)});Ce.configuration.extensions.push(D);function O(e,t,n={}){x.warn({reason:e,docName:t,...n},`[auth-rejection] ${e}`)}Ce.configuration.extensions.push({__kind:`principal-auth`,async onAuthenticate(e){let t=e.token,n=gZ(t),r=n?.expectedServerInstanceId;if(typeof r==`string`&&r.length>0&&r!==de)throw O(`server-instance-mismatch`,e.documentName,{claimedServerInstanceId:r,currentServerInstanceId:de}),new hZ(`server-instance-mismatch`,`server instance mismatch: client claimed ${r}, this server is ${de}`);let i=n?.expectedBranch;if(typeof i==`string`&&i.length>0){let t=await qe();if(t!==null&&i!==t)throw O(`branch-mismatch`,e.documentName,{claimedBranch:i,currentBranch:t}),new hZ(`branch-mismatch`,`branch mismatch: client claimed ${i}, server is on ${t}`)}if(!n)return;let a=e.context;typeof n.principalId==`string`&&(Ie&&n.principalId===Ie.id?a.principalId=Ie.id:Ie?console.warn(JSON.stringify({event:`principal-token-mismatch`,claimed:n.principalId,loaded:Ie.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(!Yx(e.documentName)&&!Xx(e.documentName))return;let n=e.request,r=n.socket?.remoteAddress;if(r!==void 0&&!IB(r,t))throw O(`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(!RB(a,t))throw O(`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=z(n);function te(e){if(!oZ(e))return null;let t=z(ee,Gx(e));return rN(t,ee)?t:null}Ce.configuration.extensions.push({__kind:`removal-redirect-guard`,async onAuthenticate(e){await aFe(e.documentName,{recentlyRemovedDocs:Rt,resolveFilePath:te,fileExists:V})}}),Ce.configuration.extensions.push({__kind:`doc-lineage-guard`,async onAuthenticate(e){let t=gZ(e.token);hPe(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 w8(e.update);if(t.readVarString(),t.readVarUint()===F8.BroadcastStateless)throw Error(`inbound BroadcastStateless on ${ps} rejected — server-only channel`)}});let A=sZ({hocuspocus:Ce,durabilityState:S,ingressPolicy:t,sessionManager:we,commentDocHooksRef:zt,contentDir:n,getGeneratedIndexSettingsStatus:Mt,setGeneratedIndexEnabled:Nt,contentFilter:ve,serverInstanceId:de,getFileIndex:()=>an?an.getFileIndex():new Map,getAttachmentFolderPath:k,getAllFilesIndex:()=>an?an.getAllFilesIndex():new Map,getFileIndexGeneration:()=>an?.getFileIndexGeneration()??0,mutateFileIndex:e=>{let t=e.kind===`update`?Et(e.docName):void 0;switch(an?.mutateFileIndex(e),e.kind){case`update`:F5(t,e.content,e.docName)&&St(e.docName);break;case`create`:case`conflict`:St(e.docName);break;case`delete`:wt(e.docName);break;case`rename`:wt(e.oldDocName),St(e.newDocName);break;case`folder-create`:case`folder-delete`:Ct(e.relativePath);break;case`asset-create`:case`asset-delete`:case`file-create`:case`file-update`:case`file-delete`:break;default:iz(e)}},getFolderIndex:()=>an?an.getFolderIndex():new Map,getAliasMap:()=>an?an.getAliasMap():new Map,getFolderAliasIndex:()=>an?an.getFolderAliasIndex():new Map,rescanFiles:()=>an?.rescanFromDisk(),enableTestRoutes:f,shadowRef:be,flushGitCommit:()=>N.flushPendingGitCommit(),flushContributors:()=>N.flushContributors(),getCurrentBranch:()=>on?.getLastKnownBranch()??null,getDiskAckSVs:()=>Oe?.getLatestDiskAckSVsAsBase64()??{},getCollabClientCount:e.getCollabClientCount,contentRoot:m,derivedDocumentIndex:ye,signalChannel:Je,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,onAgentWrite:e.onAgentWrite,getSyncEngine:()=>sn,localOpCliArgs:g,authStreamHeartbeatMs:_,projectDir:r,resolveEmbed:ge,getBridgeLossReporter:()=>De,getPrincipal:()=>Ie,acpRegistry:pe,loadAcpCustomAgents:()=>wf(fe,F(`acp-registry`)),homeDirOverride:d,forceUnloadDocument:Ve,ready:We,recentlyRemovedDocs:Rt,serializeDoc:qt,evictManagedArtifactLkg:e=>{N.managedArtifactCtx.lkgCache.delete(e)},semanticSearch:Fe,getSemanticSimilarityFloor:()=>j().similarityFloor,getLinterBaseConfig:()=>re(),getLinksValidationSetting:()=>ie(),getLinkPreviewsEnabled:ae,getConfigDiagnostics:oe,embeddingsSecretsFile:uM(d),readSemanticProviderConfig:j,ephemeral:b,onReferencedAssetsCacheInvalidator:e=>{Me=e}});Ce.configuration.extensions.push(A),Te=A.nativeApi,Ee=A.localApi;let ne=dc({absPath:sc(`project`,r),sideline:!1,warn:e=>x.warn({message:e},`[config] could not read project config for bridge guards`)}),M=ne.value.bridge.deferGuard.enabled,se=ne.value.bridge.fixedPoint.enabled,ce=ne.value.bridge.preDrain.enabled;Se=ne.value.lossCapture.enabled?new Woe({projectDir:r,maxBytes:ne.value.lossCapture.maxBytes}):void 0,ne.value.bridge.lossDetector.enabled&&(De=Ice({shadow:()=>be.current,ring:Se,getBranch:()=>on?.getLastKnownBranch()??`main`,contentRoot:m??``}),we.attachBridgeLossReporter(De)),Ce.configuration.extensions.push(y7({mdManager:oc,schema:ac,shadowRef:be,contentRoot:m,getCurrentBranch:()=>on?.getLastKnownBranch()??null,resolveEmbed:ge,resolveSize:_e,deferGuardEnabled:M,lossDetectorEnabled:ne.value.bridge.lossDetector.enabled,fixedPointBackstopEnabled:se,preDrainEnabled:ce,lossRing:Se})),Ce.configuration.extensions.push(aIe()),Ce.configuration.extensions.push(KNe({getSyncEngine:()=>sn,projectDir:r,contentDir:n}))}catch(e){for(let e of P.splice(0))e();throw Ne?.dispose(),Ne=null,el(fe),e}let Ut=null,Wt=new Map,Gt=[];function Kt(e,t){let n=z(e,`rescue`),r=z(n,Gx(t));return rN(r,n)?r:null}function qt(e){let t=Ce.documents.get(e);return t?QR(t):null}let Jt=(e,t)=>YR(S,Ce,e,t,ge,_e,De);function Yt(e){if(!pS(e)||sn?.getConflicts().some(t=>a5(t,e.name,r,n)))return;let t=e.getMap(`lifecycle`);t.delete(`status`),t.delete(`reason`)}let Xt=e=>{if(!e)return;let t=`[[${e}]]`;for(let[n]of Ce.documents){if(eS(n))continue;let r=Ce.documents.get(n);if(!r)continue;let i=r.getText(`source`).toString();if(i.includes(t))try{r.transact(()=>{VR(r,i,ge,n)},BR)}catch(t){x.error({err:t,docName:n,assetBasename:e},`[asset-event] failed to re-render ${n} for asset basename ${e}`)}}},Zt=null,Qt=e=>{e&&(Zt===null&&(Zt=new Set,setImmediate(()=>{let e=Zt;if(Zt=null,e)try{for(let t of e)Xt(t)}catch(t){x.error({err:t,basenames:[...e]},`[asset-event] dedup rerender pass crashed`)}})),Zt.add(e))};function $t(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 iz(e)}}async function en(e){try{switch(e.kind){case`create`:x.info({docName:e.docName},`[reconcile] create: ${e.docName}`),await ye.recordDiskUpsert(e.docName,e.content),Je(`files`),St(e.docName),Ht(e.docName);break;case`update`:{let{docName:t,content:n}=e;F5(e.previousIndexedFields,n,t)&&St(t);let r=Ce.documents.get(t);if(!r){await ye.recordDiskUpsert(t,n);return}let i=w(t)??``,a=qt(t)??i,o=GR({docName:t,base:i,ours:a,theirs:n}),s=dz(i).slice(0,6),c=dz(a).slice(0,6),l=dz(n).slice(0,6);switch(x.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`:Yt(r),await ye.recordDiskUpsert(t,n);break;case`clean`:{let e=!1;try{Jt(t,o.newContent),T(t,o.newContent),Rb(),Yt(r),e=!0}catch(e){x.error({err:e,docName:t},`[reconcile] failed to apply clean content to Y.Doc for ${t}`),T(t,n),Yt(r)}e&&await ye.recordDiskUpsert(t,n)}break;case`merged`:{let e=!1;try{Jt(t,o.newContent),T(t,n),Rb(),Yt(r),e=!0}catch(e){x.error({err:e,docName:t},`[reconcile] failed to apply merged content to Y.Doc for ${t}`),T(t,n),Yt(r)}e&&await ye.recordDiskUpsert(t,n)}break;case`conflicts`:{let e=!1;try{Jt(t,o.newContent),T(t,o.newContent),Rb(),zb(),e=!0}catch(e){x.error({err:e,docName:t},`[reconcile] failed to apply conflict content to Y.Doc for ${t}`),T(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`:{zb();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`),Vt(t),wt(t),console.info(JSON.stringify({event:`recently-removed-docs-populate`,docName:t,kind:`deleted`,source:`watcher-delete`}));return}let r=w(t)??``,i=qt(t)??``,a=i!==r;if(a&&be.current){let e=be.current,n=on?.getLastKnownBranch()??`main`;queueMicrotask(()=>{Dx(e,m??``,{kind:`external-change-rescue`,docName:t,contents:i,label:`External change recovered @ ${new Date().toISOString()}`,branch:n,metadata:{incomingDiskSha:``}}).then(()=>{Vb(),x.info({docName:t},`[reconcile] rescue checkpoint saved (delete): ${t}`)}).catch(e=>{x.error({docName:t,err:e},`[reconcile] rescue checkpoint write failed: ${t}`)})})}n.getMap(`lifecycle`).set(`status`,`deleted-upstream`),E(t),await ye.recordDiskDelete(t),x.info({docName:t,isDirty:a},`[reconcile] delete: ${t} (dirty=${a})`),Ce.closeConnections(t),await Ve(n),Je(`files`),Vt(t),wt(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(E(t),T(n,r),await ye.recordDiskRename(t,n,r),i){let e=i.getMap(`lifecycle`);e.set(`status`,`renamed`),e.set(`newPath`,n)}x.info({oldDocName:t,newDocName:n},`[reconcile] rename: ${t} → ${n}`),Je(`files`),Bt(t,n),console.info(JSON.stringify({event:`recently-removed-docs-populate`,from:t,to:n,kind:`renamed`,source:`watcher-rename`})),wt(t),St(n);break}case`conflict`:{let{docName:t}=e,n=Ce.documents.get(t);if(!n)return;let r=qt(t);r===null?x.warn({docName:t},`[reconcile] case 'conflict': serializeDoc returned null for ${t}; reconciledBase snapshot skipped — post-resolution reconcile may degrade to 3-way merge`):T(t,r);let i=n.getMap(`lifecycle`);i.set(`status`,`conflict`),i.set(`reason`,`conflict-markers`),x.info({docName:t},`[reconcile] conflict markers detected: ${t}`);break}case`asset-create`:he.add(e.relativePath),Je(`files`),Qt(ju(e.relativePath));break;case`asset-delete`:he.remove(e.relativePath),Je(`files`),Qt(ju(e.relativePath));break;case`folder-create`:case`folder-delete`:Je(`files`),Ct(e.relativePath);break;case`file-create`:case`file-update`:await ye.recordFileTargetUpsert(e.relativePath),Me?.(),Je(`files`);break;case`file-delete`:await ye.recordFileTargetDelete(e.relativePath),Me?.(),Je(`files`);break;default:iz(e)}}catch(t){let n=$t(e);x.error({err:t,kind:e.kind,label:n},`[reconcile] failed to handle ${e.kind} for ${n}`)}}let tn=[];async function nn(e){if(te()){tn.push(e);return}await en(e)}async function rn(){let e=tn.splice(0,tn.length);for(let t of e)await en(t)}let an=null,on=null,sn=null,cn=null;async function ln(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(be.current){for(let e of n)if(!eS(e))try{let t=qt(e);if(t===null){x.warn({docName:e},`[rescue] skipping ${e} — document dropped from map mid-rescue`),o.push(e);continue}let n=Kt(be.current.gitDir,e);if(!n){x.warn({docName:e,gitDir:be.current.gitDir},`[rescue] path-traversal guard rejected docName: ${e}`),o.push(e);continue}qu(I(n),{recursive:!0}),ad(n,t,`utf-8`),Vb(),i.push(e),x.info({docName:e},`[rescue] rescue buffer saved on flush timeout: ${e}`)}catch(t){o.push(e),x.error({err:t,docName:e},`[rescue] failed to write rescue buffer for ${e}`)}}else x.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 un(){return cn||(cn=(async()=>{let e=Date.now(),t=[];Be=!0;try{await xt()}catch(e){x.warn({err:e},`[index] generated index shutdown drain failed`),t.push({phase:`generated-index-drain`,error:String(e)})}for(let e of P.splice(0))e();try{await Ne?.dispose()}catch(e){x.warn({err:e},`[server] staleness watchdog drain failed during destroy`)}Ne=null;try{ste(fe)}catch(e){x.warn({err:e},`[server] failed to mark server.lock draining`)}xe?.destroy();try{await yt()}catch(e){x.warn({err:e},`[shadow-housekeeping] shutdown drain failed`),t.push({phase:`shadow-housekeeping-drain`,error:String(e)})}if(Ft!==null&&(clearTimeout(Ft),Ft=null),It)try{_7(r,Rt.entries())}catch(e){x.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=>(x.debug({err:e},`[server] init incomplete during shutdown`),`failed`)),new Promise(e=>{n=setTimeout(()=>e(`timeout`),5e3)})]);n!==void 0&&clearTimeout(n),i===`timeout`&&x.warn({},`[server] init did not complete within 5s during shutdown`);let a=Ce.documents.size;try{try{try{ke&&=(clearTimeout(ke),null),on&&=(await on.unsubscribe(),null),an&&=(await an.unsubscribe(),null);for(let{docName:e,cleanup:t}of Gt)try{await t()}catch(t){x.warn({err:t,docName:e},`[server] failed to stop config-file-watcher for ${e}`)}Gt.length=0}catch(e){t.push({phase:`watcher-unsubscribe`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-1 watcher unsubscribe failed`)}try{Oe?.destroy(),je?.destroy(),Ut&&=(await Ut.disconnect(),null);for(let[e,t]of Wt)try{await t.disconnect()}catch(t){x.warn({err:t,docName:e},`[server] failed to disconnect ${e} during shutdown`)}Wt.clear()}catch(e){t.push({phase:`cc1-teardown`,error:e instanceof Error?e.message:String(e)}),x.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)}),x.error({err:e},`[server] shutdown phase-2 agent session drain failed`)}try{await $ce()}catch(e){t.push({phase:`parse-pool-teardown`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-2b parse pool teardown failed`)}try{await ln(h)}catch(e){t.push({phase:`flush-all-stores`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-3 flush failed`)}ye.close();let e;try{await Promise.race([(async()=>{await N.flushPendingGitCommit(),await N.waitForPendingCommits()})(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`L2 git flush timeout`)),h)})])}catch(e){t.push({phase:`git-commit-flush`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-4 git commit flush failed`)}finally{e!==void 0&&clearTimeout(e)}try{sn&&=(await sn.destroy(),null)}catch(e){t.push({phase:`sync-engine-stop`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown sync-engine-stop failed`)}}finally{if(be.current){let e;try{await Promise.race([ax(be.current).drain(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`shadow mutator drain timeout`)),h)})])}catch(e){t.push({phase:`shadow-mutator-drain`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-5 shadow mutator drain failed`)}finally{e!==void 0&&clearTimeout(e)}try{let e=(await Jc({baseDir:r,timeout:{block:5e3}}).revparse(`HEAD`)).trim();e&&ad(z(be.current.gitDir,`last-known-head`),e,`utf-8`)}catch{}try{gce(be.current)}catch(e){t.push({phase:`shadow-repo-release`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-5 destroyShadowRepo failed`)}}let n=Date.now()-e;t.length===0?x.info({documentCount:a,durationMs:n},`[server] shutdown flushed ${a} documents in ${n}ms`):x.warn({documentCount:a,durationMs:n,phaseErrors:t},`[server] shutdown flushed ${a} documents in ${n}ms with ${t.length} phase error(s)`)}}finally{try{el(fe,{deferUnlinkToExit:!0})}catch(e){t.push({phase:`server-lock-release`,error:e instanceof Error?e.message:String(e)}),x.error({err:e},`[server] shutdown phase-6 releaseServerLock failed`)}try{await Lc()}catch(e){t.push({phase:`telemetry-shutdown`,error:e instanceof Error?e.message:String(e)})}}})(),cn)}let dn=[];async function fn(){try{Ie=await p7(r),x.info({principalId:Ie.id},`[server] principal loaded`)}catch(e){x.warn({err:e},`[server] principal load failed — browser writes will use SERVICE_WRITER`)}if(!be.current)try{be.current=await px(r,{deferGcConfig:!0}),x.info({gitDir:be.current.gitDir},`[server] history repo initialized at ${be.current.gitDir}`)}catch(e){x.error({err:e},`[server] history repo init failed`),dn.push(`shadow-repo`)}if(be.current)try{let e=PV(be.current.gitDir);rH(be.current.gitDir,e),zV(be.current.gitDir,e),gt=e,x.info({entries:e.byTo.size},`[server] rename log loaded (${e.byTo.size} entries)`)}catch(e){x.warn({err:e},`[rename-log] boot-time load/sweep failed; rename history unavailable`)}if(be.current)try{await ux(be.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`)){x.warn({},`[server] history repo appears corrupted — reinitializing`);try{be.current=await px(r,{deferGcConfig:!0})}catch(e){x.error({err:e},`[server] history repo reinit failed`),be.current=void 0,dn.includes(`shadow-repo`)||dn.push(`shadow-repo`)}}else x.error({err:e},`[server] history repo check failed (transient?)`)}if(be.current){let e=be.current,t=nN(R(r,n))||`.`;setTimeout(()=>{_x(e,t).catch(e=>{x.debug({err:e},`[shadow] fan-out index warm-up failed (non-fatal)`)})},3e3).unref()}if(be.current)try{let e=z(be.current.gitDir,`last-known-head`),t=null;try{t=H(e,`utf-8`).trim()||null}catch{}let n=null;try{n=(await Jc({baseDir:r,timeout:{block:1e4}}).revparse(`HEAD`)).trim()||null}catch{}if(n!==null){if(n!==t){let e=`main`;try{let t=(await Jc({baseDir:r,timeout:{block:1e4}}).raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();t&&t!==`HEAD`&&(e=t)}catch{}x.info({lastKnownHead:t,currentHead:n,branch:e},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=import`);try{await wx(be.current,m??``,t,n,e),Bb()}catch(e){x.warn({err:e},`[head-drift] commitUpstreamImport failed — continuing`)}}else x.info({currentHead:n},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=noop`);try{ad(e,n,`utf-8`)}catch(e){x.warn({err:e},`[head-drift] failed to write last-known-head`)}}}catch(e){x.warn({err:e},`[head-drift] check failed — continuing`)}try{let e=Eve(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;x.warn({journalVersion:e.journal.version,fromPath:t,toPath:n,restoredDocNames:e.restoredDocNames},`[managed-rename] recovered pending rename ${t} -> ${n}`)}}catch(e){x.error({err:e},`[server] managed rename recovery failed`),dn.push(`managed-rename-recovery`)}try{let e=Rge(r);(e.deleted>0||e.errors>0)&&x.info({scanned:e.scanned,deleted:e.deleted,errors:e.errors},`[upload-tempfile-sweep] swept ${e.deleted} orphan tempfile(s)`)}catch(e){x.error({err:e},`[server] upload-tempfile sweep failed`),dn.push(`upload-tempfile-sweep`)}try{Ut=await Ce.openDirectConnection(ps),Oe?.emitServerInfo(de,C())}catch(e){x.error({err:e},`[server] failed to open __system__ direct connection — CC1 push disabled`),dn.push(`cc1-push`)}let t=b?[]:os;for(let e of t)try{let t=await Ce.openDirectConnection(e);Wt.set(e,t)}catch(t){x.error({err:t,docName:e},`[server] failed to open ${e} direct connection — config bind degraded`),dn.push(`config-doc:${e}`)}let i=new Map([[Go,sc(`project`,r)],[Na,sc(`project-local`,r)],[Ai,sc(`user`,r,d)]]);for(let e of t){let t=i.get(e);if(t)try{x.info({docName:e,path:t},`[config-file-watcher] starting`);let n=await J8(t,t=>{let n=Ce.documents.get(e);x.info({docName:e,hasDocument:n!==void 0,contentLength:t.length},`[config-file-watcher] file changed`);let r=i5(n??null,e,t,N.configPersistenceCtx);x.info({docName:e,outcome:r},`[config-file-watcher] applyExternalConfigChange outcome`),ue(e)});Gt.push({docName:e,cleanup:n}),x.info({docName:e,path:t},`[config-file-watcher] started`)}catch(n){x.warn({err:n,docName:e,path:t},`[config-file-watcher] failed to start for ${e}`),dn.push(`config-file-watcher:${e}`)}}if(!b){let e=null,t=t=>{e!==null&&clearTimeout(e),e=setTimeout(()=>{e=null,ye.refreshGlobalSkillNodes().catch(e=>{x.warn({err:e,docName:t},`[backlinks] global skill bundle re-ingest failed`)})},300)},n=(e,n)=>{let r=bH(e,N.managedArtifactCtx);if(!r)return;let i=TH(Ce.documents.get(r)??null,r,n,N.managedArtifactCtx);x.info({docName:r,outcome:i},`[managed-artifact-watcher] external change`),Je(`files`),io(r)&&t(r)},r=e=>{let n=bH(e,N.managedArtifactCtx);Je(`files`),n&&io(n)&&t(n)};try{let e=hH(N.managedArtifactCtx),t=await WPe(e,n,r);Gt.push({docName:`__skill-files__`,cleanup:t}),x.info({roots:e},`[managed-artifact-watcher] skills started`)}catch(e){x.warn({err:e},`[managed-artifact-watcher] skills failed to start`),dn.push(`managed-artifact-watcher:skills`)}try{let e=z(fH(N.managedArtifactCtx),`.ok`,`skill-state.yml`),t=await J8(e,()=>{Je(`files`)});Gt.push({docName:`__skill-state__`,cleanup:t}),x.info({path:e},`[skill-state-watcher] started`)}catch(e){x.warn({err:e},`[skill-state-watcher] failed to start`),dn.push(`skill-state-watcher`)}}try{let e=z(n,`.okignore`),t=z(r,`.gitignore`),i=null;try{let e=ku(`git`,[`rev-parse`,`--git-common-dir`],Cw({cwd:r,encoding:`utf-8`,timeout:5e3}));if(e.status===0&&e.stdout){let t=L(z(r,e.stdout.trim()),`info`,`exclude`);V(I(t))&&(i=t)}}catch{}let a=i?[e,t,i]:[e,t],o=x;o.info({okignorePath:e,gitignorePath:t,gitInfoExcludePath:i,ephemeral:b},`[ignore-watcher] starting multi-path watcher for .okignore + .gitignore (+ .git/info/exclude when present)`);let s=b?null:await LNe(a,(t,n)=>{(async()=>{if(t===e)try{let e=i5(Ce.documents.get(`__config__/okignore`)??null,fo,n,N.configPersistenceCtx);o.info({docName:fo,outcome:e},`[ignore-watcher] applyExternalConfigChange outcome`)}catch(e){o.error({err:e,changedPath:R(r,t)},`[ignore-watcher] applyExternalConfigChange failed; rebuild proceeds independently`)}let i=await ve.rebuildIgnorePatterns();if(i.ok)o.info({changedPath:R(r,t),patternCount:i.patternCount,nestedFileCount:i.nestedFileCount,durationMs:i.durationMs},`[ignore-watcher] rebuild succeeded — broadcasting files channel`),Oe?.signal(`files`);else{let e=R(r,t)||`.`;o.warn({changedPath:e,error:i.error.message},`[ignore-watcher] rebuild failed — emitting config-ignore-nested-error`),Oe?.emitConfigIgnoreNestedError(e,i.error.message)}})().catch(e=>{o.error({err:e,changedPath:R(r,t)||`.`},`[ignore-watcher] handler threw`)})});s&&(Gt.push({docName:`__ignore-files__`,cleanup:s}),o.info({okignorePath:e,gitignorePath:t},`[ignore-watcher] multi-path watcher started`))}catch(e){x.warn({err:e,projectDir:r,contentDir:n},`[ignore-watcher] failed to start multi-path watcher`),dn.push(`ignore-files-watcher`)}let a=z5(r).branch??`main`;D(a),Ge();let o=ye.beginStartup(a),s=!1,c=performance.now();try{await hc(`ok.boot.indexes`,void 0,async()=>{let{deletedDocNames:e,backlinkIndexDegraded:t}=await o.backlinksReady;t&&dn.push(`backlink-index`);let i=0;for(let t of e)eS(t)||Rt.peek(t)?.kind!==`renamed`&&(Rt.setDeleted(t),i++);i>0&&x.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?bL(n):new Set,u=e=>{e.some(e=>c.test(R(n,e).split(B).join(`/`)))&&(ke&&clearTimeout(ke),ke=setTimeout(()=>{ke=null;try{Vq(r,n).then(e=>{e>0&&(x.info({refreshed:e},`[in-place-skills] re-synced recorded copies`),Oe?.signal(`files`))}).catch(e=>x.warn({err:e},`[in-place-skills] copy re-sync failed`));let e=bL(n);if(!(e.size!==l.size||[...e].some(e=>!l.has(e))))return;l=e,ve.rebuildIgnorePatterns().then(t=>{t.ok?(x.info({skillDirs:e.size},`[in-place-skills] canonical set changed — filter rebuilt`),Oe?.signal(`files`)):x.warn({error:t.error.message},`[in-place-skills] filter rebuild failed after skill re-scan`)}).catch(e=>x.warn({err:e},`[in-place-skills] rebuild threw`))}catch(e){x.warn({err:e},`[in-place-skills] re-scan trigger failed`)}},500))};an=await hc(`ok.boot.seed-walk`,void 0,async()=>qz(n,nn,ve,{onRawBatch:u})),Vq(r,n).then(e=>{e>0&&x.info({refreshed:e},`[in-place-skills] boot copy re-sync`)}).catch(e=>x.warn({err:e},`[in-place-skills] boot copy re-sync failed`));{let e=d??sd();Vq(e,e,vL(e)).then(e=>{e>0&&x.info({refreshed:e},`[in-place-skills] global boot copy re-sync`)}).catch(e=>x.warn({err:e},`[in-place-skills] global copy re-sync failed`))}$B(`seedWalkMs`,Math.round(performance.now()-a));{let e=z(n),t=0;for(let[n]of Rt.entries()){if(!oZ(n))continue;let r=z(e,`${n}${Hx(n)}`);rN(r,e)&&V(r)&&(Rt.delete(n),t++)}t>0&&x.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&&dn.push(`tag-index`);let p=0;try{y===void 0?await uZ({contentDir:n,contentFilter:ve,basenameIndex:he,onSkip:(e,t,n)=>{p++,x.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during seed (${e}${t?` ${t}`:``})`)}}):uxe({contentDir:n,basenameIndex:he,onSkip:(e,t,n)=>{p++,x.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during single-file seed (${e}${t?` ${t}`:``})`)}}),p>0&&(x.warn({count:p},`[basename-index] startup seed completed with ${p} skipped entries — embeds under inaccessible subtrees will not resolve`),dn.push(`basename-index-partial`))}catch(e){x.error({err:e},`[basename-index] startup seed failed`),dn.push(`basename-index`)}})}catch(e){if(x.error({err:e},`[server] disk bridge watcher failed to start`),dn.push(`file-watcher`),!s){let e=await ye.settleStartupAfterWatcherSeed();s=!0,e.tagIndexDegraded&&dn.push(`tag-index`)}}finally{$B(`indexesMs`,Math.round(performance.now()-c)),an&&eV(`fileCount`,an.getFileIndex().size)}try{on=await bPe(r,async({trigger:e})=>{if(x.info({trigger:e},`[batch] begin trigger=${e}`),$oe(),Ce.flushPendingStores(),await N.flushPendingGitCommit(),O(!0),be.current){let e=C(),t=z5(r).branch??e,n=[];for(let[e,t]of Ce.documents){if(eS(e))continue;let r=null;if(t.transact(()=>{r=qt(e)},oIe),r===null)continue;let i=w(e)??r;n.push({docName:e,markdown:r,diskSnapshot:i})}if(n.length>0)try{let r=await Dce(be.current,e,Sx.id,n,t);r&&(nse(),x.info({count:n.length,branch:e,sha:r.slice(0,8)},`[history] parked ${n.length} docs on ${e} → ${r.slice(0,8)}`))}catch(e){x.error({err:e},`[shadow] park failed`)}}},async e=>{let t=tn.length,i=e.newBranch??`main`;if(x.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(O(!1),await rn(),e.headMoved&&e.newHead){let t=cIe(r,z(n),e.oldHead,e.newHead);if(t.size>0){wfe(t.keys());for(let[e,n]of t)Hj(e,rne(n.email),n.name,n.email,$d(e));await N.flushContributors()}}if(await N.flushDeferredStores(`within-branch`),sn!==null)try{await sn.reconcileConflictsFromGit()}catch(e){x.warn({err:e},`[head-watcher] sync engine conflict reconcile failed`)}}else{tse(),tn.splice(0,tn.length);let t=!1,r;try{D(i),r=await ye.beginBranchSwitch(i),ve.rebuildDirCount();try{let e=0;he.clear(),await uZ({contentDir:n,contentFilter:ve,basenameIndex:he,onSkip:(t,n,r)=>{e++,x.warn({reason:t,code:n,path:r,branch:i},`[basename-index] skipped entry during branch-switch reseed (${t}${n?` ${n}`:``})`)}}),e>0&&(x.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`),dn.includes(`basename-index-partial`)||dn.push(`basename-index-partial`))}catch(e){x.error({err:e,branch:i},`[basename-index] branch-switch reseed failed`)}for(let[e,t]of Ce.documents)if(!eS(e))try{let r=iN(e,n);if(!V(r)){let n=w(e)??``,r=qt(e)??``;if(r!==n&&be.current){let t=be.current;queueMicrotask(()=>{Dx(t,m??``,{kind:`external-change-rescue`,docName:e,contents:r,label:`External change recovered @ ${new Date().toISOString()}`,branch:i,metadata:{incomingDiskSha:``}}).then(()=>{Vb(),x.info({docName:e},`[reconcile] rescue checkpoint saved on branch switch: ${e}`)}).catch(t=>{x.error({docName:e,err:t},`[reconcile] rescue checkpoint write failed: ${e}`)})})}t.getMap(`lifecycle`).set(`status`,`deleted-upstream`),x.info({docName:e,branch:i},`[branch-switch] tombstone: ${e} (not on ${i})`);continue}let a=H(r,`utf-8`);Jt(e,a),T(e,a),x.info({docName:e},`[branch-switch] reset: ${e}`)}catch(t){x.error({err:t,docName:e},`[branch-switch] failed to reset ${e}`)}x.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),x.error({err:e,branch:i},`[derived-index] branch-switch rebuild failed; relationship views may be stale`)}if(be.current&&e.batchKind===`cross-branch`){let e=0;for(let[t]of Ce.documents)if(!eS(t))try{let n=await kce(be.current,i,Sx.id,t);if(!n||n.markdown===n.diskSnapshot)continue;let r=w(t);if(!r)continue;let a=GR({docName:t,base:n.diskSnapshot,ours:n.markdown,theirs:r});switch(a.kind){case`merged`:case`clean`:Jt(t,a.newContent),T(t,a.newContent),e++;break;case`conflicts`:Jt(t,a.newContent),T(t,a.newContent),zb(),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){x.error({err:e,docName:t},`[branch-switch] restore WIP failed for ${t}`)}e>0&&x.info({count:e,branch:i},`[branch-switch] restored ${e} parked docs on ${i}`)}if(e.oldBranch?.startsWith(`detached-`)&&be.current)try{let t=ux(be.current),n=(await t.raw(`for-each-ref`,`refs/wip/${e.oldBranch}/`,`--format=%(refname)`)).trim();n&&(await ax(be.current).withMutator(async()=>{for(let e of n.split(`
2038
- `))e&&await t.raw(`update-ref`,`-d`,e)}),x.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){x.error({err:e},`[branch-switch] detached cleanup failed`)}O(!1),await N.flushDeferredStores(`discard-stale`),t=!0,Oe?.emitBranchSwitched(i)}finally{ye.abortBranchSwitch(r),t||(O(!1),await N.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&be.current&&t>0){let t=m??`.`;try{let n=await wx(be.current,t,e.oldHead,e.newHead,i);Bb(),x.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){x.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){x.error({err:e},`[server] HEAD watcher failed to start`),dn.push(`head-watcher`)}function l(e){for(let t of e)try{let e=nN(R(n,L(r,t)));if(e.startsWith(`..`))continue;let i=Ix(e),a=Ce.documents.get(i);if(!a)continue;let o=qt(i);o===null?x.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):T(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),x.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){x.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function u(e){for(let t of e)try{let e=nN(R(n,L(r,t)));if(e.startsWith(`..`))continue;let i=Ce.documents.get(Ix(e));i&&Yt(i)}catch(e){x.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=ZF(r);x.debug({resetAmbientCredentials:f,originKind:YF(r).kind},`[sync] ambient credential-chain reset decision at boot`);let p=qc(g,{resetAmbient:f}),h=A(),_=ne();h.mode!==`off`&&x.info({mode:h.mode,source:h.source},`[sync] mode active at boot`);try{sn=new rIe({projectDir:r,contentDir:n,contentFilter:ve,contentRoot:m,mcpTomlEditor:e.mcpTomlEditor,mode:h.mode,pullIntervalSeconds:e.pullIntervalSeconds??_.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds??_.pushIntervalSeconds,credentialConfig:p,cc1Broadcaster:Oe,detectGh:e.detectGh,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{O(e),e||N.flushDeferredStores(`within-branch`).catch(e=>{x.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{x.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:u,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=be.current;n&&await Ex(n,m??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=be.current;n&&await Ex(n,m??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{x.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await Tc({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||x.error({result:t,reason:e,humanError:Re(t.error),configPath:sc(`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 sn.start()}catch(e){x.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),sn=null}Je(`files`),ye.announceReadyViews();let v=QB();v!==void 0&&$B(`readyMs`,v),M()}return fn().then(()=>{Qe=!0,He(),ft(),vt()},e=>{$e=!0,et.abort(),lt({status:`failed`,indexCount:0}),ye.close(),Ge(),Ue(e)}),{hocuspocus:Ce,durabilityState:S,sessionManager:we,nativeApi:Te,localApi:Ee,cc1Broadcaster:Oe,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,maintenanceCoordinator:xe,contentFilter:ve,basenameIndex:he,serverInstanceId:de,destroy:un,ready:We,generatedIndexSweepReady:ct,degraded:dn,lockDir:fe,get syncEngine(){return sn},getLinkPreviewsEnabled:ae,resolveEmbed:ge,acpRegistry:pe,acpPermissions:me}}function s9(e){return e/1048576}function lIe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:s9(e.rss),heapTotalMb:s9(e.heapTotal),heapUsedMb:s9(e.heapUsed),externalMb:s9(e.external),arrayBuffersMb:s9(e.arrayBuffers)}}}let c9=null,l9=null,u9=null;const d9=1e6;let f9=null,p9=null;mc(()=>{c9=null,l9=null,u9=null,f9?.disable(),f9=null,p9=null});function uIe(){if(c9)return;let e=zc().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}=lIe();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`})}),c9=e}function dIe(){if(!l9){let e=zc().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(!f9){f9=Rte({resolution:20}),f9.enable();return}e.observe(f9.percentile(50)/d9,{stat:`p50`}),e.observe(f9.percentile(99)/d9,{stat:`p99`}),f9.reset()}),l9=e}if(!u9){let e=zc().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=p9;if(p9={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`}))}),u9=e}}const m9=F(`skill-migrate`);function h9(e){return[{host:`agents`,root:xa},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=IO.indexOf(e.host),r=IO.indexOf(t.host);return(n===-1?IO.length:n)-(r===-1?IO.length:r)||e.host.localeCompare(t.host)})}const fIe=h9(ct),pIe=h9(Yr);function mIe(e,t){return V(z(e,ii(t)))}function hIe(e,t){Dc(I(t),{recursive:!0});try{bc(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Ac(e,t,{recursive:!0}),jc(e,{recursive:!0,force:!0})}}function gIe(e,t,n){let r=RI(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 g9(e,t){let n;try{n=U(z(e,`.ok`,`skills`))}catch{n=z(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!U(z(e,t.dir)).startsWith(n+B)}catch{return!0}}).map(e=>e.name))}async function _9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??fIe,a={migrated:[],skipped:[]};if(!V(n))return a;let o;try{o=Qu(n)}catch{return a}let s=R(t,n).split(B).join(`/`),c=new Set;for(let[e,n]of Object.entries(Rq(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Fa.test(e)||hk.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=z(n,e);if(!V(L(o,`SKILL.md`)))continue;let s=AO(o)?.contentHash;if(s===void 0)continue;let l=U(o),u=i.map(({host:n,root:r})=>{let i=z(t,r);return{host:n,root:r,path:L(i,e),escapes:KI(t,i),state:gIe(L(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=>mIe(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`?jc(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&jc(d.path,{recursive:!0,force:!0}),hIe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(jc(e.path,{recursive:!0,force:!0}),Ac(d.path,e.path,{recursive:!0}));await IN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),m9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),m9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const v9=F(`skill-reconcile`),_Ie=hk;function y9(){let e=[];for(let t of ti){let n=ct[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:xa,editor:null}),e}function vIe(e,t){let n=R(e,z(t));return Pu(n)?z(t):n}function b9(e){let{frontmatter:t,body:n}=gs(e),r={};if(t!==``)try{let e=(0,uk.parse)(Zi(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function yIe(e,t){let n=b9(e),r=b9(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 x9(e,t){let n=S9(e),r=S9(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=L(e,o),c=L(t,o);if(i+=rd(s).size+rd(c).size,i>1048576)return!1;let l=H(s),u=H(c);if(!l.equals(u)&&(o!==`SKILL.md`||!yIe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function S9(e,t=``){let n=[];for(let r of Qu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...S9(L(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function C9(e,t,n){jc(t,{recursive:!0,force:!0}),Dc(e,{recursive:!0}),Cc(vIe(e,n),t,`dir`)}function w9(e,t){try{let n=$u(e);return z(Pu(n)?n:z(I(e),n))===z(t)}catch{return!1}}function bIe(e,t){try{let n=$u(e),r=Pu(n)?z(n):z(I(e),n);if(!V(r))return!1;let i=R(z(t),r);return i!==``&&(i.startsWith(`..`)||Pu(i))}catch(t){return v9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const xIe=[...ti,`agents`];function SIe(e){for(let t of xIe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function CIe(e){let{projectDir:t,skillsRoot:n}=e;if(!V(n))return;let r;try{r=Qu(n)}catch{return}let i=y9();for(let e of r){let r=SIe(e);if(r===null)continue;let a=z(n,e),o=z(n,r);if(V(o))try{let n=Ku(a);if(n.isSymbolicLink()||!n.isDirectory()||!V(L(a,`SKILL.md`))||!V(L(o,`SKILL.md`))||!x9(o,a))continue;for(let{rel:n}of i){let r=z(t,n);if(KI(t,r))continue;let i=L(r,e);w9(i,a)&&C9(r,i,o)}jc(a,{recursive:!0,force:!0}),v9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){v9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function wIe(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 y9()){let o=z(t,e);if(!V(o)||KI(t,o))continue;let s;try{s=Qu(o)}catch(e){v9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(_Ie.has(e))continue;let t=L(o,e),s=z(n,e),c=V(s);try{let l=Ku(t);if(l.isSymbolicLink()){if(w9(t,s)&&c)continue;if(bIe(t,n)){r.skipped.push({name:e,editor:i});continue}c?(C9(o,t,s),r.healed.push({name:e,editor:i})):(jc(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Fa.test(e)){v9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&x9(t,s)){C9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){v9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=NN(t);for(let[r,a]of i){let i=z(n,r);if(!V(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await FN(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??VI(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){v9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{CIe({projectDir:t,skillsRoot:n})}catch(e){v9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let T9=null,E9=!1;function D9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function O9(e){if(!D9())return;let t=eA(e);T9=new Hc({currentPath:z(t,`tolerance-telemetry.jsonl`),previousPath:z(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),qn(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};T9?.append(`${JSON.stringify(t)}\n`).catch(e=>{E9||(E9=!0,F(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function k9(){qn(null),await T9?.drain(),T9=null,E9=!1}rc();const TIe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],EIe=[`cache`,`tmp`];function DIe(e){let t=z(e,Pe);if(!(()=>{if(!V(t))return!0;try{return Qu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of TIe)V(z(e,t))&&n.push(t);for(let t of EIe){let r=z(e,t);try{V(r)&&rd(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function OIe(e){let t=zd(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 A9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function kIe(e){ZB();let t=e.projectDir??e.contentDir,n=Txe({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}`)}Bc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Rc({localSink:n?.telemetry}),O9(t),uIe(),dIe();let{kind:r,gitdir:i}=OIe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=kc(i));let o=Cxe(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>hc(`ok.boot`,{attributes:a},async()=>AIe(e)),l=()=>{if(s)try{let e=tc.extract(ic.active(),{traceparent:s});return ic.with(e,c)}catch(e){F(`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 e=>{try{await d(e)}finally{o.uninstall()}},u}async function AIe(e){let t=e.skipAutoInit??!1,n=e.log??F(`boot`),r=e.serverRuntime??{...kr(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((Ts(r)||!ft(i))&&!r.allowExternal)throw new MB(`refusing to start: the server would bind a non-loopback address (${(ft(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=FB({serverRuntime:r});r.allowExternal&&!r.loopbackOnly&&r.externalUrl===void 0&&(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-VtTnds5h.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=z(p,`.ok`);if(!V(z(m,`config.yml`)))throw new q6(V(m)?`config`:`okdir`,p);let h=z(m,`.gitignore`);V(h)||F(`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??kw;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof Ew||e instanceof Dw){let t=e instanceof Dw?e.detected:``,r=e instanceof Dw?`too_old`:`not_available`;oJ(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 Lc(),await Promise.race([k9(),new Promise(e=>setTimeout(e,A9))]),e}let _=DIe(m);_.length>0&&F(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${Pe}/.`);let v=null,y=o9({getCollabClientCount:()=>v?.getCount()??0,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,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,embeddingsKeyStore:e.embeddingsKeyStore,singleDocRelPath:e.singleDocRelPath,ephemeral:e.ephemeral,configHomedirOverride:e.configHomedirOverride}),{hocuspocus:b,destroy:x,ready:S,degraded:C,lockDir:w,sessionManager:T,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,maintenanceCoordinator:O}=y,ee=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),te=e.port??0,k=()=>`http://${ee}:${te}`,A=e.ephemeral?void 0:B6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>k(),localApi:y.localApi,log:n}),ne=c();ne.headersTimeout=3e4,ne.requestTimeout=6e4;let re=e.serveContentAssets===!1?void 0:cZ({contentFilter:y.contentFilter,contentSirv:xZ(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:Fe,assetExtensions:ve,blocklistExtensions:je,ingressPolicy:a}),ie=e.reactShellDistDir?xZ(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,j=e.ephemeral?null:new AD({contentDir:e.contentDir,localDir:w,globalDir:z(sd(),`.ok`),registry:y.acpRegistry,permissions:y.acpPermissions,sessionManager:T,agentPresenceBroadcaster:D,resolveEmbed:y.resolveEmbed,isExcludedPath:e=>y.contentFilter.isExcluded(e),isIgnoredPath:e=>y.contentFilter.isPathIgnored(e),getLoadedDocText:e=>b.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>k(),getMcpStdioCommand:()=>kD(e.localOpCliArgs,te,{log:n}),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,probePiAcpBridge:e.probePiAcpBridge,ensurePiAcpBridge:e.ensurePiAcpBridge,log:n});j!==null&&await j.init();let ae=`pending`;S.then(()=>{ae=`ready`},()=>{ae=`failed`});let oe=G6({httpServer:ne,hocuspocus:b,nativeApi:y.nativeApi,mcpHttpHandler:A,ingressPolicy:a,health:{readiness:()=>ae,degraded:()=>C},log:n,sessionManager:T,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,maintenanceCoordinator:O,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:re,reactShellMiddleware:ie,ephemeral:e.ephemeral,acpThreadManager:j}),M=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)};v=EZ(ne);let se=null;if(e.idleShutdownMs!==null){let t=e.idleShutdownMs??18e5,r=e.idleShutdownHandler??(e=>async()=>{await e()});se=DZ({httpServer:ne,counter:v,thresholdMs:t,log:n,onShutdown:r(async()=>{await M(`idle-shutdown`)})})}await j9({hocuspocus:b,projectDir:e.projectDir??e.contentDir,log:n});let ce=[...new Set(i)],le=ce[0],ue=async()=>{await x().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(w)},de=(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 de(ne,e.port??0,le??`127.0.0.1`)}catch(e){throw await ue(),e}let fe=ne.address(),pe=typeof fe==`object`&&fe?fe.port:e.port??0,me=[];for(let e of ce.slice(1)){let t=c();t.headersTimeout=ne.headersTimeout,t.requestTimeout=ne.requestTimeout;for(let e of ne.listeners(`request`))t.on(`request`,e);for(let e of ne.listeners(`upgrade`))t.on(`upgrade`,e);try{await de(t,pe,e)}catch(t){n.error({err:t,failedAddress:e,port:pe,alreadyBound:me.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...me,ne])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await ue(),t}me.push(t)}let he=QB();he!==void 0&&$B(`httpListenMs`,he);let ge=ne.address(),_e=typeof ge==`object`&&ge?ge.port:e.port??0;te=_e;let ye=k();d(w,_e,ye),n.info({event:`server-listening`,pid:process.pid,port:_e,addresses:ce,url:ye,lockDir:w},`[boot] listening on ${ye}`);let be=!1,xe=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${A9}ms`))},A9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};M=async(e=`unspecified`)=>{if(be)return;be=!0,n.info({reason:e,pid:process.pid,lockDir:w},`[server] shutdown initiated (${e})`),ae=`draining`;let t=[],r=async(e,r)=>{try{await xe(e,r)}catch(r){t.push(r),n.warn({err:r,step:e},`bootServer destroy step failed`)}};try{l(w)}catch(e){n.warn({err:e,step:`markServerLockDraining`},`bootServer destroy step failed`)}try{v?.detach()}catch(e){n.warn({err:e,step:`collabClientCounter.detach`},`bootServer destroy step failed`)}try{se?.detach()}catch(e){t.push(e),n.warn({err:e,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(j!==null&&await r(`acpThreads.destroy`,()=>j.destroy()),await r(`secondaryListeners.close`,async()=>{for(let e of me)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await r(`mount.shutdown`,()=>oe.shutdown()),A!==void 0&&await r(`mcpHttpHandler.close`,()=>A.close()),await r(`mount.wss.close`,()=>new Promise((e,t)=>{oe.wss.close(n=>n?t(n):e())})),await r(`httpServer.closeAllConnections`,async()=>{ne.closeAllConnections?.()}),await r(`httpServer.close`,()=>new Promise((e,t)=>{ne.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await r(`destroyHocuspocus`,()=>x()),await r(`shutdownTelemetry`,()=>Lc()),await r(`teardownToleranceTelemetry`,()=>k9()),await r(`flushLogFileSinks`,()=>Bc.flushAllFileSinks()),t.length>0)throw AggregateError(t,`bootServer destroy completed with errors`)};try{let t=await _9({projectDir:p,skillsRoot:z(e.contentDir,`.ok`,`skills`),inPlaceNames:g9(e.contentDir,_L(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=sd(),t=await _9({projectDir:e,skillsRoot:z(e,`.ok`,`skills`),hostRoots:pIe,inPlaceNames:g9(e,vL(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 wIe({projectDir:p,skillsRoot:z(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:ne,destroy:M,lockDir:w,contentDir:e.contentDir,port:_e,ready:S,generatedIndexSweepReady:y.generatedIndexSweepReady,degraded:C,didAutoInit:f,serverInstance:y,runtime:PMe(y,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:j}}async function j9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new CZ(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=Bd(n),t=e?L(e,`MERGE_HEAD`):null;if(!t||!V(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=rte({baseDir:n,timeout:{block:5e3}});s=new Set(await Ib(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=Ix(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 jIe=i;function MIe(e={}){let t=e.home??sd(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?V(L(t,`Library`,`Application Support`,`Claude`)):n===`win32`?V(L(r.APPDATA??L(t,`AppData`,`Roaming`),`Claude`)):!1}var M9=t(ete(),1);const N9=L(sd(),`.ok`,`logs`),NIe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function P9(){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 PIe(e){qu(e,{recursive:!0})}function F9(){return new Date().toISOString().slice(0,10)}function FIe(e){try{if(rd(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{ed(n,r)}catch{}}try{id(`${e}.3`)}catch{}}function IIe(e){try{let t=Date.now(),n=10080*60*1e3,r=Qu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=rd(L(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{id(L(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{id(L(e,t.name)),a-=t.size}catch{}}}catch{}}function LIe(e){PIe(N9);let t=F9(),n=e.filePath??L(N9,`${e.name}.${t}.log`);FIe(n),(e._setTimeout??setTimeout)(()=>IIe(N9),5e3).unref();let r=M9.default.destination({dest:n,append:!0,sync:!0});return(0,M9.default)({level:P9(),name:e.name,redact:{paths:NIe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:M9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function RIe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[M9.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 zIe(e){return L(N9,`${e}.${F9()}.log`)}function BIe(){return N9}function VIe(e){let t=z(e),n=0;for(;n<30;){let e=!1;try{e=V(z(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=I(t);if(r===t)return null;t=r,n+=1}return null}const I9=Od(Eu),L9=F(`project-git`);var R9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function HIe(e,t){try{return await I9(e,[`var`,`GIT_COMMITTER_IDENT`],Cw({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function UIe(e,t){try{let{stdout:n}=await I9(e,[`for-each-ref`,`--count=1`,`refs/`],Cw({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return L9.warn({path:t,stderr:z9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function WIe(e){let t=z(e,`packed-refs`);if(V(t))try{if(H(t,`utf-8`).split(`
2038
+ `))e&&await t.raw(`update-ref`,`-d`,e)}),x.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){x.error({err:e},`[branch-switch] detached cleanup failed`)}O(!1),await N.flushDeferredStores(`discard-stale`),t=!0,Oe?.emitBranchSwitched(i)}finally{ye.abortBranchSwitch(r),t||(O(!1),await N.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&be.current&&t>0){let t=m??`.`;try{let n=await wx(be.current,t,e.oldHead,e.newHead,i);Bb(),x.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){x.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){x.error({err:e},`[server] HEAD watcher failed to start`),dn.push(`head-watcher`)}function l(e){for(let t of e)try{let e=nN(R(n,L(r,t)));if(e.startsWith(`..`))continue;let i=Ix(e),a=Ce.documents.get(i);if(!a)continue;let o=qt(i);o===null?x.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):T(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),x.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){x.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function u(e){for(let t of e)try{let e=nN(R(n,L(r,t)));if(e.startsWith(`..`))continue;let i=Ce.documents.get(Ix(e));i&&Yt(i)}catch(e){x.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=ZF(r);x.debug({resetAmbientCredentials:f,originKind:YF(r).kind},`[sync] ambient credential-chain reset decision at boot`);let p=qc(g,{resetAmbient:f}),h=A(),_=ne();h.mode!==`off`&&x.info({mode:h.mode,source:h.source},`[sync] mode active at boot`);try{sn=new rIe({projectDir:r,contentDir:n,contentFilter:ve,contentRoot:m,mcpTomlEditor:e.mcpTomlEditor,mode:h.mode,pullIntervalSeconds:e.pullIntervalSeconds??_.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds??_.pushIntervalSeconds,credentialConfig:p,cc1Broadcaster:Oe,detectGh:e.detectGh,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{O(e),e||N.flushDeferredStores(`within-branch`).catch(e=>{x.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{x.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:u,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=be.current;n&&await Ex(n,m??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=be.current;n&&await Ex(n,m??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{x.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await Tc({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||x.error({result:t,reason:e,humanError:Re(t.error),configPath:sc(`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 sn.start()}catch(e){x.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),sn=null}Je(`files`),ye.announceReadyViews();let v=QB();v!==void 0&&$B(`readyMs`,v),M()}return fn().then(()=>{Qe=!0,He(),ft(),vt()},e=>{$e=!0,et.abort(),lt({status:`failed`,indexCount:0}),ye.close(),Ge(),Ue(e)}),{hocuspocus:Ce,durabilityState:S,sessionManager:we,nativeApi:Te,localApi:Ee,cc1Broadcaster:Oe,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,maintenanceCoordinator:xe,contentFilter:ve,basenameIndex:he,serverInstanceId:de,destroy:un,ready:We,generatedIndexSweepReady:ct,degraded:dn,lockDir:fe,get syncEngine(){return sn},getLinkPreviewsEnabled:ae,resolveEmbed:ge,acpRegistry:pe,acpPermissions:me}}function s9(e){return e/1048576}function lIe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:s9(e.rss),heapTotalMb:s9(e.heapTotal),heapUsedMb:s9(e.heapUsed),externalMb:s9(e.external),arrayBuffersMb:s9(e.arrayBuffers)}}}let c9=null,l9=null,u9=null;const d9=1e6;let f9=null,p9=null;mc(()=>{c9=null,l9=null,u9=null,f9?.disable(),f9=null,p9=null});function uIe(){if(c9)return;let e=zc().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}=lIe();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`})}),c9=e}function dIe(){if(!l9){let e=zc().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(!f9){f9=Rte({resolution:20}),f9.enable();return}e.observe(f9.percentile(50)/d9,{stat:`p50`}),e.observe(f9.percentile(99)/d9,{stat:`p99`}),f9.reset()}),l9=e}if(!u9){let e=zc().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=p9;if(p9={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`}))}),u9=e}}const m9=F(`skill-migrate`);function h9(e){return[{host:`agents`,root:xa},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=IO.indexOf(e.host),r=IO.indexOf(t.host);return(n===-1?IO.length:n)-(r===-1?IO.length:r)||e.host.localeCompare(t.host)})}const fIe=h9(ct),pIe=h9(Yr);function mIe(e,t){return V(z(e,ii(t)))}function hIe(e,t){Dc(I(t),{recursive:!0});try{bc(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Ac(e,t,{recursive:!0}),jc(e,{recursive:!0,force:!0})}}function gIe(e,t,n){let r=RI(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 g9(e,t){let n;try{n=U(z(e,`.ok`,`skills`))}catch{n=z(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!U(z(e,t.dir)).startsWith(n+B)}catch{return!0}}).map(e=>e.name))}async function _9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??fIe,a={migrated:[],skipped:[]};if(!V(n))return a;let o;try{o=Qu(n)}catch{return a}let s=R(t,n).split(B).join(`/`),c=new Set;for(let[e,n]of Object.entries(Rq(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Fa.test(e)||hk.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=z(n,e);if(!V(L(o,`SKILL.md`)))continue;let s=AO(o)?.contentHash;if(s===void 0)continue;let l=U(o),u=i.map(({host:n,root:r})=>{let i=z(t,r);return{host:n,root:r,path:L(i,e),escapes:KI(t,i),state:gIe(L(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=>mIe(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`?jc(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&jc(d.path,{recursive:!0,force:!0}),hIe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(jc(e.path,{recursive:!0,force:!0}),Ac(d.path,e.path,{recursive:!0}));await IN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),m9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),m9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const v9=F(`skill-reconcile`),_Ie=hk;function y9(){let e=[];for(let t of ti){let n=ct[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:xa,editor:null}),e}function vIe(e,t){let n=R(e,z(t));return Pu(n)?z(t):n}function b9(e){let{frontmatter:t,body:n}=gs(e),r={};if(t!==``)try{let e=(0,uk.parse)(Zi(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function yIe(e,t){let n=b9(e),r=b9(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 x9(e,t){let n=S9(e),r=S9(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=L(e,o),c=L(t,o);if(i+=rd(s).size+rd(c).size,i>1048576)return!1;let l=H(s),u=H(c);if(!l.equals(u)&&(o!==`SKILL.md`||!yIe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function S9(e,t=``){let n=[];for(let r of Qu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...S9(L(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function C9(e,t,n){jc(t,{recursive:!0,force:!0}),Dc(e,{recursive:!0}),Cc(vIe(e,n),t,`dir`)}function w9(e,t){try{let n=$u(e);return z(Pu(n)?n:z(I(e),n))===z(t)}catch{return!1}}function bIe(e,t){try{let n=$u(e),r=Pu(n)?z(n):z(I(e),n);if(!V(r))return!1;let i=R(z(t),r);return i!==``&&(i.startsWith(`..`)||Pu(i))}catch(t){return v9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const xIe=[...ti,`agents`];function SIe(e){for(let t of xIe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function CIe(e){let{projectDir:t,skillsRoot:n}=e;if(!V(n))return;let r;try{r=Qu(n)}catch{return}let i=y9();for(let e of r){let r=SIe(e);if(r===null)continue;let a=z(n,e),o=z(n,r);if(V(o))try{let n=Ku(a);if(n.isSymbolicLink()||!n.isDirectory()||!V(L(a,`SKILL.md`))||!V(L(o,`SKILL.md`))||!x9(o,a))continue;for(let{rel:n}of i){let r=z(t,n);if(KI(t,r))continue;let i=L(r,e);w9(i,a)&&C9(r,i,o)}jc(a,{recursive:!0,force:!0}),v9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){v9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function wIe(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 y9()){let o=z(t,e);if(!V(o)||KI(t,o))continue;let s;try{s=Qu(o)}catch(e){v9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(_Ie.has(e))continue;let t=L(o,e),s=z(n,e),c=V(s);try{let l=Ku(t);if(l.isSymbolicLink()){if(w9(t,s)&&c)continue;if(bIe(t,n)){r.skipped.push({name:e,editor:i});continue}c?(C9(o,t,s),r.healed.push({name:e,editor:i})):(jc(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Fa.test(e)){v9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&x9(t,s)){C9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){v9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=NN(t);for(let[r,a]of i){let i=z(n,r);if(!V(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await FN(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??VI(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){v9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{CIe({projectDir:t,skillsRoot:n})}catch(e){v9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let T9=null,E9=!1;function D9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function O9(e){if(!D9())return;let t=eA(e);T9=new Hc({currentPath:z(t,`tolerance-telemetry.jsonl`),previousPath:z(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),qn(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};T9?.append(`${JSON.stringify(t)}\n`).catch(e=>{E9||(E9=!0,F(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function k9(){qn(null),await T9?.drain(),T9=null,E9=!1}rc();const TIe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],EIe=[`cache`,`tmp`];function DIe(e){let t=z(e,Pe);if(!(()=>{if(!V(t))return!0;try{return Qu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of TIe)V(z(e,t))&&n.push(t);for(let t of EIe){let r=z(e,t);try{V(r)&&rd(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function OIe(e){let t=zd(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 A9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function kIe(e){ZB();let t=e.projectDir??e.contentDir,n=Txe({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}`)}Bc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Rc({localSink:n?.telemetry}),O9(t),uIe(),dIe();let{kind:r,gitdir:i}=OIe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=kc(i));let o=Cxe(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>hc(`ok.boot`,{attributes:a},async()=>AIe(e)),l=()=>{if(s)try{let e=tc.extract(ic.active(),{traceparent:s});return ic.with(e,c)}catch(e){F(`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 e=>{try{await d(e)}finally{o.uninstall()}},u}async function AIe(e){let t=e.skipAutoInit??!1,n=e.log??F(`boot`),r=e.serverRuntime??{...kr(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((Ts(r)||!ft(i))&&!r.allowExternal)throw new MB(`refusing to start: the server would bind a non-loopback address (${(ft(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=FB({serverRuntime:r});r.allowExternal&&!r.loopbackOnly&&r.externalUrl===void 0&&(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-xg5Njzvf.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=z(p,`.ok`);if(!V(z(m,`config.yml`)))throw new q6(V(m)?`config`:`okdir`,p);let h=z(m,`.gitignore`);V(h)||F(`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??kw;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof Ew||e instanceof Dw){let t=e instanceof Dw?e.detected:``,r=e instanceof Dw?`too_old`:`not_available`;oJ(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 Lc(),await Promise.race([k9(),new Promise(e=>setTimeout(e,A9))]),e}let _=DIe(m);_.length>0&&F(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${Pe}/.`);let v=null,y=o9({getCollabClientCount:()=>v?.getCount()??0,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,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,embeddingsKeyStore:e.embeddingsKeyStore,singleDocRelPath:e.singleDocRelPath,ephemeral:e.ephemeral,configHomedirOverride:e.configHomedirOverride}),{hocuspocus:b,destroy:x,ready:S,degraded:C,lockDir:w,sessionManager:T,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,maintenanceCoordinator:O}=y,ee=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),te=e.port??0,k=()=>`http://${ee}:${te}`,A=e.ephemeral?void 0:B6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>k(),localApi:y.localApi,log:n}),ne=c();ne.headersTimeout=3e4,ne.requestTimeout=6e4;let re=e.serveContentAssets===!1?void 0:cZ({contentFilter:y.contentFilter,contentSirv:xZ(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:Fe,assetExtensions:ve,blocklistExtensions:je,ingressPolicy:a}),ie=e.reactShellDistDir?xZ(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,j=e.ephemeral?null:new AD({contentDir:e.contentDir,localDir:w,globalDir:z(sd(),`.ok`),registry:y.acpRegistry,permissions:y.acpPermissions,sessionManager:T,agentPresenceBroadcaster:D,resolveEmbed:y.resolveEmbed,isExcludedPath:e=>y.contentFilter.isExcluded(e),isIgnoredPath:e=>y.contentFilter.isPathIgnored(e),getLoadedDocText:e=>b.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>k(),getMcpStdioCommand:()=>kD(e.localOpCliArgs,te,{log:n}),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,probePiAcpBridge:e.probePiAcpBridge,ensurePiAcpBridge:e.ensurePiAcpBridge,log:n});j!==null&&await j.init();let ae=`pending`;S.then(()=>{ae=`ready`},()=>{ae=`failed`});let oe=G6({httpServer:ne,hocuspocus:b,nativeApi:y.nativeApi,mcpHttpHandler:A,ingressPolicy:a,health:{readiness:()=>ae,degraded:()=>C},log:n,sessionManager:T,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,maintenanceCoordinator:O,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:re,reactShellMiddleware:ie,ephemeral:e.ephemeral,acpThreadManager:j}),M=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)};v=EZ(ne);let se=null;if(e.idleShutdownMs!==null){let t=e.idleShutdownMs??18e5,r=e.idleShutdownHandler??(e=>async()=>{await e()});se=DZ({httpServer:ne,counter:v,thresholdMs:t,log:n,onShutdown:r(async()=>{await M(`idle-shutdown`)})})}await j9({hocuspocus:b,projectDir:e.projectDir??e.contentDir,log:n});let ce=[...new Set(i)],le=ce[0],ue=async()=>{await x().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(w)},de=(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 de(ne,e.port??0,le??`127.0.0.1`)}catch(e){throw await ue(),e}let fe=ne.address(),pe=typeof fe==`object`&&fe?fe.port:e.port??0,me=[];for(let e of ce.slice(1)){let t=c();t.headersTimeout=ne.headersTimeout,t.requestTimeout=ne.requestTimeout;for(let e of ne.listeners(`request`))t.on(`request`,e);for(let e of ne.listeners(`upgrade`))t.on(`upgrade`,e);try{await de(t,pe,e)}catch(t){n.error({err:t,failedAddress:e,port:pe,alreadyBound:me.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...me,ne])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await ue(),t}me.push(t)}let he=QB();he!==void 0&&$B(`httpListenMs`,he);let ge=ne.address(),_e=typeof ge==`object`&&ge?ge.port:e.port??0;te=_e;let ye=k();d(w,_e,ye),n.info({event:`server-listening`,pid:process.pid,port:_e,addresses:ce,url:ye,lockDir:w},`[boot] listening on ${ye}`);let be=!1,xe=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${A9}ms`))},A9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};M=async(e=`unspecified`)=>{if(be)return;be=!0,n.info({reason:e,pid:process.pid,lockDir:w},`[server] shutdown initiated (${e})`),ae=`draining`;let t=[],r=async(e,r)=>{try{await xe(e,r)}catch(r){t.push(r),n.warn({err:r,step:e},`bootServer destroy step failed`)}};try{l(w)}catch(e){n.warn({err:e,step:`markServerLockDraining`},`bootServer destroy step failed`)}try{v?.detach()}catch(e){n.warn({err:e,step:`collabClientCounter.detach`},`bootServer destroy step failed`)}try{se?.detach()}catch(e){t.push(e),n.warn({err:e,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(j!==null&&await r(`acpThreads.destroy`,()=>j.destroy()),await r(`secondaryListeners.close`,async()=>{for(let e of me)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await r(`mount.shutdown`,()=>oe.shutdown()),A!==void 0&&await r(`mcpHttpHandler.close`,()=>A.close()),await r(`mount.wss.close`,()=>new Promise((e,t)=>{oe.wss.close(n=>n?t(n):e())})),await r(`httpServer.closeAllConnections`,async()=>{ne.closeAllConnections?.()}),await r(`httpServer.close`,()=>new Promise((e,t)=>{ne.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await r(`destroyHocuspocus`,()=>x()),await r(`shutdownTelemetry`,()=>Lc()),await r(`teardownToleranceTelemetry`,()=>k9()),await r(`flushLogFileSinks`,()=>Bc.flushAllFileSinks()),t.length>0)throw AggregateError(t,`bootServer destroy completed with errors`)};try{let t=await _9({projectDir:p,skillsRoot:z(e.contentDir,`.ok`,`skills`),inPlaceNames:g9(e.contentDir,_L(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=sd(),t=await _9({projectDir:e,skillsRoot:z(e,`.ok`,`skills`),hostRoots:pIe,inPlaceNames:g9(e,vL(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 wIe({projectDir:p,skillsRoot:z(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:ne,destroy:M,lockDir:w,contentDir:e.contentDir,port:_e,ready:S,generatedIndexSweepReady:y.generatedIndexSweepReady,degraded:C,didAutoInit:f,serverInstance:y,runtime:PMe(y,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:j}}async function j9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new CZ(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=Bd(n),t=e?L(e,`MERGE_HEAD`):null;if(!t||!V(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=rte({baseDir:n,timeout:{block:5e3}});s=new Set(await Ib(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=Ix(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 jIe=i;function MIe(e={}){let t=e.home??sd(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?V(L(t,`Library`,`Application Support`,`Claude`)):n===`win32`?V(L(r.APPDATA??L(t,`AppData`,`Roaming`),`Claude`)):!1}var M9=t(ete(),1);const N9=L(sd(),`.ok`,`logs`),NIe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function P9(){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 PIe(e){qu(e,{recursive:!0})}function F9(){return new Date().toISOString().slice(0,10)}function FIe(e){try{if(rd(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{ed(n,r)}catch{}}try{id(`${e}.3`)}catch{}}function IIe(e){try{let t=Date.now(),n=10080*60*1e3,r=Qu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=rd(L(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{id(L(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{id(L(e,t.name)),a-=t.size}catch{}}}catch{}}function LIe(e){PIe(N9);let t=F9(),n=e.filePath??L(N9,`${e.name}.${t}.log`);FIe(n),(e._setTimeout??setTimeout)(()=>IIe(N9),5e3).unref();let r=M9.default.destination({dest:n,append:!0,sync:!0});return(0,M9.default)({level:P9(),name:e.name,redact:{paths:NIe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:M9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function RIe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[M9.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 zIe(e){return L(N9,`${e}.${F9()}.log`)}function BIe(){return N9}function VIe(e){let t=z(e),n=0;for(;n<30;){let e=!1;try{e=V(z(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=I(t);if(r===t)return null;t=r,n+=1}return null}const I9=Od(Eu),L9=F(`project-git`);var R9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function HIe(e,t){try{return await I9(e,[`var`,`GIT_COMMITTER_IDENT`],Cw({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function UIe(e,t){try{let{stdout:n}=await I9(e,[`for-each-ref`,`--count=1`,`refs/`],Cw({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return L9.warn({path:t,stderr:z9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function WIe(e){let t=z(e,`packed-refs`);if(V(t))try{if(H(t,`utf-8`).split(`
2039
2039
  `).some(e=>e.trim()!==``&&!e.startsWith(`#`)))return!0}catch{return!0}try{return Qu(z(e,`refs/heads`)).length>0}catch{return!1}}function z9(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 B9(e,t){if(await UIe(e,t))return;let n=[`commit`,`--allow-empty`,`--no-verify`,`--no-gpg-sign`,`-m`,`Initial commit`],r=await HIe(e,t),i=r?n:[`-c`,`user.name=Open Knowledge`,`-c`,`user.email=noreply@openknowledge.local`,...n];try{await I9(e,i,Cw({cwd:t,encoding:`utf-8`})),r||L9.info({path:t},`created initial commit with fallback identity (git identity unset)`)}catch(e){L9.warn({path:t,stderr:z9(e)},`could not create initial commit`)}}async function GIe(e,t){try{let{stdout:n}=await I9(e,[`rev-parse`,`--is-inside-work-tree`],Cw({cwd:t,encoding:`utf-8`}));return n.trim()===`true`}catch{return!1}}async function KIe(e){let t=z(e);Kq(t);let n=z(t,`.git`),r=z(n,`HEAD`),i=!1,a=!1;if(V(n)){if(!rd(n).isDirectory())return{didInit:!1};if(V(r)){if(WIe(n))return{didInit:!1};a=!0}else L9.info({},`detected partial .git/ — running git init to repair`),i=!0}let o;try{o=kw()}catch(e){throw e instanceof Ew||e instanceof Dw?(oJ(e),L9.warn({event:`git_preflight_fail`,platform:e.platform,reason:e instanceof Dw?`too_old`:`not_available`,detectedVersion:e instanceof Dw?e.detected:``},e instanceof Dw?`git binary too old`:`git binary not found`)):L9.warn({event:`git_preflight_unexpected_error`,err:e},`unexpected error during git preflight`),e}let s=o.resolvedPath;if(a)return await B9(s,t),{didInit:!1};if(!i&&await GIe(s,t))return{didInit:!1};let c=``;try{c=(await I9(s,[`init`,`--initial-branch=main`,t],Cw({encoding:`utf-8`}))).stderr??``}catch(e){let n=typeof e==`object`&&e&&`stderr`in e?String(e.stderr??``):``;throw new R9(`git init failed at ${t}: ${e instanceof Error?e.message:String(e)}`,n,{cause:e})}if(!V(r))throw new R9(`git init reported success but ${n}/HEAD is missing (partial init detected)`,c);return await B9(s,t),i?(L9.info({path:t},`backfilled missing .git/HEAD`),{didInit:!0,repaired:!0}):(L9.info({path:t,branch:`main`},`initialized .git/`),{didInit:!0})}const V9=F(`project-skill-git`),H9=/^[0-9a-f]{40}$/,qIe=Xt.map(e=>e.replace(/\/$/,``));async function JIe(e){let t=Bd(e);if(t===null)return{kind:`skipped`,reason:`no-git`};if(QIe(t))return{kind:`skipped`,reason:`operation-in-progress`};let n=Kc(e,{credentialConfig:[]});if((await U9(n)).length===0)return{kind:`nothing-tracked`};try{return await Gc(async()=>{let t=await YIe(n);if(t===null)return{kind:`skipped`,reason:`detached-head`};let r=await XIe(n);if(r===null)return{kind:`skipped`,reason:`unborn-head`};let i=await U9(n);if(i.length===0)return{kind:`nothing-tracked`};let a=Kc(e,{gitIndexFile:L(ud(),`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 ZIe(n,r);if(s!==null&&s===o)return{kind:`nothing-tracked`};let c=await uB(e),l=c?.name??`OpenKnowledge`,u=c?.email??`sync@open-knowledge.local`;Yc(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 \`${Cn}\` 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(!H9.test(f))return V9.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 V9.info({branch:t,err:W9(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){V9.info({err:W9(e)},`real-index reset after untrack failed (cosmetic)`)}return V9.info({dirs:i,commitSha:f},`untracked project-skill projection`),{kind:`untracked`,dirs:i,commitSha:f}})}catch(e){return{kind:`failed`,error:W9(e)}}}async function U9(e){let t=[];for(let n of qIe){let r=``;try{r=(await e.git.raw([`ls-files`,`--`,n])).trim()}catch{r=``}r.length>0&&t.push(n)}return t}async function YIe(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 XIe(e){try{let t=(await e.git.raw([`rev-parse`,`--verify`,`HEAD`])).trim();return H9.test(t)?t:null}catch{return null}}async function ZIe(e,t){try{let n=(await e.git.raw([`rev-parse`,`${t}^{tree}`])).trim();return H9.test(n)?n:null}catch{return null}}function QIe(e){return V(L(e,`MERGE_HEAD`))||V(L(e,`rebase-merge`))||V(L(e,`rebase-apply`))||V(L(e,`CHERRY_PICK_HEAD`))||V(L(e,`REVERT_HEAD`))}function W9(e){return e instanceof Error?e.message:String(e)}async function $Ie(e,t){let n;try{n=Tu(t).resolve(e)}catch(e){if(e?.code===`MODULE_NOT_FOUND`)return;throw e}for(let t=I(n),r=0;r<32;r+=1){let n=L(t,`package.json`);if(V(n))try{let t=JSON.parse(await md(n,`utf-8`));if(t.name===e&&typeof t.version==`string`)return t.version}catch{}let r=I(t);if(r===t)return;t=r}}const eLe=[{regex:/\/Users\/[^/]+\//g,replacement:`~/`},{regex:/\/home\/[^/]+\//g,replacement:`~/`},{regex:/C:\\\\Users\\\\[^\\\\]+\\\\/g,replacement:`~\\`},{regex:/C:\\Users\\[^\\]+\\/g,replacement:`~\\`}];function G9(e){if(e===void 0)return;let t=e;for(let{regex:e,replacement:n}of eLe)t=t.replace(e,n);return t}function K9(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:G9(e.message)??``,stack:G9(e.stack),code:e.code,cause:e.cause===void 0?void 0:K9(e.cause,t+1,n)};if(e==null)return{name:`UnknownError`,message:String(e)};if(typeof e==`string`)return{name:`StringError`,message:G9(e)??e};if(typeof e==`object`){let r=e;return{name:String(r.name??`ObjectError`),message:G9(String(r.message??``))??``,stack:G9(r.stack),code:r.code,cause:r.cause===void 0?void 0:K9(r.cause,t+1,n)}}return{name:`UnknownError`,message:String(e)}}var q9=class extends Error{constructor(e){super(`File not found: ${e}`),this.filePath=e,this.name=`SingleFileNotFoundError`}},J9=class extends Error{constructor(e){super(`Not a file: ${e}. \`ok <file>\` opens a single markdown file.`),this.filePath=e,this.name=`SingleFileNotAFileError`}},Y9=class extends Error{constructor(e,t){super(`Cannot open with --project ${e}: ${t}`),this.projectRoot=e,this.name=`SingleFileProjectOverrideError`}},X9=class extends Error{constructor(e){super(`OpenKnowledge edits markdown files (.md / .mdx): ${e}`),this.filePath=e,this.name=`SingleFileNotMarkdownError`}};function tLe(e,t={}){if(!Px(e))throw new X9(e);let n;try{n=U(z(e))}catch(t){throw t.code===`ENOENT`?new q9(e):t}if(!rd(n).isFile())throw new J9(e);let r=I(n);if(t.projectRoot!==void 0){let e=z(t.projectRoot);if(!RN(e))throw new Y9(e,`no .ok/config.yml there, so it is not an OpenKnowledge project root`);let r=R(Z9(e),n);if(r.startsWith(`..`)||Pu(r))throw new Y9(e,`${n} is not inside that project's content directory`);return{mode:`project`,projectRoot:e,docName:Ix(r.split(B).join(`/`)),canonicalFilePath:n}}let i=zN(r);if(i){let e=i.rootPath;return{mode:`project`,projectRoot:e,docName:Ix(R(Z9(e),n).split(B).join(`/`)),canonicalFilePath:n}}let a=ju(n);return{mode:`ephemeral`,canonicalFilePath:n,contentDir:r,singleDocRelPath:a,docName:Ix(a)}}function Z9(e){return z(e,dc({absPath:sc(`project`,e),sideline:!1,warn:()=>{}}).value.content?.dir??`.`)}const Q9=`ok-ephemeral-`;function $9(e,t){let n=z(e,`.ok`);return qu(n,{recursive:!0}),ad(z(n,`config.yml`),`# Ephemeral single-file session (\`ok <file>\`). Throwaway — safe to delete.\ncontent:\n dir: ${JSON.stringify(t)}\n`,`utf-8`),ad(z(n,`.gitignore`),`local/
2040
2040
  `,`utf-8`),e}function nLe(e){return $9(Ju(z(ud(),Q9)),e)}export{D6 as $,iS as $i,LI as $n,Qfe as $r,JJ as $t,C7 as A,mf as Aa,Jw as Ai,wB as An,KP as Ar,uZ as At,X5 as B,Cw as Bi,qz as Bn,_N as Br,rY as Bt,O9 as C,Gb as Ca,ok as Ci,UB as Cn,eF as Cr,fZ as Ct,a9 as D,dh as Da,AD as Di,IB as Dn,YP as Dr,pZ as Dt,o9 as E,lh as Ea,UD as Ei,zB as En,XP as Er,mZ as Et,y7 as F,uf as Fa,kw as Fi,jz as Fn,zN as Fr,Zbe as Ft,I5 as G,vw as Gi,HR as Gn,iN as Gr,QJ as Gt,DPe as H,yw as Hi,sz as Hn,pN as Hr,HJ as Ht,p7 as I,Vd as Ia,qw as Ii,Dz as In,RN as Ir,sZ as It,G6 as J,MC as Ji,WR as Jn,pM as Jr,Gve as Jt,K6 as K,lw as Ki,UR as Kn,WM as Kr,KJ as Kt,u7 as L,Nd as La,Ow as Li,Sz as Ln,gN as Lr,aZ as Lt,x7 as M,pf as Ma,Ew as Mi,Az as Mn,UP as Mr,kX as Mt,w7 as N,Wd as Na,Dw as Ni,dz as Nn,gP as Nr,OX as Nt,G7 as O,uh as Oa,vD as Oi,EB as On,qP as Or,dxe as Ot,T7 as P,Ud as Pa,ww as Pi,uz as Pn,Sme as Pr,Xbe as Pt,L6 as Q,dS as Qi,sR as Qn,Xfe as Qr,ZJ as Qt,J5 as R,Iw as Ri,lz as Rn,hN as Rr,MX as Rt,j9 as S,Qb as Sa,Xue as Si,FB as Sn,rF as Sr,_Z as St,k9 as T,iae as Ta,GD as Ti,RB as Tn,JP as Tr,dZ as Tt,H5 as U,Sw as Ui,YR as Un,cN as Ur,Kve as Ut,Y5 as V,rw as Vi,Oz as Vn,vN as Vr,tY as Vt,z5 as W,_w as Wi,XR as Wn,dN as Wr,Wve as Wt,H6 as X,fS as Xi,jR as Xn,lM as Xr,XJ as Xt,W6 as Y,tw as Yi,BR as Yn,fM as Yr,$J as Yt,B6 as Z,K as Zi,gR as Zn,$fe as Zr,YJ as Zt,zIe as _,Dx as _a,_k as _i,Uq as _n,XF as _r,hSe as _t,Y9 as a,kx as aa,Kj as ai,oJ as an,DI as ar,P0 as at,jIe as b,nx as ba,Yue as bi,Gq as bn,tF as br,EZ as bt,$9 as c,Sx as ca,Hj as ci,nJ as cn,TI as cr,Xwe as ct,JIe as d,hx as da,eA as di,$q as dn,EI as dr,S0 as dt,Yx as ea,Zfe as ei,LJ as en,FI as er,B0 as et,R9 as f,yx as fa,$k as fi,Yq as fn,dI as fr,y0 as ft,RIe as g,Ex as ga,wk as gi,X_e as gn,GF as gr,YQ as gt,LIe as h,Ox as ha,Sk as hi,q_e as hn,sI as hr,_$ as ht,X9 as i,Jx as ia,Dfe as ii,aJ as in,AI as ir,lTe as it,E7 as j,wf as ja,Xw as ji,iz as jn,HP as jr,cZ as jt,b7 as k,Cf as ka,kD as ki,TB as kn,GP as kr,gZ as kt,K9 as l,_x as la,Wj as li,qq as ln,wI as lr,Zwe as lt,VIe as m,px as ma,Tk as mi,eJ as mn,uI as mr,V1 as mt,J9 as n,Xx as na,Qj as ni,cJ as nn,uge as nr,H0 as nt,nLe as o,bx as oa,Tfe as oi,nve as on,OI as or,N0 as ot,KIe as p,Ax as pa,tA as pi,Q_e as pn,lI as pr,x0 as pt,q6 as q,jC as qi,GR as qn,UM as qr,qJ as qt,q9 as r,eS as ra,aM as ri,ive as rn,MI as rr,q0 as rt,tLe as s,xx as sa,Gj as si,tve as sn,kI as sr,O0 as st,Q9 as t,tS as ta,Bfe as ti,RJ as tn,hge as tr,V0 as tt,$Ie as u,wx as ua,Uj as ui,Qq as un,nge as ur,Qwe as ut,BIe as v,jx as va,vk as vi,Kq as vn,UF as vr,u$ as vt,D9 as w,uce as wa,qD as wi,AB as wn,Vme as wr,hZ as wt,kIe as x,ex as xa,yk as xi,MB as xn,nF as xr,DZ as xt,MIe as y,ux as ya,mk as yi,Wq as yn,gF as yr,p$ as yt,zPe as z,jw as zi,kz as zn,yN as zr,$ve as zt};
2041
- //# sourceMappingURL=src-Dyk9iCzv.mjs.map
2041
+ //# sourceMappingURL=src-HFlqeGnA.mjs.map