assistant-stream 0.3.13 → 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.
Files changed (103) hide show
  1. package/README.md +39 -0
  2. package/dist/core/AssistantStream.d.ts +37 -0
  3. package/dist/core/AssistantStream.d.ts.map +1 -1
  4. package/dist/core/AssistantStream.js +22 -0
  5. package/dist/core/AssistantStream.js.map +1 -1
  6. package/dist/core/AssistantStreamChunk.d.ts +32 -0
  7. package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
  8. package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
  9. package/dist/core/accumulators/assistant-message-accumulator.js +3 -0
  10. package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
  11. package/dist/core/modules/assistant-stream.d.ts +68 -0
  12. package/dist/core/modules/assistant-stream.d.ts.map +1 -1
  13. package/dist/core/modules/assistant-stream.js +23 -0
  14. package/dist/core/modules/assistant-stream.js.map +1 -1
  15. package/dist/core/modules/tool-call.d.ts.map +1 -1
  16. package/dist/core/modules/tool-call.js +3 -0
  17. package/dist/core/modules/tool-call.js.map +1 -1
  18. package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
  19. package/dist/core/tool/ToolExecutionStream.js +3 -0
  20. package/dist/core/tool/ToolExecutionStream.js.map +1 -1
  21. package/dist/core/tool/ToolResponse.d.ts +44 -0
  22. package/dist/core/tool/ToolResponse.d.ts.map +1 -1
  23. package/dist/core/tool/ToolResponse.js +27 -0
  24. package/dist/core/tool/ToolResponse.js.map +1 -1
  25. package/dist/core/tool/tool-types.d.ts +119 -2
  26. package/dist/core/tool/tool-types.d.ts.map +1 -1
  27. package/dist/core/tool/toolResultStream.d.ts +15 -0
  28. package/dist/core/tool/toolResultStream.d.ts.map +1 -1
  29. package/dist/core/tool/toolResultStream.js +39 -1
  30. package/dist/core/tool/toolResultStream.js.map +1 -1
  31. package/dist/core/utils/types.d.ts +4 -0
  32. package/dist/core/utils/types.d.ts.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/resumable/ResumableStreamContext.d.ts +27 -0
  37. package/dist/resumable/ResumableStreamContext.d.ts.map +1 -0
  38. package/dist/resumable/ResumableStreamContext.js +121 -0
  39. package/dist/resumable/ResumableStreamContext.js.map +1 -0
  40. package/dist/resumable/constants.d.ts +2 -0
  41. package/dist/resumable/constants.d.ts.map +1 -0
  42. package/dist/resumable/constants.js +2 -0
  43. package/dist/resumable/constants.js.map +1 -0
  44. package/dist/resumable/createResumableAssistantStreamResponse.d.ts +24 -0
  45. package/dist/resumable/createResumableAssistantStreamResponse.d.ts.map +1 -0
  46. package/dist/resumable/createResumableAssistantStreamResponse.js +40 -0
  47. package/dist/resumable/createResumableAssistantStreamResponse.js.map +1 -0
  48. package/dist/resumable/errors.d.ts +7 -0
  49. package/dist/resumable/errors.d.ts.map +1 -0
  50. package/dist/resumable/errors.js +15 -0
  51. package/dist/resumable/errors.js.map +1 -0
  52. package/dist/resumable/index.d.ts +7 -0
  53. package/dist/resumable/index.d.ts.map +1 -0
  54. package/dist/resumable/index.js +5 -0
  55. package/dist/resumable/index.js.map +1 -0
  56. package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts +13 -0
  57. package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts.map +1 -0
  58. package/dist/resumable/stores/InMemoryResumableStreamStore.js +199 -0
  59. package/dist/resumable/stores/InMemoryResumableStreamStore.js.map +1 -0
  60. package/dist/resumable/stores/ioredis.d.ts +10 -0
  61. package/dist/resumable/stores/ioredis.d.ts.map +1 -0
  62. package/dist/resumable/stores/ioredis.js +95 -0
  63. package/dist/resumable/stores/ioredis.js.map +1 -0
  64. package/dist/resumable/stores/redis-impl.d.ts +60 -0
  65. package/dist/resumable/stores/redis-impl.d.ts.map +1 -0
  66. package/dist/resumable/stores/redis-impl.js +198 -0
  67. package/dist/resumable/stores/redis-impl.js.map +1 -0
  68. package/dist/resumable/stores/redis.d.ts +39 -0
  69. package/dist/resumable/stores/redis.d.ts.map +1 -0
  70. package/dist/resumable/stores/redis.js +113 -0
  71. package/dist/resumable/stores/redis.js.map +1 -0
  72. package/dist/resumable/types.d.ts +30 -0
  73. package/dist/resumable/types.d.ts.map +1 -0
  74. package/dist/resumable/types.js +2 -0
  75. package/dist/resumable/types.js.map +1 -0
  76. package/package.json +28 -2
  77. package/src/core/AssistantStream.ts +37 -0
  78. package/src/core/AssistantStreamChunk.ts +32 -0
  79. package/src/core/accumulators/assistant-message-accumulator.ts +3 -0
  80. package/src/core/modules/assistant-stream.ts +68 -0
  81. package/src/core/modules/tool-call.ts +3 -0
  82. package/src/core/tool/ToolExecutionStream.ts +3 -0
  83. package/src/core/tool/ToolResponse.ts +50 -0
  84. package/src/core/tool/tool-types.ts +125 -2
  85. package/src/core/tool/toolResultStream.test.ts +360 -2
  86. package/src/core/tool/toolResultStream.ts +45 -1
  87. package/src/core/utils/types.ts +4 -0
  88. package/src/index.ts +5 -1
  89. package/src/resumable/ResumableStreamContext.test.ts +274 -0
  90. package/src/resumable/ResumableStreamContext.ts +187 -0
  91. package/src/resumable/__tests__/integration.test.ts +159 -0
  92. package/src/resumable/constants.ts +1 -0
  93. package/src/resumable/createResumableAssistantStreamResponse.test.ts +243 -0
  94. package/src/resumable/createResumableAssistantStreamResponse.ts +80 -0
  95. package/src/resumable/errors.ts +26 -0
  96. package/src/resumable/index.ts +36 -0
  97. package/src/resumable/stores/InMemoryResumableStreamStore.test.ts +285 -0
  98. package/src/resumable/stores/InMemoryResumableStreamStore.ts +237 -0
  99. package/src/resumable/stores/ioredis.ts +123 -0
  100. package/src/resumable/stores/redis-impl.ts +304 -0
  101. package/src/resumable/stores/redis.test.ts +265 -0
  102. package/src/resumable/stores/redis.ts +171 -0
  103. package/src/resumable/types.ts +49 -0
@@ -1,19 +1,63 @@
1
1
  import type { ReadonlyJSONValue } from "../../utils/json/json-value.js";
2
+ import type { ToolModelContentPart } from "./tool-types.js";
2
3
  declare const TOOL_RESPONSE_SYMBOL: unique symbol;
4
+ /**
5
+ * Shape accepted anywhere a {@link ToolResponse} can be returned.
6
+ */
3
7
  export type ToolResponseLike<TResult> = {
8
+ /** UI-visible tool result value. */
4
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
+ */
5
16
  artifact?: ReadonlyJSONValue | undefined;
17
+ /** Marks the tool result as an error result. */
6
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
+ */
25
+ modelContent?: readonly ToolModelContentPart[] | undefined;
26
+ /** Optional provider-specific message payload associated with the tool result. */
7
27
  messages?: ReadonlyJSONValue | undefined;
8
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
+ */
9
45
  export declare class ToolResponse<TResult> {
10
46
  get [TOOL_RESPONSE_SYMBOL](): boolean;
11
47
  readonly artifact?: ReadonlyJSONValue;
12
48
  readonly result: TResult;
13
49
  readonly isError: boolean;
50
+ readonly modelContent?: readonly ToolModelContentPart[];
14
51
  readonly messages?: ReadonlyJSONValue;
15
52
  constructor(options: ToolResponseLike<TResult>);
16
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
+ */
17
61
  static toResponse(result: any | ToolResponse<any>): ToolResponse<any>;
18
62
  }
19
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;AAErE,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,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,QAAQ,CAAC,EAAE,iBAAiB,CAAC;gBAE1B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAW9C,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;
@@ -6,6 +22,7 @@ export class ToolResponse {
6
22
  artifact;
7
23
  result;
8
24
  isError;
25
+ modelContent;
9
26
  messages;
10
27
  constructor(options) {
11
28
  if (options.artifact !== undefined) {
@@ -13,6 +30,9 @@ export class ToolResponse {
13
30
  }
14
31
  this.result = options.result;
15
32
  this.isError = options.isError ?? false;
33
+ if (options.modelContent !== undefined) {
34
+ this.modelContent = options.modelContent;
35
+ }
16
36
  if (options.messages !== undefined) {
17
37
  this.messages = options.messages;
18
38
  }
@@ -20,6 +40,13 @@ export class ToolResponse {
20
40
  static [Symbol.hasInstance](obj) {
21
41
  return (typeof obj === "object" && obj !== null && TOOL_RESPONSE_SYMBOL in obj);
22
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
+ */
23
50
  static toResponse(result) {
24
51
  if (result instanceof ToolResponse) {
25
52
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponse.js","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAS7D,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,oBAAoB,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,QAAQ,CAAqB;IAC7B,MAAM,CAAU;IAChB,OAAO,CAAU;IACjB,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,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"}
@@ -3,6 +3,57 @@ import type { DeepPartial, TypeAtPath, TypePath } from "./type-path-utils.js";
3
3
  import type { AsyncIterableStream } from "../../utils.js";
4
4
  import type { StandardSchemaV1 } from "@standard-schema/spec";
5
5
  import type { ToolResponse } from "./ToolResponse.js";
6
+ export type ToolModelContentPart = {
7
+ /** A text content part returned to the model after a tool call. */
8
+ readonly type: "text";
9
+ /** Text that should be included in the model-visible tool result. */
10
+ readonly text: string;
11
+ } | {
12
+ /** A file content part returned to the model after a tool call. */
13
+ readonly type: "file";
14
+ /**
15
+ * File payload encoded as a provider-compatible string, commonly base64
16
+ * for binary data.
17
+ */
18
+ readonly data: string;
19
+ /** MIME type for the file payload. */
20
+ readonly mediaType: string;
21
+ /** Optional display filename for the file payload. */
22
+ readonly filename?: string;
23
+ };
24
+ /**
25
+ * Converts a tool's runtime result into content that is sent back to the
26
+ * model.
27
+ *
28
+ * Return this when the value shown in the UI or stored as the tool result
29
+ * should differ from the model-visible response. When omitted, the successful
30
+ * tool result is sent back to the model as-is. If a tool returns a
31
+ * `ToolResponse` with `modelContent`, that explicit content is used instead
32
+ * of calling this function.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const toModelOutput: ToolModelOutputFunction<
37
+ * { documentId: string },
38
+ * { summary: string; pdfBase64: string }
39
+ * > = ({ output }) => [
40
+ * { type: "text", text: output.summary },
41
+ * {
42
+ * type: "file",
43
+ * data: output.pdfBase64,
44
+ * mediaType: "application/pdf",
45
+ * },
46
+ * ];
47
+ * ```
48
+ */
49
+ export type ToolModelOutputFunction<TArgs, TResult> = (options: {
50
+ /** Stable identifier for the tool call being converted. */
51
+ toolCallId: string;
52
+ /** Arguments supplied by the model for this tool call. */
53
+ input: TArgs;
54
+ /** Value returned by the tool's {@link ToolExecuteFunction}. */
55
+ output: TResult;
56
+ }) => readonly ToolModelContentPart[] | Promise<readonly ToolModelContentPart[]>;
6
57
  /**
7
58
  * Interface for reading tool call arguments from a stream, which are
8
59
  * generated by a language learning model (LLM). Provides methods to
@@ -48,17 +99,27 @@ export interface ToolCallReader<TArgs extends Record<string, unknown> = Record<s
48
99
  args: ToolCallArgsReader<TArgs>;
49
100
  response: ToolCallResponseReader<TResult>;
50
101
  /**
51
- * @deprecated Deprecated. Use `response.get().result` instead.
102
+ * @deprecated Use {@link ToolCallReader.response} and read
103
+ * `response.get().result` instead.
52
104
  */
53
105
  result: {
54
106
  get: () => Promise<TResult>;
55
107
  };
56
108
  }
57
109
  export type ToolExecutionContext = {
110
+ /** Stable identifier for the tool call being executed. */
58
111
  toolCallId: string;
112
+ /** Signal that is aborted when the current run is cancelled. */
59
113
  abortSignal: AbortSignal;
114
+ /**
115
+ * From inside a frontend tool's execute function, request human input from
116
+ * the UI. Resolves with the payload the UI supplies.
117
+ */
60
118
  human: (payload: unknown) => Promise<unknown>;
61
119
  };
120
+ /**
121
+ * Function called when assistant-ui executes a frontend tool.
122
+ */
62
123
  export type ToolExecuteFunction<TArgs, TResult> = (args: TArgs, context: ToolExecutionContext) => TResult | Promise<TResult>;
63
124
  export type ToolStreamCallFunction<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = (reader: ToolCallReader<TArgs, TResult>, context: ToolExecutionContext) => void;
64
125
  type OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<unknown, TResult>;
@@ -69,32 +130,88 @@ type ToolBase<TArgs extends Record<string, unknown> = Record<string, unknown>, T
69
130
  streamCall?: ToolStreamCallFunction<TArgs, TResult>;
70
131
  };
71
132
  type BackendTool<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = ToolBase<TArgs, TResult> & {
133
+ /** Tool that is executed by the backend rather than in the browser. */
72
134
  type: "backend";
73
135
  description?: undefined;
74
136
  parameters?: undefined;
75
137
  disabled?: undefined;
76
138
  execute?: undefined;
139
+ toModelOutput?: undefined;
77
140
  experimental_onSchemaValidationError?: undefined;
78
141
  };
79
142
  type FrontendTool<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = ToolBase<TArgs, TResult> & {
143
+ /** Tool that is executed in the frontend runtime. */
80
144
  type: "frontend";
145
+ /** Natural-language description shown to the model when selecting tools. */
81
146
  description?: string | undefined;
147
+ /** Schema for the arguments the model must provide when calling the tool. */
82
148
  parameters: StandardSchemaV1<TArgs> | JSONSchema7;
149
+ /** Prevents the tool from being exposed to the model while true. */
83
150
  disabled?: boolean;
151
+ /** Executes the tool after the model provides valid arguments. */
84
152
  execute: ToolExecuteFunction<TArgs, TResult>;
153
+ /** Converts the execution result into model-visible output. */
154
+ toModelOutput?: ToolModelOutputFunction<TArgs, TResult>;
155
+ /** Handles invalid tool arguments when schema validation fails. */
85
156
  experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;
86
157
  };
87
158
  type HumanTool<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = ToolBase<TArgs, TResult> & {
159
+ /** Tool that pauses the run until a user or UI supplies a result. */
88
160
  type: "human";
161
+ /** Natural-language description shown to the model when selecting tools. */
89
162
  description?: string | undefined;
163
+ /** Schema for the arguments the model must provide when requesting input. */
90
164
  parameters: StandardSchemaV1<TArgs> | JSONSchema7;
165
+ /** Prevents the tool from being exposed to the model while true. */
91
166
  disabled?: boolean;
92
167
  execute?: undefined;
168
+ toModelOutput?: undefined;
93
169
  experimental_onSchemaValidationError?: undefined;
94
170
  };
171
+ /**
172
+ * Definition for a tool that can be exposed to the assistant model.
173
+ *
174
+ * Use `type: "frontend"` for tools executed in the browser, `type: "backend"`
175
+ * for tools handled by your server, and `type: "human"` for flows that pause
176
+ * until the UI supplies a result.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * const frontendTool: Tool<{ city: string }, string> = {
181
+ * type: "frontend",
182
+ * description: "Get the weather for a city.",
183
+ * parameters: {
184
+ * type: "object",
185
+ * properties: { city: { type: "string" } },
186
+ * required: ["city"],
187
+ * },
188
+ * execute: async ({ city }) => `Sunny in ${city}`,
189
+ * };
190
+ * ```
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * const backendTool: Tool = {
195
+ * type: "backend",
196
+ * };
197
+ * ```
198
+ *
199
+ * @example
200
+ * ```ts
201
+ * const humanTool: Tool<{ question: string }, string> = {
202
+ * type: "human",
203
+ * description: "Ask the user a follow-up question.",
204
+ * parameters: {
205
+ * type: "object",
206
+ * properties: { question: { type: "string" } },
207
+ * required: ["question"],
208
+ * },
209
+ * };
210
+ * ```
211
+ */
95
212
  export type Tool<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = FrontendTool<TArgs, TResult> | BackendTool<TArgs, TResult> | HumanTool<TArgs, TResult> | ToolWithoutType<TArgs, TResult>;
96
213
  /**
97
- * @deprecated Use `Tool` with an explicit `type` field instead.
214
+ * @deprecated Use {@link Tool} with an explicit `type` field instead.
98
215
  */
99
216
  export type ToolWithoutType<TArgs extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = (Omit<FrontendTool<TArgs, TResult>, "type"> | Omit<BackendTool<TArgs, TResult>, "type"> | Omit<HumanTool<TArgs, TResult>, "type">) & {
100
217
  type?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,23 @@ import { ToolExecutionStream } from "./ToolExecutionStream.js";
3
3
  import type { AssistantMessage } from "../utils/types.js";
4
4
  export declare function unstable_runPendingTools(message: AssistantMessage, tools: Record<string, Tool> | undefined, abortSignal: AbortSignal, human: (toolCallId: string, payload: unknown) => Promise<unknown>): Promise<AssistantMessage>;
5
5
  export type ToolResultStreamOptions = {
6
+ /** Called immediately before a frontend tool's `execute` function runs. */
6
7
  onExecutionStart?: (toolCallId: string, toolName: string) => void;
8
+ /** Called after frontend tool execution finishes or fails. */
7
9
  onExecutionEnd?: (toolCallId: string, toolName: string) => void;
8
10
  };
11
+ /**
12
+ * Transform stream that executes frontend tools and appends tool results.
13
+ *
14
+ * The transform watches streamed tool-call arguments, runs the matching
15
+ * frontend tool once its arguments are complete, and emits a result chunk for
16
+ * the tool call. Backend and human tools pass through according to their tool
17
+ * definition.
18
+ *
19
+ * @param tools Tool registry or function returning the current registry.
20
+ * @param abortSignal Signal, or signal getter, used for the current run.
21
+ * @param human Callback used to resolve human-tool requests from UI input.
22
+ * @param options Optional execution lifecycle callbacks.
23
+ */
9
24
  export declare function toolResultStream(tools: Record<string, Tool> | (() => Record<string, Tool> | undefined) | undefined, abortSignal: AbortSignal | (() => AbortSignal), human: (toolCallId: string, payload: unknown) => Promise<unknown>, options?: ToolResultStreamOptions): ToolExecutionStream;
10
25
  //# sourceMappingURL=toolResultStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAuC,wBAAqB;AAG9E,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAAuB;AA+GvD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,EACvC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,6BAiElE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,KAAK,EACD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GACpB,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,GACxC,SAAS,EACb,WAAW,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,EAC9C,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,OAAO,CAAC,EAAE,uBAAuB,uBAalC"}
1
+ {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAuC,wBAAqB;AAG9E,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAAuB;AAyIvD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,EACvC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,6BAoElE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,8DAA8D;IAC9D,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EACD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GACpB,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,GACxC,SAAS,EACb,WAAW,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,EAC9C,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,OAAO,CAAC,EAAE,uBAAuB,uBAalC"}
@@ -57,7 +57,29 @@ function getToolResponse(tools, abortSignal, toolCall, human) {
57
57
  abortSignal,
58
58
  human: (payload) => human(toolCall.toolCallId, payload),
59
59
  }));
60
- return ToolResponse.toResponse(result);
60
+ const response = ToolResponse.toResponse(result);
61
+ if (tool.toModelOutput &&
62
+ !response.isError &&
63
+ response.modelContent === undefined) {
64
+ try {
65
+ const modelContent = await tool.toModelOutput({
66
+ toolCallId: toolCall.toolCallId,
67
+ input: toolCall.args,
68
+ output: response.result,
69
+ });
70
+ return new ToolResponse({
71
+ result: response.result,
72
+ artifact: response.artifact,
73
+ isError: response.isError,
74
+ messages: response.messages,
75
+ modelContent,
76
+ });
77
+ }
78
+ catch (e) {
79
+ console.warn(`[assistant-stream] tool "${toolCall.toolName}" toModelOutput threw; falling back to default projection.`, e);
80
+ }
81
+ }
82
+ return response;
61
83
  })();
62
84
  return Promise.race([executePromise, abortPromise]);
63
85
  };
@@ -105,6 +127,9 @@ export async function unstable_runPendingTools(message, tools, abortSignal, huma
105
127
  ...(toolResponse.artifact !== undefined
106
128
  ? { artifact: toolResponse.artifact }
107
129
  : {}),
130
+ ...(toolResponse.modelContent !== undefined
131
+ ? { modelContent: toolResponse.modelContent }
132
+ : {}),
108
133
  result: toolResponse.result,
109
134
  isError: toolResponse.isError,
110
135
  };
@@ -118,6 +143,19 @@ export async function unstable_runPendingTools(message, tools, abortSignal, huma
118
143
  content: updatedParts,
119
144
  };
120
145
  }
146
+ /**
147
+ * Transform stream that executes frontend tools and appends tool results.
148
+ *
149
+ * The transform watches streamed tool-call arguments, runs the matching
150
+ * frontend tool once its arguments are complete, and emits a result chunk for
151
+ * the tool call. Backend and human tools pass through according to their tool
152
+ * definition.
153
+ *
154
+ * @param tools Tool registry or function returning the current registry.
155
+ * @param abortSignal Signal, or signal getter, used for the current run.
156
+ * @param human Callback used to resolve human-tool requests from UI input.
157
+ * @param options Optional execution lifecycle callbacks.
158
+ */
121
159
  export function toolResultStream(tools, abortSignal, human, options) {
122
160
  const toolsFn = typeof tools === "function" ? tools : () => tools;
123
161
  const abortSignalFn = typeof abortSignal === "function" ? abortSignal : () => abortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"toolResultStream.js","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAI5D,MAAM,kBAAkB,GAAG,CACzB,MAAe,EACsB,EAAE;IACvC,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,WAAW,IAAI,MAAM;QACpB,MAAoC,CAAC,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,eAAe,CACtB,KAAuC,EACvC,WAAwB,EACxB,QAIC,EACD,KAAiE;IAEjE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,SAAS,GAAG,KAAK,EACrB,WAA6D,EACnB,EAAE;QAC5C,2CAA2C;QAC3C,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,YAAY,CAAC;gBACtB,MAAM,EAAE,+BAA+B;gBACvC,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,GAAG,WAAW,CAAC;QAE5B,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,MAAM,YAAY,OAAO;gBAAE,MAAM,GAAG,MAAM,MAAM,CAAC;YAErD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,SAAS;oBACP,IAAI,CAAC,oCAAoC;wBACzC,CAAC,GAAG,EAAE;4BACJ,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACzE,CAAC;wBACJ,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,8DAA8D;QAC9D,MAAM,YAAY,GAAG,IAAI,OAAO,CAC9B,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,cAAc,CAAC,GAAG,EAAE;oBAClB,cAAc,CAAC,GAAG,EAAE;wBAClB,OAAO,CACL,IAAI,YAAY,CAAC;4BACf,MAAM,EAAE,+BAA+B;4BACvC,OAAO,EAAE,IAAI;yBACd,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,WAAW;gBACX,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;aACjE,CAAC,CAAiC,CAAC;YACpC,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAuC,EACvC,WAAwB,EACxB,MAA8C,EAC9C,OAGC,EACD,KAAiE;IAEjE,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE;QAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW;QACX,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;KAChE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAyB,EACzB,KAAuC,EACvC,WAAwB,EACxB,KAAiE;IAEjE,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK;SACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;SAC3C,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,kBAAkB,GAAG,eAAe,CACxC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,KAAK;YACH,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,IAAI,KAAK,CACb,mDAAmD,CACpD,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;QACF,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACxC,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM;aACP,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,eAAe,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAClE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CACyC,CAAC;IAEvE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9B,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAqD,CACtD,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO;oBACL,GAAG,CAAC;oBACJ,KAAK,EAAE,QAAiB;oBACxB,GAAG,CAAC,YAAY,CAAC,QAAQ,KAAK,SAAS;wBACrC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;wBACrC,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,EAAE,YAAY,CAAC,MAA2B;oBAChD,OAAO,EAAE,YAAY,CAAC,OAAO;iBAC9B,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAC9B,KAGa,EACb,WAA8C,EAC9C,KAAiE,EACjE,OAAiC;IAEjC,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAClE,MAAM,aAAa,GACjB,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;IACtE,OAAO,IAAI,mBAAmB,CAAC;QAC7B,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CACpB,eAAe,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC;QAC9D,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CACrC,qBAAqB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QAC3E,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;QAC3C,cAAc,EAAE,OAAO,EAAE,cAAc;KACxC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"toolResultStream.js","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ReadonlyJSONObject, ReadonlyJSONValue } from "../../utils/json/json-value.js";
2
+ import type { ToolModelContentPart } from "../tool/tool-types.js";
2
3
  type TextStatus = {
3
4
  type: "running";
4
5
  } | {
@@ -42,17 +43,20 @@ type ToolCallPartBase = {
42
43
  args: ReadonlyJSONObject;
43
44
  artifact?: ReadonlyJSONValue;
44
45
  result?: ReadonlyJSONValue;
46
+ modelContent?: readonly ToolModelContentPart[];
45
47
  isError?: boolean;
46
48
  parentId?: string;
47
49
  };
48
50
  type ToolCallPartWithoutResult = ToolCallPartBase & {
49
51
  state: "partial-call" | "call";
50
52
  result?: undefined;
53
+ modelContent?: undefined;
51
54
  };
52
55
  type ToolCallPartWithResult = ToolCallPartBase & {
53
56
  state: "result";
54
57
  result: ReadonlyJSONValue;
55
58
  artifact?: ReadonlyJSONValue;
59
+ modelContent?: readonly ToolModelContentPart[];
56
60
  isError?: boolean;
57
61
  };
58
62
  export type ToolCallPart = ToolCallPartWithoutResult | ToolCallPartWithResult;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/utils/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/utils/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { AssistantTransportDecoder, AssistantTransportEncoder, } from "./core/se
9
9
  export { UIMessageStreamDecoder, type UIMessageStreamChunk, type UIMessageStreamDataChunk, type UIMessageStreamDecoderOptions, } from "./core/serialization/ui-message-stream/UIMessageStream.js";
10
10
  export { AssistantMessageStream } from "./core/accumulators/AssistantMessageStream.js";
11
11
  export type { AssistantMessage, AssistantMessageTiming, DataPart, } from "./core/utils/types.js";
12
- export type { Tool } from "./core/tool/tool-types.js";
12
+ export type { Tool, ToolModelContentPart, ToolModelOutputFunction, } from "./core/tool/tool-types.js";
13
13
  export { ToolResponse, type ToolResponseLike } from "./core/tool/ToolResponse.js";
14
14
  export { ToolExecutionStream } from "./core/tool/ToolExecutionStream.js";
15
15
  export type { ToolCallReader } from "./core/tool/tool-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,GAChC,2CAAwC;AACzC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,IAAI,6BAA6B,GACtD,6DAA0D;AAC3D,OAAO,EAAE,eAAe,EAAE,kCAA+B;AACzD,YAAY,EAAE,yBAAyB,EAAE,2CAAwC;AACjF,YAAY,EAAE,oBAAoB,EAAE,uCAAoC;AACxE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,uDAAoD;AACrD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,0CAAuC;AACxC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,uEAAoE;AACrE,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,GACnC,kEAA+D;AAChE,OAAO,EAAE,sBAAsB,EAAE,sDAAmD;AACpF,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,8BAA2B;AAE5B,YAAY,EAAE,IAAI,EAAE,kCAA+B;AACnD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,oCAAiC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,2CAAwC;AACtE,YAAY,EAAE,cAAc,EAAE,kCAA+B;AAC7D,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,wCAAqC;AACtC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,oCAAiC;AAElC,YAAY,EAAE,oBAAoB,EAAE,+BAA4B;AAChE,YAAY,EAAE,wBAAwB,EAAE,oCAAiC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,4CAAyC;AACtE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,8CAA2C;AAC5C,YAAY,EAAE,iBAAiB,EAAE,+BAA4B;AAE7D,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,+CAA4C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,GAChC,2CAAwC;AACzC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,IAAI,6BAA6B,GACtD,6DAA0D;AAC3D,OAAO,EAAE,eAAe,EAAE,kCAA+B;AACzD,YAAY,EAAE,yBAAyB,EAAE,2CAAwC;AACjF,YAAY,EAAE,oBAAoB,EAAE,uCAAoC;AACxE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,uDAAoD;AACrD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,0CAAuC;AACxC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,uEAAoE;AACrE,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,GACnC,kEAA+D;AAChE,OAAO,EAAE,sBAAsB,EAAE,sDAAmD;AACpF,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,8BAA2B;AAE5B,YAAY,EACV,IAAI,EACJ,oBAAoB,EACpB,uBAAuB,GACxB,kCAA+B;AAChC,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,oCAAiC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,2CAAwC;AACtE,YAAY,EAAE,cAAc,EAAE,kCAA+B;AAC7D,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,wCAAqC;AACtC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,oCAAiC;AAElC,YAAY,EAAE,oBAAoB,EAAE,+BAA4B;AAChE,YAAY,EAAE,wBAAwB,EAAE,oCAAiC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,4CAAyC;AACtE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,8CAA2C;AAC5C,YAAY,EAAE,iBAAiB,EAAE,+BAA4B;AAE7D,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,+CAA4C"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,GAChC,2CAAwC;AACzC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,IAAI,6BAA6B,GACtD,6DAA0D;AAC3D,OAAO,EAAE,eAAe,EAAE,kCAA+B;AAGzD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,uDAAoD;AACrD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,0CAAuC;AACxC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,uEAAoE;AACrE,OAAO,EACL,sBAAsB,GAIvB,kEAA+D;AAChE,OAAO,EAAE,sBAAsB,EAAE,sDAAmD;AAQpF,OAAO,EAAE,YAAY,EAAyB,oCAAiC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,2CAAwC;AAEtE,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,GAEzB,wCAAqC;AACtC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,GAGlB,oCAAiC;AAKlC,OAAO,EAAE,kBAAkB,EAAE,4CAAyC;AACtE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,8CAA2C;AAG5C,OAAO,EACL,iBAAiB,GAUlB,+CAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,GAChC,2CAAwC;AACzC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,IAAI,6BAA6B,GACtD,6DAA0D;AAC3D,OAAO,EAAE,eAAe,EAAE,kCAA+B;AAGzD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,uDAAoD;AACrD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,0CAAuC;AACxC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,uEAAoE;AACrE,OAAO,EACL,sBAAsB,GAIvB,kEAA+D;AAChE,OAAO,EAAE,sBAAsB,EAAE,sDAAmD;AAYpF,OAAO,EAAE,YAAY,EAAyB,oCAAiC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,2CAAwC;AAEtE,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,GAEzB,wCAAqC;AACtC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,GAGlB,oCAAiC;AAKlC,OAAO,EAAE,kBAAkB,EAAE,4CAAyC;AACtE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,8CAA2C;AAG5C,OAAO,EACL,iBAAiB,GAUlB,+CAA4C"}
@@ -0,0 +1,27 @@
1
+ import type { ResumableStreamRole, ResumableStreamStatus, ResumableStreamStore } from "./types.js";
2
+ export type ResumableStreamContextOptions = {
3
+ readonly store: ResumableStreamStore;
4
+ readonly ttlMs?: number;
5
+ /**
6
+ * Required on serverless runtimes that terminate background work when the
7
+ * request handler returns (Vercel, Cloudflare). Pass `after` from
8
+ * `next/server` so the producer task outlives the response.
9
+ */
10
+ readonly waitUntil?: (promise: Promise<unknown>) => void;
11
+ readonly onAcquire?: (streamId: string, role: ResumableStreamRole) => void;
12
+ readonly onAppend?: (streamId: string, byteLength: number) => void;
13
+ readonly onFinalize?: (streamId: string, status: "done" | "error", error?: string) => void;
14
+ readonly onError?: (streamId: string, error: unknown) => void;
15
+ };
16
+ export interface ResumableStreamContext {
17
+ /** Producer or consumer entrypoint. Atomically elects the role. */
18
+ run(streamId: string, makeStream: () => ReadableStream<Uint8Array>): Promise<ReadableStream<Uint8Array>>;
19
+ /** Returns `null` when the stream does not exist. */
20
+ resume(streamId: string): Promise<ReadableStream<Uint8Array> | null>;
21
+ /** Throws `ResumableStreamError("missing")` when the stream does not exist. */
22
+ requireResume(streamId: string): Promise<ReadableStream<Uint8Array>>;
23
+ status(streamId: string): Promise<ResumableStreamStatus>;
24
+ delete(streamId: string): Promise<void>;
25
+ }
26
+ export declare function createResumableStreamContext(options: ResumableStreamContextOptions): ResumableStreamContext;
27
+ //# sourceMappingURL=ResumableStreamContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResumableStreamContext.d.ts","sourceRoot":"","sources":["../../src/resumable/ResumableStreamContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACrB,mBAAgB;AAEjB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,CAAC,EAAE,MAAM,KACX,IAAI,CAAC;IACV,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,cAAc,CAAC,UAAU,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvC,qDAAqD;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAErE,+EAA+E;IAC/E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAErE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEzD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CA8CxB"}