assistant-stream 0.2.44 → 0.2.46

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 (171) hide show
  1. package/dist/core/AssistantStream.d.ts +1 -1
  2. package/dist/core/AssistantStream.d.ts.map +1 -1
  3. package/dist/core/AssistantStream.js +15 -19
  4. package/dist/core/AssistantStream.js.map +1 -1
  5. package/dist/core/AssistantStreamChunk.d.ts +2 -2
  6. package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
  7. package/dist/core/AssistantStreamChunk.js +1 -0
  8. package/dist/core/AssistantStreamChunk.js.map +1 -1
  9. package/dist/core/accumulators/AssistantMessageStream.d.ts +2 -2
  10. package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
  11. package/dist/core/accumulators/AssistantMessageStream.js +45 -50
  12. package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
  13. package/dist/core/accumulators/assistant-message-accumulator.d.ts +3 -3
  14. package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
  15. package/dist/core/accumulators/assistant-message-accumulator.js +339 -329
  16. package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
  17. package/dist/core/index.d.ts +16 -16
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/core/index.js +9 -44
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/core/modules/assistant-stream.d.ts +7 -7
  22. package/dist/core/modules/assistant-stream.d.ts.map +1 -1
  23. package/dist/core/modules/assistant-stream.js +159 -188
  24. package/dist/core/modules/assistant-stream.js.map +1 -1
  25. package/dist/core/modules/text.d.ts +2 -2
  26. package/dist/core/modules/text.d.ts.map +1 -1
  27. package/dist/core/modules/text.js +43 -47
  28. package/dist/core/modules/text.js.map +1 -1
  29. package/dist/core/modules/tool-call.d.ts +5 -5
  30. package/dist/core/modules/tool-call.d.ts.map +1 -1
  31. package/dist/core/modules/tool-call.js +88 -89
  32. package/dist/core/modules/tool-call.js.map +1 -1
  33. package/dist/core/object/ObjectStreamAccumulator.d.ts +2 -2
  34. package/dist/core/object/ObjectStreamAccumulator.d.ts.map +1 -1
  35. package/dist/core/object/ObjectStreamAccumulator.js +49 -58
  36. package/dist/core/object/ObjectStreamAccumulator.js.map +1 -1
  37. package/dist/core/object/ObjectStreamResponse.d.ts +2 -2
  38. package/dist/core/object/ObjectStreamResponse.d.ts.map +1 -1
  39. package/dist/core/object/ObjectStreamResponse.js +70 -74
  40. package/dist/core/object/ObjectStreamResponse.js.map +1 -1
  41. package/dist/core/object/createObjectStream.d.ts +2 -2
  42. package/dist/core/object/createObjectStream.d.ts.map +1 -1
  43. package/dist/core/object/createObjectStream.js +45 -56
  44. package/dist/core/object/createObjectStream.js.map +1 -1
  45. package/dist/core/object/types.d.ts +1 -1
  46. package/dist/core/object/types.d.ts.map +1 -1
  47. package/dist/core/object/types.js +1 -0
  48. package/dist/core/object/types.js.map +1 -1
  49. package/dist/core/serialization/PlainText.d.ts +3 -3
  50. package/dist/core/serialization/PlainText.d.ts.map +1 -1
  51. package/dist/core/serialization/PlainText.js +46 -47
  52. package/dist/core/serialization/PlainText.js.map +1 -1
  53. package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts +3 -3
  54. package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts.map +1 -1
  55. package/dist/core/serialization/assistant-transport/AssistantTransport.js +117 -112
  56. package/dist/core/serialization/assistant-transport/AssistantTransport.js.map +1 -1
  57. package/dist/core/serialization/data-stream/DataStream.d.ts +3 -3
  58. package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -1
  59. package/dist/core/serialization/data-stream/DataStream.js +355 -354
  60. package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
  61. package/dist/core/serialization/data-stream/chunk-types.d.ts +2 -2
  62. package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
  63. package/dist/core/serialization/data-stream/chunk-types.js +22 -26
  64. package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
  65. package/dist/core/serialization/data-stream/serialization.d.ts +1 -1
  66. package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
  67. package/dist/core/serialization/data-stream/serialization.js +23 -28
  68. package/dist/core/serialization/data-stream/serialization.js.map +1 -1
  69. package/dist/core/tool/ToolCallReader.d.ts +4 -4
  70. package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
  71. package/dist/core/tool/ToolCallReader.js +303 -303
  72. package/dist/core/tool/ToolCallReader.js.map +1 -1
  73. package/dist/core/tool/ToolExecutionStream.d.ts +5 -5
  74. package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
  75. package/dist/core/tool/ToolExecutionStream.js +140 -143
  76. package/dist/core/tool/ToolExecutionStream.js.map +1 -1
  77. package/dist/core/tool/ToolResponse.d.ts +1 -1
  78. package/dist/core/tool/ToolResponse.d.ts.map +1 -1
  79. package/dist/core/tool/ToolResponse.js +25 -29
  80. package/dist/core/tool/ToolResponse.js.map +1 -1
  81. package/dist/core/tool/index.d.ts +5 -5
  82. package/dist/core/tool/index.d.ts.map +1 -1
  83. package/dist/core/tool/index.js +3 -13
  84. package/dist/core/tool/index.js.map +1 -1
  85. package/dist/core/tool/tool-types.d.ts +3 -3
  86. package/dist/core/tool/tool-types.d.ts.map +1 -1
  87. package/dist/core/tool/tool-types.js +1 -0
  88. package/dist/core/tool/tool-types.js.map +1 -1
  89. package/dist/core/tool/toolResultStream.d.ts +3 -3
  90. package/dist/core/tool/toolResultStream.d.ts.map +1 -1
  91. package/dist/core/tool/toolResultStream.js +118 -125
  92. package/dist/core/tool/toolResultStream.js.map +1 -1
  93. package/dist/core/tool/type-path-utils.js +1 -0
  94. package/dist/core/tool/type-path-utils.js.map +1 -1
  95. package/dist/core/utils/Counter.js +6 -10
  96. package/dist/core/utils/Counter.js.map +1 -1
  97. package/dist/core/utils/generateId.js +1 -8
  98. package/dist/core/utils/generateId.js.map +1 -1
  99. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +1 -1
  100. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -1
  101. package/dist/core/utils/stream/AssistantMetaTransformStream.js +42 -43
  102. package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
  103. package/dist/core/utils/stream/AssistantTransformStream.d.ts +2 -2
  104. package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -1
  105. package/dist/core/utils/stream/AssistantTransformStream.js +35 -45
  106. package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
  107. package/dist/core/utils/stream/LineDecoderStream.js +24 -26
  108. package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
  109. package/dist/core/utils/stream/PipeableTransformStream.js +10 -14
  110. package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
  111. package/dist/core/utils/stream/SSE.d.ts +1 -1
  112. package/dist/core/utils/stream/SSE.d.ts.map +1 -1
  113. package/dist/core/utils/stream/SSE.js +90 -98
  114. package/dist/core/utils/stream/SSE.js.map +1 -1
  115. package/dist/core/utils/stream/UnderlyingReadable.js +1 -0
  116. package/dist/core/utils/stream/UnderlyingReadable.js.map +1 -1
  117. package/dist/core/utils/stream/merge.d.ts +1 -1
  118. package/dist/core/utils/stream/merge.d.ts.map +1 -1
  119. package/dist/core/utils/stream/merge.js +169 -81
  120. package/dist/core/utils/stream/merge.js.map +1 -1
  121. package/dist/core/utils/stream/path-utils.d.ts +2 -2
  122. package/dist/core/utils/stream/path-utils.d.ts.map +1 -1
  123. package/dist/core/utils/stream/path-utils.js +49 -56
  124. package/dist/core/utils/stream/path-utils.js.map +1 -1
  125. package/dist/core/utils/types.d.ts +1 -1
  126. package/dist/core/utils/types.d.ts.map +1 -1
  127. package/dist/core/utils/types.js +1 -0
  128. package/dist/core/utils/types.js.map +1 -1
  129. package/dist/core/utils/withPromiseOrValue.js +14 -14
  130. package/dist/core/utils/withPromiseOrValue.js.map +1 -1
  131. package/dist/index.d.ts +1 -1
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +0 -1
  134. package/dist/index.js.map +1 -1
  135. package/dist/utils/AsyncIterableStream.js +15 -16
  136. package/dist/utils/AsyncIterableStream.js.map +1 -1
  137. package/dist/utils/index.d.ts +2 -2
  138. package/dist/utils/index.d.ts.map +1 -1
  139. package/dist/utils/index.js +1 -7
  140. package/dist/utils/index.js.map +1 -1
  141. package/dist/utils/json/fix-json.js +365 -343
  142. package/dist/utils/json/fix-json.js.map +1 -1
  143. package/dist/utils/json/index.d.ts +1 -1
  144. package/dist/utils/json/index.d.ts.map +1 -1
  145. package/dist/utils/json/index.js +1 -0
  146. package/dist/utils/json/index.js.map +1 -1
  147. package/dist/utils/json/is-json.d.ts +1 -1
  148. package/dist/utils/json/is-json.d.ts.map +1 -1
  149. package/dist/utils/json/is-json.js +21 -25
  150. package/dist/utils/json/is-json.js.map +1 -1
  151. package/dist/utils/json/json-value.js +1 -0
  152. package/dist/utils/json/json-value.js.map +1 -1
  153. package/dist/utils/json/parse-partial-json-object.d.ts +1 -1
  154. package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -1
  155. package/dist/utils/json/parse-partial-json-object.js +61 -56
  156. package/dist/utils/json/parse-partial-json-object.js.map +1 -1
  157. package/dist/utils/promiseWithResolvers.js +10 -13
  158. package/dist/utils/promiseWithResolvers.js.map +1 -1
  159. package/dist/utils.d.ts +5 -5
  160. package/dist/utils.d.ts.map +1 -1
  161. package/dist/utils.js +4 -17
  162. package/dist/utils.js.map +1 -1
  163. package/package.json +26 -14
  164. package/dist/core/object/ObjectStream.test.d.ts +0 -2
  165. package/dist/core/object/ObjectStream.test.d.ts.map +0 -1
  166. package/dist/core/serialization/assistant-transport/AssistantTransport.test.d.ts +0 -2
  167. package/dist/core/serialization/assistant-transport/AssistantTransport.test.d.ts.map +0 -1
  168. package/dist/core/tool/toolResultStream.test.d.ts +0 -2
  169. package/dist/core/tool/toolResultStream.test.d.ts.map +0 -1
  170. package/dist/utils/json/parse-partial-json-object.test.d.ts +0 -2
  171. package/dist/utils/json/parse-partial-json-object.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuC,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+GlD,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,EAAE,IAAI,EAAuC,wBAAqB;AAGzE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EAAE,gBAAgB,EAAE,0BAAuB;AA+GlD,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,138 +1,131 @@
1
- // src/core/tool/toolResultStream.ts
2
1
  import { ToolResponse } from "./ToolResponse.js";
3
2
  import { ToolExecutionStream } from "./ToolExecutionStream.js";
4
- var isStandardSchemaV1 = (schema) => {
5
- return typeof schema === "object" && schema !== null && "~standard" in schema && schema["~standard"].version === 1;
3
+ const isStandardSchemaV1 = (schema) => {
4
+ return (typeof schema === "object" &&
5
+ schema !== null &&
6
+ "~standard" in schema &&
7
+ schema["~standard"].version === 1);
6
8
  };
7
9
  function getToolResponse(tools, abortSignal, toolCall, human) {
8
- const tool = tools?.[toolCall.toolName];
9
- if (!tool || !tool.execute) return void 0;
10
- const getResult = async (toolExecute) => {
11
- if (abortSignal.aborted) {
12
- return new ToolResponse({
13
- result: "Tool execution was cancelled.",
14
- isError: true
15
- });
16
- }
17
- let executeFn = toolExecute;
18
- if (isStandardSchemaV1(tool.parameters)) {
19
- let result = tool.parameters["~standard"].validate(toolCall.args);
20
- if (result instanceof Promise) result = await result;
21
- if (result.issues) {
22
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
23
- throw new Error(
24
- `Function parameter validation failed. ${JSON.stringify(result.issues)}`
25
- );
26
- });
27
- }
28
- }
29
- const abortPromise = new Promise(
30
- (resolve) => {
31
- const onAbort = () => {
32
- queueMicrotask(() => {
33
- queueMicrotask(() => {
34
- resolve(
35
- new ToolResponse({
36
- result: "Tool execution was cancelled.",
37
- isError: true
38
- })
39
- );
40
- });
41
- });
42
- };
10
+ const tool = tools?.[toolCall.toolName];
11
+ if (!tool || !tool.execute)
12
+ return undefined;
13
+ const getResult = async (toolExecute) => {
14
+ // Check if already aborted before starting
43
15
  if (abortSignal.aborted) {
44
- onAbort();
45
- } else {
46
- abortSignal.addEventListener("abort", onAbort, { once: true });
16
+ return new ToolResponse({
17
+ result: "Tool execution was cancelled.",
18
+ isError: true,
19
+ });
47
20
  }
48
- }
49
- );
50
- const executePromise = (async () => {
51
- const result = await executeFn(toolCall.args, {
52
- toolCallId: toolCall.toolCallId,
53
- abortSignal,
54
- human: (payload) => human(toolCall.toolCallId, payload)
55
- });
56
- return ToolResponse.toResponse(result);
57
- })();
58
- return Promise.race([executePromise, abortPromise]);
59
- };
60
- return getResult(tool.execute);
21
+ let executeFn = toolExecute;
22
+ if (isStandardSchemaV1(tool.parameters)) {
23
+ let result = tool.parameters["~standard"].validate(toolCall.args);
24
+ if (result instanceof Promise)
25
+ result = await result;
26
+ if (result.issues) {
27
+ executeFn =
28
+ tool.experimental_onSchemaValidationError ??
29
+ (() => {
30
+ throw new Error(`Function parameter validation failed. ${JSON.stringify(result.issues)}`);
31
+ });
32
+ }
33
+ }
34
+ // Create abort promise that resolves after 2 microtasks
35
+ // This gives tools that handle abort a chance to win the race
36
+ const abortPromise = new Promise((resolve) => {
37
+ const onAbort = () => {
38
+ queueMicrotask(() => {
39
+ queueMicrotask(() => {
40
+ resolve(new ToolResponse({
41
+ result: "Tool execution was cancelled.",
42
+ isError: true,
43
+ }));
44
+ });
45
+ });
46
+ };
47
+ if (abortSignal.aborted) {
48
+ onAbort();
49
+ }
50
+ else {
51
+ abortSignal.addEventListener("abort", onAbort, { once: true });
52
+ }
53
+ });
54
+ const executePromise = (async () => {
55
+ const result = (await executeFn(toolCall.args, {
56
+ toolCallId: toolCall.toolCallId,
57
+ abortSignal,
58
+ human: (payload) => human(toolCall.toolCallId, payload),
59
+ }));
60
+ return ToolResponse.toResponse(result);
61
+ })();
62
+ return Promise.race([executePromise, abortPromise]);
63
+ };
64
+ return getResult(tool.execute);
61
65
  }
62
66
  function getToolStreamResponse(tools, abortSignal, reader, context, human) {
63
- tools?.[context.toolName]?.streamCall?.(reader, {
64
- toolCallId: context.toolCallId,
65
- abortSignal,
66
- human: (payload) => human(context.toolCallId, payload)
67
- });
67
+ tools?.[context.toolName]?.streamCall?.(reader, {
68
+ toolCallId: context.toolCallId,
69
+ abortSignal,
70
+ human: (payload) => human(context.toolCallId, payload),
71
+ });
68
72
  }
69
- async function unstable_runPendingTools(message, tools, abortSignal, human) {
70
- const toolCallPromises = message.parts.filter((part) => part.type === "tool-call").map(async (part) => {
71
- const promiseOrUndefined = getToolResponse(
72
- tools,
73
- abortSignal,
74
- part,
75
- human ?? (async () => {
76
- throw new Error(
77
- "Tool human input is not supported in this context"
78
- );
79
- })
80
- );
81
- if (promiseOrUndefined) {
82
- const result = await promiseOrUndefined;
83
- return {
84
- toolCallId: part.toolCallId,
85
- result
86
- };
87
- }
88
- return null;
89
- });
90
- const toolCallResults = (await Promise.all(toolCallPromises)).filter(
91
- (result) => result !== null
92
- );
93
- if (toolCallResults.length === 0) {
94
- return message;
95
- }
96
- const toolCallResultsById = toolCallResults.reduce(
97
- (acc, { toolCallId, result }) => {
98
- acc[toolCallId] = result;
99
- return acc;
100
- },
101
- {}
102
- );
103
- const updatedParts = message.parts.map((p) => {
104
- if (p.type === "tool-call") {
105
- const toolResponse = toolCallResultsById[p.toolCallId];
106
- if (toolResponse) {
107
- return {
108
- ...p,
109
- state: "result",
110
- ...toolResponse.artifact !== void 0 ? { artifact: toolResponse.artifact } : {},
111
- result: toolResponse.result,
112
- isError: toolResponse.isError
113
- };
114
- }
73
+ export async function unstable_runPendingTools(message, tools, abortSignal, human) {
74
+ const toolCallPromises = message.parts
75
+ .filter((part) => part.type === "tool-call")
76
+ .map(async (part) => {
77
+ const promiseOrUndefined = getToolResponse(tools, abortSignal, part, human ??
78
+ (async () => {
79
+ throw new Error("Tool human input is not supported in this context");
80
+ }));
81
+ if (promiseOrUndefined) {
82
+ const result = await promiseOrUndefined;
83
+ return {
84
+ toolCallId: part.toolCallId,
85
+ result,
86
+ };
87
+ }
88
+ return null;
89
+ });
90
+ const toolCallResults = (await Promise.all(toolCallPromises)).filter((result) => result !== null);
91
+ if (toolCallResults.length === 0) {
92
+ return message;
115
93
  }
116
- return p;
117
- });
118
- return {
119
- ...message,
120
- parts: updatedParts,
121
- content: updatedParts
122
- };
94
+ const toolCallResultsById = toolCallResults.reduce((acc, { toolCallId, result }) => {
95
+ acc[toolCallId] = result;
96
+ return acc;
97
+ }, {});
98
+ const updatedParts = message.parts.map((p) => {
99
+ if (p.type === "tool-call") {
100
+ const toolResponse = toolCallResultsById[p.toolCallId];
101
+ if (toolResponse) {
102
+ return {
103
+ ...p,
104
+ state: "result",
105
+ ...(toolResponse.artifact !== undefined
106
+ ? { artifact: toolResponse.artifact }
107
+ : {}),
108
+ result: toolResponse.result,
109
+ isError: toolResponse.isError,
110
+ };
111
+ }
112
+ }
113
+ return p;
114
+ });
115
+ return {
116
+ ...message,
117
+ parts: updatedParts,
118
+ content: updatedParts,
119
+ };
123
120
  }
124
- function toolResultStream(tools, abortSignal, human, options) {
125
- const toolsFn = typeof tools === "function" ? tools : () => tools;
126
- const abortSignalFn = typeof abortSignal === "function" ? abortSignal : () => abortSignal;
127
- return new ToolExecutionStream({
128
- execute: (toolCall) => getToolResponse(toolsFn(), abortSignalFn(), toolCall, human),
129
- streamCall: ({ reader, ...context }) => getToolStreamResponse(toolsFn(), abortSignalFn(), reader, context, human),
130
- onExecutionStart: options?.onExecutionStart,
131
- onExecutionEnd: options?.onExecutionEnd
132
- });
121
+ export function toolResultStream(tools, abortSignal, human, options) {
122
+ const toolsFn = typeof tools === "function" ? tools : () => tools;
123
+ const abortSignalFn = typeof abortSignal === "function" ? abortSignal : () => abortSignal;
124
+ return new ToolExecutionStream({
125
+ execute: (toolCall) => getToolResponse(toolsFn(), abortSignalFn(), toolCall, human),
126
+ streamCall: ({ reader, ...context }) => getToolStreamResponse(toolsFn(), abortSignalFn(), reader, context, human),
127
+ onExecutionStart: options?.onExecutionStart,
128
+ onExecutionEnd: options?.onExecutionEnd,
129
+ });
133
130
  }
134
- export {
135
- toolResultStream,
136
- unstable_runPendingTools
137
- };
138
131
  //# sourceMappingURL=toolResultStream.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/tool/toolResultStream.ts"],"sourcesContent":["import { Tool, ToolCallReader, ToolExecuteFunction } from \"./tool-types\";\nimport { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { ToolResponse } from \"./ToolResponse\";\nimport { ToolExecutionStream } from \"./ToolExecutionStream\";\nimport { AssistantMessage } from \"../utils/types\";\nimport { ReadonlyJSONObject, ReadonlyJSONValue } from \"../../utils\";\n\nconst isStandardSchemaV1 = (\n schema: unknown,\n): schema is StandardSchemaV1<unknown> => {\n return (\n typeof schema === \"object\" &&\n schema !== null &&\n \"~standard\" in schema &&\n (schema as StandardSchemaV1<unknown>)[\"~standard\"].version === 1\n );\n};\n\nfunction getToolResponse(\n tools: Record<string, Tool> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: ReadonlyJSONObject;\n },\n human: (toolCallId: string, payload: unknown) => Promise<unknown>,\n) {\n const tool = tools?.[toolCall.toolName];\n if (!tool || !tool.execute) return undefined;\n\n const getResult = async (\n toolExecute: ToolExecuteFunction<ReadonlyJSONObject, unknown>,\n ): Promise<ToolResponse<ReadonlyJSONValue>> => {\n // Check if already aborted before starting\n if (abortSignal.aborted) {\n return new ToolResponse({\n result: \"Tool execution was cancelled.\",\n isError: true,\n });\n }\n\n let executeFn = toolExecute;\n\n if (isStandardSchemaV1(tool.parameters)) {\n let result = tool.parameters[\"~standard\"].validate(toolCall.args);\n if (result instanceof Promise) result = await result;\n\n if (result.issues) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.issues)}`,\n );\n });\n }\n }\n\n // Create abort promise that resolves after 2 microtasks\n // This gives tools that handle abort a chance to win the race\n const abortPromise = new Promise<ToolResponse<ReadonlyJSONValue>>(\n (resolve) => {\n const onAbort = () => {\n queueMicrotask(() => {\n queueMicrotask(() => {\n resolve(\n new ToolResponse({\n result: \"Tool execution was cancelled.\",\n isError: true,\n }),\n );\n });\n });\n };\n if (abortSignal.aborted) {\n onAbort();\n } else {\n abortSignal.addEventListener(\"abort\", onAbort, { once: true });\n }\n },\n );\n\n const executePromise = (async () => {\n const result = (await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n human: (payload: unknown) => human(toolCall.toolCallId, payload),\n })) as unknown as ReadonlyJSONValue;\n return ToolResponse.toResponse(result);\n })();\n\n return Promise.race([executePromise, abortPromise]);\n };\n\n return getResult(tool.execute);\n}\n\nfunction getToolStreamResponse(\n tools: Record<string, Tool> | undefined,\n abortSignal: AbortSignal,\n reader: ToolCallReader<any, ReadonlyJSONValue>,\n context: {\n toolCallId: string;\n toolName: string;\n },\n human: (toolCallId: string, payload: unknown) => Promise<unknown>,\n) {\n tools?.[context.toolName]?.streamCall?.(reader, {\n toolCallId: context.toolCallId,\n abortSignal,\n human: (payload: unknown) => human(context.toolCallId, payload),\n });\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool> | undefined,\n abortSignal: AbortSignal,\n human: (toolCallId: string, payload: unknown) => Promise<unknown>,\n) {\n const toolCallPromises = message.parts\n .filter((part) => part.type === \"tool-call\")\n .map(async (part) => {\n const promiseOrUndefined = getToolResponse(\n tools,\n abortSignal,\n part,\n human ??\n (async () => {\n throw new Error(\n \"Tool human input is not supported in this context\",\n );\n }),\n );\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n return {\n toolCallId: part.toolCallId,\n result,\n };\n }\n return null;\n });\n\n const toolCallResults = (await Promise.all(toolCallPromises)).filter(\n (result) => result !== null,\n ) as { toolCallId: string; result: ToolResponse<ReadonlyJSONValue> }[];\n\n if (toolCallResults.length === 0) {\n return message;\n }\n\n const toolCallResultsById = toolCallResults.reduce(\n (acc, { toolCallId, result }) => {\n acc[toolCallId] = result;\n return acc;\n },\n {} as Record<string, ToolResponse<ReadonlyJSONValue>>,\n );\n\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\") {\n const toolResponse = toolCallResultsById[p.toolCallId];\n if (toolResponse) {\n return {\n ...p,\n state: \"result\" as const,\n ...(toolResponse.artifact !== undefined\n ? { artifact: toolResponse.artifact }\n : {}),\n result: toolResponse.result as ReadonlyJSONValue,\n isError: toolResponse.isError,\n };\n }\n }\n return p;\n });\n\n return {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n}\n\nexport type ToolResultStreamOptions = {\n onExecutionStart?: (toolCallId: string, toolName: string) => void;\n onExecutionEnd?: (toolCallId: string, toolName: string) => void;\n};\n\nexport function toolResultStream(\n tools:\n | Record<string, Tool>\n | (() => Record<string, Tool> | undefined)\n | undefined,\n abortSignal: AbortSignal | (() => AbortSignal),\n human: (toolCallId: string, payload: unknown) => Promise<unknown>,\n options?: ToolResultStreamOptions,\n) {\n const toolsFn = typeof tools === \"function\" ? tools : () => tools;\n const abortSignalFn =\n typeof abortSignal === \"function\" ? abortSignal : () => abortSignal;\n return new ToolExecutionStream({\n execute: (toolCall) =>\n getToolResponse(toolsFn(), abortSignalFn(), toolCall, human),\n streamCall: ({ reader, ...context }) =>\n getToolStreamResponse(toolsFn(), abortSignalFn(), reader, context, human),\n onExecutionStart: options?.onExecutionStart,\n onExecutionEnd: options?.onExecutionEnd,\n });\n}\n"],"mappings":"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","names":[]}
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,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE7C,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 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=type-path-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"type-path-utils.js","sourceRoot":"","sources":["../../../src/core/tool/type-path-utils.ts"],"names":[],"mappings":""}
@@ -1,11 +1,7 @@
1
- // src/core/utils/Counter.ts
2
- var Counter = class {
3
- value = -1;
4
- up() {
5
- return ++this.value;
6
- }
7
- };
8
- export {
9
- Counter
10
- };
1
+ export class Counter {
2
+ value = -1;
3
+ up() {
4
+ return ++this.value;
5
+ }
6
+ }
11
7
  //# sourceMappingURL=Counter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/utils/Counter.ts"],"sourcesContent":["export class Counter {\n public value = -1;\n\n up() {\n return ++this.value;\n }\n}\n"],"mappings":";AAAO,IAAM,UAAN,MAAc;AAAA,EACZ,QAAQ;AAAA,EAEf,KAAK;AACH,WAAO,EAAE,KAAK;AAAA,EAChB;AACF;","names":[]}
1
+ {"version":3,"file":"Counter.js","sourceRoot":"","sources":["../../../src/core/utils/Counter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IACX,KAAK,GAAG,CAAC,CAAC,CAAC;IAElB,EAAE;QACA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACF"}
@@ -1,10 +1,3 @@
1
- // src/core/utils/generateId.tsx
2
1
  import { customAlphabet } from "nanoid/non-secure";
3
- var generateId = customAlphabet(
4
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
5
- 7
6
- );
7
- export {
8
- generateId
9
- };
2
+ export const generateId = customAlphabet("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 7);
10
3
  //# sourceMappingURL=generateId.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/utils/generateId.tsx"],"sourcesContent":["import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n"],"mappings":";AAAA,SAAS,sBAAsB;AAExB,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"file":"generateId.js","sourceRoot":"","sources":["../../../src/core/utils/generateId.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CACtC,gEAAgE,EAChE,CAAC,CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AssistantStreamChunk, PartInit } from "../../AssistantStreamChunk";
1
+ import { AssistantStreamChunk, PartInit } from "../../AssistantStreamChunk.js";
2
2
  /**
3
3
  * For chunk types that are associated with a part,
4
4
  * we require a non‑nullable meta field.
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMetaTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,QAAQ,GAAG,4BAA4B,CAAC;IAC9C,IAAI,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACxC,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,OAAO,CACX,oBAAoB,CAAC,MAAM,CAAC,EAC5B,YAAY,GAAG,QAAQ,GAAG,4BAA4B,GAAG,aAAa,CACvE,CAAC;CACH,CAAC,CAAC;AACP,qBAAa,4BAA6B,SAAQ,eAAe,CAC/D,oBAAoB,EACpB,wBAAwB,CACzB;;CAiDA"}
1
+ {"version":3,"file":"AssistantMetaTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,sCAAmC;AAE5E;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,QAAQ,GAAG,4BAA4B,CAAC;IAC9C,IAAI,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACxC,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,OAAO,CACX,oBAAoB,CAAC,MAAM,CAAC,EAC5B,YAAY,GAAG,QAAQ,GAAG,4BAA4B,GAAG,aAAa,CACvE,CAAC;CACH,CAAC,CAAC;AACP,qBAAa,4BAA6B,SAAQ,eAAe,CAC/D,oBAAoB,EACpB,wBAAwB,CACzB;;CAiDA"}
@@ -1,44 +1,43 @@
1
- // src/core/utils/stream/AssistantMetaTransformStream.ts
2
- var AssistantMetaTransformStream = class extends TransformStream {
3
- constructor() {
4
- const parts = [];
5
- super({
6
- transform(chunk, controller) {
7
- if (chunk.type === "part-start") {
8
- if (chunk.path.length !== 0) {
9
- controller.error(new Error("Nested parts are not supported"));
10
- return;
11
- }
12
- parts.push(chunk.part);
13
- controller.enqueue(chunk);
14
- return;
15
- }
16
- if (chunk.type === "text-delta" || chunk.type === "result" || chunk.type === "part-finish" || chunk.type === "tool-call-args-text-finish") {
17
- if (chunk.path.length !== 1) {
18
- controller.error(
19
- new Error(`${chunk.type} chunks must have a path of length 1`)
20
- );
21
- return;
22
- }
23
- const idx = chunk.path[0];
24
- if (idx < 0 || idx >= parts.length) {
25
- controller.error(new Error(`Invalid path index: ${idx}`));
26
- return;
27
- }
28
- const part = parts[idx];
29
- controller.enqueue({
30
- ...chunk,
31
- meta: part
32
- // TODO
33
- });
34
- return;
35
- }
36
- controller.enqueue(chunk);
37
- }
38
- });
39
- }
40
- };
41
- export {
42
- AssistantMetaTransformStream
43
- };
1
+ export class AssistantMetaTransformStream extends TransformStream {
2
+ constructor() {
3
+ // We use an array to record parts as they are introduced.
4
+ const parts = [];
5
+ super({
6
+ transform(chunk, controller) {
7
+ // For chunks that introduce a new part.
8
+ if (chunk.type === "part-start") {
9
+ if (chunk.path.length !== 0) {
10
+ controller.error(new Error("Nested parts are not supported"));
11
+ return;
12
+ }
13
+ parts.push(chunk.part);
14
+ controller.enqueue(chunk);
15
+ return;
16
+ }
17
+ // For chunks that expect an associated part.
18
+ if (chunk.type === "text-delta" ||
19
+ chunk.type === "result" ||
20
+ chunk.type === "part-finish" ||
21
+ chunk.type === "tool-call-args-text-finish") {
22
+ if (chunk.path.length !== 1) {
23
+ controller.error(new Error(`${chunk.type} chunks must have a path of length 1`));
24
+ return;
25
+ }
26
+ const idx = chunk.path[0];
27
+ if (idx < 0 || idx >= parts.length) {
28
+ controller.error(new Error(`Invalid path index: ${idx}`));
29
+ return;
30
+ }
31
+ const part = parts[idx];
32
+ controller.enqueue({
33
+ ...chunk,
34
+ meta: part, // TODO
35
+ });
36
+ return;
37
+ }
38
+ controller.enqueue(chunk);
39
+ },
40
+ });
41
+ }
42
+ }
44
43
  //# sourceMappingURL=AssistantMetaTransformStream.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"sourcesContent":["import { AssistantStreamChunk, PartInit } from \"../../AssistantStreamChunk\";\n\n/**\n * For chunk types that are associated with a part,\n * we require a non‑nullable meta field.\n */\nexport type AssistantMetaStreamChunk =\n | (AssistantStreamChunk & {\n type: \"text-delta\" | \"part-finish\";\n meta: PartInit;\n })\n | (AssistantStreamChunk & {\n type: \"result\" | \"tool-call-args-text-finish\";\n meta: PartInit & { type: \"tool-call\" };\n })\n | (AssistantStreamChunk & {\n type: Exclude<\n AssistantStreamChunk[\"type\"],\n \"text-delta\" | \"result\" | \"tool-call-args-text-finish\" | \"part-finish\"\n >;\n });\nexport class AssistantMetaTransformStream extends TransformStream<\n AssistantStreamChunk,\n AssistantMetaStreamChunk\n> {\n constructor() {\n // We use an array to record parts as they are introduced.\n const parts: PartInit[] = [];\n\n super({\n transform(chunk, controller) {\n // For chunks that introduce a new part.\n if (chunk.type === \"part-start\") {\n if (chunk.path.length !== 0) {\n controller.error(new Error(\"Nested parts are not supported\"));\n return;\n }\n parts.push(chunk.part);\n controller.enqueue(chunk);\n return;\n }\n\n // For chunks that expect an associated part.\n if (\n chunk.type === \"text-delta\" ||\n chunk.type === \"result\" ||\n chunk.type === \"part-finish\" ||\n chunk.type === \"tool-call-args-text-finish\"\n ) {\n if (chunk.path.length !== 1) {\n controller.error(\n new Error(`${chunk.type} chunks must have a path of length 1`),\n );\n return;\n }\n const idx = chunk.path[0]!;\n if (idx < 0 || idx >= parts.length) {\n controller.error(new Error(`Invalid path index: ${idx}`));\n return;\n }\n const part = parts[idx]!;\n\n controller.enqueue({\n ...chunk,\n meta: part as any, // TODO\n });\n return;\n }\n\n controller.enqueue(chunk);\n },\n });\n }\n}\n"],"mappings":";AAqBO,IAAM,+BAAN,cAA2C,gBAGhD;AAAA,EACA,cAAc;AAEZ,UAAM,QAAoB,CAAC;AAE3B,UAAM;AAAA,MACJ,UAAU,OAAO,YAAY;AAE3B,YAAI,MAAM,SAAS,cAAc;AAC/B,cAAI,MAAM,KAAK,WAAW,GAAG;AAC3B,uBAAW,MAAM,IAAI,MAAM,gCAAgC,CAAC;AAC5D;AAAA,UACF;AACA,gBAAM,KAAK,MAAM,IAAI;AACrB,qBAAW,QAAQ,KAAK;AACxB;AAAA,QACF;AAGA,YACE,MAAM,SAAS,gBACf,MAAM,SAAS,YACf,MAAM,SAAS,iBACf,MAAM,SAAS,8BACf;AACA,cAAI,MAAM,KAAK,WAAW,GAAG;AAC3B,uBAAW;AAAA,cACT,IAAI,MAAM,GAAG,MAAM,IAAI,sCAAsC;AAAA,YAC/D;AACA;AAAA,UACF;AACA,gBAAM,MAAM,MAAM,KAAK,CAAC;AACxB,cAAI,MAAM,KAAK,OAAO,MAAM,QAAQ;AAClC,uBAAW,MAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACxD;AAAA,UACF;AACA,gBAAM,OAAO,MAAM,GAAG;AAEtB,qBAAW,QAAQ;AAAA,YACjB,GAAG;AAAA,YACH,MAAM;AAAA;AAAA,UACR,CAAC;AACD;AAAA,QACF;AAEA,mBAAW,QAAQ,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"file":"AssistantMetaTransformStream.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,4BAA6B,SAAQ,eAGjD;IACC;QACE,0DAA0D;QAC1D,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,KAAK,CAAC;YACJ,SAAS,CAAC,KAAK,EAAE,UAAU;gBACzB,wCAAwC;gBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBAC9D,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBAED,6CAA6C;gBAC7C,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;oBAC3B,KAAK,CAAC,IAAI,KAAK,QAAQ;oBACvB,KAAK,CAAC,IAAI,KAAK,aAAa;oBAC5B,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAC3C,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,UAAU,CAAC,KAAK,CACd,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAC/D,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;oBAC3B,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACnC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC1D,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,CAAC;oBAEzB,UAAU,CAAC,OAAO,CAAC;wBACjB,GAAG,KAAK;wBACR,IAAI,EAAE,IAAW,EAAE,OAAO;qBAC3B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import { AssistantStreamChunk } from "../../AssistantStreamChunk";
2
- import { AssistantStreamController } from "../../modules/assistant-stream";
1
+ import { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
2
+ import { AssistantStreamController } from "../../modules/assistant-stream.js";
3
3
  type AssistantTransformerFlushCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
4
4
  type AssistantTransformerStartCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
5
5
  type AssistantTransformerTransformCallback<I> = (chunk: I, controller: AssistantStreamController) => void | PromiseLike<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,yBAAyB,EAE1B,MAAM,gCAAgC,CAAC;AAExC,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,qCAAqC,CAAC,CAAC,IAAI,CAC9C,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,SAAS,CAAC,EAAE,qCAAqC,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAC9D,CAAC,EACD,oBAAoB,CACrB;gBAEG,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACpC,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrC,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC;CAyC3D"}
1
+ {"version":3,"file":"AssistantTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,sCAAmC;AAClE,OAAO,EACL,yBAAyB,EAE1B,0CAAuC;AAExC,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,qCAAqC,CAAC,CAAC,IAAI,CAC9C,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,SAAS,CAAC,EAAE,qCAAqC,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAC9D,CAAC,EACD,oBAAoB,CACrB;gBAEG,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACpC,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrC,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC;CAyC3D"}
@@ -1,46 +1,36 @@
1
- // src/core/utils/stream/AssistantTransformStream.ts
2
- import {
3
- createAssistantStreamController
4
- } from "../../modules/assistant-stream.js";
5
- var AssistantTransformStream = class extends TransformStream {
6
- constructor(transformer, writableStrategy, readableStrategy) {
7
- const [stream, runController] = createAssistantStreamController();
8
- let runPipeTask;
9
- super(
10
- {
11
- start(controller) {
12
- runPipeTask = stream.pipeTo(
13
- new WritableStream({
14
- write(chunk) {
15
- controller.enqueue(chunk);
16
- },
17
- abort(reason) {
18
- controller.error(reason);
19
- },
20
- close() {
21
- controller.terminate();
22
- }
23
- })
24
- ).catch((error) => {
25
- controller.error(error);
26
- });
27
- return transformer.start?.(runController);
28
- },
29
- transform(chunk) {
30
- return transformer.transform?.(chunk, runController);
31
- },
32
- async flush() {
33
- await transformer.flush?.(runController);
34
- runController.close();
35
- await runPipeTask;
36
- }
37
- },
38
- writableStrategy,
39
- readableStrategy
40
- );
41
- }
42
- };
43
- export {
44
- AssistantTransformStream
45
- };
1
+ import { createAssistantStreamController, } from "../../modules/assistant-stream.js";
2
+ export class AssistantTransformStream extends TransformStream {
3
+ constructor(transformer, writableStrategy, readableStrategy) {
4
+ const [stream, runController] = createAssistantStreamController();
5
+ let runPipeTask;
6
+ super({
7
+ start(controller) {
8
+ runPipeTask = stream
9
+ .pipeTo(new WritableStream({
10
+ write(chunk) {
11
+ controller.enqueue(chunk);
12
+ },
13
+ abort(reason) {
14
+ controller.error(reason);
15
+ },
16
+ close() {
17
+ controller.terminate();
18
+ },
19
+ }))
20
+ .catch((error) => {
21
+ controller.error(error);
22
+ });
23
+ return transformer.start?.(runController);
24
+ },
25
+ transform(chunk) {
26
+ return transformer.transform?.(chunk, runController);
27
+ },
28
+ async flush() {
29
+ await transformer.flush?.(runController);
30
+ runController.close();
31
+ await runPipeTask;
32
+ },
33
+ }, writableStrategy, readableStrategy);
34
+ }
35
+ }
46
36
  //# sourceMappingURL=AssistantTransformStream.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"sourcesContent":["import { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport {\n AssistantStreamController,\n createAssistantStreamController,\n} from \"../../modules/assistant-stream\";\n\ntype AssistantTransformerFlushCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerStartCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerTransformCallback<I> = (\n chunk: I,\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformer<I> = {\n flush?: AssistantTransformerFlushCallback;\n start?: AssistantTransformerStartCallback;\n transform?: AssistantTransformerTransformCallback<I>;\n};\n\nexport class AssistantTransformStream<I> extends TransformStream<\n I,\n AssistantStreamChunk\n> {\n constructor(\n transformer: AssistantTransformer<I>,\n writableStrategy?: QueuingStrategy<I>,\n readableStrategy?: QueuingStrategy<AssistantStreamChunk>,\n ) {\n const [stream, runController] = createAssistantStreamController();\n\n let runPipeTask: Promise<void>;\n super(\n {\n start(controller) {\n runPipeTask = stream\n .pipeTo(\n new WritableStream({\n write(chunk) {\n controller.enqueue(chunk);\n },\n abort(reason?: any) {\n controller.error(reason);\n },\n close() {\n controller.terminate();\n },\n }),\n )\n .catch((error) => {\n controller.error(error);\n });\n\n return transformer.start?.(runController);\n },\n transform(chunk) {\n return transformer.transform?.(chunk, runController);\n },\n async flush() {\n await transformer.flush?.(runController);\n runController.close();\n await runPipeTask;\n },\n },\n writableStrategy,\n readableStrategy,\n );\n }\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AAqBA,IAAM,2BAAN,cAA0C,gBAG/C;AAAA,EACA,YACE,aACA,kBACA,kBACA;AACA,UAAM,CAAC,QAAQ,aAAa,IAAI,gCAAgC;AAEhE,QAAI;AACJ;AAAA,MACE;AAAA,QACE,MAAM,YAAY;AAChB,wBAAc,OACX;AAAA,YACC,IAAI,eAAe;AAAA,cACjB,MAAM,OAAO;AACX,2BAAW,QAAQ,KAAK;AAAA,cAC1B;AAAA,cACA,MAAM,QAAc;AAClB,2BAAW,MAAM,MAAM;AAAA,cACzB;AAAA,cACA,QAAQ;AACN,2BAAW,UAAU;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACH,EACC,MAAM,CAAC,UAAU;AAChB,uBAAW,MAAM,KAAK;AAAA,UACxB,CAAC;AAEH,iBAAO,YAAY,QAAQ,aAAa;AAAA,QAC1C;AAAA,QACA,UAAU,OAAO;AACf,iBAAO,YAAY,YAAY,OAAO,aAAa;AAAA,QACrD;AAAA,QACA,MAAM,QAAQ;AACZ,gBAAM,YAAY,QAAQ,aAAa;AACvC,wBAAc,MAAM;AACpB,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"file":"AssistantTransformStream.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,+BAA+B,GAChC,0CAAuC;AAqBxC,MAAM,OAAO,wBAA4B,SAAQ,eAGhD;IACC,YACE,WAAoC,EACpC,gBAAqC,EACrC,gBAAwD;QAExD,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,+BAA+B,EAAE,CAAC;QAElE,IAAI,WAA0B,CAAC;QAC/B,KAAK,CACH;YACE,KAAK,CAAC,UAAU;gBACd,WAAW,GAAG,MAAM;qBACjB,MAAM,CACL,IAAI,cAAc,CAAC;oBACjB,KAAK,CAAC,KAAK;wBACT,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBACD,KAAK,CAAC,MAAY;wBAChB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC3B,CAAC;oBACD,KAAK;wBACH,UAAU,CAAC,SAAS,EAAE,CAAC;oBACzB,CAAC;iBACF,CAAC,CACH;qBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAEL,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC;YACD,SAAS,CAAC,KAAK;gBACb,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,CAAC,KAAK;gBACT,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;gBACzC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,WAAW,CAAC;YACpB,CAAC;SACF,EACD,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IACJ,CAAC;CACF"}