assistant-stream 0.3.14 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,49 @@
1
1
  import type { AssistantStreamChunk } from "./AssistantStreamChunk.js";
2
+ /**
3
+ * Stream of assistant-ui protocol chunks.
4
+ *
5
+ * `AssistantStream` is the normalized internal stream format used by
6
+ * encoders, decoders, accumulators, and tool execution transforms. Use an
7
+ * encoder such as `DataStreamEncoder` when returning it from an HTTP route,
8
+ * and the matching decoder when reading it back from a response.
9
+ */
2
10
  export type AssistantStream = ReadableStream<AssistantStreamChunk>;
11
+ /**
12
+ * Encoder that converts an {@link AssistantStream} into bytes suitable for an
13
+ * HTTP response body.
14
+ *
15
+ * Encoders may expose response headers, such as content type or protocol
16
+ * markers, through `headers`.
17
+ */
3
18
  export type AssistantStreamEncoder = ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk> & {
4
19
  headers?: Headers;
5
20
  };
6
21
  export declare const AssistantStream: {
22
+ /**
23
+ * Converts an {@link AssistantStream} into a `Response` using the supplied
24
+ * encoder.
25
+ *
26
+ * The encoder's `headers` are copied onto the response. Pair this with the
27
+ * decoder for the same wire format when consuming the response.
28
+ */
7
29
  toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
30
+ /**
31
+ * Reads an assistant stream from a `Response` body using the supplied
32
+ * decoder.
33
+ *
34
+ * The response body must be present and encoded with the matching assistant
35
+ * stream wire format.
36
+ */
8
37
  fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
38
+ /**
39
+ * Pipes an {@link AssistantStream} through an encoder and returns the
40
+ * resulting byte stream.
41
+ */
9
42
  toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBuffer>>;
43
+ /**
44
+ * Pipes a byte stream through a decoder and returns normalized
45
+ * {@link AssistantStreamChunk} values.
46
+ */
10
47
  fromByteStream(readable: ReadableStream<Uint8Array<ArrayBuffer>>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
11
48
  };
12
49
  //# sourceMappingURL=AssistantStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStream.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kCAA+B;AAEnE,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CACvD,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,eAAe;uBACP,eAAe,eAAe,sBAAsB;2BAO3D,QAAQ,eACL,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;yBAMO,eAAe,eACV,oBAAoB,CAC/B,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB;6BAMS,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,eACpC,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;CAIJ,CAAC"}
1
+ {"version":3,"file":"AssistantStream.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kCAA+B;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CACvD,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B;;;;;;OAMG;uBACgB,eAAe,eAAe,sBAAsB;IAMvE;;;;;;OAMG;2BAES,QAAQ,eACL,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;IAKH;;;OAGG;yBAEO,eAAe,eACV,oBAAoB,CAC/B,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB;IAKH;;;OAGG;6BAES,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,eACpC,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;CAIJ,CAAC"}
@@ -1,15 +1,37 @@
1
1
  export const AssistantStream = {
2
+ /**
3
+ * Converts an {@link AssistantStream} into a `Response` using the supplied
4
+ * encoder.
5
+ *
6
+ * The encoder's `headers` are copied onto the response. Pair this with the
7
+ * decoder for the same wire format when consuming the response.
8
+ */
2
9
  toResponse(stream, transformer) {
3
10
  return new Response(AssistantStream.toByteStream(stream, transformer), {
4
11
  headers: transformer.headers ?? {},
5
12
  });
6
13
  },
14
+ /**
15
+ * Reads an assistant stream from a `Response` body using the supplied
16
+ * decoder.
17
+ *
18
+ * The response body must be present and encoded with the matching assistant
19
+ * stream wire format.
20
+ */
7
21
  fromResponse(response, transformer) {
8
22
  return AssistantStream.fromByteStream(response.body, transformer);
9
23
  },
24
+ /**
25
+ * Pipes an {@link AssistantStream} through an encoder and returns the
26
+ * resulting byte stream.
27
+ */
10
28
  toByteStream(stream, transformer) {
11
29
  return stream.pipeThrough(transformer);
12
30
  },
31
+ /**
32
+ * Pipes a byte stream through a decoder and returns normalized
33
+ * {@link AssistantStreamChunk} values.
34
+ */
13
35
  fromByteStream(readable, transformer) {
14
36
  return readable.pipeThrough(transformer);
15
37
  },
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStream.js","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,CAAC,MAAuB,EAAE,WAAmC;QACrE,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;YACrE,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CACV,QAAkB,EAClB,WAGC;QAED,OAAO,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAK,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,YAAY,CACV,MAAuB,EACvB,WAGC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,cAAc,CACZ,QAAiD,EACjD,WAGC;QAED,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"AssistantStream.js","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,MAAuB,EAAE,WAAmC;QACrE,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;YACrE,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,QAAkB,EAClB,WAGC;QAED,OAAO,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAK,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,MAAuB,EACvB,WAGC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,QAAiD,EACjD,WAGC;QAED,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import type { ReadonlyJSONValue } from "../utils/json/json-value.js";
2
2
  import type { ObjectStreamOperation } from "./object/types.js";
3
3
  import type { ToolModelContentPart } from "./tool/tool-types.js";
4
+ /**
5
+ * Initial metadata for a stream part.
6
+ *
7
+ * A part starts with `part-start`, receives zero or more chunks at the same
8
+ * path, and ends with `part-finish`.
9
+ */
4
10
  export type PartInit = {
5
11
  readonly type: "text" | "reasoning";
6
12
  readonly parentId?: string;
@@ -27,28 +33,43 @@ export type PartInit = {
27
33
  readonly data: ReadonlyJSONValue;
28
34
  readonly parentId?: string;
29
35
  };
36
+ /**
37
+ * Normalized assistant-ui streaming protocol chunk.
38
+ *
39
+ * `path` identifies the part or nested position the chunk belongs to. Encoders
40
+ * may translate these chunks into provider-specific wire formats, while
41
+ * accumulators consume them to build assistant messages.
42
+ */
30
43
  export type AssistantStreamChunk = {
31
44
  readonly path: readonly number[];
32
45
  } & ({
46
+ /** Opens a new content part at `path`. */
33
47
  readonly type: "part-start";
34
48
  readonly part: PartInit;
35
49
  } | {
50
+ /** Closes the current part at `path`. */
36
51
  readonly type: "part-finish";
37
52
  } | {
53
+ /** Marks streamed tool-call argument text as complete. */
38
54
  readonly type: "tool-call-args-text-finish";
39
55
  } | {
56
+ /** Appends text to a text, reasoning, or tool-call argument part. */
40
57
  readonly type: "text-delta";
41
58
  readonly textDelta: string;
42
59
  } | {
60
+ /** Appends provider or application annotations to the current message. */
43
61
  readonly type: "annotations";
44
62
  readonly annotations: ReadonlyJSONValue[];
45
63
  } | {
64
+ /** Emits application data chunks associated with the current message. */
46
65
  readonly type: "data";
47
66
  readonly data: ReadonlyJSONValue[];
48
67
  } | {
68
+ /** Starts a model generation step. */
49
69
  readonly type: "step-start";
50
70
  readonly messageId: string;
51
71
  } | {
72
+ /** Finishes a model generation step and reports usage for that step. */
52
73
  readonly type: "step-finish";
53
74
  readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
54
75
  readonly usage: {
@@ -57,6 +78,7 @@ export type AssistantStreamChunk = {
57
78
  };
58
79
  readonly isContinued: boolean;
59
80
  } | {
81
+ /** Finishes the assistant message and reports final usage. */
60
82
  readonly type: "message-finish";
61
83
  readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
62
84
  readonly usage: {
@@ -64,6 +86,12 @@ export type AssistantStreamChunk = {
64
86
  readonly outputTokens: number;
65
87
  };
66
88
  } | {
89
+ /**
90
+ * Emits the result for a tool-call part.
91
+ *
92
+ * `artifact` is UI-visible metadata, while `modelContent` can override
93
+ * what is sent back to the model.
94
+ */
67
95
  readonly type: "result";
68
96
  readonly artifact?: ReadonlyJSONValue;
69
97
  readonly result: ReadonlyJSONValue;
@@ -71,9 +99,11 @@ export type AssistantStreamChunk = {
71
99
  readonly modelContent?: readonly ToolModelContentPart[];
72
100
  readonly messages?: ReadonlyJSONValue;
73
101
  } | {
102
+ /** Emits a stream-level error message. */
74
103
  readonly type: "error";
75
104
  readonly error: string;
76
105
  } | {
106
+ /** Applies object-stream operations to state carried by this stream. */
77
107
  readonly type: "update-state";
78
108
  readonly operations: ObjectStreamOperation[];
79
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStreamChunk.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStreamChunk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantStreamChunk.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStreamChunk.ts"],"names":[],"mappings":"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"}
@@ -12,22 +12,90 @@ type ToolCallPartInit = {
12
12
  args?: ReadonlyJSONObject;
13
13
  response?: ToolResponseLike<ReadonlyJSONValue>;
14
14
  };
15
+ /**
16
+ * Imperative writer for constructing an {@link AssistantStream}.
17
+ *
18
+ * The controller handles part boundaries for common streaming operations. Use
19
+ * `appendText` and `appendReasoning` for simple token streams, or open explicit
20
+ * parts with `addTextPart` and `addToolCallPart` when you need direct control.
21
+ */
15
22
  export type AssistantStreamController = {
23
+ /** Appends text to the current text part, opening one if needed. */
16
24
  appendText(textDelta: string): void;
25
+ /** Appends reasoning text to the current reasoning part, opening one if needed. */
17
26
  appendReasoning(reasoningDelta: string): void;
27
+ /** Appends a source citation part to the stream. */
18
28
  appendSource(options: SourcePart): void;
29
+ /** Appends a file part to the stream. */
19
30
  appendFile(options: FilePart): void;
31
+ /** Appends a named data part to the stream. */
20
32
  appendData(options: DataPart): void;
33
+ /**
34
+ * Opens a text part and returns its writer.
35
+ *
36
+ * Close the returned controller when the text part is complete. Opening a new
37
+ * part through this controller closes any implicit text or reasoning append
38
+ * part first.
39
+ */
21
40
  addTextPart(): TextStreamController;
41
+ /**
42
+ * Opens a tool-call part by tool name and returns its writer.
43
+ *
44
+ * A tool call id is generated automatically. Use the object overload when the
45
+ * caller already has an id, initial args, args text, or response.
46
+ */
22
47
  addToolCallPart(options: string): ToolCallStreamController;
48
+ /**
49
+ * Opens a tool-call part and returns its writer.
50
+ *
51
+ * Use this overload to provide a stable `toolCallId`, initial arguments,
52
+ * streamed argument text, or an immediate {@link ToolResponseLike}.
53
+ */
23
54
  addToolCallPart(options: ToolCallPartInit): ToolCallStreamController;
55
+ /** Enqueues a raw protocol chunk. Prefer higher-level helpers when possible. */
24
56
  enqueue(chunk: AssistantStreamChunk): void;
57
+ /**
58
+ * Merges another assistant stream into this stream.
59
+ *
60
+ * Paths from the merged stream are remapped so its parts appear at the next
61
+ * available position in this controller's output.
62
+ */
25
63
  merge(stream: AssistantStream): void;
64
+ /** Closes any active part and finishes the stream. */
26
65
  close(): void;
66
+ /**
67
+ * Returns a controller that writes child parts with `parentId` attached.
68
+ *
69
+ * Use this for nested or related parts that should be associated with an
70
+ * existing message or part in downstream renderers.
71
+ */
27
72
  withParentId(parentId: string): AssistantStreamController;
28
73
  };
74
+ /**
75
+ * Creates an {@link AssistantStream} and writes to it with an
76
+ * {@link AssistantStreamController}.
77
+ *
78
+ * The callback may write synchronously or asynchronously. If it throws, an
79
+ * `error` chunk is emitted before the error is rethrown; when the callback
80
+ * settles, the stream is closed automatically unless the controller was
81
+ * already closed.
82
+ */
29
83
  export declare function createAssistantStream(callback: (controller: AssistantStreamController) => PromiseLike<void> | void): AssistantStream;
84
+ /**
85
+ * Creates an {@link AssistantStream} together with the controller used to
86
+ * write into it.
87
+ *
88
+ * Use this when the stream needs to be returned before all writers are known.
89
+ * Closing the returned controller finishes the paired stream.
90
+ */
30
91
  export declare function createAssistantStreamController(): readonly [AssistantStream, AssistantStreamController];
92
+ /**
93
+ * Creates a `Response` whose body is an encoded {@link AssistantStream}.
94
+ *
95
+ * This is the HTTP-route convenience form of {@link createAssistantStream}; it
96
+ * uses {@link DataStreamEncoder} so the response can be consumed by matching
97
+ * assistant-ui data stream decoders.
98
+ */
31
99
  export declare function createAssistantStreamResponse(callback: (controller: AssistantStreamController) => PromiseLike<void> | void): Response;
32
100
  export {};
33
101
  //# sourceMappingURL=assistant-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-stream.d.ts","sourceRoot":"","sources":["../../../src/core/modules/assistant-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,8BAA2B;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAY,mCAAgC;AAE9E,OAAO,EAA8B,KAAK,oBAAoB,EAAE,kBAAe;AAC/E,OAAO,EAEL,KAAK,wBAAwB,EAC9B,uBAAoB;AAOrB,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,0BAAuB;AAErE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,uCAAoC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gCAA6B;AAG7D,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,WAAW,IAAI,oBAAoB,CAAC;IACpC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAAC;IAC3D,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,wBAAwB,CAAC;IACrE,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,KAAK,IAAI,IAAI,CAAC;IACd,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,yBAAyB,CAAC;CAC3D,CAAC;AAwLF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAC5E,eAAe,CAwBjB;AAED,wBAAgB,+BAA+B,0DAa9C;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,YAM9E"}
1
+ {"version":3,"file":"assistant-stream.d.ts","sourceRoot":"","sources":["../../../src/core/modules/assistant-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,8BAA2B;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAY,mCAAgC;AAE9E,OAAO,EAA8B,KAAK,oBAAoB,EAAE,kBAAe;AAC/E,OAAO,EAEL,KAAK,wBAAwB,EAC9B,uBAAoB;AAOrB,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,0BAAuB;AAErE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,uCAAoC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gCAA6B;AAG7D,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CAChD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,oEAAoE;IACpE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,oDAAoD;IACpD,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,yCAAyC;IACzC,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,+CAA+C;IAC/C,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC;;;;;;OAMG;IACH,WAAW,IAAI,oBAAoB,CAAC;IACpC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAAC;IAC3D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,wBAAwB,CAAC;IACrE,gFAAgF;IAChF,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,yBAAyB,CAAC;CAC3D,CAAC;AAwLF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAC5E,eAAe,CAwBjB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,0DAa9C;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,YAM9E"}
@@ -131,6 +131,15 @@ class AssistantStreamControllerImpl {
131
131
  this._state.closeSubscriber?.();
132
132
  }
133
133
  }
134
+ /**
135
+ * Creates an {@link AssistantStream} and writes to it with an
136
+ * {@link AssistantStreamController}.
137
+ *
138
+ * The callback may write synchronously or asynchronously. If it throws, an
139
+ * `error` chunk is emitted before the error is rethrown; when the callback
140
+ * settles, the stream is closed automatically unless the controller was
141
+ * already closed.
142
+ */
134
143
  export function createAssistantStream(callback) {
135
144
  const controller = new AssistantStreamControllerImpl();
136
145
  const runTask = async () => {
@@ -156,6 +165,13 @@ export function createAssistantStream(callback) {
156
165
  runTask();
157
166
  return controller.__internal_getReadable();
158
167
  }
168
+ /**
169
+ * Creates an {@link AssistantStream} together with the controller used to
170
+ * write into it.
171
+ *
172
+ * Use this when the stream needs to be returned before all writers are known.
173
+ * Closing the returned controller finishes the paired stream.
174
+ */
159
175
  export function createAssistantStreamController() {
160
176
  const { resolve, promise } = promiseWithResolvers();
161
177
  let controller;
@@ -166,6 +182,13 @@ export function createAssistantStreamController() {
166
182
  });
167
183
  return [stream, controller];
168
184
  }
185
+ /**
186
+ * Creates a `Response` whose body is an encoded {@link AssistantStream}.
187
+ *
188
+ * This is the HTTP-route convenience form of {@link createAssistantStream}; it
189
+ * uses {@link DataStreamEncoder} so the response can be consumed by matching
190
+ * assistant-ui data stream decoders.
191
+ */
169
192
  export function createAssistantStreamResponse(callback) {
170
193
  return AssistantStream.toResponse(createAssistantStream(callback), new DataStreamEncoder());
171
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-stream.js","sourceRoot":"","sources":["../../../src/core/modules/assistant-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant-stream.js","sourceRoot":"","sources":["../../../src/core/modules/assistant-stream.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,47 @@
1
1
  import type { ReadonlyJSONValue } from "../../utils/json/json-value.js";
2
2
  import type { ToolModelContentPart } from "./tool-types.js";
3
3
  declare const TOOL_RESPONSE_SYMBOL: unique symbol;
4
+ /**
5
+ * Shape accepted anywhere a {@link ToolResponse} can be returned.
6
+ */
4
7
  export type ToolResponseLike<TResult> = {
8
+ /** UI-visible tool result value. */
5
9
  result: TResult;
10
+ /**
11
+ * Optional UI-only artifact associated with the result.
12
+ *
13
+ * Artifacts are useful for large or structured data that should be available
14
+ * to renderers without necessarily being sent back to the model.
15
+ */
6
16
  artifact?: ReadonlyJSONValue | undefined;
17
+ /** Marks the tool result as an error result. */
7
18
  isError?: boolean | undefined;
19
+ /**
20
+ * Explicit model-visible content to send back after the tool call.
21
+ *
22
+ * When omitted, assistant-ui derives model output from `result` or a tool's
23
+ * {@link ToolModelOutputFunction}.
24
+ */
8
25
  modelContent?: readonly ToolModelContentPart[] | undefined;
26
+ /** Optional provider-specific message payload associated with the tool result. */
9
27
  messages?: ReadonlyJSONValue | undefined;
10
28
  };
29
+ /**
30
+ * Tool result wrapper for separating UI-visible output from model-visible
31
+ * output.
32
+ *
33
+ * Return `ToolResponse` from a tool when you need to attach an artifact, mark
34
+ * the result as an error, or control the content sent back to the model.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * return new ToolResponse({
39
+ * result: { title: "Report ready" },
40
+ * artifact: { reportId },
41
+ * modelContent: [{ type: "text", text: "The report is ready." }],
42
+ * });
43
+ * ```
44
+ */
11
45
  export declare class ToolResponse<TResult> {
12
46
  get [TOOL_RESPONSE_SYMBOL](): boolean;
13
47
  readonly artifact?: ReadonlyJSONValue;
@@ -17,6 +51,13 @@ export declare class ToolResponse<TResult> {
17
51
  readonly messages?: ReadonlyJSONValue;
18
52
  constructor(options: ToolResponseLike<TResult>);
19
53
  static [Symbol.hasInstance](obj: unknown): obj is ToolResponse<ReadonlyJSONValue>;
54
+ /**
55
+ * Converts a plain tool return value into a {@link ToolResponse}.
56
+ *
57
+ * Existing `ToolResponse` instances are returned unchanged. `undefined`
58
+ * becomes the string `"<no result>"` so downstream protocol chunks always
59
+ * carry a concrete result.
60
+ */
20
61
  static toResponse(result: any | ToolResponse<any>): ToolResponse<any>;
21
62
  }
22
63
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponse.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uCAAoC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAqB;AAEzD,QAAA,MAAM,oBAAoB,eAAkC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,qBAAa,YAAY,CAAC,OAAO;IAC/B,IAAI,CAAC,oBAAoB,CAAC,YAEzB;IAED,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;gBAE1B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAc9C,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC;IAMzC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;CAQtE"}
1
+ {"version":3,"file":"ToolResponse.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uCAAoC;AACrE,OAAO,KAAK,EACV,oBAAoB,EAErB,wBAAqB;AAEtB,QAAA,MAAM,oBAAoB,eAAkC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI;IACtC,oCAAoC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAC3D,kFAAkF;IAClF,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY,CAAC,OAAO;IAC/B,IAAI,CAAC,oBAAoB,CAAC,YAEzB;IAED,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;gBAE1B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAc9C,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC;IAMzC;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;CAQtE"}
@@ -1,4 +1,20 @@
1
1
  const TOOL_RESPONSE_SYMBOL = Symbol.for("aui.tool-response");
2
+ /**
3
+ * Tool result wrapper for separating UI-visible output from model-visible
4
+ * output.
5
+ *
6
+ * Return `ToolResponse` from a tool when you need to attach an artifact, mark
7
+ * the result as an error, or control the content sent back to the model.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * return new ToolResponse({
12
+ * result: { title: "Report ready" },
13
+ * artifact: { reportId },
14
+ * modelContent: [{ type: "text", text: "The report is ready." }],
15
+ * });
16
+ * ```
17
+ */
2
18
  export class ToolResponse {
3
19
  get [TOOL_RESPONSE_SYMBOL]() {
4
20
  return true;
@@ -24,6 +40,13 @@ export class ToolResponse {
24
40
  static [Symbol.hasInstance](obj) {
25
41
  return (typeof obj === "object" && obj !== null && TOOL_RESPONSE_SYMBOL in obj);
26
42
  }
43
+ /**
44
+ * Converts a plain tool return value into a {@link ToolResponse}.
45
+ *
46
+ * Existing `ToolResponse` instances are returned unchanged. `undefined`
47
+ * becomes the string `"<no result>"` so downstream protocol chunks always
48
+ * carry a concrete result.
49
+ */
27
50
  static toResponse(result) {
28
51
  if (result instanceof ToolResponse) {
29
52
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponse.js","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAGA,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAU7D,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,oBAAoB,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,QAAQ,CAAqB;IAC7B,MAAM,CAAU;IAChB,OAAO,CAAU;IACjB,YAAY,CAAmC;IAC/C,QAAQ,CAAqB;IAEtC,YAAY,OAAkC;QAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAY;QAEZ,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,oBAAoB,IAAI,GAAG,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA+B;QAC/C,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,YAAY,CAAC;YACtB,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;SACtD,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ToolResponse.js","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAMA,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AA4B7D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,oBAAoB,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,QAAQ,CAAqB;IAC7B,MAAM,CAAU;IAChB,OAAO,CAAU;IACjB,YAAY,CAAmC;IAC/C,QAAQ,CAAqB;IAEtC,YAAY,OAAkC;QAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAY;QAEZ,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,oBAAoB,IAAI,GAAG,CACvE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAA+B;QAC/C,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,YAAY,CAAC;YACtB,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;SACtD,CAAC,CAAC;IACL,CAAC;CACF"}