@bkm016/basalt 0.1.0 → 0.1.1

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 (174) hide show
  1. package/chunk-09vr609h.js +2 -0
  2. package/chunk-0qqb6v41.js +3753 -0
  3. package/{chunk-1egbcp85.js → chunk-0yytz0r1.js} +7 -7
  4. package/{chunk-rjdhaasf.js → chunk-1aspj1hn.js} +2 -2
  5. package/chunk-1b7gbe8g.js +10 -0
  6. package/{chunk-665jzf2w.js → chunk-1v7st27a.js} +11 -11
  7. package/{chunk-5fdgy0q2.js → chunk-2bb01ddq.js} +10 -10
  8. package/{chunk-kjr81mrd.js → chunk-2wkaw73s.js} +3 -3
  9. package/{chunk-xhk54h2q.js → chunk-3m7qwfm3.js} +4 -4
  10. package/{chunk-0tdv0t5q.js → chunk-44ek81ad.js} +2 -2
  11. package/{chunk-wc5j0hfw.js → chunk-45cz26ap.js} +2 -2
  12. package/{chunk-0rya8cxe.js → chunk-6e49xsf5.js} +2 -2
  13. package/{chunk-bj14jshr.js → chunk-6qertm2t.js} +2 -2
  14. package/chunk-8dxzqwq3.js +2 -0
  15. package/chunk-9mmz6wt3.js +2 -0
  16. package/{chunk-3jz9g8ab.js → chunk-a3tqx584.js} +3 -3
  17. package/{chunk-y9xe9ct2.js → chunk-a8nyk4k9.js} +1 -1
  18. package/{chunk-qffb7een.js → chunk-bhqyxyap.js} +2 -2
  19. package/chunk-bpw6q7g0.js +3 -0
  20. package/{chunk-tnrqkc7b.js → chunk-cv5wsd9m.js} +1 -1
  21. package/{chunk-5wp4egky.js → chunk-dhm42y04.js} +2 -2
  22. package/{chunk-913tfr9c.js → chunk-exnn1867.js} +1 -1
  23. package/{chunk-7yw8aa5j.js → chunk-f7egr55n.js} +4 -4
  24. package/{chunk-kgdrjqsy.js → chunk-g2t6t8fk.js} +2 -2
  25. package/{chunk-qbf8x2ft.js → chunk-h6sw8fbt.js} +1 -1
  26. package/chunk-jhd54p1b.js +3 -0
  27. package/{chunk-x9982ek7.js → chunk-kf8hq21a.js} +2 -2
  28. package/{chunk-zt1wvkyf.js → chunk-kfq8wyd3.js} +1 -1
  29. package/chunk-nt2gntad.js +2 -0
  30. package/{chunk-wd9zxhza.js → chunk-pmc3y1z8.js} +1 -1
  31. package/{chunk-3p7q2pyp.js → chunk-pvncysbb.js} +1 -1
  32. package/chunk-q8zx3kt6.js +2 -0
  33. package/{chunk-sf13azm4.js → chunk-qczbfccb.js} +3 -3
  34. package/chunk-qx0m82rw.js +2 -0
  35. package/chunk-ry0z4ev6.js +2 -0
  36. package/{chunk-g2k3yhgh.js → chunk-s37s3k24.js} +3 -3
  37. package/{chunk-y8ced1jm.js → chunk-sh74qzvt.js} +1 -1
  38. package/{chunk-9y69ywyg.js → chunk-szat3vp4.js} +2 -2
  39. package/chunk-tvm4zmgj.js +3 -0
  40. package/{chunk-8wjgbd9k.js → chunk-vgvq3q12.js} +2 -2
  41. package/{chunk-d913kpyw.js → chunk-vv7fp27r.js} +2 -2
  42. package/{chunk-97kjn55j.js → chunk-wjd9fr23.js} +1 -1
  43. package/{chunk-6gyhajhx.js → chunk-x3dnb9sz.js} +2 -2
  44. package/chunk-xysny0ve.js +3 -0
  45. package/{chunk-qcwnkr5y.js → chunk-yskm0hsy.js} +1 -1
  46. package/{chunk-sytpmbfp.js → chunk-zef13k3h.js} +36 -36
  47. package/cli.js +89 -0
  48. package/compiled.js +12 -3762
  49. package/package.json +4 -3
  50. package/ui-test-worker.js +31 -31
  51. package/web/{chunk-rkesqprv.js → chunk-05w4fyzc.js} +1 -1
  52. package/web/{chunk-ev1g5cqw.js → chunk-0vt9fg48.js} +1 -1
  53. package/web/{chunk-55kw67nv.js → chunk-22a4ety5.js} +1 -1
  54. package/web/{chunk-hryhthxr.js → chunk-2m12wyrb.js} +1 -1
  55. package/web/{chunk-svmhj9hd.js → chunk-2msj52w6.js} +1 -1
  56. package/web/{chunk-rsn8j7xv.js → chunk-2ps6mepk.js} +1 -1
  57. package/web/chunk-2pver6r4.js +1 -0
  58. package/web/{chunk-1t760bg0.js → chunk-2scce33n.js} +1 -1
  59. package/web/chunk-37ajk6zg.js +2 -0
  60. package/web/{chunk-haphmhz8.js → chunk-3ee04tmm.js} +1 -1
  61. package/web/{chunk-c85wxnpw.js → chunk-3jhyzmnf.js} +1 -1
  62. package/web/{chunk-pz934t6t.js → chunk-45fzdcgz.js} +1 -1
  63. package/web/{chunk-ea9swkkt.js → chunk-4ks96e4r.js} +1 -1
  64. package/web/{chunk-0k0hvh59.js → chunk-4v8en1yw.js} +1 -1
  65. package/web/chunk-4wkm9fda.js +1 -0
  66. package/web/{chunk-zk2f7x5e.js → chunk-5vw9rs4r.js} +1 -1
  67. package/web/{chunk-mq92vqb1.js → chunk-70qwwwak.js} +1 -1
  68. package/web/{chunk-4b5mt5pd.js → chunk-8p4tc9f4.js} +1 -1
  69. package/web/{chunk-3pm4645m.js → chunk-90kp4pnz.js} +1 -1
  70. package/web/{chunk-ytpwz01r.js → chunk-9an7cjd9.js} +1 -1
  71. package/web/{chunk-29e1trsq.js → chunk-9dxjafp2.js} +1 -1
  72. package/web/{chunk-ykxpb3wv.js → chunk-9p12mgs6.js} +1 -1
  73. package/web/{chunk-sc63gh9d.js → chunk-9yakxvjb.js} +1 -1
  74. package/web/{chunk-fdkp6tzq.js → chunk-a1z5qx1r.js} +1 -1
  75. package/web/{chunk-v6v831tc.js → chunk-a3verqw9.js} +1 -1
  76. package/web/{chunk-vqjs551t.js → chunk-a5x2zveg.js} +1 -1
  77. package/web/chunk-amzgyy1k.js +1 -0
  78. package/web/{chunk-e5rmr47n.js → chunk-b1pe46zz.js} +1 -1
  79. package/web/{chunk-1v3d60pp.js → chunk-b4wbk7vc.js} +1 -1
  80. package/web/{chunk-3bqh2dkw.js → chunk-bc78qf1m.js} +1 -1
  81. package/web/{chunk-tfyxp2qs.js → chunk-bgnnrpna.js} +1 -1
  82. package/web/{chunk-vadqkz3x.js → chunk-bj90t5gh.js} +1 -1
  83. package/web/{chunk-mdsgekpk.js → chunk-bjkc94mv.js} +1 -1
  84. package/web/{chunk-3cfabjey.js → chunk-ca682sm6.js} +1 -1
  85. package/web/chunk-cff5hcm8.js +8 -0
  86. package/web/{chunk-942prjb6.js → chunk-dt462hk9.js} +1 -1
  87. package/web/{chunk-bwyw10wx.js → chunk-dzwxgqgm.js} +1 -1
  88. package/web/{chunk-bhe4jzha.js → chunk-e32y85kx.js} +1 -1
  89. package/web/{chunk-v47rhg7b.js → chunk-e53wfgb8.js} +1 -1
  90. package/web/{chunk-ezyvv4ab.js → chunk-e6jxqbv7.js} +1 -1
  91. package/web/chunk-esp1mmgr.js +1 -0
  92. package/web/chunk-ew3cgdtd.js +1 -0
  93. package/web/{chunk-svdzmaxb.js → chunk-f26smjjf.js} +1 -1
  94. package/web/{chunk-jvhmna7z.js → chunk-fk0dh93x.js} +1 -1
  95. package/web/{chunk-3pf33xsm.js → chunk-fm2ybfj5.js} +1 -1
  96. package/web/{chunk-6r912gfj.js → chunk-fscafg24.js} +1 -1
  97. package/web/{chunk-canbct9d.js → chunk-fz06t6km.js} +1 -1
  98. package/web/{chunk-rz6wwdd5.js → chunk-g4azyef7.js} +1 -1
  99. package/web/chunk-gjq1pxw3.js +1 -0
  100. package/web/{chunk-0xck277j.js → chunk-gqw3f02j.js} +1 -1
  101. package/web/chunk-h5ejbf6e.js +1 -0
  102. package/web/{chunk-kbtbbarw.js → chunk-hev4hq89.js} +1 -1
  103. package/web/chunk-jjh5jvva.js +1 -0
  104. package/web/{chunk-a3xt6840.js → chunk-jrcyc9s9.js} +1 -1
  105. package/web/{chunk-4y2td14d.js → chunk-jwzd9tzk.js} +1 -1
  106. package/web/chunk-k5btcvbg.js +1 -0
  107. package/web/{chunk-z1jtv4c0.js → chunk-kdyjnwdx.js} +1 -1
  108. package/web/chunk-kpvgecwy.js +1 -0
  109. package/web/chunk-kq40ss39.js +1 -0
  110. package/web/{chunk-ghxe4gam.js → chunk-p3b9crsa.js} +1 -1
  111. package/web/{chunk-zakv2xdf.js → chunk-pf2ab8p8.js} +1 -1
  112. package/web/{chunk-d4d3mnak.js → chunk-q0p5xqe1.js} +1 -1
  113. package/web/{chunk-5hex8g0y.js → chunk-q5ke7a33.js} +1 -1
  114. package/web/chunk-q7dsnvpf.js +1 -0
  115. package/web/{chunk-vfqe8298.js → chunk-qd8bxxdj.js} +1 -1
  116. package/web/{chunk-3ahpr030.js → chunk-qefasa1j.js} +1 -1
  117. package/web/{chunk-x9q4kh67.js → chunk-qh7265qw.js} +1 -1
  118. package/web/{chunk-hejz98gw.js → chunk-qnaqf0cr.js} +1 -1
  119. package/web/chunk-rg426vkf.js +1 -0
  120. package/web/{chunk-s8vapqgr.js → chunk-rpmpttbk.js} +1 -1
  121. package/web/chunk-scpwc9ev.js +1 -0
  122. package/web/{chunk-b5brnfv9.js → chunk-ss1bcb0n.js} +1 -1
  123. package/web/chunk-ssy07dd2.js +1 -0
  124. package/web/{chunk-gxn0bey7.js → chunk-taynqrgq.js} +2 -2
  125. package/web/chunk-tgpbhzn9.js +1 -0
  126. package/web/{chunk-ejd43q75.js → chunk-tmvakq7n.js} +2 -2
  127. package/web/{chunk-nerx2q12.js → chunk-tqmwd9qp.js} +1 -1
  128. package/web/{chunk-n5fn9khr.js → chunk-v28fx2nd.js} +1 -1
  129. package/web/{chunk-32ezm0ry.js → chunk-vt40e1kp.js} +39 -39
  130. package/web/chunk-w53rba6g.js +1 -0
  131. package/web/chunk-w86n42dy.js +1 -0
  132. package/web/{chunk-ktqt87qw.js → chunk-w880psmw.js} +1 -1
  133. package/web/{chunk-p8y0hjx9.js → chunk-wptv8atc.js} +1 -1
  134. package/web/{chunk-g9qv15hq.js → chunk-xbty0rv7.js} +1 -1
  135. package/web/{chunk-7f0m2yrd.js → chunk-xjxv8dg8.js} +1 -1
  136. package/web/{chunk-x3zwjkwg.js → chunk-xrxne80b.js} +1 -1
  137. package/web/{chunk-jtwhjp20.js → chunk-y0m8hrwz.js} +2 -2
  138. package/web/{chunk-6atq9qtt.js → chunk-y49fhfda.js} +1 -1
  139. package/web/{chunk-1x8fn8w9.js → chunk-yd46jhqv.js} +1 -1
  140. package/web/{chunk-ngpq43vn.js → chunk-z7dcbxws.js} +1 -1
  141. package/web/chunk-zde7mj43.js +1 -0
  142. package/web/index.html +1 -1
  143. package/worker.js +1 -1
  144. package/chunk-1fv27j4b.js +0 -3
  145. package/chunk-356q8e0y.js +0 -10
  146. package/chunk-b9bg5fhd.js +0 -2
  147. package/chunk-j2x0g1vg.js +0 -2
  148. package/chunk-k0t23cmx.js +0 -2
  149. package/chunk-m38ber71.js +0 -2
  150. package/chunk-rad3dm0q.js +0 -2
  151. package/chunk-tjpvayr1.js +0 -2
  152. package/chunk-ve7qx8wm.js +0 -3
  153. package/chunk-yb1jxgnk.js +0 -2
  154. package/web/chunk-00mq7bhx.js +0 -1
  155. package/web/chunk-0atfn8jf.js +0 -1
  156. package/web/chunk-310yey4q.js +0 -1
  157. package/web/chunk-3hvgs5aw.js +0 -1
  158. package/web/chunk-3kh6zefg.js +0 -1
  159. package/web/chunk-401v5ht6.js +0 -8
  160. package/web/chunk-5r5kv4gh.js +0 -1
  161. package/web/chunk-95q1bwxn.js +0 -1
  162. package/web/chunk-9s7c178f.js +0 -1
  163. package/web/chunk-benmmqt2.js +0 -1
  164. package/web/chunk-bgqdcnke.js +0 -1
  165. package/web/chunk-eqegxtdt.js +0 -1
  166. package/web/chunk-gmfp7fg4.js +0 -1
  167. package/web/chunk-gxay64d5.js +0 -1
  168. package/web/chunk-jg6nzn6q.js +0 -1
  169. package/web/chunk-kx2xk3bb.js +0 -1
  170. package/web/chunk-vfqdy860.js +0 -1
  171. package/web/chunk-x59p8sg2.js +0 -1
  172. package/web/chunk-y7z144e3.js +0 -1
  173. package/web/chunk-ydgqrfvw.js +0 -2
  174. package/web/chunk-yj1a2d37.js +0 -1
@@ -1,5 +1,5 @@
1
- import{x,o,ee,a,t,_}from"./chunk-32ezm0ry.js";import{e,r,Ur,Le,Li,Ii,Sn,br,Ca,to,ne,Zt,D,Ri,rn,pt,Sa,no,ro,ao,Di,Ni,b,io,jr,ke,B,Ta,so,qr,Aa,p,q,et,tt,In,ln,Rr,Hr,Ka,mo,Ja,ji,U,N,fo,Ft,ei,Wi}from"./chunk-jtwhjp20.js";import{Fr}from"./chunk-mq92vqb1.js";function ze(i){let n=i?.constructor;return i===(typeof n==="function"?n.prototype:Object.prototype)}function De(i){if(i==null)return!0;if(Ka(i)){if(typeof i.splice!=="function"&&typeof i!=="string"&&!Rr(i)&&!ln(i)&&!Hr(i))return!1;return i.length===0}if(typeof i==="object"||typeof i==="function"){if(i instanceof Map||i instanceof Set)return i.size===0;let n=Object.keys(i);if(ze(i))return n.filter((s)=>s!=="constructor").length===0;return n.length===0}return!0}var Q="comm",le="rule",me="decl";var Fe="@media",Oe="@import";var Be="@supports";var Pe="@namespace",ie="@keyframes";var fe="@layer",Ne="@scope";var Ve=Math.abs,Y=String.fromCharCode;function ue(i){return i.trim()}function se(i,n,s){return i.replace(n,s)}function G(i,n){return i.charCodeAt(n)|0}function H(i,n,s){return i.slice(n,s)}function R(i){return i.length}function pe(i){return i.length}function Z(i,n){return n.push(i),i}var ge=1,J=1,Ge=0,F=0,T=0,te="";function ve(i,n,s,d,c,l,f,m){return{value:i,root:n,parent:s,type:d,props:c,children:l,line:ge,column:J,length:f,return:"",siblings:m}}function He(){return T}function Ue(){if(T=F>0?G(te,--F):0,J--,T===10)J=1,ge--;return T}function O(){if(T=F<Ge?G(te,F++):0,J++,T===10)J=1,ge++;return T}function W(){return G(te,F)}function de(){return F}function he(i,n){return H(te,i,n)}function re(i){switch(i){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function We(i){return ge=J=1,Ge=R(te=i),F=0,[]}function je(i){return te="",i}function ye(i){return ue(he(F-1,Me(i===91?i+2:i===40?i+1:i)))}function Ye(i){while(T=W())if(T<33)O();else break;return re(i)>2||re(T)>3?"":" "}function qe(i,n){while(--n&&O())if(T<48||T>102||T>57&&T<65||T>70&&T<97)break;return he(i,de()+(n<6&&W()==32&&O()==32))}function Me(i){while(O())switch(T){case i:return F;case 34:case 39:if(i!==34&&i!==39)Me(T);break;case 40:if(i===41)Me(i);break;case 92:O();break}return F}function Xe(i,n){while(O())if(i+T===57)break;else if(i+T===84&&W()===47)break;return"/*"+he(n,F-1)+"*"+Y(i===47?i:O())}function Ke(i){while(!re(W()))O();return he(i,F)}function Je(i){return je(we("",null,null,null,[""],i=We(i),0,[0],i))}function we(i,n,s,d,c,l,f,m,u){var h=0,y=0,w=f,v=0,C=0,A=0,k=1,E=1,M=1,I=0,S=0,P="",K=c,V=l,z=d,g=P;while(E)switch(A=S,S=O()){case 40:if(A!=108&&G(g,w-1)==58)I++,g+="(";else g+=ye(S);break;case 41:I--,g+=")";break;case 34:case 39:case 91:g+=ye(S);break;case 9:case 10:case 13:case 32:if(I>0){g+=Y(S);break}g+=Ye(A);break;case 92:g+=qe(de()-1,7);continue;case 47:switch(W()){case 42:case 47:if(Z(bt(Xe(O(),de()),n,s,u),u),(re(A||1)==5||re(W()||1)==5)&&R(g)&&H(g,-1,void 0)!==" ")g+=" ";break;default:g+="/"}break;case 123*k:m[h++]=R(g)*M;case 125*k:case 59:case 0:if(I>0&&S){g+=Y(S);break}switch(S){case 0:case 125:E=0;case 59+y:if(M==-1)g=se(g,/\f/g,"");if(C>0&&(R(g)-w||k===0))Z(C>32?Ze(g+";",d,s,w-1,u):Ze(se(g," ","")+";",d,s,w-2,u),u);break;case 59:g+=";";default:if(Z(z=Qe(g,n,s,h,y,c,m,P,K=[],V=[],w,l),l),S===123)if(y===0)we(g,n,z,z,K,l,w,m,V);else{switch(v){case 99:if(G(g,3)===110)break;case 108:if(G(g,2)===97)break;default:y=0;case 100:case 109:case 115:}if(y)we(i,z,z,d&&Z(Qe(i,z,z,0,0,c,m,P,c,K=[],w,V),V),c,V,w,m,d?K:V);else we(g,z,z,z,[""],V,0,m,V)}}h=y=C=0,k=M=1,P=g="",w=f;break;case 58:w=1+R(g),C=A;default:if(k<1){if(S==123)--k;else if(S==125&&k++==0&&Ue()==125)continue}switch(g+=Y(S),S*k){case 38:M=y>0?1:(g+="\f",-1);break;case 44:if(I>0)break;m[h++]=(R(g)-1)*M,M=1;break;case 64:if(W()===45)g+=ye(O());v=W(),y=w=R(P=g+=Ke(de())),S++;break;case 45:if(A===45&&R(g)==2)k=0}}return l}function Qe(i,n,s,d,c,l,f,m,u,h,y,w){var v=c-1,C=c===0?l:[""],A=pe(C);for(var k=0,E=0,M=0;k<d;++k)for(var I=0,S=H(i,v+1,v=Ve(E=f[k])),P=i;I<A;++I)if(P=ue(E>0?C[I]+" "+S:se(S,/&\f/g,C[I])))u[M++]=P;return ve(i,n,s,c===0?le:m,u,h,y,w)}function bt(i,n,s,d){return ve(i,n,s,Q,Y(He()),H(i,2,-2),0,d)}function Ze(i,n,s,d,c){return ve(i,n,s,me,H(i,0,d),H(i,d+1,-1),d,c)}function xe(i,n){var s="";for(var d=0;d<i.length;d++)s+=n(i[d],d,i,n)||"";return s}function er(i,n,s,d){switch(i.type){case fe:if(i.children.length)break;case Oe:case Pe:case me:return i.return=i.return||i.value;case Q:return"";case ie:return i.return=i.value+"{"+xe(i.children,d)+"}";case le:if(!R(i.value=i.props.join(",")))return""}return R(s=xe(i.children,d))?i.return=i.value+"{"+s+"}":""}function rr(i){var n=pe(i);return function(s,d,c,l){var f="";for(var m=0;m<n;m++)f+=i[m](s,d,c,l)||"";return f}}var nr="c4",St=e((i)=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),"detector"),Et=e(async()=>{let{diagram:i}=await (x("a3xt6840"),import("./chunk-a3xt6840.js"));return{id:nr,diagram:i}},"loader"),Tt={id:nr,detector:St,loader:Et},Ct=Tt,sr="flowchart-v2",kt=e((i)=>/^\s*(graph|flowchart)/.test(i),"detector"),Dt=e(async()=>{let{diagram:i}=await (x("benmmqt2"),import("./chunk-benmmqt2.js"));return{id:sr,diagram:i}},"loader"),Mt={id:sr,detector:kt,loader:Dt},_t=Mt,dr="agentflow",Lt=e((i)=>/^\s*agentflow-beta\b/.test(i),"detector"),At=e(async()=>{let{diagram:i}=await (x("haphmhz8"),import("./chunk-haphmhz8.js"));return{id:dr,diagram:i}},"loader"),It={id:dr,detector:Lt,loader:At},Rt=It,cr="swimlane",$t=e((i)=>/^\s*swimlane-beta\b/.test(i),"detector"),zt=e(async()=>{let{diagram:i}=await (x("401v5ht6"),import("./chunk-401v5ht6.js"));return{id:cr,diagram:i}},"loader"),Ot={id:cr,detector:$t,loader:zt},Bt=Ot,lr="er",Pt=e((i)=>/^\s*erDiagram/.test(i),"detector"),Nt=e(async()=>{let{diagram:i}=await (x("vadqkz3x"),import("./chunk-vadqkz3x.js"));return{id:lr,diagram:i}},"loader"),Vt={id:lr,detector:Pt,loader:Nt},Gt=Vt,mr="gitGraph",Ht=e((i)=>/^\s*gitGraph/.test(i),"detector"),Ut=e(async()=>{let{diagram:i}=await (x("rz6wwdd5"),import("./chunk-rz6wwdd5.js"));return{id:mr,diagram:i}},"loader"),Wt={id:mr,detector:Ht,loader:Ut},jt=Wt,fr="gantt",Yt=e((i)=>/^\s*gantt/.test(i),"detector"),qt=e(async()=>{let{diagram:i}=await (x("c85wxnpw"),import("./chunk-c85wxnpw.js"));return{id:fr,diagram:i}},"loader"),Xt={id:fr,detector:Yt,loader:qt},Kt=Xt,ur="info",Qt=e((i)=>/^\s*info/.test(i),"detector"),Jt=e(async()=>{let{diagram:i}=await (x("sc63gh9d"),import("./chunk-sc63gh9d.js"));return{id:ur,diagram:i}},"loader"),ea={id:ur,detector:Qt,loader:Jt},pr="pie",ra=e((i)=>/^\s*pie/.test(i),"detector"),ta=e(async()=>{let{diagram:i}=await (x("bwyw10wx"),import("./chunk-bwyw10wx.js"));return{id:pr,diagram:i}},"loader"),aa={id:pr,detector:ra,loader:ta},gr="quadrantChart",oa=e((i)=>/^\s*quadrantChart/.test(i),"detector"),ia=e(async()=>{let{diagram:i}=await (x("6atq9qtt"),import("./chunk-6atq9qtt.js"));return{id:gr,diagram:i}},"loader"),na={id:gr,detector:oa,loader:ia},sa=na,vr="xychart",da=e((i)=>/^\s*xychart(-beta)?/.test(i),"detector"),ca=e(async()=>{let{diagram:i}=await (x("3bqh2dkw"),import("./chunk-3bqh2dkw.js"));return{id:vr,diagram:i}},"loader"),la={id:vr,detector:da,loader:ca},ma=la,hr="requirement",fa=e((i)=>/^\s*requirement(Diagram)?/.test(i),"detector"),ua=e(async()=>{let{diagram:i}=await (x("d4d3mnak"),import("./chunk-d4d3mnak.js"));return{id:hr,diagram:i}},"loader"),pa={id:hr,detector:fa,loader:ua},ga=pa,yr="sequence",va=e((i)=>/^\s*sequenceDiagram/.test(i),"detector"),ha=e(async()=>{let{diagram:i}=await (x("7f0m2yrd"),import("./chunk-7f0m2yrd.js"));return{id:yr,diagram:i}},"loader"),ya={id:yr,detector:va,loader:ha},wa=ya,wr="classDiagram",xa=e((i)=>/^\s*classDiagram/.test(i),"detector"),ba=e(async()=>{let{diagram:i}=await (x("1v3d60pp"),import("./chunk-1v3d60pp.js"));return{id:wr,diagram:i}},"loader"),Ea={id:wr,detector:xa,loader:ba},ka=Ea,xr="stateDiagram",Da=e((i)=>/^\s*stateDiagram/.test(i),"detector"),Ma=e(async()=>{let{diagram:i}=await (x("ytpwz01r"),import("./chunk-ytpwz01r.js"));return{id:xr,diagram:i}},"loader"),_a={id:xr,detector:Da,loader:Ma},La=_a,Sr="journey",Ia=e((i)=>/^\s*journey/.test(i),"detector"),Ra=e(async()=>{let{diagram:i}=await (x("nerx2q12"),import("./chunk-nerx2q12.js"));return{id:Sr,diagram:i}},"loader"),$a={id:Sr,detector:Ia,loader:Ra},za=$a,be=4,ce=75,Fa=e((i)=>{let n=[];for(let c of i.split(/\s+/)){let l=[...c];while(l.length>ce)n.push(l.slice(0,ce).join("")),l=l.slice(ce);if(l.length>0)n.push(l.join(""))}let s=[],d="";for(let c of n){let l=d?`${d} ${c}`:c;if([...l].length>ce)s.push(d),d=c;else d=l}if(d)s.push(d);if(s.length>be){s.length=be;let c=s[be-1]??"";s[be-1]=`${[...c].slice(0,ce-3).join("")}...`}return s},"wrapErrorMessage"),Oa=e((i,n,s,d)=>{r.debug(`rendering svg for syntax error
2
- `);let c=q(n),l=c.append("g"),f=Fa(d?.db.getErrorMessage?.()??""),m=f.length>0?500+f.length*56:512;c.attr("viewBox",`0 0 2412 ${m}`),B(c,100,m,!0),l.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),l.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),l.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),l.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),l.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),l.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),l.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),l.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${s}`),f.forEach((u,h)=>{l.append("text").attr("class","error-text").attr("x",1440).attr("y",510+h*56).attr("font-size","42px").style("text-anchor","middle").text(u)})},"draw"),Er={draw:Oa},Ba=Er,_e,Pa={clear(){_e=void 0},setErrorMessage(i){_e=i},getErrorMessage(){return _e}},Na={db:Pa,renderer:Er,parser:{parse:e(()=>{return},"parse")}},Va=Na,Tr="flowchart-elk",Ga=e((i,n={})=>{if(/^\s*flowchart-elk/.test(i))return n.layout="elk",!0;return!1},"detector"),Ha=e(async()=>{let{diagram:i}=await (x("benmmqt2"),import("./chunk-benmmqt2.js"));return{id:Tr,diagram:i}},"loader"),Ua={id:Tr,detector:Ga,loader:Ha},Wa=Ua,Cr="timeline",ja=e((i)=>/^\s*timeline/.test(i),"detector"),Ya=e(async()=>{let{diagram:i}=await (x("rsn8j7xv"),import("./chunk-rsn8j7xv.js"));return{id:Cr,diagram:i}},"loader"),qa={id:Cr,detector:ja,loader:Ya},Xa=qa,kr="mindmap",Qa=e((i)=>/^\s*mindmap/.test(i),"detector"),Za=e(async()=>{let{diagram:i}=await (x("3pf33xsm"),import("./chunk-3pf33xsm.js"));return{id:kr,diagram:i}},"loader"),eo={id:kr,detector:Qa,loader:Za},oo=eo,Dr="kanban",co=e((i)=>/^\s*kanban/.test(i),"detector"),lo=e(async()=>{let{diagram:i}=await (x("tfyxp2qs"),import("./chunk-tfyxp2qs.js"));return{id:Dr,diagram:i}},"loader"),uo={id:Dr,detector:co,loader:lo},po=uo,Mr="sankey",go=e((i)=>/^\s*sankey(-beta)?/.test(i),"detector"),vo=e(async()=>{let{diagram:i}=await (x("0k0hvh59"),import("./chunk-0k0hvh59.js"));return{id:Mr,diagram:i}},"loader"),ho={id:Mr,detector:go,loader:vo},yo=ho,_r="packet",wo=e((i)=>/^\s*packet(-beta)?/.test(i),"detector"),xo=e(async()=>{let{diagram:i}=await (x("4y2td14d"),import("./chunk-4y2td14d.js"));return{id:_r,diagram:i}},"loader"),bo={id:_r,detector:wo,loader:xo},Lr="radar",So=e((i)=>/^\s*radar-beta/.test(i),"detector"),Eo=e(async()=>{let{diagram:i}=await (x("g9qv15hq"),import("./chunk-g9qv15hq.js"));return{id:Lr,diagram:i}},"loader"),To={id:Lr,detector:So,loader:Eo},Ar="block",Co=e((i)=>/^\s*block(-beta)?/.test(i),"detector"),ko=e(async()=>{let{diagram:i}=await (x("0xck277j"),import("./chunk-0xck277j.js"));return{id:Ar,diagram:i}},"loader"),Do={id:Ar,detector:Co,loader:ko},Mo=Do,Ir="treeView",_o=e((i)=>/^\s*treeView-beta/.test(i),"detector"),Lo=e(async()=>{let{diagram:i}=await (x("pz934t6t"),import("./chunk-pz934t6t.js"));return{id:Ir,diagram:i}},"loader"),Ao={id:Ir,detector:_o,loader:Lo},Io=Ao,$r="architecture",Ro=e((i)=>/^\s*architecture/.test(i),"detector"),$o=e(async()=>{let{diagram:i}=await (x("fdkp6tzq"),import("./chunk-fdkp6tzq.js"));return{id:$r,diagram:i}},"loader"),zo={id:$r,detector:Ro,loader:$o},Fo=zo,zr="eventmodeling",Oo=e((i)=>/^\s*eventmodeling/.test(i),"detector"),Bo=e(async()=>{let{diagram:i}=await (x("ezyvv4ab"),import("./chunk-ezyvv4ab.js"));return{id:zr,diagram:i}},"loader"),Po={id:zr,detector:Oo,loader:Bo},No=Po,Or="ishikawa",Vo=e((i)=>/^\s*ishikawa(-beta)?\b/i.test(i),"detector"),Go=e(async()=>{let{diagram:i}=await (x("4b5mt5pd"),import("./chunk-4b5mt5pd.js"));return{id:Or,diagram:i}},"loader"),Ho={id:Or,detector:Vo,loader:Go},Br="venn",Uo=e((i)=>/^\s*venn-beta/.test(i),"detector"),Wo=e(async()=>{let{diagram:i}=await (x("6r912gfj"),import("./chunk-6r912gfj.js"));return{id:Br,diagram:i}},"loader"),jo={id:Br,detector:Uo,loader:Wo},Yo=jo,Pr="treemap",qo=e((i)=>/^\s*treemap/.test(i),"detector"),Xo=e(async()=>{let{diagram:i}=await (x("5hex8g0y"),import("./chunk-5hex8g0y.js"));return{id:Pr,diagram:i}},"loader"),Ko={id:Pr,detector:qo,loader:Xo},Nr="usecase",Qo=e((i)=>/^\s*usecase-beta(?:\s|$)/.test(i),"detector"),Zo=e(async()=>{let{diagram:i}=await (x("3cfabjey"),import("./chunk-3cfabjey.js"));return{id:Nr,diagram:i}},"loader"),Jo={id:Nr,detector:Qo,loader:Zo},Vr="wardley",ri=e((i)=>/^\s*wardley-beta/i.test(i),"detector"),ti=e(async()=>{let{diagram:i}=await (x("29e1trsq"),import("./chunk-29e1trsq.js"));return{id:Vr,diagram:i}},"loader"),ai={id:Vr,detector:ri,loader:ti},oi=ai,Gr="cynefin",ii=e((i)=>/^\s*cynefin-beta(?:[\s:]|$)/.test(i),"detector"),ni=e(async()=>{let{diagram:i}=await (x("x3zwjkwg"),import("./chunk-x3zwjkwg.js"));return{id:Gr,diagram:i}},"loader"),si={id:Gr,detector:ii,loader:ni},Wr="railroad",di=e((i)=>/^\s*railroad-beta/i.test(i),"detector"),ci=e(async()=>{let{diagram:i}=await (x("bhe4jzha"),import("./chunk-bhe4jzha.js"));return{id:Wr,diagram:i}},"loader"),li={id:Wr,detector:di,loader:ci},Yr="railroadEbnf",mi=e((i)=>/^\s*railroad-ebnf-beta/i.test(i),"detector"),fi=e(async()=>{let{diagram:i}=await (x("vfqe8298"),import("./chunk-vfqe8298.js"));return{id:Yr,diagram:i}},"loader"),ui={id:Yr,detector:mi,loader:fi},Xr="railroadAbnf",pi=e((i)=>/^\s*railroad-abnf-beta/i.test(i),"detector"),gi=e(async()=>{let{diagram:i}=await (x("1t760bg0"),import("./chunk-1t760bg0.js"));return{id:Xr,diagram:i}},"loader"),vi={id:Xr,detector:pi,loader:gi},Kr="railroadPeg",hi=e((i)=>/^\s*railroad-peg-beta/i.test(i),"detector"),yi=e(async()=>{let{diagram:i}=await (x("ngpq43vn"),import("./chunk-ngpq43vn.js"));return{id:Kr,diagram:i}},"loader"),wi={id:Kr,detector:hi,loader:yi},tr=!1,Te=e(()=>{if(tr)return;tr=!0,qr("error",Va,(i)=>i.toLowerCase().trim()==="error"),qr("---",{db:{clear:e(()=>{},"clear")},styles:{},renderer:{draw:e(()=>{},"draw")},parser:{parse:e(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:e(()=>null,"init")},(i)=>i.toLowerCase().trimStart().startsWith("---")),Ca(Wa,oo,Fo),Ca(Rt,Ct,po,ka,Gt,Kt,ea,aa,ga,wa,Bt,_t,Xa,jt,La,za,sa,yo,bo,ma,Mo,No,Io,To,Ho,Ko,li,ui,vi,wi,Yo,oi,si,Jo)},"addDiagrams"),xi=e(async()=>{r.debug("Loading registered diagrams");let n=(await Promise.allSettled(Object.entries(Sn).map(async([s,{detector:d,loader:c}])=>{if(!c)return;try{Aa(s)}catch{try{let{diagram:l,id:f}=await c();qr(f,l,d)}catch(l){throw r.error(`Failed to load external diagram with key ${s}. Removing from detectors.`),delete Sn[s],l}}}))).filter((s)=>s.status==="rejected");if(n.length>0){r.error(`Failed to load ${n.length} external diagrams`);for(let s of n)r.error(s);throw Error(`Failed to load ${n.length} external diagrams`)}},"loadRegisteredDiagrams"),bi="graphics-document document";function Qr(i,n){if(i.attr("role",bi),n!=="")i.attr("aria-roledescription",n)}e(Qr,"setA11yDiagramInfo");function Zr(i,n,s,d){if(i.insert===void 0)return;if(s){let c=`chart-desc-${d}`;i.attr("aria-describedby",c),i.insert("desc",":first-child").attr("id",c).text(s)}if(n){let c=`chart-title-${d}`;i.attr("aria-labelledby",c),i.insert("title",":first-child").attr("id",c).text(n)}}e(Zr,"addSVGa11yTitleDescription");var Se=class i{constructor(n,s,d,c,l){this.type=n,this.text=s,this.db=d,this.parser=c,this.renderer=l}static{e(this,"Diagram")}static async fromText(n,s={}){let d=typeof n==="string"?{raw:n,cleaned:n}:n,c=b(),l=br(d.cleaned,c);try{Aa(l)}catch{let v=to(l);if(!v)throw new Ii(`Diagram ${l} not found.`);let{id:C,diagram:A}=await v();qr(C,A)}let{db:f,parser:m,renderer:u,init:h}=Aa(l);if(m.parser)m.parser.yy=f;if(f.clear?.(),h?.(c),s.title)f.setDiagramTitle?.(s.title);let y=d.cleaned;if(f.preserveCommentsWhenParsing&&d.withComments){let v=c.maxTextSize??D.maxTextSize;if(d.withComments.length>v)r.warn(`Comment-preserving source exceeds maxTextSize (${d.withComments.length} > ${v}); parsing the comment-stripped text instead. Reported source positions will not account for comment lines.`);else y=d.withComments}let w=fo(y)+`
1
+ import{x,o,ee,a,t,_}from"./chunk-vt40e1kp.js";import{e,r,Ur,Le,Li,Ii,Sn,br,Ca,to,ne,Zt,D,Ri,rn,pt,Sa,no,ro,ao,Di,Ni,b,io,jr,ke,B,Ta,so,qr,Aa,p,q,et,tt,In,ln,Rr,Hr,Ka,mo,Ja,ji,U,N,fo,Ft,ei,Wi}from"./chunk-y0m8hrwz.js";import{Fr}from"./chunk-70qwwwak.js";function ze(i){let n=i?.constructor;return i===(typeof n==="function"?n.prototype:Object.prototype)}function De(i){if(i==null)return!0;if(Ka(i)){if(typeof i.splice!=="function"&&typeof i!=="string"&&!Rr(i)&&!ln(i)&&!Hr(i))return!1;return i.length===0}if(typeof i==="object"||typeof i==="function"){if(i instanceof Map||i instanceof Set)return i.size===0;let n=Object.keys(i);if(ze(i))return n.filter((s)=>s!=="constructor").length===0;return n.length===0}return!0}var Q="comm",le="rule",me="decl";var Fe="@media",Oe="@import";var Be="@supports";var Pe="@namespace",ie="@keyframes";var fe="@layer",Ne="@scope";var Ve=Math.abs,Y=String.fromCharCode;function ue(i){return i.trim()}function se(i,n,s){return i.replace(n,s)}function G(i,n){return i.charCodeAt(n)|0}function H(i,n,s){return i.slice(n,s)}function R(i){return i.length}function pe(i){return i.length}function Z(i,n){return n.push(i),i}var ge=1,J=1,Ge=0,F=0,T=0,te="";function ve(i,n,s,d,c,l,f,m){return{value:i,root:n,parent:s,type:d,props:c,children:l,line:ge,column:J,length:f,return:"",siblings:m}}function He(){return T}function Ue(){if(T=F>0?G(te,--F):0,J--,T===10)J=1,ge--;return T}function O(){if(T=F<Ge?G(te,F++):0,J++,T===10)J=1,ge++;return T}function W(){return G(te,F)}function de(){return F}function he(i,n){return H(te,i,n)}function re(i){switch(i){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function We(i){return ge=J=1,Ge=R(te=i),F=0,[]}function je(i){return te="",i}function ye(i){return ue(he(F-1,Me(i===91?i+2:i===40?i+1:i)))}function Ye(i){while(T=W())if(T<33)O();else break;return re(i)>2||re(T)>3?"":" "}function qe(i,n){while(--n&&O())if(T<48||T>102||T>57&&T<65||T>70&&T<97)break;return he(i,de()+(n<6&&W()==32&&O()==32))}function Me(i){while(O())switch(T){case i:return F;case 34:case 39:if(i!==34&&i!==39)Me(T);break;case 40:if(i===41)Me(i);break;case 92:O();break}return F}function Xe(i,n){while(O())if(i+T===57)break;else if(i+T===84&&W()===47)break;return"/*"+he(n,F-1)+"*"+Y(i===47?i:O())}function Ke(i){while(!re(W()))O();return he(i,F)}function Je(i){return je(we("",null,null,null,[""],i=We(i),0,[0],i))}function we(i,n,s,d,c,l,f,m,u){var h=0,y=0,w=f,v=0,C=0,A=0,k=1,E=1,M=1,I=0,S=0,P="",K=c,V=l,z=d,g=P;while(E)switch(A=S,S=O()){case 40:if(A!=108&&G(g,w-1)==58)I++,g+="(";else g+=ye(S);break;case 41:I--,g+=")";break;case 34:case 39:case 91:g+=ye(S);break;case 9:case 10:case 13:case 32:if(I>0){g+=Y(S);break}g+=Ye(A);break;case 92:g+=qe(de()-1,7);continue;case 47:switch(W()){case 42:case 47:if(Z(bt(Xe(O(),de()),n,s,u),u),(re(A||1)==5||re(W()||1)==5)&&R(g)&&H(g,-1,void 0)!==" ")g+=" ";break;default:g+="/"}break;case 123*k:m[h++]=R(g)*M;case 125*k:case 59:case 0:if(I>0&&S){g+=Y(S);break}switch(S){case 0:case 125:E=0;case 59+y:if(M==-1)g=se(g,/\f/g,"");if(C>0&&(R(g)-w||k===0))Z(C>32?Ze(g+";",d,s,w-1,u):Ze(se(g," ","")+";",d,s,w-2,u),u);break;case 59:g+=";";default:if(Z(z=Qe(g,n,s,h,y,c,m,P,K=[],V=[],w,l),l),S===123)if(y===0)we(g,n,z,z,K,l,w,m,V);else{switch(v){case 99:if(G(g,3)===110)break;case 108:if(G(g,2)===97)break;default:y=0;case 100:case 109:case 115:}if(y)we(i,z,z,d&&Z(Qe(i,z,z,0,0,c,m,P,c,K=[],w,V),V),c,V,w,m,d?K:V);else we(g,z,z,z,[""],V,0,m,V)}}h=y=C=0,k=M=1,P=g="",w=f;break;case 58:w=1+R(g),C=A;default:if(k<1){if(S==123)--k;else if(S==125&&k++==0&&Ue()==125)continue}switch(g+=Y(S),S*k){case 38:M=y>0?1:(g+="\f",-1);break;case 44:if(I>0)break;m[h++]=(R(g)-1)*M,M=1;break;case 64:if(W()===45)g+=ye(O());v=W(),y=w=R(P=g+=Ke(de())),S++;break;case 45:if(A===45&&R(g)==2)k=0}}return l}function Qe(i,n,s,d,c,l,f,m,u,h,y,w){var v=c-1,C=c===0?l:[""],A=pe(C);for(var k=0,E=0,M=0;k<d;++k)for(var I=0,S=H(i,v+1,v=Ve(E=f[k])),P=i;I<A;++I)if(P=ue(E>0?C[I]+" "+S:se(S,/&\f/g,C[I])))u[M++]=P;return ve(i,n,s,c===0?le:m,u,h,y,w)}function bt(i,n,s,d){return ve(i,n,s,Q,Y(He()),H(i,2,-2),0,d)}function Ze(i,n,s,d,c){return ve(i,n,s,me,H(i,0,d),H(i,d+1,-1),d,c)}function xe(i,n){var s="";for(var d=0;d<i.length;d++)s+=n(i[d],d,i,n)||"";return s}function er(i,n,s,d){switch(i.type){case fe:if(i.children.length)break;case Oe:case Pe:case me:return i.return=i.return||i.value;case Q:return"";case ie:return i.return=i.value+"{"+xe(i.children,d)+"}";case le:if(!R(i.value=i.props.join(",")))return""}return R(s=xe(i.children,d))?i.return=i.value+"{"+s+"}":""}function rr(i){var n=pe(i);return function(s,d,c,l){var f="";for(var m=0;m<n;m++)f+=i[m](s,d,c,l)||"";return f}}var nr="c4",St=e((i)=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),"detector"),Et=e(async()=>{let{diagram:i}=await (x("jrcyc9s9"),import("./chunk-jrcyc9s9.js"));return{id:nr,diagram:i}},"loader"),Tt={id:nr,detector:St,loader:Et},Ct=Tt,sr="flowchart-v2",kt=e((i)=>/^\s*(graph|flowchart)/.test(i),"detector"),Dt=e(async()=>{let{diagram:i}=await (x("amzgyy1k"),import("./chunk-amzgyy1k.js"));return{id:sr,diagram:i}},"loader"),Mt={id:sr,detector:kt,loader:Dt},_t=Mt,dr="agentflow",Lt=e((i)=>/^\s*agentflow-beta\b/.test(i),"detector"),At=e(async()=>{let{diagram:i}=await (x("3ee04tmm"),import("./chunk-3ee04tmm.js"));return{id:dr,diagram:i}},"loader"),It={id:dr,detector:Lt,loader:At},Rt=It,cr="swimlane",$t=e((i)=>/^\s*swimlane-beta\b/.test(i),"detector"),zt=e(async()=>{let{diagram:i}=await (x("cff5hcm8"),import("./chunk-cff5hcm8.js"));return{id:cr,diagram:i}},"loader"),Ot={id:cr,detector:$t,loader:zt},Bt=Ot,lr="er",Pt=e((i)=>/^\s*erDiagram/.test(i),"detector"),Nt=e(async()=>{let{diagram:i}=await (x("bj90t5gh"),import("./chunk-bj90t5gh.js"));return{id:lr,diagram:i}},"loader"),Vt={id:lr,detector:Pt,loader:Nt},Gt=Vt,mr="gitGraph",Ht=e((i)=>/^\s*gitGraph/.test(i),"detector"),Ut=e(async()=>{let{diagram:i}=await (x("g4azyef7"),import("./chunk-g4azyef7.js"));return{id:mr,diagram:i}},"loader"),Wt={id:mr,detector:Ht,loader:Ut},jt=Wt,fr="gantt",Yt=e((i)=>/^\s*gantt/.test(i),"detector"),qt=e(async()=>{let{diagram:i}=await (x("3jhyzmnf"),import("./chunk-3jhyzmnf.js"));return{id:fr,diagram:i}},"loader"),Xt={id:fr,detector:Yt,loader:qt},Kt=Xt,ur="info",Qt=e((i)=>/^\s*info/.test(i),"detector"),Jt=e(async()=>{let{diagram:i}=await (x("9yakxvjb"),import("./chunk-9yakxvjb.js"));return{id:ur,diagram:i}},"loader"),ea={id:ur,detector:Qt,loader:Jt},pr="pie",ra=e((i)=>/^\s*pie/.test(i),"detector"),ta=e(async()=>{let{diagram:i}=await (x("dzwxgqgm"),import("./chunk-dzwxgqgm.js"));return{id:pr,diagram:i}},"loader"),aa={id:pr,detector:ra,loader:ta},gr="quadrantChart",oa=e((i)=>/^\s*quadrantChart/.test(i),"detector"),ia=e(async()=>{let{diagram:i}=await (x("y49fhfda"),import("./chunk-y49fhfda.js"));return{id:gr,diagram:i}},"loader"),na={id:gr,detector:oa,loader:ia},sa=na,vr="xychart",da=e((i)=>/^\s*xychart(-beta)?/.test(i),"detector"),ca=e(async()=>{let{diagram:i}=await (x("bc78qf1m"),import("./chunk-bc78qf1m.js"));return{id:vr,diagram:i}},"loader"),la={id:vr,detector:da,loader:ca},ma=la,hr="requirement",fa=e((i)=>/^\s*requirement(Diagram)?/.test(i),"detector"),ua=e(async()=>{let{diagram:i}=await (x("q0p5xqe1"),import("./chunk-q0p5xqe1.js"));return{id:hr,diagram:i}},"loader"),pa={id:hr,detector:fa,loader:ua},ga=pa,yr="sequence",va=e((i)=>/^\s*sequenceDiagram/.test(i),"detector"),ha=e(async()=>{let{diagram:i}=await (x("xjxv8dg8"),import("./chunk-xjxv8dg8.js"));return{id:yr,diagram:i}},"loader"),ya={id:yr,detector:va,loader:ha},wa=ya,wr="classDiagram",xa=e((i)=>/^\s*classDiagram/.test(i),"detector"),ba=e(async()=>{let{diagram:i}=await (x("b4wbk7vc"),import("./chunk-b4wbk7vc.js"));return{id:wr,diagram:i}},"loader"),Ea={id:wr,detector:xa,loader:ba},ka=Ea,xr="stateDiagram",Da=e((i)=>/^\s*stateDiagram/.test(i),"detector"),Ma=e(async()=>{let{diagram:i}=await (x("9an7cjd9"),import("./chunk-9an7cjd9.js"));return{id:xr,diagram:i}},"loader"),_a={id:xr,detector:Da,loader:Ma},La=_a,Sr="journey",Ia=e((i)=>/^\s*journey/.test(i),"detector"),Ra=e(async()=>{let{diagram:i}=await (x("tqmwd9qp"),import("./chunk-tqmwd9qp.js"));return{id:Sr,diagram:i}},"loader"),$a={id:Sr,detector:Ia,loader:Ra},za=$a,be=4,ce=75,Fa=e((i)=>{let n=[];for(let c of i.split(/\s+/)){let l=[...c];while(l.length>ce)n.push(l.slice(0,ce).join("")),l=l.slice(ce);if(l.length>0)n.push(l.join(""))}let s=[],d="";for(let c of n){let l=d?`${d} ${c}`:c;if([...l].length>ce)s.push(d),d=c;else d=l}if(d)s.push(d);if(s.length>be){s.length=be;let c=s[be-1]??"";s[be-1]=`${[...c].slice(0,ce-3).join("")}...`}return s},"wrapErrorMessage"),Oa=e((i,n,s,d)=>{r.debug(`rendering svg for syntax error
2
+ `);let c=q(n),l=c.append("g"),f=Fa(d?.db.getErrorMessage?.()??""),m=f.length>0?500+f.length*56:512;c.attr("viewBox",`0 0 2412 ${m}`),B(c,100,m,!0),l.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),l.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),l.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),l.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),l.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),l.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),l.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),l.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${s}`),f.forEach((u,h)=>{l.append("text").attr("class","error-text").attr("x",1440).attr("y",510+h*56).attr("font-size","42px").style("text-anchor","middle").text(u)})},"draw"),Er={draw:Oa},Ba=Er,_e,Pa={clear(){_e=void 0},setErrorMessage(i){_e=i},getErrorMessage(){return _e}},Na={db:Pa,renderer:Er,parser:{parse:e(()=>{return},"parse")}},Va=Na,Tr="flowchart-elk",Ga=e((i,n={})=>{if(/^\s*flowchart-elk/.test(i))return n.layout="elk",!0;return!1},"detector"),Ha=e(async()=>{let{diagram:i}=await (x("amzgyy1k"),import("./chunk-amzgyy1k.js"));return{id:Tr,diagram:i}},"loader"),Ua={id:Tr,detector:Ga,loader:Ha},Wa=Ua,Cr="timeline",ja=e((i)=>/^\s*timeline/.test(i),"detector"),Ya=e(async()=>{let{diagram:i}=await (x("2ps6mepk"),import("./chunk-2ps6mepk.js"));return{id:Cr,diagram:i}},"loader"),qa={id:Cr,detector:ja,loader:Ya},Xa=qa,kr="mindmap",Qa=e((i)=>/^\s*mindmap/.test(i),"detector"),Za=e(async()=>{let{diagram:i}=await (x("fm2ybfj5"),import("./chunk-fm2ybfj5.js"));return{id:kr,diagram:i}},"loader"),eo={id:kr,detector:Qa,loader:Za},oo=eo,Dr="kanban",co=e((i)=>/^\s*kanban/.test(i),"detector"),lo=e(async()=>{let{diagram:i}=await (x("bgnnrpna"),import("./chunk-bgnnrpna.js"));return{id:Dr,diagram:i}},"loader"),uo={id:Dr,detector:co,loader:lo},po=uo,Mr="sankey",go=e((i)=>/^\s*sankey(-beta)?/.test(i),"detector"),vo=e(async()=>{let{diagram:i}=await (x("4v8en1yw"),import("./chunk-4v8en1yw.js"));return{id:Mr,diagram:i}},"loader"),ho={id:Mr,detector:go,loader:vo},yo=ho,_r="packet",wo=e((i)=>/^\s*packet(-beta)?/.test(i),"detector"),xo=e(async()=>{let{diagram:i}=await (x("jwzd9tzk"),import("./chunk-jwzd9tzk.js"));return{id:_r,diagram:i}},"loader"),bo={id:_r,detector:wo,loader:xo},Lr="radar",So=e((i)=>/^\s*radar-beta/.test(i),"detector"),Eo=e(async()=>{let{diagram:i}=await (x("xbty0rv7"),import("./chunk-xbty0rv7.js"));return{id:Lr,diagram:i}},"loader"),To={id:Lr,detector:So,loader:Eo},Ar="block",Co=e((i)=>/^\s*block(-beta)?/.test(i),"detector"),ko=e(async()=>{let{diagram:i}=await (x("gqw3f02j"),import("./chunk-gqw3f02j.js"));return{id:Ar,diagram:i}},"loader"),Do={id:Ar,detector:Co,loader:ko},Mo=Do,Ir="treeView",_o=e((i)=>/^\s*treeView-beta/.test(i),"detector"),Lo=e(async()=>{let{diagram:i}=await (x("45fzdcgz"),import("./chunk-45fzdcgz.js"));return{id:Ir,diagram:i}},"loader"),Ao={id:Ir,detector:_o,loader:Lo},Io=Ao,$r="architecture",Ro=e((i)=>/^\s*architecture/.test(i),"detector"),$o=e(async()=>{let{diagram:i}=await (x("a1z5qx1r"),import("./chunk-a1z5qx1r.js"));return{id:$r,diagram:i}},"loader"),zo={id:$r,detector:Ro,loader:$o},Fo=zo,zr="eventmodeling",Oo=e((i)=>/^\s*eventmodeling/.test(i),"detector"),Bo=e(async()=>{let{diagram:i}=await (x("e6jxqbv7"),import("./chunk-e6jxqbv7.js"));return{id:zr,diagram:i}},"loader"),Po={id:zr,detector:Oo,loader:Bo},No=Po,Or="ishikawa",Vo=e((i)=>/^\s*ishikawa(-beta)?\b/i.test(i),"detector"),Go=e(async()=>{let{diagram:i}=await (x("8p4tc9f4"),import("./chunk-8p4tc9f4.js"));return{id:Or,diagram:i}},"loader"),Ho={id:Or,detector:Vo,loader:Go},Br="venn",Uo=e((i)=>/^\s*venn-beta/.test(i),"detector"),Wo=e(async()=>{let{diagram:i}=await (x("fscafg24"),import("./chunk-fscafg24.js"));return{id:Br,diagram:i}},"loader"),jo={id:Br,detector:Uo,loader:Wo},Yo=jo,Pr="treemap",qo=e((i)=>/^\s*treemap/.test(i),"detector"),Xo=e(async()=>{let{diagram:i}=await (x("q5ke7a33"),import("./chunk-q5ke7a33.js"));return{id:Pr,diagram:i}},"loader"),Ko={id:Pr,detector:qo,loader:Xo},Nr="usecase",Qo=e((i)=>/^\s*usecase-beta(?:\s|$)/.test(i),"detector"),Zo=e(async()=>{let{diagram:i}=await (x("ca682sm6"),import("./chunk-ca682sm6.js"));return{id:Nr,diagram:i}},"loader"),Jo={id:Nr,detector:Qo,loader:Zo},Vr="wardley",ri=e((i)=>/^\s*wardley-beta/i.test(i),"detector"),ti=e(async()=>{let{diagram:i}=await (x("9dxjafp2"),import("./chunk-9dxjafp2.js"));return{id:Vr,diagram:i}},"loader"),ai={id:Vr,detector:ri,loader:ti},oi=ai,Gr="cynefin",ii=e((i)=>/^\s*cynefin-beta(?:[\s:]|$)/.test(i),"detector"),ni=e(async()=>{let{diagram:i}=await (x("xrxne80b"),import("./chunk-xrxne80b.js"));return{id:Gr,diagram:i}},"loader"),si={id:Gr,detector:ii,loader:ni},Wr="railroad",di=e((i)=>/^\s*railroad-beta/i.test(i),"detector"),ci=e(async()=>{let{diagram:i}=await (x("e32y85kx"),import("./chunk-e32y85kx.js"));return{id:Wr,diagram:i}},"loader"),li={id:Wr,detector:di,loader:ci},Yr="railroadEbnf",mi=e((i)=>/^\s*railroad-ebnf-beta/i.test(i),"detector"),fi=e(async()=>{let{diagram:i}=await (x("qd8bxxdj"),import("./chunk-qd8bxxdj.js"));return{id:Yr,diagram:i}},"loader"),ui={id:Yr,detector:mi,loader:fi},Xr="railroadAbnf",pi=e((i)=>/^\s*railroad-abnf-beta/i.test(i),"detector"),gi=e(async()=>{let{diagram:i}=await (x("2scce33n"),import("./chunk-2scce33n.js"));return{id:Xr,diagram:i}},"loader"),vi={id:Xr,detector:pi,loader:gi},Kr="railroadPeg",hi=e((i)=>/^\s*railroad-peg-beta/i.test(i),"detector"),yi=e(async()=>{let{diagram:i}=await (x("z7dcbxws"),import("./chunk-z7dcbxws.js"));return{id:Kr,diagram:i}},"loader"),wi={id:Kr,detector:hi,loader:yi},tr=!1,Te=e(()=>{if(tr)return;tr=!0,qr("error",Va,(i)=>i.toLowerCase().trim()==="error"),qr("---",{db:{clear:e(()=>{},"clear")},styles:{},renderer:{draw:e(()=>{},"draw")},parser:{parse:e(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:e(()=>null,"init")},(i)=>i.toLowerCase().trimStart().startsWith("---")),Ca(Wa,oo,Fo),Ca(Rt,Ct,po,ka,Gt,Kt,ea,aa,ga,wa,Bt,_t,Xa,jt,La,za,sa,yo,bo,ma,Mo,No,Io,To,Ho,Ko,li,ui,vi,wi,Yo,oi,si,Jo)},"addDiagrams"),xi=e(async()=>{r.debug("Loading registered diagrams");let n=(await Promise.allSettled(Object.entries(Sn).map(async([s,{detector:d,loader:c}])=>{if(!c)return;try{Aa(s)}catch{try{let{diagram:l,id:f}=await c();qr(f,l,d)}catch(l){throw r.error(`Failed to load external diagram with key ${s}. Removing from detectors.`),delete Sn[s],l}}}))).filter((s)=>s.status==="rejected");if(n.length>0){r.error(`Failed to load ${n.length} external diagrams`);for(let s of n)r.error(s);throw Error(`Failed to load ${n.length} external diagrams`)}},"loadRegisteredDiagrams"),bi="graphics-document document";function Qr(i,n){if(i.attr("role",bi),n!=="")i.attr("aria-roledescription",n)}e(Qr,"setA11yDiagramInfo");function Zr(i,n,s,d){if(i.insert===void 0)return;if(s){let c=`chart-desc-${d}`;i.attr("aria-describedby",c),i.insert("desc",":first-child").attr("id",c).text(s)}if(n){let c=`chart-title-${d}`;i.attr("aria-labelledby",c),i.insert("title",":first-child").attr("id",c).text(n)}}e(Zr,"addSVGa11yTitleDescription");var Se=class i{constructor(n,s,d,c,l){this.type=n,this.text=s,this.db=d,this.parser=c,this.renderer=l}static{e(this,"Diagram")}static async fromText(n,s={}){let d=typeof n==="string"?{raw:n,cleaned:n}:n,c=b(),l=br(d.cleaned,c);try{Aa(l)}catch{let v=to(l);if(!v)throw new Ii(`Diagram ${l} not found.`);let{id:C,diagram:A}=await v();qr(C,A)}let{db:f,parser:m,renderer:u,init:h}=Aa(l);if(m.parser)m.parser.yy=f;if(f.clear?.(),h?.(c),s.title)f.setDiagramTitle?.(s.title);let y=d.cleaned;if(f.preserveCommentsWhenParsing&&d.withComments){let v=c.maxTextSize??D.maxTextSize;if(d.withComments.length>v)r.warn(`Comment-preserving source exceeds maxTextSize (${d.withComments.length} > ${v}); parsing the comment-stripped text instead. Reported source positions will not account for comment lines.`);else y=d.withComments}let w=fo(y)+`
3
3
  `;if(d.frontmatterLineOffset)f.setFrontmatterLineOffset?.(d.frontmatterLineOffset);return await m.parse(w),new i(l,w,f,m,u)}async render(n,s){await this.renderer.draw(this.text,n,s,this)}getParser(){return this.parser}getType(){return this.type}},ar=[],Si=e(()=>{ar.forEach((i)=>{i()}),ar=[]},"attachFunctions"),Ei=e((i)=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Jr(i){let n=Li(i);if(!n)return{text:i,metadata:{}};let s=n.indent,d=s?n.body.split(`
4
4
  `).map((f)=>f.startsWith(s)?f.slice(s.length):f).join(`
5
5
  `):n.body,c=tt(d,{schema:et})??{};c=typeof c==="object"&&!Array.isArray(c)?c:{};let l={};if(c.displayMode)l.displayMode=c.displayMode.toString();if(c.title)l.title=c.title.toString();if(c.config)l.config=c.config;return{text:i.slice(n.length),metadata:l}}e(Jr,"extractFrontMatter");var Ti=e((i)=>i.replace(/\r\n?/g,`
@@ -1,4 +1,4 @@
1
- import{e,B,C,S,E,T,A,I,L,s,p}from"./chunk-jtwhjp20.js";import{nn,Br,Xi,Ke}from"./chunk-ghxe4gam.js";import{bt}from"./chunk-3ahpr030.js";import{je}from"./chunk-hryhthxr.js";var nt=function(){var t=e(function(u,n,a,o){for(a=a||{},o=u.length;o--;a[u[o]]=n);return a},"o"),r=[6,8,10,11,12,14,16,17,18],l=[1,9],g=[1,10],i=[1,11],y=[1,12],m=[1,13],c=[1,14],x={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:e(function(n,a,o,d,f,h,w){var _=h.length-1;switch(f){case 1:return h[_-1];case 2:this.$=[];break;case 3:h[_-1].push(h[_]),this.$=h[_-1];break;case 4:case 5:this.$=h[_];break;case 6:case 7:this.$=[];break;case 8:d.setDiagramTitle(h[_].substr(6)),this.$=h[_].substr(6);break;case 9:this.$=h[_].trim(),d.setAccTitle(this.$);break;case 10:case 11:this.$=h[_].trim(),d.setAccDescription(this.$);break;case 12:d.addSection(h[_].substr(8)),this.$=h[_].substr(8);break;case 13:d.addTask(h[_-1],h[_]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,7],{1:[2,1]}),t(r,[2,3]),{9:15,11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,5]),t(r,[2,6]),t(r,[2,8]),{13:[1,16]},{15:[1,17]},t(r,[2,11]),t(r,[2,12]),{19:[1,18]},t(r,[2,4]),t(r,[2,9]),t(r,[2,10]),t(r,[2,13])],defaultActions:{},parseError:e(function(n,a){if(a.recoverable)this.trace(n);else{var o=Error(n);throw o.hash=a,o}},"parseError"),parse:e(function(n){var a=this,o=[0],d=[],f=[null],h=[],w=this.table,_="",z=0,ot=0,ct=0,vt=2,ht=1,wt=h.slice.call(arguments,1),v=Object.create(this.lexer),O={yy:{}};for(var Q in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,Q))O.yy[Q]=this.yy[Q];if(v.setInput(n,O.yy),O.yy.lexer=v,O.yy.parser=this,typeof v.yylloc>"u")v.yylloc={};var D=v.yylloc;h.push(D);var Tt=v.options&&v.options.ranges;if(typeof O.yy.parseError==="function")this.parseError=O.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function St(F){o.length=o.length-2*F,f.length=f.length-F,h.length=h.length-F}e(St,"popStack");function ut(){var F=d.pop()||v.lex()||ht;if(typeof F!=="number"){if(F instanceof Array)d=F,F=d.pop();F=a.symbols_[F]||F}return F}e(ut,"lex");var M,tt,Y,P,Gt,et,q={},Z,j,yt,J;while(!0){if(Y=o[o.length-1],this.defaultActions[Y])P=this.defaultActions[Y];else{if(M===null||typeof M>"u")M=ut();P=w[Y]&&w[Y][M]}if(typeof P>"u"||!P.length||!P[0]){var rt="";J=[];for(Z in w[Y])if(this.terminals_[Z]&&Z>vt)J.push("'"+this.terminals_[Z]+"'");if(v.showPosition)rt="Parse error on line "+(z+1)+`:
1
+ import{e,B,C,S,E,T,A,I,L,s,p}from"./chunk-y0m8hrwz.js";import{nn,Br,Xi,Ke}from"./chunk-p3b9crsa.js";import{bt}from"./chunk-qefasa1j.js";import{je}from"./chunk-2m12wyrb.js";var nt=function(){var t=e(function(u,n,a,o){for(a=a||{},o=u.length;o--;a[u[o]]=n);return a},"o"),r=[6,8,10,11,12,14,16,17,18],l=[1,9],g=[1,10],i=[1,11],y=[1,12],m=[1,13],c=[1,14],x={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:e(function(n,a,o,d,f,h,w){var _=h.length-1;switch(f){case 1:return h[_-1];case 2:this.$=[];break;case 3:h[_-1].push(h[_]),this.$=h[_-1];break;case 4:case 5:this.$=h[_];break;case 6:case 7:this.$=[];break;case 8:d.setDiagramTitle(h[_].substr(6)),this.$=h[_].substr(6);break;case 9:this.$=h[_].trim(),d.setAccTitle(this.$);break;case 10:case 11:this.$=h[_].trim(),d.setAccDescription(this.$);break;case 12:d.addSection(h[_].substr(8)),this.$=h[_].substr(8);break;case 13:d.addTask(h[_-1],h[_]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,7],{1:[2,1]}),t(r,[2,3]),{9:15,11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,5]),t(r,[2,6]),t(r,[2,8]),{13:[1,16]},{15:[1,17]},t(r,[2,11]),t(r,[2,12]),{19:[1,18]},t(r,[2,4]),t(r,[2,9]),t(r,[2,10]),t(r,[2,13])],defaultActions:{},parseError:e(function(n,a){if(a.recoverable)this.trace(n);else{var o=Error(n);throw o.hash=a,o}},"parseError"),parse:e(function(n){var a=this,o=[0],d=[],f=[null],h=[],w=this.table,_="",z=0,ot=0,ct=0,vt=2,ht=1,wt=h.slice.call(arguments,1),v=Object.create(this.lexer),O={yy:{}};for(var Q in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,Q))O.yy[Q]=this.yy[Q];if(v.setInput(n,O.yy),O.yy.lexer=v,O.yy.parser=this,typeof v.yylloc>"u")v.yylloc={};var D=v.yylloc;h.push(D);var Tt=v.options&&v.options.ranges;if(typeof O.yy.parseError==="function")this.parseError=O.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function St(F){o.length=o.length-2*F,f.length=f.length-F,h.length=h.length-F}e(St,"popStack");function ut(){var F=d.pop()||v.lex()||ht;if(typeof F!=="number"){if(F instanceof Array)d=F,F=d.pop();F=a.symbols_[F]||F}return F}e(ut,"lex");var M,tt,Y,P,Gt,et,q={},Z,j,yt,J;while(!0){if(Y=o[o.length-1],this.defaultActions[Y])P=this.defaultActions[Y];else{if(M===null||typeof M>"u")M=ut();P=w[Y]&&w[Y][M]}if(typeof P>"u"||!P.length||!P[0]){var rt="";J=[];for(Z in w[Y])if(this.terminals_[Z]&&Z>vt)J.push("'"+this.terminals_[Z]+"'");if(v.showPosition)rt="Parse error on line "+(z+1)+`:
2
2
  `+v.showPosition()+`
3
3
  Expecting `+J.join(", ")+", got '"+(this.terminals_[M]||M)+"'";else rt="Parse error on line "+(z+1)+": Unexpected "+(M==ht?"end of input":"'"+(this.terminals_[M]||M)+"'");this.parseError(rt,{text:v.match,token:this.terminals_[M]||M,line:v.yylineno,loc:D,expected:J})}if(P[0]instanceof Array&&P.length>1)throw Error("Parse Error: multiple actions possible at state: "+Y+", token: "+M);switch(P[0]){case 1:if(o.push(M),f.push(v.yytext),h.push(v.yylloc),o.push(P[1]),M=null,!tt){if(ot=v.yyleng,_=v.yytext,z=v.yylineno,D=v.yylloc,ct>0)ct--}else M=tt,tt=null;break;case 2:if(j=this.productions_[P[1]][1],q.$=f[f.length-j],q._$={first_line:h[h.length-(j||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(j||1)].first_column,last_column:h[h.length-1].last_column},Tt)q._$.range=[h[h.length-(j||1)].range[0],h[h.length-1].range[1]];if(et=this.performAction.apply(q,[_,ot,z,O.yy,P[1],f,h].concat(wt)),typeof et<"u")return et;if(j)o=o.slice(0,-1*j*2),f=f.slice(0,-1*j),h=h.slice(0,-1*j);o.push(this.productions_[P[1]][0]),f.push(q.$),h.push(q._$),yt=w[o[o.length-2]][o[o.length-1]],o.push(yt);break;case 3:return!0}}return!0},"parse")},k=function(){var u={EOF:1,parseError:e(function(a,o){if(this.yy.parser)this.yy.parser.parseError(a,o);else throw Error(a)},"parseError"),setInput:e(function(n,a){if(this.yy=a||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var a=n.match(/(?:\r\n?|\n).*/g);if(a)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),n},"input"),unput:e(function(n){var a=n.length,o=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var d=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),o.length-1)this.yylineno-=o.length-1;var f=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:o?(o.length===d.length?this.yylloc.first_column:0)+d[d.length-o.length].length-o[0].length:this.yylloc.first_column-a},this.options.ranges)this.yylloc.range=[f[0],f[0]+this.yyleng-a];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(n){this.unput(this.match.slice(n))},"less"),pastInput:e(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var n=this.match;if(n.length<20)n+=this._input.substr(0,20-n.length);return(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var n=this.pastInput(),a=Array(n.length+1).join("-");return n+this.upcomingInput()+`
@@ -1 +1 @@
1
- import{h,o,i,a,v,t,n,_,l,Z,gt,yt,un,ye,Re,te,ue,Ut,ot,re,tn,ve}from"./chunk-32ezm0ry.js";var Se=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],pe=l("key-round",Se);function fe(e){let d=[],g="",y,N=!1;for(let u=0;u<e.length;u++){let c=e[u];if(y)if(c===y)y=void 0;else if(c==="\\"&&y==='"'&&u+1<e.length)g+=e[++u];else g+=c;else if(c==='"'||c==="'")y=c,N=!0;else if(c==="\\"&&u+1<e.length)g+=e[++u],N=!0;else if(/\s/.test(c)){if(N||g)d.push(g);g="",N=!1}else g+=c,N=!0}if(N||g)d.push(g);return d}function ie(e){return e.map((d)=>d===""||/[\s"'\\]/.test(d)?`"${d.replace(/(["\\])/g,"\\$1")}"`:d).join(" ")}var ge="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent",je={connected:{label:"已连接",dot:"bg-success"},idle:{label:"待连接",dot:"bg-faint"},disabled:{label:"已停用",dot:"bg-faint"},failed:{label:"连接失败",dot:"bg-danger"},needs_auth:{label:"需要认证",dot:"bg-warning"}};function X(e){return e.type==="local"?ie(e.command):e.url}function xe({info:e,tools:d=!1}){let g=je[e.status.status];return n("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs text-dim",children:[t("span",{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full ${g.dot}`}),t("span",{className:d?void 0:"hidden @md/panel:inline",children:g.label}),d&&e.status.status==="connected"&&n("span",{className:"text-faint",children:["· ",e.toolCount," 个工具"]})]})}function Te(e){if(typeof e!=="object"||e===null||!("type"in e))return"any";let d=e.type;if(typeof d==="string")return d;if(Array.isArray(d))return d.filter((g)=>typeof g==="string").join(" | ")||"any";return"any"}function he(e){let{Button:d,CopyButton:g,Dialog:y,StatusChip:N,confirm:u,style:c,useTheme:k}=_();k();let{info:s,connection:I}=e,[m,q]=a(),[G,K]=a(),[S,j]=a(!1),W=s.status.status==="connected",z=s.status.status==="needs_auth",V=s.status.status==="failed",A=s.config.type==="remote"&&Boolean(s.config.oauth);o(()=>{function p(x){if(x&&x!==s.name)return;let J=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/connect${J}`,{method:"POST"}).then((ee)=>e.onChanged(ee)).catch(()=>{})}function f(x){if(x.data?.type==="mcp-oauth-success")p(x.data.name)}function D(x){if(x.key==="basalt-mcp-oauth-event"&&x.newValue)try{let J=JSON.parse(x.newValue);p(J.name)}catch(J){}}window.addEventListener("message",f),window.addEventListener("storage",D);let R;if("BroadcastChannel"in window)R=new BroadcastChannel("basalt-mcp-oauth"),R.onmessage=(x)=>{if(x.data?.type==="mcp-oauth-success")p(x.data.name)};return()=>{window.removeEventListener("message",f),window.removeEventListener("storage",D),R?.close()}},[I,s.name,s.projectID,e]),o(()=>{if(s.status.status!=="connected")return;let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/tools${p}`).then((f)=>{if(Array.isArray(f))q(f),K(void 0)}).catch((f)=>{K(f instanceof Error?f.message:"获取工具失败")})},[I,s.name,s.projectID,s.status.status]);async function O(p){j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",D=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/${p}${f}`,{method:"POST"});e.onChanged(D)}catch{}finally{j(!1)}}async function U(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=s.status.status==="needs_auth"?s.status.authorizationUrl:void 0;if(!f)f=(await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/authorize${p}`,{method:"POST"})).authorizationUrl;if(f)window.open(f,"_blank","width=600,height=700")}catch(p){K(p instanceof Error?p.message:"获取授权链接失败")}finally{j(!1)}}async function Y(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/clear${p}`,{method:"POST"});e.onChanged(f)}finally{j(!1)}}async function E(){if(!await u({title:`删除 ${s.name}?`,description:"删除后将断开连接并不再向会话提供其工具。",action:"删除",danger:!0}))return;j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";await I.request(`/api/mcp/${encodeURIComponent(s.name)}${f}`,{method:"DELETE"}),e.onChanged(),e.onClose()}finally{j(!1)}}let T=s.config,r=X(T),C="error"in s.status?s.status.error:void 0,M=m?.length??s.toolCount??0;return t(y,{open:!0,className:"bg-panel shadow-float",onOpenChange:(p)=>{if(!p&&!S)e.onClose()},title:n("div",{className:"flex flex-wrap items-center gap-3",children:[t("div",{className:"flex size-8 items-center justify-center rounded-[10px] border border-accent/20 bg-accent-soft text-accent",children:T.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),t("span",{className:"font-serif text-lg font-semibold tracking-tight text-ink",children:s.name}),W?t(N,{tone:"success",pulse:!0,children:"已连接"}):z?t(N,{tone:"warning",pulse:!0,children:"需要授权"}):V?t(N,{tone:"danger",children:"连接失败"}):s.status.status==="disabled"?t(N,{tone:"neutral",children:"已停用"}):t(N,{tone:"neutral",children:"未连接"})]}),description:n("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[n("span",{className:"flex min-w-0 max-w-full items-center gap-1 rounded-lg border border-line bg-raised/60 py-0.5 pr-1 pl-2.5 font-mono text-[11.5px] text-ink",children:[t("span",{className:"min-w-0 truncate",title:r,children:r}),t(g,{text:r,label:"复制地址",size:"icon-xs",className:"shrink-0 text-dim hover:text-ink"})]}),t("span",{className:"rounded-lg border border-line px-2 py-1 text-[11px] leading-none text-dim",children:T.type==="local"?"本地命令":"远程 HTTP"}),A&&n("span",{className:c("control.badgeAccent","gap-1 rounded-lg border border-accent/25 px-2 py-1"),children:[t(Ut,{className:"size-3"}),"OAuth 2.0"]})]}),size:"lg",footer:n("div",{className:"flex w-full items-center justify-between gap-2 max-sm:flex-col",children:[n("div",{className:"flex items-center gap-1 max-sm:w-full",children:[A&&t(d,{type:"button",variant:"ghost",onClick:Y,disabled:S,title:"清除已保存的 OAuth 凭据",children:"清除凭据"}),t(d,{type:"button",variant:"danger-ghost",size:"icon-sm","aria-label":"删除服务器",onClick:E,disabled:S,title:"删除服务器",children:t(re,{className:"size-4"})})]}),n("div",{className:"flex items-center gap-2 max-sm:w-full max-sm:justify-end",children:[t(d,{type:"button",variant:"ghost",onClick:e.onEdit,disabled:S,children:"编辑配置"}),!z&&t(d,{type:"button",variant:"secondary",onClick:()=>O(W?"disconnect":"connect"),disabled:S,children:S?"处理中...":W?"断开连接":"立即连接"}),t(d,{type:"button",variant:"primary",onClick:e.onClose,children:"完成"})]})]}),children:n("div",{className:"space-y-6 pt-1",children:[z&&t("div",{className:"relative overflow-hidden rounded-2xl border border-warning/30 bg-[radial-gradient(120%_140%_at_0%_0%,color-mix(in_oklch,var(--color-warning)_16%,transparent),transparent_65%)] p-5",children:n("div",{className:"flex items-start gap-4 max-sm:flex-col",children:[t("div",{className:"relative flex size-11 shrink-0 items-center justify-center rounded-xl border border-warning/30 bg-panel text-warning shadow-[0_0_28px_-4px_color-mix(in_oklch,var(--color-warning)_55%,transparent)]",children:t(pe,{className:"size-5"})}),n("div",{className:"min-w-0 flex-1 space-y-1.5",children:[t("h4",{className:"text-sm font-semibold text-ink",children:"授权后即可使用此服务器"}),t("p",{className:"text-[13px] leading-relaxed text-dim",children:"该端点要求 OAuth 2.0 身份许可。在浏览器中完成授权后,令牌会自动保存并载入全部工具。"}),C&&t("p",{className:"line-clamp-2 break-words font-mono text-[11.5px] text-faint",title:C,children:C})]}),n(d,{type:"button",variant:"primary",onClick:U,disabled:S,className:"shrink-0",children:[t(un,{className:"mr-1.5 size-3.5"}),S?"正在拉起授权...":"前往授权"]})]})}),V&&n("div",{className:c("callout.base",c("callout.danger"),"gap-3 rounded-2xl p-4"),children:[t(gt,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n("div",{className:"min-w-0 space-y-1",children:[t("h4",{className:"text-sm font-medium text-ink",children:"连接失败"}),t("p",{className:"font-mono text-[11.5px] leading-relaxed break-words text-dim",children:C})]})]}),n("section",{className:"space-y-3",children:[n("div",{className:"flex items-baseline justify-between gap-3 px-0.5",children:[n("h4",{className:"flex items-center gap-2 text-[13px] font-medium text-ink",children:["可用工具",t("span",{className:"rounded-full bg-raised px-1.5 py-0.5 font-mono text-[11px] leading-none text-dim",children:M})]}),t("span",{className:"text-[11.5px] text-faint",children:"对所有会话可用"})]}),G?t("div",{className:c("callout.base",c("callout.danger"),"text-xs leading-relaxed break-words"),children:G}):!W?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:z?"等待授权":"尚未连接"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:z?"授权完成后会自动连接并列出工具。":"连接服务器后,这里会列出它提供的全部工具。"})]}):!m?t("div",{role:"status","aria-label":"正在获取工具列表",className:"grid gap-2",children:[0,1,2].map((p)=>n("div",{className:"animate-pulse space-y-2.5 rounded-xl border border-line p-3.5",children:[t("div",{className:"h-3.5 w-32 rounded bg-raised"}),t("div",{className:"h-3 w-4/5 rounded bg-raised/70"})]},p))}):m.length===0?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:"没有可用工具"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:"已连接成功,但该服务器没有声明任何工具。"})]}):t("ul",{className:"grid gap-2",children:m.map((p)=>{let f=p.inputSchema?.properties??{},D=p.inputSchema?.required??[],R=Object.entries(f);return n("li",{className:c("surface.subtle","border-line bg-raised/30 p-3.5 transition-colors hover:border-line-strong hover:bg-raised/60"),children:[t("span",{className:"font-mono text-[13px] font-medium break-all text-accent",children:p.name}),p.description&&t("p",{className:"mt-1.5 text-[13px] leading-relaxed break-words text-dim",children:p.description}),R.length>0&&t("div",{className:"mt-3 flex flex-wrap gap-1.5",children:R.map(([x,J])=>n("span",{title:D.includes(x)?"必填参数":"可选参数",className:"inline-flex items-center gap-1 rounded-md border border-line bg-panel px-1.5 py-1 font-mono text-[11px] leading-none",children:[t("span",{className:"text-ink",children:x}),D.includes(x)&&t("span",{className:"text-warning",children:"*"}),t("span",{className:"text-faint",children:Te(J)})]},x))})]},p.name)})})]})]})})}var $e=/^[A-Za-z0-9_-]{1,64}$/;function H(e){return t("span",{className:"truncate text-xs text-faint",children:e.children})}function be(e){let{pairs:d,onChange:g,InputComponent:y}=e,N=(u,c)=>g(d.map((k,s)=>s===u?{...k,...c}:k));return n("div",{className:"space-y-2",children:[n("div",{className:"flex min-h-7 items-center gap-2",children:[t("span",{className:"shrink-0 text-[13px] font-medium text-dim",children:e.label}),t(H,{children:e.tip}),n("button",{type:"button",className:"ml-auto inline-flex h-7 shrink-0 cursor-pointer items-center gap-1 rounded-lg px-2 text-xs font-medium text-dim transition-colors hover:bg-raised hover:text-ink",onClick:()=>g([...d,{key:"",value:"",saved:!1}]),children:[t(Re,{className:"size-3.5"}),"添加"]})]}),d.map((u,c)=>n("div",{className:"flex min-w-0 items-center gap-1.5",children:[t(y,{"aria-label":`${e.keyLabel} ${c+1}`,placeholder:e.keyLabel,value:u.key,readOnly:u.saved,onChange:(k)=>N(c,{key:k.target.value}),className:"min-w-0 flex-[2] font-mono text-xs"}),t(y,{"aria-label":`${e.keyLabel} ${u.key||c+1} 的值`,type:"password",autoComplete:"off",placeholder:u.saved?"已保存,留空保持不变":"值",value:u.value,onChange:(k)=>N(c,{value:k.target.value}),className:"min-w-0 flex-[3] font-mono text-xs"}),t("button",{type:"button","aria-label":`删除 ${u.key||"该项"}`,className:"flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-faint transition-colors hover:bg-danger/10 hover:text-danger",onClick:()=>g(d.filter((k,s)=>s!==c)),children:t(ve,{className:"size-4"})})]},c))]})}function Ne(e){return Object.keys(e??{}).map((d)=>({key:d,value:"",saved:!0}))}function Ce(e){let{Button:d,Segmented:g,Dialog:y,Form:N,Field:u,Input:c,Switch:k,style:s,useTheme:I}=_();I();let{existing:m}=e,[q,G]=a(m?.config.type??"local"),[K,S]=a(m?.name??""),[j,W]=a(m?.config.type==="local"?ie(m.config.command):""),[z,V]=a(m?.config.type==="remote"?m.config.url:""),[A,O]=a(Ne(m?.config.type==="local"?m.config.environment:void 0)),[U,Y]=a(Ne(m?.config.type==="remote"?m.config.headers:void 0)),E=m?.config.type==="remote"?m.config.oauth:void 0,[T,r]=a(Boolean(E)),[C,M]=a(typeof E==="object"&&E.clientId?E.clientId:""),[p,f]=a(""),[D,R]=a(typeof E==="object"&&E.scope?E.scope:""),[x,J]=a(m?.config.defer??"default"),[ee,we]=a(m?.config.timeout!==void 0?String(m.config.timeout):""),[se,ke]=a(m?.config.defer!==void 0||m?.config.timeout!==void 0),[ce,Q]=a(),[oe,de]=a(!1);async function Ie(b){b.preventDefault(),Q(void 0);let w=K.trim();if(!m&&!$e.test(w)){Q("名称只能包含英文字母、数字、下划线与中划线,长度 1-64");return}if(!m&&e.taken.includes(w)){Q("同名服务器已存在");return}let ne=ee.trim()?Number.parseInt(ee.trim(),10):void 0;if(ne!==void 0&&(!Number.isFinite(ne)||ne<=0)){Q("超时时间须为大于 0 的毫秒数");return}let le;if(q==="local"){let L=fe(j.trim());if(!L.length){Q("请输入启动命令");return}let F={};for(let B of A){let P=B.key.trim();if(!P)continue;if(!B.saved||B.value)F[P]=B.value}le={type:"local",command:L,environment:Object.keys(F).length?F:void 0,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}else{let L=z.trim();try{let P=new URL(L);if(P.protocol!=="http:"&&P.protocol!=="https:")throw Error("bad protocol")}catch{Q("请输入合法的 HTTP 或 HTTPS 地址");return}let F={};for(let P of U){let ae=P.key.trim();if(!ae)continue;if(!P.saved||P.value)F[ae]=P.value}let B;if(T){let P=C.trim(),ae=p.trim(),me=D.trim();if(P||ae||me)B={clientId:P||void 0,clientSecret:ae||void 0,scope:me||void 0};else B=!0}else B=!1;le={type:"remote",url:L,headers:Object.keys(F).length?F:void 0,oauth:B,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}de(!0);try{let L=m?.name??w,F=m?m.projectID:e.projectID,B=F?`?projectID=${encodeURIComponent(F)}`:"";await e.connection.request(`/api/mcp/${encodeURIComponent(L)}${B}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(le)}),e.onSaved()}catch(L){Q(L instanceof Error?L.message:"保存失败")}finally{de(!1)}}return t(y,{open:!0,onOpenChange:(b)=>{if(!b&&!oe)e.onClose()},title:m?`编辑 ${m.name}`:"添加 MCP 服务器",size:"lg",footer:n("div",{className:"flex w-full justify-end gap-2.5",children:[t(d,{type:"button",variant:"ghost",onClick:e.onClose,disabled:oe,className:"min-w-20",children:"取消"}),t(d,{type:"submit",form:"mcp-server-form",variant:"primary",disabled:oe,className:"min-w-24",children:oe?"保存中...":"保存"})]}),children:n(N,{id:"mcp-server-form",onSubmit:Ie,children:[t(g,{value:q,onChange:(b)=>G(b),className:"w-full [&>button]:flex-1",options:[{value:"local",label:"本地(标准输入输出)"},{value:"remote",label:"远程(HTTP / SSE)"}]}),!m&&t(u,{label:"名称",aside:t(H,{children:"唯一标识,如 postgres"}),children:(b)=>t(c,{id:b,value:K,onChange:(w)=>S(w.target.value),placeholder:"postgres",className:"font-mono text-xs"})}),q==="local"?n(v,{children:[t(u,{label:"启动命令",aside:t(H,{children:"完整命令及参数"}),children:(b)=>t(c,{id:b,value:j,onChange:(w)=>W(w.target.value),placeholder:"npx -y @modelcontextprotocol/server-postgres ...",className:"font-mono text-xs"})}),t(be,{label:"环境变量",tip:"启动进程时注入",keyLabel:"变量名",pairs:A,onChange:O,InputComponent:c})]}):n(v,{children:[t(u,{label:"服务地址",aside:t(H,{children:"HTTP / HTTPS 端点"}),children:(b)=>t(c,{id:b,value:z,onChange:(w)=>V(w.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-xs"})}),t(be,{label:"请求头",tip:"随每次请求发送",keyLabel:"头字段",pairs:U,onChange:Y,InputComponent:c}),n("div",{className:"flex items-center justify-between gap-4",children:[n("div",{className:"min-w-0",children:[t("span",{className:"block text-[13px] font-medium text-dim",children:"OAuth 2.0 认证"}),t("span",{className:"block truncate text-xs text-faint",children:"自动发现授权端点,使用 PKCE 并刷新令牌"})]}),t(k,{checked:T,onCheckedChange:r,label:"启用 OAuth 2.0"})]}),T&&n(v,{children:[t(u,{label:"Client ID",aside:t(H,{children:"留空自动动态注册(DCR)"}),children:(b)=>t(c,{id:b,value:C,onChange:(w)=>M(w.target.value),placeholder:"留空自动动态注册",className:"font-mono text-xs"})}),t(u,{label:"Client Secret",aside:t(H,{children:"留空保持不变"}),children:(b)=>t(c,{id:b,type:"password",autoComplete:"off",value:p,onChange:(w)=>f(w.target.value),placeholder:"••••••••",className:"font-mono text-xs"})}),t(u,{label:"Scope",aside:t(H,{children:"选填授权范围"}),children:(b)=>t(c,{id:b,value:D,onChange:(w)=>R(w.target.value),placeholder:"repo read:org",className:"font-mono text-xs"})})]})]}),n("div",{className:"space-y-3 border-t border-line/60 pt-3",children:[n("button",{type:"button","aria-expanded":se,className:"flex w-full cursor-pointer items-center gap-1.5 text-[13px] font-medium text-dim transition-colors hover:text-ink",onClick:()=>ke(!se),children:[t(yt,{className:`size-3.5 transition-transform ${se?"rotate-90":""}`}),"高级设置",t("span",{className:"truncate text-xs font-normal text-faint",children:"加载时机、超时"})]}),se&&n("div",{className:"grid grid-cols-2 gap-3 max-sm:grid-cols-1",children:[t(u,{label:"加载时机",aside:t(H,{children:"延迟 = 按需加载"}),children:()=>t(g,{value:x,onChange:(b)=>J(b),className:"w-full [&>button]:flex-1",options:[{value:"default",label:"默认"},{value:"defer",label:"延迟"},{value:"always",label:"常驻"}]})}),t(u,{label:"超时(毫秒)",aside:t(H,{children:"留空用默认"}),children:(b)=>t(c,{id:b,value:ee,onChange:(w)=>we(w.target.value),placeholder:"默认",className:"font-mono text-xs"})})]})]}),ce&&n("div",{role:"alert",className:s("callout.base",s("callout.danger"),"px-3 py-2.5 text-xs"),children:[t(Z,{className:"mt-0.5 size-3.5 shrink-0"}),t("span",{className:"min-w-0 break-words",children:ce})]})]})})}function tt({connection:e}){let{Button:d,Input:g,style:y,useTheme:N}=_();N();let[u,c]=a(""),[k,s]=a(),[I,m]=a(),[q,G]=a(!1),[K,S]=a(),[j,W]=a(!1),z=i(!1),[V,A]=a(),O=i(0),U=h(async()=>{let r=++O.current;G(!0);try{let C=await e.request("/api/mcp");if(r!==O.current)return;s(C),m(void 0)}catch(C){if(r===O.current)m(C instanceof Error?C.message:"读取失败")}finally{if(r===O.current)G(!1)}},[e]);o(()=>(U(),()=>{O.current++}),[U]);async function Y(r,C){if(z.current)return;z.current=!0,W(!0);let M=O.current;try{let p=r.projectID?`?projectID=${encodeURIComponent(r.projectID)}`:"",f=await e.request(`/api/mcp/${encodeURIComponent(r.name)}${p}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({...r.config,enabled:C})});if(M===O.current)s((D)=>D?.map((R)=>R.name===f.name&&R.projectID===f.projectID?f:R))}finally{z.current=!1,W(!1)}}let E=k?.filter((r)=>`${r.name} ${X(r.config)}`.toLowerCase().includes(u.trim().toLowerCase())),T=k?.find((r)=>r.name===K);return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[t("h2",{className:y("settings.groupTitle"),children:"MCP 服务器"}),t("p",{className:y("settings.groupDesc"),children:"外部工具与数据源管理"})]}),n("div",{className:"flex gap-2",children:[t(d,{variant:"ghost",disabled:q,onClick:U,className:"h-9 px-2.5 text-xs",children:t(te,{className:`size-3.5 ${q?"animate-spin":""}`})}),n(d,{variant:"secondary",onClick:()=>A({}),className:"h-9 px-2.5 text-xs",children:[t(Re,{className:"size-3.5 mr-1"}),"添加服务器"]})]})]}),I&&n("div",{role:"alert",className:y("callout.base",y("callout.danger"),"mb-3 flex-wrap items-center justify-between"),children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法读取 MCP 服务器:",I]}),t(d,{disabled:q,onClick:U,children:"重试"})]}),n("div",{className:"relative mb-3 min-w-0",children:[t(ue,{"aria-hidden":!0,className:"pointer-events-none absolute top-3 left-3 size-4 text-faint"}),t(g,{type:"search","aria-label":"搜索 MCP 服务器",placeholder:"搜索服务器",value:u,onChange:(r)=>c(r.target.value),className:"h-10 min-w-0 pl-9"})]}),t("div",{className:y("settings.groupBox"),children:!k?t("div",{role:"status","aria-label":"正在加载",className:"divide-y divide-line",children:[0,1,2].map((r)=>n("div",{className:"h-16 space-y-2 px-4 py-3",children:[t("div",{className:"h-3 w-24 animate-pulse rounded bg-raised"}),t("div",{className:"h-3 w-2/3 animate-pulse rounded bg-raised"})]},r))}):E?.length===0?t("p",{className:"p-4 text-sm text-dim",children:"没有匹配的 MCP 服务器"}):t("ul",{className:"divide-y divide-line",children:E?.map((r)=>{let C=r.config.enabled===!1,M=r.scope==="file";return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${C?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看 ${r.name}`,disabled:M,title:M?"来自项目的 .mcp.json,只读":void 0,onClick:()=>S(r.name),children:[t("span",{"aria-hidden":!0,className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-raised text-dim",children:r.config.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),n("span",{className:"min-w-0 flex-1",children:[t("span",{className:"block truncate text-sm font-medium text-ink",title:r.name,children:r.name}),t("span",{className:"mt-0.5 block truncate font-mono text-xs text-dim",title:X(r.config),children:X(r.config)})]}),t("span",{className:y("control.badge","shrink-0 text-[11px] text-dim"),children:r.scope==="project"?"项目":r.scope==="file"?".mcp.json":"全局"}),t(xe,{info:r})]}),t("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:!M&&t("input",{type:"checkbox","aria-label":`启用服务器 ${r.name}`,className:ge,disabled:j||q,checked:!C,onChange:(p)=>Y(r,p.target.checked)})})]},r.name)})})})]}),T&&!V&&t(he,{connection:e,info:T,onClose:()=>S(void 0),onEdit:()=>A({info:T}),onChanged:(r)=>r?s((C)=>C?.map((M)=>M.name===r.name?r:M)):U()},`${T.projectID}:${T.name}`),V&&t(Ce,{connection:e,existing:V.info,taken:(k??[]).map((r)=>r.name),onClose:()=>A(void 0),onSaved:()=>{A(void 0),U()}})]})}export{tt as McpSection};
1
+ import{h,o,i,a,v,t,n,_,l,Z,gt,yt,un,ye,Re,te,ue,Ut,ot,re,tn,ve}from"./chunk-vt40e1kp.js";var Se=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],pe=l("key-round",Se);function fe(e){let d=[],g="",y,N=!1;for(let u=0;u<e.length;u++){let c=e[u];if(y)if(c===y)y=void 0;else if(c==="\\"&&y==='"'&&u+1<e.length)g+=e[++u];else g+=c;else if(c==='"'||c==="'")y=c,N=!0;else if(c==="\\"&&u+1<e.length)g+=e[++u],N=!0;else if(/\s/.test(c)){if(N||g)d.push(g);g="",N=!1}else g+=c,N=!0}if(N||g)d.push(g);return d}function ie(e){return e.map((d)=>d===""||/[\s"'\\]/.test(d)?`"${d.replace(/(["\\])/g,"\\$1")}"`:d).join(" ")}var ge="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent",je={connected:{label:"已连接",dot:"bg-success"},idle:{label:"待连接",dot:"bg-faint"},disabled:{label:"已停用",dot:"bg-faint"},failed:{label:"连接失败",dot:"bg-danger"},needs_auth:{label:"需要认证",dot:"bg-warning"}};function X(e){return e.type==="local"?ie(e.command):e.url}function xe({info:e,tools:d=!1}){let g=je[e.status.status];return n("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs text-dim",children:[t("span",{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full ${g.dot}`}),t("span",{className:d?void 0:"hidden @md/panel:inline",children:g.label}),d&&e.status.status==="connected"&&n("span",{className:"text-faint",children:["· ",e.toolCount," 个工具"]})]})}function Te(e){if(typeof e!=="object"||e===null||!("type"in e))return"any";let d=e.type;if(typeof d==="string")return d;if(Array.isArray(d))return d.filter((g)=>typeof g==="string").join(" | ")||"any";return"any"}function he(e){let{Button:d,CopyButton:g,Dialog:y,StatusChip:N,confirm:u,style:c,useTheme:k}=_();k();let{info:s,connection:I}=e,[m,q]=a(),[G,K]=a(),[S,j]=a(!1),W=s.status.status==="connected",z=s.status.status==="needs_auth",V=s.status.status==="failed",A=s.config.type==="remote"&&Boolean(s.config.oauth);o(()=>{function p(x){if(x&&x!==s.name)return;let J=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/connect${J}`,{method:"POST"}).then((ee)=>e.onChanged(ee)).catch(()=>{})}function f(x){if(x.data?.type==="mcp-oauth-success")p(x.data.name)}function D(x){if(x.key==="basalt-mcp-oauth-event"&&x.newValue)try{let J=JSON.parse(x.newValue);p(J.name)}catch(J){}}window.addEventListener("message",f),window.addEventListener("storage",D);let R;if("BroadcastChannel"in window)R=new BroadcastChannel("basalt-mcp-oauth"),R.onmessage=(x)=>{if(x.data?.type==="mcp-oauth-success")p(x.data.name)};return()=>{window.removeEventListener("message",f),window.removeEventListener("storage",D),R?.close()}},[I,s.name,s.projectID,e]),o(()=>{if(s.status.status!=="connected")return;let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/tools${p}`).then((f)=>{if(Array.isArray(f))q(f),K(void 0)}).catch((f)=>{K(f instanceof Error?f.message:"获取工具失败")})},[I,s.name,s.projectID,s.status.status]);async function O(p){j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",D=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/${p}${f}`,{method:"POST"});e.onChanged(D)}catch{}finally{j(!1)}}async function U(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=s.status.status==="needs_auth"?s.status.authorizationUrl:void 0;if(!f)f=(await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/authorize${p}`,{method:"POST"})).authorizationUrl;if(f)window.open(f,"_blank","width=600,height=700")}catch(p){K(p instanceof Error?p.message:"获取授权链接失败")}finally{j(!1)}}async function Y(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/clear${p}`,{method:"POST"});e.onChanged(f)}finally{j(!1)}}async function E(){if(!await u({title:`删除 ${s.name}?`,description:"删除后将断开连接并不再向会话提供其工具。",action:"删除",danger:!0}))return;j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";await I.request(`/api/mcp/${encodeURIComponent(s.name)}${f}`,{method:"DELETE"}),e.onChanged(),e.onClose()}finally{j(!1)}}let T=s.config,r=X(T),C="error"in s.status?s.status.error:void 0,M=m?.length??s.toolCount??0;return t(y,{open:!0,className:"bg-panel shadow-float",onOpenChange:(p)=>{if(!p&&!S)e.onClose()},title:n("div",{className:"flex flex-wrap items-center gap-3",children:[t("div",{className:"flex size-8 items-center justify-center rounded-[10px] border border-accent/20 bg-accent-soft text-accent",children:T.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),t("span",{className:"font-serif text-lg font-semibold tracking-tight text-ink",children:s.name}),W?t(N,{tone:"success",pulse:!0,children:"已连接"}):z?t(N,{tone:"warning",pulse:!0,children:"需要授权"}):V?t(N,{tone:"danger",children:"连接失败"}):s.status.status==="disabled"?t(N,{tone:"neutral",children:"已停用"}):t(N,{tone:"neutral",children:"未连接"})]}),description:n("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[n("span",{className:"flex min-w-0 max-w-full items-center gap-1 rounded-lg border border-line bg-raised/60 py-0.5 pr-1 pl-2.5 font-mono text-[11.5px] text-ink",children:[t("span",{className:"min-w-0 truncate",title:r,children:r}),t(g,{text:r,label:"复制地址",size:"icon-xs",className:"shrink-0 text-dim hover:text-ink"})]}),t("span",{className:"rounded-lg border border-line px-2 py-1 text-[11px] leading-none text-dim",children:T.type==="local"?"本地命令":"远程 HTTP"}),A&&n("span",{className:c("control.badgeAccent","gap-1 rounded-lg border border-accent/25 px-2 py-1"),children:[t(Ut,{className:"size-3"}),"OAuth 2.0"]})]}),size:"lg",footer:n("div",{className:"flex w-full items-center justify-between gap-2 max-sm:flex-col",children:[n("div",{className:"flex items-center gap-1 max-sm:w-full",children:[A&&t(d,{type:"button",variant:"ghost",onClick:Y,disabled:S,title:"清除已保存的 OAuth 凭据",children:"清除凭据"}),t(d,{type:"button",variant:"danger-ghost",size:"icon-sm","aria-label":"删除服务器",onClick:E,disabled:S,title:"删除服务器",children:t(re,{className:"size-4"})})]}),n("div",{className:"flex items-center gap-2 max-sm:w-full max-sm:justify-end",children:[t(d,{type:"button",variant:"ghost",onClick:e.onEdit,disabled:S,children:"编辑配置"}),!z&&t(d,{type:"button",variant:"secondary",onClick:()=>O(W?"disconnect":"connect"),disabled:S,children:S?"处理中...":W?"断开连接":"立即连接"}),t(d,{type:"button",variant:"primary",onClick:e.onClose,children:"完成"})]})]}),children:n("div",{className:"space-y-6 pt-1",children:[z&&t("div",{className:"relative overflow-hidden rounded-2xl border border-warning/30 bg-[radial-gradient(120%_140%_at_0%_0%,color-mix(in_oklch,var(--color-warning)_16%,transparent),transparent_65%)] p-5",children:n("div",{className:"flex items-start gap-4 max-sm:flex-col",children:[t("div",{className:"relative flex size-11 shrink-0 items-center justify-center rounded-xl border border-warning/30 bg-panel text-warning shadow-[0_0_28px_-4px_color-mix(in_oklch,var(--color-warning)_55%,transparent)]",children:t(pe,{className:"size-5"})}),n("div",{className:"min-w-0 flex-1 space-y-1.5",children:[t("h4",{className:"text-sm font-semibold text-ink",children:"授权后即可使用此服务器"}),t("p",{className:"text-[13px] leading-relaxed text-dim",children:"该端点要求 OAuth 2.0 身份许可。在浏览器中完成授权后,令牌会自动保存并载入全部工具。"}),C&&t("p",{className:"line-clamp-2 break-words font-mono text-[11.5px] text-faint",title:C,children:C})]}),n(d,{type:"button",variant:"primary",onClick:U,disabled:S,className:"shrink-0",children:[t(un,{className:"mr-1.5 size-3.5"}),S?"正在拉起授权...":"前往授权"]})]})}),V&&n("div",{className:c("callout.base",c("callout.danger"),"gap-3 rounded-2xl p-4"),children:[t(gt,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n("div",{className:"min-w-0 space-y-1",children:[t("h4",{className:"text-sm font-medium text-ink",children:"连接失败"}),t("p",{className:"font-mono text-[11.5px] leading-relaxed break-words text-dim",children:C})]})]}),n("section",{className:"space-y-3",children:[n("div",{className:"flex items-baseline justify-between gap-3 px-0.5",children:[n("h4",{className:"flex items-center gap-2 text-[13px] font-medium text-ink",children:["可用工具",t("span",{className:"rounded-full bg-raised px-1.5 py-0.5 font-mono text-[11px] leading-none text-dim",children:M})]}),t("span",{className:"text-[11.5px] text-faint",children:"对所有会话可用"})]}),G?t("div",{className:c("callout.base",c("callout.danger"),"text-xs leading-relaxed break-words"),children:G}):!W?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:z?"等待授权":"尚未连接"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:z?"授权完成后会自动连接并列出工具。":"连接服务器后,这里会列出它提供的全部工具。"})]}):!m?t("div",{role:"status","aria-label":"正在获取工具列表",className:"grid gap-2",children:[0,1,2].map((p)=>n("div",{className:"animate-pulse space-y-2.5 rounded-xl border border-line p-3.5",children:[t("div",{className:"h-3.5 w-32 rounded bg-raised"}),t("div",{className:"h-3 w-4/5 rounded bg-raised/70"})]},p))}):m.length===0?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:"没有可用工具"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:"已连接成功,但该服务器没有声明任何工具。"})]}):t("ul",{className:"grid gap-2",children:m.map((p)=>{let f=p.inputSchema?.properties??{},D=p.inputSchema?.required??[],R=Object.entries(f);return n("li",{className:c("surface.subtle","border-line bg-raised/30 p-3.5 transition-colors hover:border-line-strong hover:bg-raised/60"),children:[t("span",{className:"font-mono text-[13px] font-medium break-all text-accent",children:p.name}),p.description&&t("p",{className:"mt-1.5 text-[13px] leading-relaxed break-words text-dim",children:p.description}),R.length>0&&t("div",{className:"mt-3 flex flex-wrap gap-1.5",children:R.map(([x,J])=>n("span",{title:D.includes(x)?"必填参数":"可选参数",className:"inline-flex items-center gap-1 rounded-md border border-line bg-panel px-1.5 py-1 font-mono text-[11px] leading-none",children:[t("span",{className:"text-ink",children:x}),D.includes(x)&&t("span",{className:"text-warning",children:"*"}),t("span",{className:"text-faint",children:Te(J)})]},x))})]},p.name)})})]})]})})}var $e=/^[A-Za-z0-9_-]{1,64}$/;function H(e){return t("span",{className:"truncate text-xs text-faint",children:e.children})}function be(e){let{pairs:d,onChange:g,InputComponent:y}=e,N=(u,c)=>g(d.map((k,s)=>s===u?{...k,...c}:k));return n("div",{className:"space-y-2",children:[n("div",{className:"flex min-h-7 items-center gap-2",children:[t("span",{className:"shrink-0 text-[13px] font-medium text-dim",children:e.label}),t(H,{children:e.tip}),n("button",{type:"button",className:"ml-auto inline-flex h-7 shrink-0 cursor-pointer items-center gap-1 rounded-lg px-2 text-xs font-medium text-dim transition-colors hover:bg-raised hover:text-ink",onClick:()=>g([...d,{key:"",value:"",saved:!1}]),children:[t(Re,{className:"size-3.5"}),"添加"]})]}),d.map((u,c)=>n("div",{className:"flex min-w-0 items-center gap-1.5",children:[t(y,{"aria-label":`${e.keyLabel} ${c+1}`,placeholder:e.keyLabel,value:u.key,readOnly:u.saved,onChange:(k)=>N(c,{key:k.target.value}),className:"min-w-0 flex-[2] font-mono text-xs"}),t(y,{"aria-label":`${e.keyLabel} ${u.key||c+1} 的值`,type:"password",autoComplete:"off",placeholder:u.saved?"已保存,留空保持不变":"值",value:u.value,onChange:(k)=>N(c,{value:k.target.value}),className:"min-w-0 flex-[3] font-mono text-xs"}),t("button",{type:"button","aria-label":`删除 ${u.key||"该项"}`,className:"flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-faint transition-colors hover:bg-danger/10 hover:text-danger",onClick:()=>g(d.filter((k,s)=>s!==c)),children:t(ve,{className:"size-4"})})]},c))]})}function Ne(e){return Object.keys(e??{}).map((d)=>({key:d,value:"",saved:!0}))}function Ce(e){let{Button:d,Segmented:g,Dialog:y,Form:N,Field:u,Input:c,Switch:k,style:s,useTheme:I}=_();I();let{existing:m}=e,[q,G]=a(m?.config.type??"local"),[K,S]=a(m?.name??""),[j,W]=a(m?.config.type==="local"?ie(m.config.command):""),[z,V]=a(m?.config.type==="remote"?m.config.url:""),[A,O]=a(Ne(m?.config.type==="local"?m.config.environment:void 0)),[U,Y]=a(Ne(m?.config.type==="remote"?m.config.headers:void 0)),E=m?.config.type==="remote"?m.config.oauth:void 0,[T,r]=a(Boolean(E)),[C,M]=a(typeof E==="object"&&E.clientId?E.clientId:""),[p,f]=a(""),[D,R]=a(typeof E==="object"&&E.scope?E.scope:""),[x,J]=a(m?.config.defer??"default"),[ee,we]=a(m?.config.timeout!==void 0?String(m.config.timeout):""),[se,ke]=a(m?.config.defer!==void 0||m?.config.timeout!==void 0),[ce,Q]=a(),[oe,de]=a(!1);async function Ie(b){b.preventDefault(),Q(void 0);let w=K.trim();if(!m&&!$e.test(w)){Q("名称只能包含英文字母、数字、下划线与中划线,长度 1-64");return}if(!m&&e.taken.includes(w)){Q("同名服务器已存在");return}let ne=ee.trim()?Number.parseInt(ee.trim(),10):void 0;if(ne!==void 0&&(!Number.isFinite(ne)||ne<=0)){Q("超时时间须为大于 0 的毫秒数");return}let le;if(q==="local"){let L=fe(j.trim());if(!L.length){Q("请输入启动命令");return}let F={};for(let B of A){let P=B.key.trim();if(!P)continue;if(!B.saved||B.value)F[P]=B.value}le={type:"local",command:L,environment:Object.keys(F).length?F:void 0,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}else{let L=z.trim();try{let P=new URL(L);if(P.protocol!=="http:"&&P.protocol!=="https:")throw Error("bad protocol")}catch{Q("请输入合法的 HTTP 或 HTTPS 地址");return}let F={};for(let P of U){let ae=P.key.trim();if(!ae)continue;if(!P.saved||P.value)F[ae]=P.value}let B;if(T){let P=C.trim(),ae=p.trim(),me=D.trim();if(P||ae||me)B={clientId:P||void 0,clientSecret:ae||void 0,scope:me||void 0};else B=!0}else B=!1;le={type:"remote",url:L,headers:Object.keys(F).length?F:void 0,oauth:B,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}de(!0);try{let L=m?.name??w,F=m?m.projectID:e.projectID,B=F?`?projectID=${encodeURIComponent(F)}`:"";await e.connection.request(`/api/mcp/${encodeURIComponent(L)}${B}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(le)}),e.onSaved()}catch(L){Q(L instanceof Error?L.message:"保存失败")}finally{de(!1)}}return t(y,{open:!0,onOpenChange:(b)=>{if(!b&&!oe)e.onClose()},title:m?`编辑 ${m.name}`:"添加 MCP 服务器",size:"lg",footer:n("div",{className:"flex w-full justify-end gap-2.5",children:[t(d,{type:"button",variant:"ghost",onClick:e.onClose,disabled:oe,className:"min-w-20",children:"取消"}),t(d,{type:"submit",form:"mcp-server-form",variant:"primary",disabled:oe,className:"min-w-24",children:oe?"保存中...":"保存"})]}),children:n(N,{id:"mcp-server-form",onSubmit:Ie,children:[t(g,{value:q,onChange:(b)=>G(b),className:"w-full [&>button]:flex-1",options:[{value:"local",label:"本地(标准输入输出)"},{value:"remote",label:"远程(HTTP / SSE)"}]}),!m&&t(u,{label:"名称",aside:t(H,{children:"唯一标识,如 postgres"}),children:(b)=>t(c,{id:b,value:K,onChange:(w)=>S(w.target.value),placeholder:"postgres",className:"font-mono text-xs"})}),q==="local"?n(v,{children:[t(u,{label:"启动命令",aside:t(H,{children:"完整命令及参数"}),children:(b)=>t(c,{id:b,value:j,onChange:(w)=>W(w.target.value),placeholder:"npx -y @modelcontextprotocol/server-postgres ...",className:"font-mono text-xs"})}),t(be,{label:"环境变量",tip:"启动进程时注入",keyLabel:"变量名",pairs:A,onChange:O,InputComponent:c})]}):n(v,{children:[t(u,{label:"服务地址",aside:t(H,{children:"HTTP / HTTPS 端点"}),children:(b)=>t(c,{id:b,value:z,onChange:(w)=>V(w.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-xs"})}),t(be,{label:"请求头",tip:"随每次请求发送",keyLabel:"头字段",pairs:U,onChange:Y,InputComponent:c}),n("div",{className:"flex items-center justify-between gap-4",children:[n("div",{className:"min-w-0",children:[t("span",{className:"block text-[13px] font-medium text-dim",children:"OAuth 2.0 认证"}),t("span",{className:"block truncate text-xs text-faint",children:"自动发现授权端点,使用 PKCE 并刷新令牌"})]}),t(k,{checked:T,onCheckedChange:r,label:"启用 OAuth 2.0"})]}),T&&n(v,{children:[t(u,{label:"Client ID",aside:t(H,{children:"留空自动动态注册(DCR)"}),children:(b)=>t(c,{id:b,value:C,onChange:(w)=>M(w.target.value),placeholder:"留空自动动态注册",className:"font-mono text-xs"})}),t(u,{label:"Client Secret",aside:t(H,{children:"留空保持不变"}),children:(b)=>t(c,{id:b,type:"password",autoComplete:"off",value:p,onChange:(w)=>f(w.target.value),placeholder:"••••••••",className:"font-mono text-xs"})}),t(u,{label:"Scope",aside:t(H,{children:"选填授权范围"}),children:(b)=>t(c,{id:b,value:D,onChange:(w)=>R(w.target.value),placeholder:"repo read:org",className:"font-mono text-xs"})})]})]}),n("div",{className:"space-y-3 border-t border-line/60 pt-3",children:[n("button",{type:"button","aria-expanded":se,className:"flex w-full cursor-pointer items-center gap-1.5 text-[13px] font-medium text-dim transition-colors hover:text-ink",onClick:()=>ke(!se),children:[t(yt,{className:`size-3.5 transition-transform ${se?"rotate-90":""}`}),"高级设置",t("span",{className:"truncate text-xs font-normal text-faint",children:"加载时机、超时"})]}),se&&n("div",{className:"grid grid-cols-2 gap-3 max-sm:grid-cols-1",children:[t(u,{label:"加载时机",aside:t(H,{children:"延迟 = 按需加载"}),children:()=>t(g,{value:x,onChange:(b)=>J(b),className:"w-full [&>button]:flex-1",options:[{value:"default",label:"默认"},{value:"defer",label:"延迟"},{value:"always",label:"常驻"}]})}),t(u,{label:"超时(毫秒)",aside:t(H,{children:"留空用默认"}),children:(b)=>t(c,{id:b,value:ee,onChange:(w)=>we(w.target.value),placeholder:"默认",className:"font-mono text-xs"})})]})]}),ce&&n("div",{role:"alert",className:s("callout.base",s("callout.danger"),"px-3 py-2.5 text-xs"),children:[t(Z,{className:"mt-0.5 size-3.5 shrink-0"}),t("span",{className:"min-w-0 break-words",children:ce})]})]})})}function tt({connection:e}){let{Button:d,Input:g,style:y,useTheme:N}=_();N();let[u,c]=a(""),[k,s]=a(),[I,m]=a(),[q,G]=a(!1),[K,S]=a(),[j,W]=a(!1),z=i(!1),[V,A]=a(),O=i(0),U=h(async()=>{let r=++O.current;G(!0);try{let C=await e.request("/api/mcp");if(r!==O.current)return;s(C),m(void 0)}catch(C){if(r===O.current)m(C instanceof Error?C.message:"读取失败")}finally{if(r===O.current)G(!1)}},[e]);o(()=>(U(),()=>{O.current++}),[U]);async function Y(r,C){if(z.current)return;z.current=!0,W(!0);let M=O.current;try{let p=r.projectID?`?projectID=${encodeURIComponent(r.projectID)}`:"",f=await e.request(`/api/mcp/${encodeURIComponent(r.name)}${p}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({...r.config,enabled:C})});if(M===O.current)s((D)=>D?.map((R)=>R.name===f.name&&R.projectID===f.projectID?f:R))}finally{z.current=!1,W(!1)}}let E=k?.filter((r)=>`${r.name} ${X(r.config)}`.toLowerCase().includes(u.trim().toLowerCase())),T=k?.find((r)=>r.name===K);return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[t("h2",{className:y("settings.groupTitle"),children:"MCP 服务器"}),t("p",{className:y("settings.groupDesc"),children:"外部工具与数据源管理"})]}),n("div",{className:"flex gap-2",children:[t(d,{variant:"ghost",disabled:q,onClick:U,className:"h-9 px-2.5 text-xs",children:t(te,{className:`size-3.5 ${q?"animate-spin":""}`})}),n(d,{variant:"secondary",onClick:()=>A({}),className:"h-9 px-2.5 text-xs",children:[t(Re,{className:"size-3.5 mr-1"}),"添加服务器"]})]})]}),I&&n("div",{role:"alert",className:y("callout.base",y("callout.danger"),"mb-3 flex-wrap items-center justify-between"),children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法读取 MCP 服务器:",I]}),t(d,{disabled:q,onClick:U,children:"重试"})]}),n("div",{className:"relative mb-3 min-w-0",children:[t(ue,{"aria-hidden":!0,className:"pointer-events-none absolute top-3 left-3 size-4 text-faint"}),t(g,{type:"search","aria-label":"搜索 MCP 服务器",placeholder:"搜索服务器",value:u,onChange:(r)=>c(r.target.value),className:"h-10 min-w-0 pl-9"})]}),t("div",{className:y("settings.groupBox"),children:!k?t("div",{role:"status","aria-label":"正在加载",className:"divide-y divide-line",children:[0,1,2].map((r)=>n("div",{className:"h-16 space-y-2 px-4 py-3",children:[t("div",{className:"h-3 w-24 animate-pulse rounded bg-raised"}),t("div",{className:"h-3 w-2/3 animate-pulse rounded bg-raised"})]},r))}):E?.length===0?t("p",{className:"p-4 text-sm text-dim",children:"没有匹配的 MCP 服务器"}):t("ul",{className:"divide-y divide-line",children:E?.map((r)=>{let C=r.config.enabled===!1,M=r.scope==="file";return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${C?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看 ${r.name}`,disabled:M,title:M?"来自项目的 .mcp.json,只读":void 0,onClick:()=>S(r.name),children:[t("span",{"aria-hidden":!0,className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-raised text-dim",children:r.config.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),n("span",{className:"min-w-0 flex-1",children:[t("span",{className:"block truncate text-sm font-medium text-ink",title:r.name,children:r.name}),t("span",{className:"mt-0.5 block truncate font-mono text-xs text-dim",title:X(r.config),children:X(r.config)})]}),t("span",{className:y("control.badge","shrink-0 text-[11px] text-dim"),children:r.scope==="project"?"项目":r.scope==="file"?".mcp.json":"全局"}),t(xe,{info:r})]}),t("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:!M&&t("input",{type:"checkbox","aria-label":`启用服务器 ${r.name}`,className:ge,disabled:j||q,checked:!C,onChange:(p)=>Y(r,p.target.checked)})})]},r.name)})})})]}),T&&!V&&t(he,{connection:e,info:T,onClose:()=>S(void 0),onEdit:()=>A({info:T}),onChanged:(r)=>r?s((C)=>C?.map((M)=>M.name===r.name?r:M)):U()},`${T.projectID}:${T.name}`),V&&t(Ce,{connection:e,existing:V.info,taken:(k??[]).map((r)=>r.name),onClose:()=>A(void 0),onSaved:()=>{A(void 0),U()}})]})}export{tt as McpSection};