@langchain/core 1.1.39 → 1.2.0-dev-1775763803878
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/callbacks/base.d.cts.map +1 -1
- package/dist/callbacks/base.d.ts.map +1 -1
- package/dist/language_models/base.cjs +1 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.js +1 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs +60 -0
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.cts +55 -0
- package/dist/language_models/chat_models.d.cts.map +1 -1
- package/dist/language_models/chat_models.d.ts +55 -0
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js +60 -0
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/compat.cjs +235 -0
- package/dist/language_models/compat.cjs.map +1 -0
- package/dist/language_models/compat.d.cts +34 -0
- package/dist/language_models/compat.d.cts.map +1 -0
- package/dist/language_models/compat.d.ts +34 -0
- package/dist/language_models/compat.d.ts.map +1 -0
- package/dist/language_models/compat.js +226 -0
- package/dist/language_models/compat.js.map +1 -0
- package/dist/language_models/event.cjs +12 -0
- package/dist/language_models/event.cjs.map +1 -0
- package/dist/language_models/event.d.cts +193 -0
- package/dist/language_models/event.d.cts.map +1 -0
- package/dist/language_models/event.d.ts +193 -0
- package/dist/language_models/event.d.ts.map +1 -0
- package/dist/language_models/event.js +7 -0
- package/dist/language_models/event.js.map +1 -0
- package/dist/language_models/stream.cjs +376 -0
- package/dist/language_models/stream.cjs.map +1 -0
- package/dist/language_models/stream.d.cts +129 -0
- package/dist/language_models/stream.d.cts.map +1 -0
- package/dist/language_models/stream.d.ts +129 -0
- package/dist/language_models/stream.d.ts.map +1 -0
- package/dist/language_models/stream.js +365 -0
- package/dist/language_models/stream.js.map +1 -0
- package/dist/load/import_map.cjs +6 -0
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +8 -2
- package/dist/load/import_map.js.map +1 -1
- package/dist/messages/content/index.cjs.map +1 -1
- package/dist/messages/content/index.d.cts +5 -1
- package/dist/messages/content/index.d.cts.map +1 -1
- package/dist/messages/content/index.d.ts +5 -1
- package/dist/messages/content/index.d.ts.map +1 -1
- package/dist/messages/content/index.js.map +1 -1
- package/dist/messages/index.d.cts +2 -2
- package/dist/messages/index.d.ts +2 -2
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts +1 -1
- package/dist/types/type-utils.d.cts +2 -1
- package/dist/types/type-utils.d.cts.map +1 -1
- package/dist/types/type-utils.d.ts +2 -1
- package/dist/types/type-utils.d.ts.map +1 -1
- package/package.json +34 -1
- package/agents.cjs +0 -1
- package/agents.d.cts +0 -1
- package/agents.d.ts +0 -1
- package/agents.js +0 -1
- package/caches.cjs +0 -1
- package/caches.d.cts +0 -1
- package/caches.d.ts +0 -1
- package/caches.js +0 -1
- package/callbacks/base.cjs +0 -1
- package/callbacks/base.d.cts +0 -1
- package/callbacks/base.d.ts +0 -1
- package/callbacks/base.js +0 -1
- package/callbacks/dispatch/web.cjs +0 -1
- package/callbacks/dispatch/web.d.cts +0 -1
- package/callbacks/dispatch/web.d.ts +0 -1
- package/callbacks/dispatch/web.js +0 -1
- package/callbacks/dispatch.cjs +0 -1
- package/callbacks/dispatch.d.cts +0 -1
- package/callbacks/dispatch.d.ts +0 -1
- package/callbacks/dispatch.js +0 -1
- package/callbacks/manager.cjs +0 -1
- package/callbacks/manager.d.cts +0 -1
- package/callbacks/manager.d.ts +0 -1
- package/callbacks/manager.js +0 -1
- package/callbacks/promises.cjs +0 -1
- package/callbacks/promises.d.cts +0 -1
- package/callbacks/promises.d.ts +0 -1
- package/callbacks/promises.js +0 -1
- package/chat_history.cjs +0 -1
- package/chat_history.d.cts +0 -1
- package/chat_history.d.ts +0 -1
- package/chat_history.js +0 -1
- package/context.cjs +0 -1
- package/context.d.cts +0 -1
- package/context.d.ts +0 -1
- package/context.js +0 -1
- package/document_loaders/base.cjs +0 -1
- package/document_loaders/base.d.cts +0 -1
- package/document_loaders/base.d.ts +0 -1
- package/document_loaders/base.js +0 -1
- package/document_loaders/langsmith.cjs +0 -1
- package/document_loaders/langsmith.d.cts +0 -1
- package/document_loaders/langsmith.d.ts +0 -1
- package/document_loaders/langsmith.js +0 -1
- package/documents.cjs +0 -1
- package/documents.d.cts +0 -1
- package/documents.d.ts +0 -1
- package/documents.js +0 -1
- package/embeddings.cjs +0 -1
- package/embeddings.d.cts +0 -1
- package/embeddings.d.ts +0 -1
- package/embeddings.js +0 -1
- package/errors.cjs +0 -1
- package/errors.d.cts +0 -1
- package/errors.d.ts +0 -1
- package/errors.js +0 -1
- package/example_selectors.cjs +0 -1
- package/example_selectors.d.cts +0 -1
- package/example_selectors.d.ts +0 -1
- package/example_selectors.js +0 -1
- package/indexing.cjs +0 -1
- package/indexing.d.cts +0 -1
- package/indexing.d.ts +0 -1
- package/indexing.js +0 -1
- package/language_models/base.cjs +0 -1
- package/language_models/base.d.cts +0 -1
- package/language_models/base.d.ts +0 -1
- package/language_models/base.js +0 -1
- package/language_models/chat_models.cjs +0 -1
- package/language_models/chat_models.d.cts +0 -1
- package/language_models/chat_models.d.ts +0 -1
- package/language_models/chat_models.js +0 -1
- package/language_models/llms.cjs +0 -1
- package/language_models/llms.d.cts +0 -1
- package/language_models/llms.d.ts +0 -1
- package/language_models/llms.js +0 -1
- package/language_models/profile.cjs +0 -1
- package/language_models/profile.d.cts +0 -1
- package/language_models/profile.d.ts +0 -1
- package/language_models/profile.js +0 -1
- package/language_models/structured_output.cjs +0 -1
- package/language_models/structured_output.d.cts +0 -1
- package/language_models/structured_output.d.ts +0 -1
- package/language_models/structured_output.js +0 -1
- package/load/serializable.cjs +0 -1
- package/load/serializable.d.cts +0 -1
- package/load/serializable.d.ts +0 -1
- package/load/serializable.js +0 -1
- package/load.cjs +0 -1
- package/load.d.cts +0 -1
- package/load.d.ts +0 -1
- package/load.js +0 -1
- package/memory.cjs +0 -1
- package/memory.d.cts +0 -1
- package/memory.d.ts +0 -1
- package/memory.js +0 -1
- package/messages/tool.cjs +0 -1
- package/messages/tool.d.cts +0 -1
- package/messages/tool.d.ts +0 -1
- package/messages/tool.js +0 -1
- package/messages.cjs +0 -1
- package/messages.d.cts +0 -1
- package/messages.d.ts +0 -1
- package/messages.js +0 -1
- package/output_parsers/openai_functions.cjs +0 -1
- package/output_parsers/openai_functions.d.cts +0 -1
- package/output_parsers/openai_functions.d.ts +0 -1
- package/output_parsers/openai_functions.js +0 -1
- package/output_parsers/openai_tools.cjs +0 -1
- package/output_parsers/openai_tools.d.cts +0 -1
- package/output_parsers/openai_tools.d.ts +0 -1
- package/output_parsers/openai_tools.js +0 -1
- package/output_parsers.cjs +0 -1
- package/output_parsers.d.cts +0 -1
- package/output_parsers.d.ts +0 -1
- package/output_parsers.js +0 -1
- package/outputs.cjs +0 -1
- package/outputs.d.cts +0 -1
- package/outputs.d.ts +0 -1
- package/outputs.js +0 -1
- package/prompt_values.cjs +0 -1
- package/prompt_values.d.cts +0 -1
- package/prompt_values.d.ts +0 -1
- package/prompt_values.js +0 -1
- package/prompts.cjs +0 -1
- package/prompts.d.cts +0 -1
- package/prompts.d.ts +0 -1
- package/prompts.js +0 -1
- package/retrievers/document_compressors.cjs +0 -1
- package/retrievers/document_compressors.d.cts +0 -1
- package/retrievers/document_compressors.d.ts +0 -1
- package/retrievers/document_compressors.js +0 -1
- package/retrievers.cjs +0 -1
- package/retrievers.d.cts +0 -1
- package/retrievers.d.ts +0 -1
- package/retrievers.js +0 -1
- package/runnables/graph.cjs +0 -1
- package/runnables/graph.d.cts +0 -1
- package/runnables/graph.d.ts +0 -1
- package/runnables/graph.js +0 -1
- package/runnables.cjs +0 -1
- package/runnables.d.cts +0 -1
- package/runnables.d.ts +0 -1
- package/runnables.js +0 -1
- package/singletons.cjs +0 -1
- package/singletons.d.cts +0 -1
- package/singletons.d.ts +0 -1
- package/singletons.js +0 -1
- package/stores.cjs +0 -1
- package/stores.d.cts +0 -1
- package/stores.d.ts +0 -1
- package/stores.js +0 -1
- package/structured_query.cjs +0 -1
- package/structured_query.d.cts +0 -1
- package/structured_query.d.ts +0 -1
- package/structured_query.js +0 -1
- package/tools.cjs +0 -1
- package/tools.d.cts +0 -1
- package/tools.d.ts +0 -1
- package/tools.js +0 -1
- package/tracers/base.cjs +0 -1
- package/tracers/base.d.cts +0 -1
- package/tracers/base.d.ts +0 -1
- package/tracers/base.js +0 -1
- package/tracers/console.cjs +0 -1
- package/tracers/console.d.cts +0 -1
- package/tracers/console.d.ts +0 -1
- package/tracers/console.js +0 -1
- package/tracers/log_stream.cjs +0 -1
- package/tracers/log_stream.d.cts +0 -1
- package/tracers/log_stream.d.ts +0 -1
- package/tracers/log_stream.js +0 -1
- package/tracers/run_collector.cjs +0 -1
- package/tracers/run_collector.d.cts +0 -1
- package/tracers/run_collector.d.ts +0 -1
- package/tracers/run_collector.js +0 -1
- package/tracers/tracer_langchain.cjs +0 -1
- package/tracers/tracer_langchain.d.cts +0 -1
- package/tracers/tracer_langchain.d.ts +0 -1
- package/tracers/tracer_langchain.js +0 -1
- package/types/stream.cjs +0 -1
- package/types/stream.d.cts +0 -1
- package/types/stream.d.ts +0 -1
- package/types/stream.js +0 -1
- package/utils/async_caller.cjs +0 -1
- package/utils/async_caller.d.cts +0 -1
- package/utils/async_caller.d.ts +0 -1
- package/utils/async_caller.js +0 -1
- package/utils/chunk_array.cjs +0 -1
- package/utils/chunk_array.d.cts +0 -1
- package/utils/chunk_array.d.ts +0 -1
- package/utils/chunk_array.js +0 -1
- package/utils/context.cjs +0 -1
- package/utils/context.d.cts +0 -1
- package/utils/context.d.ts +0 -1
- package/utils/context.js +0 -1
- package/utils/env.cjs +0 -1
- package/utils/env.d.cts +0 -1
- package/utils/env.d.ts +0 -1
- package/utils/env.js +0 -1
- package/utils/event_source_parse.cjs +0 -1
- package/utils/event_source_parse.d.cts +0 -1
- package/utils/event_source_parse.d.ts +0 -1
- package/utils/event_source_parse.js +0 -1
- package/utils/format.cjs +0 -1
- package/utils/format.d.cts +0 -1
- package/utils/format.d.ts +0 -1
- package/utils/format.js +0 -1
- package/utils/function_calling.cjs +0 -1
- package/utils/function_calling.d.cts +0 -1
- package/utils/function_calling.d.ts +0 -1
- package/utils/function_calling.js +0 -1
- package/utils/hash.cjs +0 -1
- package/utils/hash.d.cts +0 -1
- package/utils/hash.d.ts +0 -1
- package/utils/hash.js +0 -1
- package/utils/json_patch.cjs +0 -1
- package/utils/json_patch.d.cts +0 -1
- package/utils/json_patch.d.ts +0 -1
- package/utils/json_patch.js +0 -1
- package/utils/json_schema.cjs +0 -1
- package/utils/json_schema.d.cts +0 -1
- package/utils/json_schema.d.ts +0 -1
- package/utils/json_schema.js +0 -1
- package/utils/math.cjs +0 -1
- package/utils/math.d.cts +0 -1
- package/utils/math.d.ts +0 -1
- package/utils/math.js +0 -1
- package/utils/ssrf.cjs +0 -1
- package/utils/ssrf.d.cts +0 -1
- package/utils/ssrf.d.ts +0 -1
- package/utils/ssrf.js +0 -1
- package/utils/standard_schema.cjs +0 -1
- package/utils/standard_schema.d.cts +0 -1
- package/utils/standard_schema.d.ts +0 -1
- package/utils/standard_schema.js +0 -1
- package/utils/stream.cjs +0 -1
- package/utils/stream.d.cts +0 -1
- package/utils/stream.d.ts +0 -1
- package/utils/stream.js +0 -1
- package/utils/testing.cjs +0 -1
- package/utils/testing.d.cts +0 -1
- package/utils/testing.d.ts +0 -1
- package/utils/testing.js +0 -1
- package/utils/tiktoken.cjs +0 -1
- package/utils/tiktoken.d.cts +0 -1
- package/utils/tiktoken.d.ts +0 -1
- package/utils/tiktoken.js +0 -1
- package/utils/types.cjs +0 -1
- package/utils/types.d.cts +0 -1
- package/utils/types.d.ts +0 -1
- package/utils/types.js +0 -1
- package/vectorstores.cjs +0 -1
- package/vectorstores.d.cts +0 -1
- package/vectorstores.d.ts +0 -1
- package/vectorstores.js +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { ContentBlock } from "../messages/content/index.js";
|
|
2
|
+
import { UsageMetadata } from "../messages/metadata.js";
|
|
3
|
+
import { AIMessage } from "../messages/ai.js";
|
|
4
|
+
import { ChatModelStreamEvent } from "./event.js";
|
|
5
|
+
|
|
6
|
+
//#region src/language_models/stream.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* A buffer that caches emitted events for replay.
|
|
9
|
+
*
|
|
10
|
+
* Multiple consumers can independently iterate the same buffer —
|
|
11
|
+
* each gets its own cursor. Events are never consumed or removed.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
declare class ReplayBuffer {
|
|
16
|
+
private events;
|
|
17
|
+
private finished;
|
|
18
|
+
private waiters;
|
|
19
|
+
private error;
|
|
20
|
+
push(event: ChatModelStreamEvent): void;
|
|
21
|
+
finish(): void;
|
|
22
|
+
setError(err: Error): void;
|
|
23
|
+
/**
|
|
24
|
+
* Create an async iterator that replays cached events from the
|
|
25
|
+
* beginning, then follows live events as they arrive.
|
|
26
|
+
*/
|
|
27
|
+
iterate(): AsyncGenerator<ChatModelStreamEvent>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Typed stream for text content.
|
|
31
|
+
*
|
|
32
|
+
* - **Iterate**: yields incremental text deltas (new tokens only).
|
|
33
|
+
* - **Await**: resolves to the complete concatenated text.
|
|
34
|
+
* - **`.full`**: yields the running accumulated text after each delta.
|
|
35
|
+
*/
|
|
36
|
+
declare class TextContentStream implements AsyncIterable<string>, PromiseLike<string> {
|
|
37
|
+
/** @internal */
|
|
38
|
+
private _buffer;
|
|
39
|
+
/** @internal */
|
|
40
|
+
constructor(buffer: ReplayBuffer);
|
|
41
|
+
/**
|
|
42
|
+
* Yields the accumulated text so far after each delta.
|
|
43
|
+
*/
|
|
44
|
+
get full(): AsyncIterable<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Yields incremental text deltas (new tokens only).
|
|
47
|
+
* Computed by diffing successive accumulated states.
|
|
48
|
+
*/
|
|
49
|
+
[Symbol.asyncIterator](): AsyncIterator<string>;
|
|
50
|
+
then<TResult1 = string, TResult2 = never>(onfulfilled?: ((value: string) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Typed stream for tool calls.
|
|
54
|
+
*
|
|
55
|
+
* - **Iterate**: yields individual `ToolCall` objects as each completes.
|
|
56
|
+
* - **Await**: resolves to the full array.
|
|
57
|
+
* - **`.full`**: yields the accumulated array after each new tool call.
|
|
58
|
+
*/
|
|
59
|
+
declare class ToolCallsStream implements AsyncIterable<ContentBlock.Tools.ToolCall>, PromiseLike<Array<ContentBlock.Tools.ToolCall>> {
|
|
60
|
+
/** @internal */
|
|
61
|
+
private _buffer;
|
|
62
|
+
/** @internal */
|
|
63
|
+
constructor(buffer: ReplayBuffer);
|
|
64
|
+
get full(): AsyncIterable<Array<ContentBlock.Tools.ToolCall>>;
|
|
65
|
+
[Symbol.asyncIterator](): AsyncIterator<ContentBlock.Tools.ToolCall>;
|
|
66
|
+
then<TResult1 = Array<ContentBlock.Tools.ToolCall>, TResult2 = never>(onfulfilled?: ((value: Array<ContentBlock.Tools.ToolCall>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Typed stream for reasoning content (chain-of-thought).
|
|
70
|
+
* Same interface as {@link TextContentStream} but for reasoning blocks.
|
|
71
|
+
*/
|
|
72
|
+
declare class ReasoningContentStream implements AsyncIterable<string>, PromiseLike<string> {
|
|
73
|
+
/** @internal */
|
|
74
|
+
private _buffer;
|
|
75
|
+
/** @internal */
|
|
76
|
+
constructor(buffer: ReplayBuffer);
|
|
77
|
+
get full(): AsyncIterable<string>;
|
|
78
|
+
[Symbol.asyncIterator](): AsyncIterator<string>;
|
|
79
|
+
then<TResult1 = string, TResult2 = never>(onfulfilled?: ((value: string) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Typed stream for usage metadata.
|
|
83
|
+
*
|
|
84
|
+
* - **Iterate**: yields usage snapshots as they arrive.
|
|
85
|
+
* - **Await**: resolves to the final usage snapshot.
|
|
86
|
+
*/
|
|
87
|
+
declare class UsageMetadataStream implements AsyncIterable<UsageMetadata>, PromiseLike<UsageMetadata> {
|
|
88
|
+
/** @internal */
|
|
89
|
+
private _buffer;
|
|
90
|
+
/** @internal */
|
|
91
|
+
constructor(buffer: ReplayBuffer);
|
|
92
|
+
[Symbol.asyncIterator](): AsyncIterator<UsageMetadata>;
|
|
93
|
+
then<TResult1 = UsageMetadata, TResult2 = never>(onfulfilled?: ((value: UsageMetadata) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The main stream object returned by chat model streaming.
|
|
97
|
+
*
|
|
98
|
+
* Implements `AsyncIterable<ChatModelStreamEvent>` for raw event access
|
|
99
|
+
* and `PromiseLike<AIMessage>` for simple `await` usage.
|
|
100
|
+
*
|
|
101
|
+
* All sub-streams are replay-safe: multiple consumers reading from the
|
|
102
|
+
* same stream work correctly because each gets its own cursor over the
|
|
103
|
+
* shared buffer.
|
|
104
|
+
*/
|
|
105
|
+
declare class ChatModelStream implements AsyncIterable<ChatModelStreamEvent>, PromiseLike<AIMessage> {
|
|
106
|
+
/** @internal */
|
|
107
|
+
private _buffer;
|
|
108
|
+
/** @internal */
|
|
109
|
+
constructor(source: AsyncIterable<ChatModelStreamEvent>);
|
|
110
|
+
private _consume;
|
|
111
|
+
/** Iterate over raw {@link ChatModelStreamEvent}s. */
|
|
112
|
+
[Symbol.asyncIterator](): AsyncIterator<ChatModelStreamEvent>;
|
|
113
|
+
/** Text content deltas / full text. */
|
|
114
|
+
get text(): TextContentStream;
|
|
115
|
+
/** Completed tool calls. */
|
|
116
|
+
get toolCalls(): ToolCallsStream;
|
|
117
|
+
/** Reasoning content (chain-of-thought). */
|
|
118
|
+
get reasoning(): ReasoningContentStream;
|
|
119
|
+
/** Usage metadata snapshots. */
|
|
120
|
+
get usage(): UsageMetadataStream;
|
|
121
|
+
/** The fully assembled `AIMessage`, available once the stream finishes. */
|
|
122
|
+
get output(): PromiseLike<AIMessage>;
|
|
123
|
+
/** Allows `await stream` to resolve to the fully assembled `AIMessage`. */
|
|
124
|
+
then<TResult1 = AIMessage, TResult2 = never>(onfulfilled?: ((value: AIMessage) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
125
|
+
private _assembleMessage;
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { ChatModelStream, ReasoningContentStream, TextContentStream, ToolCallsStream, UsageMetadataStream };
|
|
129
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","names":[],"sources":["../../src/language_models/stream.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { AIMessage } from "../messages/ai.js";
|
|
3
|
+
//#region src/language_models/stream.ts
|
|
4
|
+
/**
|
|
5
|
+
* Typed stream classes for chat model streaming.
|
|
6
|
+
*
|
|
7
|
+
* Provides {@link ChatModelStream} and typed sub-stream accessors that
|
|
8
|
+
* implement both `AsyncIterable` (for incremental consumption) and
|
|
9
|
+
* `PromiseLike` (for simple `await`).
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
var stream_exports = /* @__PURE__ */ __exportAll({
|
|
14
|
+
ChatModelStream: () => ChatModelStream,
|
|
15
|
+
ReasoningContentStream: () => ReasoningContentStream,
|
|
16
|
+
TextContentStream: () => TextContentStream,
|
|
17
|
+
ToolCallsStream: () => ToolCallsStream,
|
|
18
|
+
UsageMetadataStream: () => UsageMetadataStream
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* A buffer that caches emitted events for replay.
|
|
22
|
+
*
|
|
23
|
+
* Multiple consumers can independently iterate the same buffer —
|
|
24
|
+
* each gets its own cursor. Events are never consumed or removed.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
var ReplayBuffer = class {
|
|
29
|
+
events = [];
|
|
30
|
+
finished = false;
|
|
31
|
+
waiters = [];
|
|
32
|
+
error = null;
|
|
33
|
+
push(event) {
|
|
34
|
+
this.events.push(event);
|
|
35
|
+
const toWake = this.waiters.splice(0);
|
|
36
|
+
for (const waiter of toWake) waiter();
|
|
37
|
+
}
|
|
38
|
+
finish() {
|
|
39
|
+
this.finished = true;
|
|
40
|
+
const toWake = this.waiters.splice(0);
|
|
41
|
+
for (const waiter of toWake) waiter();
|
|
42
|
+
}
|
|
43
|
+
setError(err) {
|
|
44
|
+
this.error = err;
|
|
45
|
+
this.finished = true;
|
|
46
|
+
const toWake = this.waiters.splice(0);
|
|
47
|
+
for (const waiter of toWake) waiter();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create an async iterator that replays cached events from the
|
|
51
|
+
* beginning, then follows live events as they arrive.
|
|
52
|
+
*/
|
|
53
|
+
async *iterate() {
|
|
54
|
+
if (this.finished) {
|
|
55
|
+
if (this.error) throw this.error;
|
|
56
|
+
yield* this.events;
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let cursor = 0;
|
|
60
|
+
while (true) {
|
|
61
|
+
while (cursor < this.events.length) {
|
|
62
|
+
yield this.events[cursor];
|
|
63
|
+
cursor++;
|
|
64
|
+
}
|
|
65
|
+
if (this.finished) {
|
|
66
|
+
if (this.error) throw this.error;
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
await new Promise((resolve) => {
|
|
70
|
+
if (cursor < this.events.length || this.finished) {
|
|
71
|
+
resolve();
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this.waiters.push(resolve);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
/** Extract a string field from a loosely-typed content block. */
|
|
80
|
+
function getStringField(obj, field) {
|
|
81
|
+
const val = obj[field];
|
|
82
|
+
return typeof val === "string" ? val : "";
|
|
83
|
+
}
|
|
84
|
+
/** Check if a delta event carries a text content block. */
|
|
85
|
+
function isTextDelta(event) {
|
|
86
|
+
return event.type === "content-block-delta" && event.content.type === "text";
|
|
87
|
+
}
|
|
88
|
+
/** Check if a delta event carries a reasoning content block. */
|
|
89
|
+
function isReasoningDelta(event) {
|
|
90
|
+
return event.type === "content-block-delta" && event.content.type === "reasoning";
|
|
91
|
+
}
|
|
92
|
+
/** Check if a finish event carries a tool_call content block. */
|
|
93
|
+
function isToolCallFinish(event) {
|
|
94
|
+
return event.type === "content-block-finish" && event.content.type === "tool_call";
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Typed stream for text content.
|
|
98
|
+
*
|
|
99
|
+
* - **Iterate**: yields incremental text deltas (new tokens only).
|
|
100
|
+
* - **Await**: resolves to the complete concatenated text.
|
|
101
|
+
* - **`.full`**: yields the running accumulated text after each delta.
|
|
102
|
+
*/
|
|
103
|
+
var TextContentStream = class {
|
|
104
|
+
/** @internal */
|
|
105
|
+
_buffer;
|
|
106
|
+
/** @internal */
|
|
107
|
+
constructor(buffer) {
|
|
108
|
+
this._buffer = buffer;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Yields the accumulated text so far after each delta.
|
|
112
|
+
*/
|
|
113
|
+
get full() {
|
|
114
|
+
const buffer = this._buffer;
|
|
115
|
+
return { async *[Symbol.asyncIterator]() {
|
|
116
|
+
for await (const event of buffer.iterate()) if (isTextDelta(event)) yield getStringField(event.content, "text");
|
|
117
|
+
} };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Yields incremental text deltas (new tokens only).
|
|
121
|
+
* Computed by diffing successive accumulated states.
|
|
122
|
+
*/
|
|
123
|
+
[Symbol.asyncIterator]() {
|
|
124
|
+
const buffer = this._buffer;
|
|
125
|
+
async function* gen() {
|
|
126
|
+
const prevLen = /* @__PURE__ */ new Map();
|
|
127
|
+
for await (const event of buffer.iterate()) if (isTextDelta(event)) {
|
|
128
|
+
const full = getStringField(event.content, "text");
|
|
129
|
+
const prev = prevLen.get(event.index) ?? 0;
|
|
130
|
+
if (full.length > prev) {
|
|
131
|
+
yield full.slice(prev);
|
|
132
|
+
prevLen.set(event.index, full.length);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return gen();
|
|
137
|
+
}
|
|
138
|
+
then(onfulfilled, onrejected) {
|
|
139
|
+
return (async () => {
|
|
140
|
+
let text = "";
|
|
141
|
+
for await (const delta of this) text += delta;
|
|
142
|
+
return text;
|
|
143
|
+
})().then(onfulfilled, onrejected);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Typed stream for tool calls.
|
|
148
|
+
*
|
|
149
|
+
* - **Iterate**: yields individual `ToolCall` objects as each completes.
|
|
150
|
+
* - **Await**: resolves to the full array.
|
|
151
|
+
* - **`.full`**: yields the accumulated array after each new tool call.
|
|
152
|
+
*/
|
|
153
|
+
var ToolCallsStream = class {
|
|
154
|
+
/** @internal */
|
|
155
|
+
_buffer;
|
|
156
|
+
/** @internal */
|
|
157
|
+
constructor(buffer) {
|
|
158
|
+
this._buffer = buffer;
|
|
159
|
+
}
|
|
160
|
+
get full() {
|
|
161
|
+
const buffer = this._buffer;
|
|
162
|
+
return { async *[Symbol.asyncIterator]() {
|
|
163
|
+
const calls = [];
|
|
164
|
+
for await (const event of buffer.iterate()) if (isToolCallFinish(event)) {
|
|
165
|
+
calls.push(event.content);
|
|
166
|
+
yield [...calls];
|
|
167
|
+
}
|
|
168
|
+
} };
|
|
169
|
+
}
|
|
170
|
+
[Symbol.asyncIterator]() {
|
|
171
|
+
const buffer = this._buffer;
|
|
172
|
+
async function* gen() {
|
|
173
|
+
for await (const event of buffer.iterate()) if (isToolCallFinish(event)) yield event.content;
|
|
174
|
+
}
|
|
175
|
+
return gen();
|
|
176
|
+
}
|
|
177
|
+
then(onfulfilled, onrejected) {
|
|
178
|
+
return (async () => {
|
|
179
|
+
const calls = [];
|
|
180
|
+
for await (const call of this) calls.push(call);
|
|
181
|
+
return calls;
|
|
182
|
+
})().then(onfulfilled, onrejected);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Typed stream for reasoning content (chain-of-thought).
|
|
187
|
+
* Same interface as {@link TextContentStream} but for reasoning blocks.
|
|
188
|
+
*/
|
|
189
|
+
var ReasoningContentStream = class {
|
|
190
|
+
/** @internal */
|
|
191
|
+
_buffer;
|
|
192
|
+
/** @internal */
|
|
193
|
+
constructor(buffer) {
|
|
194
|
+
this._buffer = buffer;
|
|
195
|
+
}
|
|
196
|
+
get full() {
|
|
197
|
+
const buffer = this._buffer;
|
|
198
|
+
return { async *[Symbol.asyncIterator]() {
|
|
199
|
+
for await (const event of buffer.iterate()) if (isReasoningDelta(event)) yield getStringField(event.content, "reasoning");
|
|
200
|
+
} };
|
|
201
|
+
}
|
|
202
|
+
[Symbol.asyncIterator]() {
|
|
203
|
+
const buffer = this._buffer;
|
|
204
|
+
async function* gen() {
|
|
205
|
+
const prevLen = /* @__PURE__ */ new Map();
|
|
206
|
+
for await (const event of buffer.iterate()) if (isReasoningDelta(event)) {
|
|
207
|
+
const full = getStringField(event.content, "reasoning");
|
|
208
|
+
const prev = prevLen.get(event.index) ?? 0;
|
|
209
|
+
if (full.length > prev) {
|
|
210
|
+
yield full.slice(prev);
|
|
211
|
+
prevLen.set(event.index, full.length);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return gen();
|
|
216
|
+
}
|
|
217
|
+
then(onfulfilled, onrejected) {
|
|
218
|
+
return (async () => {
|
|
219
|
+
let text = "";
|
|
220
|
+
for await (const delta of this) text += delta;
|
|
221
|
+
return text;
|
|
222
|
+
})().then(onfulfilled, onrejected);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Typed stream for usage metadata.
|
|
227
|
+
*
|
|
228
|
+
* - **Iterate**: yields usage snapshots as they arrive.
|
|
229
|
+
* - **Await**: resolves to the final usage snapshot.
|
|
230
|
+
*/
|
|
231
|
+
var UsageMetadataStream = class {
|
|
232
|
+
/** @internal */
|
|
233
|
+
_buffer;
|
|
234
|
+
/** @internal */
|
|
235
|
+
constructor(buffer) {
|
|
236
|
+
this._buffer = buffer;
|
|
237
|
+
}
|
|
238
|
+
[Symbol.asyncIterator]() {
|
|
239
|
+
const buffer = this._buffer;
|
|
240
|
+
async function* gen() {
|
|
241
|
+
for await (const event of buffer.iterate()) if (event.type === "usage") yield event.usage;
|
|
242
|
+
else if (event.type === "message-start" && event.usage) yield event.usage;
|
|
243
|
+
else if (event.type === "message-finish" && event.usage) yield event.usage;
|
|
244
|
+
}
|
|
245
|
+
return gen();
|
|
246
|
+
}
|
|
247
|
+
then(onfulfilled, onrejected) {
|
|
248
|
+
return (async () => {
|
|
249
|
+
let latest;
|
|
250
|
+
for await (const usage of this) latest = usage;
|
|
251
|
+
return latest ?? {
|
|
252
|
+
input_tokens: 0,
|
|
253
|
+
output_tokens: 0,
|
|
254
|
+
total_tokens: 0
|
|
255
|
+
};
|
|
256
|
+
})().then(onfulfilled, onrejected);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* The main stream object returned by chat model streaming.
|
|
261
|
+
*
|
|
262
|
+
* Implements `AsyncIterable<ChatModelStreamEvent>` for raw event access
|
|
263
|
+
* and `PromiseLike<AIMessage>` for simple `await` usage.
|
|
264
|
+
*
|
|
265
|
+
* All sub-streams are replay-safe: multiple consumers reading from the
|
|
266
|
+
* same stream work correctly because each gets its own cursor over the
|
|
267
|
+
* shared buffer.
|
|
268
|
+
*/
|
|
269
|
+
var ChatModelStream = class {
|
|
270
|
+
/** @internal */
|
|
271
|
+
_buffer;
|
|
272
|
+
/** @internal */
|
|
273
|
+
constructor(source) {
|
|
274
|
+
this._buffer = new ReplayBuffer();
|
|
275
|
+
this._consume(source);
|
|
276
|
+
}
|
|
277
|
+
/** @internal */
|
|
278
|
+
async _consume(source) {
|
|
279
|
+
try {
|
|
280
|
+
for await (const event of source) this._buffer.push(event);
|
|
281
|
+
this._buffer.finish();
|
|
282
|
+
} catch (err) {
|
|
283
|
+
this._buffer.setError(err instanceof Error ? err : new Error(String(err)));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/** Iterate over raw {@link ChatModelStreamEvent}s. */
|
|
287
|
+
[Symbol.asyncIterator]() {
|
|
288
|
+
return this._buffer.iterate();
|
|
289
|
+
}
|
|
290
|
+
/** Text content deltas / full text. */
|
|
291
|
+
get text() {
|
|
292
|
+
return new TextContentStream(this._buffer);
|
|
293
|
+
}
|
|
294
|
+
/** Completed tool calls. */
|
|
295
|
+
get toolCalls() {
|
|
296
|
+
return new ToolCallsStream(this._buffer);
|
|
297
|
+
}
|
|
298
|
+
/** Reasoning content (chain-of-thought). */
|
|
299
|
+
get reasoning() {
|
|
300
|
+
return new ReasoningContentStream(this._buffer);
|
|
301
|
+
}
|
|
302
|
+
/** Usage metadata snapshots. */
|
|
303
|
+
get usage() {
|
|
304
|
+
return new UsageMetadataStream(this._buffer);
|
|
305
|
+
}
|
|
306
|
+
/** The fully assembled `AIMessage`, available once the stream finishes. */
|
|
307
|
+
get output() {
|
|
308
|
+
return { then: (onf, onr) => this._assembleMessage().then(onf, onr) };
|
|
309
|
+
}
|
|
310
|
+
/** Allows `await stream` to resolve to the fully assembled `AIMessage`. */
|
|
311
|
+
then(onfulfilled, onrejected) {
|
|
312
|
+
return this._assembleMessage().then(onfulfilled, onrejected);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Assemble all stream events into a finalized `AIMessage`.
|
|
316
|
+
* @internal
|
|
317
|
+
*/
|
|
318
|
+
async _assembleMessage() {
|
|
319
|
+
const contentBlocks = [];
|
|
320
|
+
let id;
|
|
321
|
+
let usage;
|
|
322
|
+
let responseMetadata = {};
|
|
323
|
+
let finishReason;
|
|
324
|
+
for await (const event of this._buffer.iterate()) switch (event.type) {
|
|
325
|
+
case "message-start":
|
|
326
|
+
id = event.id ?? id;
|
|
327
|
+
if (event.usage) usage = event.usage;
|
|
328
|
+
break;
|
|
329
|
+
case "content-block-start":
|
|
330
|
+
case "content-block-delta":
|
|
331
|
+
contentBlocks[event.index] = event.content;
|
|
332
|
+
break;
|
|
333
|
+
case "content-block-finish":
|
|
334
|
+
contentBlocks[event.index] = event.content;
|
|
335
|
+
break;
|
|
336
|
+
case "usage":
|
|
337
|
+
usage = event.usage;
|
|
338
|
+
break;
|
|
339
|
+
case "message-finish":
|
|
340
|
+
finishReason = event.reason;
|
|
341
|
+
if (event.usage) usage = event.usage;
|
|
342
|
+
if (event.responseMetadata) responseMetadata = {
|
|
343
|
+
...responseMetadata,
|
|
344
|
+
...event.responseMetadata
|
|
345
|
+
};
|
|
346
|
+
break;
|
|
347
|
+
default: break;
|
|
348
|
+
}
|
|
349
|
+
const filteredBlocks = contentBlocks.filter((b) => b != null);
|
|
350
|
+
return new AIMessage({
|
|
351
|
+
id,
|
|
352
|
+
content: filteredBlocks,
|
|
353
|
+
usage_metadata: usage,
|
|
354
|
+
response_metadata: {
|
|
355
|
+
...responseMetadata,
|
|
356
|
+
...finishReason ? { finish_reason: finishReason } : {},
|
|
357
|
+
output_version: "v1"
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
//#endregion
|
|
363
|
+
export { ChatModelStream, ReasoningContentStream, TextContentStream, ToolCallsStream, UsageMetadataStream, stream_exports };
|
|
364
|
+
|
|
365
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","names":[],"sources":["../../src/language_models/stream.ts"],"sourcesContent":["/**\n * Typed stream classes for chat model streaming.\n *\n * Provides {@link ChatModelStream} and typed sub-stream accessors that\n * implement both `AsyncIterable` (for incremental consumption) and\n * `PromiseLike` (for simple `await`).\n *\n * @module\n */\n\nimport { AIMessage } from \"../messages/ai.js\";\nimport type { ContentBlock } from \"../messages/content/index.js\";\nimport type { UsageMetadata } from \"../messages/metadata.js\";\nimport type {\n ChatModelStreamEvent,\n ContentBlockDeltaEvent,\n ContentBlockFinishEvent,\n} from \"./event.js\";\n\n// ─── Replay Buffer ──────────────────────────────────────────────\n\n/**\n * A buffer that caches emitted events for replay.\n *\n * Multiple consumers can independently iterate the same buffer —\n * each gets its own cursor. Events are never consumed or removed.\n *\n * @internal\n */\nclass ReplayBuffer {\n private events: ChatModelStreamEvent[] = [];\n private finished = false;\n private waiters: Array<() => void> = [];\n private error: Error | null = null;\n\n push(event: ChatModelStreamEvent): void {\n this.events.push(event);\n // Wake ALL waiting consumers — each reads from their own cursor\n const toWake = this.waiters.splice(0);\n for (const waiter of toWake) {\n waiter();\n }\n }\n\n finish(): void {\n this.finished = true;\n const toWake = this.waiters.splice(0);\n for (const waiter of toWake) {\n waiter();\n }\n }\n\n setError(err: Error): void {\n this.error = err;\n this.finished = true;\n const toWake = this.waiters.splice(0);\n for (const waiter of toWake) {\n waiter();\n }\n }\n\n /**\n * Create an async iterator that replays cached events from the\n * beginning, then follows live events as they arrive.\n */\n async *iterate(): AsyncGenerator<ChatModelStreamEvent> {\n // Fast path: stream already done, replay everything\n if (this.finished) {\n if (this.error) throw this.error;\n yield* this.events;\n return;\n }\n\n // Live path: follow events as they arrive\n let cursor = 0;\n while (true) {\n while (cursor < this.events.length) {\n yield this.events[cursor]!;\n cursor++;\n }\n if (this.finished) {\n if (this.error) throw this.error;\n return;\n }\n // Wait for new data\n await new Promise<void>((resolve) => {\n if (cursor < this.events.length || this.finished) {\n resolve();\n return;\n }\n this.waiters.push(resolve);\n });\n }\n }\n}\n\n// ─── Helpers ────────────────────────────────────────────────────\n\n/** Extract a string field from a loosely-typed content block. */\nfunction getStringField(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n obj: Record<string, any>,\n field: string\n): string {\n const val = obj[field];\n return typeof val === \"string\" ? val : \"\";\n}\n\n/** Check if a delta event carries a text content block. */\nfunction isTextDelta(\n event: ChatModelStreamEvent\n): event is ContentBlockDeltaEvent & {\n content: { type: \"text\"; text?: string };\n} {\n return event.type === \"content-block-delta\" && event.content.type === \"text\";\n}\n\n/** Check if a delta event carries a reasoning content block. */\nfunction isReasoningDelta(\n event: ChatModelStreamEvent\n): event is ContentBlockDeltaEvent & {\n content: { type: \"reasoning\"; reasoning?: string };\n} {\n return (\n event.type === \"content-block-delta\" && event.content.type === \"reasoning\"\n );\n}\n\n/** Check if a finish event carries a tool_call content block. */\nfunction isToolCallFinish(\n event: ChatModelStreamEvent\n): event is ContentBlockFinishEvent & {\n content: ContentBlock.Tools.ToolCall;\n} {\n return (\n event.type === \"content-block-finish\" && event.content.type === \"tool_call\"\n );\n}\n\n// ─── Sub-Stream: Text ───────────────────────────────────────────\n\n/**\n * Typed stream for text content.\n *\n * - **Iterate**: yields incremental text deltas (new tokens only).\n * - **Await**: resolves to the complete concatenated text.\n * - **`.full`**: yields the running accumulated text after each delta.\n */\nexport class TextContentStream\n implements AsyncIterable<string>, PromiseLike<string>\n{\n /** @internal */\n private _buffer: ReplayBuffer;\n\n /** @internal */\n constructor(buffer: ReplayBuffer) {\n this._buffer = buffer;\n }\n\n /**\n * Yields the accumulated text so far after each delta.\n */\n get full(): AsyncIterable<string> {\n const buffer = this._buffer;\n return {\n async *[Symbol.asyncIterator]() {\n for await (const event of buffer.iterate()) {\n if (isTextDelta(event)) {\n yield getStringField(\n event.content as Record<string, unknown>,\n \"text\"\n );\n }\n }\n },\n };\n }\n\n /**\n * Yields incremental text deltas (new tokens only).\n * Computed by diffing successive accumulated states.\n */\n [Symbol.asyncIterator](): AsyncIterator<string> {\n const buffer = this._buffer;\n async function* gen() {\n const prevLen = new Map<number, number>();\n for await (const event of buffer.iterate()) {\n if (isTextDelta(event)) {\n const full = getStringField(\n event.content as Record<string, unknown>,\n \"text\"\n );\n const prev = prevLen.get(event.index) ?? 0;\n if (full.length > prev) {\n yield full.slice(prev);\n prevLen.set(event.index, full.length);\n }\n }\n }\n }\n return gen();\n }\n\n then<TResult1 = string, TResult2 = never>(\n onfulfilled?: ((value: string) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): PromiseLike<TResult1 | TResult2> {\n const promise = (async () => {\n let text = \"\";\n for await (const delta of this) {\n text += delta;\n }\n return text;\n })();\n return promise.then(onfulfilled, onrejected);\n }\n}\n\n// ─── Sub-Stream: Tool Calls ─────────────────────────────────────\n\n/**\n * Typed stream for tool calls.\n *\n * - **Iterate**: yields individual `ToolCall` objects as each completes.\n * - **Await**: resolves to the full array.\n * - **`.full`**: yields the accumulated array after each new tool call.\n */\nexport class ToolCallsStream\n implements\n AsyncIterable<ContentBlock.Tools.ToolCall>,\n PromiseLike<Array<ContentBlock.Tools.ToolCall>>\n{\n /** @internal */\n private _buffer: ReplayBuffer;\n\n /** @internal */\n constructor(buffer: ReplayBuffer) {\n this._buffer = buffer;\n }\n\n get full(): AsyncIterable<Array<ContentBlock.Tools.ToolCall>> {\n const buffer = this._buffer;\n return {\n async *[Symbol.asyncIterator]() {\n const calls: Array<ContentBlock.Tools.ToolCall> = [];\n for await (const event of buffer.iterate()) {\n if (isToolCallFinish(event)) {\n calls.push(event.content);\n yield [...calls];\n }\n }\n },\n };\n }\n\n [Symbol.asyncIterator](): AsyncIterator<ContentBlock.Tools.ToolCall> {\n const buffer = this._buffer;\n async function* gen() {\n for await (const event of buffer.iterate()) {\n if (isToolCallFinish(event)) {\n yield event.content;\n }\n }\n }\n return gen();\n }\n\n then<TResult1 = Array<ContentBlock.Tools.ToolCall>, TResult2 = never>(\n onfulfilled?:\n | ((\n value: Array<ContentBlock.Tools.ToolCall>\n ) => TResult1 | PromiseLike<TResult1>)\n | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): PromiseLike<TResult1 | TResult2> {\n const promise = (async () => {\n const calls: Array<ContentBlock.Tools.ToolCall> = [];\n for await (const call of this) {\n calls.push(call);\n }\n return calls;\n })();\n return promise.then(onfulfilled, onrejected);\n }\n}\n\n// ─── Sub-Stream: Reasoning ──────────────────────────────────────\n\n/**\n * Typed stream for reasoning content (chain-of-thought).\n * Same interface as {@link TextContentStream} but for reasoning blocks.\n */\nexport class ReasoningContentStream\n implements AsyncIterable<string>, PromiseLike<string>\n{\n /** @internal */\n private _buffer: ReplayBuffer;\n\n /** @internal */\n constructor(buffer: ReplayBuffer) {\n this._buffer = buffer;\n }\n\n get full(): AsyncIterable<string> {\n const buffer = this._buffer;\n return {\n async *[Symbol.asyncIterator]() {\n for await (const event of buffer.iterate()) {\n if (isReasoningDelta(event)) {\n yield getStringField(\n event.content as Record<string, unknown>,\n \"reasoning\"\n );\n }\n }\n },\n };\n }\n\n [Symbol.asyncIterator](): AsyncIterator<string> {\n const buffer = this._buffer;\n async function* gen() {\n const prevLen = new Map<number, number>();\n for await (const event of buffer.iterate()) {\n if (isReasoningDelta(event)) {\n const full = getStringField(\n event.content as Record<string, unknown>,\n \"reasoning\"\n );\n const prev = prevLen.get(event.index) ?? 0;\n if (full.length > prev) {\n yield full.slice(prev);\n prevLen.set(event.index, full.length);\n }\n }\n }\n }\n return gen();\n }\n\n then<TResult1 = string, TResult2 = never>(\n onfulfilled?: ((value: string) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): PromiseLike<TResult1 | TResult2> {\n const promise = (async () => {\n let text = \"\";\n for await (const delta of this) {\n text += delta;\n }\n return text;\n })();\n return promise.then(onfulfilled, onrejected);\n }\n}\n\n// ─── Sub-Stream: Usage ──────────────────────────────────────────\n\n/**\n * Typed stream for usage metadata.\n *\n * - **Iterate**: yields usage snapshots as they arrive.\n * - **Await**: resolves to the final usage snapshot.\n */\nexport class UsageMetadataStream\n implements AsyncIterable<UsageMetadata>, PromiseLike<UsageMetadata>\n{\n /** @internal */\n private _buffer: ReplayBuffer;\n\n /** @internal */\n constructor(buffer: ReplayBuffer) {\n this._buffer = buffer;\n }\n\n [Symbol.asyncIterator](): AsyncIterator<UsageMetadata> {\n const buffer = this._buffer;\n async function* gen() {\n for await (const event of buffer.iterate()) {\n if (event.type === \"usage\") {\n yield event.usage;\n } else if (event.type === \"message-start\" && event.usage) {\n yield event.usage;\n } else if (event.type === \"message-finish\" && event.usage) {\n yield event.usage;\n }\n }\n }\n return gen();\n }\n\n then<TResult1 = UsageMetadata, TResult2 = never>(\n onfulfilled?:\n | ((value: UsageMetadata) => TResult1 | PromiseLike<TResult1>)\n | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): PromiseLike<TResult1 | TResult2> {\n const promise = (async () => {\n let latest: UsageMetadata | undefined;\n for await (const usage of this) {\n latest = usage;\n }\n return latest ?? { input_tokens: 0, output_tokens: 0, total_tokens: 0 };\n })();\n return promise.then(onfulfilled, onrejected);\n }\n}\n\n// ─── ChatModelStream ────────────────────────────────────────────\n\n/**\n * The main stream object returned by chat model streaming.\n *\n * Implements `AsyncIterable<ChatModelStreamEvent>` for raw event access\n * and `PromiseLike<AIMessage>` for simple `await` usage.\n *\n * All sub-streams are replay-safe: multiple consumers reading from the\n * same stream work correctly because each gets its own cursor over the\n * shared buffer.\n */\nexport class ChatModelStream\n implements AsyncIterable<ChatModelStreamEvent>, PromiseLike<AIMessage>\n{\n /** @internal */\n private _buffer: ReplayBuffer;\n\n /** @internal */\n constructor(source: AsyncIterable<ChatModelStreamEvent>) {\n this._buffer = new ReplayBuffer();\n this._consume(source);\n }\n\n /** @internal */\n private async _consume(\n source: AsyncIterable<ChatModelStreamEvent>\n ): Promise<void> {\n try {\n for await (const event of source) {\n this._buffer.push(event);\n }\n this._buffer.finish();\n } catch (err) {\n this._buffer.setError(\n err instanceof Error ? err : new Error(String(err))\n );\n }\n }\n\n /** Iterate over raw {@link ChatModelStreamEvent}s. */\n [Symbol.asyncIterator](): AsyncIterator<ChatModelStreamEvent> {\n return this._buffer.iterate();\n }\n\n /** Text content deltas / full text. */\n get text(): TextContentStream {\n return new TextContentStream(this._buffer);\n }\n\n /** Completed tool calls. */\n get toolCalls(): ToolCallsStream {\n return new ToolCallsStream(this._buffer);\n }\n\n /** Reasoning content (chain-of-thought). */\n get reasoning(): ReasoningContentStream {\n return new ReasoningContentStream(this._buffer);\n }\n\n /** Usage metadata snapshots. */\n get usage(): UsageMetadataStream {\n return new UsageMetadataStream(this._buffer);\n }\n\n /** The fully assembled `AIMessage`, available once the stream finishes. */\n get output(): PromiseLike<AIMessage> {\n return { then: (onf, onr) => this._assembleMessage().then(onf, onr) };\n }\n\n /** Allows `await stream` to resolve to the fully assembled `AIMessage`. */\n then<TResult1 = AIMessage, TResult2 = never>(\n onfulfilled?:\n | ((value: AIMessage) => TResult1 | PromiseLike<TResult1>)\n | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): PromiseLike<TResult1 | TResult2> {\n return this._assembleMessage().then(onfulfilled, onrejected);\n }\n\n /**\n * Assemble all stream events into a finalized `AIMessage`.\n * @internal\n */\n private async _assembleMessage(): Promise<AIMessage> {\n const contentBlocks: Array<ContentBlock | undefined> = [];\n let id: string | undefined;\n let usage: UsageMetadata | undefined;\n let responseMetadata: Record<string, unknown> = {};\n let finishReason: string | undefined;\n\n for await (const event of this._buffer.iterate()) {\n switch (event.type) {\n case \"message-start\":\n id = event.id ?? id;\n if (event.usage) usage = event.usage;\n break;\n\n case \"content-block-start\":\n case \"content-block-delta\":\n // Overwrite with the latest accumulated snapshot\n contentBlocks[event.index] = event.content as ContentBlock;\n break;\n\n case \"content-block-finish\":\n contentBlocks[event.index] = event.content;\n break;\n\n case \"usage\":\n usage = event.usage;\n break;\n\n case \"message-finish\":\n finishReason = event.reason;\n if (event.usage) usage = event.usage;\n if (event.responseMetadata) {\n responseMetadata = {\n ...responseMetadata,\n ...event.responseMetadata,\n };\n }\n break;\n\n default:\n break;\n }\n }\n\n const filteredBlocks = contentBlocks.filter(\n (b): b is ContentBlock => b != null\n );\n\n return new AIMessage({\n id,\n content: filteredBlocks,\n usage_metadata: usage,\n response_metadata: {\n ...responseMetadata,\n ...(finishReason ? { finish_reason: finishReason } : {}),\n output_version: \"v1\" as const,\n },\n });\n }\n}\n"],"mappings":"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"}
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -37,7 +37,10 @@ const require_utils_json_patch = require("../utils/json_patch.cjs");
|
|
|
37
37
|
const require_output_parsers_index = require("../output_parsers/index.cjs");
|
|
38
38
|
const require_utils_types_index = require("../utils/types/index.cjs");
|
|
39
39
|
const require_language_models_structured_output = require("../language_models/structured_output.cjs");
|
|
40
|
+
const require_language_models_stream = require("../language_models/stream.cjs");
|
|
41
|
+
const require_language_models_compat = require("../language_models/compat.cjs");
|
|
40
42
|
const require_language_models_chat_models = require("../language_models/chat_models.cjs");
|
|
43
|
+
const require_language_models_event = require("../language_models/event.cjs");
|
|
41
44
|
const require_language_models_llms = require("../language_models/llms.cjs");
|
|
42
45
|
const require_language_models_profile = require("../language_models/profile.cjs");
|
|
43
46
|
const require_memory = require("../memory.cjs");
|
|
@@ -79,8 +82,11 @@ var import_map_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
|
79
82
|
indexing: () => require_indexing_index.indexing_exports,
|
|
80
83
|
language_models__base: () => require_language_models_base.base_exports,
|
|
81
84
|
language_models__chat_models: () => require_language_models_chat_models.chat_models_exports,
|
|
85
|
+
language_models__compat: () => require_language_models_compat.compat_exports,
|
|
86
|
+
language_models__event: () => require_language_models_event.event_exports,
|
|
82
87
|
language_models__llms: () => require_language_models_llms.llms_exports,
|
|
83
88
|
language_models__profile: () => require_language_models_profile.profile_exports,
|
|
89
|
+
language_models__stream: () => require_language_models_stream.stream_exports,
|
|
84
90
|
language_models__structured_output: () => require_language_models_structured_output.structured_output_exports,
|
|
85
91
|
load__serializable: () => require_load_serializable.serializable_exports,
|
|
86
92
|
memory: () => require_memory.memory_exports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_map.cjs","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["/** Auto-generated by import-map plugin. Do not edit manually */\n\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/index.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as callbacks__manager from \"../callbacks/manager.js\";\nexport * as callbacks__promises from \"../callbacks/promises.js\";\nexport * as chat_history from \"../chat_history.js\";\nexport * as document_loaders__base from \"../document_loaders/base.js\";\nexport * as document_loaders__langsmith from \"../document_loaders/langsmith.js\";\nexport * as documents from \"../documents/index.js\";\nexport * as embeddings from \"../embeddings.js\";\nexport * as errors from \"../errors/index.js\";\nexport * as example_selectors from \"../example_selectors/index.js\";\nexport * as index from \"../index.js\";\nexport * as indexing from \"../indexing/index.js\";\nexport * as language_models__base from \"../language_models/base.js\";\nexport * as language_models__chat_models from \"../language_models/chat_models.js\";\nexport * as language_models__llms from \"../language_models/llms.js\";\nexport * as language_models__profile from \"../language_models/profile.js\";\nexport * as language_models__structured_output from \"../language_models/structured_output.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as memory from \"../memory.js\";\nexport * as messages from \"../messages/index.js\";\nexport * as messages__tool from \"../messages/tool.js\";\nexport * as output_parsers from \"../output_parsers/index.js\";\nexport * as output_parsers__openai_functions from \"../output_parsers/openai_functions/index.js\";\nexport * as output_parsers__openai_tools from \"../output_parsers/openai_tools/index.js\";\nexport * as outputs from \"../outputs.js\";\nexport * as prompt_values from \"../prompt_values.js\";\nexport * as prompts from \"../prompts/index.js\";\nexport * as retrievers__document_compressors from \"../retrievers/document_compressors/index.js\";\nexport * as retrievers from \"../retrievers/index.js\";\nexport * as runnables__graph from \"../runnables/graph.js\";\nexport * as runnables from \"../runnables/index.js\";\nexport * as singletons from \"../singletons/index.js\";\nexport * as stores from \"../stores.js\";\nexport * as structured_query from \"../structured_query/index.js\";\nexport * as testing from \"../testing/index.js\";\nexport * as tools from \"../tools/index.js\";\nexport * as tracers__base from \"../tracers/base.js\";\nexport * as tracers__console from \"../tracers/console.js\";\nexport * as tracers__log_stream from \"../tracers/log_stream.js\";\nexport * as tracers__run_collector from \"../tracers/run_collector.js\";\nexport * as tracers__tracer_langchain from \"../tracers/tracer_langchain.js\";\nexport * as types__stream from \"../types/stream.js\";\nexport * as utils__async_caller from \"../utils/async_caller.js\";\nexport * as utils__chunk_array from \"../utils/chunk_array.js\";\nexport * as utils__context from \"../utils/context.js\";\nexport * as utils__env from \"../utils/env.js\";\nexport * as utils__event_source_parse from \"../utils/event_source_parse.js\";\nexport * as utils__format from \"../utils/format.js\";\nexport * as utils__function_calling from \"../utils/function_calling.js\";\nexport * as utils__hash from \"../utils/hash.js\";\nexport * as utils__json_patch from \"../utils/json_patch.js\";\nexport * as utils__json_schema from \"../utils/json_schema.js\";\nexport * as utils__math from \"../utils/math.js\";\nexport * as utils__ssrf from \"../utils/ssrf.js\";\nexport * as utils__standard_schema from \"../utils/standard_schema.js\";\nexport * as utils__stream from \"../utils/stream.js\";\nexport * as utils__testing from \"../utils/testing/index.js\";\nexport * as utils__tiktoken from \"../utils/tiktoken.js\";\nexport * as utils__types from \"../utils/types/index.js\";\nexport * as vectorstores from \"../vectorstores.js\";\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"import_map.cjs","names":[],"sources":["../../src/load/import_map.ts"],"sourcesContent":["/** Auto-generated by import-map plugin. Do not edit manually */\n\nexport * as agents from \"../agents.js\";\nexport * as caches from \"../caches/index.js\";\nexport * as callbacks__base from \"../callbacks/base.js\";\nexport * as callbacks__manager from \"../callbacks/manager.js\";\nexport * as callbacks__promises from \"../callbacks/promises.js\";\nexport * as chat_history from \"../chat_history.js\";\nexport * as document_loaders__base from \"../document_loaders/base.js\";\nexport * as document_loaders__langsmith from \"../document_loaders/langsmith.js\";\nexport * as documents from \"../documents/index.js\";\nexport * as embeddings from \"../embeddings.js\";\nexport * as errors from \"../errors/index.js\";\nexport * as example_selectors from \"../example_selectors/index.js\";\nexport * as index from \"../index.js\";\nexport * as indexing from \"../indexing/index.js\";\nexport * as language_models__base from \"../language_models/base.js\";\nexport * as language_models__chat_models from \"../language_models/chat_models.js\";\nexport * as language_models__compat from \"../language_models/compat.js\";\nexport * as language_models__event from \"../language_models/event.js\";\nexport * as language_models__llms from \"../language_models/llms.js\";\nexport * as language_models__profile from \"../language_models/profile.js\";\nexport * as language_models__stream from \"../language_models/stream.js\";\nexport * as language_models__structured_output from \"../language_models/structured_output.js\";\nexport * as load__serializable from \"../load/serializable.js\";\nexport * as memory from \"../memory.js\";\nexport * as messages from \"../messages/index.js\";\nexport * as messages__tool from \"../messages/tool.js\";\nexport * as output_parsers from \"../output_parsers/index.js\";\nexport * as output_parsers__openai_functions from \"../output_parsers/openai_functions/index.js\";\nexport * as output_parsers__openai_tools from \"../output_parsers/openai_tools/index.js\";\nexport * as outputs from \"../outputs.js\";\nexport * as prompt_values from \"../prompt_values.js\";\nexport * as prompts from \"../prompts/index.js\";\nexport * as retrievers__document_compressors from \"../retrievers/document_compressors/index.js\";\nexport * as retrievers from \"../retrievers/index.js\";\nexport * as runnables__graph from \"../runnables/graph.js\";\nexport * as runnables from \"../runnables/index.js\";\nexport * as singletons from \"../singletons/index.js\";\nexport * as stores from \"../stores.js\";\nexport * as structured_query from \"../structured_query/index.js\";\nexport * as testing from \"../testing/index.js\";\nexport * as tools from \"../tools/index.js\";\nexport * as tracers__base from \"../tracers/base.js\";\nexport * as tracers__console from \"../tracers/console.js\";\nexport * as tracers__log_stream from \"../tracers/log_stream.js\";\nexport * as tracers__run_collector from \"../tracers/run_collector.js\";\nexport * as tracers__tracer_langchain from \"../tracers/tracer_langchain.js\";\nexport * as types__stream from \"../types/stream.js\";\nexport * as utils__async_caller from \"../utils/async_caller.js\";\nexport * as utils__chunk_array from \"../utils/chunk_array.js\";\nexport * as utils__context from \"../utils/context.js\";\nexport * as utils__env from \"../utils/env.js\";\nexport * as utils__event_source_parse from \"../utils/event_source_parse.js\";\nexport * as utils__format from \"../utils/format.js\";\nexport * as utils__function_calling from \"../utils/function_calling.js\";\nexport * as utils__hash from \"../utils/hash.js\";\nexport * as utils__json_patch from \"../utils/json_patch.js\";\nexport * as utils__json_schema from \"../utils/json_schema.js\";\nexport * as utils__math from \"../utils/math.js\";\nexport * as utils__ssrf from \"../utils/ssrf.js\";\nexport * as utils__standard_schema from \"../utils/standard_schema.js\";\nexport * as utils__stream from \"../utils/stream.js\";\nexport * as utils__testing from \"../utils/testing/index.js\";\nexport * as utils__tiktoken from \"../utils/tiktoken.js\";\nexport * as utils__types from \"../utils/types/index.js\";\nexport * as vectorstores from \"../vectorstores.js\";\n"],"mappings":""}
|
package/dist/load/import_map.js
CHANGED
|
@@ -37,7 +37,10 @@ import { json_patch_exports } from "../utils/json_patch.js";
|
|
|
37
37
|
import { output_parsers_exports } from "../output_parsers/index.js";
|
|
38
38
|
import { types_exports } from "../utils/types/index.js";
|
|
39
39
|
import { structured_output_exports } from "../language_models/structured_output.js";
|
|
40
|
+
import { stream_exports as stream_exports$1 } from "../language_models/stream.js";
|
|
41
|
+
import { compat_exports } from "../language_models/compat.js";
|
|
40
42
|
import { chat_models_exports } from "../language_models/chat_models.js";
|
|
43
|
+
import { event_exports } from "../language_models/event.js";
|
|
41
44
|
import { llms_exports } from "../language_models/llms.js";
|
|
42
45
|
import { profile_exports } from "../language_models/profile.js";
|
|
43
46
|
import { memory_exports } from "../memory.js";
|
|
@@ -51,7 +54,7 @@ import { structured_query_exports } from "../structured_query/index.js";
|
|
|
51
54
|
import { testing_exports } from "../testing/index.js";
|
|
52
55
|
import { tools_exports } from "../tools/index.js";
|
|
53
56
|
import { run_collector_exports } from "../tracers/run_collector.js";
|
|
54
|
-
import { stream_exports as stream_exports$
|
|
57
|
+
import { stream_exports as stream_exports$2 } from "../types/stream.js";
|
|
55
58
|
import { chunk_array_exports } from "../utils/chunk_array.js";
|
|
56
59
|
import { context_exports } from "../utils/context.js";
|
|
57
60
|
import { event_source_parse_exports } from "../utils/event_source_parse.js";
|
|
@@ -79,8 +82,11 @@ var import_map_exports = /* @__PURE__ */ __exportAll({
|
|
|
79
82
|
indexing: () => indexing_exports,
|
|
80
83
|
language_models__base: () => base_exports$3,
|
|
81
84
|
language_models__chat_models: () => chat_models_exports,
|
|
85
|
+
language_models__compat: () => compat_exports,
|
|
86
|
+
language_models__event: () => event_exports,
|
|
82
87
|
language_models__llms: () => llms_exports,
|
|
83
88
|
language_models__profile: () => profile_exports,
|
|
89
|
+
language_models__stream: () => stream_exports$1,
|
|
84
90
|
language_models__structured_output: () => structured_output_exports,
|
|
85
91
|
load__serializable: () => serializable_exports,
|
|
86
92
|
memory: () => memory_exports,
|
|
@@ -106,7 +112,7 @@ var import_map_exports = /* @__PURE__ */ __exportAll({
|
|
|
106
112
|
tracers__log_stream: () => log_stream_exports,
|
|
107
113
|
tracers__run_collector: () => run_collector_exports,
|
|
108
114
|
tracers__tracer_langchain: () => tracer_langchain_exports,
|
|
109
|
-
types__stream: () => stream_exports$
|
|
115
|
+
types__stream: () => stream_exports$2,
|
|
110
116
|
utils__async_caller: () => async_caller_exports,
|
|
111
117
|
utils__chunk_array: () => chunk_array_exports,
|
|
112
118
|
utils__context: () => context_exports,
|