@assistant-ui/react 0.7.52 → 0.7.53
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +10 -4
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js +4 -2
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs +4 -2
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.js +4 -2
- package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +4 -2
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/assistantEncoderStream.js +2 -2
- package/dist/runtimes/edge/streams/assistantEncoderStream.js.map +1 -1
- package/dist/runtimes/edge/streams/assistantEncoderStream.mjs +2 -2
- package/dist/runtimes/edge/streams/assistantEncoderStream.mjs.map +1 -1
- package/package.json +1 -1
- package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +10 -4
- package/src/runtimes/edge/streams/assistantDecoderStream.ts +4 -2
- package/src/runtimes/edge/streams/assistantEncoderStream.ts +2 -2
@@ -8,8 +8,10 @@ export declare enum AssistantStreamChunkType {
|
|
8
8
|
ToolCallResult = "a",
|
9
9
|
ToolCallBegin = "b",
|
10
10
|
ToolCallDelta = "c",
|
11
|
-
|
12
|
-
|
11
|
+
FinishMessage = "d",
|
12
|
+
FinishStep = "e",
|
13
|
+
StartStep = "f",
|
14
|
+
ReasoningDelta = "g"
|
13
15
|
}
|
14
16
|
export type AssistantStreamChunk = {
|
15
17
|
[AssistantStreamChunkType.TextDelta]: string;
|
@@ -33,7 +35,7 @@ export type AssistantStreamChunk = {
|
|
33
35
|
result: any;
|
34
36
|
};
|
35
37
|
[AssistantStreamChunkType.Error]: unknown;
|
36
|
-
[AssistantStreamChunkType.
|
38
|
+
[AssistantStreamChunkType.FinishStep]: {
|
37
39
|
finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
|
38
40
|
usage: {
|
39
41
|
promptTokens: number;
|
@@ -41,8 +43,12 @@ export type AssistantStreamChunk = {
|
|
41
43
|
};
|
42
44
|
isContinued: boolean;
|
43
45
|
};
|
44
|
-
[AssistantStreamChunkType.
|
46
|
+
[AssistantStreamChunkType.FinishMessage]: Omit<LanguageModelV1StreamPart & {
|
45
47
|
type: "finish";
|
46
48
|
}, "type">;
|
49
|
+
[AssistantStreamChunkType.StartStep]: {
|
50
|
+
id: string;
|
51
|
+
};
|
52
|
+
[AssistantStreamChunkType.ReasoningDelta]: string;
|
47
53
|
};
|
48
54
|
//# sourceMappingURL=AssistantStreamChunkType.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantStreamChunkType.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAExE,oBAAY,wBAAwB;IAClC,SAAS,MAAM;IACf,IAAI,MAAM;IACV,KAAK,MAAM;IACX,UAAU,MAAM;IAChB,QAAQ,MAAM;IACd,cAAc,MAAM;IACpB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,
|
1
|
+
{"version":3,"file":"AssistantStreamChunkType.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAExE,oBAAY,wBAAwB;IAClC,SAAS,MAAM;IACf,IAAI,MAAM;IACV,KAAK,MAAM;IACX,UAAU,MAAM;IAChB,QAAQ,MAAM;IACd,cAAc,MAAM;IACpB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,aAAa,MAAM;IACnB,UAAU,MAAM;IAChB,SAAS,MAAM;IACf,cAAc,MAAM;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7C,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE;QACnC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;QACxC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;QACxC,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE;QACzC,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC;KACb,CAAC;IACF,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAC1C,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE;QACrC,YAAY,EACR,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,SAAS,CAAC;QACd,KAAK,EAAE;YACL,YAAY,EAAE,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,IAAI,CAC5C,yBAAyB,GAAG;QAC1B,IAAI,EAAE,QAAQ,CAAC;KAChB,EACD,MAAM,CACP,CAAC;IACF,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE;QACpC,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACnD,CAAC"}
|
@@ -32,8 +32,10 @@ var AssistantStreamChunkType = /* @__PURE__ */ ((AssistantStreamChunkType2) => {
|
|
32
32
|
AssistantStreamChunkType2["ToolCallResult"] = "a";
|
33
33
|
AssistantStreamChunkType2["ToolCallBegin"] = "b";
|
34
34
|
AssistantStreamChunkType2["ToolCallDelta"] = "c";
|
35
|
-
AssistantStreamChunkType2["
|
36
|
-
AssistantStreamChunkType2["
|
35
|
+
AssistantStreamChunkType2["FinishMessage"] = "d";
|
36
|
+
AssistantStreamChunkType2["FinishStep"] = "e";
|
37
|
+
AssistantStreamChunkType2["StartStep"] = "f";
|
38
|
+
AssistantStreamChunkType2["ReasoningDelta"] = "g";
|
37
39
|
return AssistantStreamChunkType2;
|
38
40
|
})(AssistantStreamChunkType || {});
|
39
41
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"sourcesContent":["import { JSONValue, LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\n\nexport enum AssistantStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n ToolCallBegin = \"b\",\n ToolCallDelta = \"c\",\n
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"sourcesContent":["import { JSONValue, LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\n\nexport enum AssistantStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n ToolCallBegin = \"b\",\n ToolCallDelta = \"c\",\n FinishMessage = \"d\",\n FinishStep = \"e\",\n StartStep = \"f\",\n ReasoningDelta = \"g\",\n}\n\nexport type AssistantStreamChunk = {\n [AssistantStreamChunkType.TextDelta]: string;\n [AssistantStreamChunkType.Data]: JSONValue[];\n [AssistantStreamChunkType.Annotation]: JSONValue[];\n [AssistantStreamChunkType.ToolCall]: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n };\n [AssistantStreamChunkType.ToolCallBegin]: {\n toolCallId: string;\n toolName: string;\n };\n [AssistantStreamChunkType.ToolCallDelta]: {\n toolCallId: string;\n argsTextDelta: string;\n };\n [AssistantStreamChunkType.ToolCallResult]: {\n toolCallId: string;\n result: any;\n };\n [AssistantStreamChunkType.Error]: unknown;\n [AssistantStreamChunkType.FinishStep]: {\n finishReason:\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n usage: {\n promptTokens: number;\n completionTokens: number;\n };\n isContinued: boolean;\n };\n [AssistantStreamChunkType.FinishMessage]: Omit<\n LanguageModelV1StreamPart & {\n type: \"finish\";\n },\n \"type\"\n >;\n [AssistantStreamChunkType.StartStep]: {\n id: string;\n };\n [AssistantStreamChunkType.ReasoningDelta]: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAK,2BAAL,kBAAKA,8BAAL;AACL,EAAAA,0BAAA,eAAY;AACZ,EAAAA,0BAAA,UAAO;AACP,EAAAA,0BAAA,WAAQ;AACR,EAAAA,0BAAA,gBAAa;AACb,EAAAA,0BAAA,cAAW;AACX,EAAAA,0BAAA,oBAAiB;AACjB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,gBAAa;AACb,EAAAA,0BAAA,eAAY;AACZ,EAAAA,0BAAA,oBAAiB;AAZP,SAAAA;AAAA,GAAA;","names":["AssistantStreamChunkType"]}
|
@@ -8,8 +8,10 @@ var AssistantStreamChunkType = /* @__PURE__ */ ((AssistantStreamChunkType2) => {
|
|
8
8
|
AssistantStreamChunkType2["ToolCallResult"] = "a";
|
9
9
|
AssistantStreamChunkType2["ToolCallBegin"] = "b";
|
10
10
|
AssistantStreamChunkType2["ToolCallDelta"] = "c";
|
11
|
-
AssistantStreamChunkType2["
|
12
|
-
AssistantStreamChunkType2["
|
11
|
+
AssistantStreamChunkType2["FinishMessage"] = "d";
|
12
|
+
AssistantStreamChunkType2["FinishStep"] = "e";
|
13
|
+
AssistantStreamChunkType2["StartStep"] = "f";
|
14
|
+
AssistantStreamChunkType2["ReasoningDelta"] = "g";
|
13
15
|
return AssistantStreamChunkType2;
|
14
16
|
})(AssistantStreamChunkType || {});
|
15
17
|
export {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"sourcesContent":["import { JSONValue, LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\n\nexport enum AssistantStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n ToolCallBegin = \"b\",\n ToolCallDelta = \"c\",\n
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/AssistantStreamChunkType.ts"],"sourcesContent":["import { JSONValue, LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\n\nexport enum AssistantStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n ToolCallBegin = \"b\",\n ToolCallDelta = \"c\",\n FinishMessage = \"d\",\n FinishStep = \"e\",\n StartStep = \"f\",\n ReasoningDelta = \"g\",\n}\n\nexport type AssistantStreamChunk = {\n [AssistantStreamChunkType.TextDelta]: string;\n [AssistantStreamChunkType.Data]: JSONValue[];\n [AssistantStreamChunkType.Annotation]: JSONValue[];\n [AssistantStreamChunkType.ToolCall]: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n };\n [AssistantStreamChunkType.ToolCallBegin]: {\n toolCallId: string;\n toolName: string;\n };\n [AssistantStreamChunkType.ToolCallDelta]: {\n toolCallId: string;\n argsTextDelta: string;\n };\n [AssistantStreamChunkType.ToolCallResult]: {\n toolCallId: string;\n result: any;\n };\n [AssistantStreamChunkType.Error]: unknown;\n [AssistantStreamChunkType.FinishStep]: {\n finishReason:\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n usage: {\n promptTokens: number;\n completionTokens: number;\n };\n isContinued: boolean;\n };\n [AssistantStreamChunkType.FinishMessage]: Omit<\n LanguageModelV1StreamPart & {\n type: \"finish\";\n },\n \"type\"\n >;\n [AssistantStreamChunkType.StartStep]: {\n id: string;\n };\n [AssistantStreamChunkType.ReasoningDelta]: string;\n};\n"],"mappings":";AAEO,IAAK,2BAAL,kBAAKA,8BAAL;AACL,EAAAA,0BAAA,eAAY;AACZ,EAAAA,0BAAA,UAAO;AACP,EAAAA,0BAAA,WAAQ;AACR,EAAAA,0BAAA,gBAAa;AACb,EAAAA,0BAAA,cAAW;AACX,EAAAA,0BAAA,oBAAiB;AACjB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,gBAAa;AACb,EAAAA,0BAAA,eAAY;AACZ,EAAAA,0BAAA,oBAAiB;AAZP,SAAAA;AAAA,GAAA;","names":["AssistantStreamChunkType"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"assistantDecoderStream.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,sBAAsB,
|
1
|
+
{"version":3,"file":"assistantDecoderStream.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,sBAAsB,4EAqJrC"}
|
@@ -89,7 +89,7 @@ function assistantDecoderStream() {
|
|
89
89
|
});
|
90
90
|
break;
|
91
91
|
}
|
92
|
-
case import_AssistantStreamChunkType.AssistantStreamChunkType.
|
92
|
+
case import_AssistantStreamChunkType.AssistantStreamChunkType.FinishMessage: {
|
93
93
|
controller.enqueue({
|
94
94
|
type: "finish",
|
95
95
|
...value
|
@@ -123,7 +123,7 @@ function assistantDecoderStream() {
|
|
123
123
|
});
|
124
124
|
break;
|
125
125
|
}
|
126
|
-
case import_AssistantStreamChunkType.AssistantStreamChunkType.
|
126
|
+
case import_AssistantStreamChunkType.AssistantStreamChunkType.FinishStep: {
|
127
127
|
controller.enqueue({
|
128
128
|
type: "step-finish",
|
129
129
|
...value
|
@@ -137,6 +137,8 @@ function assistantDecoderStream() {
|
|
137
137
|
});
|
138
138
|
break;
|
139
139
|
// TODO
|
140
|
+
case import_AssistantStreamChunkType.AssistantStreamChunkType.ReasoningDelta:
|
141
|
+
case import_AssistantStreamChunkType.AssistantStreamChunkType.StartStep:
|
140
142
|
case import_AssistantStreamChunkType.AssistantStreamChunkType.Annotation:
|
141
143
|
break;
|
142
144
|
default: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantDecoderStream() {\n const toolCallNames = new Map<string, string>();\n let currentToolCall:\n | { id: string; name: string; argsText: string }\n | undefined;\n\n const endCurrentToolCall = (\n controller: TransformStreamDefaultController<ToolResultStreamPart>,\n ) => {\n if (!currentToolCall) return;\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: currentToolCall.id,\n toolName: currentToolCall.name,\n args: currentToolCall.argsText,\n });\n currentToolCall = undefined;\n };\n\n return new TransformStream<\n StreamPart<AssistantStreamChunk>,\n ToolResultStreamPart\n >({\n transform({ type, value }, controller) {\n if (\n type !== AssistantStreamChunkType.ToolCallDelta &&\n type !== AssistantStreamChunkType.Error\n ) {\n endCurrentToolCall(controller);\n }\n\n switch (type) {\n case AssistantStreamChunkType.TextDelta: {\n controller.enqueue({\n type: \"text-delta\",\n textDelta: value,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallBegin: {\n const { toolCallId: id, toolName: name } = value;\n toolCallNames.set(id, name);\n\n currentToolCall = { id, name, argsText: \"\" };\n\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId: id,\n toolName: name,\n argsTextDelta: \"\",\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallDelta: {\n const { toolCallId, argsTextDelta } = value;\n\n const toolName = toolCallNames.get(toolCallId)!;\n if (currentToolCall?.id === toolCallId) {\n currentToolCall.argsText += argsTextDelta;\n }\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsTextDelta,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallResult: {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType: \"function\",\n toolCallId: value.toolCallId,\n toolName: toolCallNames.get(value.toolCallId)!,\n result: value.result,\n });\n break;\n }\n case AssistantStreamChunkType.
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantDecoderStream() {\n const toolCallNames = new Map<string, string>();\n let currentToolCall:\n | { id: string; name: string; argsText: string }\n | undefined;\n\n const endCurrentToolCall = (\n controller: TransformStreamDefaultController<ToolResultStreamPart>,\n ) => {\n if (!currentToolCall) return;\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: currentToolCall.id,\n toolName: currentToolCall.name,\n args: currentToolCall.argsText,\n });\n currentToolCall = undefined;\n };\n\n return new TransformStream<\n StreamPart<AssistantStreamChunk>,\n ToolResultStreamPart\n >({\n transform({ type, value }, controller) {\n if (\n type !== AssistantStreamChunkType.ToolCallDelta &&\n type !== AssistantStreamChunkType.Error\n ) {\n endCurrentToolCall(controller);\n }\n\n switch (type) {\n case AssistantStreamChunkType.TextDelta: {\n controller.enqueue({\n type: \"text-delta\",\n textDelta: value,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallBegin: {\n const { toolCallId: id, toolName: name } = value;\n toolCallNames.set(id, name);\n\n currentToolCall = { id, name, argsText: \"\" };\n\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId: id,\n toolName: name,\n argsTextDelta: \"\",\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallDelta: {\n const { toolCallId, argsTextDelta } = value;\n\n const toolName = toolCallNames.get(toolCallId)!;\n if (currentToolCall?.id === toolCallId) {\n currentToolCall.argsText += argsTextDelta;\n }\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsTextDelta,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallResult: {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType: \"function\",\n toolCallId: value.toolCallId,\n toolName: toolCallNames.get(value.toolCallId)!,\n result: value.result,\n });\n break;\n }\n case AssistantStreamChunkType.FinishMessage: {\n controller.enqueue({\n type: \"finish\",\n ...value,\n });\n break;\n }\n case AssistantStreamChunkType.Error: {\n controller.enqueue({\n type: \"error\",\n error: value,\n });\n break;\n }\n\n case AssistantStreamChunkType.ToolCall: {\n const { toolCallId, toolName, args } = value;\n toolCallNames.set(toolCallId, toolName);\n\n const argsText = JSON.stringify(args);\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsText,\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: toolCallId,\n toolName: toolName,\n args: argsText,\n });\n break;\n }\n\n case AssistantStreamChunkType.FinishStep: {\n controller.enqueue({\n type: \"step-finish\",\n ...value,\n });\n break;\n }\n\n case AssistantStreamChunkType.Data:\n controller.enqueue({\n type: \"data\",\n data: value,\n });\n break;\n\n // TODO\n case AssistantStreamChunkType.ReasoningDelta:\n case AssistantStreamChunkType.StartStep:\n case AssistantStreamChunkType.Annotation:\n break;\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n flush(controller) {\n endCurrentToolCall(controller);\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAGO;AAIA,SAAS,yBAAyB;AACvC,QAAM,gBAAgB,oBAAI,IAAoB;AAC9C,MAAI;AAIJ,QAAM,qBAAqB,CACzB,eACG;AACH,QAAI,CAAC,gBAAiB;AACtB,eAAW,QAAQ;AAAA,MACjB,MAAM;AAAA,MACN,cAAc;AAAA,MACd,YAAY,gBAAgB;AAAA,MAC5B,UAAU,gBAAgB;AAAA,MAC1B,MAAM,gBAAgB;AAAA,IACxB,CAAC;AACD,sBAAkB;AAAA,EACpB;AAEA,SAAO,IAAI,gBAGT;AAAA,IACA,UAAU,EAAE,MAAM,MAAM,GAAG,YAAY;AACrC,UACE,SAAS,yDAAyB,iBAClC,SAAS,yDAAyB,OAClC;AACA,2BAAmB,UAAU;AAAA,MAC/B;AAEA,cAAQ,MAAM;AAAA,QACZ,KAAK,yDAAyB,WAAW;AACvC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,WAAW;AAAA,UACb,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,yDAAyB,eAAe;AAC3C,gBAAM,EAAE,YAAY,IAAI,UAAU,KAAK,IAAI;AAC3C,wBAAc,IAAI,IAAI,IAAI;AAE1B,4BAAkB,EAAE,IAAI,MAAM,UAAU,GAAG;AAE3C,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,eAAe;AAAA,UACjB,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,yDAAyB,eAAe;AAC3C,gBAAM,EAAE,YAAY,cAAc,IAAI;AAEtC,gBAAM,WAAW,cAAc,IAAI,UAAU;AAC7C,cAAI,iBAAiB,OAAO,YAAY;AACtC,4BAAgB,YAAY;AAAA,UAC9B;AACA,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,cAAc;AAAA,YACd;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,yDAAyB,gBAAgB;AAC5C,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,cAAc;AAAA,YACd,YAAY,MAAM;AAAA,YAClB,UAAU,cAAc,IAAI,MAAM,UAAU;AAAA,YAC5C,QAAQ,MAAM;AAAA,UAChB,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,yDAAyB,eAAe;AAC3C,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,GAAG;AAAA,UACL,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,yDAAyB,OAAO;AACnC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,OAAO;AAAA,UACT,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,yDAAyB,UAAU;AACtC,gBAAM,EAAE,YAAY,UAAU,KAAK,IAAI;AACvC,wBAAc,IAAI,YAAY,QAAQ;AAEtC,gBAAM,WAAW,KAAK,UAAU,IAAI;AACpC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,cAAc;AAAA,YACd;AAAA,YACA;AAAA,YACA,eAAe;AAAA,UACjB,CAAC;AACD,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,cAAc;AAAA,YACd;AAAA,YACA;AAAA,YACA,MAAM;AAAA,UACR,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,yDAAyB,YAAY;AACxC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,GAAG;AAAA,UACL,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,yDAAyB;AAC5B,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM;AAAA,UACR,CAAC;AACD;AAAA;AAAA,QAGF,KAAK,yDAAyB;AAAA,QAC9B,KAAK,yDAAyB;AAAA,QAC9B,KAAK,yDAAyB;AAC5B;AAAA,QAEF,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,YAAY;AAChB,yBAAmB,UAAU;AAAA,IAC/B;AAAA,EACF,CAAC;AACH;","names":[]}
|
@@ -67,7 +67,7 @@ function assistantDecoderStream() {
|
|
67
67
|
});
|
68
68
|
break;
|
69
69
|
}
|
70
|
-
case AssistantStreamChunkType.
|
70
|
+
case AssistantStreamChunkType.FinishMessage: {
|
71
71
|
controller.enqueue({
|
72
72
|
type: "finish",
|
73
73
|
...value
|
@@ -101,7 +101,7 @@ function assistantDecoderStream() {
|
|
101
101
|
});
|
102
102
|
break;
|
103
103
|
}
|
104
|
-
case AssistantStreamChunkType.
|
104
|
+
case AssistantStreamChunkType.FinishStep: {
|
105
105
|
controller.enqueue({
|
106
106
|
type: "step-finish",
|
107
107
|
...value
|
@@ -115,6 +115,8 @@ function assistantDecoderStream() {
|
|
115
115
|
});
|
116
116
|
break;
|
117
117
|
// TODO
|
118
|
+
case AssistantStreamChunkType.ReasoningDelta:
|
119
|
+
case AssistantStreamChunkType.StartStep:
|
118
120
|
case AssistantStreamChunkType.Annotation:
|
119
121
|
break;
|
120
122
|
default: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantDecoderStream() {\n const toolCallNames = new Map<string, string>();\n let currentToolCall:\n | { id: string; name: string; argsText: string }\n | undefined;\n\n const endCurrentToolCall = (\n controller: TransformStreamDefaultController<ToolResultStreamPart>,\n ) => {\n if (!currentToolCall) return;\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: currentToolCall.id,\n toolName: currentToolCall.name,\n args: currentToolCall.argsText,\n });\n currentToolCall = undefined;\n };\n\n return new TransformStream<\n StreamPart<AssistantStreamChunk>,\n ToolResultStreamPart\n >({\n transform({ type, value }, controller) {\n if (\n type !== AssistantStreamChunkType.ToolCallDelta &&\n type !== AssistantStreamChunkType.Error\n ) {\n endCurrentToolCall(controller);\n }\n\n switch (type) {\n case AssistantStreamChunkType.TextDelta: {\n controller.enqueue({\n type: \"text-delta\",\n textDelta: value,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallBegin: {\n const { toolCallId: id, toolName: name } = value;\n toolCallNames.set(id, name);\n\n currentToolCall = { id, name, argsText: \"\" };\n\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId: id,\n toolName: name,\n argsTextDelta: \"\",\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallDelta: {\n const { toolCallId, argsTextDelta } = value;\n\n const toolName = toolCallNames.get(toolCallId)!;\n if (currentToolCall?.id === toolCallId) {\n currentToolCall.argsText += argsTextDelta;\n }\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsTextDelta,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallResult: {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType: \"function\",\n toolCallId: value.toolCallId,\n toolName: toolCallNames.get(value.toolCallId)!,\n result: value.result,\n });\n break;\n }\n case AssistantStreamChunkType.
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantDecoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantDecoderStream() {\n const toolCallNames = new Map<string, string>();\n let currentToolCall:\n | { id: string; name: string; argsText: string }\n | undefined;\n\n const endCurrentToolCall = (\n controller: TransformStreamDefaultController<ToolResultStreamPart>,\n ) => {\n if (!currentToolCall) return;\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: currentToolCall.id,\n toolName: currentToolCall.name,\n args: currentToolCall.argsText,\n });\n currentToolCall = undefined;\n };\n\n return new TransformStream<\n StreamPart<AssistantStreamChunk>,\n ToolResultStreamPart\n >({\n transform({ type, value }, controller) {\n if (\n type !== AssistantStreamChunkType.ToolCallDelta &&\n type !== AssistantStreamChunkType.Error\n ) {\n endCurrentToolCall(controller);\n }\n\n switch (type) {\n case AssistantStreamChunkType.TextDelta: {\n controller.enqueue({\n type: \"text-delta\",\n textDelta: value,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallBegin: {\n const { toolCallId: id, toolName: name } = value;\n toolCallNames.set(id, name);\n\n currentToolCall = { id, name, argsText: \"\" };\n\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId: id,\n toolName: name,\n argsTextDelta: \"\",\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallDelta: {\n const { toolCallId, argsTextDelta } = value;\n\n const toolName = toolCallNames.get(toolCallId)!;\n if (currentToolCall?.id === toolCallId) {\n currentToolCall.argsText += argsTextDelta;\n }\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsTextDelta,\n });\n break;\n }\n case AssistantStreamChunkType.ToolCallResult: {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType: \"function\",\n toolCallId: value.toolCallId,\n toolName: toolCallNames.get(value.toolCallId)!,\n result: value.result,\n });\n break;\n }\n case AssistantStreamChunkType.FinishMessage: {\n controller.enqueue({\n type: \"finish\",\n ...value,\n });\n break;\n }\n case AssistantStreamChunkType.Error: {\n controller.enqueue({\n type: \"error\",\n error: value,\n });\n break;\n }\n\n case AssistantStreamChunkType.ToolCall: {\n const { toolCallId, toolName, args } = value;\n toolCallNames.set(toolCallId, toolName);\n\n const argsText = JSON.stringify(args);\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallType: \"function\",\n toolCallId,\n toolName,\n argsTextDelta: argsText,\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallType: \"function\",\n toolCallId: toolCallId,\n toolName: toolName,\n args: argsText,\n });\n break;\n }\n\n case AssistantStreamChunkType.FinishStep: {\n controller.enqueue({\n type: \"step-finish\",\n ...value,\n });\n break;\n }\n\n case AssistantStreamChunkType.Data:\n controller.enqueue({\n type: \"data\",\n data: value,\n });\n break;\n\n // TODO\n case AssistantStreamChunkType.ReasoningDelta:\n case AssistantStreamChunkType.StartStep:\n case AssistantStreamChunkType.Annotation:\n break;\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n flush(controller) {\n endCurrentToolCall(controller);\n },\n });\n}\n"],"mappings":"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","names":[]}
|
@@ -82,7 +82,7 @@ function assistantEncoderStream() {
|
|
82
82
|
case "step-finish": {
|
83
83
|
const { type, ...rest } = chunk;
|
84
84
|
controller.enqueue({
|
85
|
-
type: import_AssistantStreamChunkType.AssistantStreamChunkType.
|
85
|
+
type: import_AssistantStreamChunkType.AssistantStreamChunkType.FinishStep,
|
86
86
|
value: rest
|
87
87
|
});
|
88
88
|
break;
|
@@ -90,7 +90,7 @@ function assistantEncoderStream() {
|
|
90
90
|
case "finish": {
|
91
91
|
const { type, ...rest } = chunk;
|
92
92
|
controller.enqueue({
|
93
|
-
type: import_AssistantStreamChunkType.AssistantStreamChunkType.
|
93
|
+
type: import_AssistantStreamChunkType.AssistantStreamChunkType.FinishMessage,
|
94
94
|
value: rest
|
95
95
|
});
|
96
96
|
break;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantEncoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantEncoderStream() {\n const toolCalls = new Set<string>();\n return new TransformStream<\n ToolResultStreamPart,\n StreamPart<AssistantStreamChunk>\n >({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n if (!chunk.textDelta) break; // ignore empty text deltas\n controller.enqueue({\n type: AssistantStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call-delta\": {\n if (!toolCalls.has(chunk.toolCallId)) {\n toolCalls.add(chunk.toolCallId);\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallBegin,\n value: {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n },\n });\n }\n\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallDelta,\n value: {\n toolCallId: chunk.toolCallId,\n argsTextDelta: chunk.argsTextDelta,\n },\n });\n break;\n }\n\n case \"data\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n // ignore\n case \"tool-call\":\n case \"response-metadata\":\n break;\n\n case \"tool-result\": {\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallResult,\n value: {\n toolCallId: chunk.toolCallId,\n result: chunk.result,\n },\n });\n break;\n }\n\n case \"step-finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantEncoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantEncoderStream() {\n const toolCalls = new Set<string>();\n return new TransformStream<\n ToolResultStreamPart,\n StreamPart<AssistantStreamChunk>\n >({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n if (!chunk.textDelta) break; // ignore empty text deltas\n controller.enqueue({\n type: AssistantStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call-delta\": {\n if (!toolCalls.has(chunk.toolCallId)) {\n toolCalls.add(chunk.toolCallId);\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallBegin,\n value: {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n },\n });\n }\n\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallDelta,\n value: {\n toolCallId: chunk.toolCallId,\n argsTextDelta: chunk.argsTextDelta,\n },\n });\n break;\n }\n\n case \"data\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n // ignore\n case \"tool-call\":\n case \"response-metadata\":\n break;\n\n case \"tool-result\": {\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallResult,\n value: {\n toolCallId: chunk.toolCallId,\n result: chunk.result,\n },\n });\n break;\n }\n\n case \"step-finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.FinishStep,\n value: rest,\n });\n break;\n }\n\n case \"finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.FinishMessage,\n value: rest,\n });\n break;\n }\n\n case \"error\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAGO;AAIA,SAAS,yBAAyB;AACvC,QAAM,YAAY,oBAAI,IAAY;AAClC,SAAO,IAAI,gBAGT;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,YAAY,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK,cAAc;AACjB,cAAI,CAAC,MAAM,UAAW;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,mBAAmB;AACtB,cAAI,CAAC,UAAU,IAAI,MAAM,UAAU,GAAG;AACpC,sBAAU,IAAI,MAAM,UAAU;AAC9B,uBAAW,QAAQ;AAAA,cACjB,MAAM,yDAAyB;AAAA,cAC/B,OAAO;AAAA,gBACL,YAAY,MAAM;AAAA,gBAClB,UAAU,MAAM;AAAA,cAClB;AAAA,YACF,CAAC;AAAA,UACH;AAEA,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO;AAAA,cACL,YAAY,MAAM;AAAA,cAClB,eAAe,MAAM;AAAA,YACvB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,QAAQ;AACX,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA;AAAA,QAGA,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QAEF,KAAK,eAAe;AAClB,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO;AAAA,cACL,YAAY,MAAM;AAAA,cAClB,QAAQ,MAAM;AAAA,YAChB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,eAAe;AAClB,gBAAM,EAAE,MAAM,GAAG,KAAK,IAAI;AAC1B,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO;AAAA,UACT,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,UAAU;AACb,gBAAM,EAAE,MAAM,GAAG,KAAK,IAAI;AAC1B,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO;AAAA,UACT,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,SAAS;AACZ,qBAAW,QAAQ;AAAA,YACjB,MAAM,yDAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA,QACA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
|
@@ -60,7 +60,7 @@ function assistantEncoderStream() {
|
|
60
60
|
case "step-finish": {
|
61
61
|
const { type, ...rest } = chunk;
|
62
62
|
controller.enqueue({
|
63
|
-
type: AssistantStreamChunkType.
|
63
|
+
type: AssistantStreamChunkType.FinishStep,
|
64
64
|
value: rest
|
65
65
|
});
|
66
66
|
break;
|
@@ -68,7 +68,7 @@ function assistantEncoderStream() {
|
|
68
68
|
case "finish": {
|
69
69
|
const { type, ...rest } = chunk;
|
70
70
|
controller.enqueue({
|
71
|
-
type: AssistantStreamChunkType.
|
71
|
+
type: AssistantStreamChunkType.FinishMessage,
|
72
72
|
value: rest
|
73
73
|
});
|
74
74
|
break;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantEncoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantEncoderStream() {\n const toolCalls = new Set<string>();\n return new TransformStream<\n ToolResultStreamPart,\n StreamPart<AssistantStreamChunk>\n >({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n if (!chunk.textDelta) break; // ignore empty text deltas\n controller.enqueue({\n type: AssistantStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call-delta\": {\n if (!toolCalls.has(chunk.toolCallId)) {\n toolCalls.add(chunk.toolCallId);\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallBegin,\n value: {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n },\n });\n }\n\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallDelta,\n value: {\n toolCallId: chunk.toolCallId,\n argsTextDelta: chunk.argsTextDelta,\n },\n });\n break;\n }\n\n case \"data\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n // ignore\n case \"tool-call\":\n case \"response-metadata\":\n break;\n\n case \"tool-result\": {\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallResult,\n value: {\n toolCallId: chunk.toolCallId,\n result: chunk.result,\n },\n });\n break;\n }\n\n case \"step-finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.
|
1
|
+
{"version":3,"sources":["../../../../src/runtimes/edge/streams/assistantEncoderStream.ts"],"sourcesContent":["import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantEncoderStream() {\n const toolCalls = new Set<string>();\n return new TransformStream<\n ToolResultStreamPart,\n StreamPart<AssistantStreamChunk>\n >({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n if (!chunk.textDelta) break; // ignore empty text deltas\n controller.enqueue({\n type: AssistantStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call-delta\": {\n if (!toolCalls.has(chunk.toolCallId)) {\n toolCalls.add(chunk.toolCallId);\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallBegin,\n value: {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n },\n });\n }\n\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallDelta,\n value: {\n toolCallId: chunk.toolCallId,\n argsTextDelta: chunk.argsTextDelta,\n },\n });\n break;\n }\n\n case \"data\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n // ignore\n case \"tool-call\":\n case \"response-metadata\":\n break;\n\n case \"tool-result\": {\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallResult,\n value: {\n toolCallId: chunk.toolCallId,\n result: chunk.result,\n },\n });\n break;\n }\n\n case \"step-finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.FinishStep,\n value: rest,\n });\n break;\n }\n\n case \"finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.FinishMessage,\n value: rest,\n });\n break;\n }\n\n case \"error\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n}\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,OACK;AAIA,SAAS,yBAAyB;AACvC,QAAM,YAAY,oBAAI,IAAY;AAClC,SAAO,IAAI,gBAGT;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,YAAY,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK,cAAc;AACjB,cAAI,CAAC,MAAM,UAAW;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,mBAAmB;AACtB,cAAI,CAAC,UAAU,IAAI,MAAM,UAAU,GAAG;AACpC,sBAAU,IAAI,MAAM,UAAU;AAC9B,uBAAW,QAAQ;AAAA,cACjB,MAAM,yBAAyB;AAAA,cAC/B,OAAO;AAAA,gBACL,YAAY,MAAM;AAAA,gBAClB,UAAU,MAAM;AAAA,cAClB;AAAA,YACF,CAAC;AAAA,UACH;AAEA,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO;AAAA,cACL,YAAY,MAAM;AAAA,cAClB,eAAe,MAAM;AAAA,YACvB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,QAAQ;AACX,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA;AAAA,QAGA,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QAEF,KAAK,eAAe;AAClB,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO;AAAA,cACL,YAAY,MAAM;AAAA,cAClB,QAAQ,MAAM;AAAA,YAChB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,eAAe;AAClB,gBAAM,EAAE,MAAM,GAAG,KAAK,IAAI;AAC1B,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO;AAAA,UACT,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,UAAU;AACb,gBAAM,EAAE,MAAM,GAAG,KAAK,IAAI;AAC1B,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO;AAAA,UACT,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK,SAAS;AACZ,qBAAW,QAAQ;AAAA,YACjB,MAAM,yBAAyB;AAAA,YAC/B,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA,QACA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
|
package/package.json
CHANGED
@@ -9,8 +9,10 @@ export enum AssistantStreamChunkType {
|
|
9
9
|
ToolCallResult = "a",
|
10
10
|
ToolCallBegin = "b",
|
11
11
|
ToolCallDelta = "c",
|
12
|
-
|
13
|
-
|
12
|
+
FinishMessage = "d",
|
13
|
+
FinishStep = "e",
|
14
|
+
StartStep = "f",
|
15
|
+
ReasoningDelta = "g",
|
14
16
|
}
|
15
17
|
|
16
18
|
export type AssistantStreamChunk = {
|
@@ -35,7 +37,7 @@ export type AssistantStreamChunk = {
|
|
35
37
|
result: any;
|
36
38
|
};
|
37
39
|
[AssistantStreamChunkType.Error]: unknown;
|
38
|
-
[AssistantStreamChunkType.
|
40
|
+
[AssistantStreamChunkType.FinishStep]: {
|
39
41
|
finishReason:
|
40
42
|
| "stop"
|
41
43
|
| "length"
|
@@ -50,10 +52,14 @@ export type AssistantStreamChunk = {
|
|
50
52
|
};
|
51
53
|
isContinued: boolean;
|
52
54
|
};
|
53
|
-
[AssistantStreamChunkType.
|
55
|
+
[AssistantStreamChunkType.FinishMessage]: Omit<
|
54
56
|
LanguageModelV1StreamPart & {
|
55
57
|
type: "finish";
|
56
58
|
},
|
57
59
|
"type"
|
58
60
|
>;
|
61
|
+
[AssistantStreamChunkType.StartStep]: {
|
62
|
+
id: string;
|
63
|
+
};
|
64
|
+
[AssistantStreamChunkType.ReasoningDelta]: string;
|
59
65
|
};
|
@@ -86,7 +86,7 @@ export function assistantDecoderStream() {
|
|
86
86
|
});
|
87
87
|
break;
|
88
88
|
}
|
89
|
-
case AssistantStreamChunkType.
|
89
|
+
case AssistantStreamChunkType.FinishMessage: {
|
90
90
|
controller.enqueue({
|
91
91
|
type: "finish",
|
92
92
|
...value,
|
@@ -123,7 +123,7 @@ export function assistantDecoderStream() {
|
|
123
123
|
break;
|
124
124
|
}
|
125
125
|
|
126
|
-
case AssistantStreamChunkType.
|
126
|
+
case AssistantStreamChunkType.FinishStep: {
|
127
127
|
controller.enqueue({
|
128
128
|
type: "step-finish",
|
129
129
|
...value,
|
@@ -139,6 +139,8 @@ export function assistantDecoderStream() {
|
|
139
139
|
break;
|
140
140
|
|
141
141
|
// TODO
|
142
|
+
case AssistantStreamChunkType.ReasoningDelta:
|
143
|
+
case AssistantStreamChunkType.StartStep:
|
142
144
|
case AssistantStreamChunkType.Annotation:
|
143
145
|
break;
|
144
146
|
|
@@ -71,7 +71,7 @@ export function assistantEncoderStream() {
|
|
71
71
|
case "step-finish": {
|
72
72
|
const { type, ...rest } = chunk;
|
73
73
|
controller.enqueue({
|
74
|
-
type: AssistantStreamChunkType.
|
74
|
+
type: AssistantStreamChunkType.FinishStep,
|
75
75
|
value: rest,
|
76
76
|
});
|
77
77
|
break;
|
@@ -80,7 +80,7 @@ export function assistantEncoderStream() {
|
|
80
80
|
case "finish": {
|
81
81
|
const { type, ...rest } = chunk;
|
82
82
|
controller.enqueue({
|
83
|
-
type: AssistantStreamChunkType.
|
83
|
+
type: AssistantStreamChunkType.FinishMessage,
|
84
84
|
value: rest,
|
85
85
|
});
|
86
86
|
break;
|