@picoflow/ezgraph 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -1
- package/dist/framework/base-graph.js +1 -1
- package/dist/framework/decision/decision-node.js +1 -1
- package/dist/framework/graph-engine.js +1 -1
- package/dist/framework/graph-node.js +1 -1
- package/dist/framework/langchain-provider.adapter.js +1 -1
- package/dist/framework/llm-lifecycle.js +1 -1
- package/dist/framework/llm-node-base.js +1 -0
- package/dist/framework/llm-node.js +1 -1
- package/dist/framework/llm-runner.js +1 -0
- package/dist/framework/node-invocation.js +1 -1
- package/dist/framework/persistence/session-manager.js +1 -1
- package/dist/framework/state-graph-ext.js +1 -1
- package/dist/framework/tool-response.js +1 -1
- package/dist/index.js +1 -1
- package/dist/testing/scripted-gateway.js +1 -1
- package/dist/types/npmlib/src/index.d.ts +5 -5
- package/dist/types/src/framework/base-graph.d.ts +2 -2
- package/dist/types/src/framework/decision/decision-node.d.ts +2 -2
- package/dist/types/src/framework/graph-node.d.ts +19 -11
- package/dist/types/src/framework/llm-lifecycle.d.ts +3 -3
- package/dist/types/src/framework/llm-node-base.d.ts +11 -0
- package/dist/types/src/framework/llm-node.d.ts +19 -10
- package/dist/types/src/framework/{conversation-runner.d.ts → llm-runner.d.ts} +7 -7
- package/dist/types/src/framework/node-invocation.d.ts +7 -1
- package/dist/types/src/framework/state-graph-ext.d.ts +7 -3
- package/dist/types/src/framework/tool-response.d.ts +16 -1
- package/package.json +1 -1
- package/dist/framework/conversation-runner.js +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Command, END, type ExtractStateType, type ExtractUpdateType, START, type StateDefinitionInit } from "@langchain/langgraph";
|
|
2
|
-
import { GRAPH_NODE_CLASS } from "./graph-node.js";
|
|
2
|
+
import { GRAPH_NODE_CLASS, type NodeInvocationOptions } from "./graph-node.js";
|
|
3
3
|
export type RegisteredNode<State, Update> = {
|
|
4
4
|
readonly id: string;
|
|
5
|
-
readonly invoke: (state: State) => Promise<Update | Command<unknown, Update & Record<string, unknown>, string>>;
|
|
5
|
+
readonly invoke: (state: State, options?: NodeInvocationOptions) => Promise<Update | Command<unknown, Update & Record<string, unknown>, string>>;
|
|
6
6
|
route(state: State): string;
|
|
7
|
-
validateTools?(): void;
|
|
7
|
+
validateTools?(options?: NodeInvocationOptions): void;
|
|
8
8
|
};
|
|
9
9
|
export type GraphNodeClass = {
|
|
10
10
|
readonly name: string;
|
|
@@ -32,16 +32,20 @@ export declare class StateGraphExt<StateDefinition extends StateDefinitionInit>
|
|
|
32
32
|
private readonly graph;
|
|
33
33
|
private readonly addedNodeIds;
|
|
34
34
|
private readonly nodeClasses;
|
|
35
|
+
private turnNodeIds?;
|
|
36
|
+
private readonly workerNodeIds;
|
|
35
37
|
private readonly nodeInstances;
|
|
36
38
|
constructor(state: StateDefinition, createGraphNode?: GraphNodeFactory<ExtractStateType<StateDefinition>, ExtractUpdateType<StateDefinition>> | undefined, endNode?: string);
|
|
37
39
|
addNode(NodeClass: GraphNodeClass): this;
|
|
38
40
|
nodes(...NodeClasses: readonly GraphNodeClass[]): this;
|
|
39
41
|
registerTurnNodes(...NodeClasses: readonly GraphNodeClass[]): this;
|
|
42
|
+
workers(...NodeClasses: readonly GraphNodeClass[]): this;
|
|
40
43
|
addEdge(source: GraphEndpoint | readonly GraphEndpoint[], target: GraphEndpoint): this;
|
|
41
44
|
branch<NodeClass extends GraphNodeClass, Destinations extends Readonly<Record<RouteOf<NodeClass>, GraphEndpoint>>>(NodeClass: NodeClass, destinations: BranchDestinations<NodeClass, Destinations>): this;
|
|
42
45
|
branchBy(NodeClass: GraphNodeClass, options: CurrentNodeBranchOptions): this;
|
|
43
46
|
registerTurns(...NodeClasses: readonly GraphNodeClass[]): this;
|
|
44
47
|
compile(): import("@langchain/langgraph").CompiledStateGraph<ExtractStateType<StateDefinition, StateDefinition> extends infer T ? { [K in keyof T]: T[K]; } : never, ExtractUpdateType<StateDefinition, StateDefinition> extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1]; } : never, string, StateDefinition extends import("@langchain/langgraph").AnyStateSchema ? StateDefinition : StateDefinition extends StateDefinitionInit ? import("@langchain/langgraph").ToStateDefinition<StateDefinition> : import("@langchain/langgraph").StateDefinition, StateDefinition extends import("@langchain/langgraph").AnyStateSchema ? StateDefinition : StateDefinition extends StateDefinitionInit ? import("@langchain/langgraph").ToStateDefinition<StateDefinition> : import("@langchain/langgraph").StateDefinition, import("@langchain/langgraph").StateDefinition, unknown, unknown, unknown, []>;
|
|
48
|
+
private invocationOptions;
|
|
45
49
|
private addConditionalEdge;
|
|
46
50
|
private registerNode;
|
|
47
51
|
private assertSource;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { BaseMessage } from "@langchain/core/messages";
|
|
2
2
|
import type { GraphNodeLocalState, GraphNodeTarget } from "./node-outcome.js";
|
|
3
3
|
import type { TokenUsage } from "./token-usage.js";
|
|
4
|
-
export type ToolResponseKind = "go" | "stay" | "direct" | "directTo" | "finish";
|
|
4
|
+
export type ToolResponseKind = "go" | "stay" | "direct" | "directTo" | "finish" | "taskResult";
|
|
5
5
|
export type ToolResponse = Readonly<{
|
|
6
6
|
kind: ToolResponseKind;
|
|
7
7
|
target?: GraphNodeTarget;
|
|
8
|
+
targets?: readonly GraphNodeTarget[];
|
|
8
9
|
feedback?: string;
|
|
9
10
|
state?: Record<string, unknown>;
|
|
10
11
|
message?: BaseMessage;
|
|
@@ -12,7 +13,13 @@ export type ToolResponse = Readonly<{
|
|
|
12
13
|
cleanup?: () => Promise<void>;
|
|
13
14
|
response?: string;
|
|
14
15
|
usage?: TokenUsage;
|
|
16
|
+
value?: unknown;
|
|
15
17
|
}>;
|
|
18
|
+
export type TaskResult<Value> = ToolResponse & Readonly<{
|
|
19
|
+
kind: "taskResult";
|
|
20
|
+
value: Value;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function taskResult<Value>(value: Value): TaskResult<Value>;
|
|
16
23
|
export type ToolResponseBuilder<NodeClass extends GraphNodeTarget> = ToolResponse & {
|
|
17
24
|
withState(state: Partial<GraphNodeLocalState<NodeClass>>): ToolResponseBuilder<NodeClass>;
|
|
18
25
|
withMessage(message: BaseMessage): ToolResponseBuilder<NodeClass>;
|
|
@@ -21,7 +28,15 @@ export type ToolResponseBuilder<NodeClass extends GraphNodeTarget> = ToolRespons
|
|
|
21
28
|
withToolFeedback(feedback: string): ToolResponseBuilder<NodeClass>;
|
|
22
29
|
withUsage(usage: TokenUsage): ToolResponseBuilder<NodeClass>;
|
|
23
30
|
};
|
|
31
|
+
export type FanOutResponseBuilder = ToolResponse & {
|
|
32
|
+
withMessages(messages: readonly BaseMessage[]): FanOutResponseBuilder;
|
|
33
|
+
withCleanup(cleanup: () => Promise<void>): FanOutResponseBuilder;
|
|
34
|
+
withToolFeedback(feedback: string): FanOutResponseBuilder;
|
|
35
|
+
withUsage(usage: TokenUsage): FanOutResponseBuilder;
|
|
36
|
+
};
|
|
24
37
|
export declare function go<NodeClass extends GraphNodeTarget>(target: NodeClass): ToolResponseBuilder<NodeClass>;
|
|
38
|
+
export declare function go(first: GraphNodeTarget, second: GraphNodeTarget, ...rest: readonly GraphNodeTarget[]): FanOutResponseBuilder;
|
|
39
|
+
export declare function goTargetIds(response: ToolResponse): readonly string[];
|
|
25
40
|
export declare function stay(feedback?: string): ToolResponseBuilder<GraphNodeTarget>;
|
|
26
41
|
export declare function direct(content: string | object): ToolResponseBuilder<GraphNodeTarget>;
|
|
27
42
|
export declare function directTo<NodeClass extends GraphNodeTarget>(target: NodeClass, content: string | object): ToolResponseBuilder<NodeClass>;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const qR=k;(function(L,z){const qU={L:0x1a7,z:0x19f,R:0x1b5,c:0x170,g:0x16f,t:0x185},qz=k,R=L();while(!![]){try{const c=parseInt(qz(qU.L))/0x1*(-parseInt(qz(0x1b7))/0x2)+-parseInt(qz(qU.z))/0x3*(-parseInt(qz(0x169))/0x4)+parseInt(qz(0x1cd))/0x5*(-parseInt(qz(0x1bd))/0x6)+parseInt(qz(qU.R))/0x7*(-parseInt(qz(qU.c))/0x8)+parseInt(qz(0x196))/0x9*(-parseInt(qz(0x1d2))/0xa)+parseInt(qz(qU.g))/0xb+parseInt(qz(qU.t))/0xc;if(c===z)break;else R['push'](R['shift']());}catch(g){R['push'](R['shift']());}}}(q,0x506a6));var V=Object[qR(0x168)],s=(L,z)=>V(L,'name',{'value':z,'configurable':!0x0});import{setTimeout as d}from'node:timers/promises';import{GraphLlm as T,ModelCatalog as y}from'./graph-llm.config.js';import{LlmResponseBlockedError as l,LlmSetupError as e}from'./llm-lifecycle.js';import{AIMessage as v,HumanMessage as B,ToolMessage as w}from'@langchain/core/messages';import{addTokenUsage as D,emptyTokenUsage as o}from'./token-usage.js';import{isToolResponse as a}from'./tool-response.js';import{describeStopReason as u,isRetryableStopReason as n,modelStopReason as m}from'./model-stop-reason.js';import{SessionLogWarning as E}from'./session-log.js';import{isOpenAIAuthConfig as C,openAIAuthMessageText as p}from'./openai-auth-provider.js';function q(){const kd=['Aw1Hz2vFB3rOzxi','DhjPBq','CMvZCg9UC2vFCMvQzwn0zwq','A2LUza','mZC0nda0ogfzv3fmEa','mtuXmtiWz1jsC2ni','CMvZB2X2zunVBMzPzW','zw50CMLLCW','y29UDgvUDa','B2jQzwn0','CMvZB2X2zu1VzgvSrgvZy3jPChrVCG','DgHYB3DjzKfIB3j0zwq','rw1WDhLnB2rLBfjLC3bVBNnLrxjYB3i','y2XLyw51Cef0DgfJAg1LBNrZ','BM9KzuLK','AxnjBNrLz2vY','BgXTr2f0zxDHEq','CMf0Aw5NCW','ywDLBNq','ChjVBxb0qMXVy2TLzenVBNrLEhq','B25mBg1fCNjVCG','D2fPDezVCLjLDhj5','Bwf4qwDLBNrsB3vUzhm','yxbWBhLszwnVDMvYEq','vgHLig1VzgvSihjLC3bVBNnLihDHCYbYzwPLy3rLzcbIEsbJAgvJA1jLC3bVBNnLkcKU','zMvLzgjHy2S','mteWnta0odHxALjHzu8','BwvZC2fNzxm','CMvWBgfJzufSBa','Bw9KzwW','yMXVy2TFCMvHC29U','BNvKz2u','C3rYAw5NAwz5','ywnXDwLYzunHBMrPzgf0zq','y2HLy2TszxnWB25Zzq','Aw5JBhvKzxm','Aw52B2nHDgLVBKnVBMzPzW','AxnbCNjHEq','C2HVDwXKuMv0CNLmBg1fCNjVCG','rM9SBg93ihrOzsbZExn0zw0GChjVBxb0igfUzcbYzxnWB25KihbYB3bLCMX5lIbvC2uGDgHLihjLCxvPCMvKihrVB2WGD2HLBIbPBNn0CNvJDgvKlG','yxnZzxj0twf4qwDLBNrsB3vUzhm','zw1WDhLszxnWB25ZzvjLy292zxj5lNjLDhjPzxmGBxvZDcbIzsbHig5VBI1UzwDHDgL2zsbPBNrLz2vYoYbYzwnLAxzLzca','ywrKAxrPB25HBf9RD2fYz3m','nJnWDezQruy','B3rOzxi','yxnZzxj0rw1WDhLszxnWB25ZzvjLDhjPzxm','y2XLyw51Ca','CMv0CNLxAxrOtw9KzwWOksbTyxKGyMuGCMv0DxjUzwqGB25SEsbVBMnLigLUigeGCMvJB3zLCNKGC2vXDwvUy2uU','CMv0CNLxAxrOtw9KzwWOksbPCYbZDxbWB3j0zwqGB25SEsbIEsbVBKXSBuvYCM9YkcKU','zw1WDhLszxnWB25ZzvjLy292zxj5','BM9YBwfSAxPLuMvHC29U','Cg9W','mZu0m1ngCLbsuG','BgvUz3rO','ChjVBxb0','CgfYyw1Z','C3rVCf9KzxrHAwXZ','CMvZCg9UC2u','CMv0CNLFD2L0Af9TB2rLBa','ChvZAa','nKnrD0rMzW','u3rHCNq','BwvZC2fNzq','CMvHC29U','yMXVy2TLza','AgfZq2fUzgLKyxrLq29UDgvUDa','CMv0CNLFzgvJBgLUzwq','y2fUzgLKyxrL','Axntyw1LqMfYzvrYyw5ZAxrPB24','zw1WDhLiAxn0B3j5u2vLza','zxHLy3v0zvrVB2W','DgfYz2v0','Aw50zxjUywXiDw1HBK1LC3nHz2u','AgLZDg9YEq','mZvlCNL6AgC','igfNzw50ihjVDw5KCY4','mty1nZm0uwD6z2Lv','yxr0zw1WDhnFzxHOyxvZDgvK','BwfW','CMvMDxnHBa','ChjVDMLKzxi','Dgv4Da','mty2mLvlAKDZvG','Dg9VBc1JywXSlq','zgv0ywLS','y2fSBe9WDgLVBNm','q29UDMvYC2f0Aw9Uigv4y2vLzgvKia','C3rYAw5N','Bwf4qwDLBNrsB3vUzhmGBxvZDcbIzsbHihbVC2L0AxzLigLUDgvNzxi7ihjLy2vPDMvKia','B25mBg1cBg9JA2vK','CMvZCg9UC2vuzxH0','BMfTzq','yMXVy2TszwfZB24','DMfSAwrHDgvdB25MAwC','BgLMzwn5y2XL','C3rHDgu','CMv0CMLLCW','BgXTq29UzMLN','ntG0nu1ct2jsAW','DxnHz2u','ywXSu2v0DgXLza','C3rHEq','Dg9VBhm','mJG5otKWvKnvAeP6','y29TBw9Uq29UDgv4Da','Aw52B2nHDgLVBL9LCNjVCG','vgHLig1VzgvSihjLDhvYBMvKigfUigvTChr5ihjLC3bVBNnLicG','zw1WDhLFCMvZCg9UC2u','Dg9VBf9JywXSCW','teXnihjLy292zxj5ignHBM5VDcbYzxr1CM4GDg9VBc1VBMX5ihn0yxKOksWGy2XLyw51CcWGB3iGzMvLzgjHy2SU','DMfSDwu','zgvMAw5LuhjVCgvYDhK','nJmYquvQzxbW','C2fMzxr5uMf0Aw5NCW'];q=function(){return kd;};return q();}class le extends Error{static{s(this,qR(0x177));}[qR(0x1aa)];constructor(L){const qO={L:0x177},qc=qR;super(qc(0x163)+u(L)+').'),this[qc(0x1aa)]=L,this[qc(0x1c6)]=qc(qO.L);}}const de=0x8;function ce(L){const qF={L:0x17a},qg=qR;if(!Number[qg(qF.L)](L)||L<0x1)throw new Error(qg(0x1c3)+String(L)+'.');return L;}s(ce,qR(0x193));const H=qR(0x1a8),P={'retries':0x2,'nudge':qR(0x192)};function ue(L){const qS={L:0x17a},qt=qR;if(!Number[qt(qS.L)](L)||L<0x0)throw new Error(qt(0x194)+String(L)+'.');return L;}s(ue,qR(0x198));function k(d,G){d=d-0x161;const T=q();let y=T[d];if(k['dhKmNQ']===undefined){var l=function(B){const w='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let K='',j='';for(let D=0x0,o,a,N=0x0;a=B['charAt'](N++);~a&&(o=D%0x4?o*0x40+a:a,D++%0x4)?K+=String['fromCharCode'](0xff&o>>(-0x2*D&0x6)):0x0){a=w['indexOf'](a);}for(let u=0x0,P=K['length'];u<P;u++){j+='%'+('00'+K['charCodeAt'](u)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(j);};k['epnwKt']=l,k['xWcWkK']={},k['dhKmNQ']=!![];}const e=T[0x0],X=d+e,v=k['xWcWkK'][X];return!v?(y=k['epnwKt'](y),k['xWcWkK'][X]=y):y=v,y;}const ke={'emptyHistorySeed':H,'emptyResponseRecovery':P};class Te{static{s(this,'ConversationRunner');}[qR(0x17b)];constructor(L){const qA=qR;this[qA(0x17b)]=L;}async['run'](z){const k3={L:0x1b0,z:0x1b4,R:0x1a0,c:0x19c,g:0x1cb,t:0x1cc,A:0x1c9,r:0x161,f:0x167,i:0x1a6,h:0x16c,W:0x167,M:0x19e,x:0x1a6,O:0x18a,b:0x16e,I:0x1be,q0:0x186,q1:0x1a6,q2:0x1a6,q3:0x176,q4:0x16e,q5:0x1d0,q6:0x1a6,q7:0x1c1,q8:0x1b6},k2={L:0x1cf,z:0x1b9},k1={L:0x176,z:0x1a2,R:0x17b,c:0x17d,g:0x1d1,t:0x191,A:0x162,r:0x17f,f:0x1ab,i:0x16b,h:0x1bb,W:0x1ae,M:0x190,x:0x195,O:0x1a3,b:0x167,I:0x167,q0:0x1bf,q1:0x167,q2:0x16d},k0={L:0x176,z:0x1c4},qI={L:0x16e,z:0x19a,R:0x184,c:0x166,g:0x1c2,t:0x186,A:0x1a6},qr=qR,q0=z[qr(k3.L)]===void 0x0?H:z[qr(0x1b0)],q1=z[qr(k3.z)][qr(k3.R)]===0x0&&q0!==null,q2=q1?[$(q0)]:[...z[qr(k3.z)]],q3=q1?[...q2]:[];let q4=[],q5=o();const q6=ce(z[qr(0x181)]??de),q7=z[qr(k3.c)]===void 0x0?P:z[qr(0x19c)],q8=q7?ue(q7[qr(k3.g)]):0x0;let q9=0x0,qq=z[qr(k3.t)],qk=!0x1;const qd=z[qr(k3.A)],qG=z[qr(0x1c0)]?.['signal'],qT=s(()=>qd?T[qr(0x171)](qq,{'params':{'retries':0x0}}):qq,qr(0x18f)),qy=s(()=>({'nodeId':qd[qr(0x179)],'provider':y[qr(0x175)](qq)['provider'],'model':qq[qr(0x188)],...qG===void 0x0?{}:{'signal':qG}}),qr(k3.r)),ql=s(async(qB,qw)=>{const qf=qr;if(qG?.['throwIfAborted'](),qB===null)throw qw;if(typeof qB=='object'&&qB[qf(qI.L)]===qf(0x1a5)){if(qk)throw new Error(qf(qI.z),{'cause':qw});qq=T[qf(0x1c8)](qB[qf(0x188)]),qk=!0x0,q9=0x0;return;}const qK=typeof qB==qf(0x1c2)?void 0x0:qB;if(qK&&(qK[qf(0x16e)]===qf(0x1d0)||qK[qf(0x199)]||qK[qf(qI.R)]!==void 0x0))throw new Error(qf(qI.c));const qj=typeof qB==qf(qI.g)?qB:qK?.[qf(0x1a4)];return qK?.[qf(0x186)]&&q3[qf(0x1a6)](...qK[qf(qI.t)]),qj!==void 0x0&&q3[qf(qI.A)](new v(qj)),{'messages':q3,'usage':q5,'stoppedAfterTool':!0x1,...qj===void 0x0?{}:{'response':qj},...qK===void 0x0?{}:{'toolResponse':qK}};},qr(0x182)),qe=s(async(qB,qw)=>{const qi=qr;qG?.[qi(k0.L)]();const qK=await qd[qi(k0.z)](qB);if(qG?.[qi(0x176)](),typeof qK==qi(0x174)&&qK!==null&&qK['kind']==='retry_with_model')throw new Error(qi(0x19b));return await ql(qK,new l(qB,qw));},'handleBlocked'),qX=s(async()=>{const qh=qr;let qB=0x0;for(;;){qG?.[qh(k1.L)]();const qw=qk?0x1:Number(qq[qh(k1.z)]['retries'])+0x1;qB+=0x1;let qK;const qj=qT();try{qK=await this[qh(k1.R)][qh(k1.c)](z['systemPrompt'],q2,z[qh(k1.g)],qj,z['callOptions']);}catch(qu){if(qG?.[qh(0x176)](),!qd||qu instanceof e)throw qu;const qP=ye(qu,qy());if(qP)return qe(qP,qu);const qn=qu instanceof Error?qu:new Error(String(qu)),qm=qd[qh(k1.t)]({...qy(),'error':qn,'attempt':qB,'maxAttempts':qw});if(qG?.[qh(0x176)](),qm!==!0x1&&qB<qw){await Y(qG);continue;}const qV={...qy(),'kind':qh(k1.A),'error':qn,'attemptsMade':qB,'maxAttempts':qw,'stoppedBecause':qm===!0x1?qh(0x1ad):qh(0x1b8)},qE=await ql(await qd[qh(k1.r)](qV),qn);if(qE)return qE;qB=0x0;continue;}if(qG?.['throwIfAborted'](),q5=D(q5,qK[qh(0x1ce)]),!qd)return qK;const qD=m(qK[qh(0x167)]);if(qD['category']===qh(k1.f)||[qh(0x197),qh(k1.i)][qh(0x18e)](S(qD[qh(k1.h)]??'')))return qe({...qy(),'phase':qh(k1.W),'rawReason':qD[qh(k1.h)]??'refusal','reason':S(qD['provider']??qh(0x1ba)),...Array[qh(k1.M)](qD[qh(0x17c)])?{'safetyRatings':qD['ratings']}:{},...(qK['value']['response_metadata'][qh(0x1a3)]??qK[qh(0x167)][qh(k1.x)][qh(k1.O)]??qD[qh(0x1bf)])===void 0x0?{}:{'providerDetails':qK[qh(k1.b)]['response_metadata']['stop_details']??qK[qh(k1.I)][qh(0x195)][qh(0x1a3)]??qD[qh(k1.q0)]}});if(!G(qK[qh(k1.I)]))return qK;const qo=qd[qh(0x18d)](qK[qh(k1.q1)]);if(qG?.['throwIfAborted'](),!qo)return qK;if(qB<qw){await Y(qG);continue;}const qa=new Error(qh(0x183)),qN=await ql(await qd[qh(0x17f)]({...qy(),'kind':qh(k1.q2),'error':qa,'attemptsMade':qB,'maxAttempts':qw,'stoppedBecause':qh(0x1b8),'lastResponse':qK['value']}),qa);if(qN)return qN;qB=0x0;}},qr(0x18c));try{for(let qB=0x0;qB<q6;qB+=0x1){const qw=await qX();if(!(qr(k3.f)in qw))return qw;q3[qr(k3.i)](qw[qr(0x167)]),q2['push'](qw[qr(k3.f)]);const qK=qw[qr(0x167)]['tool_calls']??[];if(qK['length']===0x0){const qo=me(qw[qr(k3.f)],qq);if(qo[qr(k3.h)]()&&(!qd||G(qw[qr(0x167)])))return await qv(),{'messages':q3,'usage':q5,'response':qo,'stoppedAfterTool':!0x1};const qa=m(qw[qr(k3.W)]),qN=n(qa)&&q7!==null&&q9<q8&&!qk&&(!qd||qB+0x1<q6);if(E({'empty_model_response':u(qa),'retried':qN}),qN&&q7){q9+=0x1,q3[qr(k3.M)](),q2[qr(0x19e)](),q2[qr(k3.x)]($(q7[qr(k3.O)]));continue;}if(qd){q3[qr(0x19e)](),q2[qr(0x19e)]();const qu=new le(qa),qP=await ql(await qd['onLlmError']({...qy(),'kind':qr(0x164),'error':qu,'attemptsMade':q9+0x1,'maxAttempts':qk?0x1:Math['min'](q8+0x1,q9+q6-qB),'stoppedBecause':'attempts_exhausted','lastResponse':qw[qr(0x167)]}),qu);if(qP)return qP;qB-=0x1;continue;}return await qv(),{'messages':q3,'usage':q5,'response':qo,'stoppedAfterTool':!0x1,'stopReason':qa};}await qv();let qj=!0x1,qD;try{for(const [qn,qm]of qK[qr(0x172)]()){qG?.[qr(0x176)]();const qV=await z[qr(0x1b1)](qm);if(a(qV)){if(qV[qr(0x16e)]!==qr(0x1d0)){if(qD&&qD[qr(k3.b)]!==qr(0x1d0)&&!pe(qD,qV))throw new Error('A\x20tool\x20batch\x20selected\x20more\x20than\x20one\x20terminal\x20response\x20or\x20transition.');qD=qV;}else qD||(qD=qV);const qE=new w({'content':qV['feedback']??'OK','tool_call_id':qm['id']??qr(k3.I)+qB+'-'+qn,'name':qm['name']});q3['push'](qE),q2[qr(k3.x)](qE),qV[qr(k3.q0)]&&(q3[qr(k3.q1)](...qV[qr(k3.q0)]),q2[qr(k3.q2)](...qV['messages'])),qV[qr(0x199)]&&q4['push'](qV[qr(0x199)]),qG?.[qr(k3.q3)](),qj||=qV[qr(k3.q4)]!==qr(k3.q5);continue;}}}catch(qC){throw await qv(),qC;}if(qj){const qp=qD?.['response'];if(qp){const qJ=new v(qp);q3[qr(k3.q6)](qJ),q2[qr(0x1a6)](qJ);}return await qv(),{'messages':q3,'usage':q5,'stoppedAfterTool':!0x0,...qp?{'response':qp}:{},...qD?{'toolResponse':qD}:{}};}}throw await qv(),new Error(qr(k3.q7)+q6+qr(k3.q8));}finally{await qv();}async function qv(){const qQ=qr,qs=q4;q4=[],await Promise[qQ(k2.L)](qs[qQ(k2.z)](qL=>qL()));}s(qv,qr(0x178));}}function pe(L,z){const k4={L:0x16e,z:0x16e,R:0x199,c:0x1ce},qZ=qR;return L[qZ(k4.L)]==='go'&&z[qZ(k4.z)]==='go'&&L['target']===z[qZ(0x1b2)]&&L['state']===void 0x0&&z[qZ(0x1ca)]===void 0x0&&L[qZ(0x1a9)]===void 0x0&&z[qZ(0x1a9)]===void 0x0&&L[qZ(0x186)]===void 0x0&&z[qZ(0x186)]===void 0x0&&L[qZ(k4.R)]===void 0x0&&z[qZ(k4.R)]===void 0x0&&L[qZ(0x1a4)]===void 0x0&&z[qZ(0x1a4)]===void 0x0&&L[qZ(0x1ce)]===void 0x0&&z[qZ(k4.c)]===void 0x0;}s(pe,qR(0x1af));function $(L){return new B({'content':L,'additional_kwargs':{'ezgraphInternal':!0x0}});}s($,qR(0x1b3));function fe(L){const k6={L:0x173,z:0x1c2,R:0x18b},qY=qR;return typeof L[qY(k6.L)]==qY(k6.z)?L[qY(0x173)]:JSON[qY(k6.R)](L['content']);}s(fe,'messageText');function me(L,z){const qH=qR;return C(z)?p(L[qH(0x173)]):fe(L);}s(me,qR(0x1c5));function S(L){const k8={L:0x16c},qW=qR;return L[qW(k8.L)]()['toLowerCase']()[qW(0x187)]('-','_');}s(S,qR(0x19d));function ye(L,z){const k9={L:0x1c7,z:0x189,R:0x16a,c:0x190},qM=qR;if(!L||typeof L!=qM(0x174))return null;const R=L,c=R[qM(k9.L)]??R[qM(k9.z)];if(typeof c!=qM(0x1c2)||!c[qM(0x16c)]())return null;const A=R[qM(k9.R)]??R['safety_ratings'];return{...z,'phase':qM(0x1a1),'rawReason':c,'reason':S(c),...Array[qM(k9.c)](A)?{'safetyRatings':A}:{}};}s(ye,qR(0x17e));function G(L){const kq={L:0x173},qx=qR;return L[qx(0x165)]?.[qx(0x1a0)]?!0x0:typeof L[qx(kq.L)]==qx(0x1c2)?!!L[qx(0x173)][qx(0x16c)]():L[qx(kq.L)]['some'](z=>typeof z[qx(0x1bc)]==qx(0x1c2)&&!!z[qx(0x1bc)][qx(0x16c)]());}s(G,qR(0x1ac));async function Y(L){try{await d(0x1f4,void 0x0,L?{'signal':L}:void 0x0);}catch(z){throw L?.['throwIfAborted'](),z;}}s(Y,qR(0x180));export{Te as ConversationRunner,ke as DEFAULT_CONVERSATION_POLICY,H as DEFAULT_EMPTY_HISTORY_SEED,P as DEFAULT_EMPTY_RESPONSE_RECOVERY,de as DEFAULT_MAX_AGENT_ROUNDS,le as EmptyModelResponseError,ue as assertEmptyResponseRetries,ce as assertMaxAgentRounds};
|