@langchain/langgraph-sdk 1.6.4 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.cjs +4 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +7 -0
- package/dist/client.d.cts.map +1 -1
- package/dist/client.d.ts +7 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/react/index.cjs +46 -10
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +14 -11
- package/dist/react/index.d.cts.map +1 -0
- package/dist/react/index.d.ts +14 -11
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +14 -4
- package/dist/react/index.js.map +1 -0
- package/dist/react-ui/index.cjs +38 -13
- package/dist/react-ui/index.d.cts +1 -2
- package/dist/react-ui/index.d.ts +1 -2
- package/dist/react-ui/index.js +2 -8
- package/dist/react-ui/server/index.cjs +14 -4
- package/dist/react-ui/server/index.d.cts +1 -2
- package/dist/react-ui/server/index.d.ts +1 -2
- package/dist/react-ui/server/index.js +1 -2
- package/dist/schema.d.cts +2 -0
- package/dist/schema.d.cts.map +1 -1
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/types.messages.d.cts +5 -3
- package/dist/types.messages.d.cts.map +1 -1
- package/dist/types.messages.d.ts +5 -3
- package/dist/types.messages.d.ts.map +1 -1
- package/dist/types.stream.d.cts +40 -2
- package/dist/types.stream.d.cts.map +1 -1
- package/dist/types.stream.d.ts +40 -2
- package/dist/types.stream.d.ts.map +1 -1
- package/dist/ui/branching.cjs +24 -0
- package/dist/ui/branching.cjs.map +1 -1
- package/dist/ui/branching.d.cts +26 -1
- package/dist/ui/branching.d.cts.map +1 -1
- package/dist/ui/branching.d.ts +26 -1
- package/dist/ui/branching.d.ts.map +1 -1
- package/dist/ui/branching.js +25 -1
- package/dist/ui/branching.js.map +1 -1
- package/dist/ui/index.cjs +30 -0
- package/dist/ui/index.d.cts +15 -0
- package/dist/ui/index.d.ts +15 -0
- package/dist/ui/index.js +11 -0
- package/dist/ui/interrupts.cjs +21 -0
- package/dist/ui/interrupts.cjs.map +1 -0
- package/dist/ui/interrupts.d.cts +11 -0
- package/dist/ui/interrupts.d.cts.map +1 -0
- package/dist/ui/interrupts.d.ts +11 -0
- package/dist/ui/interrupts.d.ts.map +1 -0
- package/dist/ui/interrupts.js +20 -0
- package/dist/ui/interrupts.js.map +1 -0
- package/dist/ui/manager.cjs +12 -3
- package/dist/ui/manager.cjs.map +1 -1
- package/dist/ui/manager.d.cts +224 -0
- package/dist/ui/manager.d.cts.map +1 -0
- package/dist/ui/manager.d.ts +224 -0
- package/dist/ui/manager.d.ts.map +1 -0
- package/dist/ui/manager.js +12 -3
- package/dist/ui/manager.js.map +1 -1
- package/dist/ui/messages.cjs +19 -0
- package/dist/ui/messages.cjs.map +1 -1
- package/dist/ui/messages.d.cts +36 -0
- package/dist/ui/messages.d.cts.map +1 -0
- package/dist/ui/messages.d.ts +36 -0
- package/dist/ui/messages.d.ts.map +1 -0
- package/dist/ui/messages.js +18 -1
- package/dist/ui/messages.js.map +1 -1
- package/dist/ui/queue.cjs +75 -0
- package/dist/ui/queue.cjs.map +1 -0
- package/dist/ui/queue.d.cts +72 -0
- package/dist/ui/queue.d.cts.map +1 -0
- package/dist/ui/queue.d.ts +72 -0
- package/dist/ui/queue.d.ts.map +1 -0
- package/dist/ui/queue.js +74 -0
- package/dist/ui/queue.js.map +1 -0
- package/dist/ui/stream/base.d.cts +17 -1
- package/dist/ui/stream/base.d.cts.map +1 -1
- package/dist/ui/stream/base.d.ts +17 -1
- package/dist/ui/stream/base.d.ts.map +1 -1
- package/dist/ui/stream/index.d.cts +4 -4
- package/dist/ui/stream/index.d.cts.map +1 -1
- package/dist/ui/stream/index.d.ts +4 -4
- package/dist/ui/stream/index.d.ts.map +1 -1
- package/dist/ui/subagents.cjs +4 -1
- package/dist/ui/subagents.cjs.map +1 -1
- package/dist/ui/subagents.d.cts +7 -0
- package/dist/ui/subagents.d.cts.map +1 -1
- package/dist/ui/subagents.d.ts +7 -0
- package/dist/ui/subagents.d.ts.map +1 -1
- package/dist/ui/subagents.js +4 -1
- package/dist/ui/subagents.js.map +1 -1
- package/dist/ui/transport.cjs +31 -0
- package/dist/ui/transport.cjs.map +1 -0
- package/dist/{react/stream.custom.d.cts → ui/transport.d.cts} +3 -3
- package/dist/ui/transport.d.cts.map +1 -0
- package/dist/{react/stream.custom.d.ts → ui/transport.d.ts} +3 -3
- package/dist/ui/transport.d.ts.map +1 -0
- package/dist/ui/transport.js +31 -0
- package/dist/ui/transport.js.map +1 -0
- package/dist/ui/types.d.cts +134 -18
- package/dist/ui/types.d.cts.map +1 -1
- package/dist/ui/types.d.ts +134 -18
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ui/utils.d.cts +7 -0
- package/dist/ui/utils.d.cts.map +1 -0
- package/dist/ui/utils.d.ts +7 -0
- package/dist/ui/utils.d.ts.map +1 -0
- package/dist/utils/index.cjs +9 -0
- package/dist/utils/index.d.cts +4 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/sse.d.cts +11 -0
- package/dist/utils/sse.d.cts.map +1 -0
- package/dist/utils/sse.d.ts +11 -0
- package/dist/utils/sse.d.ts.map +1 -0
- package/dist/utils/stream.d.cts +19 -0
- package/dist/utils/stream.d.cts.map +1 -0
- package/dist/utils/stream.d.ts +19 -0
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/tools.cjs +26 -17
- package/dist/utils/tools.cjs.map +1 -1
- package/dist/utils/tools.d.cts +7 -0
- package/dist/utils/tools.d.cts.map +1 -0
- package/dist/utils/tools.d.ts +7 -0
- package/dist/utils/tools.d.ts.map +1 -0
- package/dist/utils/tools.js +26 -17
- package/dist/utils/tools.js.map +1 -1
- package/package.json +42 -13
- package/dist/react/stream.cjs +0 -18
- package/dist/react/stream.cjs.map +0 -1
- package/dist/react/stream.custom.cjs +0 -164
- package/dist/react/stream.custom.cjs.map +0 -1
- package/dist/react/stream.custom.d.cts.map +0 -1
- package/dist/react/stream.custom.d.ts.map +0 -1
- package/dist/react/stream.custom.js +0 -162
- package/dist/react/stream.custom.js.map +0 -1
- package/dist/react/stream.d.cts +0 -174
- package/dist/react/stream.d.cts.map +0 -1
- package/dist/react/stream.d.ts +0 -174
- package/dist/react/stream.d.ts.map +0 -1
- package/dist/react/stream.js +0 -17
- package/dist/react/stream.js.map +0 -1
- package/dist/react/stream.lgp.cjs +0 -482
- package/dist/react/stream.lgp.cjs.map +0 -1
- package/dist/react/stream.lgp.js +0 -481
- package/dist/react/stream.lgp.js.map +0 -1
- package/dist/react/thread.cjs +0 -21
- package/dist/react/thread.cjs.map +0 -1
- package/dist/react/thread.js +0 -20
- package/dist/react/thread.js.map +0 -1
- package/dist/react/types.d.cts +0 -75
- package/dist/react/types.d.cts.map +0 -1
- package/dist/react/types.d.ts +0 -75
- package/dist/react/types.d.ts.map +0 -1
- package/dist/react-ui/client.cjs +0 -138
- package/dist/react-ui/client.cjs.map +0 -1
- package/dist/react-ui/client.d.cts +0 -76
- package/dist/react-ui/client.d.cts.map +0 -1
- package/dist/react-ui/client.d.ts +0 -76
- package/dist/react-ui/client.d.ts.map +0 -1
- package/dist/react-ui/client.js +0 -132
- package/dist/react-ui/client.js.map +0 -1
- package/dist/react-ui/index.cjs.map +0 -1
- package/dist/react-ui/index.js.map +0 -1
- package/dist/react-ui/server/server.cjs +0 -57
- package/dist/react-ui/server/server.cjs.map +0 -1
- package/dist/react-ui/server/server.d.cts +0 -54
- package/dist/react-ui/server/server.d.cts.map +0 -1
- package/dist/react-ui/server/server.d.ts +0 -54
- package/dist/react-ui/server/server.d.ts.map +0 -1
- package/dist/react-ui/server/server.js +0 -56
- package/dist/react-ui/server/server.js.map +0 -1
- package/dist/react-ui/types.cjs +0 -38
- package/dist/react-ui/types.cjs.map +0 -1
- package/dist/react-ui/types.d.cts +0 -25
- package/dist/react-ui/types.d.cts.map +0 -1
- package/dist/react-ui/types.d.ts +0 -25
- package/dist/react-ui/types.d.ts.map +0 -1
- package/dist/react-ui/types.js +0 -35
- package/dist/react-ui/types.js.map +0 -1
package/dist/ui/types.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Checkpoint, Config, Interrupt, Metadata, ThreadState } from "../schema.js";
|
|
2
2
|
import { AIMessage, DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.js";
|
|
3
|
-
import { CheckpointsStreamEvent, CustomStreamEvent, DebugStreamEvent, EventsStreamEvent, MetadataStreamEvent, StreamMode, TasksStreamEvent, UpdatesStreamEvent } from "../types.stream.js";
|
|
3
|
+
import { CheckpointsStreamEvent, CustomStreamEvent, DebugStreamEvent, EventsStreamEvent, MetadataStreamEvent, StreamMode, TasksStreamEvent, ToolsStreamEvent, UpdatesStreamEvent } from "../types.stream.js";
|
|
4
4
|
import { Command, DisconnectMode, Durability, MultitaskStrategy, OnCompletionBehavior } from "../types.js";
|
|
5
5
|
import { Client, ClientConfig } from "../client.js";
|
|
6
6
|
import { BagTemplate } from "../types.template.js";
|
|
7
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
7
8
|
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
8
9
|
|
|
9
10
|
//#region src/ui/types.d.ts
|
|
@@ -161,6 +162,33 @@ interface StreamBase<StateType = Record<string, unknown>, ToolCall = DefaultTool
|
|
|
161
162
|
* ```
|
|
162
163
|
*/
|
|
163
164
|
getSubagentsByMessage: (messageId: string) => SubagentStreamInterface<SubagentStates[keyof SubagentStates], ToolCall, keyof SubagentStates & string>[];
|
|
165
|
+
/**
|
|
166
|
+
* Switch to a different thread, clearing the current stream state.
|
|
167
|
+
* Pass `null` to reset to no thread (a new thread will be created on next submit).
|
|
168
|
+
*
|
|
169
|
+
* @param newThreadId - The thread ID to switch to, or `null` to start fresh.
|
|
170
|
+
*/
|
|
171
|
+
switchThread: (newThreadId: string | null) => void;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Subagent API surface parameterised by the subagent interface type.
|
|
175
|
+
*
|
|
176
|
+
* Framework adapters supply a class-message variant of
|
|
177
|
+
* `SubagentStreamInterface` (where `messages` is `BaseMessage[]`
|
|
178
|
+
* from `@langchain/core`) so that consumers always work with class
|
|
179
|
+
* instances. The default parameter keeps the SDK's plain `Message`
|
|
180
|
+
* interface for direct SDK usage.
|
|
181
|
+
*
|
|
182
|
+
* @template Iface - The subagent stream interface to expose.
|
|
183
|
+
* Defaults to {@link SubagentStreamInterface} with default generic
|
|
184
|
+
* parameters.
|
|
185
|
+
*/
|
|
186
|
+
interface SubagentApi<Iface = SubagentStreamInterface> {
|
|
187
|
+
subagents: Map<string, Iface>;
|
|
188
|
+
activeSubagents: Iface[];
|
|
189
|
+
getSubagent: (toolCallId: string) => Iface | undefined;
|
|
190
|
+
getSubagentsByType: (type: string) => Iface[];
|
|
191
|
+
getSubagentsByMessage: (messageId: string) => Iface[];
|
|
164
192
|
}
|
|
165
193
|
/**
|
|
166
194
|
* Base interface for a single subagent stream.
|
|
@@ -278,9 +306,10 @@ interface AgentMiddlewareLike<TSchema = unknown, TContextSchema = unknown, TFull
|
|
|
278
306
|
* Uses structural matching against AgentMiddleware to extract the state schema
|
|
279
307
|
* type parameter, similar to how langchain's InferMiddlewareState works.
|
|
280
308
|
*/
|
|
281
|
-
type
|
|
309
|
+
type SafeInferInteropZodInput<T> = InferInteropZodInput<T> extends never ? {} : InferInteropZodInput<T>;
|
|
310
|
+
type InferMiddlewareState<T> = T extends AgentMiddlewareLike<infer TSchema, unknown, unknown, unknown> ? TSchema extends Record<string, any> ? SafeInferInteropZodInput<TSchema> : {} : T extends {
|
|
282
311
|
stateSchema: infer S;
|
|
283
|
-
} ?
|
|
312
|
+
} ? SafeInferInteropZodInput<S> : {};
|
|
284
313
|
/**
|
|
285
314
|
* Helper type to detect if a type is `any`.
|
|
286
315
|
* Uses the fact that `any` is both a subtype and supertype of all types.
|
|
@@ -325,23 +354,52 @@ type InferMiddlewareStatesFromArray<T> = IsAny<T> extends true ? {} : T extends
|
|
|
325
354
|
type BaseAgentState<ToolCall = DefaultToolCall> = {
|
|
326
355
|
messages: Message<ToolCall>[];
|
|
327
356
|
};
|
|
357
|
+
/**
|
|
358
|
+
* Conditionally adds `structuredResponse` to the agent state when
|
|
359
|
+
* `responseFormat` is provided to `createAgent`.
|
|
360
|
+
*
|
|
361
|
+
* The sentinel type `ResponseFormatUndefined` (from langchain) has a
|
|
362
|
+
* `__responseFormatUndefined` brand property. When the Response type
|
|
363
|
+
* carries that brand, no `structuredResponse` key is added.
|
|
364
|
+
*/
|
|
365
|
+
type InferStructuredResponse<Response> = Response extends {
|
|
366
|
+
__responseFormatUndefined: true;
|
|
367
|
+
} ? {} : Response extends Record<string, any> ? {
|
|
368
|
+
structuredResponse: Response;
|
|
369
|
+
} : {};
|
|
328
370
|
type InferAgentState<T> = T extends {
|
|
329
371
|
"~agentTypes": unknown;
|
|
330
|
-
} ? ExtractAgentConfig<T> extends never ? {} : BaseAgentState<InferAgentToolCalls<T>> & (ExtractAgentConfig<T>["State"] extends undefined ? {} :
|
|
372
|
+
} ? ExtractAgentConfig<T> extends never ? {} : BaseAgentState<InferAgentToolCalls<T>> & (ExtractAgentConfig<T>["State"] extends undefined ? {} : SafeInferInteropZodInput<ExtractAgentConfig<T>["State"]>) & InferMiddlewareStatesFromArray<ExtractAgentConfig<T>["Middleware"]> & InferStructuredResponse<ExtractAgentConfig<T>["Response"]> : T extends {
|
|
331
373
|
"~RunOutput": infer RunOutput;
|
|
332
374
|
} ? RunOutput : T extends {
|
|
333
375
|
messages: unknown;
|
|
334
376
|
} ? T : {};
|
|
335
377
|
/**
|
|
336
|
-
* Helper type to
|
|
337
|
-
*
|
|
338
|
-
*
|
|
378
|
+
* Helper type to infer schema input type, supporting both Zod v3 and v4.
|
|
379
|
+
* Self-contained to avoid cross-package type resolution issues with
|
|
380
|
+
* InferInteropZodInput from @langchain/core.
|
|
381
|
+
* - Zod v4 uses `_zod.input` property
|
|
382
|
+
* - Zod v3 uses `_input` property
|
|
383
|
+
*/
|
|
384
|
+
type InferToolSchemaInput<S> = S extends {
|
|
385
|
+
_zod: {
|
|
386
|
+
input: infer Args;
|
|
387
|
+
};
|
|
388
|
+
} ? Args : S extends {
|
|
389
|
+
_input: infer Args;
|
|
390
|
+
} ? Args : never;
|
|
391
|
+
/**
|
|
392
|
+
* Helper type to extract the input type from a DynamicStructuredTool.
|
|
393
|
+
*
|
|
394
|
+
* Tries the following in order:
|
|
395
|
+
* 1. `_call` method signature (may fail when `_call` is `protected`)
|
|
396
|
+
* 2. `schema` property with self-contained Zod v3/v4 inference
|
|
339
397
|
*/
|
|
340
398
|
type InferToolInput<T> = T extends {
|
|
341
399
|
_call: (arg: infer Args, ...rest: any[]) => any;
|
|
342
400
|
} ? Args : T extends {
|
|
343
401
|
schema: infer S;
|
|
344
|
-
} ?
|
|
402
|
+
} ? InferToolSchemaInput<S> : never;
|
|
345
403
|
/**
|
|
346
404
|
* Helper type to check if a type is a literal string (not generic `string`).
|
|
347
405
|
* Returns true only for literal types like "get_weather", false for `string`.
|
|
@@ -596,6 +654,17 @@ type MessageMetadata<StateType extends Record<string, unknown>> = {
|
|
|
596
654
|
type GetUpdateType<Bag extends BagTemplate, StateType extends Record<string, unknown>> = Bag extends {
|
|
597
655
|
UpdateType: unknown;
|
|
598
656
|
} ? Bag["UpdateType"] : Partial<StateType>;
|
|
657
|
+
/**
|
|
658
|
+
* Widens an update type so that its `messages` field also accepts
|
|
659
|
+
* `@langchain/core` {@link BaseMessage} class instances (single or array).
|
|
660
|
+
*
|
|
661
|
+
* Framework SDKs apply this to `submit` so callers can write:
|
|
662
|
+
* ```ts
|
|
663
|
+
* stream.submit({ messages: new HumanMessage("hello") });
|
|
664
|
+
* stream.submit({ messages: [new HumanMessage("hello")] });
|
|
665
|
+
* ```
|
|
666
|
+
*/
|
|
667
|
+
type AcceptBaseMessages<T> = T extends Record<string, unknown> ? { [K in keyof T]: K extends "messages" ? T[K] | BaseMessage | BaseMessage[] : T[K] } : T;
|
|
599
668
|
type GetConfigurableType<Bag extends BagTemplate> = Bag extends {
|
|
600
669
|
ConfigurableType: Record<string, unknown>;
|
|
601
670
|
} ? Bag["ConfigurableType"] : Record<string, unknown>;
|
|
@@ -723,6 +792,13 @@ interface UseStreamOptions<StateType extends Record<string, unknown> = Record<st
|
|
|
723
792
|
onTaskEvent?: (data: TasksStreamEvent<StateType, GetUpdateType<Bag, StateType>>["data"], options: {
|
|
724
793
|
namespace: string[] | undefined;
|
|
725
794
|
}) => void;
|
|
795
|
+
/**
|
|
796
|
+
* Callback that is called when a tool lifecycle event is received.
|
|
797
|
+
*/
|
|
798
|
+
onToolEvent?: (data: ToolsStreamEvent["data"], options: {
|
|
799
|
+
namespace: string[] | undefined;
|
|
800
|
+
mutate: (update: Partial<StateType> | ((prev: StateType) => Partial<StateType>)) => void;
|
|
801
|
+
}) => void;
|
|
726
802
|
/**
|
|
727
803
|
* Callback that is called when the stream is stopped by the user.
|
|
728
804
|
* Provides a mutate function to update the stream state immediately
|
|
@@ -787,6 +863,20 @@ interface UseStreamOptions<StateType extends Record<string, unknown> = Record<st
|
|
|
787
863
|
*/
|
|
788
864
|
throttle?: number | boolean;
|
|
789
865
|
}
|
|
866
|
+
/**
|
|
867
|
+
* Union of all stream options types.
|
|
868
|
+
*
|
|
869
|
+
* Used internally by the implementation to accept any options type.
|
|
870
|
+
* This allows the implementation functions to handle options from
|
|
871
|
+
* any agent type while maintaining type safety at the public API level.
|
|
872
|
+
*
|
|
873
|
+
* @internal
|
|
874
|
+
*/
|
|
875
|
+
type AnyStreamOptions<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> = UseStreamOptions<StateType, Bag> & {
|
|
876
|
+
subagentToolNames?: string[];
|
|
877
|
+
filterSubagentMessages?: boolean;
|
|
878
|
+
toMessage?: (chunk: BaseMessage) => Message | BaseMessage;
|
|
879
|
+
};
|
|
790
880
|
interface RunMetadataStorage {
|
|
791
881
|
getItem(key: `lg:stream:${string}`): string | null;
|
|
792
882
|
setItem(key: `lg:stream:${string}`, value: string): void;
|
|
@@ -837,28 +927,54 @@ interface SubmitOptions<StateType extends Record<string, unknown> = Record<strin
|
|
|
837
927
|
* before the thread is actually created.
|
|
838
928
|
*/
|
|
839
929
|
threadId?: string;
|
|
930
|
+
/**
|
|
931
|
+
* Callback that is called when an error occurs during this specific submit call.
|
|
932
|
+
* Unlike the hook-level `onError`, this allows handling errors on a per-submit basis,
|
|
933
|
+
* e.g. to show a retry button or a specific error message to the user.
|
|
934
|
+
*/
|
|
935
|
+
onError?: (error: unknown, run: RunCallbackMeta | undefined) => void;
|
|
936
|
+
}
|
|
937
|
+
/**
|
|
938
|
+
* Payload for the `stream` method of the `UseStreamTransport` interface.
|
|
939
|
+
* @template StateType - The type of the stream's state values.
|
|
940
|
+
* @template Bag - The type of the stream's bag values.
|
|
941
|
+
*/
|
|
942
|
+
interface UseStreamTransportPayload<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> {
|
|
943
|
+
input: GetUpdateType<Bag, StateType> | null | undefined;
|
|
944
|
+
context: GetConfigurableType<Bag> | undefined;
|
|
945
|
+
command: Command | undefined;
|
|
946
|
+
config: ConfigWithConfigurable<GetConfigurableType<Bag>> | undefined;
|
|
947
|
+
signal: AbortSignal;
|
|
840
948
|
}
|
|
841
949
|
/**
|
|
842
950
|
* Transport used to stream the thread.
|
|
843
951
|
* Only applicable for custom endpoints using `toLangGraphEventStream` or `toLangGraphEventStreamResponse`.
|
|
844
952
|
*/
|
|
845
953
|
interface UseStreamTransport<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> {
|
|
846
|
-
stream: (payload: {
|
|
847
|
-
input: GetUpdateType<Bag, StateType> | null | undefined;
|
|
848
|
-
context: GetConfigurableType<Bag> | undefined;
|
|
849
|
-
command: Command | undefined;
|
|
850
|
-
config: ConfigWithConfigurable<GetConfigurableType<Bag>> | undefined;
|
|
851
|
-
signal: AbortSignal;
|
|
852
|
-
}) => Promise<AsyncGenerator<{
|
|
954
|
+
stream: (payload: UseStreamTransportPayload<StateType, Bag>) => Promise<AsyncGenerator<{
|
|
853
955
|
id?: string;
|
|
854
956
|
event: string;
|
|
855
957
|
data: unknown;
|
|
856
958
|
}>>;
|
|
857
959
|
}
|
|
858
|
-
type UseStreamCustomOptions<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> = Pick<UseStreamOptions<StateType, Bag>, "messagesKey" | "threadId" | "onThreadId" | "onError" | "onCreated" | "onUpdateEvent" | "onCustomEvent" | "onMetadataEvent" | "onLangChainEvent" | "onDebugEvent" | "onCheckpointEvent" | "onTaskEvent" | "onStop" | "initialValues" | "throttle"> & {
|
|
960
|
+
type UseStreamCustomOptions<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> = Pick<UseStreamOptions<StateType, Bag>, "messagesKey" | "threadId" | "onThreadId" | "onError" | "onCreated" | "onUpdateEvent" | "onCustomEvent" | "onMetadataEvent" | "onLangChainEvent" | "onDebugEvent" | "onCheckpointEvent" | "onTaskEvent" | "onStop" | "initialValues" | "throttle" | "onToolEvent"> & {
|
|
859
961
|
transport: UseStreamTransport<StateType, Bag>;
|
|
860
962
|
};
|
|
861
|
-
|
|
963
|
+
/**
|
|
964
|
+
* Union of all custom stream options types.
|
|
965
|
+
*
|
|
966
|
+
* Used internally by the implementation to accept any custom options type.
|
|
967
|
+
* This allows the implementation functions to handle options from
|
|
968
|
+
* any agent type while maintaining type safety at the public API level.
|
|
969
|
+
*
|
|
970
|
+
* @internal
|
|
971
|
+
*/
|
|
972
|
+
type AnyStreamCustomOptions<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate> = UseStreamCustomOptions<StateType, Bag> & {
|
|
973
|
+
subagentToolNames?: string[];
|
|
974
|
+
filterSubagentMessages?: boolean;
|
|
975
|
+
toMessage?: (chunk: BaseMessage) => Message | BaseMessage;
|
|
976
|
+
};
|
|
977
|
+
type CustomSubmitOptions<StateType extends Record<string, unknown> = Record<string, unknown>, ConfigurableType extends Record<string, unknown> = Record<string, unknown>> = Pick<SubmitOptions<StateType, ConfigurableType>, "optimisticValues" | "context" | "command" | "config" | "onError">;
|
|
862
978
|
//#endregion
|
|
863
|
-
export { AgentTypeConfigLike, BaseSubagentState, CompiledSubAgentLike, CustomSubmitOptions, DeepAgentTypeConfigLike, DefaultSubagentStates, ExtractAgentConfig, ExtractDeepAgentConfig, ExtractSubAgentMiddleware, GetConfigurableType, GetInterruptType, GetToolCallsType, GetUpdateType, InferAgentState, InferAgentToolCalls, InferDeepAgentSubagents, InferSubagentByName, InferSubagentNames, InferSubagentState, IsAgentLike, IsDeepAgentLike, MessageMetadata, RunCallbackMeta, StreamBase, SubAgentLike, SubagentStateMap, SubagentStatus, SubagentStream, SubagentStreamInterface, SubagentToolCall, SubmitOptions, UseStreamCustomOptions, UseStreamOptions, UseStreamThread, UseStreamTransport };
|
|
979
|
+
export { AcceptBaseMessages, AgentMiddlewareLike, AgentTypeConfigLike, AnyStreamCustomOptions, AnyStreamOptions, BaseSubagentState, CompiledSubAgentLike, CustomSubmitOptions, DeepAgentTypeConfigLike, DefaultSubagentStates, ExtractAgentConfig, ExtractDeepAgentConfig, ExtractSubAgentMiddleware, ExtractToolCallsFromState, GetConfigurableType, GetCustomEventType, GetInterruptType, GetToolCallsType, GetUpdateType, InferAgentState, InferAgentToolCalls, InferDeepAgentSubagents, InferMiddlewareStatesFromArray, InferSubagentByName, InferSubagentNames, InferSubagentState, IsAgentLike, IsDeepAgentLike, MessageMetadata, RunCallbackMeta, StreamBase, SubAgentLike, SubagentApi, SubagentStateMap, SubagentStatus, SubagentStream, SubagentStreamInterface, SubagentToolCall, SubmitOptions, UseStreamCustomOptions, UseStreamOptions, UseStreamThread, UseStreamTransport, UseStreamTransportPayload };
|
|
864
980
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/ui/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/ui/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/ui/types.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/ui/utils.d.ts
|
|
2
|
+
declare function unique<T>(array: T[]): T[];
|
|
3
|
+
declare function findLast<T>(array: T[], predicate: (item: T) => boolean): T | undefined;
|
|
4
|
+
declare function filterStream<T, TReturn>(stream: AsyncGenerator<T, TReturn>, filter: (event: T) => boolean): AsyncGenerator<T, TReturn>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { filterStream, findLast, unique };
|
|
7
|
+
//# sourceMappingURL=utils.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.cts","names":[],"sources":["../../src/ui/utils.ts"],"mappings":";iBAAgB,MAAA,GAAA,CAAU,KAAA,EAAO,CAAA,KAAG,CAAA;AAAA,iBAIpB,QAAA,GAAA,CAAY,KAAA,EAAO,CAAA,IAAK,SAAA,GAAY,IAAA,EAAM,CAAA,eAAa,CAAA;AAAA,iBAOhD,YAAA,YAAA,CACrB,MAAA,EAAQ,cAAA,CAAe,CAAA,EAAG,OAAA,GAC1B,MAAA,GAAS,KAAA,EAAO,CAAA,eACf,cAAA,CAAe,CAAA,EAAG,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/ui/utils.d.ts
|
|
2
|
+
declare function unique<T>(array: T[]): T[];
|
|
3
|
+
declare function findLast<T>(array: T[], predicate: (item: T) => boolean): T | undefined;
|
|
4
|
+
declare function filterStream<T, TReturn>(stream: AsyncGenerator<T, TReturn>, filter: (event: T) => boolean): AsyncGenerator<T, TReturn>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { filterStream, findLast, unique };
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","names":[],"sources":["../../src/ui/utils.ts"],"mappings":";iBAAgB,MAAA,GAAA,CAAU,KAAA,EAAO,CAAA,KAAG,CAAA;AAAA,iBAIpB,QAAA,GAAA,CAAY,KAAA,EAAO,CAAA,IAAK,SAAA,GAAY,IAAA,EAAM,CAAA,eAAa,CAAA;AAAA,iBAOhD,YAAA,YAAA,CACrB,MAAA,EAAQ,cAAA,CAAe,CAAA,EAAG,OAAA,GAC1B,MAAA,GAAS,KAAA,EAAO,CAAA,eACf,cAAA,CAAe,CAAA,EAAG,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_sse = require('./sse.cjs');
|
|
3
|
+
const require_stream = require('./stream.cjs');
|
|
4
|
+
const require_tools = require('./tools.cjs');
|
|
5
|
+
|
|
6
|
+
exports.BytesLineDecoder = require_sse.BytesLineDecoder;
|
|
7
|
+
exports.IterableReadableStream = require_stream.IterableReadableStream;
|
|
8
|
+
exports.SSEDecoder = require_sse.SSEDecoder;
|
|
9
|
+
exports.getToolCallsWithResults = require_tools.getToolCallsWithResults;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/utils/sse.d.ts
|
|
2
|
+
declare function BytesLineDecoder(): TransformStream<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>;
|
|
3
|
+
interface StreamPart {
|
|
4
|
+
id: string | undefined;
|
|
5
|
+
event: string;
|
|
6
|
+
data: unknown;
|
|
7
|
+
}
|
|
8
|
+
declare function SSEDecoder(): TransformStream<Uint8Array<ArrayBufferLike>, StreamPart>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { BytesLineDecoder, SSEDecoder };
|
|
11
|
+
//# sourceMappingURL=sse.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.cts","names":[],"sources":["../../src/utils/sse.ts"],"mappings":";iBAQgB,gBAAA,CAAA,GAAgB,eAAA,CAAA,UAAA,CAAA,eAAA,GAAA,UAAA,CAAA,eAAA;AAAA,UAoFtB,UAAA;EACR,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,iBAGc,UAAA,CAAA,GAAU,eAAA,CAAA,UAAA,CAAA,eAAA,GAAA,UAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/utils/sse.d.ts
|
|
2
|
+
declare function BytesLineDecoder(): TransformStream<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>;
|
|
3
|
+
interface StreamPart {
|
|
4
|
+
id: string | undefined;
|
|
5
|
+
event: string;
|
|
6
|
+
data: unknown;
|
|
7
|
+
}
|
|
8
|
+
declare function SSEDecoder(): TransformStream<Uint8Array<ArrayBufferLike>, StreamPart>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { BytesLineDecoder, SSEDecoder };
|
|
11
|
+
//# sourceMappingURL=sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","names":[],"sources":["../../src/utils/sse.ts"],"mappings":";iBAQgB,gBAAA,CAAA,GAAgB,eAAA,CAAA,UAAA,CAAA,eAAA,GAAA,UAAA,CAAA,eAAA;AAAA,UAoFtB,UAAA;EACR,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,iBAGc,UAAA,CAAA,GAAU,eAAA,CAAA,UAAA,CAAA,eAAA,GAAA,UAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/utils/stream.d.ts
|
|
2
|
+
type IterableReadableStreamInterface<T> = ReadableStream<T> & AsyncIterable<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Options for streaming with automatic retry logic.
|
|
5
|
+
*/
|
|
6
|
+
declare class IterableReadableStream<T> extends ReadableStream<T> implements IterableReadableStreamInterface<T> {
|
|
7
|
+
reader: ReadableStreamDefaultReader<T>;
|
|
8
|
+
ensureReader(): void;
|
|
9
|
+
next(): Promise<IteratorResult<T>>;
|
|
10
|
+
return(): Promise<IteratorResult<T>>;
|
|
11
|
+
throw(e: any): Promise<IteratorResult<T>>;
|
|
12
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
13
|
+
[Symbol.asyncIterator](): this;
|
|
14
|
+
static fromReadableStream<T>(stream: ReadableStream<T>): IterableReadableStream<T>;
|
|
15
|
+
static fromAsyncGenerator<T>(generator: AsyncGenerator<T>): IterableReadableStream<T>;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { IterableReadableStream };
|
|
19
|
+
//# sourceMappingURL=stream.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.cts","names":[],"sources":["../../src/utils/stream.ts"],"mappings":";KAGK,+BAAA,MAAqC,cAAA,CAAe,CAAA,IAAK,aAAA,CAAc,CAAA;;;;cAyL/D,sBAAA,YACH,cAAA,CAAe,CAAA,aACZ,+BAAA,CAAgC,CAAA;EAEpC,MAAA,EAAQ,2BAAA,CAA4B,CAAA;EAE3C,YAAA,CAAA;EAMM,IAAA,CAAA,GAAQ,OAAA,CAAQ,cAAA,CAAe,CAAA;EAsB/B,MAAA,CAAA,GAAU,OAAA,CAAQ,cAAA,CAAe,CAAA;EAYjC,KAAA,CAAM,CAAA,QAAS,OAAA,CAAQ,cAAA,CAAe,CAAA;EAAA,CAYrC,MAAA,CAAO,YAAA,KAAa,OAAA;EAAA,CAI1B,MAAA,CAAO,aAAA;EAAA,OAID,kBAAA,GAAA,CAAsB,MAAA,EAAQ,cAAA,CAAe,CAAA,IAAE,sBAAA,CAAA,CAAA;EAAA,OAyB/C,kBAAA,GAAA,CAAsB,SAAA,EAAW,cAAA,CAAe,CAAA,IAAE,sBAAA,CAAA,CAAA;AAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/utils/stream.d.ts
|
|
2
|
+
type IterableReadableStreamInterface<T> = ReadableStream<T> & AsyncIterable<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Options for streaming with automatic retry logic.
|
|
5
|
+
*/
|
|
6
|
+
declare class IterableReadableStream<T> extends ReadableStream<T> implements IterableReadableStreamInterface<T> {
|
|
7
|
+
reader: ReadableStreamDefaultReader<T>;
|
|
8
|
+
ensureReader(): void;
|
|
9
|
+
next(): Promise<IteratorResult<T>>;
|
|
10
|
+
return(): Promise<IteratorResult<T>>;
|
|
11
|
+
throw(e: any): Promise<IteratorResult<T>>;
|
|
12
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
13
|
+
[Symbol.asyncIterator](): this;
|
|
14
|
+
static fromReadableStream<T>(stream: ReadableStream<T>): IterableReadableStream<T>;
|
|
15
|
+
static fromAsyncGenerator<T>(generator: AsyncGenerator<T>): IterableReadableStream<T>;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { IterableReadableStream };
|
|
19
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","names":[],"sources":["../../src/utils/stream.ts"],"mappings":";KAGK,+BAAA,MAAqC,cAAA,CAAe,CAAA,IAAK,aAAA,CAAc,CAAA;;;;cAyL/D,sBAAA,YACH,cAAA,CAAe,CAAA,aACZ,+BAAA,CAAgC,CAAA;EAEpC,MAAA,EAAQ,2BAAA,CAA4B,CAAA;EAE3C,YAAA,CAAA;EAMM,IAAA,CAAA,GAAQ,OAAA,CAAQ,cAAA,CAAe,CAAA;EAsB/B,MAAA,CAAA,GAAU,OAAA,CAAQ,cAAA,CAAe,CAAA;EAYjC,KAAA,CAAM,CAAA,QAAS,OAAA,CAAQ,cAAA,CAAe,CAAA;EAAA,CAYrC,MAAA,CAAO,YAAA,KAAa,OAAA;EAAA,CAI1B,MAAA,CAAO,aAAA;EAAA,OAID,kBAAA,GAAA,CAAsB,MAAA,EAAQ,cAAA,CAAe,CAAA,IAAE,sBAAA,CAAA,CAAA;EAAA,OAyB/C,kBAAA,GAAA,CAAsB,SAAA,EAAW,cAAA,CAAe,CAAA,IAAE,sBAAA,CAAA,CAAA;AAAA"}
|
package/dist/utils/tools.cjs
CHANGED
|
@@ -20,28 +20,37 @@
|
|
|
20
20
|
/**
|
|
21
21
|
* Computes the lifecycle state of a tool call based on its result.
|
|
22
22
|
*/
|
|
23
|
-
function computeToolCallState(result) {
|
|
24
|
-
if (
|
|
25
|
-
|
|
23
|
+
function computeToolCallState(result, impliedCompleted) {
|
|
24
|
+
if (result) return result.status === "error" ? "error" : "completed";
|
|
25
|
+
if (impliedCompleted) return "completed";
|
|
26
|
+
return "pending";
|
|
26
27
|
}
|
|
27
28
|
function getToolCallsWithResults(messages) {
|
|
28
29
|
const results = [];
|
|
29
30
|
const toolResultsById = /* @__PURE__ */ new Map();
|
|
30
31
|
for (const msg of messages) if (msg.type === "tool") toolResultsById.set(msg.tool_call_id, msg);
|
|
31
|
-
for (
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
aiMessage
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
for (let msgIdx = 0; msgIdx < messages.length; msgIdx += 1) {
|
|
33
|
+
const msg = messages[msgIdx];
|
|
34
|
+
if (msg.type === "ai" && msg.tool_calls && msg.tool_calls.length > 0) {
|
|
35
|
+
const aiMessage = msg;
|
|
36
|
+
let impliedCompleted = false;
|
|
37
|
+
for (let j = msgIdx + 1; j < messages.length; j += 1) if (messages[j].type === "ai") {
|
|
38
|
+
impliedCompleted = true;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
for (let i = 0; i < aiMessage.tool_calls.length; i += 1) {
|
|
42
|
+
const call = aiMessage.tool_calls[i];
|
|
43
|
+
const callId = call.id;
|
|
44
|
+
const result = callId ? toolResultsById.get(callId) : void 0;
|
|
45
|
+
results.push({
|
|
46
|
+
id: callId ?? `${aiMessage.id ?? "unknown"}-${i}`,
|
|
47
|
+
call,
|
|
48
|
+
result,
|
|
49
|
+
aiMessage,
|
|
50
|
+
index: i,
|
|
51
|
+
state: computeToolCallState(result, impliedCompleted)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
45
54
|
}
|
|
46
55
|
}
|
|
47
56
|
return results;
|
package/dist/utils/tools.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.cjs","names":[],"sources":["../../src/utils/tools.ts"],"sourcesContent":["import type {\n Message,\n AIMessage,\n ToolMessage,\n ToolCallState,\n ToolCallWithResult,\n DefaultToolCall,\n} from \"../types.messages.js\";\n\n/**\n * Extracts tool calls with their results from a list of messages.\n *\n * @template ToolCall The type of tool calls.\n * @param messages The list of messages to extract tool calls from.\n * @returns An array of ToolCallWithResult objects.\n *\n * @example\n * ```ts\n * const toolCalls = getToolCallsWithResults(messages);\n * for (const { call, result } of toolCalls) {\n * if (call.name === \"get_weather\") {\n * console.log(`Weather for ${call.args.location}:`, result?.content);\n * }\n * }\n * ```\n */\n/**\n * Computes the lifecycle state of a tool call based on its result.\n */\nfunction computeToolCallState(result: ToolMessage | undefined): ToolCallState {\n if (
|
|
1
|
+
{"version":3,"file":"tools.cjs","names":[],"sources":["../../src/utils/tools.ts"],"sourcesContent":["import type {\n Message,\n AIMessage,\n ToolMessage,\n ToolCallState,\n ToolCallWithResult,\n DefaultToolCall,\n} from \"../types.messages.js\";\n\n/**\n * Extracts tool calls with their results from a list of messages.\n *\n * @template ToolCall The type of tool calls.\n * @param messages The list of messages to extract tool calls from.\n * @returns An array of ToolCallWithResult objects.\n *\n * @example\n * ```ts\n * const toolCalls = getToolCallsWithResults(messages);\n * for (const { call, result } of toolCalls) {\n * if (call.name === \"get_weather\") {\n * console.log(`Weather for ${call.args.location}:`, result?.content);\n * }\n * }\n * ```\n */\n/**\n * Computes the lifecycle state of a tool call based on its result.\n */\nfunction computeToolCallState(\n result: ToolMessage | undefined,\n impliedCompleted: boolean\n): ToolCallState {\n if (result) return result.status === \"error\" ? \"error\" : \"completed\";\n if (impliedCompleted) return \"completed\";\n return \"pending\";\n}\n\nexport function getToolCallsWithResults<ToolCall = DefaultToolCall>(\n messages: Message<ToolCall>[]\n): ToolCallWithResult<ToolCall>[] {\n const results: ToolCallWithResult<ToolCall>[] = [];\n\n // Create a map of tool_call_id to ToolMessage for quick lookup\n const toolResultsById = new Map<string, ToolMessage>();\n for (const msg of messages) {\n if (msg.type === \"tool\") {\n toolResultsById.set(msg.tool_call_id, msg);\n }\n }\n\n // Find all AI messages with tool calls and pair them with results.\n // For each, independently check if there's a subsequent AI message,\n // which implies the tools completed (handles tools returning Commands\n // where ToolMessages are embedded in the state update rather than streamed).\n for (let msgIdx = 0; msgIdx < messages.length; msgIdx += 1) {\n const msg = messages[msgIdx];\n if (msg.type === \"ai\" && msg.tool_calls && msg.tool_calls.length > 0) {\n const aiMessage = msg as AIMessage<ToolCall>;\n\n let impliedCompleted = false;\n for (let j = msgIdx + 1; j < messages.length; j += 1) {\n if (messages[j].type === \"ai\") {\n impliedCompleted = true;\n break;\n }\n }\n\n for (let i = 0; i < aiMessage.tool_calls!.length; i += 1) {\n const call = aiMessage.tool_calls![i] as ToolCall & { id?: string };\n const callId = call.id as string | undefined;\n const result = callId ? toolResultsById.get(callId) : undefined;\n\n results.push({\n id: callId ?? `${aiMessage.id ?? \"unknown\"}-${i}`,\n call,\n result,\n aiMessage,\n index: i,\n state: computeToolCallState(result, impliedCompleted),\n });\n }\n }\n }\n\n return results;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAS,qBACP,QACA,kBACe;AACf,KAAI,OAAQ,QAAO,OAAO,WAAW,UAAU,UAAU;AACzD,KAAI,iBAAkB,QAAO;AAC7B,QAAO;;AAGT,SAAgB,wBACd,UACgC;CAChC,MAAM,UAA0C,EAAE;CAGlD,MAAM,kCAAkB,IAAI,KAA0B;AACtD,MAAK,MAAM,OAAO,SAChB,KAAI,IAAI,SAAS,OACf,iBAAgB,IAAI,IAAI,cAAc,IAAI;AAQ9C,MAAK,IAAI,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU,GAAG;EAC1D,MAAM,MAAM,SAAS;AACrB,MAAI,IAAI,SAAS,QAAQ,IAAI,cAAc,IAAI,WAAW,SAAS,GAAG;GACpE,MAAM,YAAY;GAElB,IAAI,mBAAmB;AACvB,QAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,KAAK,EACjD,KAAI,SAAS,GAAG,SAAS,MAAM;AAC7B,uBAAmB;AACnB;;AAIJ,QAAK,IAAI,IAAI,GAAG,IAAI,UAAU,WAAY,QAAQ,KAAK,GAAG;IACxD,MAAM,OAAO,UAAU,WAAY;IACnC,MAAM,SAAS,KAAK;IACpB,MAAM,SAAS,SAAS,gBAAgB,IAAI,OAAO,GAAG;AAEtD,YAAQ,KAAK;KACX,IAAI,UAAU,GAAG,UAAU,MAAM,UAAU,GAAG;KAC9C;KACA;KACA;KACA,OAAO;KACP,OAAO,qBAAqB,QAAQ,iBAAiB;KACtD,CAAC;;;;AAKR,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/tools.d.ts
|
|
4
|
+
declare function getToolCallsWithResults<ToolCall = DefaultToolCall>(messages: Message<ToolCall>[]): ToolCallWithResult<ToolCall>[];
|
|
5
|
+
//#endregion
|
|
6
|
+
export { getToolCallsWithResults };
|
|
7
|
+
//# sourceMappingURL=tools.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.cts","names":[],"sources":["../../src/utils/tools.ts"],"mappings":";;;iBAsCgB,uBAAA,YAAmC,eAAA,CAAA,CACjD,QAAA,EAAU,OAAA,CAAQ,QAAA,MACjB,kBAAA,CAAmB,QAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/tools.d.ts
|
|
4
|
+
declare function getToolCallsWithResults<ToolCall = DefaultToolCall>(messages: Message<ToolCall>[]): ToolCallWithResult<ToolCall>[];
|
|
5
|
+
//#endregion
|
|
6
|
+
export { getToolCallsWithResults };
|
|
7
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","names":[],"sources":["../../src/utils/tools.ts"],"mappings":";;;iBAsCgB,uBAAA,YAAmC,eAAA,CAAA,CACjD,QAAA,EAAU,OAAA,CAAQ,QAAA,MACjB,kBAAA,CAAmB,QAAA"}
|
package/dist/utils/tools.js
CHANGED
|
@@ -19,28 +19,37 @@
|
|
|
19
19
|
/**
|
|
20
20
|
* Computes the lifecycle state of a tool call based on its result.
|
|
21
21
|
*/
|
|
22
|
-
function computeToolCallState(result) {
|
|
23
|
-
if (
|
|
24
|
-
|
|
22
|
+
function computeToolCallState(result, impliedCompleted) {
|
|
23
|
+
if (result) return result.status === "error" ? "error" : "completed";
|
|
24
|
+
if (impliedCompleted) return "completed";
|
|
25
|
+
return "pending";
|
|
25
26
|
}
|
|
26
27
|
function getToolCallsWithResults(messages) {
|
|
27
28
|
const results = [];
|
|
28
29
|
const toolResultsById = /* @__PURE__ */ new Map();
|
|
29
30
|
for (const msg of messages) if (msg.type === "tool") toolResultsById.set(msg.tool_call_id, msg);
|
|
30
|
-
for (
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
aiMessage
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
for (let msgIdx = 0; msgIdx < messages.length; msgIdx += 1) {
|
|
32
|
+
const msg = messages[msgIdx];
|
|
33
|
+
if (msg.type === "ai" && msg.tool_calls && msg.tool_calls.length > 0) {
|
|
34
|
+
const aiMessage = msg;
|
|
35
|
+
let impliedCompleted = false;
|
|
36
|
+
for (let j = msgIdx + 1; j < messages.length; j += 1) if (messages[j].type === "ai") {
|
|
37
|
+
impliedCompleted = true;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
for (let i = 0; i < aiMessage.tool_calls.length; i += 1) {
|
|
41
|
+
const call = aiMessage.tool_calls[i];
|
|
42
|
+
const callId = call.id;
|
|
43
|
+
const result = callId ? toolResultsById.get(callId) : void 0;
|
|
44
|
+
results.push({
|
|
45
|
+
id: callId ?? `${aiMessage.id ?? "unknown"}-${i}`,
|
|
46
|
+
call,
|
|
47
|
+
result,
|
|
48
|
+
aiMessage,
|
|
49
|
+
index: i,
|
|
50
|
+
state: computeToolCallState(result, impliedCompleted)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
44
53
|
}
|
|
45
54
|
}
|
|
46
55
|
return results;
|
package/dist/utils/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","names":[],"sources":["../../src/utils/tools.ts"],"sourcesContent":["import type {\n Message,\n AIMessage,\n ToolMessage,\n ToolCallState,\n ToolCallWithResult,\n DefaultToolCall,\n} from \"../types.messages.js\";\n\n/**\n * Extracts tool calls with their results from a list of messages.\n *\n * @template ToolCall The type of tool calls.\n * @param messages The list of messages to extract tool calls from.\n * @returns An array of ToolCallWithResult objects.\n *\n * @example\n * ```ts\n * const toolCalls = getToolCallsWithResults(messages);\n * for (const { call, result } of toolCalls) {\n * if (call.name === \"get_weather\") {\n * console.log(`Weather for ${call.args.location}:`, result?.content);\n * }\n * }\n * ```\n */\n/**\n * Computes the lifecycle state of a tool call based on its result.\n */\nfunction computeToolCallState(result: ToolMessage | undefined): ToolCallState {\n if (
|
|
1
|
+
{"version":3,"file":"tools.js","names":[],"sources":["../../src/utils/tools.ts"],"sourcesContent":["import type {\n Message,\n AIMessage,\n ToolMessage,\n ToolCallState,\n ToolCallWithResult,\n DefaultToolCall,\n} from \"../types.messages.js\";\n\n/**\n * Extracts tool calls with their results from a list of messages.\n *\n * @template ToolCall The type of tool calls.\n * @param messages The list of messages to extract tool calls from.\n * @returns An array of ToolCallWithResult objects.\n *\n * @example\n * ```ts\n * const toolCalls = getToolCallsWithResults(messages);\n * for (const { call, result } of toolCalls) {\n * if (call.name === \"get_weather\") {\n * console.log(`Weather for ${call.args.location}:`, result?.content);\n * }\n * }\n * ```\n */\n/**\n * Computes the lifecycle state of a tool call based on its result.\n */\nfunction computeToolCallState(\n result: ToolMessage | undefined,\n impliedCompleted: boolean\n): ToolCallState {\n if (result) return result.status === \"error\" ? \"error\" : \"completed\";\n if (impliedCompleted) return \"completed\";\n return \"pending\";\n}\n\nexport function getToolCallsWithResults<ToolCall = DefaultToolCall>(\n messages: Message<ToolCall>[]\n): ToolCallWithResult<ToolCall>[] {\n const results: ToolCallWithResult<ToolCall>[] = [];\n\n // Create a map of tool_call_id to ToolMessage for quick lookup\n const toolResultsById = new Map<string, ToolMessage>();\n for (const msg of messages) {\n if (msg.type === \"tool\") {\n toolResultsById.set(msg.tool_call_id, msg);\n }\n }\n\n // Find all AI messages with tool calls and pair them with results.\n // For each, independently check if there's a subsequent AI message,\n // which implies the tools completed (handles tools returning Commands\n // where ToolMessages are embedded in the state update rather than streamed).\n for (let msgIdx = 0; msgIdx < messages.length; msgIdx += 1) {\n const msg = messages[msgIdx];\n if (msg.type === \"ai\" && msg.tool_calls && msg.tool_calls.length > 0) {\n const aiMessage = msg as AIMessage<ToolCall>;\n\n let impliedCompleted = false;\n for (let j = msgIdx + 1; j < messages.length; j += 1) {\n if (messages[j].type === \"ai\") {\n impliedCompleted = true;\n break;\n }\n }\n\n for (let i = 0; i < aiMessage.tool_calls!.length; i += 1) {\n const call = aiMessage.tool_calls![i] as ToolCall & { id?: string };\n const callId = call.id as string | undefined;\n const result = callId ? toolResultsById.get(callId) : undefined;\n\n results.push({\n id: callId ?? `${aiMessage.id ?? \"unknown\"}-${i}`,\n call,\n result,\n aiMessage,\n index: i,\n state: computeToolCallState(result, impliedCompleted),\n });\n }\n }\n }\n\n return results;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA6BA,SAAS,qBACP,QACA,kBACe;AACf,KAAI,OAAQ,QAAO,OAAO,WAAW,UAAU,UAAU;AACzD,KAAI,iBAAkB,QAAO;AAC7B,QAAO;;AAGT,SAAgB,wBACd,UACgC;CAChC,MAAM,UAA0C,EAAE;CAGlD,MAAM,kCAAkB,IAAI,KAA0B;AACtD,MAAK,MAAM,OAAO,SAChB,KAAI,IAAI,SAAS,OACf,iBAAgB,IAAI,IAAI,cAAc,IAAI;AAQ9C,MAAK,IAAI,SAAS,GAAG,SAAS,SAAS,QAAQ,UAAU,GAAG;EAC1D,MAAM,MAAM,SAAS;AACrB,MAAI,IAAI,SAAS,QAAQ,IAAI,cAAc,IAAI,WAAW,SAAS,GAAG;GACpE,MAAM,YAAY;GAElB,IAAI,mBAAmB;AACvB,QAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,KAAK,EACjD,KAAI,SAAS,GAAG,SAAS,MAAM;AAC7B,uBAAmB;AACnB;;AAIJ,QAAK,IAAI,IAAI,GAAG,IAAI,UAAU,WAAY,QAAQ,KAAK,GAAG;IACxD,MAAM,OAAO,UAAU,WAAY;IACnC,MAAM,SAAS,KAAK;IACpB,MAAM,SAAS,SAAS,gBAAgB,IAAI,OAAO,GAAG;AAEtD,YAAQ,KAAK;KACX,IAAI,UAAU,GAAG,UAAU,MAAM,UAAU,GAAG;KAC9C;KACA;KACA;KACA,OAAO;KACP,OAAO,qBAAqB,QAAQ,iBAAiB;KACtD,CAAC;;;;AAKR,QAAO"}
|