zen-code 4.10.0 → 4.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +3 -3
- package/dist/chunk-0ddrb30y.js +1 -0
- package/dist/{chunk-gz7fz9fg.js → chunk-215an3fz.js} +1 -1
- package/dist/{chunk-5m4yb9av.js → chunk-40ht9pe1.js} +2 -2
- package/dist/{chunk-dx9k6sdd.js → chunk-4wnmk2tj.js} +1 -1
- package/dist/{chunk-e6ggkg36.js → chunk-4z0w0ng1.js} +1 -1
- package/dist/chunk-57bj89e2.js +1 -0
- package/dist/{chunk-54cdhhqm.js → chunk-5a5mepqj.js} +1 -1
- package/dist/{chunk-t0f66x64.js → chunk-5c3bpcpm.js} +1 -1
- package/dist/{chunk-8bs8r50r.js → chunk-7kw7ss8d.js} +1 -1
- package/dist/chunk-86m0rmtc.js +1 -0
- package/dist/{chunk-cef4vbtb.js → chunk-8f19qk9r.js} +1 -1
- package/dist/{chunk-yerf10k7.js → chunk-8tbtavry.js} +1 -1
- package/dist/{chunk-5yd4ntp6.js → chunk-9rayxazs.js} +2 -2
- package/dist/{chunk-1w19w1bm.js → chunk-a9gpb2tx.js} +1 -1
- package/dist/{chunk-d2770b2z.js → chunk-a9tw6d68.js} +1 -1
- package/dist/{chunk-r0cfe5c1.js → chunk-anbtppz1.js} +3 -3
- package/dist/chunk-bca8tkkr.js +1 -0
- package/dist/{chunk-bm7578sn.js → chunk-bdqds8vh.js} +1 -1
- package/dist/{chunk-gwf8b14k.js → chunk-bzgznka5.js} +1 -1
- package/dist/{chunk-1v863afn.js → chunk-c7kd2qrp.js} +3 -3
- package/dist/{chunk-vhn13anh.js → chunk-dvbb3dd1.js} +2 -2
- package/dist/{chunk-t01t72t2.js → chunk-e8kxa5vj.js} +2 -2
- package/dist/{chunk-7yzv6385.js → chunk-ehmmd8qc.js} +1 -1
- package/dist/{chunk-whdf0vbb.js → chunk-ejfa95sm.js} +1 -1
- package/dist/{chunk-hrcxdj3c.js → chunk-f0m4532p.js} +2 -2
- package/dist/{chunk-rtjytfhh.js → chunk-f7cps5x1.js} +1 -1
- package/dist/{chunk-7jatn15w.js → chunk-fbemqjck.js} +1 -1
- package/dist/{chunk-075hks9v.js → chunk-feeqtzv5.js} +1 -1
- package/dist/{chunk-8waww0j9.js → chunk-fzh0v6r0.js} +2 -2
- package/dist/{chunk-nm253hhf.js → chunk-g2zskge5.js} +2 -2
- package/dist/{chunk-875hayaj.js → chunk-g974hxbz.js} +1 -1
- package/dist/{chunk-4scrkcqv.js → chunk-g9911ymn.js} +1 -1
- package/dist/{chunk-bytq4kd1.js → chunk-gfhmzpy7.js} +2 -2
- package/dist/{chunk-wd3gkd45.js → chunk-gt8c6dne.js} +1 -1
- package/dist/{chunk-d72063sm.js → chunk-h8fdexm4.js} +1 -1
- package/dist/{chunk-k12y05c3.js → chunk-hnnwbfqk.js} +2 -2
- package/dist/{chunk-hz9yw7cs.js → chunk-hp2jzn9x.js} +2 -2
- package/dist/{chunk-arv4h3h1.js → chunk-hve2a279.js} +2 -2
- package/dist/{chunk-ws232ksq.js → chunk-js4qp900.js} +1 -1
- package/dist/{chunk-mv0xzmq8.js → chunk-k4q8j7pg.js} +1 -1
- package/dist/{chunk-kmxdq21k.js → chunk-m21hvv91.js} +1 -1
- package/dist/{chunk-prg6489q.js → chunk-mmx0k2yq.js} +1 -1
- package/dist/{chunk-3dnayvgx.js → chunk-mnnyjmgw.js} +2 -2
- package/dist/chunk-mw7x6xqp.js +1 -0
- package/dist/{chunk-0fj768k4.js → chunk-n7s6my89.js} +2 -2
- package/dist/{chunk-cnzhxgn5.js → chunk-n9rpnke9.js} +1 -1
- package/dist/{chunk-tn356gwf.js → chunk-nk62q95g.js} +2 -2
- package/dist/{chunk-n849zsd3.js → chunk-nmzx5nmt.js} +1 -1
- package/dist/{chunk-7w9y11hj.js → chunk-nqh1pptf.js} +1 -1
- package/dist/{chunk-qhzm2qw9.js → chunk-nsw5168d.js} +2 -2
- package/dist/{chunk-9tgp14v7.js → chunk-pe8mzxwn.js} +2 -2
- package/dist/{chunk-4hg13vwj.js → chunk-pg1ppq4y.js} +1 -1
- package/dist/{chunk-yzv3n8mw.js → chunk-pzb224c5.js} +1 -1
- package/dist/chunk-q1cxrg0x.js +2 -0
- package/dist/{chunk-k6fxqssr.js → chunk-qxebn3jw.js} +3 -3
- package/dist/{chunk-mm9w91rj.js → chunk-s1tbdcs8.js} +1 -1
- package/dist/{chunk-j4y5rjne.js → chunk-s5cqejr6.js} +1 -1
- package/dist/{chunk-qmxtys9q.js → chunk-spa69h7p.js} +1 -1
- package/dist/{chunk-znw7fpep.js → chunk-spx7nn8t.js} +2 -2
- package/dist/{chunk-wbm7rn9w.js → chunk-swc7se71.js} +1 -1
- package/dist/chunk-swyc15ym.js +1 -0
- package/dist/chunk-t2s3s6af.js +1 -0
- package/dist/{chunk-h0q3dvnv.js → chunk-t6440ajd.js} +2 -2
- package/dist/{chunk-vd8kwzra.js → chunk-tjg2e8v3.js} +2 -2
- package/dist/{chunk-d988tv30.js → chunk-tjvhqr94.js} +1 -1
- package/dist/{chunk-fjqtrakn.js → chunk-vbb3m0vz.js} +1 -1
- package/dist/{chunk-9czhw5k6.js → chunk-vdmq9d9x.js} +2 -2
- package/dist/{chunk-pxdgy0vr.js → chunk-vfxjbdz4.js} +1 -1
- package/dist/{chunk-mcb8rewr.js → chunk-vrnj0659.js} +2 -2
- package/dist/{chunk-6scjjkn3.js → chunk-wmyc17aa.js} +1 -1
- package/dist/{chunk-vnewbtjy.js → chunk-wt3p1w1g.js} +1 -1
- package/dist/{chunk-19mf2aa7.js → chunk-y5ry5c7v.js} +1 -1
- package/dist/{chunk-z3e4c424.js → chunk-y8qhrx11.js} +1 -1
- package/dist/{chunk-1mq2jmfy.js → chunk-yy8p9zph.js} +2 -2
- package/dist/chunk-z61m3anh.js +1 -0
- package/dist/{chunk-a239dn0b.js → chunk-zg54h6gy.js} +1 -1
- package/dist/chunk-zr90qp47.js +1 -0
- package/dist/{chunk-s7ttf0pm.js → chunk-zsa62xr0.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/nonInteractive.js +1 -1
- package/dist/zen-keyboard.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-1vn8d8b8.js +0 -1
- package/dist/chunk-8ysg0rga.js +0 -1
- package/dist/chunk-b2551zfb.js +0 -2
- package/dist/chunk-b9emn03n.js +0 -1
- package/dist/chunk-c2wfgbj6.js +0 -1
- package/dist/chunk-gbfpab0j.js +0 -1
- package/dist/chunk-gkvx829z.js +0 -1
- package/dist/chunk-h0qb9jk1.js +0 -1
- package/dist/chunk-h9y136h8.js +0 -1
- package/dist/chunk-zq2g4rfd.js +0 -1
package/dist/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as c7,i as p7}from"./chunk-
|
|
1
|
+
import{h as c7,i as p7}from"./chunk-js4qp900.js";import{j as p1,k as i9}from"./chunk-h8fdexm4.js";import{l as w1,m as c9}from"./chunk-9rayxazs.js";import{o as RZ,p as S8,q as I0,s as R0,t as V8,u as $4}from"./chunk-4z0w0ng1.js";import{A as d1,B as d9,v as W6,w as R1,x as T1,y as h1,z as V6}from"./chunk-fbemqjck.js";import"./chunk-pzb224c5.js";import{D as V7,E as o4,F as i7,G as l9,H as R9,I as F8,J as S0,K as VZ}from"./chunk-pg1ppq4y.js";import{L as Q7,M as y6,N as M7,P as L9,Q as A9,R as M0}from"./chunk-m21hvv91.js";import{S as h6,T as SK,V as g6,W as w8,Y as M8}from"./chunk-4wnmk2tj.js";import"./chunk-n9rpnke9.js";import{re as b7}from"./chunk-gfhmzpy7.js";import{ue as C$,ve as s4}from"./chunk-hnnwbfqk.js";import{Ae as N,Be as _6,Ce as O8,Ee as P9,Fe as F7,Ge as H7,He as i0,Ie as b0,Je as V,Ke as y0,Me as p4,Oe as u9,Pe as AX,we as e,xe as LX,ye as T6,ze as w}from"./chunk-c7kd2qrp.js";import{Se as Z5}from"./chunk-vdmq9d9x.js";import"./chunk-dvbb3dd1.js";import{$e as r6,Ue as f7,Ve as y7,We as S$,Xe as tY,Ye as eY,Ze as j8,_e as n6,af as D7,bf as k7,df as Z9}from"./chunk-vrnj0659.js";import"./chunk-a9tw6d68.js";import"./chunk-k4q8j7pg.js";import"./chunk-spx7nn8t.js";import"./chunk-vfxjbdz4.js";import"./chunk-qxebn3jw.js";import{nf as i5,of as o5}from"./chunk-n7s6my89.js";import"./chunk-yy8p9zph.js";import"./chunk-mnnyjmgw.js";import"./chunk-fzh0v6r0.js";import"./chunk-t6440ajd.js";import"./chunk-f0m4532p.js";import"./chunk-pe8mzxwn.js";import"./chunk-hp2jzn9x.js";import"./chunk-nk62q95g.js";import"./chunk-nmzx5nmt.js";import"./chunk-e8kxa5vj.js";import{Jk as q}from"./chunk-q1cxrg0x.js";import{tl as j}from"./chunk-tjg2e8v3.js";import"./chunk-nsw5168d.js";import{Cl as AQ,xl as $9}from"./chunk-hve2a279.js";import{Dl as B,Fl as B7,Hl as YW,Il as f0}from"./chunk-y8qhrx11.js";class K7{renderers=new Map;register($,Z){this.renderers.set($,Z)}get($){return this.renderers.get($)}has($){return this.renderers.has($)}list(){return Array.from(this.renderers.keys())}unregister($){this.renderers.delete($)}clear(){this.renderers.clear()}}var S4;var eZ=YW(()=>{S4=new K7});var P7=B7((O3,M$)=>{var k=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=0.5,this.Match_Distance=1000,this.Patch_DeleteThreshold=0.5,this.Patch_Margin=4,this.Match_MaxBits=32},A1=-1,C1=1,s=0;k.Diff=function($,Z){return[$,Z]};k.prototype.diff_main=function($,Z,X,Y){if(typeof Y>"u")if(this.Diff_Timeout<=0)Y=Number.MAX_VALUE;else Y=new Date().getTime()+this.Diff_Timeout*1000;var J=Y;if($==null||Z==null)throw Error("Null input. (diff_main)");if($==Z){if($)return[new k.Diff(s,$)];return[]}if(typeof X>"u")X=!0;var W=X,K=this.diff_commonPrefix($,Z),Q=$.substring(0,K);$=$.substring(K),Z=Z.substring(K),K=this.diff_commonSuffix($,Z);var z=$.substring($.length-K);$=$.substring(0,$.length-K),Z=Z.substring(0,Z.length-K);var G=this.diff_compute_($,Z,W,J);if(Q)G.unshift(new k.Diff(s,Q));if(z)G.push(new k.Diff(s,z));return this.diff_cleanupMerge(G),G};k.prototype.diff_compute_=function($,Z,X,Y){var J;if(!$)return[new k.Diff(C1,Z)];if(!Z)return[new k.Diff(A1,$)];var W=$.length>Z.length?$:Z,K=$.length>Z.length?Z:$,Q=W.indexOf(K);if(Q!=-1){if(J=[new k.Diff(C1,W.substring(0,Q)),new k.Diff(s,K),new k.Diff(C1,W.substring(Q+K.length))],$.length>Z.length)J[0][0]=J[2][0]=A1;return J}if(K.length==1)return[new k.Diff(A1,$),new k.Diff(C1,Z)];var z=this.diff_halfMatch_($,Z);if(z){var G=z[0],O=z[1],H=z[2],U=z[3],M=z[4],A=this.diff_main(G,H,X,Y),F=this.diff_main(O,U,X,Y);return A.concat([new k.Diff(s,M)],F)}if(X&&$.length>100&&Z.length>100)return this.diff_lineMode_($,Z,Y);return this.diff_bisect_($,Z,Y)};k.prototype.diff_lineMode_=function($,Z,X){var Y=this.diff_linesToChars_($,Z);$=Y.chars1,Z=Y.chars2;var J=Y.lineArray,W=this.diff_main($,Z,!1,X);this.diff_charsToLines_(W,J),this.diff_cleanupSemantic(W),W.push(new k.Diff(s,""));var K=0,Q=0,z=0,G="",O="";while(K<W.length){switch(W[K][0]){case C1:z++,O+=W[K][1];break;case A1:Q++,G+=W[K][1];break;case s:if(Q>=1&&z>=1){W.splice(K-Q-z,Q+z),K=K-Q-z;var H=this.diff_main(G,O,!1,X);for(var U=H.length-1;U>=0;U--)W.splice(K,0,H[U]);K=K+H.length}z=0,Q=0,G="",O="";break}K++}return W.pop(),W};k.prototype.diff_bisect_=function($,Z,X){var Y=$.length,J=Z.length,W=Math.ceil((Y+J)/2),K=W,Q=2*W,z=Array(Q),G=Array(Q);for(var O=0;O<Q;O++)z[O]=-1,G[O]=-1;z[K+1]=0,G[K+1]=0;var H=Y-J,U=H%2!=0,M=0,A=0,F=0,P=0;for(var S=0;S<W;S++){if(new Date().getTime()>X)break;for(var T=-S+M;T<=S-A;T+=2){var p=K+T,f;if(T==-S||T!=S&&z[p-1]<z[p+1])f=z[p+1];else f=z[p-1]+1;var a=f-T;while(f<Y&&a<J&&$.charAt(f)==Z.charAt(a))f++,a++;if(z[p]=f,f>Y)A+=2;else if(a>J)M+=2;else if(U){var b=K+H-T;if(b>=0&&b<Q&&G[b]!=-1){var _=Y-G[b];if(f>=_)return this.diff_bisectSplit_($,Z,f,a,X)}}}for(var Z1=-S+F;Z1<=S-P;Z1+=2){var b=K+Z1,_;if(Z1==-S||Z1!=S&&G[b-1]<G[b+1])_=G[b+1];else _=G[b-1]+1;var E=_-Z1;while(_<Y&&E<J&&$.charAt(Y-_-1)==Z.charAt(J-E-1))_++,E++;if(G[b]=_,_>Y)P+=2;else if(E>J)F+=2;else if(!U){var p=K+H-Z1;if(p>=0&&p<Q&&z[p]!=-1){var f=z[p],a=K+f-p;if(_=Y-_,f>=_)return this.diff_bisectSplit_($,Z,f,a,X)}}}}return[new k.Diff(A1,$),new k.Diff(C1,Z)]};k.prototype.diff_bisectSplit_=function($,Z,X,Y,J){var W=$.substring(0,X),K=Z.substring(0,Y),Q=$.substring(X),z=Z.substring(Y),G=this.diff_main(W,K,!1,J),O=this.diff_main(Q,z,!1,J);return G.concat(O)};k.prototype.diff_linesToChars_=function($,Z){var X=[],Y={};X[0]="";function J(z){var G="",O=0,H=-1,U=X.length;while(H<z.length-1){if(H=z.indexOf(`
|
|
2
2
|
`,O),H==-1)H=z.length-1;var M=z.substring(O,H+1);if(Y.hasOwnProperty?Y.hasOwnProperty(M):Y[M]!==void 0)G+=String.fromCharCode(Y[M]);else{if(U==W)M=z.substring(O),H=z.length;G+=String.fromCharCode(U),Y[M]=U,X[U++]=M}O=H+1}return G}var W=40000,K=J($);W=65535;var Q=J(Z);return{chars1:K,chars2:Q,lineArray:X}};k.prototype.diff_charsToLines_=function($,Z){for(var X=0;X<$.length;X++){var Y=$[X][1],J=[];for(var W=0;W<Y.length;W++)J[W]=Z[Y.charCodeAt(W)];$[X][1]=J.join("")}};k.prototype.diff_commonPrefix=function($,Z){if(!$||!Z||$.charAt(0)!=Z.charAt(0))return 0;var X=0,Y=Math.min($.length,Z.length),J=Y,W=0;while(X<J){if($.substring(W,J)==Z.substring(W,J))X=J,W=X;else Y=J;J=Math.floor((Y-X)/2+X)}return J};k.prototype.diff_commonSuffix=function($,Z){if(!$||!Z||$.charAt($.length-1)!=Z.charAt(Z.length-1))return 0;var X=0,Y=Math.min($.length,Z.length),J=Y,W=0;while(X<J){if($.substring($.length-J,$.length-W)==Z.substring(Z.length-J,Z.length-W))X=J,W=X;else Y=J;J=Math.floor((Y-X)/2+X)}return J};k.prototype.diff_commonOverlap_=function($,Z){var X=$.length,Y=Z.length;if(X==0||Y==0)return 0;if(X>Y)$=$.substring(X-Y);else if(X<Y)Z=Z.substring(0,X);var J=Math.min(X,Y);if($==Z)return J;var W=0,K=1;while(!0){var Q=$.substring(J-K),z=Z.indexOf(Q);if(z==-1)return W;if(K+=z,z==0||$.substring(J-K)==Z.substring(0,K))W=K,K++}};k.prototype.diff_halfMatch_=function($,Z){if(this.Diff_Timeout<=0)return null;var X=$.length>Z.length?$:Z,Y=$.length>Z.length?Z:$;if(X.length<4||Y.length*2<X.length)return null;var J=this;function W(A,F,P){var S=A.substring(P,P+Math.floor(A.length/4)),T=-1,p="",f,a,b,_;while((T=F.indexOf(S,T+1))!=-1){var Z1=J.diff_commonPrefix(A.substring(P),F.substring(T)),E=J.diff_commonSuffix(A.substring(0,P),F.substring(0,T));if(p.length<E+Z1)p=F.substring(T-E,T)+F.substring(T,T+Z1),f=A.substring(0,P-E),a=A.substring(P+Z1),b=F.substring(0,T-E),_=F.substring(T+Z1)}if(p.length*2>=A.length)return[f,a,b,_,p];else return null}var K=W(X,Y,Math.ceil(X.length/4)),Q=W(X,Y,Math.ceil(X.length/2)),z;if(!K&&!Q)return null;else if(!Q)z=K;else if(!K)z=Q;else z=K[4].length>Q[4].length?K:Q;var G,O,H,U;if($.length>Z.length)G=z[0],O=z[1],H=z[2],U=z[3];else H=z[0],U=z[1],G=z[2],O=z[3];var M=z[4];return[G,O,H,U,M]};k.prototype.diff_cleanupSemantic=function($){var Z=!1,X=[],Y=0,J=null,W=0,K=0,Q=0,z=0,G=0;while(W<$.length){if($[W][0]==s)X[Y++]=W,K=z,Q=G,z=0,G=0,J=$[W][1];else{if($[W][0]==C1)z+=$[W][1].length;else G+=$[W][1].length;if(J&&J.length<=Math.max(K,Q)&&J.length<=Math.max(z,G))$.splice(X[Y-1],0,new k.Diff(A1,J)),$[X[Y-1]+1][0]=C1,Y--,Y--,W=Y>0?X[Y-1]:-1,K=0,Q=0,z=0,G=0,J=null,Z=!0}W++}if(Z)this.diff_cleanupMerge($);this.diff_cleanupSemanticLossless($),W=1;while(W<$.length){if($[W-1][0]==A1&&$[W][0]==C1){var O=$[W-1][1],H=$[W][1],U=this.diff_commonOverlap_(O,H),M=this.diff_commonOverlap_(H,O);if(U>=M){if(U>=O.length/2||U>=H.length/2)$.splice(W,0,new k.Diff(s,H.substring(0,U))),$[W-1][1]=O.substring(0,O.length-U),$[W+1][1]=H.substring(U),W++}else if(M>=O.length/2||M>=H.length/2)$.splice(W,0,new k.Diff(s,O.substring(0,M))),$[W-1][0]=C1,$[W-1][1]=H.substring(0,H.length-M),$[W+1][0]=A1,$[W+1][1]=O.substring(M),W++;W++}W++}};k.prototype.diff_cleanupSemanticLossless=function($){function Z(M,A){if(!M||!A)return 6;var F=M.charAt(M.length-1),P=A.charAt(0),S=F.match(k.nonAlphaNumericRegex_),T=P.match(k.nonAlphaNumericRegex_),p=S&&F.match(k.whitespaceRegex_),f=T&&P.match(k.whitespaceRegex_),a=p&&F.match(k.linebreakRegex_),b=f&&P.match(k.linebreakRegex_),_=a&&M.match(k.blanklineEndRegex_),Z1=b&&A.match(k.blanklineStartRegex_);if(_||Z1)return 5;else if(a||b)return 4;else if(S&&!p&&f)return 3;else if(p||f)return 2;else if(S||T)return 1;return 0}var X=1;while(X<$.length-1){if($[X-1][0]==s&&$[X+1][0]==s){var Y=$[X-1][1],J=$[X][1],W=$[X+1][1],K=this.diff_commonSuffix(Y,J);if(K){var Q=J.substring(J.length-K);Y=Y.substring(0,Y.length-K),J=Q+J.substring(0,J.length-K),W=Q+W}var z=Y,G=J,O=W,H=Z(Y,J)+Z(J,W);while(J.charAt(0)===W.charAt(0)){Y+=J.charAt(0),J=J.substring(1)+W.charAt(0),W=W.substring(1);var U=Z(Y,J)+Z(J,W);if(U>=H)H=U,z=Y,G=J,O=W}if($[X-1][1]!=z){if(z)$[X-1][1]=z;else $.splice(X-1,1),X--;if($[X][1]=G,O)$[X+1][1]=O;else $.splice(X+1,1),X--}}X++}};k.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;k.whitespaceRegex_=/\s/;k.linebreakRegex_=/[\r\n]/;k.blanklineEndRegex_=/\n\r?\n$/;k.blanklineStartRegex_=/^\r?\n\r?\n/;k.prototype.diff_cleanupEfficiency=function($){var Z=!1,X=[],Y=0,J=null,W=0,K=!1,Q=!1,z=!1,G=!1;while(W<$.length){if($[W][0]==s){if($[W][1].length<this.Diff_EditCost&&(z||G))X[Y++]=W,K=z,Q=G,J=$[W][1];else Y=0,J=null;z=G=!1}else{if($[W][0]==A1)G=!0;else z=!0;if(J&&(K&&Q&&z&&G||J.length<this.Diff_EditCost/2&&K+Q+z+G==3)){if($.splice(X[Y-1],0,new k.Diff(A1,J)),$[X[Y-1]+1][0]=C1,Y--,J=null,K&&Q)z=G=!0,Y=0;else Y--,W=Y>0?X[Y-1]:-1,z=G=!1;Z=!0}}W++}if(Z)this.diff_cleanupMerge($)};k.prototype.diff_cleanupMerge=function($){$.push(new k.Diff(s,""));var Z=0,X=0,Y=0,J="",W="",K;while(Z<$.length)switch($[Z][0]){case C1:Y++,W+=$[Z][1],Z++;break;case A1:X++,J+=$[Z][1],Z++;break;case s:if(X+Y>1){if(X!==0&&Y!==0){if(K=this.diff_commonPrefix(W,J),K!==0){if(Z-X-Y>0&&$[Z-X-Y-1][0]==s)$[Z-X-Y-1][1]+=W.substring(0,K);else $.splice(0,0,new k.Diff(s,W.substring(0,K))),Z++;W=W.substring(K),J=J.substring(K)}if(K=this.diff_commonSuffix(W,J),K!==0)$[Z][1]=W.substring(W.length-K)+$[Z][1],W=W.substring(0,W.length-K),J=J.substring(0,J.length-K)}if(Z-=X+Y,$.splice(Z,X+Y),J.length)$.splice(Z,0,new k.Diff(A1,J)),Z++;if(W.length)$.splice(Z,0,new k.Diff(C1,W)),Z++;Z++}else if(Z!==0&&$[Z-1][0]==s)$[Z-1][1]+=$[Z][1],$.splice(Z,1);else Z++;Y=0,X=0,J="",W="";break}if($[$.length-1][1]==="")$.pop();var Q=!1;Z=1;while(Z<$.length-1){if($[Z-1][0]==s&&$[Z+1][0]==s){if($[Z][1].substring($[Z][1].length-$[Z-1][1].length)==$[Z-1][1])$[Z][1]=$[Z-1][1]+$[Z][1].substring(0,$[Z][1].length-$[Z-1][1].length),$[Z+1][1]=$[Z-1][1]+$[Z+1][1],$.splice(Z-1,1),Q=!0;else if($[Z][1].substring(0,$[Z+1][1].length)==$[Z+1][1])$[Z-1][1]+=$[Z+1][1],$[Z][1]=$[Z][1].substring($[Z+1][1].length)+$[Z+1][1],$.splice(Z+1,1),Q=!0}Z++}if(Q)this.diff_cleanupMerge($)};k.prototype.diff_xIndex=function($,Z){var X=0,Y=0,J=0,W=0,K;for(K=0;K<$.length;K++){if($[K][0]!==C1)X+=$[K][1].length;if($[K][0]!==A1)Y+=$[K][1].length;if(X>Z)break;J=X,W=Y}if($.length!=K&&$[K][0]===A1)return W;return W+(Z-J)};k.prototype.diff_prettyHtml=function($){var Z=[],X=/&/g,Y=/</g,J=/>/g,W=/\n/g;for(var K=0;K<$.length;K++){var Q=$[K][0],z=$[K][1],G=z.replace(X,"&").replace(Y,"<").replace(J,">").replace(W,"¶<br>");switch(Q){case C1:Z[K]='<ins style="background:#e6ffe6;">'+G+"</ins>";break;case A1:Z[K]='<del style="background:#ffe6e6;">'+G+"</del>";break;case s:Z[K]="<span>"+G+"</span>";break}}return Z.join("")};k.prototype.diff_text1=function($){var Z=[];for(var X=0;X<$.length;X++)if($[X][0]!==C1)Z[X]=$[X][1];return Z.join("")};k.prototype.diff_text2=function($){var Z=[];for(var X=0;X<$.length;X++)if($[X][0]!==A1)Z[X]=$[X][1];return Z.join("")};k.prototype.diff_levenshtein=function($){var Z=0,X=0,Y=0;for(var J=0;J<$.length;J++){var W=$[J][0],K=$[J][1];switch(W){case C1:X+=K.length;break;case A1:Y+=K.length;break;case s:Z+=Math.max(X,Y),X=0,Y=0;break}}return Z+=Math.max(X,Y),Z};k.prototype.diff_toDelta=function($){var Z=[];for(var X=0;X<$.length;X++)switch($[X][0]){case C1:Z[X]="+"+encodeURI($[X][1]);break;case A1:Z[X]="-"+$[X][1].length;break;case s:Z[X]="="+$[X][1].length;break}return Z.join("\t").replace(/%20/g," ")};k.prototype.diff_fromDelta=function($,Z){var X=[],Y=0,J=0,W=Z.split(/\t/g);for(var K=0;K<W.length;K++){var Q=W[K].substring(1);switch(W[K].charAt(0)){case"+":try{X[Y++]=new k.Diff(C1,decodeURI(Q))}catch(O){throw Error("Illegal escape in diff_fromDelta: "+Q)}break;case"-":case"=":var z=parseInt(Q,10);if(isNaN(z)||z<0)throw Error("Invalid number in diff_fromDelta: "+Q);var G=$.substring(J,J+=z);if(W[K].charAt(0)=="=")X[Y++]=new k.Diff(s,G);else X[Y++]=new k.Diff(A1,G);break;default:if(W[K])throw Error("Invalid diff operation in diff_fromDelta: "+W[K])}}if(J!=$.length)throw Error("Delta length ("+J+") does not equal source text length ("+$.length+").");return X};k.prototype.match_main=function($,Z,X){if($==null||Z==null||X==null)throw Error("Null input. (match_main)");if(X=Math.max(0,Math.min(X,$.length)),$==Z)return 0;else if(!$.length)return-1;else if($.substring(X,X+Z.length)==Z)return X;else return this.match_bitap_($,Z,X)};k.prototype.match_bitap_=function($,Z,X){if(Z.length>this.Match_MaxBits)throw Error("Pattern too long for this browser.");var Y=this.match_alphabet_(Z),J=this;function W(f,a){var b=f/Z.length,_=Math.abs(X-a);if(!J.Match_Distance)return _?1:b;return b+_/J.Match_Distance}var K=this.Match_Threshold,Q=$.indexOf(Z,X);if(Q!=-1){if(K=Math.min(W(0,Q),K),Q=$.lastIndexOf(Z,X+Z.length),Q!=-1)K=Math.min(W(0,Q),K)}var z=1<<Z.length-1;Q=-1;var G,O,H=Z.length+$.length,U;for(var M=0;M<Z.length;M++){G=0,O=H;while(G<O){if(W(M,X+O)<=K)G=O;else H=O;O=Math.floor((H-G)/2+G)}H=O;var A=Math.max(1,X-O+1),F=Math.min(X+O,$.length)+Z.length,P=Array(F+2);P[F+1]=(1<<M)-1;for(var S=F;S>=A;S--){var T=Y[$.charAt(S-1)];if(M===0)P[S]=(P[S+1]<<1|1)&T;else P[S]=(P[S+1]<<1|1)&T|((U[S+1]|U[S])<<1|1)|U[S+1];if(P[S]&z){var p=W(M,S-1);if(p<=K)if(K=p,Q=S-1,Q>X)A=Math.max(1,2*X-Q);else break}}if(W(M+1,X)>K)break;U=P}return Q};k.prototype.match_alphabet_=function($){var Z={};for(var X=0;X<$.length;X++)Z[$.charAt(X)]=0;for(var X=0;X<$.length;X++)Z[$.charAt(X)]|=1<<$.length-X-1;return Z};k.prototype.patch_addContext_=function($,Z){if(Z.length==0)return;if($.start2===null)throw Error("patch not initialized");var X=Z.substring($.start2,$.start2+$.length1),Y=0;while(Z.indexOf(X)!=Z.lastIndexOf(X)&&X.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin)Y+=this.Patch_Margin,X=Z.substring($.start2-Y,$.start2+$.length1+Y);Y+=this.Patch_Margin;var J=Z.substring($.start2-Y,$.start2);if(J)$.diffs.unshift(new k.Diff(s,J));var W=Z.substring($.start2+$.length1,$.start2+$.length1+Y);if(W)$.diffs.push(new k.Diff(s,W));$.start1-=J.length,$.start2-=J.length,$.length1+=J.length+W.length,$.length2+=J.length+W.length};k.prototype.patch_make=function($,Z,X){var Y,J;if(typeof $=="string"&&typeof Z=="string"&&typeof X>"u"){if(Y=$,J=this.diff_main(Y,Z,!0),J.length>2)this.diff_cleanupSemantic(J),this.diff_cleanupEfficiency(J)}else if($&&typeof $=="object"&&typeof Z>"u"&&typeof X>"u")J=$,Y=this.diff_text1(J);else if(typeof $=="string"&&Z&&typeof Z=="object"&&typeof X>"u")Y=$,J=Z;else if(typeof $=="string"&&typeof Z=="string"&&X&&typeof X=="object")Y=$,J=X;else throw Error("Unknown call format to patch_make.");if(J.length===0)return[];var W=[],K=new k.patch_obj,Q=0,z=0,G=0,O=Y,H=Y;for(var U=0;U<J.length;U++){var M=J[U][0],A=J[U][1];if(!Q&&M!==s)K.start1=z,K.start2=G;switch(M){case C1:K.diffs[Q++]=J[U],K.length2+=A.length,H=H.substring(0,G)+A+H.substring(G);break;case A1:K.length1+=A.length,K.diffs[Q++]=J[U],H=H.substring(0,G)+H.substring(G+A.length);break;case s:if(A.length<=2*this.Patch_Margin&&Q&&J.length!=U+1)K.diffs[Q++]=J[U],K.length1+=A.length,K.length2+=A.length;else if(A.length>=2*this.Patch_Margin){if(Q)this.patch_addContext_(K,O),W.push(K),K=new k.patch_obj,Q=0,O=H,z=G}break}if(M!==C1)z+=A.length;if(M!==A1)G+=A.length}if(Q)this.patch_addContext_(K,O),W.push(K);return W};k.prototype.patch_deepCopy=function($){var Z=[];for(var X=0;X<$.length;X++){var Y=$[X],J=new k.patch_obj;J.diffs=[];for(var W=0;W<Y.diffs.length;W++)J.diffs[W]=new k.Diff(Y.diffs[W][0],Y.diffs[W][1]);J.start1=Y.start1,J.start2=Y.start2,J.length1=Y.length1,J.length2=Y.length2,Z[X]=J}return Z};k.prototype.patch_apply=function($,Z){if($.length==0)return[Z,[]];$=this.patch_deepCopy($);var X=this.patch_addPadding($);Z=X+Z+X,this.patch_splitMax($);var Y=0,J=[];for(var W=0;W<$.length;W++){var K=$[W].start2+Y,Q=this.diff_text1($[W].diffs),z,G=-1;if(Q.length>this.Match_MaxBits){if(z=this.match_main(Z,Q.substring(0,this.Match_MaxBits),K),z!=-1){if(G=this.match_main(Z,Q.substring(Q.length-this.Match_MaxBits),K+Q.length-this.Match_MaxBits),G==-1||z>=G)z=-1}}else z=this.match_main(Z,Q,K);if(z==-1)J[W]=!1,Y-=$[W].length2-$[W].length1;else{J[W]=!0,Y=z-K;var O;if(G==-1)O=Z.substring(z,z+Q.length);else O=Z.substring(z,G+this.Match_MaxBits);if(Q==O)Z=Z.substring(0,z)+this.diff_text2($[W].diffs)+Z.substring(z+Q.length);else{var H=this.diff_main(Q,O,!1);if(Q.length>this.Match_MaxBits&&this.diff_levenshtein(H)/Q.length>this.Patch_DeleteThreshold)J[W]=!1;else{this.diff_cleanupSemanticLossless(H);var U=0,M;for(var A=0;A<$[W].diffs.length;A++){var F=$[W].diffs[A];if(F[0]!==s)M=this.diff_xIndex(H,U);if(F[0]===C1)Z=Z.substring(0,z+M)+F[1]+Z.substring(z+M);else if(F[0]===A1)Z=Z.substring(0,z+M)+Z.substring(z+this.diff_xIndex(H,U+F[1].length));if(F[0]!==A1)U+=F[1].length}}}}}return Z=Z.substring(X.length,Z.length-X.length),[Z,J]};k.prototype.patch_addPadding=function($){var Z=this.Patch_Margin,X="";for(var Y=1;Y<=Z;Y++)X+=String.fromCharCode(Y);for(var Y=0;Y<$.length;Y++)$[Y].start1+=Z,$[Y].start2+=Z;var J=$[0],W=J.diffs;if(W.length==0||W[0][0]!=s)W.unshift(new k.Diff(s,X)),J.start1-=Z,J.start2-=Z,J.length1+=Z,J.length2+=Z;else if(Z>W[0][1].length){var K=Z-W[0][1].length;W[0][1]=X.substring(W[0][1].length)+W[0][1],J.start1-=K,J.start2-=K,J.length1+=K,J.length2+=K}if(J=$[$.length-1],W=J.diffs,W.length==0||W[W.length-1][0]!=s)W.push(new k.Diff(s,X)),J.length1+=Z,J.length2+=Z;else if(Z>W[W.length-1][1].length){var K=Z-W[W.length-1][1].length;W[W.length-1][1]+=X.substring(0,K),J.length1+=K,J.length2+=K}return X};k.prototype.patch_splitMax=function($){var Z=this.Match_MaxBits;for(var X=0;X<$.length;X++){if($[X].length1<=Z)continue;var Y=$[X];$.splice(X--,1);var{start1:J,start2:W}=Y,K="";while(Y.diffs.length!==0){var Q=new k.patch_obj,z=!0;if(Q.start1=J-K.length,Q.start2=W-K.length,K!=="")Q.length1=Q.length2=K.length,Q.diffs.push(new k.Diff(s,K));while(Y.diffs.length!==0&&Q.length1<Z-this.Patch_Margin){var G=Y.diffs[0][0],O=Y.diffs[0][1];if(G===C1)Q.length2+=O.length,W+=O.length,Q.diffs.push(Y.diffs.shift()),z=!1;else if(G===A1&&Q.diffs.length==1&&Q.diffs[0][0]==s&&O.length>2*Z)Q.length1+=O.length,J+=O.length,z=!1,Q.diffs.push(new k.Diff(G,O)),Y.diffs.shift();else{if(O=O.substring(0,Z-Q.length1-this.Patch_Margin),Q.length1+=O.length,J+=O.length,G===s)Q.length2+=O.length,W+=O.length;else z=!1;if(Q.diffs.push(new k.Diff(G,O)),O==Y.diffs[0][1])Y.diffs.shift();else Y.diffs[0][1]=Y.diffs[0][1].substring(O.length)}}K=this.diff_text2(Q.diffs),K=K.substring(K.length-this.Patch_Margin);var H=this.diff_text1(Y.diffs).substring(0,this.Patch_Margin);if(H!=="")if(Q.length1+=H.length,Q.length2+=H.length,Q.diffs.length!==0&&Q.diffs[Q.diffs.length-1][0]===s)Q.diffs[Q.diffs.length-1][1]+=H;else Q.diffs.push(new k.Diff(s,H));if(!z)$.splice(++X,0,Q)}}};k.prototype.patch_toText=function($){var Z=[];for(var X=0;X<$.length;X++)Z[X]=$[X];return Z.join("")};k.prototype.patch_fromText=function($){var Z=[];if(!$)return Z;var X=$.split(`
|
|
3
3
|
`),Y=0,J=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;while(Y<X.length){var W=X[Y].match(J);if(!W)throw Error("Invalid patch string: "+X[Y]);var K=new k.patch_obj;if(Z.push(K),K.start1=parseInt(W[1],10),W[2]==="")K.start1--,K.length1=1;else if(W[2]=="0")K.length1=0;else K.start1--,K.length1=parseInt(W[2],10);if(K.start2=parseInt(W[3],10),W[4]==="")K.start2--,K.length2=1;else if(W[4]=="0")K.length2=0;else K.start2--,K.length2=parseInt(W[4],10);Y++;while(Y<X.length){var Q=X[Y].charAt(0);try{var z=decodeURI(X[Y].substring(1))}catch(G){throw Error("Illegal escape in patch_fromText: "+z)}if(Q=="-")K.diffs.push(new k.Diff(A1,z));else if(Q=="+")K.diffs.push(new k.Diff(C1,z));else if(Q==" ")K.diffs.push(new k.Diff(s,z));else if(Q=="@")break;else if(Q==="");else throw Error('Invalid patch mode "'+Q+'" in: '+z);Y++}}return Z};k.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0};k.patch_obj.prototype.toString=function(){var $,Z;if(this.length1===0)$=this.start1+",0";else if(this.length1==1)$=this.start1+1;else $=this.start1+1+","+this.length1;if(this.length2===0)Z=this.start2+",0";else if(this.length2==1)Z=this.start2+1;else Z=this.start2+1+","+this.length2;var X=["@@ -"+$+" +"+Z+` @@
|
|
4
4
|
`],Y;for(var J=0;J<this.diffs.length;J++){switch(this.diffs[J][0]){case C1:Y="+";break;case A1:Y="-";break;case s:Y=" ";break}X[J+1]=Y+encodeURI(this.diffs[J][1])+`
|
|
@@ -158,7 +158,7 @@ ${W.join(`
|
|
|
158
158
|
`:""]},void 0,!0,void 0,this)),X.length>G&&d.jsxDEV(N,{children:[`
|
|
159
159
|
`,d.jsxDEV(N,{children:K},void 0,!1,void 0,this),d.jsxDEV(N,{dimColor:!0,children:["... (",X.length-G," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}let Q=Object.keys(X);if(Q.length===0)return d.jsxDEV(N,{color:"gray"},void 0,!1,void 0,this);let z=5;return d.jsxDEV(d.Fragment,{children:[Q.slice(0,z).map((G,O)=>d.jsxDEV(N,{children:[d.jsxDEV(N,{children:K},void 0,!1,void 0,this),d.jsxDEV(N,{color:"blue",children:G},void 0,!1,void 0,this)," ",d.jsxDEV(N,{color:"gray",children:": "},void 0,!1,void 0,this)," ",Z(X[G],Y+1,J+1),O<Math.min(Q.length,z)-1?`
|
|
160
160
|
`:""]},void 0,!0,void 0,this)),Q.length>z&&d.jsxDEV(N,{children:[`
|
|
161
|
-
`,d.jsxDEV(N,{children:K},void 0,!1,void 0,this),d.jsxDEV(N,{dimColor:!0,children:["... (",Q.length-z," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return d.jsxDEV(N,{children:Z($)},void 0,!1,void 0,this)},hK=({message:$,messageNumber:Z})=>{let{getToolUIRender:X,client:Y}=d1(),J=new W6($,Y),W=J.getInputRepaired(),K=W?.title?`: ${W.title}`:W?.description?`: ${W.description}`:"",Q=$.name?X($.name):null,z=EK($.name||"");return z=$.status==="error"?"red":"yellow",CX.default.useEffect(()=>{if($.status==="error"&&$.name)import("./chunk-t0f66x64.js").then(({logToolError:G,logTerminalError:O,logAgentError:H})=>{let U=V6($.content),M=typeof U==="string"?U:JSON.stringify(U);if($.name==="terminal"){let A=W?.command||"unknown";O(A,M)}else if($.name?.startsWith("Agent:"))H($.name,M);else G($.name,M)}).catch((G)=>{console.warn("Failed to log error:",G)})},[$.status,$.name,$.content,W?.command]),d.jsxDEV(w1,{children:d.jsxDEV(w,{flexDirection:"column",children:[d.jsxDEV(w,{children:[d.jsxDEV(N,{color:z,children:[Z," ",$.name,d.jsxDEV(N,{color:"gray",children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(N,{children:[" ",vK($?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q?d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(w,{flexDirection:"column",children:Q($)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):d.jsxDEV(w,{flexDirection:"column",paddingTop:0,children:[d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(fK,{content:J.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(w,{paddingTop:0,paddingBottom:0,children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(N,{dimColor:!0,italic:!0,children:_K(V6($.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.sub_messages?.length?d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(N,{color:z,dimColor:!0,children:["(hidden ",$.sub_messages.length," subagent messages)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},BX=hK;var V4=B(V(),1),PX=H8.memo(function({renderMessages:Z,startIndex:X,staticKey:Y,loading:J}){let[W,K]=H8.useState(!1);M0(()=>K(!0),W?null:0);let Q=(H,U,M,A)=>V4.jsxDEV(w,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:H.type==="human"?V4.jsxDEV(Z8,{content:H.content,messageNumber:U+1+X},void 0,!1,void 0,this):H.type==="tool"?V4.jsxDEV(BX,{message:H,messageNumber:U+1+X},void 0,!1,void 0,this):V4.jsxDEV(G8,{message:H,messageNumber:U+1+X,loading:J},void 0,!1,void 0,this)},H.id?`${A}-${H.id}`:`${A}-msg-${U}`,!1,void 0,this),z=Z.findIndex((H)=>{if(H.type==="tool"&&!H.done&&!["success","error"].includes(H.status))return!0;return!1});if(z===-1)z=Z.length-1;let G=Z.slice(0,z),O=Z.slice(z);if(!W)return V4.jsxDEV(w,{flexDirection:"column",children:Z.map((H,U)=>Q(H,U,U===z,"init"))},void 0,!1,void 0,this);return V4.jsxDEV(w,{flexDirection:"column",children:[V4.jsxDEV(O8,{items:G,children:(H,U)=>Q(H,U,!1,"hist")},Y,!1,void 0,this),O.map((H,U)=>Q(H,G.length+U,!0,"curr"))]},void 0,!0,void 0,this)});var k4=B(e(),1);var F$=B(e(),1);var N8=B(V(),1),gK=({staticKey:$,children:Z,delay:X=1})=>{let[Y,J]=F$.useState(!0),W=F$.useRef(!0);return F$.useEffect(()=>{J(!1),W.current=!0},[$]),M0(()=>{if(W.current)process.stdout.write(LX),J(!0),W.current=!1},Y?null:X),N8.jsxDEV(N8.Fragment,{children:Y?Z():null},void 0,!1,void 0,this)},RX=gK;var b1=B(V(),1),mK=k4.memo(function({toolGroup:Z,groupId:X,getToolUIRender:Y,depth:J=0,loading:W}){if(J>1)return null;return b1.jsxDEV(w,{flexDirection:"column",children:Z.map((K,Q)=>{let z=K.name?Y(K.name):null;if(!z)return null;let G=K.sub_messages||[],O=G.length;return b1.jsxDEV(k4.Fragment,{children:[b1.jsxDEV(()=>{return b1.jsxDEV(w1,{fallback:K.name+" is error",children:z(K)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),G.length?b1.jsxDEV(b1.Fragment,{children:O>0&&b1.jsxDEV(w,{paddingLeft:2,children:b1.jsxDEV(N,{dimColor:!0,children:["... ",O," more submessage",O>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},`${X}-${Q}-${K.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),SX=k4.memo(function({message:Z,displayIndex:X,isCurrent:Y,startIndex:J=0,getToolUIRender:W,depth:K=0,loading:Q}){return b1.jsxDEV(w,{flexDirection:"column",paddingBottom:1,children:[Z.type==="human"?b1.jsxDEV(Z8,{content:Z.content,messageNumber:X+1+J},void 0,!1,void 0,this):null,Z.type==="ai"?b1.jsxDEV(G8,{message:Z,messageNumber:X+1+J,loading:Q},void 0,!1,void 0,this):null,Z.type==="group"&&b1.jsxDEV(b1.Fragment,{children:b1.jsxDEV(mK,{toolGroup:Z.toolGroup,groupId:Z.id,getToolUIRender:W,depth:K,loading:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),VX=($)=>{if($.type!=="ai")return!0;try{let Z=O$($);return!!(Z&&Z.trim().length>0)}catch{return!1}},kX=k4.memo(function({renderMessages:Z,startIndex:X,staticKey:Y,depth:J=0,getToolUIRender:W,loading:K}){let Q=k4.useMemo(()=>{let H=0;return Z.filter((U)=>{if(U.type==="ai")return VX(U);return!0}).reduce((U,M)=>{if(M.type==="tool"){let A=U[U.length-1];if(A&&A.type==="group"&&A.toolGroup.length<5)A.toolGroup.push(M);else U.push({id:`tool-group-${H++}`,type:"group",toolGroup:[M]})}else U.push(M);return U},[])},[Z,VX]),z=Q.length-1;if(z===-1)z=Q.length-1;if(!K)z=Q.length;let G=Q.slice(0,z),O=Q.slice(z);return b1.jsxDEV(w,{flexDirection:"column",children:[b1.jsxDEV(RX,{staticKey:`${Y} ${G.length}`,children:()=>b1.jsxDEV(O8,{items:G,children:(H,U)=>b1.jsxDEV(SX,{message:H,displayIndex:U,isCurrent:!1,startIndex:X,getToolUIRender:W,depth:J,loading:K},H.id?`hist-${H.id}`:`hist-msg-${J}-${U}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),O.map((H,U)=>b1.jsxDEV(SX,{message:H,displayIndex:G.length+U,isCurrent:!0,startIndex:X,getToolUIRender:W,depth:J,loading:K},H.id?`curr-${H.id}`:`curr-msg-${J}-${G.length}-${U}`,!1,void 0,this))]},void 0,!0,void 0,this)});var TX={name:"zen-code",version:"4.10.0",description:"",main:"./dist/cli.js",bin:"./dist/cli.js",files:["dist"],scripts:{dev:"bun run --smol src/cli.ts",build:"bun run bun.build.ts",prepublishOnly:"bun run build",test:"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage"},keywords:[],author:"KonghaYao",license:"Apache-2.0",dependencies:{},devDependencies:{"@anthropic-ai/sdk":"^0.71.2","@codegraph/agent":"workspace:^","@codegraph/config":"workspace:^","@codegraph/union-client":"workspace:^","@google/generative-ai":"^0.24.1","@inkjs/ui":"^2.0.0","@langchain/anthropic":"^1.3.22","@langchain/core":"^1.1.31","@langchain/google-genai":"^2.1.18","@langchain/langgraph":"^1.2.1","@langchain/mcp-adapters":"^1.1.1","@langchain/openai":"^1.2.12","@langgraph-js/agent-middlewares":"workspace:^","@langgraph-js/pure-graph":"^3.3.0","@langgraph-js/sdk":"^4.6.4","@langgraph-js/standard-agent":"workspace:^","@nanostores/react":"^1.0.0","@tanstack/react-query":"^5.90.21","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/diff-match-patch":"^1.0.36","@types/fs-extra":"^11.0.4","@types/node-notifier":"^8.0.5","@types/react":"^19.2.14","@vitejs/plugin-react":"^5.1.2","ansi-escapes":"^7.3.0",chalk:"^5.6.2","diff-match-patch":"^1.0.5",execa:"^9.6.1","extract-zip":"^2.0.1","fs-extra":"^11.3.3",fuzzysort:"^3.1.0","happy-dom":"^20.3.9",ink:"^6.8.0","ink-markdown-es":"^1.4.0","ink-pro":"workspace:^","ink-spinner":"^5.0.0","ink-syntax-highlight":"^2.0.2",kysely:"^0.28.11","kysely-bun-worker":"^1.2.1","kysely-wasm":"^1.2.1",langchain:"^1.2.30",lowdb:"^7.0.1",marked:"^17.0.3",micromatch:"^4.0.8","node-notifier":"^10.0.1","node-sqlite3-wasm":"^0.8.53",openai:"^6.16.0","path-exists":"^5.0.0",pidusage:"^4","proper-lockfile":"^4.1.2",react:"^19.2.3","react-devtools-core":"^7.0.1","string-width":"^8.1.0",tempy:"^3.1.0","usehooks-ts":"^3.1.1",vite:"^7.3.1","vite-bundle-analyzer":"^1.3.2","vite-plugin-static-copy":"^3.1.4",vitest:"^4.0.18","xdg-basedir":"^5.1.0",yaml:"^2.8.2",zod:"^4.3.5"},babel:{presets:["@babel/preset-react"]}};var H1=B(V(),1),uK=[[[" ▓▓ ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓ ","yellow"]],[[" ▓▓ ","yellow"],[">","cyan"],[" ","yellow"],["<","cyan"],[" ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓▓▓ ","yellow"]],[["▓▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓▓","cyan"]],[[" ▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓ ","cyan"]],[[" ▀▀▀▀▀▀▀▀ ","gray"]]],bX=[["/model","模型"],["/mcp","MCP"],["/agent","Agent"],["/new","新对话"],["/plan","规划"],["/settings","设置"],["/help","帮助"]],U8=({label:$,value:Z,valueColor:X="white"})=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"blue",dimColor:!0,children:$.padEnd(10)},void 0,!1,void 0,this),H1.jsxDEV(N,{color:X,children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),cK=()=>{let{AVAILABLE_MODELS:$,config:Z,extraParams:X}=p1(),Y=Z?.provider_id||process.env.MODEL_PROVIDER||"openai",W=!!Z?.providers?.find((A)=>A.id===Y)?.apiKey,K=$.length>0,Q=W&&K,z=X?.model_id||Z?.model_id||"—",G=X?.switch_command||"default",O=process.cwd(),H=4,U=bX.slice(0,4),M=bX.slice(4);return H1.jsxDEV(w,{flexDirection:"column",paddingX:1,marginBottom:1,children:[H1.jsxDEV(w,{justifyContent:"space-between",marginBottom:1,children:[H1.jsxDEV(w,{gap:2,children:[H1.jsxDEV(N,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:["v",TX.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(N,{color:Q?"green":"red",bold:!0,children:Q?"● ONLINE":"● OFFLINE"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(w,{flexDirection:"row",gap:3,children:[H1.jsxDEV(w,{flexDirection:"column",alignItems:"center",children:uK.map((A,F)=>H1.jsxDEV(w,{children:A.map(([P,S],T)=>H1.jsxDEV(N,{color:S,children:P},T,!1,void 0,this))},F,!1,void 0,this))},void 0,!1,void 0,this),H1.jsxDEV(w,{flexDirection:"column",justifyContent:"center",gap:0,children:[H1.jsxDEV(U8,{label:"Provider",value:Y,valueColor:"cyan"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"Model",value:z,valueColor:"yellow"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"Agent",value:G,valueColor:"magenta"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"CWD",value:O.length>40?"…"+O.slice(-39):O,valueColor:"gray"},void 0,!1,void 0,this),!Q&&H1.jsxDEV(w,{marginTop:1,children:H1.jsxDEV(N,{color:"yellow",children:!W?"⚠ 运行 /model 配置 API Key":"⚠ 运行 /model 检查模型列表"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(w,{flexDirection:"column",gap:0,borderTop:!0,borderStyle:"single",borderBottom:!0,borderLeft:!1,borderRight:!1,children:[H1.jsxDEV(w,{gap:4,children:U.map(([A,F])=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"cyan",children:A},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:F},void 0,!1,void 0,this)]},A,!0,void 0,this))},void 0,!1,void 0,this),H1.jsxDEV(w,{gap:4,children:M.map(([A,F])=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"cyan",children:A},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:F},void 0,!1,void 0,this)]},A,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},IX=cK;var B8=B(e(),1);var BZ=B(e(),1);class DX{commands=new Map;aliases=new Map;register($){if(this.commands.set($.name,$),$.aliases)$.aliases.forEach((Z)=>{this.aliases.set(Z,$.name)})}getCommand($){let Z=this.aliases.get($)||$;return this.commands.get(Z)}getAllCommands(){return Array.from(this.commands.values())}isCommand($){return $.trim().startsWith("/")}parseCommand($){if(!this.isCommand($))return null;let X=$.trim().slice(1).split(/\s+/),Y=X[0],J=X.slice(1);return{command:Y,args:J}}async executeCommand($,Z){let X=this.parseCommand($);if(!X)return{success:!1,message:"无效的命令格式"};let{command:Y,args:J}=X,W=this.getCommand(Y);if(!W)return{success:!1,message:`未知命令: /${Y}`};if(W.requiresArgs&&J.length===0)return{success:!1,message:`命令 /${Y} 需要参数。用法: ${W.usage||`/${Y} <args>`}`};if(W.validateArgs&&!W.validateArgs(J))return{success:!1,message:`命令 /${Y} 参数无效。用法: ${W.usage||`/${Y} <args>`}`};try{return await W.execute(J,Z)}catch(K){return{success:!1,message:`命令执行失败: ${K instanceof Error?K.message:String(K)}`}}}getSuggestions($){if(!$.startsWith("/"))return[];let Z=$.slice(1).toLowerCase(),X=[];if(Z===""){let Q=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let z of Q){let G=this.commands.get(z);if(G)X.push({command:z,displayText:`/${z}`,description:G.description})}return X.slice(0,10)}let Y=new Set(["history","knowledge","help","init","model","config"]),J=[],W=[];for(let[Q,z]of this.commands){let G=Q.toLowerCase();if(G.startsWith(Z))J.push({command:Q,displayText:`/${Q}`,description:z.description});else if(G.includes(Z))W.push({command:Q,displayText:`/${Q}`,description:z.description});if(z.aliases)for(let O of z.aliases){let H=O.toLowerCase();if(H.startsWith(Z))J.push({command:Q,displayText:`/${O}`,description:`${z.description} (别名)`});else if(H.includes(Z))W.push({command:Q,displayText:`/${O}`,description:`${z.description} (别名)`})}}let K=(Q,z)=>{let G=Y.has(Q.command)?1:0,O=Y.has(z.command)?1:0;if(G!==O)return O-G;return Q.displayText.length-z.displayText.length};return J.sort(K),W.sort(K),X.push(...J,...W),X.slice(0,10)}getHelp($){if($){let X=this.getCommand($);if(!X)return`未找到命令: /${$}`;let Y=`命令: /${X.name}
|
|
161
|
+
`,d.jsxDEV(N,{children:K},void 0,!1,void 0,this),d.jsxDEV(N,{dimColor:!0,children:["... (",Q.length-z," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return d.jsxDEV(N,{children:Z($)},void 0,!1,void 0,this)},hK=({message:$,messageNumber:Z})=>{let{getToolUIRender:X,client:Y}=d1(),J=new W6($,Y),W=J.getInputRepaired(),K=W?.title?`: ${W.title}`:W?.description?`: ${W.description}`:"",Q=$.name?X($.name):null,z=EK($.name||"");return z=$.status==="error"?"red":"yellow",CX.default.useEffect(()=>{if($.status==="error"&&$.name)import("./chunk-5c3bpcpm.js").then(({logToolError:G,logTerminalError:O,logAgentError:H})=>{let U=V6($.content),M=typeof U==="string"?U:JSON.stringify(U);if($.name==="terminal"){let A=W?.command||"unknown";O(A,M)}else if($.name?.startsWith("Agent:"))H($.name,M);else G($.name,M)}).catch((G)=>{console.warn("Failed to log error:",G)})},[$.status,$.name,$.content,W?.command]),d.jsxDEV(w1,{children:d.jsxDEV(w,{flexDirection:"column",children:[d.jsxDEV(w,{children:[d.jsxDEV(N,{color:z,children:[Z," ",$.name,d.jsxDEV(N,{color:"gray",children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(N,{children:[" ",vK($?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q?d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(w,{flexDirection:"column",children:Q($)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):d.jsxDEV(w,{flexDirection:"column",paddingTop:0,children:[d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(fK,{content:J.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(w,{paddingTop:0,paddingBottom:0,children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(N,{dimColor:!0,italic:!0,children:_K(V6($.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.sub_messages?.length?d.jsxDEV(w,{children:[d.jsxDEV(N,{color:"gray",children:"└─ "},void 0,!1,void 0,this),d.jsxDEV(N,{color:z,dimColor:!0,children:["(hidden ",$.sub_messages.length," subagent messages)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},BX=hK;var V4=B(V(),1),PX=H8.memo(function({renderMessages:Z,startIndex:X,staticKey:Y,loading:J}){let[W,K]=H8.useState(!1);M0(()=>K(!0),W?null:0);let Q=(H,U,M,A)=>V4.jsxDEV(w,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:H.type==="human"?V4.jsxDEV(Z8,{content:H.content,messageNumber:U+1+X},void 0,!1,void 0,this):H.type==="tool"?V4.jsxDEV(BX,{message:H,messageNumber:U+1+X},void 0,!1,void 0,this):V4.jsxDEV(G8,{message:H,messageNumber:U+1+X,loading:J},void 0,!1,void 0,this)},H.id?`${A}-${H.id}`:`${A}-msg-${U}`,!1,void 0,this),z=Z.findIndex((H)=>{if(H.type==="tool"&&!H.done&&!["success","error"].includes(H.status))return!0;return!1});if(z===-1)z=Z.length-1;let G=Z.slice(0,z),O=Z.slice(z);if(!W)return V4.jsxDEV(w,{flexDirection:"column",children:Z.map((H,U)=>Q(H,U,U===z,"init"))},void 0,!1,void 0,this);return V4.jsxDEV(w,{flexDirection:"column",children:[V4.jsxDEV(O8,{items:G,children:(H,U)=>Q(H,U,!1,"hist")},Y,!1,void 0,this),O.map((H,U)=>Q(H,G.length+U,!0,"curr"))]},void 0,!0,void 0,this)});var k4=B(e(),1);var F$=B(e(),1);var N8=B(V(),1),gK=({staticKey:$,children:Z,delay:X=1})=>{let[Y,J]=F$.useState(!0),W=F$.useRef(!0);return F$.useEffect(()=>{J(!1),W.current=!0},[$]),M0(()=>{if(W.current)process.stdout.write(LX),J(!0),W.current=!1},Y?null:X),N8.jsxDEV(N8.Fragment,{children:Y?Z():null},void 0,!1,void 0,this)},RX=gK;var b1=B(V(),1),mK=k4.memo(function({toolGroup:Z,groupId:X,getToolUIRender:Y,depth:J=0,loading:W}){if(J>1)return null;return b1.jsxDEV(w,{flexDirection:"column",children:Z.map((K,Q)=>{let z=K.name?Y(K.name):null;if(!z)return null;let G=K.sub_messages||[],O=G.length;return b1.jsxDEV(k4.Fragment,{children:[b1.jsxDEV(()=>{return b1.jsxDEV(w1,{fallback:K.name+" is error",children:z(K)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),G.length?b1.jsxDEV(b1.Fragment,{children:O>0&&b1.jsxDEV(w,{paddingLeft:2,children:b1.jsxDEV(N,{dimColor:!0,children:["... ",O," more submessage",O>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},`${X}-${Q}-${K.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),SX=k4.memo(function({message:Z,displayIndex:X,isCurrent:Y,startIndex:J=0,getToolUIRender:W,depth:K=0,loading:Q}){return b1.jsxDEV(w,{flexDirection:"column",paddingBottom:1,children:[Z.type==="human"?b1.jsxDEV(Z8,{content:Z.content,messageNumber:X+1+J},void 0,!1,void 0,this):null,Z.type==="ai"?b1.jsxDEV(G8,{message:Z,messageNumber:X+1+J,loading:Q},void 0,!1,void 0,this):null,Z.type==="group"&&b1.jsxDEV(b1.Fragment,{children:b1.jsxDEV(mK,{toolGroup:Z.toolGroup,groupId:Z.id,getToolUIRender:W,depth:K,loading:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),VX=($)=>{if($.type!=="ai")return!0;try{let Z=O$($);return!!(Z&&Z.trim().length>0)}catch{return!1}},kX=k4.memo(function({renderMessages:Z,startIndex:X,staticKey:Y,depth:J=0,getToolUIRender:W,loading:K}){let Q=k4.useMemo(()=>{let H=0;return Z.filter((U)=>{if(U.type==="ai")return VX(U);return!0}).reduce((U,M)=>{if(M.type==="tool"){let A=U[U.length-1];if(A&&A.type==="group"&&A.toolGroup.length<5)A.toolGroup.push(M);else U.push({id:`tool-group-${H++}`,type:"group",toolGroup:[M]})}else U.push(M);return U},[])},[Z,VX]),z=Q.length-1;if(z===-1)z=Q.length-1;if(!K)z=Q.length;let G=Q.slice(0,z),O=Q.slice(z);return b1.jsxDEV(w,{flexDirection:"column",children:[b1.jsxDEV(RX,{staticKey:`${Y} ${G.length}`,children:()=>b1.jsxDEV(O8,{items:G,children:(H,U)=>b1.jsxDEV(SX,{message:H,displayIndex:U,isCurrent:!1,startIndex:X,getToolUIRender:W,depth:J,loading:K},H.id?`hist-${H.id}`:`hist-msg-${J}-${U}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),O.map((H,U)=>b1.jsxDEV(SX,{message:H,displayIndex:G.length+U,isCurrent:!0,startIndex:X,getToolUIRender:W,depth:J,loading:K},H.id?`curr-${H.id}`:`curr-msg-${J}-${G.length}-${U}`,!1,void 0,this))]},void 0,!0,void 0,this)});var TX={name:"zen-code",version:"4.10.2",description:"",main:"./dist/cli.js",bin:"./dist/cli.js",files:["dist"],scripts:{dev:"bun run --smol src/cli.ts",build:"bun run bun.build.ts",prepublishOnly:"bun run build",test:"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage"},keywords:[],author:"KonghaYao",license:"Apache-2.0",dependencies:{},devDependencies:{"@anthropic-ai/sdk":"^0.71.2","@codegraph/agent":"workspace:^","@codegraph/config":"workspace:^","@codegraph/union-client":"workspace:^","@google/generative-ai":"^0.24.1","@inkjs/ui":"^2.0.0","@langchain/anthropic":"^1.3.22","@langchain/core":"^1.1.31","@langchain/google-genai":"^2.1.18","@langchain/langgraph":"^1.2.1","@langchain/mcp-adapters":"^1.1.1","@langchain/openai":"^1.2.12","@langgraph-js/agent-middlewares":"workspace:^","@langgraph-js/pure-graph":"^3.3.0","@langgraph-js/sdk":"^4.6.4","@langgraph-js/standard-agent":"workspace:^","@nanostores/react":"^1.0.0","@tanstack/react-query":"^5.90.21","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/diff-match-patch":"^1.0.36","@types/fs-extra":"^11.0.4","@types/node-notifier":"^8.0.5","@types/react":"^19.2.14","@vitejs/plugin-react":"^5.1.2","ansi-escapes":"^7.3.0",chalk:"^5.6.2","diff-match-patch":"^1.0.5",execa:"^9.6.1","extract-zip":"^2.0.1","fs-extra":"^11.3.3",fuzzysort:"^3.1.0","happy-dom":"^20.3.9",ink:"^6.8.0","ink-markdown-es":"^1.4.0","ink-pro":"workspace:^","ink-spinner":"^5.0.0","ink-syntax-highlight":"^2.0.2",kysely:"^0.28.11","kysely-bun-worker":"^1.2.1","kysely-wasm":"^1.2.1",langchain:"^1.2.30",lowdb:"^7.0.1",marked:"^17.0.3",micromatch:"^4.0.8","node-notifier":"^10.0.1","node-sqlite3-wasm":"^0.8.53",openai:"^6.16.0","path-exists":"^5.0.0",pidusage:"^4","proper-lockfile":"^4.1.2",react:"^19.2.3","react-devtools-core":"^7.0.1","string-width":"^8.1.0",tempy:"^3.1.0","usehooks-ts":"^3.1.1",vite:"^7.3.1","vite-bundle-analyzer":"^1.3.2","vite-plugin-static-copy":"^3.1.4",vitest:"^4.0.18","xdg-basedir":"^5.1.0",yaml:"^2.8.2",zod:"^4.3.5"},babel:{presets:["@babel/preset-react"]}};var H1=B(V(),1),uK=[[[" ▓▓ ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓ ","yellow"]],[[" ▓▓ ","yellow"],[">","cyan"],[" ","yellow"],["<","cyan"],[" ▓▓ ","yellow"]],[[" ▓▓▓▓▓▓▓▓▓▓ ","yellow"]],[["▓▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓▓","cyan"]],[[" ▓▓▓▓","cyan"],["▓▓","yellow"],["▓▓▓▓ ","cyan"]],[[" ▀▀▀▀▀▀▀▀ ","gray"]]],bX=[["/model","模型"],["/mcp","MCP"],["/agent","Agent"],["/new","新对话"],["/plan","规划"],["/settings","设置"],["/help","帮助"]],U8=({label:$,value:Z,valueColor:X="white"})=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"blue",dimColor:!0,children:$.padEnd(10)},void 0,!1,void 0,this),H1.jsxDEV(N,{color:X,children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),cK=()=>{let{AVAILABLE_MODELS:$,config:Z,extraParams:X}=p1(),Y=Z?.provider_id||process.env.MODEL_PROVIDER||"openai",W=!!Z?.providers?.find((A)=>A.id===Y)?.apiKey,K=$.length>0,Q=W&&K,z=X?.model_id||Z?.model_id||"—",G=X?.switch_command||"default",O=process.cwd(),H=4,U=bX.slice(0,4),M=bX.slice(4);return H1.jsxDEV(w,{flexDirection:"column",paddingX:1,marginBottom:1,children:[H1.jsxDEV(w,{justifyContent:"space-between",marginBottom:1,children:[H1.jsxDEV(w,{gap:2,children:[H1.jsxDEV(N,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:["v",TX.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(N,{color:Q?"green":"red",bold:!0,children:Q?"● ONLINE":"● OFFLINE"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(w,{flexDirection:"row",gap:3,children:[H1.jsxDEV(w,{flexDirection:"column",alignItems:"center",children:uK.map((A,F)=>H1.jsxDEV(w,{children:A.map(([P,S],T)=>H1.jsxDEV(N,{color:S,children:P},T,!1,void 0,this))},F,!1,void 0,this))},void 0,!1,void 0,this),H1.jsxDEV(w,{flexDirection:"column",justifyContent:"center",gap:0,children:[H1.jsxDEV(U8,{label:"Provider",value:Y,valueColor:"cyan"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"Model",value:z,valueColor:"yellow"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"Agent",value:G,valueColor:"magenta"},void 0,!1,void 0,this),H1.jsxDEV(U8,{label:"CWD",value:O.length>40?"…"+O.slice(-39):O,valueColor:"gray"},void 0,!1,void 0,this),!Q&&H1.jsxDEV(w,{marginTop:1,children:H1.jsxDEV(N,{color:"yellow",children:!W?"⚠ 运行 /model 配置 API Key":"⚠ 运行 /model 检查模型列表"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H1.jsxDEV(w,{flexDirection:"column",gap:0,borderTop:!0,borderStyle:"single",borderBottom:!0,borderLeft:!1,borderRight:!1,children:[H1.jsxDEV(w,{gap:4,children:U.map(([A,F])=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"cyan",children:A},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:F},void 0,!1,void 0,this)]},A,!0,void 0,this))},void 0,!1,void 0,this),H1.jsxDEV(w,{gap:4,children:M.map(([A,F])=>H1.jsxDEV(w,{gap:1,children:[H1.jsxDEV(N,{color:"cyan",children:A},void 0,!1,void 0,this),H1.jsxDEV(N,{dimColor:!0,children:F},void 0,!1,void 0,this)]},A,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},IX=cK;var B8=B(e(),1);var BZ=B(e(),1);class DX{commands=new Map;aliases=new Map;register($){if(this.commands.set($.name,$),$.aliases)$.aliases.forEach((Z)=>{this.aliases.set(Z,$.name)})}getCommand($){let Z=this.aliases.get($)||$;return this.commands.get(Z)}getAllCommands(){return Array.from(this.commands.values())}isCommand($){return $.trim().startsWith("/")}parseCommand($){if(!this.isCommand($))return null;let X=$.trim().slice(1).split(/\s+/),Y=X[0],J=X.slice(1);return{command:Y,args:J}}async executeCommand($,Z){let X=this.parseCommand($);if(!X)return{success:!1,message:"无效的命令格式"};let{command:Y,args:J}=X,W=this.getCommand(Y);if(!W)return{success:!1,message:`未知命令: /${Y}`};if(W.requiresArgs&&J.length===0)return{success:!1,message:`命令 /${Y} 需要参数。用法: ${W.usage||`/${Y} <args>`}`};if(W.validateArgs&&!W.validateArgs(J))return{success:!1,message:`命令 /${Y} 参数无效。用法: ${W.usage||`/${Y} <args>`}`};try{return await W.execute(J,Z)}catch(K){return{success:!1,message:`命令执行失败: ${K instanceof Error?K.message:String(K)}`}}}getSuggestions($){if(!$.startsWith("/"))return[];let Z=$.slice(1).toLowerCase(),X=[];if(Z===""){let Q=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let z of Q){let G=this.commands.get(z);if(G)X.push({command:z,displayText:`/${z}`,description:G.description})}return X.slice(0,10)}let Y=new Set(["history","knowledge","help","init","model","config"]),J=[],W=[];for(let[Q,z]of this.commands){let G=Q.toLowerCase();if(G.startsWith(Z))J.push({command:Q,displayText:`/${Q}`,description:z.description});else if(G.includes(Z))W.push({command:Q,displayText:`/${Q}`,description:z.description});if(z.aliases)for(let O of z.aliases){let H=O.toLowerCase();if(H.startsWith(Z))J.push({command:Q,displayText:`/${O}`,description:`${z.description} (别名)`});else if(H.includes(Z))W.push({command:Q,displayText:`/${O}`,description:`${z.description} (别名)`})}}let K=(Q,z)=>{let G=Y.has(Q.command)?1:0,O=Y.has(z.command)?1:0;if(G!==O)return O-G;return Q.displayText.length-z.displayText.length};return J.sort(K),W.sort(K),X.push(...J,...W),X.slice(0,10)}getHelp($){if($){let X=this.getCommand($);if(!X)return`未找到命令: /${$}`;let Y=`命令: /${X.name}
|
|
162
162
|
`;if(Y+=`描述: ${X.description}
|
|
163
163
|
`,X.usage)Y+=`用法: ${X.usage}
|
|
164
164
|
`;if(X.aliases&&X.aliases.length>0)Y+=`别名: ${X.aliases.map((J)=>`/${J}`).join(", ")}
|
|
@@ -338,6 +338,6 @@ Provide a detailed report of:
|
|
|
338
338
|
`||X==="\t"}function O9($,Z){let X=Z+1;while(X<$.length&&!/[\s\n\t]/.test($[X]))X++;return $.slice(Z+1,X)}function LQ($,Z,X){let Y=Z.toLowerCase(),J=$.filter((W)=>{let K=W.name.toLowerCase(),Q=W.id.toLowerCase();return K.startsWith(Y)||Q.includes(Y)});return J.sort((W,K)=>W.name.localeCompare(K.name)),J.slice(0,X)}function H9({agents:$,maxSuggestions:Z=5}){let[X,Y]=e4.useState({visible:!1,query:"",filteredAgents:[],triggerPosition:-1}),J=e4.useCallback((G,O)=>{let H=G.lastIndexOf("@");if(H===-1){Y((A)=>({...A,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}if(!G9(G,H)){Y((A)=>({...A,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}let U=O9(G,H),M=LQ($,U,Z);if(M.length===1&&M[0].name.toLowerCase()===U.toLowerCase()){Y((A)=>({...A,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}Y((A)=>({...A,visible:!0,query:U,filteredAgents:M,triggerPosition:H}))},[$.length,Z]),W=e4.useCallback(()=>{if(!X.visible||X.filteredAgents.length===0)return null;return X.filteredAgents[0]??null},[X.visible,X.filteredAgents]),K=e4.useCallback((G)=>{let O=W();if(!O)return G;let H=G.lastIndexOf("@");if(H===-1||!G9(G,H))return G;let U=O9(G,H),M=G.slice(0,H),A=G.slice(H+1+U.length);return`${M}@${O.name} ${A.trimStart()}`},[W]),Q=e4.useCallback(()=>{Y((G)=>({...G,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}))},[]),z=X.visible&&X.filteredAgents.length>0;return{state:X,checkTrigger:J,getFirstAgent:W,complete:K,hide:Q,isActive:z}}var N9=B(e(),1);var B0=B(V(),1);function RQ({name:$,result:Z}){if(!Z)return B0.jsxDEV(N,{color:"cyan",children:$},void 0,!1,void 0,this);let X=Z.highlight((Y)=>B0.jsxDEV(N,{color:"green",bold:!0,children:Y},void 0,!1,void 0,this));if(Array.isArray(X))return B0.jsxDEV(N,{color:"cyan",children:X.map((Y,J)=>{if(typeof Y==="string")return B0.jsxDEV(N,{children:Y},`p-${J}`,!1,void 0,this);return B0.jsxDEV(N9.default.Fragment,{children:Y},`m-${J}`,!1,void 0,this)})},void 0,!1,void 0,this);return B0.jsxDEV(N,{color:"cyan",children:$},void 0,!1,void 0,this)}var U9=({visible:$,skills:Z,query:X,maxVisible:Y=5})=>{if(!$||Z.length===0)return null;let J=Z.slice(0,Y);return B0.jsxDEV(w,{marginBottom:1,flexDirection:"column",children:[B0.jsxDEV(N,{color:"yellow",bold:!0,children:"技能建议 (按 → 补全):"},void 0,!1,void 0,this),J.map(({skill:W,result:K},Q)=>B0.jsxDEV(w,{children:[B0.jsxDEV(N,{color:Q===0?"yellow":void 0,children:Q===0?"▶ #":" #"},void 0,!1,void 0,this),B0.jsxDEV(RQ,{name:W.name,result:K},void 0,!1,void 0,this)]},W.name,!0,void 0,this)),Z.length>Y&&B0.jsxDEV(N,{color:"gray",children:["...还有 ",Z.length-Y," 个技能"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var X0=B(V(),1);function SQ({name:$,query:Z}){if(!Z)return X0.jsxDEV(N,{color:"magenta",children:$},void 0,!1,void 0,this);let X=$.toLowerCase(),Y=Z.toLowerCase();if(X.startsWith(Y))return X0.jsxDEV(X0.Fragment,{children:[X0.jsxDEV(N,{color:"green",bold:!0,children:$.slice(0,Z.length)},void 0,!1,void 0,this),X0.jsxDEV(N,{color:"magenta",children:$.slice(Z.length)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return X0.jsxDEV(N,{color:"magenta",children:$},void 0,!1,void 0,this)}var w9=({visible:$,agents:Z,query:X,maxVisible:Y=5})=>{if(!$||Z.length===0)return null;let J=Z.slice(0,Y);return X0.jsxDEV(w,{marginBottom:1,flexDirection:"column",children:[X0.jsxDEV(N,{color:"yellow",bold:!0,children:"Agent 建议 (按 → 补全):"},void 0,!1,void 0,this),J.map((W,K)=>X0.jsxDEV(w,{children:[X0.jsxDEV(N,{color:K===0?"yellow":void 0,children:K===0?"▶ @":" @"},void 0,!1,void 0,this),X0.jsxDEV(SQ,{name:W.name,query:X},void 0,!1,void 0,this),X0.jsxDEV(N,{dimColor:!0,children:[" - ",W.description]},void 0,!0,void 0,this)]},W.id,!0,void 0,this)),Z.length>Y&&X0.jsxDEV(N,{color:"gray",children:["...还有 ",Z.length-Y," 个 Agent"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};function VQ($){if($.length===0)return[];let Z=[];if($.startsWith("/")){let X=$.indexOf(" ");if(X===-1)return Z.push({type:"command",value:$}),Z;let Y=$.slice(0,X),J=$.slice(X);return Z.push({type:"command",value:Y}),Z.push(...M9(J,"args")),Z}return Z.push(...M9($,"text")),Z}function M9($,Z){let X=[],Y=/(^|(?<=\s))(#[\w-]+)/g,J=0,W;while((W=Y.exec($))!==null){let K=W[2],Q=W.index+W[1].length;if(Q>J)X.push({type:Z,value:$.slice(J,Q)});X.push({type:"skill",value:K}),J=Q+K.length}if(J<$.length)X.push({type:Z,value:$.slice(J)});return X}function kQ($){return $.map(({type:Z,value:X})=>{switch(Z){case"command":return T6.cyan.bold(X);case"args":return X;case"skill":return T6.green.bold(X);case"text":return X}}).join("")}function q9($){if($.length===0)return $;let Z=VQ($);return kQ(Z)}var F9=B(e(),1);function C9(){let{extraParams:$}=p1(),{sendMessage:Z,loading:X}=d1(),{bufferedMessage:Y,clearBuffer:J}=F8(),W=A9();F9.useEffect(()=>{if(!X&&Y.trim()){let K=[{type:"human",content:Y}];J(),Z(K,{extraParams:$}).then(()=>{C$("Zen Code 完成任务")}).catch((Q)=>{console.error("Failed to send buffered message:",Q)})}},[X,Y,Z,$,J,W])}var U4=B(V(),1),B9=({value:$,onChange:Z,onSubmit:X,loading:Y,placeholder:J="输入消息...",commandHandler:W,skills:K=[],agents:Q=[]})=>{C9();let{bufferedMessage:z,setBufferedMessage:G,clearBuffer:O}=F8(),[H,U]=x1.useState($),M=x1.useRef(!1),A=z9({skills:K,maxSuggestions:5}),F=H9({agents:Q,maxSuggestions:5});x1.useEffect(()=>{if($!==H)M.current=!0,U($)},[$]);let P=x1.useMemo(()=>H.startsWith("/"),[H]),S=x1.useMemo(()=>H.startsWith("/")&&!H.includes(" "),[H]);x1.useEffect(()=>{if(!S)A.checkTrigger(H),F.checkTrigger(H)},[H,S]);let T=x1.useCallback((E)=>{if(M.current){M.current=!1;return}U(E),Z(E)},[Z]),p=x1.useCallback((E)=>{if(!E.trim())return;if(A.hide(),F.hide(),P){X(E),U("");return}if(Y)G(E),U("");else X(E),U("")},[P,Y,X,G,A,F]),f=x1.useCallback(()=>{if(F.isActive){F.hide();return}if(A.isActive){A.hide();return}if(z)O();else U("")},[z,O,A.isActive,F.isActive]),a=x1.useCallback(()=>{if(!P||!W.commandSuggestions||W.commandSuggestions.length===0)return!1;let n=W.commandSuggestions[0],a1=(n.displayText||n.command||"")+" ";return T(a1),!0},[P,W.commandSuggestions,T]),b=x1.useCallback(()=>{if(!A.isActive)return!1;let E=A.complete(H);return T(E),A.hide(),!0},[A.isActive,A.complete,A.hide,H,T]),_=x1.useCallback(()=>{if(!F.isActive)return!1;let E=F.complete(H);return T(E),F.hide(),!0},[F.isActive,F.complete,F.hide,H,T]),Z1=x1.useMemo(()=>{if(Y)return z?"按 Esc 清空缓冲区":"AI 响应中,Enter 将消息加入缓冲区";if(P)return"输入命令... (试试 /help,按 → 补全第一个建议)";if(F.isActive)return"按 → 补全 Agent";if(A.isActive)return"按 → 补全技能";return J},[Y,z,P,F.isActive,A.isActive,J]);return U4.jsxDEV(w,{flexDirection:"column",children:[z&&U4.jsxDEV(w,{padding:1,children:U4.jsxDEV(N,{color:"yellow",children:["\uD83D\uDCDD 缓冲区: ",z.slice(0,50),z.length>50?"...":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U4.jsxDEV(W.CommandHintUI,{},void 0,!1,void 0,this),U4.jsxDEV(w9,{visible:F.state.visible,agents:F.state.filteredAgents,query:F.state.query},void 0,!1,void 0,this),U4.jsxDEV(U9,{visible:A.state.visible,skills:A.state.filteredSkills,query:A.state.query},void 0,!1,void 0,this),U4.jsxDEV(w,{paddingY:1,children:U4.jsxDEV(y0,{id:"global-input",value:H,onChange:T,onSubmit:p,colorizeContent:q9,onHotKey:(E,n)=>{if(n.escape)return f(),!1;if(n.rightArrow){if(F.isActive){if(_())return!1}if(A.isActive){if(b())return!1}if(a())return!1}return!0},placeholder:Z1},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var C8=B(e(),1);var r1=B(V(),1);var TQ=($)=>{switch($){case"running":return{icon:"⏳",color:"yellow"};case"completed":return{icon:"✓",color:"green"};case"failed":return{icon:"✗",color:"red"}}},bQ=($,Z=10)=>{if(!$)return"";let X=$.split(`
|
|
339
339
|
`);if(X.length<=Z)return $;return[...X.slice(0,Z),"... (more)"].join(`
|
|
340
340
|
`)},b6=C8.memo(({commandResult:$,onClose:Z,onStop:X})=>{let{exit:Y}=P9();if(C8.useEffect(()=>{let F=(P)=>{if(P.key==="escape")Z()};return process.stdin.on("keypress",F),()=>{process.stdin.off("keypress",F)}},[Z]),!$)return null;let{command:J,output:W,status:K,pid:Q}=$,{icon:z,color:G}=TQ(K),O=bQ(W,10),H=r1.jsxDEV(w,{justifyContent:"space-between",children:[r1.jsxDEV(w,{children:r1.jsxDEV(N,{bold:!0,color:"cyan",children:["\uD83D\uDCDF $ ",J]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r1.jsxDEV(w,{children:[K==="running"&&X&&r1.jsxDEV(N,{bold:!0,color:"red",children:[" ","[⏹ 停止]"]},void 0,!0,void 0,this),r1.jsxDEV(N,{bold:!0,color:"gray",children:[" ","[×]"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U=r1.jsxDEV(w,{flexDirection:"column",marginTop:0,children:O.split(`
|
|
341
|
-
`).map((F,P)=>r1.jsxDEV(w,{children:r1.jsxDEV(N,{color:"gray",children:F},void 0,!1,void 0,this)},P,!1,void 0,this))},void 0,!1,void 0,this),M=r1.jsxDEV(w,{justifyContent:"space-between",marginTop:0,children:[r1.jsxDEV(N,{color:G,children:[z," ",K==="running"?"Running...":K.charAt(0).toUpperCase()+K.slice(1)]},void 0,!0,void 0,this),Q&&r1.jsxDEV(N,{color:"gray",children:["PID: ",Q]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);return r1.jsxDEV(w,{flexDirection:"column",paddingX:1,paddingY:0,borderStyle:"single",borderColor:"gray",width:"100%",children:[H,r1.jsxDEV(w,{children:r1.jsxDEV(N,{color:"gray",children:"────────────────────────────────────────────────────────"},void 0,!1,void 0,this)},void 0,!1,void 0,this),O&&U,M]},void 0,!0,void 0,this)});b6.displayName="ShellOutputPreview";var B$=B(V(),1),I6=B8.memo(()=>{let{userInput:$,setUserInput:Z,loading:X,renderMessages:Y,sendMessage:J}=d1(),{extraParams:W,manager:K}=p1(),{executeCommand:Q,activeCommand:z,clearOutput:G,isExecuting:O}=Y9(),{switchToHistory:H,switchToKnowledge:U,switchToSettings:M,switchToModelProvider:A,switchToAgent:F,switchToMcp:P,switchToProcess:S,switchToErrors:T,closePanel:p}=G$(),{data:f=[]}=sX({manager:K}),{data:a=[]}=tX(),{startRalphLoop:b}=eX({loading:X,renderMessages:Y,sendMessage:J,setUserInput:Z,extraParams:W}),_=aX({extraParams:W,switchToHistory:H,switchToKnowledge:U,switchToSettings:M,switchToModelProvider:A,switchToAgent:F,switchToMcp:P,switchToProcess:S,switchToErrors:T,closePanel:p,startRalphLoop:b}),Z1=B8.useCallback(async(E)=>{if(!E)return;if(E.startsWith("!")){let n=E.slice(1).trim();if(n)await Q(n),Z("");return}if(E.startsWith("/")){if(await _.executeCommand(E)){Z("");return}}await J([{type:"human",content:E}],{extraParams:W,metadata:s4}),C$("Zen Code 完成任务")},[_,Z,Q,W,J]);return B$.jsxDEV(w,{flexDirection:"column",paddingX:0,paddingY:0,borderColor:"grey",borderTop:!0,borderStyle:"single",borderLeft:!1,borderBottom:!1,borderRight:!1,children:[z&&B$.jsxDEV(b6,{commandResult:z,onClose:G},void 0,!1,void 0,this),B$.jsxDEV(_.CommandErrorUI,{},void 0,!1,void 0,this),B$.jsxDEV(_.CommandSuccessUI,{},void 0,!1,void 0,this),B$.jsxDEV(B9,{value:$,onChange:Z,onSubmit:Z1,loading:X,commandHandler:{isCommandInput:_.isCommandInput,CommandHintUI:_.CommandHintUI,commandSuggestions:_.commandSuggestions},skills:f,agents:a},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});I6.displayName="ChatInput";var P0=B(V(),1),IQ=()=>{let{renderMessages:$,currentChatId:Z,getToolUIRender:X,loading:Y}=d1(),{compactMode:J}=p1(),[W]=L9($,500),K=S9.useCallback((Q)=>X(Q),[X]);return P0.jsxDEV(w,{flexDirection:"column",flexGrow:1,paddingX:0,paddingY:0,children:W.length===0?P0.jsxDEV(IX,{},void 0,!1,void 0,this):J?P0.jsxDEV(kX,{renderMessages:W,startIndex:0,staticKey:Z,getToolUIRender:K,loading:Y},Z,!1,void 0,this):P0.jsxDEV(PX,{loading:Y,renderMessages:W,startIndex:0,staticKey:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},D6=()=>{let{hasPendingInteractions:$}=S0();return P0.jsxDEV(w,{flexDirection:"column",flexGrow:1,children:[P0.jsxDEV(w1,{name:"ChatMessages",fallback:null,children:P0.jsxDEV(IQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),P0.jsxDEV(R9,{children:P0.jsxDEV(w1,{name:"InteractionArea",fallback:null,children:$?P0.jsxDEV(w,{paddingX:0,paddingY:0,children:P0.jsxDEV(U6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this):P0.jsxDEV(I6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};D6.displayName="ChatMain";var u0=B(e(),1);var w4=B(e(),1),V9=w4.lazy(()=>import("./chunk-075hks9v.js").then(($)=>({default:$.default}))),k9=w4.lazy(()=>import("./chunk-whdf0vbb.js").then(($)=>({default:$.default}))),T9=w4.lazy(()=>import("./chunk-gz7fz9fg.js").then(($)=>({default:$.default}))),b9=w4.lazy(()=>import("./chunk-4scrkcqv.js").then(($)=>({default:$.default}))),I9=w4.lazy(()=>import("./chunk-54cdhhqm.js").then(($)=>({default:$.default}))),D9=w4.lazy(()=>import("./chunk-mm9w91rj.js").then(($)=>({default:$.default}))),j9=w4.lazy(()=>import("./chunk-wd3gkd45.js").then(($)=>({default:$.default}))),y9=w4.lazy(()=>import("./chunk-bm7578sn.js").then(($)=>({default:$.default})));var t=B(V(),1),T4=()=>t.jsxDEV(w,{paddingX:1,paddingY:1,children:t.jsxDEV(N,{color:"grey",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),b4=($)=>t.jsxDEV(w,{paddingX:1,paddingY:1,children:[t.jsxDEV(N,{color:"red",children:["✗ ",$," panel error"]},void 0,!0,void 0,this),t.jsxDEV(w,{marginTop:1,children:t.jsxDEV(N,{color:"gray",children:"Try reopening or press ESC to return"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j6=u0.memo(()=>{let{activeView:$,closePanel:Z}=G$();return t.jsxDEV(w,{flexGrow:1,flexDirection:"row",children:[$==="history"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"HistoryPanel",fallback:b4("History"),children:t.jsxDEV(V9,{onClose:Z},void 0,!1,void 0,this)},"history-panel",!1,void 0,this)},"history-suspense",!1,void 0,this),$==="knowledge"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"KnowledgePanel",fallback:b4("Knowledge"),children:t.jsxDEV(k9,{onClose:Z},void 0,!1,void 0,this)},"knowledge-panel",!1,void 0,this)},"knowledge-suspense",!1,void 0,this),$==="settings"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"SettingsPanel",fallback:b4("Settings"),children:t.jsxDEV(T9,{onClose:Z},void 0,!1,void 0,this)},"settings-panel",!1,void 0,this)},"settings-suspense",!1,void 0,this),$==="model-provider"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ModelProviderPanel",fallback:b4("Model Provider"),children:t.jsxDEV(b9,{onClose:Z},void 0,!1,void 0,this)},"model-provider-panel",!1,void 0,this)},"model-provider-suspense",!1,void 0,this),$==="agent"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"AgentPanel",fallback:b4("Agent"),children:t.jsxDEV(I9,{onClose:Z},void 0,!1,void 0,this)},"agent-panel",!1,void 0,this)},"agent-suspense",!1,void 0,this),$==="mcp"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"McpPanel",fallback:b4("MCP"),children:t.jsxDEV(D9,{onClose:Z},void 0,!1,void 0,this)},"mcp-panel",!1,void 0,this)},"mcp-suspense",!1,void 0,this),$==="process"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ProcessPanel",fallback:b4("Process"),children:t.jsxDEV(j9,{onClose:Z},void 0,!1,void 0,this)},"process-panel",!1,void 0,this)},"process-suspense",!1,void 0,this),$==="errors"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ErrorPanel",fallback:b4("Errors"),children:t.jsxDEV(y9,{onClose:Z},void 0,!1,void 0,this)},"errors-panel",!1,void 0,this)},"errors-suspense",!1,void 0,this)]},void 0,!0,void 0,this)});j6.displayName="LazyChatViewManager";var I4=B(e(),1);var E9=B(e(),1);var P8=B(V(),1),v9=()=>{let{renderMessages:$}=d1(),Z=E9.default.useMemo(()=>{if(!$)return null;for(let X=$.length-1;X>=0;X--){let Y=$[X];if(Y.role==="assistant"&&Y.content)try{let W=(Array.isArray(Y.content)?Y.content:[{type:"text",text:Y.content}]).find((K)=>K.type==="text")?.text||"";if(W.includes("load_mcp_tools"))try{let K=JSON.parse(W);if(K.status&&K.status.toolCount!==void 0)return K.status}catch(K){}}catch(J){}}return null},[$]);if(!Z||Z.toolCount===0)return null;return P8.jsxDEV(w,{paddingX:1,children:[P8.jsxDEV(N,{color:"green",bold:!0,children:"MCP"},void 0,!1,void 0,this),P8.jsxDEV(N,{color:"cyan",children:[" ",Z.toolCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var c0=B(e(),1);function E6($){if($===0)return"0";if($<1024)return`${$}`;if($<1048576)return`${($/1024).toFixed(0)}K`;if($<1073741824)return`${($/1048576).toFixed(0)}M`;return`${($/1073741824).toFixed(1)}G`}function _9($){let Z=Math.floor($/1000),X=Math.floor(Z/3600),Y=Math.floor(Z%3600/60),J=Z%60;if(X>0)return`${X}:${String(Y).padStart(2,"0")}:${String(J).padStart(2,"0")}`;return`${String(Y).padStart(2,"0")}:${String(J).padStart(2,"0")}`}function f9($){let[Z,X]=c0.useState(0),Y=c0.useRef(null);return c0.useEffect(()=>{if($)Y.current=Date.now(),X(0);else Y.current=null,X(0)},[$]),y6(()=>{if(Y.current)X(Date.now()-Y.current)},$?1000:null),Z}function h9(){let[$,Z]=c0.useState({cpuPercent:0,memoryRSS:0,memoryHeapUsed:0,memoryHeapTotal:0}),X=c0.useRef(process.cpuUsage()),Y=c0.useRef(Date.now()),J=()=>{let W=Date.now(),K=process.cpuUsage(),Q=process.memoryUsage(),z=W-Y.current,G=K.user-X.current.user,O=K.system-X.current.system,U=(G+O)/1000/z*100;Z({cpuPercent:Math.min(100,Math.max(0,U)),memoryRSS:Q.rss,memoryHeapUsed:Q.heapUsed,memoryHeapTotal:Q.heapTotal}),X.current=K,Y.current=W};return c0.useEffect(()=>{J()},[]),y6(J,2000),$}function g9($){if($<50)return"green";if($<80)return"yellow";return"red"}function m9($,Z){if(Z===0)return"gray";let X=$/Z*100;if(X<50)return"green";if(X<80)return"yellow";return"red"}var M4=B(V(),1),DQ=()=>{let $=h9(),Z=g9($.cpuPercent),X=m9($.memoryHeapUsed,$.memoryHeapTotal);return M4.jsxDEV(w,{paddingX:1,width:"100%",children:M4.jsxDEV(w,{gap:2,children:[M4.jsxDEV(w,{children:[M4.jsxDEV(N,{dimColor:!0,children:"CPU:"},void 0,!1,void 0,this),M4.jsxDEV(N,{color:Z,children:[" ",$.cpuPercent.toFixed(0),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M4.jsxDEV(w,{children:[M4.jsxDEV(N,{dimColor:!0,children:"MEM:"},void 0,!1,void 0,this),M4.jsxDEV(N,{color:X,children:[E6($.memoryHeapUsed),"/",E6($.memoryRSS)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},x9=DQ;var _1=B(V(),1);import jQ from"path";var yQ=()=>{let{extraParams:$,compactMode:Z,showDetailedInfo:X}=p1(),{currentChatId:Y,renderMessages:J}=d1(),{loading:W,stopGeneration:K}=d1(),Q=process.env.YOLO_MODE==="true",[z,G]=I4.useState(0);I4.useEffect(()=>{let F=async()=>{let S=await c9.getProcessList();G(S.length)};F();let P=setInterval(F,2000);return()=>clearInterval(P)},[]);let O=I4.useCallback((F,P)=>{if(P.ctrl&&F==="c")process.exit()},[W,K]);b0(O);let H=f9(W),U=I4.default.useMemo(()=>{return jQ.basename(process.cwd())},[]),A=(J?.length||0)>100;return _1.jsxDEV(w,{flexDirection:"column",width:"100%",children:[_1.jsxDEV(w,{paddingX:1,paddingY:0,justifyContent:"space-between",width:"100%",marginBottom:1,children:[_1.jsxDEV(w,{gap:1,children:[W&&_1.jsxDEV(N,{color:"yellow",bold:!0,children:_1.jsxDEV(u9,{text:"LOADING"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!W&&_1.jsxDEV(N,{color:"magenta",bold:!0,children:"Zen Code"},void 0,!1,void 0,this),_1.jsxDEV(N,{color:"cyan",bold:!0,children:[" ",$.model_id]},void 0,!0,void 0,this),_1.jsxDEV(N,{color:"yellow",bold:!0,children:[" ","@",$.switch_command||"default"]},void 0,!0,void 0,this),!Z&&_1.jsxDEV(N,{color:"blue",bold:!0,children:[" ","[FULL]"]},void 0,!0,void 0,this),Q&&_1.jsxDEV(N,{color:"red",bold:!0,children:[" ","YOLO"]},void 0,!0,void 0,this),_1.jsxDEV(v9,{},void 0,!1,void 0,this),z>0&&_1.jsxDEV(N,{color:"magenta",bold:!0,children:[" ","● BG (",z,")"]},void 0,!0,void 0,this),A&&_1.jsxDEV(N,{color:"red",bold:!0,children:[" ","/summary"]},void 0,!0,void 0,this),_1.jsxDEV(N,{color:"green",bold:!0,children:J.length},void 0,!1,void 0,this),_1.jsxDEV(N,{color:"blue",children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&_1.jsxDEV(w,{children:_1.jsxDEV(N,{color:"yellow",children:_9(H)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&_1.jsxDEV(x9,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},p9=yQ;var F1=B(V(),1),EQ=()=>{let{activeView:$}=G$();return F1.jsxDEV(w,{flexDirection:"column",width:"100%",children:[F1.jsxDEV(w,{flexGrow:1,flexDirection:"row",children:[F1.jsxDEV(w1,{name:"ChatMain",fallback:F1.jsxDEV(N,{color:"yellow",children:"Chat view unavailable"},void 0,!1,void 0,this),children:$==="chat"?F1.jsxDEV(D6,{},void 0,!1,void 0,this):null},"chat-main-view",!1,void 0,this),F1.jsxDEV(w1,{name:"PanelView",fallback:F1.jsxDEV(N,{color:"yellow",children:"Panel unavailable"},void 0,!1,void 0,this),children:$!=="chat"?F1.jsxDEV(j6,{},void 0,!1,void 0,this):null},"panel-view",!1,void 0,this)]},void 0,!0,void 0,this),F1.jsxDEV(w1,{name:"StatusBar",fallback:null,children:F1.jsxDEV(p9,{},void 0,!1,void 0,this)},"status-bar",!1,void 0,this)]},void 0,!0,void 0,this)},vQ=()=>{return F1.jsxDEV(w1,{name:"Chat",children:F1.jsxDEV(l7,{children:F1.jsxDEV(EQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},_Q=({children:$})=>{return F1.jsxDEV(d9,{apiUrl:"http://127.0.0.1:8123",defaultAgent:"code",defaultHeaders:{},withCredentials:!1,showHistory:!1,showGraph:!1,onInitError:(Z,X)=>{console.error(Z,X),import("./chunk-t0f66x64.js").then(({logAgentError:Y})=>{Y("ChatProvider",Z)}).catch(()=>{})},fetch:X5,autoRestoreLastSession:!0,historyFilter:{metadata:{path:process.cwd()}},children:$},void 0,!1,void 0,this)},fQ=()=>{return F1.jsxDEV(w1,{name:"AppRoot",children:F1.jsxDEV(w1,{name:"TanStackQueryProvider",children:F1.jsxDEV(m6,{children:F1.jsxDEV(w1,{name:"SettingsProvider",children:F1.jsxDEV(i9,{get_allowed_models:n5,children:F1.jsxDEV(_Q,{children:F1.jsxDEV(w1,{name:"ApprovalProvider",children:F1.jsxDEV(l9,{children:F1.jsxDEV(w1,{name:"InteractionProvider",children:F1.jsxDEV(VZ,{children:F1.jsxDEV(vQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"interaction-provider",!1,void 0,this)},void 0,!1,void 0,this)},"approval-provider",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"settings-provider",!1,void 0,this)},void 0,!1,void 0,this)},"tanstack-query-provider",!1,void 0,this)},"app-root",!1,void 0,this)},hQ=()=>F1.jsxDEV(fQ,{},void 0,!1,void 0,this),v6=hQ;var p0=B(V(),1),gQ=({error:$})=>p0.jsxDEV(w,{flexDirection:"column",padding:2,borderStyle:"double",borderColor:"red",children:[p0.jsxDEV(N,{color:"red",bold:!0,children:"✗ Application Crashed"},void 0,!1,void 0,this),p0.jsxDEV(w,{marginTop:1,children:p0.jsxDEV(N,{color:"red",children:$.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),p0.jsxDEV(w,{marginTop:1,children:p0.jsxDEV(N,{color:"gray",children:["Stack: ",$.stack?.split(`
|
|
341
|
+
`).map((F,P)=>r1.jsxDEV(w,{children:r1.jsxDEV(N,{color:"gray",children:F},void 0,!1,void 0,this)},P,!1,void 0,this))},void 0,!1,void 0,this),M=r1.jsxDEV(w,{justifyContent:"space-between",marginTop:0,children:[r1.jsxDEV(N,{color:G,children:[z," ",K==="running"?"Running...":K.charAt(0).toUpperCase()+K.slice(1)]},void 0,!0,void 0,this),Q&&r1.jsxDEV(N,{color:"gray",children:["PID: ",Q]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);return r1.jsxDEV(w,{flexDirection:"column",paddingX:1,paddingY:0,borderStyle:"single",borderColor:"gray",width:"100%",children:[H,r1.jsxDEV(w,{children:r1.jsxDEV(N,{color:"gray",children:"────────────────────────────────────────────────────────"},void 0,!1,void 0,this)},void 0,!1,void 0,this),O&&U,M]},void 0,!0,void 0,this)});b6.displayName="ShellOutputPreview";var B$=B(V(),1),I6=B8.memo(()=>{let{userInput:$,setUserInput:Z,loading:X,renderMessages:Y,sendMessage:J}=d1(),{extraParams:W,manager:K}=p1(),{executeCommand:Q,activeCommand:z,clearOutput:G,isExecuting:O}=Y9(),{switchToHistory:H,switchToKnowledge:U,switchToSettings:M,switchToModelProvider:A,switchToAgent:F,switchToMcp:P,switchToProcess:S,switchToErrors:T,closePanel:p}=G$(),{data:f=[]}=sX({manager:K}),{data:a=[]}=tX(),{startRalphLoop:b}=eX({loading:X,renderMessages:Y,sendMessage:J,setUserInput:Z,extraParams:W}),_=aX({extraParams:W,switchToHistory:H,switchToKnowledge:U,switchToSettings:M,switchToModelProvider:A,switchToAgent:F,switchToMcp:P,switchToProcess:S,switchToErrors:T,closePanel:p,startRalphLoop:b}),Z1=B8.useCallback(async(E)=>{if(!E)return;if(E.startsWith("!")){let n=E.slice(1).trim();if(n)await Q(n),Z("");return}if(E.startsWith("/")){if(await _.executeCommand(E)){Z("");return}}await J([{type:"human",content:E}],{extraParams:W,metadata:s4}),C$("Zen Code 完成任务")},[_,Z,Q,W,J]);return B$.jsxDEV(w,{flexDirection:"column",paddingX:0,paddingY:0,borderColor:"grey",borderTop:!0,borderStyle:"single",borderLeft:!1,borderBottom:!1,borderRight:!1,children:[z&&B$.jsxDEV(b6,{commandResult:z,onClose:G},void 0,!1,void 0,this),B$.jsxDEV(_.CommandErrorUI,{},void 0,!1,void 0,this),B$.jsxDEV(_.CommandSuccessUI,{},void 0,!1,void 0,this),B$.jsxDEV(B9,{value:$,onChange:Z,onSubmit:Z1,loading:X,commandHandler:{isCommandInput:_.isCommandInput,CommandHintUI:_.CommandHintUI,commandSuggestions:_.commandSuggestions},skills:f,agents:a},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});I6.displayName="ChatInput";var P0=B(V(),1),IQ=()=>{let{renderMessages:$,currentChatId:Z,getToolUIRender:X,loading:Y}=d1(),{compactMode:J}=p1(),[W]=L9($,500),K=S9.useCallback((Q)=>X(Q),[X]);return P0.jsxDEV(w,{flexDirection:"column",flexGrow:1,paddingX:0,paddingY:0,children:W.length===0?P0.jsxDEV(IX,{},void 0,!1,void 0,this):J?P0.jsxDEV(kX,{renderMessages:W,startIndex:0,staticKey:Z,getToolUIRender:K,loading:Y},Z,!1,void 0,this):P0.jsxDEV(PX,{loading:Y,renderMessages:W,startIndex:0,staticKey:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},D6=()=>{let{hasPendingInteractions:$}=S0();return P0.jsxDEV(w,{flexDirection:"column",flexGrow:1,children:[P0.jsxDEV(w1,{name:"ChatMessages",fallback:null,children:P0.jsxDEV(IQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),P0.jsxDEV(R9,{children:P0.jsxDEV(w1,{name:"InteractionArea",fallback:null,children:$?P0.jsxDEV(w,{paddingX:0,paddingY:0,children:P0.jsxDEV(U6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this):P0.jsxDEV(I6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};D6.displayName="ChatMain";var u0=B(e(),1);var w4=B(e(),1),V9=w4.lazy(()=>import("./chunk-feeqtzv5.js").then(($)=>({default:$.default}))),k9=w4.lazy(()=>import("./chunk-ejfa95sm.js").then(($)=>({default:$.default}))),T9=w4.lazy(()=>import("./chunk-215an3fz.js").then(($)=>({default:$.default}))),b9=w4.lazy(()=>import("./chunk-g9911ymn.js").then(($)=>({default:$.default}))),I9=w4.lazy(()=>import("./chunk-5a5mepqj.js").then(($)=>({default:$.default}))),D9=w4.lazy(()=>import("./chunk-s1tbdcs8.js").then(($)=>({default:$.default}))),j9=w4.lazy(()=>import("./chunk-gt8c6dne.js").then(($)=>({default:$.default}))),y9=w4.lazy(()=>import("./chunk-bdqds8vh.js").then(($)=>({default:$.default})));var t=B(V(),1),T4=()=>t.jsxDEV(w,{paddingX:1,paddingY:1,children:t.jsxDEV(N,{color:"grey",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),b4=($)=>t.jsxDEV(w,{paddingX:1,paddingY:1,children:[t.jsxDEV(N,{color:"red",children:["✗ ",$," panel error"]},void 0,!0,void 0,this),t.jsxDEV(w,{marginTop:1,children:t.jsxDEV(N,{color:"gray",children:"Try reopening or press ESC to return"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j6=u0.memo(()=>{let{activeView:$,closePanel:Z}=G$();return t.jsxDEV(w,{flexGrow:1,flexDirection:"row",children:[$==="history"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"HistoryPanel",fallback:b4("History"),children:t.jsxDEV(V9,{onClose:Z},void 0,!1,void 0,this)},"history-panel",!1,void 0,this)},"history-suspense",!1,void 0,this),$==="knowledge"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"KnowledgePanel",fallback:b4("Knowledge"),children:t.jsxDEV(k9,{onClose:Z},void 0,!1,void 0,this)},"knowledge-panel",!1,void 0,this)},"knowledge-suspense",!1,void 0,this),$==="settings"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"SettingsPanel",fallback:b4("Settings"),children:t.jsxDEV(T9,{onClose:Z},void 0,!1,void 0,this)},"settings-panel",!1,void 0,this)},"settings-suspense",!1,void 0,this),$==="model-provider"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ModelProviderPanel",fallback:b4("Model Provider"),children:t.jsxDEV(b9,{onClose:Z},void 0,!1,void 0,this)},"model-provider-panel",!1,void 0,this)},"model-provider-suspense",!1,void 0,this),$==="agent"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"AgentPanel",fallback:b4("Agent"),children:t.jsxDEV(I9,{onClose:Z},void 0,!1,void 0,this)},"agent-panel",!1,void 0,this)},"agent-suspense",!1,void 0,this),$==="mcp"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"McpPanel",fallback:b4("MCP"),children:t.jsxDEV(D9,{onClose:Z},void 0,!1,void 0,this)},"mcp-panel",!1,void 0,this)},"mcp-suspense",!1,void 0,this),$==="process"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ProcessPanel",fallback:b4("Process"),children:t.jsxDEV(j9,{onClose:Z},void 0,!1,void 0,this)},"process-panel",!1,void 0,this)},"process-suspense",!1,void 0,this),$==="errors"&&t.jsxDEV(u0.Suspense,{fallback:t.jsxDEV(T4,{},void 0,!1,void 0,this),children:t.jsxDEV(w1,{name:"ErrorPanel",fallback:b4("Errors"),children:t.jsxDEV(y9,{onClose:Z},void 0,!1,void 0,this)},"errors-panel",!1,void 0,this)},"errors-suspense",!1,void 0,this)]},void 0,!0,void 0,this)});j6.displayName="LazyChatViewManager";var I4=B(e(),1);var E9=B(e(),1);var P8=B(V(),1),v9=()=>{let{renderMessages:$}=d1(),Z=E9.default.useMemo(()=>{if(!$)return null;for(let X=$.length-1;X>=0;X--){let Y=$[X];if(Y.role==="assistant"&&Y.content)try{let W=(Array.isArray(Y.content)?Y.content:[{type:"text",text:Y.content}]).find((K)=>K.type==="text")?.text||"";if(W.includes("load_mcp_tools"))try{let K=JSON.parse(W);if(K.status&&K.status.toolCount!==void 0)return K.status}catch(K){}}catch(J){}}return null},[$]);if(!Z||Z.toolCount===0)return null;return P8.jsxDEV(w,{paddingX:1,children:[P8.jsxDEV(N,{color:"green",bold:!0,children:"MCP"},void 0,!1,void 0,this),P8.jsxDEV(N,{color:"cyan",children:[" ",Z.toolCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var c0=B(e(),1);function E6($){if($===0)return"0";if($<1024)return`${$}`;if($<1048576)return`${($/1024).toFixed(0)}K`;if($<1073741824)return`${($/1048576).toFixed(0)}M`;return`${($/1073741824).toFixed(1)}G`}function _9($){let Z=Math.floor($/1000),X=Math.floor(Z/3600),Y=Math.floor(Z%3600/60),J=Z%60;if(X>0)return`${X}:${String(Y).padStart(2,"0")}:${String(J).padStart(2,"0")}`;return`${String(Y).padStart(2,"0")}:${String(J).padStart(2,"0")}`}function f9($){let[Z,X]=c0.useState(0),Y=c0.useRef(null);return c0.useEffect(()=>{if($)Y.current=Date.now(),X(0);else Y.current=null,X(0)},[$]),y6(()=>{if(Y.current)X(Date.now()-Y.current)},$?1000:null),Z}function h9(){let[$,Z]=c0.useState({cpuPercent:0,memoryRSS:0,memoryHeapUsed:0,memoryHeapTotal:0}),X=c0.useRef(process.cpuUsage()),Y=c0.useRef(Date.now()),J=()=>{let W=Date.now(),K=process.cpuUsage(),Q=process.memoryUsage(),z=W-Y.current,G=K.user-X.current.user,O=K.system-X.current.system,U=(G+O)/1000/z*100;Z({cpuPercent:Math.min(100,Math.max(0,U)),memoryRSS:Q.rss,memoryHeapUsed:Q.heapUsed,memoryHeapTotal:Q.heapTotal}),X.current=K,Y.current=W};return c0.useEffect(()=>{J()},[]),y6(J,2000),$}function g9($){if($<50)return"green";if($<80)return"yellow";return"red"}function m9($,Z){if(Z===0)return"gray";let X=$/Z*100;if(X<50)return"green";if(X<80)return"yellow";return"red"}var M4=B(V(),1),DQ=()=>{let $=h9(),Z=g9($.cpuPercent),X=m9($.memoryHeapUsed,$.memoryHeapTotal);return M4.jsxDEV(w,{paddingX:1,width:"100%",children:M4.jsxDEV(w,{gap:2,children:[M4.jsxDEV(w,{children:[M4.jsxDEV(N,{dimColor:!0,children:"CPU:"},void 0,!1,void 0,this),M4.jsxDEV(N,{color:Z,children:[" ",$.cpuPercent.toFixed(0),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M4.jsxDEV(w,{children:[M4.jsxDEV(N,{dimColor:!0,children:"MEM:"},void 0,!1,void 0,this),M4.jsxDEV(N,{color:X,children:[E6($.memoryHeapUsed),"/",E6($.memoryRSS)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},x9=DQ;var _1=B(V(),1);import jQ from"path";var yQ=()=>{let{extraParams:$,compactMode:Z,showDetailedInfo:X}=p1(),{currentChatId:Y,renderMessages:J}=d1(),{loading:W,stopGeneration:K}=d1(),Q=process.env.YOLO_MODE==="true",[z,G]=I4.useState(0);I4.useEffect(()=>{let F=async()=>{let S=await c9.getProcessList();G(S.length)};F();let P=setInterval(F,2000);return()=>clearInterval(P)},[]);let O=I4.useCallback((F,P)=>{if(P.ctrl&&F==="c")process.exit()},[W,K]);b0(O);let H=f9(W),U=I4.default.useMemo(()=>{return jQ.basename(process.cwd())},[]),A=(J?.length||0)>100;return _1.jsxDEV(w,{flexDirection:"column",width:"100%",children:[_1.jsxDEV(w,{paddingX:1,paddingY:0,justifyContent:"space-between",width:"100%",marginBottom:1,children:[_1.jsxDEV(w,{gap:1,children:[W&&_1.jsxDEV(N,{color:"yellow",bold:!0,children:_1.jsxDEV(u9,{text:"LOADING"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!W&&_1.jsxDEV(N,{color:"magenta",bold:!0,children:"Zen Code"},void 0,!1,void 0,this),_1.jsxDEV(N,{color:"cyan",bold:!0,children:[" ",$.model_id]},void 0,!0,void 0,this),_1.jsxDEV(N,{color:"yellow",bold:!0,children:[" ","@",$.switch_command||"default"]},void 0,!0,void 0,this),!Z&&_1.jsxDEV(N,{color:"blue",bold:!0,children:[" ","[FULL]"]},void 0,!0,void 0,this),Q&&_1.jsxDEV(N,{color:"red",bold:!0,children:[" ","YOLO"]},void 0,!0,void 0,this),_1.jsxDEV(v9,{},void 0,!1,void 0,this),z>0&&_1.jsxDEV(N,{color:"magenta",bold:!0,children:[" ","● BG (",z,")"]},void 0,!0,void 0,this),A&&_1.jsxDEV(N,{color:"red",bold:!0,children:[" ","/summary"]},void 0,!0,void 0,this),_1.jsxDEV(N,{color:"green",bold:!0,children:J.length},void 0,!1,void 0,this),_1.jsxDEV(N,{color:"blue",children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&_1.jsxDEV(w,{children:_1.jsxDEV(N,{color:"yellow",children:_9(H)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&_1.jsxDEV(x9,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},p9=yQ;var F1=B(V(),1),EQ=()=>{let{activeView:$}=G$();return F1.jsxDEV(w,{flexDirection:"column",width:"100%",children:[F1.jsxDEV(w,{flexGrow:1,flexDirection:"row",children:[F1.jsxDEV(w1,{name:"ChatMain",fallback:F1.jsxDEV(N,{color:"yellow",children:"Chat view unavailable"},void 0,!1,void 0,this),children:$==="chat"?F1.jsxDEV(D6,{},void 0,!1,void 0,this):null},"chat-main-view",!1,void 0,this),F1.jsxDEV(w1,{name:"PanelView",fallback:F1.jsxDEV(N,{color:"yellow",children:"Panel unavailable"},void 0,!1,void 0,this),children:$!=="chat"?F1.jsxDEV(j6,{},void 0,!1,void 0,this):null},"panel-view",!1,void 0,this)]},void 0,!0,void 0,this),F1.jsxDEV(w1,{name:"StatusBar",fallback:null,children:F1.jsxDEV(p9,{},void 0,!1,void 0,this)},"status-bar",!1,void 0,this)]},void 0,!0,void 0,this)},vQ=()=>{return F1.jsxDEV(w1,{name:"Chat",children:F1.jsxDEV(l7,{children:F1.jsxDEV(EQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},_Q=({children:$})=>{return F1.jsxDEV(d9,{apiUrl:"http://127.0.0.1:8123",defaultAgent:"code",defaultHeaders:{},withCredentials:!1,showHistory:!1,showGraph:!1,onInitError:(Z,X)=>{console.error(Z,X),import("./chunk-5c3bpcpm.js").then(({logAgentError:Y})=>{Y("ChatProvider",Z)}).catch(()=>{})},fetch:X5,autoRestoreLastSession:!0,historyFilter:{metadata:{path:process.cwd()}},children:$},void 0,!1,void 0,this)},fQ=()=>{return F1.jsxDEV(w1,{name:"AppRoot",children:F1.jsxDEV(w1,{name:"TanStackQueryProvider",children:F1.jsxDEV(m6,{children:F1.jsxDEV(w1,{name:"SettingsProvider",children:F1.jsxDEV(i9,{get_allowed_models:n5,children:F1.jsxDEV(_Q,{children:F1.jsxDEV(w1,{name:"ApprovalProvider",children:F1.jsxDEV(l9,{children:F1.jsxDEV(w1,{name:"InteractionProvider",children:F1.jsxDEV(VZ,{children:F1.jsxDEV(vQ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"interaction-provider",!1,void 0,this)},void 0,!1,void 0,this)},"approval-provider",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"settings-provider",!1,void 0,this)},void 0,!1,void 0,this)},"tanstack-query-provider",!1,void 0,this)},"app-root",!1,void 0,this)},hQ=()=>F1.jsxDEV(fQ,{},void 0,!1,void 0,this),v6=hQ;var p0=B(V(),1),gQ=({error:$})=>p0.jsxDEV(w,{flexDirection:"column",padding:2,borderStyle:"double",borderColor:"red",children:[p0.jsxDEV(N,{color:"red",bold:!0,children:"✗ Application Crashed"},void 0,!1,void 0,this),p0.jsxDEV(w,{marginTop:1,children:p0.jsxDEV(N,{color:"red",children:$.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),p0.jsxDEV(w,{marginTop:1,children:p0.jsxDEV(N,{color:"gray",children:["Stack: ",$.stack?.split(`
|
|
342
342
|
`).slice(0,3).join(`
|
|
343
343
|
`)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),p0.jsxDEV(w,{marginTop:1,children:p0.jsxDEV(N,{color:"blue",children:"Press Ctrl+C to exit"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);try{_6(p0.jsxDEV(v6,{},void 0,!1,void 0,this),{exitOnCtrlC:!1})}catch($){console.error("Critical rendering error:",$),_6(p0.jsxDEV(gQ,{error:$},void 0,!1,void 0,this))}process.on("unhandledRejection",($,Z)=>{console.error("Unhandled Rejection at:",Z,"reason:",$)});process.on("uncaughtException",($)=>{console.error("Uncaught Exception:",$)});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{if as a,jf as b}from"./chunk-qxebn3jw.js";import"./chunk-q1cxrg0x.js";import"./chunk-tjg2e8v3.js";import"./chunk-y8qhrx11.js";export{a as createFSManager,b as createCustomManager};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as k}from"./chunk-
|
|
1
|
+
import{j as k}from"./chunk-h8fdexm4.js";import"./chunk-4wnmk2tj.js";import{Ae as r,Ie as B,Je as b,we as R,ze as g}from"./chunk-c7kd2qrp.js";import"./chunk-a9tw6d68.js";import"./chunk-k4q8j7pg.js";import"./chunk-spx7nn8t.js";import"./chunk-vfxjbdz4.js";import"./chunk-qxebn3jw.js";import"./chunk-e8kxa5vj.js";import"./chunk-q1cxrg0x.js";import"./chunk-tjg2e8v3.js";import{Dl as m}from"./chunk-y8qhrx11.js";var w=m(R(),1);var u=m(R(),1);var n=m(b(),1),H=({field:e,value:t,isFocused:o})=>n.jsxDEV(g,{flexDirection:"row",children:[n.jsxDEV(r,{bold:o,color:o?"cyan":void 0,children:e.label},void 0,!1,void 0,this),n.jsxDEV(r,{dimColor:!0,children:": "},void 0,!1,void 0,this),n.jsxDEV(r,{color:t?"green":"gray",bold:o,children:t?"ON":"OFF"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J=({field:e,value:t,isFocused:o})=>n.jsxDEV(g,{flexDirection:"row",children:[n.jsxDEV(r,{bold:o,color:o?"cyan":void 0,children:e.label},void 0,!1,void 0,this),n.jsxDEV(r,{dimColor:!0,children:": "},void 0,!1,void 0,this),n.jsxDEV(r,{color:o?"yellow":void 0,bold:o,children:t??e.min??0},void 0,!1,void 0,this),n.jsxDEV(r,{dimColor:!0,children:" ms"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),L=({field:e,value:t,isFocused:o})=>{let a=e.options?.find((y)=>y.value===t);return n.jsxDEV(g,{flexDirection:"row",children:[n.jsxDEV(r,{bold:o,color:o?"cyan":void 0,children:e.label},void 0,!1,void 0,this),n.jsxDEV(r,{dimColor:!0,children:": "},void 0,!1,void 0,this),n.jsxDEV(r,{color:o?"yellow":void 0,bold:o,children:a?.label||t},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},Y=({field:e,value:t,isFocused:o})=>n.jsxDEV(g,{flexDirection:"row",children:[n.jsxDEV(r,{bold:o,color:o?"cyan":void 0,children:e.label},void 0,!1,void 0,this),n.jsxDEV(r,{dimColor:!0,children:": "},void 0,!1,void 0,this),n.jsxDEV(r,{color:o?"yellow":"gray",bold:o,children:t||e.placeholder||"-"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q=(e)=>{switch(e.field.type){case"toggle":return n.jsxDEV(H,{...e},void 0,!1,void 0,this);case"number":return n.jsxDEV(J,{...e},void 0,!1,void 0,this);case"select":return n.jsxDEV(L,{...e},void 0,!1,void 0,this);case"input":return n.jsxDEV(Y,{...e},void 0,!1,void 0,this);default:return n.jsxDEV(r,{color:"red",children:"Unknown"},void 0,!1,void 0,this)}},M=q;var x=[{key:"compact_mode",label:"紧凑模式",type:"toggle",group:"显示",tab:"General",help:"紧凑显示消息 (Ctrl+O)"},{key:"show_detailed_info",label:"系统信息",type:"toggle",group:"显示",tab:"General",help:"显示系统资源信息"},{key:"enable_thinking",label:"思考模式",type:"toggle",group:"模型",tab:"General",help:"启用模型思考"},{key:"streaming",label:"流式输出",type:"toggle",group:"模型",tab:"General",help:"关闭后等待完整响应再显示(适用于不支持流式的模型)"},{key:"stream_refresh_interval",label:"流刷新间隔",type:"number",group:"模型",tab:"General",min:50,max:1000,step:50,help:"流刷新间隔 (ms)"}],S=(()=>{let e=new Map;return x.forEach((t)=>{let o=t.tab||"General";if(!e.has(o))e.set(o,{id:o,label:o,icon:"⚙"})}),Array.from(e.values())})(),D=(()=>{let e=new Map;return x.forEach((t)=>{if(!e.has(t.group))e.set(t.group,{id:t.group,label:t.group,fields:[]});e.get(t.group).fields.push(t)}),Array.from(e.values())})();function z(e){return x.filter((t)=>(t.tab||"General")===e)}function _(e){let t=z(e),o=new Map;return t.forEach((a)=>{if(!o.has(a.group))o.set(a.group,{id:a.group,label:a.group,fields:[]});o.get(a.group).fields.push(a)}),Array.from(o.values())}var f=m(b(),1);function K(e){switch(e.type){case"toggle":return!1;case"number":return e.min??0;case"select":return e.options?.[0]?.value;case"input":return"";default:return}}var Q=({schema:e,config:t,onUpdate:o,activeTab:a="General"})=>{let y=u.useMemo(()=>_(a),[a]),T=u.useMemo(()=>y.flatMap((l)=>l.fields),[y]),[P,h]=u.useState(0),p=T[P],c=u.useCallback((l,i)=>{o(l.key,i)},[o]),G=u.useCallback((l)=>{c(l,!t[l.key])},[t,c]),A=u.useCallback((l,i)=>{let d=t[l.key]??K(l),F=l.step||1,C=l.min??-1/0,I=l.max??1/0;c(l,Math.max(C,Math.min(I,d+i*F)))},[t,c]),U=u.useCallback((l,i)=>{let d=l.options||[];if(!d.length)return;let C=(d.findIndex((I)=>I.value===t[l.key])+i+d.length)%d.length;c(l,d[C].value)},[t,c]);B((l,i)=>{if(i.upArrow)h((d)=>Math.max(0,d-1));else if(i.downArrow)h((d)=>Math.min(T.length-1,d+1));else if(i.leftArrow||i.rightArrow){let d=i.leftArrow?-1:1;if(p?.type==="toggle")G(p);else if(p?.type==="number")A(p,d);else if(p?.type==="select")U(p,d)}},{isActive:!0});let X=0;return f.jsxDEV(g,{flexDirection:"column",paddingX:2,paddingY:1,children:[y.map((l)=>f.jsxDEV(g,{flexDirection:"column",marginBottom:1,children:[f.jsxDEV(r,{bold:!0,color:"gray",children:["[",l.label,"]"]},void 0,!0,void 0,this),l.fields.map((i)=>{let F=X++===P;return f.jsxDEV(g,{flexDirection:"column",children:[f.jsxDEV(M,{field:i,value:t[i.key],onChange:(C)=>c(i,C),isFocused:F},void 0,!1,void 0,this),F&&i.help&&f.jsxDEV(r,{dimColor:!0,color:"yellow",children:[" ","→ ",i.help]},void 0,!0,void 0,this)]},i.key,!0,void 0,this)})]},l.id,!0,void 0,this)),f.jsxDEV(g,{marginTop:1,children:f.jsxDEV(r,{dimColor:!0,children:"↑↓ 导航 | ←→ 修改"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},v=Q;var s=m(b(),1),W=({onClose:e})=>{let{config:t,updateConfig:o}=k(),[a,y]=w.useState("General"),T=S.length>1,P=w.useCallback(async(p,c)=>{await o({[p]:c})},[o]),h=w.useCallback((p)=>{if(!T)return;let G=(S.findIndex((A)=>A.id===a)+p+S.length)%S.length;y(S[G].id)},[a,T]);if(B((p,c)=>{if(c.escape)e();else if(c.leftArrow&&c.alt)h(-1);else if(c.rightArrow&&c.alt)h(1)},{isActive:t!==null}),!t)return s.jsxDEV(g,{padding:2,children:s.jsxDEV(r,{children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this);return s.jsxDEV(g,{flexDirection:"column",width:"100%",borderStyle:"single",borderColor:"gray",children:[s.jsxDEV(g,{paddingX:2,borderBottom:!0,borderColor:"gray",children:s.jsxDEV(r,{bold:!0,color:"cyan",children:"⚙ Settings"},void 0,!1,void 0,this)},void 0,!1,void 0,this),T&&s.jsxDEV(g,{flexDirection:"row",gap:2,paddingX:2,borderBottom:!0,borderColor:"gray",children:S.map((p)=>s.jsxDEV(r,{bold:a===p.id,color:a===p.id?"cyan":"gray",children:[p.icon," ",p.label]},p.id,!0,void 0,this))},void 0,!1,void 0,this),s.jsxDEV(v,{schema:x,config:t,onUpdate:P,activeTab:a},void 0,!1,void 0,this),s.jsxDEV(g,{paddingX:2,borderTop:!0,borderColor:"gray",children:s.jsxDEV(r,{dimColor:!0,children:"Esc: Close | Auto-save | Global: Ctrl+O (Compact)"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},N=W;var O=m(b(),1),Z=({onClose:e})=>{return O.jsxDEV(N,{onClose:e},void 0,!1,void 0,this)},ue=Z;export{ue as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Gd as D,xd as L}from"./chunk-
|
|
1
|
+
import{Gd as D,xd as L}from"./chunk-n9rpnke9.js";import{Fg as z,Xg as P,Yg as K,_g as O}from"./chunk-hp2jzn9x.js";import"./chunk-nk62q95g.js";import"./chunk-nmzx5nmt.js";import"./chunk-tjg2e8v3.js";import"./chunk-hve2a279.js";import{Dl as R,Il as b}from"./chunk-y8qhrx11.js";var G={maxRetries:3,baseDelayMs:100,nonRetryablePatterns:["database disk image is malformed","database is malformed","cannot rollback","no transaction is active","database or disk is full"],isRetryableError:(J)=>{let $=J?.message?.toLowerCase()||"";for(let Z of G.nonRetryablePatterns)if($.includes(Z.toLowerCase()))return!1;return $.includes("sqlite_busy")||$.includes("database is locked")||$==="sqlite_busy"||$==="database is locked"}};async function F(J,$){let Z=null;for(let H=0;H<G.maxRetries;H++)try{return await J()}catch(U){Z=U;let j=U?.message?.toLowerCase()||"";if(!G.isRetryableError(U)){if(j.includes("malformed")){let V=Error(`SQLite database is corrupted: ${U.message}
|
|
2
2
|
|
|
3
3
|
Context: ${$||"unknown"}
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ Possible causes:
|
|
|
10
10
|
Recovery options:
|
|
11
11
|
- Delete the database file to start fresh (data will be lost)
|
|
12
12
|
- Use SQLite recovery tools: sqlite3 <db> ".recover" > recover.sql
|
|
13
|
-
- Switch to PostgreSQL/Redis for production use`);throw V.name="SQLiteCorruptError",V.cause=U,V}throw U}if(H<G.maxRetries-1){let V=G.baseDelayMs*Math.pow(2,H);console.warn(`SQLite lock detected${$?` (${$})`:""}, retrying in ${V}ms (attempt ${H+1}/${G.maxRetries})`),await new Promise((X)=>setTimeout(X,V))}}throw Z}var x=["source","step","parents"];function E(J){return J}var T=E(x);class N extends K{db;isSetup;constructor(J,$){super($);this.db=new L({dialect:J}),this.isSetup=!1}static async fromConnStringAsync(J){let $;if(globalThis.Bun&&!process.env.DISABLE_BUN_SQLITE){console.log("LG | Using BunWorkerDialect "+J);let{BunSqliteDialect:Z}=await import("./chunk-
|
|
13
|
+
- Switch to PostgreSQL/Redis for production use`);throw V.name="SQLiteCorruptError",V.cause=U,V}throw U}if(H<G.maxRetries-1){let V=G.baseDelayMs*Math.pow(2,H);console.warn(`SQLite lock detected${$?` (${$})`:""}, retrying in ${V}ms (attempt ${H+1}/${G.maxRetries})`),await new Promise((X)=>setTimeout(X,V))}}throw Z}var x=["source","step","parents"];function E(J){return J}var T=E(x);class N extends K{db;isSetup;constructor(J,$){super($);this.db=new L({dialect:J}),this.isSetup=!1}static async fromConnStringAsync(J){let $;if(globalThis.Bun&&!process.env.DISABLE_BUN_SQLITE){console.log("LG | Using BunWorkerDialect "+J);let{BunSqliteDialect:Z}=await import("./chunk-mmx0k2yq.js");$=new N(new Z({url:J}))}else{console.log("LG | Using NodeWasmDialect");let{default:Z}=await import("./chunk-vbb3m0vz.js").then((m)=>R(m.default,1)),{NodeWasmDialect:H}=await import("./chunk-zg54h6gy.js");console.log(J);let U=new H({database:new Z.Database(J)});$=new N(U)}return await $.setup(),$}async setup(){if(this.isSetup)return;await D`PRAGMA busy_timeout = 5000`.execute(this.db),await D`PRAGMA journal_mode = WAL`.execute(this.db),await D`PRAGMA synchronous = NORMAL`.execute(this.db),await D`PRAGMA wal_autocheckpoint = 1000`.execute(this.db),await D`
|
|
14
14
|
CREATE TABLE IF NOT EXISTS checkpoints (
|
|
15
15
|
thread_id TEXT NOT NULL,
|
|
16
16
|
checkpoint_ns TEXT NOT NULL DEFAULT '',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{we as c}from"./chunk-c7kd2qrp.js";import{Dl as h,Fl as wY}from"./chunk-y8qhrx11.js";var IX=wY((DY)=>{var p=h(c());(function(){function X($){if($==null)return null;if(typeof $==="function")return $.$$typeof===i?null:$.displayName||$.name||null;if(typeof $==="string")return $;switch($){case L:return"Fragment";case k:return"Profiler";case P:return"StrictMode";case b:return"Suspense";case YX:return"SuspenseList";case d:return"Activity"}if(typeof $==="object")switch(typeof $.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),$.$$typeof){case w:return"Portal";case R:return $.displayName||"Context";case S:return($._context.displayName||"Context")+".Consumer";case g:var V=$.render;return $=$.displayName,$||($=V.displayName||V.name||"",$=$!==""?"ForwardRef("+$+")":"ForwardRef"),$;case O:return V=$.displayName||null,V!==null?V:X($.type)||"Memo";case Q:V=$._payload,$=$._init;try{return X($(V))}catch(D){}}return null}function Y($){return""+$}function G($){try{Y($);var V=!1}catch(_X){V=!0}if(V){V=console;var D=V.error,T=typeof Symbol==="function"&&Symbol.toStringTag&&$[Symbol.toStringTag]||$.constructor.name||"Object";return D.call(V,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",T),Y($)}}function J($){if($===L)return"<>";if(typeof $==="object"&&$!==null&&$.$$typeof===Q)return"<...>";try{var V=X($);return V?"<"+V+">":"<...>"}catch(D){return"<...>"}}function Z(){var $=s.A;return $===null?null:$.getOwner()}function H(){return Error("react-stack-top-frame")}function _($){if(y.call($,"key")){var V=Object.getOwnPropertyDescriptor($,"key").get;if(V&&V.isReactWarning)return!1}return $.key!==void 0}function W($,V){function D(){vX||(vX=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",V))}D.isReactWarning=!0,Object.defineProperty($,"key",{get:D,configurable:!0})}function A(){var $=X(this.type);return gX[$]||(gX[$]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),$=this.props.ref,$!==void 0?$:null}function U($,V,D,T,_X,KX){var I=D.ref;return $={$$typeof:K,type:$,key:V,props:D,_owner:T},(I!==void 0?I:null)!==null?Object.defineProperty($,"ref",{enumerable:!1,get:A}):Object.defineProperty($,"ref",{enumerable:!1,value:null}),$._store={},Object.defineProperty($._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty($,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty($,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:_X}),Object.defineProperty($,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:KX}),Object.freeze&&(Object.freeze($.props),Object.freeze($)),$}function z($,V,D,T,_X,KX){var I=V.children;if(I!==void 0)if(T)if(n(I)){for(T=0;T<I.length;T++)E(I[T]);Object.freeze&&Object.freeze(I)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else E(I);if(y.call(V,"key")){I=X($);var a=Object.keys(V).filter(function(BY){return BY!=="key"});T=0<a.length?"{key: someKey, "+a.join(": ..., ")+": ...}":"{key: someKey}",mX[I+T]||(a=0<a.length?"{"+a.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
2
|
let props = %s;
|
|
3
3
|
<%s {...props} />
|
|
4
4
|
React keys must be passed directly to JSX without using spread:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{C as r}from"./chunk-yzv3n8mw.js";import{ng as c,og as h}from"./chunk-9tgp14v7.js";import{Fg as u,Hg as S,Xg as l,Zg as i,_g as s,ah as n,bh as o,ch as d}from"./chunk-hz9yw7cs.js";import{ki as g,kj as p}from"./chunk-tn356gwf.js";import{Cl as N,El as WY}from"./chunk-arv4h3h1.js";import{Kl as L}from"./chunk-z3e4c424.js";WY();var PY=(Y)=>{let Z=Y.goto!=null&&!Array.isArray(Y.goto)?[Y.goto]:Y.goto;return new h({goto:Z?.map(($)=>{if(typeof $!=="string")return new c($.node,$.input);return $}),update:Y.update??void 0,resume:Y.resume})},I="[...]",QY="[Circular]",G=[],x=[];function zY(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function OY(Y,Z,$,J){if(typeof J>"u")J=zY();f(Y,"",0,[],void 0,0,J);var H;try{if(x.length===0)H=JSON.stringify(Y,Z,$);else H=JSON.stringify(Y,KY(Z),$)}catch(U){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{while(G.length!==0){var X=G.pop();if(X.length===4)Object.defineProperty(X[0],X[1],X[3]);else X[0][X[1]]=X[2]}}return H}function w(Y,Z,$,J){var H=Object.getOwnPropertyDescriptor(J,$);if(H.get!==void 0)if(H.configurable)Object.defineProperty(J,$,{value:Y}),G.push([J,$,Z,H]);else x.push([Z,$,Y]);else J[$]=Y,G.push([J,$,Z])}function f(Y,Z,$,J,H,X,U){X+=1;var W;if(typeof Y==="object"&&Y!==null){for(W=0;W<J.length;W++)if(J[W]===Y){w(QY,Y,Z,H);return}if(typeof U.depthLimit<"u"&&X>U.depthLimit){w(I,Y,Z,H);return}if(typeof U.edgesLimit<"u"&&$+1>U.edgesLimit){w(I,Y,Z,H);return}if(J.push(Y),Array.isArray(Y))for(W=0;W<Y.length;W++)f(Y[W],W,W,J,Y,X,U);else{var P=Object.keys(Y);for(W=0;W<P.length;W++){var z=P[W];f(Y[z],z,W,J,Y,X,U)}}J.pop()}}function KY(Y){return Y=typeof Y<"u"?Y:function(Z,$){return $},function(Z,$){if(x.length>0)for(var J=0;J<x.length;J++){var H=x[J];if(H[1]===Z&&H[0]===$){$=H[2],x.splice(J,1);break}}return Y.call(this,Z,$)}}function VY(Y){return Y!==null&&Y.lc===1&&Y.type==="constructor"&&Array.isArray(Y.id)}async function q(Y){if(Y&&typeof Y==="object")if(Array.isArray(Y))return await Promise.all(Y.map(($)=>q($)));else{let Z={};for(let[$,J]of Object.entries(Y))Z[$]=await q(J);if(Z.lc===2&&Z.type==="undefined")return;else if(Z.lc===2&&Z.type==="constructor"&&Array.isArray(Z.id))try{let $=Z.id[Z.id.length-1],J;switch($){case"Set":J=Set;break;case"Map":J=Map;break;case"RegExp":J=RegExp;break;case"Error":J=Error;break;default:return Z}if(Z.method)return J[Z.method](...Z.args||[]);else return new J(...Z.args||[])}catch($){return Z}else if(VY(Z))return l(JSON.stringify(Z));return Z}return Y}function M(Y,Z,$,J){return{lc:2,type:"constructor",id:[Y.name],method:Z??null,args:$??[],kwargs:J??{}}}function FY(Y){if(Y===void 0)return{lc:2,type:"undefined"};else if(Y instanceof Set||Y instanceof Map)return M(Y.constructor,void 0,[Array.from(Y)]);else if(Y instanceof RegExp)return M(RegExp,void 0,[Y.source,Y.flags]);else if(Y instanceof Error)return M(Y.constructor,void 0,[Y.message]);else if(Y?.lg_name==="Send")return{node:Y.node,args:Y.args};else return Y}class t{_dumps(Y){return new TextEncoder().encode(OY(Y,($,J)=>{return FY(J)}))}async dumpsTyped(Y){if(Y instanceof Uint8Array)return["bytes",Y];else return["json",this._dumps(Y)]}async _loads(Y){let Z=JSON.parse(Y);return q(Z)}async loadsTyped(Y,Z){if(Y==="bytes")return typeof Z==="string"?new TextEncoder().encode(Z):Z;else if(Y==="json")return this._loads(typeof Z==="string"?Z:new TextDecoder().decode(Z));else throw Error(`Unknown serialization type: ${Y}`)}}class a extends r.default{constructor(Y,Z=!0,$=300){super();this.id=Y,this.compressMessages=Z,this.ttl=$}serializer=new t;async encodeData(Y){let[Z,$]=await this.serializer.dumpsTyped(Y);return $}async decodeData(Y){return await this.serializer.loadsTyped("json",Y)}}class e{queues=new Map;defaultCompressMessages;queueConstructor;constructor(Y,Z={}){this.defaultCompressMessages=Z.defaultCompressMessages??!0,this.queueConstructor=Y}createQueue(Y,Z=300){return this.queues.set(Y,new this.queueConstructor(Y,this.defaultCompressMessages,Z)),this.queues.get(Y)}async getQueue(Y){let Z=this.queues.get(Y);if(!Z)if(await this.queueConstructor?.isQueueExist?.(Y))return this.createQueue(Y);else throw Error(`Queue with id '${Y}' does not exist`);return Z}async cancelQueue(Y){await this.removeQueue(Y)}async pushToQueue(Y,Z){await(await this.getQueue(Y)).push(Z)}async getQueueData(Y){let Z=this.queues.get(Y);if(!Z)throw Error(`Queue with id '${Y}' does not exist`);return await Z.getAll()}async clearQueue(Y){let Z=this.queues.get(Y);if(Z){let $=Z.clear();if($ instanceof Promise)await $}}async removeQueue(Y){let Z=this.queues.get(Y);if(!Z)return!1;try{await Z.cancel()}catch($){console.error("Error cancelling queue:",$)}try{let $=Z.clear();if($ instanceof Promise)await $}catch($){console.error("Error clearing queue:",$)}if(typeof Z.destroy==="function")try{await Z.destroy()}catch($){console.error("Error destroying queue:",$)}return this.queues.delete(Y)}getAllQueueIds(){return Array.from(this.queues.keys())}async getAllQueuesData(){let Y={};for(let[Z,$]of this.queues)Y[Z]=await $.getAll();return Y}clearAllQueues(){for(let Y of this.queues.values())Y.clear()}async copyQueue(Y,Z,$){let H=await(await this.getQueue(Y)).copyToQueue(Z,$);return this.queues.set(Z,H),H}}var E={};async function wY(Y,Z){E[Y]=Z}async function YY(Y,Z,$){if(!E[Y])throw Error(`Graph "${Y}" not found`);let J=typeof E[Y]==="function"?await E[Y](Z??{configurable:{}}):E[Y];if(typeof $?.checkpointer<"u")J.checkpointer=$?.checkpointer??D.globalCheckPointer;else J.checkpointer=D.globalCheckPointer;return J.store=$?.store??void 0,J}class b{db;adapter;constructor(Y){this.db=Y.db,this.adapter=Y}async setup(){await this.adapter.createTables(this.db),await this.adapter.createIndexes(this.db)}async create(Y){let Z=Y?.threadId||N(),$=new Date,J=Y?.metadata||{},H={};if(Y?.ifExists==="raise"){if(await this.db.selectFrom("threads").select("thread_id").where("thread_id","=",Z).executeTakeFirst())throw Error(`Thread with ID ${Z} already exists.`)}if(Y?.ifExists==="do_nothing"&&Y?.threadId){let X=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Z).executeTakeFirst();if(X)return{thread_id:X.thread_id,created_at:this.adapter.dbToDate(X.created_at).toISOString(),updated_at:this.adapter.dbToDate(X.updated_at).toISOString(),state_updated_at:this.adapter.dbToDate(X.updated_at).toISOString(),metadata:this.adapter.dbToJson(X.metadata),status:X.status,values:X.values?this.adapter.dbToJson(X.values):null,interrupts:this.adapter.dbToJson(X.interrupts),title:X.title}}return await this.db.insertInto("threads").values({thread_id:Z,created_at:this.adapter.dateToDb($),updated_at:this.adapter.dateToDb($),metadata:this.adapter.jsonToDb(J),status:"idle",values:null,interrupts:this.adapter.jsonToDb(H)}).execute(),{thread_id:Z,created_at:$.toISOString(),updated_at:$.toISOString(),state_updated_at:$.toISOString(),metadata:J,status:"idle",values:null,interrupts:H,title:null}}async search(Y){let Z=this.db.selectFrom("threads"),$;if(Y?.select)$=new Set(Y.select);else if(Y?.withoutDetails)$=new Set(["thread_id","created_at","updated_at","metadata","status","title"]);else $=new Set(["thread_id","created_at","updated_at","metadata","status","values","interrupts","title"]);let J=[];if($.has("thread_id"))J.push("thread_id");if($.has("created_at"))J.push("created_at");if($.has("updated_at"))J.push("updated_at");if($.has("metadata"))J.push("metadata");if($.has("status"))J.push("status");if($.has("values"))J.push("values");if($.has("interrupts"))J.push("interrupts");if($.has("title"))J.push("title");if(J.length>0)Z=Z.select(J);else Z=Z.selectAll();if(Y?.ids&&Y.ids.length>0)Z=Z.where("thread_id","in",Y.ids);if(Y?.status)Z=Z.where("status","=",Y.status);if(Y?.metadata)for(let[X,U]of Object.entries(Y.metadata))Z=Z.where(this.adapter.buildJsonQuery(this.db,"metadata",X,U));if(Y?.values)Z=Z.where((X)=>{return X("values","=",this.adapter.jsonToDb(Y.values))});if(Y?.sortBy){let X=Y.sortOrder==="desc"?"desc":"asc";Z=Z.orderBy(Y.sortBy,X)}if(Y?.limit!==void 0){if(Z=Z.limit(Y.limit),Y?.offset!==void 0)Z=Z.offset(Y.offset)}return(await Z.execute()).map((X)=>{let U={thread_id:X.thread_id};if($.has("created_at"))U.created_at=this.adapter.dbToDate(X.created_at).toISOString();if($.has("updated_at"))U.updated_at=this.adapter.dbToDate(X.updated_at).toISOString();if($.has("metadata"))U.metadata=this.adapter.dbToJson(X.metadata);if($.has("status"))U.status=X.status;if($.has("values"))U.values=X.values?this.adapter.dbToJson(X.values):null;if($.has("interrupts"))U.interrupts=this.adapter.dbToJson(X.interrupts);if($.has("title"))U.title=X.title;return U})}async get(Y){let Z=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Y).executeTakeFirst();if(!Z)throw Error(`Thread with ID ${Y} not found.`);return{thread_id:Z.thread_id,created_at:this.adapter.dbToDate(Z.created_at).toISOString(),updated_at:this.adapter.dbToDate(Z.updated_at).toISOString(),state_updated_at:this.adapter.dbToDate(Z.updated_at).toISOString(),metadata:this.adapter.dbToJson(Z.metadata),status:Z.status,values:Z.values?this.adapter.dbToJson(Z.values):null,interrupts:this.adapter.dbToJson(Z.interrupts),title:Z.title}}async set(Y,Z){if(!await this.db.selectFrom("threads").select("thread_id").where("thread_id","=",Y).executeTakeFirst())throw Error(`Thread with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.metadata!==void 0)J.metadata=this.adapter.jsonToDb(Z.metadata);if(Z.status!==void 0)J.status=Z.status;if(Z.values!==void 0)J.values=Z.values?this.adapter.jsonToDb(Z.values):null;if(Z.interrupts!==void 0)J.interrupts=this.adapter.jsonToDb(Z.interrupts);if(Z.title!==void 0)J.title=Z.title;await this.db.updateTable("threads").set(J).where("thread_id","=",Y).execute()}async delete(Y){if((await this.db.deleteFrom("threads").where("thread_id","=",Y).executeTakeFirst()).numDeletedRows===0n)throw Error(`Thread with ID ${Y} not found.`)}async updateState(Y,Z){let $=await this.get(Y);if($.status==="busy")throw Error(`Thread with ID ${Y} is busy, can't update state.`);let J=$.metadata?.graph_id;if(!J)return await this.set(Y,{values:Z.values??null}),{configurable:{thread_id:Y}};let H={configurable:{thread_id:Y,graph_id:J}},X=await YY(J,H),U=await X.updateState(H,Z.values),W=await X.getState(H);return await this.set(Y,{values:JSON.parse(C(W.values))}),U}async createRun(Y,Z,$){let J=N(),H=new Date,X=$?.metadata??{};return await this.db.insertInto("runs").values({run_id:J,thread_id:Y,assistant_id:Z,created_at:this.adapter.dateToDb(H),updated_at:this.adapter.dateToDb(H),status:"pending",metadata:this.adapter.jsonToDb(X),multitask_strategy:"reject"}).execute(),{run_id:J,thread_id:Y,assistant_id:Z,created_at:H.toISOString(),updated_at:H.toISOString(),status:"pending",metadata:X,multitask_strategy:"reject"}}async listRuns(Y,Z){let $=this.db.selectFrom("runs").selectAll().where("thread_id","=",Y).orderBy("created_at","desc");if(Z?.status)$=$.where("status","=",Z.status);if(Z?.limit!==void 0){if($=$.limit(Z.limit),Z?.offset!==void 0)$=$.offset(Z.offset)}return(await $.execute()).map((H)=>({run_id:H.run_id,thread_id:H.thread_id,assistant_id:H.assistant_id,created_at:this.adapter.dbToDate(H.created_at).toISOString(),updated_at:this.adapter.dbToDate(H.updated_at).toISOString(),status:H.status,metadata:this.adapter.dbToJson(H.metadata),multitask_strategy:H.multitask_strategy}))}async updateRun(Y,Z){if(!await this.db.selectFrom("runs").select("run_id").where("run_id","=",Y).executeTakeFirst())throw Error(`Run with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.status!==void 0)J.status=Z.status;if(Z.metadata!==void 0)J.metadata=this.adapter.jsonToDb(Z.metadata);if(Z.multitask_strategy!==void 0)J.multitask_strategy=Z.multitask_strategy;await this.db.updateTable("runs").set(J).where("run_id","=",Y).execute()}async count(Y){return(await this.search(Y)).length}async patch(Y,Z){let $=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Y).executeTakeFirst();if(!$)throw Error(`Thread with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.metadata!==void 0){let H=this.adapter.dbToJson($.metadata)||{};J.metadata=this.adapter.jsonToDb({...H,...Z.metadata})}if(Z.status!==void 0)J.status=Z.status;if(Z.values!==void 0)J.values=Z.values?this.adapter.jsonToDb(Z.values):null;if(Z.interrupts!==void 0)J.interrupts=this.adapter.jsonToDb(Z.interrupts);if(Z.title!==void 0)J.title=Z.title;return await this.db.updateTable("threads").set(J).where("thread_id","=",Y).execute(),await this.get(Y)}async getState(Y,Z){let $=await this.get(Y);if(Z?.checkpointId){let H=await this.db.selectFrom("checkpoints").selectAll().where("checkpoint_id","=",Z.checkpointId).where("thread_id","=",Y).executeTakeFirst();if(!H)throw Error(`Checkpoint with ID ${Z.checkpointId} not found for thread ${Y}`);return{values:this.adapter.dbToJson(H.values),next:this.adapter.dbToJson(H.next),metadata:this.adapter.dbToJson(H.metadata),checkpoint:{id:H.checkpoint_id,thread_id:Y,parent_checkpoint_id:null,checkpoint_ns:"",metadata:this.adapter.dbToJson(H.metadata),created_at:this.adapter.dbToDate(H.created_at).toISOString()},created_at:this.adapter.dbToDate(H.created_at).toISOString(),parent_checkpoint:null,tasks:[]}}return{values:$.values||{},next:[],metadata:$.metadata,checkpoint:null,created_at:$.created_at,parent_checkpoint:null,tasks:[]}}async getStateHistory(Y,Z){let J=await this.db.selectFrom("checkpoints").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").execute(),H=J.map((X)=>({values:this.adapter.dbToJson(X.values),next:this.adapter.dbToJson(X.next),metadata:this.adapter.dbToJson(X.metadata),checkpoint:{thread_id:Y,checkpoint_ns:"",checkpoint_id:X.checkpoint_id,checkpoint_map:null},created_at:this.adapter.dbToDate(X.created_at).toISOString(),parent_checkpoint:null,tasks:[]}));if(Z?.before){let X=J.findIndex((U)=>U.checkpoint_id===Z.before);if(X!==-1)H=H.slice(X+1)}if(Z?.limit)H=H.slice(0,Z.limit);return H}async copy(Y){let Z=await this.get(Y),$=N(),J=new Date;await this.db.insertInto("threads").values({thread_id:$,created_at:this.adapter.dateToDb(J),updated_at:this.adapter.dateToDb(J),metadata:this.adapter.jsonToDb(Z.metadata),status:Z.status,values:Z.values?this.adapter.jsonToDb(Z.values):null,interrupts:this.adapter.jsonToDb(Z.interrupts),title:Z.title}).execute();let H=await this.db.selectFrom("checkpoints").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").execute();for(let X of H)await this.db.insertInto("checkpoints").values({checkpoint_id:N(),thread_id:$,values:X.values,next:X.next,config:X.config,created_at:X.created_at,metadata:X.metadata}).execute();return{...Z,thread_id:$,created_at:J.toISOString(),updated_at:J.toISOString()}}async saveCheckpoint(Y,Z,$,J,H){await this.db.insertInto("checkpoints").values({checkpoint_id:N(),thread_id:Y,values:this.adapter.jsonToDb(Z),next:this.adapter.jsonToDb($),config:this.adapter.jsonToDb(J),created_at:this.adapter.dateToDb(new Date),metadata:this.adapter.jsonToDb(H||{})}).execute()}async setTitleIfNull(Y,Z){return(await this.db.updateTable("threads").set({title:Z,updated_at:this.adapter.dateToDb(new Date)}).where("thread_id","=",Y).where("title","is",null).executeTakeFirst()).numUpdatedRows>0n}}function DY(Y){let[Z,$]=Y.split("::");return{threadId:Z,checkpointNs:$??""}}function T(Y,Z,$){return`${Y}::${Z}::${$}`}function m(Y){if(Y===null||typeof Y!=="object")return JSON.stringify(Y);if(Array.isArray(Y))return JSON.stringify(Y.map((J)=>m(J)));let Z={},$=Object.keys(Y).sort();for(let J of $)Z[J]=Y[J];return JSON.stringify(Z,(J,H)=>{if(H!==null&&typeof H==="object"&&!Array.isArray(H)){let X={},U=Object.keys(H).sort();for(let W of U)X[W]=H[W];return X}return H})}class ZY extends s{storage={};writes={};constructor(Y){super(Y)}async get(Y){return(await this.getTuple(Y))?.checkpoint}async _migratePendingSends(Y,Z,$,J){let H=Y,X=T(Z,$,J),U=await Promise.all(Object.values(this.writes[X]??{}).filter(([W,P])=>P===S).map(async([W,P,z])=>await this.serde.loadsTyped("json",z)));H.channel_values??={},H.channel_values[S]=U,H.channel_versions??={},H.channel_versions[S]=Object.keys(H.channel_versions).length>0?n(...Object.values(H.channel_versions)):this.getNextVersion(void 0)}async _loadPendingWrites(Y,Z,$){let J=T(Y,Z,$),H=this.writes[J]??{};if(Object.keys(H).length===0)return[];return await Promise.all(Object.values(H).map(async([X,U,W])=>{return[X,U,await this.serde.loadsTyped("json",W)]}))}_cleanupOldWrites(Y,Z,$){let J=T(Y,Z,$);delete this.writes[J]}_checkMetadataFilterMatch(Y,Z){for(let[$,J]of Object.entries(Z)){let H=Y?.[$];if(J===null){if(!($ in(Y||{}))||H!==null)return!1}else if(typeof J==="object"&&!Array.isArray(J)){if(typeof H!=="object"||H===null)return!1;if(m(J)!==m(H))return!1}else if(H!==J)return!1}return!0}async getTuple(Y){let Z=Y.configurable?.thread_id,$=Y.configurable?.checkpoint_ns??"",J=d(Y);if(Z===void 0)return;let H=this.storage[Z]?.[$];if(H===void 0)return;let{checkpoint:X,metadata:U,checkpoint_id:W,parent_checkpoint_id:P}=H;if(J&&W!==J)return;let z=await this.serde.loadsTyped("json",X);if(z.v<4&&P!==void 0)await this._migratePendingSends(z,Z,$,P);let Q=await this._loadPendingWrites(Z,$,W),K=await this.serde.loadsTyped("json",U),F={config:{configurable:{thread_id:Z,checkpoint_ns:$,checkpoint_id:W}},checkpoint:z,metadata:K,pendingWrites:Q};if(P!==void 0)F.parentConfig={configurable:{thread_id:Z,checkpoint_ns:$,checkpoint_id:P}};return F}async*list(Y,Z){let{before:$,limit:J,filter:H}=Z??{},X=Y.configurable?.thread_id?[Y.configurable.thread_id]:Object.keys(this.storage),U=Y.configurable?.checkpoint_ns,W=Y.configurable?.checkpoint_id,P=[];for(let Q of X){let K=this.storage[Q];if(K===void 0)continue;for(let F of Object.keys(K)){if(U!==void 0&&F!==U)continue;let A=K[F];if(A===void 0)continue;let{checkpoint_id:V}=A;if(W&&V!==W)continue;if($?.configurable?.checkpoint_id&&V>=$.configurable.checkpoint_id)continue;let B=await this.serde.loadsTyped("json",A.metadata);if(H&&!this._checkMetadataFilterMatch(B,H))continue;P.push({threadId:Q,checkpointNs:F,namespaceData:A})}}P.sort((Q,K)=>K.namespaceData.checkpoint_ts-Q.namespaceData.checkpoint_ts);let z=0;for(let{threadId:Q,checkpointNs:K,namespaceData:F}of P){if(J!==void 0&&z>=J)return;let{checkpoint:A,metadata:V,checkpoint_id:B,parent_checkpoint_id:_}=F,O=await this.serde.loadsTyped("json",A);if(O.v<4&&_!==void 0)await this._migratePendingSends(O,Q,K,_);let j=await this._loadPendingWrites(Q,K,B),UY=await this.serde.loadsTyped("json",V),y={config:{configurable:{thread_id:Q,checkpoint_ns:K,checkpoint_id:B}},checkpoint:O,metadata:UY,pendingWrites:j};if(_!==void 0)y.parentConfig={configurable:{thread_id:Q,checkpoint_ns:K,checkpoint_id:_}};z++,yield y}}async put(Y,Z,$,J){let H=i(Z),X=Y.configurable?.thread_id,U=Y.configurable?.checkpoint_ns??"",W=Y.configurable?.checkpoint_id;if(X===void 0)throw Error("thread_id is required");let P=Z.id||u(0);if(!this.storage[X])this.storage[X]={};let z=this.storage[X][U];if(z!==void 0&&z.checkpoint_id!==P)this._cleanupOldWrites(X,U,z.checkpoint_id);let[[,Q],[,K]]=await Promise.all([this.serde.dumpsTyped(H),this.serde.dumpsTyped($)]);return this.storage[X][U]={checkpoint:Q,metadata:K,checkpoint_id:P,parent_checkpoint_id:W,checkpoint_ts:Date.now()},{configurable:{thread_id:X,checkpoint_ns:U,checkpoint_id:P}}}async putWrites(Y,Z,$){let J=Y.configurable?.thread_id,H=Y.configurable?.checkpoint_ns??"",X=Y.configurable?.checkpoint_id;if(!J||!X)throw Error("thread_id and checkpoint_id are required");let U=T(J,H,X),W=this.writes[U];if(this.writes[U]===void 0)this.writes[U]={};await Promise.all(Z.map(async([P,z],Q)=>{let[,K]=await this.serde.dumpsTyped(z),F=[$,o[P]||Q],A=`${F[0]},${F[1]}`;if(F[1]>=0&&W&&A in W)return;this.writes[U][A]=[$,P,K]}))}async deleteThread(Y){delete this.storage[Y];for(let Z of Object.keys(this.writes)){let{threadId:$}=DY(Z.split("::").slice(0,2).join("::"));if($===Y)delete this.writes[Z]}}}class R{event;data;id;constructor(Y,Z){this.event=Y,this.data=Z}}class $Y extends R{constructor(){super("__system_cancel__","user cancel this run")}}class JY extends R{constructor(){super("__stream_end__","stream end")}}class v extends R{constructor(Y){super("__stream_error__",{error:Y.name,message:Y.message})}}class k extends a{data=[];activeGenerators=new Set;isDestroyed=!1;async push(Y){if(this.isDestroyed)return;let Z=this.compressMessages?await this.encodeData(Y):Y;process.env.LG_TEMP_MESSAGE!=="true"&&this.data.push(Z),this.emit("dataChange",Z)}onDataChange(Y){if(this.isDestroyed)return()=>{};return this.on("dataChange",async(Z)=>{if(this.isDestroyed)return;Y(this.compressMessages?await this.decodeData(Z):Z)}),()=>this.off("dataChange",Y)}async*onDataReceive(){if(this.isDestroyed)return;let Y=new AbortController;this.activeGenerators.add(Y);let Z=[],$=null,J=!1,H=!1,X=null,U=async(z)=>{if(H||Y.signal.aborted)return;try{let Q=this.compressMessages?await this.decodeData(z):z;if(Z.push(Q),Q.event==="__stream_end__"||Q.event==="__stream_error__"||Q.event==="__stream_cancel__"){if(X)clearTimeout(X),X=null;if(X=setTimeout(()=>{if(J=!0,$)$(),$=null},300),Q.event==="__stream_cancel__")Y.abort("stream cancelled")}if($)$(),$=null}catch(Q){if(console.error("Error in handleData:",Q),$)$(),$=null}};this.on("dataChange",U);let W=()=>{if(J=!0,$)$(),$=null};Y.signal.addEventListener("abort",W);let P=()=>{if(H)return;if(H=!0,X)clearTimeout(X),X=null;try{this.off("dataChange",U)}catch(z){}try{Y.signal.removeEventListener("abort",W)}catch(z){}if($)$(),$=null;Z.length=0,this.activeGenerators.delete(Y)};try{if(Y.signal.aborted||this.isDestroyed)return;while(!J&&!Y.signal.aborted&&!this.isDestroyed)if(Z.length>0){for(let z of Z)yield z;Z.length=0}else await new Promise((z)=>{$=z})}finally{P()}}async getAll(){if(this.isDestroyed)return[];return this.compressMessages?await Promise.all(this.data.map((Y)=>this.decodeData(Y))):[...this.data]}clear(){this.data.length=0}cancelSignal=new AbortController;async cancel(){for(let Y of this.activeGenerators)try{Y.abort("user cancel this run")}catch(Z){}if(this.activeGenerators.clear(),!this.cancelSignal.signal.aborted)this.cancelSignal.abort("user cancel this run");if(!this.isDestroyed)await this.push(new $Y)}async copyToQueue(Y,Z){let $=this.data.slice(),J=new k(Y,this.compressMessages,Z??this.ttl);return J.data=$,J}async destroy(){if(this.isDestroyed)return;this.isDestroyed=!0,await this.cancel(),this.clear(),this.removeAllListeners(),this.activeGenerators.clear()}}class XY{threads=[];checkpoints=new Map;async setup(){return}async create(Y){let Z=Y?.threadId||N();if(Y?.ifExists==="raise"&&this.threads.some((J)=>J.thread_id===Z))throw Error(`Thread with ID ${Z} already exists.`);let $={thread_id:Z,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),state_updated_at:new Date().toISOString(),metadata:Y?.metadata||{},status:"idle",values:null,interrupts:{},title:null};return this.checkpoints.set(Z,[]),this.threads.push($),$}async search(Y){let Z=[...this.threads];if(Y?.ids&&Y.ids.length>0)Z=Z.filter((X)=>Y.ids.includes(X.thread_id));if(Y?.status)Z=Z.filter((X)=>X.status===Y.status);if(Y?.metadata){for(let X in Y.metadata)if(Object.prototype.hasOwnProperty.call(Y.metadata,X))Z=Z.filter((U)=>U.metadata&&U.metadata[X]===Y.metadata?.[X])}if(Y?.values)Z=Z.filter((X)=>{if(!X.values)return!1;return this.deepEqual(X.values,Y.values)});if(Y?.sortBy)Z.sort((X,U)=>{let W,P;switch(Y.sortBy){case"thread_id":W=X.thread_id,P=U.thread_id;break;case"created_at":W=new Date(X.created_at).getTime(),P=new Date(U.created_at).getTime();break;case"updated_at":W=new Date(X.updated_at).getTime(),P=new Date(U.updated_at).getTime();break;case"status":W=X.status,P=U.status;break;default:return 0}if(Y.sortOrder==="desc")return P>W?1:P<W?-1:0;else return W>P?1:W<P?-1:0});let $=Y?.offset||0,J=Y?.limit||Z.length;return Z.slice($,$+J).map((X)=>{let U={thread_id:X.thread_id},W;if(Y?.select)W=new Set(Y.select);else if(Y?.withoutDetails)W=new Set(["thread_id","created_at","updated_at","metadata","status"]);else W=new Set(["thread_id","created_at","updated_at","metadata","status","values","interrupts","title"]);if(W.has("thread_id"))U.thread_id=X.thread_id;if(W.has("created_at"))U.created_at=X.created_at;if(W.has("updated_at"))U.updated_at=X.updated_at;if(W.has("metadata"))U.metadata=X.metadata;if(W.has("status"))U.status=X.status;if(W.has("values"))U.values=X.values;if(W.has("interrupts"))U.interrupts=X.interrupts;if(W.has("title"))U.title=X.title;return U})}deepEqual(Y,Z){if(Y===Z)return!0;if(typeof Y!==typeof Z)return!1;if(typeof Y!=="object"||Y===null||Z===null)return!1;let $=Object.keys(Y),J=Object.keys(Z);if($.length!==J.length)return!1;for(let H of $){if(!J.includes(H))return!1;if(!this.deepEqual(Y[H],Z[H]))return!1}return!0}async get(Y){let Z=this.threads.find(($)=>$.thread_id===Y);if(!Z)throw Error(`Thread with ID ${Y} not found.`);return Z}async set(Y,Z){let $=this.threads.findIndex((J)=>J.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);this.threads[$]={...this.threads[$],...Z}}async delete(Y){let Z=this.threads.length;if(this.threads=this.threads.filter(($)=>$.thread_id!==Y),this.checkpoints.delete(Y),this.threads.length===Z)throw Error(`Thread with ID ${Y} not found.`)}async updateState(Y,Z){let $=this.threads.findIndex((H)=>H.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);let J=this.threads[$];if(J.status==="busy")throw Error(`Thread with ID ${Y} is busy, can't update state.`);if(this.threads[$]={...J,values:Z.values,updated_at:new Date().toISOString()},J.metadata?.graph_id){let H=J.metadata?.graph_id,X={configurable:{thread_id:Y,graph_id:H}};try{let U=await YY(H,X),W=await U.updateState(X,Z.values),P=await U.getState(X);return await this.set(Y,{values:JSON.parse(C(P.values))}),W}catch(U){console.warn("Failed to update graph state:",U)}}return{configurable:{thread_id:Y}}}runs=[];async createRun(Y,Z,$){let H={run_id:N(),thread_id:Y,assistant_id:Z,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),status:"pending",metadata:$?.metadata??{},multitask_strategy:"reject"};return this.runs.push(H),H}async listRuns(Y,Z){let $=[...this.runs];if(Z?.status)$=$.filter((J)=>J.status===Z.status);if(Z?.limit)$=$.slice(Z.offset||0,(Z.offset||0)+Z.limit);return $}async updateRun(Y,Z){let $=this.runs.findIndex((J)=>J.run_id===Y);if($===-1)throw Error(`Run with ID ${Y} not found.`);this.runs[$]={...this.runs[$],...Z}}async count(Y){return(await this.search(Y)).length}async patch(Y,Z){let $=this.threads.findIndex((H)=>H.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);let J={...this.threads[$],...Z,updated_at:new Date().toISOString(),metadata:Z.metadata?{...this.threads[$].metadata,...Z.metadata}:this.threads[$].metadata};return this.threads[$]=J,J}async getState(Y,Z){let $=await this.get(Y);if(Z?.checkpointId){let X=(this.checkpoints.get(Y)||[]).find((U)=>U.checkpoint_id===Z.checkpointId);if(!X)throw Error(`Checkpoint with ID ${Z.checkpointId} not found for thread ${Y}`);return{values:X.values,next:X.next,metadata:X.metadata,checkpoint:{id:X.checkpoint_id,thread_id:Y,parent_checkpoint_id:null,checkpoint_ns:"",metadata:X.metadata,created_at:X.created_at},created_at:X.created_at,parent_checkpoint:null,tasks:[]}}return{values:$.values||{},next:[],metadata:$.metadata,checkpoint:null,created_at:$.created_at,parent_checkpoint:null,tasks:[]}}async getStateHistory(Y,Z){let $=this.checkpoints.get(Y)||[],J=$.map((H)=>({values:H.values,next:H.next,metadata:H.metadata,checkpoint:{checkpoint_id:H.checkpoint_id,thread_id:Y,checkpoint_ns:"",checkpoint_map:void 0},created_at:H.created_at,parent_checkpoint:null,tasks:[]}));if(Z?.before){let H=$.findIndex((X)=>X.checkpoint_id===Z.before);if(H!==-1)J=J.slice(H+1)}if(Z?.limit)J=J.slice(0,Z.limit);return J}async copy(Y){let Z=await this.get(Y),$=N(),J={...Z,thread_id:$,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};this.threads.push(J);let X=(this.checkpoints.get(Y)||[]).map((U)=>({...U,checkpoint_id:N(),thread_id:$}));return this.checkpoints.set($,X),J}async saveCheckpoint(Y,Z,$,J,H){let X=this.checkpoints.get(Y)||[],U={checkpoint_id:N(),thread_id:Y,values:Z,next:$,config:J,created_at:new Date().toISOString(),metadata:H};X.push(U),this.checkpoints.set(Y,X)}async setTitleIfNull(Y,Z){let $=this.threads.findIndex((J)=>J.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);if(this.threads[$].title===null)return this.threads[$]={...this.threads[$],title:Z,updated_at:new Date().toISOString()},!0;return!1}}var AY=async()=>{if(process.env.REDIS_URL&&(process.env.CHECKPOINT_TYPE==="redis"||process.env.CHECKPOINT_TYPE==="shallow/redis")){if(process.env.CHECKPOINT_TYPE==="redis"){console.debug("LG | Using redis as checkpoint");let{RedisSaver:Y}=await import("./chunk-vnewbtjy.js");return await Y.fromUrl(process.env.REDIS_URL,{defaultTTL:60,refreshOnRead:!0})}if(process.env.CHECKPOINT_TYPE==="shallow/redis"){console.debug("LG | Using shallow redis as checkpoint");let{ShallowRedisSaver:Y}=await import("./chunk-rtjytfhh.js");return await Y.fromUrl(process.env.REDIS_URL)}}if(process.env.DATABASE_URL&&HY(process.env.DATABASE_URL)==="postgres"){console.debug("LG | Using postgres as checkpoint");let{createPGCheckpoint:Y}=await import("./chunk-7w9y11hj.js");return Y()}if(process.env.SQLITE_DATABASE_URI){if(process.env.CHECKPOINT_TYPE==="sqlite"){console.debug("LG | Using sqlite (full) as checkpoint");let{SqliteSaver:$}=await import("./chunk-5m4yb9av.js");return await $.fromConnStringAsync(process.env.SQLITE_DATABASE_URI)}console.debug("LG | Using shallow sqlite as checkpoint (default)");let{SqliteShallowSaver:Y}=await import("./chunk-nm253hhf.js");return await Y.fromConnStringAsync(process.env.SQLITE_DATABASE_URI)}return console.log("LG | You are using memory as checkpoint!"),console.log("\x1B[33m%s\x1B[0m","LG | set SQLITE_DATABASE_URI=./.langgraph_api/langgraph.db to your .env file to use \x1B[1mSQLite\x1B[0m for dev!"),console.log("\x1B[33m%s\x1B[0m","LG | set DATABASE_URL=postgresql://user:pass@localhost:5432/db to your .env file to use \x1B[1mPostgreSQL\x1B[0m for prod!"),new ZY},BY=async()=>{let Y;if(process.env.REDIS_URL){console.debug("LG | Using redis as stream queue");let{RedisStreamQueue:Z}=await import("./chunk-875hayaj.js");Y=Z}else Y=k;return new e(Y)};function HY(Y){let Z=Y.toLowerCase();if(Z.startsWith("http://")||Z.startsWith("https://"))return"remote";return"postgres"}var NY=async(Y)=>{if(process.env.DATABASE_URL){if(HY(process.env.DATABASE_URL)==="remote"){console.debug("LG | Using Remote PostgreSQL ThreadsManager");let{RemoteKyselyThreadsManager:$}=await import("./chunk-d988tv30.js"),J=new $(process.env.DATABASE_URL);if(process.env.DATABASE_INIT==="true")await J.setup();return J}else if(Y.checkpointer){console.debug("LG | Using PostgreSQL ThreadsManager");let{PostgresAdapter:$}=await import("./chunk-6scjjkn3.js"),J=Y.checkpointer.pool,H=new b(new $(J));if(process.env.DATABASE_INIT==="true")await H.setup();return H}}if(process.env.SQLITE_DATABASE_URI&&Y.checkpointer){console.debug("LG | Using SQLite ThreadsManager");let{SQLiteAdapter:Z}=await import("./chunk-cef4vbtb.js"),$=Y.checkpointer.db,J=new b(new Z($));return await J.setup(),J}return new XY};function RY(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y))return Y.find(($)=>$.type==="text")?.text||"";if(Y?.text)return Y.text;return""}var LY=(Y,Z)=>{let $=Y?.messages;if(!$||!Array.isArray($)||$.length===0)return null;let J=$[0];if(!J)return null;let H=RY(J.content);if(!H)return null;let X=H.trim().replace(/\n/g," ");if(!X)return null;let U=15,W=X.slice(0,U);return W.length<X.length?`${W}...`:W};class D{static globalMessageQueue=null;static globalCheckPointer=null;static globalThreadsManager=null;static isInitialized=null;static _titleGenerator=LY;static setTitleGenerator(Y){D._titleGenerator=Y}static getTitleGenerator(){return D._titleGenerator}static async initGlobal(){if(D.isInitialized)return D.isInitialized;return D.isInitialized=(async()=>{let[Y,Z]=await Promise.all([BY(),AY()]);console.debug("LG | checkpointer created");let $=await NY({checkpointer:Z});console.debug("LG | threads manager created"),console.debug("LG | global init done"),D.globalMessageQueue=Y,D.globalCheckPointer=Z,D.globalThreadsManager=$})(),D.isInitialized}}async function _Y(Y,Z,$,J,H){let U=J.config?.configurable?.graph_id;if(!U||typeof U!=="string")throw Error("Invalid or missing graph_id");let W=await H.getGraph(U,J.config,{checkpointer:J.temporary?null:void 0}),P=Array.isArray(J.streamMode)?J.streamMode:J.streamMode?[J.streamMode]:[],z=new Set(["values",...P.filter((V)=>V!=="events"&&V!=="messages-tuple")]);if(P.includes("messages-tuple"))z.add("messages");if(P.includes("messages"))z.add("values");await $.push(new R("metadata",{run_id:Z.run_id,attempt:H.attempt,graph_id:U}));let Q={...J.config?.metadata,run_attempt:H.attempt},K=null,F=null,A=null;try{K=new Set,F=new Map,A=await W.stream(J.command!=null?PY(J.command):J.input??null,{interruptAfter:J.interruptAfter,interruptBefore:J.interruptBefore,tags:J.config?.tags,configurable:J.config?.configurable,recursionLimit:J.config?.recursionLimit,subgraphs:J.streamSubgraphs,metadata:Q,runId:Z.run_id,streamMode:[...z],signal:$.cancelSignal.signal});for await(let V of A){let B=[];if(V.length===3)B=V.splice(0,1);let _=(O)=>{if(B.length===0)return O;if(B.length===1&&B[0]?.length===0)return O;return`${O}|${B.join("|")}`};if(V[0]==="values"){let O=V[1];if(_("values")==="values")if(await $.push(new R(_("values"),O)),O?.__interrupt__)await Y.set(Z.thread_id,{status:"interrupted",interrupts:O?JSON.parse(C(O)):""});else await Y.set(Z.thread_id,{values:O?JSON.parse(C(O)):""})}else if(V[0]==="messages"){let O=V[1][0],j=V[1][1];if(O.id&&!K.has(O.id))await $.push(new R("messages/metadata",{[O.id]:j})),K.add(O.id);if(g.isInstance(O)&&O.id){if(F.set(O.id,[...F.get(O.id)??[],O]),await $.push(new R("messages/partial",[F.get(O.id).reduce(p)])),O.content===""&&!O.tool_calls?.length)F.delete(O.id)}else await $.push(new R("messages/partial",[O]))}else if(V[0]==="updates"){let O=V[1];await $.push(new R(_("updates"),O))}}}catch(V){if(!(V instanceof Error&&V.message?.includes("cancel"))){console.error("streamStateWithQueue error:",V);try{await $.push(new v(V))}catch(B){}}throw V}finally{try{await $.push(new JY)}catch(V){}if(K)K.clear(),K=null;if(F)F.clear(),F=null;A=null}}var C=(Y,Z=0)=>{return JSON.stringify(Y,function($,J){let H=this[$];if(H!=null&&typeof H==="object"&&"toDict"in H&&typeof H.toDict==="function"){let{type:X,data:U}=H.toDict();return{...U,type:X}}return J},Z)};async function*MY(Y,Z,$,J){Z=await Z;let{run_id:H,thread_id:X}=Z,U=null,W=null,P=null,z=!1;try{await Y.set(X,{status:"busy"}),await Y.updateRun(Z.run_id,{status:"running"}),W=D.globalMessageQueue.createQueue(H),U=W.onDataReceive(),P=_Y(Y,Z,W,$,J).catch((Q)=>{if(z)return;if(Q.message!=="user cancel this run")console.error("Queue task error:",Q);D.globalMessageQueue.pushToQueue(H,new v(Q))});for await(let Q of U)yield Q;await Y.updateRun(Z.run_id,{status:"success"})}catch(Q){console.error("Stream error:",Q),await Y.updateRun(Z.run_id,{status:"error"}),await Y.set(X,{status:"error"})}finally{if(z=!0,U){try{await U.return(void 0)}catch(K){}U=null}if(W&&!W.cancelSignal.signal.aborted)try{W.cancelSignal.abort("Stream consumer disconnected")}catch(K){}if(P){try{await Promise.race([P,new Promise((K)=>setTimeout(K,1000))])}catch(K){}P=null}if((await Y.get(X)).status==="interrupted")await D.globalMessageQueue.copyQueue(H,X,30000);else await Y.set(X,{status:"idle",interrupts:{}});await D.globalMessageQueue.removeQueue(H),W=null}}
|
|
1
|
+
import{C as r}from"./chunk-pzb224c5.js";import{lg as c,mg as h}from"./chunk-pe8mzxwn.js";import{$g as o,Dg as u,Fg as S,Vg as l,Xg as i,Yg as s,_g as n,ah as d}from"./chunk-hp2jzn9x.js";import{ii as g,ij as p}from"./chunk-nk62q95g.js";import{Al as N,Cl as WY}from"./chunk-hve2a279.js";import{Il as L}from"./chunk-y8qhrx11.js";WY();var PY=(Y)=>{let Z=Y.goto!=null&&!Array.isArray(Y.goto)?[Y.goto]:Y.goto;return new h({goto:Z?.map(($)=>{if(typeof $!=="string")return new c($.node,$.input);return $}),update:Y.update??void 0,resume:Y.resume})},I="[...]",QY="[Circular]",G=[],x=[];function zY(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function OY(Y,Z,$,J){if(typeof J>"u")J=zY();f(Y,"",0,[],void 0,0,J);var H;try{if(x.length===0)H=JSON.stringify(Y,Z,$);else H=JSON.stringify(Y,KY(Z),$)}catch(U){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{while(G.length!==0){var X=G.pop();if(X.length===4)Object.defineProperty(X[0],X[1],X[3]);else X[0][X[1]]=X[2]}}return H}function w(Y,Z,$,J){var H=Object.getOwnPropertyDescriptor(J,$);if(H.get!==void 0)if(H.configurable)Object.defineProperty(J,$,{value:Y}),G.push([J,$,Z,H]);else x.push([Z,$,Y]);else J[$]=Y,G.push([J,$,Z])}function f(Y,Z,$,J,H,X,U){X+=1;var W;if(typeof Y==="object"&&Y!==null){for(W=0;W<J.length;W++)if(J[W]===Y){w(QY,Y,Z,H);return}if(typeof U.depthLimit<"u"&&X>U.depthLimit){w(I,Y,Z,H);return}if(typeof U.edgesLimit<"u"&&$+1>U.edgesLimit){w(I,Y,Z,H);return}if(J.push(Y),Array.isArray(Y))for(W=0;W<Y.length;W++)f(Y[W],W,W,J,Y,X,U);else{var P=Object.keys(Y);for(W=0;W<P.length;W++){var z=P[W];f(Y[z],z,W,J,Y,X,U)}}J.pop()}}function KY(Y){return Y=typeof Y<"u"?Y:function(Z,$){return $},function(Z,$){if(x.length>0)for(var J=0;J<x.length;J++){var H=x[J];if(H[1]===Z&&H[0]===$){$=H[2],x.splice(J,1);break}}return Y.call(this,Z,$)}}function VY(Y){return Y!==null&&Y.lc===1&&Y.type==="constructor"&&Array.isArray(Y.id)}async function q(Y){if(Y&&typeof Y==="object")if(Array.isArray(Y))return await Promise.all(Y.map(($)=>q($)));else{let Z={};for(let[$,J]of Object.entries(Y))Z[$]=await q(J);if(Z.lc===2&&Z.type==="undefined")return;else if(Z.lc===2&&Z.type==="constructor"&&Array.isArray(Z.id))try{let $=Z.id[Z.id.length-1],J;switch($){case"Set":J=Set;break;case"Map":J=Map;break;case"RegExp":J=RegExp;break;case"Error":J=Error;break;default:return Z}if(Z.method)return J[Z.method](...Z.args||[]);else return new J(...Z.args||[])}catch($){return Z}else if(VY(Z))return l(JSON.stringify(Z));return Z}return Y}function M(Y,Z,$,J){return{lc:2,type:"constructor",id:[Y.name],method:Z??null,args:$??[],kwargs:J??{}}}function FY(Y){if(Y===void 0)return{lc:2,type:"undefined"};else if(Y instanceof Set||Y instanceof Map)return M(Y.constructor,void 0,[Array.from(Y)]);else if(Y instanceof RegExp)return M(RegExp,void 0,[Y.source,Y.flags]);else if(Y instanceof Error)return M(Y.constructor,void 0,[Y.message]);else if(Y?.lg_name==="Send")return{node:Y.node,args:Y.args};else return Y}class t{_dumps(Y){return new TextEncoder().encode(OY(Y,($,J)=>{return FY(J)}))}async dumpsTyped(Y){if(Y instanceof Uint8Array)return["bytes",Y];else return["json",this._dumps(Y)]}async _loads(Y){let Z=JSON.parse(Y);return q(Z)}async loadsTyped(Y,Z){if(Y==="bytes")return typeof Z==="string"?new TextEncoder().encode(Z):Z;else if(Y==="json")return this._loads(typeof Z==="string"?Z:new TextDecoder().decode(Z));else throw Error(`Unknown serialization type: ${Y}`)}}class a extends r.default{constructor(Y,Z=!0,$=300){super();this.id=Y,this.compressMessages=Z,this.ttl=$}serializer=new t;async encodeData(Y){let[Z,$]=await this.serializer.dumpsTyped(Y);return $}async decodeData(Y){return await this.serializer.loadsTyped("json",Y)}}class e{queues=new Map;defaultCompressMessages;queueConstructor;constructor(Y,Z={}){this.defaultCompressMessages=Z.defaultCompressMessages??!0,this.queueConstructor=Y}createQueue(Y,Z=300){return this.queues.set(Y,new this.queueConstructor(Y,this.defaultCompressMessages,Z)),this.queues.get(Y)}async getQueue(Y){let Z=this.queues.get(Y);if(!Z)if(await this.queueConstructor?.isQueueExist?.(Y))return this.createQueue(Y);else throw Error(`Queue with id '${Y}' does not exist`);return Z}async cancelQueue(Y){await this.removeQueue(Y)}async pushToQueue(Y,Z){await(await this.getQueue(Y)).push(Z)}async getQueueData(Y){let Z=this.queues.get(Y);if(!Z)throw Error(`Queue with id '${Y}' does not exist`);return await Z.getAll()}async clearQueue(Y){let Z=this.queues.get(Y);if(Z){let $=Z.clear();if($ instanceof Promise)await $}}async removeQueue(Y){let Z=this.queues.get(Y);if(!Z)return!1;try{await Z.cancel()}catch($){console.error("Error cancelling queue:",$)}try{let $=Z.clear();if($ instanceof Promise)await $}catch($){console.error("Error clearing queue:",$)}if(typeof Z.destroy==="function")try{await Z.destroy()}catch($){console.error("Error destroying queue:",$)}return this.queues.delete(Y)}getAllQueueIds(){return Array.from(this.queues.keys())}async getAllQueuesData(){let Y={};for(let[Z,$]of this.queues)Y[Z]=await $.getAll();return Y}clearAllQueues(){for(let Y of this.queues.values())Y.clear()}async copyQueue(Y,Z,$){let H=await(await this.getQueue(Y)).copyToQueue(Z,$);return this.queues.set(Z,H),H}}var E={};async function wY(Y,Z){E[Y]=Z}async function YY(Y,Z,$){if(!E[Y])throw Error(`Graph "${Y}" not found`);let J=typeof E[Y]==="function"?await E[Y](Z??{configurable:{}}):E[Y];if(typeof $?.checkpointer<"u")J.checkpointer=$?.checkpointer??D.globalCheckPointer;else J.checkpointer=D.globalCheckPointer;return J.store=$?.store??void 0,J}class b{db;adapter;constructor(Y){this.db=Y.db,this.adapter=Y}async setup(){await this.adapter.createTables(this.db),await this.adapter.createIndexes(this.db)}async create(Y){let Z=Y?.threadId||N(),$=new Date,J=Y?.metadata||{},H={};if(Y?.ifExists==="raise"){if(await this.db.selectFrom("threads").select("thread_id").where("thread_id","=",Z).executeTakeFirst())throw Error(`Thread with ID ${Z} already exists.`)}if(Y?.ifExists==="do_nothing"&&Y?.threadId){let X=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Z).executeTakeFirst();if(X)return{thread_id:X.thread_id,created_at:this.adapter.dbToDate(X.created_at).toISOString(),updated_at:this.adapter.dbToDate(X.updated_at).toISOString(),state_updated_at:this.adapter.dbToDate(X.updated_at).toISOString(),metadata:this.adapter.dbToJson(X.metadata),status:X.status,values:X.values?this.adapter.dbToJson(X.values):null,interrupts:this.adapter.dbToJson(X.interrupts),title:X.title}}return await this.db.insertInto("threads").values({thread_id:Z,created_at:this.adapter.dateToDb($),updated_at:this.adapter.dateToDb($),metadata:this.adapter.jsonToDb(J),status:"idle",values:null,interrupts:this.adapter.jsonToDb(H)}).execute(),{thread_id:Z,created_at:$.toISOString(),updated_at:$.toISOString(),state_updated_at:$.toISOString(),metadata:J,status:"idle",values:null,interrupts:H,title:null}}async search(Y){let Z=this.db.selectFrom("threads"),$;if(Y?.select)$=new Set(Y.select);else if(Y?.withoutDetails)$=new Set(["thread_id","created_at","updated_at","metadata","status","title"]);else $=new Set(["thread_id","created_at","updated_at","metadata","status","values","interrupts","title"]);let J=[];if($.has("thread_id"))J.push("thread_id");if($.has("created_at"))J.push("created_at");if($.has("updated_at"))J.push("updated_at");if($.has("metadata"))J.push("metadata");if($.has("status"))J.push("status");if($.has("values"))J.push("values");if($.has("interrupts"))J.push("interrupts");if($.has("title"))J.push("title");if(J.length>0)Z=Z.select(J);else Z=Z.selectAll();if(Y?.ids&&Y.ids.length>0)Z=Z.where("thread_id","in",Y.ids);if(Y?.status)Z=Z.where("status","=",Y.status);if(Y?.metadata)for(let[X,U]of Object.entries(Y.metadata))Z=Z.where(this.adapter.buildJsonQuery(this.db,"metadata",X,U));if(Y?.values)Z=Z.where((X)=>{return X("values","=",this.adapter.jsonToDb(Y.values))});if(Y?.sortBy){let X=Y.sortOrder==="desc"?"desc":"asc";Z=Z.orderBy(Y.sortBy,X)}if(Y?.limit!==void 0){if(Z=Z.limit(Y.limit),Y?.offset!==void 0)Z=Z.offset(Y.offset)}return(await Z.execute()).map((X)=>{let U={thread_id:X.thread_id};if($.has("created_at"))U.created_at=this.adapter.dbToDate(X.created_at).toISOString();if($.has("updated_at"))U.updated_at=this.adapter.dbToDate(X.updated_at).toISOString();if($.has("metadata"))U.metadata=this.adapter.dbToJson(X.metadata);if($.has("status"))U.status=X.status;if($.has("values"))U.values=X.values?this.adapter.dbToJson(X.values):null;if($.has("interrupts"))U.interrupts=this.adapter.dbToJson(X.interrupts);if($.has("title"))U.title=X.title;return U})}async get(Y){let Z=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Y).executeTakeFirst();if(!Z)throw Error(`Thread with ID ${Y} not found.`);return{thread_id:Z.thread_id,created_at:this.adapter.dbToDate(Z.created_at).toISOString(),updated_at:this.adapter.dbToDate(Z.updated_at).toISOString(),state_updated_at:this.adapter.dbToDate(Z.updated_at).toISOString(),metadata:this.adapter.dbToJson(Z.metadata),status:Z.status,values:Z.values?this.adapter.dbToJson(Z.values):null,interrupts:this.adapter.dbToJson(Z.interrupts),title:Z.title}}async set(Y,Z){if(!await this.db.selectFrom("threads").select("thread_id").where("thread_id","=",Y).executeTakeFirst())throw Error(`Thread with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.metadata!==void 0)J.metadata=this.adapter.jsonToDb(Z.metadata);if(Z.status!==void 0)J.status=Z.status;if(Z.values!==void 0)J.values=Z.values?this.adapter.jsonToDb(Z.values):null;if(Z.interrupts!==void 0)J.interrupts=this.adapter.jsonToDb(Z.interrupts);if(Z.title!==void 0)J.title=Z.title;await this.db.updateTable("threads").set(J).where("thread_id","=",Y).execute()}async delete(Y){if((await this.db.deleteFrom("threads").where("thread_id","=",Y).executeTakeFirst()).numDeletedRows===0n)throw Error(`Thread with ID ${Y} not found.`)}async updateState(Y,Z){let $=await this.get(Y);if($.status==="busy")throw Error(`Thread with ID ${Y} is busy, can't update state.`);let J=$.metadata?.graph_id;if(!J)return await this.set(Y,{values:Z.values??null}),{configurable:{thread_id:Y}};let H={configurable:{thread_id:Y,graph_id:J}},X=await YY(J,H),U=await X.updateState(H,Z.values),W=await X.getState(H);return await this.set(Y,{values:JSON.parse(C(W.values))}),U}async createRun(Y,Z,$){let J=N(),H=new Date,X=$?.metadata??{};return await this.db.insertInto("runs").values({run_id:J,thread_id:Y,assistant_id:Z,created_at:this.adapter.dateToDb(H),updated_at:this.adapter.dateToDb(H),status:"pending",metadata:this.adapter.jsonToDb(X),multitask_strategy:"reject"}).execute(),{run_id:J,thread_id:Y,assistant_id:Z,created_at:H.toISOString(),updated_at:H.toISOString(),status:"pending",metadata:X,multitask_strategy:"reject"}}async listRuns(Y,Z){let $=this.db.selectFrom("runs").selectAll().where("thread_id","=",Y).orderBy("created_at","desc");if(Z?.status)$=$.where("status","=",Z.status);if(Z?.limit!==void 0){if($=$.limit(Z.limit),Z?.offset!==void 0)$=$.offset(Z.offset)}return(await $.execute()).map((H)=>({run_id:H.run_id,thread_id:H.thread_id,assistant_id:H.assistant_id,created_at:this.adapter.dbToDate(H.created_at).toISOString(),updated_at:this.adapter.dbToDate(H.updated_at).toISOString(),status:H.status,metadata:this.adapter.dbToJson(H.metadata),multitask_strategy:H.multitask_strategy}))}async updateRun(Y,Z){if(!await this.db.selectFrom("runs").select("run_id").where("run_id","=",Y).executeTakeFirst())throw Error(`Run with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.status!==void 0)J.status=Z.status;if(Z.metadata!==void 0)J.metadata=this.adapter.jsonToDb(Z.metadata);if(Z.multitask_strategy!==void 0)J.multitask_strategy=Z.multitask_strategy;await this.db.updateTable("runs").set(J).where("run_id","=",Y).execute()}async count(Y){return(await this.search(Y)).length}async patch(Y,Z){let $=await this.db.selectFrom("threads").selectAll().where("thread_id","=",Y).executeTakeFirst();if(!$)throw Error(`Thread with ID ${Y} not found.`);let J={updated_at:this.adapter.dateToDb(new Date)};if(Z.metadata!==void 0){let H=this.adapter.dbToJson($.metadata)||{};J.metadata=this.adapter.jsonToDb({...H,...Z.metadata})}if(Z.status!==void 0)J.status=Z.status;if(Z.values!==void 0)J.values=Z.values?this.adapter.jsonToDb(Z.values):null;if(Z.interrupts!==void 0)J.interrupts=this.adapter.jsonToDb(Z.interrupts);if(Z.title!==void 0)J.title=Z.title;return await this.db.updateTable("threads").set(J).where("thread_id","=",Y).execute(),await this.get(Y)}async getState(Y,Z){let $=await this.get(Y);if(Z?.checkpointId){let H=await this.db.selectFrom("checkpoints").selectAll().where("checkpoint_id","=",Z.checkpointId).where("thread_id","=",Y).executeTakeFirst();if(!H)throw Error(`Checkpoint with ID ${Z.checkpointId} not found for thread ${Y}`);return{values:this.adapter.dbToJson(H.values),next:this.adapter.dbToJson(H.next),metadata:this.adapter.dbToJson(H.metadata),checkpoint:{id:H.checkpoint_id,thread_id:Y,parent_checkpoint_id:null,checkpoint_ns:"",metadata:this.adapter.dbToJson(H.metadata),created_at:this.adapter.dbToDate(H.created_at).toISOString()},created_at:this.adapter.dbToDate(H.created_at).toISOString(),parent_checkpoint:null,tasks:[]}}return{values:$.values||{},next:[],metadata:$.metadata,checkpoint:null,created_at:$.created_at,parent_checkpoint:null,tasks:[]}}async getStateHistory(Y,Z){let J=await this.db.selectFrom("checkpoints").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").execute(),H=J.map((X)=>({values:this.adapter.dbToJson(X.values),next:this.adapter.dbToJson(X.next),metadata:this.adapter.dbToJson(X.metadata),checkpoint:{thread_id:Y,checkpoint_ns:"",checkpoint_id:X.checkpoint_id,checkpoint_map:null},created_at:this.adapter.dbToDate(X.created_at).toISOString(),parent_checkpoint:null,tasks:[]}));if(Z?.before){let X=J.findIndex((U)=>U.checkpoint_id===Z.before);if(X!==-1)H=H.slice(X+1)}if(Z?.limit)H=H.slice(0,Z.limit);return H}async copy(Y){let Z=await this.get(Y),$=N(),J=new Date;await this.db.insertInto("threads").values({thread_id:$,created_at:this.adapter.dateToDb(J),updated_at:this.adapter.dateToDb(J),metadata:this.adapter.jsonToDb(Z.metadata),status:Z.status,values:Z.values?this.adapter.jsonToDb(Z.values):null,interrupts:this.adapter.jsonToDb(Z.interrupts),title:Z.title}).execute();let H=await this.db.selectFrom("checkpoints").selectAll().where("thread_id","=",Y).orderBy("created_at","asc").execute();for(let X of H)await this.db.insertInto("checkpoints").values({checkpoint_id:N(),thread_id:$,values:X.values,next:X.next,config:X.config,created_at:X.created_at,metadata:X.metadata}).execute();return{...Z,thread_id:$,created_at:J.toISOString(),updated_at:J.toISOString()}}async saveCheckpoint(Y,Z,$,J,H){await this.db.insertInto("checkpoints").values({checkpoint_id:N(),thread_id:Y,values:this.adapter.jsonToDb(Z),next:this.adapter.jsonToDb($),config:this.adapter.jsonToDb(J),created_at:this.adapter.dateToDb(new Date),metadata:this.adapter.jsonToDb(H||{})}).execute()}async setTitleIfNull(Y,Z){return(await this.db.updateTable("threads").set({title:Z,updated_at:this.adapter.dateToDb(new Date)}).where("thread_id","=",Y).where("title","is",null).executeTakeFirst()).numUpdatedRows>0n}}function DY(Y){let[Z,$]=Y.split("::");return{threadId:Z,checkpointNs:$??""}}function T(Y,Z,$){return`${Y}::${Z}::${$}`}function m(Y){if(Y===null||typeof Y!=="object")return JSON.stringify(Y);if(Array.isArray(Y))return JSON.stringify(Y.map((J)=>m(J)));let Z={},$=Object.keys(Y).sort();for(let J of $)Z[J]=Y[J];return JSON.stringify(Z,(J,H)=>{if(H!==null&&typeof H==="object"&&!Array.isArray(H)){let X={},U=Object.keys(H).sort();for(let W of U)X[W]=H[W];return X}return H})}class ZY extends s{storage={};writes={};constructor(Y){super(Y)}async get(Y){return(await this.getTuple(Y))?.checkpoint}async _migratePendingSends(Y,Z,$,J){let H=Y,X=T(Z,$,J),U=await Promise.all(Object.values(this.writes[X]??{}).filter(([W,P])=>P===S).map(async([W,P,z])=>await this.serde.loadsTyped("json",z)));H.channel_values??={},H.channel_values[S]=U,H.channel_versions??={},H.channel_versions[S]=Object.keys(H.channel_versions).length>0?n(...Object.values(H.channel_versions)):this.getNextVersion(void 0)}async _loadPendingWrites(Y,Z,$){let J=T(Y,Z,$),H=this.writes[J]??{};if(Object.keys(H).length===0)return[];return await Promise.all(Object.values(H).map(async([X,U,W])=>{return[X,U,await this.serde.loadsTyped("json",W)]}))}_cleanupOldWrites(Y,Z,$){let J=T(Y,Z,$);delete this.writes[J]}_checkMetadataFilterMatch(Y,Z){for(let[$,J]of Object.entries(Z)){let H=Y?.[$];if(J===null){if(!($ in(Y||{}))||H!==null)return!1}else if(typeof J==="object"&&!Array.isArray(J)){if(typeof H!=="object"||H===null)return!1;if(m(J)!==m(H))return!1}else if(H!==J)return!1}return!0}async getTuple(Y){let Z=Y.configurable?.thread_id,$=Y.configurable?.checkpoint_ns??"",J=d(Y);if(Z===void 0)return;let H=this.storage[Z]?.[$];if(H===void 0)return;let{checkpoint:X,metadata:U,checkpoint_id:W,parent_checkpoint_id:P}=H;if(J&&W!==J)return;let z=await this.serde.loadsTyped("json",X);if(z.v<4&&P!==void 0)await this._migratePendingSends(z,Z,$,P);let Q=await this._loadPendingWrites(Z,$,W),K=await this.serde.loadsTyped("json",U),F={config:{configurable:{thread_id:Z,checkpoint_ns:$,checkpoint_id:W}},checkpoint:z,metadata:K,pendingWrites:Q};if(P!==void 0)F.parentConfig={configurable:{thread_id:Z,checkpoint_ns:$,checkpoint_id:P}};return F}async*list(Y,Z){let{before:$,limit:J,filter:H}=Z??{},X=Y.configurable?.thread_id?[Y.configurable.thread_id]:Object.keys(this.storage),U=Y.configurable?.checkpoint_ns,W=Y.configurable?.checkpoint_id,P=[];for(let Q of X){let K=this.storage[Q];if(K===void 0)continue;for(let F of Object.keys(K)){if(U!==void 0&&F!==U)continue;let A=K[F];if(A===void 0)continue;let{checkpoint_id:V}=A;if(W&&V!==W)continue;if($?.configurable?.checkpoint_id&&V>=$.configurable.checkpoint_id)continue;let B=await this.serde.loadsTyped("json",A.metadata);if(H&&!this._checkMetadataFilterMatch(B,H))continue;P.push({threadId:Q,checkpointNs:F,namespaceData:A})}}P.sort((Q,K)=>K.namespaceData.checkpoint_ts-Q.namespaceData.checkpoint_ts);let z=0;for(let{threadId:Q,checkpointNs:K,namespaceData:F}of P){if(J!==void 0&&z>=J)return;let{checkpoint:A,metadata:V,checkpoint_id:B,parent_checkpoint_id:_}=F,O=await this.serde.loadsTyped("json",A);if(O.v<4&&_!==void 0)await this._migratePendingSends(O,Q,K,_);let j=await this._loadPendingWrites(Q,K,B),UY=await this.serde.loadsTyped("json",V),y={config:{configurable:{thread_id:Q,checkpoint_ns:K,checkpoint_id:B}},checkpoint:O,metadata:UY,pendingWrites:j};if(_!==void 0)y.parentConfig={configurable:{thread_id:Q,checkpoint_ns:K,checkpoint_id:_}};z++,yield y}}async put(Y,Z,$,J){let H=i(Z),X=Y.configurable?.thread_id,U=Y.configurable?.checkpoint_ns??"",W=Y.configurable?.checkpoint_id;if(X===void 0)throw Error("thread_id is required");let P=Z.id||u(0);if(!this.storage[X])this.storage[X]={};let z=this.storage[X][U];if(z!==void 0&&z.checkpoint_id!==P)this._cleanupOldWrites(X,U,z.checkpoint_id);let[[,Q],[,K]]=await Promise.all([this.serde.dumpsTyped(H),this.serde.dumpsTyped($)]);return this.storage[X][U]={checkpoint:Q,metadata:K,checkpoint_id:P,parent_checkpoint_id:W,checkpoint_ts:Date.now()},{configurable:{thread_id:X,checkpoint_ns:U,checkpoint_id:P}}}async putWrites(Y,Z,$){let J=Y.configurable?.thread_id,H=Y.configurable?.checkpoint_ns??"",X=Y.configurable?.checkpoint_id;if(!J||!X)throw Error("thread_id and checkpoint_id are required");let U=T(J,H,X),W=this.writes[U];if(this.writes[U]===void 0)this.writes[U]={};await Promise.all(Z.map(async([P,z],Q)=>{let[,K]=await this.serde.dumpsTyped(z),F=[$,o[P]||Q],A=`${F[0]},${F[1]}`;if(F[1]>=0&&W&&A in W)return;this.writes[U][A]=[$,P,K]}))}async deleteThread(Y){delete this.storage[Y];for(let Z of Object.keys(this.writes)){let{threadId:$}=DY(Z.split("::").slice(0,2).join("::"));if($===Y)delete this.writes[Z]}}}class R{event;data;id;constructor(Y,Z){this.event=Y,this.data=Z}}class $Y extends R{constructor(){super("__system_cancel__","user cancel this run")}}class JY extends R{constructor(){super("__stream_end__","stream end")}}class v extends R{constructor(Y){super("__stream_error__",{error:Y.name,message:Y.message})}}class k extends a{data=[];activeGenerators=new Set;isDestroyed=!1;async push(Y){if(this.isDestroyed)return;let Z=this.compressMessages?await this.encodeData(Y):Y;process.env.LG_TEMP_MESSAGE!=="true"&&this.data.push(Z),this.emit("dataChange",Z)}onDataChange(Y){if(this.isDestroyed)return()=>{};return this.on("dataChange",async(Z)=>{if(this.isDestroyed)return;Y(this.compressMessages?await this.decodeData(Z):Z)}),()=>this.off("dataChange",Y)}async*onDataReceive(){if(this.isDestroyed)return;let Y=new AbortController;this.activeGenerators.add(Y);let Z=[],$=null,J=!1,H=!1,X=null,U=async(z)=>{if(H||Y.signal.aborted)return;try{let Q=this.compressMessages?await this.decodeData(z):z;if(Z.push(Q),Q.event==="__stream_end__"||Q.event==="__stream_error__"||Q.event==="__stream_cancel__"){if(X)clearTimeout(X),X=null;if(X=setTimeout(()=>{if(J=!0,$)$(),$=null},300),Q.event==="__stream_cancel__")Y.abort("stream cancelled")}if($)$(),$=null}catch(Q){if(console.error("Error in handleData:",Q),$)$(),$=null}};this.on("dataChange",U);let W=()=>{if(J=!0,$)$(),$=null};Y.signal.addEventListener("abort",W);let P=()=>{if(H)return;if(H=!0,X)clearTimeout(X),X=null;try{this.off("dataChange",U)}catch(z){}try{Y.signal.removeEventListener("abort",W)}catch(z){}if($)$(),$=null;Z.length=0,this.activeGenerators.delete(Y)};try{if(Y.signal.aborted||this.isDestroyed)return;while(!J&&!Y.signal.aborted&&!this.isDestroyed)if(Z.length>0){for(let z of Z)yield z;Z.length=0}else await new Promise((z)=>{$=z})}finally{P()}}async getAll(){if(this.isDestroyed)return[];return this.compressMessages?await Promise.all(this.data.map((Y)=>this.decodeData(Y))):[...this.data]}clear(){this.data.length=0}cancelSignal=new AbortController;async cancel(){for(let Y of this.activeGenerators)try{Y.abort("user cancel this run")}catch(Z){}if(this.activeGenerators.clear(),!this.cancelSignal.signal.aborted)this.cancelSignal.abort("user cancel this run");if(!this.isDestroyed)await this.push(new $Y)}async copyToQueue(Y,Z){let $=this.data.slice(),J=new k(Y,this.compressMessages,Z??this.ttl);return J.data=$,J}async destroy(){if(this.isDestroyed)return;this.isDestroyed=!0,await this.cancel(),this.clear(),this.removeAllListeners(),this.activeGenerators.clear()}}class XY{threads=[];checkpoints=new Map;async setup(){return}async create(Y){let Z=Y?.threadId||N();if(Y?.ifExists==="raise"&&this.threads.some((J)=>J.thread_id===Z))throw Error(`Thread with ID ${Z} already exists.`);let $={thread_id:Z,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),state_updated_at:new Date().toISOString(),metadata:Y?.metadata||{},status:"idle",values:null,interrupts:{},title:null};return this.checkpoints.set(Z,[]),this.threads.push($),$}async search(Y){let Z=[...this.threads];if(Y?.ids&&Y.ids.length>0)Z=Z.filter((X)=>Y.ids.includes(X.thread_id));if(Y?.status)Z=Z.filter((X)=>X.status===Y.status);if(Y?.metadata){for(let X in Y.metadata)if(Object.prototype.hasOwnProperty.call(Y.metadata,X))Z=Z.filter((U)=>U.metadata&&U.metadata[X]===Y.metadata?.[X])}if(Y?.values)Z=Z.filter((X)=>{if(!X.values)return!1;return this.deepEqual(X.values,Y.values)});if(Y?.sortBy)Z.sort((X,U)=>{let W,P;switch(Y.sortBy){case"thread_id":W=X.thread_id,P=U.thread_id;break;case"created_at":W=new Date(X.created_at).getTime(),P=new Date(U.created_at).getTime();break;case"updated_at":W=new Date(X.updated_at).getTime(),P=new Date(U.updated_at).getTime();break;case"status":W=X.status,P=U.status;break;default:return 0}if(Y.sortOrder==="desc")return P>W?1:P<W?-1:0;else return W>P?1:W<P?-1:0});let $=Y?.offset||0,J=Y?.limit||Z.length;return Z.slice($,$+J).map((X)=>{let U={thread_id:X.thread_id},W;if(Y?.select)W=new Set(Y.select);else if(Y?.withoutDetails)W=new Set(["thread_id","created_at","updated_at","metadata","status"]);else W=new Set(["thread_id","created_at","updated_at","metadata","status","values","interrupts","title"]);if(W.has("thread_id"))U.thread_id=X.thread_id;if(W.has("created_at"))U.created_at=X.created_at;if(W.has("updated_at"))U.updated_at=X.updated_at;if(W.has("metadata"))U.metadata=X.metadata;if(W.has("status"))U.status=X.status;if(W.has("values"))U.values=X.values;if(W.has("interrupts"))U.interrupts=X.interrupts;if(W.has("title"))U.title=X.title;return U})}deepEqual(Y,Z){if(Y===Z)return!0;if(typeof Y!==typeof Z)return!1;if(typeof Y!=="object"||Y===null||Z===null)return!1;let $=Object.keys(Y),J=Object.keys(Z);if($.length!==J.length)return!1;for(let H of $){if(!J.includes(H))return!1;if(!this.deepEqual(Y[H],Z[H]))return!1}return!0}async get(Y){let Z=this.threads.find(($)=>$.thread_id===Y);if(!Z)throw Error(`Thread with ID ${Y} not found.`);return Z}async set(Y,Z){let $=this.threads.findIndex((J)=>J.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);this.threads[$]={...this.threads[$],...Z}}async delete(Y){let Z=this.threads.length;if(this.threads=this.threads.filter(($)=>$.thread_id!==Y),this.checkpoints.delete(Y),this.threads.length===Z)throw Error(`Thread with ID ${Y} not found.`)}async updateState(Y,Z){let $=this.threads.findIndex((H)=>H.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);let J=this.threads[$];if(J.status==="busy")throw Error(`Thread with ID ${Y} is busy, can't update state.`);if(this.threads[$]={...J,values:Z.values,updated_at:new Date().toISOString()},J.metadata?.graph_id){let H=J.metadata?.graph_id,X={configurable:{thread_id:Y,graph_id:H}};try{let U=await YY(H,X),W=await U.updateState(X,Z.values),P=await U.getState(X);return await this.set(Y,{values:JSON.parse(C(P.values))}),W}catch(U){console.warn("Failed to update graph state:",U)}}return{configurable:{thread_id:Y}}}runs=[];async createRun(Y,Z,$){let H={run_id:N(),thread_id:Y,assistant_id:Z,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),status:"pending",metadata:$?.metadata??{},multitask_strategy:"reject"};return this.runs.push(H),H}async listRuns(Y,Z){let $=[...this.runs];if(Z?.status)$=$.filter((J)=>J.status===Z.status);if(Z?.limit)$=$.slice(Z.offset||0,(Z.offset||0)+Z.limit);return $}async updateRun(Y,Z){let $=this.runs.findIndex((J)=>J.run_id===Y);if($===-1)throw Error(`Run with ID ${Y} not found.`);this.runs[$]={...this.runs[$],...Z}}async count(Y){return(await this.search(Y)).length}async patch(Y,Z){let $=this.threads.findIndex((H)=>H.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);let J={...this.threads[$],...Z,updated_at:new Date().toISOString(),metadata:Z.metadata?{...this.threads[$].metadata,...Z.metadata}:this.threads[$].metadata};return this.threads[$]=J,J}async getState(Y,Z){let $=await this.get(Y);if(Z?.checkpointId){let X=(this.checkpoints.get(Y)||[]).find((U)=>U.checkpoint_id===Z.checkpointId);if(!X)throw Error(`Checkpoint with ID ${Z.checkpointId} not found for thread ${Y}`);return{values:X.values,next:X.next,metadata:X.metadata,checkpoint:{id:X.checkpoint_id,thread_id:Y,parent_checkpoint_id:null,checkpoint_ns:"",metadata:X.metadata,created_at:X.created_at},created_at:X.created_at,parent_checkpoint:null,tasks:[]}}return{values:$.values||{},next:[],metadata:$.metadata,checkpoint:null,created_at:$.created_at,parent_checkpoint:null,tasks:[]}}async getStateHistory(Y,Z){let $=this.checkpoints.get(Y)||[],J=$.map((H)=>({values:H.values,next:H.next,metadata:H.metadata,checkpoint:{checkpoint_id:H.checkpoint_id,thread_id:Y,checkpoint_ns:"",checkpoint_map:void 0},created_at:H.created_at,parent_checkpoint:null,tasks:[]}));if(Z?.before){let H=$.findIndex((X)=>X.checkpoint_id===Z.before);if(H!==-1)J=J.slice(H+1)}if(Z?.limit)J=J.slice(0,Z.limit);return J}async copy(Y){let Z=await this.get(Y),$=N(),J={...Z,thread_id:$,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};this.threads.push(J);let X=(this.checkpoints.get(Y)||[]).map((U)=>({...U,checkpoint_id:N(),thread_id:$}));return this.checkpoints.set($,X),J}async saveCheckpoint(Y,Z,$,J,H){let X=this.checkpoints.get(Y)||[],U={checkpoint_id:N(),thread_id:Y,values:Z,next:$,config:J,created_at:new Date().toISOString(),metadata:H};X.push(U),this.checkpoints.set(Y,X)}async setTitleIfNull(Y,Z){let $=this.threads.findIndex((J)=>J.thread_id===Y);if($===-1)throw Error(`Thread with ID ${Y} not found.`);if(this.threads[$].title===null)return this.threads[$]={...this.threads[$],title:Z,updated_at:new Date().toISOString()},!0;return!1}}var AY=async()=>{if(process.env.REDIS_URL&&(process.env.CHECKPOINT_TYPE==="redis"||process.env.CHECKPOINT_TYPE==="shallow/redis")){if(process.env.CHECKPOINT_TYPE==="redis"){console.debug("LG | Using redis as checkpoint");let{RedisSaver:Y}=await import("./chunk-wt3p1w1g.js");return await Y.fromUrl(process.env.REDIS_URL,{defaultTTL:60,refreshOnRead:!0})}if(process.env.CHECKPOINT_TYPE==="shallow/redis"){console.debug("LG | Using shallow redis as checkpoint");let{ShallowRedisSaver:Y}=await import("./chunk-f7cps5x1.js");return await Y.fromUrl(process.env.REDIS_URL)}}if(process.env.DATABASE_URL&&HY(process.env.DATABASE_URL)==="postgres"){console.debug("LG | Using postgres as checkpoint");let{createPGCheckpoint:Y}=await import("./chunk-nqh1pptf.js");return Y()}if(process.env.SQLITE_DATABASE_URI){if(process.env.CHECKPOINT_TYPE==="sqlite"){console.debug("LG | Using sqlite (full) as checkpoint");let{SqliteSaver:$}=await import("./chunk-40ht9pe1.js");return await $.fromConnStringAsync(process.env.SQLITE_DATABASE_URI)}console.debug("LG | Using shallow sqlite as checkpoint (default)");let{SqliteShallowSaver:Y}=await import("./chunk-g2zskge5.js");return await Y.fromConnStringAsync(process.env.SQLITE_DATABASE_URI)}return console.log("LG | You are using memory as checkpoint!"),console.log("\x1B[33m%s\x1B[0m","LG | set SQLITE_DATABASE_URI=./.langgraph_api/langgraph.db to your .env file to use \x1B[1mSQLite\x1B[0m for dev!"),console.log("\x1B[33m%s\x1B[0m","LG | set DATABASE_URL=postgresql://user:pass@localhost:5432/db to your .env file to use \x1B[1mPostgreSQL\x1B[0m for prod!"),new ZY},BY=async()=>{let Y;if(process.env.REDIS_URL){console.debug("LG | Using redis as stream queue");let{RedisStreamQueue:Z}=await import("./chunk-g974hxbz.js");Y=Z}else Y=k;return new e(Y)};function HY(Y){let Z=Y.toLowerCase();if(Z.startsWith("http://")||Z.startsWith("https://"))return"remote";return"postgres"}var NY=async(Y)=>{if(process.env.DATABASE_URL){if(HY(process.env.DATABASE_URL)==="remote"){console.debug("LG | Using Remote PostgreSQL ThreadsManager");let{RemoteKyselyThreadsManager:$}=await import("./chunk-tjvhqr94.js"),J=new $(process.env.DATABASE_URL);if(process.env.DATABASE_INIT==="true")await J.setup();return J}else if(Y.checkpointer){console.debug("LG | Using PostgreSQL ThreadsManager");let{PostgresAdapter:$}=await import("./chunk-wmyc17aa.js"),J=Y.checkpointer.pool,H=new b(new $(J));if(process.env.DATABASE_INIT==="true")await H.setup();return H}}if(process.env.SQLITE_DATABASE_URI&&Y.checkpointer){console.debug("LG | Using SQLite ThreadsManager");let{SQLiteAdapter:Z}=await import("./chunk-8f19qk9r.js"),$=Y.checkpointer.db,J=new b(new Z($));return await J.setup(),J}return new XY};function RY(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y))return Y.find(($)=>$.type==="text")?.text||"";if(Y?.text)return Y.text;return""}var LY=(Y,Z)=>{let $=Y?.messages;if(!$||!Array.isArray($)||$.length===0)return null;let J=$[0];if(!J)return null;let H=RY(J.content);if(!H)return null;let X=H.trim().replace(/\n/g," ");if(!X)return null;let U=15,W=X.slice(0,U);return W.length<X.length?`${W}...`:W};class D{static globalMessageQueue=null;static globalCheckPointer=null;static globalThreadsManager=null;static isInitialized=null;static _titleGenerator=LY;static setTitleGenerator(Y){D._titleGenerator=Y}static getTitleGenerator(){return D._titleGenerator}static async initGlobal(){if(D.isInitialized)return D.isInitialized;return D.isInitialized=(async()=>{let[Y,Z]=await Promise.all([BY(),AY()]);console.debug("LG | checkpointer created");let $=await NY({checkpointer:Z});console.debug("LG | threads manager created"),console.debug("LG | global init done"),D.globalMessageQueue=Y,D.globalCheckPointer=Z,D.globalThreadsManager=$})(),D.isInitialized}}async function _Y(Y,Z,$,J,H){let U=J.config?.configurable?.graph_id;if(!U||typeof U!=="string")throw Error("Invalid or missing graph_id");let W=await H.getGraph(U,J.config,{checkpointer:J.temporary?null:void 0}),P=Array.isArray(J.streamMode)?J.streamMode:J.streamMode?[J.streamMode]:[],z=new Set(["values",...P.filter((V)=>V!=="events"&&V!=="messages-tuple")]);if(P.includes("messages-tuple"))z.add("messages");if(P.includes("messages"))z.add("values");await $.push(new R("metadata",{run_id:Z.run_id,attempt:H.attempt,graph_id:U}));let Q={...J.config?.metadata,run_attempt:H.attempt},K=null,F=null,A=null;try{K=new Set,F=new Map,A=await W.stream(J.command!=null?PY(J.command):J.input??null,{interruptAfter:J.interruptAfter,interruptBefore:J.interruptBefore,tags:J.config?.tags,configurable:J.config?.configurable,recursionLimit:J.config?.recursionLimit,subgraphs:J.streamSubgraphs,metadata:Q,runId:Z.run_id,streamMode:[...z],signal:$.cancelSignal.signal});for await(let V of A){let B=[];if(V.length===3)B=V.splice(0,1);let _=(O)=>{if(B.length===0)return O;if(B.length===1&&B[0]?.length===0)return O;return`${O}|${B.join("|")}`};if(V[0]==="values"){let O=V[1];if(_("values")==="values")if(await $.push(new R(_("values"),O)),O?.__interrupt__)await Y.set(Z.thread_id,{status:"interrupted",interrupts:O?JSON.parse(C(O)):""});else await Y.set(Z.thread_id,{values:O?JSON.parse(C(O)):""})}else if(V[0]==="messages"){let O=V[1][0],j=V[1][1];if(O.id&&!K.has(O.id))await $.push(new R("messages/metadata",{[O.id]:j})),K.add(O.id);if(g.isInstance(O)&&O.id){if(F.set(O.id,[...F.get(O.id)??[],O]),await $.push(new R("messages/partial",[F.get(O.id).reduce(p)])),O.content===""&&!O.tool_calls?.length)F.delete(O.id)}else await $.push(new R("messages/partial",[O]))}else if(V[0]==="updates"){let O=V[1];await $.push(new R(_("updates"),O))}}}catch(V){if(!(V instanceof Error&&V.message?.includes("cancel"))){console.error("streamStateWithQueue error:",V);try{await $.push(new v(V))}catch(B){}}throw V}finally{try{await $.push(new JY)}catch(V){}if(K)K.clear(),K=null;if(F)F.clear(),F=null;A=null}}var C=(Y,Z=0)=>{return JSON.stringify(Y,function($,J){let H=this[$];if(H!=null&&typeof H==="object"&&"toDict"in H&&typeof H.toDict==="function"){let{type:X,data:U}=H.toDict();return{...U,type:X}}return J},Z)};async function*MY(Y,Z,$,J){Z=await Z;let{run_id:H,thread_id:X}=Z,U=null,W=null,P=null,z=!1;try{await Y.set(X,{status:"busy"}),await Y.updateRun(Z.run_id,{status:"running"}),W=D.globalMessageQueue.createQueue(H),U=W.onDataReceive(),P=_Y(Y,Z,W,$,J).catch((Q)=>{if(z)return;if(Q.message!=="user cancel this run")console.error("Queue task error:",Q);D.globalMessageQueue.pushToQueue(H,new v(Q))});for await(let Q of U)yield Q;await Y.updateRun(Z.run_id,{status:"success"})}catch(Q){console.error("Stream error:",Q),await Y.updateRun(Z.run_id,{status:"error"}),await Y.set(X,{status:"error"})}finally{if(z=!0,U){try{await U.return(void 0)}catch(K){}U=null}if(W&&!W.cancelSignal.signal.aborted)try{W.cancelSignal.abort("Stream consumer disconnected")}catch(K){}if(P){try{await Promise.race([P,new Promise((K)=>setTimeout(K,1000))])}catch(K){}P=null}if((await Y.get(X)).status==="interrupted")await D.globalMessageQueue.copyQueue(H,X,30000);else await Y.set(X,{status:"idle",interrupts:{}});await D.globalMessageQueue.removeQueue(H),W=null}}
|
|
2
2
|
export{a as n,E as o,wY as p,YY as q,$Y as r,D as s,C as t,MY as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{hf as a}from"./chunk-vfxjbdz4.js";import"./chunk-y8qhrx11.js";export{a as FileSystemPluginStore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as M}from"./chunk-
|
|
1
|
+
import{j as M}from"./chunk-h8fdexm4.js";import"./chunk-4wnmk2tj.js";import{Ae as G,De as Z,Je as Y,Le as _,Ne as $,we as T}from"./chunk-c7kd2qrp.js";import{Qe as L}from"./chunk-a9gpb2tx.js";import{Te as w}from"./chunk-dvbb3dd1.js";import"./chunk-vrnj0659.js";import"./chunk-a9tw6d68.js";import"./chunk-k4q8j7pg.js";import"./chunk-spx7nn8t.js";import"./chunk-vfxjbdz4.js";import"./chunk-qxebn3jw.js";import"./chunk-yy8p9zph.js";import"./chunk-mnnyjmgw.js";import"./chunk-fzh0v6r0.js";import"./chunk-t6440ajd.js";import"./chunk-f0m4532p.js";import"./chunk-pe8mzxwn.js";import"./chunk-hp2jzn9x.js";import"./chunk-nk62q95g.js";import"./chunk-nmzx5nmt.js";import"./chunk-e8kxa5vj.js";import"./chunk-q1cxrg0x.js";import"./chunk-tjg2e8v3.js";import"./chunk-nsw5168d.js";import"./chunk-hve2a279.js";import{Dl as K}from"./chunk-y8qhrx11.js";var z=K(T(),1);var y=K(Y(),1),h=({onClose:H})=>{let{config:U,updateConfig:N}=M(),B=U?.switch_command||"default",O=z.useCallback(async()=>{let q=await L(w);return Object.values(q)},[]),Q=z.useCallback((q,F,J)=>{let P=q.id===B;return y.jsxDEV(_,{isSelected:J,isCurrent:P,children:[y.jsxDEV(G,{bold:!0,children:[F+1,". ",q.id]},void 0,!0,void 0,this),y.jsxDEV(Z,{},void 0,!1,void 0,this),y.jsxDEV(G,{dimColor:!0,children:q.description},void 0,!1,void 0,this)]},`agent-${q.id}`,!0,void 0,this)},[B]),R=z.useCallback((q)=>{return q.id===B},[B]),W=z.useCallback(async(q)=>{let F=q.id==="default"?"":q.id;N({switch_command:F}),H()},[N,H]),X=z.useCallback((q)=>{let F=q.find((J)=>J.id===B);return F?y.jsxDEV(G,{color:"gray",dimColor:!0,children:["当前 Agent: ",y.jsxDEV(G,{color:"green",children:F.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null},[B]),v=z.useMemo(()=>({id:"agent",title:"Agent 选择",icon:"\uD83E\uDD16",dataSource:O,searchable:!0,searchFields:["id","name","description"],searchPlaceholder:"搜索 agent (名称/描述)...",filterable:!0,filters:[{id:"default",label:"默认",predicate:(q)=>q.id==="default"},{id:"custom",label:"自定义",predicate:(q)=>q.id!=="default"}],defaultFilter:"all",itemHeight:3,visibleCount:15,renderItem:Q,isSelected:R,onSelect:W,showCount:!0,statusInfo:X}),[O,Q,R,W,X]);return y.jsxDEV($,{config:v,onClose:H},void 0,!1,void 0,this)},m=h;export{m as default};
|