assistant-stream 0.3.14 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/core/AssistantStream.d.ts +50 -9
- package/dist/core/AssistantStream.d.ts.map +1 -1
- package/dist/core/AssistantStream.js +39 -15
- package/dist/core/AssistantStream.js.map +1 -1
- package/dist/core/AssistantStreamChunk.d.ts +84 -61
- package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
- package/dist/core/AssistantStreamChunk.js +0 -2
- package/dist/core/accumulators/AssistantMessageStream.d.ts +15 -11
- package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
- package/dist/core/accumulators/AssistantMessageStream.js +52 -48
- package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
- package/dist/core/accumulators/TimingTracker.d.ts +15 -11
- package/dist/core/accumulators/TimingTracker.d.ts.map +1 -1
- package/dist/core/accumulators/TimingTracker.js +36 -43
- package/dist/core/accumulators/TimingTracker.js.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.d.ts +21 -11
- package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.js +349 -390
- package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
- package/dist/core/converters/toGenericMessages.d.ts +49 -47
- package/dist/core/converters/toGenericMessages.d.ts.map +1 -1
- package/dist/core/converters/toGenericMessages.js +122 -136
- package/dist/core/converters/toGenericMessages.js.map +1 -1
- package/dist/core/modules/assistant-stream.d.ts +92 -28
- package/dist/core/modules/assistant-stream.d.ts.map +1 -1
- package/dist/core/modules/assistant-stream.js +177 -162
- package/dist/core/modules/assistant-stream.js.map +1 -1
- package/dist/core/modules/text.d.ts +11 -7
- package/dist/core/modules/text.d.ts.map +1 -1
- package/dist/core/modules/text.js +45 -45
- package/dist/core/modules/text.js.map +1 -1
- package/dist/core/modules/tool-call.d.ts +15 -11
- package/dist/core/modules/tool-call.d.ts.map +1 -1
- package/dist/core/modules/tool-call.js +81 -96
- package/dist/core/modules/tool-call.js.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.d.ts +13 -9
- package/dist/core/object/ObjectStreamAccumulator.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.js +44 -52
- package/dist/core/object/ObjectStreamAccumulator.js.map +1 -1
- package/dist/core/object/ObjectStreamResponse.d.ts +12 -8
- package/dist/core/object/ObjectStreamResponse.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamResponse.js +52 -71
- package/dist/core/object/ObjectStreamResponse.js.map +1 -1
- package/dist/core/object/createObjectStream.d.ts +14 -8
- package/dist/core/object/createObjectStream.d.ts.map +1 -1
- package/dist/core/object/createObjectStream.js +50 -47
- package/dist/core/object/createObjectStream.js.map +1 -1
- package/dist/core/object/types.d.ts +14 -11
- package/dist/core/object/types.d.ts.map +1 -1
- package/dist/core/object/types.js +0 -2
- package/dist/core/serialization/PlainText.d.ts +11 -7
- package/dist/core/serialization/PlainText.d.ts.map +1 -1
- package/dist/core/serialization/PlainText.js +40 -48
- package/dist/core/serialization/PlainText.js.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts +11 -7
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.js +102 -117
- package/dist/core/serialization/assistant-transport/AssistantTransport.js.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.d.ts +11 -7
- package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.js +320 -371
- package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.d.ts +101 -100
- package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.js +27 -23
- package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
- package/dist/core/serialization/data-stream/serialization.d.ts +9 -5
- package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/serialization.js +23 -24
- package/dist/core/serialization/data-stream/serialization.js.map +1 -1
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts +15 -12
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts.map +1 -1
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js +205 -228
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js.map +1 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts +68 -65
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts.map +1 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.js +0 -2
- package/dist/core/tool/ToolCallReader.d.ts +34 -30
- package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
- package/dist/core/tool/ToolCallReader.js +264 -317
- package/dist/core/tool/ToolCallReader.js.map +1 -1
- package/dist/core/tool/ToolExecutionStream.d.ts +20 -17
- package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
- package/dist/core/tool/ToolExecutionStream.js +123 -146
- package/dist/core/tool/ToolExecutionStream.js.map +1 -1
- package/dist/core/tool/ToolResponse.d.ts +60 -19
- package/dist/core/tool/ToolResponse.d.ts.map +1 -1
- package/dist/core/tool/ToolResponse.js +51 -34
- package/dist/core/tool/ToolResponse.js.map +1 -1
- package/dist/core/tool/schema-utils.d.ts +19 -15
- package/dist/core/tool/schema-utils.d.ts.map +1 -1
- package/dist/core/tool/schema-utils.js +50 -84
- package/dist/core/tool/schema-utils.js.map +1 -1
- package/dist/core/tool/tool-types.d.ts +173 -92
- package/dist/core/tool/tool-types.d.ts.map +1 -1
- package/dist/core/tool/tool-types.js +0 -2
- package/dist/core/tool/toolResultStream.d.ts +24 -7
- package/dist/core/tool/toolResultStream.d.ts.map +1 -1
- package/dist/core/tool/toolResultStream.js +128 -145
- package/dist/core/tool/toolResultStream.js.map +1 -1
- package/dist/core/tool/type-path-utils.d.ts +8 -19
- package/dist/core/tool/type-path-utils.d.ts.map +1 -1
- package/dist/core/tool/type-path-utils.js +0 -2
- package/dist/core/utils/Counter.d.ts +6 -3
- package/dist/core/utils/Counter.d.ts.map +1 -1
- package/dist/core/utils/Counter.js +10 -6
- package/dist/core/utils/Counter.js.map +1 -1
- package/dist/core/utils/generateId.d.ts +4 -1
- package/dist/core/utils/generateId.d.ts.map +1 -1
- package/dist/core/utils/generateId.js +5 -1
- package/dist/core/utils/generateId.js.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +15 -11
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.js +38 -42
- package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.d.ts +11 -8
- package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.js +37 -35
- package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
- package/dist/core/utils/stream/LineDecoderStream.d.ts +6 -3
- package/dist/core/utils/stream/LineDecoderStream.d.ts.map +1 -1
- package/dist/core/utils/stream/LineDecoderStream.js +23 -26
- package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
- package/dist/core/utils/stream/PipeableTransformStream.d.ts +5 -2
- package/dist/core/utils/stream/PipeableTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/PipeableTransformStream.js +14 -10
- package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
- package/dist/core/utils/stream/SSE.d.ts +10 -6
- package/dist/core/utils/stream/SSE.d.ts.map +1 -1
- package/dist/core/utils/stream/SSE.js +79 -91
- package/dist/core/utils/stream/SSE.js.map +1 -1
- package/dist/core/utils/stream/UnderlyingReadable.d.ts +7 -4
- package/dist/core/utils/stream/UnderlyingReadable.d.ts.map +1 -1
- package/dist/core/utils/stream/UnderlyingReadable.js +0 -2
- package/dist/core/utils/stream/merge.d.ts +11 -7
- package/dist/core/utils/stream/merge.d.ts.map +1 -1
- package/dist/core/utils/stream/merge.js +68 -170
- package/dist/core/utils/stream/merge.js.map +1 -1
- package/dist/core/utils/stream/path-utils.d.ts +11 -7
- package/dist/core/utils/stream/path-utils.d.ts.map +1 -1
- package/dist/core/utils/stream/path-utils.js +46 -52
- package/dist/core/utils/stream/path-utils.js.map +1 -1
- package/dist/core/utils/types.d.ts +109 -113
- package/dist/core/utils/types.d.ts.map +1 -1
- package/dist/core/utils/types.js +0 -2
- package/dist/core/utils/withPromiseOrValue.d.ts +4 -1
- package/dist/core/utils/withPromiseOrValue.d.ts.map +1 -1
- package/dist/core/utils/withPromiseOrValue.js +12 -15
- package/dist/core/utils/withPromiseOrValue.js.map +1 -1
- package/dist/index.d.ts +23 -24
- package/dist/index.js +16 -16
- package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts +141 -0
- package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts.map +1 -0
- package/dist/resumable/ResumableStreamContext.d.ts +28 -24
- package/dist/resumable/ResumableStreamContext.d.ts.map +1 -1
- package/dist/resumable/ResumableStreamContext.js +99 -114
- package/dist/resumable/ResumableStreamContext.js.map +1 -1
- package/dist/resumable/constants.d.ts +4 -1
- package/dist/resumable/constants.d.ts.map +1 -1
- package/dist/resumable/constants.js +5 -1
- package/dist/resumable/constants.js.map +1 -1
- package/dist/resumable/createResumableAssistantStreamResponse.d.ts +22 -21
- package/dist/resumable/createResumableAssistantStreamResponse.d.ts.map +1 -1
- package/dist/resumable/createResumableAssistantStreamResponse.js +25 -32
- package/dist/resumable/createResumableAssistantStreamResponse.js.map +1 -1
- package/dist/resumable/errors.d.ts +8 -5
- package/dist/resumable/errors.d.ts.map +1 -1
- package/dist/resumable/errors.js +14 -12
- package/dist/resumable/errors.js.map +1 -1
- package/dist/resumable/index.d.ts +7 -7
- package/dist/resumable/index.js +5 -5
- package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts +14 -10
- package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts.map +1 -1
- package/dist/resumable/stores/InMemoryResumableStreamStore.js +159 -193
- package/dist/resumable/stores/InMemoryResumableStreamStore.js.map +1 -1
- package/dist/resumable/stores/ioredis.d.ts +9 -5
- package/dist/resumable/stores/ioredis.d.ts.map +1 -1
- package/dist/resumable/stores/ioredis.js +70 -82
- package/dist/resumable/stores/ioredis.js.map +1 -1
- package/dist/resumable/stores/redis-impl.d.ts +51 -48
- package/dist/resumable/stores/redis-impl.d.ts.map +1 -1
- package/dist/resumable/stores/redis-impl.js +176 -176
- package/dist/resumable/stores/redis-impl.js.map +1 -1
- package/dist/resumable/stores/redis.d.ts +31 -28
- package/dist/resumable/stores/redis.d.ts.map +1 -1
- package/dist/resumable/stores/redis.js +87 -95
- package/dist/resumable/stores/redis.js.map +1 -1
- package/dist/resumable/types.d.ts +29 -26
- package/dist/resumable/types.d.ts.map +1 -1
- package/dist/resumable/types.js +0 -2
- package/dist/utils/AsyncIterableStream.d.ts +5 -2
- package/dist/utils/AsyncIterableStream.d.ts.map +1 -1
- package/dist/utils/AsyncIterableStream.js +17 -16
- package/dist/utils/AsyncIterableStream.js.map +1 -1
- package/dist/utils/json/fix-json.d.ts +4 -1
- package/dist/utils/json/fix-json.d.ts.map +1 -1
- package/dist/utils/json/fix-json.js +286 -380
- package/dist/utils/json/fix-json.js.map +1 -1
- package/dist/utils/json/is-json.d.ts +8 -4
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/is-json.js +13 -21
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/json/json-value.d.ts +7 -4
- package/dist/utils/json/json-value.d.ts.map +1 -1
- package/dist/utils/json/json-value.js +0 -2
- package/dist/utils/json/parse-partial-json-object.d.ts +11 -8
- package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -1
- package/dist/utils/json/parse-partial-json-object.js +50 -62
- package/dist/utils/json/parse-partial-json-object.js.map +1 -1
- package/dist/utils/promiseWithResolvers.d.ts +7 -4
- package/dist/utils/promiseWithResolvers.d.ts.map +1 -1
- package/dist/utils/promiseWithResolvers.js +17 -10
- package/dist/utils/promiseWithResolvers.js.map +1 -1
- package/dist/utils.d.ts +6 -6
- package/dist/utils.js +5 -5
- package/package.json +5 -4
- package/src/core/AssistantStream.ts +37 -0
- package/src/core/AssistantStreamChunk.ts +30 -0
- package/src/core/modules/assistant-stream.ts +68 -0
- package/src/core/tool/ToolResponse.ts +45 -1
- package/src/core/tool/tool-types.ts +102 -2
- package/src/core/tool/toolResultStream.ts +15 -0
- package/dist/core/AssistantStreamChunk.js.map +0 -1
- package/dist/core/object/types.js.map +0 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.js.map +0 -1
- package/dist/core/tool/tool-types.js.map +0 -1
- package/dist/core/tool/type-path-utils.js.map +0 -1
- package/dist/core/utils/stream/UnderlyingReadable.js.map +0 -1
- package/dist/core/utils/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/resumable/index.d.ts.map +0 -1
- package/dist/resumable/index.js.map +0 -1
- package/dist/resumable/types.js.map +0 -1
- package/dist/utils/json/json-value.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -22,14 +22,16 @@ import { createAssistantStreamResponse } from "assistant-stream";
|
|
|
22
22
|
|
|
23
23
|
export async function POST(request: Request) {
|
|
24
24
|
return createAssistantStreamResponse(async (controller) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
text.append("world!");
|
|
28
|
-
text.close();
|
|
25
|
+
controller.appendText("Hello, ");
|
|
26
|
+
controller.appendText("world!");
|
|
29
27
|
});
|
|
30
28
|
}
|
|
31
29
|
```
|
|
32
30
|
|
|
31
|
+
`createAssistantStreamResponse` returns a standard Web `Response`, so it works out of the box with any Fetch-style route (Next.js App Router, Hono, Bun.serve, Deno, Cloudflare Workers). Frameworks that use their own response objects (Express, Fastify) need a small adapter: copy `status` and `headers`, then pipe `response.body` into the framework's writable stream. Avoid sending the `Response` body into a `res` object whose lifecycle is already controlled by the framework (that is the `ERR_INVALID_STATE: Controller is already closed` failure mode).
|
|
32
|
+
|
|
33
|
+
`createAssistantStreamResponse` emits the data stream wire format. On the frontend, pair it with `useDataStreamRuntime({ api, protocol: "data-stream" })`; the default `protocol: "ui-message-stream"` expects an SSE-based format produced by AI SDK v6's `result.toUIMessageStreamResponse()` and will not decode this output.
|
|
34
|
+
|
|
33
35
|
For tool execution, pipe through `ToolExecutionStream`; for resumable streams (clients can reconnect and replay), import from the `assistant-stream/resumable` sub-path with a `redis` or `ioredis` adapter.
|
|
34
36
|
|
|
35
37
|
## Sub-paths
|
|
@@ -1,12 +1,53 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { AssistantStreamChunk } from "./AssistantStreamChunk.js";
|
|
2
|
+
|
|
3
|
+
//#region src/core/AssistantStream.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Stream of assistant-ui protocol chunks.
|
|
6
|
+
*
|
|
7
|
+
* `AssistantStream` is the normalized internal stream format used by
|
|
8
|
+
* encoders, decoders, accumulators, and tool execution transforms. Use an
|
|
9
|
+
* encoder such as `DataStreamEncoder` when returning it from an HTTP route,
|
|
10
|
+
* and the matching decoder when reading it back from a response.
|
|
11
|
+
*/
|
|
12
|
+
type AssistantStream = ReadableStream<AssistantStreamChunk>;
|
|
13
|
+
/**
|
|
14
|
+
* Encoder that converts an {@link AssistantStream} into bytes suitable for an
|
|
15
|
+
* HTTP response body.
|
|
16
|
+
*
|
|
17
|
+
* Encoders may expose response headers, such as content type or protocol
|
|
18
|
+
* markers, through `headers`.
|
|
19
|
+
*/
|
|
20
|
+
type AssistantStreamEncoder = ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk> & {
|
|
21
|
+
headers?: Headers;
|
|
5
22
|
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
23
|
+
declare const AssistantStream: {
|
|
24
|
+
/**
|
|
25
|
+
* Converts an {@link AssistantStream} into a `Response` using the supplied
|
|
26
|
+
* encoder.
|
|
27
|
+
*
|
|
28
|
+
* The encoder's `headers` are copied onto the response. Pair this with the
|
|
29
|
+
* decoder for the same wire format when consuming the response.
|
|
30
|
+
*/
|
|
31
|
+
toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
|
|
32
|
+
/**
|
|
33
|
+
* Reads an assistant stream from a `Response` body using the supplied
|
|
34
|
+
* decoder.
|
|
35
|
+
*
|
|
36
|
+
* The response body must be present and encoded with the matching assistant
|
|
37
|
+
* stream wire format.
|
|
38
|
+
*/
|
|
39
|
+
fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
|
|
40
|
+
/**
|
|
41
|
+
* Pipes an {@link AssistantStream} through an encoder and returns the
|
|
42
|
+
* resulting byte stream.
|
|
43
|
+
*/
|
|
44
|
+
toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBuffer>>;
|
|
45
|
+
/**
|
|
46
|
+
* Pipes a byte stream through a decoder and returns normalized
|
|
47
|
+
* {@link AssistantStreamChunk} values.
|
|
48
|
+
*/
|
|
49
|
+
fromByteStream(readable: ReadableStream<Uint8Array<ArrayBuffer>>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
|
|
11
50
|
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { AssistantStream, AssistantStreamEncoder };
|
|
12
53
|
//# sourceMappingURL=AssistantStream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantStream.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantStream.d.ts","names":[],"sources":["../../src/core/AssistantStream.ts"],"mappings":";;;;;AAUA;;;;AAAiE;AASjE;KATY,eAAA,GAAkB,cAAc,CAAC,oBAAA;;;;;;;;KASjC,sBAAA,GAAyB,oBAAA,CACnC,UAAA,CAAW,WAAA,GACX,oBAAA;EAEA,OAAA,GAAU,OAAA;AAAA;AAAA,cAGC,eAAA;EALX;;;;AAEiB;AAGnB;;qBAQqB,eAAA,EAAe,WAAA,EAAe,sBAAA,GAAsB,QAAA;EAApD;;;;;;;yBAcP,QAAA,EAAQ,WAAA,EACL,oBAAA,CACX,oBAAA,EACA,UAAA,CAAW,WAAA,KACZ,cAAA,CAAA,oBAAA;EAAA;;;;uBAUO,eAAA,EAAe,WAAA,EACV,oBAAA,CACX,UAAA,CAAW,WAAA,GACX,oBAAA,IACD,cAAA,CAAA,UAAA,CAAA,WAAA;EADC;;;;2BAWQ,cAAA,CAAe,UAAA,CAAW,WAAA,IAAa,WAAA,EACpC,oBAAA,CACX,oBAAA,EACA,UAAA,CAAW,WAAA,KACZ,cAAA,CAAA,oBAAA;AAAA"}
|
|
@@ -1,17 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
//#region src/core/AssistantStream.ts
|
|
2
|
+
const AssistantStream = {
|
|
3
|
+
/**
|
|
4
|
+
* Converts an {@link AssistantStream} into a `Response` using the supplied
|
|
5
|
+
* encoder.
|
|
6
|
+
*
|
|
7
|
+
* The encoder's `headers` are copied onto the response. Pair this with the
|
|
8
|
+
* decoder for the same wire format when consuming the response.
|
|
9
|
+
*/
|
|
10
|
+
toResponse(stream, transformer) {
|
|
11
|
+
return new Response(AssistantStream.toByteStream(stream, transformer), { headers: transformer.headers ?? {} });
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* Reads an assistant stream from a `Response` body using the supplied
|
|
15
|
+
* decoder.
|
|
16
|
+
*
|
|
17
|
+
* The response body must be present and encoded with the matching assistant
|
|
18
|
+
* stream wire format.
|
|
19
|
+
*/
|
|
20
|
+
fromResponse(response, transformer) {
|
|
21
|
+
return AssistantStream.fromByteStream(response.body, transformer);
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* Pipes an {@link AssistantStream} through an encoder and returns the
|
|
25
|
+
* resulting byte stream.
|
|
26
|
+
*/
|
|
27
|
+
toByteStream(stream, transformer) {
|
|
28
|
+
return stream.pipeThrough(transformer);
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Pipes a byte stream through a decoder and returns normalized
|
|
32
|
+
* {@link AssistantStreamChunk} values.
|
|
33
|
+
*/
|
|
34
|
+
fromByteStream(readable, transformer) {
|
|
35
|
+
return readable.pipeThrough(transformer);
|
|
36
|
+
}
|
|
16
37
|
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { AssistantStream };
|
|
40
|
+
|
|
17
41
|
//# sourceMappingURL=AssistantStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantStream.js","
|
|
1
|
+
{"version":3,"file":"AssistantStream.js","names":[],"sources":["../../src/core/AssistantStream.ts"],"sourcesContent":["import type { AssistantStreamChunk } from \"./AssistantStreamChunk\";\n\n/**\n * Stream of assistant-ui protocol chunks.\n *\n * `AssistantStream` is the normalized internal stream format used by\n * encoders, decoders, accumulators, and tool execution transforms. Use an\n * encoder such as `DataStreamEncoder` when returning it from an HTTP route,\n * and the matching decoder when reading it back from a response.\n */\nexport type AssistantStream = ReadableStream<AssistantStreamChunk>;\n\n/**\n * Encoder that converts an {@link AssistantStream} into bytes suitable for an\n * HTTP response body.\n *\n * Encoders may expose response headers, such as content type or protocol\n * markers, through `headers`.\n */\nexport type AssistantStreamEncoder = ReadableWritablePair<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n> & {\n headers?: Headers;\n};\n\nexport const AssistantStream = {\n /**\n * Converts an {@link AssistantStream} into a `Response` using the supplied\n * encoder.\n *\n * The encoder's `headers` are copied onto the response. Pair this with the\n * decoder for the same wire format when consuming the response.\n */\n toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder) {\n return new Response(AssistantStream.toByteStream(stream, transformer), {\n headers: transformer.headers ?? {},\n });\n },\n\n /**\n * Reads an assistant stream from a `Response` body using the supplied\n * decoder.\n *\n * The response body must be present and encoded with the matching assistant\n * stream wire format.\n */\n fromResponse(\n response: Response,\n transformer: ReadableWritablePair<\n AssistantStreamChunk,\n Uint8Array<ArrayBuffer>\n >,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n },\n\n /**\n * Pipes an {@link AssistantStream} through an encoder and returns the\n * resulting byte stream.\n */\n toByteStream(\n stream: AssistantStream,\n transformer: ReadableWritablePair<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n >,\n ) {\n return stream.pipeThrough(transformer);\n },\n\n /**\n * Pipes a byte stream through a decoder and returns normalized\n * {@link AssistantStreamChunk} values.\n */\n fromByteStream(\n readable: ReadableStream<Uint8Array<ArrayBuffer>>,\n transformer: ReadableWritablePair<\n AssistantStreamChunk,\n Uint8Array<ArrayBuffer>\n >,\n ) {\n return readable.pipeThrough(transformer);\n },\n};\n"],"mappings":";AA0BA,MAAa,kBAAkB;;;;;;;;CAQ7B,WAAW,QAAyB,aAAqC;EACvE,OAAO,IAAI,SAAS,gBAAgB,aAAa,QAAQ,WAAW,GAAG,EACrE,SAAS,YAAY,WAAW,CAAC,EACnC,CAAC;CACH;;;;;;;;CASA,aACE,UACA,aAIA;EACA,OAAO,gBAAgB,eAAe,SAAS,MAAO,WAAW;CACnE;;;;;CAMA,aACE,QACA,aAIA;EACA,OAAO,OAAO,YAAY,WAAW;CACvC;;;;;CAMA,eACE,UACA,aAIA;EACA,OAAO,SAAS,YAAY,WAAW;CACzC;AACF"}
|
|
@@ -1,80 +1,103 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { ReadonlyJSONValue } from "../utils/json/json-value.js";
|
|
2
|
+
import { ToolModelContentPart } from "./tool/tool-types.js";
|
|
3
|
+
import { ObjectStreamOperation } from "./object/types.js";
|
|
4
|
+
|
|
5
|
+
//#region src/core/AssistantStreamChunk.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Initial metadata for a stream part.
|
|
8
|
+
*
|
|
9
|
+
* A part starts with `part-start`, receives zero or more chunks at the same
|
|
10
|
+
* path, and ends with `part-finish`.
|
|
11
|
+
*/
|
|
12
|
+
type PartInit = {
|
|
13
|
+
readonly type: "text" | "reasoning";
|
|
14
|
+
readonly parentId?: string;
|
|
7
15
|
} | {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
readonly type: "tool-call";
|
|
17
|
+
readonly toolCallId: string;
|
|
18
|
+
readonly toolName: string;
|
|
19
|
+
readonly parentId?: string;
|
|
12
20
|
} | {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
readonly type: "source";
|
|
22
|
+
readonly sourceType: "url";
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly url: string;
|
|
25
|
+
readonly title?: string;
|
|
26
|
+
readonly parentId?: string;
|
|
19
27
|
} | {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
readonly type: "file";
|
|
29
|
+
readonly data: string;
|
|
30
|
+
readonly mimeType: string;
|
|
31
|
+
readonly parentId?: string;
|
|
24
32
|
} | {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
readonly type: "data";
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly data: ReadonlyJSONValue;
|
|
36
|
+
readonly parentId?: string;
|
|
29
37
|
};
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Normalized assistant-ui streaming protocol chunk.
|
|
40
|
+
*
|
|
41
|
+
* `path` identifies the part or nested position the chunk belongs to. Encoders
|
|
42
|
+
* may translate these chunks into provider-specific wire formats, while
|
|
43
|
+
* accumulators consume them to build assistant messages.
|
|
44
|
+
*/
|
|
45
|
+
type AssistantStreamChunk = {
|
|
46
|
+
readonly path: readonly number[];
|
|
32
47
|
} & ({
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
/** Opens a new content part at `path`. */readonly type: "part-start";
|
|
49
|
+
readonly part: PartInit;
|
|
35
50
|
} | {
|
|
36
|
-
|
|
51
|
+
/** Closes the current part at `path`. */readonly type: "part-finish";
|
|
37
52
|
} | {
|
|
38
|
-
|
|
53
|
+
/** Marks streamed tool-call argument text as complete. */readonly type: "tool-call-args-text-finish";
|
|
39
54
|
} | {
|
|
40
|
-
|
|
41
|
-
|
|
55
|
+
/** Appends text to a text, reasoning, or tool-call argument part. */readonly type: "text-delta";
|
|
56
|
+
readonly textDelta: string;
|
|
42
57
|
} | {
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
/** Appends provider or application annotations to the current message. */readonly type: "annotations";
|
|
59
|
+
readonly annotations: ReadonlyJSONValue[];
|
|
45
60
|
} | {
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
/** Emits application data chunks associated with the current message. */readonly type: "data";
|
|
62
|
+
readonly data: ReadonlyJSONValue[];
|
|
48
63
|
} | {
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
/** Starts a model generation step. */readonly type: "step-start";
|
|
65
|
+
readonly messageId: string;
|
|
51
66
|
} | {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
67
|
+
/** Finishes a model generation step and reports usage for that step. */readonly type: "step-finish";
|
|
68
|
+
readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
|
|
69
|
+
readonly usage: {
|
|
70
|
+
readonly inputTokens: number;
|
|
71
|
+
readonly outputTokens: number;
|
|
72
|
+
};
|
|
73
|
+
readonly isContinued: boolean;
|
|
59
74
|
} | {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
/** Finishes the assistant message and reports final usage. */readonly type: "message-finish";
|
|
76
|
+
readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
|
|
77
|
+
readonly usage: {
|
|
78
|
+
readonly inputTokens: number;
|
|
79
|
+
readonly outputTokens: number;
|
|
80
|
+
};
|
|
66
81
|
} | {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Emits the result for a tool-call part.
|
|
84
|
+
*
|
|
85
|
+
* `artifact` is UI-visible metadata, while `modelContent` can override
|
|
86
|
+
* what is sent back to the model.
|
|
87
|
+
*/
|
|
88
|
+
readonly type: "result";
|
|
89
|
+
readonly artifact?: ReadonlyJSONValue;
|
|
90
|
+
readonly result: ReadonlyJSONValue;
|
|
91
|
+
readonly isError: boolean;
|
|
92
|
+
readonly modelContent?: readonly ToolModelContentPart[];
|
|
93
|
+
readonly messages?: ReadonlyJSONValue;
|
|
73
94
|
} | {
|
|
74
|
-
|
|
75
|
-
|
|
95
|
+
/** Emits a stream-level error message. */readonly type: "error";
|
|
96
|
+
readonly error: string;
|
|
76
97
|
} | {
|
|
77
|
-
|
|
78
|
-
|
|
98
|
+
/** Applies object-stream operations to state carried by this stream. */readonly type: "update-state";
|
|
99
|
+
readonly operations: ObjectStreamOperation[];
|
|
79
100
|
});
|
|
101
|
+
//#endregion
|
|
102
|
+
export { AssistantStreamChunk, PartInit };
|
|
80
103
|
//# sourceMappingURL=AssistantStreamChunk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantStreamChunk.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantStreamChunk.d.ts","names":[],"sources":["../../src/core/AssistantStreamChunk.ts"],"mappings":";;;;;;;AAUA;;;;KAAY,QAAA;EAAA,SAEG,IAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,UAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,UAAA;EAAA,SACA,EAAA;EAAA,SACA,GAAA;EAAA,SACA,KAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA,EAAM,iBAAiB;EAAA,SACvB,QAAA;AAAA;;;;;;;;KAUH,oBAAA;EAAA,SAAkC,IAAA;AAAA;EAAA,mDAG/B,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;AAAA;EAIN,kDAAA,IAAA;AAAA;EASA,mEALA,IAAA;AAAA;EAUa,8EANb,IAAA;EAAA,SACA,SAAA;AAAA;EAcA,mFAVA,IAAA;EAAA,SACA,WAAA,EAAa,iBAAA;AAAA;EAuBb,kFAnBA,IAAA;EAAA,SACA,IAAA,EAAM,iBAAA;AAAA;EA0BN,+CAtBA,IAAA;EAAA,SACA,SAAA;AAAA;EAgCE,iFA5BF,IAAA;EAAA,SACA,YAAA;EAAA,SAQA,KAAA;IAAA,SACE,WAAA;IAAA,SACA,YAAA;EAAA;EAAA,SAEF,WAAA;AAAA;EA8BA,uEA1BA,IAAA;EAAA,SACA,YAAA;EAAA,SAQA,KAAA;IAAA,SACE,WAAA;IAAA,SACA,YAAA;EAAA;AAAA;EAyB+B;;;;;;EAAA,SAfjC,IAAA;EAAA,SACA,QAAA,GAAW,iBAAA;EAAA,SACX,MAAA,EAAQ,iBAAA;EAAA,SACR,OAAA;EAAA,SACA,YAAA,YAAwB,oBAAA;EAAA,SACxB,QAAA,GAAW,iBAAA;AAAA;qDAIX,IAAA;EAAA,SACA,KAAA;AAAA;mFAIA,IAAA;EAAA,SACA,UAAA,EAAY,qBAAA;AAAA"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { AssistantMessage } from "../utils/types.js";
|
|
2
|
+
import { AssistantStream } from "../AssistantStream.js";
|
|
3
|
+
|
|
4
|
+
//#region src/core/accumulators/AssistantMessageStream.d.ts
|
|
5
|
+
declare class AssistantMessageStream {
|
|
6
|
+
readonly readable: ReadableStream<AssistantMessage>;
|
|
7
|
+
constructor(readable: ReadableStream<AssistantMessage>);
|
|
8
|
+
static fromAssistantStream(stream: AssistantStream): AssistantMessageStream;
|
|
9
|
+
unstable_result(): Promise<AssistantMessage>;
|
|
10
|
+
[Symbol.asyncIterator](): {
|
|
11
|
+
next(): Promise<IteratorResult<AssistantMessage, undefined>>;
|
|
12
|
+
};
|
|
13
|
+
tee(): [AssistantMessageStream, AssistantMessageStream];
|
|
12
14
|
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { AssistantMessageStream };
|
|
13
17
|
//# sourceMappingURL=AssistantMessageStream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantMessageStream.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantMessageStream.d.ts","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"mappings":";;;;cAIa,sBAAA;EAAA,SACiB,QAAA,EAAU,cAAA,CAAe,gBAAA;cAAzB,QAAA,EAAU,cAAA,CAAe,gBAAA;EAAA,OAI9C,mBAAA,CAAoB,MAAA,EAAQ,eAAA,GAAe,sBAAA;EAM5C,eAAA,CAAA,GAAmB,OAAA,CAAQ,gBAAA;EAAA,CAwBhC,MAAA,CAAO,aAAA;YAGU,OAAA,CAAQ,cAAA,CAAe,gBAAA;EAAA;EAOzC,GAAA,CAAA,IAAQ,sBAAA,EAAwB,sBAAA;AAAA"}
|
|
@@ -1,50 +1,54 @@
|
|
|
1
1
|
import { AssistantMessageAccumulator } from "./assistant-message-accumulator.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
2
|
+
//#region src/core/accumulators/AssistantMessageStream.ts
|
|
3
|
+
var AssistantMessageStream = class AssistantMessageStream {
|
|
4
|
+
readable;
|
|
5
|
+
constructor(readable) {
|
|
6
|
+
this.readable = readable;
|
|
7
|
+
this.readable = readable;
|
|
8
|
+
}
|
|
9
|
+
static fromAssistantStream(stream) {
|
|
10
|
+
return new AssistantMessageStream(stream.pipeThrough(new AssistantMessageAccumulator()));
|
|
11
|
+
}
|
|
12
|
+
async unstable_result() {
|
|
13
|
+
let last;
|
|
14
|
+
for await (const chunk of this) last = chunk;
|
|
15
|
+
if (!last) return {
|
|
16
|
+
role: "assistant",
|
|
17
|
+
status: {
|
|
18
|
+
type: "complete",
|
|
19
|
+
reason: "unknown"
|
|
20
|
+
},
|
|
21
|
+
parts: [],
|
|
22
|
+
content: [],
|
|
23
|
+
metadata: {
|
|
24
|
+
unstable_state: null,
|
|
25
|
+
unstable_data: [],
|
|
26
|
+
unstable_annotations: [],
|
|
27
|
+
steps: [],
|
|
28
|
+
custom: {}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return last;
|
|
32
|
+
}
|
|
33
|
+
[Symbol.asyncIterator]() {
|
|
34
|
+
const reader = this.readable.getReader();
|
|
35
|
+
return { async next() {
|
|
36
|
+
const { done, value } = await reader.read();
|
|
37
|
+
return done ? {
|
|
38
|
+
done: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
} : {
|
|
41
|
+
done: false,
|
|
42
|
+
value
|
|
43
|
+
};
|
|
44
|
+
} };
|
|
45
|
+
}
|
|
46
|
+
tee() {
|
|
47
|
+
const [readable1, readable2] = this.readable.tee();
|
|
48
|
+
return [new AssistantMessageStream(readable1), new AssistantMessageStream(readable2)];
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { AssistantMessageStream };
|
|
53
|
+
|
|
50
54
|
//# sourceMappingURL=AssistantMessageStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantMessageStream.js","
|
|
1
|
+
{"version":3,"file":"AssistantMessageStream.js","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantMessage } from \"../utils/types\";\nimport { AssistantMessageAccumulator } from \"./assistant-message-accumulator\";\n\nexport class AssistantMessageStream {\n constructor(public readonly readable: ReadableStream<AssistantMessage>) {\n this.readable = readable;\n }\n\n static fromAssistantStream(stream: AssistantStream) {\n return new AssistantMessageStream(\n stream.pipeThrough(new AssistantMessageAccumulator()),\n );\n }\n\n async unstable_result(): Promise<AssistantMessage> {\n let last: AssistantMessage | undefined;\n for await (const chunk of this) {\n last = chunk;\n }\n\n if (!last) {\n return {\n role: \"assistant\",\n status: { type: \"complete\", reason: \"unknown\" },\n parts: [],\n content: [],\n metadata: {\n unstable_state: null,\n unstable_data: [],\n unstable_annotations: [],\n steps: [],\n custom: {},\n },\n };\n }\n return last;\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.readable.getReader();\n return {\n async next(): Promise<IteratorResult<AssistantMessage, undefined>> {\n const { done, value } = await reader.read();\n return done ? { done: true, value: undefined } : { done: false, value };\n },\n };\n }\n\n tee(): [AssistantMessageStream, AssistantMessageStream] {\n const [readable1, readable2] = this.readable.tee();\n return [\n new AssistantMessageStream(readable1),\n new AssistantMessageStream(readable2),\n ];\n }\n}\n"],"mappings":";;AAIA,IAAa,yBAAb,MAAa,uBAAuB;CACN;CAA5B,YAAY,UAA4D;EAA5C,KAAA,WAAA;EAC1B,KAAK,WAAW;CAClB;CAEA,OAAO,oBAAoB,QAAyB;EAClD,OAAO,IAAI,uBACT,OAAO,YAAY,IAAI,4BAA4B,CAAC,CACtD;CACF;CAEA,MAAM,kBAA6C;EACjD,IAAI;EACJ,WAAW,MAAM,SAAS,MACxB,OAAO;EAGT,IAAI,CAAC,MACH,OAAO;GACL,MAAM;GACN,QAAQ;IAAE,MAAM;IAAY,QAAQ;GAAU;GAC9C,OAAO,CAAC;GACR,SAAS,CAAC;GACV,UAAU;IACR,gBAAgB;IAChB,eAAe,CAAC;IAChB,sBAAsB,CAAC;IACvB,OAAO,CAAC;IACR,QAAQ,CAAC;GACX;EACF;EAEF,OAAO;CACT;CAEA,CAAC,OAAO,iBAAiB;EACvB,MAAM,SAAS,KAAK,SAAS,UAAU;EACvC,OAAO,EACL,MAAM,OAA6D;GACjE,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,KAAK;GAC1C,OAAO,OAAO;IAAE,MAAM;IAAM,OAAO,KAAA;GAAU,IAAI;IAAE,MAAM;IAAO;GAAM;EACxE,EACF;CACF;CAEA,MAAwD;EACtD,MAAM,CAAC,WAAW,aAAa,KAAK,SAAS,IAAI;EACjD,OAAO,CACL,IAAI,uBAAuB,SAAS,GACpC,IAAI,uBAAuB,SAAS,CACtC;CACF;AACF"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { AssistantMessageTiming } from "../utils/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/core/accumulators/TimingTracker.d.ts
|
|
4
|
+
declare class TimingTracker {
|
|
5
|
+
private _streamStartTime;
|
|
6
|
+
private _firstTokenTime;
|
|
7
|
+
private _totalChunks;
|
|
8
|
+
private _toolCallIds;
|
|
9
|
+
constructor();
|
|
10
|
+
recordChunk(): void;
|
|
11
|
+
recordFirstToken(): void;
|
|
12
|
+
recordToolCallStart(toolCallId: string): void;
|
|
13
|
+
getTiming(outputTokens?: number, totalText?: string): AssistantMessageTiming;
|
|
12
14
|
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { TimingTracker };
|
|
13
17
|
//# sourceMappingURL=TimingTracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimingTracker.d.ts","
|
|
1
|
+
{"version":3,"file":"TimingTracker.d.ts","names":[],"sources":["../../../src/core/accumulators/TimingTracker.ts"],"mappings":";;;cAEa,aAAA;EAAA,QACH,gBAAA;EAAA,QACA,eAAA;EAAA,QACA,YAAA;EAAA,QACA,YAAA;;EAMR,WAAA,CAAA;EAIA,gBAAA,CAAA;EAMA,mBAAA,CAAoB,UAAA;EAIpB,SAAA,CAAU,YAAA,WAAuB,SAAA,YAAqB,sBAAsB;AAAA"}
|