zen-code 4.10.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/app.js +149 -239
  2. package/dist/{chunk-pzb224c5.js → chunk-0p3df51n.js} +2 -2
  3. package/dist/{chunk-tjg2e8v3.js → chunk-0pzpg2ra.js} +2 -2
  4. package/dist/{chunk-wmyc17aa.js → chunk-142wmdx8.js} +1 -1
  5. package/dist/chunk-1t3rabge.js +1 -0
  6. package/dist/chunk-2gd8vzrf.js +2 -0
  7. package/dist/{chunk-vrnj0659.js → chunk-2z45fjmt.js} +51 -51
  8. package/dist/chunk-3gn0c0j2.js +2 -0
  9. package/dist/chunk-3nhw50tg.js +1 -0
  10. package/dist/{chunk-g974hxbz.js → chunk-4260bzp9.js} +1 -1
  11. package/dist/{chunk-5c3bpcpm.js → chunk-4vh3dxeg.js} +1 -1
  12. package/dist/{chunk-hnnwbfqk.js → chunk-5e2s5jvw.js} +2 -2
  13. package/dist/{chunk-s5cqejr6.js → chunk-5kcxxes1.js} +1 -1
  14. package/dist/chunk-6t0qzren.js +2 -0
  15. package/dist/chunk-74k5n8f5.js +2 -0
  16. package/dist/chunk-780j97nd.js +1 -0
  17. package/dist/chunk-78t2g3ht.js +1 -0
  18. package/dist/chunk-7d48d71t.js +228 -0
  19. package/dist/chunk-96b00ygr.js +1 -0
  20. package/dist/chunk-9kbktaf8.js +89 -0
  21. package/dist/chunk-a4rvf135.js +1 -0
  22. package/dist/chunk-ahsvdb98.js +1 -0
  23. package/dist/{chunk-k4q8j7pg.js → chunk-an34z8wv.js} +1 -1
  24. package/dist/chunk-arm90pny.js +1 -0
  25. package/dist/{chunk-40ht9pe1.js → chunk-avqzptcg.js} +2 -2
  26. package/dist/{chunk-s1tbdcs8.js → chunk-b0yk07x5.js} +1 -1
  27. package/dist/{chunk-nqh1pptf.js → chunk-be8n8w26.js} +1 -1
  28. package/dist/{chunk-c7kd2qrp.js → chunk-bqkrynm6.js} +112 -111
  29. package/dist/chunk-bv28r5cf.js +1 -0
  30. package/dist/{chunk-mmx0k2yq.js → chunk-c59eqb10.js} +1 -1
  31. package/dist/{chunk-t6440ajd.js → chunk-cbr2vrpt.js} +2 -2
  32. package/dist/{chunk-fzh0v6r0.js → chunk-csn4vg3d.js} +2 -2
  33. package/dist/chunk-df36fv24.js +1 -0
  34. package/dist/chunk-e3jv1c1w.js +1 -0
  35. package/dist/{chunk-vbb3m0vz.js → chunk-e6m161vn.js} +1 -1
  36. package/dist/{chunk-vfxjbdz4.js → chunk-eqetcfer.js} +1 -1
  37. package/dist/{chunk-8f19qk9r.js → chunk-eze2fzrq.js} +1 -1
  38. package/dist/{chunk-nmzx5nmt.js → chunk-femf7e4d.js} +1 -1
  39. package/dist/{chunk-gt8c6dne.js → chunk-fvg6pct8.js} +1 -1
  40. package/dist/chunk-g2n6hnjp.js +5 -0
  41. package/dist/{chunk-e8kxa5vj.js → chunk-ge071wp4.js} +2 -2
  42. package/dist/chunk-h9w6y105.js +1 -0
  43. package/dist/chunk-hzxg9kx6.js +1 -0
  44. package/dist/{chunk-g2zskge5.js → chunk-j2qd9mfs.js} +2 -2
  45. package/dist/chunk-j40cj742.js +2 -0
  46. package/dist/chunk-jbqqb1ht.js +2 -0
  47. package/dist/chunk-jz0kw4yt.js +2 -0
  48. package/dist/chunk-kknfcsyy.js +1 -0
  49. package/dist/{chunk-zg54h6gy.js → chunk-kvnw06wg.js} +1 -1
  50. package/dist/chunk-kyb15dg8.js +2 -0
  51. package/dist/chunk-mq4m1w4w.js +15 -0
  52. package/dist/chunk-mqcbjght.js +1 -0
  53. package/dist/{chunk-pe8mzxwn.js → chunk-mqm8wnc8.js} +11 -11
  54. package/dist/chunk-n7bpjcb0.js +1 -0
  55. package/dist/chunk-ncaqgas1.js +160 -0
  56. package/dist/{chunk-f0m4532p.js → chunk-nh11afw0.js} +5 -5
  57. package/dist/{chunk-spx7nn8t.js → chunk-nwmvyez4.js} +2 -2
  58. package/dist/chunk-nzyvqxt4.js +1 -0
  59. package/dist/{chunk-nsw5168d.js → chunk-p6c1xbd5.js} +2 -2
  60. package/dist/chunk-p75m7q2h.js +1 -0
  61. package/dist/{chunk-spa69h7p.js → chunk-pffdbhs6.js} +2 -2
  62. package/dist/chunk-phw7yp5t.js +1 -0
  63. package/dist/{chunk-8tbtavry.js → chunk-q0452p0f.js} +2 -2
  64. package/dist/chunk-r133z8tq.js +8 -0
  65. package/dist/{chunk-qxebn3jw.js → chunk-rqymdmqg.js} +3 -3
  66. package/dist/chunk-rr7h6wdp.js +7 -0
  67. package/dist/{chunk-gfhmzpy7.js → chunk-s04zfe57.js} +2 -3
  68. package/dist/chunk-twhnh3dc.js +1 -0
  69. package/dist/chunk-tws3wcnm.js +2 -0
  70. package/dist/chunk-txnezkkt.js +1 -0
  71. package/dist/{chunk-tjvhqr94.js → chunk-vttq7sqg.js} +1 -1
  72. package/dist/chunk-vvs5da2x.js +281 -0
  73. package/dist/{chunk-n9rpnke9.js → chunk-vwj4n000.js} +1 -1
  74. package/dist/{chunk-4wnmk2tj.js → chunk-w4tbr5h7.js} +3 -3
  75. package/dist/{chunk-n7s6my89.js → chunk-wts8db9p.js} +32 -32
  76. package/dist/{chunk-y8qhrx11.js → chunk-x17jyjan.js} +1 -1
  77. package/dist/chunk-x7x7esvz.js +8 -0
  78. package/dist/chunk-xprg4hxp.js +17 -0
  79. package/dist/chunk-xrfpz1vw.js +2 -0
  80. package/dist/{chunk-hve2a279.js → chunk-xtr6s7kh.js} +2 -2
  81. package/dist/{chunk-bzgznka5.js → chunk-y807k0kw.js} +1 -1
  82. package/dist/chunk-ycp2e43r.js +1 -0
  83. package/dist/chunk-yfv1xeeh.js +2 -0
  84. package/dist/chunk-zxpb45tb.js +1 -0
  85. package/dist/cli.js +1 -1
  86. package/dist/nonInteractive.js +80 -80
  87. package/dist/zen-core.js +261 -0
  88. package/dist/zen-keyboard.js +1 -1
  89. package/package.json +5 -3
  90. package/dist/chunk-0ddrb30y.js +0 -1
  91. package/dist/chunk-215an3fz.js +0 -1
  92. package/dist/chunk-4z0w0ng1.js +0 -2
  93. package/dist/chunk-57bj89e2.js +0 -1
  94. package/dist/chunk-5a5mepqj.js +0 -1
  95. package/dist/chunk-7kw7ss8d.js +0 -1
  96. package/dist/chunk-86m0rmtc.js +0 -1
  97. package/dist/chunk-9rayxazs.js +0 -8
  98. package/dist/chunk-a9gpb2tx.js +0 -2
  99. package/dist/chunk-a9tw6d68.js +0 -1
  100. package/dist/chunk-anbtppz1.js +0 -294
  101. package/dist/chunk-bca8tkkr.js +0 -1
  102. package/dist/chunk-bdqds8vh.js +0 -1
  103. package/dist/chunk-dvbb3dd1.js +0 -233
  104. package/dist/chunk-ehmmd8qc.js +0 -1
  105. package/dist/chunk-ejfa95sm.js +0 -1
  106. package/dist/chunk-f7cps5x1.js +0 -1
  107. package/dist/chunk-fbemqjck.js +0 -2
  108. package/dist/chunk-feeqtzv5.js +0 -1
  109. package/dist/chunk-g9911ymn.js +0 -1
  110. package/dist/chunk-h8fdexm4.js +0 -2
  111. package/dist/chunk-hp2jzn9x.js +0 -166
  112. package/dist/chunk-js4qp900.js +0 -2
  113. package/dist/chunk-m21hvv91.js +0 -2
  114. package/dist/chunk-mnnyjmgw.js +0 -224
  115. package/dist/chunk-mw7x6xqp.js +0 -1
  116. package/dist/chunk-nk62q95g.js +0 -93
  117. package/dist/chunk-pg1ppq4y.js +0 -1
  118. package/dist/chunk-q1cxrg0x.js +0 -2
  119. package/dist/chunk-swc7se71.js +0 -2
  120. package/dist/chunk-swyc15ym.js +0 -1
  121. package/dist/chunk-t2s3s6af.js +0 -1
  122. package/dist/chunk-vdmq9d9x.js +0 -4
  123. package/dist/chunk-wt3p1w1g.js +0 -1
  124. package/dist/chunk-y5ry5c7v.js +0 -1
  125. package/dist/chunk-yy8p9zph.js +0 -2
  126. package/dist/chunk-z61m3anh.js +0 -1
  127. package/dist/chunk-zr90qp47.js +0 -1
  128. package/dist/chunk-zsa62xr0.js +0 -2
@@ -0,0 +1 @@
1
+ import{o as A}from"./chunk-ahsvdb98.js";import"./chunk-3gn0c0j2.js";import{H as h}from"./chunk-6t0qzren.js";import{M,O as $}from"./chunk-w4tbr5h7.js";import{U as C,X as W,Y as X,fa as w,ka as K}from"./chunk-bqkrynm6.js";import{Rl as F}from"./chunk-x17jyjan.js";var H=F(C(),1);function z({type:L,enabled:N=!0}){let O=h();return M({queryKey:L==="memories"?$.knowledge.memories():$.knowledge.skills(),queryFn:()=>O.knowledge.list.query({type:L}),enabled:N,staleTime:120000})}var J=F(w(),1),E=(L)=>{return L.length>80?L.slice(0,80)+"...":L},V=({onClose:L})=>{let[N,O]=H.useState("memories"),Y=H.useRef(O);H.default.useEffect(()=>{Y.current=O},[O]);let{data:Q=[]}=z({type:"memories",enabled:N==="memories"}),{data:U=[]}=z({type:"skills",enabled:N==="skills"}),Z=H.useCallback(async()=>{return N==="memories"?Q:U},[N,Q,U]),I=H.useCallback((G,f,_)=>{let g=E(G.description);return J.jsxDEV(W,{flexDirection:"column",paddingY:1,children:[J.jsxDEV(W,{children:J.jsxDEV(X,{bold:!0,color:_?"cyan":"gray",children:[f+1,". ",G.name]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J.jsxDEV(W,{paddingY:1,children:J.jsxDEV(X,{color:_?"white":"gray",children:g},void 0,!1,void 0,this)},void 0,!1,void 0,this),J.jsxDEV(W,{children:J.jsxDEV(X,{color:"cyan",dimColor:!_,children:[A(G.path),G.category&&J.jsxDEV(X,{color:"yellow",children:[" ",G.category]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},G.path,!0,void 0,this)},[]),q=H.useCallback((G)=>{console.log("Selected knowledge item:",G.name)},[]),B=H.useMemo(()=>[{id:"memory",label:"记忆",predicate:(G)=>G.type==="memory"},{id:"skill",label:"技能",predicate:(G)=>G.type==="skill"}],[]),P=H.useMemo(()=>({h:(G)=>{Y.current("memories"),G.setActiveFilter("memory")},s:(G)=>{Y.current("skills"),G.setActiveFilter("skill")}}),[]),R=H.useMemo(()=>({id:"knowledge",title:"知识库",icon:"\uD83D\uDCDA",dataSource:Z,searchable:!0,searchFields:["name","description"],searchPlaceholder:"搜索知识库 (名称/描述/分类)...",filterable:!0,filters:B,defaultFilter:N==="memories"?"memory":"skill",itemHeight:8,visibleCount:3,renderItem:I,showCount:!0,onSelect:q,keyMap:P}),[Z,B,I,q,P,N]);return J.jsxDEV(K,{config:R,onClose:L},void 0,!1,void 0,this)},u=V;export{u as default};
@@ -0,0 +1,160 @@
1
+ import{$g as F,$h as e8,$i as R6,$j as s4,Ah as s0,Ai as I4,Aj as T4,Bh as a0,Bi as RQ,Bj as yQ,Ch as p,Ci as o8,Cj as j5,Dh as y8,Di as LQ,Dj as z8,Eh as NQ,Ei as VQ,Fh as e0,Fi as PQ,Fj as e4,Gh as U8,Gi as IQ,Gj as D8,Hh as s8,Hi as q5,Hj as vQ,Ih as Q4,Ii as G8,Ij as MQ,Jh as Z4,Jj as d8,Kh as J4,Ki as OQ,Kj as O1,Lh as AQ,Li as P1,Lj as O8,Mh as f8,Mi as u4,Mj as bQ,Nh as j9,Ni as X8,Oi as H8,Oj as d4,Ph as T8,Pi as l4,Pj as M,Qh as B8,Qi as o4,Qj as x8,Rh as Y4,Ri as w6,Rj as p4,Sh as G4,Si as D6,Sj as i4,Th as j,Ti as B6,Tj as I1,Uh as v8,Ui as N8,Uj as L1,Vh as J1,Vi as N6,Vj as u,Wh as t,Wi as A6,Wj as n4,Xh as w8,Xi as E6,Xj as r4,Yh as a8,Yi as y1,Yj as b8,Zh as W4,Zi as j1,Zj as V1,_h as X4,_i as F6,_j as t4,ai as Q1,aj as v1,ak as xQ,bh as dQ,bi as z4,bj as L6,bk as a6,ch as mQ,ci as H4,cj as V6,ck as J5,dh as cQ,di as c,dj as P6,dk as Z5,eh as uQ,ei as Z1,ej as I6,ek as fQ,fh as BQ,fi as $4,fj as O6,fk as kQ,gh as lQ,gi as q4,gj as T6,hh as a,hi as t8,hj as _6,ih as k0,ii as r,ij as j6,ik as k1,jh as N1,ji as V8,jj as S6,jk as b5,kh as A1,ki as K4,kj as C6,kk as x5,lh as h0,li as U4,lj as y6,lk as f5,mh as g0,mi as w4,mj as v6,mk as Y0,nh as E1,ni as J8,nj as M6,nk as hQ,oh as d0,oi as D4,oj as b6,ok as qQ,ph as m0,pi as B4,pj as x6,qh as c0,qi as N4,qj as f6,rh as u0,ri as A4,rj as k6,sh as l0,si as P8,sj as TQ,th as o0,ti as E4,tj as g8,uh as s,ui as EQ,uj as _Q,vh as p0,vj as h,wh as i0,wi as x1,wj as f4,xh as n0,xi as FQ,xj as jQ,yh as r0,yi as f1,yj as SQ,zh as t0,zj as CQ}from"./chunk-9kbktaf8.js";import{yk as g1}from"./chunk-r133z8tq.js";import{Ek as Z6}from"./chunk-g2n6hnjp.js";import{Mk as G1}from"./chunk-femf7e4d.js";import{Bl as r8,Cl as E0,Fl as F0}from"./chunk-xtr6s7kh.js";F0();function G9(Q){return E0({clockseq:Q})}function Z3(Q,Z){let J=Z.replace(/-/g,"").match(/.{2}/g).map((Y)=>parseInt(Y,16));return r8(Q,new Uint8Array(J))}var R0="__pregel_tasks",W9="__error__",X9="__scheduled__",z9="__interrupt__",H9="__resume__";var L0="[...]",J3="[Circular]",D1=[],C8=[];function Y3(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function V0(Q,Z,J,Y){if(typeof Y>"u")Y=Y3();q9(Q,"",0,[],void 0,0,Y);var G;try{if(C8.length===0)G=JSON.stringify(Q,Z,J);else G=JSON.stringify(Q,G3(Z),J)}catch(z){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{while(D1.length!==0){var W=D1.pop();if(W.length===4)Object.defineProperty(W[0],W[1],W[3]);else W[0][W[1]]=W[2]}}return G}function $9(Q,Z,J,Y){var G=Object.getOwnPropertyDescriptor(Y,J);if(G.get!==void 0)if(G.configurable)Object.defineProperty(Y,J,{value:Q}),D1.push([Y,J,Z,G]);else C8.push([Z,J,Q]);else Y[J]=Q,D1.push([Y,J,Z])}function q9(Q,Z,J,Y,G,W,z){W+=1;var $;if(typeof Q==="object"&&Q!==null){for($=0;$<Y.length;$++)if(Y[$]===Q){$9(J3,Q,Z,G);return}if(typeof z.depthLimit<"u"&&W>z.depthLimit){$9(L0,Q,Z,G);return}if(typeof z.edgesLimit<"u"&&J+1>z.edgesLimit){$9(L0,Q,Z,G);return}if(Y.push(Q),Array.isArray(Q))for($=0;$<Q.length;$++)q9(Q[$],$,$,Y,Q,W,z);else{var U=Object.keys(Q);for($=0;$<U.length;$++){var w=U[$];q9(Q[w],w,$,Y,Q,W,z)}}Y.pop()}}function G3(Q){return Q=typeof Q<"u"?Q:function(Z,J){return J},function(Z,J){if(C8.length>0)for(var Y=0;Y<C8.length;Y++){var G=C8[Y];if(G[1]===Z&&G[0]===J){J=G[2],C8.splice(Y,1);break}}return Q.call(this,Z,J)}}var P0=[];var I0=F({});var O0=F({});var B1=(Q,Z)=>{let J=[...new Set(Z?.map((G)=>{if(typeof G==="string")return G;let W=new G({});if(!("getType"in W)||typeof W.getType!=="function")throw Error("Invalid type provided.");return W.getType()}))],Y=Q.getType();return J.some((G)=>G===Y)};function C0(Q,Z){if(Array.isArray(Q))return T0(Q,Z);return u.from((J)=>{return T0(J,Q)})}function T0(Q,Z={}){let{includeNames:J,excludeNames:Y,includeTypes:G,excludeTypes:W,includeIds:z,excludeIds:$}=Z,U=[];for(let w of Q){if(Y&&w.name&&Y.includes(w.name))continue;else if(W&&B1(w,W))continue;else if($&&w.id&&$.includes(w.id))continue;if(!(G||z||J))U.push(w);else if(J&&w.name&&J.some((D)=>D===w.name))U.push(w);else if(G&&B1(w,G))U.push(w);else if(z&&w.id&&z.some((D)=>D===w.id))U.push(w)}return U}function y0(Q){if(Array.isArray(Q))return _0(Q);return u.from(_0)}function _0(Q){if(!Q.length)return[];let Z=[];for(let J of Q){let Y=J,G=Z.pop();if(!G)Z.push(Y);else if(Y.getType()==="tool"||Y.getType()!==G.getType())Z.push(G,Y);else{let W=P8(G),z=P8(Y),$=W.concat(z);if(typeof W.content==="string"&&typeof z.content==="string")$.content=`${W.content}
2
+ ${z.content}`;Z.push(X3($))}}return Z}function v0(Q,Z){if(Array.isArray(Q)){let J=Q;if(!Z)throw Error("Options parameter is required when providing messages.");return j0(J,Z)}else{let J=Q;return u.from((Y)=>j0(Y,J)).withConfig({runName:"trim_messages"})}}async function j0(Q,Z){let{maxTokens:J,tokenCounter:Y,strategy:G="last",allowPartial:W=!1,endOn:z,startOn:$,includeSystem:U=!1,textSplitter:w}=Z;if($&&G==="first")throw Error("`startOn` should only be specified if `strategy` is 'last'.");if(U&&G==="first")throw Error("`includeSystem` should only be specified if `strategy` is 'last'.");let D;if("getNumTokens"in Y)D=async(N)=>{return(await Promise.all(N.map((E)=>Y.getNumTokens(E.content)))).reduce((E,A)=>E+A,0)};else D=async(N)=>Y(N);let R=U9;if(w)if("splitText"in w)R=w.splitText;else R=async(N)=>w(N);if(G==="first")return M0(Q,{maxTokens:J,tokenCounter:D,textSplitter:R,partialStrategy:W?"first":void 0,endOn:z});else if(G==="last")return W3(Q,{maxTokens:J,tokenCounter:D,textSplitter:R,allowPartial:W,includeSystem:U,startOn:$,endOn:z});else throw Error(`Unrecognized strategy: '${G}'. Must be one of 'first' or 'last'.`)}async function M0(Q,Z){let{maxTokens:J,tokenCounter:Y,textSplitter:G,partialStrategy:W,endOn:z}=Z,$=[...Q],U=0;for(let w=0;w<$.length;w+=1)if(await Y(w>0?$.slice(0,-w):$)<=J){U=$.length-w;break}if(U<$.length&&W){let w=!1;if(Array.isArray($[U].content)){let D=$[U];if(typeof D.content==="string")throw Error("Expected content to be an array.");let R=D.content.length,N=W==="last"?[...D.content].reverse():D.content;for(let E=1;E<=R;E+=1){let A=W==="first"?N.slice(0,E):N.slice(-E),V=Object.fromEntries(Object.entries(D).filter(([O])=>O!=="type"&&!O.startsWith("lc_"))),L=K9(D.getType(),{...V,content:A}),C=[...$.slice(0,U),L];if(await Y(C)<=J)$=C,U+=1,w=!0;else break}if(w&&W==="last")D.content=[...N].reverse()}if(!w){let D=$[U],R;if(Array.isArray(D.content)&&D.content.some((N)=>typeof N==="string"||N.type==="text"))R=D.content.find((N)=>N.type==="text"&&N.text)?.text;else if(typeof D.content==="string")R=D.content;if(R){let N=await G(R),E=N.length;if(W==="last")N.reverse();for(let A=0;A<E-1;A+=1)if(N.pop(),D.content=N.join(""),await Y([...$.slice(0,U),D])<=J){if(W==="last")D.content=[...N].reverse().join("");$=[...$.slice(0,U),D],U+=1;break}}}}if(z){let w=Array.isArray(z)?z:[z];while(U>0&&!B1($[U-1],w))U-=1}return $.slice(0,U)}async function W3(Q,Z){let{allowPartial:J=!1,includeSystem:Y=!1,endOn:G,startOn:W,...z}=Z,$=Q.map((D)=>{let R=Object.fromEntries(Object.entries(D).filter(([N])=>N!=="type"&&!N.startsWith("lc_")));return K9(D.getType(),R,y8(D))});if(G){let D=Array.isArray(G)?G:[G];while($.length>0&&!B1($[$.length-1],D))$=$.slice(0,-1)}let U=Y&&$[0]?.getType()==="system",w=U?$.slice(0,1).concat($.slice(1).reverse()):$.reverse();if(w=await M0(w,{...z,partialStrategy:J?"last":void 0,endOn:W}),U)return[w[0],...w.slice(1).reverse()];else return w.reverse()}var S0={human:{message:c,messageChunk:Z1},ai:{message:j,messageChunk:t},system:{message:r,messageChunk:V8},developer:{message:r,messageChunk:V8},tool:{message:U8,messageChunk:s8},function:{message:e8,messageChunk:Q1},generic:{message:w8,messageChunk:a8},remove:{message:t8,messageChunk:t8}};function K9(Q,Z,J){let Y,G;switch(Q){case"human":if(J)Y=new Z1(Z);else G=new c(Z);break;case"ai":if(J){let W={...Z};if("tool_calls"in W)W={...W,tool_call_chunks:W.tool_calls?.map((z)=>({...z,type:"tool_call_chunk",index:void 0,args:JSON.stringify(z.args)}))};Y=new t(W)}else G=new j(Z);break;case"system":if(J)Y=new V8(Z);else G=new r(Z);break;case"developer":if(J)Y=new V8({...Z,additional_kwargs:{...Z.additional_kwargs,__openai_role__:"developer"}});else G=new r({...Z,additional_kwargs:{...Z.additional_kwargs,__openai_role__:"developer"}});break;case"tool":if("tool_call_id"in Z)if(J)Y=new s8(Z);else G=new U8(Z);else throw Error("Can not convert ToolMessage to ToolMessageChunk if 'tool_call_id' field is not defined.");break;case"function":if(J)Y=new Q1(Z);else{if(!Z.name)throw Error("FunctionMessage must have a 'name' field");G=new e8(Z)}break;case"generic":if("role"in Z)if(J)Y=new a8(Z);else G=new w8(Z);else throw Error("Can not convert ChatMessage to ChatMessageChunk if 'role' field is not defined.");break;default:throw Error(`Unrecognized message type ${Q}`)}if(J&&Y)return Y;if(G)return G;throw Error(`Unrecognized message type ${Q}`)}function X3(Q){let Z=Q.getType(),J,Y=Object.fromEntries(Object.entries(Q).filter(([G])=>!["type","tool_call_chunks"].includes(G)&&!G.startsWith("lc_")));if(Z in S0)J=K9(Z,Y);if(!J)throw Error(`Unrecognized message chunk class ${Z}. Supported classes are ${Object.keys(S0)}`);return J}function U9(Q){let Z=Q.split(`
3
+ `);return Promise.resolve([...Z.slice(0,-1).map((J)=>`${J}
4
+ `),Z[Z.length-1]])}var b0=["tool_call","tool_call_chunk","invalid_tool_call","server_tool_call","server_tool_call_chunk","server_tool_call_result"];var x0=["image","video","audio","text-plain","file"];var f0=["text","reasoning",...b0,...x0];var F4=F({AIMessage:()=>j,AIMessageChunk:()=>t,BaseMessage:()=>s,BaseMessageChunk:()=>s0,ChatMessage:()=>w8,ChatMessageChunk:()=>a8,DEFAULT_MERGE_IGNORE_KEYS:()=>i0,FunctionMessage:()=>e8,FunctionMessageChunk:()=>Q1,HumanMessage:()=>c,HumanMessageChunk:()=>Z1,KNOWN_BLOCK_TYPES:()=>f0,RemoveMessage:()=>t8,SystemMessage:()=>r,SystemMessageChunk:()=>V8,ToolMessage:()=>U8,ToolMessageChunk:()=>s8,_isMessageFieldWithRole:()=>a0,_mergeDicts:()=>n0,_mergeLists:()=>r0,_mergeObj:()=>t0,_mergeStatus:()=>o0,coerceMessageLikeToMessage:()=>J8,collapseToolCallChunks:()=>E4,convertToChunk:()=>P8,convertToOpenAIImageBlock:()=>E1,convertToProviderContentBlock:()=>c0,defaultTextSplitter:()=>U9,defaultToolCallParser:()=>Q4,filterMessages:()=>C0,getBufferString:()=>D4,iife:()=>w4,isAIMessage:()=>v8,isAIMessageChunk:()=>J1,isBase64ContentBlock:()=>A1,isBaseMessage:()=>p,isBaseMessageChunk:()=>y8,isChatMessage:()=>W4,isChatMessageChunk:()=>X4,isDataContentBlock:()=>k0,isDirectToolOutput:()=>e0,isFunctionMessage:()=>z4,isFunctionMessageChunk:()=>H4,isHumanMessage:()=>$4,isHumanMessageChunk:()=>q4,isIDContentBlock:()=>g0,isMessage:()=>u0,isOpenAIToolCallArray:()=>p0,isPlainTextContentBlock:()=>h0,isSystemMessage:()=>K4,isSystemMessageChunk:()=>U4,isToolMessage:()=>Z4,isToolMessageChunk:()=>J4,isURLContentBlock:()=>N1,mapChatMessagesToStoredMessages:()=>A4,mapStoredMessageToChatMessage:()=>B4,mapStoredMessagesToChatMessages:()=>N4,mergeContent:()=>l0,mergeMessageRuns:()=>y0,mergeResponseMetadata:()=>Y4,mergeUsageMetadata:()=>G4,parseBase64DataUrl:()=>m0,parseMimeType:()=>d0,trimMessages:()=>v0});var R4=F({BaseChatMessageHistory:()=>w9,BaseListChatMessageHistory:()=>F1,InMemoryChatMessageHistory:()=>z3}),w9=class extends a{async addMessages(Q){for(let Z of Q)await this.addMessage(Z)}},F1=class extends a{addUserMessage(Q){return this.addMessage(new c(Q))}addAIMessage(Q){return this.addMessage(new j(Q))}async addMessages(Q){for(let Z of Q)await this.addMessage(Z)}clear(){throw Error("Not implemented.")}},z3=class extends F1{lc_namespace=["langchain","stores","message","in_memory"];messages=[];constructor(Q){super(...arguments);this.messages=Q??[]}async getMessages(){return this.messages}async addMessage(Q){this.messages.push(Q)}async clear(){this.messages=[]}};var i=class{pageContent;metadata;id;constructor(Q){this.pageContent=Q.pageContent!==void 0?Q.pageContent.toString():"",this.metadata=Q.metadata??{},this.id=Q.id}};var D9=class extends M{lc_namespace=["langchain_core","documents","transformers"];invoke(Q,Z){return this.transformDocuments(Q)}},L4=class extends D9{async transformDocuments(Q){let Z=[];for(let J of Q){let Y=await this._transformDocument(J);Z.push(Y)}return Z}};var V4=F({BaseDocumentTransformer:()=>D9,Document:()=>i,MappingDocumentTransformer:()=>L4});var P4=F({BaseDocumentLoader:()=>B9}),B9=class{};var O4=F({LangSmithLoader:()=>H3}),H3=class extends B9{datasetId;datasetName;exampleIds;asOf;splits;inlineS3Urls;offset;limit;metadata;filter;contentKey;formatContent;client;constructor(Q){super();if(Q.client&&Q.clientConfig)throw Error("client and clientConfig cannot both be provided.");this.client=Q.client??new I4(Q?.clientConfig),this.contentKey=Q.contentKey?Q.contentKey.split("."):[],this.formatContent=Q.formatContent??$3,this.datasetId=Q.datasetId,this.datasetName=Q.datasetName,this.exampleIds=Q.exampleIds,this.asOf=Q.asOf,this.splits=Q.splits,this.inlineS3Urls=Q.inlineS3Urls,this.offset=Q.offset,this.limit=Q.limit,this.metadata=Q.metadata,this.filter=Q.filter}async load(){let Q=[];for await(let Z of this.client.listExamples({datasetId:this.datasetId,datasetName:this.datasetName,exampleIds:this.exampleIds,asOf:this.asOf,splits:this.splits,inlineS3Urls:this.inlineS3Urls,offset:this.offset,limit:this.limit,metadata:this.metadata,filter:this.filter})){let J=Z.inputs;for(let W of this.contentKey)J=J[W];let Y=this.formatContent(J),G=Z;["created_at","modified_at"].forEach((W)=>{if(W in G){if(typeof G[W]==="object")G[W]=G[W].toString()}}),Q.push({pageContent:Y,metadata:G})}return Q}};function $3(Q){if(typeof Q==="string")return Q;else try{return JSON.stringify(Q,null,2)}catch{return String(Q)}}var _4=F({Embeddings:()=>R1}),R1=class{caller;constructor(Q){this.caller=new T4(Q??{})}};var M8=class extends a{lc_namespace=["langchain_core","example_selectors","base"]};var N9=class{async getPromptAsync(Q,Z){return this.getPrompt(Q).partial(Z?.partialVariables??{})}},j4=class extends N9{defaultPrompt;conditionals;constructor(Q,Z=[]){super();this.defaultPrompt=Q,this.conditionals=Z}getPrompt(Q){for(let[Z,J]of this.conditionals)if(Z(Q))return J;return this.defaultPrompt}};function S4(Q){return Q._modelType()==="base_llm"}function C4(Q){return Q._modelType()==="base_chat_model"}function y4(Q){return Q.split(/\n| /).length}var v4=class Q extends M8{examples=[];examplePrompt;getTextLength=y4;maxLength=2048;exampleTextLengths=[];constructor(Z){super(Z);this.examplePrompt=Z.examplePrompt,this.maxLength=Z.maxLength??2048,this.getTextLength=Z.getTextLength??y4}async addExample(Z){this.examples.push(Z);let J=await this.examplePrompt.format(Z);this.exampleTextLengths.push(this.getTextLength(J))}async calculateExampleTextLengths(Z,J){if(Z.length>0)return Z;let{examples:Y,examplePrompt:G}=J;return(await Promise.all(Y.map((W)=>G.format(W)))).map((W)=>this.getTextLength(W))}async selectExamples(Z){let J=Object.values(Z).join(" "),Y=this.maxLength-this.getTextLength(J),G=0,W=[];while(Y>0&&G<this.examples.length){let z=Y-this.exampleTextLengths[G];if(z<0)break;else W.push(this.examples[G]),Y=z;G+=1}return W}static async fromExamples(Z,J){let Y=new Q(J);return await Promise.all(Z.map((G)=>Y.addExample(G))),Y}};function A9(Q){return Object.keys(Q).sort().map((Z)=>Q[Z])}var M4=class Q extends M8{vectorStoreRetriever;exampleKeys;inputKeys;constructor(Z){super(Z);if(this.exampleKeys=Z.exampleKeys,this.inputKeys=Z.inputKeys,Z.vectorStore!==void 0)this.vectorStoreRetriever=Z.vectorStore.asRetriever({k:Z.k??4,filter:Z.filter});else if(Z.vectorStoreRetriever)this.vectorStoreRetriever=Z.vectorStoreRetriever;else throw Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(Z){let J=A9((this.inputKeys??Object.keys(Z)).reduce((Y,G)=>({...Y,[G]:Z[G]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new i({pageContent:J,metadata:Z})])}async selectExamples(Z){let J=A9((this.inputKeys??Object.keys(Z)).reduce((G,W)=>({...G,[W]:Z[W]}),{})).join(" "),Y=(await this.vectorStoreRetriever.invoke(J)).map((G)=>G.metadata);if(this.exampleKeys)return Y.map((G)=>this.exampleKeys.reduce((W,z)=>({...W,[z]:G[z]}),{}));return Y}static async fromExamples(Z,J,Y,G={}){let W=G.inputKeys??null,z=Z.map(($)=>A9(W?W.reduce((U,w)=>({...U,[w]:$[w]}),{}):$).join(" "));return new Q({vectorStore:await Y.fromTexts(z,Z,J,G),k:G.k??4,exampleKeys:G.exampleKeys,inputKeys:G.inputKeys})}};var b4=F({BaseExampleSelector:()=>M8,BasePromptSelector:()=>N9,ConditionalPromptSelector:()=>j4,LengthBasedExampleSelector:()=>v4,SemanticSimilarityExampleSelector:()=>M4,isChatModel:()=>C4,isLLM:()=>S4});var Y1="10f90ea3-90a4-4962-bf75-83a0f3c1c62a",x4=class extends a{lc_namespace=["langchain","recordmanagers"]};F0();var E9=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=f4;constructor(Q){this.uid=Q.uid,this.pageContent=Q.pageContent,this.metadata=Q.metadata}makeDefaultKeyEncoder(Q){this.keyEncoder=Q}calculateHashes(){let Q=["hash_","content_hash","metadata_hash"];for(let J of Q)if(J in this.metadata)throw Error(`Metadata cannot contain key ${J} as it is reserved for internal use. Restricted keys: [${Q.join(", ")}]`);let Z=this._hashStringToUUID(this.pageContent);try{let J=this._hashNestedDictToUUID(this.metadata);this.contentHash=Z,this.metadataHash=J}catch(J){throw Error(`Failed to hash metadata: ${J}. Please use a dict that can be serialized using json.`)}if(this.hash_=this._hashStringToUUID(this.contentHash+this.metadataHash),!this.uid)this.uid=this.hash_}toDocument(){return new i({pageContent:this.pageContent,metadata:this.metadata})}static fromDocument(Q,Z){let J=new this({pageContent:Q.pageContent,metadata:Q.metadata,uid:Z||Q.uid});return J.calculateHashes(),J}_hashStringToUUID(Q){return r8(this.keyEncoder(Q),Y1)}_hashNestedDictToUUID(Q){let Z=JSON.stringify(Q,Object.keys(Q).sort());return r8(this.keyEncoder(Z),Y1)}};function F9(Q,Z){let J=[],Y=[];if(Z.forEach((G)=>{if(Y.push(G),Y.length>=Q)J.push(Y),Y=[]}),Y.length>0)J.push(Y);return J}function R9(Q){let Z=new Set,J=[];for(let Y of Q){if(!Y.hash_)throw Error("Hashed document does not have a hash");if(!Z.has(Y.hash_))Z.add(Y.hash_),J.push(Y)}return J}function L9(Q){if(Q===null)return(Z)=>null;else if(typeof Q==="string")return(Z)=>Z.metadata[Q];else if(typeof Q==="function")return Q;else throw Error(`sourceIdKey should be null, a string or a function, got ${typeof Q}`)}var V9=(Q)=>{if("load"in Q&&typeof Q.load==="function"&&"loadAndSplit"in Q&&typeof Q.loadAndSplit==="function")return!0;return!1};async function k4(Q){let{docsSource:Z,recordManager:J,vectorStore:Y,options:G}=Q,{batchSize:W=100,cleanup:z,sourceIdKey:$,cleanupBatchSize:U=1000,forceUpdate:w=!1}=G??{};if(z==="incremental"&&!$)throw Error("sourceIdKey is required when cleanup mode is incremental. Please provide through 'options.sourceIdKey'.");let D=V9(Z)?await Z.load():Z,R=L9($??null),N=await J.getTime(),E=0,A=0,V=0,L=0,C=F9(W??100,D);for(let O of C){let I=R9(O.map((y)=>E9.fromDocument(y))),v=I.map((y)=>R(y));if(z==="incremental")I.forEach((y,S)=>{if(v[S]===null)throw Error("sourceIdKey must be provided when cleanup is incremental")});let E8=await J.exists(I.map((y)=>y.uid)),d=[],x=[],K=[],S8=new Set;if(I.forEach((y,S)=>{if(E8[S])if(w)S8.add(y.uid);else{K.push(y.uid);return}d.push(y.uid),x.push(y.toDocument())}),K.length>0)await J.update(K,{timeAtLeast:N}),L+=K.length;if(x.length>0)await Y.addDocuments(x,{ids:d}),E+=x.length-S8.size,V+=S8.size;if(await J.update(I.map((y)=>y.uid),{timeAtLeast:N,groupIds:v}),z==="incremental"){v.forEach((S)=>{if(!S)throw Error("Source id cannot be null")});let y=await J.listKeys({before:N,groupIds:v});if(y.length>0)await Y.delete({ids:y}),await J.deleteKeys(y),A+=y.length}}if(z==="full"){let O=await J.listKeys({before:N,limit:U});while(O.length>0)await Y.delete({ids:O}),await J.deleteKeys(O),A+=O.length,O=await J.listKeys({before:N,limit:U})}return{numAdded:E,numDeleted:A,numUpdated:V,numSkipped:L}}var h4=F({RecordManager:()=>x4,UUIDV5_NAMESPACE:()=>Y1,_HashedDocument:()=>E9,_batch:()=>F9,_deduplicateInOrder:()=>R9,_getSourceIdAssigner:()=>L9,_isBaseDocumentLoader:()=>V9,index:()=>k4});var I8=class extends M{static lc_name(){return"RunnablePassthrough"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;func;constructor(Q){super(Q);if(Q)this.func=Q.func}async invoke(Q,Z){let J=X8(Z);if(this.func)await this.func(Q,J);return this._callWithConfig((Y)=>Promise.resolve(Y),Q,J)}async*transform(Q,Z){let J=X8(Z),Y,G=!0;for await(let W of this._transformStreamWithConfig(Q,(z)=>z,J))if(yield W,G)if(Y===void 0)Y=W;else try{Y=z8(Y,W)}catch{Y=void 0,G=!1}if(this.func&&Y!==void 0)await this.func(Y,J)}static assign(Q){return new V1(new L1({steps:Q}))}};var g4=class extends M{static lc_name(){return"RouterRunnable"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;runnables;constructor(Q){super(Q);this.runnables=Q.runnables}async invoke(Q,Z){let{key:J,input:Y}=Q,G=this.runnables[J];if(G===void 0)throw Error(`No runnable associated with key "${J}".`);return G.invoke(Y,X8(Z))}async batch(Q,Z,J){let Y=Q.map((D)=>D.key),G=Q.map((D)=>D.input);if(Y.find((D)=>this.runnables[D]===void 0)!==void 0)throw Error("One or more keys do not have a corresponding runnable.");let W=Y.map((D)=>this.runnables[D]),z=this._getOptionsList(Z??{},Q.length),$=z[0]?.maxConcurrency??J?.maxConcurrency,U=$&&$>0?$:Q.length,w=[];for(let D=0;D<G.length;D+=U){let R=G.slice(D,D+U).map((E,A)=>W[A].invoke(E,z[A])),N=await Promise.all(R);w.push(N)}return w.flat()}async stream(Q,Z){let{key:J,input:Y}=Q,G=this.runnables[J];if(G===void 0)throw Error(`No runnable associated with key "${J}".`);return G.stream(Y,Z)}};var m4=class extends M{static lc_name(){return"RunnableBranch"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;default;branches;constructor(Q){super(Q);this.branches=Q.branches,this.default=Q.default}static from(Q){if(Q.length<1)throw Error("RunnableBranch requires at least one branch");let Z=Q.slice(0,-1).map(([Y,G])=>[b8(Y),b8(G)]),J=b8(Q[Q.length-1]);return new this({branches:Z,default:J})}async _invoke(Q,Z,J){let Y;for(let G=0;G<this.branches.length;G+=1){let[W,z]=this.branches[G];if(await W.invoke(Q,H8(Z,{callbacks:J?.getChild(`condition:${G+1}`)}))){Y=await z.invoke(Q,H8(Z,{callbacks:J?.getChild(`branch:${G+1}`)}));break}}if(!Y)Y=await this.default.invoke(Q,H8(Z,{callbacks:J?.getChild("branch:default")}));return Y}async invoke(Q,Z={}){return this._callWithConfig(this._invoke,Q,Z)}async*_streamIterator(Q,Z){let J=await(await P1(Z))?.handleChainStart(this.toJSON(),d4(Q,"input"),Z?.runId,void 0,void 0,void 0,Z?.runName),Y,G=!0,W;try{for(let z=0;z<this.branches.length;z+=1){let[$,U]=this.branches[z];if(await $.invoke(Q,H8(Z,{callbacks:J?.getChild(`condition:${z+1}`)}))){W=await U.stream(Q,H8(Z,{callbacks:J?.getChild(`branch:${z+1}`)}));for await(let w of W)if(yield w,G)if(Y===void 0)Y=w;else try{Y=z8(Y,w)}catch{Y=void 0,G=!1}break}}if(W===void 0){W=await this.default.stream(Q,H8(Z,{callbacks:J?.getChild("branch:default")}));for await(let z of W)if(yield z,G)if(Y===void 0)Y=z;else try{Y=z8(Y,z)}catch{Y=void 0,G=!1}}}catch(z){throw await J?.handleChainError(z),z}await J?.handleChainEnd(Y??{})}};var c4=class extends x8{runnable;inputMessagesKey;outputMessagesKey;historyMessagesKey;getMessageHistory;constructor(Q){let Z=u.from((W,z)=>this._enterHistory(W,z??{})).withConfig({runName:"loadHistory"}),J=Q.historyMessagesKey??Q.inputMessagesKey;if(J)Z=I8.assign({[J]:Z}).withConfig({runName:"insertHistory"});let Y=Z.pipe(Q.runnable.withListeners({onEnd:(W,z)=>this._exitHistory(W,z??{})})).withConfig({runName:"RunnableWithMessageHistory"}),G=Q.config??{};super({...Q,config:G,bound:Y});this.runnable=Q.runnable,this.getMessageHistory=Q.getMessageHistory,this.inputMessagesKey=Q.inputMessagesKey,this.outputMessagesKey=Q.outputMessagesKey,this.historyMessagesKey=Q.historyMessagesKey}_getInputMessages(Q){let Z;if(typeof Q==="object"&&!Array.isArray(Q)&&!p(Q)){let J;if(this.inputMessagesKey)J=this.inputMessagesKey;else if(Object.keys(Q).length===1)J=Object.keys(Q)[0];else J="input";if(Array.isArray(Q[J])&&Array.isArray(Q[J][0]))Z=Q[J][0];else Z=Q[J]}else Z=Q;if(typeof Z==="string")return[new c(Z)];else if(Array.isArray(Z))return Z;else if(p(Z))return[Z];else throw Error(`Expected a string, BaseMessage, or array of BaseMessages.
5
+ Got ${JSON.stringify(Z,null,2)}`)}_getOutputMessages(Q){let Z;if(!Array.isArray(Q)&&!p(Q)&&typeof Q!=="string"){let J;if(this.outputMessagesKey!==void 0)J=this.outputMessagesKey;else if(Object.keys(Q).length===1)J=Object.keys(Q)[0];else J="output";if(Q.generations!==void 0)Z=Q.generations[0][0].message;else Z=Q[J]}else Z=Q;if(typeof Z==="string")return[new j(Z)];else if(Array.isArray(Z))return Z;else if(p(Z))return[Z];else throw Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(Z,null,2)}`)}async _enterHistory(Q,Z){let J=await(Z?.configurable?.messageHistory).getMessages();if(this.historyMessagesKey===void 0)return J.concat(this._getInputMessages(Q));return J}async _exitHistory(Q,Z){let J=Z.configurable?.messageHistory,Y;if(Array.isArray(Q.inputs)&&Array.isArray(Q.inputs[0]))Y=Q.inputs[0];else Y=Q.inputs;let G=this._getInputMessages(Y);if(this.historyMessagesKey===void 0){let $=await J.getMessages();G=G.slice($.length)}let W=Q.outputs;if(!W)throw Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(Q,null,2)}`);let z=this._getOutputMessages(W);await J.addMessages([...G,...z])}async _mergeConfig(...Q){let Z=await super._mergeConfig(...Q);if(!Z.configurable||!Z.configurable.sessionId){let Y={[this.inputMessagesKey??"input"]:"foo"};throw Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
6
+ eg. chain.invoke(${JSON.stringify(Y)}, ${JSON.stringify({configurable:{sessionId:"123"}})})`)}let{sessionId:J}=Z.configurable;return Z.configurable.messageHistory=await this.getMessageHistory(J),Z}};var a4=F({RouterRunnable:()=>g4,Runnable:()=>M,RunnableAssign:()=>V1,RunnableBinding:()=>x8,RunnableBranch:()=>m4,RunnableEach:()=>p4,RunnableLambda:()=>u,RunnableMap:()=>L1,RunnableParallel:()=>n4,RunnablePassthrough:()=>I8,RunnablePick:()=>t4,RunnableRetry:()=>i4,RunnableSequence:()=>I1,RunnableToolLike:()=>s4,RunnableWithFallbacks:()=>r4,RunnableWithMessageHistory:()=>c4,_coerceToRunnable:()=>b8,ensureConfig:()=>X8,getCallbackManagerForConfig:()=>P1,mergeConfigs:()=>u4,patchConfig:()=>H8,pickRunnableConfigKeys:()=>l4,raceWithSignal:()=>o4});var Q6=F({applyPatch:()=>e4,compare:()=>D8});var k8=class extends M{parseResultWithPrompt(Q,Z,J){return this.parseResult(Q,J)}_baseMessageToString(Q){return typeof Q.content==="string"?Q.content:this._baseMessageContentToString(Q.content)}_baseMessageContentToString(Q){return JSON.stringify(Q)}async invoke(Q,Z){if(typeof Q==="string")return this._callWithConfig(async(J,Y)=>this.parseResult([{text:J}],Y?.callbacks),Q,{...Z,runType:"parser"});else return this._callWithConfig(async(J,Y)=>this.parseResult([{message:J,text:this._baseMessageToString(J)}],Y?.callbacks),Q,{...Z,runType:"parser"})}},e=class extends k8{parseResult(Q,Z){return this.parse(Q[0].text,Z)}async parseWithPrompt(Q,Z,J){return this.parse(Q,J)}_type(){throw Error("_type not implemented")}},k=class extends Error{llmOutput;observation;sendToLLM;constructor(Q,Z,J,Y=!1){super(Q);if(this.llmOutput=Z,this.observation=J,this.sendToLLM=Y,Y){if(J===void 0||Z===void 0)throw Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true")}f8(this,"OUTPUT_PARSING_FAILURE")}};var $8=class extends e{async*_transform(Q){for await(let Z of Q)if(typeof Z==="string")yield this.parseResult([{text:Z}]);else yield this.parseResult([{message:Z,text:this._baseMessageToString(Z)}])}async*transform(Q,Z){yield*this._transformStreamWithConfig(Q,this._transform.bind(this),{...Z,runType:"parser"})}},Y8=class extends $8{diff=!1;constructor(Q){super(Q);this.diff=Q?.diff??this.diff}async*_transform(Q){let Z,J;for await(let Y of Q){if(typeof Y!=="string"&&typeof Y.content!=="string")throw Error("Cannot handle non-string output.");let G;if(y8(Y)){if(typeof Y.content!=="string")throw Error("Cannot handle non-string message output.");G=new O8({message:Y,text:Y.content})}else if(p(Y)){if(typeof Y.content!=="string")throw Error("Cannot handle non-string message output.");G=new O8({message:P8(Y),text:Y.content})}else G=new O1({text:Y});if(J===void 0)J=G;else J=J.concat(G);let W=await this.parsePartialResult([J]);if(W!==void 0&&W!==null&&!Z6(W,Z)){if(this.diff)yield this._diff(Z,W);else yield W;Z=W}}}getFormatInstructions(){return""}};var J6=class extends $8{static lc_name(){return"BytesOutputParser"}lc_namespace=["langchain_core","output_parsers","bytes"];lc_serializable=!0;textEncoder=new TextEncoder;parse(Q){return Promise.resolve(this.textEncoder.encode(Q))}getFormatInstructions(){return""}};var h8=class extends $8{re;async*_transform(Q){let Z="";for await(let J of Q){if(typeof J==="string")Z+=J;else Z+=J.content;if(!this.re){let Y=await this.parse(Z);if(Y.length>1){for(let G of Y.slice(0,-1))yield[G];Z=Y[Y.length-1]}}else{let Y=[...Z.matchAll(this.re)];if(Y.length>1){let G=0;for(let W of Y.slice(0,-1))yield[W[1]],G+=(W.index??0)+W[0].length;Z=Z.slice(G)}}}for(let J of await this.parse(Z))yield[J]}},Y6=class extends h8{static lc_name(){return"CommaSeparatedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;async parse(Q){try{return Q.trim().split(",").map((Z)=>Z.trim())}catch{throw new k(`Could not parse output: ${Q}`,Q)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},G6=class extends h8{lc_namespace=["langchain_core","output_parsers","list"];length;separator;constructor({length:Q,separator:Z}){super(...arguments);this.length=Q,this.separator=Z||","}async parse(Q){try{let Z=Q.trim().split(this.separator).map((J)=>J.trim());if(this.length!==void 0&&Z.length!==this.length)throw new k(`Incorrect number of items. Expected ${this.length}, got ${Z.length}.`);return Z}catch(Z){if(Object.getPrototypeOf(Z)===k.prototype)throw Z;throw new k(`Could not parse output: ${Q}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},W6=class extends h8{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
7
+
8
+ 1. foo
9
+
10
+ 2. bar
11
+
12
+ 3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(Q){return[...Q.matchAll(this.re)??[]].map((Z)=>Z[1])}},X6=class extends h8{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
13
+
14
+ 1. foo
15
+
16
+ 2. bar
17
+
18
+ 3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(Q){return[...Q.matchAll(this.re)??[]].map((Z)=>Z[1])}};var z6=class extends $8{static lc_name(){return"StrOutputParser"}lc_namespace=["langchain_core","output_parsers","string"];lc_serializable=!0;parse(Q){return Promise.resolve(Q)}getFormatInstructions(){return""}_textContentToString(Q){return Q.text}_imageUrlContentToString(Q){throw Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentToString(Q){switch(Q.type){case"text":case"text_delta":if("text"in Q)return this._textContentToString(Q);break;case"image_url":if("image_url"in Q)return this._imageUrlContentToString(Q);break;case"reasoning":case"thinking":case"redacted_thinking":return"";default:throw Error(`Cannot coerce "${Q.type}" message part into a string.`)}throw Error(`Invalid content type: ${Q.type}`)}_baseMessageContentToString(Q){return Q.reduce((Z,J)=>Z+this._messageContentToString(J),"")}};var T1=class extends Y8{static lc_name(){return"JsonOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_concatOutputChunks(Q,Z){if(this.diff)return super._concatOutputChunks(Q,Z);return Z}_diff(Q,Z){if(!Z)return;if(!Q)return[{op:"replace",path:"",value:Z}];return D8(Q,Z)}async parsePartialResult(Q){return T8(Q[0].text)}async parse(Q){return T8(Q,JSON.parse)}getFormatInstructions(){return""}_baseMessageToString(Q){return Q.text}};var _1=class extends e{static lc_name(){return"StandardSchemaOutputParser"}lc_namespace=["langchain","output_parsers","standard_schema"];schema;constructor(Q){super();this.schema=Q}static fromSerializableSchema(Q){return new this(Q)}async parse(Q){try{let Z=T8(Q,JSON.parse),J=await this.schema["~standard"].validate(Z);if(J.issues)throw Error(`Validation failed: ${JSON.stringify(J.issues)}`);return J.value}catch(Z){throw new k(`Failed to parse. Text: "${Q}". Error: ${Z}`,Q)}}getFormatInstructions(){return""}};var W1=class extends e{static lc_name(){return"StructuredOutputParser"}lc_namespace=["langchain","output_parsers","structured"];toJSON(){return this.toJSONNotImplemented()}constructor(Q){super(Q);this.schema=Q}static fromZodSchema(Q){return new this(Q)}static fromNamesAndDescriptions(Q){let Z=G1.object(Object.fromEntries(Object.entries(Q).map(([J,Y])=>[J,G1.string().describe(Y)])));return new this(Z)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
19
+
20
+ "JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
21
+
22
+ For example, the example "JSON Schema" instance {{"properties": {{"foo": {{"description": "a list of test words", "type": "array", "items": {{"type": "string"}}}}}}, "required": ["foo"]}}
23
+ would match an object with one required property, "foo". The "type" property specifies "foo" must be an "array", and the "description" property semantically describes it as "a list of test words". The items within "foo" must be strings.
24
+ Thus, the object {{"foo": ["bar", "baz"]}} is a well-formatted instance of this example "JSON Schema". The object {{"properties": {{"foo": ["bar", "baz"]}}}} is not well-formatted.
25
+
26
+ Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!
27
+
28
+ Here is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:
29
+ \`\`\`json
30
+ ${JSON.stringify(h(this.schema))}
31
+ \`\`\`
32
+ `}async parse(Q){try{let Z=Q.trim(),J=(Z.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||Z.match(/```json\s*([\s\S]*?)```/)?.[1]||Z).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(Y,G)=>{return`"${G.replace(/\n/g,"\\n")}"`}).replace(/\n/g,"");return await j1(this.schema,JSON.parse(J))}catch(Z){throw new k(`Failed to parse. Text: "${Q}". Error: ${Z}`,Q)}}},P9=class extends W1{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(Q){let Z=Q?.interpolationDepth??1;if(Z<1)throw Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
33
+ \`\`\`json
34
+ ${this._schemaToInstruction(h(this.schema)).replaceAll("{","{".repeat(Z)).replaceAll("}","}".repeat(Z))}
35
+ \`\`\``}_schemaToInstruction(Q,Z=2){let J=Q;if("type"in J){let Y=!1,G;if(Array.isArray(J.type)){let $=J.type.findIndex((U)=>U==="null");if($!==-1)Y=!0,J.type.splice($,1);G=J.type.join(" | ")}else G=J.type;if(J.type==="object"&&J.properties){let $=J.description?` // ${J.description}`:"";return`{
36
+ ${Object.entries(J.properties).map(([U,w])=>{let D=J.required?.includes(U)?"":" (optional)";return`${" ".repeat(Z)}"${U}": ${this._schemaToInstruction(w,Z+2)}${D}`}).join(`
37
+ `)}
38
+ ${" ".repeat(Z-2)}}${$}`}if(J.type==="array"&&J.items){let $=J.description?` // ${J.description}`:"";return`array[
39
+ ${" ".repeat(Z)}${this._schemaToInstruction(J.items,Z+2)}
40
+ ${" ".repeat(Z-2)}] ${$}`}let W=Y?" (nullable)":"",z=J.description?` // ${J.description}`:"";return`${G}${z}${W}`}if("anyOf"in J)return J.anyOf.map((Y)=>this._schemaToInstruction(Y,Z)).join(`
41
+ ${" ".repeat(Z-2)}`);throw Error("unsupported schema type")}static fromZodSchema(Q){return new this(Q)}static fromNamesAndDescriptions(Q){let Z=G1.object(Object.fromEntries(Object.entries(Q).map(([J,Y])=>[J,G1.string().describe(Y)])));return new this(Z)}},H6=class extends e{structuredInputParser;constructor({inputSchema:Q}){super(...arguments);this.structuredInputParser=new P9(Q)}async parse(Q){let Z;try{Z=await this.structuredInputParser.parse(Q)}catch(J){throw new k(`Failed to parse. Text: "${Q}". Error: ${J}`,Q)}return this.outputProcessor(Z)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};var q3=function(){let Q={};Q.parser=function(H,X){return new J(H,X)},Q.SAXParser=J,Q.SAXStream=w,Q.createStream=U,Q.MAX_BUFFER_LENGTH=65536;let Z=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];Q.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function J(H,X){if(!(this instanceof J))return new J(H,X);var B=this;if(G(B),B.q=B.c="",B.bufferCheckPosition=Q.MAX_BUFFER_LENGTH,B.opt=X||{},B.opt.lowercase=B.opt.lowercase||B.opt.lowercasetags,B.looseCase=B.opt.lowercase?"toLowerCase":"toUpperCase",B.tags=[],B.closed=B.closedRoot=B.sawRoot=!1,B.tag=B.error=null,B.strict=!!H,B.noscript=!!(H||B.opt.noscript),B.state=K.BEGIN,B.strictEntities=B.opt.strictEntities,B.ENTITIES=B.strictEntities?Object.create(Q.XML_ENTITIES):Object.create(Q.ENTITIES),B.attribList=[],B.opt.xmlns)B.ns=Object.create(A);if(B.trackPosition=B.opt.position!==!1,B.trackPosition)B.position=B.line=B.column=0;y(B,"onready")}if(!Object.create)Object.create=function(H){function X(){}return X.prototype=H,new X};if(!Object.keys)Object.keys=function(H){var X=[];for(var B in H)if(H.hasOwnProperty(B))X.push(B);return X};function Y(H){var X=Math.max(Q.MAX_BUFFER_LENGTH,10),B=0;for(var q=0,T=Z.length;q<T;q++){var b=H[Z[q]].length;if(b>X)switch(Z[q]){case"textNode":n8(H);break;case"cdata":S(H,"oncdata",H.cdata),H.cdata="";break;case"script":S(H,"onscript",H.script),H.script="";break;default:w1(H,"Max buffer length exceeded: "+Z[q])}B=Math.max(B,b)}H.bufferCheckPosition=Q.MAX_BUFFER_LENGTH-B+H.position}function G(H){for(var X=0,B=Z.length;X<B;X++)H[Z[X]]=""}function W(H){if(n8(H),H.cdata!=="")S(H,"oncdata",H.cdata),H.cdata="";if(H.script!=="")S(H,"onscript",H.script),H.script=""}J.prototype={end:function(){U0(this)},write:eQ,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){W(this)}};var z=ReadableStream;if(!z)z=function(){};var $=Q.EVENTS.filter(function(H){return H!=="error"&&H!=="end"});function U(H,X){return new w(H,X)}function w(H,X){if(!(this instanceof w))return new w(H,X);z.apply(this),this._parser=new J(H,X),this.writable=!0,this.readable=!0;var B=this;this._parser.onend=function(){B.emit("end")},this._parser.onerror=function(q){B.emit("error",q),B._parser.error=null},this._decoder=null,$.forEach(function(q){Object.defineProperty(B,"on"+q,{get:function(){return B._parser["on"+q]},set:function(T){if(!T)return B.removeAllListeners(q),B._parser["on"+q]=T,T;B.on(q,T)},enumerable:!0,configurable:!1})})}w.prototype=Object.create(z.prototype,{constructor:{value:w}}),w.prototype.write=function(H){return this._parser.write(H.toString()),this.emit("data",H),!0},w.prototype.end=function(H){if(H&&H.length)this.write(H);return this._parser.end(),!0},w.prototype.on=function(H,X){var B=this;if(!B._parser["on"+H]&&$.indexOf(H)!==-1)B._parser["on"+H]=function(){var q=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);q.splice(0,0,H),B.emit.apply(B,q)};return z.prototype.on.call(B,H,X)};var D="[CDATA[",R="DOCTYPE",N="http://www.w3.org/XML/1998/namespace",E="http://www.w3.org/2000/xmlns/",A={xml:N,xmlns:E},V=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,L=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,C=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,O=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function I(H){return H===" "||H===`
42
+ `||H==="\r"||H==="\t"}function v(H){return H==='"'||H==="'"}function E8(H){return H===">"||I(H)}function d(H,X){return H.test(X)}function x(H,X){return!d(H,X)}var K=0;Q.STATE={BEGIN:K++,BEGIN_WHITESPACE:K++,TEXT:K++,TEXT_ENTITY:K++,OPEN_WAKA:K++,SGML_DECL:K++,SGML_DECL_QUOTED:K++,DOCTYPE:K++,DOCTYPE_QUOTED:K++,DOCTYPE_DTD:K++,DOCTYPE_DTD_QUOTED:K++,COMMENT_STARTING:K++,COMMENT:K++,COMMENT_ENDING:K++,COMMENT_ENDED:K++,CDATA:K++,CDATA_ENDING:K++,CDATA_ENDING_2:K++,PROC_INST:K++,PROC_INST_BODY:K++,PROC_INST_ENDING:K++,OPEN_TAG:K++,OPEN_TAG_SLASH:K++,ATTRIB:K++,ATTRIB_NAME:K++,ATTRIB_NAME_SAW_WHITE:K++,ATTRIB_VALUE:K++,ATTRIB_VALUE_QUOTED:K++,ATTRIB_VALUE_CLOSED:K++,ATTRIB_VALUE_UNQUOTED:K++,ATTRIB_VALUE_ENTITY_Q:K++,ATTRIB_VALUE_ENTITY_U:K++,CLOSE_TAG:K++,CLOSE_TAG_SAW_WHITE:K++,SCRIPT:K++,SCRIPT_ENDING:K++},Q.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},Q.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(Q.ENTITIES).forEach(function(H){var X=Q.ENTITIES[H],B=typeof X==="number"?String.fromCharCode(X):X;Q.ENTITIES[H]=B});for(var S8 in Q.STATE)Q.STATE[Q.STATE[S8]]=S8;K=Q.STATE;function y(H,X,B){H[X]&&H[X](B)}function S(H,X,B){if(H.textNode)n8(H);y(H,X,B)}function n8(H){if(H.textNode=K0(H.opt,H.textNode),H.textNode)y(H,"ontext",H.textNode);H.textNode=""}function K0(H,X){if(H.trim)X=X.trim();if(H.normalize)X=X.replace(/\s+/g," ");return X}function w1(H,X){if(n8(H),H.trackPosition)X+=`
43
+ Line: `+H.line+`
44
+ Column: `+H.column+`
45
+ Char: `+H.c;return X=Error(X),H.error=X,y(H,"onerror",X),H}function U0(H){if(H.sawRoot&&!H.closedRoot)_(H,"Unclosed root tag");if(H.state!==K.BEGIN&&H.state!==K.BEGIN_WHITESPACE&&H.state!==K.TEXT)w1(H,"Unexpected end");return n8(H),H.c="",H.closed=!0,y(H,"onend"),J.call(H,H.strict,H.opt),H}function _(H,X){if(typeof H!=="object"||!(H instanceof J))throw Error("bad call to strictFail");if(H.strict)w1(H,X)}function aQ(H){if(!H.strict)H.tagName=H.tagName[H.looseCase]();var X=H.tags[H.tags.length-1]||H,B=H.tag={name:H.tagName,attributes:{}};if(H.opt.xmlns)B.ns=X.ns;H.attribList.length=0,S(H,"onopentagstart",B)}function Q9(H,X){var B=H.indexOf(":")<0?["",H]:H.split(":"),q=B[0],T=B[1];if(X&&H==="xmlns")q="xmlns",T="";return{prefix:q,local:T}}function Z9(H){if(!H.strict)H.attribName=H.attribName[H.looseCase]();if(H.attribList.indexOf(H.attribName)!==-1||H.tag.attributes.hasOwnProperty(H.attribName)){H.attribName=H.attribValue="";return}if(H.opt.xmlns){var X=Q9(H.attribName,!0),B=X.prefix,q=X.local;if(B==="xmlns")if(q==="xml"&&H.attribValue!==N)_(H,"xml: prefix must be bound to "+N+`
46
+ Actual: `+H.attribValue);else if(q==="xmlns"&&H.attribValue!==E)_(H,"xmlns: prefix must be bound to "+E+`
47
+ Actual: `+H.attribValue);else{var T=H.tag,b=H.tags[H.tags.length-1]||H;if(T.ns===b.ns)T.ns=Object.create(b.ns);T.ns[q]=H.attribValue}H.attribList.push([H.attribName,H.attribValue])}else H.tag.attributes[H.attribName]=H.attribValue,S(H,"onattribute",{name:H.attribName,value:H.attribValue});H.attribName=H.attribValue=""}function F8(H,X){if(H.opt.xmlns){var B=H.tag,q=Q9(H.tagName);if(B.prefix=q.prefix,B.local=q.local,B.uri=B.ns[q.prefix]||"",B.prefix&&!B.uri)_(H,"Unbound namespace prefix: "+JSON.stringify(H.tagName)),B.uri=q.prefix;var T=H.tags[H.tags.length-1]||H;if(B.ns&&T.ns!==B.ns)Object.keys(B.ns).forEach(function(A0){S(H,"onopennamespace",{prefix:A0,uri:B.ns[A0]})});for(var b=0,o=H.attribList.length;b<o;b++){var m=H.attribList[b],n=m[0],R8=m[1],f=Q9(n,!0),L8=f.prefix,Q3=f.local,N0=L8===""?"":B.ns[L8]||"",Y9={name:n,value:R8,prefix:L8,local:Q3,uri:N0};if(L8&&L8!=="xmlns"&&!N0)_(H,"Unbound namespace prefix: "+JSON.stringify(L8)),Y9.uri=L8;H.tag.attributes[n]=Y9,S(H,"onattribute",Y9)}H.attribList.length=0}if(H.tag.isSelfClosing=!!X,H.sawRoot=!0,H.tags.push(H.tag),S(H,"onopentag",H.tag),!X){if(!H.noscript&&H.tagName.toLowerCase()==="script")H.state=K.SCRIPT;else H.state=K.TEXT;H.tag=null,H.tagName=""}H.attribName=H.attribValue="",H.attribList.length=0}function J9(H){if(!H.tagName){_(H,"Weird empty close tag."),H.textNode+="</>",H.state=K.TEXT;return}if(H.script){if(H.tagName!=="script"){H.script+="</"+H.tagName+">",H.tagName="",H.state=K.SCRIPT;return}S(H,"onscript",H.script),H.script=""}var X=H.tags.length,B=H.tagName;if(!H.strict)B=B[H.looseCase]();var q=B;while(X--)if(H.tags[X].name!==q)_(H,"Unexpected close tag");else break;if(X<0){_(H,"Unmatched closing tag: "+H.tagName),H.textNode+="</"+H.tagName+">",H.state=K.TEXT;return}H.tagName=B;var T=H.tags.length;while(T-- >X){var b=H.tag=H.tags.pop();H.tagName=H.tag.name,S(H,"onclosetag",H.tagName);var o={};for(var m in b.ns)o[m]=b.ns[m];var n=H.tags[H.tags.length-1]||H;if(H.opt.xmlns&&b.ns!==n.ns)Object.keys(b.ns).forEach(function(R8){var f=b.ns[R8];S(H,"onclosenamespace",{prefix:R8,uri:f})})}if(X===0)H.closedRoot=!0;H.tagName=H.attribValue=H.attribName="",H.attribList.length=0,H.state=K.TEXT}function w0(H){var X=H.entity,B=X.toLowerCase(),q,T="";if(H.ENTITIES[X])return H.ENTITIES[X];if(H.ENTITIES[B])return H.ENTITIES[B];if(X=B,X.charAt(0)==="#")if(X.charAt(1)==="x")X=X.slice(2),q=parseInt(X,16),T=q.toString(16);else X=X.slice(1),q=parseInt(X,10),T=q.toString(10);if(X=X.replace(/^0+/,""),isNaN(q)||T.toLowerCase()!==X)return _(H,"Invalid character entity"),"&"+H.entity+";";return String.fromCodePoint(q)}function D0(H,X){if(X==="<")H.state=K.OPEN_WAKA,H.startTagPosition=H.position;else if(!I(X))_(H,"Non-whitespace before first tag."),H.textNode=X,H.state=K.TEXT}function B0(H,X){var B="";if(X<H.length)B=H.charAt(X);return B}function eQ(H){var X=this;if(this.error)throw this.error;if(X.closed)return w1(X,"Cannot write after close. Assign an onready handler.");if(H===null)return U0(X);if(typeof H==="object")H=H.toString();var B=0,q="";while(!0){if(q=B0(H,B++),X.c=q,!q)break;if(X.trackPosition)if(X.position++,q===`
48
+ `)X.line++,X.column=0;else X.column++;switch(X.state){case K.BEGIN:if(X.state=K.BEGIN_WHITESPACE,q==="\uFEFF")continue;D0(X,q);continue;case K.BEGIN_WHITESPACE:D0(X,q);continue;case K.TEXT:if(X.sawRoot&&!X.closedRoot){var T=B-1;while(q&&q!=="<"&&q!=="&")if(q=B0(H,B++),q&&X.trackPosition)if(X.position++,q===`
49
+ `)X.line++,X.column=0;else X.column++;X.textNode+=H.substring(T,B-1)}if(q==="<"&&!(X.sawRoot&&X.closedRoot&&!X.strict))X.state=K.OPEN_WAKA,X.startTagPosition=X.position;else{if(!I(q)&&(!X.sawRoot||X.closedRoot))_(X,"Text data outside of root node.");if(q==="&")X.state=K.TEXT_ENTITY;else X.textNode+=q}continue;case K.SCRIPT:if(q==="<")X.state=K.SCRIPT_ENDING;else X.script+=q;continue;case K.SCRIPT_ENDING:if(q==="/")X.state=K.CLOSE_TAG;else X.script+="<"+q,X.state=K.SCRIPT;continue;case K.OPEN_WAKA:if(q==="!")X.state=K.SGML_DECL,X.sgmlDecl="";else if(I(q));else if(d(V,q))X.state=K.OPEN_TAG,X.tagName=q;else if(q==="/")X.state=K.CLOSE_TAG,X.tagName="";else if(q==="?")X.state=K.PROC_INST,X.procInstName=X.procInstBody="";else{if(_(X,"Unencoded <"),X.startTagPosition+1<X.position){var b=X.position-X.startTagPosition;q=Array(b).join(" ")+q}X.textNode+="<"+q,X.state=K.TEXT}continue;case K.SGML_DECL:if((X.sgmlDecl+q).toUpperCase()===D)S(X,"onopencdata"),X.state=K.CDATA,X.sgmlDecl="",X.cdata="";else if(X.sgmlDecl+q==="--")X.state=K.COMMENT,X.comment="",X.sgmlDecl="";else if((X.sgmlDecl+q).toUpperCase()===R){if(X.state=K.DOCTYPE,X.doctype||X.sawRoot)_(X,"Inappropriately located doctype declaration");X.doctype="",X.sgmlDecl=""}else if(q===">")S(X,"onsgmldeclaration",X.sgmlDecl),X.sgmlDecl="",X.state=K.TEXT;else if(v(q))X.state=K.SGML_DECL_QUOTED,X.sgmlDecl+=q;else X.sgmlDecl+=q;continue;case K.SGML_DECL_QUOTED:if(q===X.q)X.state=K.SGML_DECL,X.q="";X.sgmlDecl+=q;continue;case K.DOCTYPE:if(q===">")X.state=K.TEXT,S(X,"ondoctype",X.doctype),X.doctype=!0;else if(X.doctype+=q,q==="[")X.state=K.DOCTYPE_DTD;else if(v(q))X.state=K.DOCTYPE_QUOTED,X.q=q;continue;case K.DOCTYPE_QUOTED:if(X.doctype+=q,q===X.q)X.q="",X.state=K.DOCTYPE;continue;case K.DOCTYPE_DTD:if(X.doctype+=q,q==="]")X.state=K.DOCTYPE;else if(v(q))X.state=K.DOCTYPE_DTD_QUOTED,X.q=q;continue;case K.DOCTYPE_DTD_QUOTED:if(X.doctype+=q,q===X.q)X.state=K.DOCTYPE_DTD,X.q="";continue;case K.COMMENT:if(q==="-")X.state=K.COMMENT_ENDING;else X.comment+=q;continue;case K.COMMENT_ENDING:if(q==="-"){if(X.state=K.COMMENT_ENDED,X.comment=K0(X.opt,X.comment),X.comment)S(X,"oncomment",X.comment);X.comment=""}else X.comment+="-"+q,X.state=K.COMMENT;continue;case K.COMMENT_ENDED:if(q!==">")_(X,"Malformed comment"),X.comment+="--"+q,X.state=K.COMMENT;else X.state=K.TEXT;continue;case K.CDATA:if(q==="]")X.state=K.CDATA_ENDING;else X.cdata+=q;continue;case K.CDATA_ENDING:if(q==="]")X.state=K.CDATA_ENDING_2;else X.cdata+="]"+q,X.state=K.CDATA;continue;case K.CDATA_ENDING_2:if(q===">"){if(X.cdata)S(X,"oncdata",X.cdata);S(X,"onclosecdata"),X.cdata="",X.state=K.TEXT}else if(q==="]")X.cdata+="]";else X.cdata+="]]"+q,X.state=K.CDATA;continue;case K.PROC_INST:if(q==="?")X.state=K.PROC_INST_ENDING;else if(I(q))X.state=K.PROC_INST_BODY;else X.procInstName+=q;continue;case K.PROC_INST_BODY:if(!X.procInstBody&&I(q))continue;else if(q==="?")X.state=K.PROC_INST_ENDING;else X.procInstBody+=q;continue;case K.PROC_INST_ENDING:if(q===">")S(X,"onprocessinginstruction",{name:X.procInstName,body:X.procInstBody}),X.procInstName=X.procInstBody="",X.state=K.TEXT;else X.procInstBody+="?"+q,X.state=K.PROC_INST_BODY;continue;case K.OPEN_TAG:if(d(L,q))X.tagName+=q;else if(aQ(X),q===">")F8(X);else if(q==="/")X.state=K.OPEN_TAG_SLASH;else{if(!I(q))_(X,"Invalid character in tag name");X.state=K.ATTRIB}continue;case K.OPEN_TAG_SLASH:if(q===">")F8(X,!0),J9(X);else _(X,"Forward-slash in opening tag not followed by >"),X.state=K.ATTRIB;continue;case K.ATTRIB:if(I(q))continue;else if(q===">")F8(X);else if(q==="/")X.state=K.OPEN_TAG_SLASH;else if(d(V,q))X.attribName=q,X.attribValue="",X.state=K.ATTRIB_NAME;else _(X,"Invalid attribute name");continue;case K.ATTRIB_NAME:if(q==="=")X.state=K.ATTRIB_VALUE;else if(q===">")_(X,"Attribute without value"),X.attribValue=X.attribName,Z9(X),F8(X);else if(I(q))X.state=K.ATTRIB_NAME_SAW_WHITE;else if(d(L,q))X.attribName+=q;else _(X,"Invalid attribute name");continue;case K.ATTRIB_NAME_SAW_WHITE:if(q==="=")X.state=K.ATTRIB_VALUE;else if(I(q))continue;else if(_(X,"Attribute without value"),X.tag.attributes[X.attribName]="",X.attribValue="",S(X,"onattribute",{name:X.attribName,value:""}),X.attribName="",q===">")F8(X);else if(d(V,q))X.attribName=q,X.state=K.ATTRIB_NAME;else _(X,"Invalid attribute name"),X.state=K.ATTRIB;continue;case K.ATTRIB_VALUE:if(I(q))continue;else if(v(q))X.q=q,X.state=K.ATTRIB_VALUE_QUOTED;else _(X,"Unquoted attribute value"),X.state=K.ATTRIB_VALUE_UNQUOTED,X.attribValue=q;continue;case K.ATTRIB_VALUE_QUOTED:if(q!==X.q){if(q==="&")X.state=K.ATTRIB_VALUE_ENTITY_Q;else X.attribValue+=q;continue}Z9(X),X.q="",X.state=K.ATTRIB_VALUE_CLOSED;continue;case K.ATTRIB_VALUE_CLOSED:if(I(q))X.state=K.ATTRIB;else if(q===">")F8(X);else if(q==="/")X.state=K.OPEN_TAG_SLASH;else if(d(V,q))_(X,"No whitespace between attributes"),X.attribName=q,X.attribValue="",X.state=K.ATTRIB_NAME;else _(X,"Invalid attribute name");continue;case K.ATTRIB_VALUE_UNQUOTED:if(!E8(q)){if(q==="&")X.state=K.ATTRIB_VALUE_ENTITY_U;else X.attribValue+=q;continue}if(Z9(X),q===">")F8(X);else X.state=K.ATTRIB;continue;case K.CLOSE_TAG:if(!X.tagName)if(I(q))continue;else if(x(V,q))if(X.script)X.script+="</"+q,X.state=K.SCRIPT;else _(X,"Invalid tagname in closing tag.");else X.tagName=q;else if(q===">")J9(X);else if(d(L,q))X.tagName+=q;else if(X.script)X.script+="</"+X.tagName,X.tagName="",X.state=K.SCRIPT;else{if(!I(q))_(X,"Invalid tagname in closing tag");X.state=K.CLOSE_TAG_SAW_WHITE}continue;case K.CLOSE_TAG_SAW_WHITE:if(I(q))continue;if(q===">")J9(X);else _(X,"Invalid characters in closing tag");continue;case K.TEXT_ENTITY:case K.ATTRIB_VALUE_ENTITY_Q:case K.ATTRIB_VALUE_ENTITY_U:var o,m;switch(X.state){case K.TEXT_ENTITY:o=K.TEXT,m="textNode";break;case K.ATTRIB_VALUE_ENTITY_Q:o=K.ATTRIB_VALUE_QUOTED,m="attribValue";break;case K.ATTRIB_VALUE_ENTITY_U:o=K.ATTRIB_VALUE_UNQUOTED,m="attribValue";break}if(q===";")if(X.opt.unparsedEntities){var n=w0(X);X.entity="",X.state=o,X.write(n)}else X[m]+=w0(X),X.entity="",X.state=o;else if(d(X.entity.length?O:C,q))X.entity+=q;else _(X,"Invalid character in entity name"),X[m]+="&"+X.entity+q,X.entity="",X.state=o;continue;default:throw Error(X,"Unknown state: "+X.state)}}if(X.position>=X.bufferCheckPosition)Y(X);return X}/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */if(!String.fromCodePoint)(function(){var H=String.fromCharCode,X=Math.floor,B=function(){var q=16384,T=[],b,o,m=-1,n=arguments.length;if(!n)return"";var R8="";while(++m<n){var f=Number(arguments[m]);if(!isFinite(f)||f<0||f>1114111||X(f)!==f)throw RangeError("Invalid code point: "+f);if(f<=65535)T.push(f);else f-=65536,b=(f>>10)+55296,o=f%1024+56320,T.push(b,o);if(m+1===n||T.length>q)R8+=H.apply(null,T),T.length=0}return R8};if(Object.defineProperty)Object.defineProperty(String,"fromCodePoint",{value:B,configurable:!0,writable:!0});else String.fromCodePoint=B})();return Q},$6=q3();var S1=`The output should be formatted as a XML file.
50
+ 1. Output should conform to the tags below.
51
+ 2. If tags are not given, make them on your own.
52
+ 3. Remember to always open and close all the tags.
53
+
54
+ As an example, for the tags ["foo", "bar", "baz"]:
55
+ 1. String "<foo>
56
+ <bar>
57
+ <baz></baz>
58
+ </bar>
59
+ </foo>" is a well-formatted instance of the schema.
60
+ 2. String "<foo>
61
+ <bar>
62
+ </foo>" is a badly-formatted instance.
63
+ 3. String "<foo>
64
+ <tag>
65
+ </tag>
66
+ </foo>" is a badly-formatted instance.
67
+
68
+ Here are the output tags:
69
+ \`\`\`
70
+ {tags}
71
+ \`\`\``,q6=class extends Y8{tags;constructor(Q){super(Q);this.tags=Q?.tags}static lc_name(){return"XMLOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_diff(Q,Z){if(!Z)return;if(!Q)return[{op:"replace",path:"",value:Z}];return D8(Q,Z)}async parsePartialResult(Q){return C1(Q[0].text)}async parse(Q){return C1(Q)}getFormatInstructions(){return this.tags&&this.tags.length>0?S1.replace("{tags}",this.tags?.join(", ")??""):S1}},K3=(Q)=>Q.split(`
72
+ `).map((Z)=>Z.replace(/^\s+/,"")).join(`
73
+ `).trim(),K6=(Q)=>{if(Object.keys(Q).length===0)return{};let Z={};if(Q.children.length>0)return Z[Q.name]=Q.children.map(K6),Z;else return Z[Q.name]=Q.text??void 0,Z};function C1(Q){let Z=K3(Q),J=$6.parser(!0),Y={},G=[];J.onopentag=($)=>{let U={name:$.name,attributes:$.attributes,children:[],text:"",isSelfClosing:$.isSelfClosing};if(G.length>0)G[G.length-1].children.push(U);else Y=U;if(!$.isSelfClosing)G.push(U)},J.onclosetag=()=>{if(G.length>0){let $=G.pop();if(G.length===0&&$)Y=$}},J.ontext=($)=>{if(G.length>0){let U=G[G.length-1];U.text+=$}},J.onattribute=($)=>{if(G.length>0){let U=G[G.length-1];U.attributes[$.name]=$.value}};let W=/```(xml)?(.*)```/s.exec(Z),z=W?W[2]:Z;if(J.write(z).close(),Y&&Y.name==="?xml")Y=Y.children[0];return K6(Y)}var U6=F({AsymmetricStructuredOutputParser:()=>H6,BaseCumulativeTransformOutputParser:()=>Y8,BaseLLMOutputParser:()=>k8,BaseOutputParser:()=>e,BaseTransformOutputParser:()=>$8,BytesOutputParser:()=>J6,CommaSeparatedListOutputParser:()=>Y6,CustomListOutputParser:()=>G6,JsonMarkdownStructuredOutputParser:()=>P9,JsonOutputParser:()=>T1,ListOutputParser:()=>h8,MarkdownListOutputParser:()=>X6,NumberedListOutputParser:()=>W6,OutputParserException:()=>k,StandardSchemaOutputParser:()=>_1,StringOutputParser:()=>z6,StructuredOutputParser:()=>W1,XMLOutputParser:()=>q6,XML_FORMAT_INSTRUCTIONS:()=>S1,parseJsonMarkdown:()=>T8,parsePartialJson:()=>B8,parseXMLMarkdown:()=>C1});var h6=F({extendInteropZodObject:()=>C6,getInteropZodDefaultGetter:()=>b6,getInteropZodObjectShape:()=>S6,getSchemaDescription:()=>v1,interopParse:()=>R6,interopParseAsync:()=>j1,interopSafeParse:()=>F6,interopSafeParseAsync:()=>y1,interopZodObjectMakeFieldsOptional:()=>f6,interopZodObjectPartial:()=>y6,interopZodObjectPassthrough:()=>M6,interopZodObjectStrict:()=>v6,interopZodTransformInputSchema:()=>x6,isInteropZodError:()=>k6,isInteropZodLiteral:()=>E6,isInteropZodObject:()=>j6,isInteropZodSchema:()=>N8,isShapelessZodSchema:()=>L6,isSimpleStringZodSchema:()=>V6,isZodArrayV4:()=>O6,isZodLiteralV3:()=>N6,isZodLiteralV4:()=>A6,isZodNullableV4:()=>_6,isZodObjectV3:()=>P6,isZodObjectV4:()=>I6,isZodOptionalV4:()=>T6,isZodSchema:()=>B6,isZodSchemaV3:()=>D6,isZodSchemaV4:()=>w6});function I9(Q,Z){if(Q.function===void 0)return;let J;if(Z?.partial)try{J=B8(Q.function.arguments??"{}")}catch{return}else try{J=JSON.parse(Q.function.arguments)}catch(G){throw new k([`Function "${Q.function.name}" arguments:`,"",Q.function.arguments,"","are not valid JSON.",`Error: ${G.message}`].join(`
74
+ `))}let Y={name:Q.function.name,args:J,type:"tool_call"};if(Z?.returnId)Y.id=Q.id;return Y}function g6(Q){if(Q.id===void 0)throw Error('All OpenAI tool calls must have an "id" field.');return{id:Q.id,type:"function",function:{name:Q.name,arguments:JSON.stringify(Q.args)}}}function d6(Q,Z){return{name:Q.function?.name,args:Q.function?.arguments,id:Q.id,error:Z,type:"invalid_tool_call"}}var O9=class extends Y8{static lc_name(){return"JsonOutputToolsParser"}returnId=!1;lc_namespace=["langchain","output_parsers","openai_tools"];lc_serializable=!0;constructor(Q){super(Q);this.returnId=Q?.returnId??this.returnId}_diff(){throw Error("Not supported.")}async parse(){throw Error("Not implemented.")}async parseResult(Q){return await this.parsePartialResult(Q,!1)}async parsePartialResult(Q,Z=!0){let J=Q[0].message,Y;if(v8(J)&&J.tool_calls?.length)Y=J.tool_calls.map((W)=>{let{id:z,...$}=W;if(!this.returnId)return $;return{id:z,...$}});else if(J.additional_kwargs.tool_calls!==void 0)Y=JSON.parse(JSON.stringify(J.additional_kwargs.tool_calls)).map((W)=>{return I9(W,{returnId:this.returnId,partial:Z})});if(!Y)return[];let G=[];for(let W of Y)if(W!==void 0){let z={type:W.name,args:W.args,id:W.id};G.push(z)}return G}},M1=class extends O9{static lc_name(){return"JsonOutputKeyToolsParser"}lc_namespace=["langchain","output_parsers","openai_tools"];lc_serializable=!0;returnId=!1;keyName;returnSingle=!1;zodSchema;serializableSchema;constructor(Q){super(Q);if(this.keyName=Q.keyName,this.returnSingle=Q.returnSingle??this.returnSingle,"zodSchema"in Q)this.zodSchema=Q.zodSchema;if("serializableSchema"in Q)this.serializableSchema=Q.serializableSchema}async _validateResult(Q){if(this.serializableSchema!==void 0){let J=await this.serializableSchema["~standard"].validate(Q);if(J.issues)throw new k(`Failed to parse. Text: "${JSON.stringify(Q,null,2)}". Error: ${JSON.stringify(J.issues)}`,JSON.stringify(Q,null,2));return J.value}if(this.zodSchema===void 0)return Q;let Z=await y1(this.zodSchema,Q);if(Z.success)return Z.data;else throw new k(`Failed to parse. Text: "${JSON.stringify(Q,null,2)}". Error: ${JSON.stringify(Z.error?.issues)}`,JSON.stringify(Q,null,2))}async parsePartialResult(Q){let Z=(await super.parsePartialResult(Q)).filter((Y)=>Y.type===this.keyName),J=Z;if(!Z.length)return;if(!this.returnId)J=Z.map((Y)=>Y.args);if(this.returnSingle)return J[0];return J}async parseResult(Q){let Z=(await super.parsePartialResult(Q,!1)).filter((Y)=>Y.type===this.keyName),J=Z;if(!Z.length)return;if(!this.returnId)J=Z.map((Y)=>Y.args);if(this.returnSingle)return this._validateResult(J[0]);return await Promise.all(J.map((Y)=>this._validateResult(Y)))}};var m6=F({assembleStructuredOutputPipeline:()=>T9,createContentParser:()=>U3,createFunctionCallingParser:()=>w3});function U3(Q){if(N8(Q))return W1.fromZodSchema(Q);if(g8(Q))return _1.fromSerializableSchema(Q);return new T1}function w3(Q,Z,J){let Y=J??M1;if(N8(Q))return new Y({returnSingle:!0,keyName:Z,zodSchema:Q});if(g8(Q))return new Y({returnSingle:!0,keyName:Z,serializableSchema:Q});return new Y({returnSingle:!0,keyName:Z})}function T9(Q,Z,J,Y){if(!J){let U=Q.pipe(Z);return Y?U.withConfig({runName:Y}):U}let G=I8.assign({parsed:(U,w)=>Z.invoke(U.raw,w)}),W=I8.assign({parsed:()=>null}),z=G.withFallbacks({fallbacks:[W]}),$=I1.from([{raw:Q},z]);return Y?$.withConfig({runName:Y}):$}var c6=(Q)=>Q();function b1(Q){return new Q.constructor({...Q,content:Q.contentBlocks,response_metadata:{...Q.response_metadata,output_version:"v1"}})}var u6=F({BaseChatModel:()=>A8,SimpleChatModel:()=>D3});function _9(Q){let Z=[];for(let J of Q){let Y=J;if(Array.isArray(J.content))for(let G=0;G<J.content.length;G++){let W=J.content[G];if(N1(W)||A1(W)){if(Y===J)Y=new J.constructor({...Y,content:[...J.content.slice(0,G),E1(W),...J.content.slice(G+1)]})}}Z.push(Y)}return Z}var A8=class Q extends k1{lc_namespace=["langchain","chat_models",this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,"outputVersion"]}constructor(Z){super(Z);this.outputVersion=c6(()=>{let J=Z.outputVersion??x1("LC_OUTPUT_VERSION");if(J&&["v0","v1"].includes(J))return J;return"v0"})}_separateRunnableConfigFromCallOptionsCompat(Z){let[J,Y]=super._separateRunnableConfigFromCallOptions(Z);return Y.signal=J.signal,[J,Y]}async invoke(Z,J){let Y=Q._convertInputToPromptValue(Z);return(await this.generatePrompt([Y],J,J?.callbacks)).generations[0][0].message}async*_streamResponseChunks(Z,J,Y){throw Error("Not implemented.")}async*_streamIterator(Z,J){if(this._streamResponseChunks===Q.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(Z,J);else{let Y=Q._convertInputToPromptValue(Z).toChatMessages(),[G,W]=this._separateRunnableConfigFromCallOptionsCompat(J),z={...G.metadata,...this.getLsParams(W)},$=await G8.configure(G.callbacks,this.callbacks,G.tags,this.tags,z,this.metadata,{verbose:this.verbose}),U={options:W,invocation_params:this?.invocationParams(W),batch_size:1},w=W.outputVersion??this.outputVersion,D=await $?.handleChatModelStart(this.toJSON(),[_9(Y)],G.runId,void 0,U,void 0,void 0,G.runName),R,N;try{for await(let E of this._streamResponseChunks(Y,W,D?.[0])){if(W.signal?.throwIfAborted(),E.message.id==null){let A=D?.at(0)?.runId;if(A!=null)E.message._updateId(`run-${A}`)}if(E.message.response_metadata={...E.generationInfo,...E.message.response_metadata},w==="v1")yield b1(E.message);else yield E.message;if(!R)R=E;else R=R.concat(E);if(J1(E.message)&&E.message.usage_metadata!==void 0)N={tokenUsage:{promptTokens:E.message.usage_metadata.input_tokens,completionTokens:E.message.usage_metadata.output_tokens,totalTokens:E.message.usage_metadata.total_tokens}}}W.signal?.throwIfAborted()}catch(E){throw await Promise.all((D??[]).map((A)=>A?.handleLLMError(E))),E}await Promise.all((D??[]).map((E)=>E?.handleLLMEnd({generations:[[R]],llmOutput:N})))}}getLsParams(Z){let J=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:Z.stop,ls_provider:J}}async _generateUncached(Z,J,Y,G){let W=Z.map((R)=>R.map(J8)),z;if(G!==void 0&&G.length===W.length)z=G;else{let R={...Y.metadata,...this.getLsParams(J)},N=await G8.configure(Y.callbacks,this.callbacks,Y.tags,this.tags,R,this.metadata,{verbose:this.verbose}),E={options:J,invocation_params:this?.invocationParams(J),batch_size:1};z=await N?.handleChatModelStart(this.toJSON(),W.map(_9),Y.runId,void 0,E,void 0,void 0,Y.runName)}let $=J.outputVersion??this.outputVersion,U=[],w=[];if(!!z?.[0].handlers.find(f1)&&!this.disableStreaming&&W.length===1&&this._streamResponseChunks!==Q.prototype._streamResponseChunks)try{let R=await this._streamResponseChunks(W[0],J,z?.[0]),N,E;for await(let A of R){if(J.signal?.aborted){let V=N?.message;throw new j9("Model invocation was aborted.",V)}if(A.message.id==null){let V=z?.at(0)?.runId;if(V!=null)A.message._updateId(`run-${V}`)}if(N===void 0)N=A;else N=z8(N,A);if(J1(A.message)&&A.message.usage_metadata!==void 0)E={tokenUsage:{promptTokens:A.message.usage_metadata.input_tokens,completionTokens:A.message.usage_metadata.output_tokens,totalTokens:A.message.usage_metadata.total_tokens}}}if(J.signal?.aborted){let A=N?.message;throw new j9("Model invocation was aborted.",A)}if(N===void 0)throw Error("Received empty response from chat model call.");U.push([N]),await z?.[0].handleLLMEnd({generations:U,llmOutput:E})}catch(R){throw await z?.[0].handleLLMError(R),R}else{let R=await Promise.allSettled(W.map(async(N,E)=>{let A=await this._generate(N,{...J,promptIndex:E},z?.[E]);if($==="v1")for(let V of A.generations)V.message=b1(V.message);return A}));await Promise.all(R.map(async(N,E)=>{if(N.status==="fulfilled"){let A=N.value;for(let V of A.generations){if(V.message.id==null){let L=z?.at(0)?.runId;if(L!=null)V.message._updateId(`run-${L}`)}V.message.response_metadata={...V.generationInfo,...V.message.response_metadata}}if(A.generations.length===1)A.generations[0].message.response_metadata={...A.llmOutput,...A.generations[0].message.response_metadata};return U[E]=A.generations,w[E]=A.llmOutput,z?.[E]?.handleLLMEnd({generations:[A.generations],llmOutput:A.llmOutput})}else return await z?.[E]?.handleLLMError(N.reason),Promise.reject(N.reason)}))}let D={generations:U,llmOutput:w.length?this._combineLLMOutput?.(...w):void 0};return Object.defineProperty(D,d8,{value:z?{runIds:z?.map((R)=>R.runId)}:void 0,configurable:!0}),D}async _generateCached({messages:Z,cache:J,llmStringKey:Y,parsedOptions:G,handledOptions:W}){let z=Z.map((L)=>L.map(J8)),$={...W.metadata,...this.getLsParams(G)},U=await G8.configure(W.callbacks,this.callbacks,W.tags,this.tags,$,this.metadata,{verbose:this.verbose}),w={options:G,invocation_params:this?.invocationParams(G),batch_size:1},D=await U?.handleChatModelStart(this.toJSON(),z.map(_9),W.runId,void 0,w,void 0,void 0,W.runName),R=[],N=(await Promise.allSettled(z.map(async(L,C)=>{let O=Q._convertInputToPromptValue(L).toString(),I=await J.lookup(O,Y);if(I==null)R.push(C);return I}))).map((L,C)=>({result:L,runManager:D?.[C]})).filter(({result:L})=>L.status==="fulfilled"&&L.value!=null||L.status==="rejected"),E=G.outputVersion??this.outputVersion,A=[];await Promise.all(N.map(async({result:L,runManager:C},O)=>{if(L.status==="fulfilled"){let I=L.value;if(A[O]=I.map((v)=>{if("message"in v&&p(v.message)&&v8(v.message)){if(v.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},E==="v1")v.message=b1(v.message)}return v.generationInfo={...v.generationInfo,tokenUsage:{}},v}),I.length)await C?.handleLLMNewToken(I[0].text);return C?.handleLLMEnd({generations:[I]},void 0,void 0,void 0,{cached:!0})}else return await C?.handleLLMError(L.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(L.reason)}));let V={generations:A,missingPromptIndices:R,startedRunManagers:D};return Object.defineProperty(V,d8,{value:D?{runIds:D?.map((L)=>L.runId)}:void 0,configurable:!0}),V}async generate(Z,J,Y){let G;if(Array.isArray(J))G={stop:J};else G=J;let W=Z.map((A)=>A.map(J8)),[z,$]=this._separateRunnableConfigFromCallOptionsCompat(G);if(z.callbacks=z.callbacks??Y,!this.cache)return this._generateUncached(W,$,z);let{cache:U}=this,w=this._getSerializedCacheKeyParametersForCall($),{generations:D,missingPromptIndices:R,startedRunManagers:N}=await this._generateCached({messages:W,cache:U,llmStringKey:w,parsedOptions:$,handledOptions:z}),E={};if(R.length>0){let A=await this._generateUncached(R.map((V)=>W[V]),$,z,N!==void 0?R.map((V)=>N?.[V]):void 0);await Promise.all(A.generations.map(async(V,L)=>{let C=R[L];D[C]=V;let O=Q._convertInputToPromptValue(W[C]).toString();return U.update(O,w,V)})),E=A.llmOutput??{}}return{generations:D,llmOutput:E}}invocationParams(Z){return{}}_modelType(){return"base_chat_model"}async generatePrompt(Z,J,Y){let G=Z.map((W)=>W.toChatMessages());return this.generate(G,J,Y)}withStructuredOutput(Z,J){if(typeof this.bindTools!=="function")throw Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(J?.strict)throw Error('"strict" mode is not supported for this model by default.');let Y=Z,G=J?.name,W=v1(Y)??"A function available to call.",z=J?.method,$=J?.includeRaw;if(z==="jsonMode")throw Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let U=G??"extract";if(!N8(Y)&&!g8(Y)&&"name"in Y)U=Y.name;let w=N8(Y)||g8(Y)?h(Y):Y,D=[{type:"function",function:{name:U,description:W,parameters:w}}];return T9(this.bindTools(D),u.from((R)=>{if(!t.isInstance(R))throw Error("Input is not an AIMessageChunk.");if(!R.tool_calls||R.tool_calls.length===0)throw Error("No tool calls found in the response.");let N=R.tool_calls.find((E)=>E.name===U);if(!N)throw Error(`No tool call found with name ${U}.`);return N.args}),$,$?"StructuredOutputRunnable":"StructuredOutput")}},D3=class extends A8{async _generate(Q,Z,J){let Y=new j(await this._call(Q,Z,J));if(typeof Y.content!=="string")throw Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:Y.content,message:Y}]}}};var l6=F({BaseLLM:()=>o6,LLM:()=>h1}),o6=class Q extends k1{lc_namespace=["langchain","llms",this._llmType()];async invoke(Z,J){let Y=Q._convertInputToPromptValue(Z);return(await this.generatePrompt([Y],J,J?.callbacks)).generations[0][0].text}async*_streamResponseChunks(Z,J,Y){throw Error("Not implemented.")}_separateRunnableConfigFromCallOptionsCompat(Z){let[J,Y]=super._separateRunnableConfigFromCallOptions(Z);return Y.signal=J.signal,[J,Y]}async*_streamIterator(Z,J){if(this._streamResponseChunks===Q.prototype._streamResponseChunks)yield this.invoke(Z,J);else{let Y=Q._convertInputToPromptValue(Z),[G,W]=this._separateRunnableConfigFromCallOptionsCompat(J),z=await G8.configure(G.callbacks,this.callbacks,G.tags,this.tags,G.metadata,this.metadata,{verbose:this.verbose}),$={options:W,invocation_params:this?.invocationParams(W),batch_size:1},U=await z?.handleLLMStart(this.toJSON(),[Y.toString()],G.runId,void 0,$,void 0,void 0,G.runName),w=new O1({text:""});try{for await(let D of this._streamResponseChunks(Y.toString(),W,U?.[0])){if(!w)w=D;else w=w.concat(D);if(typeof D.text==="string")yield D.text}}catch(D){throw await Promise.all((U??[]).map((R)=>R?.handleLLMError(D))),D}await Promise.all((U??[]).map((D)=>D?.handleLLMEnd({generations:[[w]]})))}}async generatePrompt(Z,J,Y){let G=Z.map((W)=>W.toString());return this.generate(G,J,Y)}invocationParams(Z){return{}}_flattenLLMResult(Z){let J=[];for(let Y=0;Y<Z.generations.length;Y+=1){let G=Z.generations[Y];if(Y===0)J.push({generations:[G],llmOutput:Z.llmOutput});else{let W=Z.llmOutput?{...Z.llmOutput,tokenUsage:{}}:void 0;J.push({generations:[G],llmOutput:W})}}return J}async _generateUncached(Z,J,Y,G){let W;if(G!==void 0&&G.length===Z.length)W=G;else{let w=await G8.configure(Y.callbacks,this.callbacks,Y.tags,this.tags,Y.metadata,this.metadata,{verbose:this.verbose}),D={options:J,invocation_params:this?.invocationParams(J),batch_size:Z.length};W=await w?.handleLLMStart(this.toJSON(),Z,Y.runId,void 0,D,void 0,void 0,Y?.runName)}let z=!!W?.[0].handlers.find(f1),$;if(z&&Z.length===1&&this._streamResponseChunks!==Q.prototype._streamResponseChunks)try{let w=await this._streamResponseChunks(Z[0],J,W?.[0]),D;for await(let R of w)if(D===void 0)D=R;else D=z8(D,R);if(D===void 0)throw Error("Received empty response from chat model call.");$={generations:[[D]],llmOutput:{}},await W?.[0].handleLLMEnd($)}catch(w){throw await W?.[0].handleLLMError(w),w}else{try{$=await this._generate(Z,J,W?.[0])}catch(D){throw await Promise.all((W??[]).map((R)=>R?.handleLLMError(D))),D}let w=this._flattenLLMResult($);await Promise.all((W??[]).map((D,R)=>D?.handleLLMEnd(w[R])))}let U=W?.map((w)=>w.runId)||void 0;return Object.defineProperty($,d8,{value:U?{runIds:U}:void 0,configurable:!0}),$}async _generateCached({prompts:Z,cache:J,llmStringKey:Y,parsedOptions:G,handledOptions:W,runId:z}){let $=await G8.configure(W.callbacks,this.callbacks,W.tags,this.tags,W.metadata,this.metadata,{verbose:this.verbose}),U={options:G,invocation_params:this?.invocationParams(G),batch_size:Z.length},w=await $?.handleLLMStart(this.toJSON(),Z,z,void 0,U,void 0,void 0,W?.runName),D=[],R=(await Promise.allSettled(Z.map(async(A,V)=>{let L=await J.lookup(A,Y);if(L==null)D.push(V);return L}))).map((A,V)=>({result:A,runManager:w?.[V]})).filter(({result:A})=>A.status==="fulfilled"&&A.value!=null||A.status==="rejected"),N=[];await Promise.all(R.map(async({result:A,runManager:V},L)=>{if(A.status==="fulfilled"){let C=A.value;if(N[L]=C.map((O)=>{return O.generationInfo={...O.generationInfo,tokenUsage:{}},O}),C.length)await V?.handleLLMNewToken(C[0].text);return V?.handleLLMEnd({generations:[C]},void 0,void 0,void 0,{cached:!0})}else return await V?.handleLLMError(A.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(A.reason)}));let E={generations:N,missingPromptIndices:D,startedRunManagers:w};return Object.defineProperty(E,d8,{value:w?{runIds:w?.map((A)=>A.runId)}:void 0,configurable:!0}),E}async generate(Z,J,Y){if(!Array.isArray(Z))throw Error("Argument 'prompts' is expected to be a string[]");let G;if(Array.isArray(J))G={stop:J};else G=J;let[W,z]=this._separateRunnableConfigFromCallOptionsCompat(G);if(W.callbacks=W.callbacks??Y,!this.cache)return this._generateUncached(Z,z,W);let{cache:$}=this,U=this._getSerializedCacheKeyParametersForCall(z),{generations:w,missingPromptIndices:D,startedRunManagers:R}=await this._generateCached({prompts:Z,cache:$,llmStringKey:U,parsedOptions:z,handledOptions:W,runId:W.runId}),N={};if(D.length>0){let E=await this._generateUncached(D.map((A)=>Z[A]),z,W,R!==void 0?D.map((A)=>R?.[A]):void 0);await Promise.all(E.generations.map(async(A,V)=>{let L=D[V];return w[L]=A,$.update(Z[L],U,A)})),N=E.llmOutput??{}}return{generations:w,llmOutput:N}}_identifyingParams(){return{}}_modelType(){return"base_llm"}},h1=class extends o6{async _generate(Q,Z,J){return{generations:await Promise.all(Q.map((Y,G)=>this._call(Y,{...Z,promptIndex:G},J).then((W)=>[{text:W}])))}}};var p6=F({});var i6=F({BaseMemory:()=>B3,getInputValue:()=>N3,getOutputValue:()=>A3,getPromptInputKey:()=>E3}),B3=class{},n6=(Q,Z)=>{if(Z!==void 0)return Q[Z];let J=Object.keys(Q);if(J.length===1)return Q[J[0]]},N3=(Q,Z)=>{let J=n6(Q,Z);if(!J){let Y=Object.keys(Q);throw Error(`input values have ${Y.length} keys, you must specify an input key or pass only 1 key as input`)}return J},A3=(Q,Z)=>{let J=n6(Q,Z);if(!J&&J!==""){let Y=Object.keys(Q);throw Error(`output values have ${Y.length} keys, you must specify an output key or pass only 1 key as output`)}return J};function E3(Q,Z){let J=Object.keys(Q).filter((Y)=>!Z.includes(Y)&&Y!=="stop");if(J.length!==1)throw Error(`One input key expected, but got ${J.length}`);return J[0]}var S9=class extends k8{static lc_name(){return"OutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;argsOnly=!0;constructor(Q){super();this.argsOnly=Q?.argsOnly??this.argsOnly}async parseResult(Q){if("message"in Q[0]){let Z=Q[0].message.additional_kwargs.function_call;if(!Z)throw Error(`No function_call in message ${JSON.stringify(Q)}`);if(!Z.arguments)throw Error(`No arguments in function_call ${JSON.stringify(Q)}`);if(this.argsOnly)return Z.arguments;return JSON.stringify(Z)}else throw Error(`No message in generations ${JSON.stringify(Q)}`)}},C9=class extends Y8{static lc_name(){return"JsonOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser;argsOnly=!0;constructor(Q){super(Q);this.argsOnly=Q?.argsOnly??this.argsOnly,this.outputParser=new S9(Q)}_diff(Q,Z){if(!Z)return;return D8(Q??{},Z)}async parsePartialResult(Q){let Z=Q[0];if(!Z.message)return;let{message:J}=Z,Y=J.additional_kwargs.function_call;if(!Y)return;if(this.argsOnly)return B8(Y.arguments);return{...Y,arguments:B8(Y.arguments)}}async parseResult(Q){let Z=await this.outputParser.parseResult(Q);if(!Z)throw Error(`No result from "OutputFunctionsParser" ${JSON.stringify(Q)}`);return this.parse(Z)}async parse(Q){let Z=JSON.parse(Q);if(this.argsOnly)return Z;return Z.arguments=JSON.parse(Z.arguments),Z}getFormatInstructions(){return""}},r6=class extends k8{static lc_name(){return"JsonKeyOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser=new C9;attrName;get lc_aliases(){return{attrName:"key_name"}}constructor(Q){super(Q);this.attrName=Q.attrName}async parseResult(Q){return(await this.outputParser.parseResult(Q))[this.attrName]}};var t6=F({JsonKeyOutputFunctionsParser:()=>r6,JsonOutputFunctionsParser:()=>C9,OutputFunctionsParser:()=>S9});var s6=F({JsonOutputKeyToolsParser:()=>M1,JsonOutputToolsParser:()=>O9,convertLangChainToolCallToOpenAI:()=>g6,makeInvalidToolCall:()=>d6,parseToolCall:()=>I9});var W8=class extends M{lc_serializable=!0;lc_namespace=["langchain_core","prompts",this._getPromptType()];get lc_attributes(){return{partialVariables:void 0}}inputVariables;outputParser;partialVariables;metadata;tags;constructor(Q){super(Q);let{inputVariables:Z}=Q;if(Z.includes("stop"))throw Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");Object.assign(this,Q)}async mergePartialAndUserVariables(Q){let Z=this.partialVariables??{},J={};for(let[Y,G]of Object.entries(Z))if(typeof G==="string")J[Y]=G;else J[Y]=await G();return{...J,...Q}}async invoke(Q,Z){let J={...this.metadata,...Z?.metadata},Y=[...this.tags??[],...Z?.tags??[]];return this._callWithConfig((G)=>this.formatPromptValue(G),Q,{...Z,tags:Y,metadata:J,runType:"prompt"})}};var q8=class extends W8{async formatPromptValue(Q){return new a6(await this.format(Q))}};function e6(){g1.escape=(Q)=>Q}var _8=(Q)=>{let Z=Q.split(""),J=[],Y=(W,z)=>{for(let $=z;$<Z.length;$+=1)if(W.includes(Z[$]))return $;return-1},G=0;while(G<Z.length)if(Z[G]==="{"&&G+1<Z.length&&Z[G+1]==="{")J.push({type:"literal",text:"{"}),G+=2;else if(Z[G]==="}"&&G+1<Z.length&&Z[G+1]==="}")J.push({type:"literal",text:"}"}),G+=2;else if(Z[G]==="{"){let W=Y("}",G);if(W<0)throw Error("Unclosed '{' in template.");J.push({type:"variable",name:Z.slice(G+1,W).join("")}),G=W+1}else if(Z[G]==="}")throw Error("Single '}' in template.");else{let W=Y("{}",G),z=(W<0?Z.slice(G):Z.slice(G,W)).join("");J.push({type:"literal",text:z}),G=W<0?Z.length:W}return J},Q5=(Q,Z=[])=>{let J=[];for(let Y of Q)if(Y[0]==="name"){let G=Y[1].includes(".")?Y[1].split(".")[0]:Y[1];J.push({type:"variable",name:G})}else if(["#","&","^",">"].includes(Y[0])){if(J.push({type:"variable",name:Y[1]}),Y[0]==="#"&&Y.length>4&&Array.isArray(Y[4])){let G=[...Z,Y[1]],W=Q5(Y[4],G);J.push(...W)}}else J.push({type:"literal",text:Y[1]});return J},m8=(Q)=>{return e6(),Q5(g1.parse(Q))},y9=(Q,Z)=>{return _8(Q).reduce((J,Y)=>{if(Y.type==="variable"){if(Y.name in Z)return J+(typeof Z[Y.name]==="string"?Z[Y.name]:JSON.stringify(Z[Y.name]));throw Error(`(f-string) Missing value for input ${Y.name}`)}return J+Y.text},"")},v9=(Q,Z)=>{return e6(),g1.render(Q,Z)},X1={"f-string":y9,mustache:v9},M9={"f-string":_8,mustache:m8},g=(Q,Z,J)=>{try{return X1[Z](Q,J)}catch(Y){throw f8(Y,"INVALID_PROMPT_INPUT")}},j8=(Q,Z)=>M9[Z](Q),K8=(Q,Z,J)=>{if(!(Z in X1)){let Y=Object.keys(X1);throw Error(`Invalid template format. Got \`${Z}\`;
75
+ should be one of ${Y}`)}try{let Y=Object.fromEntries(J.map((G)=>[G,"foo"]));if(Array.isArray(Q))Q.forEach((G)=>{if(G.type==="text"&&"text"in G&&typeof G.text==="string")g(G.text,Z,Y);else if(G.type==="image_url"){if(typeof G.image_url==="string")g(G.image_url,Z,Y);else if(typeof G.image_url==="object"&&G.image_url!==null&&"url"in G.image_url&&typeof G.image_url.url==="string"){let W=G.image_url.url;g(W,Z,Y)}}else throw Error(`Invalid message template received. ${JSON.stringify(G,null,2)}`)});else g(Q,Z,Y)}catch(Y){throw Error(`Invalid prompt schema: ${Y.message}`)}};var Q8=class Q extends q8{static lc_name(){return"PromptTemplate"}template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(Z){super(Z);if(Z.templateFormat==="mustache"&&Z.validateTemplate===void 0)this.validateTemplate=!1;if(Object.assign(this,Z),this.validateTemplate){if(this.templateFormat==="mustache")throw Error("Mustache templates cannot be validated.");let J=this.inputVariables;if(this.partialVariables)J=J.concat(Object.keys(this.partialVariables));K8(this.template,this.templateFormat,J)}}_getPromptType(){return"prompt"}async format(Z){let J=await this.mergePartialAndUserVariables(Z);return g(this.template,this.templateFormat,J)}static fromExamples(Z,J,Y,G=`
76
+
77
+ `,W=""){return new Q({inputVariables:Y,template:[W,...Z,J].join(G)})}static fromTemplate(Z,J){let{templateFormat:Y="f-string",...G}=J??{},W=new Set;return j8(Z,Y).forEach((z)=>{if(z.type==="variable")W.add(z.name)}),new Q({inputVariables:[...W],templateFormat:Y,template:Z,...G})}async partial(Z){let J=this.inputVariables.filter((G)=>!(G in Z)),Y={...this.partialVariables??{},...Z};return new Q({...this,inputVariables:J,partialVariables:Y})}serialize(){if(this.outputParser!==void 0)throw Error("Cannot serialize a prompt template with an output parser");return{_type:this._getPromptType(),input_variables:this.inputVariables,template:this.template,template_format:this.templateFormat}}static async deserialize(Z){if(!Z.template)throw Error("Prompt template must have a template");return new Q({inputVariables:Z.input_variables,template:Z.template,templateFormat:Z.template_format})}};var c8=class Q extends W8{static lc_name(){return"ImagePromptTemplate"}lc_namespace=["langchain_core","prompts","image"];template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(Z){super(Z);if(this.template=Z.template,this.templateFormat=Z.templateFormat??this.templateFormat,this.validateTemplate=Z.validateTemplate??this.validateTemplate,this.additionalContentFields=Z.additionalContentFields,this.validateTemplate){let J=this.inputVariables;if(this.partialVariables)J=J.concat(Object.keys(this.partialVariables));K8([{type:"image_url",image_url:this.template}],this.templateFormat,J)}}_getPromptType(){return"prompt"}async partial(Z){let J=this.inputVariables.filter((G)=>!(G in Z)),Y={...this.partialVariables??{},...Z};return new Q({...this,inputVariables:J,partialVariables:Y})}async format(Z){let J={};for(let[z,$]of Object.entries(this.template))if(typeof $==="string")J[z]=g($,this.templateFormat,Z);else J[z]=$;let Y=Z.url||J.url,G=Z.detail||J.detail;if(!Y)throw Error("Must provide either an image URL.");if(typeof Y!=="string")throw Error("url must be a string.");let W={url:Y};if(G)W.detail=G;return W}async formatPromptValue(Z){return new Z5(await this.format(Z))}};var z1=class extends M{lc_namespace=["langchain_core","prompts","dict"];lc_serializable=!0;template;templateFormat;inputVariables;static lc_name(){return"DictPromptTemplate"}constructor(Q){let Z=Q.templateFormat??"f-string",J=b9(Q.template,Z);super({inputVariables:J,...Q});this.template=Q.template,this.templateFormat=Z,this.inputVariables=J}async format(Q){return x9(this.template,Q,this.templateFormat)}async invoke(Q){return await this._callWithConfig(this.format.bind(this),Q,{runType:"prompt"})}};function b9(Q,Z){let J=[];for(let Y of Object.values(Q))if(typeof Y==="string")j8(Y,Z).forEach((G)=>{if(G.type==="variable")J.push(G.name)});else if(Array.isArray(Y)){for(let G of Y)if(typeof G==="string")j8(G,Z).forEach((W)=>{if(W.type==="variable")J.push(W.name)});else if(typeof G==="object")J.push(...b9(G,Z))}else if(typeof Y==="object"&&Y!==null)J.push(...b9(Y,Z));return Array.from(new Set(J))}function x9(Q,Z,J){let Y={};for(let[G,W]of Object.entries(Q))if(typeof W==="string")Y[G]=g(W,J,Z);else if(Array.isArray(W)){let z=[];for(let $ of W)if(typeof $==="string")z.push(g($,J,Z));else if(typeof $==="object")z.push(x9($,Z,J));Y[G]=z}else if(typeof W==="object"&&W!==null)Y[G]=x9(W,Z,J);else Y[G]=W;return Y}var H1=class extends M{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;async invoke(Q,Z){return this._callWithConfig((J)=>this.formatMessages(J),Q,{...Z,runType:"prompt"})}},d1=class extends H1{static lc_name(){return"MessagesPlaceholder"}variableName;optional;constructor(Q){if(typeof Q==="string")Q={variableName:Q};super(Q);this.variableName=Q.variableName,this.optional=Q.optional??!1}get inputVariables(){return[this.variableName]}async formatMessages(Q){let Z=Q[this.variableName];if(this.optional&&!Z)return[];else if(!Z){let Y=Error(`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: undefined`);throw Y.name="InputFormatError",Y}let J;try{if(Array.isArray(Z))J=Z.map(J8);else J=[J8(Z)]}catch(Y){let G=typeof Z==="string"?Z:JSON.stringify(Z,null,2),W=Error([`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages or coerceable values as input.`,`Received value: ${G}`,`Additional message: ${Y.message}`].join(`
78
+
79
+ `));throw W.name="InputFormatError",W.lc_error_code=Y.lc_error_code,W}return J}},f9=class extends H1{prompt;constructor(Q){if(!("prompt"in Q))Q={prompt:Q};super(Q);this.prompt=Q.prompt}get inputVariables(){return this.prompt.inputVariables}async formatMessages(Q){return[await this.format(Q)]}},$1=class extends W8{constructor(Q){super(Q)}async format(Q){return(await this.formatPromptValue(Q)).toString()}async formatPromptValue(Q){return new J5(await this.formatMessages(Q))}},k9=class extends f9{static lc_name(){return"ChatMessagePromptTemplate"}role;constructor(Q,Z){if(!("prompt"in Q))Q={prompt:Q,role:Z};super(Q);this.role=Q.role}async format(Q){return new w8(await this.prompt.format(Q),this.role)}static fromTemplate(Q,Z,J){return new this(Q8.fromTemplate(Q,{templateFormat:J?.templateFormat}),Z)}};function F3(Q){if(Q===null||typeof Q!=="object"||Array.isArray(Q))return!1;return Object.keys(Q).length===1&&"text"in Q&&typeof Q.text==="string"}function R3(Q){if(Q===null||typeof Q!=="object"||Array.isArray(Q))return!1;return"image_url"in Q&&(typeof Q.image_url==="string"||typeof Q.image_url==="object"&&Q.image_url!==null&&("url"in Q.image_url)&&typeof Q.image_url.url==="string")}var h9=class extends H1{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;inputVariables=[];additionalOptions={};prompt;messageClass;static _messageClass(){throw Error("Can not invoke _messageClass from inside _StringImageMessagePromptTemplate")}chatMessageClass;constructor(Q,Z){if(!("prompt"in Q))Q={prompt:Q};super(Q);if(this.prompt=Q.prompt,Array.isArray(this.prompt)){let J=[];this.prompt.forEach((Y)=>{if("inputVariables"in Y)J=J.concat(Y.inputVariables)}),this.inputVariables=J}else this.inputVariables=this.prompt.inputVariables;this.additionalOptions=Z??this.additionalOptions}createMessage(Q){let Z=this.constructor;if(Z._messageClass())return new(Z._messageClass())({content:Q});else if(Z.chatMessageClass){let J=Z.chatMessageClass();return new J({content:Q,role:this.getRoleFromMessageClass(J.lc_name())})}else throw Error("No message class defined")}getRoleFromMessageClass(Q){switch(Q){case"HumanMessage":return"human";case"AIMessage":return"ai";case"SystemMessage":return"system";case"ChatMessage":return"chat";default:throw Error("Invalid message class name")}}static fromTemplate(Q,Z){if(typeof Q==="string")return new this(Q8.fromTemplate(Q,Z));let J=[];for(let Y of Q)if(typeof Y==="string")J.push(Q8.fromTemplate(Y,Z));else if(Y===null);else if(F3(Y)){let G="";if(typeof Y.text==="string")G=Y.text??"";let W={...Z,additionalContentFields:Y};J.push(Q8.fromTemplate(G,W))}else if(R3(Y)){let G=Y.image_url??"",W,z=[];if(typeof G==="string"){let $;if(Z?.templateFormat==="mustache")$=m8(G);else $=_8(G);let U=$.flatMap((w)=>w.type==="variable"?[w.name]:[]);if((U?.length??0)>0){if(U.length>1)throw Error(`Only one format variable allowed per image template.
80
+ Got: ${U}
81
+ From: ${G}`);z=[U[0]]}else z=[];G={url:G},W=new c8({template:G,inputVariables:z,templateFormat:Z?.templateFormat,additionalContentFields:Y})}else if(typeof G==="object"){if("url"in G){let $;if(Z?.templateFormat==="mustache")$=m8(G.url);else $=_8(G.url);z=$.flatMap((U)=>U.type==="variable"?[U.name]:[])}else z=[];W=new c8({template:G,inputVariables:z,templateFormat:Z?.templateFormat,additionalContentFields:Y})}else throw Error("Invalid image template");J.push(W)}else if(typeof Y==="object")J.push(new z1({template:Y,templateFormat:Z?.templateFormat}));return new this({prompt:J,additionalOptions:Z})}async format(Q){if(this.prompt instanceof q8){let Z=await this.prompt.format(Q);return this.createMessage(Z)}else{let Z=[];for(let J of this.prompt){let Y={};if(!("inputVariables"in J))throw Error(`Prompt ${J} does not have inputVariables defined.`);for(let G of J.inputVariables){if(!Y)Y={[G]:Q[G]};Y={...Y,[G]:Q[G]}}if(J instanceof q8){let G=await J.format(Y),W;if("additionalContentFields"in J)W=J.additionalContentFields;if(G!=="")Z.push({...W,type:"text",text:G})}else if(J instanceof c8){let G=await J.format(Y),W;if("additionalContentFields"in J)W=J.additionalContentFields;Z.push({...W,type:"image_url",image_url:G})}else if(J instanceof z1){let G=await J.format(Y),W;if("additionalContentFields"in J)W=J.additionalContentFields;Z.push({...W,...G})}}return this.createMessage(Z)}}async formatMessages(Q){return[await this.format(Q)]}},m1=class extends h9{static _messageClass(){return c}static lc_name(){return"HumanMessagePromptTemplate"}},g9=class extends h9{static _messageClass(){return j}static lc_name(){return"AIMessagePromptTemplate"}},d9=class extends h9{static _messageClass(){return r}static lc_name(){return"SystemMessagePromptTemplate"}};function L3(Q){return typeof Q.formatMessages==="function"}function V3(Q,Z){if(L3(Q)||p(Q))return Q;if(Array.isArray(Q)&&Q[0]==="placeholder"){let G=Q[1];if(Z?.templateFormat==="mustache"&&typeof G==="string"&&G.slice(0,2)==="{{"&&G.slice(-2)==="}}")return new d1({variableName:G.slice(2,-2),optional:!0});else if(typeof G==="string"&&G[0]==="{"&&G[G.length-1]==="}")return new d1({variableName:G.slice(1,-1),optional:!0});throw Error(`Invalid placeholder template for format ${Z?.templateFormat??'"f-string"'}: "${Q[1]}". Expected a variable name surrounded by ${Z?.templateFormat==="mustache"?"double":"single"} curly braces.`)}let J=J8(Q),Y;if(typeof J.content==="string")Y=J.content;else Y=J.content.map((G)=>{if("text"in G)return{...G,text:G.text};else if("image_url"in G)return{...G,image_url:G.image_url};else return G});if(J._getType()==="human")return m1.fromTemplate(Y,Z);else if(J._getType()==="ai")return g9.fromTemplate(Y,Z);else if(J._getType()==="system")return d9.fromTemplate(Y,Z);else if(w8.isInstance(J))return k9.fromTemplate(J.content,J.role,Z);else throw Error(`Could not coerce message prompt template from input. Received message type: "${J._getType()}".`)}function P3(Q){return Q.constructor.lc_name()==="MessagesPlaceholder"}var u8=class Q extends $1{static lc_name(){return"ChatPromptTemplate"}get lc_aliases(){return{promptMessages:"messages"}}promptMessages;validateTemplate=!0;templateFormat="f-string";constructor(Z){super(Z);if(Z.templateFormat==="mustache"&&Z.validateTemplate===void 0)this.validateTemplate=!1;if(Object.assign(this,Z),this.validateTemplate){let J=new Set;for(let $ of this.promptMessages){if($ instanceof s)continue;for(let U of $.inputVariables)J.add(U)}let Y=this.inputVariables,G=new Set(this.partialVariables?Y.concat(Object.keys(this.partialVariables)):Y),W=new Set([...G].filter(($)=>!J.has($)));if(W.size>0)throw Error(`Input variables \`${[...W]}\` are not used in any of the prompt messages.`);let z=new Set([...J].filter(($)=>!G.has($)));if(z.size>0)throw Error(`Input variables \`${[...z]}\` are used in prompt messages but not in the prompt template.`)}}_getPromptType(){return"chat"}async _parseImagePrompts(Z,J){if(typeof Z.content==="string")return Z;return Z.content=await Promise.all(Z.content.map(async(Y)=>{if(Y.type!=="image_url")return Y;let G="";if(typeof Y.image_url==="string")G=Y.image_url;else if(typeof Y.image_url==="object"&&Y.image_url!==null&&"url"in Y.image_url&&typeof Y.image_url.url==="string")G=Y.image_url.url;let W=await Q8.fromTemplate(G,{templateFormat:this.templateFormat}).format(J);if(typeof Y.image_url==="object"&&Y.image_url!==null&&"url"in Y.image_url)Y.image_url.url=W;else Y.image_url=W;return Y})),Z}async formatMessages(Z){let J=await this.mergePartialAndUserVariables(Z),Y=[];for(let G of this.promptMessages)if(G instanceof s)Y.push(await this._parseImagePrompts(G,J));else{let W;if(this.templateFormat==="mustache")W={...J};else W=G.inputVariables.reduce(($,U)=>{if(!(U in J)&&!(P3(G)&&G.optional))throw f8(Error(`Missing value for input variable \`${U.toString()}\``),"INVALID_PROMPT_INPUT");return $[U]=J[U],$},{});let z=await G.formatMessages(W);Y=Y.concat(z)}return Y}async partial(Z){let J=this.inputVariables.filter((G)=>!(G in Z)),Y={...this.partialVariables??{},...Z};return new Q({...this,inputVariables:J,partialVariables:Y})}static fromTemplate(Z,J){let Y=new m1({prompt:Q8.fromTemplate(Z,J)});return this.fromMessages([Y])}static fromMessages(Z,J){let Y=Z.reduce((z,$)=>z.concat($ instanceof Q?$.promptMessages:[V3($,J)]),[]),G=Z.reduce((z,$)=>$ instanceof Q?Object.assign(z,$.partialVariables):z,Object.create(null)),W=new Set;for(let z of Y){if(z instanceof s)continue;for(let $ of z.inputVariables){if($ in G)continue;W.add($)}}return new this({...J,inputVariables:[...W],promptMessages:Y,partialVariables:G,templateFormat:J?.templateFormat})}};var Y5=class Q extends q8{lc_serializable=!1;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
82
+
83
+ `;prefix="";templateFormat="f-string";validateTemplate=!0;constructor(Z){super(Z);if(Object.assign(this,Z),this.examples!==void 0&&this.exampleSelector!==void 0)throw Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let J=this.inputVariables;if(this.partialVariables)J=J.concat(Object.keys(this.partialVariables));K8(this.prefix+this.suffix,this.templateFormat,J)}}_getPromptType(){return"few_shot"}static lc_name(){return"FewShotPromptTemplate"}async getExamples(Z){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(Z);throw Error("One of 'examples' and 'example_selector' should be provided")}async partial(Z){let J=this.inputVariables.filter((G)=>!(G in Z)),Y={...this.partialVariables??{},...Z};return new Q({...this,inputVariables:J,partialVariables:Y})}async format(Z){let J=await this.mergePartialAndUserVariables(Z),Y=await this.getExamples(J),G=await Promise.all(Y.map((W)=>this.examplePrompt.format(W)));return g([this.prefix,...G,this.suffix].join(this.exampleSeparator),this.templateFormat,J)}serialize(){if(this.exampleSelector||!this.examples)throw Error("Serializing an example selector is not currently supported");if(this.outputParser!==void 0)throw Error("Serializing an output parser is not currently supported");return{_type:this._getPromptType(),input_variables:this.inputVariables,example_prompt:this.examplePrompt.serialize(),example_separator:this.exampleSeparator,suffix:this.suffix,prefix:this.prefix,template_format:this.templateFormat,examples:this.examples}}static async deserialize(Z){let{example_prompt:J}=Z;if(!J)throw Error("Missing example prompt");let Y=await Q8.deserialize(J),G;if(Array.isArray(Z.examples))G=Z.examples;else throw Error("Invalid examples format. Only list or string are supported.");return new Q({inputVariables:Z.input_variables,examplePrompt:Y,examples:G,exampleSeparator:Z.example_separator,prefix:Z.prefix,suffix:Z.suffix,templateFormat:Z.template_format})}},G5=class Q extends $1{lc_serializable=!0;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
84
+
85
+ `;prefix="";templateFormat="f-string";validateTemplate=!0;_getPromptType(){return"few_shot_chat"}static lc_name(){return"FewShotChatMessagePromptTemplate"}constructor(Z){super(Z);if(this.examples=Z.examples,this.examplePrompt=Z.examplePrompt,this.exampleSeparator=Z.exampleSeparator??`
86
+
87
+ `,this.exampleSelector=Z.exampleSelector,this.prefix=Z.prefix??"",this.suffix=Z.suffix??"",this.templateFormat=Z.templateFormat??"f-string",this.validateTemplate=Z.validateTemplate??!0,this.examples!==void 0&&this.exampleSelector!==void 0)throw Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let J=this.inputVariables;if(this.partialVariables)J=J.concat(Object.keys(this.partialVariables));K8(this.prefix+this.suffix,this.templateFormat,J)}}async getExamples(Z){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(Z);throw Error("One of 'examples' and 'example_selector' should be provided")}async formatMessages(Z){let J=await this.mergePartialAndUserVariables(Z),Y=await this.getExamples(J);Y=Y.map((W)=>{let z={};return this.examplePrompt.inputVariables.forEach(($)=>{z[$]=W[$]}),z});let G=[];for(let W of Y){let z=await this.examplePrompt.formatMessages(W);G.push(...z)}return G}async format(Z){let J=await this.mergePartialAndUserVariables(Z),Y=await this.getExamples(J),G=(await Promise.all(Y.map((W)=>this.examplePrompt.formatMessages(W)))).flat().map((W)=>W.content);return g([this.prefix,...G,this.suffix].join(this.exampleSeparator),this.templateFormat,J)}async partial(Z){let J=this.inputVariables.filter((G)=>!(G in Z)),Y={...this.partialVariables??{},...Z};return new Q({...this,inputVariables:J,partialVariables:Y})}};var W5=class Q extends W8{static lc_name(){return"PipelinePromptTemplate"}pipelinePrompts;finalPrompt;constructor(Z){super({...Z,inputVariables:[]});this.pipelinePrompts=Z.pipelinePrompts,this.finalPrompt=Z.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let Z=this.pipelinePrompts.map((Y)=>Y.name),J=this.pipelinePrompts.map((Y)=>Y.prompt.inputVariables.filter((G)=>!Z.includes(G))).flat();return[...new Set(J)]}static extractRequiredInputValues(Z,J){return J.reduce((Y,G)=>{return Y[G]=Z[G],Y},{})}async formatPipelinePrompts(Z){let J=await this.mergePartialAndUserVariables(Z);for(let{name:Y,prompt:G}of this.pipelinePrompts){let W=Q.extractRequiredInputValues(J,G.inputVariables);if(G instanceof u8)J[Y]=await G.formatMessages(W);else J[Y]=await G.format(W)}return Q.extractRequiredInputValues(J,this.finalPrompt.inputVariables)}async formatPromptValue(Z){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(Z))}async format(Z){return this.finalPrompt.format(await this.formatPipelinePrompts(Z))}async partial(Z){let J={...this};return J.inputVariables=this.inputVariables.filter((Y)=>!(Y in Z)),J.partialVariables={...this.partialVariables??{},...Z},new Q(J)}serialize(){throw Error("Not implemented.")}_getPromptType(){return"pipeline"}};function X5(Q){return typeof Q==="object"&&Q!=null&&"withStructuredOutput"in Q&&typeof Q.withStructuredOutput==="function"}function I3(Q){return typeof Q==="object"&&Q!=null&&"lc_id"in Q&&Array.isArray(Q.lc_id)&&Q.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var z5=class Q extends u8{schema;method;lc_namespace=["langchain_core","prompts","structured"];get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(Z){super(Z);this.schema=Z.schema,this.method=Z.method}pipe(Z){if(X5(Z))return super.pipe(Z.withStructuredOutput(this.schema));if(I3(Z)&&X5(Z.bound))return super.pipe(new x8({bound:Z.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:Z.kwargs??{},config:Z.config,configFactories:Z.configFactories}));throw Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(Z,J,Y){return Q.fromMessages(Z,{schema:J,method:Y})}};var H5=F({AIMessagePromptTemplate:()=>g9,BaseChatPromptTemplate:()=>$1,BaseMessagePromptTemplate:()=>H1,BaseMessageStringPromptTemplate:()=>f9,BasePromptTemplate:()=>W8,BaseStringPromptTemplate:()=>q8,ChatMessagePromptTemplate:()=>k9,ChatPromptTemplate:()=>u8,DEFAULT_FORMATTER_MAPPING:()=>X1,DEFAULT_PARSER_MAPPING:()=>M9,DictPromptTemplate:()=>z1,FewShotChatMessagePromptTemplate:()=>G5,FewShotPromptTemplate:()=>Y5,HumanMessagePromptTemplate:()=>m1,ImagePromptTemplate:()=>c8,MessagesPlaceholder:()=>d1,PipelinePromptTemplate:()=>W5,PromptTemplate:()=>Q8,StructuredPrompt:()=>z5,SystemMessagePromptTemplate:()=>d9,checkValidTemplate:()=>K8,interpolateFString:()=>y9,interpolateMustache:()=>v9,parseFString:()=>_8,parseMustache:()=>m8,parseTemplate:()=>j8,renderTemplate:()=>g});var $5=F({BaseDocumentCompressor:()=>O3}),O3=class{static isBaseDocumentCompressor(Q){return Q?.compressDocuments!==void 0}};var K5=F({BaseRetriever:()=>q1}),q1=class extends M{callbacks;tags;metadata;verbose;constructor(Q){super(Q);this.callbacks=Q?.callbacks,this.tags=Q?.tags??[],this.metadata=Q?.metadata??{},this.verbose=Q?.verbose??!1}_getRelevantDocuments(Q,Z){throw Error("Not implemented!")}async invoke(Q,Z){let J=X8(q5(Z)),Y=await(await G8.configure(J.callbacks,this.callbacks,J.tags,this.tags,J.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),Q,J.runId,void 0,void 0,void 0,J.runName);try{let G=await this._getRelevantDocuments(Q,Y);return await Y?.handleRetrieverEnd(G),G}catch(G){throw await Y?.handleRetrieverError(G),G}}};var U5=F({BaseStore:()=>w5,InMemoryStore:()=>T3}),w5=class extends a{},T3=class extends w5{lc_namespace=["langchain","storage"];store={};async mget(Q){return Q.map((Z)=>this.store[Z])}async mset(Q){for(let[Z,J]of Q)this.store[Z]=J}async mdelete(Q){for(let Z of Q)delete this.store[Z]}async*yieldKeys(Q){let Z=Object.keys(this.store);for(let J of Z)if(Q===void 0||J.startsWith(Q))yield J}};var Z8={and:"and",or:"or",not:"not"},P={eq:"eq",ne:"ne",lt:"lt",gt:"gt",lte:"lte",gte:"gte"},c1=class{},u1=class{accept(Q){if(this.exprName==="Operation")return Q.visitOperation(this);else if(this.exprName==="Comparison")return Q.visitComparison(this);else if(this.exprName==="StructuredQuery")return Q.visitStructuredQuery(this);else throw Error("Unknown Expression type")}},l1=class extends u1{},D5=class extends l1{exprName="Comparison";constructor(Q,Z,J){super();this.comparator=Q,this.attribute=Z,this.value=J}},B5=class extends l1{exprName="Operation";constructor(Q,Z){super();this.operator=Q,this.args=Z}},N5=class extends u1{exprName="StructuredQuery";constructor(Q,Z){super();this.query=Q,this.filter=Z}};function m9(Q){return Q&&typeof Q==="object"&&!Array.isArray(Q)}function l(Q){if(!Q)return!0;if(typeof Q==="string"&&Q.length>0)return!1;if(typeof Q==="function")return!1;return m9(Q)&&Object.keys(Q).length===0}function c9(Q){if(typeof Q==="number")return Q%1===0;else if(typeof Q==="string"){let Z=parseInt(Q,10);return!Number.isNaN(Z)&&Z%1===0&&Z.toString()===Q}return!1}function u9(Q){if(typeof Q==="number")return Q%1!==0;else if(typeof Q==="string"){let Z=parseFloat(Q);return!Number.isNaN(Z)&&Z%1!==0&&Z.toString()===Q}return!1}function l9(Q){return typeof Q==="string"&&(Number.isNaN(parseFloat(Q))||parseFloat(Q).toString()!==Q)}function o9(Q){return typeof Q==="boolean"}function l8(Q){let Z;if(l9(Q))Z=Q;else if(c9(Q))Z=parseInt(Q,10);else if(u9(Q))Z=parseFloat(Q);else if(o9(Q))Z=Boolean(Q);else throw Error("Unsupported value type");return Z}var K1=class extends c1{},A5=class extends K1{allowedOperators;allowedComparators;constructor(Q){super();this.allowedOperators=Q?.allowedOperators??[Z8.and,Z8.or],this.allowedComparators=Q?.allowedComparators??[P.eq,P.ne,P.gt,P.gte,P.lt,P.lte]}formatFunction(Q){if(Q in P){if(this.allowedComparators.length>0&&this.allowedComparators.indexOf(Q)===-1)throw Error(`Comparator ${Q} not allowed. Allowed comparators: ${this.allowedComparators.join(", ")}`)}else if(Q in Z8){if(this.allowedOperators.length>0&&this.allowedOperators.indexOf(Q)===-1)throw Error(`Operator ${Q} not allowed. Allowed operators: ${this.allowedOperators.join(", ")}`)}else throw Error("Unknown comparator or operator");return`$${Q}`}visitOperation(Q){let Z=Q.args?.map((J)=>J.accept(this));return{[this.formatFunction(Q.operator)]:Z}}visitComparison(Q){return{[Q.attribute]:{[this.formatFunction(Q.comparator)]:l8(Q.value)}}}visitStructuredQuery(Q){let Z={};if(Q.filter)Z={filter:Q.filter.accept(this)};return Z}mergeFilters(Q,Z,J="and",Y=!1){if(l(Q)&&l(Z))return;if(l(Q)||J==="replace"){if(l(Z))return;return Z}if(l(Z)){if(Y)return Q;if(J==="and")return;return Q}if(J==="and")return{$and:[Q,Z]};else if(J==="or")return{$or:[Q,Z]};else throw Error("Unknown merge type")}};var E5=class extends K1{allowedOperators=[Z8.and,Z8.or];allowedComparators=[P.eq,P.ne,P.gt,P.gte,P.lt,P.lte];formatFunction(){throw Error("Not implemented")}getAllowedComparatorsForType(Q){switch(Q){case"string":return[P.eq,P.ne,P.gt,P.gte,P.lt,P.lte];case"number":return[P.eq,P.ne,P.gt,P.gte,P.lt,P.lte];case"boolean":return[P.eq,P.ne];default:throw Error(`Unsupported data type: ${Q}`)}}getComparatorFunction(Q){switch(Q){case P.eq:return(Z,J)=>Z===J;case P.ne:return(Z,J)=>Z!==J;case P.gt:return(Z,J)=>Z>J;case P.gte:return(Z,J)=>Z>=J;case P.lt:return(Z,J)=>Z<J;case P.lte:return(Z,J)=>Z<=J;default:throw Error("Unknown comparator")}}getOperatorFunction(Q){switch(Q){case Z8.and:return(Z,J)=>Z&&J;case Z8.or:return(Z,J)=>Z||J;default:throw Error("Unknown operator")}}visitOperation(Q){let{operator:Z,args:J}=Q;if(this.allowedOperators.includes(Z)){let Y=this.getOperatorFunction(Z);return(G)=>{if(!J)return!0;return J.reduce((W,z)=>{let $=z.accept(this);if(typeof $==="function")return Y(W,$(G));else throw Error("Filter is not a function")},!0)}}else throw Error("Operator not allowed")}visitComparison(Q){let{comparator:Z,attribute:J,value:Y}=Q,G=[P.ne];if(this.allowedComparators.includes(Z)){if(!this.getAllowedComparatorsForType(typeof Y).includes(Z))throw Error(`'${Z}' comparator not allowed to be used with ${typeof Y}`);let W=this.getComparatorFunction(Z);return(z)=>{let $=z.metadata[J];if($===void 0){if(G.includes(Z))return!0;return!1}return W($,l8(Y))}}else throw Error("Comparator not allowed")}visitStructuredQuery(Q){if(!Q.filter)return{};let Z=Q.filter?.accept(this);if(typeof Z!=="function")throw Error("Structured query filter is not a function");return{filter:Z}}mergeFilters(Q,Z,J="and"){if(l(Q)&&l(Z))return;if(l(Q)||J==="replace"){if(l(Z))return;return Z}if(l(Z)){if(J==="and")return;return Q}if(J==="and")return(Y)=>Q(Y)&&Z(Y);else if(J==="or")return(Y)=>Q(Y)||Z(Y);else throw Error("Unknown merge type")}};var F5=F({BaseTranslator:()=>K1,BasicTranslator:()=>A5,Comparators:()=>P,Comparison:()=>D5,Expression:()=>u1,FilterDirective:()=>l1,FunctionalTranslator:()=>E5,Operation:()=>B5,Operators:()=>Z8,StructuredQuery:()=>N5,Visitor:()=>c1,castValue:()=>l8,isBoolean:()=>o9,isFilterEmpty:()=>l,isFloat:()=>u9,isInt:()=>c9,isObject:()=>m9,isString:()=>l9});function U1(Q){if(!s.isInstance(Q))return typeof Q;return Q.constructor.name||Q.type}function o1(Q,Z){return function(J,Y){let{isNot:G,utils:W}=this;if(!Z(J))return{pass:!1,message:()=>`${W.matcherHint(`toBe${Q}`,void 0,void 0)}
88
+
89
+ Expected: ${G?"not ":""}${Q}
90
+ Received: ${U1(J)}`,actual:U1(J),expected:Q};if(Y===void 0)return{pass:!0,message:()=>`${W.matcherHint(`toBe${Q}`,void 0,void 0)}
91
+
92
+ Expected: not ${Q}
93
+ Received: ${Q}`};let z=J;if(typeof Y==="string")return{pass:z.content===Y,message:()=>`${W.matcherHint(`toBe${Q}`,void 0,void 0)}
94
+
95
+ Expected: ${Q} with content ${W.printExpected(Y)}
96
+ Received: ${Q} with content ${W.printReceived(z.content)}`,actual:z.content,expected:Y};return{pass:Object.entries(Y).every(([$,U])=>this.equals(z[$],U)),message:()=>{let $={};for(let U of Object.keys(Y))$[U]=z[U];return`${W.matcherHint(`toBe${Q}`,void 0,void 0)}
97
+
98
+ Expected: ${Q} matching ${W.printExpected(Y)}
99
+ Received: ${Q} with ${W.printReceived($)}`},actual:(()=>{let $={};for(let U of Object.keys(Y))$[U]=z[U];return $})(),expected:Y}}}var p9=o1("HumanMessage",c.isInstance),i9=o1("AIMessage",j.isInstance),n9=o1("SystemMessage",r.isInstance),r9=o1("ToolMessage",U8.isInstance);function t9(Q,Z){let{isNot:J,utils:Y}=this;if(!j.isInstance(Q))return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolCalls")}
100
+
101
+ Expected: AIMessage
102
+ Received: ${U1(Q)}`};let G=Q.tool_calls??[];if(G.length!==Z.length)return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolCalls")}
103
+
104
+ Expected ${J?"not ":""}${Z.length} tool call(s), received ${G.length}`,actual:G.length,expected:Z.length};let W=Z.filter((z)=>!G.some(($)=>Object.entries(z).every(([U,w])=>this.equals($[U],w))));if(W.length>0)return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolCalls")}
105
+
106
+ Could not find matching tool call(s) for:
107
+ ${Y.printExpected(W)}
108
+ Received tool calls: ${Y.printReceived(G.map((z)=>({name:z.name,id:z.id,args:z.args})))}`,actual:G.map((z)=>({name:z.name,id:z.id,args:z.args})),expected:Z};return{pass:!0,message:()=>`${Y.matcherHint("toHaveToolCalls")}
109
+
110
+ Expected AIMessage not to have matching tool calls`}}function s9(Q,Z){let{isNot:J,utils:Y}=this;if(!j.isInstance(Q))return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolCallCount")}
111
+
112
+ Expected: AIMessage
113
+ Received: ${U1(Q)}`};let G=Q.tool_calls?.length??0;return{pass:G===Z,message:()=>`${Y.matcherHint("toHaveToolCallCount")}
114
+
115
+ Expected ${J?"not ":""}${Z} tool call(s)
116
+ Received: ${G}`,actual:G,expected:Z}}function a9(Q,Z){let{isNot:J,utils:Y}=this;if(!j.isInstance(Q))return{pass:!1,message:()=>`${Y.matcherHint("toContainToolCall")}
117
+
118
+ Expected: AIMessage
119
+ Received: ${U1(Q)}`};let G=Q.tool_calls??[];return{pass:G.some((W)=>Object.entries(Z).every(([z,$])=>this.equals(W[z],$))),message:()=>`${Y.matcherHint("toContainToolCall")}
120
+
121
+ Expected AIMessage ${J?"not ":""}to contain a tool call matching ${Y.printExpected(Z)}
122
+ Received tool calls: ${Y.printReceived(G.map((W)=>({name:W.name,id:W.id})))}`,actual:G.map((W)=>({name:W.name,id:W.id})),expected:Z}}function e9(Q,Z){let{isNot:J,utils:Y}=this;if(!Array.isArray(Q))return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolMessages")}
123
+
124
+ Expected an array of messages
125
+ Received: ${typeof Q}`};let G=Q.filter(U8.isInstance);if(G.length!==Z.length)return{pass:!1,message:()=>`${Y.matcherHint("toHaveToolMessages")}
126
+
127
+ Expected ${J?"not ":""}${Z.length} tool message(s), found ${G.length}`,actual:G.length,expected:Z.length};for(let W=0;W<Z.length;W++)if(!Object.entries(Z[W]).every(([z,$])=>this.equals(G[W][z],$)))return{pass:!1,message:()=>{let z={};for(let $ of Object.keys(Z[W]))z[$]=G[W][$];return`${Y.matcherHint("toHaveToolMessages")}
128
+
129
+ Tool message at index ${W} did not match:
130
+ Expected: ${Y.printExpected(Z[W])}
131
+ Received: ${Y.printReceived(z)}`},actual:G[W],expected:Z[W]};return{pass:!0,message:()=>`${Y.matcherHint("toHaveToolMessages")}
132
+
133
+ Expected messages not to contain matching tool messages`}}function Q0(Q,Z){let{isNot:J,utils:Y}=this,G=Q?.__interrupt__;if(!(Array.isArray(G)&&G.length>0))return{pass:!1,message:()=>`${Y.matcherHint("toHaveBeenInterrupted")}
134
+
135
+ Expected result ${J?"not ":""}to have been interrupted
136
+ Received __interrupt__: ${Y.printReceived(G)}`};if(Z===void 0)return{pass:!0,message:()=>`${Y.matcherHint("toHaveBeenInterrupted")}
137
+
138
+ Expected result not to have been interrupted
139
+ Received ${G.length} interrupt(s)`};let W=G[0]?.value;return{pass:this.equals(W,Z),message:()=>`${Y.matcherHint("toHaveBeenInterrupted")}
140
+
141
+ Expected interrupt value: ${Y.printExpected(Z)}
142
+ Received interrupt value: ${Y.printReceived(W)}`,actual:W,expected:Z}}function Z0(Q,Z){let{isNot:J,utils:Y}=this,G=Q?.structuredResponse;if(G===void 0)return{pass:!1,message:()=>`${Y.matcherHint("toHaveStructuredResponse")}
143
+
144
+ Expected result ${J?"not ":""}to have a structured response
145
+ Received structuredResponse: undefined`};if(Z===void 0)return{pass:!0,message:()=>`${Y.matcherHint("toHaveStructuredResponse")}
146
+
147
+ Expected result not to have a structured response`};return{pass:Object.entries(Z).every(([W,z])=>this.equals(G[W],z)),message:()=>`${Y.matcherHint("toHaveStructuredResponse")}
148
+
149
+ Expected structured response: ${Y.printExpected(Z)}
150
+ Received structured response: ${Y.printReceived(G)}`,actual:G,expected:Z}}var R5={toBeHumanMessage:p9,toBeAIMessage:i9,toBeSystemMessage:n9,toBeToolMessage:r9,toHaveToolCalls:t9,toHaveToolCallCount:s9,toContainToolCall:a9,toHaveToolMessages:e9,toHaveBeenInterrupted:Q0,toHaveStructuredResponse:Z0};function _3(Q){return Q.map((Z)=>Z.text).filter(Boolean).join("-")}var L5=0;function j3(){return L5+=1,`fake_tc_${L5}`}var S3=class Q extends A8{queue=[];_alwaysThrowError;_structuredResponseValue;_tools=[];_callIndex=0;_calls=[];get calls(){return this._calls}get callCount(){return this._calls.length}constructor(){super({})}_llmType(){return"fake-model-builder"}_combineLLMOutput(){return[]}respond(Z){if(typeof Z==="function")this.queue.push({kind:"factory",factory:Z});else if(s.isInstance(Z))this.queue.push({kind:"message",message:Z});else this.queue.push({kind:"error",error:Z});return this}respondWithTools(Z){return this.queue.push({kind:"toolCalls",toolCalls:Z.map((J)=>({name:J.name,args:J.args,id:J.id??j3(),type:"tool_call"}))}),this}alwaysThrow(Z){return this._alwaysThrowError=Z,this}structuredResponse(Z){return this._structuredResponseValue=Z,this}bindTools(Z){let J=[...this._tools,...Z],Y=new Q;return Y.queue=this.queue,Y._alwaysThrowError=this._alwaysThrowError,Y._structuredResponseValue=this._structuredResponseValue,Y._tools=J,Y._calls=this._calls,Y._callIndex=this._callIndex,Y.withConfig({})}withStructuredOutput(Z,J){let{_structuredResponseValue:Y}=this;return u.from(async()=>{return Y})}async _generate(Z,J,Y){this._calls.push({messages:[...Z],options:J});let G=this._callIndex;if(this._callIndex+=1,this._alwaysThrowError)throw this._alwaysThrowError;let W=this.queue[G];if(!W)throw Error(`FakeModel: no response queued for invocation ${G} (${this.queue.length} total queued).`);if(W.kind==="error")throw W.error;if(W.kind==="factory"){let $=W.factory(Z);if(!s.isInstance($))throw $;return{generations:[{text:"",message:$}]}}if(W.kind==="message")return{generations:[{text:"",message:W.message}]};let z=_3(Z);return{generations:[{text:z,message:new j({content:z,id:G.toString(),tool_calls:W.toolCalls.length>0?W.toolCalls.map(($)=>({...$,type:"tool_call"})):void 0})}],llmOutput:{}}}};function V5(){return new S3}var P5=F({fakeModel:()=>V5,langchainMatchers:()=>R5,toBeAIMessage:()=>i9,toBeHumanMessage:()=>p9,toBeSystemMessage:()=>n9,toBeToolMessage:()=>r9,toContainToolCall:()=>a9,toHaveBeenInterrupted:()=>Q0,toHaveStructuredResponse:()=>Z0,toHaveToolCallCount:()=>s9,toHaveToolCalls:()=>t9,toHaveToolMessages:()=>e9});var I5=F({RunCollectorCallbackHandler:()=>C3}),C3=class extends o8{name="run_collector";exampleId;tracedRuns;constructor({exampleId:Q}={}){super({_awaitHandler:!0});this.exampleId=Q,this.tracedRuns=[]}async persistRun(Q){let Z={...Q};Z.reference_example_id=this.exampleId,this.tracedRuns.push(Z)}};var O5=F({});var T5=F({chunkArray:()=>y3}),y3=(Q,Z)=>Q.reduce((J,Y,G)=>{let W=Math.floor(G/Z);return J[W]=(J[W]||[]).concat([Y]),J},[]);var _5=F({context:()=>v3});function v3(Q,...Z){let J=Q.raw,Y="";for(let G=0;G<J.length;G++){let W=J[G].replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`").replace(/\\\$/g,"$").replace(/\\\{/g,"{");if(Y+=W,G<Z.length){let z=M3(Z[G],Y);Y+=typeof z==="string"?z:JSON.stringify(z)}}return Y=b3(Y),Y=Y.trim(),Y=Y.replace(/\\n/g,`
151
+ `),Y}function M3(Q,Z){if(typeof Q!=="string"||!Q.includes(`
152
+ `))return Q;let J=Z.slice(Z.lastIndexOf(`
153
+ `)+1).match(/^(\s+)/);if(J){let Y=J[1];return Q.replace(/\n/g,`
154
+ ${Y}`)}return Q}function b3(Q){let Z=Q.split(`
155
+ `),J=null;for(let Y of Z){let G=Y.match(/^(\s+)\S+/);if(G){let W=G[1].length;if(J===null)J=W;else J=Math.min(J,W)}}if(J===null)return Q;return Z.map((Y)=>Y[0]===" "||Y[0]==="\t"?Y.slice(J):Y).join(`
156
+ `)}var S5=F({EventStreamContentType:()=>x3,convertEventStreamToIterableReadableDataStream:()=>k3,getBytes:()=>C5,getLines:()=>y5,getMessages:()=>v5}),x3="text/event-stream";async function C5(Q,Z){if(Q instanceof ReadableStream){let J=Q.getReader();while(!0){let Y=await J.read();if(Y.done){Z(new Uint8Array,!0);break}Z(Y.value)}}else try{for await(let J of Q)Z(new Uint8Array(J));Z(new Uint8Array,!0)}catch(J){throw Error(["Parsing event source stream failed.","Ensure your implementation of fetch returns a web or Node readable stream.",`Error: ${J.message}`].join(`
157
+ `))}}var p8=function(Q){return Q[Q.NewLine=10]="NewLine",Q[Q.CarriageReturn=13]="CarriageReturn",Q[Q.Space=32]="Space",Q[Q.Colon=58]="Colon",Q}(p8||{});function y5(Q){let Z,J,Y,G=!1;return function(z,$){if($){Q(z,0,!0);return}if(Z===void 0)Z=z,J=0,Y=-1;else Z=f3(Z,z);let U=Z.length,w=0;while(J<U){if(G){if(Z[J]===p8.NewLine)w=++J;G=!1}let D=-1;for(;J<U&&D===-1;++J)switch(Z[J]){case p8.Colon:if(Y===-1)Y=J-w;break;case p8.CarriageReturn:G=!0;case p8.NewLine:D=J;break}if(D===-1)break;Q(Z.subarray(w,D),Y),w=J,Y=-1}if(w===U)Z=void 0;else if(w!==0)Z=Z.subarray(w),J-=w}}function v5(Q,Z,J){let Y=J0(),G=new TextDecoder;return function(z,$,U){if(U){if(!h3(Y))Q?.(Y),Y=J0();return}if(z.length===0)Q?.(Y),Y=J0();else if($>0){let w=G.decode(z.subarray(0,$)),D=$+(z[$+1]===p8.Space?2:1),R=G.decode(z.subarray(D));switch(w){case"data":Y.data=Y.data?Y.data+`
158
+ `+R:R;break;case"event":Y.event=R;break;case"id":Z?.(Y.id=R);break;case"retry":{let N=parseInt(R,10);if(!Number.isNaN(N))J?.(Y.retry=N);break}}}}}function f3(Q,Z){let J=new Uint8Array(Q.length+Z.length);return J.set(Q),J.set(Z,Q.length),J}function J0(){return{data:"",event:"",id:"",retry:void 0}}function k3(Q,Z){let J=new ReadableStream({async start(Y){let G=v5((z)=>{if(z.event==="error")throw Error(z.data??"Unspecified event streaming error.");else if(z.event==="metadata")Z?.(z);else if(z.data)Y.enqueue(z.data)});await C5(Q,y5((z,$,U)=>{if(G(z,$,U),U)Y.close()}))}});return j5.fromReadableStream(J)}function h3(Q){return Q.data===""&&Q.event===""&&Q.id===""&&Q.retry===void 0}var M5=F({});var k5=F({convertToOpenAIFunction:()=>h5,convertToOpenAITool:()=>g3,isLangChainTool:()=>Y0,isRunnableToolLike:()=>x5,isStructuredTool:()=>b5,isStructuredToolParams:()=>f5});function h5(Q,Z){let J=typeof Z==="number"?void 0:Z;return{name:Q.name,description:Q.description,parameters:h(Q.schema),...J?.strict!==void 0?{strict:J.strict}:{}}}function g3(Q,Z){let J=typeof Z==="number"?void 0:Z,Y;if(Y0(Q))Y={type:"function",function:h5(Q)};else Y=Q;if(J?.strict!==void 0)Y.function.strict=J.strict;return Y}function p1(Q,Z){let J=0,Y=0,G=0;for(let W=0;W<Q.length;W++)J+=Q[W]*Z[W],Y+=Q[W]*Q[W],G+=Z[W]*Z[W];return J/(Math.sqrt(Y)*Math.sqrt(G))}function g5(Q,Z){let J=0;for(let Y=0;Y<Q.length;Y++)J+=Q[Y]*Z[Y];return J}function d3(Q,Z){let J=0;for(let Y=0;Y<Q.length;Y++)J+=(Q[Y]-Z[Y])*(Q[Y]-Z[Y]);return J}function d5(Q,Z){return Math.sqrt(d3(Q,Z))}var m5=F({cosineSimilarity:()=>G0,euclideanDistance:()=>u3,innerProduct:()=>c3,matrixFunc:()=>i1,maximalMarginalRelevance:()=>l3,normalize:()=>m3});function i1(Q,Z,J){if(Q.length===0||Q[0].length===0||Z.length===0||Z[0].length===0)return[[]];if(Q[0].length!==Z[0].length)throw Error(`Number of columns in X and Y must be the same. X has shape ${[Q.length,Q[0].length]} and Y has shape ${[Z.length,Z[0].length]}.`);return Q.map((Y)=>Z.map((G)=>J(Y,G)).map((G)=>Number.isNaN(G)?0:G))}function m3(Q,Z=!1){let J=o3(Q);return Q.map((Y)=>Y.map((G)=>Z?1-G/J:G/J))}function G0(Q,Z){return i1(Q,Z,p1)}function c3(Q,Z){return i1(Q,Z,g5)}function u3(Q,Z){return i1(Q,Z,d5)}function l3(Q,Z,J=0.5,Y=4){if(Math.min(Y,Z.length)<=0)return[];let G=G0(Array.isArray(Q[0])?Q:[Q],Z)[0],W=c5(G).maxIndex,z=[Z[W]],$=[W];while($.length<Math.min(Y,Z.length)){let U=-1/0,w=-1,D=G0(Z,z);G.forEach((R,N)=>{if($.includes(N))return;let E=Math.max(...D[N]),A=J*R-(1-J)*E;if(A>U)U=A,w=N}),z.push(Z[w]),$.push(w)}return $}function c5(Q){if(Q.length===0)return{maxIndex:-1,maxValue:NaN};let Z=Q[0],J=0;for(let Y=1;Y<Q.length;Y+=1)if(Q[Y]>Z)J=Y,Z=Q[Y];return{maxIndex:J,maxValue:Z}}function o3(Q){return Q.reduce((Z,J)=>Math.max(Z,c5(J).maxValue),0)}var u5=F({isCloudMetadata:()=>W0,isLocalhost:()=>X0,isPrivateIp:()=>n5,isSafeUrl:()=>e3,isSameOrigin:()=>Q7,validateSafeUrl:()=>r5}),p3=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","127.0.0.0/8","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10","ff00::/8"],i3=["169.254.169.254","169.254.170.2","100.100.100.200"],n3=["metadata.google.internal","metadata","instance-data"],r3=["localhost","localhost.localdomain"],t3=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function l5(Q){return t3.test(Q)}function n1(Q){return i5(Q)!==null}function o5(Q){return l5(Q)||n1(Q)}function p5(Q){if(l5(Q))return Q.split(".").map((Z)=>parseInt(Z,10));else if(n1(Q)){let Z=i5(Q);if(!Z)return null;let J=Z.split(":"),Y=[];for(let G of J)Y.push(parseInt(G,16));return Y}return null}function i5(Q){if(!Q||typeof Q!=="string")return null;if(!Q.includes(":"))return null;if(!/^[0-9a-fA-F:]+$/.test(Q))return null;let Z=Q;if(Z.includes("::")){let Y=Z.split("::");if(Y.length>2)return null;let[G,W]=Y,z=G?G.split(":"):[],$=W?W.split(":"):[],U=8-(z.length+$.length);if(U<0)return null;let w=Array(U).fill("0");Z=[...z,...w,...$].filter((D)=>D!=="").join(":")}let J=Z.split(":");if(J.length!==8)return null;for(let Y of J){if(Y.length===0||Y.length>4)return null;if(!/^[0-9a-fA-F]+$/.test(Y))return null}return J.map((Y)=>Y.padStart(4,"0").toLowerCase()).join(":")}function s3(Q){let[Z,J]=Q.split("/");if(!Z||!J)return null;let Y=p5(Z);if(!Y)return null;let G=parseInt(J,10);if(isNaN(G))return null;let W=n1(Z);if(W&&G>128)return null;if(!W&&G>32)return null;return{addr:Y,prefixLen:G,isIpv6:W}}function a3(Q,Z){let J=p5(Q);if(!J)return!1;let Y=s3(Z);if(!Y)return!1;let G=n1(Q);if(G!==Y.isIpv6)return!1;let{addr:W,prefixLen:z}=Y;if(G)for(let $=0;$<Math.ceil(z/16);$++){let U=65535<<16-Math.min(16,z-$*16)&65535;if((J[$]&U)!==(W[$]&U))return!1}else for(let $=0;$<Math.ceil(z/8);$++){let U=255<<8-Math.min(8,z-$*8)&255;if((J[$]&U)!==(W[$]&U))return!1}return!0}function n5(Q){if(!o5(Q))return!1;for(let Z of p3)if(a3(Q,Z))return!0;return!1}function W0(Q,Z){if(i3.includes(Z||""))return!0;let J=Q.toLowerCase();if(n3.includes(J))return!0;return!1}function X0(Q,Z){if(Z){if(Z==="127.0.0.1"||Z==="::1"||Z==="0.0.0.0")return!0;if(Z.startsWith("127."))return!0}let J=Q.toLowerCase();if(r3.includes(J))return!0;return!1}function r5(Q,Z){let J=Z?.allowPrivate??!1,Y=Z?.allowHttp??!1;try{let G;try{G=new URL(Q)}catch{throw Error(`Invalid URL: ${Q}`)}let W=G.hostname;if(!W)throw Error("URL missing hostname.");if(W0(W))throw Error(`URL points to cloud metadata endpoint: ${W}`);if(X0(W)){if(!J)throw Error(`URL points to localhost: ${W}`);return Q}let z=G.protocol;if(z!=="http:"&&z!=="https:")throw Error(`Invalid URL scheme: ${z}. Only http and https are allowed.`);if(z==="http:"&&!Y)throw Error("HTTP scheme not allowed. Use HTTPS or set allowHttp: true.");if(o5(W)){let $=W;if(X0(W,$)){if(!J)throw Error(`URL points to localhost: ${W}`);return Q}if(W0(W,$))throw Error(`URL resolves to cloud metadata IP: ${$} (${W})`);if(n5($)){if(!J)throw Error(`URL resolves to private IP: ${$} (${W}). Set allowPrivate: true to allow.`)}return Q}return Q}catch(G){if(G&&typeof G==="object"&&"message"in G)throw G;throw Error(`URL validation failed: ${G}`)}}function e3(Q,Z){try{return r5(Q,Z),!0}catch{return!1}}function Q7(Q,Z){try{return new URL(Q).origin===new URL(Z).origin}catch{return!1}}var t5=F({SaveableVectorStore:()=>Z7,VectorStore:()=>t1,VectorStoreRetriever:()=>r1}),r1=class extends q1{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}vectorStore;k=4;searchType="similarity";searchKwargs;filter;_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(Q){super(Q);if(this.vectorStore=Q.vectorStore,this.k=Q.k??this.k,this.searchType=Q.searchType??this.searchType,this.filter=Q.filter,Q.searchType==="mmr")this.searchKwargs=Q.searchKwargs}async _getRelevantDocuments(Q,Z){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!=="function")throw Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(Q,{k:this.k,filter:this.filter,...this.searchKwargs},Z?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(Q,this.k,this.filter,Z?.getChild("vectorstore"))}async addDocuments(Q,Z){return this.vectorStore.addDocuments(Q,Z)}},t1=class extends a{lc_namespace=["langchain","vectorstores",this._vectorstoreType()];embeddings;constructor(Q,Z){super(Z);this.embeddings=Q}async delete(Q){throw Error("Not implemented.")}async similaritySearch(Q,Z=4,J=void 0,Y=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(Q),Z,J)).map((G)=>G[0])}async similaritySearchWithScore(Q,Z=4,J=void 0,Y=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(Q),Z,J)}static fromTexts(Q,Z,J,Y){throw Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(Q,Z,J){throw Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(Q,Z,J,Y,G,W){if(typeof Q==="number")return new r1({vectorStore:this,k:Q,filter:Z,tags:[...Y??[],this._vectorstoreType()],metadata:G,verbose:W,callbacks:J});else{let z={vectorStore:this,k:Q?.k,filter:Q?.filter,tags:[...Q?.tags??[],this._vectorstoreType()],metadata:Q?.metadata,verbose:Q?.verbose,callbacks:Q?.callbacks,searchType:Q?.searchType};if(Q?.searchType==="mmr")return new r1({...z,searchKwargs:Q.searchKwargs});return new r1({...z})}}},Z7=class extends t1{static load(Q,Z){throw Error("Not implemented")}};var s5=class extends A8{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(Q,Z,J){if(Z?.stop?.length)return{generations:[{message:new j(Z.stop[0]),text:Z.stop[0]}]};let Y=Q.map((G)=>{if(typeof G.content==="string")return G.content;return JSON.stringify(G.content,null,2)}).join(`
159
+ `);return await J?.handleLLMNewToken(Y),{generations:[{message:new j(Y),text:Y}],llmOutput:{}}}},a5=class Q extends A8{sleep=50;responses=[];chunks=[];toolStyle="openai";thrownErrorString;tools=[];constructor({sleep:Z=50,responses:J=[],chunks:Y=[],toolStyle:G="openai",thrownErrorString:W,...z}){super(z);this.sleep=Z,this.responses=J,this.chunks=Y,this.toolStyle=G,this.thrownErrorString=W}_llmType(){return"fake"}bindTools(Z){let J=[...this.tools,...Z],Y=J.map((z)=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:z.name,description:z.description,parameters:h(z.schema)}};case"anthropic":return{name:z.name,description:z.description,input_schema:h(z.schema)};case"bedrock":return{toolSpec:{name:z.name,description:z.description,inputSchema:h(z.schema)}};case"google":return{name:z.name,description:z.description,parameters:h(z.schema)};default:throw Error(`Unsupported tool style: ${this.toolStyle}`)}}),G=this.toolStyle==="google"?[{functionDeclarations:Y}]:Y,W=new Q({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return W.tools=J,W.withConfig({tools:G})}async _generate(Z,J,Y){if(this.thrownErrorString)throw Error(this.thrownErrorString);return{generations:[{text:"",message:new j({content:this.responses?.[0]?.content??Z[0].content??"",tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(Z,J,Y){if(this.thrownErrorString)throw Error(this.thrownErrorString);if(this.chunks?.length){for(let z of this.chunks){let $=new O8({message:new t({content:z.content,tool_calls:z.tool_calls,additional_kwargs:z.additional_kwargs??{}}),text:z.content?.toString()??""});if(J.signal?.aborted)break;yield $,await Y?.handleLLMNewToken(z.content,void 0,void 0,void 0,void 0,{chunk:$})}return}let G=this.responses?.[0]??new j(typeof Z[0].content==="string"?Z[0].content:""),W=typeof G.content==="string"?G.content:"";for(let z of W){await new Promise((U)=>setTimeout(U,this.sleep));let $=new O8({message:new t({content:z}),text:z});if(J.signal?.aborted)break;yield $,await Y?.handleLLMNewToken(z,void 0,void 0,void 0,void 0,{chunk:$})}}},e5=class Q extends A8{static lc_name(){return"FakeListChatModel"}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle="openai";constructor(Z){super(Z);let{responses:J,sleep:Y,emitCustomEvent:G,generationInfo:W}=Z;this.responses=J,this.sleep=Y,this.emitCustomEvent=G??this.emitCustomEvent,this.generationInfo=W}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(Z,J,Y){if(await this._sleepIfRequested(),J?.thrownErrorString)throw Error(J.thrownErrorString);if(this.emitCustomEvent)await Y?.handleCustomEvent("some_test_event",{someval:!0});if(J?.stop?.length)return{generations:[this._formatGeneration(J.stop[0])]};else{let G=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(G)],llmOutput:{}}}}_formatGeneration(Z){return{message:new j(Z),text:Z}}async*_streamResponseChunks(Z,J,Y){let G=this._currentResponse();if(this._incrementResponse(),this.emitCustomEvent)await Y?.handleCustomEvent("some_test_event",{someval:!0});let W=[...G];for(let z=0;z<W.length;z++){let $=W[z],U=z===W.length-1;if(await this._sleepIfRequested(),J?.thrownErrorString)throw Error(J.thrownErrorString);let w=this._createResponseChunk($,U?this.generationInfo:void 0);if(J.signal?.aborted)break;yield w,Y?.handleLLMNewToken($)}}async _sleepIfRequested(){if(this.sleep!==void 0)await this._sleep()}async _sleep(){return new Promise((Z)=>{setTimeout(()=>Z(),this.sleep)})}_createResponseChunk(Z,J){return new O8({message:new t({content:Z}),text:Z,generationInfo:J})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){if(this.i<this.responses.length-1)this.i+=1;else this.i=0}bindTools(Z){let J=[...this.tools,...Z],Y=J.map((z)=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:z.name,description:z.description,parameters:h(z.schema)}};case"anthropic":return{name:z.name,description:z.description,input_schema:h(z.schema)};case"bedrock":return{toolSpec:{name:z.name,description:z.description,inputSchema:h(z.schema)}};case"google":return{name:z.name,description:z.description,parameters:h(z.schema)};default:throw Error(`Unsupported tool style: ${this.toolStyle}`)}}),G=this.toolStyle==="google"?[{functionDeclarations:Y}]:Y,W=new Q({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return W.tools=J,W.toolStyle=this.toolStyle,W.i=this.i,W.withConfig({tools:G})}withStructuredOutput(Z,J){return u.from(async(Y)=>{let G=await this.invoke(Y);if(G.tool_calls?.[0]?.args)return G.tool_calls[0].args;if(typeof G.content==="string")return JSON.parse(G.content);throw Error("No structured output found")})}};var QQ=class extends R1{vectorSize;constructor(Q){super(Q??{});this.vectorSize=Q?.vectorSize??4}async embedDocuments(Q){return Promise.all(Q.map((Z)=>this.embedQuery(Z)))}async embedQuery(Q){let Z=Q;Z=Z.toLowerCase().replaceAll(/[^a-z ]/g,"");let J=Z.length%this.vectorSize,Y=J===0?0:this.vectorSize-J,G=Z.length+Y;Z=Z.padEnd(G," ");let W=Z.length/this.vectorSize,z=[];for(let $=0;$<Z.length;$+=W)z.push(Z.slice($,$+W));return z.map(($)=>{let U=0;for(let w=0;w<$.length;w+=1)U+=$===" "?0:$.charCodeAt(w);return U%26/26})}},ZQ=class extends R1{constructor(Q){super(Q??{})}embedDocuments(Q){return Promise.resolve(Q.map(()=>[0.1,0.2,0.3,0.4]))}embedQuery(Q){return Promise.resolve([0.1,0.2,0.3,0.4])}};var JQ=class extends h1{response;thrownErrorString;constructor(Q){super(Q);this.response=Q.response,this.thrownErrorString=Q.thrownErrorString}_llmType(){return"fake"}async _call(Q,Z,J){if(this.thrownErrorString)throw Error(this.thrownErrorString);let Y=this.response??Q;return await J?.handleLLMNewToken(Y),Y}},YQ=class extends h1{sleep=50;responses;thrownErrorString;constructor(Q){super(Q);this.sleep=Q.sleep??this.sleep,this.responses=Q.responses,this.thrownErrorString=Q.thrownErrorString}_llmType(){return"fake"}async _call(Q){if(this.thrownErrorString)throw Error(this.thrownErrorString);let Z=this.responses?.[0];return this.responses=this.responses?.slice(1),Z??Q}async*_streamResponseChunks(Q,Z,J){if(this.thrownErrorString)throw Error(this.thrownErrorString);let Y=this.responses?.[0];this.responses=this.responses?.slice(1);for(let G of Y??Q)await new Promise((W)=>setTimeout(W,this.sleep)),yield{text:G,generationInfo:{}},await J?.handleLLMNewToken(G)}};var GQ=class extends w9{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(Q){this.messages.push(Q)}async addUserMessage(Q){this.messages.push(new c(Q))}async addAIMessage(Q){this.messages.push(new j(Q))}async clear(){this.messages=[]}},WQ=class extends F1{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(Q){this.messages.push(Q)}async getMessages(){return this.messages}},XQ=class extends o8{name="fake_tracer";runs=[];constructor(){super()}persistRun(Q){return this.runs.push(Q),Promise.resolve()}};var zQ=class extends e{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(Q){return Q.split(",").map((Z)=>Z.trim())}};var HQ=class extends q1{lc_namespace=["test","fake"];output=[new i({pageContent:"foo"}),new i({pageContent:"bar"})];constructor(Q){super();this.output=Q?.output??this.output}async _getRelevantDocuments(Q){return this.output}};var $Q=class extends M{lc_namespace=["tests","fake"];returnOptions;constructor(Q){super(Q);this.returnOptions=Q.returnOptions}async invoke(Q,Z){if(this.returnOptions)return Z??{};return{input:Q}}};var KQ=class extends qQ{name;description;schema;constructor(Q){super(Q);this.name=Q.name,this.description=Q.description,this.schema=Q.schema}async _call(Q,Z){return JSON.stringify(Q)}};var UQ=class extends o8{runPromiseResolver;runPromise;name="single_run_extractor";constructor(){super();this.runPromise=new Promise((Q)=>{this.runPromiseResolver=Q})}async persistRun(Q){this.runPromiseResolver(Q)}async extract(){return this.runPromise}};var wQ=class Q extends t1{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(Z,{similarity:J,...Y}={}){super(Z,Y);this.similarity=J??p1}async addDocuments(Z){let J=Z.map(({pageContent:Y})=>Y);return this.addVectors(await this.embeddings.embedDocuments(J),Z)}async addVectors(Z,J){let Y=Z.map((G,W)=>({content:J[W].pageContent,embedding:G,metadata:J[W].metadata}));this.memoryVectors=this.memoryVectors.concat(Y)}async similaritySearchVectorWithScore(Z,J,Y){let G=(z)=>{if(!Y)return!0;return Y(new i({metadata:z.metadata,pageContent:z.content}))},W=this.memoryVectors.filter(G);return W.map((z,$)=>({similarity:this.similarity(Z,z.embedding),index:$})).sort((z,$)=>z.similarity>$.similarity?-1:0).slice(0,J).map((z)=>[new i({metadata:W[z.index].metadata,pageContent:W[z.index].content}),z.similarity])}static async fromTexts(Z,J,Y,G){let W=[];for(let z=0;z<Z.length;z+=1){let $=Array.isArray(J)?J[z]:J,U=new i({pageContent:Z[z],metadata:$});W.push(U)}return Q.fromDocuments(W,Y,G)}static async fromDocuments(Z,J,Y){let G=new this(J,Y);return await G.addDocuments(Z),G}static async fromExistingIndex(Z,J){return new this(Z,J)}};var DQ=F({FakeChatMessageHistory:()=>GQ,FakeChatModel:()=>s5,FakeEmbeddings:()=>ZQ,FakeLLM:()=>JQ,FakeListChatMessageHistory:()=>WQ,FakeListChatModel:()=>e5,FakeRetriever:()=>HQ,FakeRunnable:()=>$Q,FakeSplitIntoListParser:()=>zQ,FakeStreamingChatModel:()=>a5,FakeStreamingLLM:()=>YQ,FakeTool:()=>KQ,FakeTracer:()=>XQ,FakeVectorStore:()=>wQ,SingleRunExtractor:()=>UQ,SyntheticEmbeddings:()=>QQ});var gQ=F({agents:()=>O0,caches:()=>SQ,callbacks__base:()=>FQ,callbacks__manager:()=>IQ,callbacks__promises:()=>PQ,chat_history:()=>R4,document_loaders__base:()=>P4,document_loaders__langsmith:()=>O4,documents:()=>V4,embeddings:()=>_4,errors:()=>AQ,example_selectors:()=>b4,index:()=>I0,indexing:()=>h4,language_models__base:()=>kQ,language_models__chat_models:()=>u6,language_models__llms:()=>l6,language_models__profile:()=>p6,language_models__structured_output:()=>m6,load__serializable:()=>BQ,memory:()=>i6,messages:()=>F4,messages__tool:()=>NQ,output_parsers:()=>U6,output_parsers__openai_functions:()=>t6,output_parsers__openai_tools:()=>s6,outputs:()=>MQ,prompt_values:()=>xQ,prompts:()=>H5,retrievers:()=>K5,retrievers__document_compressors:()=>$5,runnables:()=>a4,runnables__graph:()=>bQ,singletons:()=>OQ,stores:()=>U5,structured_query:()=>F5,testing:()=>P5,tools:()=>hQ,tracers__base:()=>RQ,tracers__console:()=>LQ,tracers__log_stream:()=>vQ,tracers__run_collector:()=>I5,tracers__tracer_langchain:()=>VQ,types__stream:()=>O5,utils__async_caller:()=>CQ,utils__chunk_array:()=>T5,utils__context:()=>_5,utils__env:()=>EQ,utils__event_source_parse:()=>S5,utils__format:()=>M5,utils__function_calling:()=>k5,utils__hash:()=>jQ,utils__json_patch:()=>Q6,utils__json_schema:()=>_Q,utils__math:()=>m5,utils__ssrf:()=>u5,utils__standard_schema:()=>TQ,utils__stream:()=>yQ,utils__testing:()=>DQ,utils__tiktoken:()=>fQ,utils__types:()=>h6,vectorstores:()=>t5});var J7=50;function Y7(Q){let Z={};for(let J=Q;J&&J.prototype;J=Object.getPrototypeOf(J))Object.assign(Z,Reflect.get(J.prototype,"lc_aliases"));return Object.entries(Z).reduce((J,[Y,G])=>{return J[G]=Y,J},{})}async function s1(Q){let{optionalImportsMap:Z,optionalImportEntrypoints:J,importMap:Y,secretsMap:G,secretsFromEnv:W,path:z,depth:$,maxDepth:U}=this,w=z.join(".");if($>U)throw Error(`Maximum recursion depth (${U}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof Q!=="object"||Q==null)return Q;if(Array.isArray(Q))return Promise.all(Q.map((N,E)=>s1.call({...this,path:[...z,`${E}`],depth:$+1},N)));let D=Q;if(cQ(D))return uQ(D);if("lc"in D&&"type"in D&&"id"in D&&D.lc===1&&D.type==="secret"){let[N]=D.id;if(N in G)return G[N];else if(W){let E=x1(N);if(E)return E}throw Error(`Missing secret "${N}" at ${w}`)}if("lc"in D&&"type"in D&&"id"in D&&D.lc===1&&D.type==="not_implemented"){let E=JSON.stringify(D);throw Error(`Trying to load an object that doesn't implement serialization: ${w} -> ${E}`)}if("lc"in D&&"type"in D&&"id"in D&&"kwargs"in D&&D.lc===1&&D.type==="constructor"){let N=D,E=JSON.stringify(N),[A,...V]=N.id.slice().reverse(),L=V.reverse(),C={langchain_core:gQ,langchain:Y},O=null,I=[L.join("/")];if(L[0]==="langchain_community")I.push(["langchain",...L.slice(1)].join("/"));let v=I.find((x)=>(x in Z));if(P0.concat(J).includes(L.join("/"))||v)if(v!==void 0)O=await Z[v];else throw Error(`Missing key "${L.join("/")}" for ${w} in load(optionalImportsMap={})`);else{let x;if(L[0]==="langchain"||L[0]==="langchain_core")x=C[L[0]],L.shift();else throw Error(`Invalid namespace: ${w} -> ${E}`);if(L.length===0)throw Error(`Invalid namespace: ${w} -> ${E}`);let K;do if(K=L.join("__"),K in x)break;else L.pop();while(L.length>0);if(K in x)O=x[K]}if(typeof O!=="object"||O===null)throw Error(`Invalid namespace: ${w} -> ${E}`);let E8=O[A]??Object.values(O).find((x)=>typeof x==="function"&&lQ(x)===A);if(typeof E8!=="function")throw Error(`Invalid identifer: ${w} -> ${E}`);let d=new E8(mQ(await s1.call({...this,path:[...z,"kwargs"],depth:$+1},N.kwargs),dQ,Y7(E8)));return Object.defineProperty(d.constructor,"name",{value:A}),d}let R={};for(let[N,E]of Object.entries(D))R[N]=await s1.call({...this,path:[...z,N],depth:$+1},E);return R}async function oQ(Q,Z){let J=JSON.parse(Q),Y={optionalImportsMap:Z?.optionalImportsMap??{},optionalImportEntrypoints:Z?.optionalImportEntrypoints??[],secretsMap:Z?.secretsMap??{},secretsFromEnv:Z?.secretsFromEnv??!1,importMap:Z?.importMap??{},path:["$"],depth:0,maxDepth:Z?.maxDepth??J7};return s1.call(Y,J)}function G7(Q){return Q!==null&&Q.lc===1&&Q.type==="constructor"&&Array.isArray(Q.id)}async function H0(Q){if(Q&&typeof Q==="object")if(Array.isArray(Q))return await Promise.all(Q.map((J)=>H0(J)));else{let Z={};for(let[J,Y]of Object.entries(Q))Z[J]=await H0(Y);if(Z.lc===2&&Z.type==="undefined")return;else if(Z.lc===2&&Z.type==="constructor"&&Array.isArray(Z.id))try{let J=Z.id[Z.id.length-1],Y;switch(J){case"Set":Y=Set;break;case"Map":Y=Map;break;case"RegExp":Y=RegExp;break;case"Error":Y=Error;break;default:return Z}if(Z.method)return Y[Z.method](...Z.args||[]);else return new Y(...Z.args||[])}catch(J){return Z}else if(G7(Z))return oQ(JSON.stringify(Z));return Z}return Q}function z0(Q,Z,J,Y){return{lc:2,type:"constructor",id:[Q.name],method:Z??null,args:J??[],kwargs:Y??{}}}function W7(Q){if(Q===void 0)return{lc:2,type:"undefined"};else if(Q instanceof Set||Q instanceof Map)return z0(Q.constructor,void 0,[Array.from(Q)]);else if(Q instanceof RegExp)return z0(RegExp,void 0,[Q.source,Q.flags]);else if(Q instanceof Error)return z0(Q.constructor,void 0,[Q.message]);else if(Q?.lg_name==="Send")return{node:Q.node,args:Q.args};else return Q}var a1=class{_dumps(Q){return new TextEncoder().encode(V0(Q,(J,Y)=>{return W7(Y)}))}async dumpsTyped(Q){if(Q instanceof Uint8Array)return["bytes",Q];else return["json",this._dumps(Q)]}async _loads(Q){let Z=JSON.parse(Q);return H0(Z)}async loadsTyped(Q,Z){if(Q==="bytes")return typeof Z==="string"?new TextEncoder().encode(Z):Z;else if(Q==="json")return this._loads(typeof Z==="string"?Z:new TextDecoder().decode(Z));else throw Error(`Unknown serialization type: ${Q}`)}};function $0(Q){if(typeof Q!=="object"||Q===null)return Q;let Z=Array.isArray(Q)?[]:{};for(let J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))Z[J]=$0(Q[J]);return Z}function X7(){return{v:4,id:G9(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function pQ(Q){return{v:Q.v,id:Q.id,ts:Q.ts,channel_values:{...Q.channel_values},channel_versions:{...Q.channel_versions},versions_seen:$0(Q.versions_seen)}}var iQ=class{serde=new a1;constructor(Q){this.serde=Q||this.serde}async get(Q){let Z=await this.getTuple(Q);return Z?Z.checkpoint:void 0}getNextVersion(Q){if(typeof Q==="string")throw Error("Please override this method to use string versions.");return Q!==void 0&&typeof Q==="number"?Q+1:1}};function nQ(Q,Z){if(typeof Q==="number"&&typeof Z==="number")return Math.sign(Q-Z);return String(Q).localeCompare(String(Z))}function rQ(...Q){return Q.reduce((Z,J,Y)=>{if(Y===0)return J;return nQ(Z,J)>=0?Z:J})}var tQ={[W9]:-1,[X9]:-2,[z9]:-3,[H9]:-4};function sQ(Q){return Q.configurable?.checkpoint_id||Q.configurable?.thread_ts||""}var i8=class extends Error{constructor(Q){super(Q);this.name="InvalidNamespaceError"}};function z7(Q){if(Q.length===0)throw new i8("Namespace cannot be empty.");for(let Z of Q){if(typeof Z!=="string")throw new i8(`Invalid namespace label '${Z}' found in ${Q}. Namespace labels must be strings, but got ${typeof Z}.`);if(Z.includes("."))throw new i8(`Invalid namespace label '${Z}' found in ${Q}. Namespace labels cannot contain periods ('.').`);if(Z==="")throw new i8(`Namespace labels cannot be empty strings. Got ${Z} in ${Q}`)}if(Q[0]==="langgraph")throw new i8(`Root label for namespace cannot be "langgraph". Got: ${Q}`)}var e1=class{async get(Q,Z){return(await this.batch([{namespace:Q,key:Z}]))[0]}async search(Q,Z={}){let{filter:J,limit:Y=10,offset:G=0,query:W}=Z;return(await this.batch([{namespacePrefix:Q,filter:J,limit:Y,offset:G,query:W}]))[0]}async put(Q,Z,J,Y){z7(Q),await this.batch([{namespace:Q,key:Z,value:J,index:Y}])}async delete(Q,Z){await this.batch([{namespace:Q,key:Z,value:null}])}async listNamespaces(Q={}){let{prefix:Z,suffix:J,maxDepth:Y,limit:G=100,offset:W=0}=Q,z=[];if(Z)z.push({matchType:"prefix",path:Z});if(J)z.push({matchType:"suffix",path:J});return(await this.batch([{matchConditions:z.length?z:void 0,maxDepth:Y,limit:G,offset:W}]))[0]}start(){}stop(){}};var H7=(Q)=>{if("lg_name"in Q&&Q.lg_name==="AsyncBatchedStore")return Q.store;return Q},$7=class extends e1{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(Q){super();this.store=H7(Q)}get isRunning(){return this.running}async batch(Q){throw Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(Q,Z){return this.enqueueOperation({namespace:Q,key:Z})}async search(Q,Z){let{filter:J,limit:Y=10,offset:G=0,query:W}=Z||{};return this.enqueueOperation({namespacePrefix:Q,filter:J,limit:Y,offset:G,query:W})}async put(Q,Z,J){return this.enqueueOperation({namespace:Q,key:Z,value:J})}async delete(Q,Z){return this.enqueueOperation({namespace:Q,key:Z,value:null})}start(){if(!this.running)this.running=!0,this.processingTask=this.processBatchQueue()}async stop(){if(this.running=!1,this.processingTask)await this.processingTask}enqueueOperation(Q){return new Promise((Z,J)=>{let Y=this.nextKey;this.nextKey+=1,this.queue.set(Y,{operation:Q,resolve:Z,reject:J})})}async processBatchQueue(){while(this.running){if(await new Promise((Z)=>{setTimeout(Z,0)}),this.queue.size===0)continue;let Q=new Map(this.queue);this.queue.clear();try{let Z=Array.from(Q.values()).map(({operation:Y})=>Y),J=await this.store.batch(Z);Q.forEach(({resolve:Y},G)=>{let W=Array.from(Q.keys()).indexOf(G);Y(J[W])})}catch(Z){Q.forEach(({reject:J})=>{J(Z)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};var q0=class{serde=new a1;constructor(Q){this.serde=Q||this.serde}};
160
+ export{I8 as fg,k8 as gg,k as hg,T1 as ig,W1 as jg,I9 as kg,g6 as lg,d6 as mg,M1 as ng,U3 as og,w3 as pg,T9 as qg,A8 as rg,G9 as sg,Z3 as tg,R0 as ug,X9 as vg,g3 as wg,oQ as xg,X7 as yg,pQ as zg,iQ as Ag,nQ as Bg,rQ as Cg,tQ as Dg,sQ as Eg,$7 as Fg,q0 as Gg};