@inkeep/open-knowledge 0.63.0-beta.3 → 0.63.0-beta.4

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 (129) hide show
  1. package/dist/{acp-harness-probe-DfKw3Jwu.mjs → acp-harness-probe-qBc5g4vs.mjs} +2 -2
  2. package/dist/cli.mjs +6 -6
  3. package/dist/constants-CP7G3YEI.mjs +2 -0
  4. package/dist/git-handle-B0iwHPX9.mjs +1 -0
  5. package/dist/{git-handle-4kfkNWhe.mjs → git-handle-CIYTlUEZ.mjs} +2 -2
  6. package/dist/index.d.mts +17 -17
  7. package/dist/index.mjs +162 -162
  8. package/dist/{init-D3oXab3K.mjs → init-CEMUMKeR.mjs} +3 -3
  9. package/dist/init-D-qktpfQ.mjs +1 -0
  10. package/dist/{launch-json-removal-CoRIELoH.mjs → launch-json-removal-FSEIbfTQ.mjs} +2 -2
  11. package/dist/{loader-CDybWBtz.mjs → loader-CIa0tLQZ.mjs} +2 -2
  12. package/dist/loader-CgauWxoi.mjs +1 -0
  13. package/dist/md-manager-N3eB5SRj.mjs +2 -0
  14. package/dist/{open-browser-c1C7j5cZ.mjs → open-browser-DLqct6YK.mjs} +2 -2
  15. package/dist/parse-worker.mjs +1 -1
  16. package/dist/{preview-CFcMrZAr.mjs → preview-CCNJmBDF.mjs} +2 -2
  17. package/dist/preview-vUW05f-7.mjs +1 -0
  18. package/dist/public/assets/{ActivityModeContent-BRHWUTU_.js → ActivityModeContent-Dlz3nUxL.js} +1 -1
  19. package/dist/public/assets/{AddPropertiesButton-B5S_biuo.js → AddPropertiesButton-1HbxHToc.js} +1 -1
  20. package/dist/public/assets/{AgentDiffPane-CKMN7uO2.js → AgentDiffPane-Dp3u8-nG.js} +1 -1
  21. package/dist/public/assets/{AgentThreadClientBinder-BeOI_eLL.js → AgentThreadClientBinder-C8R8R3h3.js} +1 -1
  22. package/dist/public/assets/{BugReportHistory-DX6L-_sJ.js → BugReportHistory-DKu7HFRe.js} +1 -1
  23. package/dist/public/assets/{BugReportHistoryDialog-DsssFBQs.js → BugReportHistoryDialog-2wmafCBx.js} +1 -1
  24. package/dist/public/assets/{CodeMirrorPropInput-CiDPQMoe.js → CodeMirrorPropInput-D97N2Z43.js} +1 -1
  25. package/dist/public/assets/{DocumentContext-BNVmouLp.js → DocumentContext-DLZBeoOd.js} +1 -1
  26. package/dist/public/assets/{EditorModeToggle-ChXuaX-g.js → EditorModeToggle-B0rhdFw5.js} +1 -1
  27. package/dist/public/assets/{EnableSyncConfirmDialog-BZxFQH1e.js → EnableSyncConfirmDialog-Cit0Slhm.js} +1 -1
  28. package/dist/public/assets/{ExcalidrawDocEditor-kSXgInTo.js → ExcalidrawDocEditor-B8NQMhlH.js} +1 -1
  29. package/dist/public/assets/FeedbackForm-BdXV9UuX.js +1 -0
  30. package/dist/public/assets/{GraphPanel-XzZ9os01.js → GraphPanel-Btq1iKfX.js} +1 -1
  31. package/dist/public/assets/{ImportSkillDialog-AMZB8Sq-.js → ImportSkillDialog-uPL67KK-.js} +1 -1
  32. package/dist/public/assets/{LintConfigEditor-CR1JM7qC.js → LintConfigEditor-DVFLPN2D.js} +1 -1
  33. package/dist/public/assets/ManagedArtifactProperties-68kSk_SQ.js +1 -0
  34. package/dist/public/assets/{ManagedArtifactProperties-DvxRb75E.js → ManagedArtifactProperties-B8CeX-0j.js} +1 -1
  35. package/dist/public/assets/{MermaidDocEditor-DNtN6gpQ.js → MermaidDocEditor-DWTkFC8-.js} +1 -1
  36. package/dist/public/assets/{PropertyDisplayRow-D8YTuo2g.js → PropertyDisplayRow-EWSJVCPR.js} +1 -1
  37. package/dist/public/assets/{ReportBugDialogBody-eEi1p8SY.js → ReportBugDialogBody-DRmJP5h-.js} +1 -1
  38. package/dist/public/assets/{SchemaConfigEditor-BdDBPlf8.js → SchemaConfigEditor-gJWWTfoS.js} +1 -1
  39. package/dist/public/assets/{SessionsHost-BWF5LkCB.js → SessionsHost-BKtOAaVq.js} +2 -2
  40. package/dist/public/assets/{SettingsDialogBody-D-xJh1Wz.js → SettingsDialogBody-D3VCcRPW.js} +1 -1
  41. package/dist/public/assets/{ShareBranchSwitchDialog-CrAn8BfM.js → ShareBranchSwitchDialog-BFGS4dAX.js} +1 -1
  42. package/dist/public/assets/{ShareReceiveDialog-BHw7vyVN.js → ShareReceiveDialog-BnbIWRP7.js} +1 -1
  43. package/dist/public/assets/{ShareReceiveMissDialog-BLiZVpAL.js → ShareReceiveMissDialog-C5IqBasi.js} +1 -1
  44. package/dist/public/assets/{SkillCostValue-BLO1pLvK.js → SkillCostValue-V0AVu3q8.js} +1 -1
  45. package/dist/public/assets/{SkillEditBanner-gs8OWdnP.js → SkillEditBanner-BHGO-py7.js} +1 -1
  46. package/dist/public/assets/{SkillInstallMenu-B8VpVw2e.js → SkillInstallMenu-tVLtrElJ.js} +1 -1
  47. package/dist/public/assets/{SkillOriginInline-B2Xgoqtt.js → SkillOriginInline-LFPeXtob.js} +1 -1
  48. package/dist/public/assets/{SkillToolbarControls-DV1Fs4Pg.js → SkillToolbarControls-BNRjjmCR.js} +1 -1
  49. package/dist/public/assets/{SlidesToolbarControls-CTcysZq-.js → SlidesToolbarControls-BWTKaM60.js} +1 -1
  50. package/dist/public/assets/{SourceEditor-n5FZTUOu.js → SourceEditor-Bb42LBh0.js} +1 -1
  51. package/dist/public/assets/{TerminalPanel-B6ZtyhwL.js → TerminalPanel-C7XsW2ni.js} +1 -1
  52. package/dist/public/assets/{TerminalWindowApp-CZJAw22h.js → TerminalWindowApp-BgLTo4oU.js} +1 -1
  53. package/dist/public/assets/{TextDocEditor-DkJOYSVf.js → TextDocEditor-BpCGpD12.js} +1 -1
  54. package/dist/public/assets/{ThreadView-BRzUHw-R.js → ThreadView-DC1xOui5.js} +1 -1
  55. package/dist/public/assets/{TimelineDiffPane-DCCqK3H8.js → TimelineDiffPane-CuKeqvR1.js} +1 -1
  56. package/dist/public/assets/{agent-diff-store-DI5tXhTu.js → agent-diff-store-CUV_Wz27.js} +1 -1
  57. package/dist/public/assets/{auth-state-cache-CG_XUeO-.js → auth-state-cache-DXmRaSS7.js} +1 -1
  58. package/dist/public/assets/{bug-report-send-manager-zDc5vC2X.js → bug-report-send-manager-Cla-OHd1.js} +1 -1
  59. package/dist/public/assets/{client-version-lhd-bvFR.js → client-version-C-LRLMDd.js} +1 -1
  60. package/dist/public/assets/{comment-chips-ChSYInGh.js → comment-chips-CPDV2YlN.js} +1 -1
  61. package/dist/public/assets/{config-provider-CQmpYETo.js → config-provider-CjNHraCK.js} +1 -1
  62. package/dist/public/assets/{dist-GmWRTOzP2.js → dist-Ce8QgKUj2.js} +11 -11
  63. package/dist/public/assets/{doc-paths-UE_zeyLH.js → doc-paths-CHSXVibs.js} +1 -1
  64. package/dist/public/assets/{documents-events-BgxcR4IL.js → documents-events-xbEOOZ0r.js} +1 -1
  65. package/dist/public/assets/{file-tree-adapter-K79-tTPB.js → file-tree-adapter-DQf7roV9.js} +1 -1
  66. package/dist/public/assets/{file-tree-utils-tuCOKGBG.js → file-tree-utils-BFfeEP1j.js} +1 -1
  67. package/dist/public/assets/{folder-config-api-CU0x8rpW.js → folder-config-api-CU0L7tKK.js} +1 -1
  68. package/dist/public/assets/i18n-Yuv17jl2.js +1 -0
  69. package/dist/public/assets/{index-C3NZCyxs.js → index-CVXtfbX0.js} +7 -7
  70. package/dist/public/assets/{lint-config-client-CHv46z_2.js → lint-config-client-DRimdQdD.js} +1 -1
  71. package/dist/public/assets/{markdownlint-rule-browser-BnjfZkl5.js → markdownlint-rule-browser-CZYawfE0.js} +1 -1
  72. package/dist/public/assets/{page-list-cache-C3X4L8GH.js → page-list-cache-hdVNMZkU.js} +1 -1
  73. package/dist/public/assets/{pending-receive-nav-store-DVgOZI59.js → pending-receive-nav-store-uWCtyHYI.js} +1 -1
  74. package/dist/public/assets/{progress-dpq4llLB.js → progress-Dc1sTPpY.js} +1 -1
  75. package/dist/public/assets/{prop-types-DtbA0trN.js → prop-types-h2mOVWO9.js} +1 -1
  76. package/dist/public/assets/{receive-store-CN9wympB.js → receive-store-BA-7J_9S.js} +1 -1
  77. package/dist/public/assets/{selection-context-CrjxZBGv.js → selection-context-B5FUPLvJ.js} +1 -1
  78. package/dist/public/assets/{skill-scope-Dbjtreno.js → skill-scope-S38ho6V2.js} +1 -1
  79. package/dist/public/assets/{skills-api-CjF1HVT0.js → skills-api-MlE0X9DC.js} +1 -1
  80. package/dist/public/assets/{src-BlvJjNme.js → src-DtQx0-N1.js} +1 -1
  81. package/dist/public/assets/{tag-pill-input-DiSoMc1e.js → tag-pill-input-BNvy_T1P.js} +1 -1
  82. package/dist/public/assets/{target-navigation-intent-Bti3wCKM.js → target-navigation-intent-C74Rtw7A.js} +1 -1
  83. package/dist/public/assets/{terminal-cli-display-BSCPXe42.js → terminal-cli-display-BOx5rFUv.js} +1 -1
  84. package/dist/public/assets/{terminal-launch-events-CBiJUoBx.js → terminal-launch-events-CLgfK16W.js} +1 -1
  85. package/dist/public/assets/{terminal-telemetry-Bq5le7-n.js → terminal-telemetry-akEbrUKt.js} +1 -1
  86. package/dist/public/assets/{typing-burst-detector-mAlBPt1_.js → typing-burst-detector-BfvtamrV.js} +1 -1
  87. package/dist/public/assets/{uninstall-2B6SvOJQ.js → uninstall-kwpaLEMD.js} +1 -1
  88. package/dist/public/assets/{use-activity-panel-DKoNNsPq.js → use-activity-panel-epy1woDH.js} +1 -1
  89. package/dist/public/assets/{use-apply-config-color-theme-DaKv9alx.js → use-apply-config-color-theme-NEQhq5zu.js} +1 -1
  90. package/dist/public/assets/{use-collab-url-bAnITYA-.js → use-collab-url-CA0gBqow.js} +1 -1
  91. package/dist/public/assets/{use-live-xterm-theme-DkxNKSl2.js → use-live-xterm-theme-8QZwbrNw.js} +1 -1
  92. package/dist/public/assets/{use-open-skill-BPCb-4s8.js → use-open-skill-DbMNgFC4.js} +1 -1
  93. package/dist/public/assets/{use-settings-route-wdvSSekr.js → use-settings-route-juHfAFnp.js} +1 -1
  94. package/dist/public/assets/{use-skill-origin-D-1lraVF.js → use-skill-origin-B20eK786.js} +1 -1
  95. package/dist/public/assets/{use-skills-D-q84Vic.js → use-skills-CFe_Pfyl.js} +1 -1
  96. package/dist/public/assets/{use-terminal-enabled-CiKWUCqJ.js → use-terminal-enabled-B6G42XNq.js} +1 -1
  97. package/dist/public/assets/{use-timeline-entry-diff-CpLnYL7S.js → use-timeline-entry-diff-BYai8_il.js} +1 -1
  98. package/dist/public/assets/{use-workspace-ClElU10Z.js → use-workspace-Cq3LTz0y.js} +1 -1
  99. package/dist/public/index.html +45 -45
  100. package/dist/public/uninstall.html +3 -3
  101. package/dist/{repair-launch-json-D-uWDRLd.mjs → repair-launch-json-CDgPqILr.mjs} +2 -2
  102. package/dist/{repair-mcp-configs-FobZ9gOM.mjs → repair-mcp-configs-CiUkTwsE.mjs} +2 -2
  103. package/dist/repair-skills-BflLjGjq.mjs +1 -0
  104. package/dist/{repair-skills-CPlU1WM5.mjs → repair-skills-C0uJGBYH.mjs} +2 -2
  105. package/dist/{resolve-project-root-C70nb-25.mjs → resolve-project-root-CIQP5bae.mjs} +2 -2
  106. package/dist/{server-lock-BGqc8NMa.mjs → server-lock-C0j1Yr_I.mjs} +2 -2
  107. package/dist/server-lock-CJBewXA-.mjs +1 -0
  108. package/dist/{skill-teardown-BfYSeXPm.mjs → skill-teardown-CZx0nQAt.mjs} +2 -2
  109. package/dist/{src-aLTXEBdL.mjs → src-0BnQ9xtm.mjs} +1 -1
  110. package/dist/{src-aLj1Uvo1.mjs → src-7WRW1fhg.mjs} +2 -2
  111. package/dist/src-BTLjl4w5.mjs +1 -0
  112. package/dist/{src-Bh7r8AFJ.mjs → src-Bt6_UxL9.mjs} +59 -59
  113. package/dist/{src-vY_ilATE.mjs → src-yn8SArMz.mjs} +4 -4
  114. package/dist/{start-CrTO33E1.mjs → start-BD5yAwYw.mjs} +3 -3
  115. package/dist/start-CLpYf82g.mjs +1 -0
  116. package/package.json +4 -4
  117. package/dist/constants-WtyW8ME0.mjs +0 -2
  118. package/dist/git-handle-BdfJ9JDW.mjs +0 -1
  119. package/dist/init-qwuO2hTb.mjs +0 -1
  120. package/dist/loader-BXuLOBfP.mjs +0 -1
  121. package/dist/md-manager-DS8TUqd4.mjs +0 -2
  122. package/dist/preview-CwxA8f57.mjs +0 -1
  123. package/dist/public/assets/FeedbackForm-i76yrsBl.js +0 -1
  124. package/dist/public/assets/ManagedArtifactProperties-BXWl4sj9.js +0 -1
  125. package/dist/public/assets/i18n-CW15xoEi.js +0 -1
  126. package/dist/repair-skills-BI9OFTxB.mjs +0 -1
  127. package/dist/server-lock-DuwfbnK9.mjs +0 -1
  128. package/dist/src-7WFb5U5C.mjs +0 -1
  129. package/dist/start-C_rDvJEQ.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,C as c,Ct as l,Dt as u,Et as d,F as f,Ft as p,Gt as m,H as h,Ht as g,I as _,It as v,Jt as y,Kt as b,L as x,Lt as S,M as C,Mt as w,N as T,Nt as E,P as ee,Pt as te,Q as ne,Qt as D,R as re,Rt as O,S as k,St as A,T as ie,Tt as ae,Vt as oe,Xt as se,Yt as ce,Zt as le,a as ue,at as de,bt as j,d as fe,dt as pe,en as me,ft as he,gt as ge,ht as _e,i as ve,it as ye,jt as M,kt as N,lt as be,m as xe,nn as Se,o as Ce,ot as we,p as Te,pt as Ee,qt as De,s as Oe,st as ke,t as Ae,tn as je,tt as Me,ut as Ne,vt as Pe,w as Fe,wt as Ie,x as Le,yt as Re,zt as ze}from"./sleep-D4NlDISj.mjs";import{$ as Be,$a as Ve,$i as He,$n as Ue,$r as We,$s as Ge,$t as Ke,A as qe,Aa as Je,Ai as Ye,An as Xe,Ao as Ze,Ar as Qe,As as $e,At as et,B as tt,Ba as nt,Bi as rt,Bn as it,Bo as at,Br as ot,Bs as st,Bt as ct,C as lt,Ca as ut,Ci as dt,Cn as ft,Cr as pt,Cs as mt,Ct as ht,D as gt,Da as _t,Dc as vt,Di as yt,Dn as bt,Do as xt,Dr as St,Ds as Ct,Dt as wt,E as Tt,Ea as Et,Ec as Dt,Ei as Ot,En as kt,Eo as At,Er as jt,Et as Mt,F as Nt,Fa as Pt,Fi as Ft,Fn as It,Fo as Lt,Fr as Rt,Fs as zt,Ft as Bt,G as Vt,Ga as Ht,Gi as Ut,Gn as Wt,Go as Gt,Gr as Kt,Gs as qt,H as Jt,Ha as Yt,Hi as Xt,Hn as Zt,Ho as Qt,Hr as $t,Hs as en,Ht as tn,I as nn,Ia as rn,Ii as an,In as on,Io as sn,Ir as cn,Is as ln,It as un,Ja as dn,Ji as fn,Jn as pn,Jr as eee,Jt as mn,K as hn,Ka as tee,Ki as gn,Kn as nee,Ko as _n,Kr as vn,Ks as yn,Kt as bn,L as xn,La as Sn,Li as Cn,Ln as wn,Lo as ree,Lr as iee,Lt as Tn,M as En,Ma as aee,Mc as Dn,Mi as On,Mn as oee,Mo as kn,Mr as An,Ms as jn,Mt as Mn,N as see,Na as cee,Ni as Nn,Nn as lee,No as uee,Nr as dee,Nt as Pn,O as Fn,Oa as In,Oc as Ln,Oi as fee,On as Rn,Oo as pee,Or as zn,Os as Bn,Ot as Vn,P as Hn,Pa as mee,Pi as Un,Pn as Wn,Po as Gn,Pr as Kn,Ps as qn,Pt as Jn,Qa as Yn,Qi as Xn,Qn as Zn,Qo as Qn,Qr as hee,Qs as $n,Qt as er,R as gee,Ra as _ee,Ri as tr,Rn as vee,Ro as nr,Rr as yee,Rs as rr,Rt as ir,S as ar,Sa as or,Si as sr,Sn as cr,So as lr,Sr as bee,Ss as ur,St as dr,T as fr,Ta as pr,Ti as xee,Tn as See,To as mr,Tr as hr,Ts as gr,Tt as _r,U as vr,Ua as yr,Ui as br,Un as xr,Uo as Sr,Ur as Cr,Us as wr,Ut as Tr,V as Er,Va as Dr,Vi as Or,Vn as kr,Vo as Ar,Vr as jr,Vt as Mr,W as Nr,Wa as Cee,Wi as wee,Wn as Tee,Wo as Eee,Wr as Dee,Ws as Pr,X as Oee,Xa as kee,Xi as Fr,Xn as Aee,Xo as Ir,Xr as jee,Xs as Lr,Xt as Rr,Y as Mee,Ya as Nee,Yi as zr,Yn as Pee,Yo as Fee,Yr as Br,Ys as Vr,Yt as Hr,Z as Iee,Za as Ur,Zi as Wr,Zn as Lee,Zo as Gr,Zr as Ree,Zs as Kr,Zt as qr,_ as Jr,_a as Yr,_c as Xr,_i as Zr,_n as zee,_o as Qr,_r as Bee,_s as $r,_t as ei,a as ti,aa as ni,ac as Vee,ai as ri,an as Hee,ao as ii,ar as Uee,as as ai,at as oi,b as si,ba as ci,bi as Wee,bn as Gee,bo as li,br as Kee,bs as ui,bt as di,c as fi,ca as pi,cc as mi,ci as hi,cn as qee,co as gi,cr as Jee,cs as _i,ct as vi,d as yi,da as bi,dc as xi,di as Si,dn as Ci,do as wi,dr as Ti,ds as Ei,ea as Di,ec as Oi,ei as ki,en as Ai,eo as ji,er as Mi,es as Ni,et as Pi,f as Fi,fa as Ii,fc as Li,fi as Ri,fn as zi,fo as Bi,fr as Vi,fs as Hi,ft as Ui,g as Wi,ga as Gi,gi as Ki,gn as qi,go as Ji,gr as Yee,gs as Yi,gt as Xi,h as Zi,ha as Qi,hc as $i,hi as ea,hn as Xee,ho as ta,hr as na,hs as ra,ht as ia,i as aa,ia as oa,ic as sa,ii as ca,in as Zee,io as la,ir as Qee,is as ua,it as da,j as fa,ja as pa,ji as ma,jn as $ee,jo as ete,jr as tte,js as ha,jt as ga,k as _a,ka as va,kc as ya,ki as nte,kn as ba,ko as xa,kr as rte,kt as Sa,l as Ca,la as wa,lc as Ta,li as ite,ln as Ea,lo as Da,lr as ate,ls as Oa,lt as ka,m as Aa,ma as ja,mc as ote,mi as Ma,mn as ste,mr as Na,ms as Pa,mt as Fa,n as Ia,na as La,ni as Ra,nn as za,no as Ba,nr as Va,nt as Ha,o as Ua,oa as cte,oc as Wa,oi as Ga,on as Ka,oo as qa,or as lte,os as Ja,ot as Ya,p as Xa,pa as Za,pc as Qa,pi as $a,pn as ute,po as eo,pr as to,pt as no,q as ro,qa as dte,qi as io,qn as ao,qo as oo,qr as so,qs as co,qt as lo,r as uo,ra as fo,rc as po,ri as mo,rn as fte,ro as ho,rr as go,rs as _o,rt as vo,s as yo,sa as bo,sc as xo,si as So,sn as Co,so as wo,sr as To,st as Eo,t as Do,ta as Oo,tc as ko,ti as Ao,tn as jo,to as Mo,tr as No,tt as Po,u as Fo,ua as Io,uc as Lo,ui as pte,un as mte,uo as Ro,ur as hte,v as zo,va as Bo,vc as Vo,vi as Ho,vn as gte,vo as Uo,vr as _te,vs as Wo,vt as Go,w as Ko,wa as qo,wi as vte,wn as yte,wo as bte,wr as Jo,ws as Yo,wt as Xo,x as Zo,xa as Qo,xi as $o,xn as xte,xo as es,xr as Ste,xs as ts,xt as ns,y as rs,ya as is,yc as as,yi as os,yn as Cte,yo as ss,yr as wte,yt as cs,z as ls,za as Tte,zi as us,zn as Ete,zo as ds,zr as Dte,zs as fs,zt as ps}from"./src-Bh7r8AFJ.mjs";import{c as ms,i as hs,l as gs,n as _s,s as vs}from"./esm-DxvI2ZVA.mjs";import{n as ys,t as bs}from"./md-manager-DS8TUqd4.mjs";import{A as xs,C as Ss,E as Cs,I as ws,M as Ts,O as Es,P as Ds,S as Os,T as ks,_ as As,a as js,b as Ms,c as Ns,d as Ps,f as Fs,g as Is,h as Ls,i as Rs,j as zs,k as Bs,l as Vs,m as Hs,n as Us,o as Ws,p as Gs,r as Ks,s as qs,t as Js,u as Ys,v as Xs,w as Zs,x as Qs,y as $s}from"./fs-traced-Dm4NQ6S5.mjs";import{E as ec,T as tc,a as nc,b as rc,l as ic,p as ac,r as P,s as oc,v as sc,w as cc,x as lc,y as uc}from"./logger-Dq-cRhcP.mjs";import{a as dc,c as fc,i as pc,l as mc,o as hc,r as gc,s as _c,t as vc}from"./git-handle-4kfkNWhe.mjs";import{C as yc,S as bc,a as xc,b as Sc,d as Cc,i as wc,n as Tc,o as Ec,r as Dc,v as Oc,y as kc}from"./server-lock-BGqc8NMa.mjs";import{t as Ac}from"./libesm-DzwC_yFw.mjs";import{t as jc}from"./yazl-DejPO9b3.mjs";import{t as Mc}from"./chunk-B74TABJS-CK4NFJp-.mjs";import{a as Nc,c as Pc,d as Fc,f as Ic,h as Lc,i as Rc,l as zc,m as Bc,n as Vc,o as Hc,p as Uc,r as Wc,s as Gc,t as Kc,u as qc}from"./chunk-GFQRA5P5-BWmec-I9.mjs";import{A as Jc,B as Yc,C as Xc,D as Zc,E as Qc,F as $c,H as el,I as tl,L as nl,M as rl,N as il,O as al,P as ol,S as sl,T as cl,V as ll,_ as ul,a as dl,b as fl,c as pl,d as ml,f as hl,g as gl,h as _l,i as vl,j as yl,k as bl,l as xl,m as Sl,n as Cl,o as wl,p as Tl,r as El,s as Dl,t as Ol,u as kl,v as Al,w as jl,x as Ml,y as Nl,z as Pl}from"./chunk-BGSUD5R5-Cj4a16wX.mjs";import{a as Fl,c as Il,d as Ll,i as Rl,l as zl,n as Bl,o as Vl,r as Hl,s as Ul,t as Wl,u as Gl}from"./chunk-KX3P26DQ-KA7oOKfS.mjs";import{n as Kl,r as ql,t as Jl}from"./chunk-R6VWJ2ZL-B9eBwYXQ.mjs";import{r as Yl}from"./chunk-CWQS3NFK-BmYxhDXa.mjs";import{t as Xl}from"./chunk-DXB73IDG-Dx7prHrO.mjs";import{n as Zl,t as Ql}from"./chunk-5QMZ5MUS-BliBLsUm.mjs";import{n as Ote,t as kte}from"./chunk-A5O5YHGN-OOtvVl24.mjs";import{n as $l,r as eu,t as tu}from"./chunk-OJDRYQWQ-DqalHi82.mjs";import{r as Ate,t as nu}from"./chunk-24IMIIXA-C3WrrB2N.mjs";import{n as ru}from"./chunk-3THT3N7L-Be-SmWEj.mjs";import{t as iu}from"./chunk-44UOCSGV-CZohvp0c.mjs";import{t as jte}from"./wrapper-BR9ZCXZF.mjs";import{createRequire as au}from"node:module";import{execFile as ou,execFileSync as Mte,spawn as su,spawnSync as cu}from"node:child_process";import*as lu from"node:path";import{basename as uu,delimiter as du,dirname as F,extname as fu,isAbsolute as pu,join as I,normalize as mu,parse as hu,posix as gu,relative as L,resolve as R,sep as z,win32 as _u}from"node:path";import{URLSearchParams as vu,fileURLToPath as yu,pathToFileURL as bu}from"node:url";import*as xu from"node:fs";import{appendFileSync as Su,chmodSync as Cu,closeSync as wu,constants as Tu,createReadStream as Eu,createWriteStream as Du,existsSync as B,fstatSync as Ou,lstatSync as ku,mkdirSync as Au,mkdtempSync as ju,openSync as Mu,opendirSync as Nu,readFile as Pu,readFileSync as V,readSync as Fu,readdirSync as Iu,readlinkSync as Lu,realpathSync as H,renameSync as Ru,rmSync as zu,rmdirSync as Bu,statSync as Vu,unlinkSync as Hu,writeFileSync as Uu,writeSync as Wu}from"node:fs";import{arch as Gu,availableParallelism as Ku,homedir as qu,hostname as Ju,platform as Yu,tmpdir as Xu}from"node:os";import{access as Zu,chmod as Qu,constants as $u,lstat as ed,readFile as td,readdir as nd,realpath as rd,stat as id,writeFile as ad}from"node:fs/promises";import{Readable as od,Transform as sd,Writable as cd}from"node:stream";import ld,{createHash as ud,randomUUID as dd,webcrypto as fd}from"node:crypto";import pd from"crypto";import{Readable as md}from"stream";import{EventEmitter as hd}from"node:events";import{readdirSync as gd,statSync as _d}from"fs";import{join as vd,resolve as yd}from"path";import{Worker as bd}from"node:worker_threads";import{monitorEventLoopDelay as xd,performance as Sd}from"node:perf_hooks";import{createInterface as Nte}from"node:readline";import{pipeline as Cd}from"node:stream/promises";import{setImmediate as Pte,setTimeout as wd}from"node:timers/promises";import{promisify as Td}from"node:util";import{request as Fte}from"node:http";import{Http2ServerRequest as Ed,constants as Ite}from"node:http2";import{lookup as Lte}from"node:dns/promises";import{request as Rte}from"node:https";import{createBrotliDecompress as zte,createGunzip as Bte,createInflate as Vte}from"node:zlib";import*as Hte from"node:querystring";import{Http2ServerRequest as Dd,constants as Ute}from"http2";import{AsyncLocalStorage as Wte}from"node:async_hooks";import{lookup as Gte}from"node:dns";import Kte from"node:tls";var Od=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=V(I(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=pu(t)?t:R(this.gitDir,t))}catch(e){if(!Md(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=V(I(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return Md(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]}:Pd(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=V(I(t.path,`config`),`utf-8`)}catch(e){return Md(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=qte(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Nd(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=R(t.path,e),r=L(t.path,n);if(r.startsWith(`..`)||pu(r))return{kind:`invalid`};try{let e=V(n,`utf-8`).trim(),t=Xte(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!Md(e))return{kind:`unreadable`,cause:e}}let i;try{i=V(I(t.path,`packed-refs`),`utf-8`)}catch(e){return Md(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 Pd(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function kd(e){return jd(R(e),``)}function Ad(e){let t=R(e),n=R(qu());if(t===n)return{kind:`absent`};let r=jd(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=F(i);if(e===i||e===n)return{kind:`absent`};let r=jd(e,L(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function jd(e,t){let n=I(e,`.git`),r;try{r=Vu(n)}catch(e){return Md(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new Od(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=V(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:R(e,o);try{if(!Vu(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 Od(`linked`,e,t,n,s)}}function qte(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=Jte(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=Yte(i[1]);if(a.length>0)return a}return null}function Jte(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function Yte(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Md(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Nd(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function Xte(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Nd(t[1])?{kind:`symbolic`,target:t[1]}:null:Pd(e)?{kind:`oid`,oid:e}:null}function Pd(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const Fd=`ok-generator`;function Zte(e){return`git-author-${ps(e.trim().toLowerCase())}`}const Qte=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function Id(e){let t=Ad(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 Ld(e){let t=Id(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Rd(e){let t=Id(e);switch(t.kind){case`directory`:return R(t.path,zd(t.projectSubPath));case`linked`:if(!B(t.path))throw new Bd(t.gitPath,t.path);return R(t.path,zd(t.projectSubPath));case`malformed-pointer`:throw new Bd(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Vd(t.gitPath,{cause:t.cause});case`absent`:return R(e,`.git/ok`)}}function zd(e){return e===``?`ok`:`ok-${$te(e)}`}function $te(e){let t=e.split(z).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=ene(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function ene(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var Bd=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}},Vd=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 tne(e){let t;try{t=Rd(e)}catch(e){if(e instanceof Bd||e instanceof Vd)return null;throw e}return B(R(t,`HEAD`))?t:null}function Hd(e){return`refs/wip/${e}/`}function nne(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,C as c,Ct as l,Dt as u,Et as d,F as f,Ft as p,Gt as m,H as h,Ht as g,I as _,It as v,Jt as y,Kt as b,L as x,Lt as S,M as C,Mt as w,N as T,Nt as E,P as ee,Pt as te,Q as ne,Qt as D,R as re,Rt as O,S as k,St as A,T as ie,Tt as ae,Vt as oe,Xt as se,Yt as ce,Zt as le,a as ue,at as de,bt as j,d as fe,dt as pe,en as me,ft as he,gt as ge,ht as _e,i as ve,it as ye,jt as M,kt as N,lt as be,m as xe,nn as Se,o as Ce,ot as we,p as Te,pt as Ee,qt as De,s as Oe,st as ke,t as Ae,tn as je,tt as Me,ut as Ne,vt as Pe,w as Fe,wt as Ie,x as Le,yt as Re,zt as ze}from"./sleep-D4NlDISj.mjs";import{$ as Be,$a as Ve,$i as He,$n as Ue,$r as We,$s as Ge,$t as Ke,A as qe,Aa as Je,Ai as Ye,An as Xe,Ao as Ze,Ar as Qe,As as $e,At as et,B as tt,Ba as nt,Bi as rt,Bn as it,Bo as at,Br as ot,Bs as st,Bt as ct,C as lt,Ca as ut,Ci as dt,Cn as ft,Cr as pt,Cs as mt,Ct as ht,D as gt,Da as _t,Dc as vt,Di as yt,Dn as bt,Do as xt,Dr as St,Ds as Ct,Dt as wt,E as Tt,Ea as Et,Ec as Dt,Ei as Ot,En as kt,Eo as At,Er as jt,Et as Mt,F as Nt,Fa as Pt,Fi as Ft,Fn as It,Fo as Lt,Fr as Rt,Fs as zt,Ft as Bt,G as Vt,Ga as Ht,Gi as Ut,Gn as Wt,Go as Gt,Gr as Kt,Gs as qt,H as Jt,Ha as Yt,Hi as Xt,Hn as Zt,Ho as Qt,Hr as $t,Hs as en,Ht as tn,I as nn,Ia as rn,Ii as an,In as on,Io as sn,Ir as cn,Is as ln,It as un,Ja as dn,Ji as fn,Jn as pn,Jr as eee,Jt as mn,K as hn,Ka as tee,Ki as gn,Kn as nee,Ko as _n,Kr as vn,Ks as yn,Kt as bn,L as xn,La as Sn,Li as Cn,Ln as wn,Lo as ree,Lr as iee,Lt as Tn,M as En,Ma as aee,Mc as Dn,Mi as On,Mn as oee,Mo as kn,Mr as An,Ms as jn,Mt as Mn,N as see,Na as cee,Ni as Nn,Nn as lee,No as uee,Nr as dee,Nt as Pn,O as Fn,Oa as In,Oc as Ln,Oi as fee,On as Rn,Oo as pee,Or as zn,Os as Bn,Ot as Vn,P as Hn,Pa as mee,Pi as Un,Pn as Wn,Po as Gn,Pr as Kn,Ps as qn,Pt as Jn,Qa as Yn,Qi as Xn,Qn as Zn,Qo as Qn,Qr as hee,Qs as $n,Qt as er,R as gee,Ra as _ee,Ri as tr,Rn as vee,Ro as nr,Rr as yee,Rs as rr,Rt as ir,S as ar,Sa as or,Si as sr,Sn as cr,So as lr,Sr as bee,Ss as ur,St as dr,T as fr,Ta as pr,Ti as xee,Tn as See,To as mr,Tr as hr,Ts as gr,Tt as _r,U as vr,Ua as yr,Ui as br,Un as xr,Uo as Sr,Ur as Cr,Us as wr,Ut as Tr,V as Er,Va as Dr,Vi as Or,Vn as kr,Vo as Ar,Vr as jr,Vt as Mr,W as Nr,Wa as Cee,Wi as wee,Wn as Tee,Wo as Eee,Wr as Dee,Ws as Pr,X as Oee,Xa as kee,Xi as Fr,Xn as Aee,Xo as Ir,Xr as jee,Xs as Lr,Xt as Rr,Y as Mee,Ya as Nee,Yi as zr,Yn as Pee,Yo as Fee,Yr as Br,Ys as Vr,Yt as Hr,Z as Iee,Za as Ur,Zi as Wr,Zn as Lee,Zo as Gr,Zr as Ree,Zs as Kr,Zt as qr,_ as Jr,_a as Yr,_c as Xr,_i as Zr,_n as zee,_o as Qr,_r as Bee,_s as $r,_t as ei,a as ti,aa as ni,ac as Vee,ai as ri,an as Hee,ao as ii,ar as Uee,as as ai,at as oi,b as si,ba as ci,bi as Wee,bn as Gee,bo as li,br as Kee,bs as ui,bt as di,c as fi,ca as pi,cc as mi,ci as hi,cn as qee,co as gi,cr as Jee,cs as _i,ct as vi,d as yi,da as bi,dc as xi,di as Si,dn as Ci,do as wi,dr as Ti,ds as Ei,ea as Di,ec as Oi,ei as ki,en as Ai,eo as ji,er as Mi,es as Ni,et as Pi,f as Fi,fa as Ii,fc as Li,fi as Ri,fn as zi,fo as Bi,fr as Vi,fs as Hi,ft as Ui,g as Wi,ga as Gi,gi as Ki,gn as qi,go as Ji,gr as Yee,gs as Yi,gt as Xi,h as Zi,ha as Qi,hc as $i,hi as ea,hn as Xee,ho as ta,hr as na,hs as ra,ht as ia,i as aa,ia as oa,ic as sa,ii as ca,in as Zee,io as la,ir as Qee,is as ua,it as da,j as fa,ja as pa,ji as ma,jn as $ee,jo as ete,jr as tte,js as ha,jt as ga,k as _a,ka as va,kc as ya,ki as nte,kn as ba,ko as xa,kr as rte,kt as Sa,l as Ca,la as wa,lc as Ta,li as ite,ln as Ea,lo as Da,lr as ate,ls as Oa,lt as ka,m as Aa,ma as ja,mc as ote,mi as Ma,mn as ste,mr as Na,ms as Pa,mt as Fa,n as Ia,na as La,ni as Ra,nn as za,no as Ba,nr as Va,nt as Ha,o as Ua,oa as cte,oc as Wa,oi as Ga,on as Ka,oo as qa,or as lte,os as Ja,ot as Ya,p as Xa,pa as Za,pc as Qa,pi as $a,pn as ute,po as eo,pr as to,pt as no,q as ro,qa as dte,qi as io,qn as ao,qo as oo,qr as so,qs as co,qt as lo,r as uo,ra as fo,rc as po,ri as mo,rn as fte,ro as ho,rr as go,rs as _o,rt as vo,s as yo,sa as bo,sc as xo,si as So,sn as Co,so as wo,sr as To,st as Eo,t as Do,ta as Oo,tc as ko,ti as Ao,tn as jo,to as Mo,tr as No,tt as Po,u as Fo,ua as Io,uc as Lo,ui as pte,un as mte,uo as Ro,ur as hte,v as zo,va as Bo,vc as Vo,vi as Ho,vn as gte,vo as Uo,vr as _te,vs as Wo,vt as Go,w as Ko,wa as qo,wi as vte,wn as yte,wo as bte,wr as Jo,ws as Yo,wt as Xo,x as Zo,xa as Qo,xi as $o,xn as xte,xo as es,xr as Ste,xs as ts,xt as ns,y as rs,ya as is,yc as as,yi as os,yn as Cte,yo as ss,yr as wte,yt as cs,z as ls,za as Tte,zi as us,zn as Ete,zo as ds,zr as Dte,zs as fs,zt as ps}from"./src-Bt6_UxL9.mjs";import{c as ms,i as hs,l as gs,n as _s,s as vs}from"./esm-DxvI2ZVA.mjs";import{n as ys,t as bs}from"./md-manager-N3eB5SRj.mjs";import{A as xs,C as Ss,E as Cs,I as ws,M as Ts,O as Es,P as Ds,S as Os,T as ks,_ as As,a as js,b as Ms,c as Ns,d as Ps,f as Fs,g as Is,h as Ls,i as Rs,j as zs,k as Bs,l as Vs,m as Hs,n as Us,o as Ws,p as Gs,r as Ks,s as qs,t as Js,u as Ys,v as Xs,w as Zs,x as Qs,y as $s}from"./fs-traced-Dm4NQ6S5.mjs";import{E as ec,T as tc,a as nc,b as rc,l as ic,p as ac,r as P,s as oc,v as sc,w as cc,x as lc,y as uc}from"./logger-Dq-cRhcP.mjs";import{a as dc,c as fc,i as pc,l as mc,o as hc,r as gc,s as _c,t as vc}from"./git-handle-CIYTlUEZ.mjs";import{C as yc,S as bc,a as xc,b as Sc,d as Cc,i as wc,n as Tc,o as Ec,r as Dc,v as Oc,y as kc}from"./server-lock-C0j1Yr_I.mjs";import{t as Ac}from"./libesm-DzwC_yFw.mjs";import{t as jc}from"./yazl-DejPO9b3.mjs";import{t as Mc}from"./chunk-B74TABJS-CK4NFJp-.mjs";import{a as Nc,c as Pc,d as Fc,f as Ic,h as Lc,i as Rc,l as zc,m as Bc,n as Vc,o as Hc,p as Uc,r as Wc,s as Gc,t as Kc,u as qc}from"./chunk-GFQRA5P5-BWmec-I9.mjs";import{A as Jc,B as Yc,C as Xc,D as Zc,E as Qc,F as $c,H as el,I as tl,L as nl,M as rl,N as il,O as al,P as ol,S as sl,T as cl,V as ll,_ as ul,a as dl,b as fl,c as pl,d as ml,f as hl,g as gl,h as _l,i as vl,j as yl,k as bl,l as xl,m as Sl,n as Cl,o as wl,p as Tl,r as El,s as Dl,t as Ol,u as kl,v as Al,w as jl,x as Ml,y as Nl,z as Pl}from"./chunk-BGSUD5R5-Cj4a16wX.mjs";import{a as Fl,c as Il,d as Ll,i as Rl,l as zl,n as Bl,o as Vl,r as Hl,s as Ul,t as Wl,u as Gl}from"./chunk-KX3P26DQ-KA7oOKfS.mjs";import{n as Kl,r as ql,t as Jl}from"./chunk-R6VWJ2ZL-B9eBwYXQ.mjs";import{r as Yl}from"./chunk-CWQS3NFK-BmYxhDXa.mjs";import{t as Xl}from"./chunk-DXB73IDG-Dx7prHrO.mjs";import{n as Zl,t as Ql}from"./chunk-5QMZ5MUS-BliBLsUm.mjs";import{n as Ote,t as kte}from"./chunk-A5O5YHGN-OOtvVl24.mjs";import{n as $l,r as eu,t as tu}from"./chunk-OJDRYQWQ-DqalHi82.mjs";import{r as Ate,t as nu}from"./chunk-24IMIIXA-C3WrrB2N.mjs";import{n as ru}from"./chunk-3THT3N7L-Be-SmWEj.mjs";import{t as iu}from"./chunk-44UOCSGV-CZohvp0c.mjs";import{t as jte}from"./wrapper-BR9ZCXZF.mjs";import{createRequire as au}from"node:module";import{execFile as ou,execFileSync as Mte,spawn as su,spawnSync as cu}from"node:child_process";import*as lu from"node:path";import{basename as uu,delimiter as du,dirname as F,extname as fu,isAbsolute as pu,join as I,normalize as mu,parse as hu,posix as gu,relative as L,resolve as R,sep as z,win32 as _u}from"node:path";import{URLSearchParams as vu,fileURLToPath as yu,pathToFileURL as bu}from"node:url";import*as xu from"node:fs";import{appendFileSync as Su,chmodSync as Cu,closeSync as wu,constants as Tu,createReadStream as Eu,createWriteStream as Du,existsSync as B,fstatSync as Ou,lstatSync as ku,mkdirSync as Au,mkdtempSync as ju,openSync as Mu,opendirSync as Nu,readFile as Pu,readFileSync as V,readSync as Fu,readdirSync as Iu,readlinkSync as Lu,realpathSync as H,renameSync as Ru,rmSync as zu,rmdirSync as Bu,statSync as Vu,unlinkSync as Hu,writeFileSync as Uu,writeSync as Wu}from"node:fs";import{arch as Gu,availableParallelism as Ku,homedir as qu,hostname as Ju,platform as Yu,tmpdir as Xu}from"node:os";import{access as Zu,chmod as Qu,constants as $u,lstat as ed,readFile as td,readdir as nd,realpath as rd,stat as id,writeFile as ad}from"node:fs/promises";import{Readable as od,Transform as sd,Writable as cd}from"node:stream";import ld,{createHash as ud,randomUUID as dd,webcrypto as fd}from"node:crypto";import pd from"crypto";import{Readable as md}from"stream";import{EventEmitter as hd}from"node:events";import{readdirSync as gd,statSync as _d}from"fs";import{join as vd,resolve as yd}from"path";import{Worker as bd}from"node:worker_threads";import{monitorEventLoopDelay as xd,performance as Sd}from"node:perf_hooks";import{createInterface as Nte}from"node:readline";import{pipeline as Cd}from"node:stream/promises";import{setImmediate as Pte,setTimeout as wd}from"node:timers/promises";import{promisify as Td}from"node:util";import{request as Fte}from"node:http";import{Http2ServerRequest as Ed,constants as Ite}from"node:http2";import{lookup as Lte}from"node:dns/promises";import{request as Rte}from"node:https";import{createBrotliDecompress as zte,createGunzip as Bte,createInflate as Vte}from"node:zlib";import*as Hte from"node:querystring";import{Http2ServerRequest as Dd,constants as Ute}from"http2";import{AsyncLocalStorage as Wte}from"node:async_hooks";import{lookup as Gte}from"node:dns";import Kte from"node:tls";var Od=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=V(I(this.gitDir,`commondir`),`utf-8`).trim();t.length>0&&(e=pu(t)?t:R(this.gitDir,t))}catch(e){if(!Md(e))return{kind:`unreadable`,cause:e}}return this.cachedCommonDir=e,{kind:`resolved`,path:e}}readHead(){let e;try{e=V(I(this.gitDir,`HEAD`),`utf-8`).trim()}catch(e){return Md(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]}:Pd(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=V(I(t.path,`config`),`utf-8`)}catch(e){return Md(e)?{kind:`absent`,reason:`config-missing`}:{kind:`unreadable`,cause:e}}let r=qte(n,e);return r===null?{kind:`absent`,reason:`remote-missing`}:{kind:`configured`,url:r}}readRef(e){if(!Nd(e))return{kind:`invalid`};let t=this.readCommonDir();if(t.kind===`unreadable`)return t;let n=R(t.path,e),r=L(t.path,n);if(r.startsWith(`..`)||pu(r))return{kind:`invalid`};try{let e=V(n,`utf-8`).trim(),t=Xte(e);return t===null?{kind:`malformed`,raw:e}:{kind:`present`,storage:`loose`,value:t}}catch(e){if(!Md(e))return{kind:`unreadable`,cause:e}}let i;try{i=V(I(t.path,`packed-refs`),`utf-8`)}catch(e){return Md(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 Pd(r[0])?{kind:`present`,storage:`packed`,value:{kind:`oid`,oid:r[0]}}:{kind:`malformed`,raw:n}}return{kind:`absent`}}};function kd(e){return jd(R(e),``)}function Ad(e){let t=R(e),n=R(qu());if(t===n)return{kind:`absent`};let r=jd(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=F(i);if(e===i||e===n)return{kind:`absent`};let r=jd(e,L(e,t));if(r.kind!==`absent`)return r;i=e}return{kind:`absent`}}function jd(e,t){let n=I(e,`.git`),r;try{r=Vu(n)}catch(e){return Md(e)?{kind:`absent`}:{kind:`inaccessible`,gitPath:n,cause:e}}if(r.isDirectory())return{kind:`repository`,repository:new Od(`directory`,e,t,n,n)};if(!r.isFile())return{kind:`absent`};let i;try{i=V(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:R(e,o);try{if(!Vu(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 Od(`linked`,e,t,n,s)}}function qte(e,t){let n=!1;for(let r of e.split(/\r?\n/)){let e=Jte(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=Yte(i[1]);if(a.length>0)return a}return null}function Jte(e){let t=e.search(/[;#]/);return(t===-1?e:e.slice(0,t)).trim()}function Yte(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Md(e){let t=e?.code;return t===`ENOENT`||t===`ENOTDIR`}function Nd(e){return e.startsWith(`refs/`)&&!e.includes(`\0`)&&!e.includes(`\\`)&&!e.includes(`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function Xte(e){if(e.length===0)return null;let t=/^ref:[ \t]*(refs\/.+)$/.exec(e);return t?Nd(t[1])?{kind:`symbolic`,target:t[1]}:null:Pd(e)?{kind:`oid`,oid:e}:null}function Pd(e){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/.test(e)}const Fd=`ok-generator`;function Zte(e){return`git-author-${ps(e.trim().toLowerCase())}`}const Qte=/^(agent-[^/]+|principal-[^/]+|git-author-[^/]+|file-system|git-upstream|openknowledge-service|ok-generator)$/;function Id(e){let t=Ad(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 Ld(e){let t=Id(e);return t.kind===`directory`||t.kind===`linked`?t.path:null}function Rd(e){let t=Id(e);switch(t.kind){case`directory`:return R(t.path,zd(t.projectSubPath));case`linked`:if(!B(t.path))throw new Bd(t.gitPath,t.path);return R(t.path,zd(t.projectSubPath));case`malformed-pointer`:throw new Bd(t.gitPath,t.target,{cause:t.cause});case`inaccessible`:throw new Vd(t.gitPath,{cause:t.cause});case`absent`:return R(e,`.git/ok`)}}function zd(e){return e===``?`ok`:`ok-${$te(e)}`}function $te(e){let t=e.split(z).join(`-`).replace(/\/+/g,`-`).replace(/[^A-Za-z0-9._-]/g,`_`).replace(/^\.+/,`_`);if(t.length<=64)return t||`sub`;let n=ene(e).toString(16).padStart(8,`0`);return`${t.slice(0,55)}-${n}`}function ene(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33+e.charCodeAt(n)>>>0;return t}var Bd=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}},Vd=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 tne(e){let t;try{t=Rd(e)}catch(e){if(e instanceof Bd||e instanceof Vd)return null;throw e}return B(R(t,`HEAD`))?t:null}function Hd(e){return`refs/wip/${e}/`}function nne(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 Ud=`ok-actor: `;function Wd(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),`${Ud}${JSON.stringify(i)}`}function Gd(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=rne(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 rne(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 ine(e){if(!e)return null;for(let t of e.split(`
3
3
  `)){let e=t.trim();if(!e.startsWith(Ud))continue;let n;try{n=JSON.parse(e.slice(10))}catch{return null}return typeof n!=`object`||!n?null:Gd(n)}return null}function Kd(e){if(!e)return[];let t=[];for(let n of e.split(`
4
4
  `)){let e=n.trim();if(!e.startsWith(Ud))continue;let r;try{r=JSON.parse(e.slice(10))}catch{continue}if(typeof r!=`object`||!r)continue;let i=Gd(r);i&&t.push(i)}return t}function ane(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 qd(e){let t=Kd(e);return t.length>0?t.map(ane):nne(e)}function Jd(e){return e.length===0?`wip: auto-save`:e.length===1?`wip: ${e[0]}`:`wip: ${e.length} docs`}function Yd(e){return`reconcile: ${e}`}function Xd(e,t){return`rollback: ${e} to ${t.slice(0,7)}`}function one(e,t){return`park: ${e} -> ${t}`}function Zd(e,t){return`rename: ${e} -> ${t}`}function Qd(e){return`checkpoint: ${e}`}function sne(e,t){return e?`import: from ${e.slice(0,8)}..${t.slice(0,8)}`:`import: initial at ${t.slice(0,8)}`}const cne=RegExp(`[\\r\\n\\v\\f\\u0085\\u2028\\u2029]`,`g`);function $d(e){return e.replace(cne,` `)}function lne(e,t){let n=$d(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=$d(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 ef(e){return Qte.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 tf(e){let t=Id(e);if(t.kind!==`linked`)return R(e);try{let n=V(I(t.path,`commondir`),`utf-8`).trim();return n===``?R(e):R(F(R(t.path,n)),t.projectSubPath)}catch{return R(e)}}function nf(e){return e.kind??`other`}function une(e,t){for(let n of t){let t=e.find(e=>e.kind===n);if(t!==void 0)return t}}var rf=class{filePath;log;grants=null;constructor(e,t){this.filePath=I(e,`acp-permissions.json`),this.log=t}decide(e,t,n){let r=nf(t),i=une(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=nf(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-Cbn6E9Vr.mjs`);await e(I(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(V(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 af=[`claude-acp`,`codex-acp`,`gemini`,`cursor`,`github-copilot-cli`,`opencode`],of={"claude-acp":`claude`,"codex-acp":`codex`,opencode:`opencode`,"pi-acp":`pi`},sf=`acp-agents.json`,cf=`acp-registry-cache.json`;function lf(){let e=Yu(),t=Gu(),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 dne=new Set([`goose`,`fast-agent`,`crow-cli`]);function fne(e,t){let n=t.trim();return n.length===0?e:dne.has(e)||n!==n.toLowerCase()?n:n.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function pne(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 uf(e){let t;try{t=JSON.parse(e)}catch{return null}let n=t?.agents;return Array.isArray(n)?n.filter(pne).map(e=>({...e,name:fne(e.id,e.name)})):null}var df=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=uf(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-Cbn6E9Vr.mjs`);await e(this.localDir,{recursive:!0}),await n(I(this.localDir,cf),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=uf(await td(I(this.localDir,cf),`utf8`));return e===null?null:{agents:e,fetchedAt:0,stale:!0}}catch{return null}}};async function ff(e,t){let n;try{n=await td(I(e,sf),`utf8`)}catch{return[]}let r;try{r=JSON.parse(n)}catch(e){return t.warn({err:e},`[acp-registry] ${sf} 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 ${sf} entry`)}return i}const pf={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`},mf={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`},mne={cancel_request:`$/cancel_request`},hf=Symbol(`skippedItem`);function U(e,t){return e.catch(t)}function gf(e,t){let n=e.catch(t);return O().transform((e,t)=>e===void 0?(t.addIssue({code:`custom`,message:`Required value is missing`}),Se):n.parse(e))}function _f(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];return typeof n==`string`?n:void 0}function vf(e,t,n){return e.superRefine((e,r)=>{let i=_f(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 yf(e,t,n){return O().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=_f(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 bf(e){return A(e.catch(hf)).transform(e=>e.filter(e=>e!==hf))}const xf=S([M(),v()]).nullable(),Sf=v(),Cf=w({sessionId:Sf,path:v(),content:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),wf=w({sessionId:Sf,path:v(),line:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),limit:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Tf=v(),Ef=S([N(`read`),N(`edit`),N(`delete`),N(`move`),N(`search`),N(`execute`),N(`think`),N(`fetch`),N(`switch_mode`),N(`other`)]),Df=S([N(`pending`),N(`in_progress`),N(`completed`),N(`failed`)]),Of=w({audience:U(bf(S([N(`assistant`),N(`user`)])).nullish(),()=>void 0),lastModified:U(v().nullish(),()=>void 0),priority:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),hne=w({annotations:U(Of.nullish(),()=>void 0),text:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),gne=w({annotations:U(Of.nullish(),()=>void 0),data:v(),mimeType:v(),uri:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),_ne=w({annotations:U(Of.nullish(),()=>void 0),data:v(),mimeType:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),vne=w({annotations:U(Of.nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),mimeType:U(v().nullish(),()=>void 0),name:v(),size:U(M().nullish(),()=>void 0),title:U(v().nullish(),()=>void 0),uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),yne=S([w({mimeType:U(v().nullish(),()=>void 0),text:v(),uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),w({blob:v(),mimeType:U(v().nullish(),()=>void 0),uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)})]),bne=w({annotations:U(Of.nullish(),()=>void 0),resource:yne,_meta:U(p(v(),O()).nullish(),()=>void 0)}),kf=S([hne.and(w({type:N(`text`)})),gne.and(w({type:N(`image`)})),_ne.and(w({type:N(`audio`)})),vne.and(w({type:N(`resource_link`)})),bne.and(w({type:N(`resource`)}))]),xne=w({content:kf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Sne=w({path:v(),oldText:U(v().nullish(),()=>void 0),newText:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Af=v(),Cne=w({terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),jf=S([xne.and(w({type:N(`content`)})),Sne.and(w({type:N(`diff`)})),Cne.and(w({type:N(`terminal`)}))]),Mf=w({path:v(),line:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Nf=w({toolCallId:Tf,kind:U(Ef.nullish(),()=>void 0),status:U(Df.nullish(),()=>void 0),title:U(v().nullish(),()=>void 0),content:U(bf(jf).nullish(),()=>void 0),locations:U(bf(Mf).nullish(),()=>void 0),rawInput:U(O().optional(),()=>void 0),rawOutput:U(O().optional(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Pf=v(),wne=S([N(`allow_once`),N(`allow_always`),N(`reject_once`),N(`reject_always`)]),Ff=w({sessionId:Sf,toolCall:Nf,options:A(w({optionId:Pf,name:v(),kind:wne,_meta:U(p(v(),O()).nullish(),()=>void 0)})),_meta:U(p(v(),O()).nullish(),()=>void 0)}),If=w({name:v(),value:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Lf=w({sessionId:Sf,command:v(),args:U(bf(v()).optional(),()=>[]),env:U(bf(If).optional(),()=>[]),cwd:U(v().nullish(),()=>void 0),outputByteLimit:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Rf=w({sessionId:Sf,terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),zf=w({sessionId:Sf,terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Bf=w({sessionId:Sf,terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Vf=w({sessionId:Sf,terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Hf=w({sessionId:Sf,toolCallId:U(Tf.nullish(),()=>void 0)}),Uf=w({requestId:xf}),Tne=N(`object`),Ene=S([N(`email`),N(`uri`),N(`date`),N(`date-time`)]),Wf=w({const:v(),title:v(),description:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Gf=w({title:U(v().nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),minLength:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),maxLength:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),pattern:v().nullish(),format:Ene.nullish(),default:U(v().nullish(),()=>void 0),enum:A(v()).nullish(),oneOf:A(Wf).nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Kf=w({title:U(v().nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),minimum:M().nullish(),maximum:M().nullish(),default:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),qf=w({title:U(v().nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),minimum:M().nullish(),maximum:M().nullish(),default:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Jf=w({title:U(v().nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),default:U(l().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Yf=w({enum:A(v()),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Dne=w({anyOf:A(Wf),_meta:U(p(v(),O()).nullish(),()=>void 0)}),One=yf(S([Yf.and(w({type:N(`string`)})),vf(w({type:v()}),`type`,[`string`]),Dne]),`type`,[`string`]),Xf=w({title:U(v().nullish(),()=>void 0),description:U(v().nullish(),()=>void 0),minItems:M().nullish(),maxItems:M().nullish(),items:One,default:U(bf(v()).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),kne=yf(S([Gf.and(w({type:N(`string`)})),Kf.and(w({type:N(`number`)})),qf.and(w({type:N(`integer`)})),Jf.and(w({type:N(`boolean`)})),Xf.and(w({type:N(`array`)})),vf(w({type:v()}),`type`,[`array`,`boolean`,`integer`,`number`,`string`])]),`type`,[`array`,`boolean`,`integer`,`number`,`string`]),Ane=w({type:U(Tne.optional().default(`object`),()=>`object`),title:U(v().nullish(),()=>void 0),properties:p(v(),kne).optional().default({}),required:A(v()).nullish(),description:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Zf=u(S([Hf,Uf]),w({requestedSchema:Ane})),Qf=v(),$f=u(S([Hf,Uf]),w({elicitationId:Qf,url:ze()})),ep=yf(u(S([Zf.and(w({mode:N(`form`)})),$f.and(w({mode:N(`url`)})),vf(u(S([Hf,Uf]),w({mode:v()})),`mode`,[`form`,`url`])]),w({message:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)})),`mode`,[`form`,`url`]),tp=v(),jne=w({serverId:tp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),np=v(),rp=w({connectionId:np,method:v(),params:p(v(),O()).nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Mne=w({connectionId:np,_meta:U(p(v(),O()).nullish(),()=>void 0)}),ip=O();w({id:xf,method:v(),params:S([Cf,wf,Ff,Lf,Rf,zf,Bf,Vf,ep,jne,rp,Mne,ip]).nullish()});const ap=d().gte(0).lte(65535),Nne=w({image:U(l().optional().default(!1),()=>!1),audio:U(l().optional().default(!1),()=>!1),embeddedContext:U(l().optional().default(!1),()=>!1),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Pne=w({http:U(l().optional().default(!1),()=>!1),sse:U(l().optional().default(!1),()=>!1),acp:U(l().optional().default(!1),()=>!1),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Fne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ine=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Lne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Rne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),zne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Bne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Vne=w({list:U(Fne.nullish(),()=>void 0),delete:U(Ine.nullish(),()=>void 0),additionalDirectories:U(Lne.nullish(),()=>void 0),fork:U(Rne.nullish(),()=>void 0),resume:U(zne.nullish(),()=>void 0),close:U(Bne.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Hne=w({logout:U(w({_meta:U(p(v(),O()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Une=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Wne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Gne=w({syncKind:S([N(`full`),N(`incremental`)]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Kne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),qne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Jne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Yne=w({document:U(w({didOpen:U(Wne.nullish(),()=>void 0),didChange:U(Gne.nullish(),()=>void 0),didClose:U(Kne.nullish(),()=>void 0),didSave:U(qne.nullish(),()=>void 0),didFocus:U(Jne.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Xne=w({maxCount:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Zne=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Qne=w({maxCount:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),$ne=w({maxCount:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),ere=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),tre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),nre=w({recentFiles:U(Xne.nullish(),()=>void 0),relatedSnippets:U(Zne.nullish(),()=>void 0),editHistory:U(Qne.nullish(),()=>void 0),userActions:U($ne.nullish(),()=>void 0),openFiles:U(ere.nullish(),()=>void 0),diagnostics:U(tre.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),rre=w({events:U(Yne.nullish(),()=>void 0),context:U(nre.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),op=S([N(`utf-16`),N(`utf-32`),N(`utf-8`)]),ire=w({loadSession:U(l().optional().default(!1),()=>!1),promptCapabilities:U(Nne.optional().default({image:!1,audio:!1,embeddedContext:!1}),()=>({image:!1,audio:!1,embeddedContext:!1})),mcpCapabilities:U(Pne.optional().default({http:!1,sse:!1,acp:!1}),()=>({http:!1,sse:!1,acp:!1})),sessionCapabilities:U(Vne.optional().default({}),()=>({})),auth:U(Hne.optional().default({}),()=>({})),providers:U(Une.nullish(),()=>void 0),nes:U(rre.nullish(),()=>void 0),positionEncoding:U(op.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),sp=v(),are=w({name:v(),label:U(v().nullish(),()=>void 0),secret:U(l().optional().default(!0),()=>!0),optional:U(l().optional().default(!1),()=>!1),_meta:U(p(v(),O()).nullish(),()=>void 0)}),ore=w({id:sp,name:v(),description:U(v().nullish(),()=>void 0),vars:gf(bf(are),()=>[]),link:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),sre=w({id:sp,name:v(),description:U(v().nullish(),()=>void 0),args:U(bf(v()).optional(),()=>[]),env:U(p(v(),v()).optional(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),cre=w({id:sp,name:v(),description:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),lre=S([ore.and(w({type:N(`env_var`)})),sre.and(w({type:N(`terminal`)})),cre]),cp=w({name:v(),title:U(v().nullish(),()=>void 0),version:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),ure=w({protocolVersion:ap,agentCapabilities:U(ire.optional().default({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}}),()=>({loadSession:!1,promptCapabilities:{image:!1,audio:!1,embeddedContext:!1},mcpCapabilities:{http:!1,sse:!1,acp:!1},sessionCapabilities:{},auth:{}})),authMethods:U(bf(lre).optional().default([]),()=>[]),agentInfo:U(cp.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),dre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),lp=v(),up=S([N(`anthropic`),N(`openai`),N(`azure`),N(`vertex`),N(`bedrock`),v()]),fre=w({apiType:up,baseUrl:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),pre=w({providers:A(w({providerId:lp,supported:gf(bf(up),()=>[]),required:l(),current:fre.nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)})),_meta:U(p(v(),O()).nullish(),()=>void 0)}),mre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),hre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),gre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),dp=v(),fp=w({currentModeId:dp,availableModes:gf(bf(w({id:dp,name:v(),description:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)})),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),pp=v(),_re=S([N(`mode`),N(`model`),N(`model_config`),N(`thought_level`),v()]),mp=v(),hp=w({value:mp,name:v(),description:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),vre=w({group:v(),name:v(),options:gf(bf(hp),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),yre=w({currentValue:mp,options:S([A(hp),A(vre)])}),bre=w({currentValue:l()}),gp=u(S([yre.and(w({type:N(`select`)})),bre.and(w({type:N(`boolean`)}))]),w({id:pp,name:v(),description:U(v().nullish(),()=>void 0),category:U(_re.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)})),xre=w({sessionId:Sf,modes:U(fp.nullish(),()=>void 0),configOptions:U(bf(gp).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Sre=w({modes:U(fp.nullish(),()=>void 0),configOptions:U(bf(gp).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Cre=w({sessions:gf(bf(w({sessionId:Sf,cwd:v(),additionalDirectories:U(bf(v()).optional(),()=>[]),title:U(v().nullish(),()=>void 0),updatedAt:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)})),()=>[]),nextCursor:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),wre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Tre=w({sessionId:Sf,modes:U(fp.nullish(),()=>void 0),configOptions:U(bf(gp).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ere=w({modes:U(fp.nullish(),()=>void 0),configOptions:U(bf(gp).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Dre=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ore=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),kre=w({configOptions:gf(bf(gp),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Are=w({stopReason:S([N(`end_turn`),N(`max_tokens`),N(`max_turn_requests`),N(`refusal`),N(`cancelled`)]),usage:U(w({totalTokens:M(),inputTokens:M(),outputTokens:M(),thoughtTokens:U(M().nullish(),()=>void 0),cachedReadTokens:U(M().nullish(),()=>void 0),cachedWriteTokens:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),jre=w({sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),_p=v(),vp=w({line:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),character:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),_meta:U(p(v(),O()).nullish(),()=>void 0)}),yp=w({start:vp,end:vp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Mre=w({range:yp,newText:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),bp=w({id:_p,uri:v(),edits:A(Mre),cursorPosition:U(vp.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),xp=w({id:_p,uri:v(),position:vp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Nre=w({id:_p,uri:v(),position:vp,newName:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Pre=w({id:_p,uri:v(),search:v(),replace:v(),isRegex:l().nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Fre=w({suggestions:A(S([bp.and(w({kind:N(`edit`)})),xp.and(w({kind:N(`jump`)})),Nre.and(w({kind:N(`rename`)})),Pre.and(w({kind:N(`searchAndReplace`)}))])),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ire=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Sp=O(),Cp=O(),wp=w({code:S([N(-32700),N(-32600),N(-32601),N(-32602),N(-32603),N(-32800),N(-32e3),N(-32002),d().min(-2147483648,{error:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{error:`Invalid value: Expected int32 to be <= 2147483647`})]),message:v(),data:U(O().optional(),()=>void 0)});S([w({id:xf,result:S([ure,dre,pre,mre,hre,gre,xre,Sre,Cre,wre,Tre,Ere,Dre,Ore,kre,Are,jre,Fre,Ire,Sp,Cp])}),w({id:xf,error:wp})]);const Tp=w({content:kf,messageId:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Lre=w({toolCallId:Tf,title:v(),kind:U(Ef.optional(),()=>void 0),status:U(Df.optional(),()=>void 0),content:U(bf(jf).optional(),()=>[]),locations:U(bf(Mf).optional(),()=>[]),rawInput:U(O().optional(),()=>void 0),rawOutput:U(O().optional(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Rre=S([N(`high`),N(`medium`),N(`low`)]),zre=S([N(`pending`),N(`in_progress`),N(`completed`)]),Ep=w({content:v(),priority:Rre,status:zre,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Bre=w({entries:gf(bf(Ep),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Dp=v(),Vre=w({planId:Dp,entries:gf(bf(Ep),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Hre=w({planId:Dp,uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ure=w({planId:Dp,content:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Wre=w({plan:S([Vre.and(w({type:N(`items`)})),Hre.and(w({type:N(`file`)})),Ure.and(w({type:N(`markdown`)}))]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Gre=w({planId:Dp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Kre=w({hint:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),qre=w({availableCommands:gf(bf(w({name:v(),description:v(),input:U(Kre.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)})),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Jre=w({currentModeId:dp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Yre=w({configOptions:gf(bf(gp),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Xre=w({title:U(v().nullish(),()=>void 0),updatedAt:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Zre=w({amount:M(),currency:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Qre=w({used:M(),size:M(),cost:U(Zre.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Op=w({sessionId:Sf,update:S([Tp.and(w({sessionUpdate:N(`user_message_chunk`)})),Tp.and(w({sessionUpdate:N(`agent_message_chunk`)})),Tp.and(w({sessionUpdate:N(`agent_thought_chunk`)})),Lre.and(w({sessionUpdate:N(`tool_call`)})),Nf.and(w({sessionUpdate:N(`tool_call_update`)})),Bre.and(w({sessionUpdate:N(`plan`)})),Wre.and(w({sessionUpdate:N(`plan_update`)})),Gre.and(w({sessionUpdate:N(`plan_removed`)})),qre.and(w({sessionUpdate:N(`available_commands_update`)})),Jre.and(w({sessionUpdate:N(`current_mode_update`)})),Yre.and(w({sessionUpdate:N(`config_option_update`)})),Xre.and(w({sessionUpdate:N(`session_info_update`)})),Qre.and(w({sessionUpdate:N(`usage_update`)}))]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),kp=w({elicitationId:Qf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ap=w({connectionId:np,method:v(),params:U(p(v(),O()).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),jp=O();w({method:v(),params:S([Op,kp,Ap,jp]).nullish()});const $re=w({readTextFile:U(l().optional().default(!1),()=>!1),writeTextFile:U(l().optional().default(!1),()=>!1),_meta:U(p(v(),O()).nullish(),()=>void 0)}),eie=w({configOptions:U(w({boolean:U(w({_meta:U(p(v(),O()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),tie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),nie=w({terminal:U(l().optional().default(!1),()=>!1),_meta:U(p(v(),O()).nullish(),()=>void 0)}),rie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),iie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),aie=w({form:U(rie.nullish(),()=>void 0),url:U(iie.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),oie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Mp=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Np=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Pp=w({jump:U(oie.nullish(),()=>void 0),rename:U(Mp.nullish(),()=>void 0),searchAndReplace:U(Np.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Fp=w({protocolVersion:ap,clientCapabilities:U(w({fs:U($re.optional().default({readTextFile:!1,writeTextFile:!1}),()=>({readTextFile:!1,writeTextFile:!1})),terminal:U(l().optional().default(!1),()=>!1),session:U(eie.nullish(),()=>void 0),plan:U(tie.nullish(),()=>void 0),auth:U(nie.optional().default({terminal:!1}),()=>({terminal:!1})),elicitation:U(aie.nullish(),()=>void 0),nes:U(Pp.nullish(),()=>void 0),positionEncodings:U(bf(op).optional(),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}).optional().default({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}}),()=>({fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,auth:{terminal:!1}})),clientInfo:U(cp.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Ip=w({methodId:sp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Lp=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Rp=w({providerId:lp,apiType:up,baseUrl:v(),headers:p(v(),v()).optional(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),zp=w({providerId:lp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Bp=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Vp=w({name:v(),value:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),sie=w({name:v(),url:v(),headers:A(Vp),_meta:U(p(v(),O()).nullish(),()=>void 0)}),cie=w({name:v(),url:v(),headers:A(Vp),_meta:U(p(v(),O()).nullish(),()=>void 0)}),lie=w({name:v(),serverId:tp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),uie=w({name:v(),command:v(),args:A(v()),env:A(If),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Hp=S([sie.and(w({type:N(`http`)})),cie.and(w({type:N(`sse`)})),lie.and(w({type:N(`acp`)})),uie]),Up=w({cwd:v(),additionalDirectories:U(bf(v()).optional(),()=>[]),mcpServers:gf(bf(Hp),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Wp=w({mcpServers:gf(bf(Hp),()=>[]),cwd:v(),additionalDirectories:U(bf(v()).optional(),()=>[]),sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Gp=w({cwd:v().nullish(),cursor:v().nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Kp=w({sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),qp=w({sessionId:Sf,cwd:v(),additionalDirectories:U(bf(v()).optional(),()=>[]),mcpServers:U(bf(Hp).optional(),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Jp=w({sessionId:Sf,cwd:v(),additionalDirectories:U(bf(v()).optional(),()=>[]),mcpServers:U(bf(Hp).optional(),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Yp=w({sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Xp=w({sessionId:Sf,modeId:dp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Zp=u(S([w({value:l(),type:N(`boolean`)}),w({value:mp})]),w({sessionId:Sf,configId:pp,_meta:U(p(v(),O()).nullish(),()=>void 0)})),Qp=w({sessionId:Sf,prompt:A(kf),_meta:U(p(v(),O()).nullish(),()=>void 0)}),die=w({uri:v(),name:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),fie=w({name:v(),owner:v(),remoteUrl:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),$p=w({workspaceUri:U(v().nullish(),()=>void 0),workspaceFolders:A(die).nullish(),repository:U(fie.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),pie=S([N(`automatic`),N(`diagnostic`),N(`manual`)]),mie=w({uri:v(),languageId:v(),text:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),hie=w({startLine:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),endLine:d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}),text:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),gie=w({uri:v(),excerpts:A(hie),_meta:U(p(v(),O()).nullish(),()=>void 0)}),_ie=w({uri:v(),diff:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),vie=w({action:v(),uri:v(),position:vp,timestampMs:M(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),yie=w({uri:v(),languageId:v(),visibleRange:U(yp.nullish(),()=>void 0),lastFocusedMs:U(M().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),bie=S([N(`error`),N(`warning`),N(`information`),N(`hint`)]),xie=w({uri:v(),range:yp,severity:bie,message:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Sie=w({recentFiles:A(mie).nullish(),relatedSnippets:A(gie).nullish(),editHistory:A(_ie).nullish(),userActions:A(vie).nullish(),openFiles:A(yie).nullish(),diagnostics:A(xie).nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),em=w({sessionId:Sf,uri:v(),version:M(),position:vp,selection:yp.nullish(),triggerKind:pie,context:Sie.nullish(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),tm=w({sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)});w({id:xf,method:v(),params:S([Fp,Ip,Lp,Rp,zp,Bp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,rp,ip]).nullish()});const Cie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),wie=w({content:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Tie=w({optionId:Pf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Eie=w({outcome:S([w({outcome:N(`cancelled`)}),Tie.and(w({outcome:N(`selected`)}))]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Die=w({terminalId:Af,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Oie=w({exitCode:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),kie=w({output:v(),truncated:l(),exitStatus:U(Oie.nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Aie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),jie=w({exitCode:U(d().gte(0).max(4294967295,{error:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),()=>void 0),signal:U(v().nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Mie=w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Nie=S([v(),M(),M(),l(),A(v())]),nm=w({content:p(v(),Nie).nullish()});S([w({id:xf,result:S([Cie,wie,Eie,Die,kie,Aie,jie,Mie,yf(u(S([nm.and(w({action:N(`accept`)})),w({action:N(`decline`)}),w({action:N(`cancel`)}),vf(w({action:v()}),`action`,[`accept`,`cancel`,`decline`])]),w({_meta:U(p(v(),O()).nullish(),()=>void 0)})),`action`,[`accept`,`cancel`,`decline`]),w({connectionId:np,_meta:U(p(v(),O()).nullish(),()=>void 0)}),w({_meta:U(p(v(),O()).nullish(),()=>void 0)}),Cp,Sp])}),w({id:xf,error:wp})]);const rm=w({sessionId:Sf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),im=w({sessionId:Sf,uri:v(),languageId:v(),version:M(),text:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),Pie=w({range:yp.nullish(),text:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),am=w({sessionId:Sf,uri:v(),version:M(),contentChanges:gf(bf(Pie),()=>[]),_meta:U(p(v(),O()).nullish(),()=>void 0)}),om=w({sessionId:Sf,uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),sm=w({sessionId:Sf,uri:v(),_meta:U(p(v(),O()).nullish(),()=>void 0)}),cm=w({sessionId:Sf,uri:v(),version:M(),position:vp,visibleRange:yp,_meta:U(p(v(),O()).nullish(),()=>void 0)}),lm=w({sessionId:Sf,id:_p,_meta:U(p(v(),O()).nullish(),()=>void 0)}),um=w({sessionId:Sf,id:_p,reason:U(S([N(`rejected`),N(`ignored`),N(`replaced`),N(`cancelled`)]).nullish(),()=>void 0),_meta:U(p(v(),O()).nullish(),()=>void 0)});w({method:v(),params:S([rm,im,am,om,sm,cm,lm,um,Ap,jp]).nullish()}),w({requestId:xf,_meta:U(p(v(),O()).nullish(),()=>void 0)}),Zf.and(w({mode:N(`form`)})).and(w({message:v()})),$f.and(w({mode:N(`url`)})).and(w({message:v()})),S([Hf,Uf]).and(w({message:v()})),Gf.and(w({type:N(`string`)})),Kf.and(w({type:N(`number`)})),qf.and(w({type:N(`integer`)})),Jf.and(w({type:N(`boolean`)})),Xf.and(w({type:N(`array`)})),Yf.and(w({type:N(`string`)})),nm.and(w({action:N(`accept`)})),w({action:N(`decline`)}),w({action:N(`cancel`)});const dm=`$/cancel_request`;function fm(e){return typeof e==`object`&&!!e}function Fie(e){return e===null||typeof e==`string`||typeof e==`number`&&Number.isFinite(e)}function pm(e){if(!(!fm(e)||!Fie(e.requestId)))return e.requestId}const mm={yes(){return{handled:!0}},no(e,t=!1){return{handled:!1,message:e,retry:t}}};function hm(e){let t=Promise.reject(e);return t.catch(()=>{}),t}function gm(e){if(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)return e.message}function _m(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 vm(e){if(e instanceof Om)return e.toResult();if(_m(e))return Om.invalidParams(e.format()).toResult();let t=gm(e);try{return Om.internalError(t?JSON.parse(t):{}).toResult()}catch{return Om.internalError({details:t}).toResult()}}function ym(e){return e instanceof Om&&e.code===-32800?e:Om.requestCancelled(e)}function bm(e,t){let n=xm(e,t);return n?n.toResult():vm(e)}function xm(e,t){if(!(!t.aborted||!Sm(e)))return ym(t.reason)}function Sm(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`AbortError`||t.code===`ABORT_ERR`}var Cm=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 Om?e.toErrorResponse():e;return this.respondWithResult({error:t})}respondWithResult(e){return this.didRespond?hm(Error(`JSON-RPC request already responded`)):(this.didRespond=!0,this.sendResult(e).finally(()=>{this.finishRequest?.()}))}},wm=class{disposeHandler;active=!0;constructor(e){this.disposeHandler=e}dispose(){this.active&&(this.active=!1,this.disposeHandler())}[Symbol.dispose](){this.dispose()}runIndefinitely(){return this}},Tm=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}},Em=class{pendingResponses=new Map;incomingRequests=new Map;nextRequestId=0;staticHandlers=[];dynamicHandlers=new Set;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;retryQueue=[];context=new Tm(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 Dm}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 wm(()=>{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 hm(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(dm,{requestId:e})}sendNotification(e,t){return this.abortController.signal.aborted?hm(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 mm.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(!fm(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(Om.methodNotFound(t.method))}catch(n){if(this.abortController.signal.aborted)return;if(t.kind===`request`&&!t.responder.responded)await t.responder.respondWithResult(bm(n,t.responder.signal));else{let t=vm(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 Cm(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&&fm(e.error)){let{code:n,message:r,data:i}=e.error;t.reject(new Om(n,r,i))}else t.reject(Om.invalidRequest(e));else console.error(`Got response to unknown request`,e.id)}handleProtocolNotification(e){if(e.method!==dm)return;let t=pm(e.params);if(t===void 0)return;let n=this.incomingRequests.get(t);!n||n.signal.aborted||n.abort(Om.requestCancelled({requestId:t}))}closedReason(){return this.abortController.signal.reason??Error(`ACP connection closed`)}async sendMessage(e){return this.abortController.signal.aborted?hm(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)}},Dm=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)??mm.no(t),describe:()=>this.connectionName??`onReceiveMessage`})}onReceiveRequest(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`request`||r.method!==e?mm.no(r):await n(t(r.params),r.responder,i)??mm.yes(),describe:()=>`${this.connectionName??`request`}:${e}`})}onReceiveNotification(e,t,n){return this.withHandler({handleMessage:async(r,i)=>r.kind!==`notification`||r.method!==e?mm.no(r):await n(t(r.params),i)??mm.yes(),describe:()=>`${this.connectionName??`notification`}:${e}`})}connect(e,t){return new Em(e,this.handlers,t)}connectWith(e,t,n){return this.connect(e,n).runUntil(t)}},Om=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}}},km=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 Am(e,t){let n=new TextEncoder,r=new TextDecoder,i=!1,a;return{readable:new ReadableStream({async start(e){let n=new km,o=t=>{let n=r.decode(t).trim();if(n)try{let t=JSON.parse(n);fm(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)+`
@@ -1184,7 +1184,7 @@ tags: [lore, history]
1184
1184
  `);l=n.pop()??``;for(let e of n){if(!e.trim())continue;let n=null;try{n=JSON.parse(e)}catch{}if(n&&n.type===`error`){i(500,`urn:ok:error:auth-failed`,`Auth repos subprocess reported an error.`,{detail:typeof n.message==`string`?n.message:void 0});continue}if(!t.writableEnded&&!t.destroyed)try{t.write(`${e}\n`)}catch{}}}),u.stderr.on(`data`,e=>{Y.debug({msg:e.toString(`utf-8`).trim()},`[local-op/auth/repos] stderr`)}),u.on(`close`,e=>{clearTimeout(d),c||(c=!0,e!==0&&!t.writableEnded&&i(500,`urn:ok:error:auth-failed`,`Auth repos subprocess exited with code ${e}.`),t.end(),ze.release(ia))}),u.on(`error`,e=>{clearTimeout(d),c||(c=!0,t.writableEnded||(i(500,`urn:ok:error:auth-failed`,`Failed to spawn the auth repos subprocess.`,{cause:e}),t.end()),ze.release(ia))}),t.on(`close`,()=>{c||(c=!0,clearTimeout(d),u.kill(`SIGTERM`),ze.release(ia))})}let La=`local-op-auth-signout`,Ra=K(sr,async(e,t,n)=>{let r=n.host??da();if(!ze.tryAcquire(aa)){G(t,429,`urn:ok:error:concurrent-operation`,`An auth signout operation is already in progress.`,{handler:La,extraHeaders:{"Retry-After":`5`}});return}try{let[e,...n]=le,i=[...n,`auth`,`signout`,`--host`,r];await new Promise((t,n)=>{let r=su(e,i,mw({...Bi,env:{...process.env}})),a=setTimeout(()=>{r.kill(`SIGTERM`)},3e4);r.on(`close`,()=>{clearTimeout(a),t()}),r.on(`error`,e=>{clearTimeout(a),n(e)})}),q(t,200,$o,{},{handler:La})}catch(e){G(t,500,`urn:ok:error:auth-failed`,`Auth signout failed.`,{handler:La,cause:e})}finally{ze.release(aa)}},{handler:La,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:La})}),za=`/api/local-op/auth/set-identity`,Ba=`local-op-auth-set-identity`,Va=K(xee,async(e,t,n)=>{let r=n.name.trim(),i=n.email.trim();if(!j){G(t,503,`urn:ok:error:no-project-dir`,`No project directory configured.`,{handler:Ba});return}if(!ze.tryAcquire(za)){G(t,429,`urn:ok:error:concurrent-operation`,`A set-identity operation is already in progress.`,{handler:Ba,extraHeaders:{"Retry-After":`5`}});return}try{zB(j,r,i),ce?.()?.refreshIdentity().catch(()=>{}),q(t,200,$o,{},{handler:Ba})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Set-identity failed.`,{handler:Ba,cause:e})}finally{ze.release(za)}},{handler:Ba,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Ba})});async function Ha(e,t){if(r(e,t,{handler:`sync-status`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-status`,extraHeaders:{Allow:`GET`}});return}try{let e=ce?.();if(!e){q(t,200,zn,{state:`dormant`,lastSyncUtc:null,lastFetchUtc:null,lastPushedSha:null,ahead:0,behind:0,consecutiveFailures:0,conflictCount:0,hasRemote:!1,syncEnabled:!1,identityUnresolved:!1,remote:null},{handler:`sync-status`});return}await e.refreshRemote(),q(t,200,zn,e.getStatus(),{handler:`sync-status`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-status`,cause:e})}}}let Ua=K(rte,async(e,t,n)=>{let r=ce?.();if(!r){G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`});return}let i=n.op??`sync`;q(t,202,Qe,{op:i},{handler:`sync-trigger`}),r.trigger(i)},{handler:`sync-trigger`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-trigger`})?ce?.()?!0:(G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-trigger`}),!1):!1});async function Ga(e,t){if(r(e,t,{handler:`sync-conflicts`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflicts`,extraHeaders:{Allow:`GET`}});return}try{let e=ce?.();q(t,200,hr,{conflicts:e?e.getConflicts():[]},{handler:`sync-conflicts`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`sync-conflicts`,cause:e})}}}let Ka=K(jt,async(e,t,n)=>{let r=ce?.();if(!r){G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-conflict`});return}let{file:i,strategy:a,content:o}=n;try{await r.resolveConflict(i,a,o),q(t,200,St,{},{handler:`sync-resolve-conflict`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve conflict.`,{handler:`sync-resolve-conflict`,cause:e,detail:e instanceof Error?e.message:void 0})}},{handler:`sync-resolve-conflict`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`sync-resolve-conflict`})?ce?.()?!0:(G(t,503,`urn:ok:error:sync-not-active`,`Sync engine not active.`,{handler:`sync-resolve-conflict`}),!1):!1});async function qa(e,t){if(!r(e,t,{handler:`sync-conflict-content`}))return;if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`sync-conflict-content`,extraHeaders:{Allow:`GET`}});return}if(!j){G(t,503,`urn:ok:error:project-repo-not-configured`,`Project repo not configured.`,{handler:`sync-conflict-content`});return}let n=new URL(e.url??`/`,`http://${e.headers.host??`localhost`}`),i=n.searchParams.get(`file`);if(!i){G(t,400,`urn:ok:error:invalid-request`,`Missing required query param: file.`,{handler:`sync-conflict-content`});return}if(i.includes(`..`)||i.startsWith(`/`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid file path.`,{handler:`sync-conflict-content`});return}let a=Jx(i),s=o.documents.get(a)?.getMap(`lifecycle`).get(`status`)===`conflict`,c=ce?.(),l=c?c.getConflicts().some(e=>e.file===i):!1;if(!s&&!l){G(t,404,`urn:ok:error:no-conflict-tracked`,`No conflict is tracked for this path.`,{handler:`sync-conflict-content`,extensions:{file:i}});return}let u=n.searchParams.get(`source`),d=_c({baseDir:j,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=Jx(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=Te?Te(a):null;t!==null&&(c=t,l=!0)}else{RL(I(j,i),j);try{c=V(I(j,i),`utf-8`),l=!0}catch{l=!1}}let p=l?n.length===0?`modify-delete`:`both-modified`:`delete-modify`;q(t,200,Jo,{file:i,base:r,ours:c,theirs:n,kind:p,lifecycleStatus:u},{handler:`sync-conflict-content`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read conflict content.`,{handler:`sync-conflict-content`,cause:e})}return}async function p(e){try{return{present:!0,content:await d.raw([`show`,`:${e}:${i}`])}}catch(t){let n=t instanceof Error?t.message:String(t);if(!/pathspec|did not match|exists on disk, but not in|is in the index, but not at stage/i.test(n))throw console.warn(JSON.stringify({event:`showstage-unexpected-error`,stage:e,file:i,detail:n,handler:`sync-conflict-content`})),t;return{present:!1}}}try{let[e,n,r]=await Promise.all([p(1),p(2),p(3)]),a=e.present?e.content:``,s=r.present?r.content:``,c=n.present&&r.present?`both-modified`:!n.present&&r.present?`delete-modify`:n.present&&!r.present?`modify-delete`:`both-modified`,l=n.present?n.content:``,d=null;if(u===`ytext`){let e=Jx(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=Te?Te(e):null;t!==null&&!Kye(t)?l=t:t!==null&&console.warn(JSON.stringify({event:`ytext-conflict-marker-detected`,"doc.name":e,handler:`sync-conflict-content`}))}}else Y.warn({docName:e},`[conflict-content] doc ${e} not loaded; lifecycleStatus unavailable`)}q(t,200,Jo,{file:i,base:a,ours:l,theirs:s,kind:c,lifecycleStatus:d},{handler:`sync-conflict-content`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read conflict content.`,{handler:`sync-conflict-content`,cause:e})}}async function Ya(e,t){if(!r(e,t,{handler:`seed-plan`}))return;if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`seed-plan`,extraHeaders:{Allow:`GET`}});return}let n=new URL(e.url??`/`,`http://localhost`),i=n.searchParams.get(`rootDir`)??void 0,a=n.searchParams.get(`packId`),o=EJ(a);if(a!==null&&a!==``&&o===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-plan`,detail:`Pack id "${a}" is not registered.`});return}try{q(t,200,pt,{plan:await NJ({projectDir:c,rootDir:i,packId:o})},{handler:`seed-plan`})}catch(e){if(e instanceof pJ){G(t,422,`urn:ok:error:seed-prerequisite-missing`,`Seed prerequisite missing.`,{handler:`seed-plan`,cause:e});return}if(e instanceof mJ){G(t,400,`urn:ok:error:seed-invalid-root`,`Invalid seed root directory.`,{handler:`seed-plan`,detail:`The provided root directory is not within the workspace content directory.`,cause:e});return}G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`seed-plan`,cause:e})}}let Xa=K(_te,async(e,t,n)=>{let r=n.plan;if(!r||typeof r!=`object`){G(t,400,`urn:ok:error:invalid-request`,`Invalid plan payload.`,{handler:`seed-apply`});return}let i=r,a=n.packId,o=EJ(a);if(typeof a==`string`&&a.length>0&&o===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-apply`,detail:`Pack id "${a}" is not registered.`});return}try{q(t,200,wte,{result:await jJ(i,{projectDir:c,packId:o})},{handler:`seed-apply`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to apply seed plan.`,{handler:`seed-apply`,cause:e})}},{handler:`seed-apply`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`seed-apply`})}),Za=K(Kee,async(e,t,n)=>{let r=EJ(n.packId);if(r===void 0){G(t,400,`urn:ok:error:invalid-request`,`Unknown packId.`,{handler:`seed-install-pack-skill`,detail:`Pack id "${n.packId}" is not registered.`});return}try{q(t,200,Ste,await m_e(c,r),{handler:`seed-install-pack-skill`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install pack skill.`,{handler:`seed-install-pack-skill`,cause:e})}},{handler:`seed-install-pack-skill`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`seed-install-pack-skill`})});async function $a(e,t){if(r(e,t,{handler:`seed-packs`})){if(e.method!==`GET`){G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`seed-packs`,extraHeaders:{Allow:`GET`}});return}q(t,200,bee,{packs:DJ()},{handler:`seed-packs`})}}let eo=K(Yee,async(e,t,n)=>{if(n.out!==void 0&&!sK(n.out)){G(t,400,`urn:ok:error:invalid-request`,`Output path must be within home directory.`,{handler:`install-skill`});return}try{q(t,200,Bee,await eL({...n.noOpen===void 0?{}:{noOpen:n.noOpen},...n.out===void 0?{}:{out:n.out}}),{handler:`install-skill`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`install-skill`,cause:e})}},{handler:`install-skill`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`install-skill`})});async function to(e,t){if(r(e,t,{handler:`installed-agents`}))try{await _pe(e,t,ct.probeAll)}catch(n){t.headersSent||(Y.error({err:n,requestId:_S(e)},`[installed-agents] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`installed-agents`,cause:n}))}}function no(e,t,n=`path`,r=`folder-config`){let i=e.replace(/^\.\//,``).replace(/^\/+/,``).replace(/\/+$/,``);if(i.split(`/`).some(e=>e===`..`)||e.startsWith(`/`))return G(t,400,`urn:ok:error:invalid-request`,`Invalid ${n}: must be project-root-relative.`,{handler:r}),null;let a=R(c),o=i===``?a:R(a,i);return o!==a&&!o.startsWith(`${a}${z}`)?(G(t,400,`urn:ok:error:invalid-request`,`Path escapes content directory.`,{handler:r}),null):{folderRel:i,resolvedContentDir:a}}function ro(e,t,n=`template`){return!e||!No.test(e)?(G(t,400,`urn:ok:error:invalid-request`,"Invalid name: must be letters / digits / `_` / `-` only (no `.md` extension).",{handler:n}),!1):!0}function io(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:R(e,i);if(a!==e&&!a.startsWith(`${e}${z}`))continue;let o=R(a,`.ok`,`templates`,`${n}.md`);if(B(o))return{abs:o,folder:i,scope:t===r.length?`local`:`inherited`}}return null}function oo(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 so=RW({GET:K(Kt,async(e,t)=>{try{let n=no(new URL(e.url??``,`http://localhost`).searchParams.get(`path`)??``,t,`path`,`folder-config-get`);if(!n)return;let r=await _j(n.folderRel,{projectDir:n.resolvedContentDir}),i=R(R(n.resolvedContentDir,n.folderRel,`.ok`),`frontmatter.yml`),a=null;if(B(i))try{let e=(0,XO.parse)(await td(i,`utf-8`));a=e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){let t=e instanceof Error?e.message:String(e);Y.warn({path:i,reason:t},`[folder-config:get] malformed YAML in ${i}: ${t}`),a=null}q(t,200,fte,{folder:r,frontmatter_local:a},{handler:`folder-config-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read folder config.`,{handler:`folder-config-get`,cause:e})}},{handler:`folder-config-get`,method:`GET`,skipBodyParse:!0}),PUT:K(Zee,async(e,t,n)=>{try{if(Ne){G(t,403,`urn:ok:error:single-file-mode`,`Folder configuration is not available in single-file mode.`,{handler:`folder-config-put`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`folder-config-put`});return}let r=no(n.path,t,`path`,`folder-config-put`);if(!r)return;let i=[];if(n.frontmatter!==void 0){let a=Ade({anchorDir:r.resolvedContentDir,folderRel:r.folderRel,patch:n.frontmatter});if(!a.ok){let e=a.error.code===`WRITE_ERROR`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to write folder config.`:a.error.message,{handler:`folder-config-put`,detail:a.error.code,cause:Error(a.error.message)});return}i.push({path:a.path,action:a.action}),a.action!==`noop`&&(cr(e,or(`folder-frontmatter`,r.folderRel),`folder-frontmatter-${a.action===`deleted`?`delete`:`edit`}: ${a.path}`),Tr(`folder-config-put`))}q(t,200,Hee,{applied:i},{handler:`folder-config-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write folder config.`,{handler:`folder-config-put`,cause:e})}},{handler:`folder-config-put`,method:`PUT`})},{handler:`folder-config`}),lo=K(Kt,async(e,t)=>{try{let{entries:e,truncated:n}=uhe({homedirOverride:he});q(t,200,cn,{themes:e,truncated:n},{handler:`saved-themes-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list saved themes.`,{handler:`saved-themes-list`,cause:e})}},{handler:`saved-themes-list`,method:`GET`,skipBodyParse:!0}),uo=K(An,async(e,t,n)=>{try{let e=await phe({name:n.name,stem:n.stem,scheme:n.scheme,extension:n.extension,homedirOverride:he,lockTimeoutMs:ge});if(!e.ok){if(e.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-save`,detail:e.code,extraHeaders:{"Retry-After":`5`}});return}if(e.code===`name-taken`){G(t,409,`urn:ok:error:theme-name-taken`,`A saved theme with that name already exists.`,{handler:`saved-theme-save`,detail:n.name});return}G(t,400,`urn:ok:error:theme-name-invalid`,`That name cannot be used as a theme id.`,{handler:`saved-theme-save`,detail:e.code});return}q(t,201,dee,{id:e.id,filename:e.filename},{handler:`saved-theme-save`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to save theme.`,{handler:`saved-theme-save`,cause:e})}},{handler:`saved-theme-save`,method:`POST`}),fo=K(Kt,async(e,t)=>{try{let n=kc(e).get(`id`)??``;if(n===``){G(t,400,`urn:ok:error:invalid-request`,`Missing theme id.`,{handler:`saved-theme-delete`});return}let r=await hhe({id:n,homedirOverride:he,lockTimeoutMs:ge});if(!r.ok){if(r.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-delete`,detail:r.code,extraHeaders:{"Retry-After":`5`}});return}G(t,r.code===`invalid-id`?400:409,`urn:ok:error:invalid-request`,`Cannot delete saved theme.`,{handler:`saved-theme-delete`,detail:r.code});return}q(t,200,tte,r.existed?{existed:!0,filename:r.filename,scheme:r.scheme}:{existed:!1},{handler:`saved-theme-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete theme.`,{handler:`saved-theme-delete`,cause:e})}},{handler:`saved-theme-delete`,method:`DELETE`,skipBodyParse:!0}),po=RW({POST:uo,PUT:K(Kn,async(e,t,n)=>{try{let e=await mhe({id:n.id,scheme:n.scheme,homedirOverride:he,lockTimeoutMs:ge});if(!e.ok){if(e.code===`lock-timeout`){G(t,503,`urn:ok:error:concurrent-operation`,`Saved themes are temporarily busy.`,{handler:`saved-theme-update`,detail:e.code,extraHeaders:{"Retry-After":`5`}});return}if(e.code===`not-found`){G(t,404,`urn:ok:error:not-found`,`Saved theme not found.`,{handler:`saved-theme-update`});return}if(e.code===`ambiguous-id`||e.code===`unsafe-target`){G(t,409,`urn:ok:error:invalid-request`,e.code===`ambiguous-id`?`Multiple saved theme files claim that id.`:`The saved theme id conflicts with a file that cannot be safely updated.`,{handler:`saved-theme-update`,detail:e.code});return}G(t,400,`urn:ok:error:invalid-request`,`Not a saved theme id.`,{handler:`saved-theme-update`,detail:e.code});return}q(t,200,Rt,{id:e.id,filename:e.filename},{handler:`saved-theme-update`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to update theme.`,{handler:`saved-theme-update`,cause:e})}},{handler:`saved-theme-update`,method:`PUT`}),DELETE:fo},{handler:`saved-theme`});function mo(e,t,n){let r=o.documents.get(e);return r&&CS(r)?(ES(n,new TS({file:`${e}.md`}),t),!0):!1}function ho(e,t,n){let r=o.documents.get(e);return r&&CS(r)?(ES(n,new TS({file:`${e}.md`}),t),!0):!1}let go=K(Kt,lV(async(e,t)=>{let n=await ude(R(c));q(t,200,Vi,{templates:n.templates.map(e=>{let{scope:t,...n}=e;return n}),truncated:n.truncated},{handler:`templates-list`})},{handler:`templates-list`,title:`Failed to list templates.`}),{handler:`templates-list`,method:`GET`,skipBodyParse:!0}),_o=e=>{let{body:t}=ai(e);return{frontmatter:vi(e)??{},body:t}},vo=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!ro(r,t,`template-get`))return;let i=no(n.searchParams.get(`folder`)??``,t,`folder`,`template-get`);if(!i)return;let{folderRel:a,resolvedContentDir:o}=i,s=io(o,a,r);if(!s){G(t,404,`urn:ok:error:template-not-found`,`Template not found.`,{handler:`template-get`,detail:`Template "${r}" not found for folder "${a||`.`}". Walked leaf → root.`});return}let{abs:c,folder:l,scope:u}=s,d=Tt(await td(c,`utf-8`)),f=d.identity,p=d.starterContent;q(t,200,Uee,{template:{name:r,folder:l,scope:u,path:L(o,c).split(/[\\/]/).filter(Boolean).join(`/`),frontmatter:f,body:p}},{handler:`template-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read template.`,{handler:`template-get`,cause:e})}},{handler:`template-get`,method:`GET`,skipBodyParse:!0}),yo=K(hte,async(e,t,n)=>{try{if(Ne){G(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-put`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-put`});return}let r=n.name;if(!ro(r,t,`template-put`))return;let i=no(n.folder,t,`folder`,`template-put`);if(!i||mo(ss(i.folderRel,r),`template-put`,t))return;let a=Bj({name:r,body:typeof n.body==`string`?n.body:``,frontmatter:oo(n.frontmatter)});if(!a.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid template request.`,{handler:`template-put`,detail:a.error.code,cause:Error(a.error.message)});return}let o=R(i.resolvedContentDir,i.folderRel,`.ok`,`templates`,`${r}.md`),c=!B(o),l=L(i.resolvedContentDir,o).split(/[\\/]/).filter(Boolean).join(`/`),u=ss(i.folderRel,r),{agentId:d,agentName:f,colorSeed:p,clientName:m}=Xn(n),h=await s.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{nb(h.dc.document,a.content,`agent`)},h.origin);let g=await Vt(u);if(g?.kind===`failure`){qt(t,g.failure,`template-put`);return}if(g?.kind===`divergence`){Jt(t,`template-put`);return}_n(u,a.content),cr(e,or(`template`,i.folderRel,r),`${c?`template-create`:`template-edit`}: ${l}`),Tr(`template-put`),q(t,200,Ti,{path:l,created:c,warnings:a.warnings},{handler:`template-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write template.`,{handler:`template-put`,cause:e})}},{handler:`template-put`,method:`PUT`}),xo=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!ro(r,t,`template-delete`))return;let i=no(n.searchParams.get(`folder`)??``,t,`folder`,`template-delete`);if(!i)return;let a=Io(n,me);if(a.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-delete`});return}if(mo(ss(i.folderRel,r),`template-delete`,t))return;await Sn([ss(i.folderRel,r)],`deleted-upstream`);let o=Hde({projectDir:i.resolvedContentDir,folder:i.folderRel,name:r});if(!o.ok){let e=o.error.code===`WRITE_ERROR`||o.error.code===`UNLINK_FAILED`||o.error.code===`BAD_PROJECT_DIR`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete template.`:`Invalid template request.`,{handler:`template-delete`,detail:o.error.code,cause:Error(o.error.message)});return}o.existed&&(cr(a,or(`template`,i.folderRel,r),`template-delete: ${o.path}`),Tr(`template-delete`),we?.setDeleted(ss(i.folderRel,r))),q(t,200,Qee,{existed:o.existed,path:o.path},{handler:`template-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete template.`,{handler:`template-delete`,cause:e})}},{handler:`template-delete`,method:`DELETE`,skipBodyParse:!0}),So=RW({GET:vo,PUT:yo,POST:K(Jee,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-move`});return}if(!ro(n.fromName,t,`template-move`)||!ro(n.toName,t,`template-move`))return;let r=no(n.fromFolder,t,`folder`,`template-move`);if(!r)return;let i=no(n.toFolder,t,`folder`,`template-move`);if(!i||mo(ss(r.folderRel,n.fromName),`template-move`,t))return;await Sn([ss(r.folderRel,n.fromName)],`renamed`);let a=await Ude({projectDir:r.resolvedContentDir,fromFolder:r.folderRel,fromName:n.fromName,toFolder:i.folderRel,toName:n.toName,relocate:async(e,t)=>{let n=await pZ(j,e,t);return n||fZ(e,t),n}});if(!a.ok){if(a.error.code===`TEMPLATE_NOT_FOUND`){let e=io(r.resolvedContentDir,r.folderRel,n.fromName);if(e?.scope===`inherited`){G(t,400,`urn:ok:error:invalid-request`,`Template "${n.fromName}" is inherited from "${e.folder||`(root)`}", not local to "${r.folderRel||`(root)`}". Move it from the folder that owns it, or create a local copy here first (then move that).`,{handler:`template-move`,detail:`TEMPLATE_INHERITED`});return}G(t,404,`urn:ok:error:template-not-found`,`Template not found.`,{handler:`template-move`,detail:a.error.message});return}if(a.error.code===`TEMPLATE_EXISTS`){G(t,409,`urn:ok:error:doc-already-exists`,a.error.message,{handler:`template-move`,detail:a.error.code});return}let e=a.error.code===`WRITE_ERROR`||a.error.code===`MOVE_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to move template.`:`Invalid template move request.`,{handler:`template-move`,detail:a.error.code,cause:Error(a.error.message)});return}we?.setDeleted(ss(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=fr(V(R(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=Vde({projectDir:i.resolvedContentDir,folder:i.folderRel,name:n.toName,body:e,frontmatter:oo(n.frontmatter)});t.ok||(o=t.error)}}try{_n(ss(i.folderRel,n.toName),V(R(i.resolvedContentDir,a.toPath),`utf-8`))}catch{}if(cr(e,or(`template`,i.folderRel,n.toName),`template-rename: ${a.fromPath} -> ${a.toPath}`,[{from:a.fromPath,to:a.toPath}]),Tr(`template-move`),Le?.(`files`),o){let e=o.code===`WRITE_ERROR`||o.code===`READ_FAILED`;G(t,e?500:400,e?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,`Template moved to "${a.toPath}", but updating its content failed.`,{handler:`template-move`,detail:o.code,cause:Error(o.message)});return}q(t,200,ate,{from:a.fromPath,to:a.toPath,committed:a.committed},{handler:`template-move`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move template.`,{handler:`template-move`,cause:e})}},{handler:`template-move`,method:`POST`}),DELETE:xo},{handler:`template`}),wo=K(lte,async(e,t,n)=>{try{if(Ne){G(t,403,`urn:ok:error:single-file-mode`,`Templates are not available in single-file mode.`,{handler:`template-import`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`template-import`});return}let r=n.sourcePath;if(!gZ(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid sourcePath.`,{handler:`template-import`});return}let i=Dt(r);if(iS(i)||aS(i)){G(t,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`template-import`});return}let a=QX(c,`file`,i);if(!B(a)){G(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=ce?.(),n=new Set(e?e.getConflicts().map(e=>e.file):[]),i=l!==void 0&&CS(l),a=n.has(r);if(i||a){ES(t,new TS({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){G(t,500,`urn:ok:error:doc-not-available`,`Source document is not available.`,{handler:`template-import`});return}u=n.getText(`source`).toString()}finally{await e.disconnect()}}let d=n.name;if(!d){let{basename:e}=$X(r);d=e.replace(/\.(md|mdx)$/i,``).replace(/[^A-Za-z0-9_-]/g,`-`).toLowerCase(),d=d.replace(/^[-_]+|[-_]+$/g,``),d||=`imported-template`}if(!ro(d,t,`template-import`))return;let f=no(n.targetFolder,t,`folder`,`template-import`);if(!f||mo(ss(f.folderRel,d),`template-import`,t))return;let{frontmatter:p,body:m}=ai(u),h=Ja(p),_={};try{h.trim()&&(_=(0,XO.parse)(h))}catch{}let v=n.title||_?.title||XA(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,XO.stringify)(x).trim()}\n`),S=S?`---\n${S}---\n${m}`:m;let C=Bj({name:d,body:S,frontmatter:{title:v,description:y,tags:b}});if(!C.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid template request.`,{handler:`template-import`,detail:C.error.code,cause:Error(C.error.message)});return}let w=R(f.resolvedContentDir,f.folderRel,`.ok`,`templates`,`${d}.md`),T=!B(w),E=L(f.resolvedContentDir,w).split(/[\\/]/).filter(Boolean).join(`/`),ee=ss(f.folderRel,d),{agentId:te,agentName:ne,colorSeed:D,clientName:re}=Xn(n),O=await s.getSession(ee,te,{displayName:ne,colorSeed:D,clientName:re});O.dc.document.transact(()=>{nb(O.dc.document,C.content,`agent`)},O.origin);let k=await Vt(ee);if(k?.kind===`failure`){qt(t,k.failure,`template-import`);return}if(k?.kind===`divergence`){Jt(t,`template-import`);return}_n(ee,C.content),cr(e,or(`template`,f.folderRel,d),`template-import: ${E}`),n.deleteSource&&(await Sn([i],`deleted-upstream`),we&&we.setDeleted(i),Is(a),g?.({kind:`delete`,path:a,docName:i})),Tr(`template-import`),Le?.(`files`),q(t,200,To,{path:E,created:T,warnings:C.warnings},{handler:`template-import`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import template.`,{handler:`template-import`,cause:e})}},{handler:`template-import`,method:`POST`});function Eo(e){return!!e&&e.length<=64&&Co.test(e)}function Do(e,t,n){return Eo(e)?!0:(G(t,400,`urn:ok:error:invalid-request`,`Invalid skill name: lowercase letters, digits, and hyphens only (≤64 chars; no slashes, dots, spaces, or uppercase).`,{handler:n}),!1)}function Oo(e,t,n){let r=Zt.safeParse(e??`project`);return r.success?r.data:(G(t,400,`urn:ok:error:invalid-request`,`Invalid skill scope (expected "project" or "global").`,{handler:n}),null)}let jo=he??qu(),Mo=gye({contentDir:c,skillsHome:jo,effectiveInstallMode:Uo});function Po(e){return R(e===`global`?jo:c,`.ok`,`skills`)}function Fo(e,t,n){let r=R(Po(e),t);if(e===`global`){if(n!==void 0){let e=FL(jo).find(e=>e.name===t&&e.hosts.includes(n));return e?R(jo,e.dir):null}let e=IL(jo,t);return e===null?B(I(r,`SKILL.md`))?r:null:e}let i=PL(c).find(e=>e.name===t&&(n===void 0||e.hosts.includes(n)));return i?R(c,i.dir):n===void 0&&B(I(r,`SKILL.md`))?r:null}function Io(e,t){let n=e.searchParams;return jk({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 Lo(e,t){let n=e===`project`?j:jo;if(!n)return`symlink`;try{return Ks(I(n,...eD)).skills[t]===void 0?`symlink`:`copy`}catch{return`symlink`}}function Ro(e){let t=e===`project`?j:jo;return t?I(t,...eD):null}function zo(e,t,n,r={}){let i=Ro(e);return i?aJ(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 Bo(e,t,n){let r=Ro(e),i=Ro(t);if(!r||!i)return!1;let a=iJ(r).skills[n];if(!a)return!1;let o={...a};return t===`global`&&delete o.baselineRef,await aJ(i,e=>({...e,skills:{...e.skills,[n]:o}})),await aJ(r,e=>{let t={...e.skills};return delete t[n],{...e,skills:t}}),!0}function Vo(e,t,n){let r=Ro(e);return r?aJ(r,e=>{let r=e.skills[t];return r?{...e,skills:{...e.skills,[t]:{...r,...n}}}:e}):Promise.resolve()}function Ho(e,t,n){let[r,i]={"no-shadow":[409,`urn:ok:error:shadow-not-configured`],"version-not-found":[404,`urn:ok:error:not-found`],"skill-absent":[404,`urn:ok:error:not-found`],"io-error":[500,`urn:ok:error:storage-error`],"path-escape":[500,`urn:ok:error:path-escape`]}[t.code];G(e,r,i,t.error,{handler:n,detail:t.code})}function Uo(e,t,n){let r=e===`project`?j:jo;return(r?mye(r,t):void 0)||(n.hosts.length-1<=0||n.linkedHosts.some(e=>n.hosts.includes(e))?`link`:`copy`)}function Wo(e){let t=Fo(`project`,e);return t?L(c,t).split(z).join(`/`):`${Oi}/${e}`}let Go=uk.project;function Ko(e,t,n){let r=[],i=null,a=[...rr.map(e=>({id:e,root:zt[e]??``})),{id:`agents`,root:Ei}];for(let{id:o,root:s}of a){if(!s)continue;let a=R(e,...s.split(`/`),t);B(R(a,`SKILL.md`))&&(r.push(o),(n===void 0?i===null:o===n)&&(i=a))}if(i===null)return null;let o=R(i,`SKILL.md`);return{dir:i,skillMd:o,hosts:r,relPath:L(e,o).split(/[\\/]/).filter(Boolean).join(`/`)}}function qo(e){let t=vO(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 Yo(e,t){if(!fk(t))return null;let n=Ko(e,t);if(!n)return null;let r=_D(n.dir)?.contentHash??``,i;try{i=Vu(n.skillMd).mtime.toISOString()}catch{i=new Date(0).toISOString()}return{source:Hi,skill:t,contentHash:r,autoUpdate:!1,importedAt:i}}let Xo=null;function Qo(e){let t=Date.now();if(Xo&&Xo.identity===e&&t-Xo.at<3e4)return Xo.byName;let n=new Map;try{n=tt(gr({projectDir:e,...he===void 0?{}:{home:he}}).skills,e=>_D(e)?.contentHash)}catch(e){Y.warn({err:e},`plugin upstream index failed; origins will be omitted`)}return Xo={at:t,identity:e,byName:n},n}function es(e,t){return Qo(t).get(e)?.contentHash??null}function ts(e,t,n){let r=Qo(t).get(e);if(!r)return null;try{if(H(n)!==H(r.home))return null}catch{return null}return{name:r.plugin,marketplace:r.marketplace,provider:r.provider,...r.repositoryUrl?{url:r.repositoryUrl}:{}}}function ns(e,t,n){let r=Qo(t).get(e);if(!r)return null;if(n!==void 0)try{if(H(n)===H(r.home))return null}catch{}let i;try{i=Vu(I(r.home,`SKILL.md`)).mtime.toISOString()}catch(e){Y.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 is(e,t){let n=pk.find(t=>uk[t]===e);if(n===void 0||t!==void 0&&mk[n]!==(t===`global`?`user`:`project`))return null;try{let e=R(Sk(n,{checkDesktop:!0}),`SKILL.md`);return B(e)?e:null}catch(t){return Y.warn({name:e,err:t},`[skills] bundle asset dir unresolved for built-in ${e}`),null}}function as(e,t,n){let r=Ko(e,t),i=r?.skillMd??is(t);if(i===null)return null;let a;try{let{frontmatter:e}=_o(V(i,`utf-8`));typeof e.description==`string`&&(a=e.description)}catch{}let o=Yo(e,t),s=_D(F(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:Na(s)}:{},...o?{origin:qo(o)}:{}}}function os(e,t,n){return fk(e)?(G(t,400,`urn:ok:error:reserved-doc-name`,`"${e}" is one of OpenKnowledge's runtime skills — its content is read-only in-app (updates arrive via reimport). Duplicate it under a new name to make your own version.`,{handler:n}),!0):!1}function ss(e,t){return ote(e,t)}function cs(e){return e===`navigation`||e===`relevance`?e:void 0}function ls(e,t){return L(t===`global`?jo:c,e).split(/[\\/]/).filter(Boolean).join(`/`)}function ds(e){return e===`global`?jo:j}async function fs(e,t,n,r={}){let i=await UN(e,t),a=n===`project`?c:jo;if(r.purge!==void 0){yL(t,e,rr,oL(n));for(let e of gge(a,n,t,r.purge.contentHash))Gs(e,{recursive:!0,force:!0});return i!==null}if(!B(R(Po(n),t,`SKILL.md`))){let r=(n===`project`?PL(c):FL(jo)).find(e=>e.name===t);if(r){let a=n===`project`?c:jo,o=R(a,r.dir),s=R(a,`.agents`,`skills`),l=I(s,t);if(B(s)&&!B(I(l,`SKILL.md`))){let e=!1;try{e=H(o)===H(l)}catch{e=!1}e||Ws(o,l,{recursive:!0,dereference:!0})}return vL({canonicalAbs:B(I(l,`SKILL.md`))?l:o,canonicalHash:r.contentHash,name:t,cwd:e,targets:[...rr],roots:oL(n)}),i!==null}}return yL(t,e,rr,oL(n)),i!==null}function ps(e,t){let n=[];if(!B(e))return{skills:n,truncated:!1};let r;try{r=Iu(e,{withFileTypes:!0})}catch(r){return P(`skills`).warn({err:r,skillsRoot:e,scope:t},`failed to read skills root — returning empty skills list`),{skills:n,truncated:!1}}let i=!1;for(let a of r.sort((e,t)=>e.name.localeCompare(t.name))){if(!a.isDirectory()||!Co.test(a.name))continue;if(n.length>=500){i=!0;break}let r=R(e,a.name,`SKILL.md`);if(!B(r))continue;let o;try{let{frontmatter:e}=_o(V(r,`utf-8`));typeof e.description==`string`&&(o=e.description)}catch{}n.push({name:a.name,...o===void 0?{}:{description:o},scope:t,path:ls(r,t),absolutePath:r})}return{skills:n,truncated:i}}function ms(e){return`!/${F(e).split(z).join(`/`)}/`}let hs=K(nee,lV(async(e,t,n)=>{if(!Do(n.name,t,`skill-track-in-git`))return;if(n.scope!==`project`){G(t,400,`urn:ok:error:invalid-request`,`Only project skills live in the repository; a global skill is outside any .gitignore.`,{handler:`skill-track-in-git`});return}if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project directory.`,{handler:`skill-track-in-git`});return}let r=PL(c).find(e=>e.name===n.name)?.dir??`.ok/skills/${n.name}`,i=HX(R(c,r,`SKILL.md`),c)??`${r}/SKILL.md`,a=F(i),o=i,s=ms(a),l=`.gitignore`,u=R(c,l);if(be&&!be.isPathIgnored(o)){q(t,200,ao,{line:s,gitignorePath:l,applied:!1,alreadyTracked:!0},{handler:`skill-track-in-git`});return}if(n.apply!==!0){q(t,200,ao,{line:s,gitignorePath:l,applied:!1},{handler:`skill-track-in-git`});return}let d=B(u)?V(u,`utf-8`):null;if((d??``).split(`
1185
1185
  `).some(e=>e.trim()===s)){G(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(Uu(u,`${d===null||d.endsWith(`
1186
1186
  `)||d===``?d??``:`${d}\n`}${s}\n`,`utf-8`),pr(),await be?.rebuildIgnorePatterns(),be?.isPathIgnored(o)){d===null?zu(u,{force:!0}):Uu(u,d,`utf-8`),pr(),await be.rebuildIgnorePatterns(),G(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}Le?.(`files`),q(t,200,ao,{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`}),gs={lastKey:null},_s=K(Kt,lV(async(e,t)=>{let n=(be?.peekFreshInPlaceSkillDirsFingerprint()??``)+``+(j?$I(j).join(`,`):``)+``+QI(jo).map(e=>e.editorId).join(`,`)+``+FL(jo).map(e=>e.dir).sort().join(`,`);if(ur!==null&&ur.fp!==n&&pr(),ur!==null&&ur.gen===lr&&ur.fp===n&&Date.now()-ur.at<5e3){q(t,200,Zn,ur.body,{handler:`skills-list`});return}let r=Po(`project`),i=ps(r,`project`),a=ps(Po(`global`),`global`),o=j?$I(j):[],s=QI(jo).map(e=>e.editorId),l=j?BN(j).skills:{},u=BN(jo).skills,d=j?iD(B(I(j,...eD))?V(I(j,...eD),`utf-8`):``)??null:null,f=qo,p=(e,t,n)=>e.skills.map(e=>{let i=t[e.name]?.hosts??[],a=n?d?.skills[e.name]:void 0,o=a?f(a):void 0,s=a?.localHash!==void 0&&qs(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}:{}}}),m=j?JY(j):{},h=(e,t,n)=>{let r=[];for(let i of t??[]){let t=R(e,i.path);if(n!==void 0&&t===R(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(H(t)===H(n))continue}catch{}r.push(i.path)}}return{drift:r}},g=j?TL(c,`project`):{},_=AL(g,`project`),v=(e,t)=>[...t].some(t=>e===t||e.startsWith(`${t}/`)),y=tf(j??c),b=Jge(c),x=OL(`project`),S=OL(`global`),C=(e,t)=>(e??[]).filter(e=>![...t].some(t=>e.path===t||e.path.startsWith(`${t}/`))),w=new Set,T=j?PL(c).map(e=>{let t=!w.has(e.name);w.add(e.name);let n=R(c,e.dir),r=t?ts(e.name,y,n):null,i=t&&r===null?d?.skills[e.name]??Yo(c,e.name)??ns(e.name,y,n):void 0,a=i?f(i):void 0,s=i?.localHash===void 0?(()=>{if(!i||!t)return!1;let n=es(e.name,y);return n!==null&&b.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:R(c,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],size:e.size,installableEditors:o,...e.pack===void 0?{}:{pack:e.pack},...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(g).length>0?{hostAliases:g}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...r===null?{}:{plugin:r},...(()=>{let n=C(t?m[e.name]:void 0,_).filter(e=>!v(e.path,x));return n.length?{customPlacements:n.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...(()=>{let n=h(j,C(t?m[e.name]:void 0,_),R(c,e.dir));return n.drift.length>0?{driftPaths:n.drift}:{}})(),...Uo(`project`,e.name,e)===`link`?{linkMode:!0}:{},...a?{origin:a}:{},...s?{modified:!0}:{},...i?.baselineRef===void 0?{}:{revertable:!0},...fk(e.name)?{managed:!0}:{}}}):[],E=JY(jo),ee=Ks(I(jo,...eD)),te=TL(jo,`global`),ne=AL(te,`global`),D=new Set(FL(jo).map(e=>e.name));a.skills=a.skills.filter(e=>!D.has(e.name));let re=new Set,O=FL(jo).map(e=>{let t=!re.has(e.name);re.add(e.name);let n=t?E[e.name]:void 0,r=IL(jo,e.name),i=r!==null&&R(jo,e.dir)!==R(r)?e.hosts[0]:void 0;return{name:e.name,...e.description?{description:e.description}:{},scope:`global`,path:`${e.dir}/SKILL.md`,absolutePath:R(jo,e.dir,`SKILL.md`),installed:!0,hosts:[...e.hosts],...i===void 0?{}:{hostQualifier:i},size:e.size,installableEditors:s,...e.pack===void 0?{}:{pack:e.pack},...e.linkedHosts.length>0?{symlinkedHosts:[...e.linkedHosts]}:{},...Object.keys(te).length>0?{hostAliases:te}:{},...e.conflictHosts.length>0?{conflictHosts:[...e.conflictHosts]}:{},...(()=>{let t=h(jo,C(n,ne),R(jo,e.dir));return t.drift.length>0?{driftPaths:t.drift}:{}})(),...(()=>{let e=C(n,ne).filter(e=>!v(e.path,S));return e.length?{customPlacements:e.map(e=>({path:e.path,mode:e.mode}))}:{}})(),...Uo(`global`,e.name,e)===`link`?{linkMode:!0}:{},...fk(e.name)?{managed:!0}:{},...(()=>{if(!t)return{};let n=R(jo,e.dir),r=ts(e.name,y,n);if(r!==null)return{plugin:r};let i=ee.skills[e.name]??Yo(jo,e.name)??ns(e.name,y,n);if(!i)return{};let a=i.localHash===void 0?(()=>{let t=es(e.name,y);return t!==null&&b.isModified(`global`,e.name,e.contentHash,t)})():e.contentHash!==i.localHash;return{origin:f(i),...a?{modified:!0}:{}}})()}}),k=new Set(T.map(e=>e.name)),A=j&&!i.skills.some(e=>e.name===Go)&&!k.has(Go)?as(j,Go,`project`):null,ie=new Set(O.map(e=>e.name)),ae=hk.map(e=>uk[e]).filter(e=>!a.skills.some(t=>t.name===e)&&!ie.has(e)).map(e=>as(jo,e,`global`)).filter(e=>e!==null),oe=new Set(T.map(e=>e.name)),se=[...p(i,l,!0).filter(e=>!oe.has(e.name)),...T,...p(a,u,!1),...O,...A?[A]:[],...ae];b.flush();let ce={skills:se.map(e=>{let t=e.scope===`project`&&e.absolutePath?HX(e.absolutePath,c):null,n=e.absolutePath?mge(F(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`&&be?.isPathIgnored(a)===!0?{...i,ignored:!0}:i}),truncated:i.truncated||a.truncated},le=await Jye(T.map(e=>e.path),be??null,gs)?{...ce,skills:ce.skills.map(e=>{if(e.scope!==`project`)return e;let t=e.canonicalPath??e.path,n=be?.isPathIgnored(t)===!0;if(n===(e.ignored===!0))return e;if(n)return{...e,ignored:!0};let{ignored:r,...i}=e;return i})}:ce;ur={at:Date.now(),gen:lr,fp:n,body:le},q(t,200,Zn,le,{handler:`skills-list`})},{handler:`skills-list`,title:`Failed to list skills.`}),{handler:`skills-list`,method:`GET`,skipBodyParse:!0}),vs=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Do(r,t,`skill-get`))return;let i=Oo(n.searchParams.get(`scope`),t,`skill-get`);if(i===null)return;if(fk(r)){let e=i===`global`?jo:j,a=e?Ko(e,r,n.searchParams.get(`host`)??void 0):null;if(a){let{frontmatter:e,body:n}=_o(await td(a.skillMd,`utf-8`));q(t,200,ft,{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:xL(a.dir),managed:!0}},{handler:`skill-get`});return}}let a=n.searchParams.get(`host`)??void 0,o=Fo(i,r,a);if(o===null){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-get`,detail:a===void 0?`Skill "${r}" not found in ${i} scope.`:`No skill "${r}" (${i}) in ${a}.`});return}let s=R(o,`SKILL.md`),{frontmatter:c,body:l}=_o(await td(s,`utf-8`));q(t,200,ft,{skill:{name:r,scope:i,path:ls(s,i),frontmatter:{name:typeof c.name==`string`?c.name:r,description:typeof c.description==`string`?c.description:``},body:l,files:xL(o)}},{handler:`skill-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill.`,{handler:`skill-get`,cause:e})}},{handler:`skill-get`,method:`GET`,skipBodyParse:!0});async function ys(e,t){!k||dS(e)||(be&&(pr(),be.refreshInPlaceSkillDirs(),vr()),sn(e,t,`skill-put`))}let bs=K(Wn,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-put`});return}if(!Do(n.name,t,`skill-put`)||os(n.name,t,`skill-put`))return;let r=Cj({name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!r.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill request.`,{handler:`skill-put`,detail:r.error.code,cause:Error(r.error.message)});return}let i=n.scope===`project`?c:jo,a=Fo(n.scope,n.name);if(a===null){let a=jL(i,n.scope);if(a===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-put`,detail:`NO_USABLE_SKILL_HOME`});return}let o=wj({skillsRoot:R(i,a),name:n.name,body:typeof n.body==`string`?n.body:``,frontmatter:{name:n.frontmatter.name,description:n.frontmatter.description}});if(!o.ok){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill request.`,{handler:`skill-put`,detail:o.error.code,cause:Error(o.error.message)});return}n.scope===`project`&&(cr(e,`${a}/${n.name}/SKILL`,`skill-create: ${a}/${n.name}/SKILL.md`),Tr(`skill-put`)),await ys(n.scope===`project`?`${a}/${n.name}/SKILL`:Qa(`global`,n.name),r.content),Le?.(`files`),q(t,200,It,{path:`${a}/${n.name}/SKILL.md`,created:!0,warnings:[...r.warnings,...o.warnings]},{handler:`skill-put`});return}let o=L(i,a).split(z).join(`/`),l=`${o}/SKILL.md`,u=n.scope===`project`?`${o}/SKILL`:Qa(n.scope,n.name);if(ho(u,`skill-put`,t))return;let{agentId:d,agentName:f,colorSeed:p,clientName:m}=Xn(n),h=await s.getSession(u,d,{displayName:f,colorSeed:p,clientName:m});h.dc.document.transact(()=>{nb(h.dc.document,r.content,`agent`)},h.origin);let g=await Vt(u);if(g?.kind===`failure`){qt(t,g.failure,`skill-put`);return}if(g?.kind===`divergence`){Jt(t,`skill-put`);return}n.scope===`project`&&(cr(e,or(`skill`,``,n.name),`skill-edit: ${l}`),Tr(`skill-put`)),await ys(u,r.content),Le?.(`files`),q(t,200,It,{path:l,created:!1,warnings:r.warnings},{handler:`skill-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write skill.`,{handler:`skill-put`,cause:e})}},{handler:`skill-put`,method:`PUT`});function xs(e,t,n){let r=e===`project`?c:jo,i=Fo(e,t,n);return{root:i===null?Po(e):F(i),dirRel:i===null?`.ok/skills/${t}`:L(r,i).split(z).join(`/`),realDir:i}}function Ss(e,t){let n=e===`project`?c:jo,r=(e===`project`?PL(c):FL(jo)).find(e=>e.name===t);r&&vL({canonicalAbs:R(n,r.dir),canonicalHash:r.contentHash,name:t,cwd:n,targets:r.hosts.filter(e=>na(e)),roots:oL(e)})}let ws=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Do(r,t,`skill-delete`))return;let i=Oo(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}=xs(i,r,a);if(a!==void 0&&c===null){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-delete`,detail:`No skill "${r}" (${i}) in ${a}.`});return}let l=Io(n,me);if(l.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-delete`});return}await Sn(i===`project`?[...new Set([`${s}/SKILL`,Qa(i,r)])]:[Qa(i,r,a)],`deleted-upstream`),a===void 0&&Ss(i,r);let u=kj({skillsRoot:o,name:r}),d=Po(i);if(a===void 0&&u.ok&&d!==o&&B(R(d,r,`SKILL.md`))){let e=kj({skillsRoot:d,name:r});e.ok||Y.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;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete skill.`:`Invalid skill request.`,{handler:`skill-delete`,detail:u.error.code,cause:Error(u.error.message)});return}u.existed&&(i===`project`&&(cr(l,s,`skill-delete: ${s}`),pr(),Er(`skill-delete`)),Le?.(`files`));let f=ds(i);a===void 0&&f&&await fs(f,r,i),q(t,200,Ci,{existed:u.existed,path:u.path},{handler:`skill-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete skill.`,{handler:`skill-delete`,cause:e})}},{handler:`skill-delete`,method:`DELETE`,skipBodyParse:!0}),Ts=K(Xe,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-move`});return}if(!Do(n.fromName,t,`skill-move`)||!Do(n.toName,t,`skill-move`)||os(n.toName,t,`skill-move`))return;let{root:r,dirRel:i}=xs(n.scope,n.fromName);if(Fo(n.scope,n.toName)!==null){G(t,409,`urn:ok:error:doc-already-exists`,`A skill named "${n.toName}" already exists.`,{handler:`skill-move`});return}let a=ds(n.scope),o=a?BN(a).skills[n.fromName]:void 0,s=n.scope===`project`?c:jo,l=(n.scope===`project`?PL(c):FL(jo)).find(e=>e.name===n.fromName),u=l?F(l.dir):null,d=u===null?[]:Object.entries(TL(s,n.scope)).filter(([,e])=>e===u).map(([e])=>e),f=[...new Set([...o?nL(o.hosts):[],...l?nL(l.hosts):[],...nL(d)])];await Sn(n.scope===`project`?[...new Set([`${i}/SKILL`,Qa(n.scope,n.fromName)])]:[Qa(n.scope,n.fromName)],`renamed`),Ss(n.scope,n.fromName);let p=await Fde({skillsRoot:r,fromName:n.fromName,toName:n.toName,relocate:async(e,t)=>{let n=await pZ(j,e,t);return n||fZ(e,t),n}});if(!p.ok){if(p.error.code===`SKILL_NOT_FOUND`){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move`,detail:p.error.message});return}if(p.error.code===`SKILL_EXISTS`){G(t,409,`urn:ok:error:doc-already-exists`,p.error.message,{handler:`skill-move`,detail:p.error.code});return}let e=p.error.code===`MOVE_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to move skill.`:`Invalid skill move request.`,{handler:`skill-move`,detail:p.error.code,cause:Error(p.error.message)});return}let m=null,h=R(r,n.toName,`SKILL.md`),g=``,_=``;try{let e=_o(V(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=wj({skillsRoot:r,name:n.toName,body:v,frontmatter:{name:n.toName,description:y}});b.ok||(m=b.error);let x=[];if(!m)try{x=Cge({base:n.scope===`project`?c:jo,scope:n.scope,fromName:n.fromName,toName:n.toName})}catch(e){P(`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&&(pr(),be?.refreshInPlaceSkillDirs(),Ls(r,n.fromName,n.toName).then(()=>Rs(x,n.toName)).catch(()=>{}),vr());let S=ls(R(r,n.fromName),n.scope),C=ls(R(r,n.toName),n.scope),w=qs(r,n.toName);if(await zo(n.scope,n.fromName,n.toName,{localHash:w}),n.scope===`project`&&(cr(e,or(`skill`,``,n.toName),`skill-rename: ${S} -> ${C}`,[{from:S,to:C}]),(async()=>{try{await Er(`skill-move`);let t=await Ys(Zs(e),C);t!==void 0&&await Vo(`project`,n.toName,{baselineRef:t})}catch(e){P(`skill-move`).warn({err:e,toName:n.toName},`deferred shadow flush / revert-baseline failed — Revert stays unarmed until the next flush`)}})()),a){await UN(a,n.fromName),yL(n.fromName,a,f,oL(n.scope));let e=R(r,n.toName);if(f.length>0){let t=dL(e,n.toName,a,f,Lo(n.scope,n.toName),oL(n.scope));await HN(a,n.toName,{...o,scope:n.scope,hosts:t,scripts:o?.scripts??iL(e,n.toName).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}}if(Le?.(`files`),m){let e=m.code===`WRITE_ERROR`;G(t,e?500:400,e?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,`Skill renamed to "${n.toName}", but updating its SKILL.md failed — its name frontmatter may not match the new directory.`,{handler:`skill-move`,detail:m.code,cause:Error(m.message)});return}q(t,200,lee,{from:S,to:C,committed:p.committed},{handler:`skill-move`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill.`,{handler:`skill-move`,cause:e})}},{handler:`skill-move`,method:`POST`}),Es=K(ste,async(e,t,n)=>{let{name:r,home:i}=n;if(!Do(r,t,`skill-edit-external`))return;let a;try{a=H(i)}catch{G(t,404,`urn:ok:error:not-found`,`Skill directory not found.`,{handler:`skill-edit-external`,detail:`HOME_NOT_FOUND`});return}if(!Vu(a).isDirectory()||!B(R(a,`SKILL.md`))){G(t,400,`urn:ok:error:invalid-request`,`Not a skill directory (no SKILL.md).`,{handler:`skill-edit-external`});return}Dz(r,a),q(t,200,Xee,{docName:Vee(r)},{handler:`skill-edit-external`})},{handler:`skill-edit-external`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`skill-edit-external`})}),Ds=K($ee,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-move-scope`});return}let{name:r,fromScope:i,toScope:a}=n;if(!Do(r,t,`skill-move-scope`))return;if(fk(r)){G(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){G(t,400,`urn:ok:error:invalid-request`,`Source and destination scope are the same.`,{handler:`skill-move-scope`});return}if(a===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`Cannot move to project scope — no project root is resolved for this server.`,{handler:`skill-move-scope`,detail:`NO_PROJECT_ROOT`});return}let{root:o,dirRel:s,realDir:l}=xs(i,r),u=R(o,r),d=(()=>{try{return H(u)}catch{return u}})(),f=a===`project`?c:jo,p=jL(f,a);if(p===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available in the destination scope.`,{handler:`skill-move-scope`,detail:`NO_USABLE_SKILL_HOME`});return}let m=R(f,p),h=R(m,r);if(l===null||!B(u)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-move-scope`,detail:`Skill "${r}" not found in ${i} scope.`});return}if(R(l)===R(h)||B(h)&&H(l)===H(h)){G(t,409,`urn:ok:error:doc-already-exists`,`The source and destination resolve to the same skill directory.`,{handler:`skill-move-scope`,detail:`SAME_STORAGE`});return}if(Fo(a,r)!==null||B(h)){G(t,409,`urn:ok:error:doc-already-exists`,`A ${a} skill named "${r}" already exists.`,{handler:`skill-move-scope`});return}let g=ds(i),_=ds(a),v=g?BN(g).skills[r]:void 0,y=i===`project`?c:jo,b=(i===`project`?PL(c):FL(jo)).find(e=>e.name===r),x=b?F(b.dir):null,S=x===null?[]:Object.entries(TL(y,i)).filter(([,e])=>e===x).map(([e])=>e),C=[...new Set([...v?nL(v.hosts):[],...b?nL(b.hosts):[],...nL(S)])];await Sn([...new Set([...i===`project`?[`${s}/SKILL`]:[],Qa(i,r),Qa(a,r)])],`renamed`),Vs(m,{recursive:!0}),Ws(d,h,{recursive:!0,dereference:!0}),Ss(i,r);let w=kj({skillsRoot:o,name:r});if(w.ok&&d!==u){let e=L((()=>{try{return H(y)}catch{return y}})(),d);e!==``&&!e.startsWith(`..`)&&!pu(e)&&Gs(d,{recursive:!0,force:!0})}if(!w.ok){kj({skillsRoot:m,name:r}),G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill (source removal failed); rolled back the copy.`,{handler:`skill-move-scope`,detail:w.error.code,cause:Error(w.error.message)});return}let T=await Bo(i,a,r);if(g&&await fs(g,r,i,b?{purge:{contentHash:b.contentHash}}:{}),g&&await hye(g,r),_&&C.length>0){let e=dL(h,r,_,C,Lo(a,n.name),oL(a));await HN(_,r,{...v,scope:a,hosts:e,scripts:v?.scripts??iL(h,r).hasScripts,installedAt:v?.installedAt??new Date().toISOString()})}if(T&&await Vo(a,r,{localHash:qs(m,r)}),i===`project`||a===`project`){cr(e,i===`project`?s:L(c,h).split(z).join(`/`),`skill-move-scope: ${i} -> ${a} ${r}`);let t=L(c,h).split(z).join(`/`),n=!!T&&a===`project`;(async()=>{try{if(await Er(`skill-move-scope`),n){let n=await Ys(Zs(e),t);n!==void 0&&await Vo(a,r,{baselineRef:n})}}catch(e){P(`skill-move-scope`).warn({err:e,name:r},`deferred shadow flush / revert-baseline failed — Revert stays unarmed until the next flush`)}})()}if(!B(I(h,`SKILL.md`))){G(t,500,`urn:ok:error:internal-server-error`,`The move did not leave a readable skill at the destination; nothing was reported as moved.`,{handler:`skill-move-scope`,detail:L(f,h).split(z).join(`/`)});return}pr(),be?.refreshInPlaceSkillDirs(),vr(),Le?.(`files`),q(t,200,oee,{scope:a,path:L(f,h).split(z).join(`/`)},{handler:`skill-move-scope`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to move skill across scopes.`,{handler:`skill-move-scope`,cause:e})}},{handler:`skill-move-scope`,method:`POST`}),Os=K(zi,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-duplicate`});return}if(!Do(n.name,t,`skill-duplicate`)||!Do(n.toName,t,`skill-duplicate`)||os(n.toName,t,`skill-duplicate`))return;let r=Fo(n.scope,n.name);if(r===null||!B(I(r,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-duplicate`,detail:`SOURCE_NOT_FOUND`});return}let i=n.scope===`project`?c:jo,a=jL(i,n.scope);if(a===null){G(t,400,`urn:ok:error:invalid-request`,`No agent skill host is available.`,{handler:`skill-duplicate`,detail:`NO_USABLE_SKILL_HOME`});return}let o=R(i,a),s=R(o,n.toName);if(Fo(n.scope,n.toName)!==null||B(s)){G(t,409,`urn:ok:error:doc-already-exists`,`A ${n.scope} skill named "${n.toName}" already exists.`,{handler:`skill-duplicate`});return}let l=_D(r);if(!l){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-duplicate`});return}Vs(o,{recursive:!0}),Ws(r,s,{recursive:!0,dereference:!0});let{fenced:u,body:d}=ea(l.skillMd),f=Ma(u,{name:n.toName});if(!f.ok){kj({skillsRoot:o,name:n.toName}),G(t,400,`urn:ok:error:invalid-request`,`Failed to write duplicated skill.`,{handler:`skill-duplicate`,detail:f.error.kind});return}try{Xs(I(s,`SKILL.md`),`${f.nextFenced}${d}`)}catch(e){throw kj({skillsRoot:o,name:n.toName}),e}if(n.scope===`project`){let t=L(c,s).split(z).join(`/`);cr(e,or(`skill`,``,n.toName),`skill-duplicate: ${n.name} -> ${t}`),Er(`skill-duplicate`)}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,ute,{name:n.toName},{handler:`skill-duplicate`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to duplicate skill.`,{handler:`skill-duplicate`,cause:e})}},{handler:`skill-duplicate`,method:`POST`}),As=RW({GET:vs,PUT:bs,POST:Ts,DELETE:ws},{handler:`skill`});function js(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 Ms(e,t,n){return e===`project`&&t===`reference`&&n.toLowerCase().endsWith(`.md`)}function Ns(e,t){let n=R(e,t),r=L(c,e).split(z).join(`/`),i;try{i=Iu(n,{recursive:!0,encoding:`utf-8`})}catch{return[]}return i.filter(e=>/\.md$/i.test(e)).map(e=>`${r}/${t}/${e.split(z).join(`/`).replace(/\.md$/i,``)}`)}function Ps(e,t){let n=t.replace(/\.md$/i,``);return`${xi(e).replace(/\/SKILL$/,``)}/${n}`}function Fs(e,t){let n=R(e,t,`references`);if(!B(n))return[];let r=[],i=(e,t)=>{for(let n of Iu(e,{withFileTypes:!0})){let a=t?`${t}/${n.name}`:n.name;n.isDirectory()?i(R(e,n.name),a):n.isFile()&&n.name.toLowerCase().endsWith(`.md`)&&r.push(`references/${a}`)}};return i(n,``),r}async function Ls(e,t,n){if(!k){P(`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=V(n,`utf-8`)}catch(i){P(`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=L(c,e).split(z).join(`/`),o=(e,t)=>`${a}/${e}/${t?t.replace(/\.mdx?$/i,``):`SKILL`}`;i(o(t),o(n),R(e,n,`SKILL.md`));for(let r of Fs(e,n))i(o(t,r),o(n,r),R(e,n,r));await k.recordDirectMutations(r)}async function Rs(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 zs=RW({GET:K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`name`)??``;if(!Do(r,t,`skill-file-get`))return;let i=Oo(n.searchParams.get(`scope`),t,`skill-file-get`);if(i===null)return;let a=n.searchParams.get(`path`)??``,o=fk(r)?i===`global`?jo:j:void 0,s=n.searchParams.get(`host`)??void 0,c=o?Ko(o,r,s):null;if(a===``||a.includes(`\0`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill file path.`,{handler:`skill-file-get`});return}let l=(c&&a===`SKILL.md`?`reference`:js(a))??`reference`,u=s,d=o?c?.dir??null:Fo(i,r,u);if(d===null&&u!==void 0){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-get`,detail:`No skill "${r}" (${i}) in ${u}.`});return}let f=d??R(Po(i),r),p=R(f,a);if(p!==f&&!p.startsWith(`${f}${z}`)){G(t,400,`urn:ok:error:invalid-request`,`Skill file path escapes the skill dir.`,{handler:`skill-file-get`});return}let m=p,h=a;if(!B(m)){let e=a.match(/^(.*)\.(?:md|mdx)$/),n=e?co.map(t=>`${e[1]}${t}`).find(e=>e!==a&&B(R(f,e))):void 0;if(n===void 0){G(t,404,`urn:ok:error:not-found`,`Skill file not found.`,{handler:`skill-file-get`,detail:`${a} not found in skill "${r}" (${i}).`});return}h=n,m=R(f,n)}let g=await td(m);if(g.includes(0)){G(t,415,`urn:ok:error:invalid-request`,`Skill file is binary — only text bundle files are readable via MCP.`,{handler:`skill-file-get`});return}q(t,200,zee,{path:h.replace(/\\/g,`/`),kind:l,text:g.toString(`utf-8`)},{handler:`skill-file-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill file.`,{handler:`skill-file-get`,cause:e})}},{handler:`skill-file-get`,method:`GET`,skipBodyParse:!0}),PUT:K(gte,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-put`});return}if(!Do(n.name,t,`skill-file-put`)||os(n.name,t,`skill-file-put`))return;let r=js(n.path);if(r===null){G(t,400,`urn:ok:error:invalid-request`,"Invalid skill file path (must name a file inside the skill dir, no `..`).",{handler:`skill-file-put`});return}if(Buffer.byteLength(n.content,`utf-8`)>262144){G(t,400,`urn:ok:error:invalid-request`,`Skill file exceeds the 256 KB per-file cap.`,{handler:`skill-file-put`});return}let i=Fo(n.scope,n.name);if(i===null||!B(I(i,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-put`,detail:`Create skill "${n.name}" before adding bundle files.`});return}let a=L(n.scope===`project`?c:jo,i).split(z).join(`/`),o=n.path.replace(/\\/g,`/`),l=Ms(n.scope,r,o),u;if(l){let e=`${a}/${o.replace(/\.mdx?$/i,``)}`;if(ho(e,`skill-file-put`,t))return;if(u=!B(R(i,o)),u&&Ej(i)>=50){G(t,400,`urn:ok:error:invalid-request`,`Skill "${n.name}" already holds 50 bundle files (the cap) — delete one before adding another.`,{handler:`skill-file-put`});return}let{agentId:r,agentName:c,colorSeed:l,clientName:d}=Xn(n),f=await s.getSession(e,r,{displayName:c,colorSeed:l,clientName:d});f.dc.document.transact(()=>{nb(f.dc.document,n.content,`agent`)},f.origin);let p=await Vt(e);if(p?.kind===`failure`){qt(t,p.failure,`skill-file-put`);return}if(p?.kind===`divergence`){Jt(t,`skill-file-put`);return}}else{let e=Dj({skillsRoot:F(i),name:n.name,relPath:o,content:n.content});if(!e.ok){let n=e.error.code===`WRITE_ERROR`?500:e.error.code===`SKILL_NOT_FOUND`?404:400;G(t,n,n===500?`urn:ok:error:internal-server-error`:n===404?`urn:ok:error:not-found`:`urn:ok:error:invalid-request`,n===500?`Failed to write skill file.`:`Invalid skill file request.`,{handler:`skill-file-put`,detail:e.error.code,cause:Error(e.error.message)});return}u=e.created}n.scope===`project`&&(cr(e,or(`skill`,``,n.name),`${u?`skill-file-create`:`skill-file-edit`}: ${a}/${o}`),Er(`skill-file-put`)),Le?.(`files`),q(t,200,Cte,{path:o,created:u,kind:r,content:l},{handler:`skill-file-put`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write skill file.`,{handler:`skill-file-put`,cause:e})}},{handler:`skill-file-put`,method:`PUT`}),DELETE:K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams,i=r.get(`name`)??``;if(!Do(i,t,`skill-file-delete`)||os(i,t,`skill-file-delete`))return;let a=Oo(r.get(`scope`),t,`skill-file-delete`);if(a===null)return;let o=(r.get(`path`)??``).replace(/\\/g,`/`),s=js(o);if(s===null){G(t,400,`urn:ok:error:invalid-request`,`Invalid skill file path (must name a file inside the skill dir).`,{handler:`skill-file-delete`});return}let l=Io(n,me);if(l.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-delete`});return}let u=Fo(a,i),d=u===null?Po(a):F(u),f=R(u??I(d,i),o);if(B(f)&&Ms(a,s,o)){let e=o.replace(/\.md$/i,``);await Sn([u===null?Ps(i,o):`${L(c,u).split(z).join(`/`)}/${e}`],`deleted-upstream`)}else if(a===`project`&&u!==null&&B(f)&&Vu(f).isDirectory()){let e=Ns(u,o);e.length>0&&await Sn(e,`deleted-upstream`)}let p=Oj({skillsRoot:d,name:i,relPath:o});if(!p.ok){let e=p.error.code===`UNLINK_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,e===500?`Failed to delete skill file.`:`Invalid skill file request.`,{handler:`skill-file-delete`,detail:p.error.code,cause:Error(p.error.message)});return}p.existed&&a===`project`&&(cr(l,or(`skill`,``,i),`skill-file-delete: ${u===null?`${i}/${o}`:`${L(c,u).split(z).join(`/`)}/${o}`}`),Er(`skill-file-delete`)),p.existed&&Le?.(`files`),q(t,200,qi,{path:o,existed:p.existed,kind:s},{handler:`skill-file-delete`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to delete skill file.`,{handler:`skill-file-delete`,cause:e})}},{handler:`skill-file-delete`,method:`DELETE`,skipBodyParse:!0})},{handler:`skill-file`}),Bs=K(Gee,async(e,t,n)=>{try{if(!Do(n.name,t,`skill-file-rename`)||os(n.name,t,`skill-file-rename`))return;let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-file-rename`});return}let r=n.from.replace(/\\/g,`/`),i=n.to.replace(/\\/g,`/`),a=js(r),o=js(i);if(a===null||o===null){G(t,400,`urn:ok:error:invalid-request`,`Both paths must stay inside the skill dir.`,{handler:`skill-file-rename`,detail:a===null?r:i});return}let s=Fo(n.scope,n.name);if(s===null){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-file-rename`});return}let l=F(s),u=Ms(n.scope,a,r),d=Ms(n.scope,o,i),f=L(c,s).split(z).join(`/`),p=u?`${f}/${r.replace(/\.md$/i,``)}`:null,m=d?`${f}/${i.replace(/\.md$/i,``)}`:null;if(p!==null&&ho(p,`skill-file-rename`,t))return;if(p!==null)await Sn([p],`deleted-upstream`);else if(n.scope===`project`){let e=R(s,r);if(B(e)&&Vu(e).isDirectory()){let e=Ns(s,r);e.length>0&&await Sn(e,`deleted-upstream`)}}let h=Pde({skillsRoot:l,name:n.name,relPath:r,toRelPath:i});if(!h.ok){let e=h.error.code===`RENAME_FAILED`?500:400;G(t,e,e===500?`urn:ok:error:internal-server-error`:`urn:ok:error:invalid-request`,h.error.message,{handler:`skill-file-rename`,detail:h.error.code});return}if(k){let e=[];if(p!==null&&m!==null)try{e.push({kind:`rename`,oldDocumentName:p,newDocumentName:m,markdown:V(R(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:V(R(l,n.name,i),`utf-8`)})}catch{}await an(e,`skill-file-rename`)}n.scope===`project`&&(cr(e,or(`skill`,``,n.name),`skill-file-rename: ${n.name}/${r} -> ${i}`),Er(`skill-file-rename`)),Le?.(`files`),q(t,200,xte,{from:r,to:i,...p===null?{}:{fromDocName:p},...m===null?{}:{toDocName:m}},{handler:`skill-file-rename`})}catch(e){Y.error({err:e},`[skill-file-rename] failed`),t.headersSent||G(t,500,`urn:ok:error:internal-server-error`,`Failed to rename skill file.`,{handler:`skill-file-rename`})}},{handler:`skill-file-rename`,method:`POST`});function Hs(e){let t=/github\.com[/:]([\w.-]+)\//.exec(e);return t?t[1]:void 0}let Ks=iJ;function qs(e,t){return _D(R(e,t))?.contentHash}async function Ys(e,t){let n=ee?.current;if(!(!n||!e))try{let r=Sx(n),i=async()=>{let t=(await r.raw(`for-each-ref`,`--format=%(refname)`,`refs/wip/`)).trim().split(`
1187
- `).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 Er(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let Zs=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function Qs(e){try{let t=ds(e.scope);if(!t)return;let n=aL(t);if(n.length===0)return;let r=dL(R(e.skillsRoot,e.name),e.name,t,n,`copy`,oL(e.scope));if(r.length===0)return;await HN(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){Y.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function $s(e,t){if(t.ok){q(e,200,See,t.body,{handler:`skill-import`});return}G(e,t.status,t.urn,t.title,{handler:`skill-import`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}let ec=cye({contentDir:c,skillsHome:jo,...j===void 0?{}:{projectDir:j},resolveSkillDirForRead:Fo,parseFrontmatterDoc:_o,attributeOkArtifactWrite:cr,commitOkArtifactWrite:Er,shadowHeadSha:Ys,artifactWriterId:Zs,effectiveInstallMode:Uo,signalFiles:()=>Le?.(`files`)}),tc=bye({contentDir:c,skillsHome:jo,...j===void 0?{}:{projectDir:j},legacyStoreRoot:Oi,effectiveSkillRoot:xs,parseFrontmatterDoc:_o,attributeOkArtifactWrite:cr,commitOkArtifactWrite:Er,shadowHeadSha:Ys,artifactWriterId:Zs,skillArtifactKey:e=>or(`skill`,``,e),captureAndCloseDocuments:Sn,projectImportedSkillCopy:Qs,signalFiles:()=>Le?.(`files`)});function nc(e,t){if(t.ok){q(e,200,wn,t.body,{handler:`skill-reimport`});return}G(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 rc(e,t,n){let r=e===`project`?c:jo,i=(e===`project`?PL(c):FL(jo)).find(e=>e.name===t);return i?R(r,i.dir):R(n,t)}function ic(e,t,n,r){let i=r.skills[t];if(i)return i;let a=rc(e,t,n);return cD(t,_D(a)?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Hye(a)})??Yo(e===`global`?jo:c,t)??ns(t,tf(j??c),a)}let ac=K(yte,async(e,t,n)=>{let r=()=>{};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-import`});return}let i=n.scope,a=null,o,s,c,l,u=n.source;{let e=n.source;try{let i=await DD(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??ZE(d);if(!p){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skill-import`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(rX(t,p,`skill-import`))return;let m=await $E(p);r=m.cleanup,s=m.ref;let h=vD(m.dir);if(h.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skill-import`});return}let g=h[0];if(f){let e=h.find(e=>e.name===f)??h.find(e=>hD(e.dir)?.name===f)??h.find(e=>e.name===Pa[f]);if(!e){G(t,404,`urn:ok:error:not-found`,`Named skill not in source.`,{handler:`skill-import`,detail:`--skill "${f}" not among: ${h.map(e=>e.name).join(`, `)}.`});return}g=e}else if(h.length>1){G(t,400,`urn:ok:error:invalid-request`,"Source has multiple skills; pass `skill` to choose one.",{handler:`skill-import`,detail:h.map(e=>e.name).join(`, `)});return}a=g.dir,l=g.name,o=e,c=i?.publisher??Hs(d)}catch(e){if(e instanceof IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await ec.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Yi(u))&&YI({source:u,skills:[d.body.name]},OI()),pr(),be?.refreshInPlaceSkillDirs(),vr(),Le?.(`files`),$s(t,d)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skill.`,{handler:`skill-import`,cause:e})}finally{r()}},{handler:`skill-import`,method:`POST`}),oc=K(Aee,async(e,t,n)=>{let r=()=>{};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-import-bulk`});return}let i=n.source,a=null,o=null,s=[],c,l,u=i;try{let e=await DD(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??ZE(d);if(!f){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skills-import-bulk`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(rX(t,f,`skills-import-bulk`))return;if(l=e?.publisher??Hs(d),f.kind===`well-known`)a=f,o=await KE(f.origin);else{let e=await $E(f);r=e.cleanup,c=e.ref,s=vD(e.dir)}}catch(e){if(e instanceof IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skills-import-bulk`,cause:e});return}throw e}if(a===null&&s.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skills-import-bulk`});return}let d=[];for(let t of new Set(n.skills)){let r,u,f=()=>{};if(a!==null)try{let e=await $E({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof IE?`not-found`:`failed`,warnings:[],...e instanceof IE?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>_D(e.dir)?.name===t)??s.find(e=>e.name===Pa[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await ec.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){P(`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){P(`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||Yi(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&YI({source:u,skills:e},OI())}pr(),be?.refreshInPlaceSkillDirs(),vr(),Le?.(`files`),q(t,200,Lee,{results:d,imported:d.filter(e=>e.status===`imported`).length,alreadyImported:d.filter(e=>e.status===`already-imported`).length,failed:d.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-import-bulk`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skills.`,{handler:`skills-import-bulk`,cause:e})}finally{r()}},{handler:`skills-import-bulk`,method:`POST`}),sc=8*1024*1024,cc=32*1024*1024;function lc(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=R(e,n);return r!==e&&!r.startsWith(e+z)?null:r}function uc(e){return new Promise((t,n)=>{let r;try{r=wq(e,{files:200,fields:10,fieldSize:2*1024,fileSize:sc})}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>cc){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 fc(e,t){return new Promise((n,r)=>{(0,ZO.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=lc(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Vs(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>sc){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>cc){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Vs(F(n),{recursive:!0}),Xs(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 pc(e,t){let n=ju(I(Xu(),`ok-skill-upload-`)),r=()=>{try{Gs(n,{recursive:!0,force:!0})}catch{}};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){G(t,405,`urn:ok:error:invalid-request`,`Use POST to upload a skill.`,{handler:`skill-upload`});return}let r=new URL(e.url??``,`http://localhost`),i=Oo(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=jk({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},me);if(o.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await uc(e)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){G(t,400,`urn:ok:error:invalid-request`,`No files uploaded.`,{handler:`skill-upload`});return}let c=s.length===1?s[0]:null,l=c&&/\.(zip|skill)$/i.test(c.relPath)?c.relPath:null;if(c&&l)try{await fc(c.data,n)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not unpack the archive.`,{handler:`skill-upload`,cause:e});return}else for(let e of s){let r=lc(n,e.relPath);if(!r){G(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Vs(F(r),{recursive:!0}),Xs(r,e.data)}let u=vD(n);if(u.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){G(t,400,`urn:ok:error:invalid-request`,`Upload contains multiple skills; upload one at a time.`,{handler:`skill-upload`,detail:u.map(e=>e.name).join(`, `)});return}let d=u[0];$s(t,await ec.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let mc=K(kt,async(e,t,n)=>{try{let e=Po(n.scope);if(!Do(n.name,t,`skill-install`))return;if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`Cannot install — no project root is resolved for this server. Skills project into editor host dirs at the project root.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=ds(n.scope),i=R(e,n.name),a=n.scope===`project`?c:jo,o=(n.scope===`project`?PL(c):FL(jo)).find(e=>e.name===n.name),s=fk(n.name)?is(n.name,n.scope):null,l=o?R(a,o.dir):B(i)||s===null?i:F(s);if(!B(l)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-install`,detail:`Skill "${n.name}" not found in ${n.scope} scope — create it with write({ skill }) first.`});return}await Vt(n.scope===`project`?`${L(a,l).split(z).join(`/`)}/SKILL`:Qa(n.scope,n.name));let u=iL(l,n.name,{allowReservedName:fk(n.name)});if(!u.ok){G(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){G(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=Mo.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:G(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:G(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:G(t,400,`urn:ok:error:invalid-request`,`That copy matches the source — nothing to resolve.`,{handler:`skill-install`,detail:`NOT_A_FORK`});return;case`invalid-new-name`:G(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:G(t,400,`urn:ok:error:invalid-request`,`Name already taken.`,{handler:`skill-install`,detail:e.toName});return;default:throw Error(`Unhandled fork outcome: ${String(e.kind)}`)}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{name:n.name,hosts:o.hosts.filter(na),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){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before using add/remove.",{handler:`skill-install`,detail:`STORE_BACKED_ADDITIVE`});return}let e=await Mo.applyAddRemove({scope:n.scope,name:n.name,inPlaceEntry:o,...n.add===void 0?{}:{add:n.add},...n.remove===void 0?{}:{remove:n.remove}});if(!e.ok){e.kind===`remove-source`?G(t,400,`urn:ok:error:invalid-request`,`"${e.sourceId}" is the skill's SOURCE — its folder is the skill itself, so removing it would delete the skill. Move the source first (\`source\`) or use \`delete\`.`,{handler:`skill-install`,detail:`REMOVE_SOURCE`}):G(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}p=e.targets.filter(na),m.push(...e.rootAdds),h.push(...e.rootRemoves)}if(d&&!o){let e=await Mo.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:l,newSource:d});if(!e.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.kind===`source-occupied`?e.reason:e.target});return}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{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`?j:jo;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot place — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await Qr.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:l,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?G(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):G(t,409,`urn:ok:error:doc-already-exists`,`Something already exists at that path — placement never overwrites.`,{handler:`skill-install`,detail:`PLACE_DEST_EXISTS`});return}`alreadyAtSource`in r||Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{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`?j:jo;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot remove a placement — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await Qr.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:l});if(!r.ok)switch(r.kind){case`not-recorded`:G(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:G(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — remove it manually if you mean it.`,{handler:`skill-install`,detail:r.path});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — it can't be removed here.`,{handler:`skill-install`,detail:r.path});return;default:throw Error(`Unhandled unplace outcome: ${String(r.kind)}`)}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before converting one.",{handler:`skill-install`,detail:`STORE_BACKED_CONVERT`});return}let{target:e,mode:i}=n.convert,a=n.scope===`project`?j:jo,s=await Qr.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`:G(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — move the source instead of converting it.`,{handler:`skill-install`,detail:e});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — resolve the fork before converting it.`,{handler:`skill-install`,detail:e});return;case`not-installed`:G(t,404,`urn:ok:error:not-found`,`The skill is not installed there.`,{handler:`skill-install`,detail:e});return;default:throw Error(`Unhandled convert outcome: ${String(s.kind)}`)}Le?.(`files`),q(t,200,Rn,{name:n.name,hosts:[...o.hosts],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let g=n.scope===`global`?p===void 0?QI(jo).map(e=>e.editorId):en.filter(e=>p?.some(t=>t===e)):p===void 0?aL(r):rr.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`&&B(I(jo,`.agents`)):p.includes(`agents`))?[...g,`agents`]:[...g],a=n.scope===`project`?j:jo,s=f===void 0?Uo(n.scope,n.name,o):f?`link`:`copy`;if(d){let e=await Mo.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`?G(t,400,`urn:ok:error:invalid-request`,`Source target must be an editor id, "agents", or a project-relative skills root.`,{handler:`skill-install`,detail:e.target}):G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.reason});return}Le?.(`files`),q(t,200,Rn,{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 Mo.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){G(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),Le?.(`files`),q(t,200,Rn,{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=nL(BN(r).skills[n.name]?.hosts??[]).filter(e=>!g.includes(e));y.length>0&&yL(n.name,r,y,oL(n.scope));let b=I(r,...eD),x=B(b)?V(b,`utf-8`):null,S=x===null?null:iD(x);x!==null&&S===null&&Y.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=dL(l,n.name,r,g,w,oL(n.scope));T.length===0?await UN(r,n.name):await HN(r,n.name,{hosts:T,scope:n.scope,scripts:u.hasScripts,installedAt:new Date().toISOString(),projection:w}),Le?.(`files`),q(t,200,Rn,{name:n.name,hosts:T,scripts:u.hasScripts,warnings:_,warningCodes:v},{handler:`skill-install`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),hc=K(pn,async(e,t,n)=>{try{if(!Do(n.name,t,`skill-uninstall`))return;let e=ds(n.scope);if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot uninstall — no project root is resolved for this server.`,{handler:`skill-uninstall`,detail:`NO_PROJECT_ROOT`});return}let r=await fs(e,n.name,n.scope);Le?.(`files`),q(t,200,Pee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),vc=RW({GET:K(Kt,async(e,t)=>{try{let e=aL(j??``),n=(e,t)=>{let n=fye(e)[t.root];return n===void 0||(n.expect===`link`?t.state===`linked`&&t.target===n.target:t.state===`own`)?{}:{drift:!0,expected:n.expect===`link`?`link → ${n.target}`:`own folder`}};q(t,200,xr,{targets:e,configured:!1,folders:[...j?VY(c,DL(c,`project`)).filter(e=>kL(c,`project`,e.root)).map(e=>({...e,scope:`project`,...n(c,e)})):[],...VY(jo,DL(jo,`global`)).filter(e=>kL(jo,`global`,e.root)).map(e=>({...e,scope:`global`,...n(jo,e)}))]},{handler:`skill-targets-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill targets.`,{handler:`skill-targets-get`,cause:e})}},{handler:`skill-targets-get`,method:`GET`,skipBodyParse:!0}),PUT:K(Tee,async(e,t,n)=>{try{{let e=n.folderAction,r=e.scope===`project`?c:jo;if(e.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`Cannot manage skill folders — no project root is resolved for this server.`,{handler:`skill-targets-put`,detail:`NO_PROJECT_ROOT`});return}if(e.action===`add-root`){let n=e.root.replace(/\\/g,`/`).replace(/\/+$/g,``),i=n.split(`/`).filter(e=>e!==``&&e!==`.`);if(n===``||n.startsWith(`/`)||n.startsWith(`~`)||/^[A-Za-z]:/.test(n)||n.includes(`\0`)||i.length===0||i.some(e=>e===`..`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid folder path.`,{handler:`skill-targets-put`,detail:e.root});return}await pye(r,i.join(`/`)),Le?.(`files`),q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[]},{handler:`skill-targets-put`});return}let i=new Set(DL(r,e.scope).map(e=>e.root).filter(e=>!e.startsWith(`/`)&&!e.split(`/`).includes(`..`))),a=e.action===`link`?e.target??``:e.root;if(!i.has(e.root)||e.action===`link`&&(!i.has(a)||e.root===a)){G(t,400,`urn:ok:error:invalid-request`,`Folder and target must be distinct standard skills roots.`,{handler:`skill-targets-put`,detail:`${e.root} -> ${a}`});return}if(e.action===`link`&&e.preview){let n=UY({base:r,folderRel:e.root,targetRootRel:a}),i=n.kind===`plan`?n.plan:null;q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[],preview:{moves:i?[...i.linkedBundlesToMove.map(({name:e})=>e),...i.toMove]:[],drops:i?.toDrop??[],removes:i?.removes??[],replaces:i?.liveDestLinks??[],conflicts:n.kind===`conflicts`?n.conflicts:[],strays:n.kind===`stray-entries`?n.strays:[]}},{handler:`skill-targets-put`});return}let o=e.action===`link`?dye({base:r,folderRel:e.root,targetRootRel:a}):WY({base:r,folderRel:e.root,...e.exclude===void 0?{}:{exclude:e.exclude}});if(!o.ok){G(t,409,`urn:ok:error:invalid-request`,o.reason===`conflicts`?`Cannot link — differing skills exist in both folders: ${(o.conflicts??[]).join(`, `)}. Resolve them first.`:o.reason===`stray-entries`?`Cannot link — the folder holds non-skill entries: ${(o.strays??[]).join(`, `)}.`:o.reason===`partial-move`?`The merge stopped partway (${(o.moved??[]).length} skill(s) already moved — nothing lost). Run Link again to resume and complete it. (${o.error??``})`:o.reason===`not-linked`?`That folder is not a symlink — nothing to unlink.`:`That folder cannot be linked (it is already a link or the same directory).`,{handler:`skill-targets-put`,detail:o.reason});return}await qY(r,e.root,e.action===`link`?{expect:`link`,target:a}:{expect:`own`}),Le?.(`files`),q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[],folder:{moved:o.moved,dropped:o.dropped,linked:o.linked}},{handler:`skill-targets-put`});return}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to set skill targets.`,{handler:`skill-targets-put`,cause:e})}},{handler:`skill-targets-put`,method:`PUT`})},{handler:`skill-targets`}),yc=K(vee,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!Do(n.name,t,`skill-restore`)||os(n.name,t,`skill-restore`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is no version history to restore from.`,{handler:`skill-restore`,detail:`GLOBAL_SCOPE_UNVERSIONED`});return}let r=ee?.current;if(!r){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to restore from.`,{handler:`skill-restore`,detail:`NO_SHADOW_REPO`});return}let i=await aX({shadow:r,contentDir:c,contentRoot:O??`.`,name:n.name,version:n.version,skillDirRel:Wo(n.name)});if(!i.ok){Ho(t,i,`skill-restore`);return}let a=[],o=iL(R(c,Wo(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),cr(e,or(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await Er(`skill-restore`),Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Ete,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),bc=K(on,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!Do(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?jo:c,{root:a,dirRel:o,realDir:s}=xs(n.scope,n.name);if(s===null||!B(R(i,o,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let l=I(n.scope===`global`?jo:j,...eD),u=ic(n.scope,n.name,a,Ks(l));if(!u){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded import source to update from.`,{handler:`skill-reimport`,detail:`NOT_IMPORTED`});return}if(n.setAutoUpdate!==void 0){await aJ(l,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??u,autoUpdate:n.setAutoUpdate}}})),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,wn,{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=Pa[e],a=await DD(u.source,e).catch(async e=>{if(i===void 0)throw e;return DD(u.source,i)}),o=a?.source??yO(u.source,u.pluginProvider),s=a?.skill??u.skill,c=a?.spec??ZE(o);if(!c){G(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:u.source});return}if(rX(t,c,`skill-reimport`))return;let l=await $E(c);r=l.cleanup,d=l.ref;let p=vD(l.dir),m=$Y(p,{...s===void 0?{}:{recordedSkill:s},localName:n.name,frontmatterNameOf:e=>_D(e)?.name});if(!m){G(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 IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!f){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let p=await tc.runSkillReimport({acquiredDir:f,name:n.name,scope:n.scope,entry:u,lockPath:l,ref:d,actor:e,...n.dryRun===void 0?{}:{dryRun:n.dryRun}});pr(),be?.refreshInPlaceSkillDirs(),vr(),nc(t,p)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),Sc=K(Ue,async(e,t,n)=>{try{if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-reimport-bulk`,detail:`NO_PROJECT_ROOT`});return}let r=jk(n,me);if(r.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-reimport-bulk`});return}let i=I(n.scope===`global`?jo:j,...eD),a=Ks(i),o=[],{bySource:s,unrecorded:c}=yye([...new Set(n.names)].filter(e=>Eo(e)?!0:(o.push({requested:e,status:`failed`,warnings:[],error:`INVALID_NAME`}),!1)),e=>ic(n.scope,e,xs(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 DD(t.source,e).catch(async n=>{let r=Pa[e];if(r===void 0)throw n;return DD(t.source,r)}),r=n?.source??yO(t.source,a.skills[t.names[0]]?.pluginProvider),i=n?.spec??ZE(r);if(!i||nX(i)){for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:`INVALID_SOURCE`});continue}let u=await $E(i);s=u.cleanup,c=u.ref,l=vD(u.dir)}catch(n){P(`skills-reimport-bulk`).warn({source:t.source,err:n,requestId:_S(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=ic(n.scope,s,xs(n.scope,s).root,a);if(!t){o.push({requested:s,status:`not-found`,warnings:[]});continue}let u=$Y(l,{...t.skill===void 0?{}:{recordedSkill:t.skill},localName:s,frontmatterNameOf:e=>_D(e)?.name});if(!u){o.push({requested:s,status:`not-found`,source:t.source,warnings:[]});continue}try{let a=await tc.runSkillReimport({acquiredDir:u.dir,name:s,scope:n.scope,entry:t,lockPath:i,ref:c,actor:r});if(!a.ok){P(`skills-reimport-bulk`).warn({skill:s,err:a.cause,detail:a.detail,requestId:_S(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){P(`skills-reimport-bulk`).warn({skill:s,err:n,requestId:_S(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()}}q(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{pr(),be?.refreshInPlaceSkillDirs(),pr(),await be?.rebuildIgnorePatterns()}catch(e){P(`skills-reimport-bulk`).warn({err:e},`bulk update: ignore-pattern rebuild failed after a reported success`)}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to update skills.`,{handler:`skills-reimport-bulk`,cause:e})}},{handler:`skills-reimport-bulk`,method:`POST`}),Cc=K(it,async(e,t,n)=>{try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!Do(n.name,t,`skill-revert`)||os(n.name,t,`skill-revert`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is nothing to revert to.`,{handler:`skill-revert`,detail:`GLOBAL_SCOPE`});return}let r=I(j,...eD),i=Ks(r).skills[n.name];if(!i?.baselineRef){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded install baseline to revert to.`,{handler:`skill-revert`,detail:`NO_BASELINE`});return}let a=ee?.current;if(!a){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to revert from.`,{handler:`skill-revert`,detail:`NO_SHADOW_REPO`});return}let o=await aX({shadow:a,contentDir:c,contentRoot:O??`.`,name:n.name,version:i.baselineRef,skillDirRel:Wo(n.name)});if(!o.ok){Ho(t,o,`skill-revert`);return}cr(e,or(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await Er(`skill-revert`);let s=R(c,Wo(n.name),`..`),l=qs(s,n.name);await aJ(r,e=>aD(e,n.name,{...e.skills[n.name]??i,...l===void 0?{}:{localHash:l}})),s===Po(`project`)&&await Qs({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),Le?.(`files`),q(t,200,kr,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`});function wc(e){return e===`autocomplete`||e===`full_text`||e===`omnibar`?e:`omnibar`}function Tc(e){let t=typeof e==`string`?e.split(`,`):Array.isArray(e)?e:void 0;if(!t)return;let n=t.filter(e=>e===`page`||e===`folder`||e===`content`||e===`file`);return n.length>0?n:void 0}function Ec(e){if(typeof e==`boolean`)return e;if(e===`true`)return!0;if(e===`false`)return!1}function Dc(e){return e===`omnibar`||e===`mcp`||e===`http`?e:`http`}let Ac=oye({contentDir:c,projectDir:j,getAllFilesIndex:h,getFileIndexGeneration:_,getSearchMaxEntries:Xye,semanticSearch:De,getSemanticSimilarityFloor:Oe,ready:Ce,getProjectSkillsRoot:()=>Po(`project`),parseFrontmatterDoc:_o});Ac.prewarm();let jc=RW({GET:K(Kt,lV(async(e,t)=>{let n=kc(e),r=n.get(`limit`),i=n.get(`query`)??``,a=wc(n.get(`intent`)),o=cs(n.get(`ranking`)),s=Tc(n.get(`scope`)??n.get(`scopes`)),c=Ec(n.get(`semantic`)),l=Dc(n.get(`source`)),u=r===null?void 0:Number(r);if(i.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-get`});return}q(t,200,Ea,await Ac.buildSearchResponse({query:i,intent:a,ranking:o,scopes:s,limit:u,semanticParam:c,source:l}),{handler:`search-get`})},{handler:`search-get`,title:`Failed to search workspace.`}),{handler:`search-get`,method:`GET`,skipBodyParse:!0}),POST:K(qee,lV(async(e,t,n)=>{let r=typeof n.query==`string`?n.query:``,i=wc(n.intent),a=cs(n.ranking),o=Tc(n.scopes??n.scope),s=typeof n.limit==`number`?n.limit:void 0,c=Ec(n.semantic),l=Dc(n.source);if(r.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-post`});return}q(t,200,Ea,await Ac.buildSearchResponse({query:r,intent:i,ranking:a,scopes:o,limit:s,semanticParam:c,source:l}),{handler:`search-post`})},{handler:`search-post`,title:`Failed to search workspace.`}),{handler:`search-post`,method:`POST`})},{handler:`search`}),Mc=K(Kt,lV(async(e,t)=>{q(t,200,bt,{...await KI(qu())},{handler:`skill-install-state`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`skill-install-state`,title:`Failed to read skill install state.`}),{handler:`skill-install-state`,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:`skill-install-state`})});async function Nc(e,t){if(r(e,t,{handler:`handoff`}))try{await wpe(e,t,{contentDir:c,platform:process.platform,isSchemeRegistered:ct.probeWithCache})}catch(n){t.headersSent||(Y.error({err:n,requestId:_S(e)},`[handoff] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function Pc(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await SN(e,t,{contentDir:c,platform:process.platform})}catch(n){t.headersSent||(Y.error({err:n,requestId:_S(e)},`[spawn-cursor] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let Fc=K(ree,async(e,t,n)=>{try{if(!j){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!ghe(e,n.kind)){nI(`invalid-path`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`invalid-path`},{handler:eI});return}let r=bhe(j);if(r===null){if(fI(j).kind===`no-remote`){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}nI(`detached-head`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`detached-head`},{handler:eI});return}let i=fI(j);if(i.kind===`no-remote`){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}if(i.kind===`non-github`){nI(`non-github-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`non-github-remote`},{handler:eI});return}if(!khe(j,r)){nI(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),q(t,200,nr,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:eI});return}let a=sZ(j,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`?_he(i.host,i.owner,i.repo,r,o):tI(i.host,i.owner,i.repo,r,o);let l;try{let e=a===``?0:Iee(tI(i.host,i.owner,i.repo,r,a)).targetSegments.length;l=`https://openknowledge.ai/d/${Oee(s,e)}`}catch(e){if(!(e instanceof Mee))throw e;nI(`unsupported-share-url`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`unsupported-share-url`},{handler:eI});return}let u=await vhe(j,r,o,n.kind);nI(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),q(t,200,nr,{ok:!0,shareUrl:l,sharedUrl:s,branch:r,freshness:u},{handler:eI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eI,cause:e})}},{handler:eI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:eI})}),Ic=K(Kt,async(e,t)=>{try{if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:EB});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(!Fee(r)){G(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:EB});return}if(!wB(i,a)){G(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:EB});return}q(t,200,uee,await TB(j,r,i,a),{handler:EB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:EB,cause:e})}},{handler:EB,method:`GET`,skipBodyParse:!0});function Lc(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 Rc=K(Eee,async(e,t,n)=>{try{if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:TI});return}if(!wB(n.path,n.kind)){G(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:TI});return}let e=await Lhe(j,n.branch,n.path,n.kind,{credentialConfig:gc(le,{resetAmbient:mI(j)})});q(t,200,Gt,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:Lc(n.path,e.renamedTo,n.contentRootDepth),{handler:TI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:TI,cause:e})}},{handler:TI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:TI})}),zc=K(Gn,async(e,t,n)=>{if(jk(n,me).kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:jB});return}if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:jB});return}try{q(t,200,Lt,await dc(()=>NB(j,n.branch,{fastForward:n.fastForward===!0,credentialConfig:gc(le,{resetAmbient:mI(j)})})),{handler:jB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:jB,cause:e})}},{handler:jB,method:`POST`});async function Bc(e){let[t,...n]=le,r=[...n,...e];return await new Promise((e,n)=>{let i=su(t,r,mw({...Li,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},vI),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 ${vI}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=wI(Buffer.concat(c).toString(`utf-8`)).slice(0,500);Y.warn({code:t,stderr:e},`[share] subprocess exited code=${t} stderr=${e}`)}e({stdout:r,code:t})}),i.on(`error`,e=>{clearTimeout(o),n(e)})})}let Vc=K(Kt,async(e,t)=>{if(!ze.tryAcquire(`/api/share/publish/owners`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:hI,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Bc([`share`,`owners`,`--json`]),n=Ahe(xI(e));CI(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),q(t,200,Ar,n,{handler:hI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:hI,cause:e})}finally{ze.release(`/api/share/publish/owners`)}},{handler:hI,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:hI})}),Hc=K(Kt,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!bI(r)||!yI(i)){G(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:gI});return}if(!ze.tryAcquire(`/api/share/publish/name-check`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:gI,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Bc([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=jhe(xI(e));CI(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),q(t,200,at,n,{handler:gI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:gI,cause:e})}finally{ze.release(`/api/share/publish/name-check`)}},{handler:gI,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:gI})}),Uc=K(Qt,async(e,t,n)=>{if(!j){CI(`publish-create`,`no-project`),q(t,200,Sr,{ok:!1,error:`no-project`},{handler:_I});return}if(!bI(n.owner)||!yI(n.name)){G(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:_I});return}if(!ze.tryAcquire(`/api/share/publish`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:_I,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,j,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await Bc(e),i=Phe(xI(r));CI(`publish-create`,i.ok?`ok`:i.error),i.ok&&ce?.()?.refreshRemote().catch(()=>{}),q(t,200,Sr,i,{handler:_I})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:_I,cause:e})}finally{ze.release(`/api/share/publish`)}},{handler:_I,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:_I})}),Wc=K(cte,async(e,t,n)=>{try{let e=P(`renderer`);n.droppedSinceLastFlush!==void 0&&n.droppedSinceLastFlush>0&&e.warn({source:`renderer-console`,transport:`web`,event:`client-log-entries-dropped`,droppedSinceLastFlush:n.droppedSinceLastFlush},`client-log-entries-dropped`);for(let t of n.entries)try{e[t.level]({...t.fields,source:`renderer-console`,transport:`web`,...t.sourceId?{sourceId:t.sourceId}:{},...t.lineNumber===void 0?{}:{lineNumber:t.lineNumber},...t.ts===void 0?{}:{clientTs:t.ts}},t.event??t.message)}catch{}q(t,200,bo,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`client-logs`,cause:e})}},{handler:`client-logs`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`client-logs`})}),Gc=j?sA(j):null;async function Kc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n={collabUrl:Ak(e.headers),previewUrl:null,port:Gc?xc(Gc)?.port??0:0,singleFile:Ne};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,bte,n,{handler:`api-config`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config`,extraHeaders:{Allow:`GET, HEAD`}})}async function qc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n=Ie?.()??{diagnostics:[]};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,fe,n,{handler:`api-config-diagnostics`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config-diagnostics`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config-diagnostics`,extraHeaders:{Allow:`GET, HEAD`}})}let Jc=`local-op-embeddings-set-key`,Yc=`local-op-embeddings-clear-key`,Xc=`/api/local-op/embeddings`;function Zc(){let e=Ae?.();return{projectDir:j??c,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let Qc=K(fee,async(e,t,n)=>{if(!ze.tryAcquire(Xc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Jc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=Zc();await new yM(ke).setForProject(e,r,n.key),De?.reloadCredential(),q(t,200,yt,{keyPresent:!0},{handler:Jc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:Jc,cause:e})}finally{ze.release(Xc)}},{handler:Jc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Jc})}),$c=K(Kt,async(e,t)=>{if(!ze.tryAcquire(Xc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Yc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:n}=Zc();await new yM(ke).clearForProject(e,n),De?.reloadCredential(),q(t,200,yt,{keyPresent:!1},{handler:Yc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:Yc,cause:e})}finally{ze.release(Xc)}},{handler:Yc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Yc})}),el=`local-op-embeddings-test`,tl=`/api/local-op/embeddings/test`,nl=K(Kt,async(e,t)=>{if(!ze.tryAcquire(tl)){G(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:el,extraHeaders:{"Retry-After":`5`}});return}try{let e=Ae?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await fM(new yM(ke),j??c,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await xfe({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};q(t,200,nte,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:el,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:el,cause:e})}finally{ze.release(tl)}},{handler:el,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:el})}),rl=K(Kt,async(e,t)=>{try{let e=!1,n=!1,r=!1,i=0;if(De){let t=De.getStatus();e=t.enabled,n=t.ready,r=t.capable,i=t.embeddedCount}let a=Ae?.()?.baseUrl??`https://api.openai.com/v1`,o=await fM(new yM(ke),j??c,a),s=o.apiKey!==null,l=!s&&o.keyless,u=s?o.source:null,d=o.apiKey&&o.apiKey.length>=8?o.apiKey.slice(-4):null,f=0;for(let[e]of p())!iS(e)&&!aS(e)&&!Ir(e)&&(f+=1);q(t,200,mte,{enabled:e,keyPresent:s,keyNotRequired:l,keySource:u,keyHint:d,ready:n,capable:r,embedded:i,total:f},{handler:`semantic-status`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`semantic-status`,cause:e})}},{handler:`semantic-status`,method:`GET`,skipBodyParse:!0}),il=0;function al(){il+=1,Le?.(`lint-config`)}let ol=()=>`${il} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function sl(e,t){let n=je?.()??Ve;try{let r=await ja(e,sF(c,n,{docName:t,projectDir:j??c,onProblem:e=>Y.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Me?.()??`warning`;if(k&&a!==`off`&&!dS(t)){await ln(t,e,`lint-validation`);let r=IF({projectDir:j??c,contentDir:c,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:rn,docFilePathFor:e=>iZ(c,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:iZ(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 Y.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function cl(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=uF({projectDir:j??c,contentDir:c});return AP(t.schemas,n)}let ll=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`);if(n!==null&&(n===``||!gZ(n))){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`lint-config`});return}let r=je?.()??Ve,i=[],a=iF(c,n??void 0,e=>i.push(e)),o=oF(j??c,aF(r,a),e=>i.push(e));n===null&&i.push(...cl(o)),q(t,200,va,{effective:o,configFile:a?.file??null,configProblems:i},{handler:`lint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve lint config.`,{handler:`lint-config`,cause:e})}},{handler:`lint-config`,method:`GET`,skipBodyParse:!0}),ul=K(cee,async(e,t,n)=>{let r;try{r=bF(R(c),n.ruleId,n.value)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){G(t,409,`urn:ok:error:config-not-writable`,`The native markdownlint config (${r.file}) is an executable module OK will not rewrite — edit it directly or convert it to JSON/JSONC/YAML.`,{handler:`markdownlint-config`});return}al();try{let e=je?.()??Ve,n=[],r=iF(c,void 0,e=>n.push(e)),i=oF(j??c,aF(e,r),e=>n.push(e));n.push(...cl(i)),q(t,200,va,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The markdownlint rule was saved, but the effective config could not be re-read.`,{handler:`markdownlint-config`,cause:e})}},{handler:`markdownlint-config`,method:`POST`}),dl=K(Et,async(e,t,n)=>{let r;try{let e=R(j??c),t=n.parentPath??[];r=n.delete?Cme(e,n.file):n.field!==void 0&&n.removeField?xme(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Sme(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?yme(e,n.file,n.field,n.constraint,t):bme(e,n.file)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){G(t,409,`urn:ok:error:config-not-writable`,`The frontmatter schema (${r.file}) was not written: ${r.reason}.`,{handler:`frontmatter-schema`});return}(r.action===`created`||r.action===`deleted`)&&Le?.(`files`),al();try{let e=je?.()??Ve,n=[],r=iF(c,void 0,e=>n.push(e)),i=oF(j??c,aF(e,r),e=>n.push(e));n.push(...cl(i)),q(t,200,va,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The schema was saved, but the effective config could not be re-read.`,{handler:`frontmatter-schema`,cause:e})}},{handler:`frontmatter-schema`,method:`POST`}),fl=K(Kt,async(e,t)=>{try{let e=R(j??c),{schemas:n,truncated:r}=Zpe(e),i=new Set(n),a=!1;if(be!==void 0){let t=JX({contentDir:c,contentFilter:be,dirFilter:null,maxEntries:2e4}),n=await t.next();for(;!n.done;){let r=n.value,a=r.kind===`asset`?r.path:void 0;if(a!==void 0&&ut(a)){let t=L(e,R(c,a));!t.startsWith(`..`)&&!pu(t)&&i.add(t)}n=await t.next()}a=n.value.truncated}let o=[...i].sort((e,t)=>e.localeCompare(t));q(t,200,_t,{schemas:o.slice(0,500),truncated:r||a||o.length>500},{handler:`frontmatter-schemas-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list frontmatter schemas.`,{handler:`frontmatter-schemas-list`,cause:e})}},{handler:`frontmatter-schemas-list`,method:`GET`,skipBodyParse:!0}),pl=e=>{let t=e.replace(/\.(md|mdx)$/i,``),n=o.documents.get(t);return n===void 0?null:n.getText(`source`).toString()},ml=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`)??``;if(n===``||!gZ(n)){G(t,400,`urn:ok:error:invalid-request`,`Missing or invalid doc.`,{handler:`lint`});return}let r=iZ(c,n);if(r===null){G(t,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint`});return}let i=je?.()??Ve,a=[],o=await lF({projectDir:j??c,contentDir:c,baseConfig:i,docRelPath:r,onConfigProblem:e=>a.push(e),liveSourceFor:pl});q(t,200,Je,a.length>0?{...o,warnings:a}:o,{handler:`lint`})}catch(e){if(e instanceof iN){G(t,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint`});return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to lint document.`,{handler:`lint`,cause:e})}},{handler:`lint`,method:`GET`,skipBodyParse:!0}),hl=new EP,gl=tX();function _l(e,t,n){let r=`${n} ${ol()} ${t??``}`;return gl.run(r,()=>Hme(e,{targetPath:t})).promise}function vl(e,t){G(e,409,`urn:ok:error:audit-superseded`,`The lint configuration or branch changed while the audit was running; re-run it.`,{handler:t})}let yl=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`path`),r=n===null||n===``?void 0:n;if(r!==void 0&&!YX(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`lint-audit`});return}let i=je?.()??Ve;q(t,200,In,await dF({projectDir:j??c,contentDir:c,baseConfig:i,targetPath:r,liveSourceFor:pl,cache:hl,auditGeneration:ol}),{handler:`lint-audit`})}catch(e){if(e instanceof cF){vl(t,`lint-audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`lint-audit`,cause:e})}},{handler:`lint-audit`,method:`GET`,skipBodyParse:!0}),bl=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`path`),i=r===null||r===``?void 0:r;if(i!==void 0&&!YX(i)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`audit`});return}let a=n.searchParams.get(`doc`),o=a===null||a===``?void 0:a;if(o!==void 0){if(i!==void 0||!YX(o)){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`audit`});return}i=iZ(c,o)??`${o}.md`}let s=je?.()??Ve,l=await _l(IF({projectDir:j??c,contentDir:c,baseConfig:s,liveSourceFor:pl,derivedDocumentIndex:k??null,linksValidation:Me?.(),admittedDocNames:rn,docFilePathFor:e=>iZ(c,e),cache:hl,auditGeneration:ol}),i,EP.fingerprintConfig(s));if(n.searchParams.get(`counts`)===`1`){q(t,200,mee,Vme(l),{handler:`audit`});return}q(t,200,Pt,l,{handler:`audit`})}catch(e){if(e instanceof cF){vl(t,`audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`audit`,cause:e})}},{handler:`audit`,method:`GET`,skipBodyParse:!0}),xl=K(pa,async(t,n,r)=>{try{let t=ZX(r.docName,n,`lint-fix`);if(t===null)return;let i=Dt(t),a=jk(r,me);if(a.kind===`invalid-summary`){G(n,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`lint-fix`});return}let o=a.kind===`anonymous`?`principal-anonymous`:a.writerId,l=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(iS(i)||aS(i)){G(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=iZ(c,i);if(f===null){G(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}pN(R(c,f),c);let p=je?.()??Ve,{stored:m}=$n(a.summary),h=await s.getSession(i,o,{displayName:l,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),{cfg:_,before:v,fixed:y}=await gme({projectDir:j??c,contentDir:c,baseConfig:p,docRelPath:f,source:g}),b=v,x;if(y!==g){try{let t=Zo(d),n=Jr[t]??rs(u??o);oe?.setPresence(o,{displayName:l,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{cw(h.dc.document,y,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,ow(h))},h.origin),a.kind!==`anonymous`&&qj(i,o,l,u,void 0,a.kind===`agent`?Qn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{oe?.touchMode(o,`idle`)}let t=await Vt(i);if(t?.kind===`failure`){qt(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){Jt(n,`lint-fix`);return}Bt(i,`lint-fix`);try{b=await ja(h.dc.document.getText(`source`).toString(),_,f)}catch(e){x=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,Y.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),b=v}}let S=b.filter(e=>e.severity===`error`).length,C=b.length-S;q(n,200,aee,{file:f,fixedCount:Math.max(0,v.length-b.length),diagnostics:b,errorCount:S,warningCount:C,...x?{warning:x}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof iN){G(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof TS){ES(n,e,`lint-fix`);return}if(e instanceof AS){NS(n,e,`lint-fix`);return}if(e instanceof dw){G(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}Y.error({err:e},`[lint-fix] handler failed`),G(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),Sl=`link-preview`,Cl=new XG({cacheDir:Ne?null:R(j??c,`.ok`,`local`,`link-previews`)}),wl=null,Tl=()=>(wl??=Cl.init(),wl),El=Pe??VG;async function Dl(e){let t=await El(e);return t.ok?{ok:!0,metadata:await KG({html:new TextDecoder().decode(t.body),requestUrl:e,finalUrl:t.finalUrl,fetch:El})}:{ok:!1,reason:t.reason}}let Ol=()=>{try{return Fe?.()===!0}catch{return!1}},kl=K(Cn,async(e,t,n)=>{try{if(!Ol()){Y.debug({outcome:`disabled`},`[link-preview] request outcome`),q(t,200,tr,{ok:!1,reason:`disabled`},{handler:Sl});return}await Tl();let e=!1,r=await Cl.load(n.url,()=>(e=!0,Dl(n.url)));Cl.persist();let i=r.ok?r:{ok:!1,reason:`blocked`};Y.debug({outcome:e?r.ok?`fetched-ok`:`fallback`:`cache-hit`},`[link-preview] request outcome`),q(t,200,tr,i,{handler:Sl})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Sl,cause:e})}},{handler:Sl,method:`POST`,preBodyGate:(e,t)=>{let n=$G({origin:e.headers.origin,contentType:e.headers[`content-type`]});return n.ok?!0:(n.reason===`origin`?G(t,403,`urn:ok:error:invalid-origin`,`Origin not allowed.`,{handler:Sl}):G(t,400,`urn:ok:error:invalid-request`,`Content-Type must be application/json.`,{handler:Sl}),!1)}}),Al=Pue({service:mt,getPrincipal:me,onChanged:()=>Le?.(`comments`)}),jl=RW({GET:Al.list,POST:Al.create},{handler:`comments`}),Ml=RW({GET:Al.read,POST:Al.mutate,DELETE:Al.remove},{handler:`comment`}),{handleSkillsSearch:Nl,handleSkillsPopular:Pl,handleSkillsPublisher:Fl,handleSkillsDetail:Il,handleSkillsPreview:Ll,handleSkillsDiscover:Rl,handleSkillsResolveRef:zl}=Dye({log:Y,skillsHome:jo,projectDir:j,contentDir:c,resolveSkillDirForRead:Fo}),Bl={"/api/config":Kc,"/api/config/diagnostics":qc,"/api/generated-index/settings":RW({GET:K(Kt,async(e,t)=>{if(!u){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-get`});return}q(t,200,mZ,u(),{handler:`generated-index-settings-get`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-get`,method:`GET`,skipBodyParse:!0}),POST:K(ube,async(e,t,n)=>{if(!d){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-set`});return}q(t,200,mZ,await d(n.enabled),{handler:`generated-index-settings-set`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-set`,method:`POST`})},{handler:`generated-index-settings`}),"/api/comments":jl,"/api/comment":Ml,"/api/asset":fi,"/api/asset-text":mi,"/api/comment-counts":Vr,"/api/link-preview":kl,"/api/folder-config":so,"/api/saved-themes":lo,"/api/saved-theme":po,"/api/template":So,"/api/template/import":wo,"/api/templates":go,"/api/skill":As,"/api/skill-file":zs,"/api/skill-file/rename":Bs,"/api/skills":_s,"/api/skills/installed":zr,"/api/skills/search":Nl,"/api/skills/popular":Pl,"/api/skills/publisher":Fl,"/api/skills/detail":Il,"/api/skills/preview":Ll,"/api/skills/discover":Rl,"/api/skills/resolve-ref":zl,"/api/skill/import":ac,"/api/skills/import-bulk":oc,"/api/skill/edit-external":Es,"/api/skill/duplicate":Os,"/api/skill/move-scope":Ds,"/api/skill-upload":pc,"/api/skill/install":mc,"/api/skill/uninstall":hc,"/api/skill/restore":yc,"/api/skill/reimport":bc,"/api/skills/reimport-bulk":Sc,"/api/skill/revert":Cc,"/api/skill/track-in-git":hs,"/api/skill-targets":vc,"/api/search":jc,"/api/semantic-status":rl,"/api/lint/config":ll,"/api/lint/markdownlint-config":ul,"/api/lint/frontmatter-schema":dl,"/api/lint/frontmatter-schemas":fl,"/api/lint":ml,"/api/lint/audit":yl,"/api/lint/fix":xl,"/api/audit":bl,"/api/create-page":gi,"/api/create-folder":yi,"/api/duplicate-path":bi,"/api/rename-path":wi,"/api/delete-path":Di,"/api/trash/cleanup":Ai,"/api/upload":ji,"/api/agent-write":Nr,"/api/agent-write-md":Pr,"/api/agent-write-batch":Fr,"/api/frontmatter-patch":Rr,"/api/agent-patch":Hr,"/api/agent-undo":Ur,"/api/agent-activity":Wr,"/api/agent-burst-diff":Gr,"/api/save-version":$r,"/api/history":ei,"/api/rollback":ni,"/api/__embed-detect":ci,"/api/server-info":ri,"/api/acp/catalog":oi,"/api/share/construct-url":Fc,"/api/share/target-status":Rc,"/api/git/branch-info":Ic,"/api/git/checkout":zc,"/api/share/publish/owners":Vc,"/api/share/publish/name-check":Hc,"/api/share/publish":Uc,"/api/principal":si,"/api/rescue":hi,"/api/workspace":li,"/api/sync/status":Ha,"/api/sync/trigger":Ua,"/api/sync/conflicts":Ga,"/api/sync/conflict-content":qa,"/api/sync/resolve-conflict":Ka,"/api/local-op/clone":Wi,"/api/local-op/ok-init":Qi,"/api/local-op/auth/login":ya,"/api/local-op/auth/status":Da,"/api/local-op/auth/pat":ka,"/api/local-op/auth/gh-login":Sa,"/api/local-op/auth/cancel":wa,"/api/local-op/auth/repos":Fa,"/api/local-op/auth/signout":Ra,"/api/local-op/auth/set-identity":Va,"/api/local-op/embeddings/set-key":Qc,"/api/local-op/embeddings/clear-key":$c,"/api/local-op/embeddings/test":nl,"/api/installed-agents":to,"/api/spawn-cursor":Pc,"/api/handoff":Nc,"/api/install-skill":eo,"/api/skill/install-state":Mc,"/api/seed/plan":Ya,"/api/seed/apply":Xa,"/api/seed/install-pack-skill":Za,"/api/seed/packs":$a,"/api/client-logs":Wc};E&&(Bl[`/api/test-reset`]=qr,Bl[`/api/test-flush-git`]=Kr,Bl[`/api/test-rescan-backlinks`]=Yr,Bl[`/api/test-rescan-files`]=Xr);let Vl=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./api/generated-index/settings./api/create-page./api/create-folder./api/duplicate-path./api/rename-path./api/delete-path./api/trash/cleanup./api/agent-write./api/agent-write-md./api/agent-write-batch./api/frontmatter-patch./api/agent-patch./api/agent-undo./api/save-version./api/rollback./api/sync/trigger./api/sync/resolve-conflict./api/git/checkout./api/test-reset./api/test-flush-git./api/test-rescan-backlinks./api/test-rescan-files./api/install-skill./api/folder-config./api/saved-theme./api/template./api/template/import./api/skill./api/skill-file./api/skill-file/rename./api/skill/import./api/skills/import-bulk./api/skill/duplicate./api/skill/move-scope./api/skill/edit-external./api/skill-upload./api/skill/install./api/skill/uninstall./api/skill/restore./api/skill/reimport./api/skills/reimport-bulk./api/skill/revert./api/skill/track-in-git./api/skills/preview./api/skills/discover./api/skills/resolve-ref./api/skill-targets./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Hl=[`/api/local-op/`],Ul=cV({log:Y,policy:n,ephemeral:Ne,table:{resolve(e){let t=Bl[e];if(t)return{template:e,dispatch:(e,n)=>t(e,n)};if(e.startsWith(`/api/history/`)){let t=e.slice(13);return{template:`/api/history/:sha`,dispatch:t?async(e,n)=>{await ti(e,n,decodeURIComponent(t))}:void 0}}return{template:`/api/*`}},isMutating:e=>Vl.has(e)||Hl.some(t=>e.startsWith(t))}}),Wl=PW({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:p,isSafeDocName:gZ,readPageTitleForDocName:ht,readPageTitleForLinkedDocName:gt,readFrontmatterMetadataForLinkedDocName:Ct,collectAdmittedDocNames:rn,resolveAlias:Dt,respondToDerivedIndexQueryFailure:dn}),Gl=[Wl,zW({hocuspocus:o,agentPresenceBroadcaster:oe,isAllowedWorkspaceHostHeader:i,log:Y}),He],Kl=Gl.flatMap(e=>[...e.paths]);sW(Kl,Bl);let ql=Gl.map(e=>cV({log:Y,policy:n,ephemeral:Ne,table:e.table})),Jl={paths:Kl,dispatch:async(e,t)=>{for(let n of ql)if(await n(e,t))return!0;return!1}},Yl=new Set([`/api/search`,`/api/delete-path`,`/api/create-folder`,`/api/save-version`,`/api/skill/import`,`/api/skill/install`,`/api/upload`,`/api/orphans`,`/api/hubs`,`/api/backlinks`,`/api/forward-links`,`/api/dead-links`,`/api/suggest-links`]);for(let e of Yl)if(Bl[e]===void 0&&Wl.table.resolve(e)?.dispatch===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await Ul(e,t)},nativeApi:Jl,localApi:LW({resolve:e=>{if(!Yl.has(e))return;let t=Bl[e];return t===void 0?Wl.table.resolve(e)?.dispatch:t}})}}function vZ(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=fu(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&&!QB(f,o)){G(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!eV(e.headers.host,o)){G(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:qB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=AY(u,r);d||s.setHeader(`Content-Disposition`,p.disposition),p.csp!==null&&s.setHeader(`Content-Security-Policy`,p.csp),p.sandboxedHtml&&s.setHeader(`Cache-Control`,`no-store`),n(e,s,()=>{if(s.headersSent)return;let e=ke.has(u);if(!e&&(i.has(u)||a.has(u))){s.statusCode=404,s.end();return}e&&(s.removeHeader(`Content-Security-Policy`),s.removeHeader(`Content-Disposition`),s.removeHeader(`X-Content-Type-Options`),s.removeHeader(`Cache-Control`)),c()})}}function yZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function fbe(e){let t;try{t=Iu(e.contentDir,{withFileTypes:!0})}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&qx(n.name,ne)&&e.basenameIndex.add(n.name)}async function bZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await nd(i,{withFileTypes:!0})}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=I(i,o.name),s=lN(L(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await ed(a)}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await rd(a)}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!uN(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await id(i)}catch(t){let n=yZ(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()&&qx(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()&&qx(a,de)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const xZ=w({principalId:v().optional(),tabSessionId:v().optional(),expectedServerInstanceId:v().optional(),expectedBranch:v().optional(),expectedDocLineageEpoch:v().optional(),clientProtocolVersion:M().optional(),clientRuntimeVersion:v().optional(),clientKind:v().optional()}).loose(),SZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function CZ(e){return SZ.includes(e)}function wZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function pbe(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!CZ(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 TZ=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=wZ(e,this.payload)}};function EZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=xZ.safeParse(t);return n.success?n.data:void 0}var DZ=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};function OZ(e,t,n=``){e=yd(`.`,e);let r=gd(e),i=0,a,o;for(;i<r.length;i++)a=vd(e,r[i]),o=_d(a),o.isDirectory()?OZ(a,t,vd(n,r[i])):t(vd(n,r[i]),a,o)}function mbe(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=Hte.parse(i.substring(1))))}return e._parsedUrl={pathname:r,search:i,query:a,hash:o,raw:t}}const hbe=()=>{};function gbe(e,t){for(let n=0;n<t.length;n++)if(t[n].test(e))return!0}function kZ(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 _be(e,t,n){let r=0,i,a=kZ(t,n);for(;r<a.length;r++)if(i=e[a[r]])return i}function vbe(e,t,n,r){let i=0,a=kZ(n,r),o,s,c,l;for(;i<a.length;i++)if(o=mu(I(e,c=a[i])),o.startsWith(e)&&xu.existsSync(o)){if(s=xu.statSync(o),s.isDirectory())continue;return l=AZ(c,s,t),l[`Cache-Control`]=t?`no-cache`:`no-store`,{abs:o,stats:s,headers:l}}}function ybe(e,t){return t.statusCode=404,t.end()}function bbe(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),xu.createReadStream(n,s).pipe(t)}const xbe={".br":`br`,".gz":`gzip`};function AZ(e,t,n){let r=xbe[e.slice(-3)],i=qve(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 jZ(e,t={}){e=R(e||`.`);let n=t.onNoMatch||ybe,r=t.setHeaders||hbe,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||OZ(e,(e,n,r)=>{if(!/\.well-known[\\+\/]/.test(e)&&!t.dotfiles&&/(^\.|[\\+|\/+]\.)/.test(e))return;let i=AZ(e,r,l);f&&(i[`Cache-Control`]=f),s[`/`+e.normalize().replace(/\\+/g,`/`)]={abs:n,stats:r,headers:i}});let p=t.dev?vbe.bind(0,e+z,l):_be.bind(0,s);return function(e,t,s){let f=[``],m=mbe(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&&!gbe(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),bbe(e,t,g.abs,g.stats,g.headers)}}const MZ=P(`conflict-storage`);var NZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=I(sA(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!B(this.storePath)){this.conflicts=[];return}try{let e=V(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){MZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){MZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=F(this.storePath);B(e)||Au(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return Uu(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return MZ.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-BdfJ9JDW.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=R(this.projectDir),r=R(t,e);if(!uN(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);RL(r,t),Xs(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`]),MZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await bb(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){MZ.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}),MZ.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=R(this.projectDir),i=R(r,e.file);if(!uN(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(RL(i,r),t){case`mine`:break;case`theirs`:{if(!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let{createGitInstance:t}=await import(`./git-handle-BdfJ9JDW.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);RL(i,r),Xs(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Xs(i,n,`utf-8`);break;case`delete`:B(i)&&Is(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function Sbe(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 Cbe(e,t){let n=sA(e);try{Au(n,{recursive:!0}),Uu(I(n,ka),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=ic(e);Au(F(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`};Uu(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const PZ=new Map;let FZ=!1;function wbe(e,t){try{let n=Sbe(e,t);for(let e of PZ.keys())Cbe(e,n)}catch{}}function Tbe(e){PZ.set(e,(PZ.get(e)??0)+1),FZ||(FZ=!0,process.on(`uncaughtExceptionMonitor`,wbe));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=PZ.get(e)??0;n<=1?PZ.delete(e):PZ.set(e,n-1)}}}function IZ(e){let t=e.scheduler??Go,n=e.warnBeforeMs??3e5,r=0,i=null,a=null,o=!1,s=!1;function c(){i!==null&&(t.clearTimeout(i),i=null),a!==null&&(t.clearTimeout(a),a=null)}function l(){c(),!(s||o)&&r===0&&(n>0&&n<e.thresholdMs&&(a=t.setTimeout(()=>{a=null,r===0&&!o&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),i=t.setTimeout(()=>{if(i=null,!(s||o)&&r===0){o=!0,e.log?.info({webSocketClientCount:0},`idle shutdown firing`);try{let t=e.onShutdown();t&&typeof t.then==`function`&&t.catch(t=>{e.log?.error({err:t},`idle shutdown handler rejected`)})}catch(t){e.log?.error({err:t},`idle shutdown handler threw`)}}},e.thresholdMs))}let u=(e,t)=>{e.url?.startsWith(`/collab`)&&(r++,c(),t.once(`close`,()=>{r--,r<0&&(r=0),r===0&&l()}))};return e.httpServer.on(`upgrade`,u),l(),{detach:()=>{s||(s=!0,e.httpServer.off(`upgrade`,u),c())}}}function LZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function RZ(e){if(!B(e))return{};let t;try{t=(0,XO.parse)(V(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(!LZ(t))return{};let n=t.telemetry;if(!LZ(n))return{};let r=n.localSink;return LZ(r)?r:{}}function zZ(e){return typeof e==`boolean`?e:void 0}function Ebe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function BZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function VZ(e){if(LZ(e))return Ebe(e.maxBytes)}function Dbe(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=RZ(Bs(`project`,e.projectDir)),n=RZ(Bs(`project-local`,e.projectDir));if((zZ(n.enabled)??zZ(t.enabled)??!0)===!1)return null;let r=VZ(n.spans)??VZ(t.spans)??52428800,a=VZ(n.logs)??VZ(t.logs)??26214400,o=BZ(n.attributeDenylist)??BZ(t.attributeDenylist)??i;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:o},logs:{projectDir:e.projectDir,maxBytes:a}}}var HZ;(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})(HZ||={});var Obe;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Obe||={});const UZ=HZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),WZ=e=>{switch(typeof e){case`undefined`:return UZ.undefined;case`string`:return UZ.string;case`number`:return Number.isNaN(e)?UZ.nan:UZ.number;case`boolean`:return UZ.boolean;case`function`:return UZ.function;case`bigint`:return UZ.bigint;case`symbol`:return UZ.symbol;case`object`:return Array.isArray(e)?UZ.array:e===null?UZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?UZ.promise:typeof Map<`u`&&e instanceof Map?UZ.map:typeof Set<`u`&&e instanceof Set?UZ.set:typeof Date<`u`&&e instanceof Date?UZ.date:UZ.object;default:return UZ.unknown}},X=HZ.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 GZ=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,HZ.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()}};GZ.create=e=>new GZ(e);const KZ=(e,t)=>{let n;switch(e.code){case X.invalid_type:n=e.received===UZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case X.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,HZ.jsonStringifyReplacer)}`;break;case X.unrecognized_keys:n=`Unrecognized key(s) in object: ${HZ.joinValues(e.keys,`, `)}`;break;case X.invalid_union:n=`Invalid input`;break;case X.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${HZ.joinValues(e.options)}`;break;case X.invalid_enum_value:n=`Invalid enum value. Expected ${HZ.joinValues(e.options)}, received '${e.received}'`;break;case X.invalid_arguments:n=`Invalid function arguments`;break;case X.invalid_return_type:n=`Invalid function return type`;break;case X.invalid_date:n=`Invalid date`;break;case X.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:HZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case X.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case X.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case X.custom:n=`Invalid input`;break;case X.invalid_intersection_types:n=`Intersection results could not be merged`;break;case X.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case X.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,HZ.assertNever(e)}return{message:n}};let kbe=KZ;function qZ(){return kbe}const JZ=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 YZ(e,t){let n=qZ(),r=JZ({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===KZ?void 0:KZ].filter(e=>!!e)});e.common.issues.push(r)}var XZ=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 ZZ;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 ZZ;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 ZZ=Object.freeze({status:`aborted`}),QZ=e=>({status:`dirty`,value:e}),$Z=e=>({status:`valid`,value:e}),eQ=e=>e.status===`aborted`,tQ=e=>e.status===`dirty`,nQ=e=>e.status===`valid`,rQ=e=>typeof Promise<`u`&&e instanceof Promise;var iQ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(iQ||={});var aQ=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 oQ=(e,t)=>{if(nQ(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 GZ(e.common.issues);return this._error=t,this._error}}};function sQ(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 cQ=class{get description(){return this._def.description}_getType(e){return WZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:WZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new XZ,ctx:{common:e.parent.common,data:e.data,parsedType:WZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(rQ(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:WZ(e)};return oQ(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:WZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return nQ(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=>nQ(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:WZ(e)},r=this._parse({data:e,path:n.path,parent:n});return oQ(n,await(rQ(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:X.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new BQ({schema:this,typeName:Z.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return VQ.create(this,this._def)}nullable(){return HQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wQ.create(this)}promise(){return zQ.create(this,this._def)}or(e){return DQ.create([this,e],this._def)}and(e){return AQ.create(this,e,this._def)}transform(e){return new BQ({...sQ(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new UQ({...sQ(this._def),innerType:this,defaultValue:t,typeName:Z.ZodDefault})}brand(){return new KQ({typeName:Z.ZodBranded,type:this,...sQ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new WQ({...sQ(this._def),innerType:this,catchValue:t,typeName:Z.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return qQ.create(this,e)}readonly(){return JQ.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Abe=/^c[^\s-]{8,}$/i,jbe=/^[0-9a-z]+$/,Mbe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Nbe=/^[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,Pbe=/^[a-z0-9_-]{21}$/i,Fbe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ibe=/^[-+]?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)?)??$/,Lbe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let lQ;const Rbe=/^(?:(?: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])$/,zbe=/^(?:(?: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])$/,Bbe=/^(([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]))$/,Vbe=/^(([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])$/,Hbe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ube=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,uQ=`((\\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])))`,Wbe=RegExp(`^${uQ}$`);function dQ(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 Gbe(e){return RegExp(`^${dQ(e)}$`)}function Kbe(e){let t=`${uQ}T${dQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function qbe(e,t){return!!((t===`v4`||!t)&&Rbe.test(e)||(t===`v6`||!t)&&Bbe.test(e))}function Jbe(e,t){if(!Fbe.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 Ybe(e,t){return!!((t===`v4`||!t)&&zbe.test(e)||(t===`v6`||!t)&&Vbe.test(e))}var fQ=class e extends cQ{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==UZ.string){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.string,received:t.parsedType}),ZZ}let t=new XZ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?YZ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&YZ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Lbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`email`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)lQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),lQ.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`emoji`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)Nbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`uuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Pbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`nanoid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Abe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)jbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cuid2`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Mbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`ulid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),YZ(n,{validation:`url`,code:X.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`regex`,code:X.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Kbe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Wbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Gbe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ibe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`duration`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?qbe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`ip`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Jbe(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`jwt`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Ybe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cidr`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Hbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`base64`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Ube.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`base64url`,code:X.invalid_string,message:r.message}),t.dirty()):HZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:X.invalid_string,...iQ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...iQ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...iQ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...iQ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...iQ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...iQ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...iQ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...iQ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...iQ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...iQ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...iQ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...iQ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...iQ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...iQ.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,...iQ.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,...iQ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...iQ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...iQ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...iQ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...iQ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...iQ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...iQ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...iQ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...iQ.errToObj(t)})}nonempty(e){return this.min(1,iQ.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}};fQ.create=e=>new fQ({checks:[],typeName:Z.ZodString,coerce:e?.coerce??!1,...sQ(e)});function Xbe(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 pQ=class e extends cQ{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)!==UZ.number){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.number,received:t.parsedType}),ZZ}let t,n=new XZ;for(let r of this._def.checks)r.kind===`int`?HZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Xbe(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_finite,message:r.message}),n.dirty()):HZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,iQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,iQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,iQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,iQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:iQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:iQ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:iQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:iQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:iQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:iQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:iQ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:iQ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:iQ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:iQ.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`&&HZ.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)}};pQ.create=e=>new pQ({checks:[],typeName:Z.ZodNumber,coerce:e?.coerce||!1,...sQ(e)});var mQ=class e extends cQ{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)!==UZ.bigint)return this._getInvalidInput(e);let t,n=new XZ;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),YZ(t,{code:X.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):HZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.bigint,received:t.parsedType}),ZZ}gte(e,t){return this.setLimit(`min`,e,!0,iQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,iQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,iQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,iQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:iQ.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:iQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:iQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:iQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:iQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:iQ.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}};mQ.create=e=>new mQ({checks:[],typeName:Z.ZodBigInt,coerce:e?.coerce??!1,...sQ(e)});var hQ=class extends cQ{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==UZ.boolean){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.boolean,received:t.parsedType}),ZZ}return $Z(e.data)}};hQ.create=e=>new hQ({typeName:Z.ZodBoolean,coerce:e?.coerce||!1,...sQ(e)});var gQ=class e extends cQ{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==UZ.date){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.date,received:t.parsedType}),ZZ}if(Number.isNaN(e.data.getTime()))return YZ(this._getOrReturnCtx(e),{code:X.invalid_date}),ZZ;let t=new XZ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):HZ.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:iQ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:iQ.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)}};gQ.create=e=>new gQ({checks:[],coerce:e?.coerce||!1,typeName:Z.ZodDate,...sQ(e)});var _Q=class extends cQ{_parse(e){if(this._getType(e)!==UZ.symbol){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.symbol,received:t.parsedType}),ZZ}return $Z(e.data)}};_Q.create=e=>new _Q({typeName:Z.ZodSymbol,...sQ(e)});var vQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.undefined){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.undefined,received:t.parsedType}),ZZ}return $Z(e.data)}};vQ.create=e=>new vQ({typeName:Z.ZodUndefined,...sQ(e)});var yQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.null){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.null,received:t.parsedType}),ZZ}return $Z(e.data)}};yQ.create=e=>new yQ({typeName:Z.ZodNull,...sQ(e)});var bQ=class extends cQ{constructor(){super(...arguments),this._any=!0}_parse(e){return $Z(e.data)}};bQ.create=e=>new bQ({typeName:Z.ZodAny,...sQ(e)});var xQ=class extends cQ{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $Z(e.data)}};xQ.create=e=>new xQ({typeName:Z.ZodUnknown,...sQ(e)});var SQ=class extends cQ{_parse(e){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.never,received:t.parsedType}),ZZ}};SQ.create=e=>new SQ({typeName:Z.ZodNever,...sQ(e)});var CQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.undefined){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.void,received:t.parsedType}),ZZ}return $Z(e.data)}};CQ.create=e=>new CQ({typeName:Z.ZodVoid,...sQ(e)});var wQ=class e extends cQ{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==UZ.array)return YZ(t,{code:X.invalid_type,expected:UZ.array,received:t.parsedType}),ZZ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(YZ(t,{code:e?X.too_big:X.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(YZ(t,{code:X.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(YZ(t,{code:X.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new aQ(t,e,t.path,n)))).then(e=>XZ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new aQ(t,e,t.path,n)));return XZ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:iQ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:iQ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:iQ.toString(n)}})}nonempty(e){return this.min(1,e)}};wQ.create=(e,t)=>new wQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...sQ(t)});function TQ(e){if(e instanceof EQ){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=VQ.create(TQ(r))}return new EQ({...e._def,shape:()=>t})}else if(e instanceof wQ)return new wQ({...e._def,type:TQ(e.element)});else if(e instanceof VQ)return VQ.create(TQ(e.unwrap()));else if(e instanceof HQ)return HQ.create(TQ(e.unwrap()));else if(e instanceof jQ)return jQ.create(e.items.map(e=>TQ(e)));else return e}var EQ=class e extends cQ{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=HZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==UZ.object){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.object,received:t.parsedType}),ZZ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof SQ&&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 aQ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof SQ){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&&(YZ(n,{code:X.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new aQ(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=>XZ.mergeObjectSync(t,e)):XZ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return iQ.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:iQ.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Z.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of HZ.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 HZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return TQ(this)}partial(t){let n={};for(let e of HZ.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 HZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof VQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return IQ(HZ.objectKeys(this.shape))}};EQ.create=(e,t)=>new EQ({shape:()=>e,unknownKeys:`strip`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)}),EQ.strictCreate=(e,t)=>new EQ({shape:()=>e,unknownKeys:`strict`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)}),EQ.lazycreate=(e,t)=>new EQ({shape:e,unknownKeys:`strip`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)});var DQ=class extends cQ{_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 GZ(e.ctx.common.issues));return YZ(t,{code:X.invalid_union,unionErrors:n}),ZZ}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 GZ(e));return YZ(t,{code:X.invalid_union,unionErrors:i}),ZZ}}get options(){return this._def.options}};DQ.create=(e,t)=>new DQ({options:e,typeName:Z.ZodUnion,...sQ(t)});const OQ=e=>e instanceof PQ?OQ(e.schema):e instanceof BQ?OQ(e.innerType()):e instanceof FQ?[e.value]:e instanceof LQ?e.options:e instanceof RQ?HZ.objectValues(e.enum):e instanceof UQ?OQ(e._def.innerType):e instanceof vQ?[void 0]:e instanceof yQ?[null]:e instanceof VQ?[void 0,...OQ(e.unwrap())]:e instanceof HQ?[null,...OQ(e.unwrap())]:e instanceof KQ||e instanceof JQ?OQ(e.unwrap()):e instanceof WQ?OQ(e._def.innerType):[];var Zbe=class e extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==UZ.object)return YZ(t,{code:X.invalid_type,expected:UZ.object,received:t.parsedType}),ZZ;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}):(YZ(t,{code:X.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),ZZ)}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=OQ(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Z.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...sQ(r)})}};function kQ(e,t){let n=WZ(e),r=WZ(t);if(e===t)return{valid:!0,data:e};if(n===UZ.object&&r===UZ.object){let n=HZ.objectKeys(t),r=HZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=kQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===UZ.array&&r===UZ.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=kQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===UZ.date&&r===UZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var AQ=class extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(eQ(e)||eQ(r))return ZZ;let i=kQ(e.value,r.value);return i.valid?((tQ(e)||tQ(r))&&t.dirty(),{status:t.value,value:i.data}):(YZ(n,{code:X.invalid_intersection_types}),ZZ)};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}))}};AQ.create=(e,t,n)=>new AQ({left:e,right:t,typeName:Z.ZodIntersection,...sQ(n)});var jQ=class e extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==UZ.array)return YZ(n,{code:X.invalid_type,expected:UZ.array,received:n.parsedType}),ZZ;if(n.data.length<this._def.items.length)return YZ(n,{code:X.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),ZZ;!this._def.rest&&n.data.length>this._def.items.length&&(YZ(n,{code:X.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new aQ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>XZ.mergeArray(t,e)):XZ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};jQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new jQ({items:e,typeName:Z.ZodTuple,rest:null,...sQ(t)})};var Qbe=class e extends cQ{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!==UZ.object)return YZ(n,{code:X.invalid_type,expected:UZ.object,received:n.parsedType}),ZZ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new aQ(n,e,n.path,e)),value:a._parse(new aQ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?XZ.mergeObjectAsync(t,r):XZ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof cQ?new e({keyType:t,valueType:n,typeName:Z.ZodRecord,...sQ(r)}):new e({keyType:fQ.create(),valueType:t,typeName:Z.ZodRecord,...sQ(n)})}},MQ=class extends cQ{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!==UZ.map)return YZ(n,{code:X.invalid_type,expected:UZ.map,received:n.parsedType}),ZZ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new aQ(n,e,n.path,[a,`key`])),value:i._parse(new aQ(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 ZZ;(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 ZZ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};MQ.create=(e,t,n)=>new MQ({valueType:t,keyType:e,typeName:Z.ZodMap,...sQ(n)});var NQ=class e extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==UZ.set)return YZ(n,{code:X.invalid_type,expected:UZ.set,received:n.parsedType}),ZZ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(YZ(n,{code:X.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(YZ(n,{code:X.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return ZZ;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 aQ(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:iQ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:iQ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};NQ.create=(e,t)=>new NQ({valueType:e,minSize:null,maxSize:null,typeName:Z.ZodSet,...sQ(t)});var $be=class e extends cQ{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==UZ.function)return YZ(t,{code:X.invalid_type,expected:UZ.function,received:t.parsedType}),ZZ;function n(e,n){return JZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,qZ(),KZ].filter(e=>!!e),issueData:{code:X.invalid_arguments,argumentsError:n}})}function r(e,n){return JZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,qZ(),KZ].filter(e=>!!e),issueData:{code:X.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof zQ){let e=this;return $Z(async function(...t){let o=new GZ([]),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 $Z(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new GZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new GZ([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:jQ.create(t).rest(xQ.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||jQ.create([]).rest(xQ.create()),returns:n||xQ.create(),typeName:Z.ZodFunction,...sQ(r)})}},PQ=class extends cQ{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})}};PQ.create=(e,t)=>new PQ({getter:e,typeName:Z.ZodLazy,...sQ(t)});var FQ=class extends cQ{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return YZ(t,{received:t.data,code:X.invalid_literal,expected:this._def.value}),ZZ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};FQ.create=(e,t)=>new FQ({value:e,typeName:Z.ZodLiteral,...sQ(t)});function IQ(e,t){return new LQ({values:e,typeName:Z.ZodEnum,...sQ(t)})}var LQ=class e extends cQ{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return YZ(t,{expected:HZ.joinValues(n),received:t.parsedType,code:X.invalid_type}),ZZ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return YZ(t,{received:t.data,code:X.invalid_enum_value,options:n}),ZZ}return $Z(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})}};LQ.create=IQ;var RQ=class extends cQ{_parse(e){let t=HZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==UZ.string&&n.parsedType!==UZ.number){let e=HZ.objectValues(t);return YZ(n,{expected:HZ.joinValues(e),received:n.parsedType,code:X.invalid_type}),ZZ}if(this._cache||=new Set(HZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=HZ.objectValues(t);return YZ(n,{received:n.data,code:X.invalid_enum_value,options:e}),ZZ}return $Z(e.data)}get enum(){return this._def.values}};RQ.create=(e,t)=>new RQ({values:e,typeName:Z.ZodNativeEnum,...sQ(t)});var zQ=class extends cQ{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==UZ.promise&&t.common.async===!1?(YZ(t,{code:X.invalid_type,expected:UZ.promise,received:t.parsedType}),ZZ):$Z((t.parsedType===UZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};zQ.create=(e,t)=>new zQ({type:e,typeName:Z.ZodPromise,...sQ(t)});var BQ=class extends cQ{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{YZ(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 ZZ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?ZZ:r.status===`dirty`||t.value===`dirty`?QZ(r.value):r});{if(t.value===`aborted`)return ZZ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?ZZ:r.status===`dirty`||t.value===`dirty`?QZ(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`?ZZ:(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`?ZZ:(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(!nQ(e))return ZZ;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=>nQ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):ZZ);HZ.assertNever(r)}};BQ.create=(e,t,n)=>new BQ({schema:e,typeName:Z.ZodEffects,effect:t,...sQ(n)}),BQ.createWithPreprocess=(e,t,n)=>new BQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Z.ZodEffects,...sQ(n)});var VQ=class extends cQ{_parse(e){return this._getType(e)===UZ.undefined?$Z(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};VQ.create=(e,t)=>new VQ({innerType:e,typeName:Z.ZodOptional,...sQ(t)});var HQ=class extends cQ{_parse(e){return this._getType(e)===UZ.null?$Z(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};HQ.create=(e,t)=>new HQ({innerType:e,typeName:Z.ZodNullable,...sQ(t)});var UQ=class extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===UZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};UQ.create=(e,t)=>new UQ({innerType:e,typeName:Z.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...sQ(t)});var WQ=class extends cQ{_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 rQ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new GZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new GZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};WQ.create=(e,t)=>new WQ({innerType:e,typeName:Z.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...sQ(t)});var GQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.nan){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.nan,received:t.parsedType}),ZZ}return{status:`valid`,value:e.data}}};GQ.create=e=>new GQ({typeName:Z.ZodNaN,...sQ(e)});var KQ=class extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},qQ=class e extends cQ{_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`?ZZ:e.status===`dirty`?(t.dirty(),QZ(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`?ZZ:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Z.ZodPipeline})}},JQ=class extends cQ{_parse(e){let t=this._def.innerType._parse(e),n=e=>(nQ(e)&&(e.value=Object.freeze(e.value)),e);return rQ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};JQ.create=(e,t)=>new JQ({innerType:e,typeName:Z.ZodReadonly,...sQ(t)}),EQ.lazycreate;var Z;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Z||={}),fQ.create,pQ.create,GQ.create,mQ.create,hQ.create,gQ.create,_Q.create,vQ.create,yQ.create,bQ.create,xQ.create,SQ.create,CQ.create,wQ.create;const exe=EQ.create;EQ.strictCreate,DQ.create,Zbe.create,AQ.create,jQ.create,Qbe.create,MQ.create,NQ.create,$be.create,PQ.create,FQ.create,LQ.create,RQ.create,zQ.create,BQ.create,VQ.create,HQ.create,BQ.createWithPreprocess,qQ.create;const txe=je(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);b.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>De(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>ce(e,t,n),e.parseAsync=async(t,n)=>y(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>se(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)=>D(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),nxe=je(`ZodMiniObject`,(e,t)=>{m.init(e,t),txe.init(e,t),r(e,`shape`,()=>t.shape)});function YQ(e,t){return new nxe({type:`object`,shape:e??{},...me(t)})}function XQ(e){return!!e._zod}function ZQ(e){let t=Object.values(e);if(t.length===0)return YQ({});let n=t.every(XQ),r=t.every(e=>!XQ(e));if(n)return YQ(e);if(r)return exe(e);throw Error(`Mixed Zod versions detected in object shape.`)}function QQ(e,t){return XQ(e)?ce(e,t):e.safeParse(t)}async function $Q(e,t){return XQ(e)?await se(e,t):await e.safeParseAsync(t)}function e$(e){if(!e)return;let t;if(t=XQ(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function t$(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 ZQ(e)}}if(XQ(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 n$(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 rxe(e){return e.description}function ixe(e){if(XQ(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function r$(e){if(XQ(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 i$=`2025-11-25`,a$=[i$,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],o$=`io.modelcontextprotocol/related-task`,s$=Ie(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),c$=S([v(),M().int()]),l$=v();a({ttl:M().optional(),pollInterval:M().optional()});const axe=w({ttl:M().optional()}),oxe=w({taskId:v()}),u$=a({progressToken:c$.optional(),[o$]:oxe.optional()}),d$=w({_meta:u$.optional()}),f$=d$.extend({task:axe.optional()}),sxe=e=>f$.safeParse(e).success,p$=w({method:v(),params:d$.loose().optional()}),m$=w({_meta:u$.optional()}),h$=w({method:v(),params:m$.loose().optional()}),g$=a({_meta:u$.optional()}),_$=S([v(),M().int()]),v$=w({jsonrpc:N(`2.0`),id:_$,...p$.shape}).strict(),y$=e=>v$.safeParse(e).success,b$=w({jsonrpc:N(`2.0`),...h$.shape}).strict(),cxe=e=>b$.safeParse(e).success,x$=w({jsonrpc:N(`2.0`),id:_$,result:g$}).strict(),S$=e=>x$.safeParse(e).success;var C$;(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`})(C$||={});const w$=w({jsonrpc:N(`2.0`),id:_$.optional(),error:w({code:M().int(),message:v(),data:O().optional()})}).strict(),T$=e=>w$.safeParse(e).success,E$=S([v$,b$,x$,w$]);S([x$,w$]);const D$=g$.strict(),lxe=m$.extend({requestId:_$.optional(),reason:v().optional()}),O$=h$.extend({method:N(`notifications/cancelled`),params:lxe}),k$=w({icons:A(w({src:v(),mimeType:v().optional(),sizes:A(v()).optional(),theme:Re([`light`,`dark`]).optional()})).optional()}),A$=w({name:v(),title:v().optional()}),j$=A$.extend({...A$.shape,...k$.shape,version:v(),websiteUrl:v().optional(),description:v().optional()}),uxe=te(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,u(w({form:u(w({applyDefaults:l().optional()}),p(v(),O())).optional(),url:s$.optional()}),p(v(),O()).optional())),dxe=a({list:s$.optional(),cancel:s$.optional(),requests:a({sampling:a({createMessage:s$.optional()}).optional(),elicitation:a({create:s$.optional()}).optional()}).optional()}),fxe=a({list:s$.optional(),cancel:s$.optional(),requests:a({tools:a({call:s$.optional()}).optional()}).optional()}),pxe=w({experimental:p(v(),s$).optional(),sampling:w({context:s$.optional(),tools:s$.optional()}).optional(),elicitation:uxe.optional(),roots:w({listChanged:l().optional()}).optional(),tasks:dxe.optional(),extensions:p(v(),s$).optional()}),mxe=d$.extend({protocolVersion:v(),capabilities:pxe,clientInfo:j$}),M$=p$.extend({method:N(`initialize`),params:mxe}),N$=e=>M$.safeParse(e).success,hxe=w({experimental:p(v(),s$).optional(),logging:s$.optional(),completions:s$.optional(),prompts:w({listChanged:l().optional()}).optional(),resources:w({subscribe:l().optional(),listChanged:l().optional()}).optional(),tools:w({listChanged:l().optional()}).optional(),tasks:fxe.optional(),extensions:p(v(),s$).optional()}),gxe=g$.extend({protocolVersion:v(),capabilities:hxe,serverInfo:j$,instructions:v().optional()}),P$=h$.extend({method:N(`notifications/initialized`),params:m$.optional()}),_xe=e=>P$.safeParse(e).success,F$=p$.extend({method:N(`ping`),params:d$.optional()}),vxe=w({progress:M(),total:E(M()),message:E(v())}),yxe=w({...m$.shape,...vxe.shape,progressToken:c$}),I$=h$.extend({method:N(`notifications/progress`),params:yxe}),bxe=d$.extend({cursor:l$.optional()}),L$=p$.extend({params:bxe.optional()}),R$=g$.extend({nextCursor:l$.optional()}),xxe=Re([`working`,`input_required`,`completed`,`failed`,`cancelled`]),z$=w({taskId:v(),status:xxe,ttl:S([M(),j()]),createdAt:v(),lastUpdatedAt:v(),pollInterval:E(M()),statusMessage:E(v())}),B$=g$.extend({task:z$}),Sxe=m$.merge(z$),V$=h$.extend({method:N(`notifications/tasks/status`),params:Sxe}),H$=p$.extend({method:N(`tasks/get`),params:d$.extend({taskId:v()})}),U$=g$.merge(z$),W$=p$.extend({method:N(`tasks/result`),params:d$.extend({taskId:v()})});g$.loose();const G$=L$.extend({method:N(`tasks/list`)}),K$=R$.extend({tasks:A(z$)}),q$=p$.extend({method:N(`tasks/cancel`),params:d$.extend({taskId:v()})}),Cxe=g$.merge(z$),J$=w({uri:v(),mimeType:E(v()),_meta:p(v(),O()).optional()}),Y$=J$.extend({text:v()}),X$=v().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Z$=J$.extend({blob:X$}),Q$=Re([`user`,`assistant`]),$$=w({audience:A(Q$).optional(),priority:M().min(0).max(1).optional(),lastModified:oe({offset:!0}).optional()}),e1=w({...A$.shape,...k$.shape,uri:v(),description:E(v()),mimeType:E(v()),size:E(M()),annotations:$$.optional(),_meta:E(a({}))}),wxe=w({...A$.shape,...k$.shape,uriTemplate:v(),description:E(v()),mimeType:E(v()),annotations:$$.optional(),_meta:E(a({}))}),t1=L$.extend({method:N(`resources/list`)}),Txe=R$.extend({resources:A(e1)}),n1=L$.extend({method:N(`resources/templates/list`)}),Exe=R$.extend({resourceTemplates:A(wxe)}),r1=d$.extend({uri:v()}),Dxe=r1,i1=p$.extend({method:N(`resources/read`),params:Dxe}),Oxe=g$.extend({contents:A(S([Y$,Z$]))}),kxe=h$.extend({method:N(`notifications/resources/list_changed`),params:m$.optional()}),Axe=r1,jxe=p$.extend({method:N(`resources/subscribe`),params:Axe}),Mxe=r1,Nxe=p$.extend({method:N(`resources/unsubscribe`),params:Mxe}),Pxe=m$.extend({uri:v()}),Fxe=h$.extend({method:N(`notifications/resources/updated`),params:Pxe}),Ixe=w({name:v(),description:E(v()),required:E(l())}),Lxe=w({...A$.shape,...k$.shape,description:E(v()),arguments:E(A(Ixe)),_meta:E(a({}))}),a1=L$.extend({method:N(`prompts/list`)}),Rxe=R$.extend({prompts:A(Lxe)}),zxe=d$.extend({name:v(),arguments:p(v(),v()).optional()}),o1=p$.extend({method:N(`prompts/get`),params:zxe}),s1=w({type:N(`text`),text:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),c1=w({type:N(`image`),data:X$,mimeType:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),l1=w({type:N(`audio`),data:X$,mimeType:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),Bxe=w({type:N(`tool_use`),name:v(),id:v(),input:p(v(),O()),_meta:p(v(),O()).optional()}),Vxe=w({type:N(`resource`),resource:S([Y$,Z$]),annotations:$$.optional(),_meta:p(v(),O()).optional()}),u1=S([s1,c1,l1,e1.extend({type:N(`resource_link`)}),Vxe]),Hxe=w({role:Q$,content:u1}),Uxe=g$.extend({description:v().optional(),messages:A(Hxe)}),Wxe=h$.extend({method:N(`notifications/prompts/list_changed`),params:m$.optional()}),Gxe=w({title:v().optional(),readOnlyHint:l().optional(),destructiveHint:l().optional(),idempotentHint:l().optional(),openWorldHint:l().optional()}),Kxe=w({taskSupport:Re([`required`,`optional`,`forbidden`]).optional()}),d1=w({...A$.shape,...k$.shape,description:v().optional(),inputSchema:w({type:N(`object`),properties:p(v(),s$).optional(),required:A(v()).optional()}).catchall(O()),outputSchema:w({type:N(`object`),properties:p(v(),s$).optional(),required:A(v()).optional()}).catchall(O()).optional(),annotations:Gxe.optional(),execution:Kxe.optional(),_meta:p(v(),O()).optional()}),f1=L$.extend({method:N(`tools/list`)}),qxe=R$.extend({tools:A(d1)}),p1=g$.extend({content:A(u1).default([]),structuredContent:p(v(),O()).optional(),isError:l().optional()});p1.or(g$.extend({toolResult:O()}));const Jxe=f$.extend({name:v(),arguments:p(v(),O()).optional()}),m1=p$.extend({method:N(`tools/call`),params:Jxe}),Yxe=h$.extend({method:N(`notifications/tools/list_changed`),params:m$.optional()});w({autoRefresh:l().default(!0),debounceMs:M().int().nonnegative().default(300)});const h1=Re([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Xxe=d$.extend({level:h1}),g1=p$.extend({method:N(`logging/setLevel`),params:Xxe}),Zxe=m$.extend({level:h1,logger:v().optional(),data:O()}),Qxe=h$.extend({method:N(`notifications/message`),params:Zxe}),$xe=w({hints:A(w({name:v().optional()})).optional(),costPriority:M().min(0).max(1).optional(),speedPriority:M().min(0).max(1).optional(),intelligencePriority:M().min(0).max(1).optional()}),eSe=w({mode:Re([`auto`,`required`,`none`]).optional()}),tSe=w({type:N(`tool_result`),toolUseId:v().describe(`The unique identifier for the corresponding tool call.`),content:A(u1).default([]),structuredContent:w({}).loose().optional(),isError:l().optional(),_meta:p(v(),O()).optional()}),nSe=ae(`type`,[s1,c1,l1]),_1=ae(`type`,[s1,c1,l1,Bxe,tSe]),rSe=w({role:Q$,content:S([_1,A(_1)]),_meta:p(v(),O()).optional()}),iSe=f$.extend({messages:A(rSe),modelPreferences:$xe.optional(),systemPrompt:v().optional(),includeContext:Re([`none`,`thisServer`,`allServers`]).optional(),temperature:M().optional(),maxTokens:M().int(),stopSequences:A(v()).optional(),metadata:s$.optional(),tools:A(d1).optional(),toolChoice:eSe.optional()}),aSe=p$.extend({method:N(`sampling/createMessage`),params:iSe}),v1=g$.extend({model:v(),stopReason:E(Re([`endTurn`,`stopSequence`,`maxTokens`]).or(v())),role:Q$,content:nSe}),y1=g$.extend({model:v(),stopReason:E(Re([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(v())),role:Q$,content:S([_1,A(_1)])}),oSe=w({type:N(`boolean`),title:v().optional(),description:v().optional(),default:l().optional()}),sSe=w({type:N(`string`),title:v().optional(),description:v().optional(),minLength:M().optional(),maxLength:M().optional(),format:Re([`email`,`uri`,`date`,`date-time`]).optional(),default:v().optional()}),cSe=w({type:Re([`number`,`integer`]),title:v().optional(),description:v().optional(),minimum:M().optional(),maximum:M().optional(),default:M().optional()}),lSe=w({type:N(`string`),title:v().optional(),description:v().optional(),enum:A(v()),default:v().optional()}),uSe=w({type:N(`string`),title:v().optional(),description:v().optional(),oneOf:A(w({const:v(),title:v()})),default:v().optional()}),dSe=S([S([w({type:N(`string`),title:v().optional(),description:v().optional(),enum:A(v()),enumNames:A(v()).optional(),default:v().optional()}),S([lSe,uSe]),S([w({type:N(`array`),title:v().optional(),description:v().optional(),minItems:M().optional(),maxItems:M().optional(),items:w({type:N(`string`),enum:A(v())}),default:A(v()).optional()}),w({type:N(`array`),title:v().optional(),description:v().optional(),minItems:M().optional(),maxItems:M().optional(),items:w({anyOf:A(w({const:v(),title:v()}))}),default:A(v()).optional()})])]),oSe,sSe,cSe]),fSe=S([f$.extend({mode:N(`form`).optional(),message:v(),requestedSchema:w({type:N(`object`),properties:p(v(),dSe),required:A(v()).optional()})}),f$.extend({mode:N(`url`),message:v(),elicitationId:v(),url:v().url()})]),pSe=p$.extend({method:N(`elicitation/create`),params:fSe}),mSe=m$.extend({elicitationId:v()}),hSe=h$.extend({method:N(`notifications/elicitation/complete`),params:mSe}),b1=g$.extend({action:Re([`accept`,`decline`,`cancel`]),content:te(e=>e===null?void 0:e,p(v(),S([v(),M(),l(),A(v())])).optional())}),gSe=w({type:N(`ref/resource`),uri:v()}),_Se=w({type:N(`ref/prompt`),name:v()}),vSe=d$.extend({ref:S([_Se,gSe]),argument:w({name:v(),value:v()}),context:w({arguments:p(v(),v()).optional()}).optional()}),x1=p$.extend({method:N(`completion/complete`),params:vSe});function ySe(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function bSe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const xSe=g$.extend({completion:a({values:A(v()).max(100),total:E(M().int()),hasMore:E(l())})}),SSe=w({uri:v().startsWith(`file://`),name:v().optional(),_meta:p(v(),O()).optional()}),CSe=p$.extend({method:N(`roots/list`),params:d$.optional()}),S1=g$.extend({roots:A(SSe)}),wSe=h$.extend({method:N(`notifications/roots/list_changed`),params:m$.optional()});S([F$,M$,x1,g1,o1,a1,t1,n1,i1,jxe,Nxe,m1,f1,H$,W$,G$,q$]),S([O$,I$,P$,wSe,V$]),S([D$,v1,y1,b1,S1,U$,K$,B$]),S([F$,aSe,pSe,CSe,H$,W$,G$,q$]),S([O$,I$,Qxe,Fxe,kxe,Yxe,Wxe,V$,hSe]),S([D$,gxe,xSe,Uxe,Rxe,Txe,Exe,Oxe,p1,qxe,U$,K$,B$]);var C1=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===C$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new TSe(e.elicitations,n)}return new e(t,n,r)}},TSe=class extends C1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(C$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function w1(e){return e===`completed`||e===`failed`||e===`cancelled`}const ESe=Symbol(`Let zodToJsonSchema decide on which parser to use`),T1={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`},DSe=e=>typeof e==`string`?{...T1,name:e}:{...T1,...e},OSe=e=>{let t=DSe(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 E1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function D1(e,t,n,r,i){e[t]=n,E1(e,t,r,i)}const O1=(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 k1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?O1(t,e.currentPath):t.join(`/`)}}function kSe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Z.ZodAny&&(n.items=H1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&D1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&D1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(D1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),D1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function ASe(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?D1(n,`minimum`,r.value,r.message,t):D1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),D1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?D1(n,`maximum`,r.value,r.message,t):D1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),D1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:D1(n,`multipleOf`,r.value,r.message,t);break}return n}function jSe(){return{type:`boolean`}}function A1(e,t){return H1(e.type._def,t)}const MSe=(e,t)=>H1(e.innerType._def,t);function j1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>j1(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 NSe(e,t)}}const NSe=(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`:D1(n,`minimum`,r.value,r.message,t);break;case`max`:D1(n,`maximum`,r.value,r.message,t);break}return n};function PSe(e,t){return{...H1(e.innerType._def,t),default:e.defaultValue()}}function FSe(e,t){return t.effectStrategy===`input`?H1(e.schema._def,t):k1(t)}function ISe(e){return{type:`string`,enum:Array.from(e.values)}}const LSe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function RSe(e,t){let n=[H1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),H1(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(LSe(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 zSe(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 M1;const N1={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:()=>(M1===void 0&&(M1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),M1),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 P1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:D1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:D1(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`:I1(n,`email`,r.message,t);break;case`format:idn-email`:I1(n,`idn-email`,r.message,t);break;case`pattern:zod`:L1(n,N1.email,r.message,t);break}break;case`url`:I1(n,`uri`,r.message,t);break;case`uuid`:I1(n,`uuid`,r.message,t);break;case`regex`:L1(n,r.regex,r.message,t);break;case`cuid`:L1(n,N1.cuid,r.message,t);break;case`cuid2`:L1(n,N1.cuid2,r.message,t);break;case`startsWith`:L1(n,RegExp(`^${F1(r.value,t)}`),r.message,t);break;case`endsWith`:L1(n,RegExp(`${F1(r.value,t)}$`),r.message,t);break;case`datetime`:I1(n,`date-time`,r.message,t);break;case`date`:I1(n,`date`,r.message,t);break;case`time`:I1(n,`time`,r.message,t);break;case`duration`:I1(n,`duration`,r.message,t);break;case`length`:D1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),D1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:L1(n,RegExp(F1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&I1(n,`ipv4`,r.message,t),r.version!==`v4`&&I1(n,`ipv6`,r.message,t);break;case`base64url`:L1(n,N1.base64url,r.message,t);break;case`jwt`:L1(n,N1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&L1(n,N1.ipv4Cidr,r.message,t),r.version!==`v4`&&L1(n,N1.ipv6Cidr,r.message,t);break;case`emoji`:L1(n,N1.emoji(),r.message,t);break;case`ulid`:L1(n,N1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:I1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:D1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:L1(n,N1.base64,r.message,t);break}break;case`nanoid`:L1(n,N1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function F1(e,t){return t.patternStrategy===`escape`?VSe(e):e}const BSe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function VSe(e){let t=``;for(let n=0;n<e.length;n++)BSe.has(e[n])||(t+=`\\`),t+=e[n];return t}function I1(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}}})):D1(e,`format`,t,n,r)}function L1(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:R1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):D1(e,`pattern`,R1(t,r),n,r)}function R1(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
1187
+ `).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 Er(`baseline-verify`),o=await i(),o!==void 0&&!await a(o,t))?void 0:o}catch{return}}let Zs=e=>e.kind===`agent`||e.kind===`principal`?e.writerId:void 0;async function Qs(e){try{let t=ds(e.scope);if(!t)return;let n=aL(t);if(n.length===0)return;let r=dL(R(e.skillsRoot,e.name),e.name,t,n,`copy`,oL(e.scope));if(r.length===0)return;await HN(t,e.name,{hosts:r,scope:e.scope,scripts:e.hasScripts,installedAt:new Date().toISOString(),projection:`copy`})}catch(t){Y.warn({skill:e.name,err:t},`${e.handler}: inline projection failed; skill written, reconcile will project on next open`)}}function $s(e,t){if(t.ok){q(e,200,See,t.body,{handler:`skill-import`});return}G(e,t.status,t.urn,t.title,{handler:`skill-import`,...t.detail===void 0?{}:{detail:t.detail},...t.cause===void 0?{}:{cause:t.cause}})}let ec=cye({contentDir:c,skillsHome:jo,...j===void 0?{}:{projectDir:j},resolveSkillDirForRead:Fo,parseFrontmatterDoc:_o,attributeOkArtifactWrite:cr,commitOkArtifactWrite:Er,shadowHeadSha:Ys,artifactWriterId:Zs,effectiveInstallMode:Uo,signalFiles:()=>Le?.(`files`)}),tc=bye({contentDir:c,skillsHome:jo,...j===void 0?{}:{projectDir:j},legacyStoreRoot:Oi,effectiveSkillRoot:xs,parseFrontmatterDoc:_o,attributeOkArtifactWrite:cr,commitOkArtifactWrite:Er,shadowHeadSha:Ys,artifactWriterId:Zs,skillArtifactKey:e=>or(`skill`,``,e),captureAndCloseDocuments:Sn,projectImportedSkillCopy:Qs,signalFiles:()=>Le?.(`files`)});function nc(e,t){if(t.ok){q(e,200,wn,t.body,{handler:`skill-reimport`});return}G(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 rc(e,t,n){let r=e===`project`?c:jo,i=(e===`project`?PL(c):FL(jo)).find(e=>e.name===t);return i?R(r,i.dir):R(n,t)}function ic(e,t,n,r){let i=r.skills[t];if(i)return i;let a=rc(e,t,n);return cD(t,_D(a)?.contentHash??``,new Date().toISOString(),{selfIdentifiesAsPack:Hye(a)})??Yo(e===`global`?jo:c,t)??ns(t,tf(j??c),a)}let ac=K(yte,async(e,t,n)=>{let r=()=>{};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-import`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-import`});return}let i=n.scope,a=null,o,s,c,l,u=n.source;{let e=n.source;try{let i=await DD(e,n.skill),d=i?.source??e;u=d;let f=n.skill??i?.skill,p=i?.spec??ZE(d);if(!p){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skill-import`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(rX(t,p,`skill-import`))return;let m=await $E(p);r=m.cleanup,s=m.ref;let h=vD(m.dir);if(h.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skill-import`});return}let g=h[0];if(f){let e=h.find(e=>e.name===f)??h.find(e=>hD(e.dir)?.name===f)??h.find(e=>e.name===Pa[f]);if(!e){G(t,404,`urn:ok:error:not-found`,`Named skill not in source.`,{handler:`skill-import`,detail:`--skill "${f}" not among: ${h.map(e=>e.name).join(`, `)}.`});return}g=e}else if(h.length>1){G(t,400,`urn:ok:error:invalid-request`,"Source has multiple skills; pass `skill` to choose one.",{handler:`skill-import`,detail:h.map(e=>e.name).join(`, `)});return}a=g.dir,l=g.name,o=e,c=i?.publisher??Hs(d)}catch(e){if(e instanceof IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-import`,cause:e});return}throw e}}if(!a){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-import`});return}let d=await ec.runSkillImport({acquiredDir:a,scope:i,sourceLabel:o,ref:s,publisher:c,upstreamSkill:l,actor:e,skipProjection:n.install===!1});d.ok&&(n.marketplace===!0||Yi(u))&&YI({source:u,skills:[d.body.name]},OI()),pr(),be?.refreshInPlaceSkillDirs(),vr(),Le?.(`files`),$s(t,d)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skill.`,{handler:`skill-import`,cause:e})}finally{r()}},{handler:`skill-import`,method:`POST`}),oc=K(Aee,async(e,t,n)=>{let r=()=>{};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-import-bulk`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-import-bulk`});return}let i=n.source,a=null,o=null,s=[],c,l,u=i;try{let e=await DD(i,n.skills[0]),d=e?.source??i;u=d;let f=e?.spec??ZE(d);if(!f){G(t,400,`urn:ok:error:invalid-request`,`Unrecognized import source.`,{handler:`skills-import-bulk`,detail:`Expected owner/repo, a git URL, a website source, a local path, or a skills.sh URL.`});return}if(rX(t,f,`skills-import-bulk`))return;if(l=e?.publisher??Hs(d),f.kind===`well-known`)a=f,o=await KE(f.origin);else{let e=await $E(f);r=e.cleanup,c=e.ref,s=vD(e.dir)}}catch(e){if(e instanceof IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skills-import-bulk`,cause:e});return}throw e}if(a===null&&s.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in source.`,{handler:`skills-import-bulk`});return}let d=[];for(let t of new Set(n.skills)){let r,u,f=()=>{};if(a!==null)try{let e=await $E({...a,skill:t},o?{index:o}:{});r=e.dir,f=e.cleanup,u=t}catch(e){d.push({requested:t,status:e instanceof IE?`not-found`:`failed`,warnings:[],...e instanceof IE?{}:{error:String(e)}});continue}else{let e=s.find(e=>e.name===t)??s.find(e=>_D(e.dir)?.name===t)??s.find(e=>e.name===Pa[t]);if(!e){d.push({requested:t,status:`not-found`,warnings:[]});continue}r=e.dir,u=e.name}try{let a=await ec.runSkillImport({acquiredDir:r,scope:n.scope,sourceLabel:i,ref:c,publisher:l,upstreamSkill:u,actor:e,skipProjection:n.install===!1});if(!a.ok){P(`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){P(`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||Yi(u)){let e=d.filter(e=>e.status===`imported`).map(e=>e.requested);e.length>0&&YI({source:u,skills:e},OI())}pr(),be?.refreshInPlaceSkillDirs(),vr(),Le?.(`files`),q(t,200,Lee,{results:d,imported:d.filter(e=>e.status===`imported`).length,alreadyImported:d.filter(e=>e.status===`already-imported`).length,failed:d.filter(e=>e.status===`failed`||e.status===`not-found`).length},{handler:`skills-import-bulk`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to import skills.`,{handler:`skills-import-bulk`,cause:e})}finally{r()}},{handler:`skills-import-bulk`,method:`POST`}),sc=8*1024*1024,cc=32*1024*1024;function lc(e,t){let n=t.split(`\\`).join(`/`).replace(/^\/+/,``);if(n===``||n.split(`/`).some(e=>e===`..`))return null;let r=R(e,n);return r!==e&&!r.startsWith(e+z)?null:r}function uc(e){return new Promise((t,n)=>{let r;try{r=wq(e,{files:200,fields:10,fieldSize:2*1024,fileSize:sc})}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>cc){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 fc(e,t){return new Promise((n,r)=>{(0,ZO.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=lc(t,e.fileName);if(!n){s(Error(`Unsafe archive entry: ${e.fileName}`));return}if(e.fileName.endsWith(`/`)){Vs(n,{recursive:!0}),i.readEntry();return}if(e.uncompressedSize>sc){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>cc){t.destroy(),s(Error(`Archive expands beyond the size limit.`));return}r.push(e)}),t.on(`error`,s),t.on(`end`,()=>{try{Vs(F(n),{recursive:!0}),Xs(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 pc(e,t){let n=ju(I(Xu(),`ok-skill-upload-`)),r=()=>{try{Gs(n,{recursive:!0,force:!0})}catch{}};try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-upload`,detail:`NO_PROJECT_ROOT`});return}if((e.method??``).toUpperCase()!==`POST`){G(t,405,`urn:ok:error:invalid-request`,`Use POST to upload a skill.`,{handler:`skill-upload`});return}let r=new URL(e.url??``,`http://localhost`),i=Oo(r.searchParams.get(`scope`),t,`skill-upload`);if(!i)return;let a=e=>r.searchParams.get(e)??void 0,o=jk({agentId:a(`agentId`),agentName:a(`agentName`),colorSeed:a(`colorSeed`),clientName:a(`clientName`),summary:a(`summary`)},me);if(o.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-upload`});return}let s;try{s=await uc(e)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not read the upload.`,{handler:`skill-upload`,cause:e});return}if(s.length===0){G(t,400,`urn:ok:error:invalid-request`,`No files uploaded.`,{handler:`skill-upload`});return}let c=s.length===1?s[0]:null,l=c&&/\.(zip|skill)$/i.test(c.relPath)?c.relPath:null;if(c&&l)try{await fc(c.data,n)}catch(e){G(t,400,`urn:ok:error:invalid-request`,`Could not unpack the archive.`,{handler:`skill-upload`,cause:e});return}else for(let e of s){let r=lc(n,e.relPath);if(!r){G(t,400,`urn:ok:error:invalid-request`,`Unsafe file path in upload.`,{handler:`skill-upload`,detail:e.relPath});return}Vs(F(r),{recursive:!0}),Xs(r,e.data)}let u=vD(n);if(u.length===0){G(t,404,`urn:ok:error:not-found`,`No SKILL.md found in the upload.`,{handler:`skill-upload`});return}if(u.length>1){G(t,400,`urn:ok:error:invalid-request`,`Upload contains multiple skills; upload one at a time.`,{handler:`skill-upload`,detail:u.map(e=>e.name).join(`, `)});return}let d=u[0];$s(t,await ec.runSkillImport({acquiredDir:d.dir,scope:i,sourceLabel:`upload:${l??d.name}`,upstreamSkill:d.name,actor:o}))}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to upload skill.`,{handler:`skill-upload`,cause:e})}finally{r()}}let mc=K(kt,async(e,t,n)=>{try{let e=Po(n.scope);if(!Do(n.name,t,`skill-install`))return;if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`Cannot install — no project root is resolved for this server. Skills project into editor host dirs at the project root.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=ds(n.scope),i=R(e,n.name),a=n.scope===`project`?c:jo,o=(n.scope===`project`?PL(c):FL(jo)).find(e=>e.name===n.name),s=fk(n.name)?is(n.name,n.scope):null,l=o?R(a,o.dir):B(i)||s===null?i:F(s);if(!B(l)){G(t,404,`urn:ok:error:not-found`,`Skill not found.`,{handler:`skill-install`,detail:`Skill "${n.name}" not found in ${n.scope} scope — create it with write({ skill }) first.`});return}await Vt(n.scope===`project`?`${L(a,l).split(z).join(`/`)}/SKILL`:Qa(n.scope,n.name));let u=iL(l,n.name,{allowReservedName:fk(n.name)});if(!u.ok){G(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){G(t,400,`urn:ok:error:invalid-request`,`Skill is not in-place.`,{handler:`skill-install`,detail:`FORK_STORE_BACKED`});return}let e=Mo.resolveFork({scope:n.scope,name:n.name,fork:n.fork,inPlaceEntry:o});if(!e.ok)switch(e.kind){case`unknown-editor`:G(t,400,`urn:ok:error:invalid-request`,`Unknown editor.`,{handler:`skill-install`,detail:e.editor});return;case`fork-absent`:G(t,400,`urn:ok:error:invalid-request`,`No fork at that editor.`,{handler:`skill-install`,detail:`FORK_ABSENT`});return;case`not-a-fork`:G(t,400,`urn:ok:error:invalid-request`,`That copy matches the source — nothing to resolve.`,{handler:`skill-install`,detail:`NOT_A_FORK`});return;case`invalid-new-name`:G(t,400,`urn:ok:error:invalid-request`,`Invalid new name.`,{handler:`skill-install`,detail:e.toName});return;case`name-taken`:G(t,400,`urn:ok:error:invalid-request`,`Name already taken.`,{handler:`skill-install`,detail:e.toName});return;default:throw Error(`Unhandled fork outcome: ${String(e.kind)}`)}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{name:n.name,hosts:o.hosts.filter(na),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){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before using add/remove.",{handler:`skill-install`,detail:`STORE_BACKED_ADDITIVE`});return}let e=await Mo.applyAddRemove({scope:n.scope,name:n.name,inPlaceEntry:o,...n.add===void 0?{}:{add:n.add},...n.remove===void 0?{}:{remove:n.remove}});if(!e.ok){e.kind===`remove-source`?G(t,400,`urn:ok:error:invalid-request`,`"${e.sourceId}" is the skill's SOURCE — its folder is the skill itself, so removing it would delete the skill. Move the source first (\`source\`) or use \`delete\`.`,{handler:`skill-install`,detail:`REMOVE_SOURCE`}):G(t,409,`urn:ok:error:invalid-request`,`Could not stop ${e.subRoot} following its pool (${e.reason}).`,{handler:`skill-install`,detail:e.reason});return}p=e.targets.filter(na),m.push(...e.rootAdds),h.push(...e.rootRemoves)}if(d&&!o){let e=await Mo.promoteStoreBackedSource({scope:n.scope,name:n.name,base:r,skillDir:l,newSource:d});if(!e.ok){G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.kind===`source-occupied`?e.reason:e.target});return}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{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`?j:jo;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot place — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await Qr.place({placeBase:e,name:n.name,rawDir:n.place.dir,skillDir:l,mode:n.place.mode});if(!r.ok){r.kind===`invalid-path`?G(t,400,`urn:ok:error:invalid-request`,`Placement path must be a project-relative directory outside .ok/.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`}):G(t,409,`urn:ok:error:doc-already-exists`,`Something already exists at that path — placement never overwrites.`,{handler:`skill-install`,detail:`PLACE_DEST_EXISTS`});return}`alreadyAtSource`in r||Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{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`?j:jo;if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot remove a placement — no project root is resolved for this server.`,{handler:`skill-install`,detail:`NO_PROJECT_ROOT`});return}let r=await Qr.unplace({placeBase:e,name:n.name,rawPath:n.unplace.path,skillDir:l});if(!r.ok)switch(r.kind){case`not-recorded`:G(t,404,`urn:ok:error:not-found`,`No recorded placement at that path.`,{handler:`skill-install`,detail:r.path});return;case`unsafe-path`:G(t,400,`urn:ok:error:invalid-request`,`Recorded placement path is no longer safe.`,{handler:`skill-install`,detail:`PLACE_PATH_INVALID`});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — remove it manually if you mean it.`,{handler:`skill-install`,detail:r.path});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — it can't be removed here.`,{handler:`skill-install`,detail:r.path});return;default:throw Error(`Unhandled unplace outcome: ${String(r.kind)}`)}Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Rn,{name:n.name,hosts:o?[...o.hosts]:[],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}if(n.convert){if(!o){G(t,400,`urn:ok:error:invalid-request`,"This skill still lives in the legacy .ok/skills store — promote a real location first (`source`) before converting one.",{handler:`skill-install`,detail:`STORE_BACKED_CONVERT`});return}let{target:e,mode:i}=n.convert,a=n.scope===`project`?j:jo,s=await Qr.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`:G(t,400,`urn:ok:error:invalid-request`,`That location has no skills folder to convert.`,{handler:`skill-install`,detail:e});return;case`canonical-dir`:G(t,400,`urn:ok:error:invalid-request`,`That is the skill's own folder (the source) — move the source instead of converting it.`,{handler:`skill-install`,detail:e});return;case`forked`:G(t,409,`urn:ok:error:doc-already-exists`,`That copy has been edited and no longer matches the skill — resolve the fork before converting it.`,{handler:`skill-install`,detail:e});return;case`not-installed`:G(t,404,`urn:ok:error:not-found`,`The skill is not installed there.`,{handler:`skill-install`,detail:e});return;default:throw Error(`Unhandled convert outcome: ${String(s.kind)}`)}Le?.(`files`),q(t,200,Rn,{name:n.name,hosts:[...o.hosts],scripts:u.hasScripts,warnings:[],warningCodes:[]},{handler:`skill-install`});return}let g=n.scope===`global`?p===void 0?QI(jo).map(e=>e.editorId):en.filter(e=>p?.some(t=>t===e)):p===void 0?aL(r):rr.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`&&B(I(jo,`.agents`)):p.includes(`agents`))?[...g,`agents`]:[...g],a=n.scope===`project`?j:jo,s=f===void 0?Uo(n.scope,n.name,o):f?`link`:`copy`;if(d){let e=await Mo.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`?G(t,400,`urn:ok:error:invalid-request`,`Source target must be an editor id, "agents", or a project-relative skills root.`,{handler:`skill-install`,detail:e.target}):G(t,409,`urn:ok:error:doc-already-exists`,`Cannot move the source there — a different skill occupies the target.`,{handler:`skill-install`,detail:e.reason});return}Le?.(`files`),q(t,200,Rn,{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 Mo.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){G(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),Le?.(`files`),q(t,200,Rn,{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=nL(BN(r).skills[n.name]?.hosts??[]).filter(e=>!g.includes(e));y.length>0&&yL(n.name,r,y,oL(n.scope));let b=I(r,...eD),x=B(b)?V(b,`utf-8`):null,S=x===null?null:iD(x);x!==null&&S===null&&Y.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=dL(l,n.name,r,g,w,oL(n.scope));T.length===0?await UN(r,n.name):await HN(r,n.name,{hosts:T,scope:n.scope,scripts:u.hasScripts,installedAt:new Date().toISOString(),projection:w}),Le?.(`files`),q(t,200,Rn,{name:n.name,hosts:T,scripts:u.hasScripts,warnings:_,warningCodes:v},{handler:`skill-install`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to install skill.`,{handler:`skill-install`,cause:e})}},{handler:`skill-install`,method:`POST`}),hc=K(pn,async(e,t,n)=>{try{if(!Do(n.name,t,`skill-uninstall`))return;let e=ds(n.scope);if(!e){G(t,400,`urn:ok:error:invalid-request`,`Cannot uninstall — no project root is resolved for this server.`,{handler:`skill-uninstall`,detail:`NO_PROJECT_ROOT`});return}let r=await fs(e,n.name,n.scope);Le?.(`files`),q(t,200,Pee,{name:n.name,uninstalled:r},{handler:`skill-uninstall`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to uninstall skill.`,{handler:`skill-uninstall`,cause:e})}},{handler:`skill-uninstall`,method:`POST`}),vc=RW({GET:K(Kt,async(e,t)=>{try{let e=aL(j??``),n=(e,t)=>{let n=fye(e)[t.root];return n===void 0||(n.expect===`link`?t.state===`linked`&&t.target===n.target:t.state===`own`)?{}:{drift:!0,expected:n.expect===`link`?`link → ${n.target}`:`own folder`}};q(t,200,xr,{targets:e,configured:!1,folders:[...j?VY(c,DL(c,`project`)).filter(e=>kL(c,`project`,e.root)).map(e=>({...e,scope:`project`,...n(c,e)})):[],...VY(jo,DL(jo,`global`)).filter(e=>kL(jo,`global`,e.root)).map(e=>({...e,scope:`global`,...n(jo,e)}))]},{handler:`skill-targets-get`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to read skill targets.`,{handler:`skill-targets-get`,cause:e})}},{handler:`skill-targets-get`,method:`GET`,skipBodyParse:!0}),PUT:K(Tee,async(e,t,n)=>{try{{let e=n.folderAction,r=e.scope===`project`?c:jo;if(e.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`Cannot manage skill folders — no project root is resolved for this server.`,{handler:`skill-targets-put`,detail:`NO_PROJECT_ROOT`});return}if(e.action===`add-root`){let n=e.root.replace(/\\/g,`/`).replace(/\/+$/g,``),i=n.split(`/`).filter(e=>e!==``&&e!==`.`);if(n===``||n.startsWith(`/`)||n.startsWith(`~`)||/^[A-Za-z]:/.test(n)||n.includes(`\0`)||i.length===0||i.some(e=>e===`..`)){G(t,400,`urn:ok:error:invalid-request`,`Invalid folder path.`,{handler:`skill-targets-put`,detail:e.root});return}await pye(r,i.join(`/`)),Le?.(`files`),q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[]},{handler:`skill-targets-put`});return}let i=new Set(DL(r,e.scope).map(e=>e.root).filter(e=>!e.startsWith(`/`)&&!e.split(`/`).includes(`..`))),a=e.action===`link`?e.target??``:e.root;if(!i.has(e.root)||e.action===`link`&&(!i.has(a)||e.root===a)){G(t,400,`urn:ok:error:invalid-request`,`Folder and target must be distinct standard skills roots.`,{handler:`skill-targets-put`,detail:`${e.root} -> ${a}`});return}if(e.action===`link`&&e.preview){let n=UY({base:r,folderRel:e.root,targetRootRel:a}),i=n.kind===`plan`?n.plan:null;q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[],preview:{moves:i?[...i.linkedBundlesToMove.map(({name:e})=>e),...i.toMove]:[],drops:i?.toDrop??[],removes:i?.removes??[],replaces:i?.liveDestLinks??[],conflicts:n.kind===`conflicts`?n.conflicts:[],strays:n.kind===`stray-entries`?n.strays:[]}},{handler:`skill-targets-put`});return}let o=e.action===`link`?dye({base:r,folderRel:e.root,targetRootRel:a}):WY({base:r,folderRel:e.root,...e.exclude===void 0?{}:{exclude:e.exclude}});if(!o.ok){G(t,409,`urn:ok:error:invalid-request`,o.reason===`conflicts`?`Cannot link — differing skills exist in both folders: ${(o.conflicts??[]).join(`, `)}. Resolve them first.`:o.reason===`stray-entries`?`Cannot link — the folder holds non-skill entries: ${(o.strays??[]).join(`, `)}.`:o.reason===`partial-move`?`The merge stopped partway (${(o.moved??[]).length} skill(s) already moved — nothing lost). Run Link again to resume and complete it. (${o.error??``})`:o.reason===`not-linked`?`That folder is not a symlink — nothing to unlink.`:`That folder cannot be linked (it is already a link or the same directory).`,{handler:`skill-targets-put`,detail:o.reason});return}await qY(r,e.root,e.action===`link`?{expect:`link`,target:a}:{expect:`own`}),Le?.(`files`),q(t,200,Wt,{targets:aL(j??``),reprojected:[],bundleHosts:[],removedFrom:[],folder:{moved:o.moved,dropped:o.dropped,linked:o.linked}},{handler:`skill-targets-put`});return}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to set skill targets.`,{handler:`skill-targets-put`,cause:e})}},{handler:`skill-targets-put`,method:`PUT`})},{handler:`skill-targets`}),yc=K(vee,async(e,t,n)=>{try{let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-restore`});return}if(!Do(n.name,t,`skill-restore`)||os(n.name,t,`skill-restore`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is no version history to restore from.`,{handler:`skill-restore`,detail:`GLOBAL_SCOPE_UNVERSIONED`});return}let r=ee?.current;if(!r){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to restore from.`,{handler:`skill-restore`,detail:`NO_SHADOW_REPO`});return}let i=await aX({shadow:r,contentDir:c,contentRoot:O??`.`,name:n.name,version:n.version,skillDirRel:Wo(n.name)});if(!i.ok){Ho(t,i,`skill-restore`);return}let a=[],o=iL(R(c,Wo(n.name)),n.name);o.ok||a.push(`Restored, but the skill no longer validates: ${o.errors.join(` `)}`),cr(e,or(`skill`,``,n.name),`skill-restore: ${n.name} @ ${n.version.slice(0,8)}`),await Er(`skill-restore`),Le?.(`files`),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,Ete,{name:n.name,version:n.version,restoredFiles:i.restoredFiles,warnings:a},{handler:`skill-restore`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to restore skill.`,{handler:`skill-restore`,cause:e})}},{handler:`skill-restore`,method:`POST`}),bc=K(on,async(e,t,n)=>{let r=()=>{};try{if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-reimport`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-reimport`});return}if(!Do(n.name,t,`skill-reimport`))return;let i=n.scope===`global`?jo:c,{root:a,dirRel:o,realDir:s}=xs(n.scope,n.name);if(s===null||!B(R(i,o,`SKILL.md`))){G(t,404,`urn:ok:error:not-found`,`Skill is not installed.`,{handler:`skill-reimport`,detail:`SKILL_ABSENT`});return}let l=I(n.scope===`global`?jo:j,...eD),u=ic(n.scope,n.name,a,Ks(l));if(!u){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded import source to update from.`,{handler:`skill-reimport`,detail:`NOT_IMPORTED`});return}if(n.setAutoUpdate!==void 0){await aJ(l,e=>({...e,skills:{...e.skills,[n.name]:{...e.skills[n.name]??u,autoUpdate:n.setAutoUpdate}}})),pr(),be?.refreshInPlaceSkillDirs(),vr(),q(t,200,wn,{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=Pa[e],a=await DD(u.source,e).catch(async e=>{if(i===void 0)throw e;return DD(u.source,i)}),o=a?.source??yO(u.source,u.pluginProvider),s=a?.skill??u.skill,c=a?.spec??ZE(o);if(!c){G(t,400,`urn:ok:error:invalid-request`,`The recorded import source is no longer a valid source.`,{handler:`skill-reimport`,detail:u.source});return}if(rX(t,c,`skill-reimport`))return;let l=await $E(c);r=l.cleanup,d=l.ref;let p=vD(l.dir),m=$Y(p,{...s===void 0?{}:{recordedSkill:s},localName:n.name,frontmatterNameOf:e=>_D(e)?.name});if(!m){G(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 IE){G(t,400,`urn:ok:error:invalid-request`,`Could not fetch source.`,{handler:`skill-reimport`,cause:e});return}throw e}if(!f){G(t,422,`urn:ok:error:invalid-request`,`Source has no readable skill.`,{handler:`skill-reimport`});return}let p=await tc.runSkillReimport({acquiredDir:f,name:n.name,scope:n.scope,entry:u,lockPath:l,ref:d,actor:e,...n.dryRun===void 0?{}:{dryRun:n.dryRun}});pr(),be?.refreshInPlaceSkillDirs(),vr(),nc(t,p)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to reimport skill.`,{handler:`skill-reimport`,cause:e})}finally{r()}},{handler:`skill-reimport`,method:`POST`}),Sc=K(Ue,async(e,t,n)=>{try{if(n.scope===`project`&&!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skills-reimport-bulk`,detail:`NO_PROJECT_ROOT`});return}let r=jk(n,me);if(r.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skills-reimport-bulk`});return}let i=I(n.scope===`global`?jo:j,...eD),a=Ks(i),o=[],{bySource:s,unrecorded:c}=yye([...new Set(n.names)].filter(e=>Eo(e)?!0:(o.push({requested:e,status:`failed`,warnings:[],error:`INVALID_NAME`}),!1)),e=>ic(n.scope,e,xs(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 DD(t.source,e).catch(async n=>{let r=Pa[e];if(r===void 0)throw n;return DD(t.source,r)}),r=n?.source??yO(t.source,a.skills[t.names[0]]?.pluginProvider),i=n?.spec??ZE(r);if(!i||nX(i)){for(let e of t.names)o.push({requested:e,status:`failed`,source:t.source,warnings:[],error:`INVALID_SOURCE`});continue}let u=await $E(i);s=u.cleanup,c=u.ref,l=vD(u.dir)}catch(n){P(`skills-reimport-bulk`).warn({source:t.source,err:n,requestId:_S(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=ic(n.scope,s,xs(n.scope,s).root,a);if(!t){o.push({requested:s,status:`not-found`,warnings:[]});continue}let u=$Y(l,{...t.skill===void 0?{}:{recordedSkill:t.skill},localName:s,frontmatterNameOf:e=>_D(e)?.name});if(!u){o.push({requested:s,status:`not-found`,source:t.source,warnings:[]});continue}try{let a=await tc.runSkillReimport({acquiredDir:u.dir,name:s,scope:n.scope,entry:t,lockPath:i,ref:c,actor:r});if(!a.ok){P(`skills-reimport-bulk`).warn({skill:s,err:a.cause,detail:a.detail,requestId:_S(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){P(`skills-reimport-bulk`).warn({skill:s,err:n,requestId:_S(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()}}q(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{pr(),be?.refreshInPlaceSkillDirs(),pr(),await be?.rebuildIgnorePatterns()}catch(e){P(`skills-reimport-bulk`).warn({err:e},`bulk update: ignore-pattern rebuild failed after a reported success`)}}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to update skills.`,{handler:`skills-reimport-bulk`,cause:e})}},{handler:`skills-reimport-bulk`,method:`POST`}),Cc=K(it,async(e,t,n)=>{try{if(!j){G(t,400,`urn:ok:error:invalid-request`,`No project root resolved.`,{handler:`skill-revert`,detail:`NO_PROJECT_ROOT`});return}let e=jk(n,me);if(e.kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`skill-revert`});return}if(!Do(n.name,t,`skill-revert`)||os(n.name,t,`skill-revert`))return;if(n.scope===`global`){G(t,400,`urn:ok:error:invalid-request`,`Global skills are unversioned — there is nothing to revert to.`,{handler:`skill-revert`,detail:`GLOBAL_SCOPE`});return}let r=I(j,...eD),i=Ks(r).skills[n.name];if(!i?.baselineRef){G(t,400,`urn:ok:error:invalid-request`,`This skill has no recorded install baseline to revert to.`,{handler:`skill-revert`,detail:`NO_BASELINE`});return}let a=ee?.current;if(!a){G(t,409,`urn:ok:error:shadow-not-configured`,`No version history available to revert from.`,{handler:`skill-revert`,detail:`NO_SHADOW_REPO`});return}let o=await aX({shadow:a,contentDir:c,contentRoot:O??`.`,name:n.name,version:i.baselineRef,skillDirRel:Wo(n.name)});if(!o.ok){Ho(t,o,`skill-revert`);return}cr(e,or(`skill`,``,n.name),`skill-revert: ${n.name} @ ${i.baselineRef.slice(0,8)}`),await Er(`skill-revert`);let s=R(c,Wo(n.name),`..`),l=qs(s,n.name);await aJ(r,e=>aD(e,n.name,{...e.skills[n.name]??i,...l===void 0?{}:{localHash:l}})),s===Po(`project`)&&await Qs({skillsRoot:s,name:n.name,scope:`project`,hasScripts:o.restoredFiles.some(e=>e.startsWith(`scripts/`)),handler:`skill-revert`}),Le?.(`files`),q(t,200,kr,{name:n.name,baselineRef:i.baselineRef,restoredFiles:o.restoredFiles,warnings:[]},{handler:`skill-revert`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to revert skill.`,{handler:`skill-revert`,cause:e})}},{handler:`skill-revert`,method:`POST`});function wc(e){return e===`autocomplete`||e===`full_text`||e===`omnibar`?e:`omnibar`}function Tc(e){let t=typeof e==`string`?e.split(`,`):Array.isArray(e)?e:void 0;if(!t)return;let n=t.filter(e=>e===`page`||e===`folder`||e===`content`||e===`file`);return n.length>0?n:void 0}function Ec(e){if(typeof e==`boolean`)return e;if(e===`true`)return!0;if(e===`false`)return!1}function Dc(e){return e===`omnibar`||e===`mcp`||e===`http`?e:`http`}let Ac=oye({contentDir:c,projectDir:j,getAllFilesIndex:h,getFileIndexGeneration:_,getSearchMaxEntries:Xye,semanticSearch:De,getSemanticSimilarityFloor:Oe,ready:Ce,getProjectSkillsRoot:()=>Po(`project`),parseFrontmatterDoc:_o});Ac.prewarm();let jc=RW({GET:K(Kt,lV(async(e,t)=>{let n=kc(e),r=n.get(`limit`),i=n.get(`query`)??``,a=wc(n.get(`intent`)),o=cs(n.get(`ranking`)),s=Tc(n.get(`scope`)??n.get(`scopes`)),c=Ec(n.get(`semantic`)),l=Dc(n.get(`source`)),u=r===null?void 0:Number(r);if(i.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-get`});return}q(t,200,Ea,await Ac.buildSearchResponse({query:i,intent:a,ranking:o,scopes:s,limit:u,semanticParam:c,source:l}),{handler:`search-get`})},{handler:`search-get`,title:`Failed to search workspace.`}),{handler:`search-get`,method:`GET`,skipBodyParse:!0}),POST:K(qee,lV(async(e,t,n)=>{let r=typeof n.query==`string`?n.query:``,i=wc(n.intent),a=cs(n.ranking),o=Tc(n.scopes??n.scope),s=typeof n.limit==`number`?n.limit:void 0,c=Ec(n.semantic),l=Dc(n.source);if(r.length>200){G(t,400,`urn:ok:error:invalid-request`,`Query is too long (max 200 chars).`,{handler:`search-post`});return}q(t,200,Ea,await Ac.buildSearchResponse({query:r,intent:i,ranking:a,scopes:o,limit:s,semanticParam:c,source:l}),{handler:`search-post`})},{handler:`search-post`,title:`Failed to search workspace.`}),{handler:`search-post`,method:`POST`})},{handler:`search`}),Mc=K(Kt,lV(async(e,t)=>{q(t,200,bt,{...await KI(qu())},{handler:`skill-install-state`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`skill-install-state`,title:`Failed to read skill install state.`}),{handler:`skill-install-state`,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:`skill-install-state`})});async function Nc(e,t){if(r(e,t,{handler:`handoff`}))try{await wpe(e,t,{contentDir:c,platform:process.platform,isSchemeRegistered:ct.probeWithCache})}catch(n){t.headersSent||(Y.error({err:n,requestId:_S(e)},`[handoff] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`handoff`,cause:n}))}}async function Pc(e,t){if(r(e,t,{handler:`spawn-cursor`}))try{await SN(e,t,{contentDir:c,platform:process.platform})}catch(n){t.headersSent||(Y.error({err:n,requestId:_S(e)},`[spawn-cursor] route wrapper failed`),G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`spawn-cursor`,cause:n}))}}let Fc=K(ree,async(e,t,n)=>{try{if(!j){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}let e=n.kind===`doc`?n.docPath:n.folderPath;if(!ghe(e,n.kind)){nI(`invalid-path`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`invalid-path`},{handler:eI});return}let r=bhe(j);if(r===null){if(fI(j).kind===`no-remote`){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}nI(`detached-head`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`detached-head`},{handler:eI});return}let i=fI(j);if(i.kind===`no-remote`){nI(`no-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`no-remote`},{handler:eI});return}if(i.kind===`non-github`){nI(`non-github-remote`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`non-github-remote`},{handler:eI});return}if(!khe(j,r)){nI(`branch-not-on-origin`,{branchExists:!1,kind:n.kind}),q(t,200,nr,{ok:!1,error:`branch-not-on-origin`,branch:r},{handler:eI});return}let a=sZ(j,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`?_he(i.host,i.owner,i.repo,r,o):tI(i.host,i.owner,i.repo,r,o);let l;try{let e=a===``?0:Iee(tI(i.host,i.owner,i.repo,r,a)).targetSegments.length;l=`https://openknowledge.ai/d/${Oee(s,e)}`}catch(e){if(!(e instanceof Mee))throw e;nI(`unsupported-share-url`,{kind:n.kind}),q(t,200,nr,{ok:!1,error:`unsupported-share-url`},{handler:eI});return}let u=await vhe(j,r,o,n.kind);nI(`ok`,{branchExists:!0,kind:n.kind,freshness:u}),q(t,200,nr,{ok:!0,shareUrl:l,sharedUrl:s,branch:r,freshness:u},{handler:eI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:eI,cause:e})}},{handler:eI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:eI})}),Ic=K(Kt,async(e,t)=>{try{if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:EB});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(!Fee(r)){G(t,400,`urn:ok:error:invalid-request`,`branch query param missing or malformed.`,{handler:EB});return}if(!wB(i,a)){G(t,400,`urn:ok:error:invalid-request`,`path query param missing or malformed.`,{handler:EB});return}q(t,200,uee,await TB(j,r,i,a),{handler:EB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:EB,cause:e})}},{handler:EB,method:`GET`,skipBodyParse:!0});function Lc(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 Rc=K(Eee,async(e,t,n)=>{try{if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:TI});return}if(!wB(n.path,n.kind)){G(t,400,`urn:ok:error:invalid-request`,`path is missing or malformed.`,{handler:TI});return}let e=await Lhe(j,n.branch,n.path,n.kind,{credentialConfig:gc(le,{resetAmbient:mI(j)})});q(t,200,Gt,e.verdict!==`renamed`||n.contentRootDepth===void 0?e:Lc(n.path,e.renamedTo,n.contentRootDepth),{handler:TI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:TI,cause:e})}},{handler:TI,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:TI})}),zc=K(Gn,async(e,t,n)=>{if(jk(n,me).kind===`invalid-summary`){G(t,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:jB});return}if(!j){G(t,500,`urn:ok:error:internal-server-error`,`projectDir is not configured for this server.`,{handler:jB});return}try{q(t,200,Lt,await dc(()=>NB(j,n.branch,{fastForward:n.fastForward===!0,credentialConfig:gc(le,{resetAmbient:mI(j)})})),{handler:jB})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:jB,cause:e})}},{handler:jB,method:`POST`});async function Bc(e){let[t,...n]=le,r=[...n,...e];return await new Promise((e,n)=>{let i=su(t,r,mw({...Li,env:{...process.env}})),a=!1,o=setTimeout(()=>{a=!0,i.kill(`SIGTERM`)},vI),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 ${vI}ms`));return}let r=Buffer.concat(s).toString(`utf-8`);if(t!==0){let e=wI(Buffer.concat(c).toString(`utf-8`)).slice(0,500);Y.warn({code:t,stderr:e},`[share] subprocess exited code=${t} stderr=${e}`)}e({stdout:r,code:t})}),i.on(`error`,e=>{clearTimeout(o),n(e)})})}let Vc=K(Kt,async(e,t)=>{if(!ze.tryAcquire(`/api/share/publish/owners`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share owners operation is already in progress.`,{handler:hI,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Bc([`share`,`owners`,`--json`]),n=Ahe(xI(e));CI(`owners-list`,n.ok?`ok`:n.error,n.ok?{count:n.owners.length}:void 0),q(t,200,Ar,n,{handler:hI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:hI,cause:e})}finally{ze.release(`/api/share/publish/owners`)}},{handler:hI,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:hI})}),Hc=K(Kt,async(e,t)=>{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`owner`)??``,i=n.searchParams.get(`name`)??``;if(!bI(r)||!yI(i)){G(t,400,`urn:ok:error:invalid-request`,`owner and name query params must be valid GitHub identifiers.`,{handler:gI});return}if(!ze.tryAcquire(`/api/share/publish/name-check`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share name-check operation is already in progress.`,{handler:gI,extraHeaders:{"Retry-After":`5`}});return}try{let{stdout:e}=await Bc([`share`,`name-check`,`--owner`,r,`--name`,i,`--json`]),n=jhe(xI(e));CI(`name-check`,n.ok?`ok`:n.error,n.ok?{available:n.available}:void 0),q(t,200,at,n,{handler:gI})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:gI,cause:e})}finally{ze.release(`/api/share/publish/name-check`)}},{handler:gI,method:`GET`,skipBodyParse:!0,preBodyGate:(e,t)=>r(e,t,{handler:gI})}),Uc=K(Qt,async(e,t,n)=>{if(!j){CI(`publish-create`,`no-project`),q(t,200,Sr,{ok:!1,error:`no-project`},{handler:_I});return}if(!bI(n.owner)||!yI(n.name)){G(t,400,`urn:ok:error:invalid-request`,`owner and name must be valid GitHub identifiers.`,{handler:_I});return}if(!ze.tryAcquire(`/api/share/publish`)){G(t,429,`urn:ok:error:concurrent-operation`,`A share publish operation is already in progress.`,{handler:_I,extraHeaders:{"Retry-After":`5`}});return}try{let e=[`share`,`publish`,`--owner`,n.owner,`--name`,n.name,`--visibility`,n.visibility,`--project-dir`,j,`--json`];n.description!==void 0&&n.description.length>0&&e.push(`--description`,n.description);let{stdout:r}=await Bc(e),i=Phe(xI(r));CI(`publish-create`,i.ok?`ok`:i.error),i.ok&&ce?.()?.refreshRemote().catch(()=>{}),q(t,200,Sr,i,{handler:_I})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:_I,cause:e})}finally{ze.release(`/api/share/publish`)}},{handler:_I,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:_I})}),Wc=K(cte,async(e,t,n)=>{try{let e=P(`renderer`);n.droppedSinceLastFlush!==void 0&&n.droppedSinceLastFlush>0&&e.warn({source:`renderer-console`,transport:`web`,event:`client-log-entries-dropped`,droppedSinceLastFlush:n.droppedSinceLastFlush},`client-log-entries-dropped`);for(let t of n.entries)try{e[t.level]({...t.fields,source:`renderer-console`,transport:`web`,...t.sourceId?{sourceId:t.sourceId}:{},...t.lineNumber===void 0?{}:{lineNumber:t.lineNumber},...t.ts===void 0?{}:{clientTs:t.ts}},t.event??t.message)}catch{}q(t,200,bo,{accepted:n.entries.length},{handler:`client-logs`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`client-logs`,cause:e})}},{handler:`client-logs`,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:`client-logs`})}),Gc=j?sA(j):null;async function Kc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n={collabUrl:Ak(e.headers),previewUrl:null,port:Gc?xc(Gc)?.port??0:0,singleFile:Ne};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,bte,n,{handler:`api-config`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config`,extraHeaders:{Allow:`GET, HEAD`}})}async function qc(e,t){if(e.method===`GET`||e.method===`HEAD`){try{let n=Ie?.()??{diagnostics:[]};if(e.method===`HEAD`){t.setHeader(`Content-Type`,`application/json`),t.setHeader(`Cache-Control`,`no-store`),t.setHeader(`X-Content-Type-Options`,`nosniff`),t.statusCode=200,t.end();return}q(t,200,fe,n,{handler:`api-config-diagnostics`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`api-config-diagnostics`,cause:e})}return}G(t,405,`urn:ok:error:method-not-allowed`,`Method not allowed.`,{handler:`api-config-diagnostics`,extraHeaders:{Allow:`GET, HEAD`}})}let Jc=`local-op-embeddings-set-key`,Yc=`local-op-embeddings-clear-key`,Xc=`/api/local-op/embeddings`;function Zc(){let e=Ae?.();return{projectDir:j??c,baseUrl:e?.baseUrl??`https://api.openai.com/v1`}}let Qc=K(fee,async(e,t,n)=>{if(!ze.tryAcquire(Xc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Jc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:r}=Zc();await new yM(ke).setForProject(e,r,n.key),De?.reloadCredential(),q(t,200,yt,{keyPresent:!0},{handler:Jc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to store the key.`,{handler:Jc,cause:e})}finally{ze.release(Xc)}},{handler:Jc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Jc})}),$c=K(Kt,async(e,t)=>{if(!ze.tryAcquire(Xc)){G(t,429,`urn:ok:error:concurrent-operation`,`An embeddings key operation is already in progress.`,{handler:Yc,extraHeaders:{"Retry-After":`5`}});return}try{let{projectDir:e,baseUrl:n}=Zc();await new yM(ke).clearForProject(e,n),De?.reloadCredential(),q(t,200,yt,{keyPresent:!1},{handler:Yc,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to clear the key.`,{handler:Yc,cause:e})}finally{ze.release(Xc)}},{handler:Yc,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:Yc})}),el=`local-op-embeddings-test`,tl=`/api/local-op/embeddings/test`,nl=K(Kt,async(e,t)=>{if(!ze.tryAcquire(tl)){G(t,429,`urn:ok:error:concurrent-operation`,`A connection test is already in progress.`,{handler:el,extraHeaders:{"Retry-After":`5`}});return}try{let e=Ae?.()??{baseUrl:`https://api.openai.com/v1`,model:`text-embedding-3-small`,dimensions:void 0},n=await fM(new yM(ke),j??c,e.baseUrl),r={endpoint:e.baseUrl,model:e.model},i=n.apiKey||n.keyless?await xfe({baseUrl:e.baseUrl,model:e.model,dimensions:e.dimensions,apiKey:n.apiKey??void 0}):{ok:!1,reason:`no_key`,status:void 0};q(t,200,nte,i.ok?{ok:!0,...r,dimensions:i.dimensions}:{ok:!1,...r,reason:i.reason,status:i.status},{handler:el,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to test the embeddings endpoint.`,{handler:el,cause:e})}finally{ze.release(tl)}},{handler:el,method:`POST`,preBodyGate:(e,t)=>r(e,t,{handler:el})}),rl=K(Kt,async(e,t)=>{try{let e=!1,n=!1,r=!1,i=0;if(De){let t=De.getStatus();e=t.enabled,n=t.ready,r=t.capable,i=t.embeddedCount}let a=Ae?.()?.baseUrl??`https://api.openai.com/v1`,o=await fM(new yM(ke),j??c,a),s=o.apiKey!==null,l=!s&&o.keyless,u=s?o.source:null,d=o.apiKey&&o.apiKey.length>=8?o.apiKey.slice(-4):null,f=0;for(let[e]of p())!iS(e)&&!aS(e)&&!Ir(e)&&(f+=1);q(t,200,mte,{enabled:e,keyPresent:s,keyNotRequired:l,keySource:u,keyHint:d,ready:n,capable:r,embedded:i,total:f},{handler:`semantic-status`,extraHeaders:{"Cache-Control":`no-store`}})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:`semantic-status`,cause:e})}},{handler:`semantic-status`,method:`GET`,skipBodyParse:!0}),il=0;function al(){il+=1,Le?.(`lint-config`)}let ol=()=>`${il} ${t.getActiveBranch()} ${k?.readLocalTargetGeneration?.()??0}`;async function sl(e,t){let n=je?.()??Ve;try{let r=await ja(e,sF(c,n,{docName:t,projectDir:j??c,onProblem:e=>Y.warn({problem:e,docName:t},`[lint] native config problem`)}),t),i=[],a=Me?.()??`warning`;if(k&&a!==`off`&&!dS(t)){await ln(t,e,`lint-validation`);let r=IF({projectDir:j??c,contentDir:c,baseConfig:n,derivedDocumentIndex:k,linksValidation:a,admittedDocNames:rn,docFilePathFor:e=>iZ(c,e)}).find(e=>e.id===`links`);r&&(i=(await r.run({targetPath:iZ(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 Y.warn({err:e,docName:t},`[lint] advisory validation pass failed post-write; omitting advisories`),[]}}function cl(e){let t=e.plugins.frontmatter;if(!t.enabled||t.schemas.length===0)return[];let n=uF({projectDir:j??c,contentDir:c});return AP(t.schemas,n)}let ll=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`);if(n!==null&&(n===``||!gZ(n))){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`lint-config`});return}let r=je?.()??Ve,i=[],a=iF(c,n??void 0,e=>i.push(e)),o=oF(j??c,aF(r,a),e=>i.push(e));n===null&&i.push(...cl(o)),q(t,200,va,{effective:o,configFile:a?.file??null,configProblems:i},{handler:`lint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to resolve lint config.`,{handler:`lint-config`,cause:e})}},{handler:`lint-config`,method:`GET`,skipBodyParse:!0}),ul=K(cee,async(e,t,n)=>{let r;try{r=bF(R(c),n.ruleId,n.value)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write markdownlint config.`,{handler:`markdownlint-config`,cause:e});return}if(r.action===`declined-executable`){G(t,409,`urn:ok:error:config-not-writable`,`The native markdownlint config (${r.file}) is an executable module OK will not rewrite — edit it directly or convert it to JSON/JSONC/YAML.`,{handler:`markdownlint-config`});return}al();try{let e=je?.()??Ve,n=[],r=iF(c,void 0,e=>n.push(e)),i=oF(j??c,aF(e,r),e=>n.push(e));n.push(...cl(i)),q(t,200,va,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`markdownlint-config`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The markdownlint rule was saved, but the effective config could not be re-read.`,{handler:`markdownlint-config`,cause:e})}},{handler:`markdownlint-config`,method:`POST`}),dl=K(Et,async(e,t,n)=>{let r;try{let e=R(j??c),t=n.parentPath??[];r=n.delete?Cme(e,n.file):n.field!==void 0&&n.removeField?xme(e,n.file,n.field,t):n.field!==void 0&&n.renameTo!==void 0?Sme(e,n.file,n.field,n.renameTo,t):n.field!==void 0&&n.constraint!==void 0?yme(e,n.file,n.field,n.constraint,t):bme(e,n.file)}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to write the frontmatter schema.`,{handler:`frontmatter-schema`,cause:e});return}if(r.action===`refused`){G(t,409,`urn:ok:error:config-not-writable`,`The frontmatter schema (${r.file}) was not written: ${r.reason}.`,{handler:`frontmatter-schema`});return}(r.action===`created`||r.action===`deleted`)&&Le?.(`files`),al();try{let e=je?.()??Ve,n=[],r=iF(c,void 0,e=>n.push(e)),i=oF(j??c,aF(e,r),e=>n.push(e));n.push(...cl(i)),q(t,200,va,{effective:i,configFile:r?.file??null,configProblems:n},{handler:`frontmatter-schema`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`The schema was saved, but the effective config could not be re-read.`,{handler:`frontmatter-schema`,cause:e})}},{handler:`frontmatter-schema`,method:`POST`}),fl=K(Kt,async(e,t)=>{try{let e=R(j??c),{schemas:n,truncated:r}=Zpe(e),i=new Set(n),a=!1;if(be!==void 0){let t=JX({contentDir:c,contentFilter:be,dirFilter:null,maxEntries:2e4}),n=await t.next();for(;!n.done;){let r=n.value,a=r.kind===`asset`?r.path:void 0;if(a!==void 0&&ut(a)){let t=L(e,R(c,a));!t.startsWith(`..`)&&!pu(t)&&i.add(t)}n=await t.next()}a=n.value.truncated}let o=[...i].sort((e,t)=>e.localeCompare(t));q(t,200,_t,{schemas:o.slice(0,500),truncated:r||a||o.length>500},{handler:`frontmatter-schemas-list`})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Failed to list frontmatter schemas.`,{handler:`frontmatter-schemas-list`,cause:e})}},{handler:`frontmatter-schemas-list`,method:`GET`,skipBodyParse:!0}),pl=e=>{let t=e.replace(/\.(md|mdx)$/i,``),n=o.documents.get(t);return n===void 0?null:n.getText(`source`).toString()},ml=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`doc`)??``;if(n===``||!gZ(n)){G(t,400,`urn:ok:error:invalid-request`,`Missing or invalid doc.`,{handler:`lint`});return}let r=iZ(c,n);if(r===null){G(t,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint`});return}let i=je?.()??Ve,a=[],o=await lF({projectDir:j??c,contentDir:c,baseConfig:i,docRelPath:r,onConfigProblem:e=>a.push(e),liveSourceFor:pl});q(t,200,Je,a.length>0?{...o,warnings:a}:o,{handler:`lint`})}catch(e){if(e instanceof iN){G(t,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint`});return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to lint document.`,{handler:`lint`,cause:e})}},{handler:`lint`,method:`GET`,skipBodyParse:!0}),hl=new EP,gl=tX();function _l(e,t,n){let r=`${n} ${ol()} ${t??``}`;return gl.run(r,()=>Hme(e,{targetPath:t})).promise}function vl(e,t){G(e,409,`urn:ok:error:audit-superseded`,`The lint configuration or branch changed while the audit was running; re-run it.`,{handler:t})}let yl=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`).searchParams.get(`path`),r=n===null||n===``?void 0:n;if(r!==void 0&&!YX(r)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`lint-audit`});return}let i=je?.()??Ve;q(t,200,In,await dF({projectDir:j??c,contentDir:c,baseConfig:i,targetPath:r,liveSourceFor:pl,cache:hl,auditGeneration:ol}),{handler:`lint-audit`})}catch(e){if(e instanceof cF){vl(t,`lint-audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`lint-audit`,cause:e})}},{handler:`lint-audit`,method:`GET`,skipBodyParse:!0}),bl=K(Kt,async(e,t)=>{try{let n=new URL(e.url??``,`http://localhost`),r=n.searchParams.get(`path`),i=r===null||r===``?void 0:r;if(i!==void 0&&!YX(i)){G(t,400,`urn:ok:error:invalid-request`,`Invalid path.`,{handler:`audit`});return}let a=n.searchParams.get(`doc`),o=a===null||a===``?void 0:a;if(o!==void 0){if(i!==void 0||!YX(o)){G(t,400,`urn:ok:error:invalid-request`,`Invalid doc.`,{handler:`audit`});return}i=iZ(c,o)??`${o}.md`}let s=je?.()??Ve,l=await _l(IF({projectDir:j??c,contentDir:c,baseConfig:s,liveSourceFor:pl,derivedDocumentIndex:k??null,linksValidation:Me?.(),admittedDocNames:rn,docFilePathFor:e=>iZ(c,e),cache:hl,auditGeneration:ol}),i,EP.fingerprintConfig(s));if(n.searchParams.get(`counts`)===`1`){q(t,200,mee,Vme(l),{handler:`audit`});return}q(t,200,Pt,l,{handler:`audit`})}catch(e){if(e instanceof cF){vl(t,`audit`);return}G(t,500,`urn:ok:error:internal-server-error`,`Failed to audit project.`,{handler:`audit`,cause:e})}},{handler:`audit`,method:`GET`,skipBodyParse:!0}),xl=K(pa,async(t,n,r)=>{try{let t=ZX(r.docName,n,`lint-fix`);if(t===null)return;let i=Dt(t),a=jk(r,me);if(a.kind===`invalid-summary`){G(n,400,`urn:ok:error:invalid-request`,`Summary must be a string.`,{handler:`lint-fix`});return}let o=a.kind===`anonymous`?`principal-anonymous`:a.writerId,l=a.kind===`anonymous`?`Anonymous`:a.displayName,u=a.kind===`anonymous`?o:a.colorSeed,d=a.kind===`agent`?a.clientName:void 0;if(iS(i)||aS(i)){G(n,400,`urn:ok:error:reserved-doc-name`,`'${i}' is a reserved document name.`,{handler:`lint-fix`});return}let f=iZ(c,i);if(f===null){G(n,404,`urn:ok:error:doc-not-found`,`Document not found.`,{handler:`lint-fix`});return}pN(R(c,f),c);let p=je?.()??Ve,{stored:m}=$n(a.summary),h=await s.getSession(i,o,{displayName:l,colorSeed:u,clientName:d}),g=h.dc.document.getText(`source`).toString(),{cfg:_,before:v,fixed:y}=await gme({projectDir:j??c,contentDir:c,baseConfig:p,docRelPath:f,source:g}),b=v,x;if(y!==g){try{let t=Zo(d),n=Jr[t]??rs(u??o);oe?.setPresence(o,{displayName:l,icon:t,color:n,currentDoc:i,mode:`writing`,ts:Date.now()}),h.dc.document.transact(()=>{cw(h.dc.document,y,`patch`,e.resolveEmbed?{resolveEmbed:e.resolveEmbed,sourcePath:i}:void 0,void 0,ow(h))},h.origin),a.kind!==`anonymous`&&qj(i,o,l,u,void 0,a.kind===`agent`?Qn({clientName:a.clientName,clientVersion:a.clientVersion,label:a.label}):a.actor,m)}finally{oe?.touchMode(o,`idle`)}let t=await Vt(i);if(t?.kind===`failure`){qt(n,t.failure,`lint-fix`);return}if(t?.kind===`divergence`){Jt(n,`lint-fix`);return}Bt(i,`lint-fix`);try{b=await ja(h.dc.document.getText(`source`).toString(),_,f)}catch(e){x=`Re-lint after fix failed: ${e instanceof Error?e.message:String(e)}`,Y.warn({err:e,handler:`lint-fix`},`post-write re-lint failed; reporting pre-fix diagnostics`),b=v}}let S=b.filter(e=>e.severity===`error`).length,C=b.length-S;q(n,200,aee,{file:f,fixedCount:Math.max(0,v.length-b.length),diagnostics:b,errorCount:S,warningCount:C,...x?{warning:x}:{}},{handler:`lint-fix`})}catch(e){if(e instanceof iN){G(n,400,`urn:ok:error:path-escape`,`Path escape detected.`,{handler:`lint-fix`});return}if(e instanceof TS){ES(n,e,`lint-fix`);return}if(e instanceof AS){NS(n,e,`lint-fix`);return}if(e instanceof dw){G(n,503,`urn:ok:error:too-many-agent-sessions`,`Too many agent sessions.`,{handler:`lint-fix`,cause:e,extraHeaders:{"Retry-After":`10`}});return}Y.error({err:e},`[lint-fix] handler failed`),G(n,500,`urn:ok:error:internal-server-error`,`Failed to fix document.`,{handler:`lint-fix`,cause:e})}},{handler:`lint-fix`,method:`POST`}),Sl=`link-preview`,Cl=new XG({cacheDir:Ne?null:R(j??c,`.ok`,`local`,`link-previews`)}),wl=null,Tl=()=>(wl??=Cl.init(),wl),El=Pe??VG;async function Dl(e){let t=await El(e);return t.ok?{ok:!0,metadata:await KG({html:new TextDecoder().decode(t.body),requestUrl:e,finalUrl:t.finalUrl,fetch:El})}:{ok:!1,reason:t.reason}}let Ol=()=>{try{return Fe?.()===!0}catch{return!1}},kl=K(Cn,async(e,t,n)=>{try{if(!Ol()){Y.debug({outcome:`disabled`},`[link-preview] request outcome`),q(t,200,tr,{ok:!1,reason:`disabled`},{handler:Sl});return}await Tl();let e=!1,r=await Cl.load(n.url,()=>(e=!0,Dl(n.url)));Cl.persist();let i=r.ok?r:{ok:!1,reason:`blocked`};Y.debug({outcome:e?r.ok?`fetched-ok`:`fallback`:`cache-hit`},`[link-preview] request outcome`),q(t,200,tr,i,{handler:Sl})}catch(e){G(t,500,`urn:ok:error:internal-server-error`,`Internal server error.`,{handler:Sl,cause:e})}},{handler:Sl,method:`POST`,preBodyGate:(e,t)=>{let n=$G({origin:e.headers.origin,contentType:e.headers[`content-type`]});return n.ok?!0:(n.reason===`origin`?G(t,403,`urn:ok:error:invalid-origin`,`Origin not allowed.`,{handler:Sl}):G(t,400,`urn:ok:error:invalid-request`,`Content-Type must be application/json.`,{handler:Sl}),!1)}}),Al=Pue({service:mt,getPrincipal:me,onChanged:()=>Le?.(`comments`)}),jl=RW({GET:Al.list,POST:Al.create},{handler:`comments`}),Ml=RW({GET:Al.read,POST:Al.mutate,DELETE:Al.remove},{handler:`comment`}),{handleSkillsSearch:Nl,handleSkillsPopular:Pl,handleSkillsPublisher:Fl,handleSkillsDetail:Il,handleSkillsPreview:Ll,handleSkillsDiscover:Rl,handleSkillsResolveRef:zl}=Dye({log:Y,skillsHome:jo,projectDir:j,contentDir:c,resolveSkillDirForRead:Fo}),Bl={"/api/config":Kc,"/api/config/diagnostics":qc,"/api/generated-index/settings":RW({GET:K(Kt,async(e,t)=>{if(!u){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-get`});return}q(t,200,mZ,u(),{handler:`generated-index-settings-get`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-get`,method:`GET`,skipBodyParse:!0}),POST:K(ube,async(e,t,n)=>{if(!d){G(t,404,`urn:ok:error:not-found`,`Not found.`,{handler:`generated-index-settings-set`});return}q(t,200,mZ,await d(n.enabled),{handler:`generated-index-settings-set`,extraHeaders:{"Cache-Control":`no-store`}})},{handler:`generated-index-settings-set`,method:`POST`})},{handler:`generated-index-settings`}),"/api/comments":jl,"/api/comment":Ml,"/api/asset":fi,"/api/asset-text":mi,"/api/comment-counts":Vr,"/api/link-preview":kl,"/api/folder-config":so,"/api/saved-themes":lo,"/api/saved-theme":po,"/api/template":So,"/api/template/import":wo,"/api/templates":go,"/api/skill":As,"/api/skill-file":zs,"/api/skill-file/rename":Bs,"/api/skills":_s,"/api/skills/installed":zr,"/api/skills/search":Nl,"/api/skills/popular":Pl,"/api/skills/publisher":Fl,"/api/skills/detail":Il,"/api/skills/preview":Ll,"/api/skills/discover":Rl,"/api/skills/resolve-ref":zl,"/api/skill/import":ac,"/api/skills/import-bulk":oc,"/api/skill/edit-external":Es,"/api/skill/duplicate":Os,"/api/skill/move-scope":Ds,"/api/skill-upload":pc,"/api/skill/install":mc,"/api/skill/uninstall":hc,"/api/skill/restore":yc,"/api/skill/reimport":bc,"/api/skills/reimport-bulk":Sc,"/api/skill/revert":Cc,"/api/skill/track-in-git":hs,"/api/skill-targets":vc,"/api/search":jc,"/api/semantic-status":rl,"/api/lint/config":ll,"/api/lint/markdownlint-config":ul,"/api/lint/frontmatter-schema":dl,"/api/lint/frontmatter-schemas":fl,"/api/lint":ml,"/api/lint/audit":yl,"/api/lint/fix":xl,"/api/audit":bl,"/api/create-page":gi,"/api/create-folder":yi,"/api/duplicate-path":bi,"/api/rename-path":wi,"/api/delete-path":Di,"/api/trash/cleanup":Ai,"/api/upload":ji,"/api/agent-write":Nr,"/api/agent-write-md":Pr,"/api/agent-write-batch":Fr,"/api/frontmatter-patch":Rr,"/api/agent-patch":Hr,"/api/agent-undo":Ur,"/api/agent-activity":Wr,"/api/agent-burst-diff":Gr,"/api/save-version":$r,"/api/history":ei,"/api/rollback":ni,"/api/__embed-detect":ci,"/api/server-info":ri,"/api/acp/catalog":oi,"/api/share/construct-url":Fc,"/api/share/target-status":Rc,"/api/git/branch-info":Ic,"/api/git/checkout":zc,"/api/share/publish/owners":Vc,"/api/share/publish/name-check":Hc,"/api/share/publish":Uc,"/api/principal":si,"/api/rescue":hi,"/api/workspace":li,"/api/sync/status":Ha,"/api/sync/trigger":Ua,"/api/sync/conflicts":Ga,"/api/sync/conflict-content":qa,"/api/sync/resolve-conflict":Ka,"/api/local-op/clone":Wi,"/api/local-op/ok-init":Qi,"/api/local-op/auth/login":ya,"/api/local-op/auth/status":Da,"/api/local-op/auth/pat":ka,"/api/local-op/auth/gh-login":Sa,"/api/local-op/auth/cancel":wa,"/api/local-op/auth/repos":Fa,"/api/local-op/auth/signout":Ra,"/api/local-op/auth/set-identity":Va,"/api/local-op/embeddings/set-key":Qc,"/api/local-op/embeddings/clear-key":$c,"/api/local-op/embeddings/test":nl,"/api/installed-agents":to,"/api/spawn-cursor":Pc,"/api/handoff":Nc,"/api/install-skill":eo,"/api/skill/install-state":Mc,"/api/seed/plan":Ya,"/api/seed/apply":Xa,"/api/seed/install-pack-skill":Za,"/api/seed/packs":$a,"/api/client-logs":Wc};E&&(Bl[`/api/test-reset`]=qr,Bl[`/api/test-flush-git`]=Kr,Bl[`/api/test-rescan-backlinks`]=Yr,Bl[`/api/test-rescan-files`]=Xr);let Vl=new Set(`/api/comments./api/comment./api/upload./api/lint/markdownlint-config./api/lint/frontmatter-schema./api/lint/fix./api/generated-index/settings./api/create-page./api/create-folder./api/duplicate-path./api/rename-path./api/delete-path./api/trash/cleanup./api/agent-write./api/agent-write-md./api/agent-write-batch./api/frontmatter-patch./api/agent-patch./api/agent-undo./api/save-version./api/rollback./api/sync/trigger./api/sync/resolve-conflict./api/git/checkout./api/test-reset./api/test-flush-git./api/test-rescan-backlinks./api/test-rescan-files./api/install-skill./api/folder-config./api/saved-theme./api/template./api/template/import./api/skill./api/skill-file./api/skill-file/rename./api/skill/import./api/skills/import-bulk./api/skill/duplicate./api/skill/move-scope./api/skill/edit-external./api/skill-upload./api/skill/install./api/skill/uninstall./api/skill/restore./api/skill/reimport./api/skills/reimport-bulk./api/skill/revert./api/skill/track-in-git./api/skills/preview./api/skills/discover./api/skills/resolve-ref./api/skill-targets./api/seed/apply./api/seed/install-pack-skill./api/client-logs`.split(`.`)),Hl=[`/api/local-op/`],Ul=cV({log:Y,policy:n,ephemeral:Ne,table:{resolve(e){let t=Bl[e];if(t)return{template:e,dispatch:(e,n)=>t(e,n)};if(e.startsWith(`/api/history/`)){let t=e.slice(13);return{template:`/api/history/:sha`,dispatch:t?async(e,n)=>{await ti(e,n,decodeURIComponent(t))}:void 0}}return{template:`/api/*`}},isMutating:e=>Vl.has(e)||Hl.some(t=>e.startsWith(t))}}),Wl=PW({hocuspocus:o,derivedDocumentIndex:k,getFileIndex:p,isSafeDocName:gZ,readPageTitleForDocName:ht,readPageTitleForLinkedDocName:gt,readFrontmatterMetadataForLinkedDocName:Ct,collectAdmittedDocNames:rn,resolveAlias:Dt,respondToDerivedIndexQueryFailure:dn}),Gl=[Wl,zW({hocuspocus:o,agentPresenceBroadcaster:oe,isAllowedWorkspaceHostHeader:i,log:Y}),He],Kl=Gl.flatMap(e=>[...e.paths]);sW(Kl,Bl);let ql=Gl.map(e=>cV({log:Y,policy:n,ephemeral:Ne,table:e.table})),Jl={paths:Kl,dispatch:async(e,t)=>{for(let n of ql)if(await n(e,t))return!0;return!1}},Yl=new Set([`/api/search`,`/api/delete-path`,`/api/create-folder`,`/api/save-version`,`/api/skill/import`,`/api/skill/install`,`/api/upload`,`/api/orphans`,`/api/hubs`,`/api/backlinks`,`/api/forward-links`,`/api/dead-links`,`/api/suggest-links`]);for(let e of Yl)if(Bl[e]===void 0&&Wl.table.resolve(e)?.dispatch===void 0)throw Error(`MCP_LOCAL_API_PATHS has no handler for ${e}`);return{priority:100,async onRequest({request:e,response:t}){await Ul(e,t)},nativeApi:Jl,localApi:LW({resolve:e=>{if(!Yl.has(e))return;let t=Bl[e];return t===void 0?Wl.table.resolve(e)?.dispatch:t}})}}function vZ(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=fu(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&&!QB(f,o)){G(s,403,`urn:ok:error:loopback-required`,`Loopback required.`,{handler:`content-asset-gate`});return}if(!eV(e.headers.host,o)){G(s,403,`urn:ok:error:host-not-allowed`,`Host header not allowed.`,{handler:`content-asset-gate`,detail:qB});return}s.setHeader(`X-Content-Type-Options`,`nosniff`);let p=AY(u,r);d||s.setHeader(`Content-Disposition`,p.disposition),p.csp!==null&&s.setHeader(`Content-Security-Policy`,p.csp),p.sandboxedHtml&&s.setHeader(`Cache-Control`,`no-store`),n(e,s,()=>{if(s.headersSent)return;let e=ke.has(u);if(!e&&(i.has(u)||a.has(u))){s.statusCode=404,s.end();return}e&&(s.removeHeader(`Content-Security-Policy`),s.removeHeader(`Content-Disposition`),s.removeHeader(`X-Content-Type-Options`),s.removeHeader(`Cache-Control`)),c()})}}function yZ(e){let t=e?.code;return typeof t==`string`?t:void 0}function fbe(e){let t;try{t=Iu(e.contentDir,{withFileTypes:!0})}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,e.contentDir);return}for(let n of t)n.isFile()&&qx(n.name,ne)&&e.basenameIndex.add(n.name)}async function bZ(e){let t=e.contentDir,n=new Set;async function r(i){let a;try{a=await nd(i,{withFileTypes:!0})}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`read-failed`,n,i);return}for(let o of a){let a=I(i,o.name),s=lN(L(t,a));if(s.startsWith(`..`)||e.contentFilter?.isDirExcluded(s)&&o.isDirectory())continue;let c;try{c=await ed(a)}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`lstat-failed`,n,a);continue}if(c.isSymbolicLink()){let i;try{i=await rd(a)}catch(t){let n=yZ(t);n!==`ENOENT`&&e.onSkip?.(`realpath-failed`,n,a);continue}if(!uN(i,t)){e.onSkip?.(`symlink-escape`,void 0,a);continue}let o;try{o=await id(i)}catch(t){let n=yZ(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()&&qx(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()&&qx(a,de)&&!e.contentFilter?.isExcluded(s)&&e.basenameIndex.add(s)}}await r(t)}const xZ=w({principalId:v().optional(),tabSessionId:v().optional(),expectedServerInstanceId:v().optional(),expectedBranch:v().optional(),expectedDocLineageEpoch:v().optional(),clientProtocolVersion:M().optional(),clientRuntimeVersion:v().optional(),clientKind:v().optional()}).loose(),SZ=[`server-instance-mismatch`,`branch-mismatch`,`rename-redirect`,`doc-deleted`,`doc-lineage-mismatch`];function CZ(e){return SZ.includes(e)}function wZ(e,t){return typeof t!=`string`||t.length===0?e:`${e}:${t}`}function pbe(e){if(e.length===0)return{kind:null,payload:void 0};let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t);if(!CZ(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 TZ=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=wZ(e,this.payload)}};function EZ(e){if(typeof e!=`string`||e.length===0)return;let t;try{t=JSON.parse(e)}catch{return}let n=xZ.safeParse(t);return n.success?n.data:void 0}var DZ=class extends Error{constructor(e){super(e),this.name=`AutoStartDisabledError`}};function OZ(e,t,n=``){e=yd(`.`,e);let r=gd(e),i=0,a,o;for(;i<r.length;i++)a=vd(e,r[i]),o=_d(a),o.isDirectory()?OZ(a,t,vd(n,r[i])):t(vd(n,r[i]),a,o)}function mbe(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=Hte.parse(i.substring(1))))}return e._parsedUrl={pathname:r,search:i,query:a,hash:o,raw:t}}const hbe=()=>{};function gbe(e,t){for(let n=0;n<t.length;n++)if(t[n].test(e))return!0}function kZ(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 _be(e,t,n){let r=0,i,a=kZ(t,n);for(;r<a.length;r++)if(i=e[a[r]])return i}function vbe(e,t,n,r){let i=0,a=kZ(n,r),o,s,c,l;for(;i<a.length;i++)if(o=mu(I(e,c=a[i])),o.startsWith(e)&&xu.existsSync(o)){if(s=xu.statSync(o),s.isDirectory())continue;return l=AZ(c,s,t),l[`Cache-Control`]=t?`no-cache`:`no-store`,{abs:o,stats:s,headers:l}}}function ybe(e,t){return t.statusCode=404,t.end()}function bbe(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),xu.createReadStream(n,s).pipe(t)}const xbe={".br":`br`,".gz":`gzip`};function AZ(e,t,n){let r=xbe[e.slice(-3)],i=qve(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 jZ(e,t={}){e=R(e||`.`);let n=t.onNoMatch||ybe,r=t.setHeaders||hbe,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||OZ(e,(e,n,r)=>{if(!/\.well-known[\\+\/]/.test(e)&&!t.dotfiles&&/(^\.|[\\+|\/+]\.)/.test(e))return;let i=AZ(e,r,l);f&&(i[`Cache-Control`]=f),s[`/`+e.normalize().replace(/\\+/g,`/`)]={abs:n,stats:r,headers:i}});let p=t.dev?vbe.bind(0,e+z,l):_be.bind(0,s);return function(e,t,s){let f=[``],m=mbe(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&&!gbe(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),bbe(e,t,g.abs,g.stats,g.headers)}}const MZ=P(`conflict-storage`);var NZ=class{storePath;projectDir;branch;conflicts=[];constructor(e,t=`main`){this.storePath=I(sA(e),`conflicts.json`),this.projectDir=e,this.branch=t,this.load()}load(){if(!B(this.storePath)){this.conflicts=[];return}try{let e=V(this.storePath,`utf-8`),t=JSON.parse(e);if(t.version!==1){MZ.warn({path:this.storePath},`[conflicts] unknown schema version — resetting`),this.conflicts=[];return}this.branch=t.branch??this.branch,this.conflicts=t.conflicts??[]}catch(e){MZ.warn({err:e},`[conflicts] failed to load conflicts.json — starting empty`),this.conflicts=[]}}save(){try{let e=F(this.storePath);B(e)||Au(e,{recursive:!0});let t={version:1,branch:this.branch,conflicts:this.conflicts};return Uu(this.storePath,JSON.stringify(t,null,2),`utf-8`),!0}catch(e){return MZ.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-B0iwHPX9.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=R(this.projectDir),r=R(t,e);if(!uN(r,t))throw Error(`[conflicts] file path escapes project directory: ${e}`);RL(r,t),Xs(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`]),MZ.info({file:e},`[conflicts] all conflicts resolved — merge commit created`)}catch(t){let n=new Date().toISOString(),r=!1;try{let e=await bb(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){MZ.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}),MZ.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=R(this.projectDir),i=R(r,e.file);if(!uN(i,r))throw Error(`[conflicts] file path escapes project directory: ${e.file}`);switch(RL(i,r),t){case`mine`:break;case`theirs`:{if(!e.theirsSha)throw Error(`[conflicts] working-tree conflict for ${e.file} has no pinned theirs blob`);let{createGitInstance:t}=await import(`./git-handle-B0iwHPX9.mjs`),n=await t(this.projectDir,{credentialConfig:[]}).git.raw([`cat-file`,`blob`,e.theirsSha]);RL(i,r),Xs(i,n,`utf-8`);break}case`content`:if(n===void 0)throw Error(`[conflicts] strategy 'content' requires content parameter`);Xs(i,n,`utf-8`);break;case`delete`:B(i)&&Is(i);break;default:throw Error(`[conflicts] unknown resolve strategy: ${t}`)}this.removeConflict(e.file)}};function Sbe(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 Cbe(e,t){let n=sA(e);try{Au(n,{recursive:!0}),Uu(I(n,ka),`${JSON.stringify(t,null,2)}\n`)}catch{}try{let n=ic(e);Au(F(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`};Uu(n,`${JSON.stringify(r)}\n`,{flag:`a`})}catch{}}const PZ=new Map;let FZ=!1;function wbe(e,t){try{let n=Sbe(e,t);for(let e of PZ.keys())Cbe(e,n)}catch{}}function Tbe(e){PZ.set(e,(PZ.get(e)??0)+1),FZ||(FZ=!0,process.on(`uncaughtExceptionMonitor`,wbe));let t=!1;return{uninstall:()=>{if(t)return;t=!0;let n=PZ.get(e)??0;n<=1?PZ.delete(e):PZ.set(e,n-1)}}}function IZ(e){let t=e.scheduler??Go,n=e.warnBeforeMs??3e5,r=0,i=null,a=null,o=!1,s=!1;function c(){i!==null&&(t.clearTimeout(i),i=null),a!==null&&(t.clearTimeout(a),a=null)}function l(){c(),!(s||o)&&r===0&&(n>0&&n<e.thresholdMs&&(a=t.setTimeout(()=>{a=null,r===0&&!o&&e.log?.warn({msUntilShutdown:n,webSocketClientCount:0},`idle shutdown pending: no WebSocket clients`)},e.thresholdMs-n)),i=t.setTimeout(()=>{if(i=null,!(s||o)&&r===0){o=!0,e.log?.info({webSocketClientCount:0},`idle shutdown firing`);try{let t=e.onShutdown();t&&typeof t.then==`function`&&t.catch(t=>{e.log?.error({err:t},`idle shutdown handler rejected`)})}catch(t){e.log?.error({err:t},`idle shutdown handler threw`)}}},e.thresholdMs))}let u=(e,t)=>{e.url?.startsWith(`/collab`)&&(r++,c(),t.once(`close`,()=>{r--,r<0&&(r=0),r===0&&l()}))};return e.httpServer.on(`upgrade`,u),l(),{detach:()=>{s||(s=!0,e.httpServer.off(`upgrade`,u),c())}}}function LZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function RZ(e){if(!B(e))return{};let t;try{t=(0,XO.parse)(V(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(!LZ(t))return{};let n=t.telemetry;if(!LZ(n))return{};let r=n.localSink;return LZ(r)?r:{}}function zZ(e){return typeof e==`boolean`?e:void 0}function Ebe(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function BZ(e){if(Array.isArray(e)&&e.every(e=>typeof e==`string`))return e}function VZ(e){if(LZ(e))return Ebe(e.maxBytes)}function Dbe(e){if(process.env.OK_DISABLE_LOCAL_SINK===`1`||process.env.OK_DISABLE_LOCAL_SINK===`true`)return null;let t=RZ(Bs(`project`,e.projectDir)),n=RZ(Bs(`project-local`,e.projectDir));if((zZ(n.enabled)??zZ(t.enabled)??!0)===!1)return null;let r=VZ(n.spans)??VZ(t.spans)??52428800,a=VZ(n.logs)??VZ(t.logs)??26214400,o=BZ(n.attributeDenylist)??BZ(t.attributeDenylist)??i;return{telemetry:{projectDir:e.projectDir,spansMaxBytes:r,attributeDenylist:o},logs:{projectDir:e.projectDir,maxBytes:a}}}var HZ;(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})(HZ||={});var Obe;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Obe||={});const UZ=HZ.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),WZ=e=>{switch(typeof e){case`undefined`:return UZ.undefined;case`string`:return UZ.string;case`number`:return Number.isNaN(e)?UZ.nan:UZ.number;case`boolean`:return UZ.boolean;case`function`:return UZ.function;case`bigint`:return UZ.bigint;case`symbol`:return UZ.symbol;case`object`:return Array.isArray(e)?UZ.array:e===null?UZ.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?UZ.promise:typeof Map<`u`&&e instanceof Map?UZ.map:typeof Set<`u`&&e instanceof Set?UZ.set:typeof Date<`u`&&e instanceof Date?UZ.date:UZ.object;default:return UZ.unknown}},X=HZ.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 GZ=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,HZ.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()}};GZ.create=e=>new GZ(e);const KZ=(e,t)=>{let n;switch(e.code){case X.invalid_type:n=e.received===UZ.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case X.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,HZ.jsonStringifyReplacer)}`;break;case X.unrecognized_keys:n=`Unrecognized key(s) in object: ${HZ.joinValues(e.keys,`, `)}`;break;case X.invalid_union:n=`Invalid input`;break;case X.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${HZ.joinValues(e.options)}`;break;case X.invalid_enum_value:n=`Invalid enum value. Expected ${HZ.joinValues(e.options)}, received '${e.received}'`;break;case X.invalid_arguments:n=`Invalid function arguments`;break;case X.invalid_return_type:n=`Invalid function return type`;break;case X.invalid_date:n=`Invalid date`;break;case X.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:HZ.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case X.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case X.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case X.custom:n=`Invalid input`;break;case X.invalid_intersection_types:n=`Intersection results could not be merged`;break;case X.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case X.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,HZ.assertNever(e)}return{message:n}};let kbe=KZ;function qZ(){return kbe}const JZ=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 YZ(e,t){let n=qZ(),r=JZ({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===KZ?void 0:KZ].filter(e=>!!e)});e.common.issues.push(r)}var XZ=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 ZZ;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 ZZ;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 ZZ=Object.freeze({status:`aborted`}),QZ=e=>({status:`dirty`,value:e}),$Z=e=>({status:`valid`,value:e}),eQ=e=>e.status===`aborted`,tQ=e=>e.status===`dirty`,nQ=e=>e.status===`valid`,rQ=e=>typeof Promise<`u`&&e instanceof Promise;var iQ;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(iQ||={});var aQ=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 oQ=(e,t)=>{if(nQ(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 GZ(e.common.issues);return this._error=t,this._error}}};function sQ(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 cQ=class{get description(){return this._def.description}_getType(e){return WZ(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:WZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new XZ,ctx:{common:e.parent.common,data:e.data,parsedType:WZ(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(rQ(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:WZ(e)};return oQ(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:WZ(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return nQ(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=>nQ(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:WZ(e)},r=this._parse({data:e,path:n.path,parent:n});return oQ(n,await(rQ(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:X.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new BQ({schema:this,typeName:Z.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return VQ.create(this,this._def)}nullable(){return HQ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wQ.create(this)}promise(){return zQ.create(this,this._def)}or(e){return DQ.create([this,e],this._def)}and(e){return AQ.create(this,e,this._def)}transform(e){return new BQ({...sQ(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new UQ({...sQ(this._def),innerType:this,defaultValue:t,typeName:Z.ZodDefault})}brand(){return new KQ({typeName:Z.ZodBranded,type:this,...sQ(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new WQ({...sQ(this._def),innerType:this,catchValue:t,typeName:Z.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return qQ.create(this,e)}readonly(){return JQ.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Abe=/^c[^\s-]{8,}$/i,jbe=/^[0-9a-z]+$/,Mbe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Nbe=/^[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,Pbe=/^[a-z0-9_-]{21}$/i,Fbe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ibe=/^[-+]?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)?)??$/,Lbe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let lQ;const Rbe=/^(?:(?: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])$/,zbe=/^(?:(?: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])$/,Bbe=/^(([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]))$/,Vbe=/^(([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])$/,Hbe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ube=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,uQ=`((\\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])))`,Wbe=RegExp(`^${uQ}$`);function dQ(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 Gbe(e){return RegExp(`^${dQ(e)}$`)}function Kbe(e){let t=`${uQ}T${dQ(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function qbe(e,t){return!!((t===`v4`||!t)&&Rbe.test(e)||(t===`v6`||!t)&&Bbe.test(e))}function Jbe(e,t){if(!Fbe.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 Ybe(e,t){return!!((t===`v4`||!t)&&zbe.test(e)||(t===`v6`||!t)&&Vbe.test(e))}var fQ=class e extends cQ{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==UZ.string){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.string,received:t.parsedType}),ZZ}let t=new XZ,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?YZ(n,{code:X.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&YZ(n,{code:X.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Lbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`email`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)lQ||=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`),lQ.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`emoji`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)Nbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`uuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Pbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`nanoid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Abe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cuid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)jbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cuid2`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Mbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`ulid`,code:X.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),YZ(n,{validation:`url`,code:X.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`regex`,code:X.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Kbe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Wbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Gbe(r).test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ibe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`duration`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?qbe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`ip`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Jbe(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`jwt`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Ybe(e.data,r.version)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`cidr`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Hbe.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`base64`,code:X.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Ube.test(e.data)||(n=this._getOrReturnCtx(e,n),YZ(n,{validation:`base64url`,code:X.invalid_string,message:r.message}),t.dirty()):HZ.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:X.invalid_string,...iQ.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...iQ.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...iQ.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...iQ.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...iQ.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...iQ.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...iQ.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...iQ.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...iQ.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...iQ.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...iQ.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...iQ.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...iQ.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...iQ.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,...iQ.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,...iQ.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...iQ.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...iQ.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...iQ.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...iQ.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...iQ.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...iQ.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...iQ.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...iQ.errToObj(t)})}nonempty(e){return this.min(1,iQ.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}};fQ.create=e=>new fQ({checks:[],typeName:Z.ZodString,coerce:e?.coerce??!1,...sQ(e)});function Xbe(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 pQ=class e extends cQ{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)!==UZ.number){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.number,received:t.parsedType}),ZZ}let t,n=new XZ;for(let r of this._def.checks)r.kind===`int`?HZ.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Xbe(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_finite,message:r.message}),n.dirty()):HZ.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,iQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,iQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,iQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,iQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:iQ.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:iQ.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:iQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:iQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:iQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:iQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:iQ.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:iQ.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:iQ.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:iQ.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`&&HZ.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)}};pQ.create=e=>new pQ({checks:[],typeName:Z.ZodNumber,coerce:e?.coerce||!1,...sQ(e)});var mQ=class e extends cQ{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)!==UZ.bigint)return this._getInvalidInput(e);let t,n=new XZ;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),YZ(t,{code:X.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),YZ(t,{code:X.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):HZ.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.bigint,received:t.parsedType}),ZZ}gte(e,t){return this.setLimit(`min`,e,!0,iQ.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,iQ.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,iQ.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,iQ.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:iQ.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:iQ.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:iQ.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:iQ.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:iQ.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:iQ.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}};mQ.create=e=>new mQ({checks:[],typeName:Z.ZodBigInt,coerce:e?.coerce??!1,...sQ(e)});var hQ=class extends cQ{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==UZ.boolean){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.boolean,received:t.parsedType}),ZZ}return $Z(e.data)}};hQ.create=e=>new hQ({typeName:Z.ZodBoolean,coerce:e?.coerce||!1,...sQ(e)});var gQ=class e extends cQ{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==UZ.date){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.date,received:t.parsedType}),ZZ}if(Number.isNaN(e.data.getTime()))return YZ(this._getOrReturnCtx(e),{code:X.invalid_date}),ZZ;let t=new XZ,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),YZ(n,{code:X.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):HZ.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:iQ.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:iQ.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)}};gQ.create=e=>new gQ({checks:[],coerce:e?.coerce||!1,typeName:Z.ZodDate,...sQ(e)});var _Q=class extends cQ{_parse(e){if(this._getType(e)!==UZ.symbol){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.symbol,received:t.parsedType}),ZZ}return $Z(e.data)}};_Q.create=e=>new _Q({typeName:Z.ZodSymbol,...sQ(e)});var vQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.undefined){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.undefined,received:t.parsedType}),ZZ}return $Z(e.data)}};vQ.create=e=>new vQ({typeName:Z.ZodUndefined,...sQ(e)});var yQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.null){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.null,received:t.parsedType}),ZZ}return $Z(e.data)}};yQ.create=e=>new yQ({typeName:Z.ZodNull,...sQ(e)});var bQ=class extends cQ{constructor(){super(...arguments),this._any=!0}_parse(e){return $Z(e.data)}};bQ.create=e=>new bQ({typeName:Z.ZodAny,...sQ(e)});var xQ=class extends cQ{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $Z(e.data)}};xQ.create=e=>new xQ({typeName:Z.ZodUnknown,...sQ(e)});var SQ=class extends cQ{_parse(e){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.never,received:t.parsedType}),ZZ}};SQ.create=e=>new SQ({typeName:Z.ZodNever,...sQ(e)});var CQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.undefined){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.void,received:t.parsedType}),ZZ}return $Z(e.data)}};CQ.create=e=>new CQ({typeName:Z.ZodVoid,...sQ(e)});var wQ=class e extends cQ{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==UZ.array)return YZ(t,{code:X.invalid_type,expected:UZ.array,received:t.parsedType}),ZZ;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(YZ(t,{code:e?X.too_big:X.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(YZ(t,{code:X.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(YZ(t,{code:X.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new aQ(t,e,t.path,n)))).then(e=>XZ.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new aQ(t,e,t.path,n)));return XZ.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:iQ.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:iQ.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:iQ.toString(n)}})}nonempty(e){return this.min(1,e)}};wQ.create=(e,t)=>new wQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...sQ(t)});function TQ(e){if(e instanceof EQ){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=VQ.create(TQ(r))}return new EQ({...e._def,shape:()=>t})}else if(e instanceof wQ)return new wQ({...e._def,type:TQ(e.element)});else if(e instanceof VQ)return VQ.create(TQ(e.unwrap()));else if(e instanceof HQ)return HQ.create(TQ(e.unwrap()));else if(e instanceof jQ)return jQ.create(e.items.map(e=>TQ(e)));else return e}var EQ=class e extends cQ{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=HZ.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==UZ.object){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.object,received:t.parsedType}),ZZ}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof SQ&&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 aQ(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof SQ){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&&(YZ(n,{code:X.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new aQ(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=>XZ.mergeObjectSync(t,e)):XZ.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return iQ.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:iQ.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Z.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of HZ.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 HZ.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return TQ(this)}partial(t){let n={};for(let e of HZ.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 HZ.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof VQ;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return IQ(HZ.objectKeys(this.shape))}};EQ.create=(e,t)=>new EQ({shape:()=>e,unknownKeys:`strip`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)}),EQ.strictCreate=(e,t)=>new EQ({shape:()=>e,unknownKeys:`strict`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)}),EQ.lazycreate=(e,t)=>new EQ({shape:e,unknownKeys:`strip`,catchall:SQ.create(),typeName:Z.ZodObject,...sQ(t)});var DQ=class extends cQ{_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 GZ(e.ctx.common.issues));return YZ(t,{code:X.invalid_union,unionErrors:n}),ZZ}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 GZ(e));return YZ(t,{code:X.invalid_union,unionErrors:i}),ZZ}}get options(){return this._def.options}};DQ.create=(e,t)=>new DQ({options:e,typeName:Z.ZodUnion,...sQ(t)});const OQ=e=>e instanceof PQ?OQ(e.schema):e instanceof BQ?OQ(e.innerType()):e instanceof FQ?[e.value]:e instanceof LQ?e.options:e instanceof RQ?HZ.objectValues(e.enum):e instanceof UQ?OQ(e._def.innerType):e instanceof vQ?[void 0]:e instanceof yQ?[null]:e instanceof VQ?[void 0,...OQ(e.unwrap())]:e instanceof HQ?[null,...OQ(e.unwrap())]:e instanceof KQ||e instanceof JQ?OQ(e.unwrap()):e instanceof WQ?OQ(e._def.innerType):[];var Zbe=class e extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==UZ.object)return YZ(t,{code:X.invalid_type,expected:UZ.object,received:t.parsedType}),ZZ;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}):(YZ(t,{code:X.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),ZZ)}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=OQ(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Z.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...sQ(r)})}};function kQ(e,t){let n=WZ(e),r=WZ(t);if(e===t)return{valid:!0,data:e};if(n===UZ.object&&r===UZ.object){let n=HZ.objectKeys(t),r=HZ.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=kQ(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===UZ.array&&r===UZ.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=kQ(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===UZ.date&&r===UZ.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var AQ=class extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(eQ(e)||eQ(r))return ZZ;let i=kQ(e.value,r.value);return i.valid?((tQ(e)||tQ(r))&&t.dirty(),{status:t.value,value:i.data}):(YZ(n,{code:X.invalid_intersection_types}),ZZ)};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}))}};AQ.create=(e,t,n)=>new AQ({left:e,right:t,typeName:Z.ZodIntersection,...sQ(n)});var jQ=class e extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==UZ.array)return YZ(n,{code:X.invalid_type,expected:UZ.array,received:n.parsedType}),ZZ;if(n.data.length<this._def.items.length)return YZ(n,{code:X.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),ZZ;!this._def.rest&&n.data.length>this._def.items.length&&(YZ(n,{code:X.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new aQ(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>XZ.mergeArray(t,e)):XZ.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};jQ.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new jQ({items:e,typeName:Z.ZodTuple,rest:null,...sQ(t)})};var Qbe=class e extends cQ{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!==UZ.object)return YZ(n,{code:X.invalid_type,expected:UZ.object,received:n.parsedType}),ZZ;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new aQ(n,e,n.path,e)),value:a._parse(new aQ(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?XZ.mergeObjectAsync(t,r):XZ.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof cQ?new e({keyType:t,valueType:n,typeName:Z.ZodRecord,...sQ(r)}):new e({keyType:fQ.create(),valueType:t,typeName:Z.ZodRecord,...sQ(n)})}},MQ=class extends cQ{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!==UZ.map)return YZ(n,{code:X.invalid_type,expected:UZ.map,received:n.parsedType}),ZZ;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new aQ(n,e,n.path,[a,`key`])),value:i._parse(new aQ(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 ZZ;(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 ZZ;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};MQ.create=(e,t,n)=>new MQ({valueType:t,keyType:e,typeName:Z.ZodMap,...sQ(n)});var NQ=class e extends cQ{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==UZ.set)return YZ(n,{code:X.invalid_type,expected:UZ.set,received:n.parsedType}),ZZ;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(YZ(n,{code:X.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(YZ(n,{code:X.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return ZZ;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 aQ(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:iQ.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:iQ.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};NQ.create=(e,t)=>new NQ({valueType:e,minSize:null,maxSize:null,typeName:Z.ZodSet,...sQ(t)});var $be=class e extends cQ{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==UZ.function)return YZ(t,{code:X.invalid_type,expected:UZ.function,received:t.parsedType}),ZZ;function n(e,n){return JZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,qZ(),KZ].filter(e=>!!e),issueData:{code:X.invalid_arguments,argumentsError:n}})}function r(e,n){return JZ({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,qZ(),KZ].filter(e=>!!e),issueData:{code:X.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof zQ){let e=this;return $Z(async function(...t){let o=new GZ([]),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 $Z(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new GZ([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new GZ([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:jQ.create(t).rest(xQ.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||jQ.create([]).rest(xQ.create()),returns:n||xQ.create(),typeName:Z.ZodFunction,...sQ(r)})}},PQ=class extends cQ{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})}};PQ.create=(e,t)=>new PQ({getter:e,typeName:Z.ZodLazy,...sQ(t)});var FQ=class extends cQ{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return YZ(t,{received:t.data,code:X.invalid_literal,expected:this._def.value}),ZZ}return{status:`valid`,value:e.data}}get value(){return this._def.value}};FQ.create=(e,t)=>new FQ({value:e,typeName:Z.ZodLiteral,...sQ(t)});function IQ(e,t){return new LQ({values:e,typeName:Z.ZodEnum,...sQ(t)})}var LQ=class e extends cQ{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return YZ(t,{expected:HZ.joinValues(n),received:t.parsedType,code:X.invalid_type}),ZZ}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return YZ(t,{received:t.data,code:X.invalid_enum_value,options:n}),ZZ}return $Z(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})}};LQ.create=IQ;var RQ=class extends cQ{_parse(e){let t=HZ.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==UZ.string&&n.parsedType!==UZ.number){let e=HZ.objectValues(t);return YZ(n,{expected:HZ.joinValues(e),received:n.parsedType,code:X.invalid_type}),ZZ}if(this._cache||=new Set(HZ.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=HZ.objectValues(t);return YZ(n,{received:n.data,code:X.invalid_enum_value,options:e}),ZZ}return $Z(e.data)}get enum(){return this._def.values}};RQ.create=(e,t)=>new RQ({values:e,typeName:Z.ZodNativeEnum,...sQ(t)});var zQ=class extends cQ{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==UZ.promise&&t.common.async===!1?(YZ(t,{code:X.invalid_type,expected:UZ.promise,received:t.parsedType}),ZZ):$Z((t.parsedType===UZ.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};zQ.create=(e,t)=>new zQ({type:e,typeName:Z.ZodPromise,...sQ(t)});var BQ=class extends cQ{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{YZ(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 ZZ;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?ZZ:r.status===`dirty`||t.value===`dirty`?QZ(r.value):r});{if(t.value===`aborted`)return ZZ;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?ZZ:r.status===`dirty`||t.value===`dirty`?QZ(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`?ZZ:(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`?ZZ:(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(!nQ(e))return ZZ;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=>nQ(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):ZZ);HZ.assertNever(r)}};BQ.create=(e,t,n)=>new BQ({schema:e,typeName:Z.ZodEffects,effect:t,...sQ(n)}),BQ.createWithPreprocess=(e,t,n)=>new BQ({schema:t,effect:{type:`preprocess`,transform:e},typeName:Z.ZodEffects,...sQ(n)});var VQ=class extends cQ{_parse(e){return this._getType(e)===UZ.undefined?$Z(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};VQ.create=(e,t)=>new VQ({innerType:e,typeName:Z.ZodOptional,...sQ(t)});var HQ=class extends cQ{_parse(e){return this._getType(e)===UZ.null?$Z(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};HQ.create=(e,t)=>new HQ({innerType:e,typeName:Z.ZodNullable,...sQ(t)});var UQ=class extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===UZ.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};UQ.create=(e,t)=>new UQ({innerType:e,typeName:Z.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...sQ(t)});var WQ=class extends cQ{_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 rQ(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new GZ(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new GZ(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};WQ.create=(e,t)=>new WQ({innerType:e,typeName:Z.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...sQ(t)});var GQ=class extends cQ{_parse(e){if(this._getType(e)!==UZ.nan){let t=this._getOrReturnCtx(e);return YZ(t,{code:X.invalid_type,expected:UZ.nan,received:t.parsedType}),ZZ}return{status:`valid`,value:e.data}}};GQ.create=e=>new GQ({typeName:Z.ZodNaN,...sQ(e)});var KQ=class extends cQ{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},qQ=class e extends cQ{_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`?ZZ:e.status===`dirty`?(t.dirty(),QZ(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`?ZZ:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Z.ZodPipeline})}},JQ=class extends cQ{_parse(e){let t=this._def.innerType._parse(e),n=e=>(nQ(e)&&(e.value=Object.freeze(e.value)),e);return rQ(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};JQ.create=(e,t)=>new JQ({innerType:e,typeName:Z.ZodReadonly,...sQ(t)}),EQ.lazycreate;var Z;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Z||={}),fQ.create,pQ.create,GQ.create,mQ.create,hQ.create,gQ.create,_Q.create,vQ.create,yQ.create,bQ.create,xQ.create,SQ.create,CQ.create,wQ.create;const exe=EQ.create;EQ.strictCreate,DQ.create,Zbe.create,AQ.create,jQ.create,Qbe.create,MQ.create,NQ.create,$be.create,PQ.create,FQ.create,LQ.create,RQ.create,zQ.create,BQ.create,VQ.create,HQ.create,BQ.createWithPreprocess,qQ.create;const txe=je(`ZodMiniType`,(e,t)=>{if(!e._zod)throw Error(`Uninitialized schema in ZodMiniType.`);b.init(e,t),e.def=t,e.type=t.type,e.parse=(t,n)=>De(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>ce(e,t,n),e.parseAsync=async(t,n)=>y(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>se(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)=>D(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.apply=t=>t(e)}),nxe=je(`ZodMiniObject`,(e,t)=>{m.init(e,t),txe.init(e,t),r(e,`shape`,()=>t.shape)});function YQ(e,t){return new nxe({type:`object`,shape:e??{},...me(t)})}function XQ(e){return!!e._zod}function ZQ(e){let t=Object.values(e);if(t.length===0)return YQ({});let n=t.every(XQ),r=t.every(e=>!XQ(e));if(n)return YQ(e);if(r)return exe(e);throw Error(`Mixed Zod versions detected in object shape.`)}function QQ(e,t){return XQ(e)?ce(e,t):e.safeParse(t)}async function $Q(e,t){return XQ(e)?await se(e,t):await e.safeParseAsync(t)}function e$(e){if(!e)return;let t;if(t=XQ(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function t$(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 ZQ(e)}}if(XQ(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 n$(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 rxe(e){return e.description}function ixe(e){if(XQ(e))return e._zod?.def?.type===`optional`;let t=e;return typeof e.isOptional==`function`?e.isOptional():t._def?.typeName===`ZodOptional`}function r$(e){if(XQ(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 i$=`2025-11-25`,a$=[i$,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],o$=`io.modelcontextprotocol/related-task`,s$=Ie(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),c$=S([v(),M().int()]),l$=v();a({ttl:M().optional(),pollInterval:M().optional()});const axe=w({ttl:M().optional()}),oxe=w({taskId:v()}),u$=a({progressToken:c$.optional(),[o$]:oxe.optional()}),d$=w({_meta:u$.optional()}),f$=d$.extend({task:axe.optional()}),sxe=e=>f$.safeParse(e).success,p$=w({method:v(),params:d$.loose().optional()}),m$=w({_meta:u$.optional()}),h$=w({method:v(),params:m$.loose().optional()}),g$=a({_meta:u$.optional()}),_$=S([v(),M().int()]),v$=w({jsonrpc:N(`2.0`),id:_$,...p$.shape}).strict(),y$=e=>v$.safeParse(e).success,b$=w({jsonrpc:N(`2.0`),...h$.shape}).strict(),cxe=e=>b$.safeParse(e).success,x$=w({jsonrpc:N(`2.0`),id:_$,result:g$}).strict(),S$=e=>x$.safeParse(e).success;var C$;(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`})(C$||={});const w$=w({jsonrpc:N(`2.0`),id:_$.optional(),error:w({code:M().int(),message:v(),data:O().optional()})}).strict(),T$=e=>w$.safeParse(e).success,E$=S([v$,b$,x$,w$]);S([x$,w$]);const D$=g$.strict(),lxe=m$.extend({requestId:_$.optional(),reason:v().optional()}),O$=h$.extend({method:N(`notifications/cancelled`),params:lxe}),k$=w({icons:A(w({src:v(),mimeType:v().optional(),sizes:A(v()).optional(),theme:Re([`light`,`dark`]).optional()})).optional()}),A$=w({name:v(),title:v().optional()}),j$=A$.extend({...A$.shape,...k$.shape,version:v(),websiteUrl:v().optional(),description:v().optional()}),uxe=te(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,u(w({form:u(w({applyDefaults:l().optional()}),p(v(),O())).optional(),url:s$.optional()}),p(v(),O()).optional())),dxe=a({list:s$.optional(),cancel:s$.optional(),requests:a({sampling:a({createMessage:s$.optional()}).optional(),elicitation:a({create:s$.optional()}).optional()}).optional()}),fxe=a({list:s$.optional(),cancel:s$.optional(),requests:a({tools:a({call:s$.optional()}).optional()}).optional()}),pxe=w({experimental:p(v(),s$).optional(),sampling:w({context:s$.optional(),tools:s$.optional()}).optional(),elicitation:uxe.optional(),roots:w({listChanged:l().optional()}).optional(),tasks:dxe.optional(),extensions:p(v(),s$).optional()}),mxe=d$.extend({protocolVersion:v(),capabilities:pxe,clientInfo:j$}),M$=p$.extend({method:N(`initialize`),params:mxe}),N$=e=>M$.safeParse(e).success,hxe=w({experimental:p(v(),s$).optional(),logging:s$.optional(),completions:s$.optional(),prompts:w({listChanged:l().optional()}).optional(),resources:w({subscribe:l().optional(),listChanged:l().optional()}).optional(),tools:w({listChanged:l().optional()}).optional(),tasks:fxe.optional(),extensions:p(v(),s$).optional()}),gxe=g$.extend({protocolVersion:v(),capabilities:hxe,serverInfo:j$,instructions:v().optional()}),P$=h$.extend({method:N(`notifications/initialized`),params:m$.optional()}),_xe=e=>P$.safeParse(e).success,F$=p$.extend({method:N(`ping`),params:d$.optional()}),vxe=w({progress:M(),total:E(M()),message:E(v())}),yxe=w({...m$.shape,...vxe.shape,progressToken:c$}),I$=h$.extend({method:N(`notifications/progress`),params:yxe}),bxe=d$.extend({cursor:l$.optional()}),L$=p$.extend({params:bxe.optional()}),R$=g$.extend({nextCursor:l$.optional()}),xxe=Re([`working`,`input_required`,`completed`,`failed`,`cancelled`]),z$=w({taskId:v(),status:xxe,ttl:S([M(),j()]),createdAt:v(),lastUpdatedAt:v(),pollInterval:E(M()),statusMessage:E(v())}),B$=g$.extend({task:z$}),Sxe=m$.merge(z$),V$=h$.extend({method:N(`notifications/tasks/status`),params:Sxe}),H$=p$.extend({method:N(`tasks/get`),params:d$.extend({taskId:v()})}),U$=g$.merge(z$),W$=p$.extend({method:N(`tasks/result`),params:d$.extend({taskId:v()})});g$.loose();const G$=L$.extend({method:N(`tasks/list`)}),K$=R$.extend({tasks:A(z$)}),q$=p$.extend({method:N(`tasks/cancel`),params:d$.extend({taskId:v()})}),Cxe=g$.merge(z$),J$=w({uri:v(),mimeType:E(v()),_meta:p(v(),O()).optional()}),Y$=J$.extend({text:v()}),X$=v().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Z$=J$.extend({blob:X$}),Q$=Re([`user`,`assistant`]),$$=w({audience:A(Q$).optional(),priority:M().min(0).max(1).optional(),lastModified:oe({offset:!0}).optional()}),e1=w({...A$.shape,...k$.shape,uri:v(),description:E(v()),mimeType:E(v()),size:E(M()),annotations:$$.optional(),_meta:E(a({}))}),wxe=w({...A$.shape,...k$.shape,uriTemplate:v(),description:E(v()),mimeType:E(v()),annotations:$$.optional(),_meta:E(a({}))}),t1=L$.extend({method:N(`resources/list`)}),Txe=R$.extend({resources:A(e1)}),n1=L$.extend({method:N(`resources/templates/list`)}),Exe=R$.extend({resourceTemplates:A(wxe)}),r1=d$.extend({uri:v()}),Dxe=r1,i1=p$.extend({method:N(`resources/read`),params:Dxe}),Oxe=g$.extend({contents:A(S([Y$,Z$]))}),kxe=h$.extend({method:N(`notifications/resources/list_changed`),params:m$.optional()}),Axe=r1,jxe=p$.extend({method:N(`resources/subscribe`),params:Axe}),Mxe=r1,Nxe=p$.extend({method:N(`resources/unsubscribe`),params:Mxe}),Pxe=m$.extend({uri:v()}),Fxe=h$.extend({method:N(`notifications/resources/updated`),params:Pxe}),Ixe=w({name:v(),description:E(v()),required:E(l())}),Lxe=w({...A$.shape,...k$.shape,description:E(v()),arguments:E(A(Ixe)),_meta:E(a({}))}),a1=L$.extend({method:N(`prompts/list`)}),Rxe=R$.extend({prompts:A(Lxe)}),zxe=d$.extend({name:v(),arguments:p(v(),v()).optional()}),o1=p$.extend({method:N(`prompts/get`),params:zxe}),s1=w({type:N(`text`),text:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),c1=w({type:N(`image`),data:X$,mimeType:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),l1=w({type:N(`audio`),data:X$,mimeType:v(),annotations:$$.optional(),_meta:p(v(),O()).optional()}),Bxe=w({type:N(`tool_use`),name:v(),id:v(),input:p(v(),O()),_meta:p(v(),O()).optional()}),Vxe=w({type:N(`resource`),resource:S([Y$,Z$]),annotations:$$.optional(),_meta:p(v(),O()).optional()}),u1=S([s1,c1,l1,e1.extend({type:N(`resource_link`)}),Vxe]),Hxe=w({role:Q$,content:u1}),Uxe=g$.extend({description:v().optional(),messages:A(Hxe)}),Wxe=h$.extend({method:N(`notifications/prompts/list_changed`),params:m$.optional()}),Gxe=w({title:v().optional(),readOnlyHint:l().optional(),destructiveHint:l().optional(),idempotentHint:l().optional(),openWorldHint:l().optional()}),Kxe=w({taskSupport:Re([`required`,`optional`,`forbidden`]).optional()}),d1=w({...A$.shape,...k$.shape,description:v().optional(),inputSchema:w({type:N(`object`),properties:p(v(),s$).optional(),required:A(v()).optional()}).catchall(O()),outputSchema:w({type:N(`object`),properties:p(v(),s$).optional(),required:A(v()).optional()}).catchall(O()).optional(),annotations:Gxe.optional(),execution:Kxe.optional(),_meta:p(v(),O()).optional()}),f1=L$.extend({method:N(`tools/list`)}),qxe=R$.extend({tools:A(d1)}),p1=g$.extend({content:A(u1).default([]),structuredContent:p(v(),O()).optional(),isError:l().optional()});p1.or(g$.extend({toolResult:O()}));const Jxe=f$.extend({name:v(),arguments:p(v(),O()).optional()}),m1=p$.extend({method:N(`tools/call`),params:Jxe}),Yxe=h$.extend({method:N(`notifications/tools/list_changed`),params:m$.optional()});w({autoRefresh:l().default(!0),debounceMs:M().int().nonnegative().default(300)});const h1=Re([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Xxe=d$.extend({level:h1}),g1=p$.extend({method:N(`logging/setLevel`),params:Xxe}),Zxe=m$.extend({level:h1,logger:v().optional(),data:O()}),Qxe=h$.extend({method:N(`notifications/message`),params:Zxe}),$xe=w({hints:A(w({name:v().optional()})).optional(),costPriority:M().min(0).max(1).optional(),speedPriority:M().min(0).max(1).optional(),intelligencePriority:M().min(0).max(1).optional()}),eSe=w({mode:Re([`auto`,`required`,`none`]).optional()}),tSe=w({type:N(`tool_result`),toolUseId:v().describe(`The unique identifier for the corresponding tool call.`),content:A(u1).default([]),structuredContent:w({}).loose().optional(),isError:l().optional(),_meta:p(v(),O()).optional()}),nSe=ae(`type`,[s1,c1,l1]),_1=ae(`type`,[s1,c1,l1,Bxe,tSe]),rSe=w({role:Q$,content:S([_1,A(_1)]),_meta:p(v(),O()).optional()}),iSe=f$.extend({messages:A(rSe),modelPreferences:$xe.optional(),systemPrompt:v().optional(),includeContext:Re([`none`,`thisServer`,`allServers`]).optional(),temperature:M().optional(),maxTokens:M().int(),stopSequences:A(v()).optional(),metadata:s$.optional(),tools:A(d1).optional(),toolChoice:eSe.optional()}),aSe=p$.extend({method:N(`sampling/createMessage`),params:iSe}),v1=g$.extend({model:v(),stopReason:E(Re([`endTurn`,`stopSequence`,`maxTokens`]).or(v())),role:Q$,content:nSe}),y1=g$.extend({model:v(),stopReason:E(Re([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(v())),role:Q$,content:S([_1,A(_1)])}),oSe=w({type:N(`boolean`),title:v().optional(),description:v().optional(),default:l().optional()}),sSe=w({type:N(`string`),title:v().optional(),description:v().optional(),minLength:M().optional(),maxLength:M().optional(),format:Re([`email`,`uri`,`date`,`date-time`]).optional(),default:v().optional()}),cSe=w({type:Re([`number`,`integer`]),title:v().optional(),description:v().optional(),minimum:M().optional(),maximum:M().optional(),default:M().optional()}),lSe=w({type:N(`string`),title:v().optional(),description:v().optional(),enum:A(v()),default:v().optional()}),uSe=w({type:N(`string`),title:v().optional(),description:v().optional(),oneOf:A(w({const:v(),title:v()})),default:v().optional()}),dSe=S([S([w({type:N(`string`),title:v().optional(),description:v().optional(),enum:A(v()),enumNames:A(v()).optional(),default:v().optional()}),S([lSe,uSe]),S([w({type:N(`array`),title:v().optional(),description:v().optional(),minItems:M().optional(),maxItems:M().optional(),items:w({type:N(`string`),enum:A(v())}),default:A(v()).optional()}),w({type:N(`array`),title:v().optional(),description:v().optional(),minItems:M().optional(),maxItems:M().optional(),items:w({anyOf:A(w({const:v(),title:v()}))}),default:A(v()).optional()})])]),oSe,sSe,cSe]),fSe=S([f$.extend({mode:N(`form`).optional(),message:v(),requestedSchema:w({type:N(`object`),properties:p(v(),dSe),required:A(v()).optional()})}),f$.extend({mode:N(`url`),message:v(),elicitationId:v(),url:v().url()})]),pSe=p$.extend({method:N(`elicitation/create`),params:fSe}),mSe=m$.extend({elicitationId:v()}),hSe=h$.extend({method:N(`notifications/elicitation/complete`),params:mSe}),b1=g$.extend({action:Re([`accept`,`decline`,`cancel`]),content:te(e=>e===null?void 0:e,p(v(),S([v(),M(),l(),A(v())])).optional())}),gSe=w({type:N(`ref/resource`),uri:v()}),_Se=w({type:N(`ref/prompt`),name:v()}),vSe=d$.extend({ref:S([_Se,gSe]),argument:w({name:v(),value:v()}),context:w({arguments:p(v(),v()).optional()}).optional()}),x1=p$.extend({method:N(`completion/complete`),params:vSe});function ySe(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function bSe(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}const xSe=g$.extend({completion:a({values:A(v()).max(100),total:E(M().int()),hasMore:E(l())})}),SSe=w({uri:v().startsWith(`file://`),name:v().optional(),_meta:p(v(),O()).optional()}),CSe=p$.extend({method:N(`roots/list`),params:d$.optional()}),S1=g$.extend({roots:A(SSe)}),wSe=h$.extend({method:N(`notifications/roots/list_changed`),params:m$.optional()});S([F$,M$,x1,g1,o1,a1,t1,n1,i1,jxe,Nxe,m1,f1,H$,W$,G$,q$]),S([O$,I$,P$,wSe,V$]),S([D$,v1,y1,b1,S1,U$,K$,B$]),S([F$,aSe,pSe,CSe,H$,W$,G$,q$]),S([O$,I$,Qxe,Fxe,kxe,Yxe,Wxe,V$,hSe]),S([D$,gxe,xSe,Uxe,Rxe,Txe,Exe,Oxe,p1,qxe,U$,K$,B$]);var C1=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===C$.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new TSe(e.elicitations,n)}return new e(t,n,r)}},TSe=class extends C1{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(C$.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function w1(e){return e===`completed`||e===`failed`||e===`cancelled`}const ESe=Symbol(`Let zodToJsonSchema decide on which parser to use`),T1={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`},DSe=e=>typeof e==`string`?{...T1,name:e}:{...T1,...e},OSe=e=>{let t=DSe(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 E1(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function D1(e,t,n,r,i){e[t]=n,E1(e,t,r,i)}const O1=(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 k1(e){if(e.target!==`openAi`)return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy===`relative`?O1(t,e.currentPath):t.join(`/`)}}function kSe(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Z.ZodAny&&(n.items=H1(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&D1(n,`minItems`,e.minLength.value,e.minLength.message,t),e.maxLength&&D1(n,`maxItems`,e.maxLength.value,e.maxLength.message,t),e.exactLength&&(D1(n,`minItems`,e.exactLength.value,e.exactLength.message,t),D1(n,`maxItems`,e.exactLength.value,e.exactLength.message,t)),n}function ASe(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?D1(n,`minimum`,r.value,r.message,t):D1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),D1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?D1(n,`maximum`,r.value,r.message,t):D1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),D1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:D1(n,`multipleOf`,r.value,r.message,t);break}return n}function jSe(){return{type:`boolean`}}function A1(e,t){return H1(e.type._def,t)}const MSe=(e,t)=>H1(e.innerType._def,t);function j1(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>j1(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 NSe(e,t)}}const NSe=(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`:D1(n,`minimum`,r.value,r.message,t);break;case`max`:D1(n,`maximum`,r.value,r.message,t);break}return n};function PSe(e,t){return{...H1(e.innerType._def,t),default:e.defaultValue()}}function FSe(e,t){return t.effectStrategy===`input`?H1(e.schema._def,t):k1(t)}function ISe(e){return{type:`string`,enum:Array.from(e.values)}}const LSe=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function RSe(e,t){let n=[H1(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),H1(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(LSe(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 zSe(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 M1;const N1={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:()=>(M1===void 0&&(M1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),M1),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 P1(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:D1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t);break;case`max`:D1(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`:I1(n,`email`,r.message,t);break;case`format:idn-email`:I1(n,`idn-email`,r.message,t);break;case`pattern:zod`:L1(n,N1.email,r.message,t);break}break;case`url`:I1(n,`uri`,r.message,t);break;case`uuid`:I1(n,`uuid`,r.message,t);break;case`regex`:L1(n,r.regex,r.message,t);break;case`cuid`:L1(n,N1.cuid,r.message,t);break;case`cuid2`:L1(n,N1.cuid2,r.message,t);break;case`startsWith`:L1(n,RegExp(`^${F1(r.value,t)}`),r.message,t);break;case`endsWith`:L1(n,RegExp(`${F1(r.value,t)}$`),r.message,t);break;case`datetime`:I1(n,`date-time`,r.message,t);break;case`date`:I1(n,`date`,r.message,t);break;case`time`:I1(n,`time`,r.message,t);break;case`duration`:I1(n,`duration`,r.message,t);break;case`length`:D1(n,`minLength`,typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,r.message,t),D1(n,`maxLength`,typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case`includes`:L1(n,RegExp(F1(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&I1(n,`ipv4`,r.message,t),r.version!==`v4`&&I1(n,`ipv6`,r.message,t);break;case`base64url`:L1(n,N1.base64url,r.message,t);break;case`jwt`:L1(n,N1.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&L1(n,N1.ipv4Cidr,r.message,t),r.version!==`v4`&&L1(n,N1.ipv6Cidr,r.message,t);break;case`emoji`:L1(n,N1.emoji(),r.message,t);break;case`ulid`:L1(n,N1.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:I1(n,`binary`,r.message,t);break;case`contentEncoding:base64`:D1(n,`contentEncoding`,`base64`,r.message,t);break;case`pattern:zod`:L1(n,N1.base64,r.message,t);break}break;case`nanoid`:L1(n,N1.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(r)}return n}function F1(e,t){return t.patternStrategy===`escape`?VSe(e):e}const BSe=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function VSe(e){let t=``;for(let n=0;n<e.length;n++)BSe.has(e[n])||(t+=`\\`),t+=e[n];return t}function I1(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}}})):D1(e,`format`,t,n,r)}function L1(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:R1(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):D1(e,`pattern`,R1(t,r),n,r)}function R1(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
1188
1188
  ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
1189
1189
  ]))`;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 z1(e,t){if(t.target===`openAi`&&console.warn(`Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.`),t.target===`openApi3`&&e.keyType?._def.typeName===Z.ZodEnum)return{type:`object`,required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,r)=>({...n,[r]:H1(e.valueType._def,{...t,currentPath:[...t.currentPath,`properties`,r]})??k1(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:`object`,additionalProperties:H1(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(t.target===`openApi3`)return n;if(e.keyType?._def.typeName===Z.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=P1(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===Z.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===Z.ZodBranded&&e.keyType._def.type._def.typeName===Z.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=A1(e.keyType._def,t);return{...n,propertyNames:i}}return n}function HSe(e,t){return t.mapStrategy===`record`?z1(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[H1(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||k1(t),H1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||k1(t)],minItems:2,maxItems:2}}}function USe(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 WSe(e){return e.target===`openAi`?void 0:{not:k1({...e,currentPath:[...e.currentPath,`not`]})}}function GSe(e){return e.target===`openApi3`?{enum:[`null`],nullable:!0}:{type:`null`}}const B1={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function KSe(e,t){if(t.target===`openApi3`)return V1(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in B1&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=B1[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 V1(e,t)}const V1=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>H1(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 qSe(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:B1[e.innerType._def.typeName],nullable:!0}:{type:[B1[e.innerType._def.typeName],`null`]};if(t.target===`openApi3`){let n=H1(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&`$ref`in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let n=H1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function JSe(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`,E1(n,`type`,r.message,t);break;case`min`:t.target===`jsonSchema7`?r.inclusive?D1(n,`minimum`,r.value,r.message,t):D1(n,`exclusiveMinimum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),D1(n,`minimum`,r.value,r.message,t));break;case`max`:t.target===`jsonSchema7`?r.inclusive?D1(n,`maximum`,r.value,r.message,t):D1(n,`exclusiveMaximum`,r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),D1(n,`maximum`,r.value,r.message,t));break;case`multipleOf`:D1(n,`multipleOf`,r.value,r.message,t);break}return n}function YSe(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=ZSe(o);s&&n&&(o._def.typeName===`ZodOptional`&&(o=o._def.innerType),o.isNullable()||(o=o.nullable()),s=!1);let c=H1(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=XSe(e,t);return o!==void 0&&(r.additionalProperties=o),r}function XSe(e,t){if(e.catchall._def.typeName!==`ZodNever`)return H1(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 ZSe(e){try{return e.isOptional()}catch{return!0}}const QSe=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return H1(e.innerType._def,t);let n=H1(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:k1(t)},n]}:k1(t)},$Se=(e,t)=>{if(t.pipeStrategy===`input`)return H1(e.in._def,t);if(t.pipeStrategy===`output`)return H1(e.out._def,t);let n=H1(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,H1(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function eCe(e,t){return H1(e.type._def,t)}function tCe(e,t){let n={type:`array`,uniqueItems:!0,items:H1(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&D1(n,`minItems`,e.minSize.value,e.minSize.message,t),e.maxSize&&D1(n,`maxItems`,e.maxSize.value,e.maxSize.message,t),n}function nCe(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>H1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:H1(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>H1(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function rCe(e){return{not:k1(e)}}function iCe(e){return k1(e)}const aCe=(e,t)=>H1(e.innerType._def,t),oCe=(e,t,n)=>{switch(t){case Z.ZodString:return P1(e,n);case Z.ZodNumber:return JSe(e,n);case Z.ZodObject:return YSe(e,n);case Z.ZodBigInt:return ASe(e,n);case Z.ZodBoolean:return jSe();case Z.ZodDate:return j1(e,n);case Z.ZodUndefined:return rCe(n);case Z.ZodNull:return GSe(n);case Z.ZodArray:return kSe(e,n);case Z.ZodUnion:case Z.ZodDiscriminatedUnion:return KSe(e,n);case Z.ZodIntersection:return RSe(e,n);case Z.ZodTuple:return nCe(e,n);case Z.ZodRecord:return z1(e,n);case Z.ZodLiteral:return zSe(e,n);case Z.ZodEnum:return ISe(e);case Z.ZodNativeEnum:return USe(e);case Z.ZodNullable:return qSe(e,n);case Z.ZodOptional:return QSe(e,n);case Z.ZodMap:return HSe(e,n);case Z.ZodSet:return tCe(e,n);case Z.ZodLazy:return()=>e.getter()._def;case Z.ZodPromise:return eCe(e,n);case Z.ZodNaN:case Z.ZodNever:return WSe(n);case Z.ZodEffects:return FSe(e,n);case Z.ZodAny:return k1(n);case Z.ZodUnknown:return iCe(n);case Z.ZodDefault:return PSe(e,n);case Z.ZodBranded:return A1(e,n);case Z.ZodReadonly:return aCe(e,n);case Z.ZodCatch:return MSe(e,n);case Z.ZodPipeline:return $Se(e,n);case Z.ZodFunction:case Z.ZodVoid:case Z.ZodSymbol:return;default:return(e=>void 0)(t)}};function H1(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.(e,t,r,n);if(i!==ESe)return i}if(r&&!n){let e=sCe(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=oCe(e,e.typeName,t),o=typeof a==`function`?H1(a(),t):a;if(o&&cCe(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}const sCe=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:O1(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`),k1(t)):t.$refStrategy===`seen`?k1(t):void 0}},cCe=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),lCe=(e,t)=>{let n=OSe(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:H1(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??k1(n)}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=H1(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??k1(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 uCe(e){return!e||e===`jsonSchema7`||e===`draft-7`?`draft-7`:e===`jsonSchema2019-09`||e===`draft-2020-12`?`draft-2020-12`:`draft-7`}function U1(e,t){return XQ(e)?g(e,{target:uCe(t?.target),io:t?.pipeStrategy??`input`}):lCe(e,{strictUnions:t?.strictUnions??!0,pipeStrategy:t?.pipeStrategy??`input`})}function W1(e){let t=e$(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=r$(t);if(typeof n!=`string`)throw Error(`Schema method literal must be a string`);return n}function G1(e,t){let n=QQ(e,t);if(!n.success)throw n.error;return n.data}var dCe=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(O$,e=>{this._oncancel(e)}),this.setNotificationHandler(I$,e=>{this._onprogress(e)}),this.setRequestHandler(F$,e=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(H$,async(e,t)=>{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new C1(C$.InvalidParams,`Failed to retrieve task: Task not found`);return{...n}}),this.setRequestHandler(W$,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 C1(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 C1(C$.InvalidParams,`Task not found: ${r}`);if(!w1(i.status))return await this._waitForTaskUpdate(r,t.signal),await n();if(w1(i.status)){let e=await this._taskStore.getTaskResult(r,t.sessionId);return this._clearTaskQueue(r),{...e,_meta:{...e._meta,[o$]:{taskId:r}}}}return await n()};return await n()}),this.setRequestHandler(G$,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 C1(C$.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}),this.setRequestHandler(q$,async(e,t)=>{try{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new C1(C$.InvalidParams,`Task not found: ${e.params.taskId}`);if(w1(n.status))throw new C1(C$.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 C1(C$.InvalidParams,`Task not found after cancellation: ${e.params.taskId}`);return{_meta:{},...r}}catch(e){throw e instanceof C1?e:new C1(C$.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),C1.fromError(C$.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),S$(e)||T$(e)?this._onresponse(e):y$(e)?this._onrequest(e,t):cxe(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=C1.fromError(C$.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?.[o$]?.taskId;if(n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:C$.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=sxe(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 C1(C$.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:C$.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),S$(e)?n(e):n(new C1(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(S$(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),S$(e)?r(e):r(C1.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 C1?e:new C1(C$.InternalError,String(e))}}return}let i;try{let r=await this.request(e,B$,n);if(r.task)i=r.task.taskId,yield{type:`taskCreated`,task:r.task};else throw new C1(C$.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:i},n);if(yield{type:`taskStatus`,task:e},w1(e.status)){e.status===`completed`?yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)}:e.status===`failed`?yield{type:`error`,error:new C1(C$.InternalError,`Task ${i} failed`)}:e.status===`cancelled`&&(yield{type:`error`,error:new C1(C$.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 C1?e:new C1(C$.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||{},[o$]: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 C1?e:new C1(C$.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=QQ(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(C1.fromError(C$.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},U$,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},K$,t)}async cancelTask(e,t){return this.request({method:`tasks/cancel`,params:e},Cxe,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||{},[o$]: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||{},[o$]: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||{},[o$]:t.relatedTask}}}),await this._transport.send(r,t)}setRequestHandler(e,t){let n=W1(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(n,r)=>{let i=G1(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=W1(e);this._notificationHandlers.set(n,n=>{let r=G1(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`&&y$(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new C1(C$.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 C1(C$.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new C1(C$.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 C1(C$.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=V$.parse({method:`notifications/tasks/status`,params:a});await this.notification(t),w1(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 C1(C$.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(w1(a.status))throw new C1(C$.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=V$.parse({method:`notifications/tasks/status`,params:o});await this.notification(t),w1(o.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}};function K1(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function fCe(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];K1(a)&&K1(i)?n[r]={...a,...i}:n[r]=i}return n}var pCe=t(Bi(),1),mCe=t(wi(),1);function hCe(){let e=new pCe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,mCe.default)(e),e}var gCe=class{constructor(e){this._ajv=e??hCe()}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)}}},_Ce=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},v1,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},b1,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 vCe(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 yCe(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 bCe=class extends dCe{constructor(e,t){super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(h1.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 gCe,this.setRequestHandler(M$,e=>this._oninitialize(e)),this.setNotificationHandler(P$,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(g1,async(e,t)=>{let n=t.sessionId||t.requestInfo?.headers[`mcp-session-id`]||void 0,{level:r}=e.params,i=h1.safeParse(r);return i.success&&this._loggingLevels.set(n,i.data),{}})}get experimental(){return this._experimental||={tasks:new _Ce(this)},this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=fCe(this._capabilities,e)}setRequestHandler(e,t){let n=e$(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(XQ(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=QQ(m1,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new C1(C$.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=QQ(B$,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new C1(C$.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=QQ(p1,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new C1(C$.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){yCe(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){this._capabilities&&vCe(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:a$.includes(t)?t:i$,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`},D$)}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},y1,t):this.request({method:`sampling/createMessage`,params:e},v1,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},b1,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},b1,t);if(r.action===`accept`&&r.content&&n.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(n.requestedSchema)(r.content);if(!e.valid)throw new C1(C$.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof C1?e:new C1(C$.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},S1,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}async sendResourceListChanged(){return this.notification({method:`notifications/resources/list_changed`})}async sendToolListChanged(){return this.notification({method:`notifications/tools/list_changed`})}async sendPromptListChanged(){return this.notification({method:`notifications/prompts/list_changed`})}};const q1=Symbol.for(`mcp.completable`);function J1(e){return!!e&&typeof e==`object`&&q1 in e}function xCe(e){return e[q1]?.complete}var SCe;(function(e){e.Completable=`McpCompletable`})(SCe||={});const CCe=/^[A-Za-z0-9._-]{1,128}$/;function wCe(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`),!CCe.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 TCe(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 Y1(e){let t=wCe(e);return TCe(e,t.warnings),t.isValid}var ECe=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)}},X1=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 bCe(e,t)}get experimental(){return this._experimental||={tasks:new ECe(this)},this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||=(this.server.assertCanSetRequestHandler(t0(f1)),this.server.assertCanSetRequestHandler(t0(m1)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(f1,()=>({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=t$(t.inputSchema);return e?U1(e,{strictUnions:!0,pipeStrategy:`input`}):DCe})(),annotations:t.annotations,execution:t.execution,_meta:t._meta};if(t.outputSchema){let e=t$(t.outputSchema);e&&(n.outputSchema=U1(e,{strictUnions:!0,pipeStrategy:`output`}))}return n})})),this.server.setRequestHandler(m1,async(e,t)=>{try{let n=this._registeredTools[e.params.name];if(!n)throw new C1(C$.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new C1(C$.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 C1(C$.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i===`required`&&!r)throw new C1(C$.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 C1&&e.code===C$.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 $Q(t$(e.inputSchema)??e.inputSchema,t);if(!r.success){let e=n$(`error`in r?r.error:`Unknown error`);throw new C1(C$.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 C1(C$.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let r=await $Q(t$(e.outputSchema),t.structuredContent);if(!r.success){let e=n$(`error`in r?r.error:`Unknown error`);throw new C1(C$.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 C1(C$.InternalError,`Task ${s} not found during polling`);c=e}return await n.taskStore.getTaskResult(s)}setCompletionRequestHandler(){this._completionHandlerInitialized||=(this.server.assertCanSetRequestHandler(t0(x1)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(x1,async e=>{switch(e.params.ref.type){case`ref/prompt`:return ySe(e),this.handlePromptCompletion(e,e.params.ref);case`ref/resource`:return bSe(e),this.handleResourceCompletion(e,e.params.ref);default:throw new C1(C$.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new C1(C$.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new C1(C$.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return r0;let r=e$(n.argsSchema)?.[e.params.argument.name];if(!J1(r))return r0;let i=xCe(r);return i?n0(await i(e.params.argument.value,e.params.context)):r0}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 r0;throw new C1(C$.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let r=n.resourceTemplate.completeCallback(e.params.argument.name);return r?n0(await r(e.params.argument.value,e.params.context)):r0}setResourceRequestHandlers(){this._resourceHandlersInitialized||=(this.server.assertCanSetRequestHandler(t0(t1)),this.server.assertCanSetRequestHandler(t0(n1)),this.server.assertCanSetRequestHandler(t0(i1)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(t1,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(n1,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([e,t])=>({name:e,uriTemplate:t.resourceTemplate.uriTemplate.toString(),...t.metadata}))})),this.server.setRequestHandler(i1,async(e,t)=>{let n=new URL(e.params.uri),r=this._registeredResources[n.toString()];if(r){if(!r.enabled)throw new C1(C$.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 C1(C$.InvalidParams,`Resource ${n} not found`)}),!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||=(this.server.assertCanSetRequestHandler(t0(a1)),this.server.assertCanSetRequestHandler(t0(o1)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(a1,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?OCe(t.argsSchema):void 0}))})),this.server.setRequestHandler(o1,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new C1(C$.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new C1(C$.InvalidParams,`Prompt ${e.params.name} disabled`);if(n.argsSchema){let r=await $Q(t$(n.argsSchema),e.params.arguments);if(!r.success){let t=n$(`error`in r?r.error:`Unknown error`);throw new C1(C$.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:ZQ(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=ZQ(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=>J1(e instanceof Pe?e._def?.innerType:e))&&this.setCompletionRequestHandler(),a}_createRegisteredTool(e,t,n,r,i,a,o,s,c){Y1(e);let l={title:t,description:n,inputSchema:e0(r),outputSchema:e0(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`&&Y1(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=ZQ(t.paramsSchema)),t.outputSchema!==void 0&&(l.outputSchema=ZQ(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($1(n))r=t.shift(),t.length>1&&typeof t[0]==`object`&&t[0]!==null&&!$1(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 DCe={type:`object`,properties:{}};function Z1(e){return typeof e==`object`&&!!e&&`parse`in e&&typeof e.parse==`function`&&`safeParse`in e&&typeof e.safeParse==`function`}function Q1(e){return`_def`in e||`_zod`in e||Z1(e)}function $1(e){return typeof e!=`object`||!e||Q1(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(Z1)}function e0(e){if(e){if($1(e))return ZQ(e);if(!Q1(e))throw Error(`inputSchema must be a Zod schema or raw shape, received an unrecognized object`);return e}}function OCe(e){let t=e$(e);return t?Object.entries(t).map(([e,t])=>({name:e,description:rxe(t),required:!ixe(t)})):[]}function t0(e){let t=e$(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=r$(t);if(typeof n==`string`)return n;throw Error(`Schema method literal must be a string`)}function n0(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}const r0={completion:{values:[],hasMore:!1}};var i0=class extends Error{constructor(e,t){super(e,t),this.name=`RequestError`}},kCe=e=>e instanceof i0?e:new i0(e.message,{cause:e}),ACe=global.Request,a0=class extends ACe{constructor(e,t){typeof e==`object`&&s0 in e&&(e=e[s0]()),t?.body?.getReader!==void 0&&(t.duplex??=`half`),super(e,t)}},jCe=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)},o0=Symbol(`wrapBodyStream`),MCe=(e,t,n,r,i)=>{let a={method:e,headers:n,signal:i.signal};if(e===`TRACE`){a.method=`GET`;let e=new a0(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[o0]){let e;a.body=new ReadableStream({async pull(t){try{e||=md.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=md.toWeb(r);return new a0(t,a)},s0=Symbol(`getRequestCache`),c0=Symbol(`requestCache`),l0=Symbol(`incomingKey`),u0=Symbol(`urlKey`),NCe=Symbol(`headersKey`),d0=Symbol(`abortControllerKey`),f0={get method(){return this[l0].method||`GET`},get url(){return this[u0]},get headers(){return this[NCe]||=jCe(this[l0])},[Symbol(`getAbortController`)](){return this[s0](),this[d0]},[s0](){return this[d0]||=new AbortController,this[c0]||=MCe(this.method,this[u0],this.headers,this[l0],this[d0])}};[`body`,`bodyUsed`,`cache`,`credentials`,`destination`,`integrity`,`mode`,`redirect`,`referrer`,`referrerPolicy`,`signal`,`keepalive`].forEach(e=>{Object.defineProperty(f0,e,{get(){return this[s0]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(f0,e,{value:function(){return this[s0]()[e]()}})}),Object.defineProperty(f0,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[c0]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(f0,a0.prototype);var PCe=(e,t)=>{let n=Object.create(f0);n[l0]=e;let r=e.url||``;if(r[0]!==`/`&&(r.startsWith(`http://`)||r.startsWith(`https://`))){if(e instanceof Dd)throw new i0(`Absolute URL for :path is not allowed in HTTP/2`);try{n[u0]=new URL(r).href}catch(e){throw new i0(`Invalid absolute URL`,{cause:e})}return n}let i=(e instanceof Dd?e.authority:e.headers.host)||t;if(!i)throw new i0(`Missing host header`);let a;if(e instanceof Dd){if(a=e.scheme,!(a===`http`||a===`https`))throw new i0(`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 i0(`Invalid host header`);return n[u0]=o.href,n},p0=Symbol(`responseCache`),m0=Symbol(`getResponseCache`),h0=Symbol(`cache`),g0=global.Response,_0=class e{#e;#t;[m0](){return delete this[h0],this[p0]||=new g0(this.#e,this.#t)}constructor(t,n){let r;if(this.#e=t,n instanceof e){let e=n[p0];if(e){this.#t=e,this[m0]();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[h0]=[n?.status||200,t,r||n?.headers])}get headers(){let e=this[h0];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2]||{"content-type":`text/plain; charset=UTF-8`})),e[2]):this[m0]().headers}get status(){return this[h0]?.[0]??this[m0]().status}get ok(){let e=this.status;return e>=200&&e<300}};[`body`,`bodyUsed`,`redirected`,`statusText`,`trailers`,`type`,`url`].forEach(e=>{Object.defineProperty(_0.prototype,e,{get(){return this[m0]()[e]}})}),[`arrayBuffer`,`blob`,`clone`,`formData`,`json`,`text`].forEach(e=>{Object.defineProperty(_0.prototype,e,{value:function(){return this[m0]()[e]()}})}),Object.defineProperty(_0.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[p0]},{...t,depth:e==null?null:e-1})}`}}),Object.setPrototypeOf(_0,g0),Object.setPrototypeOf(_0.prototype,g0.prototype);async function FCe(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function v0(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 ICe(e,t){if(e.locked)throw TypeError(`ReadableStream is locked.`);return t.destroyed?void 0:v0(e.getReader(),t)}var y0=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},LCe=`x-hono-already-sent`;global.crypto===void 0&&(global.crypto=pd);var b0=Symbol(`outgoingEnded`),x0=Symbol(`incomingDraining`),RCe=500,zCe=64*1024*1024,S0=e=>{let t=e;if(e.destroyed||t[x0])return;if(t[x0]=!0,e instanceof Dd){try{e.stream?.close?.(Ute.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,RCe);a.unref?.();let o=e=>{n+=e.length,n>zCe&&i()};e.on(`data`,o),e.on(`end`,r),e.on(`error`,r),e.resume()},BCe=()=>new Response(null,{status:400}),C0=e=>new Response(null,{status:e instanceof Error&&(e.name===`TimeoutError`||e.constructor.name===`TimeoutError`)?504:500}),w0=(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))},T0=e=>{`flushHeaders`in e&&e.writable&&e.flushHeaders()},E0=async(e,t)=>{let[n,r,i]=e[h0],a=!1;if(!i)i={"content-type":`text/plain; charset=UTF-8`};else if(i instanceof Headers)a=i.has(`content-length`),i=y0(i);else if(Array.isArray(i)){let e=new Headers(i);a=e.has(`content-length`),i=y0(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())):(T0(t),await ICe(r,t)?.catch(e=>w0(e,t))),t[b0]?.()},VCe=e=>typeof e.then==`function`,HCe=async(e,t,n={})=>{if(VCe(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(C0);if(h0 in e)return E0(e,t);let r=y0(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 FCe(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&&T0(t),await v0(n,t,o))}else r[LCe]||(t.writeHead(e.status,r),t.end());t[b0]?.()},D0=(e,t={})=>{let n=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==a0&&(Object.defineProperty(global,`Request`,{value:a0}),Object.defineProperty(global,`Response`,{value:_0})),async(r,i)=>{let a,o;try{o=PCe(r,t.hostname);let s=!n||r.method===`GET`||r.method===`HEAD`;if(s||(r[o0]=!0,r.on(`end`,()=>{s=!0}),r instanceof Dd&&(i[b0]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{S0(r)})})}),i.on(`finish`,()=>{s||S0(r)})),i.on(`close`,()=>{o[d0]&&(r.errored?o[d0].abort(r.errored.toString()):i.writableFinished||o[d0].abort(`Client connection prematurely closed.`)),s||setTimeout(()=>{s||setTimeout(()=>{S0(r)})})}),a=e(o,{incoming:r,outgoing:i}),h0 in a)return E0(a,i)}catch(e){if(a)return w0(e,i);if(t.errorHandler){if(a=await t.errorHandler(o?e:kCe(e)),!a)return}else a=o?C0(e):BCe()}try{return await HCe(a,i,t)}catch(e){return w0(e,i)}}},UCe=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
1190
1190
  `;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=>E$.parse(e)):[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(N$);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(y$)){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=>N$(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)y$(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)y$(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;y$(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&&!a$.includes(t))return this.onerror?.(Error(`Bad Request: Unsupported protocol version: ${t} (supported versions: ${a$.join(`, `)})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${t} (supported versions: ${a$.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((S$(e)||T$(e))&&(n=e.id),n===void 0){if(S$(e)||T$(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(S$(e)||T$(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)}}}},WCe=class{constructor(e={}){this._requestContext=new WeakMap,this._webStandardTransport=new UCe(e),this._requestListener=D0(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 D0(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 O0=`https://json-schema.org/draft/2020-12/schema`,k0=`tools/list`;function A0(e){let t=e;if(t.__jsonSchemaDialectInstalled===!0)return;let n=e.server._requestHandlers?.get(k0);if(typeof n!=`function`){console.warn(`[json-schema-dialect] No ${k0} 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(f1,async(e,t)=>{let r=await n(e,t);for(let e of r.tools??[])e.inputSchema&&(e.inputSchema.$schema=O0),e.outputSchema&&(e.outputSchema.$schema=O0);return r}),t.__jsonSchemaDialectInstalled=!0}function j0(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||!GCe(e.inputSchema))return n.call(this,e,t,r);let i=await e.inputSchema.safeParseAsync(t);if(i.success)return i.data;let a=le(i.error);throw new C1(C$.InvalidParams,`Input validation error: Invalid arguments for tool ${r}:\n${a}`)},t.__prettyZodErrorsInstalled=!0}function GCe(e){return typeof e!=`object`||!e?!1:typeof e.safeParseAsync==`function`}const M0=2e3,N0=2e3,KCe=[/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 P0(e){return KCe.some(t=>t.test(e))}function qCe(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 JCe(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 YCe(e){let t=[];for(let n of e.split(`
@@ -2032,7 +2032,7 @@ native-divergence-injected
2032
2032
  `)),`${n}${o}`}function VPe(e,t){let{bom:n,body:r}=U7(e),i=[],a=qP(r,i,{allowTrailingComma:!0,disallowComments:!1});if(!a||i.length>0||a.type!==`object`)return{kind:`declined`,reason:`unparseable`};if(BPe(a,t.topLevelKey)>1)return{kind:`declined`,reason:`duplicate-container`};let o=[t.topLevelKey,`open-knowledge`],s=JP(a,o);if(!s)return{kind:`no-entry`,raw:e,shell:e};let c=YP(s);if(!V7(c))return{kind:`declined`,reason:`foreign-entry`};let l=mt(c);if(l.kind===`declined`)return{kind:`declined`,reason:`foreign-entry`};let u=r,d=t.managedKeys.map(e=>({key:e,node:JP(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(G7(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 G7(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 HPe(e,t,n){if(!n)return{kind:`declined`,reason:`no-native-writer`};let{bom:r,body:i}=U7(e),a;try{a=n.parseToObject(i)}catch{return{kind:`declined`,reason:`unparseable`}}let o=a[t.topLevelKey],s=V7(o)?o[`open-knowledge`]:void 0;if(s===void 0)return{kind:`no-entry`,raw:e,shell:e};if(!V7(s))return{kind:`declined`,reason:`foreign-entry`};let c=mt(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,G7(t,e)])))}catch{return{kind:`declined`,reason:`unparseable`}}let u=W7(e,l.text);return{kind:`managed`,raw:`${r}${i}`,shell:u,entry:s,descriptor:c.descriptor}}function K7(e,t,n){return e===null?{kind:`absent`}:Buffer.byteLength(e,`utf8`)>10485760?{kind:`declined`,reason:`oversize`}:t.format===`json`?VPe(e,t):HPe(e,t,n)}function UPe(e,t,n){let{bom:r,body:i}=U7(e),a=i;for(let e of t.managedKeys){let r=qP(a,[],{allowTrailingComma:!0,disallowComments:!1}),o=r?JP(r,[t.topLevelKey,`open-knowledge`,e]):void 0;o&&JSON.stringify(YP(o))===JSON.stringify(n[e])||(a=ZP(a,XP(a,[t.topLevelKey,`open-knowledge`,e],n[e],{formattingOptions:zPe(i)})))}return`${r}${a}`}function q7(e,t,n,r){if(t.format===`json`)return UPe(e,t,n);if(!r)return null;let{body:i}=U7(e),a=Object.fromEntries(t.managedKeys.map(e=>[e,n[e]]));try{return W7(e,r.upsertEntry(i,`open-knowledge`,a).text)}catch{return null}}function WPe(e){let t=H7(e.target);return t?q7(e.raw,t,e.entry,e.tomlEditor):null}function J7(e){let t=H7(e.target);if(!t)return null;let n=K7(e.raw,t,e.tomlEditor);return n.kind===`managed`||n.kind===`no-entry`?n.shell:null}function GPe(e,t,n){return t.shell===n.shell?t.shell:t.shell===e.shell?n.shell:n.shell===e.shell?t.shell:null}function Y7(e){let t=H7(e.target);if(!t)return{kind:`declined`,reason:`unsupported-target`};let n={base:K7(e.layers.base,t,e.tomlEditor),head:K7(e.layers.head,t,e.tomlEditor),index:K7(e.layers.index,t,e.tomlEditor),worktree:K7(e.layers.worktree,t,e.tomlEditor),incoming:K7(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=GPe(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=mt(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=q7(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 KPe=P(`github-account`),qPe=(e,t)=>{let n=cu(`git`,[`config`,`--get-urlmatch`,`credential`,e],mw({cwd:t,encoding:`utf-8`,timeout:5e3}));return n.error||n.status===null||n.status!==0&&n.status!==1?(KPe.warn({status:n.status,signal:n.signal,err:n.error,stderr:typeof n.stderr==`string`?wI(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 JPe(e){return e.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/]*@/i,`$1`)}function YPe(e){let t;for(let n of e.split(`
2033
2033
  `)){let e=n.startsWith(`credential.username `)?n.slice(20).trim():void 0;e&&(t=e)}return t}function X7(e,t={}){let n=uI(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??qPe)(JPe(e),t.cwd??process.cwd()),a=i?sI(YPe(i)):void 0;return a?{host:r,login:a,source:`credential-config`}:{host:r,source:`active`}}function XPe(e={}){let t=e.ttlMs??6e4,n=e.now??Date.now,r;return{resolve(i){let a=Ehe(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=X7(a,{cwd:i,_readCredentialUrlMatch:e._readCredentialUrlMatch});return r={projectDir:i,url:a,account:s,expiresAt:o+t},s},invalidate(){r=void 0}}}function Z7(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 ZPe(e,t){return t===`anonymous`?Math.max(180,e):e}const $=P(`sync-engine`),Q7=new Set(RPe),$7=/^[0-9a-f]{40}$/i,QPe=Td(ou);var e9=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 $Pe(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 eFe(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 t9(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 n9={syncScope:{pathBase:`content`}},r9={syncScope:{pathBase:`project`}};function i9(e){let t=e*1e3,n=t*.15*(2*Math.random()-1);return Math.round(t+n)}function a9(e){let t=kd(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 tFe(e){return e>=8?3600*1e3:e>=5?900*1e3:e>=3?300*1e3:0}const o9=12e4;var nFe=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;lastFetchUtc=null;lastPushedSha=null;lastPullUtc=null;lastPullOutcome=null;consecutiveFailures=0;ahead=0;behind=0;conflictCount=0;pushError;pushErrorCode;pullError;pullErrorCode;pausedReason;currentBranch=`main`;pullInFlight=!1;pushInFlight=!1;hasRemote=!1;identityUnresolved=!1;statePath;conflictStore;constructor(e){this.projectDir=e.projectDir,this.contentDir=e.contentDir,this.contentFilter=e.contentFilter,this.contentRoot=e.contentRoot??``,this.rootOkOutsideContentWalk=lN(L(this.contentDir,I(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=TPe(e.detectGh),this.ghAccountResolver=XPe({_readCredentialUrlMatch:e._readCredentialUrlMatch}),this.tokenStore=e.tokenStore,this.checkPushPermissionFn=e.checkPushPermissionFn??NPe,this.statePath=R(sA(this.projectDir),`sync-state.json`),this.conflictStore=new NZ(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||!oI(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 pc(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=Ld(this.projectDir),n=t?I(t,`MERGE_HEAD`):null,r=n!==null&&B(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 bb(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=Z7(this.lastFetchUtc,this.currentPullIntervalSeconds()),s=Z7(this.lastSyncUtc,this.pushIntervalSeconds);this.schedulePull(o>0?o:void 0),this.schedulePush(s>0?s:void 0),$.info({branch:this.currentBranch,pullDelayMs:o,pushDelayMs:s},`[sync] started`)}stop(){this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null),this.stateSaveTimer!==null&&(clearTimeout(this.stateSaveTimer),this.stateSaveTimer=null),this.state!==`dormant`&&this.transitionTo(`dormant`)}async destroy(){this.stop(),this.saveStateNow()}async setMode(e,t=`config`){if(this.mode===e)return;let n=this.mode;if(this.mode=e,$.info({from:n,to:e,source:t},`[sync] mode changed`),e===`off`){this.cancelScheduledCycles(),await this.drainInFlightCycles(),this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.transitionTo(this.hasRemote?`disabled`:`dormant`),this.saveStateNow();return}if(this.hasRemote=await this.probeRemote(),this.pausedReason=void 0,this.clearPushError(),this.clearPullError(),this.consecutiveFailures=0,!this.hasRemote){this.transitionTo(`dormant`),this.saveStateNow();return}e===`follow`&&(await this.drainInFlightCycles(),this.cancelScheduledCycles(),await this.convertStrandedCommitsToOverlay()),this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush(),this.saveStateNow(),this.probePushPermissionInternal(`refresh`)}async setEnabled(e){await this.setMode(e?`full`:`off`)}cancelScheduledCycles(){this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null)}async drainInFlightCycles(){let e=Date.now();for(;this.pullInFlight||this.pushInFlight;){if(Date.now()-e>3e4){$.warn({pullInFlight:this.pullInFlight,pushInFlight:this.pushInFlight},`[sync] drain: timed out waiting for in-flight cycle`);break}await wd(50)}}async probeUnpushedCommitCount(){return!this.hasRemote||a9(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||a9(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 dc(()=>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.consecutiveFailures=0,this.hasRemote=await this.probeRemote(),!this.hasRemote){this.transitionTo(`dormant`),this.saveStateNow();return}this.transitionTo(`idle`),this.schedulePull(0),this.schedulePush(),this.saveStateNow(),this.probePushPermissionInternal(`refresh`)}}async trigger(e=`sync`){if(this.consecutiveFailures=0,(this.pausedReason===`dirty-tree`||this.pausedReason===`external-changes-pending`||this.pausedReason===`non-content-merge-failure`)&&(this.pausedReason=void 0,this.clearPullError()),this.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}this.state===`dormant`||this.state===`disabled`||this.state===`conflict`||this.state===`auth-error`?$.warn({op:e,state:this.state,mode:this.mode,hasRemote:this.hasRemote,pausedReason:this.pausedReason,conflictCount:this.conflictCount},`[sync] trigger(${e}) ignored — state=${this.state}`):$.info({op:e,state:this.state},`[sync] trigger(${e}) running`),e===`push`?await this.runPushCycle():(await this.runPushCycle(),await this.runPullCycle())}async pullOnce(){let e=this.mode,t=await this.runOneShotPull();return $.info({mode:e,outcome:t},`[sync] one-shot pull complete`),t}async runOneShotPull(){if(this.pullInFlight||this.pushInFlight||this.state===`conflict`||!this.hasRemote||a9(this.projectDir))return this.recordPullOutcome(`refused`);let e=this.mode,t=this.state,n=this.pausedReason;this.pullInFlight=!0;try{return this.recordPullOutcome(await this.doPullCycle())}finally{this.pullInFlight=!1,e===`off`?(this.pausedReason=n,this.transitionTo(t)):this.schedulePull()}}recordPullOutcome(e){return this.lastPullUtc=new Date().toISOString(),this.lastPullOutcome=e,this.cc1Broadcaster?.signal(`sync-status`),e}getStatus(){return{state:this.state,lastSyncUtc:this.lastSyncUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,lastPullUtc:this.lastPullUtc,lastPullOutcome:this.lastPullOutcome,ahead:this.ahead,behind:this.behind,consecutiveFailures:this.consecutiveFailures,conflictCount:this.conflictCount,hasRemote:this.hasRemote,syncEnabled:this.mode!==`off`,syncMode:this.mode,identityUnresolved:this.identityUnresolved,remote:this.hasRemote?Dhe(this.projectDir):null,...this.pushError===void 0?{}:{pushError:this.pushError},...this.pushErrorCode===void 0?{}:{pushErrorCode:this.pushErrorCode},...this.pullError===void 0?{}:{pullError:this.pullError},...this.pullErrorCode===void 0?{}:{pullErrorCode:this.pullErrorCode},pausedReason:this.pausedReason,...this.pushPermission===null?{}:{pushPermission:this.pushPermission}}}async refreshPushPermission(){return this.probePushPermissionInternal(`refresh`)}async refreshIdentity(){let e=await RB(this.projectDir)===null;this.identityUnresolved!==e&&(this.identityUnresolved=e,this.cc1Broadcaster?.signal(`sync-status`))}async applyCommitIdentity(e){let t=await RB(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`;vc(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=fI(this.projectDir);if(t.kind!==`ok`){let e={checkStatus:`unknown`},t=this.pushPermission;return this.pushPermission=e,t9(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=eFe(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&&!t9(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(!B(I(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=Ld(this.projectDir),r=n?I(n,`MERGE_HEAD`):null;if(r!==null&&B(r))try{let n=this.gitHandle(),r=new Set(await bb(n.git,[`diff`,`--name-only`,`--diff-filter=U`]));for(let t of e)r.has(t.file)||this.conflictStore.removeConflict(t.file);this.conflictCount=this.conflictStore.count(),this.conflictCount<t&&$.info({cleared:t-this.conflictCount,remaining:this.conflictCount},`[sync] external resolve detected (mid-merge) — pruned resolved entries`)}catch(e){$.warn({err:e},`[sync] reconcileConflictsFromGit: git probe failed`);return}else{$.info({cleared:e.length},`[sync] external resolve detected (no MERGE_HEAD) — clearing merge-native conflicts`);for(let t of e)this.conflictStore.removeConflict(t.file);this.conflictCount=this.conflictStore.count()}this.conflictCount!==t&&(this.conflictCount===0&&this.state===`conflict`?(this.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush()):this.cc1Broadcaster?.signal(`sync-status`),this.scheduleSaveState())}async resolveConflict(e,t,n){let r=this.conflictStore.list().find(t=>t.file===e)?.variant===`working-tree`;this.setBatchInProgress?.(!0);try{try{await this.conflictStore.resolveConflict(e,t,n)}catch(e){throw this.conflictCount=this.conflictStore.count(),this.scheduleSaveState(),e}r&&($.info({choice:t},`[sync] pull-only: conflict resolved by choice`),await this.notifyContentConflictsResolved([e])),this.conflictCount=this.conflictStore.count(),this.conflictCount===0&&this.state===`conflict`?(this.transitionTo(`idle`),this.pausedReason=void 0,this.schedulePull(),this.schedulePush()):this.cc1Broadcaster?.signal(`sync-status`),this.scheduleSaveState()}finally{this.setBatchInProgress?.(!1)}}updateCurrentBranch(e){e===null?this.state!==`dormant`&&this.state!==`disabled`&&(this.transitionTo(`disabled`),this.pausedReason=`detached-head`,this.scheduleSaveState()):this.currentBranch!==e&&(this.currentBranch=e,this.conflictStore.setBranch(e),this.state===`disabled`&&this.pausedReason===`detached-head`&&(this.pausedReason=void 0,this.transitionTo(`idle`),this.schedulePull(),this.schedulePush()))}schedulePull(e){this.pullTimer!==null&&clearTimeout(this.pullTimer);let t=e??this.effectivePullDelayMs();this.pullTimer=setTimeout(()=>{this.pullTimer=null,this.runPullCycle().catch(e=>{$.error({err:e},`[sync] pull cycle uncaught error`)})},t)}schedulePush(e){if(this.mode!==`full`)return;this.pushTimer!==null&&clearTimeout(this.pushTimer);let t=e??i9(this.pushIntervalSeconds);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`?ZPe(this.pullIntervalSeconds,this.authTier===`anonymous`?`anonymous`:`authenticated`):this.pullIntervalSeconds}effectivePullDelayMs(){let e=tFe(this.consecutiveFailures);return i9(e>0?e/1e3:this.currentPullIntervalSeconds())}async runPullCycle(){if(!this.pullInFlight&&!(this.state===`dormant`||this.state===`disabled`||this.state===`auth-error`)){if(this.state===`conflict`){this.schedulePull();return}if(a9(this.projectDir)){this.schedulePull();return}this.mode===`follow`&&await this.refreshAuthTier(),this.pullInFlight=!0;try{this.recordPullOutcome(await this.doPullCycle())}finally{this.pullInFlight=!1,this.schedulePull()}}}async doPullCycle(){let e=this.gitHandle(),t;try{let n=(await e.git.raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();if(!n||n===`HEAD`)return this.transitionTo(`disabled`),this.pausedReason=`detached-head`,$.warn({},`[sync] detached HEAD — pausing sync`),`refused`;t=n,this.currentBranch=t}catch(e){return this.handleError(P7(e instanceof Error?e:Error(String(e))),`pull`),`error`}this.transitionTo(`fetching`);try{await e.git.fetch(`origin`),this.lastFetchUtc=new Date().toISOString(),this.consecutiveFailures=0,this.clearPullError()}catch(e){let t=P7(e instanceof Error?e:Error(String(e)));return this.handleError(t,`pull`),`error`}try{let t=await e.git.status();this.ahead=t.ahead,this.behind=t.behind}catch{}if(this.behind>0&&this.mode!==`full`){let n=await this.doPullCycleB1(e,t);return this.scheduleSaveState(),n}if(this.behind>0&&this.conflictCount===0){this.transitionTo(`pulling`),this.setBatchInProgress?.(!0);try{await this.commitDirtyContentFilesToHead(e);let n=await this.prepareForMerge(e,t);if(!n.proceed)return`refused`;let r=!0,i=!0;try{await this.applyCommitIdentity(e),await e.git.merge([`origin/${t}`]),this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.transitionTo(`idle`)}finally{n.needsStashPop&&(r=await this.popPreMergeStash(e)),i=this.restoreReconciledMcpOverlays(n.reconciled)}if(!r)throw Error(`failed to replay pre-merge working-tree state`);if(!i)throw Error(`failed to restore reconciled MCP overlays`);return await this.persistReconciledMcpEntries(n.reconciled),this.scheduleSaveState(),`succeeded`}catch(e){let t=P7(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 bb(e.git,[`diff-index`,`--name-only`,`HEAD`]),a=new Set(await bb(e.git,[`diff`,`--name-only`,`HEAD..origin/${t}`]));r=i.filter(e=>a.has(e))}catch(e){return this.handleError(P7(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(P7(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(P7(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(P7(e instanceof Error?e:Error(String(e))),`pull`),`error`}return n.timedOut?($.warn({},`[sync] pull-only: fast-forward timed out — backing off`),this.handleError(P7(Error(`git merge --ff-only timed out after ${o9}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(P7(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(P7(Error(`failed to persist conflict state after fast-forward`)),`pull`),`error`;this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.clearPullError(),this.pausedReason=void 0,this.transitionTo(`idle`),a.newConflicts.length>0&&await this.notifyContentConflictsDetected(a.newConflicts),a.dissolved.length>0&&await this.notifyContentConflictsResolved(a.dissolved),(a.newConflicts.length>0||a.dissolved.length>0)&&this.cc1Broadcaster?.signal(`sync-status`);let o=await this.countStandingOverlay(e);return $.info({created:a.newConflicts.length,autoCombined:a.autoCombined.length,autoDissolved:a.dissolved.length,autoRestored:a.autoRestored.length,overlayStock:o},`[sync] pull-only: fast-forwarded to origin tip`),a.newConflicts.length>0?`conflict`:`succeeded`}finally{this.setBatchInProgress?.(!1)}}async fastForwardOnly(e,t){try{return await QPe(`git`,[`-c`,`core.autocrlf=false`,`merge`,`--ff-only`,`origin/${t}`],{cwd:this.projectDir,env:e.env,windowsHide:!0,timeout:o9}),{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:$Pe({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(!B(I(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=V(I(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=Y7({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=wt(v?await this.gitBlobContent(e,v):``,g,_);if(y.clean){a.push({path:p,bytes:Buffer.from(y.merged,`utf-8`)}),d.push(p),m&&l.push(p);continue}a.push({path:p,bytes:h});let b=await this.gitBlobSha(e,`origin/${t}:${p}`);if(b===void 0){$.warn({path:p},`[sync] pull-only: could not pin origin blob for a collision — keeping overlay, deferring`);continue}c.push({file:p,detectedAt:r?.detectedAt??new Date().toISOString(),variant:`working-tree`,theirsSha:b,baseSha:v}),m||u.push(p)}return{writes:a,mineRestore:o,deletions:s,upserts:c,dissolved:l,newConflicts:u,autoCombined:d,autoRestored:f}}applyOverlayPlan(e,t){for(let{path:t,bytes:n}of e){let e=I(this.projectDir,t);RL(e,this.projectDir),Xs(e,n)}for(let e of t){let t=I(this.projectDir,e);RL(t,this.projectDir);try{Is(t)}catch(e){if(e.code!==`ENOENT`)throw e}}}isContentConflictPath(e){let t=I(this.projectDir,e),n=lN(L(this.contentDir,t));return!n.startsWith(`..`)&&Kx(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 bb(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(a9(this.projectDir)){this.schedulePush();return}this.pushInFlight=!0;try{await this.doPushCycle(1)}finally{this.pushInFlight=!1,this.schedulePush()}}}async doPushCycle(e=0){let t=I(Xu(),`ok-sync-idx-${process.pid}-${Date.now()}.idx`),n=null;this.transitionTo(`pushing`);try{let e=this.gatherContentFilesSync();await dc(async()=>{let r=this.gitHandle(t);if(a9(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(P7(e instanceof Error?e:Error(String(e))),`push`);return}await r.git.raw([`read-tree`,i]);let a=await this.listHeadContentPaths(r,i),o=await this.stageContentFiles(r,e),s=new Set(o.map(e=>e.projectRelPath)),c=[...a].filter(e=>!s.has(e));await this.removePathsFromIndex(r,c);let l=(await r.git.raw([`write-tree`])).trim(),u=``;try{u=(await r.git.raw([`rev-parse`,`${i}^{tree}`])).trim()}catch{}if(u&&u===l){let t=null;try{t=(await r.git.raw([`rev-parse`,`origin/${this.currentBranch}`])).trim()}catch{}if(t===i){$.info({contentFileCount:e.length,headSha:i},`[sync] push cycle: nothing to commit (tree unchanged, origin matches HEAD)`),this.lastPushedSha=i,this.lastSyncUtc=new Date().toISOString(),this.clearPushError(),this.transitionTo(`idle`);return}$.info({headSha:i,upstreamSha:t},`[sync] push cycle: tree unchanged but local ahead of origin — pushing existing commits`);let a=!1;try{await r.git.raw([`rev-parse`,`--abbrev-ref`,`${this.currentBranch}@{u}`]),a=!0}catch{}a?await r.git.raw([`push`,`origin`,this.currentBranch]):await r.git.raw([`push`,`--set-upstream`,`origin`,this.currentBranch]),n=i;return}let d=[],f=[];try{let t=await bb(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)??lN(L(this.contentDir,I(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||!$7.test(m)){$.warn({raw:m},`[sync] commit-tree returned invalid SHA — aborting push`),this.transitionTo(`idle`);return}await r.git.raw([`update-ref`,`refs/heads/${this.currentBranch}`,m,i]),await this.resetRealIndexForPaths(d);let h=!1;try{await r.git.raw([`rev-parse`,`--abbrev-ref`,`${this.currentBranch}@{u}`]),h=!0}catch{}h?await r.git.raw([`push`,`origin`,this.currentBranch]):await r.git.raw([`push`,`--set-upstream`,`origin`,this.currentBranch]),n=m}),n&&(this.lastPushedSha=n,this.lastSyncUtc=new Date().toISOString(),this.ahead=0,this.clearPushError(),this.state===`pushing`&&this.transitionTo(`idle`),this.pausedReason===`dirty-tree`&&(this.pausedReason=void 0,this.clearPullError(),this.schedulePull(0)))}catch(t){let n=t instanceof Error?t:Error(String(t));n instanceof e9&&$.warn({err:n},`[sync] push cycle: staging error detail`);let r=P7(n);if(r.class===`semantic`&&r.subclass===`non-fast-forward`){if(e>0){$.info({},`[sync] push rejected (non-fast-forward) — fetching, merging, retrying`);let e=this.gitHandle();this.setBatchInProgress?.(!0);try{await e.git.fetch(`origin`),await this.commitDirtyContentFilesToHead(e);let t=await this.prepareForMerge(e,this.currentBranch);if(!t.proceed){this.setBatchInProgress?.(!1);return}let n=!0,r=!0;try{await this.applyCommitIdentity(e),await e.git.merge([`origin/${this.currentBranch}`])}finally{t.needsStashPop&&(n=await this.popPreMergeStash(e)),r=this.restoreReconciledMcpOverlays(t.reconciled)}if(!n)throw Error(`failed to replay pre-merge working-tree state`);if(!r)throw Error(`failed to restore reconciled MCP overlays`);await this.persistReconciledMcpEntries(t.reconciled)}catch(e){let t=P7(e instanceof Error?e:Error(String(e)));if(t.class===`semantic`&&t.subclass===`merge-conflict`)await this.handleMergeConflict();else if(e instanceof e9)throw e;else this.handleError(t,`pull`);this.scheduleSaveState();return}finally{this.setBatchInProgress?.(!1)}await this.doPushCycle(0);return}$.info({},`[sync] push still rejected after retry — waiting for next pull cycle`),this.consecutiveFailures++,this.state===`pushing`&&this.transitionTo(`idle`)}else this.handleError(r,`push`)}finally{try{Hu(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=I(Xu(),`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 bb(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||!$7.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{Hu(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=V(I(this.projectDir,n),`utf8`)}catch{}return Y7({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 bb(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 bb(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.pullErrorCode=void 0,this.pullError=`Sync paused — your local changes to ${e}${t} conflict with incoming changes. Commit, stash, or discard them before syncing.`,this.pausedReason=`external-changes-pending`,this.consecutiveFailures=0,this.transitionTo(`idle`),this.scheduleSaveState(),$.warn({files:a},`[sync] paused — dirty paths overlap incoming merge`),{proceed:!1,needsStashPop:!1,reconciled:[]}}if(n.length>0)try{await e.git.raw([`restore`,`--source=HEAD`,`--staged`,`--worktree`,`--`,...n.map(e=>e.path)])}catch(e){return $.warn({err:e},`[sync] could not isolate reconciled MCP paths from pre-merge stash`),this.pullError=`Sync paused — OpenKnowledge could not safely isolate local MCP launcher changes before merging.`,this.pausedReason=`external-changes-pending`,this.transitionTo(`idle`),this.scheduleSaveState(),{proceed:!1,needsStashPop:!1,reconciled:[]}}let c=new Set(n.map(e=>e.path));if(r.every(e=>c.has(e)))return{proceed:!0,needsStashPop:!1,reconciled:n};let l=`ok-sync: pre-merge stash @ ${new Date().toISOString()}`;try{await e.git.raw([`stash`,`push`,`-m`,l])}catch(e){return $.warn({err:e},`[sync] stash push failed — proceeding without stash`),{proceed:!0,needsStashPop:!1,reconciled:n}}return{proceed:!0,needsStashPop:!0,reconciled:n}}restoreReconciledMcpOverlays(e){let t=!0;for(let n of e)try{let e=I(this.projectDir,n.path);RL(e,this.projectDir);let t=null;try{t=V(e,`utf8`)}catch(e){$.warn({err:e,path:n.path},`[sync] could not read MCP config before restoring reconciled overlay`)}t!==n.raw&&Xs(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=Ld(this.projectDir);return e?[`MERGE_HEAD`,`CHERRY_PICK_HEAD`,`REVERT_HEAD`,`rebase-merge`,`rebase-apply`].some(t=>B(I(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 dc(async()=>{let t=I(Xu(),`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=WPe({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),Uu(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=J7({target:o.path,raw:l,tomlEditor:this.mcpTomlEditor}),m=J7({target:o.path,raw:o.raw,tomlEditor:this.mcpTomlEditor}),h=p!==null&&p===m?l:o.raw,g=`${t}.replay-${r}`;n.push(g),Uu(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(!$7.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=I(this.projectDir,e.path);RL(t,this.projectDir),V(t,`utf8`)!==e.raw&&Xs(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{Hu(e)}catch{}try{Hu(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 bb(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 e9(lN(L(this.projectDir,t))||`.`,e)},n=(r,i,a,o)=>{let s;try{s=Iu(r,{withFileTypes:!0})}catch(e){o?.(e,r);return}for(let c of s){let s=I(r,c.name);if(c.isDirectory()){let e=lN(L(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=lN(L(i,s));if(!t.startsWith(`..`)&&!this.contentFilter.isExcluded(t,a)){let t=lN(L(this.contentDir,s)),n=lN(L(this.projectDir,s));e.push({contentRelPath:t,projectRelPath:n})}}}};if(B(this.contentDir)&&n(this.contentDir,this.contentDir,n9),this.rootOkOutsideContentWalk){let e=I(this.projectDir,`.ok`);B(e)&&!this.contentFilter.isDirExcluded(`.ok`,r9)&&n(e,this.projectDir,r9,t)}return e}async listHeadContentPaths(e,t){let n=new Set;try{let r=await bb(e.git,[`ls-tree`,`-r`,`--name-only`,t]);for(let e of r){let t=I(this.projectDir,e),r=lN(L(this.contentDir,t)),i=!r.startsWith(`..`)&&!this.contentFilter.isExcluded(r,n9),a=this.rootOkOutsideContentWalk&&e.startsWith(`.ok/`)&&!this.contentFilter.isExcluded(e,r9);(i||a)&&n.add(e)}}catch{}return n}async removePathsFromIndex(e,t){if(t.length===0)return;let n=[...new Set(t)];for(let t=0;t<n.length;t+=100){let r=n.slice(t,t+100);await e.git.raw([`rm`,`--cached`,`--`,...r])}}async resetRealIndexForPaths(e,t){if(e.length===0)return;let n=t??this.gitHandle(),r=[...new Set(e)];for(let e=0;e<r.length;e+=100){let t=r.slice(e,e+100);try{await n.git.raw([`reset`,`HEAD`,`--`,...t])}catch{}}}buildCommitMessage(e){return e.length===0?`Auto-save: changes saved`:e.length<=3?`Auto-save: Updated ${e.join(`, `)}`:`Auto-save: ${e.length} files changed`}async handleMergeConflict(){let e=this.gitHandle(),t=[];try{t=await bb(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=lN(L(this.projectDir,Bs(`project`,this.projectDir)));for(let t of r)try{await e.git.raw([`checkout`,`--theirs`,`--`,t]),await e.git.raw([`add`,`--`,t]),t.toLowerCase()===a.toLowerCase()?$.warn({file:t},`[sync] auto-resolved .ok/config.yml conflict with theirs: local project config edits were overwritten by the remote version`):$.info({file:t},`[sync] auto-resolved non-content conflict with theirs`)}catch(e){$.warn({err:e,file:t},`[sync] non-content auto-resolve failed — will abort merge and pause sync`),i.push({file:t,err:e})}if(i.length>0){let t=i.map(e=>e.file);try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e,files:t},`[sync] git merge --abort failed during non-content cleanup`)}let n=t.slice(0,3).join(`, `),r=t.length>3?`, +${t.length-3} more`:``;this.pullErrorCode=void 0,this.pullError=`Sync paused — couldn't auto-resolve ${n}${r}. Resolve in your terminal (e.g. \`git rm <file>\` or \`git checkout --ours/--theirs <file> && git add <file>\`), then retry sync.`,this.pausedReason=`non-content-merge-failure`,this.consecutiveFailures=0,this.transitionTo(`idle`),this.scheduleSaveState(),$.warn({files:t},`[sync] non-content auto-resolve failed — merge aborted, sync paused`);return}if(n.length>0){for(let e of n)this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count(),await this.notifyContentConflictsDetected(n),this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null),this.transitionTo(`conflict`),$.warn({files:n},`[sync] content conflicts — sync paused until resolved`)}else{let t=!1;try{await this.applyCommitIdentity(e),await e.git.raw([`commit`,`--no-edit`]);let n=Ld(this.projectDir);t=n===null||!B(I(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.consecutiveFailures++,this.transitionTo(`idle`),this.pausedReason=`dirty-tree`,this.schedulePush(0)):e.retryable?(this.consecutiveFailures++,this.transitionTo(`offline`)):(this.consecutiveFailures++,this.transitionTo(`idle`))}transitionTo(e){if(this.state===e)return;let t=this.state;this.state=e,$.info({from:t,to:e},`[sync] state: ${t} → ${e}`),this.onStateChange?.(e),this.cc1Broadcaster?.signal(`sync-status`)}scheduleSaveState(){this.stateSaveTimer===null&&(this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.saveStateNow()},5e3))}saveStateNow(){try{let e=this.pausedReason===`no-push-permission`||this.pausedReason===`auth-error`?void 0:this.pausedReason,t={version:1,lastSyncUtc:this.lastSyncUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,consecutiveFailures:this.consecutiveFailures,pausedReason:e,pausedSinceUtc:e?new Date().toISOString():void 0,inflightConflicts:this.conflictStore.list().map(e=>e.file)};Uu(this.statePath,JSON.stringify(t,null,2),`utf-8`)}catch(e){$.warn({err:e},`[sync] failed to persist sync state`)}}loadState(){if(B(this.statePath))try{let e=V(this.statePath,`utf-8`),t=JSON.parse(e);if(t.version!==1)return;this.lastSyncUtc=t.lastSyncUtc??null,this.lastFetchUtc=t.lastFetchUtc??null,this.lastPushedSha=t.lastPushedSha??null,this.consecutiveFailures=t.consecutiveFailures??0,this.pausedReason=t.pausedReason===`no-push-permission`||t.pausedReason===`auth-error`?void 0:t.pausedReason;let n=t.inflightConflicts??[];if(n.length>0){for(let e of n)this.conflictStore.list().some(t=>t.file===e)||this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count()}}catch(e){$.warn({err:e},`[sync] failed to load sync state`)}}};_s();const rFe=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function iFe(){return{async afterLoadDocument({documentName:e,requestParameters:t}){if(iS(e)||aS(e))return;let n=t?.get(`mountId`)??void 0,r={"doc.name":e};n!==void 0&&rFe.test(n)&&(r[`mount.id`]=n);try{let e=()=>{Cs(`sync.handshake`,{attributes:r},()=>{})},n=t?.get(`traceparent`);if(n!=null){let r={traceparent:n},i=t?.get(`tracestate`);i!=null&&(r.tracestate=i),vs.with(hs.extract(vs.active(),r),e)}else e()}catch(e){P(`sync-handshake-span`).warn({err:e instanceof Error?e:Error(String(e))},`emission failed`)}}}}let s9=!1;function c9(){if(s9)return;let e=Kte;if(typeof e.getCACertificates!=`function`||typeof e.setDefaultCACertificates!=`function`){s9=!0;return}try{e.setDefaultCACertificates([...e.getCACertificates(`default`),...e.getCACertificates(`system`)]),s9=!0}catch(e){P(`trust-system-ca`).warn({err:e},`system CA setup failed; falling back to the bundled CA set`)}}const aFe=(()=>{let e=Object.freeze({origin:`park-snapshot`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})(),oFe=(()=>{let e=Object.freeze({origin:`generated-index`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})();function sFe(e,t,n,r){let i=new Map;if(!n)return i;let a;try{a=cu(`git`,[`-c`,`core.quotePath=false`,`log`,`${n}..${r}`,`--no-merges`,`--name-only`,`--format=C%x00%an%x00%ae`],mw({cwd:e,encoding:`utf-8`,timeout:5e3}))}catch(e){return P(`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 P(`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(`
2034
2034
  `)){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=R(e,r);if(!fN(a,t))continue;let s=Jz(a,t);i.has(s)||B(a)&&i.set(s,o)}return i}function l9(e){c9();let t=e.ingressPolicy??ZB({}),{contentDir:n,projectDir:r=n,quiet:i=!0,debounce:a=2e3,maxDebounce:o=1e4,gitEnabled:s=!0,commitDebounceMs:c=3e4,wipRef:l=`refs/wip/main`,configHomedirOverride:u,enableTestRoutes:d=!1,shadowRepo:f,contentRoot:p,destroyTimeoutMs:m=1e4,localOpCliArgs:h,authStreamHeartbeatMs:g,skipStateManifestCheck:_=!1,singleDocRelPath:v,ephemeral:y=!1}=e,b=P(`server`),x=new B5,S=()=>x.getActiveBranch(),C=e=>x.getReconciledBase(e),w=(e,t)=>x.setReconciledBase(e,t),T=e=>x.deleteReconciledBase(e),E=e=>x.switchReconciledBaseScope(e),ee=e=>x.setBatchInProgress(e),te=()=>x.isBatchInProgress();function ne(e){let t=ws({absPath:Bs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config`)});if(!t.valid){let n=xe(t.error)&&t.error.code===`SCHEMA_INVALID`?t.error.issues.filter(e=>e.path.map(String).join(`.`)===`content.attachmentFolderPath`):[];if(n.length>0){let e=n.map(e=>e.message).join(`; `);throw Error(`Invalid content.attachmentFolderPath in project config: ${e}`)}if(e?.requireValid)throw Error(`Project config is invalid`,{cause:t.error});b.warn({},`[config] committed content.attachmentFolderPath unavailable (project config invalid) — using default attachment placement`)}return t.value.content.attachmentFolderPath??`./`}function D(){let e=ws({absPath:Bs(`project-local`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project-local config`)}),t=ge(e.value.autoSync);if(t!==null)return{mode:t,source:`config`};e.valid||b.warn({},`[config] project-local autoSync.mode unavailable (config invalid) — falling back to the committed project default`);let n=ws({absPath:Bs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config`)});return n.valid||b.warn({},`[config] committed autoSync.default unavailable (project config invalid) — defaulting to disabled`),{mode:_e(n.value.autoSync?.default)??`off`,source:`committed-default`}}function re(){let e=ws({absPath:Bs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for linter`)}).value.contentRules,t=e?rn(e):Ve;return wNe(r,t.plugins.okf),t}function O(){return ws({absPath:Bs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for link validation`)}).value.validation?.links??`warning`}function k(){return bM(r,{configHomedirOverride:u,onWarn:e=>b.warn({message:e},`[config] could not read project-local config`)})}function A(){let e=ws({absPath:Bs(`project-local`,r,u),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project-local config`)});return e.valid?e.value.linkPreviews?.enabled===!0:!1}function ie(){return Es({cwd:r,homedirOverride:u,warn:e=>b.debug({message:e},`[config] diagnostics read`)})}function ae(){for(let e of ie().diagnostics)e.code===`REMOVED_KEY`&&b.warn({scope:e.scope,file:e.file,path:e.path.join(`.`)},`[config] ${e.path.join(`.`)} is no longer read and was ignored. ${e.redirect}`)}function oe(e){return`${uM(e.baseUrl)}|${e.model}|${e.dimensions??`auto`}`}let se;function ce(e,t){let i;if(e===`__config__/project`||e===`__local__/project`){let t=D();i=t.mode,cn?.setMode(t.mode,t.source).catch(n=>{b.warn({err:n,mode:t.mode,docName:e},`[sync] failed to apply autoSync mode from config`)})}let a=k();if(Fe.applyConfig({enabled:a.enabled,providerFingerprint:oe(a)}),e===`__config__/project`){try{let e=ne({requireValid:!0});he?.setAttachmentFolderPath(e),se!==void 0&&e!==se&&b.warn({previous:se,next:e},`[content-filter] attachment folder changed — files under the previous folder no longer sync`),se=e}catch(e){b.warn({err:e},`[content-filter] project config invalid — keeping previous attachment admission`)}Oe?.signal(`lint-config`),(t??re().plugins.okf?.generate?.index===!0)||D5({projectDir:r,contentDir:n,generatedDocNames:At(),enabled:!1}).then(e=>{e.ok||b.warn({state:e.status.state},`[index] could not remove Open Knowledge generated-index Git attributes`)}),Tt()}b.info({docName:e,autoSyncMode:i,semanticEnabled:a.enabled},`[config] applied persisted config to in-process consumers`)}Qs();let le=dd(),ue=sA(r),de=new df({localDir:ue,log:P(`acp-registry`)}),j=new rf(ue,P(`acp-permissions`));if(Tc(ue,{port:0,worktreeRoot:r,kind:e.lockKind??`interactive`,capabilities:e.capabilities??[`http`,`ws`]}),!_)try{j7({lockDir:ue,shadowRepoDir:Rd(r)})}catch(e){throw Ec(ue),e}let fe=yo(),pe=(e,t)=>fe.resolveEmbed(e,t),me=(e,t)=>{let r=fe.resolveEmbed(e,t);if(!r&&e.includes(`/`)&&(r=e.replace(/^\.?\//,``)),!r)return null;let i=R(n,r);if(!uN(i,R(n)))return null;try{let e=Vu(i);return e.isFile()?e.size:null}catch{return null}},he,ve,ye,M,N,be,Se,Ce,we,Ee,De,Oe=null,ke=null,Ae=null,je=null,Me=null,Ne=null,Pe=k(),Fe=new Pfe({loadEmbedder:e.embedderLoader??(()=>{let t=k();return bfe({keyStore:e.embeddingsKeyStore??null,projectDir:r,config:{baseUrl:t.baseUrl,model:t.model,dimensions:t.dimensions}})}),cacheDir:I(sA(r),`embeddings`),enabled:Pe.enabled,providerFingerprint:oe(Pe)}),Ie=null,Le=new Set,Re=!1,ze=[],Be,He,Ue,We=new Promise((e,t)=>{He=e,Ue=t}),Ke,qe=new Promise(e=>{Ke=e});async function Je(){let e,t=Symbol(`branch-scope-gate-timeout`),n=new Promise(n=>{e=setTimeout(()=>n(t),1e4),e.unref?.()});try{if(await Promise.race([qe,n])!==t)return S()}finally{e&&clearTimeout(e)}try{return U5(r).branch??null}catch(e){return b.warn({err:e},`[auth] branch scope gate expired and HEAD is unreadable — skipping the branch claim check`),null}}function Ye(e){Oe?.signal(e)}let Xe,Ze,Qe,$e=!1,et=!1,tt=new AbortController,nt=new Set,rt=!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 rt||nt.size>0}function dt(){et||!$e||(Xe!==void 0&&clearTimeout(Xe),Xe=setTimeout(()=>{Xe=void 0,bt()},500),Xe.unref?.())}function ft(){if(et){lt({status:`cancelled`,indexCount:0});return}rt=!0,it=!0,Ze=setImmediate(()=>{Ze=void 0,bt()})}let pt,mt,ht=!1,gt=null;async function _t(){let e=ye.current;if(!e||ht)return;let t=performance.now();b.info({gitDir:e.gitDir},`[shadow-housekeeping] deferred boot housekeeping started`);try{await Cx(e)}catch(e){b.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 $q(e,gt,{rebuild:!0})).skipped){n=!0;break}if(r===29)break;if(await new Promise(e=>{setTimeout(e,t).unref?.()}),ht)return}n||b.warn({gitDir:e.gitDir},`[rename-log] deferred boot GC/rebuild retry budget exhausted (persistent GC contention); rebuild deferred to next boot`)}catch(t){b.warn({err:t,gitDir:e.gitDir},`[rename-log] deferred boot GC/rebuild failed; index loaded without GC`)}if(!ht){try{await M?.runBootMaintenance()}catch(e){b.warn({err:e},`[shadow-maintenance] boot maintenance failed (non-fatal)`)}b.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=>{b.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`),m)});try{if(await Promise.race([mt,t])===`timeout`)throw Error(`shadow housekeeping drain timed out after ${m}ms — abandoning in-flight housekeeping`)}finally{e!==void 0&&clearTimeout(e)}}function bt(){if(et||!$e||!ut())return;if(Qe!==void 0){e.generatedIndexTestHooks?.onKickWhileInFlight?.();return}if(x.isBatchInProgress()){dt();return}let t=rt,n=new Set(nt),r=it;rt=!1,nt.clear(),it=!1;let i=t?{fullSweep:!0}:{fullSweep:!1,directories:n};Qe=(async()=>{let e=await Pt(i,tt.signal);if(e.status===`deferred`){rt=!0,r&&(ot+=e.indexCount,it=!0);return}r&&(ot+=e.indexCount,e.status===`completed`&&ut()?it=!0:lt({...e,indexCount:ot}))})().catch(e=>{b.warn({err:e},`[index] index regeneration coordinator failed`),r&&lt({status:`failed`,indexCount:0})}).finally(()=>{if(Qe=void 0,et){r&&lt({status:`cancelled`,indexCount:0});return}ut()&&Xe===void 0?dt():!ut()&&Xe===void 0&&e.generatedIndexTestHooks?.onIdle?.()})}async function xt(){if(!et){let e=Qe;et=!0,tt.abort(),Xe!==void 0&&(clearTimeout(Xe),Xe=void 0),Ze!==void 0&&(clearImmediate(Ze),Ze=void 0),nt.clear(),rt=!1,it=!1,e===void 0&&lt({status:`cancelled`,indexCount:0})}await Qe}function St(e){et||fNe(e)||(nt.add(P5(e)),dt())}function Ct(e){if(!et){for(let t of dNe(e))nt.add(t);dt()}}function wt(e){let t=on?.getFileIndex();if(!t){St(e);return}let n=P5(e);if(L5(t.keys()).has(n)){St(e);return}Ct(P5(n))}function Tt(){et||(rt=!0,dt())}function Et(e){let t=on?.getFileIndex().get(e);if(t)return{title:t.title,description:t.description,type:t.type}}let Dt=!1,Ot={origin:oFe,writer:$se,isConflict:e=>cn?.getConflicts().some(t=>p5(t,e,r,n))===!0,getDocument:e=>Se.documents.get(e),writeDisk:async(e,t)=>{Vs(F(e),{recursive:!0}),await Ds(e,t,{fs:js})},registerWrite:(e,t)=>Fz(e,Lz(t)),noteFileIndex:e=>on?.mutateFileIndex({kind:e.kind,path:e.absPath,docName:e.docName,content:e.markdown}),signalFiles:()=>Ye(`files`),attribute:async(e,t)=>{qj(e,t.id,t.name,t.id),Dt=!0}};function kt(e){return e===``?M5:`${e}/${M5}`}function At(){return[...on?L5(on.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(T5({projectDir:r,contentDir:n,generatedDocNames:At()}))}async function Nt(e){let t=await D5({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 xs({cwd:r,scope:`project`,patch:{contentRules:{okf:{generate:{index:e}}}}});if(!i.ok){try{await t.rollback()}catch(e){b.error({err:e},`[index] could not roll back generated-index Git attributes`)}return{...Mt(),applied:!1,reason:`config-write`}}try{let e=V(i.path,`utf-8`);f5(Se.documents.get(`__config__/project`)??null,Kr,e,N.configPersistenceCtx)}catch(e){b.warn({err:e},`[index] generated-index settings reflection deferred to config watcher`)}return ce(Kr,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=on?.getFileIndex();if(!c)return{status:`failed`,indexCount:0};try{if(await e.generatedIndexTestHooks?.beforePlan?.({fullSweep:t.fullSweep,signal:i}),i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};if(x.isBatchInProgress())return{status:`deferred`,indexCount:a};let o=pNe({docs:c,docExtension:$x,currentMarkdownFor:()=>null}),l=T5({projectDir:r,contentDir:n,generatedDocNames:o.map(({directory:e})=>kt(e))});if(l.state!==`ready`&&l.state!==`not-applicable`)return b.warn({state:l.state},`[index] generated index regeneration paused by Git attributes`),{status:`blocked`,indexCount:a};for(let{directory:r,markdown:c}of o){if(!t.fullSweep&&!t.directories.has(r))continue;if(i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};if(x.isBatchInProgress())return{status:`deferred`,indexCount:a};if(await e.generatedIndexTestHooks?.beforeDecision?.({directory:r,fullSweep:t.fullSweep,signal:i}),i.aborted)return{status:`cancelled`,indexCount:a};if(s())return{status:`disabled`,indexCount:a};let o=kt(r),l=R(n,`${o}.md`),u;try{u=V(l,`utf-8`)}catch(e){e.code!==`ENOENT`&&b.warn({err:e,path:Us(l)},`[index] could not read the existing generated index; treating it as absent`),u=null}a+=1;let d=await JMe({docName:o,absPath:l,markdown:c,currentMarkdown:u},Ot);d===`blocked-conflict`?b.warn({event:`generated-index-regeneration`,outcome:`blocked`,directory:r,reason:`conflict`},`[index] generated index regeneration blocked by active conflict`):b.info({event:`generated-index-regeneration`,outcome:d===`unchanged`?`unchanged`:`written`,directory:r},`[index] generated index regeneration completed`),await e.generatedIndexTestHooks?.afterWrite?.({docName:o,fullSweep:t.fullSweep,signal:i}),!t.fullSweep&&r!==``&&u===null&&Ct(P5(r))}}finally{Dt&&=(await N.waitForPendingCommits(),await N.flushContributors(),!1),o!==void 0&&(JL(`generatedIndexSweepMs`,Math.round((performance.now()-o)*100)/100),YL(`generatedIndexCount`,a))}return{status:`completed`,indexCount:a}}catch(e){return b.warn({err:e},`[index] index regeneration failed`),{status:`failed`,indexCount:a}}}let Ft=null,It=!1,Lt=()=>{try{S7(r,Rt.entries())}catch(e){b.warn({err:e},`[removed-docs-journal] failed to persist removal journal`)}},Rt=new tPe(void 0,{onEviction:()=>Nse(),onSizeChange:e=>Pse(e),onMutate:()=>{!It||Ft!==null||(Ft=setTimeout(()=>{Ft=null,Lt()},2e3))}});for(let[e,t]of oPe(r))uS(e)||gZ(e)&&([`.md`,`.mdx`].some(t=>{let r=R(n,`${e}${t}`);return uN(r,R(n))&&B(r)})||Rt.restore(e,t));It=!0;let zt={current:null},Bt=(e,t)=>{uS(e)||Rt.setRenamed(e,t)},Vt=e=>{if(!uS(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=>{uS(e)||Rt.delete(e)};try{let m=`./`;try{m=ne()}catch(e){b.warn({err:e},`[content-filter] invalid attachment folder at boot — using sibling admission`)}se=m,he=bP({projectDir:r,contentDir:n,singleDocRelPath:v,attachmentFolderPath:m,inPlaceSkillDirs:LL(n),rescanInPlaceSkillDirs:()=>LL(n),skillRootPaths:xge(n),onAfterRebuild:()=>{ve.refreshContentScope().catch(e=>{P(`server-factory`).warn({err:e},`[content-filter] derived-index rebuild failed after onAfterRebuild`)}),bB(on).then(({prunedFiles:e,prunedFolders:t})=>{let n=e+t;n>0?P(`server-factory`).info({pruned:n,prunedFiles:e,prunedFolders:t},`[content-filter] reconciled file indexes after onAfterRebuild`):P(`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=>{P(`server-factory`).warn({err:e},`[content-filter] file index reconcile failed after onAfterRebuild`)})}}),ve=new dz({projectDir:r,contentDir:n,contentFilter:he,getGlobalSkillRoots:()=>JK(N.managedArtifactCtx),signalChannel:Ye,getLocalTargetInventory:()=>HK(on,n),onRecoveredFileTarget:(e,t)=>{on&&rPe({watcher:on,contentDir:n,relativePath:e,exists:t,invalidateReferencedAssetsCache:Me})}}),ye={current:f},M=s?HNe({getShadow:()=>ye.current??null,getCurrentBranch:()=>sn?.getLastKnownBranch()??null,contentRoot:p??``,projectGitDir:Ld(r)??void 0,isWriterLive:e=>{if(!je&&!Ce)return P(`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 Ce?.sessionsForConnection(t)??[])return!0;return!1}}):void 0;let _=null;N=h7({contentDir:n,projectDir:r,gitEnabled:s,commitDebounceMs:c,wipRef:l,shadowRef:ye,ephemeral:y,contentRoot:p,derivedDocumentIndex:ve,configHomedirOverride:u,getCurrentBranch:()=>sn?.getLastKnownBranch()??null,resolveEmbed:pe,resolveSize:me,getPrincipal:()=>Ie,onAgentCommit:()=>Oe?.signal(`session-activity`),onFlushCommit:()=>M?.noteFlushCommit(),onDiskFlush:(e,t,n,r)=>{Oe?.emitDiskAck(e,t),!uS(e)&&(mNe(r,n,e)&&St(e),gV(r,n)&&(Me?.(),Ye(`files`)))},onConfigRejected:(e,t)=>Oe?.emitConfigValidationRejected(e,t),onConfigPersisted:ce,onManagedSkillPersisted:e=>{let t=Ta(e);t?.kind!==`skill`||t.scope!==`global`||(_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=u??qu();ZY(e,e,FL(e)).then(e=>{e>0&&b.info({refreshed:e},`[in-place-skills] post-edit copy re-sync`)}).catch(e=>b.warn({err:e},`[in-place-skills] post-edit copy re-sync failed`))},2e3),_.unref?.())},isRecentlyRemoved:e=>Rt.has(e),mdManager:e.mdManager,getLossRing:()=>be,durabilityState:x}),Se=new MMe({quiet:i,debounce:a,maxDebounce:o,extensions:[N.extension]});let S=Se;ze.push(rle(()=>S.documents.size),ile(()=>N.getQueueDepths()),ole(()=>{let e=0;for(let t of S.documents.values())e+=t.directConnectionsCount;return{websocket:S.getConnectionsCount()-e,direct:e}})),cle(),y||(Ne=$Ne({getLoadedDocuments:()=>S.documents,forceStore:(e,t)=>N.forceStore(e,t),getBase:e=>x.getReconciledBase(e),isBatchActive:()=>x.isBatchInProgress(),peekInFlight:e=>x.peekInFlightFlush(e),readDiskBytes:e=>{let t=dN(e,n),r,i;try{r=H(t),i=Vu(r).size}catch(t){let n=Oc(t);if(n===`ENOENT`)return null;throw n===`ELOOP`?new _7(`symlink cycle at content path: ${e}`):t}if(!fN(r,n))throw new _7(`symlink-escape: ${t} resolves outside the content dir`);if(i>524288)throw new _7(`document exceeds the open byte limit: ${e}`);try{return V(r,`utf-8`)}catch(e){if(Oc(e)===`ENOENT`)return null;throw e}},graceMs:e.stalenessGraceMs,sweepIntervalMs:e.stalenessSweepIntervalMs}));let w=Se.shouldUnloadDocument.bind(Se);Se.shouldUnloadDocument=e=>{if(Le.has(e)||Re&&w(e))return!0;let t=e.name;return uS(t)||C(t)!==void 0||e.getXmlFragment(`default`).length!==0||e.getText(`source`).length!==0?!1:w(e)},Be=async e=>{Le.add(e);try{await Se.unloadDocument(e)}finally{Le.delete(e)}},Oe=new mS(Se),Ae=new ME(Se),je=new PE(Se),Ce=new pw(Se,e.agentSessionOptions);let T=Ce;ze.push(sle(()=>({active:T.liveSessionCount,limit:T.sessionLimit})));let E=K5({derivedDocumentIndex:ve,onDocumentSettled:e=>zt.current?.changed(e)});Se.configuration.extensions.push(E);function ee(e,t,n={}){b.warn({reason:e,docName:t,...n},`[auth-rejection] ${e}`)}Se.configuration.extensions.push({__kind:`principal-auth`,async onAuthenticate(e){let t=e.token,n=EZ(t),r=n?.expectedServerInstanceId;if(typeof r==`string`&&r.length>0&&r!==le)throw ee(`server-instance-mismatch`,e.documentName,{claimedServerInstanceId:r,currentServerInstanceId:le}),new TZ(`server-instance-mismatch`,`server instance mismatch: client claimed ${r}, this server is ${le}`);let i=n?.expectedBranch;if(typeof i==`string`&&i.length>0){let t=await Je();if(t!==null&&i!==t)throw ee(`branch-mismatch`,e.documentName,{claimedBranch:i,currentBranch:t}),new TZ(`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`}}),Se.configuration.extensions.push({__kind:`config-doc-admission-guard`,async onAuthenticate(e){if(!aS(e.documentName)&&!oS(e.documentName))return;let n=e.request,r=n.socket?.remoteAddress;if(r!==void 0&&!QB(r,t))throw ee(`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(!eV(a,t))throw ee(`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 te=R(n);function D(e){if(!gZ(e))return null;let t=R(te,tS(e));return uN(t,te)?t:null}Se.configuration.extensions.push({__kind:`removal-redirect-guard`,async onAuthenticate(e){await iPe(e.documentName,{recentlyRemovedDocs:Rt,resolveFilePath:D,fileExists:B})}}),Se.configuration.extensions.push({__kind:`doc-lineage-guard`,async onAuthenticate(e){let t=EZ(e.token);hNe(e.documentName,t?.expectedDocLineageEpoch,{getLoadedDoc:e=>Se.documents.get(e)})}}),Se.configuration.extensions.push({__kind:`system-doc-broadcast-guard`,async beforeHandleMessage(e){if(e.documentName!==`__system__`)return;let t=new M8(e.update);if(t.readVarString(),t.readVarUint()===U8.BroadcastStateless)throw Error(`inbound BroadcastStateless on ${sa} rejected — server-only channel`)}});let ae=_Z({hocuspocus:Se,durabilityState:x,ingressPolicy:t,sessionManager:Ce,commentDocHooksRef:zt,contentDir:n,getGeneratedIndexSettingsStatus:Mt,setGeneratedIndexEnabled:Nt,contentFilter:he,serverInstanceId:le,getFileIndex:()=>on?on.getFileIndex():new Map,getAttachmentFolderPath:ne,getAllFilesIndex:()=>on?on.getAllFilesIndex():new Map,getFileIndexGeneration:()=>on?.getFileIndexGeneration()??0,mutateFileIndex:e=>{let t=e.kind===`update`?Et(e.docName):void 0;switch(on?.mutateFileIndex(e),e.kind){case`update`:z5(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:Az(e)}},getFolderIndex:()=>on?on.getFolderIndex():new Map,getAliasMap:()=>on?on.getAliasMap():new Map,getFolderAliasIndex:()=>on?on.getFolderAliasIndex():new Map,rescanFiles:()=>on?.rescanFromDisk(),enableTestRoutes:d,shadowRef:ye,flushGitCommit:()=>N.flushPendingGitCommit(),flushContributors:()=>N.flushContributors(),getCurrentBranch:()=>sn?.getLastKnownBranch()??null,getDiskAckSVs:()=>Oe?.getLatestDiskAckSVsAsBase64()??{},contentRoot:p,derivedDocumentIndex:ve,signalChannel:Ye,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,onAgentWrite:e.onAgentWrite,getSyncEngine:()=>cn,localOpCliArgs:h,authStreamHeartbeatMs:g,projectDir:r,resolveEmbed:pe,getBridgeLossReporter:()=>De,getPrincipal:()=>Ie,acpRegistry:de,loadAcpCustomAgents:()=>ff(ue,P(`acp-registry`)),homeDirOverride:u,forceUnloadDocument:Be,ready:We,recentlyRemovedDocs:Rt,serializeDoc:qt,evictManagedArtifactLkg:e=>{N.managedArtifactCtx.lkgCache.delete(e)},semanticSearch:Fe,getSemanticSimilarityFloor:()=>k().similarityFloor,getLinterBaseConfig:()=>re(),getLinksValidationSetting:()=>O(),getLinkPreviewsEnabled:A,getConfigDiagnostics:ie,embeddingsSecretsFile:_M(u),readSemanticProviderConfig:k,ephemeral:y,onReferencedAssetsCacheInvalidator:e=>{Me=e}});Se.configuration.extensions.push(ae),we=ae.nativeApi,Ee=ae.localApi;let oe=ws({absPath:Bs(`project`,r),sideline:!1,warn:e=>b.warn({message:e},`[config] could not read project config for bridge guards`)}),j=oe.value.bridge.deferGuard.enabled,fe=oe.value.bridge.fixedPoint.enabled,ge=oe.value.bridge.preDrain.enabled;be=oe.value.lossCapture.enabled?new fb({projectDir:r,maxBytes:oe.value.lossCapture.maxBytes}):void 0,oe.value.bridge.lossDetector.enabled&&(De=pce({shadow:()=>ye.current,ring:be,getBranch:()=>sn?.getLastKnownBranch()??`main`,contentRoot:p??``}),Ce.attachBridgeLossReporter(De)),Se.configuration.extensions.push(w7({mdManager:bs,schema:ys,shadowRef:ye,contentRoot:p,getCurrentBranch:()=>sn?.getLastKnownBranch()??null,resolveEmbed:pe,resolveSize:me,deferGuardEnabled:j,lossDetectorEnabled:oe.value.bridge.lossDetector.enabled,fixedPointBackstopEnabled:fe,preDrainEnabled:ge,lossRing:be})),Se.configuration.extensions.push(iFe()),Se.configuration.extensions.push(qMe({getSyncEngine:()=>cn,projectDir:r,contentDir:n}))}catch(e){for(let e of ze.splice(0))e();throw Ne?.dispose(),Ne=null,Ec(ue),e}let Ut=null,Wt=new Map,Gt=[];function Kt(e,t){let n=R(e,`rescue`),r=R(n,tS(t));return uN(r,n)?r:null}function qt(e){let t=Se.documents.get(e);return t?wz(t):null}let Jt=(e,t)=>xz(x,Se,e,t,pe,me,De);function Yt(e){if(!CS(e)||cn?.getConflicts().some(t=>p5(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 Se.documents){if(uS(n))continue;let r=Se.documents.get(n);if(!r)continue;let i=r.getText(`source`).toString();if(i.includes(t))try{r.transact(()=>{pz(r,i,pe,n)},fz)}catch(t){b.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){b.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 Az(e)}}async function en(e){try{switch(e.kind){case`create`:b.info({docName:e.docName},`[reconcile] create: ${e.docName}`),await ve.recordDiskUpsert(e.docName,e.content),Ye(`files`),St(e.docName),Ht(e.docName);break;case`update`:{let{docName:t,content:n}=e;z5(e.previousIndexedFields,n,t)&&St(t);let r=Se.documents.get(t);if(!r){await ve.recordDiskUpsert(t,n);return}let i=C(t)??``,a=qt(t)??i,o=_z({docName:t,base:i,ours:a,theirs:n}),s=Lz(i).slice(0,6),c=Lz(a).slice(0,6),l=Lz(n).slice(0,6);switch(b.info({docName:t,base:s,ours:c,theirs:l,result:o.kind},`[reconcile] ${t} base=${s} ours=${c} theirs=${l} result=${o.kind}`),o.kind){case`noop`:Yt(r),await ve.recordDiskUpsert(t,n);break;case`clean`:{let e=!1;try{Jt(t,o.newContent),w(t,o.newContent),wb(),Yt(r),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply clean content to Y.Doc for ${t}`),w(t,n),Yt(r)}e&&await ve.recordDiskUpsert(t,n)}break;case`merged`:{let e=!1;try{Jt(t,o.newContent),w(t,n),wb(),Yt(r),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply merged content to Y.Doc for ${t}`),w(t,n),Yt(r)}e&&await ve.recordDiskUpsert(t,n)}break;case`conflicts`:{let e=!1;try{Jt(t,o.newContent),w(t,o.newContent),wb(),Tb(),e=!0}catch(e){b.error({err:e,docName:t},`[reconcile] failed to apply conflict content to Y.Doc for ${t}`),w(t,n)}{let e=r.getMap(`lifecycle`);e.set(`status`,`conflict`),e.set(`reason`,`merged-with-markers`)}e&&await ve.recordDiskUpsert(t,n);break}case`refused`:{Tb();let e=r.getMap(`lifecycle`);e.set(`status`,`conflict`),e.set(`reason`,o.reason);break}}break}case`delete`:{let{docName:t}=e,n=Se.documents.get(t);if(!n){await ve.recordDiskDelete(t),Ye(`files`),Vt(t),wt(t),console.info(JSON.stringify({event:`recently-removed-docs-populate`,docName:t,kind:`deleted`,source:`watcher-delete`}));return}let r=C(t)??``,i=qt(t)??``,a=i!==r;if(a&&ye.current){let e=ye.current,n=sn?.getLastKnownBranch()??`main`;queueMicrotask(()=>{zx(e,p??``,{kind:`external-change-rescue`,docName:t,contents:i,label:`External change recovered @ ${new Date().toISOString()}`,branch:n,metadata:{incomingDiskSha:``}}).then(()=>{kb(),b.info({docName:t},`[reconcile] rescue checkpoint saved (delete): ${t}`)}).catch(e=>{b.error({docName:t,err:e},`[reconcile] rescue checkpoint write failed: ${t}`)})})}n.getMap(`lifecycle`).set(`status`,`deleted-upstream`),T(t),await ve.recordDiskDelete(t),b.info({docName:t,isDirty:a},`[reconcile] delete: ${t} (dirty=${a})`),Se.closeConnections(t),await Be(n),Ye(`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=Se.documents.get(t);if(T(t),w(n,r),await ve.recordDiskRename(t,n,r),i){let e=i.getMap(`lifecycle`);e.set(`status`,`renamed`),e.set(`newPath`,n)}b.info({oldDocName:t,newDocName:n},`[reconcile] rename: ${t} → ${n}`),Ye(`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=Se.documents.get(t);if(!n)return;let r=qt(t);r===null?b.warn({docName:t},`[reconcile] case 'conflict': serializeDoc returned null for ${t}; reconciledBase snapshot skipped — post-resolution reconcile may degrade to 3-way merge`):w(t,r);let i=n.getMap(`lifecycle`);i.set(`status`,`conflict`),i.set(`reason`,`conflict-markers`),b.info({docName:t},`[reconcile] conflict markers detected: ${t}`);break}case`asset-create`:fe.add(e.relativePath),Ye(`files`),Qt(uu(e.relativePath));break;case`asset-delete`:fe.remove(e.relativePath),Ye(`files`),Qt(uu(e.relativePath));break;case`folder-create`:case`folder-delete`:Ye(`files`),Ct(e.relativePath);break;case`file-create`:case`file-update`:await ve.recordFileTargetUpsert(e.relativePath),Me?.(),Ye(`files`);break;case`file-delete`:await ve.recordFileTargetDelete(e.relativePath),Me?.(),Ye(`files`);break;default:Az(e)}}catch(t){let n=$t(e);b.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 an(){let e=tn.splice(0,tn.length);for(let t of e)await en(t)}let on=null,sn=null,cn=null,ln=null;async function un(e){if(Se.documents.size===0)return;let t=!1,n=new Promise(e=>{Se.configuration.extensions.push({async afterUnloadDocument({instance:n}){!t&&n.getDocumentsCount()===0&&(t=!0,e())}})}),r=Array.from(Se.documents.keys());Se.closeConnections(),Se.flushPendingStores();for(let e of Se.documents.values())e.getConnectionsCount()===0&&Se.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(Se.documents.keys()),i=[],o=[];if(ye.current){for(let e of n)if(!uS(e))try{let t=qt(e);if(t===null){b.warn({docName:e},`[rescue] skipping ${e} — document dropped from map mid-rescue`),o.push(e);continue}let n=Kt(ye.current.gitDir,e);if(!n){b.warn({docName:e,gitDir:ye.current.gitDir},`[rescue] path-traversal guard rejected docName: ${e}`),o.push(e);continue}Au(F(n),{recursive:!0}),Uu(n,t,`utf-8`),kb(),i.push(e),b.info({docName:e},`[rescue] rescue buffer saved on flush timeout: ${e}`)}catch(t){o.push(e),b.error({err:t,docName:e},`[rescue] failed to write rescue buffer for ${e}`)}}else b.warn({stillLoadedCount:n.length},`[rescue] shadow repo unavailable at flush timeout — ${n.length} doc(s) will be lost: [${n.join(`, `)}]`),o.push(...n);let s=i.length>0||o.length>0?` — rescued [${i.join(`, `)}]${o.length>0?`, lost [${o.join(`, `)}]`:``}`:``;a(Error(`flushAllStoresAndWait timeout after ${e}ms — ${n.length}/${r.length} docs did not unload: [${n.join(`, `)}]${s}`))},e)});try{await Promise.race([n,a])}finally{i!==void 0&&clearTimeout(i)}}async function dn(){return ln||(ln=(async()=>{let e=Date.now(),t=[];Re=!0;try{await xt()}catch(e){b.warn({err:e},`[index] generated index shutdown drain failed`),t.push({phase:`generated-index-drain`,error:String(e)})}for(let e of ze.splice(0))e();try{await Ne?.dispose()}catch(e){b.warn({err:e},`[server] staleness watchdog drain failed during destroy`)}Ne=null;try{wc(ue)}catch(e){b.warn({err:e},`[server] failed to mark server.lock draining`)}M?.destroy();try{await yt()}catch(e){b.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{S7(r,Rt.entries())}catch(e){b.warn({err:e},`[removed-docs-journal] failed to persist removal journal during shutdown`),t.push({phase:`removed-docs-journal-flush`,error:String(e)})}let n,i=await Promise.race([We.then(()=>`completed`,e=>(b.debug({err:e},`[server] init incomplete during shutdown`),`failed`)),new Promise(e=>{n=setTimeout(()=>e(`timeout`),5e3)})]);n!==void 0&&clearTimeout(n),i===`timeout`&&b.warn({},`[server] init did not complete within 5s during shutdown`);let a=Se.documents.size;try{try{try{ke&&=(clearTimeout(ke),null),sn&&=(await sn.unsubscribe(),null),on&&=(await on.unsubscribe(),null);for(let{docName:e,cleanup:t}of Gt)try{await t()}catch(t){b.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)}),b.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){b.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)}),b.error({err:e},`[server] shutdown phase-1b CC1 teardown failed`)}try{await Ce.closeAll()}catch(e){t.push({phase:`agent-session-drain`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-2 agent session drain failed`)}try{await kce()}catch(e){t.push({phase:`parse-pool-teardown`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-2b parse pool teardown failed`)}try{await un(m)}catch(e){t.push({phase:`flush-all-stores`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-3 flush failed`)}ve.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`)),m)})])}catch(e){t.push({phase:`git-commit-flush`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-4 git commit flush failed`)}finally{e!==void 0&&clearTimeout(e)}try{cn&&=(await cn.destroy(),null)}catch(e){t.push({phase:`sync-engine-stop`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown sync-engine-stop failed`)}}finally{if(ye.current){let e;try{await Promise.race([_x(ye.current).drain(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`shadow mutator drain timeout`)),m)})])}catch(e){t.push({phase:`shadow-mutator-drain`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-5 shadow mutator drain failed`)}finally{e!==void 0&&clearTimeout(e)}try{let e=(await _c({baseDir:r,timeout:{block:5e3}}).revparse(`HEAD`)).trim();e&&Uu(R(ye.current.gitDir,`last-known-head`),e,`utf-8`)}catch{}try{qse(ye.current)}catch(e){t.push({phase:`shadow-repo-release`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-5 destroyShadowRepo failed`)}}let n=Date.now()-e;t.length===0?b.info({documentCount:a,durationMs:n},`[server] shutdown flushed ${a} documents in ${n}ms`):b.warn({documentCount:a,durationMs:n,phaseErrors:t},`[server] shutdown flushed ${a} documents in ${n}ms with ${t.length} phase error(s)`)}}finally{try{Ec(ue,{deferUnlinkToExit:!0})}catch(e){t.push({phase:`server-lock-release`,error:e instanceof Error?e.message:String(e)}),b.error({err:e},`[server] shutdown phase-6 releaseServerLock failed`)}try{await Zs()}catch(e){t.push({phase:`telemetry-shutdown`,error:e instanceof Error?e.message:String(e)})}}})(),ln)}let fn=[];async function pn(){try{Ie=await v7(r),b.info({principalId:Ie.id},`[server] principal loaded`)}catch(e){b.warn({err:e},`[server] principal load failed — browser writes will use SERVICE_WRITER`)}if(!ye.current)try{ye.current=await Tx(r,{deferGcConfig:!0}),b.info({gitDir:ye.current.gitDir},`[server] history repo initialized at ${ye.current.gitDir}`)}catch(e){b.error({err:e},`[server] history repo init failed`),fn.push(`shadow-repo`)}if(ye.current)try{let e=Lq(ye.current.gitDir);i_e(ye.current.gitDir,e),$ge(ye.current.gitDir,e),gt=e,b.info({entries:e.byTo.size},`[server] rename log loaded (${e.byTo.size} entries)`)}catch(e){b.warn({err:e},`[rename-log] boot-time load/sweep failed; rename history unavailable`)}if(ye.current)try{await Sx(ye.current).raw(`rev-parse`,`--git-dir`)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`not a git repository`)||t.includes(`invalid object`)){b.warn({},`[server] history repo appears corrupted — reinitializing`);try{ye.current=await Tx(r,{deferGcConfig:!0})}catch(e){b.error({err:e},`[server] history repo reinit failed`),ye.current=void 0,fn.includes(`shadow-repo`)||fn.push(`shadow-repo`)}}else b.error({err:e},`[server] history repo check failed (transient?)`)}if(ye.current){let e=ye.current,t=lN(L(r,n))||`.`;setTimeout(()=>{kx(e,t).catch(e=>{b.debug({err:e},`[shadow] fan-out index warm-up failed (non-fatal)`)})},3e3).unref()}if(ye.current)try{let e=R(ye.current.gitDir,`last-known-head`),t=null;try{t=V(e,`utf-8`).trim()||null}catch{}let n=null;try{n=(await _c({baseDir:r,timeout:{block:1e4}}).revparse(`HEAD`)).trim()||null}catch{}if(n!==null){if(n!==t){let e=`main`;try{let t=(await _c({baseDir:r,timeout:{block:1e4}}).raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();t&&t!==`HEAD`&&(e=t)}catch{}b.info({lastKnownHead:t,currentHead:n,branch:e},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=import`);try{await Ix(ye.current,p??``,t,n,e),Db()}catch(e){b.warn({err:e},`[head-drift] commitUpstreamImport failed — continuing`)}}else b.info({currentHead:n},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${n}, action=noop`);try{Uu(e,n,`utf-8`)}catch(e){b.warn({err:e},`[head-drift] failed to write last-known-head`)}}}catch(e){b.warn({err:e},`[head-drift] check failed — continuing`)}try{let e=Bge(n,r);if(e.recovered&&e.journal){let t=e.journal.version===2?e.journal.fromPath:e.journal.sourceDocName,n=e.journal.version===2?e.journal.toPath:e.journal.destinationDocName;b.warn({journalVersion:e.journal.version,fromPath:t,toPath:n,restoredDocNames:e.restoredDocNames},`[managed-rename] recovered pending rename ${t} -> ${n}`)}}catch(e){b.error({err:e},`[server] managed rename recovery failed`),fn.push(`managed-rename-recovery`)}try{let e=Oge(r);(e.deleted>0||e.errors>0)&&b.info({scanned:e.scanned,deleted:e.deleted,errors:e.errors},`[upload-tempfile-sweep] swept ${e.deleted} orphan tempfile(s)`)}catch(e){b.error({err:e},`[server] upload-tempfile sweep failed`),fn.push(`upload-tempfile-sweep`)}try{Ut=await Se.openDirectConnection(sa),Oe?.emitServerInfo(le,S())}catch(e){b.error({err:e},`[server] failed to open __system__ direct connection — CC1 push disabled`),fn.push(`cc1-push`)}let t=y?[]:Vr;for(let e of t)try{let t=await Se.openDirectConnection(e);Wt.set(e,t)}catch(t){b.error({err:t,docName:e},`[server] failed to open ${e} direct connection — config bind degraded`),fn.push(`config-doc:${e}`)}let i=new Map([[Kr,Bs(`project`,r)],[$n,Bs(`project-local`,r)],[Ge,Bs(`user`,r,u)]]);for(let e of t){let t=i.get(e);if(t)try{b.info({docName:e,path:t},`[config-file-watcher] starting`);let n=await n5(t,t=>{let n=Se.documents.get(e);b.info({docName:e,hasDocument:n!==void 0,contentLength:t.length},`[config-file-watcher] file changed`);let r=f5(n??null,e,t,N.configPersistenceCtx);b.info({docName:e,outcome:r},`[config-file-watcher] applyExternalConfigChange outcome`),ce(e)});Gt.push({docName:e,cleanup:n}),b.info({docName:e,path:t},`[config-file-watcher] started`)}catch(n){b.warn({err:n,docName:e,path:t},`[config-file-watcher] failed to start for ${e}`),fn.push(`config-file-watcher:${e}`)}}if(!y){let e=null,t=t=>{e!==null&&clearTimeout(e),e=setTimeout(()=>{e=null,ve.refreshGlobalSkillNodes().catch(e=>{b.warn({err:e,docName:t},`[backlinks] global skill bundle re-ingest failed`)})},300)},n=(e,n)=>{let r=$K(e,N.managedArtifactCtx);if(!r)return;let i=iq(Se.documents.get(r)??null,r,n,N.managedArtifactCtx);b.info({docName:r,outcome:i},`[managed-artifact-watcher] external change`),Ye(`files`),mi(r)&&t(r)},r=e=>{let n=$K(e,N.managedArtifactCtx);Ye(`files`),n&&mi(n)&&t(n)};try{let e=JK(N.managedArtifactCtx),t=await UNe(e,n,r);Gt.push({docName:`__skill-files__`,cleanup:t}),b.info({roots:e},`[managed-artifact-watcher] skills started`)}catch(e){b.warn({err:e},`[managed-artifact-watcher] skills failed to start`),fn.push(`managed-artifact-watcher:skills`)}try{let e=R(GK(N.managedArtifactCtx),`.ok`,`skill-state.yml`),t=await n5(e,()=>{Ye(`files`)});Gt.push({docName:`__skill-state__`,cleanup:t}),b.info({path:e},`[skill-state-watcher] started`)}catch(e){b.warn({err:e},`[skill-state-watcher] failed to start`),fn.push(`skill-state-watcher`)}}try{let e=R(n,`.okignore`),t=R(r,`.gitignore`),i=null;try{let e=cu(`git`,[`rev-parse`,`--git-common-dir`],mw({cwd:r,encoding:`utf-8`,timeout:5e3}));if(e.status===0&&e.stdout){let t=I(R(r,e.stdout.trim()),`info`,`exclude`);B(F(t))&&(i=t)}}catch{}let a=i?[e,t,i]:[e,t],o=b;o.info({okignorePath:e,gitignorePath:t,gitInfoExcludePath:i,ephemeral:y},`[ignore-watcher] starting multi-path watcher for .okignore + .gitignore (+ .git/info/exclude when present)`);let s=y?null:await RMe(a,(t,n)=>{(async()=>{if(t===e)try{let e=f5(Se.documents.get(`__config__/okignore`)??null,Lr,n,N.configPersistenceCtx);o.info({docName:Lr,outcome:e},`[ignore-watcher] applyExternalConfigChange outcome`)}catch(e){o.error({err:e,changedPath:L(r,t)},`[ignore-watcher] applyExternalConfigChange failed; rebuild proceeds independently`)}let i=await he.rebuildIgnorePatterns();if(i.ok)o.info({changedPath:L(r,t),patternCount:i.patternCount,nestedFileCount:i.nestedFileCount,durationMs:i.durationMs},`[ignore-watcher] rebuild succeeded — broadcasting files channel`),Oe?.signal(`files`);else{let e=L(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:L(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){b.warn({err:e,projectDir:r,contentDir:n},`[ignore-watcher] failed to start multi-path watcher`),fn.push(`ignore-files-watcher`)}let a=U5(r).branch??`main`;E(a),Ke();let o=ve.beginStartup(a),s=!1,c=performance.now();try{await ks(`ok.boot.indexes`,void 0,async()=>{let{deletedDocNames:e,backlinkIndexDegraded:t}=await o.backlinksReady;t&&fn.push(`backlink-index`);let i=0;for(let t of e)uS(t)||Rt.peek(t)?.kind!==`renamed`&&(Rt.setDeleted(t),i++);i>0&&b.info({count:i},`[removal-guard] tombstoned docs deleted while the server was down`);let a=performance.now(),c=/^\.(?!ok\/)[A-Za-z0-9_-]+\/skills\//,l=he?LL(n):new Set,d=e=>{e.some(e=>c.test(L(n,e).split(z).join(`/`)))&&(ke&&clearTimeout(ke),ke=setTimeout(()=>{ke=null;try{ZY(r,n).then(e=>{e>0&&(b.info({refreshed:e},`[in-place-skills] re-synced recorded copies`),Oe?.signal(`files`))}).catch(e=>b.warn({err:e},`[in-place-skills] copy re-sync failed`));let e=LL(n);if(!(e.size!==l.size||[...e].some(e=>!l.has(e))))return;l=e,he.rebuildIgnorePatterns().then(t=>{t.ok?(b.info({skillDirs:e.size},`[in-place-skills] canonical set changed — filter rebuilt`),Oe?.signal(`files`)):b.warn({error:t.error.message},`[in-place-skills] filter rebuild failed after skill re-scan`)}).catch(e=>b.warn({err:e},`[in-place-skills] rebuild threw`))}catch(e){b.warn({err:e},`[in-place-skills] re-scan trigger failed`)}},500))};on=await ks(`ok.boot.seed-walk`,void 0,async()=>yB(n,nn,he,{onRawBatch:d})),ZY(r,n).then(e=>{e>0&&b.info({refreshed:e},`[in-place-skills] boot copy re-sync`)}).catch(e=>b.warn({err:e},`[in-place-skills] boot copy re-sync failed`));{let e=u??qu();ZY(e,e,FL(e)).then(e=>{e>0&&b.info({refreshed:e},`[in-place-skills] global boot copy re-sync`)}).catch(e=>b.warn({err:e},`[in-place-skills] global copy re-sync failed`))}JL(`seedWalkMs`,Math.round(performance.now()-a));{let e=R(n),t=0;for(let[n]of Rt.entries()){if(!gZ(n))continue;let r=R(e,`${n}${$x(n)}`);uN(r,e)&&B(r)&&(Rt.delete(n),t++)}t>0&&b.info({count:t},`[removal-guard] dropped journaled removal entries whose file re-appeared while the server was down`)}let f=await ve.settleStartupAfterWatcherSeed();s=!0,f.tagIndexDegraded&&fn.push(`tag-index`);let p=0;try{v===void 0?await bZ({contentDir:n,contentFilter:he,basenameIndex:fe,onSkip:(e,t,n)=>{p++,b.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during seed (${e}${t?` ${t}`:``})`)}}):fbe({contentDir:n,basenameIndex:fe,onSkip:(e,t,n)=>{p++,b.warn({reason:e,code:t,path:n},`[basename-index] skipped entry during single-file seed (${e}${t?` ${t}`:``})`)}}),p>0&&(b.warn({count:p},`[basename-index] startup seed completed with ${p} skipped entries — embeds under inaccessible subtrees will not resolve`),fn.push(`basename-index-partial`))}catch(e){b.error({err:e},`[basename-index] startup seed failed`),fn.push(`basename-index`)}})}catch(e){if(b.error({err:e},`[server] disk bridge watcher failed to start`),fn.push(`file-watcher`),!s){let e=await ve.settleStartupAfterWatcherSeed();s=!0,e.tagIndexDegraded&&fn.push(`tag-index`)}}finally{JL(`indexesMs`,Math.round(performance.now()-c)),on&&YL(`fileCount`,on.getFileIndex().size)}try{sn=await bNe(r,async({trigger:e})=>{if(b.info({trigger:e},`[batch] begin trigger=${e}`),Eb(),Se.flushPendingStores(),await N.flushPendingGitCommit(),ee(!0),ye.current){let e=S(),t=U5(r).branch??e,n=[];for(let[e,t]of Se.documents){if(uS(e))continue;let r=null;if(t.transact(()=>{r=qt(e)},aFe),r===null)continue;let i=C(e)??r;n.push({docName:e,markdown:r,diskSnapshot:i})}if(n.length>0)try{let r=await ice(ye.current,e,Px.id,n,t);r&&(jb(),b.info({count:n.length,branch:e,sha:r.slice(0,8)},`[history] parked ${n.length} docs on ${e} → ${r.slice(0,8)}`))}catch(e){b.error({err:e},`[shadow] park failed`)}}},async e=>{let t=tn.length,i=e.newBranch??`main`;if(b.info({kind:e.batchKind,headMoved:e.headMoved,docs:t,timeout:!!e.timeout},`[batch] end kind=${e.batchKind} headMoved=${e.headMoved} docs=${t}${e.timeout?` timeout`:``}`),e.batchKind===`within-branch`){if(ee(!1),await an(),e.headMoved&&e.newHead){let t=sFe(r,R(n),e.oldHead,e.newHead);if(t.size>0){qde(t.keys());for(let[e,n]of t)qj(e,Zte(n.email),n.name,n.email,Yd(e));await N.flushContributors()}}if(await N.flushDeferredStores(`within-branch`),cn!==null)try{await cn.reconcileConflictsFromGit()}catch(e){b.warn({err:e},`[head-watcher] sync engine conflict reconcile failed`)}}else{Ab(),tn.splice(0,tn.length);let t=!1,r;try{E(i),r=await ve.beginBranchSwitch(i),he.rebuildDirCount();try{let e=0;fe.clear(),await bZ({contentDir:n,contentFilter:he,basenameIndex:fe,onSkip:(t,n,r)=>{e++,b.warn({reason:t,code:n,path:r,branch:i},`[basename-index] skipped entry during branch-switch reseed (${t}${n?` ${n}`:``})`)}}),e>0&&(b.warn({count:e,branch:i},`[basename-index] branch-switch reseed completed with ${e} skipped entries — embeds under inaccessible subtrees will not resolve on this branch`),fn.includes(`basename-index-partial`)||fn.push(`basename-index-partial`))}catch(e){b.error({err:e,branch:i},`[basename-index] branch-switch reseed failed`)}for(let[e,t]of Se.documents)if(!uS(e))try{let r=dN(e,n);if(!B(r)){let n=C(e)??``,r=qt(e)??``;if(r!==n&&ye.current){let t=ye.current;queueMicrotask(()=>{zx(t,p??``,{kind:`external-change-rescue`,docName:e,contents:r,label:`External change recovered @ ${new Date().toISOString()}`,branch:i,metadata:{incomingDiskSha:``}}).then(()=>{kb(),b.info({docName:e},`[reconcile] rescue checkpoint saved on branch switch: ${e}`)}).catch(t=>{b.error({docName:e,err:t},`[reconcile] rescue checkpoint write failed: ${e}`)})})}t.getMap(`lifecycle`).set(`status`,`deleted-upstream`),b.info({docName:e,branch:i},`[branch-switch] tombstone: ${e} (not on ${i})`);continue}let a=V(r,`utf-8`);Jt(e,a),w(e,a),b.info({docName:e},`[branch-switch] reset: ${e}`)}catch(t){b.error({err:t,docName:e},`[branch-switch] failed to reset ${e}`)}b.info({branch:i,docCount:Se.documents.size},`[branch-switch] loaded branch ${i} (${Se.documents.size} docs)`);try{await ve.settleBranchFromDisk(r)}catch(e){ve.abortBranchSwitch(r),b.error({err:e,branch:i},`[derived-index] branch-switch rebuild failed; relationship views may be stale`)}if(ye.current&&e.batchKind===`cross-branch`){let e=0;for(let[t]of Se.documents)if(!uS(t))try{let n=await oce(ye.current,i,Px.id,t);if(!n||n.markdown===n.diskSnapshot)continue;let r=C(t);if(!r)continue;let a=_z({docName:t,base:n.diskSnapshot,ours:n.markdown,theirs:r});switch(a.kind){case`merged`:case`clean`:Jt(t,a.newContent),w(t,a.newContent),e++;break;case`conflicts`:Jt(t,a.newContent),w(t,a.newContent),Tb(),e++;{let e=Se.documents.get(t);if(e){let t=e.getMap(`lifecycle`);t.set(`status`,`conflict`),t.set(`reason`,`merged-with-markers`)}}break;case`noop`:case`refused`:break}}catch(e){b.error({err:e,docName:t},`[branch-switch] restore WIP failed for ${t}`)}e>0&&b.info({count:e,branch:i},`[branch-switch] restored ${e} parked docs on ${i}`)}if(e.oldBranch?.startsWith(`detached-`)&&ye.current)try{let t=Sx(ye.current),n=(await t.raw(`for-each-ref`,`refs/wip/${e.oldBranch}/`,`--format=%(refname)`)).trim();n&&(await _x(ye.current).withMutator(async()=>{for(let e of n.split(`
2035
- `))e&&await t.raw(`update-ref`,`-d`,e)}),b.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){b.error({err:e},`[branch-switch] detached cleanup failed`)}ee(!1),await N.flushDeferredStores(`discard-stale`),t=!0,Oe?.emitBranchSwitched(i)}finally{ve.abortBranchSwitch(r),t||(ee(!1),await N.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&ye.current&&t>0){let t=p??`.`;try{let n=await Ix(ye.current,t,e.oldHead,e.newHead,i);Db(),b.info({oldHead:e.oldHead?.slice(0,8)??`null`,newHead:e.newHead.slice(0,8),sha:n.slice(0,8)},`[history] upstream-import from ${e.oldHead?.slice(0,8)??`null`}..${e.newHead.slice(0,8)} → ${n.slice(0,8)}`)}catch(e){b.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){b.error({err:e},`[server] HEAD watcher failed to start`),fn.push(`head-watcher`)}function l(e){for(let t of e)try{let e=lN(L(n,I(r,t)));if(e.startsWith(`..`))continue;let i=Jx(e),a=Se.documents.get(i);if(!a)continue;let o=qt(i);o===null?b.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):w(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),b.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){b.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function d(e){for(let t of e)try{let e=lN(L(n,I(r,t)));if(e.startsWith(`..`))continue;let i=Se.documents.get(Jx(e));i&&Yt(i)}catch(e){b.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=mI(r);b.debug({resetAmbientCredentials:f,originKind:fI(r).kind},`[sync] ambient credential-chain reset decision at boot`);let m=gc(h,{resetAmbient:f}),g=D();g.mode!==`off`&&b.info({mode:g.mode,source:g.source},`[sync] mode active at boot`);try{cn=new nFe({projectDir:r,contentDir:n,contentFilter:he,contentRoot:p,mcpTomlEditor:e.mcpTomlEditor,mode:g.mode,pullIntervalSeconds:e.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds,credentialConfig:m,cc1Broadcaster:Oe,detectGh:e.detectGh,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{ee(e),e||N.flushDeferredStores(`within-branch`).catch(e=>{b.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{b.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:d,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=ye.current;n&&await Rx(n,p??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=ye.current;n&&await Rx(n,p??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{b.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await xs({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||b.error({result:t,reason:e,humanError:Te(t.error),configPath:Bs(`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 cn.start()}catch(e){b.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),cn=null}Ye(`files`),ve.announceReadyViews();let _=qL();_!==void 0&&JL(`readyMs`,_),ae()}return pn().then(()=>{$e=!0,He(),ft(),vt()},e=>{et=!0,tt.abort(),lt({status:`failed`,indexCount:0}),ve.close(),Ke(),Ue(e)}),{hocuspocus:Se,durabilityState:x,sessionManager:Ce,nativeApi:we,localApi:Ee,cc1Broadcaster:Oe,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,maintenanceCoordinator:M,contentFilter:he,basenameIndex:fe,serverInstanceId:le,destroy:dn,ready:We,generatedIndexSweepReady:ct,degraded:fn,lockDir:ue,get syncEngine(){return cn},getLinkPreviewsEnabled:A,resolveEmbed:pe,acpRegistry:de,acpPermissions:j}}function u9(e){return e/1048576}function cFe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:u9(e.rss),heapTotalMb:u9(e.heapTotal),heapUsedMb:u9(e.heapUsed),externalMb:u9(e.external),arrayBuffersMb:u9(e.arrayBuffers)}}}let d9=null,f9=null,p9=null;const m9=1e6;let h9=null,g9=null;Os(()=>{d9=null,f9=null,p9=null,h9?.disable(),h9=null,g9=null});function lFe(){if(d9)return;let e=$s().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}=cFe();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`})}),d9=e}function uFe(){if(!f9){let e=$s().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(!h9){h9=xd({resolution:20}),h9.enable();return}e.observe(h9.percentile(50)/m9,{stat:`p50`}),e.observe(h9.percentile(99)/m9,{stat:`p99`}),h9.reset()}),f9=e}if(!p9){let e=$s().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=g9;if(g9={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`}))}),p9=e}}const _9=P(`skill-migrate`);function v9(e){return[{host:`agents`,root:Ei},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=OD.indexOf(e.host),r=OD.indexOf(t.host);return(n===-1?OD.length:n)-(r===-1?OD.length:r)||e.host.localeCompare(t.host)})}const dFe=v9(zt),fFe=v9(ln);function pFe(e,t){return B(R(e,Pr(t)))}function mFe(e,t){Vs(F(t),{recursive:!0});try{Ps(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Ws(e,t,{recursive:!0}),Gs(e,{recursive:!0,force:!0})}}function hFe(e,t,n){let r=tL(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 y9(e,t){let n;try{n=H(R(e,`.ok`,`skills`))}catch{n=R(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!H(R(e,t.dir)).startsWith(n+z)}catch{return!0}}).map(e=>e.name))}async function b9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??dFe,a={migrated:[],skipped:[]};if(!B(n))return a;let o;try{o=Iu(n)}catch{return a}let s=L(t,n).split(z).join(`/`),c=new Set;for(let[e,n]of Object.entries(JY(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Co.test(e)||dk.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=R(n,e);if(!B(I(o,`SKILL.md`)))continue;let s=_D(o)?.contentHash;if(s===void 0)continue;let l=H(o),u=i.map(({host:n,root:r})=>{let i=R(t,r);return{host:n,root:r,path:I(i,e),escapes:lL(t,i),state:hFe(I(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=>pFe(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`?Gs(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&Gs(d.path,{recursive:!0,force:!0}),mFe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(Gs(e.path,{recursive:!0,force:!0}),Ws(d.path,e.path,{recursive:!0}));await UN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),_9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),_9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const x9=P(`skill-reconcile`),gFe=dk;function S9(){let e=[];for(let t of rr){let n=zt[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:Ei,editor:null}),e}function _Fe(e,t){let n=L(e,R(t));return pu(n)?R(t):n}function C9(e){let{frontmatter:t,body:n}=ai(e),r={};if(t!==``)try{let e=(0,XO.parse)(Ja(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function vFe(e,t){let n=C9(e),r=C9(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 w9(e,t){let n=T9(e),r=T9(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=I(e,o),c=I(t,o);if(i+=Vu(s).size+Vu(c).size,i>1048576)return!1;let l=V(s),u=V(c);if(!l.equals(u)&&(o!==`SKILL.md`||!vFe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function T9(e,t=``){let n=[];for(let r of Iu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...T9(I(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function E9(e,t,n){Gs(t,{recursive:!0,force:!0}),Vs(e,{recursive:!0}),Ls(_Fe(e,n),t,`dir`)}function D9(e,t){try{let n=Lu(e);return R(pu(n)?n:R(F(e),n))===R(t)}catch{return!1}}function yFe(e,t){try{let n=Lu(e),r=pu(n)?R(n):R(F(e),n);if(!B(r))return!1;let i=L(R(t),r);return i!==``&&(i.startsWith(`..`)||pu(i))}catch(t){return x9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const bFe=[...rr,`agents`];function xFe(e){for(let t of bFe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function SFe(e){let{projectDir:t,skillsRoot:n}=e;if(!B(n))return;let r;try{r=Iu(n)}catch{return}let i=S9();for(let e of r){let r=xFe(e);if(r===null)continue;let a=R(n,e),o=R(n,r);if(B(o))try{let n=ku(a);if(n.isSymbolicLink()||!n.isDirectory()||!B(I(a,`SKILL.md`))||!B(I(o,`SKILL.md`))||!w9(o,a))continue;for(let{rel:n}of i){let r=R(t,n);if(lL(t,r))continue;let i=I(r,e);D9(i,a)&&E9(r,i,o)}Gs(a,{recursive:!0,force:!0}),x9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){x9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function CFe(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 S9()){let o=R(t,e);if(!B(o)||lL(t,o))continue;let s;try{s=Iu(o)}catch(e){x9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(gFe.has(e))continue;let t=I(o,e),s=R(n,e),c=B(s);try{let l=ku(t);if(l.isSymbolicLink()){if(D9(t,s)&&c)continue;if(yFe(t,n)){r.skipped.push({name:e,editor:i});continue}c?(E9(o,t,s),r.healed.push({name:e,editor:i})):(Gs(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Co.test(e)){x9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&w9(t,s)){E9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){x9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=BN(t);for(let[r,a]of i){let i=R(n,r);if(!B(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await HN(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??iL(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){x9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{SFe({projectDir:t,skillsRoot:n})}catch(e){x9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let O9=null,k9=!1;function A9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function j9(e){if(!A9())return;let t=sA(e);O9=new oc({currentPath:R(t,`tolerance-telemetry.jsonl`),previousPath:R(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),un(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};O9?.append(`${JSON.stringify(t)}\n`).catch(e=>{k9||(k9=!0,P(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function M9(){un(null),await O9?.drain(),O9=null,k9=!1}_s();const wFe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],TFe=[`cache`,`tmp`];function EFe(e){let t=R(e,ve);if(!(()=>{if(!B(t))return!0;try{return Iu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of wFe)B(R(e,t))&&n.push(t);for(let t of TFe){let r=R(e,t);try{B(r)&&Vu(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function DFe(e){let t=Id(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 N9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function OFe(e){kge();let t=e.projectDir??e.contentDir,n=Dbe({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}`)}nc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Qs({localSink:n?.telemetry}),j9(t),lFe(),uFe();let{kind:r,gitdir:i}=DFe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=Us(i));let o=Tbe(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>ks(`ok.boot`,{attributes:a},async()=>kFe(e)),l=()=>{if(s)try{let e=hs.extract(vs.active(),{traceparent:s});return vs.with(e,c)}catch(e){P(`boot`).warn({err:e},`ok.boot trace-join failed — starting unparented boot`)}return c()},u;try{u=await l()}catch(e){throw o.uninstall(),e}let d=u.destroy;return u.destroy=async()=>{try{await d()}finally{o.uninstall()}},u}async function kFe(e){let t=e.skipAutoInit??!1,n=e.log??P(`boot`),r=e.serverRuntime??{...as(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((Vo(r)||!Xr(i))&&!r.allowExternal)throw new JB(`refusing to start: the server would bind a non-loopback address (${(Xr(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=ZB({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-DuwfbnK9.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=R(p,`.ok`);if(!B(R(m,`config.yml`)))throw new t8(B(m)?`config`:`okdir`,p);let h=R(m,`.gitignore`);B(h)||P(`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??bw;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof _w||e instanceof vw){let t=e instanceof vw?e.detected:``,r=e instanceof vw?`too_old`:`not_available`;CK(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 Zs(),await Promise.race([M9(),new Promise(e=>setTimeout(e,N9))]),e}let _=EFe(m);_.length>0&&P(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${ve}/.`);let v=l9({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}),{hocuspocus:y,destroy:b,ready:x,degraded:S,lockDir:C,sessionManager:w,agentFocusBroadcaster:T,agentPresenceBroadcaster:E,maintenanceCoordinator:ee}=v,te=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),D=e.port??0,re=()=>`http://${te}:${D}`,O=e.ephemeral?void 0:J6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>re(),localApi:v.localApi,log:n}),k=c();k.headersTimeout=3e4,k.requestTimeout=6e4;let A=e.serveContentAssets===!1?void 0:vZ({contentFilter:v.contentFilter,contentSirv:jZ(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:ye,assetExtensions:ne,blocklistExtensions:Me,ingressPolicy:a}),ie=e.reactShellDistDir?jZ(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,ae=e.ephemeral?null:new _E({contentDir:e.contentDir,localDir:C,globalDir:R(qu(),`.ok`),registry:v.acpRegistry,permissions:v.acpPermissions,sessionManager:w,agentPresenceBroadcaster:E,resolveEmbed:v.resolveEmbed,isExcludedPath:e=>v.contentFilter.isExcluded(e),isIgnoredPath:e=>v.contentFilter.isPathIgnored(e),getLoadedDocText:e=>y.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>re(),getMcpStdioCommand:()=>gE(e.localOpCliArgs,D,{log:n}),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,probePiAcpBridge:e.probePiAcpBridge,ensurePiAcpBridge:e.ensurePiAcpBridge,log:n});ae!==null&&await ae.init();let oe=`pending`;x.then(()=>{oe=`ready`},()=>{oe=`failed`});let se=$6({httpServer:k,hocuspocus:y,nativeApi:v.nativeApi,mcpHttpHandler:O,ingressPolicy:a,health:{readiness:()=>oe,degraded:()=>S},log:n,sessionManager:w,agentFocusBroadcaster:T,agentPresenceBroadcaster:E,maintenanceCoordinator:ee,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:A,reactShellMiddleware:ie,ephemeral:e.ephemeral,acpThreadManager:ae}),ce=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)},le=null;e.idleShutdownMs!==null&&(le=IZ({httpServer:k,thresholdMs:e.idleShutdownMs??18e5,log:n,onShutdown:(e.idleShutdownHandler??(e=>async()=>{await e()}))(async()=>{await ce()})})),await P9({hocuspocus:y,projectDir:e.projectDir??e.contentDir,log:n});let ue=[...new Set(i)],de=ue[0],j=async()=>{await b().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(C)},fe=(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 fe(k,e.port??0,de??`127.0.0.1`)}catch(e){throw await j(),e}let pe=k.address(),me=typeof pe==`object`&&pe?pe.port:e.port??0,he=[];for(let e of ue.slice(1)){let t=c();t.headersTimeout=k.headersTimeout,t.requestTimeout=k.requestTimeout;for(let e of k.listeners(`request`))t.on(`request`,e);for(let e of k.listeners(`upgrade`))t.on(`upgrade`,e);try{await fe(t,me,e)}catch(t){n.error({err:t,failedAddress:e,port:me,alreadyBound:he.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...he,k])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await j(),t}he.push(t)}let ge=qL();ge!==void 0&&JL(`httpListenMs`,ge);let _e=k.address(),M=typeof _e==`object`&&_e?_e.port:e.port??0;D=M,d(C,M,re());let N=!1,be=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${N9}ms`))},N9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};ce=async()=>{if(N)return;N=!0,oe=`draining`;let e=[],t=async(t,r)=>{try{await be(t,r)}catch(r){e.push(r),n.warn({err:r,step:t},`bootServer destroy step failed`)}};try{l(C)}catch(e){n.warn({err:e,step:`markServerLockDraining`},`bootServer destroy step failed`)}try{le?.detach()}catch(t){e.push(t),n.warn({err:t,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(ae!==null&&await t(`acpThreads.destroy`,()=>ae.destroy()),await t(`secondaryListeners.close`,async()=>{for(let e of he)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await t(`mount.shutdown`,()=>se.shutdown()),O!==void 0&&await t(`mcpHttpHandler.close`,()=>O.close()),await t(`mount.wss.close`,()=>new Promise((e,t)=>{se.wss.close(n=>n?t(n):e())})),await t(`httpServer.closeAllConnections`,async()=>{k.closeAllConnections?.()}),await t(`httpServer.close`,()=>new Promise((e,t)=>{k.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await t(`destroyHocuspocus`,()=>b()),await t(`shutdownTelemetry`,()=>Zs()),await t(`teardownToleranceTelemetry`,()=>M9()),await t(`flushLogFileSinks`,()=>nc.flushAllFileSinks()),e.length>0)throw AggregateError(e,`bootServer destroy completed with errors`)};try{let t=await b9({projectDir:p,skillsRoot:R(e.contentDir,`.ok`,`skills`),inPlaceNames:y9(e.contentDir,PL(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=qu(),t=await b9({projectDir:e,skillsRoot:R(e,`.ok`,`skills`),hostRoots:fFe,inPlaceNames:y9(e,FL(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 CFe({projectDir:p,skillsRoot:R(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:k,destroy:ce,lockDir:C,contentDir:e.contentDir,port:M,ready:x,generatedIndexSweepReady:v.generatedIndexSweepReady,degraded:S,didAutoInit:f,serverInstance:v,runtime:Fje(v,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:ae}}async function P9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new NZ(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=Ld(n),t=e?I(e,`MERGE_HEAD`):null;if(!t||!B(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=fc({baseDir:n,timeout:{block:5e3}});s=new Set(await bb(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=Jx(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 AFe=Fe;function jFe(e={}){let t=e.home??qu(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?B(I(t,`Library`,`Application Support`,`Claude`)):n===`win32`?B(I(r.APPDATA??I(t,`AppData`,`Roaming`),`Claude`)):!1}var F9=t(ac(),1);const I9=I(qu(),`.ok`,`logs`),MFe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function NFe(){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 PFe(e){Au(e,{recursive:!0})}function L9(){return new Date().toISOString().slice(0,10)}function FFe(e){try{if(Vu(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{Ru(n,r)}catch{}}try{Hu(`${e}.3`)}catch{}}function IFe(e){try{let t=Date.now(),n=10080*60*1e3,r=Iu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=Vu(I(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{Hu(I(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{Hu(I(e,t.name)),a-=t.size}catch{}}}catch{}}function LFe(e){PFe(I9);let t=L9(),n=e.filePath??I(I9,`${e.name}.${t}.log`);FFe(n),(e._setTimeout??setTimeout)(()=>IFe(I9),5e3).unref();let r=F9.default.destination({dest:n,append:!0,sync:!0});return(0,F9.default)({level:NFe(),name:e.name,redact:{paths:MFe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:F9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function RFe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[F9.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 zFe(e){return I(I9,`${e}.${L9()}.log`)}function BFe(){return I9}function VFe(e){let t=R(e),n=0;for(;n<30;){let e=!1;try{e=B(R(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=F(t);if(r===t)return null;t=r,n+=1}return null}const R9=Td(ou),z9=P(`project-git`);var B9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function HFe(e,t){try{return await R9(e,[`var`,`GIT_COMMITTER_IDENT`],mw({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function UFe(e,t){try{let{stdout:n}=await R9(e,[`for-each-ref`,`--count=1`,`refs/`],mw({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return z9.warn({path:t,stderr:V9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function WFe(e){let t=R(e,`packed-refs`);if(B(t))try{if(V(t,`utf-8`).split(`
2035
+ `))e&&await t.raw(`update-ref`,`-d`,e)}),b.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`))}catch(e){b.error({err:e},`[branch-switch] detached cleanup failed`)}ee(!1),await N.flushDeferredStores(`discard-stale`),t=!0,Oe?.emitBranchSwitched(i)}finally{ve.abortBranchSwitch(r),t||(ee(!1),await N.flushDeferredStores(`discard-stale`))}}if(e.headMoved&&e.newHead&&ye.current&&t>0){let t=p??`.`;try{let n=await Ix(ye.current,t,e.oldHead,e.newHead,i);Db(),b.info({oldHead:e.oldHead?.slice(0,8)??`null`,newHead:e.newHead.slice(0,8),sha:n.slice(0,8)},`[history] upstream-import from ${e.oldHead?.slice(0,8)??`null`}..${e.newHead.slice(0,8)} → ${n.slice(0,8)}`)}catch(e){b.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){b.error({err:e},`[server] HEAD watcher failed to start`),fn.push(`head-watcher`)}function l(e){for(let t of e)try{let e=lN(L(n,I(r,t)));if(e.startsWith(`..`))continue;let i=Jx(e),a=Se.documents.get(i);if(!a)continue;let o=qt(i);o===null?b.warn({docName:i,file:t},`[sync] content conflict: serializeDoc returned null; reconciledBase snapshot skipped`):w(i,o);let s=a.getMap(`lifecycle`);s.set(`status`,`conflict`),s.set(`reason`,`sync-merge-conflict`),b.info({docName:i,file:t},`[sync] marked loaded content conflict`)}catch(e){b.warn({err:e,file:t},`[sync] failed to mark loaded content conflict`)}}function d(e){for(let t of e)try{let e=lN(L(n,I(r,t)));if(e.startsWith(`..`))continue;let i=Se.documents.get(Jx(e));i&&Yt(i)}catch(e){b.warn({err:e,file:t},`[sync] failed to clear resolved content conflict`)}}let f=mI(r);b.debug({resetAmbientCredentials:f,originKind:fI(r).kind},`[sync] ambient credential-chain reset decision at boot`);let m=gc(h,{resetAmbient:f}),g=D();g.mode!==`off`&&b.info({mode:g.mode,source:g.source},`[sync] mode active at boot`);try{cn=new nFe({projectDir:r,contentDir:n,contentFilter:he,contentRoot:p,mcpTomlEditor:e.mcpTomlEditor,mode:g.mode,pullIntervalSeconds:e.pullIntervalSeconds,pushIntervalSeconds:e.pushIntervalSeconds,credentialConfig:m,cc1Broadcaster:Oe,detectGh:e.detectGh,detectGhAccounts:e.detectGhAccounts,tokenStore:e.tokenStore,checkPushPermissionFn:e.checkPushPermissionFn,setBatchInProgress:e=>{ee(e),e||N.flushDeferredStores(`within-branch`).catch(e=>{b.error({err:e},`[persistence] deferred store drain failed after sync batch`)})},onStateChange:e=>{b.info({state:e},`[sync] state → ${e}`)},onContentConflictsDetected:l,onContentConflictsResolved:d,checkpointBeforeStrandedConversion:async({branch:e,ahead:t})=>{let n=ye.current;n&&await Rx(n,p??``,{action:`pull-only-stranded-conversion`,context:{ahead:t}},e)},checkpointBeforeOverlayRestore:async({branch:e,paths:t})=>{let n=ye.current;n&&await Rx(n,p??``,{action:`pull-only-overlay-restore`,context:{paths:t}},e)},onAutoDisable:async e=>{b.warn({reason:e},`[sync] auto-disabled — persisting to project-local config`);let t=await xs({cwd:r,scope:`project-local`,patch:{autoSync:{enabled:!1}}});t.ok||b.error({result:t,reason:e,humanError:Te(t.error),configPath:Bs(`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 cn.start()}catch(e){b.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),cn=null}Ye(`files`),ve.announceReadyViews();let _=qL();_!==void 0&&JL(`readyMs`,_),ae()}return pn().then(()=>{$e=!0,He(),ft(),vt()},e=>{et=!0,tt.abort(),lt({status:`failed`,indexCount:0}),ve.close(),Ke(),Ue(e)}),{hocuspocus:Se,durabilityState:x,sessionManager:Ce,nativeApi:we,localApi:Ee,cc1Broadcaster:Oe,agentFocusBroadcaster:Ae,agentPresenceBroadcaster:je,maintenanceCoordinator:M,contentFilter:he,basenameIndex:fe,serverInstanceId:le,destroy:dn,ready:We,generatedIndexSweepReady:ct,degraded:fn,lockDir:ue,get syncEngine(){return cn},getLinkPreviewsEnabled:A,resolveEmbed:pe,acpRegistry:de,acpPermissions:j}}function u9(e){return e/1048576}function cFe(){let e=process.memoryUsage();return{schemaVersion:1,capturedAt:new Date().toISOString(),snapshot:{rssMb:u9(e.rss),heapTotalMb:u9(e.heapTotal),heapUsedMb:u9(e.heapUsed),externalMb:u9(e.external),arrayBuffersMb:u9(e.arrayBuffers)}}}let d9=null,f9=null,p9=null;const m9=1e6;let h9=null,g9=null;Os(()=>{d9=null,f9=null,p9=null,h9?.disable(),h9=null,g9=null});function lFe(){if(d9)return;let e=$s().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}=cFe();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`})}),d9=e}function uFe(){if(!f9){let e=$s().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(!h9){h9=xd({resolution:20}),h9.enable();return}e.observe(h9.percentile(50)/m9,{stat:`p50`}),e.observe(h9.percentile(99)/m9,{stat:`p99`}),h9.reset()}),f9=e}if(!p9){let e=$s().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=g9;if(g9={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`}))}),p9=e}}const _9=P(`skill-migrate`);function v9(e){return[{host:`agents`,root:Ei},...Object.entries(e).filter(e=>e[1]!==null).map(([e,t])=>({host:e,root:t}))].sort((e,t)=>{let n=OD.indexOf(e.host),r=OD.indexOf(t.host);return(n===-1?OD.length:n)-(r===-1?OD.length:r)||e.host.localeCompare(t.host)})}const dFe=v9(zt),fFe=v9(ln);function pFe(e,t){return B(R(e,Pr(t)))}function mFe(e,t){Vs(F(t),{recursive:!0});try{Ps(e,t)}catch(n){if(!(n instanceof Error)||n.code!==`EXDEV`)throw n;Ws(e,t,{recursive:!0}),Gs(e,{recursive:!0,force:!0})}}function hFe(e,t,n){let r=tL(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 y9(e,t){let n;try{n=H(R(e,`.ok`,`skills`))}catch{n=R(e,`.ok`,`skills`)}return new Set(t.filter(t=>{try{return!H(R(e,t.dir)).startsWith(n+z)}catch{return!0}}).map(e=>e.name))}async function b9(e){let{projectDir:t,skillsRoot:n}=e,r=e.inPlaceNames??new Set,i=e.hostRoots??dFe,a={migrated:[],skipped:[]};if(!B(n))return a;let o;try{o=Iu(n)}catch{return a}let s=L(t,n).split(z).join(`/`),c=new Set;for(let[e,n]of Object.entries(JY(t)))for(let t of n)t.path.split(`/`).slice(0,-1).join(`/`)===s&&c.add(e);for(let e of o)try{if(!Co.test(e)||dk.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=R(n,e);if(!B(I(o,`SKILL.md`)))continue;let s=_D(o)?.contentHash;if(s===void 0)continue;let l=H(o),u=i.map(({host:n,root:r})=>{let i=R(t,r);return{host:n,root:r,path:I(i,e),escapes:lL(t,i),state:hFe(I(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=>pFe(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`?Gs(o,{recursive:!0,force:!0}):(d.state.kind===`store-link`&&Gs(d.path,{recursive:!0,force:!0}),mFe(o,d.path));for(let e of u)e===d||e.state.kind!==`store-link`||(Gs(e.path,{recursive:!0,force:!0}),Ws(d.path,e.path,{recursive:!0}));await UN(t,e),a.migrated.push({name:e,to:`${d.root}/${e}`}),_9.info({skill:e,to:`${d.root}/${e}`},`migrated store skill in place`)}catch(t){a.skipped.push({name:e,reason:`error`}),_9.warn({err:t,skill:e},`store-skill migration skipped one entry after error`)}return a}const x9=P(`skill-reconcile`),gFe=dk;function S9(){let e=[];for(let t of rr){let n=zt[t];n!==null&&e.push({rel:n,editor:t})}return e.push({rel:Ei,editor:null}),e}function _Fe(e,t){let n=L(e,R(t));return pu(n)?R(t):n}function C9(e){let{frontmatter:t,body:n}=ai(e),r={};if(t!==``)try{let e=(0,XO.parse)(Ja(t));e&&typeof e==`object`&&!Array.isArray(e)&&(r=e)}catch{}return{fm:r,body:n}}function vFe(e,t){let n=C9(e),r=C9(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 w9(e,t){let n=T9(e),r=T9(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=I(e,o),c=I(t,o);if(i+=Vu(s).size+Vu(c).size,i>1048576)return!1;let l=V(s),u=V(c);if(!l.equals(u)&&(o!==`SKILL.md`||!vFe(l.toString(`utf8`),u.toString(`utf8`))))return!1}return!0}function T9(e,t=``){let n=[];for(let r of Iu(e,{withFileTypes:!0})){let i=t?`${t}/${r.name}`:r.name;r.isDirectory()?n.push(...T9(I(e,r.name),i)):r.isFile()&&n.push(i)}return n.sort()}function E9(e,t,n){Gs(t,{recursive:!0,force:!0}),Vs(e,{recursive:!0}),Ls(_Fe(e,n),t,`dir`)}function D9(e,t){try{let n=Lu(e);return R(pu(n)?n:R(F(e),n))===R(t)}catch{return!1}}function yFe(e,t){try{let n=Lu(e),r=pu(n)?R(n):R(F(e),n);if(!B(r))return!1;let i=L(R(t),r);return i!==``&&(i.startsWith(`..`)||pu(i))}catch(t){return x9.warn({linkPath:e,err:t},`isForeignSymlink: could not resolve symlink; treating as reconcile-managed`),!1}}const bFe=[...rr,`agents`];function xFe(e){for(let t of bFe){let n=`-${t}`;if(e.length>n.length&&e.endsWith(n))return e.slice(0,-n.length)}return null}function SFe(e){let{projectDir:t,skillsRoot:n}=e;if(!B(n))return;let r;try{r=Iu(n)}catch{return}let i=S9();for(let e of r){let r=xFe(e);if(r===null)continue;let a=R(n,e),o=R(n,r);if(B(o))try{let n=ku(a);if(n.isSymbolicLink()||!n.isDirectory()||!B(I(a,`SKILL.md`))||!B(I(o,`SKILL.md`))||!w9(o,a))continue;for(let{rel:n}of i){let r=R(t,n);if(lL(t,r))continue;let i=I(r,e);D9(i,a)&&E9(r,i,o)}Gs(a,{recursive:!0,force:!0}),x9.info({base:r,suffixed:e},`collapsed accreted suffix-duplicate skill into its base`)}catch(t){x9.warn({err:t,base:r,suffixed:e},`suffix-dupe collapse skipped one entry after error`)}}}async function CFe(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 S9()){let o=R(t,e);if(!B(o)||lL(t,o))continue;let s;try{s=Iu(o)}catch(e){x9.warn({hostRoot:o,err:e},`reconcile: skipped unreadable host skills root`);continue}for(let e of s){if(gFe.has(e))continue;let t=I(o,e),s=R(n,e),c=B(s);try{let l=ku(t);if(l.isSymbolicLink()){if(D9(t,s)&&c)continue;if(yFe(t,n)){r.skipped.push({name:e,editor:i});continue}c?(E9(o,t,s),r.healed.push({name:e,editor:i})):(Gs(t,{recursive:!0,force:!0}),r.orphansRemoved.push({name:e,editor:i}));continue}if(!l.isDirectory())continue;if(!Co.test(e)){x9.warn({skill:e,editor:i},`reconcile: skipping host-dir entry with a non-skill name`);continue}if(c&&w9(t,s)){E9(o,t,s),r.replaced.push({name:e,editor:i}),a(e,i);continue}r.skipped.push({name:e,editor:i})}catch(t){x9.warn({err:t,skill:e,editor:i},`reconcile skipped one skill entry after error`)}}}if(i.size>0){let e=BN(t);for(let[r,a]of i){let i=R(n,r);if(!B(i))continue;let o=e.skills[r],s=Array.from(new Set([...o?.hosts??[],...a]));try{await HN(t,r,{hosts:s,scope:o?.scope??`project`,scripts:o?.scripts??iL(i,r).hasScripts,installedAt:o?.installedAt??new Date().toISOString()})}catch(e){x9.warn({err:e,skill:r},`reconcile marker update failed (non-fatal)`)}}}try{SFe({projectDir:t,skillsRoot:n})}catch(e){x9.warn({err:e},`suffix-dupe collapse pass failed (non-fatal)`)}return r}let O9=null,k9=!1;function A9(e=process.env){return e.OK_BRIDGE_TOLERANCE_TELEMETRY===`1`}function j9(e){if(!A9())return;let t=sA(e);O9=new oc({currentPath:R(t,`tolerance-telemetry.jsonl`),previousPath:R(t,`tolerance-telemetry.prev.jsonl`),maxBytes:8388608}),un(e=>{let t={event:`bridge-tolerance-fire`,timestamp:e.timestamp,class:e.className,document:e.documentName??null,codeUnitPosition:e.codeUnitPosition,severity:e.severity};O9?.append(`${JSON.stringify(t)}\n`).catch(e=>{k9||(k9=!0,P(`tolerance-telemetry`).warn({err:e instanceof Error?e:Error(String(e))},`append failed; further failures are silent`))})})}async function M9(){un(null),await O9?.drain(),O9=null,k9=!1}_s();const wFe=[`server.lock`,`ui.lock`,`state.json`,`principal.json`,`sync-state.json`,`conflicts.json`,`last-spawn-error.log`],TFe=[`cache`,`tmp`];function EFe(e){let t=R(e,ve);if(!(()=>{if(!B(t))return!0;try{return Iu(t).length===0}catch{return!0}})())return[];let n=[];for(let t of wFe)B(R(e,t))&&n.push(t);for(let t of TFe){let r=R(e,t);try{B(r)&&Vu(r).isDirectory()&&n.push(`${t}/`)}catch{}}return n}function DFe(e){let t=Id(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 N9=Number(process.env.OK_DESTROY_STEP_TIMEOUT_MS)||5e3;async function OFe(e){kge();let t=e.projectDir??e.contentDir,n=Dbe({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}`)}nc.configure({pinoConfig:{fileSink:n.logs,redactPaths:t}})}Qs({localSink:n?.telemetry}),j9(t),lFe(),uFe();let{kind:r,gitdir:i}=DFe(e.projectDir??e.contentDir),a={"ok.worktree.kind":r};i!==null&&(a[`ok.worktree.gitdir`]=Us(i));let o=Tbe(t),s=process.env.OK_STARTUP_TRACEPARENT,c=()=>ks(`ok.boot`,{attributes:a},async()=>kFe(e)),l=()=>{if(s)try{let e=hs.extract(vs.active(),{traceparent:s});return vs.with(e,c)}catch(e){P(`boot`).warn({err:e},`ok.boot trace-join failed — starting unparented boot`)}return c()},u;try{u=await l()}catch(e){throw o.uninstall(),e}let d=u.destroy;return u.destroy=async()=>{try{await d()}finally{o.uninstall()}},u}async function kFe(e){let t=e.skipAutoInit??!1,n=e.log??P(`boot`),r=e.serverRuntime??{...as(e.config),allowExternal:!1},i=e.bind!==void 0&&e.bind.length>0?e.bind:[e.host??`127.0.0.1`];if((Vo(r)||!Xr(i))&&!r.allowExternal)throw new JB(`refusing to start: the server would bind a non-loopback address (${(Xr(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=ZB({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-CJBewXA-.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=R(p,`.ok`);if(!B(R(m,`config.yml`)))throw new t8(B(m)?`config`:`okdir`,p);let h=R(m,`.gitignore`);B(h)||P(`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??bw;try{e.gitEnabled!==!1&&g()}catch(e){if(e instanceof _w||e instanceof vw){let t=e instanceof vw?e.detected:``,r=e instanceof vw?`too_old`:`not_available`;CK(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 Zs(),await Promise.race([M9(),new Promise(e=>setTimeout(e,N9))]),e}let _=EFe(m);_.length>0&&P(`boot`).warn({files:_},`Found legacy runtime files at .ok/${_.join(`, `)}. Delete .ok/ and re-init — these files moved to .ok/${ve}/.`);let v=l9({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}),{hocuspocus:y,destroy:b,ready:x,degraded:S,lockDir:C,sessionManager:w,agentFocusBroadcaster:T,agentPresenceBroadcaster:E,maintenanceCoordinator:ee}=v,te=(()=>{let t=e.host??`localhost`;return t===`0.0.0.0`||t===`::`?`localhost`:t.includes(`:`)&&!t.startsWith(`[`)?`[${t}]`:t})(),D=e.port??0,re=()=>`http://${te}:${D}`,O=e.ephemeral?void 0:J6({contentDir:e.contentDir,projectDir:e.projectDir??e.contentDir,config:e.config,getServerUrl:()=>re(),localApi:v.localApi,log:n}),k=c();k.headersTimeout=3e4,k.requestTimeout=6e4;let A=e.serveContentAssets===!1?void 0:vZ({contentFilter:v.contentFilter,contentSirv:jZ(e.contentDir,{dev:!0,dotfiles:!1}),inlineExtensions:ye,assetExtensions:ne,blocklistExtensions:Me,ingressPolicy:a}),ie=e.reactShellDistDir?jZ(e.reactShellDistDir,{single:!0,gzip:!0,etag:!0,dev:!0}):void 0,ae=e.ephemeral?null:new _E({contentDir:e.contentDir,localDir:C,globalDir:R(qu(),`.ok`),registry:v.acpRegistry,permissions:v.acpPermissions,sessionManager:w,agentPresenceBroadcaster:E,resolveEmbed:v.resolveEmbed,isExcludedPath:e=>v.contentFilter.isExcluded(e),isIgnoredPath:e=>v.contentFilter.isPathIgnored(e),getLoadedDocText:e=>y.documents.get(e)?.getText(`source`).toString()??null,getServerUrl:()=>re(),getMcpStdioCommand:()=>gE(e.localOpCliArgs,D,{log:n}),probeHarnessManagedMcpEntry:e.probeHarnessManagedMcpEntry,probePiAcpBridge:e.probePiAcpBridge,ensurePiAcpBridge:e.ensurePiAcpBridge,log:n});ae!==null&&await ae.init();let oe=`pending`;x.then(()=>{oe=`ready`},()=>{oe=`failed`});let se=$6({httpServer:k,hocuspocus:y,nativeApi:v.nativeApi,mcpHttpHandler:O,ingressPolicy:a,health:{readiness:()=>oe,degraded:()=>S},log:n,sessionManager:w,agentFocusBroadcaster:T,agentPresenceBroadcaster:E,maintenanceCoordinator:ee,keepaliveGraceMs:e.keepaliveGraceMs,contentAssetMiddleware:A,reactShellMiddleware:ie,ephemeral:e.ephemeral,acpThreadManager:ae}),ce=async()=>{throw Error(`bootServer: destroy() invoked before initialization — boot did not complete`)},le=null;e.idleShutdownMs!==null&&(le=IZ({httpServer:k,thresholdMs:e.idleShutdownMs??18e5,log:n,onShutdown:(e.idleShutdownHandler??(e=>async()=>{await e()}))(async()=>{await ce()})})),await P9({hocuspocus:y,projectDir:e.projectDir??e.contentDir,log:n});let ue=[...new Set(i)],de=ue[0],j=async()=>{await b().catch(e=>{n.warn({err:e},`destroyHocuspocus failed during listen-error cleanup`)}),u(C)},fe=(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 fe(k,e.port??0,de??`127.0.0.1`)}catch(e){throw await j(),e}let pe=k.address(),me=typeof pe==`object`&&pe?pe.port:e.port??0,he=[];for(let e of ue.slice(1)){let t=c();t.headersTimeout=k.headersTimeout,t.requestTimeout=k.requestTimeout;for(let e of k.listeners(`request`))t.on(`request`,e);for(let e of k.listeners(`upgrade`))t.on(`upgrade`,e);try{await fe(t,me,e)}catch(t){n.error({err:t,failedAddress:e,port:me,alreadyBound:he.length+1},`[boot] secondary address bind failed — unwinding all listeners`);for(let e of[...he,k])e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] listener close failed during unwind`),t()})});throw await j(),t}he.push(t)}let ge=qL();ge!==void 0&&JL(`httpListenMs`,ge);let _e=k.address(),M=typeof _e==`object`&&_e?_e.port:e.port??0;D=M,d(C,M,re());let N=!1,be=async(e,t)=>{let n;try{await Promise.race([t(),new Promise((t,r)=>{n=setTimeout(()=>{r(Error(`${e} timed out after ${N9}ms`))},N9),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}};ce=async()=>{if(N)return;N=!0,oe=`draining`;let e=[],t=async(t,r)=>{try{await be(t,r)}catch(r){e.push(r),n.warn({err:r,step:t},`bootServer destroy step failed`)}};try{l(C)}catch(e){n.warn({err:e,step:`markServerLockDraining`},`bootServer destroy step failed`)}try{le?.detach()}catch(t){e.push(t),n.warn({err:t,step:`idleHandle.detach`},`bootServer destroy step failed`)}if(ae!==null&&await t(`acpThreads.destroy`,()=>ae.destroy()),await t(`secondaryListeners.close`,async()=>{for(let e of he)e.closeAllConnections?.(),await new Promise(t=>{e.close(e=>{e&&n.warn({err:e},`[boot] secondary listener close failed during teardown`),t()})})}),await t(`mount.shutdown`,()=>se.shutdown()),O!==void 0&&await t(`mcpHttpHandler.close`,()=>O.close()),await t(`mount.wss.close`,()=>new Promise((e,t)=>{se.wss.close(n=>n?t(n):e())})),await t(`httpServer.closeAllConnections`,async()=>{k.closeAllConnections?.()}),await t(`httpServer.close`,()=>new Promise((e,t)=>{k.close(n=>n&&n.code!==`ERR_SERVER_NOT_RUNNING`?t(n):e())})),await t(`destroyHocuspocus`,()=>b()),await t(`shutdownTelemetry`,()=>Zs()),await t(`teardownToleranceTelemetry`,()=>M9()),await t(`flushLogFileSinks`,()=>nc.flushAllFileSinks()),e.length>0)throw AggregateError(e,`bootServer destroy completed with errors`)};try{let t=await b9({projectDir:p,skillsRoot:R(e.contentDir,`.ok`,`skills`),inPlaceNames:y9(e.contentDir,PL(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=qu(),t=await b9({projectDir:e,skillsRoot:R(e,`.ok`,`skills`),hostRoots:fFe,inPlaceNames:y9(e,FL(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 CFe({projectDir:p,skillsRoot:R(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:k,destroy:ce,lockDir:C,contentDir:e.contentDir,port:M,ready:x,generatedIndexSweepReady:v.generatedIndexSweepReady,degraded:S,didAutoInit:f,serverInstance:v,runtime:Fje(v,{contentDir:e.contentDir,projectDir:p}),acpThreadManager:ae}}async function P9(e){let{hocuspocus:t,projectDir:n,log:r}=e,i,a;try{i=new NZ(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=Ld(n),t=e?I(e,`MERGE_HEAD`):null;if(!t||!B(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=fc({baseDir:n,timeout:{block:5e3}});s=new Set(await bb(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=Jx(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 AFe=Fe;function jFe(e={}){let t=e.home??qu(),n=e.platformName??process.platform,r=e.env??process.env;return n===`darwin`?B(I(t,`Library`,`Application Support`,`Claude`)):n===`win32`?B(I(r.APPDATA??I(t,`AppData`,`Roaming`),`Claude`)):!1}var F9=t(ac(),1);const I9=I(qu(),`.ok`,`logs`),MFe=[`authorization`,`password`,`token`,`apiKey`,`secret`,`*.authorization`,`*.password`,`*.token`,`*.apiKey`,`*.secret`];function NFe(){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 PFe(e){Au(e,{recursive:!0})}function L9(){return new Date().toISOString().slice(0,10)}function FFe(e){try{if(Vu(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{Ru(n,r)}catch{}}try{Hu(`${e}.3`)}catch{}}function IFe(e){try{let t=Date.now(),n=10080*60*1e3,r=Iu(e).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(t=>{try{let n=Vu(I(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{Hu(I(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{Hu(I(e,t.name)),a-=t.size}catch{}}}catch{}}function LFe(e){PFe(I9);let t=L9(),n=e.filePath??I(I9,`${e.name}.${t}.log`);FFe(n),(e._setTimeout??setTimeout)(()=>IFe(I9),5e3).unref();let r=F9.default.destination({dest:n,append:!0,sync:!0});return(0,F9.default)({level:NFe(),name:e.name,redact:{paths:MFe,censor:`[REDACTED]`},base:{pid:process.pid,hostname:void 0,runtime:`cli`,project:e.project??`<no-project>`},timestamp:F9.default.stdTimeFunctions.isoTime,...e.additionalOptions},r)}function RFe(e,t=250){return new Promise(n=>{if(!e){n();return}let r=e[F9.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 zFe(e){return I(I9,`${e}.${L9()}.log`)}function BFe(){return I9}function VFe(e){let t=R(e),n=0;for(;n<30;){let e=!1;try{e=B(R(t,`.git`))}catch{e=!1}if(e)return{gitRoot:t,distance:n};let r=F(t);if(r===t)return null;t=r,n+=1}return null}const R9=Td(ou),z9=P(`project-git`);var B9=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function HFe(e,t){try{return await R9(e,[`var`,`GIT_COMMITTER_IDENT`],mw({cwd:t,encoding:`utf-8`})),!0}catch{return!1}}async function UFe(e,t){try{let{stdout:n}=await R9(e,[`for-each-ref`,`--count=1`,`refs/`],mw({cwd:t,encoding:`utf-8`}));return n.trim().length>0}catch(e){return z9.warn({path:t,stderr:V9(e)},`could not list refs — assuming history exists and skipping the initial commit`),!0}}function WFe(e){let t=R(e,`packed-refs`);if(B(t))try{if(V(t,`utf-8`).split(`
2036
2036
  `).some(e=>e.trim()!==``&&!e.startsWith(`#`)))return!0}catch{return!0}try{return Iu(R(e,`refs/heads`)).length>0}catch{return!1}}function V9(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 H9(e,t){if(await UFe(e,t))return;let n=[`commit`,`--allow-empty`,`--no-verify`,`--no-gpg-sign`,`-m`,`Initial commit`],r=await HFe(e,t),i=r?n:[`-c`,`user.name=Open Knowledge`,`-c`,`user.email=noreply@openknowledge.local`,...n];try{await R9(e,i,mw({cwd:t,encoding:`utf-8`})),r||z9.info({path:t},`created initial commit with fallback identity (git identity unset)`)}catch(e){z9.warn({path:t,stderr:V9(e)},`could not create initial commit`)}}async function GFe(e,t){try{let{stdout:n}=await R9(e,[`rev-parse`,`--is-inside-work-tree`],mw({cwd:t,encoding:`utf-8`}));return n.trim()===`true`}catch{return!1}}async function KFe(e){let t=R(e);UW(t);let n=R(t,`.git`),r=R(n,`HEAD`),i=!1,a=!1;if(B(n)){if(!Vu(n).isDirectory())return{didInit:!1};if(B(r)){if(WFe(n))return{didInit:!1};a=!0}else z9.info({},`detected partial .git/ — running git init to repair`),i=!0}let o;try{o=bw()}catch(e){throw e instanceof _w||e instanceof vw?(CK(e),z9.warn({event:`git_preflight_fail`,platform:e.platform,reason:e instanceof vw?`too_old`:`not_available`,detectedVersion:e instanceof vw?e.detected:``},e instanceof vw?`git binary too old`:`git binary not found`)):z9.warn({event:`git_preflight_unexpected_error`,err:e},`unexpected error during git preflight`),e}let s=o.resolvedPath;if(a)return await H9(s,t),{didInit:!1};if(!i&&await GFe(s,t))return{didInit:!1};let c=``;try{c=(await R9(s,[`init`,`--initial-branch=main`,t],mw({encoding:`utf-8`}))).stderr??``}catch(e){let n=typeof e==`object`&&e&&`stderr`in e?String(e.stderr??``):``;throw new B9(`git init failed at ${t}: ${e instanceof Error?e.message:String(e)}`,n,{cause:e})}if(!B(r))throw new B9(`git init reported success but ${n}/HEAD is missing (partial init detected)`,c);return await H9(s,t),i?(z9.info({path:t},`backfilled missing .git/HEAD`),{didInit:!0,repaired:!0}):(z9.info({path:t,branch:`main`},`initialized .git/`),{didInit:!0})}const U9=P(`project-skill-git`),W9=/^[0-9a-f]{40}$/,qFe=fs.map(e=>e.replace(/\/$/,``));async function JFe(e){let t=Ld(e);if(t===null)return{kind:`skipped`,reason:`no-git`};if(QFe(t))return{kind:`skipped`,reason:`operation-in-progress`};let n=pc(e,{credentialConfig:[]});if((await G9(n)).length===0)return{kind:`nothing-tracked`};try{return await dc(async()=>{let t=await YFe(n);if(t===null)return{kind:`skipped`,reason:`detached-head`};let r=await XFe(n);if(r===null)return{kind:`skipped`,reason:`unborn-head`};let i=await G9(n);if(i.length===0)return{kind:`nothing-tracked`};let a=pc(e,{gitIndexFile:I(Xu(),`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 ZFe(n,r);if(s!==null&&s===o)return{kind:`nothing-tracked`};let c=await RB(e),l=c?.name??`OpenKnowledge`,u=c?.email??`sync@open-knowledge.local`;vc(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 \`${st}\` 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(!W9.test(f))return U9.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 U9.info({branch:t,err:K9(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){U9.info({err:K9(e)},`real-index reset after untrack failed (cosmetic)`)}return U9.info({dirs:i,commitSha:f},`untracked project-skill projection`),{kind:`untracked`,dirs:i,commitSha:f}})}catch(e){return{kind:`failed`,error:K9(e)}}}async function G9(e){let t=[];for(let n of qFe){let r=``;try{r=(await e.git.raw([`ls-files`,`--`,n])).trim()}catch{r=``}r.length>0&&t.push(n)}return t}async function YFe(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 XFe(e){try{let t=(await e.git.raw([`rev-parse`,`--verify`,`HEAD`])).trim();return W9.test(t)?t:null}catch{return null}}async function ZFe(e,t){try{let n=(await e.git.raw([`rev-parse`,`${t}^{tree}`])).trim();return W9.test(n)?n:null}catch{return null}}function QFe(e){return B(I(e,`MERGE_HEAD`))||B(I(e,`rebase-merge`))||B(I(e,`rebase-apply`))||B(I(e,`CHERRY_PICK_HEAD`))||B(I(e,`REVERT_HEAD`))}function K9(e){return e instanceof Error?e.message:String(e)}async function $Fe(e,t){let n;try{n=au(t).resolve(e)}catch(e){if(e?.code===`MODULE_NOT_FOUND`)return;throw e}for(let t=F(n),r=0;r<32;r+=1){let n=I(t,`package.json`);if(B(n))try{let t=JSON.parse(await td(n,`utf-8`));if(t.name===e&&typeof t.version==`string`)return t.version}catch{}let r=F(t);if(r===t)return;t=r}}const eIe=[{regex:/\/Users\/[^/]+\//g,replacement:`~/`},{regex:/\/home\/[^/]+\//g,replacement:`~/`},{regex:/C:\\\\Users\\\\[^\\\\]+\\\\/g,replacement:`~\\`},{regex:/C:\\Users\\[^\\]+\\/g,replacement:`~\\`}];function q9(e){if(e===void 0)return;let t=e;for(let{regex:e,replacement:n}of eIe)t=t.replace(e,n);return t}function J9(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:q9(e.message)??``,stack:q9(e.stack),code:e.code,cause:e.cause===void 0?void 0:J9(e.cause,t+1,n)};if(e==null)return{name:`UnknownError`,message:String(e)};if(typeof e==`string`)return{name:`StringError`,message:q9(e)??e};if(typeof e==`object`){let r=e;return{name:String(r.name??`ObjectError`),message:q9(String(r.message??``))??``,stack:q9(r.stack),code:r.code,cause:r.cause===void 0?void 0:J9(r.cause,t+1,n)}}return{name:`UnknownError`,message:String(e)}}var Y9=class extends Error{constructor(e){super(`File not found: ${e}`),this.filePath=e,this.name=`SingleFileNotFoundError`}},X9=class extends Error{constructor(e){super(`Not a file: ${e}. \`ok <file>\` opens a single markdown file.`),this.filePath=e,this.name=`SingleFileNotAFileError`}},Z9=class extends Error{constructor(e){super(`OpenKnowledge edits markdown files (.md / .mdx): ${e}`),this.filePath=e,this.name=`SingleFileNotMarkdownError`}};function tIe(e){if(!Kx(e))throw new Z9(e);let t;try{t=H(R(e))}catch(t){throw t.code===`ENOENT`?new Y9(e):t}if(!Vu(t).isFile())throw new X9(e);let n=F(t),r=SB(n);if(r){let e=r.rootPath;return{mode:`project`,projectRoot:e,docName:Jx(L(nIe(e),t).split(z).join(`/`)),canonicalFilePath:t}}let i=uu(t);return{mode:`ephemeral`,canonicalFilePath:t,contentDir:n,singleDocRelPath:i,docName:Jx(i)}}function nIe(e){return R(e,ws({absPath:Bs(`project`,e),sideline:!1,warn:()=>{}}).value.content?.dir??`.`)}const Q9=`ok-ephemeral-`;function $9(e,t){let n=R(e,`.ok`);return Au(n,{recursive:!0}),Uu(R(n,`config.yml`),`# Ephemeral single-file session (\`ok <file>\`). Throwaway — safe to delete.\ncontent:\n dir: ${JSON.stringify(t)}\n`,`utf-8`),Uu(R(n,`.gitignore`),`local/
2037
2037
  `,`utf-8`),e}function rIe(e){return $9(ju(R(Xu(),Q9)),e)}export{Y0 as $,dS as $i,eL as $n,mfe as $r,mJ as $t,j7 as A,rf as Aa,_w as Ai,xB as An,XP as Ar,RX as At,e7 as B,dw as Bi,yB as Bn,bN as Br,vJ as Bt,A9 as C,oae as Ca,ME as Ci,eV as Cn,iF as Cr,xZ as Ct,X7 as D,df as Da,gE as Di,VB as Dn,$P as Dr,EZ as Dt,c9 as E,$m as Ea,aE as Ei,HB as En,eF as Er,pbe as Et,v7 as F,Ad as Fa,yw as Fi,rB as Fn,CN as Fr,hZ as Ft,e8 as G,BC as Gi,mz as Gn,XM as Gr,CJ as Gt,K5 as H,wle as Hi,Nz as Hn,vN as Hr,y_e as Ht,h7 as I,Tw as Ii,$z as In,SN as Ir,VX as It,Q6 as J,SS as Ji,gz as Jn,gM as Jr,EJ as Jt,t8 as K,VC as Ki,hz as Kn,bM as Kr,b_e as Kt,$5 as L,Sw as Li,Jz as Ln,EN as Lr,O_e as Lt,k7 as M,Bd as Ma,hw as Mi,nB as Mn,qP as Mr,Zye as Mt,A7 as N,tf as Na,bw as Ni,Lz as Nn,bP as Nr,Qye as Nt,T7 as O,af as Oa,kw as Oi,BB as On,ZP as Or,bZ as Ot,w7 as P,Rd as Pa,Ow as Pi,Iz as Pn,Xpe as Pr,_Z as Pt,F6 as Q,aS as Qi,NR as Qn,Tfe as Qr,pJ as Qt,RNe as R,mw as Ri,Fz as Rn,wN as Rr,NJ as Rt,j9 as S,Vse as Sa,PE as Si,KB as Sn,sF as Sr,TZ as St,l9 as T,eh as Ta,_E as Ti,QB as Tn,QP as Tr,CZ as Tt,U5 as U,Tle as Ui,xz as Un,dN as Ur,OJ as Ut,DNe as V,pw as Vi,eB as Vn,hN as Vr,x_e as Vt,B5 as W,cw as Wi,Sz as Wn,ZM as Wr,SJ as Wt,J6 as X,xS as Xi,rz as Xn,wfe as Xr,DJ as Xt,X6 as Y,G as Yi,fz as Yn,Dfe as Yr,TJ as Yt,G6 as Z,mS as Zi,HR as Zn,Efe as Zr,wJ as Zt,BFe as _,Sx as _a,uk as _i,VW as _n,pI as _r,y$ as _t,rIe as a,Nx as aa,Xj as ai,vK as an,WI as ar,H0 as at,OFe as b,ux as ba,yk as bi,ZB as bn,aF as br,DZ as bt,J9 as c,Ix as ca,Jj as ci,QW as cn,HI as cr,$Ce as ct,B9 as d,Hx as da,cA as di,rG as dn,UI as dr,O0 as dt,oS as ea,aM as ei,DK as en,QI as er,X0 as et,KFe as f,Tx as fa,kk as fi,eG as fn,OI as fr,A0 as ft,zFe as g,Ux as ga,mk as gi,UW as gn,cI as gr,_xe as gt,RFe as h,zx as ha,pk as hi,BW as hn,wI as hr,i$ as ht,Z9 as i,Mx as ia,Jde as ii,yK as in,qI as ir,U0 as it,E7 as j,Vd as ja,vw as ji,Az as jn,KP as jr,LX as jt,O7 as k,ff as ka,jw as ki,SB as kn,YP as kr,vZ as kt,$Fe as l,Dx as la,sA as li,$W as ln,VI as lr,ewe as lt,LFe as m,Rx as ma,Ok as mi,tG as mn,DI as mr,E$ as mt,X9 as n,iS as na,Xde as ni,SK as nn,ege as nr,n2 as nt,tIe as o,Px as oa,qj as oi,hK as on,GI as or,L0 as ot,VFe as p,Bx as pa,Sk as pi,KW as pn,EI as pr,X1 as pt,$6 as q,tw as qi,_z as qn,yM as qr,kJ as qt,Y9 as r,Vx as ra,Zj as ri,CK as rn,YI as rr,dwe as rt,$9 as s,kx as sa,Yj as si,WW as sn,KI as sr,QCe as st,Q9 as t,uS as ta,fM as ti,TK as tn,age as tr,Z0 as tt,JFe as u,jx as ua,oA as ui,JW as un,Khe as ur,j0 as ut,jFe as v,mx as va,vk as vi,HW as vn,oI as vr,S$ as vt,M9 as w,Qm as wa,AE as wi,tV as wn,hme as wr,wZ as wt,P9 as x,Lb as xa,kO as xi,aV as xn,oF as xr,SZ as xt,AFe as y,fx as ya,hk as yi,JB as yn,bF as yr,IZ as yt,t7 as z,rw as zi,tB as zn,TN as zr,jJ as zt};
2038
- //# sourceMappingURL=src-vY_ilATE.mjs.map
2038
+ //# sourceMappingURL=src-yn8SArMz.mjs.map